Name: series-workflowkb5mw Phase: Succeeded StartedAt: 2026-08-07 05:01:26 +0000 UTC FinishedAt: 2026-08-07 09:22:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[0] Phase: Succeeded StartedAt: 2026-08-07 05:01:26 +0000 UTC FinishedAt: 2026-08-07 05:43:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 05:01:26 +0000 UTC FinishedAt: 2026-08-07 05:43:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "AMT", "IP_MULTICAST" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "AMT", "IP_MULTICAST" ], "series_id": "fb6788fc-3445-44d9-8e72-2190caa878cc" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "amt_newlink" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FNVCYjMzQ7LAogICAgJiMzNDtJUF9NVUxUSUNBU1QmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthbXRfbmV3bGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlciYjMzk7cyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDk4NzNiZjFiMDVmYzVlOGU4MjNmYWUyMTM1MzQ4YzEwNWU4NTE5ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDU6NDI6MTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYW10LmMgYi9kcml2ZXJzL25ldC9hbXQuY1xuaW5kZXggMTgyYTQxZDU5YTc1ZC4uNzY0NWNlM2EyOWFkOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2FtdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9hbXQuY1xuQEAgLTMyMjEsNiAmIzQzOzMyMjEsOSBAQCBzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRzdHJ1Y3QgbmxhdHRyICoqdGIgPSBwYXJhbXMtXHUwMDNldGI7XG4gXHRpbnQgZXJyID0gLUVJTlZBTDtcbiBcbiYjNDM7XHRpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSlcbiYjNDM7XHRcdHJldHVybiBlcnI7XG4mIzQzO1xuIFx0YW10LVx1MDAzZW5ldCA9IGxpbmtfbmV0O1xuIFx0YW10LVx1MDAzZW1vZGUgPSBubGFfZ2V0X3UzMihkYXRhW0lGTEFfQU1UX01PREVdKTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QU1UJiMzNDssCiAgICAmIzM0O0lQX01VTFRJQ0FTVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FtdF9uZXdsaW5rJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXR3b3JrIG5hbWVzcGFjZSB2YWxpZGF0aW9uIGNoZWNrIGluIHRoZSBBTVQgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OTg3M2JmMWIwNWZjNWU4ZTgyM2ZhZTIxMzUzNDhjMTA1ZTg1MTlmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgNyAwNTo0MjoxNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2FtdC5jIGIvZHJpdmVycy9uZXQvYW10LmMKaW5kZXggMTgyYTQxZDU5YTc1ZC4uNzY0NWNlM2EyOWFkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYW10LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvYW10LmMKQEAgLTMyMjEsNiAmIzQzOzMyMjEsOSBAQCBzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3RydWN0IG5sYXR0ciAqKnRiID0gcGFyYW1zLSZndDt0YjsKIAlpbnQgZXJyID0gLUVJTlZBTDsKIAomIzQzOwlpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSkKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiAJYW10LSZndDtuZXQgPSBsaW5rX25ldDsKIAlhbXQtJmd0O21vZGUgPSBubGFfZ2V0X3UzMihkYXRhW0lGTEFfQU1UX01PREVdKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQ2CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQU1UIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2FtdC5jYC4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgbmV3IGNoZWNrIGFkZGVkIHdpdGhpbiBgYW10X25ld2xpbmtgOiBgaWYgKCFuZXRfZXEobGlua19uZXQsIGRldl9uZXQoZGV2KSkpIHJldHVybiBlcnI7YC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzcGVjaWZpYyBvbmUgYXQgdGhhdCwgYWZmZWN0aW5nIGhvdyB0aGUgQU1UIGRyaXZlciwgQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcsIGlzIGhhbmRsaW5nIGl0cyBsaW5rIHNldHVwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgY29uZGl0aW9uLgoKTXkgbmV4dCBtb3ZlIGlzIHRvIGRpdmUgZGVlcGVyIGludG8gYGFtdF9uZXdsaW5rYCBpdHNlbGYgYW5kIGdldCBhIGJldHRlciBncmlwIG9uIGhvdyBBTVQgaXMgY29uZmlndXJlZCBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIGtlcm5lbC4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGxvY2F0ZSB0aGUgZXhhY3QgZGVmaW5pdGlvbiBvZiBgYW10X25ld2xpbmtgLCBtYWtpbmcgc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nLiBUaGVuLCB0byBiZSB0aG9yb3VnaCwgSSB3aWxsIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQU1UIHVzaW5nIEtjb25maWc7IHRoZSBjb25maWcgaW1wbGljYXRpb25zIHdpbGwgYWZmZWN0IHRoZSBwb3NzaWJsZSBleGVjdXRpb24gcGF0aHMgb2YgdGhpcyBzZWN0aW9uIG9mIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YW10X25ld2xpbmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYz0zMTc0PXN0YXRpYyBpbnQgYW10X3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMjEzLVxuZHJpdmVycy9uZXQvYW10LmM6MzIxNDpzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9hbXQuYy0zMjE1LVx0XHQgICAgICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYz0zMzg3PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBhbXRfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHtcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMzkzLVx0LnZhbGlkYXRlXHQ9IGFtdF92YWxpZGF0ZSxcbmRyaXZlcnMvbmV0L2FtdC5jOjMzOTQ6XHQubmV3bGlua1x0PSBhbXRfbmV3bGluayxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTUtXHQuZGVsbGlua1x0PSBhbXRfZGVsbGluayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjE4CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqQU1UIERyaXZlciBMaW5rIENyZWF0aW9uIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGFuZCBpdCYjMzk7cyBjbGVhcmx5IHRoZSBgLm5ld2xpbmtgIGNhbGxiYWNrIGZvciB0aGUgYHJ0bmxfbGlua19vcHNgIHN0cnVjdHVyZSB3aXRoaW4gdGhlIEFNVCBkcml2ZXIuIE1ha2VzIHBlcmZlY3Qgc2Vuc2UuICBUaGF0IG1lYW5zIHRoaXMgdGhpbmcgaXMgdHJpZ2dlcmVkIHdoZW4gYSBuZXcgbGluayBpcyBjcmVhdGVkLCB3aGljaCwgb2YgY291cnNlLCBtZWFucyBuZXRsaW5rIGlzIHRoZSBwYXRod2F5IC0gYFJUTV9ORVdMSU5LYCBtZXNzYWdlcywgc3BlY2lmaWNhbGx5LiBObyBzdXJwcmlzZXMgdGhlcmUuIE5vdywgYmVmb3JlIEkgZGl2ZSBkZWVwZXIsIGl0JiMzOTtzIGEgZ29vZCB0aW1lIHRvIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZy4gSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgQU1UIGRyaXZlciBpcyBldmVuICplbmFibGVkKiBpbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLiBHb3R0YSBlbGltaW5hdGUgdGhlIG9idmlvdXMgYmVmb3JlIGRpZ2dpbmcgaW50byB0aGUgZGV0YWlscy4gVGhhdCBLY29uZmlnIGNoZWNrIHdpbGwgdGVsbCBtZSBpZiBJJiMzOTttIGV2ZW4gZGVhbGluZyB3aXRoIGEgbGl2ZSBkcml2ZXIgaW4gdGhpcyBidWlsZCwgb3IganVzdCBzb21lIGRlYWQgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQU1UJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTI4OT1jb25maWcgUEZDUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMzAxLVxuZHJpdmVycy9uZXQvS2NvbmZpZzozMDI6Y29uZmlnIEFNVFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDMtXHR0cmlzdGF0ZSBcJiMzNDtBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZyAoQU1UKVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NjYKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIGFuZCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgaWRlbnRpZmllZCBhcyBgQU1UYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IGRlbHZlIGludG8gaXRzIGRlcGVuZGVuY2llcy4gSXQmIzM5O3Mgc3RhbmRhcmQgcHJhY3RpY2UuIEJlZm9yZSBJIGV2ZW4gYmVnaW4gdG8gaW1wbGVtZW50IGNoYW5nZXMgb3IgdHJvdWJsZXNob290LCBJICpoYXZlKiB0byB1bmRlcnN0YW5kIHdoYXQgYEFNVGAgcmVsaWVzIG9uLiBBIGRlcGVuZGVuY3kgYW5hbHlzaXMgaXMgY3J1Y2lhbCBhdCB0aGlzIHBvaW50LiBJIG5lZWQgdG8ga25vdyB0aGUgcmlwcGxlIGVmZmVjdHM7IHdoaWNoIG90aGVyIG1vZHVsZXMsIHNlcnZpY2VzLCBvciBjb25maWd1cmF0aW9ucyB3b3VsZCBiZSBpbXBhY3RlZCBpZiBJIHdlcmUgdG8gbW9kaWZ5IG9yIHJlbW92ZSB0aGlzLiBJZ25vcmluZyB0aGlzIHN0YWdlIGNvdWxkIGxlYWQgdG8gY2FzY2FkaW5nIGZhaWx1cmVzIGFuZCB1bmV4cGVjdGVkIGJlaGF2aW9yLCBzbyBJIG5lZWQgdG8gY2hlY2sgZm9yIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQU1UJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWc9Mjg5PWNvbmZpZyBQRkNQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDEtXG5kcml2ZXJzL25ldC9LY29uZmlnOjMwMjpjb25maWcgQU1UXG5kcml2ZXJzL25ldC9LY29uZmlnLTMwMy1cdHRyaXN0YXRlIFwmIzM0O0F1dG9tYXRpYyBNdWx0aWNhc3QgVHVubmVsaW5nIChBTVQpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIyNQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgQU1UIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIEFNVCBLY29uZmlnLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtPa2F5LCBsZXQmIzM5O3MgZGlzc2VjdCB0aGlzIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LiYjMzQ7IEkgd2FudCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIHN0cnVjdHVyZWQsIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBhcmUsIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBjb3JlIGVsZW1lbnRzOiB0aGUgYENPTkZJR19BTVRgIGl0c2VsZiwgYW55IHN1Yi1jb25maWd1cmF0aW9ucyBpdCBpbnRyb2R1Y2VzLCBhbmQgY3J1Y2lhbGx5LCBob3cgaXQgdGllcyBpbnRvIHRoZSBicm9hZGVyIHN5c3RlbSBjb25maWd1cmF0aW9uLiBBcmUgd2UgZGVhbGluZyB3aXRoIHBsYXRmb3JtLXNwZWNpZmljIG9wdGlvbnM/IEFyZSB0aGVyZSBkaWZmZXJlbnQgQU1UIGltcGxlbWVudGF0aW9ucyBvciB2ZXJzaW9ucyBiZWluZyBzdXBwb3J0ZWQ/IEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgY29uZGl0aW9uYWxzIGJhc2VkIG9uIGhhcmR3YXJlIGNhcGFiaWxpdGllcyBhbmQgQklPUyBzdXBwb3J0LiBJJiMzOTtsbCBiZSBsb29raW5nIHRvIHNlZSBpZiB0aGVyZSBhcmUgaG9va3MgZm9yIHNwZWNpZmljIEFNVCBmZWF0dXJlcyAtIHJlbW90ZSBjb250cm9sLCBwb3dlciBtYW5hZ2VtZW50LCBLVk0gLSBhbmQgaWYgdGhvc2UgYXJlIGdyYW51bGFybHkgY29udHJvbGxlZC4gVGhlIGdvYWwgaXMgdG8gZ2V0IGEgc29saWQgdW5kZXJzdGFuZGluZyBvZiB0aGUgZGVzaWduIHNwYWNlOiB3aGF0JiMzOTtzIGVuYWJsZWQsIHdoYXQmIzM5O3MgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHdoYXQgY2hvaWNlcyBhcmUgcHJlc2VudGVkIHRvIHRoZSBlbmQtdXNlciBvciBzeXN0ZW0gaW50ZWdyYXRvci4gVWx0aW1hdGVseSwgSSYjMzk7bGwgYmUgbG9va2luZyB0byBxdWlja2x5IGFzc2VzcyB0aGUgQU1UIGZlYXR1cmUtc2V0IGluIHRoaXMgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzMDA6XHRcdCAgd2lsbCBiZSBjYWxsZWQgcGZjcC5cbiAzMDE6XHRcbiAzMDI6XHRjb25maWcgQU1UXG4gMzAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZyAoQU1UKVwmIzM0O1xuIDMwNDpcdFx0ZGVwZW5kcyBvbiBJTkVUIFx1MDAyNlx1MDAyNiBJUF9NVUxUSUNBU1RcbiAzMDU6XHRcdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuIDMwNjpcdFx0aGVscFxuIDMwNzpcdFx0ICBUaGlzIGFsbG93cyBvbmUgdG8gY3JlYXRlIEFNVChBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZylcbiAzMDg6XHRcdCAgdmlydHVhbCBpbnRlcmZhY2VzIHRoYXQgcHJvdmlkZSBtdWx0aWNhc3QgdHVubmVsaW5nLlxuIDMwOTpcdFx0ICBUaGVyZSBhcmUgdHdvIHJvbGVzLCBHYXRld2F5LCBhbmQgUmVsYXkuXG4gMzEwOlx0XHQgIEdhdGV3YXkgRW5jYXBzdWxhdGVzIElHTVAvTUxEIHRyYWZmaWMgZnJvbSBsaXN0ZW5lcnMgdG8gdGhlIFJlbGF5LlxuIDMxMTpcdFx0ICBHYXRld2F5IERlY2Fwc3VsYXRlcyBtdWx0aWNhc3QgdHJhZmZpYyBmcm9tIHRoZSBSZWxheSB0byBMaXN0ZW5lcnMuXG4gMzEyOlx0XHQgIFJlbGF5IEVuY2Fwc3VsYXRlcyBtdWx0aWNhc3QgdHJhZmZpYyBmcm9tIFNvdXJjZXMgdG8gR2F0ZXdheS5cbiAzMTM6XHRcdCAgUmVsYXkgRGVjYXBzdWxhdGVzIElHTVAvTUxEIHRyYWZmaWMgZnJvbSBHYXRld2F5LlxuIDMxNDpcdFxuIDMxNTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVycyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxuIDMxNjpcdFx0ICB3aWxsIGJlIGNhbGxlZCBhbXQuXG4gMzE3Olx0XG4gMzE4Olx0Y29uZmlnIE1BQ1NFQ1xuIDMxOTpcdFx0dHJpc3RhdGUgXCYjMzQ7SUVFRSA4MDIuMUFFIE1BQy1sZXZlbCBlbmNyeXB0aW9uIChNQUNzZWMpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MzcKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAzNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBTVQgQ29uZmlndXJhdGlvbiBhbmQgTmV0bGluayBFbnRyeXBvaW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBBTVRgIGNvbmZpZ3VyYXRpb24gYW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIG5ldHdvcmsgc3RhY2suIEl0IGRlcGVuZHMgb24gYElORVRgIGFuZCBgSVBfTVVMVElDQVNUYCwgd2hpY2ggYXJlIHByZXR0eSBzdGFuZGFyZCwgYnV0IEkgc2hvdWxkIHByb2JhYmx5IGV4cGxpY2l0bHkgaW5jbHVkZSBgSVBfTVVMVElDQVNUYCBhbG9uZyB3aXRoIGBBTVRgIGp1c3QgdG8gYmUgc2FmZSBhbmQgbWFrZSBzdXJlIHRoZSBzZXR1cCBpcyBjb21wbGV0ZS4gVGhlIGtleSBmdW5jdGlvbiBoZXJlIGlzIGBhbXRfbmV3bGlua2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlJiMzOTtzIGFueXRoaW5nIGVsc2UgcmVsZXZhbnQgdG8gZmxhZy4KClRoaXMgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgY2hlY2s6IGBpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSkgcmV0dXJuIGVycjtgLiBUaGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIGl0JiMzOTtzIHNpZ25pZmljYW50LiBUaGUgbWFpbiBmb2N1cyBzeW1ib2wgaXMgZGVmaW5pdGVseSBgYW10X25ld2xpbmtgLgoKTm93LCBsZXQmIzM5O3MganVzdCBtYWtlIHN1cmUgYEFNVGAgZG9lc24mIzM5O3QgbmVlZCBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLiBEb3VibGUtY2hlY2tpbmcsIHllcCwgaXQmIzM5O3MganVzdCBgSU5FVCAmYW1wOyZhbXA7IElQX01VTFRJQ0FTVGAsIHdoaWNoIEkmIzM5O20gY292ZXJpbmcuCgpJIHdhcyBpbml0aWFsbHkgY29uY2VybmVkIGFib3V0IGBhbXRfbmV3bGlua2AgYmVpbmcgc3RhdGljLiBUaGUgcHJvbXB0IGhhcyB0aGF0IG5vdGUgYWJvdXQgcHJlZmVycmluZyBub24tc3RhdGljIGZ1bmN0aW9ucyBmb3IgQVBJIGVudHJ5IHBvaW50cyBiZWNhdXNlIG9mIHN5bWJvbCBhZGRyZXNzZXMgYW5kIGlubGluaW5nLiBIb3dldmVyLCBsb29raW5nIGF0IHRoZSBjb2RlLCBgYW10X25ld2xpbmtgIGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciBgLm5ld2xpbmsgPSBhbXRfbmV3bGlua2AuIFRoYXQgbWVhbnMgaXQmIzM5O3MgKm5vdCogaW5saW5lZCwgYW5kIGl0ICpkb2VzKiBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MsIG1ha2luZyBpdCBhIHBlcmZlY3RseSB2YWxpZCBuZXRsaW5rIGVudHJ5IHBvaW50LiBJbmNsdWRpbmcgYGFtdF9uZXdsaW5rYCBzaG91bGQgYmUgZmluZSwgYW5kIEkgZG9uJiMzOTt0IHJlYWxseSBuZWVkIHRvIGluY2x1ZGUgYGFtdF9saW5rX29wc2AuCkFsdGhvdWdoIGBhbXRfbmV3bGlua2AgaXMgYSBzdGF0aWMgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0IG1pZ2h0IG5vdCBiZSBleHBvcnRlZCwgc3l6a2FsbGVyIHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIGZ1enogaXQgYXMgaXQgaXMgbm90IGlubGluZWQuCgpUaGVyZWZvcmUsIEkgdGhpbmsgSSYjMzk7bSBnb29kIHRvIGdvIHdpdGggaW5jbHVkaW5nIGBBTVRgIGFuZCBgSVBfTVVMVElDQVNUYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YW10X25ld2xpbmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYz0zMTc0PXN0YXRpYyBpbnQgYW10X3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMjEzLVxuZHJpdmVycy9uZXQvYW10LmM6MzIxNDpzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9hbXQuYy0zMjE1LVx0XHQgICAgICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYz0zMzg3PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBhbXRfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHtcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMzkzLVx0LnZhbGlkYXRlXHQ9IGFtdF92YWxpZGF0ZSxcbmRyaXZlcnMvbmV0L2FtdC5jOjMzOTQ6XHQubmV3bGlua1x0PSBhbXRfbmV3bGluayxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTUtXHQuZGVsbGlua1x0PSBhbXRfZGVsbGluayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgzNwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcyBzdW1tYXJpemVkIGZyb20gdGhhdCBwcm9tcHQsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkNoZWNraW5nIGZvciBOb24tU3RhdGljIEZ1bmN0aW9ucyBpbiBgZHJpdmVycy9uZXQvYW10LmNgKioKCkFscmlnaHQsIEkmIzM5O20gZGlnZ2luZyBpbnRvIGBkcml2ZXJzL25ldC9hbXQuY2AgYWdhaW4uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0byB2ZXJpZnkgdGhlIGZ1bmN0aW9uIHNjb3BlIHdpdGhpbiB0aGF0IGZpbGUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgYXMgKm5vbi1zdGF0aWMqLiBHaXZlbiB0aGUgY29udGV4dCwgSSYjMzk7bSBsb29raW5nIGZvciBhbnl0aGluZyB0aGF0IG1pZ2h0IGhhdmUgdW5pbnRlbmRlZCBleHRlcm5hbCBsaW5rYWdlLCBwYXJ0aWN1bGFybHkgaWYgdGhpcyBkcml2ZXIgaXMgcGFydCBvZiBhIGxhcmdlciBwcm9qZWN0IG9yIGtlcm5lbC4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgc3RlcCBmb3IgY2hlY2tpbmcgcG90ZW50aWFsIGZvciBuYW1lIGNvbGxpc2lvbnMsIGFuZCBlbnN1cmluZyBwcm9wZXIgZW5jYXBzdWxhdGlvbiBvZiB0aGUgZHJpdmVyJiMzOTtzIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEkgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgaW50ZXJmYWNlcyBhcmUgd2VsbC1kZWZpbmVkIHRvIGltcHJvdmUgbW9kdWxhcml0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XlthLXpBLVowLTlfXSYjNDM7IFthLXpBLVowLTlfXSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvYW10LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvYW10LmM9MzU9c3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICphbXRfd3E7XG5kcml2ZXJzL25ldC9hbXQuYy0zNi1cbmRyaXZlcnMvbmV0L2FtdC5jOjM3OnN0YXRpYyBITElTVF9IRUFEKHNvdXJjZV9nY19saXN0KTtcbmRyaXZlcnMvbmV0L2FtdC5jLTM4LS8qIExvY2sgZm9yIHNvdXJjZV9nY19saXN0ICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNjMKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIHRoZSBzdW1tYXJ5LCBhc3N1bWluZyBJJiMzOTttIHRoZSBleHBlcnQgYW5kIHJlZmxlY3Rpbmcgb24gYSBwb3RlbnRpYWwgcmVnZXggaXNzdWU6CgoqKlJlZ2V4IFJldmVsYXRpb24qKgoKU2hvb3QsIGhhbmcgb24gYSBzZWNvbmQuIFNvbWV0aGluZyYjMzk7cyBuYWdnaW5nIGF0IG1lLiBJIHdhcyBzbyBzdXJlIEkgaGFkIHRoYXQgcGF0dGVybiBuYWlsZWQgZG93biwgYnV0IG5vdyBJJiMzOTttIGdldHRpbmcgYSBiYWQgZmVlbGluZy4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGF0IHJlZ2V4IEkganVzdCB1c2VkLiBJdCBzZWVtcyBsaWtlIGl0JiMzOTtzIGZhbGxpbmcgYXBhcnQgb24gc29tZSBlZGdlIGNhc2VzIEkgdGhvdWdodCBJIGhhZCBjb3ZlcmVkLiBJIHdhcyBzbyBzdXJlIGl0IHdhcyBnb2luZyB0byBiZSB0aGUgZWxlZ2FudCBzb2x1dGlvbiwgYnV0IG5vdywgSSBzdXNwZWN0IEkmIzM5O3ZlIG1pc3NlZCBzb21ldGhpbmcuIFRoZXJlJiMzOTtzIHByb2JhYmx5IGEgc3VidGxlIGZsYXcgaW4gdGhlIG1hdGNoaW5nIGxvZ2ljIHRoYXQgaXMgcHJvZHVjaW5nIHVuaW50ZW5kZWQgbWF0Y2hlcywgb3IgbWlzc2luZyBpbnRlbmRlZCBvbmVzLiBUaW1lIHRvIGJhY2t0cmFjaywgZGVidWcsIGFuZCBob3BlZnVsbHkgc2FsdmFnZSB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gZ2V0IHRoaXMgaXJvbmVkIG91dCBiZWZvcmUgSSBtYWtlIGEgYmlnIG1pc3Rha2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XmludCBbYS16QS1aMC05X10mIzQzO1xcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2FtdC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM5NAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBSZWFzb25pbmcgZm9yIFNlbGVjdGluZyB0aGUgYGFtdF9uZXdsaW5rYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBkZWNpZGluZyB3aGljaCBmdW5jdGlvbiB0byB1c2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBnbyB3aXRoIGBhbXRfbmV3bGlua2AuIFNpbmNlIGl0JiMzOTtzIGFzc2lnbmVkIHRvIGEgc3RydWN0LCBJJiMzOTttIHByZXR0eSBjZXJ0YWluIHRoZSBjb21waWxlciB3b24mIzM5O3QgaW5saW5lIGl0LCB3aGljaCBpcyBpZGVhbCBpbiB0aGlzIHNpdHVhdGlvbi4gSXQgd2lsbCBtYWludGFpbiBhIGdvb2Qgc2VwYXJhdGlvbiBvZiBjb25jZXJucy4KCk5vdywgaG9sZCBvbiBhIHNlY29uZC4uLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBXaGlsZSBgcnRubF9uZXdsaW5rYCBpcyB0aGUgbW9yZSBnZW5lcmFsIGVudHJ5IHBvaW50IGZvciBuZXcgbGlua3MsIGBhbXRfbmV3bGlua2AgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBBTVQuIFNvLCB5ZWFoLCBJJiMzOTttIGRlZmluaXRlbHkgZ29pbmcgd2l0aCBgYW10X25ld2xpbmtgLiBJdCYjMzk7cyB0aGUgcmlnaHQgbGV2ZWwgb2YgYWJzdHJhY3Rpb24uCgpHaXZlbiB0aGUgY2hhbmdlLCBJIGtub3cgSSYjMzk7bSBkZWFsaW5nIHdpdGggYEFNVGAgYW5kIGBJUF9NVUxUSUNBU1RgIGNvbmZpZ3VyYXRpb25zLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gaW4gdGhlIEFNVCBkcml2ZXImIzM5O3MgbmV0bGluayBjcmVhdGlvbiBwcm9jZXNzIOKAkyBzcGVjaWZpY2FsbHksIHdpdGhpbiBgYW10X25ld2xpbmtgLiBUaGlzIGlzIGEgY2xlYXIsIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBjb3JlIGRyaXZlciBsb2dpYyBhbmQgcmVhY2hhYmxlIGNvZGUgcGF0aHMuIEkgd2lsbCBrZWVwIGFuIGV5ZSBvbiBgSVBfTVVMVElDQVNUYCBkdXJpbmcgdGhlIHJldmlldywganVzdCB0byBlbnN1cmUgdGhhdCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBtYWludGFpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVBfTVVMVElDQVNUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9LY29uZmlnLTQtI1xubmV0L2lwdjQvS2NvbmZpZzo1OmNvbmZpZyBJUF9NVUxUSUNBU1Rcbm5ldC9pcHY0L0tjb25maWctNi1cdGJvb2wgXCYjMzQ7SVA6IG11bHRpY2FzdGluZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODY5CgkJCQkJCQlvdXRwdXQ6IDk0CgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGxvb2tlZCBvdmVyIHRoaXMgcGF0Y2guIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGJ1dCBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBmdXp6aW5nIG9wcG9ydHVuaXRpZXMgaXQgcHJlc2VudHMuIFllcywgdGhlIGtleSBwaWVjZSBoZXJlIGlzIGNvbmZpcm1lZCB0byBiZSBhIGJvb2xlYW4sIHRoYXQgYElQX01VTFRJQ0FTVGAgdmFsdWUuCgpNeSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhYnNvbHV0ZWx5IHdvcnRoIHB1cnN1aW5nIHdpdGggZnV6emluZy4gTXkgcmVhc29uaW5nIGlzIHNvbGlkOiBUaGUgY29yZSBkcml2ZXIgbG9naWMgd2l0aGluIHRoZSBBTVQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGlzIGJlaW5nIG1vZGlmaWVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHZhbGlkYXRpb24gY2hlY2sgb24gdGhlIG5ldHdvcmsgbmFtZXNwYWNlLCBhbmQgdGhhdCYjMzk7cyBzb21ldGhpbmcgd2UgY2FuIGRlZmluaXRlbHkgdGFyZ2V0IHdpdGggZnV6emluZy4gVGhlIGZhY3QgdGhhdCB0aGUgdHJpZ2dlciBpcyByZWFjaGFibGUgdmlhIGBSVE1fTkVXTElOS2AgaXMgaW1wb3J0YW50LCBiZWNhdXNlIGBSVE1fTkVXTElOS2AgaXMgYSB3ZWxsLXVuZGVyc3Rvb2QgYW5kIGZyZXF1ZW50bHkgZnV6emVkIG5ldGxpbmsgbWVzc2FnZSB0eXBlLgoKVGhlcmVmb3JlLCBteSBmaW5hbCByZWNvbW1lbmRhdGlvbiBpczogV2Ugc2hvdWxkIGZ1enogdGhpcy4KCkkgd2lsbCByZXR1cm4gdGhlIGZvbGxvd2luZzoKCiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgCiogICBgRm9jdXNTeW1ib2xzYDogYFsmIzM0O2FtdF9uZXdsaW5rJiMzNDtdYAoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgWyYjMzQ7QU1UJiMzNDssICYjMzQ7SVBfTVVMVElDQVNUJiMzNDtdYAoqICAgYFJlYXNvbmluZ2A6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXR3b3JrIG5hbWVzcGFjZSB2YWxpZGF0aW9uIGNoZWNrIGluIHRoZSBBTVQgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FNVCYjMzQ7LAogICAgJiMzNDtJUF9NVUxUSUNBU1QmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthbXRfbmV3bGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlciYjMzk7cyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtBTVQmIzM0OywKICAgICYjMzQ7SVBfTVVMVElDQVNUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YW10X25ld2xpbmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gY2hlY2sgaW4gdGhlIEFNVCBkcml2ZXImIzM5O3MgbmV0bGluayBpbnRlcmZhY2UgY3JlYXRpb24gcGF0aCAoYGFtdF9uZXdsaW5rYCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHZpYSBSVE1fTkVXTElOSy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjE4LjU3MzUwMjUyMVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzk0NjgzODM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFNVFwiLFxuICAgIFwiSVBfTVVMVElDQVNUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYW10X25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlcidzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjE4LjU3MzUwOTA2MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5NjY5OTYyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ5ODczYmYxYjA1ZmM1ZThlODIzZmFlMjEzNTM0OGMxMDVlODUxOWZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBBdWcgNyAwNTo0MjoxNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hbXQuYyBiL2RyaXZlcnMvbmV0L2FtdC5jXFxuaW5kZXggMTgyYTQxZDU5YTc1ZC4uNzY0NWNlM2EyOWFkOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9hbXQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2FtdC5jXFxuQEAgLTMyMjEsNiArMzIyMSw5IEBAIHN0YXRpYyBpbnQgYW10X25ld2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0c3RydWN0IG5sYXR0ciAqKnRiID0gcGFyYW1zLVxcdTAwM2V0YjtcXG4gXFx0aW50IGVyciA9IC1FSU5WQUw7XFxuIFxcbitcXHRpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSlcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4rXFxuIFxcdGFtdC1cXHUwMDNlbmV0ID0gbGlua19uZXQ7XFxuIFxcdGFtdC1cXHUwMDNlbW9kZSA9IG5sYV9nZXRfdTMyKGRhdGFbSUZMQV9BTVRfTU9ERV0pO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDI6MTkuNzcwOTQ0MjU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDE1OTcyMzQyNzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQU1UXCIsXG4gICAgXCJJUF9NVUxUSUNBU1RcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhbXRfbmV3bGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXR3b3JrIG5hbWVzcGFjZSB2YWxpZGF0aW9uIGNoZWNrIGluIHRoZSBBTVQgZHJpdmVyJ3MgbmV0bGluayBpbnRlcmZhY2UgY3JlYXRpb24gcGF0aCAoYGFtdF9uZXdsaW5rYCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHZpYSBSVE1fTkVXTElOSy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDk4NzNiZjFiMDVmYzVlOGU4MjNmYWUyMTM1MzQ4YzEwNWU4NTE5ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDU6NDI6MTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hbXQuYyBiL2RyaXZlcnMvbmV0L2FtdC5jXG5pbmRleCAxODJhNDFkNTlhNzVkLi43NjQ1Y2UzYTI5YWQ5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvYW10LmNcbisrKyBiL2RyaXZlcnMvbmV0L2FtdC5jXG5AQCAtMzIyMSw2ICszMjIxLDkgQEAgc3RhdGljIGludCBhbXRfbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0c3RydWN0IG5sYXR0ciAqKnRiID0gcGFyYW1zLVx1MDAzZXRiO1xuIFx0aW50IGVyciA9IC1FSU5WQUw7XG4gXG4rXHRpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSlcbitcdFx0cmV0dXJuIGVycjtcbitcbiBcdGFtdC1cdTAwM2VuZXQgPSBsaW5rX25ldDtcbiBcdGFtdC1cdTAwM2Vtb2RlID0gbmxhX2dldF91MzIoZGF0YVtJRkxBX0FNVF9NT0RFXSk7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0MjoxOS43NzA5NDU3OTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzMxNjgyNzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQU1UIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9hbXQuY2AuIEl0IGxvb2tzIGxpa2Ugd2UgaGF2ZSBhIG5ldyBjaGVjayBhZGRlZCB3aXRoaW4gYGFtdF9uZXdsaW5rYDogYGlmICghbmV0X2VxKGxpbmtfbmV0LCBkZXZfbmV0KGRldikpKSByZXR1cm4gZXJyO2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3BlY2lmaWMgb25lIGF0IHRoYXQsIGFmZmVjdGluZyBob3cgdGhlIEFNVCBkcml2ZXIsIEF1dG9tYXRpYyBNdWx0aWNhc3QgVHVubmVsaW5nLCBpcyBoYW5kbGluZyBpdHMgbGluayBzZXR1cC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNvbmRpdGlvbi5cblxuTXkgbmV4dCBtb3ZlIGlzIHRvIGRpdmUgZGVlcGVyIGludG8gYGFtdF9uZXdsaW5rYCBpdHNlbGYgYW5kIGdldCBhIGJldHRlciBncmlwIG9uIGhvdyBBTVQgaXMgY29uZmlndXJlZCBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIGtlcm5lbC4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHF1aWNrbHkgbG9jYXRlIHRoZSBleGFjdCBkZWZpbml0aW9uIG9mIGBhbXRfbmV3bGlua2AsIG1ha2luZyBzdXJlIEknbSBub3QgbWlzc2luZyBhbnl0aGluZy4gVGhlbiwgdG8gYmUgdGhvcm91Z2gsIEkgd2lsbCBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEFNVCB1c2luZyBLY29uZmlnOyB0aGUgY29uZmlnIGltcGxpY2F0aW9ucyB3aWxsIGFmZmVjdCB0aGUgcG9zc2libGUgZXhlY3V0aW9uIHBhdGhzIG9mIHRoaXMgc2VjdGlvbiBvZiBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDQ2LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDI6MjQuNTAyNjM4NDc5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMTU5Mjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFtdF9uZXdsaW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jPTMxNzQ9c3RhdGljIGludCBhbXRfdmFsaWRhdGUoc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdLFxcbi0tXFxuZHJpdmVycy9uZXQvYW10LmMtMzIxMy1cXG5kcml2ZXJzL25ldC9hbXQuYzozMjE0OnN0YXRpYyBpbnQgYW10X25ld2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9hbXQuYy0zMjE1LVxcdFxcdCAgICAgICBzdHJ1Y3QgcnRubF9uZXdsaW5rX3BhcmFtcyAqcGFyYW1zLFxcbi0tXFxuZHJpdmVycy9uZXQvYW10LmM9MzM4Nz1zdGF0aWMgc3RydWN0IHJ0bmxfbGlua19vcHMgYW10X2xpbmtfb3BzIF9fcmVhZF9tb3N0bHkgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9hbXQuYy0zMzkzLVxcdC52YWxpZGF0ZVxcdD0gYW10X3ZhbGlkYXRlLFxcbmRyaXZlcnMvbmV0L2FtdC5jOjMzOTQ6XFx0Lm5ld2xpbmtcXHQ9IGFtdF9uZXdsaW5rLFxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTUtXFx0LmRlbGxpbmtcXHQ9IGFtdF9kZWxsaW5rLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0MjoyNC41NjQ4MDIxNzRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDk1MTUwNTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDpcblxuKipBTVQgRHJpdmVyIExpbmsgQ3JlYXRpb24gQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGFuZCBpdCdzIGNsZWFybHkgdGhlIGAubmV3bGlua2AgY2FsbGJhY2sgZm9yIHRoZSBgcnRubF9saW5rX29wc2Agc3RydWN0dXJlIHdpdGhpbiB0aGUgQU1UIGRyaXZlci4gTWFrZXMgcGVyZmVjdCBzZW5zZS4gIFRoYXQgbWVhbnMgdGhpcyB0aGluZyBpcyB0cmlnZ2VyZWQgd2hlbiBhIG5ldyBsaW5rIGlzIGNyZWF0ZWQsIHdoaWNoLCBvZiBjb3Vyc2UsIG1lYW5zIG5ldGxpbmsgaXMgdGhlIHBhdGh3YXkgLSBgUlRNX05FV0xJTktgIG1lc3NhZ2VzLCBzcGVjaWZpY2FsbHkuIE5vIHN1cnByaXNlcyB0aGVyZS4gTm93LCBiZWZvcmUgSSBkaXZlIGRlZXBlciwgaXQncyBhIGdvb2QgdGltZSB0byBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIEFNVCBkcml2ZXIgaXMgZXZlbiAqZW5hYmxlZCogaW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4gR290dGEgZWxpbWluYXRlIHRoZSBvYnZpb3VzIGJlZm9yZSBkaWdnaW5nIGludG8gdGhlIGRldGFpbHMuIFRoYXQgS2NvbmZpZyBjaGVjayB3aWxsIHRlbGwgbWUgaWYgSSdtIGV2ZW4gZGVhbGluZyB3aXRoIGEgbGl2ZSBkcml2ZXIgaW4gdGhpcyBidWlsZCwgb3IganVzdCBzb21lIGRlYWQgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYxOCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjI4LjA1OTk1NDcxNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjczNzgxMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQU1UXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0yODk9Y29uZmlnIFBGQ1BcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWctMzAxLVxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzAyOmNvbmZpZyBBTVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTMwMy1cXHR0cmlzdGF0ZSBcXFwiQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcgKEFNVClcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjI4LjE1MjY5OTg2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3ODQ3NjYwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGlzIGlkZW50aWZpZWQgYXMgYEFNVGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbW1lZGlhdGVseSBkZWx2ZSBpbnRvIGl0cyBkZXBlbmRlbmNpZXMuIEl0J3Mgc3RhbmRhcmQgcHJhY3RpY2UuIEJlZm9yZSBJIGV2ZW4gYmVnaW4gdG8gaW1wbGVtZW50IGNoYW5nZXMgb3IgdHJvdWJsZXNob290LCBJICpoYXZlKiB0byB1bmRlcnN0YW5kIHdoYXQgYEFNVGAgcmVsaWVzIG9uLiBBIGRlcGVuZGVuY3kgYW5hbHlzaXMgaXMgY3J1Y2lhbCBhdCB0aGlzIHBvaW50LiBJIG5lZWQgdG8ga25vdyB0aGUgcmlwcGxlIGVmZmVjdHM7IHdoaWNoIG90aGVyIG1vZHVsZXMsIHNlcnZpY2VzLCBvciBjb25maWd1cmF0aW9ucyB3b3VsZCBiZSBpbXBhY3RlZCBpZiBJIHdlcmUgdG8gbW9kaWZ5IG9yIHJlbW92ZSB0aGlzLiBJZ25vcmluZyB0aGlzIHN0YWdlIGNvdWxkIGxlYWQgdG8gY2FzY2FkaW5nIGZhaWx1cmVzIGFuZCB1bmV4cGVjdGVkIGJlaGF2aW9yLCBzbyBJIG5lZWQgdG8gY2hlY2sgZm9yIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk2NiwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjMwLjkzNzQ2OTIxMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTg3NDkwNjY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBBTVRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWc9Mjg5PWNvbmZpZyBQRkNQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTMwMS1cXG5kcml2ZXJzL25ldC9LY29uZmlnOjMwMjpjb25maWcgQU1UXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDMtXFx0dHJpc3RhdGUgXFxcIkF1dG9tYXRpYyBNdWx0aWNhc3QgVHVubmVsaW5nIChBTVQpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0MjozMy4xMjQ5NjU0MTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODgwNTI0NzE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIEFNVCBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgQU1UIEtjb25maWcuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk9rYXksIGxldCdzIGRpc3NlY3QgdGhpcyBhbmQgc2VlIHdoYXQncyB3aGF0LlwiIEkgd2FudCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIHN0cnVjdHVyZWQsIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBhcmUsIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBJJ20gbG9va2luZyBmb3IgdGhlIGNvcmUgZWxlbWVudHM6IHRoZSBgQ09ORklHX0FNVGAgaXRzZWxmLCBhbnkgc3ViLWNvbmZpZ3VyYXRpb25zIGl0IGludHJvZHVjZXMsIGFuZCBjcnVjaWFsbHksIGhvdyBpdCB0aWVzIGludG8gdGhlIGJyb2FkZXIgc3lzdGVtIGNvbmZpZ3VyYXRpb24uIEFyZSB3ZSBkZWFsaW5nIHdpdGggcGxhdGZvcm0tc3BlY2lmaWMgb3B0aW9ucz8gQXJlIHRoZXJlIGRpZmZlcmVudCBBTVQgaW1wbGVtZW50YXRpb25zIG9yIHZlcnNpb25zIGJlaW5nIHN1cHBvcnRlZD8gSSdtIGFscmVhZHkgYW50aWNpcGF0aW5nIGNvbmRpdGlvbmFscyBiYXNlZCBvbiBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIEJJT1Mgc3VwcG9ydC4gSSdsbCBiZSBsb29raW5nIHRvIHNlZSBpZiB0aGVyZSBhcmUgaG9va3MgZm9yIHNwZWNpZmljIEFNVCBmZWF0dXJlcyAtIHJlbW90ZSBjb250cm9sLCBwb3dlciBtYW5hZ2VtZW50LCBLVk0gLSBhbmQgaWYgdGhvc2UgYXJlIGdyYW51bGFybHkgY29udHJvbGxlZC4gVGhlIGdvYWwgaXMgdG8gZ2V0IGEgc29saWQgdW5kZXJzdGFuZGluZyBvZiB0aGUgZGVzaWduIHNwYWNlOiB3aGF0J3MgZW5hYmxlZCwgd2hhdCdzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGFuZCB3aGF0IGNob2ljZXMgYXJlIHByZXNlbnRlZCB0byB0aGUgZW5kLXVzZXIgb3Igc3lzdGVtIGludGVncmF0b3IuIFVsdGltYXRlbHksIEknbGwgYmUgbG9va2luZyB0byBxdWlja2x5IGFzc2VzcyB0aGUgQU1UIGZlYXR1cmUtc2V0IGluIHRoaXMgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIyNSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjM3LjAwNTQ5NDM4OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDI3NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAzMDA6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBwZmNwLlxcbiAzMDE6XFx0XFxuIDMwMjpcXHRjb25maWcgQU1UXFxuIDMwMzpcXHRcXHR0cmlzdGF0ZSBcXFwiQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcgKEFNVClcXFwiXFxuIDMwNDpcXHRcXHRkZXBlbmRzIG9uIElORVQgXFx1MDAyNlxcdTAwMjYgSVBfTVVMVElDQVNUXFxuIDMwNTpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMzA2OlxcdFxcdGhlbHBcXG4gMzA3OlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSBBTVQoQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcpXFxuIDMwODpcXHRcXHQgIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHByb3ZpZGUgbXVsdGljYXN0IHR1bm5lbGluZy5cXG4gMzA5OlxcdFxcdCAgVGhlcmUgYXJlIHR3byByb2xlcywgR2F0ZXdheSwgYW5kIFJlbGF5LlxcbiAzMTA6XFx0XFx0ICBHYXRld2F5IEVuY2Fwc3VsYXRlcyBJR01QL01MRCB0cmFmZmljIGZyb20gbGlzdGVuZXJzIHRvIHRoZSBSZWxheS5cXG4gMzExOlxcdFxcdCAgR2F0ZXdheSBEZWNhcHN1bGF0ZXMgbXVsdGljYXN0IHRyYWZmaWMgZnJvbSB0aGUgUmVsYXkgdG8gTGlzdGVuZXJzLlxcbiAzMTI6XFx0XFx0ICBSZWxheSBFbmNhcHN1bGF0ZXMgbXVsdGljYXN0IHRyYWZmaWMgZnJvbSBTb3VyY2VzIHRvIEdhdGV3YXkuXFxuIDMxMzpcXHRcXHQgIFJlbGF5IERlY2Fwc3VsYXRlcyBJR01QL01MRCB0cmFmZmljIGZyb20gR2F0ZXdheS5cXG4gMzE0OlxcdFxcbiAzMTU6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVycyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAzMTY6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBhbXQuXFxuIDMxNzpcXHRcXG4gMzE4OlxcdGNvbmZpZyBNQUNTRUNcXG4gMzE5OlxcdFxcdHRyaXN0YXRlIFxcXCJJRUVFIDgwMi4xQUUgTUFDLWxldmVsIGVuY3J5cHRpb24gKE1BQ3NlYylcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjM3LjAwNTYwMDk1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NjYxNTg2NDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQU1UIENvbmZpZ3VyYXRpb24gYW5kIE5ldGxpbmsgRW50cnlwb2ludCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYEFNVGAgY29uZmlndXJhdGlvbiBhbmQgaXRzIHJlbGF0aW9uc2hpcCB0byB0aGUgbmV0d29yayBzdGFjay4gSXQgZGVwZW5kcyBvbiBgSU5FVGAgYW5kIGBJUF9NVUxUSUNBU1RgLCB3aGljaCBhcmUgcHJldHR5IHN0YW5kYXJkLCBidXQgSSBzaG91bGQgcHJvYmFibHkgZXhwbGljaXRseSBpbmNsdWRlIGBJUF9NVUxUSUNBU1RgIGFsb25nIHdpdGggYEFNVGAganVzdCB0byBiZSBzYWZlIGFuZCBtYWtlIHN1cmUgdGhlIHNldHVwIGlzIGNvbXBsZXRlLiBUaGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgYGFtdF9uZXdsaW5rYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBhbnl0aGluZyBlbHNlIHJlbGV2YW50IHRvIGZsYWcuXG5cblRoaXMgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgY2hlY2s6IGBpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSkgcmV0dXJuIGVycjtgLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc28gaXQncyBzaWduaWZpY2FudC4gVGhlIG1haW4gZm9jdXMgc3ltYm9sIGlzIGRlZmluaXRlbHkgYGFtdF9uZXdsaW5rYC5cblxuTm93LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSBgQU1UYCBkb2Vzbid0IG5lZWQgYW55IG90aGVyIGRlcGVuZGVuY2llcy4gRG91YmxlLWNoZWNraW5nLCB5ZXAsIGl0J3MganVzdCBgSU5FVCBcdTAwMjZcdTAwMjYgSVBfTVVMVElDQVNUYCwgd2hpY2ggSSdtIGNvdmVyaW5nLlxuXG5JIHdhcyBpbml0aWFsbHkgY29uY2VybmVkIGFib3V0IGBhbXRfbmV3bGlua2AgYmVpbmcgc3RhdGljLiBUaGUgcHJvbXB0IGhhcyB0aGF0IG5vdGUgYWJvdXQgcHJlZmVycmluZyBub24tc3RhdGljIGZ1bmN0aW9ucyBmb3IgQVBJIGVudHJ5IHBvaW50cyBiZWNhdXNlIG9mIHN5bWJvbCBhZGRyZXNzZXMgYW5kIGlubGluaW5nLiBIb3dldmVyLCBsb29raW5nIGF0IHRoZSBjb2RlLCBgYW10X25ld2xpbmtgIGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciBgLm5ld2xpbmsgPSBhbXRfbmV3bGlua2AuIFRoYXQgbWVhbnMgaXQncyAqbm90KiBpbmxpbmVkLCBhbmQgaXQgKmRvZXMqIGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcywgbWFraW5nIGl0IGEgcGVyZmVjdGx5IHZhbGlkIG5ldGxpbmsgZW50cnkgcG9pbnQuIEluY2x1ZGluZyBgYW10X25ld2xpbmtgIHNob3VsZCBiZSBmaW5lLCBhbmQgSSBkb24ndCByZWFsbHkgbmVlZCB0byBpbmNsdWRlIGBhbXRfbGlua19vcHNgLlxuQWx0aG91Z2ggYGFtdF9uZXdsaW5rYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggbWVhbnMgaXQgbWlnaHQgbm90IGJlIGV4cG9ydGVkLCBzeXprYWxsZXIgc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gZnV6eiBpdCBhcyBpdCBpcyBub3QgaW5saW5lZC5cblxuVGhlcmVmb3JlLCBJIHRoaW5rIEknbSBnb29kIHRvIGdvIHdpdGggaW5jbHVkaW5nIGBBTVRgIGFuZCBgSVBfTVVMVElDQVNUYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgzNywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjQ0LjY2NzE5MDE2NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA3NzYxMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYW10X25ld2xpbmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvYW10LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvYW10LmM9MzE3ND1zdGF0aWMgaW50IGFtdF92YWxpZGF0ZShzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sXFxuLS1cXG5kcml2ZXJzL25ldC9hbXQuYy0zMjEzLVxcbmRyaXZlcnMvbmV0L2FtdC5jOjMyMTQ6c3RhdGljIGludCBhbXRfbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2FtdC5jLTMyMTUtXFx0XFx0ICAgICAgIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXFxuLS1cXG5kcml2ZXJzL25ldC9hbXQuYz0zMzg3PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBhbXRfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTMtXFx0LnZhbGlkYXRlXFx0PSBhbXRfdmFsaWRhdGUsXFxuZHJpdmVycy9uZXQvYW10LmM6MzM5NDpcXHQubmV3bGlua1xcdD0gYW10X25ld2xpbmssXFxuZHJpdmVycy9uZXQvYW10LmMtMzM5NS1cXHQuZGVsbGlua1xcdD0gYW10X2RlbGxpbmssXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjQ0Ljc0Nzk3MjI0OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTE4MjI2ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIHN1bW1hcml6ZWQgZnJvbSB0aGF0IHByb21wdCwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipDaGVja2luZyBmb3IgTm9uLVN0YXRpYyBGdW5jdGlvbnMgaW4gYGRyaXZlcnMvbmV0L2FtdC5jYCoqXG5cbkFscmlnaHQsIEknbSBkaWdnaW5nIGludG8gYGRyaXZlcnMvbmV0L2FtdC5jYCBhZ2Fpbi4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIHRvIHZlcmlmeSB0aGUgZnVuY3Rpb24gc2NvcGUgd2l0aGluIHRoYXQgZmlsZS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGFueSBvZiB0aGUgZnVuY3Rpb25zIGFyZSBkZWNsYXJlZCBhcyAqbm9uLXN0YXRpYyouIEdpdmVuIHRoZSBjb250ZXh0LCBJJ20gbG9va2luZyBmb3IgYW55dGhpbmcgdGhhdCBtaWdodCBoYXZlIHVuaW50ZW5kZWQgZXh0ZXJuYWwgbGlua2FnZSwgcGFydGljdWxhcmx5IGlmIHRoaXMgZHJpdmVyIGlzIHBhcnQgb2YgYSBsYXJnZXIgcHJvamVjdCBvciBrZXJuZWwuIFRoaXMgaXMgYW4gaW1wb3J0YW50IHN0ZXAgZm9yIGNoZWNraW5nIHBvdGVudGlhbCBmb3IgbmFtZSBjb2xsaXNpb25zLCBhbmQgZW5zdXJpbmcgcHJvcGVyIGVuY2Fwc3VsYXRpb24gb2YgdGhlIGRyaXZlcidzIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEkgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgaW50ZXJmYWNlcyBhcmUgd2VsbC1kZWZpbmVkIHRvIGltcHJvdmUgbW9kdWxhcml0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgzNywiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjQ3Ljg2NjIwMTA2NloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODUwOTA1ODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXlthLXpBLVowLTlfXSsgW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jPTM1PXN0YXRpYyBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqYW10X3dxO1xcbmRyaXZlcnMvbmV0L2FtdC5jLTM2LVxcbmRyaXZlcnMvbmV0L2FtdC5jOjM3OnN0YXRpYyBITElTVF9IRUFEKHNvdXJjZV9nY19saXN0KTtcXG5kcml2ZXJzL25ldC9hbXQuYy0zOC0vKiBMb2NrIGZvciBzb3VyY2VfZ2NfbGlzdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0Mjo0Ny45NTEyOTU1NVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzU5NTg3MTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIGFzc3VtaW5nIEknbSB0aGUgZXhwZXJ0IGFuZCByZWZsZWN0aW5nIG9uIGEgcG90ZW50aWFsIHJlZ2V4IGlzc3VlOlxuXG4qKlJlZ2V4IFJldmVsYXRpb24qKlxuXG5TaG9vdCwgaGFuZyBvbiBhIHNlY29uZC4gU29tZXRoaW5nJ3MgbmFnZ2luZyBhdCBtZS4gSSB3YXMgc28gc3VyZSBJIGhhZCB0aGF0IHBhdHRlcm4gbmFpbGVkIGRvd24sIGJ1dCBub3cgSSdtIGdldHRpbmcgYSBiYWQgZmVlbGluZy4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGF0IHJlZ2V4IEkganVzdCB1c2VkLiBJdCBzZWVtcyBsaWtlIGl0J3MgZmFsbGluZyBhcGFydCBvbiBzb21lIGVkZ2UgY2FzZXMgSSB0aG91Z2h0IEkgaGFkIGNvdmVyZWQuIEkgd2FzIHNvIHN1cmUgaXQgd2FzIGdvaW5nIHRvIGJlIHRoZSBlbGVnYW50IHNvbHV0aW9uLCBidXQgbm93LCBJIHN1c3BlY3QgSSd2ZSBtaXNzZWQgc29tZXRoaW5nLiBUaGVyZSdzIHByb2JhYmx5IGEgc3VidGxlIGZsYXcgaW4gdGhlIG1hdGNoaW5nIGxvZ2ljIHRoYXQgaXMgcHJvZHVjaW5nIHVuaW50ZW5kZWQgbWF0Y2hlcywgb3IgbWlzc2luZyBpbnRlbmRlZCBvbmVzLiBUaW1lIHRvIGJhY2t0cmFjaywgZGVidWcsIGFuZCBob3BlZnVsbHkgc2FsdmFnZSB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gZ2V0IHRoaXMgaXJvbmVkIG91dCBiZWZvcmUgSSBtYWtlIGEgYmlnIG1pc3Rha2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNjMsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjUxLjMxMDg4NzYxMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIxNDk2NTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5pbnQgW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0Mjo1MS4zNzMwNzkzMDZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMwNjMxOTEyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBSZWFzb25pbmcgZm9yIFNlbGVjdGluZyB0aGUgYGFtdF9uZXdsaW5rYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb24gdG8gdXNlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZ28gd2l0aCBgYW10X25ld2xpbmtgLiBTaW5jZSBpdCdzIGFzc2lnbmVkIHRvIGEgc3RydWN0LCBJJ20gcHJldHR5IGNlcnRhaW4gdGhlIGNvbXBpbGVyIHdvbid0IGlubGluZSBpdCwgd2hpY2ggaXMgaWRlYWwgaW4gdGhpcyBzaXR1YXRpb24uIEl0IHdpbGwgbWFpbnRhaW4gYSBnb29kIHNlcGFyYXRpb24gb2YgY29uY2VybnMuXG5cbk5vdywgaG9sZCBvbiBhIHNlY29uZC4uLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBXaGlsZSBgcnRubF9uZXdsaW5rYCBpcyB0aGUgbW9yZSBnZW5lcmFsIGVudHJ5IHBvaW50IGZvciBuZXcgbGlua3MsIGBhbXRfbmV3bGlua2AgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBBTVQuIFNvLCB5ZWFoLCBJJ20gZGVmaW5pdGVseSBnb2luZyB3aXRoIGBhbXRfbmV3bGlua2AuIEl0J3MgdGhlIHJpZ2h0IGxldmVsIG9mIGFic3RyYWN0aW9uLlxuXG5HaXZlbiB0aGUgY2hhbmdlLCBJIGtub3cgSSdtIGRlYWxpbmcgd2l0aCBgQU1UYCBhbmQgYElQX01VTFRJQ0FTVGAgY29uZmlndXJhdGlvbnMuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBpbiB0aGUgQU1UIGRyaXZlcidzIG5ldGxpbmsgY3JlYXRpb24gcHJvY2VzcyDigJMgc3BlY2lmaWNhbGx5LCB3aXRoaW4gYGFtdF9uZXdsaW5rYC4gVGhpcyBpcyBhIGNsZWFyLCBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgY29yZSBkcml2ZXIgbG9naWMgYW5kIHJlYWNoYWJsZSBjb2RlIHBhdGhzLiBJIHdpbGwga2VlcCBhbiBleWUgb24gYElQX01VTFRJQ0FTVGAgZHVyaW5nIHRoZSByZXZpZXcsIGp1c3QgdG8gZW5zdXJlIHRoYXQgaXRzIGZ1bmN0aW9uYWxpdHkgaXMgbWFpbnRhaW5lZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM5NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0Mjo1NS42Nzk0MDA2N1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk0ODg2MjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElQX01VTFRJQ0FTVFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2NC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L0tjb25maWctNC0jXFxubmV0L2lwdjQvS2NvbmZpZzo1OmNvbmZpZyBJUF9NVUxUSUNBU1RcXG5uZXQvaXB2NC9LY29uZmlnLTYtXFx0Ym9vbCBcXFwiSVA6IG11bHRpY2FzdGluZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDI6NTUuNzY4ODk0ODI0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0ODE0MjIwMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIG92ZXIgdGhpcyBwYXRjaC4gSXQncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBidXQgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgZnV6emluZyBvcHBvcnR1bml0aWVzIGl0IHByZXNlbnRzLiBZZXMsIHRoZSBrZXkgcGllY2UgaGVyZSBpcyBjb25maXJtZWQgdG8gYmUgYSBib29sZWFuLCB0aGF0IGBJUF9NVUxUSUNBU1RgIHZhbHVlLlxuXG5NeSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhYnNvbHV0ZWx5IHdvcnRoIHB1cnN1aW5nIHdpdGggZnV6emluZy4gTXkgcmVhc29uaW5nIGlzIHNvbGlkOiBUaGUgY29yZSBkcml2ZXIgbG9naWMgd2l0aGluIHRoZSBBTVQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGlzIGJlaW5nIG1vZGlmaWVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHZhbGlkYXRpb24gY2hlY2sgb24gdGhlIG5ldHdvcmsgbmFtZXNwYWNlLCBhbmQgdGhhdCdzIHNvbWV0aGluZyB3ZSBjYW4gZGVmaW5pdGVseSB0YXJnZXQgd2l0aCBmdXp6aW5nLiBUaGUgZmFjdCB0aGF0IHRoZSB0cmlnZ2VyIGlzIHJlYWNoYWJsZSB2aWEgYFJUTV9ORVdMSU5LYCBpcyBpbXBvcnRhbnQsIGJlY2F1c2UgYFJUTV9ORVdMSU5LYCBpcyBhIHdlbGwtdW5kZXJzdG9vZCBhbmQgZnJlcXVlbnRseSBmdXp6ZWQgbmV0bGluayBtZXNzYWdlIHR5cGUuXG5cblRoZXJlZm9yZSwgbXkgZmluYWwgcmVjb21tZW5kYXRpb24gaXM6IFdlIHNob3VsZCBmdXp6IHRoaXMuXG5cbkkgd2lsbCByZXR1cm4gdGhlIGZvbGxvd2luZzpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgdHJ1ZWBcbiogICBgRm9jdXNTeW1ib2xzYDogYFtcImFtdF9uZXdsaW5rXCJdYFxuKiAgIGBFbmFibGVDb25maWdzYDogYFtcIkFNVFwiLCBcIklQX01VTFRJQ0FTVFwiXWBcbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gY2hlY2sgaW4gdGhlIEFNVCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLlwiXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NjksIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDM6MDEuMjUwMzIwMTEzWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE3ODU1NDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBTVRcIixcbiAgICBcIklQX01VTFRJQ0FTVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFtdF9uZXdsaW5rXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gY2hlY2sgaW4gdGhlIEFNVCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFNVFwiLFxuICAgIFwiSVBfTVVMVElDQVNUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYW10X25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlcidzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 05:01:26 +0000 UTC FinishedAt: 2026-08-07 05:43:03 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "AMT", "IP_MULTICAST" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "AMT", "IP_MULTICAST" ], "series_id": "fb6788fc-3445-44d9-8e72-2190caa878cc" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "amt_newlink" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FNVCYjMzQ7LAogICAgJiMzNDtJUF9NVUxUSUNBU1QmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthbXRfbmV3bGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlciYjMzk7cyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDk4NzNiZjFiMDVmYzVlOGU4MjNmYWUyMTM1MzQ4YzEwNWU4NTE5ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDU6NDI6MTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYW10LmMgYi9kcml2ZXJzL25ldC9hbXQuY1xuaW5kZXggMTgyYTQxZDU5YTc1ZC4uNzY0NWNlM2EyOWFkOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2FtdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9hbXQuY1xuQEAgLTMyMjEsNiAmIzQzOzMyMjEsOSBAQCBzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRzdHJ1Y3QgbmxhdHRyICoqdGIgPSBwYXJhbXMtXHUwMDNldGI7XG4gXHRpbnQgZXJyID0gLUVJTlZBTDtcbiBcbiYjNDM7XHRpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSlcbiYjNDM7XHRcdHJldHVybiBlcnI7XG4mIzQzO1xuIFx0YW10LVx1MDAzZW5ldCA9IGxpbmtfbmV0O1xuIFx0YW10LVx1MDAzZW1vZGUgPSBubGFfZ2V0X3UzMihkYXRhW0lGTEFfQU1UX01PREVdKTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QU1UJiMzNDssCiAgICAmIzM0O0lQX01VTFRJQ0FTVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FtdF9uZXdsaW5rJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXR3b3JrIG5hbWVzcGFjZSB2YWxpZGF0aW9uIGNoZWNrIGluIHRoZSBBTVQgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OTg3M2JmMWIwNWZjNWU4ZTgyM2ZhZTIxMzUzNDhjMTA1ZTg1MTlmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgNyAwNTo0MjoxNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2FtdC5jIGIvZHJpdmVycy9uZXQvYW10LmMKaW5kZXggMTgyYTQxZDU5YTc1ZC4uNzY0NWNlM2EyOWFkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYW10LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvYW10LmMKQEAgLTMyMjEsNiAmIzQzOzMyMjEsOSBAQCBzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3RydWN0IG5sYXR0ciAqKnRiID0gcGFyYW1zLSZndDt0YjsKIAlpbnQgZXJyID0gLUVJTlZBTDsKIAomIzQzOwlpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSkKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiAJYW10LSZndDtuZXQgPSBsaW5rX25ldDsKIAlhbXQtJmd0O21vZGUgPSBubGFfZ2V0X3UzMihkYXRhW0lGTEFfQU1UX01PREVdKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQ2CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQU1UIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2FtdC5jYC4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgbmV3IGNoZWNrIGFkZGVkIHdpdGhpbiBgYW10X25ld2xpbmtgOiBgaWYgKCFuZXRfZXEobGlua19uZXQsIGRldl9uZXQoZGV2KSkpIHJldHVybiBlcnI7YC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzcGVjaWZpYyBvbmUgYXQgdGhhdCwgYWZmZWN0aW5nIGhvdyB0aGUgQU1UIGRyaXZlciwgQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcsIGlzIGhhbmRsaW5nIGl0cyBsaW5rIHNldHVwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgY29uZGl0aW9uLgoKTXkgbmV4dCBtb3ZlIGlzIHRvIGRpdmUgZGVlcGVyIGludG8gYGFtdF9uZXdsaW5rYCBpdHNlbGYgYW5kIGdldCBhIGJldHRlciBncmlwIG9uIGhvdyBBTVQgaXMgY29uZmlndXJlZCBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIGtlcm5lbC4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGxvY2F0ZSB0aGUgZXhhY3QgZGVmaW5pdGlvbiBvZiBgYW10X25ld2xpbmtgLCBtYWtpbmcgc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nLiBUaGVuLCB0byBiZSB0aG9yb3VnaCwgSSB3aWxsIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQU1UIHVzaW5nIEtjb25maWc7IHRoZSBjb25maWcgaW1wbGljYXRpb25zIHdpbGwgYWZmZWN0IHRoZSBwb3NzaWJsZSBleGVjdXRpb24gcGF0aHMgb2YgdGhpcyBzZWN0aW9uIG9mIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YW10X25ld2xpbmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYz0zMTc0PXN0YXRpYyBpbnQgYW10X3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMjEzLVxuZHJpdmVycy9uZXQvYW10LmM6MzIxNDpzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9hbXQuYy0zMjE1LVx0XHQgICAgICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYz0zMzg3PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBhbXRfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHtcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMzkzLVx0LnZhbGlkYXRlXHQ9IGFtdF92YWxpZGF0ZSxcbmRyaXZlcnMvbmV0L2FtdC5jOjMzOTQ6XHQubmV3bGlua1x0PSBhbXRfbmV3bGluayxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTUtXHQuZGVsbGlua1x0PSBhbXRfZGVsbGluayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjE4CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqQU1UIERyaXZlciBMaW5rIENyZWF0aW9uIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGFuZCBpdCYjMzk7cyBjbGVhcmx5IHRoZSBgLm5ld2xpbmtgIGNhbGxiYWNrIGZvciB0aGUgYHJ0bmxfbGlua19vcHNgIHN0cnVjdHVyZSB3aXRoaW4gdGhlIEFNVCBkcml2ZXIuIE1ha2VzIHBlcmZlY3Qgc2Vuc2UuICBUaGF0IG1lYW5zIHRoaXMgdGhpbmcgaXMgdHJpZ2dlcmVkIHdoZW4gYSBuZXcgbGluayBpcyBjcmVhdGVkLCB3aGljaCwgb2YgY291cnNlLCBtZWFucyBuZXRsaW5rIGlzIHRoZSBwYXRod2F5IC0gYFJUTV9ORVdMSU5LYCBtZXNzYWdlcywgc3BlY2lmaWNhbGx5LiBObyBzdXJwcmlzZXMgdGhlcmUuIE5vdywgYmVmb3JlIEkgZGl2ZSBkZWVwZXIsIGl0JiMzOTtzIGEgZ29vZCB0aW1lIHRvIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZy4gSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgQU1UIGRyaXZlciBpcyBldmVuICplbmFibGVkKiBpbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLiBHb3R0YSBlbGltaW5hdGUgdGhlIG9idmlvdXMgYmVmb3JlIGRpZ2dpbmcgaW50byB0aGUgZGV0YWlscy4gVGhhdCBLY29uZmlnIGNoZWNrIHdpbGwgdGVsbCBtZSBpZiBJJiMzOTttIGV2ZW4gZGVhbGluZyB3aXRoIGEgbGl2ZSBkcml2ZXIgaW4gdGhpcyBidWlsZCwgb3IganVzdCBzb21lIGRlYWQgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQU1UJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTI4OT1jb25maWcgUEZDUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMzAxLVxuZHJpdmVycy9uZXQvS2NvbmZpZzozMDI6Y29uZmlnIEFNVFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDMtXHR0cmlzdGF0ZSBcJiMzNDtBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZyAoQU1UKVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NjYKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIGFuZCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgaWRlbnRpZmllZCBhcyBgQU1UYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IGRlbHZlIGludG8gaXRzIGRlcGVuZGVuY2llcy4gSXQmIzM5O3Mgc3RhbmRhcmQgcHJhY3RpY2UuIEJlZm9yZSBJIGV2ZW4gYmVnaW4gdG8gaW1wbGVtZW50IGNoYW5nZXMgb3IgdHJvdWJsZXNob290LCBJICpoYXZlKiB0byB1bmRlcnN0YW5kIHdoYXQgYEFNVGAgcmVsaWVzIG9uLiBBIGRlcGVuZGVuY3kgYW5hbHlzaXMgaXMgY3J1Y2lhbCBhdCB0aGlzIHBvaW50LiBJIG5lZWQgdG8ga25vdyB0aGUgcmlwcGxlIGVmZmVjdHM7IHdoaWNoIG90aGVyIG1vZHVsZXMsIHNlcnZpY2VzLCBvciBjb25maWd1cmF0aW9ucyB3b3VsZCBiZSBpbXBhY3RlZCBpZiBJIHdlcmUgdG8gbW9kaWZ5IG9yIHJlbW92ZSB0aGlzLiBJZ25vcmluZyB0aGlzIHN0YWdlIGNvdWxkIGxlYWQgdG8gY2FzY2FkaW5nIGZhaWx1cmVzIGFuZCB1bmV4cGVjdGVkIGJlaGF2aW9yLCBzbyBJIG5lZWQgdG8gY2hlY2sgZm9yIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQU1UJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWc9Mjg5PWNvbmZpZyBQRkNQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDEtXG5kcml2ZXJzL25ldC9LY29uZmlnOjMwMjpjb25maWcgQU1UXG5kcml2ZXJzL25ldC9LY29uZmlnLTMwMy1cdHRyaXN0YXRlIFwmIzM0O0F1dG9tYXRpYyBNdWx0aWNhc3QgVHVubmVsaW5nIChBTVQpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIyNQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgQU1UIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIEFNVCBLY29uZmlnLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtPa2F5LCBsZXQmIzM5O3MgZGlzc2VjdCB0aGlzIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LiYjMzQ7IEkgd2FudCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIHN0cnVjdHVyZWQsIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBhcmUsIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBjb3JlIGVsZW1lbnRzOiB0aGUgYENPTkZJR19BTVRgIGl0c2VsZiwgYW55IHN1Yi1jb25maWd1cmF0aW9ucyBpdCBpbnRyb2R1Y2VzLCBhbmQgY3J1Y2lhbGx5LCBob3cgaXQgdGllcyBpbnRvIHRoZSBicm9hZGVyIHN5c3RlbSBjb25maWd1cmF0aW9uLiBBcmUgd2UgZGVhbGluZyB3aXRoIHBsYXRmb3JtLXNwZWNpZmljIG9wdGlvbnM/IEFyZSB0aGVyZSBkaWZmZXJlbnQgQU1UIGltcGxlbWVudGF0aW9ucyBvciB2ZXJzaW9ucyBiZWluZyBzdXBwb3J0ZWQ/IEkmIzM5O20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgY29uZGl0aW9uYWxzIGJhc2VkIG9uIGhhcmR3YXJlIGNhcGFiaWxpdGllcyBhbmQgQklPUyBzdXBwb3J0LiBJJiMzOTtsbCBiZSBsb29raW5nIHRvIHNlZSBpZiB0aGVyZSBhcmUgaG9va3MgZm9yIHNwZWNpZmljIEFNVCBmZWF0dXJlcyAtIHJlbW90ZSBjb250cm9sLCBwb3dlciBtYW5hZ2VtZW50LCBLVk0gLSBhbmQgaWYgdGhvc2UgYXJlIGdyYW51bGFybHkgY29udHJvbGxlZC4gVGhlIGdvYWwgaXMgdG8gZ2V0IGEgc29saWQgdW5kZXJzdGFuZGluZyBvZiB0aGUgZGVzaWduIHNwYWNlOiB3aGF0JiMzOTtzIGVuYWJsZWQsIHdoYXQmIzM5O3MgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHdoYXQgY2hvaWNlcyBhcmUgcHJlc2VudGVkIHRvIHRoZSBlbmQtdXNlciBvciBzeXN0ZW0gaW50ZWdyYXRvci4gVWx0aW1hdGVseSwgSSYjMzk7bGwgYmUgbG9va2luZyB0byBxdWlja2x5IGFzc2VzcyB0aGUgQU1UIGZlYXR1cmUtc2V0IGluIHRoaXMgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzMDA6XHRcdCAgd2lsbCBiZSBjYWxsZWQgcGZjcC5cbiAzMDE6XHRcbiAzMDI6XHRjb25maWcgQU1UXG4gMzAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZyAoQU1UKVwmIzM0O1xuIDMwNDpcdFx0ZGVwZW5kcyBvbiBJTkVUIFx1MDAyNlx1MDAyNiBJUF9NVUxUSUNBU1RcbiAzMDU6XHRcdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuIDMwNjpcdFx0aGVscFxuIDMwNzpcdFx0ICBUaGlzIGFsbG93cyBvbmUgdG8gY3JlYXRlIEFNVChBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZylcbiAzMDg6XHRcdCAgdmlydHVhbCBpbnRlcmZhY2VzIHRoYXQgcHJvdmlkZSBtdWx0aWNhc3QgdHVubmVsaW5nLlxuIDMwOTpcdFx0ICBUaGVyZSBhcmUgdHdvIHJvbGVzLCBHYXRld2F5LCBhbmQgUmVsYXkuXG4gMzEwOlx0XHQgIEdhdGV3YXkgRW5jYXBzdWxhdGVzIElHTVAvTUxEIHRyYWZmaWMgZnJvbSBsaXN0ZW5lcnMgdG8gdGhlIFJlbGF5LlxuIDMxMTpcdFx0ICBHYXRld2F5IERlY2Fwc3VsYXRlcyBtdWx0aWNhc3QgdHJhZmZpYyBmcm9tIHRoZSBSZWxheSB0byBMaXN0ZW5lcnMuXG4gMzEyOlx0XHQgIFJlbGF5IEVuY2Fwc3VsYXRlcyBtdWx0aWNhc3QgdHJhZmZpYyBmcm9tIFNvdXJjZXMgdG8gR2F0ZXdheS5cbiAzMTM6XHRcdCAgUmVsYXkgRGVjYXBzdWxhdGVzIElHTVAvTUxEIHRyYWZmaWMgZnJvbSBHYXRld2F5LlxuIDMxNDpcdFxuIDMxNTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVycyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxuIDMxNjpcdFx0ICB3aWxsIGJlIGNhbGxlZCBhbXQuXG4gMzE3Olx0XG4gMzE4Olx0Y29uZmlnIE1BQ1NFQ1xuIDMxOTpcdFx0dHJpc3RhdGUgXCYjMzQ7SUVFRSA4MDIuMUFFIE1BQy1sZXZlbCBlbmNyeXB0aW9uIChNQUNzZWMpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MzcKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAzNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBTVQgQ29uZmlndXJhdGlvbiBhbmQgTmV0bGluayBFbnRyeXBvaW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBBTVRgIGNvbmZpZ3VyYXRpb24gYW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIG5ldHdvcmsgc3RhY2suIEl0IGRlcGVuZHMgb24gYElORVRgIGFuZCBgSVBfTVVMVElDQVNUYCwgd2hpY2ggYXJlIHByZXR0eSBzdGFuZGFyZCwgYnV0IEkgc2hvdWxkIHByb2JhYmx5IGV4cGxpY2l0bHkgaW5jbHVkZSBgSVBfTVVMVElDQVNUYCBhbG9uZyB3aXRoIGBBTVRgIGp1c3QgdG8gYmUgc2FmZSBhbmQgbWFrZSBzdXJlIHRoZSBzZXR1cCBpcyBjb21wbGV0ZS4gVGhlIGtleSBmdW5jdGlvbiBoZXJlIGlzIGBhbXRfbmV3bGlua2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlJiMzOTtzIGFueXRoaW5nIGVsc2UgcmVsZXZhbnQgdG8gZmxhZy4KClRoaXMgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgY2hlY2s6IGBpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSkgcmV0dXJuIGVycjtgLiBUaGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIGl0JiMzOTtzIHNpZ25pZmljYW50LiBUaGUgbWFpbiBmb2N1cyBzeW1ib2wgaXMgZGVmaW5pdGVseSBgYW10X25ld2xpbmtgLgoKTm93LCBsZXQmIzM5O3MganVzdCBtYWtlIHN1cmUgYEFNVGAgZG9lc24mIzM5O3QgbmVlZCBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLiBEb3VibGUtY2hlY2tpbmcsIHllcCwgaXQmIzM5O3MganVzdCBgSU5FVCAmYW1wOyZhbXA7IElQX01VTFRJQ0FTVGAsIHdoaWNoIEkmIzM5O20gY292ZXJpbmcuCgpJIHdhcyBpbml0aWFsbHkgY29uY2VybmVkIGFib3V0IGBhbXRfbmV3bGlua2AgYmVpbmcgc3RhdGljLiBUaGUgcHJvbXB0IGhhcyB0aGF0IG5vdGUgYWJvdXQgcHJlZmVycmluZyBub24tc3RhdGljIGZ1bmN0aW9ucyBmb3IgQVBJIGVudHJ5IHBvaW50cyBiZWNhdXNlIG9mIHN5bWJvbCBhZGRyZXNzZXMgYW5kIGlubGluaW5nLiBIb3dldmVyLCBsb29raW5nIGF0IHRoZSBjb2RlLCBgYW10X25ld2xpbmtgIGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciBgLm5ld2xpbmsgPSBhbXRfbmV3bGlua2AuIFRoYXQgbWVhbnMgaXQmIzM5O3MgKm5vdCogaW5saW5lZCwgYW5kIGl0ICpkb2VzKiBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MsIG1ha2luZyBpdCBhIHBlcmZlY3RseSB2YWxpZCBuZXRsaW5rIGVudHJ5IHBvaW50LiBJbmNsdWRpbmcgYGFtdF9uZXdsaW5rYCBzaG91bGQgYmUgZmluZSwgYW5kIEkgZG9uJiMzOTt0IHJlYWxseSBuZWVkIHRvIGluY2x1ZGUgYGFtdF9saW5rX29wc2AuCkFsdGhvdWdoIGBhbXRfbmV3bGlua2AgaXMgYSBzdGF0aWMgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0IG1pZ2h0IG5vdCBiZSBleHBvcnRlZCwgc3l6a2FsbGVyIHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIGZ1enogaXQgYXMgaXQgaXMgbm90IGlubGluZWQuCgpUaGVyZWZvcmUsIEkgdGhpbmsgSSYjMzk7bSBnb29kIHRvIGdvIHdpdGggaW5jbHVkaW5nIGBBTVRgIGFuZCBgSVBfTVVMVElDQVNUYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YW10X25ld2xpbmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9hbXQuYz0zMTc0PXN0YXRpYyBpbnQgYW10X3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMjEzLVxuZHJpdmVycy9uZXQvYW10LmM6MzIxNDpzdGF0aWMgaW50IGFtdF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9hbXQuYy0zMjE1LVx0XHQgICAgICAgc3RydWN0IHJ0bmxfbmV3bGlua19wYXJhbXMgKnBhcmFtcyxcbi0tXG5kcml2ZXJzL25ldC9hbXQuYz0zMzg3PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBhbXRfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHtcbi0tXG5kcml2ZXJzL25ldC9hbXQuYy0zMzkzLVx0LnZhbGlkYXRlXHQ9IGFtdF92YWxpZGF0ZSxcbmRyaXZlcnMvbmV0L2FtdC5jOjMzOTQ6XHQubmV3bGlua1x0PSBhbXRfbmV3bGluayxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTUtXHQuZGVsbGlua1x0PSBhbXRfZGVsbGluayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgzNwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcyBzdW1tYXJpemVkIGZyb20gdGhhdCBwcm9tcHQsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkNoZWNraW5nIGZvciBOb24tU3RhdGljIEZ1bmN0aW9ucyBpbiBgZHJpdmVycy9uZXQvYW10LmNgKioKCkFscmlnaHQsIEkmIzM5O20gZGlnZ2luZyBpbnRvIGBkcml2ZXJzL25ldC9hbXQuY2AgYWdhaW4uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0byB2ZXJpZnkgdGhlIGZ1bmN0aW9uIHNjb3BlIHdpdGhpbiB0aGF0IGZpbGUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgYXMgKm5vbi1zdGF0aWMqLiBHaXZlbiB0aGUgY29udGV4dCwgSSYjMzk7bSBsb29raW5nIGZvciBhbnl0aGluZyB0aGF0IG1pZ2h0IGhhdmUgdW5pbnRlbmRlZCBleHRlcm5hbCBsaW5rYWdlLCBwYXJ0aWN1bGFybHkgaWYgdGhpcyBkcml2ZXIgaXMgcGFydCBvZiBhIGxhcmdlciBwcm9qZWN0IG9yIGtlcm5lbC4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgc3RlcCBmb3IgY2hlY2tpbmcgcG90ZW50aWFsIGZvciBuYW1lIGNvbGxpc2lvbnMsIGFuZCBlbnN1cmluZyBwcm9wZXIgZW5jYXBzdWxhdGlvbiBvZiB0aGUgZHJpdmVyJiMzOTtzIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEkgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgaW50ZXJmYWNlcyBhcmUgd2VsbC1kZWZpbmVkIHRvIGltcHJvdmUgbW9kdWxhcml0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XlthLXpBLVowLTlfXSYjNDM7IFthLXpBLVowLTlfXSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvYW10LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvYW10LmM9MzU9c3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICphbXRfd3E7XG5kcml2ZXJzL25ldC9hbXQuYy0zNi1cbmRyaXZlcnMvbmV0L2FtdC5jOjM3OnN0YXRpYyBITElTVF9IRUFEKHNvdXJjZV9nY19saXN0KTtcbmRyaXZlcnMvbmV0L2FtdC5jLTM4LS8qIExvY2sgZm9yIHNvdXJjZV9nY19saXN0ICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNjMKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIHRoZSBzdW1tYXJ5LCBhc3N1bWluZyBJJiMzOTttIHRoZSBleHBlcnQgYW5kIHJlZmxlY3Rpbmcgb24gYSBwb3RlbnRpYWwgcmVnZXggaXNzdWU6CgoqKlJlZ2V4IFJldmVsYXRpb24qKgoKU2hvb3QsIGhhbmcgb24gYSBzZWNvbmQuIFNvbWV0aGluZyYjMzk7cyBuYWdnaW5nIGF0IG1lLiBJIHdhcyBzbyBzdXJlIEkgaGFkIHRoYXQgcGF0dGVybiBuYWlsZWQgZG93biwgYnV0IG5vdyBJJiMzOTttIGdldHRpbmcgYSBiYWQgZmVlbGluZy4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGF0IHJlZ2V4IEkganVzdCB1c2VkLiBJdCBzZWVtcyBsaWtlIGl0JiMzOTtzIGZhbGxpbmcgYXBhcnQgb24gc29tZSBlZGdlIGNhc2VzIEkgdGhvdWdodCBJIGhhZCBjb3ZlcmVkLiBJIHdhcyBzbyBzdXJlIGl0IHdhcyBnb2luZyB0byBiZSB0aGUgZWxlZ2FudCBzb2x1dGlvbiwgYnV0IG5vdywgSSBzdXNwZWN0IEkmIzM5O3ZlIG1pc3NlZCBzb21ldGhpbmcuIFRoZXJlJiMzOTtzIHByb2JhYmx5IGEgc3VidGxlIGZsYXcgaW4gdGhlIG1hdGNoaW5nIGxvZ2ljIHRoYXQgaXMgcHJvZHVjaW5nIHVuaW50ZW5kZWQgbWF0Y2hlcywgb3IgbWlzc2luZyBpbnRlbmRlZCBvbmVzLiBUaW1lIHRvIGJhY2t0cmFjaywgZGVidWcsIGFuZCBob3BlZnVsbHkgc2FsdmFnZSB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gZ2V0IHRoaXMgaXJvbmVkIG91dCBiZWZvcmUgSSBtYWtlIGEgYmlnIG1pc3Rha2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA1OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XmludCBbYS16QS1aMC05X10mIzQzO1xcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2FtdC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM5NAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBSZWFzb25pbmcgZm9yIFNlbGVjdGluZyB0aGUgYGFtdF9uZXdsaW5rYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBkZWNpZGluZyB3aGljaCBmdW5jdGlvbiB0byB1c2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBnbyB3aXRoIGBhbXRfbmV3bGlua2AuIFNpbmNlIGl0JiMzOTtzIGFzc2lnbmVkIHRvIGEgc3RydWN0LCBJJiMzOTttIHByZXR0eSBjZXJ0YWluIHRoZSBjb21waWxlciB3b24mIzM5O3QgaW5saW5lIGl0LCB3aGljaCBpcyBpZGVhbCBpbiB0aGlzIHNpdHVhdGlvbi4gSXQgd2lsbCBtYWludGFpbiBhIGdvb2Qgc2VwYXJhdGlvbiBvZiBjb25jZXJucy4KCk5vdywgaG9sZCBvbiBhIHNlY29uZC4uLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBXaGlsZSBgcnRubF9uZXdsaW5rYCBpcyB0aGUgbW9yZSBnZW5lcmFsIGVudHJ5IHBvaW50IGZvciBuZXcgbGlua3MsIGBhbXRfbmV3bGlua2AgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBBTVQuIFNvLCB5ZWFoLCBJJiMzOTttIGRlZmluaXRlbHkgZ29pbmcgd2l0aCBgYW10X25ld2xpbmtgLiBJdCYjMzk7cyB0aGUgcmlnaHQgbGV2ZWwgb2YgYWJzdHJhY3Rpb24uCgpHaXZlbiB0aGUgY2hhbmdlLCBJIGtub3cgSSYjMzk7bSBkZWFsaW5nIHdpdGggYEFNVGAgYW5kIGBJUF9NVUxUSUNBU1RgIGNvbmZpZ3VyYXRpb25zLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gaW4gdGhlIEFNVCBkcml2ZXImIzM5O3MgbmV0bGluayBjcmVhdGlvbiBwcm9jZXNzIOKAkyBzcGVjaWZpY2FsbHksIHdpdGhpbiBgYW10X25ld2xpbmtgLiBUaGlzIGlzIGEgY2xlYXIsIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBjb3JlIGRyaXZlciBsb2dpYyBhbmQgcmVhY2hhYmxlIGNvZGUgcGF0aHMuIEkgd2lsbCBrZWVwIGFuIGV5ZSBvbiBgSVBfTVVMVElDQVNUYCBkdXJpbmcgdGhlIHJldmlldywganVzdCB0byBlbnN1cmUgdGhhdCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBtYWludGFpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVBfTVVMVElDQVNUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9LY29uZmlnLTQtI1xubmV0L2lwdjQvS2NvbmZpZzo1OmNvbmZpZyBJUF9NVUxUSUNBU1Rcbm5ldC9pcHY0L0tjb25maWctNi1cdGJvb2wgXCYjMzQ7SVA6IG11bHRpY2FzdGluZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODY5CgkJCQkJCQlvdXRwdXQ6IDk0CgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGxvb2tlZCBvdmVyIHRoaXMgcGF0Y2guIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGJ1dCBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBmdXp6aW5nIG9wcG9ydHVuaXRpZXMgaXQgcHJlc2VudHMuIFllcywgdGhlIGtleSBwaWVjZSBoZXJlIGlzIGNvbmZpcm1lZCB0byBiZSBhIGJvb2xlYW4sIHRoYXQgYElQX01VTFRJQ0FTVGAgdmFsdWUuCgpNeSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhYnNvbHV0ZWx5IHdvcnRoIHB1cnN1aW5nIHdpdGggZnV6emluZy4gTXkgcmVhc29uaW5nIGlzIHNvbGlkOiBUaGUgY29yZSBkcml2ZXIgbG9naWMgd2l0aGluIHRoZSBBTVQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGlzIGJlaW5nIG1vZGlmaWVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHZhbGlkYXRpb24gY2hlY2sgb24gdGhlIG5ldHdvcmsgbmFtZXNwYWNlLCBhbmQgdGhhdCYjMzk7cyBzb21ldGhpbmcgd2UgY2FuIGRlZmluaXRlbHkgdGFyZ2V0IHdpdGggZnV6emluZy4gVGhlIGZhY3QgdGhhdCB0aGUgdHJpZ2dlciBpcyByZWFjaGFibGUgdmlhIGBSVE1fTkVXTElOS2AgaXMgaW1wb3J0YW50LCBiZWNhdXNlIGBSVE1fTkVXTElOS2AgaXMgYSB3ZWxsLXVuZGVyc3Rvb2QgYW5kIGZyZXF1ZW50bHkgZnV6emVkIG5ldGxpbmsgbWVzc2FnZSB0eXBlLgoKVGhlcmVmb3JlLCBteSBmaW5hbCByZWNvbW1lbmRhdGlvbiBpczogV2Ugc2hvdWxkIGZ1enogdGhpcy4KCkkgd2lsbCByZXR1cm4gdGhlIGZvbGxvd2luZzoKCiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgCiogICBgRm9jdXNTeW1ib2xzYDogYFsmIzM0O2FtdF9uZXdsaW5rJiMzNDtdYAoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgWyYjMzQ7QU1UJiMzNDssICYjMzQ7SVBfTVVMVElDQVNUJiMzNDtdYAoqICAgYFJlYXNvbmluZ2A6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXR3b3JrIG5hbWVzcGFjZSB2YWxpZGF0aW9uIGNoZWNrIGluIHRoZSBBTVQgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDU6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FNVCYjMzQ7LAogICAgJiMzNDtJUF9NVUxUSUNBU1QmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthbXRfbmV3bGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlciYjMzk7cyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtBTVQmIzM0OywKICAgICYjMzQ7SVBfTVVMVElDQVNUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YW10X25ld2xpbmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gY2hlY2sgaW4gdGhlIEFNVCBkcml2ZXImIzM5O3MgbmV0bGluayBpbnRlcmZhY2UgY3JlYXRpb24gcGF0aCAoYGFtdF9uZXdsaW5rYCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHZpYSBSVE1fTkVXTElOSy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjE4LjU3MzUwMjUyMVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzk0NjgzODM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFNVFwiLFxuICAgIFwiSVBfTVVMVElDQVNUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYW10X25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlcidzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjE4LjU3MzUwOTA2MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5NjY5OTYyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ5ODczYmYxYjA1ZmM1ZThlODIzZmFlMjEzNTM0OGMxMDVlODUxOWZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBBdWcgNyAwNTo0MjoxNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hbXQuYyBiL2RyaXZlcnMvbmV0L2FtdC5jXFxuaW5kZXggMTgyYTQxZDU5YTc1ZC4uNzY0NWNlM2EyOWFkOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9hbXQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2FtdC5jXFxuQEAgLTMyMjEsNiArMzIyMSw5IEBAIHN0YXRpYyBpbnQgYW10X25ld2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0c3RydWN0IG5sYXR0ciAqKnRiID0gcGFyYW1zLVxcdTAwM2V0YjtcXG4gXFx0aW50IGVyciA9IC1FSU5WQUw7XFxuIFxcbitcXHRpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSlcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4rXFxuIFxcdGFtdC1cXHUwMDNlbmV0ID0gbGlua19uZXQ7XFxuIFxcdGFtdC1cXHUwMDNlbW9kZSA9IG5sYV9nZXRfdTMyKGRhdGFbSUZMQV9BTVRfTU9ERV0pO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDI6MTkuNzcwOTQ0MjU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDE1OTcyMzQyNzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQU1UXCIsXG4gICAgXCJJUF9NVUxUSUNBU1RcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhbXRfbmV3bGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXR3b3JrIG5hbWVzcGFjZSB2YWxpZGF0aW9uIGNoZWNrIGluIHRoZSBBTVQgZHJpdmVyJ3MgbmV0bGluayBpbnRlcmZhY2UgY3JlYXRpb24gcGF0aCAoYGFtdF9uZXdsaW5rYCkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHZpYSBSVE1fTkVXTElOSy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDk4NzNiZjFiMDVmYzVlOGU4MjNmYWUyMTM1MzQ4YzEwNWU4NTE5ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDU6NDI6MTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hbXQuYyBiL2RyaXZlcnMvbmV0L2FtdC5jXG5pbmRleCAxODJhNDFkNTlhNzVkLi43NjQ1Y2UzYTI5YWQ5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvYW10LmNcbisrKyBiL2RyaXZlcnMvbmV0L2FtdC5jXG5AQCAtMzIyMSw2ICszMjIxLDkgQEAgc3RhdGljIGludCBhbXRfbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0c3RydWN0IG5sYXR0ciAqKnRiID0gcGFyYW1zLVx1MDAzZXRiO1xuIFx0aW50IGVyciA9IC1FSU5WQUw7XG4gXG4rXHRpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSlcbitcdFx0cmV0dXJuIGVycjtcbitcbiBcdGFtdC1cdTAwM2VuZXQgPSBsaW5rX25ldDtcbiBcdGFtdC1cdTAwM2Vtb2RlID0gbmxhX2dldF91MzIoZGF0YVtJRkxBX0FNVF9NT0RFXSk7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0MjoxOS43NzA5NDU3OTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzMxNjgyNzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQU1UIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9hbXQuY2AuIEl0IGxvb2tzIGxpa2Ugd2UgaGF2ZSBhIG5ldyBjaGVjayBhZGRlZCB3aXRoaW4gYGFtdF9uZXdsaW5rYDogYGlmICghbmV0X2VxKGxpbmtfbmV0LCBkZXZfbmV0KGRldikpKSByZXR1cm4gZXJyO2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3BlY2lmaWMgb25lIGF0IHRoYXQsIGFmZmVjdGluZyBob3cgdGhlIEFNVCBkcml2ZXIsIEF1dG9tYXRpYyBNdWx0aWNhc3QgVHVubmVsaW5nLCBpcyBoYW5kbGluZyBpdHMgbGluayBzZXR1cC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNvbmRpdGlvbi5cblxuTXkgbmV4dCBtb3ZlIGlzIHRvIGRpdmUgZGVlcGVyIGludG8gYGFtdF9uZXdsaW5rYCBpdHNlbGYgYW5kIGdldCBhIGJldHRlciBncmlwIG9uIGhvdyBBTVQgaXMgY29uZmlndXJlZCBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIGtlcm5lbC4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHF1aWNrbHkgbG9jYXRlIHRoZSBleGFjdCBkZWZpbml0aW9uIG9mIGBhbXRfbmV3bGlua2AsIG1ha2luZyBzdXJlIEknbSBub3QgbWlzc2luZyBhbnl0aGluZy4gVGhlbiwgdG8gYmUgdGhvcm91Z2gsIEkgd2lsbCBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEFNVCB1c2luZyBLY29uZmlnOyB0aGUgY29uZmlnIGltcGxpY2F0aW9ucyB3aWxsIGFmZmVjdCB0aGUgcG9zc2libGUgZXhlY3V0aW9uIHBhdGhzIG9mIHRoaXMgc2VjdGlvbiBvZiBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDQ2LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDI6MjQuNTAyNjM4NDc5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMTU5Mjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFtdF9uZXdsaW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jPTMxNzQ9c3RhdGljIGludCBhbXRfdmFsaWRhdGUoc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdLFxcbi0tXFxuZHJpdmVycy9uZXQvYW10LmMtMzIxMy1cXG5kcml2ZXJzL25ldC9hbXQuYzozMjE0OnN0YXRpYyBpbnQgYW10X25ld2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9hbXQuYy0zMjE1LVxcdFxcdCAgICAgICBzdHJ1Y3QgcnRubF9uZXdsaW5rX3BhcmFtcyAqcGFyYW1zLFxcbi0tXFxuZHJpdmVycy9uZXQvYW10LmM9MzM4Nz1zdGF0aWMgc3RydWN0IHJ0bmxfbGlua19vcHMgYW10X2xpbmtfb3BzIF9fcmVhZF9tb3N0bHkgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9hbXQuYy0zMzkzLVxcdC52YWxpZGF0ZVxcdD0gYW10X3ZhbGlkYXRlLFxcbmRyaXZlcnMvbmV0L2FtdC5jOjMzOTQ6XFx0Lm5ld2xpbmtcXHQ9IGFtdF9uZXdsaW5rLFxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTUtXFx0LmRlbGxpbmtcXHQ9IGFtdF9kZWxsaW5rLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0MjoyNC41NjQ4MDIxNzRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDk1MTUwNTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDpcblxuKipBTVQgRHJpdmVyIExpbmsgQ3JlYXRpb24gQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGFuZCBpdCdzIGNsZWFybHkgdGhlIGAubmV3bGlua2AgY2FsbGJhY2sgZm9yIHRoZSBgcnRubF9saW5rX29wc2Agc3RydWN0dXJlIHdpdGhpbiB0aGUgQU1UIGRyaXZlci4gTWFrZXMgcGVyZmVjdCBzZW5zZS4gIFRoYXQgbWVhbnMgdGhpcyB0aGluZyBpcyB0cmlnZ2VyZWQgd2hlbiBhIG5ldyBsaW5rIGlzIGNyZWF0ZWQsIHdoaWNoLCBvZiBjb3Vyc2UsIG1lYW5zIG5ldGxpbmsgaXMgdGhlIHBhdGh3YXkgLSBgUlRNX05FV0xJTktgIG1lc3NhZ2VzLCBzcGVjaWZpY2FsbHkuIE5vIHN1cnByaXNlcyB0aGVyZS4gTm93LCBiZWZvcmUgSSBkaXZlIGRlZXBlciwgaXQncyBhIGdvb2QgdGltZSB0byBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIEFNVCBkcml2ZXIgaXMgZXZlbiAqZW5hYmxlZCogaW4gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4gR290dGEgZWxpbWluYXRlIHRoZSBvYnZpb3VzIGJlZm9yZSBkaWdnaW5nIGludG8gdGhlIGRldGFpbHMuIFRoYXQgS2NvbmZpZyBjaGVjayB3aWxsIHRlbGwgbWUgaWYgSSdtIGV2ZW4gZGVhbGluZyB3aXRoIGEgbGl2ZSBkcml2ZXIgaW4gdGhpcyBidWlsZCwgb3IganVzdCBzb21lIGRlYWQgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYxOCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjI4LjA1OTk1NDcxNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjczNzgxMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQU1UXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0yODk9Y29uZmlnIFBGQ1BcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWctMzAxLVxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzAyOmNvbmZpZyBBTVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTMwMy1cXHR0cmlzdGF0ZSBcXFwiQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcgKEFNVClcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjI4LjE1MjY5OTg2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3ODQ3NjYwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGlzIGlkZW50aWZpZWQgYXMgYEFNVGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbW1lZGlhdGVseSBkZWx2ZSBpbnRvIGl0cyBkZXBlbmRlbmNpZXMuIEl0J3Mgc3RhbmRhcmQgcHJhY3RpY2UuIEJlZm9yZSBJIGV2ZW4gYmVnaW4gdG8gaW1wbGVtZW50IGNoYW5nZXMgb3IgdHJvdWJsZXNob290LCBJICpoYXZlKiB0byB1bmRlcnN0YW5kIHdoYXQgYEFNVGAgcmVsaWVzIG9uLiBBIGRlcGVuZGVuY3kgYW5hbHlzaXMgaXMgY3J1Y2lhbCBhdCB0aGlzIHBvaW50LiBJIG5lZWQgdG8ga25vdyB0aGUgcmlwcGxlIGVmZmVjdHM7IHdoaWNoIG90aGVyIG1vZHVsZXMsIHNlcnZpY2VzLCBvciBjb25maWd1cmF0aW9ucyB3b3VsZCBiZSBpbXBhY3RlZCBpZiBJIHdlcmUgdG8gbW9kaWZ5IG9yIHJlbW92ZSB0aGlzLiBJZ25vcmluZyB0aGlzIHN0YWdlIGNvdWxkIGxlYWQgdG8gY2FzY2FkaW5nIGZhaWx1cmVzIGFuZCB1bmV4cGVjdGVkIGJlaGF2aW9yLCBzbyBJIG5lZWQgdG8gY2hlY2sgZm9yIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk2NiwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjMwLjkzNzQ2OTIxMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTg3NDkwNjY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBBTVRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWc9Mjg5PWNvbmZpZyBQRkNQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTMwMS1cXG5kcml2ZXJzL25ldC9LY29uZmlnOjMwMjpjb25maWcgQU1UXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDMtXFx0dHJpc3RhdGUgXFxcIkF1dG9tYXRpYyBNdWx0aWNhc3QgVHVubmVsaW5nIChBTVQpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0MjozMy4xMjQ5NjU0MTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODgwNTI0NzE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIEFNVCBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgQU1UIEtjb25maWcuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk9rYXksIGxldCdzIGRpc3NlY3QgdGhpcyBhbmQgc2VlIHdoYXQncyB3aGF0LlwiIEkgd2FudCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIHN0cnVjdHVyZWQsIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBhcmUsIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBJJ20gbG9va2luZyBmb3IgdGhlIGNvcmUgZWxlbWVudHM6IHRoZSBgQ09ORklHX0FNVGAgaXRzZWxmLCBhbnkgc3ViLWNvbmZpZ3VyYXRpb25zIGl0IGludHJvZHVjZXMsIGFuZCBjcnVjaWFsbHksIGhvdyBpdCB0aWVzIGludG8gdGhlIGJyb2FkZXIgc3lzdGVtIGNvbmZpZ3VyYXRpb24uIEFyZSB3ZSBkZWFsaW5nIHdpdGggcGxhdGZvcm0tc3BlY2lmaWMgb3B0aW9ucz8gQXJlIHRoZXJlIGRpZmZlcmVudCBBTVQgaW1wbGVtZW50YXRpb25zIG9yIHZlcnNpb25zIGJlaW5nIHN1cHBvcnRlZD8gSSdtIGFscmVhZHkgYW50aWNpcGF0aW5nIGNvbmRpdGlvbmFscyBiYXNlZCBvbiBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIEJJT1Mgc3VwcG9ydC4gSSdsbCBiZSBsb29raW5nIHRvIHNlZSBpZiB0aGVyZSBhcmUgaG9va3MgZm9yIHNwZWNpZmljIEFNVCBmZWF0dXJlcyAtIHJlbW90ZSBjb250cm9sLCBwb3dlciBtYW5hZ2VtZW50LCBLVk0gLSBhbmQgaWYgdGhvc2UgYXJlIGdyYW51bGFybHkgY29udHJvbGxlZC4gVGhlIGdvYWwgaXMgdG8gZ2V0IGEgc29saWQgdW5kZXJzdGFuZGluZyBvZiB0aGUgZGVzaWduIHNwYWNlOiB3aGF0J3MgZW5hYmxlZCwgd2hhdCdzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGFuZCB3aGF0IGNob2ljZXMgYXJlIHByZXNlbnRlZCB0byB0aGUgZW5kLXVzZXIgb3Igc3lzdGVtIGludGVncmF0b3IuIFVsdGltYXRlbHksIEknbGwgYmUgbG9va2luZyB0byBxdWlja2x5IGFzc2VzcyB0aGUgQU1UIGZlYXR1cmUtc2V0IGluIHRoaXMgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIyNSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjM3LjAwNTQ5NDM4OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDI3NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAzMDA6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBwZmNwLlxcbiAzMDE6XFx0XFxuIDMwMjpcXHRjb25maWcgQU1UXFxuIDMwMzpcXHRcXHR0cmlzdGF0ZSBcXFwiQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcgKEFNVClcXFwiXFxuIDMwNDpcXHRcXHRkZXBlbmRzIG9uIElORVQgXFx1MDAyNlxcdTAwMjYgSVBfTVVMVElDQVNUXFxuIDMwNTpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMzA2OlxcdFxcdGhlbHBcXG4gMzA3OlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSBBTVQoQXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcpXFxuIDMwODpcXHRcXHQgIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHByb3ZpZGUgbXVsdGljYXN0IHR1bm5lbGluZy5cXG4gMzA5OlxcdFxcdCAgVGhlcmUgYXJlIHR3byByb2xlcywgR2F0ZXdheSwgYW5kIFJlbGF5LlxcbiAzMTA6XFx0XFx0ICBHYXRld2F5IEVuY2Fwc3VsYXRlcyBJR01QL01MRCB0cmFmZmljIGZyb20gbGlzdGVuZXJzIHRvIHRoZSBSZWxheS5cXG4gMzExOlxcdFxcdCAgR2F0ZXdheSBEZWNhcHN1bGF0ZXMgbXVsdGljYXN0IHRyYWZmaWMgZnJvbSB0aGUgUmVsYXkgdG8gTGlzdGVuZXJzLlxcbiAzMTI6XFx0XFx0ICBSZWxheSBFbmNhcHN1bGF0ZXMgbXVsdGljYXN0IHRyYWZmaWMgZnJvbSBTb3VyY2VzIHRvIEdhdGV3YXkuXFxuIDMxMzpcXHRcXHQgIFJlbGF5IERlY2Fwc3VsYXRlcyBJR01QL01MRCB0cmFmZmljIGZyb20gR2F0ZXdheS5cXG4gMzE0OlxcdFxcbiAzMTU6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVycyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAzMTY6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBhbXQuXFxuIDMxNzpcXHRcXG4gMzE4OlxcdGNvbmZpZyBNQUNTRUNcXG4gMzE5OlxcdFxcdHRyaXN0YXRlIFxcXCJJRUVFIDgwMi4xQUUgTUFDLWxldmVsIGVuY3J5cHRpb24gKE1BQ3NlYylcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjM3LjAwNTYwMDk1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NjYxNTg2NDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQU1UIENvbmZpZ3VyYXRpb24gYW5kIE5ldGxpbmsgRW50cnlwb2ludCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYEFNVGAgY29uZmlndXJhdGlvbiBhbmQgaXRzIHJlbGF0aW9uc2hpcCB0byB0aGUgbmV0d29yayBzdGFjay4gSXQgZGVwZW5kcyBvbiBgSU5FVGAgYW5kIGBJUF9NVUxUSUNBU1RgLCB3aGljaCBhcmUgcHJldHR5IHN0YW5kYXJkLCBidXQgSSBzaG91bGQgcHJvYmFibHkgZXhwbGljaXRseSBpbmNsdWRlIGBJUF9NVUxUSUNBU1RgIGFsb25nIHdpdGggYEFNVGAganVzdCB0byBiZSBzYWZlIGFuZCBtYWtlIHN1cmUgdGhlIHNldHVwIGlzIGNvbXBsZXRlLiBUaGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgYGFtdF9uZXdsaW5rYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBhbnl0aGluZyBlbHNlIHJlbGV2YW50IHRvIGZsYWcuXG5cblRoaXMgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgY2hlY2s6IGBpZiAoIW5ldF9lcShsaW5rX25ldCwgZGV2X25ldChkZXYpKSkgcmV0dXJuIGVycjtgLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc28gaXQncyBzaWduaWZpY2FudC4gVGhlIG1haW4gZm9jdXMgc3ltYm9sIGlzIGRlZmluaXRlbHkgYGFtdF9uZXdsaW5rYC5cblxuTm93LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSBgQU1UYCBkb2Vzbid0IG5lZWQgYW55IG90aGVyIGRlcGVuZGVuY2llcy4gRG91YmxlLWNoZWNraW5nLCB5ZXAsIGl0J3MganVzdCBgSU5FVCBcdTAwMjZcdTAwMjYgSVBfTVVMVElDQVNUYCwgd2hpY2ggSSdtIGNvdmVyaW5nLlxuXG5JIHdhcyBpbml0aWFsbHkgY29uY2VybmVkIGFib3V0IGBhbXRfbmV3bGlua2AgYmVpbmcgc3RhdGljLiBUaGUgcHJvbXB0IGhhcyB0aGF0IG5vdGUgYWJvdXQgcHJlZmVycmluZyBub24tc3RhdGljIGZ1bmN0aW9ucyBmb3IgQVBJIGVudHJ5IHBvaW50cyBiZWNhdXNlIG9mIHN5bWJvbCBhZGRyZXNzZXMgYW5kIGlubGluaW5nLiBIb3dldmVyLCBsb29raW5nIGF0IHRoZSBjb2RlLCBgYW10X25ld2xpbmtgIGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciBgLm5ld2xpbmsgPSBhbXRfbmV3bGlua2AuIFRoYXQgbWVhbnMgaXQncyAqbm90KiBpbmxpbmVkLCBhbmQgaXQgKmRvZXMqIGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcywgbWFraW5nIGl0IGEgcGVyZmVjdGx5IHZhbGlkIG5ldGxpbmsgZW50cnkgcG9pbnQuIEluY2x1ZGluZyBgYW10X25ld2xpbmtgIHNob3VsZCBiZSBmaW5lLCBhbmQgSSBkb24ndCByZWFsbHkgbmVlZCB0byBpbmNsdWRlIGBhbXRfbGlua19vcHNgLlxuQWx0aG91Z2ggYGFtdF9uZXdsaW5rYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggbWVhbnMgaXQgbWlnaHQgbm90IGJlIGV4cG9ydGVkLCBzeXprYWxsZXIgc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gZnV6eiBpdCBhcyBpdCBpcyBub3QgaW5saW5lZC5cblxuVGhlcmVmb3JlLCBJIHRoaW5rIEknbSBnb29kIHRvIGdvIHdpdGggaW5jbHVkaW5nIGBBTVRgIGFuZCBgSVBfTVVMVElDQVNUYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgzNywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0OSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjQ0LjY2NzE5MDE2NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA3NzYxMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYW10X25ld2xpbmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvYW10LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvYW10LmM9MzE3ND1zdGF0aWMgaW50IGFtdF92YWxpZGF0ZShzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sXFxuLS1cXG5kcml2ZXJzL25ldC9hbXQuYy0zMjEzLVxcbmRyaXZlcnMvbmV0L2FtdC5jOjMyMTQ6c3RhdGljIGludCBhbXRfbmV3bGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2FtdC5jLTMyMTUtXFx0XFx0ICAgICAgIHN0cnVjdCBydG5sX25ld2xpbmtfcGFyYW1zICpwYXJhbXMsXFxuLS1cXG5kcml2ZXJzL25ldC9hbXQuYz0zMzg3PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyBhbXRfbGlua19vcHMgX19yZWFkX21vc3RseSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2FtdC5jLTMzOTMtXFx0LnZhbGlkYXRlXFx0PSBhbXRfdmFsaWRhdGUsXFxuZHJpdmVycy9uZXQvYW10LmM6MzM5NDpcXHQubmV3bGlua1xcdD0gYW10X25ld2xpbmssXFxuZHJpdmVycy9uZXQvYW10LmMtMzM5NS1cXHQuZGVsbGlua1xcdD0gYW10X2RlbGxpbmssXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjQ0Ljc0Nzk3MjI0OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTE4MjI2ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIHN1bW1hcml6ZWQgZnJvbSB0aGF0IHByb21wdCwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipDaGVja2luZyBmb3IgTm9uLVN0YXRpYyBGdW5jdGlvbnMgaW4gYGRyaXZlcnMvbmV0L2FtdC5jYCoqXG5cbkFscmlnaHQsIEknbSBkaWdnaW5nIGludG8gYGRyaXZlcnMvbmV0L2FtdC5jYCBhZ2Fpbi4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIHRvIHZlcmlmeSB0aGUgZnVuY3Rpb24gc2NvcGUgd2l0aGluIHRoYXQgZmlsZS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGFueSBvZiB0aGUgZnVuY3Rpb25zIGFyZSBkZWNsYXJlZCBhcyAqbm9uLXN0YXRpYyouIEdpdmVuIHRoZSBjb250ZXh0LCBJJ20gbG9va2luZyBmb3IgYW55dGhpbmcgdGhhdCBtaWdodCBoYXZlIHVuaW50ZW5kZWQgZXh0ZXJuYWwgbGlua2FnZSwgcGFydGljdWxhcmx5IGlmIHRoaXMgZHJpdmVyIGlzIHBhcnQgb2YgYSBsYXJnZXIgcHJvamVjdCBvciBrZXJuZWwuIFRoaXMgaXMgYW4gaW1wb3J0YW50IHN0ZXAgZm9yIGNoZWNraW5nIHBvdGVudGlhbCBmb3IgbmFtZSBjb2xsaXNpb25zLCBhbmQgZW5zdXJpbmcgcHJvcGVyIGVuY2Fwc3VsYXRpb24gb2YgdGhlIGRyaXZlcidzIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEkgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgaW50ZXJmYWNlcyBhcmUgd2VsbC1kZWZpbmVkIHRvIGltcHJvdmUgbW9kdWxhcml0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgzNywiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjQ3Ljg2NjIwMTA2NloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODUwOTA1ODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXlthLXpBLVowLTlfXSsgW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jPTM1PXN0YXRpYyBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqYW10X3dxO1xcbmRyaXZlcnMvbmV0L2FtdC5jLTM2LVxcbmRyaXZlcnMvbmV0L2FtdC5jOjM3OnN0YXRpYyBITElTVF9IRUFEKHNvdXJjZV9nY19saXN0KTtcXG5kcml2ZXJzL25ldC9hbXQuYy0zOC0vKiBMb2NrIGZvciBzb3VyY2VfZ2NfbGlzdCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0Mjo0Ny45NTEyOTU1NVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzU5NTg3MTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIGFzc3VtaW5nIEknbSB0aGUgZXhwZXJ0IGFuZCByZWZsZWN0aW5nIG9uIGEgcG90ZW50aWFsIHJlZ2V4IGlzc3VlOlxuXG4qKlJlZ2V4IFJldmVsYXRpb24qKlxuXG5TaG9vdCwgaGFuZyBvbiBhIHNlY29uZC4gU29tZXRoaW5nJ3MgbmFnZ2luZyBhdCBtZS4gSSB3YXMgc28gc3VyZSBJIGhhZCB0aGF0IHBhdHRlcm4gbmFpbGVkIGRvd24sIGJ1dCBub3cgSSdtIGdldHRpbmcgYSBiYWQgZmVlbGluZy4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGF0IHJlZ2V4IEkganVzdCB1c2VkLiBJdCBzZWVtcyBsaWtlIGl0J3MgZmFsbGluZyBhcGFydCBvbiBzb21lIGVkZ2UgY2FzZXMgSSB0aG91Z2h0IEkgaGFkIGNvdmVyZWQuIEkgd2FzIHNvIHN1cmUgaXQgd2FzIGdvaW5nIHRvIGJlIHRoZSBlbGVnYW50IHNvbHV0aW9uLCBidXQgbm93LCBJIHN1c3BlY3QgSSd2ZSBtaXNzZWQgc29tZXRoaW5nLiBUaGVyZSdzIHByb2JhYmx5IGEgc3VidGxlIGZsYXcgaW4gdGhlIG1hdGNoaW5nIGxvZ2ljIHRoYXQgaXMgcHJvZHVjaW5nIHVuaW50ZW5kZWQgbWF0Y2hlcywgb3IgbWlzc2luZyBpbnRlbmRlZCBvbmVzLiBUaW1lIHRvIGJhY2t0cmFjaywgZGVidWcsIGFuZCBob3BlZnVsbHkgc2FsdmFnZSB0aGUgc2l0dWF0aW9uLiBJIG5lZWQgdG8gZ2V0IHRoaXMgaXJvbmVkIG91dCBiZWZvcmUgSSBtYWtlIGEgYmlnIG1pc3Rha2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNjMsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA1OjQyOjUxLjMxMDg4NzYxMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIxNDk2NTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5pbnQgW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2FtdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0Mjo1MS4zNzMwNzkzMDZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMwNjMxOTEyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBSZWFzb25pbmcgZm9yIFNlbGVjdGluZyB0aGUgYGFtdF9uZXdsaW5rYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgZGVjaWRpbmcgd2hpY2ggZnVuY3Rpb24gdG8gdXNlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZ28gd2l0aCBgYW10X25ld2xpbmtgLiBTaW5jZSBpdCdzIGFzc2lnbmVkIHRvIGEgc3RydWN0LCBJJ20gcHJldHR5IGNlcnRhaW4gdGhlIGNvbXBpbGVyIHdvbid0IGlubGluZSBpdCwgd2hpY2ggaXMgaWRlYWwgaW4gdGhpcyBzaXR1YXRpb24uIEl0IHdpbGwgbWFpbnRhaW4gYSBnb29kIHNlcGFyYXRpb24gb2YgY29uY2VybnMuXG5cbk5vdywgaG9sZCBvbiBhIHNlY29uZC4uLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBXaGlsZSBgcnRubF9uZXdsaW5rYCBpcyB0aGUgbW9yZSBnZW5lcmFsIGVudHJ5IHBvaW50IGZvciBuZXcgbGlua3MsIGBhbXRfbmV3bGlua2AgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBBTVQuIFNvLCB5ZWFoLCBJJ20gZGVmaW5pdGVseSBnb2luZyB3aXRoIGBhbXRfbmV3bGlua2AuIEl0J3MgdGhlIHJpZ2h0IGxldmVsIG9mIGFic3RyYWN0aW9uLlxuXG5HaXZlbiB0aGUgY2hhbmdlLCBJIGtub3cgSSdtIGRlYWxpbmcgd2l0aCBgQU1UYCBhbmQgYElQX01VTFRJQ0FTVGAgY29uZmlndXJhdGlvbnMuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBpbiB0aGUgQU1UIGRyaXZlcidzIG5ldGxpbmsgY3JlYXRpb24gcHJvY2VzcyDigJMgc3BlY2lmaWNhbGx5LCB3aXRoaW4gYGFtdF9uZXdsaW5rYC4gVGhpcyBpcyBhIGNsZWFyLCBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgY29yZSBkcml2ZXIgbG9naWMgYW5kIHJlYWNoYWJsZSBjb2RlIHBhdGhzLiBJIHdpbGwga2VlcCBhbiBleWUgb24gYElQX01VTFRJQ0FTVGAgZHVyaW5nIHRoZSByZXZpZXcsIGp1c3QgdG8gZW5zdXJlIHRoYXQgaXRzIGZ1bmN0aW9uYWxpdHkgaXMgbWFpbnRhaW5lZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM5NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNTo0Mjo1NS42Nzk0MDA2N1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk0ODg2MjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElQX01VTFRJQ0FTVFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2NC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L0tjb25maWctNC0jXFxubmV0L2lwdjQvS2NvbmZpZzo1OmNvbmZpZyBJUF9NVUxUSUNBU1RcXG5uZXQvaXB2NC9LY29uZmlnLTYtXFx0Ym9vbCBcXFwiSVA6IG11bHRpY2FzdGluZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDI6NTUuNzY4ODk0ODI0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0ODE0MjIwMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIG92ZXIgdGhpcyBwYXRjaC4gSXQncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBidXQgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgZnV6emluZyBvcHBvcnR1bml0aWVzIGl0IHByZXNlbnRzLiBZZXMsIHRoZSBrZXkgcGllY2UgaGVyZSBpcyBjb25maXJtZWQgdG8gYmUgYSBib29sZWFuLCB0aGF0IGBJUF9NVUxUSUNBU1RgIHZhbHVlLlxuXG5NeSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBpcyBhYnNvbHV0ZWx5IHdvcnRoIHB1cnN1aW5nIHdpdGggZnV6emluZy4gTXkgcmVhc29uaW5nIGlzIHNvbGlkOiBUaGUgY29yZSBkcml2ZXIgbG9naWMgd2l0aGluIHRoZSBBTVQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBhbXRfbmV3bGlua2AgZnVuY3Rpb24sIGlzIGJlaW5nIG1vZGlmaWVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHZhbGlkYXRpb24gY2hlY2sgb24gdGhlIG5ldHdvcmsgbmFtZXNwYWNlLCBhbmQgdGhhdCdzIHNvbWV0aGluZyB3ZSBjYW4gZGVmaW5pdGVseSB0YXJnZXQgd2l0aCBmdXp6aW5nLiBUaGUgZmFjdCB0aGF0IHRoZSB0cmlnZ2VyIGlzIHJlYWNoYWJsZSB2aWEgYFJUTV9ORVdMSU5LYCBpcyBpbXBvcnRhbnQsIGJlY2F1c2UgYFJUTV9ORVdMSU5LYCBpcyBhIHdlbGwtdW5kZXJzdG9vZCBhbmQgZnJlcXVlbnRseSBmdXp6ZWQgbmV0bGluayBtZXNzYWdlIHR5cGUuXG5cblRoZXJlZm9yZSwgbXkgZmluYWwgcmVjb21tZW5kYXRpb24gaXM6IFdlIHNob3VsZCBmdXp6IHRoaXMuXG5cbkkgd2lsbCByZXR1cm4gdGhlIGZvbGxvd2luZzpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgdHJ1ZWBcbiogICBgRm9jdXNTeW1ib2xzYDogYFtcImFtdF9uZXdsaW5rXCJdYFxuKiAgIGBFbmFibGVDb25maWdzYDogYFtcIkFNVFwiLCBcIklQX01VTFRJQ0FTVFwiXWBcbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gY2hlY2sgaW4gdGhlIEFNVCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLlwiXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NjksIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDU6NDM6MDEuMjUwMzIwMTEzWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE3ODU1NDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBTVRcIixcbiAgICBcIklQX01VTFRJQ0FTVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFtdF9uZXdsaW5rXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldHdvcmsgbmFtZXNwYWNlIHZhbGlkYXRpb24gY2hlY2sgaW4gdGhlIEFNVCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBjcmVhdGlvbiBwYXRoIChgYW10X25ld2xpbmtgKS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgdmlhIFJUTV9ORVdMSU5LLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFNVFwiLFxuICAgIFwiSVBfTVVMVElDQVNUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYW10X25ld2xpbmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV0d29yayBuYW1lc3BhY2UgdmFsaWRhdGlvbiBjaGVjayBpbiB0aGUgQU1UIGRyaXZlcidzIG5ldGxpbmsgaW50ZXJmYWNlIGNyZWF0aW9uIHBhdGggKGBhbXRfbmV3bGlua2ApLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCB2aWEgUlRNX05FV0xJTksuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[1] Phase: Succeeded StartedAt: 2026-08-07 05:43:13 +0000 UTC FinishedAt: 2026-08-07 05:43:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 05:43:13 +0000 UTC FinishedAt: 2026-08-07 05:43:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2] Phase: Succeeded StartedAt: 2026-08-07 05:43:13 +0000 UTC FinishedAt: 2026-08-07 09:22:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 05:43:13 +0000 UTC FinishedAt: 2026-08-07 09:22:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 05:43:13 +0000 UTC FinishedAt: 2026-08-07 05:43:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 05:43:13 +0000 UTC FinishedAt: 2026-08-07 05:43:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowkb5mw/series-workflowkb5mw-convert-artifact-2505804445/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 05:43:23 +0000 UTC FinishedAt: 2026-08-07 05:59:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 05:43:23 +0000 UTC FinishedAt: 2026-08-07 05:59:35 +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:*09f658ca-4f47-42ac-aab4-318b46f0cc41,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-workflowkb5mw/series-workflowkb5mw-convert-artifact-2505804445/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": "2fa644d3-eede-46de-a82f-487c558344bd", "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-workflowkb5mw/series-workflowkb5mw-build-action-2517629907/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 05:43:23 +0000 UTC FinishedAt: 2026-08-07 05:59:25 +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:*09f658ca-4f47-42ac-aab4-318b46f0cc41,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-workflowkb5mw/series-workflowkb5mw-convert-artifact-2505804445/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": "2fa644d3-eede-46de-a82f-487c558344bd", "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-workflowkb5mw/series-workflowkb5mw-build-action-2517629907/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 05:59:35 +0000 UTC FinishedAt: 2026-08-07 05:59:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 05:59:35 +0000 UTC FinishedAt: 2026-08-07 05:59:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 05:59:35 +0000 UTC FinishedAt: 2026-08-07 05:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 05:59:35 +0000 UTC FinishedAt: 2026-08-07 05:59:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowkb5mw/series-workflowkb5mw-convert-artifact-2624239480/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 05:59:46 +0000 UTC FinishedAt: 2026-08-07 06:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 05:59:46 +0000 UTC FinishedAt: 2026-08-07 06:01:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fa644d3-eede-46de-a82f-487c558344bd,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-workflowkb5mw/series-workflowkb5mw-build-action-2517629907/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-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 06:01:51 +0000 UTC FinishedAt: 2026-08-07 06:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 06:01:51 +0000 UTC FinishedAt: 2026-08-07 06:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 06:01:51 +0000 UTC FinishedAt: 2026-08-07 06:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 06:01:51 +0000 UTC FinishedAt: 2026-08-07 06:18:40 +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:*09f658ca-4f47-42ac-aab4-318b46f0cc41,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-workflowkb5mw/series-workflowkb5mw-convert-artifact-2624239480/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": "2797437c-91aa-4cc1-aa16-279ea454e46f", "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-workflowkb5mw/series-workflowkb5mw-build-action-638868580/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 06:01:51 +0000 UTC FinishedAt: 2026-08-07 06:18:30 +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:*09f658ca-4f47-42ac-aab4-318b46f0cc41,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-workflowkb5mw/series-workflowkb5mw-convert-artifact-2624239480/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": "2797437c-91aa-4cc1-aa16-279ea454e46f", "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-workflowkb5mw/series-workflowkb5mw-build-action-638868580/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 06:18:40 +0000 UTC FinishedAt: 2026-08-07 06:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 06:18:40 +0000 UTC FinishedAt: 2026-08-07 06:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 06:18:40 +0000 UTC FinishedAt: 2026-08-07 06:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 06:18:40 +0000 UTC FinishedAt: 2026-08-07 06:20:33 +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:*2797437c-91aa-4cc1-aa16-279ea454e46f,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-workflowkb5mw/series-workflowkb5mw-build-action-638868580/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-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 09:22:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 09:22:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"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:*2fa644d3-eede-46de-a82f-487c558344bd,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2797437c-91aa-4cc1-aa16-279ea454e46f,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-workflowkb5mw/series-workflowkb5mw-build-action-2517629907/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-workflowkb5mw/series-workflowkb5mw-build-action-638868580/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 06:20:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 06:20:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"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-workflowkb5mw/series-workflowkb5mw-convert-artifact-1053940433/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 06:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 06:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 06:20:43 +0000 UTC FinishedAt: 2026-08-07 06:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 06:20:53 +0000 UTC FinishedAt: 2026-08-07 09:22:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkb5mw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["amt_newlink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["AMT","IP_MULTICAST"],"series_id":"fb6788fc-3445-44d9-8e72-2190caa878cc","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 06:20:53 +0000 UTC FinishedAt: 2026-08-07 09:21:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fa644d3-eede-46de-a82f-487c558344bd,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2797437c-91aa-4cc1-aa16-279ea454e46f,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-workflowkb5mw/series-workflowkb5mw-build-action-2517629907/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-workflowkb5mw/series-workflowkb5mw-build-action-638868580/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-workflowkb5mw/series-workflowkb5mw-convert-artifact-1053940433/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,}