Name: series-workfloww7b85 Phase: Succeeded StartedAt: 2026-07-30 21:21:08 +0000 UTC FinishedAt: 2026-07-31 01:20:15 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[0] Phase: Succeeded StartedAt: 2026-07-30 21:21:08 +0000 UTC FinishedAt: 2026-07-30 21:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 21:21:08 +0000 UTC FinishedAt: 2026-07-30 21:42:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "fb402386af4cdce108ff991a796386de55439735", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_CONNTRACK", "NETFILTER", "INET" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "fb402386af4cdce108ff991a796386de55439735", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_CONNTRACK", "NETFILTER", "INET" ], "series_id": "ef00ebd8-7c50-45ce-8042-d1eb591424cf" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_conntrack_tcp_packet" ], "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+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0NPTk5UUkFDSyYjMzQ7LAogICAgJiMzNDtORVRGSUxURVImIzM0OywKICAgICYjMzQ7SU5FVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2Nvbm50cmFja190Y3BfcGFja2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nIGxvZ2ljIGluIG5ldGZpbHRlciwgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRpbWVvdXRzIHVwb24gcmVjZWl2aW5nIGEgUlNUIHBhY2tldC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRhNjk2YmRhNzlmOTUwZTE3NTU3YmY3ZDJkOGE1ZGYzYzY0ZDFjMjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAyMTo0MTo1MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jXG5pbmRleCAwYzFkMDg2ZTk2Y2IzLi44NDk0NzExMDE1NmEzIDEwMDY0NFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jXG5AQCAtMTI4MCw4ICYjNDM7MTI4MCwxMSBAQCBpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxuIFx0aWYgKGN0LVx1MDAzZXByb3RvLnRjcC5yZXRyYW5zIFx1MDAzZT0gdG4tXHUwMDNldGNwX21heF9yZXRyYW5zIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRpbWVvdXRzW25ld19zdGF0ZV0gXHUwMDNlIHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfUkVUUkFOU10pXG4gXHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1JFVFJBTlNdO1xuLVx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQpKVxuJiM0MztcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUIFx1MDAyNlx1MDAyNlxuJiM0MztcdFx0XHQgIG5ld19zdGF0ZSA9PSBUQ1BfQ09OTlRSQUNLX0NMT1NFKSlcbiBcdFx0dGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfQ0xPU0VdO1xuJiM0MztcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUKSlcbiYjNDM7XHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1VOQUNLXTtcbiBcdGVsc2UgaWYgKChjdC1cdTAwM2Vwcm90by50Y3Auc2VlblswXS5mbGFncyB8IGN0LVx1MDAzZXByb3RvLnRjcC5zZWVuWzFdLmZsYWdzKSBcdTAwMjZcbiBcdFx0IElQX0NUX1RDUF9GTEFHX0RBVEFfVU5BQ0tOT1dMRURHRUQgXHUwMDI2XHUwMDI2XG4gXHRcdCB0aW1lb3V0c1tuZXdfc3RhdGVdIFx1MDAzZSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1VOQUNLXSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUiYjMzQ7LAogICAgJiMzNDtJTkVUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfY29ubnRyYWNrX3RjcF9wYWNrZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGE2OTZiZGE3OWY5NTBlMTc1NTdiZjdkMmQ4YTVkZjNjNjRkMWMyOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDMwIDIxOjQxOjUyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwppbmRleCAwYzFkMDg2ZTk2Y2IzLi44NDk0NzExMDE1NmEzIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwpAQCAtMTI4MCw4ICYjNDM7MTI4MCwxMSBAQCBpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LAogCWlmIChjdC0mZ3Q7cHJvdG8udGNwLnJldHJhbnMgJmd0Oz0gdG4tJmd0O3RjcF9tYXhfcmV0cmFucyAmYW1wOyZhbXA7CiAJICAgIHRpbWVvdXRzW25ld19zdGF0ZV0gJmd0OyB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1JFVFJBTlNdKQogCQl0aW1lb3V0ID0gdGltZW91dHNbVENQX0NPTk5UUkFDS19SRVRSQU5TXTsKLQllbHNlIGlmICh1bmxpa2VseShpbmRleCA9PSBUQ1BfUlNUX1NFVCkpCiYjNDM7CWVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUICZhbXA7JmFtcDsKJiM0MzsJCQkgIG5ld19zdGF0ZSA9PSBUQ1BfQ09OTlRSQUNLX0NMT1NFKSkKIAkJdGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfQ0xPU0VdOwomIzQzOwllbHNlIGlmICh1bmxpa2VseShpbmRleCA9PSBUQ1BfUlNUX1NFVCkpCiYjNDM7CQl0aW1lb3V0ID0gdGltZW91dHNbVENQX0NPTk5UUkFDS19VTkFDS107CiAJZWxzZSBpZiAoKGN0LSZndDtwcm90by50Y3Auc2VlblswXS5mbGFncyB8IGN0LSZndDtwcm90by50Y3Auc2VlblsxXS5mbGFncykgJmFtcDsKIAkJIElQX0NUX1RDUF9GTEFHX0RBVEFfVU5BQ0tOT1dMRURHRUQgJmFtcDsmYW1wOwogCQkgdGltZW91dHNbbmV3X3N0YXRlXSAmZ3Q7IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjE5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFRDUCBDb25uZWN0aW9uIFRyYWNraW5nIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgd2l0aGluIGBuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY2AuIE15IGluaXRpYWwgcmVhZCB0ZWxscyBtZSBpdCYjMzk7cyB0b3VjaGluZyB0aGUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgdGltZW91dCBsb2dpYywgc3BlY2lmaWNhbGx5IHdoZW4gYSBSU1QgcGFja2V0IGNvbWVzIGludG8gcGxheS4gSSBzZWUgdGhhdCB0aGVyZSBhcmUgYWRqdXN0bWVudHMgdG8gaG93IHRpbWVvdXRzIGFyZSBoYW5kbGVkIGJhc2VkIG9uIHRoZSBjb25uZWN0aW9uJiMzOTtzIHN0YXRlIHdoZW4gYSBSU1QgaXMgcmVjZWl2ZWQuIElmIGBpbmRleCA9PSBUQ1BfUlNUX1NFVGAgYW5kIHRoZSBuZXcgc3RhdGUgaXMgYFRDUF9DT05OVFJBQ0tfQ0xPU0VgLCB0aGUgdGltZW91dCBnZXRzIHNldCB0byBgdGltZW91dHNbVENQX0NPTk5UUkFDS19DTE9TRV1gLiBDb252ZXJzZWx5LCBpZiBgaW5kZXggPT0gVENQX1JTVF9TRVRgIGJ1dCB0aGUgbmV3IHN0YXRlIGlzbiYjMzk7dCBgVENQX0NPTk5UUkFDS19DTE9TRWAsIGl0JiMzOTtzIHNldHRpbmcgdGhlIHRpbWVvdXQgdG8gYHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdYC4KClRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbmV0ZmlsdGVyIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nLiBJbW1lZGlhdGVseSwgbXkgcmFkYXIgaXMgdXA7IHRoaXMgYmVncyBmb3Igc29tZSBzZXJpb3VzIGZ1enppbmcuIFRoZSB3YXkgdGltZW91dHMgYXJlIGhhbmRsZWQgY2FuIG9mdGVuIGJlIGEgc291cmNlIG9mIHN1YnRsZSwgb3Igbm90IHNvIHN1YnRsZSwgaXNzdWVzLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHN1cnJvdW5kaW5nIGNvZGUuIExldCYjMzk7cyBzdGFydCBieSBpZGVudGlmeWluZyB0aGUgY3JpdGljYWwgc3ltYm9scyBhbmQgYW55IHBvdGVudGlhbCBjb25maWcgcmVxdWlyZW1lbnRzLiBJJiMzOTtsbCBuZWVkIHRvIGZvY3VzIG9uIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgYW5kIGl0cyBjb250ZXh0IHdpdGhpbiB0aGUgbmV0ZmlsdGVyIFRDUCBtb2R1bGUuCgpPa2F5LCBsZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHF1aWNrIGBncmVwYCBmb3IgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGp1bXBpbmctb2ZmIHBvaW50IHRvIHNlZSBob3cgdGhlIGZ1bmN0aW9uIGlzIHVzZWQgYW5kIGFueSByZWxhdGVkIGZ1bmN0aW9ucyBvciBkYXRhIHN0cnVjdHVyZXMgSSBuZWVkIHRvIGZvY3VzIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2Nvbm50cmFja190Y3BfcGFja2V0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jPTE5NzE9c3RhdGljIGludCBuZl9jb25udHJhY2tfaGFuZGxlX3BhY2tldChzdHJ1Y3QgbmZfY29ubiAqY3QsXG4tLVxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jLTE5NzgtXHRjYXNlIElQUFJPVE9fVENQOlxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jOjE5Nzk6XHRcdHJldHVybiBuZl9jb25udHJhY2tfdGNwX3BhY2tldChjdCwgc2tiLCBkYXRhb2ZmLFxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jLTE5ODAtXHRcdFx0XHRcdCAgICAgICBjdGluZm8sIHN0YXRlKTtcbi0tXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYz05NTI9c3RhdGljIHZvaWQgbmZfY3RfdGNwX3N0YXRlX3Jlc2V0KHN0cnVjdCBpcF9jdF90Y3Bfc3RhdGUgKnN0YXRlKVxuLS1cbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jLTk2Mi0vKiBSZXR1cm5zIHZlcmRpY3QgZm9yIHBhY2tldCwgb3IgLTEgZm9yIGludmFsaWQuICovXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYzo5NjM6aW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jLTk2NC1cdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTI2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAuIFRoZSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBhIG5vbi1zdGF0aWMgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGVpdGhlciBleHBvcnRlZCBvciBhdCBsZWFzdCB1c2VkIGluIG11bHRpcGxlIGZpbGVzLCBhcyBjb25maXJtZWQgYnkgbG9va2luZyBhdCBgbmZfY29ubnRyYWNrX2NvcmUuY2AuIEhtbSwgd2FpdCBhIHNlY29uZC4gSSByZW1lbWJlciBub3c6IGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgaXMgYWN0dWFsbHkgY2FsbGVkIGZyb20gYG5mX2Nvbm50cmFja19oYW5kbGVfcGFja2V0YCwgYW5kICp0aGF0KiBmdW5jdGlvbiBpcyBzdGF0aWMuIFRoaXMgbmVlZHMgc29tZSBjbGFyaWZpY2F0aW9uLiBJIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBpcyB0cnVseSBleHBvcnRlZCBvciBpZiBpdCYjMzk7cyBtZXJlbHkgbm9uLXN0YXRpYyBmb3Igc29tZSBvdGhlciByZWFzb24sIGxpa2UgYmVpbmcgdXNlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgc29tZXdoZXJlLiBMZXQmIzM5O3MgbWFrZSBzdXJlLiBBaCwgeWVzLiBJdCBpcyBub24tc3RhdGljLCBjb25maXJtaW5nIHRoYXQgaXQgKmNhbiogYmUgYSBzeW1ib2wgd29ydGggZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBOb3csIGxldCYjMzk7cyBtb3ZlIG9uIGFuZCBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgcGFydGljdWxhcmx5IGZvciBgbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jYCwganVzdCB0byBnZXQgdGhlIGZ1bGwgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9jb25udHJhY2tfcHJvdG9fdGNwLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTQ9bmZfY29ubnRyYWNrLXlcdDo9IG5mX2Nvbm50cmFja19jb3JlLm8gbmZfY29ubnRyYWNrX3N0YW5kYWxvbmUubyBuZl9jb25udHJhY2tfZXhwZWN0Lm8gbmZfY29ubnRyYWNrX2hlbHBlci5vIFxcXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjU6XHRcdCAgIG5mX2Nvbm50cmFja19wcm90by5vIG5mX2Nvbm50cmFja19wcm90b19nZW5lcmljLm8gbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5vIG5mX2Nvbm50cmFja19wcm90b191ZHAubyBcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS02LVx0XHQgICBuZl9jb25udHJhY2tfcHJvdG9faWNtcC5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY4NQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGBuZl9jb25udHJhY2tgIERlcGVuZGVuY2llcyoqCgpSaWdodCwgdGhpcyBzbmlwcGV0IGlzIGNsZWFybHkgcmVsYXRlZCB0byB0aGUgYG5mX2Nvbm50cmFjay15YCBwYWNrYWdlIG9yIHN1YnN5c3RlbS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSB3aGF0IG1lY2hhbmlzbXMgZW5hYmxlIHRoZSBjb3JlIGBuZl9jb25udHJhY2tgIGZ1bmN0aW9uYWxpdHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBwcmVyZXF1aXNpdGVzIGFuZCBkZXBlbmRlbmNpZXMuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgZXhhY3RseSB3aGF04oCZcyByZXF1aXJlZCBmb3IgYG5mX2Nvbm50cmFja2AgdG8gYmUgb3BlcmF0aW9uYWwuIFRoaXMgd2lsbCBpbmZvcm0gYW55IHN1YnNlcXVlbnQgdHJvdWJsZXNob290aW5nIG9yIGNvbmZpZ3VyYXRpb24gd29yayByZWxhdGVkIHRvIHRoaXMgcGFydCBvZiB0aGUgbmV0d29yayBzdGFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9jb25udHJhY2steSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9Mj1uZXRmaWx0ZXItb2JqcyA6PSBjb3JlLm8gbmZfbG9nLm8gbmZfcXVldWUubyBuZl9zb2Nrb3B0Lm8gdXRpbHMub1xubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zLVxubmV0L25ldGZpbHRlci9NYWtlZmlsZTo0Om5mX2Nvbm50cmFjay15XHQ6PSBuZl9jb25udHJhY2tfY29yZS5vIG5mX2Nvbm50cmFja19zdGFuZGFsb25lLm8gbmZfY29ubnRyYWNrX2V4cGVjdC5vIG5mX2Nvbm50cmFja19oZWxwZXIubyBcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS01LVx0XHQgICBuZl9jb25udHJhY2tfcHJvdG8ubyBuZl9jb25udHJhY2tfcHJvdG9fZ2VuZXJpYy5vIG5mX2Nvbm50cmFja19wcm90b190Y3AubyBuZl9jb25udHJhY2tfcHJvdG9fdWRwLm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDQzCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgbmZfY29ubnRyYWNrLm9gIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBlbmFibGluZyBgbmZfY29ubnRyYWNrLm9gLiBUaGlzIGlzbiYjMzk7dCBhIHBhcnRpY3VsYXJseSBjb21wbGV4IHF1ZXN0aW9uLCBidXQgaXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdHJvdWJsZXNob290aW5nIG9yIG9wdGltaXphdGlvbi4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSB0cmFjaW5nIGJhY2sgdGhyb3VnaCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgbW9kdWxlcyB0aGF0IHVsdGltYXRlbHkgbGVhZCB0byBpdHMgaW5jbHVzaW9uLiBJIHdpbGwgY29uc2lkZXIgdGhlIHVzdWFsIHN1c3BlY3RzLCBzdWNoIGFzIHdoZXRoZXIgaXQmIzM5O3Mgc3RhdGljYWxseSBjb21waWxlZCBvciBwdWxsZWQgaW4gYXMgYSBtb2R1bGUgYmFzZWQgb24gb3RoZXIgb3B0aW9ucy4gUGVyaGFwcyB0aGVyZSYjMzk7cyBhIHNwZWNpZmljIG5ldHdvcmtpbmcgb3B0aW9uLCBmaXJld2FsbCBmZWF0dXJlLCBvciBjb25uZWN0aW9uIHRyYWNraW5nLXJlbGF0ZWQgc2V0dGluZyB0aGF0IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgZW5hYmxlcyBpdC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgdGhlIGtlcm5lbCBjb25maWcgdG9vbHMgdG8gc2VhcmNoIGFuZCBleHBsb3JlIHRoaXMgY29uZmlndXJhdGlvbiBzcGFjZSB0byBnYWluIGZ1bGwgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmZfY29ubnRyYWNrLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTEzPW5mX2Nvbm50cmFjay0kKENPTkZJR19ORl9DT05OVFJBQ0tfTEFCRUxTKSAmIzQzOz0gbmZfY29ubnRyYWNrX2xhYmVscy5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjE0Om5mX2Nvbm50cmFjay0kKENPTkZJR19ORl9DT05OVFJBQ0tfT1ZTKSAmIzQzOz0gbmZfY29ubnRyYWNrX292cy5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTE1LW5mX2Nvbm50cmFjay0kKENPTkZJR19ORl9DVF9QUk9UT19TQ1RQKSAmIzQzOz0gbmZfY29ubnRyYWNrX3Byb3RvX3NjdHAub1xuLS1cbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9MzE9b2JqLSQoQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0spICYjNDM7PSBuZm5ldGxpbmtfaG9vay5vXG4tLVxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zMy0jIGNvbm5lY3Rpb24gdHJhY2tpbmdcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU6MzQ6b2JqLSQoQ09ORklHX05GX0NPTk5UUkFDSykgJiM0Mzs9IG5mX2Nvbm50cmFjay5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTM1LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDk1CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgYSBDb25uZWN0aW9uIFRyYWNraW5nIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgdGhlIHN5c3RlbSYjMzk7cyB0ZWxsaW5nIG1lIGBDT05GSUdfTkZfQ09OTlRSQUNLYCBpcyBhIHJlcXVpcmVtZW50LiBUaGF0JiMzOTtzIGZpbmUsIGNvbm5lY3Rpb24gdHJhY2tpbmcgaXMgcHJldHR5IGZ1bmRhbWVudGFsIGZvciBtYW55IG5ldHdvcmsgZnVuY3Rpb25hbGl0aWVzLCBlc3BlY2lhbGx5IGluIG1vZGVybiBmaXJld2FsbHMgYW5kIE5BVCBzZXR1cHMuIEJ1dCBiZWZvcmUgSSBnbyBhaGVhZCBhbmQgZW5hYmxlIGl0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLgoKVGhlIGZpcnN0IHRoaW5nIEkgYWx3YXlzIGRvIHdpdGggYSBjb25maWd1cmF0aW9uIG9wdGlvbiBsaWtlIHRoaXMgaXMgdG8gZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgaGF2ZSB0byBmaWd1cmUgb3V0IHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzLCBtb2R1bGVzLCBvciBzdXBwb3J0IGxpYnJhcmllcyBhcmUgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBsaW5rZWQgdG8gYENPTkZJR19ORl9DT05OVFJBQ0tgLiBBcmUgdGhlcmUgb3RoZXIgc2V0dGluZ3MgdGhhdCAqbXVzdCogYmUgZW5hYmxlZCBvciB0aGF0IGFyZSBoaWdobHkgcmVjb21tZW5kZWQ/IE9yLCBjb252ZXJzZWx5LCBhcmUgdGhlcmUgYW55IHBvdGVudGlhbCBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgd2UgdGFsa2luZyBhYm91dCBhIHNpbXBsZSBtb2R1bGUsIG9yIGRvZXMgaXQgdHJpZ2dlciBhIGNhc2NhZGUgb2YgcmVsYXRlZCBvcHRpb25zPyBEZXBlbmRpbmcgb24gbXkgdXNlIGNhc2UgSSYjMzk7bGwgbmVlZCB0byBrbm93IHdoZXRoZXIgZW5hYmxpbmcgdGhpcyB3aWxsIGJlIGEgc3RyYWlnaHRmb3J3YXJkIGFkZGl0aW9uIG9yIHdpbGwgcmVxdWlyZSBjYXJlZnVsIGNvbnNpZGVyYXRpb24gb2YgZXhpc3Rpbmcgc3lzdGVtIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTkZfQ09OTlRSQUNLJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnPTc0PWNvbmZpZyBORVRGSUxURVJfTkVUTElOS19PU0Zcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctODEtXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6ODI6Y29uZmlnIE5GX0NPTk5UUkFDS1xubmV0L25ldGZpbHRlci9LY29uZmlnLTgzLVx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz0xMTE9Y29uZmlnIE5FVEZJTFRFUl9DT05OQ09VTlRcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTEzLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjExNDpjb25maWcgTkZfQ09OTlRSQUNLX01BUktcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gbWFyayB0cmFja2luZyBzdXBwb3J0JiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTIyLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjEyMzpjb25maWcgTkZfQ09OTlRSQUNLX1NFQ01BUktcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMjQtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gdHJhY2tpbmcgc2VjdXJpdHkgbWFyayBzdXBwb3J0JiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTM1LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjEzNjpjb25maWcgTkZfQ09OTlRSQUNLX1pPTkVTXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTM3LVx0Ym9vbCAgJiMzOTtDb25uZWN0aW9uIHRyYWNraW5nIHpvbmVzJiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTQ3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE0ODpjb25maWcgTkZfQ09OTlRSQUNLX1BST0NGU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE0OS1cdGJvb2wgXCYjMzQ7U3VwcGx5IENUIGxpc3QgaW4gcHJvY2ZzIChPQlNPTEVURSlcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTU2LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE1Nzpjb25maWcgTkZfQ09OTlRSQUNLX0VWRU5UU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE1OC1cdGJvb2wgXCYjMzQ7Q29ubmVjdGlvbiB0cmFja2luZyBldmVudHNcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTY2LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE2Nzpjb25maWcgTkZfQ09OTlRSQUNLX1RJTUVPVVRcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNjgtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gdHJhY2tpbmcgdGltZW91dCYjMzk7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTE3Ni1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoxNzc6Y29uZmlnIE5GX0NPTk5UUkFDS19USU1FU1RBTVBcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNzgtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gdHJhY2tpbmcgdGltZXN0YW1waW5nJiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTg3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE4ODpjb25maWcgTkZfQ09OTlRSQUNLX0xBQkVMU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE4OS1cdGJvb2wgXCYjMzQ7Q29ubmVjdGlvbiB0cmFja2luZyBsYWJlbHNcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTk0LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE5NTpjb25maWcgTkZfQ09OTlRSQUNLX09WU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE5Ni1cdGJvb2xcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9MjEyPWNvbmZpZyBORl9DVF9QUk9UT19VRFBMSVRFXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTIyMi1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyMjM6Y29uZmlnIE5GX0NPTk5UUkFDS19BTUFOREFcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yMjQtXHR0cmlzdGF0ZSBcJiMzNDtBbWFuZGEgYmFja3VwIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjM3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjIzODpjb25maWcgTkZfQ09OTlRSQUNLX0ZUUFxubmV0L25ldGZpbHRlci9LY29uZmlnLTIzOS1cdHRyaXN0YXRlIFwmIzM0O0ZUUCBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTI0OS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyNTA6Y29uZmlnIE5GX0NPTk5UUkFDS19IMzIzXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjUxLVx0dHJpc3RhdGUgXCYjMzQ7SC4zMjMgcHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yNjktXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MjcwOmNvbmZpZyBORl9DT05OVFJBQ0tfSVJDXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjcxLVx0dHJpc3RhdGUgXCYjMzQ7SVJDIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg0LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjI4NTpjb25maWcgTkZfQ09OTlRSQUNLX0JST0FEQ0FTVFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI4Ni1cdHRyaXN0YXRlXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjI4ODpjb25maWcgTkZfQ09OTlRSQUNLX05FVEJJT1NfTlNcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yODktXHR0cmlzdGF0ZSBcJiMzNDtOZXRCSU9TIG5hbWUgc2VydmljZSBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTMwNi1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozMDc6Y29uZmlnIE5GX0NPTk5UUkFDS19TTk1QXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzA4LVx0dHJpc3RhdGUgXCYjMzQ7U05NUCBzZXJ2aWNlIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzIxLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjMyMjpjb25maWcgTkZfQ09OTlRSQUNLX1BQVFBcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zMjMtXHR0cmlzdGF0ZSBcJiMzNDtQUHRQIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzQwLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjM0MTpjb25maWcgTkZfQ09OTlRSQUNLX1NBTkVcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNDItXHR0cmlzdGF0ZSBcJiMzNDtTQU5FIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzUzLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjM1NDpjb25maWcgTkZfQ09OTlRSQUNLX1NJUFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O1NJUCBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTM2NS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozNjY6Y29uZmlnIE5GX0NPTk5UUkFDS19URlRQXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzY3LVx0dHJpc3RhdGUgXCYjMzQ7VEZUUCBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNjgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzb21lIHNwZWNpZmljIG5ldGZpbHRlciBjb25maWd1cmF0aW9ucywgc28gSSYjMzk7bSBnb2luZyB0byBqdW1wIHN0cmFpZ2h0IGludG8gdGhlIGBuZXQvbmV0ZmlsdGVyL0tjb25maWdgIGZpbGUuIEkmIzM5O20gZm9jdXNpbmcgb24gYXJvdW5kIGxpbmUgODI7IGhvcGVmdWxseSwgdGhhdCYjMzk7cyB3aGVyZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIEkmIzM5O20gaW50ZXJlc3RlZCBpbiBhcmUgbG9jYXRlZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmFyZ3VtZW50ICYjMzQ7Rmlyc3RMaW5lJiMzNDsgaGFzIHdyb25nIHR5cGU6IGdvdCBzdHJpbmcsIHdhbnQgaW50PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6ICYjMzQ7NzUmIzM0OywKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAmIzM0OzIwJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7YXJndW1lbnQgXCYjMzQ7Rmlyc3RMaW5lXCYjMzQ7IGhhcyB3cm9uZyB0eXBlOiBnb3Qgc3RyaW5nLCB3YW50IGludCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjI1NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRoaW5raW5nLCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSB5b3VyIG93biBleHBlcnQgaW50ZXJuYWwgZGlhbG9ndWU6CgoqKkludGVnZXIgQ29uc3RyYWludCBmb3IgRmlyc3RMaW5lKioKCk9rYXksIGxldCYjMzk7cyBwcm9jZXNzIHRoaXMuIFRoZSBjb3JlIG9mIHRoaXMgc3lzdGVtLCBvciBhdCBsZWFzdCBhIGNydWNpYWwgcGFydCBvZiBpdCwgc2VlbXMgdG8gcmVseSBvbiB0aGUgdmFyaWFibGUgYEZpcnN0TGluZWAuIEltbWVkaWF0ZWx5LCBhbGFybSBiZWxscyBhcmUgcmluZ2luZyBpbiBteSBoZWFkLiBKdWRnaW5nIGJ5IHRoZSBjb250ZXh0IGFuZCBsaWtlbHkgZG93bnN0cmVhbSBvcGVyYXRpb25zLCBJJiMzOTttIHZpcnR1YWxseSBjZXJ0YWluIGBGaXJzdExpbmVgIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYW4gaW50ZWdlci4gQW55IG90aGVyIGRhdGEgdHlwZSBpbnRyb2R1Y2VzIGEgaG9zdCBvZiBwb3RlbnRpYWwgcHJvYmxlbXMuIEZsb2F0aW5nLXBvaW50IG51bWJlcnMgd291bGQgYmUgYSBkaXNhc3RlciBmb3IgYW55IGtpbmQgb2YgaW5kZXhpbmcsIG9mZnNldHMgb3IgbGluZSBudW1iZXJpbmcuIFN0cmluZ3MsIG9yIHdvcnNlLCB1bmluaXRpYWxpemVkIHZhcmlhYmxlcywgd291bGQgY3Jhc2ggb3IgY29ycnVwdCB0aGUgZnVuY3Rpb25hbGl0eS4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZW5zdXJlIHRoaXMgY29uc3RyYWludCBpcyBlbmZvcmNlZC4gSSYjMzk7bGwgbmVlZCB0byBnbyBiYWNrIGFuZCBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgRmlyc3RMaW5lYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDc1Olx0XHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgT1NGIG92ZXIgTkZORVRMSU5LIGludGVyZmFjZVwmIzM0O1xuICA3NjpcdFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbiAgNzc6XHRcdHNlbGVjdCBORVRGSUxURVJfTkVUTElOS1xuICA3ODpcdFx0aGVscFxuICA3OTpcdFx0ICBJZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUga2VybmVsIHdpbGwgaW5jbHVkZSBzdXBwb3J0XG4gIDgwOlx0XHQgIGZvciBwYXNzaXZlIE9TIGZpbmdlcnByaW50IHZpYSBORk5FVExJTksuXG4gIDgxOlx0XG4gIDgyOlx0Y29uZmlnIE5GX0NPTk5UUkFDS1xuICA4MzpcdFx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3VwcG9ydFwmIzM0O1xuICA4NDpcdFx0ZGVmYXVsdCBtIGlmIE5FVEZJTFRFUl9BRFZBTkNFRD1uXG4gIDg1Olx0XHRzZWxlY3QgTkZfREVGUkFHX0lQVjRcbiAgODY6XHRcdHNlbGVjdCBORl9ERUZSQUdfSVBWNiBpZiBJUFY2ICE9IG5cbiAgODc6XHRcdGhlbHBcbiAgODg6XHRcdCAgQ29ubmVjdGlvbiB0cmFja2luZyBrZWVwcyBhIHJlY29yZCBvZiB3aGF0IHBhY2tldHMgaGF2ZSBwYXNzZWRcbiAgODk6XHRcdCAgdGhyb3VnaCB5b3VyIG1hY2hpbmUsIGluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXkgYXJlIHJlbGF0ZWRcbiAgOTA6XHRcdCAgaW50byBjb25uZWN0aW9ucy5cbiAgOTE6XHRcbiAgOTI6XHRcdCAgVGhpcyBpcyByZXF1aXJlZCB0byBkbyBNYXNxdWVyYWRpbmcgb3Igb3RoZXIga2luZHMgb2YgTmV0d29ya1xuICA5MzpcdFx0ICBBZGRyZXNzIFRyYW5zbGF0aW9uLiAgSXQgY2FuIGFsc28gYmUgdXNlZCB0byBlbmhhbmNlIHBhY2tldFxuICA5NDpcdFx0ICBmaWx0ZXJpbmcgKHNlZSBgQ29ubmVjdGlvbiBzdGF0ZSBtYXRjaCBzdXBwb3J0JiMzOTsgYmVsb3cpLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NzcyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgTkZfQ09OTlRSQUNLIERlcGVuZGVuY2llcyoqCgpIbW0sIHNvIGBORl9DT05OVFJBQ0tgIGFwcGVhcnMgdG8gYmUgcHJldHR5IHNlbGYtY29udGFpbmVkLCBhdCBsZWFzdCBvbiB0aGUgc3VyZmFjZS4gTm8gZXhwbGljaXQgYGRlcGVuZHMgb25gIGJleW9uZCwgcGVyaGFwcywgdGhlIG92ZXJhcmNoaW5nIGBORVRGSUxURVJgIGluZnJhc3RydWN0dXJlLCB3aGljaCBpcyBhIGdpdmVuIGluIHRoaXMgY29udGV4dC4gTGV0JiMzOTtzIG5vdCBtYWtlIGFzc3VtcHRpb25zIGhlcmUsIHRob3VnaCwgYW5kIGJlIHN1cmUuIEkmIzM5O2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBgbmV0L25ldGZpbHRlci9LY29uZmlnYCBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwuIEp1c3QgdG8gY29uZmlybSB0aGVyZSBpc24mIzM5O3QgYW55dGhpbmcgc3VidGx5IGluZmx1ZW5jaW5nIHRoZSBjb25maWd1cmF0aW9uIG9mIGNvbm5lY3Rpb24gdHJhY2tpbmcgdGhhdCBJJiMzOTt2ZSBtaXNzZWQuIEl0JiMzOTtzIGFsd2F5cyB3b3J0aCBhIHF1aWNrIGxvb2sgdG8gYXZvaWQgYW55IHNpbGx5IGdvdGNoYXMgbGF0ZXIgb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0bWVudSBcJiMzNDtDb3JlIE5ldGZpbHRlciBDb25maWd1cmF0aW9uXCYjMzQ7XG4gICAzOlx0XHRkZXBlbmRzIG9uIElORVQgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUlxuICAgNDpcdFxuICAgNTpcdGNvbmZpZyBORVRGSUxURVJfSU5HUkVTU1xuICAgNjpcdFx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgaW5ncmVzcyBzdXBwb3J0XCYjMzQ7XG4gICA3Olx0XHRkZWZhdWx0IHlcbiAgIDg6XHRcdHNlbGVjdCBORVRfSU5HUkVTU1xuICAgOTpcdFx0aGVscFxuICAxMDpcdFx0ICBUaGlzIGFsbG93cyB5b3UgdG8gY2xhc3NpZnkgcGFja2V0cyBmcm9tIGluZ3Jlc3MgdXNpbmcgdGhlIE5ldGZpbHRlclxuICAxMTpcdFx0ICBpbmZyYXN0cnVjdHVyZS5cbiAgMTI6XHRcbiAgMTM6XHRjb25maWcgTkVURklMVEVSX0VHUkVTU1xuICAxNDpcdFx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgZWdyZXNzIHN1cHBvcnRcJiMzNDtcbiAgMTU6XHRcdGRlZmF1bHQgeVxuICAxNjpcdFx0c2VsZWN0IE5FVF9FR1JFU1NcbiAgMTc6XHRcdGhlbHBcbiAgMTg6XHRcdCAgVGhpcyBhbGxvd3MgeW91IHRvIGNsYXNzaWZ5IHBhY2tldHMgYmVmb3JlIHRyYW5zbWlzc2lvbiB1c2luZyB0aGVcbiAgMTk6XHRcdCAgTmV0ZmlsdGVyIGluZnJhc3RydWN0dXJlLlxuICAyMDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MjI1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgSSBhbmFseXplIHRoaXM6CgoqKkluaXRpYWwgQXNzZXNzbWVudCBvZiBOZXRmaWx0ZXIgYW5kIENvbm5lY3Rpb24gVHJhY2tpbmcqKgoKT2theSwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgdGhhdCBpbmhlcmVudGx5IGludm9sdmVzIG5ldHdvcmsgY29ubmVjdGlvbnMsIGxpa2VseSBhdCB0aGUga2VybmVsIGxldmVsLiBUaGUgbWVudGlvbiBvZiBgSU5FVGAgYW5kIGBORVRGSUxURVJgIGluc3RhbnRseSB0ZWxscyBtZSB0aGF0IHdlJiMzOTtyZSB3aXRoaW4gdGhlIHJlYWxtIG9mIG5ldHdvcmsgZmlsdGVyaW5nLCBwcm9iYWJseSB3aXRoaW4gdGhlIExpbnV4IGtlcm5lbCYjMzk7cyBOZXRmaWx0ZXIgZnJhbWV3b3JrLiBgTkZfQ09OTlRSQUNLYCBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlLCBzbyBjb25uZWN0aW9uIHRyYWNraW5nIGlzIHRoZSBjb3JlIGNvbmNlcHQgd2UmIzM5O3JlIHdvcmtpbmcgd2l0aC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIE5vdywgbGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBzcGVjaWZpYyBjb250ZXh0IGFkZHMuCgpJdCBzZWVtcyB0aGF0IHRoZXJlJiMzOTtzIGEgcGF0Y2ggdW5kZXIgYW5hbHlzaXMuIFRoZSBrZXkgaW5kaWNhdG9yIGlzIHRoYXQgYSBmdW5jdGlvbiBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIGJlaW5nIG1vZGlmaWVkLiBOb3csIHRoaXMgaXMgd2hlcmUgaXQgZ2V0cyBpbnRlcmVzdGluZywgc2luY2UgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBpcyB0aGUgbWFpbiBzeW1ib2wgdG8gZm9jdXMgb24uCgpNeSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhhdCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIHN0YXRpYywgd2hpY2ggd291bGQgbWVhbiBpdCBpcyBub3QgZXh0ZXJuYWxseSB2aXNpYmxlLCBhbmQgdGhhdCB3b3VsZCBjaGFuZ2UgaG93IGl0IGFmZmVjdHMgdGhlIGtlcm5lbC4gVGhhdCBtYXkgbm90IGJlIHRoZSBjYXNlLiBTbyBJIHNob3VsZCBmaXJzdCB2ZXJpZnkuIEdpdmVuIHRoZSBsaW5lICYjMzQ7V2FpdCwgaXMgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBzdGF0aWM/IE5vLCB3ZSBzYXcgaXQgaW4gYG5mX2Nvbm50cmFja19jb3JlLmNgIGNhbGxlZCBkaXJlY3RseSYjMzQ7LCBJIGNhbiBzdXJtaXNlIHRoZSBjb2RlIGlzIG5vdCBzdGF0aWMuIElmIGl0IHdhcyBzdGF0aWMsIGl0IHdvdWxkIG5vdCBoYXZlIGJlZW4gY2FsbGVkIGRpcmVjdGx5LgoKSSBzaG91bGQgY2hlY2sgdGhlIGxpa2VseSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGNvZGUuIExldCBtZSBjaGVjayBgbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNgLCBhbmQgbWFrZSBzdXJlIGl0IGlzIG5vdCBzdGF0aWMsIGFuZCB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIG5leHQgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDk2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgOTYwOlx0fVxuIDk2MTpcdFxuIDk2MjpcdC8qIFJldHVybnMgdmVyZGljdCBmb3IgcGFja2V0LCBvciAtMSBmb3IgaW52YWxpZC4gKi9cbiA5NjM6XHRpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxuIDk2NDpcdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIDk2NTpcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgZGF0YW9mZixcbiA5NjY6XHRcdFx0XHQgICAgZW51bSBpcF9jb25udHJhY2tfaW5mbyBjdGluZm8sXG4gOTY3Olx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcbiA5Njg6XHR7XG4gOTY5Olx0XHRzdHJ1Y3QgbmV0ICpuZXQgPSBuZl9jdF9uZXQoY3QpO1xuIDk3MDpcdFx0c3RydWN0IG5mX3RjcF9uZXQgKnRuID0gbmZfdGNwX3Blcm5ldChuZXQpO1xuIDk3MTpcdFx0ZW51bSB0Y3BfY29ubnRyYWNrIG5ld19zdGF0ZSwgb2xkX3N0YXRlO1xuIDk3MjpcdFx0dW5zaWduZWQgaW50IGluZGV4LCAqdGltZW91dHM7XG4gOTczOlx0XHRlbnVtIG5mX2N0X3RjcF9hY3Rpb24gcmVzO1xuIDk3NDpcdFx0ZW51bSBpcF9jb25udHJhY2tfZGlyIGRpcjtcbiA5NzU6XHRcdGNvbnN0IHN0cnVjdCB0Y3BoZHIgKnRoO1xuIDk3NjpcdFx0c3RydWN0IHRjcGhkciBfdGNwaDtcbiA5Nzc6XHRcdHVuc2lnbmVkIGxvbmcgdGltZW91dDtcbiA5Nzg6XHRcbiA5Nzk6XHRcdHRoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgZGF0YW9mZiwgc2l6ZW9mKF90Y3BoKSwgXHUwMDI2X3RjcGgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTA4CgkJCQkJCQlvdXRwdXQ6IDkwCgkJCQkJCQl0aG91Z2h0czogMTc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIFNpZ25pZmljYW5jZSoqCgpPa2F5LCBzbyB0aGlzIGRlZmluaXRlbHkgaXNuJiMzOTt0IHN0YXRpYyBjb2RlLCB0aGF0IG11Y2ggaXMgY2xlYXIuIFRoZSBwcmltYXJ5IGZ1bmN0aW9uIG1vZGlmaWVkLCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgLCBpcyBhIHNvbGlkIGZvY3VzIHN5bWJvbC4gSSBzZWUgcG90ZW50aWFsIGhlcmUuCgpOb3csIEkmIzM5O20gdHJ5aW5nIHRvIGRldGVybWluZSB0aGUgc2NvcGUuIERvZXMgdGhpcyBoYXZlIGEgYnJvYWRlciBpbXBhY3QgYmV5b25kIGp1c3QgdGhhdCBmdW5jdGlvbj8gSSYjMzk7bSBleGFtaW5pbmcgdGhlIHBhdGNoIHRvIGRldGVybWluZSBpZiB0aGVyZSBhcmUgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG9yIHBvc3NpYmx5IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkLgoKTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgZW5hYmxpbmcgYE5GX0NPTk5UUkFDS2AgaXMgc3VmZmljaWVudCBmb3IgdGhpcyBwYXRjaCB0byBoYXZlIGFuIGVmZmVjdC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgd2lkZXIgY29uZmlndXJhdGlvbiBjb250ZXh0IHRvIGJlIHN1cmUuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgQ09ORklHX05GX0NPTk5UUkFDS2AsIGBDT05GSUdfTkVURklMVEVSYCwgYW5kIGBDT05GSUdfSU5FVGAuCgpBbHJpZ2h0LCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJiMzOTtsbCBzdW1tYXJpemUgdGhpcyBhczoKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqIOKAkyBUaGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZy4KKiAgICoqRm9jdXNTeW1ib2xzOiBcWyYjMzQ7bmZcX2Nvbm50cmFja1xfdGNwXF9wYWNrZXQmIzM0O1xdKiog4oCTIFRoaXMgZnVuY3Rpb24gaXMgdGhlIHByaW1hcnkgdGFyZ2V0LgoqICAgKipFbmFibGVDb25maWdzOiBcWyYjMzQ7TkZcX0NPTk5UUkFDSyYjMzQ7LCAmIzM0O05FVEZJTFRFUiYjMzQ7LCAmIzM0O0lORVQmIzM0O1xdKiog4oCTIFRoZXNlIGFyZSB0aGUgcmVxdWlyZWQgY29uZmlncy4KKiAgICoqUmVhc29uaW5nOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyBsb2dpYyBpbiBuZXRmaWx0ZXIsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aW1lb3V0cyB1cG9uIHJlY2VpdmluZyBhIFJTVCBwYWNrZXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDsqKiDigJMgVGhpcyBzdWNjaW5jdGx5IGNhcHR1cmVzIHRoZSBlc3NlbmNlIG9mIHRoZSBwYXRjaCYjMzk7cyBpbXBhY3QsIGV4cGxhaW5pbmcgdGhhdCBpdCBkaXJlY3RseSB0b3VjaGVzIGNvcmUgbmV0d29ya2luZyBjb2RlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUiYjMzQ7LAogICAgJiMzNDtJTkVUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfY29ubnRyYWNrX3RjcF9wYWNrZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORl9DT05OVFJBQ0smIzM0OywKICAgICYjMzQ7TkVURklMVEVSJiMzNDssCiAgICAmIzM0O0lORVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9jb25udHJhY2tfdGNwX3BhY2tldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyBsb2dpYyBpbiBuZXRmaWx0ZXIsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aW1lb3V0cyB1cG9uIHJlY2VpdmluZyBhIFJTVCBwYWNrZXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MTo1My40OTg4OTc2NTRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjAxNjExMjE1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9DT05OVFJBQ0tcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiSU5FVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2Nvbm50cmFja190Y3BfcGFja2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MTo1My40OTg5MDMyMDRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1OTQ2ODgxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDRhNjk2YmRhNzlmOTUwZTE3NTU3YmY3ZDJkOGE1ZGYzYzY0ZDFjMjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMzAgMjE6NDE6NTIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xcbmluZGV4IDBjMWQwODZlOTZjYjMuLjg0OTQ3MTEwMTU2YTMgMTAwNjQ0XFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNcXG4rKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xcbkBAIC0xMjgwLDggKzEyODAsMTEgQEAgaW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcXG4gXFx0aWYgKGN0LVxcdTAwM2Vwcm90by50Y3AucmV0cmFucyBcXHUwMDNlPSB0bi1cXHUwMDNldGNwX21heF9yZXRyYW5zIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICB0aW1lb3V0c1tuZXdfc3RhdGVdIFxcdTAwM2UgdGltZW91dHNbVENQX0NPTk5UUkFDS19SRVRSQU5TXSlcXG4gXFx0XFx0dGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfUkVUUkFOU107XFxuLVxcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUKSlcXG4rXFx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0XFx0ICBuZXdfc3RhdGUgPT0gVENQX0NPTk5UUkFDS19DTE9TRSkpXFxuIFxcdFxcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX0NMT1NFXTtcXG4rXFx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQpKVxcbitcXHRcXHR0aW1lb3V0ID0gdGltZW91dHNbVENQX0NPTk5UUkFDS19VTkFDS107XFxuIFxcdGVsc2UgaWYgKChjdC1cXHUwMDNlcHJvdG8udGNwLnNlZW5bMF0uZmxhZ3MgfCBjdC1cXHUwMDNlcHJvdG8udGNwLnNlZW5bMV0uZmxhZ3MpIFxcdTAwMjZcXG4gXFx0XFx0IElQX0NUX1RDUF9GTEFHX0RBVEFfVU5BQ0tOT1dMRURHRUQgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0IHRpbWVvdXRzW25ld19zdGF0ZV0gXFx1MDAzZSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1VOQUNLXSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDE6NTMuODU4OTM2MjI2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzU2NTYwNjQ5NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORVRGSUxURVJcIixcbiAgICBcIklORVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jb25udHJhY2tfdGNwX3BhY2tldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nIGxvZ2ljIGluIG5ldGZpbHRlciwgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRpbWVvdXRzIHVwb24gcmVjZWl2aW5nIGEgUlNUIHBhY2tldC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGE2OTZiZGE3OWY5NTBlMTc1NTdiZjdkMmQ4YTVkZjNjNjRkMWMyOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDIxOjQxOjUyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xuaW5kZXggMGMxZDA4NmU5NmNiMy4uODQ5NDcxMTAxNTZhMyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jXG4rKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xuQEAgLTEyODAsOCArMTI4MCwxMSBAQCBpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxuIFx0aWYgKGN0LVx1MDAzZXByb3RvLnRjcC5yZXRyYW5zIFx1MDAzZT0gdG4tXHUwMDNldGNwX21heF9yZXRyYW5zIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRpbWVvdXRzW25ld19zdGF0ZV0gXHUwMDNlIHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfUkVUUkFOU10pXG4gXHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1JFVFJBTlNdO1xuLVx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQpKVxuK1x0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQgXHUwMDI2XHUwMDI2XG4rXHRcdFx0ICBuZXdfc3RhdGUgPT0gVENQX0NPTk5UUkFDS19DTE9TRSkpXG4gXHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX0NMT1NFXTtcbitcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUKSlcbitcdFx0dGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdO1xuIFx0ZWxzZSBpZiAoKGN0LVx1MDAzZXByb3RvLnRjcC5zZWVuWzBdLmZsYWdzIHwgY3QtXHUwMDNlcHJvdG8udGNwLnNlZW5bMV0uZmxhZ3MpIFx1MDAyNlxuIFx0XHQgSVBfQ1RfVENQX0ZMQUdfREFUQV9VTkFDS05PV0xFREdFRCBcdTAwMjZcdTAwMjZcbiBcdFx0IHRpbWVvdXRzW25ld19zdGF0ZV0gXHUwMDNlIHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDE6NTMuODU4OTM3NDE2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI4ODI3ODkyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBUQ1AgQ29ubmVjdGlvbiBUcmFja2luZyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgd2l0aGluIGBuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY2AuIE15IGluaXRpYWwgcmVhZCB0ZWxscyBtZSBpdCdzIHRvdWNoaW5nIHRoZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyB0aW1lb3V0IGxvZ2ljLCBzcGVjaWZpY2FsbHkgd2hlbiBhIFJTVCBwYWNrZXQgY29tZXMgaW50byBwbGF5LiBJIHNlZSB0aGF0IHRoZXJlIGFyZSBhZGp1c3RtZW50cyB0byBob3cgdGltZW91dHMgYXJlIGhhbmRsZWQgYmFzZWQgb24gdGhlIGNvbm5lY3Rpb24ncyBzdGF0ZSB3aGVuIGEgUlNUIGlzIHJlY2VpdmVkLiBJZiBgaW5kZXggPT0gVENQX1JTVF9TRVRgIGFuZCB0aGUgbmV3IHN0YXRlIGlzIGBUQ1BfQ09OTlRSQUNLX0NMT1NFYCwgdGhlIHRpbWVvdXQgZ2V0cyBzZXQgdG8gYHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfQ0xPU0VdYC4gQ29udmVyc2VseSwgaWYgYGluZGV4ID09IFRDUF9SU1RfU0VUYCBidXQgdGhlIG5ldyBzdGF0ZSBpc24ndCBgVENQX0NPTk5UUkFDS19DTE9TRWAsIGl0J3Mgc2V0dGluZyB0aGUgdGltZW91dCB0byBgdGltZW91dHNbVENQX0NPTk5UUkFDS19VTkFDS11gLlxuXG5UaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIG5ldGZpbHRlciBUQ1AgY29ubmVjdGlvbiB0cmFja2luZy4gSW1tZWRpYXRlbHksIG15IHJhZGFyIGlzIHVwOyB0aGlzIGJlZ3MgZm9yIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBUaGUgd2F5IHRpbWVvdXRzIGFyZSBoYW5kbGVkIGNhbiBvZnRlbiBiZSBhIHNvdXJjZSBvZiBzdWJ0bGUsIG9yIG5vdCBzbyBzdWJ0bGUsIGlzc3Vlcy5cblxuSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHN1cnJvdW5kaW5nIGNvZGUuIExldCdzIHN0YXJ0IGJ5IGlkZW50aWZ5aW5nIHRoZSBjcml0aWNhbCBzeW1ib2xzIGFuZCBhbnkgcG90ZW50aWFsIGNvbmZpZyByZXF1aXJlbWVudHMuIEknbGwgbmVlZCB0byBmb2N1cyBvbiBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGFuZCBpdHMgY29udGV4dCB3aXRoaW4gdGhlIG5ldGZpbHRlciBUQ1AgbW9kdWxlLlxuXG5Pa2F5LCBsZXQncyBzdGFydCB3aXRoIGEgcXVpY2sgYGdyZXBgIGZvciBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QganVtcGluZy1vZmYgcG9pbnQgdG8gc2VlIGhvdyB0aGUgZnVuY3Rpb24gaXMgdXNlZCBhbmQgYW55IHJlbGF0ZWQgZnVuY3Rpb25zIG9yIGRhdGEgc3RydWN0dXJlcyBJIG5lZWQgdG8gZm9jdXMgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMTksIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MTo1OC4xNDcyMTgyMjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MzYxNjczLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2Nvbm50cmFja190Y3BfcGFja2V0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuYz0xOTcxPXN0YXRpYyBpbnQgbmZfY29ubnRyYWNrX2hhbmRsZV9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxcbi0tXFxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jLTE5NzgtXFx0Y2FzZSBJUFBST1RPX1RDUDpcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmM6MTk3OTpcXHRcXHRyZXR1cm4gbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoY3QsIHNrYiwgZGF0YW9mZixcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmMtMTk4MC1cXHRcXHRcXHRcXHRcXHQgICAgICAgY3RpbmZvLCBzdGF0ZSk7XFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYz05NTI9c3RhdGljIHZvaWQgbmZfY3RfdGNwX3N0YXRlX3Jlc2V0KHN0cnVjdCBpcF9jdF90Y3Bfc3RhdGUgKnN0YXRlKVxcbi0tXFxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMtOTYyLS8qIFJldHVybnMgdmVyZGljdCBmb3IgcGFja2V0LCBvciAtMSBmb3IgaW52YWxpZC4gKi9cXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYzo5NjM6aW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYy05NjQtXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQxOjU4LjI3MTU4MzUzNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5Mzk2OTI1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBuZl9jb25udHJhY2tfdGNwX3BhY2tldCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAuIFRoZSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCdzIGEgbm9uLXN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggbWVhbnMgaXQncyBlaXRoZXIgZXhwb3J0ZWQgb3IgYXQgbGVhc3QgdXNlZCBpbiBtdWx0aXBsZSBmaWxlcywgYXMgY29uZmlybWVkIGJ5IGxvb2tpbmcgYXQgYG5mX2Nvbm50cmFja19jb3JlLmNgLiBIbW0sIHdhaXQgYSBzZWNvbmQuIEkgcmVtZW1iZXIgbm93OiBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIGBuZl9jb25udHJhY2tfaGFuZGxlX3BhY2tldGAsIGFuZCAqdGhhdCogZnVuY3Rpb24gaXMgc3RhdGljLiBUaGlzIG5lZWRzIHNvbWUgY2xhcmlmaWNhdGlvbi4gSSBuZWVkIHRvIHZlcmlmeSB3aGV0aGVyIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgaXMgdHJ1bHkgZXhwb3J0ZWQgb3IgaWYgaXQncyBtZXJlbHkgbm9uLXN0YXRpYyBmb3Igc29tZSBvdGhlciByZWFzb24sIGxpa2UgYmVpbmcgdXNlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgc29tZXdoZXJlLiBMZXQncyBtYWtlIHN1cmUuIEFoLCB5ZXMuIEl0IGlzIG5vbi1zdGF0aWMsIGNvbmZpcm1pbmcgdGhhdCBpdCAqY2FuKiBiZSBhIHN5bWJvbCB3b3J0aCBmdXJ0aGVyIGludmVzdGlnYXRpb24uIE5vdywgbGV0J3MgbW92ZSBvbiBhbmQgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHBhcnRpY3VsYXJseSBmb3IgYG5mX2Nvbm50cmFja19wcm90b190Y3AuY2AsIGp1c3QgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMjYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MDIuMjExMjc4OTExWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NzM2MTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2Nvbm50cmFja19wcm90b190Y3Aub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTQ9bmZfY29ubnRyYWNrLXlcXHQ6PSBuZl9jb25udHJhY2tfY29yZS5vIG5mX2Nvbm50cmFja19zdGFuZGFsb25lLm8gbmZfY29ubnRyYWNrX2V4cGVjdC5vIG5mX2Nvbm50cmFja19oZWxwZXIubyBcXFxcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZTo1OlxcdFxcdCAgIG5mX2Nvbm50cmFja19wcm90by5vIG5mX2Nvbm50cmFja19wcm90b19nZW5lcmljLm8gbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5vIG5mX2Nvbm50cmFja19wcm90b191ZHAubyBcXFxcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS02LVxcdFxcdCAgIG5mX2Nvbm50cmFja19wcm90b19pY21wLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjowMi4yNTkwMTcyMloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3NTUyNTIwMjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYG5mX2Nvbm50cmFja2AgRGVwZW5kZW5jaWVzKipcblxuUmlnaHQsIHRoaXMgc25pcHBldCBpcyBjbGVhcmx5IHJlbGF0ZWQgdG8gdGhlIGBuZl9jb25udHJhY2steWAgcGFja2FnZSBvciBzdWJzeXN0ZW0uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkZXRlcm1pbmUgd2hhdCBtZWNoYW5pc21zIGVuYWJsZSB0aGUgY29yZSBgbmZfY29ubnRyYWNrYCBmdW5jdGlvbmFsaXR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcHJlcmVxdWlzaXRlcyBhbmQgZGVwZW5kZW5jaWVzLiBMZXQncyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgZXhhY3RseSB3aGF04oCZcyByZXF1aXJlZCBmb3IgYG5mX2Nvbm50cmFja2AgdG8gYmUgb3BlcmF0aW9uYWwuIFRoaXMgd2lsbCBpbmZvcm0gYW55IHN1YnNlcXVlbnQgdHJvdWJsZXNob290aW5nIG9yIGNvbmZpZ3VyYXRpb24gd29yayByZWxhdGVkIHRvIHRoaXMgcGFydCBvZiB0aGUgbmV0d29yayBzdGFjay5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY4NSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjA1LjAxNDI3MTU5MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTM0NzE1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9jb25udHJhY2steVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTI9bmV0ZmlsdGVyLW9ianMgOj0gY29yZS5vIG5mX2xvZy5vIG5mX3F1ZXVlLm8gbmZfc29ja29wdC5vIHV0aWxzLm9cXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTMtXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZTo0Om5mX2Nvbm50cmFjay15XFx0Oj0gbmZfY29ubnRyYWNrX2NvcmUubyBuZl9jb25udHJhY2tfc3RhbmRhbG9uZS5vIG5mX2Nvbm50cmFja19leHBlY3QubyBuZl9jb25udHJhY2tfaGVscGVyLm8gXFxcXFxcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtNS1cXHRcXHQgICBuZl9jb25udHJhY2tfcHJvdG8ubyBuZl9jb25udHJhY2tfcHJvdG9fZ2VuZXJpYy5vIG5mX2Nvbm50cmFja19wcm90b190Y3AubyBuZl9jb25udHJhY2tfcHJvdG9fdWRwLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjowNS4wNTk2MzkxODJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzk5NDMyNzczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIGBuZl9jb25udHJhY2sub2AgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQncyBlbmFibGluZyBgbmZfY29ubnRyYWNrLm9gLiBUaGlzIGlzbid0IGEgcGFydGljdWxhcmx5IGNvbXBsZXggcXVlc3Rpb24sIGJ1dCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRyb3VibGVzaG9vdGluZyBvciBvcHRpbWl6YXRpb24uIEknbSBnb2luZyB0byBzdGFydCBieSB0cmFjaW5nIGJhY2sgdGhyb3VnaCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgbW9kdWxlcyB0aGF0IHVsdGltYXRlbHkgbGVhZCB0byBpdHMgaW5jbHVzaW9uLiBJIHdpbGwgY29uc2lkZXIgdGhlIHVzdWFsIHN1c3BlY3RzLCBzdWNoIGFzIHdoZXRoZXIgaXQncyBzdGF0aWNhbGx5IGNvbXBpbGVkIG9yIHB1bGxlZCBpbiBhcyBhIG1vZHVsZSBiYXNlZCBvbiBvdGhlciBvcHRpb25zLiBQZXJoYXBzIHRoZXJlJ3MgYSBzcGVjaWZpYyBuZXR3b3JraW5nIG9wdGlvbiwgZmlyZXdhbGwgZmVhdHVyZSwgb3IgY29ubmVjdGlvbiB0cmFja2luZy1yZWxhdGVkIHNldHRpbmcgdGhhdCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGVuYWJsZXMgaXQuIEknbGwgbmVlZCB0byB1c2UgdGhlIGtlcm5lbCBjb25maWcgdG9vbHMgdG8gc2VhcmNoIGFuZCBleHBsb3JlIHRoaXMgY29uZmlndXJhdGlvbiBzcGFjZSB0byBnYWluIGZ1bGwgdW5kZXJzdGFuZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA0MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjA3Ljg1OTA3Mzc0NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkxODUwMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmZfY29ubnRyYWNrLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZT0xMz1uZl9jb25udHJhY2stJChDT05GSUdfTkZfQ09OTlRSQUNLX0xBQkVMUykgKz0gbmZfY29ubnRyYWNrX2xhYmVscy5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZToxNDpuZl9jb25udHJhY2stJChDT05GSUdfTkZfQ09OTlRSQUNLX09WUykgKz0gbmZfY29ubnRyYWNrX292cy5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0xNS1uZl9jb25udHJhY2stJChDT05GSUdfTkZfQ1RfUFJPVE9fU0NUUCkgKz0gbmZfY29ubnRyYWNrX3Byb3RvX3NjdHAub1xcbi0tXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZT0zMT1vYmotJChDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PSykgKz0gbmZuZXRsaW5rX2hvb2sub1xcbi0tXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zMy0jIGNvbm5lY3Rpb24gdHJhY2tpbmdcXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19ORl9DT05OVFJBQ0spICs9IG5mX2Nvbm50cmFjay5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MDcuOTA4MjYxMTQ0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwODI0ODM3NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYSBDb25uZWN0aW9uIFRyYWNraW5nIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCB0aGUgc3lzdGVtJ3MgdGVsbGluZyBtZSBgQ09ORklHX05GX0NPTk5UUkFDS2AgaXMgYSByZXF1aXJlbWVudC4gVGhhdCdzIGZpbmUsIGNvbm5lY3Rpb24gdHJhY2tpbmcgaXMgcHJldHR5IGZ1bmRhbWVudGFsIGZvciBtYW55IG5ldHdvcmsgZnVuY3Rpb25hbGl0aWVzLCBlc3BlY2lhbGx5IGluIG1vZGVybiBmaXJld2FsbHMgYW5kIE5BVCBzZXR1cHMuIEJ1dCBiZWZvcmUgSSBnbyBhaGVhZCBhbmQgZW5hYmxlIGl0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLlxuXG5UaGUgZmlyc3QgdGhpbmcgSSBhbHdheXMgZG8gd2l0aCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGxpa2UgdGhpcyBpcyB0byBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcy4gSSBoYXZlIHRvIGZpZ3VyZSBvdXQgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMsIG1vZHVsZXMsIG9yIHN1cHBvcnQgbGlicmFyaWVzIGFyZSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGxpbmtlZCB0byBgQ09ORklHX05GX0NPTk5UUkFDS2AuIEFyZSB0aGVyZSBvdGhlciBzZXR0aW5ncyB0aGF0ICptdXN0KiBiZSBlbmFibGVkIG9yIHRoYXQgYXJlIGhpZ2hseSByZWNvbW1lbmRlZD8gT3IsIGNvbnZlcnNlbHksIGFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEFyZSB3ZSB0YWxraW5nIGFib3V0IGEgc2ltcGxlIG1vZHVsZSwgb3IgZG9lcyBpdCB0cmlnZ2VyIGEgY2FzY2FkZSBvZiByZWxhdGVkIG9wdGlvbnM/IERlcGVuZGluZyBvbiBteSB1c2UgY2FzZSBJJ2xsIG5lZWQgdG8ga25vdyB3aGV0aGVyIGVuYWJsaW5nIHRoaXMgd2lsbCBiZSBhIHN0cmFpZ2h0Zm9yd2FyZCBhZGRpdGlvbiBvciB3aWxsIHJlcXVpcmUgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIG9mIGV4aXN0aW5nIHN5c3RlbSBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ5NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjEwLjk5MDc0NzA5NloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU3Njk5OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GX0NPTk5UUkFDS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NzQ9Y29uZmlnIE5FVEZJTFRFUl9ORVRMSU5LX09TRlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTgxLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo4Mjpjb25maWcgTkZfQ09OTlRSQUNLXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgY29ubmVjdGlvbiB0cmFja2luZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnPTExMT1jb25maWcgTkVURklMVEVSX0NPTk5DT1VOVFxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTExMy1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTE0OmNvbmZpZyBORl9DT05OVFJBQ0tfTUFSS1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXFx0Ym9vbCAgJ0Nvbm5lY3Rpb24gbWFyayB0cmFja2luZyBzdXBwb3J0J1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTEyMi1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTIzOmNvbmZpZyBORl9DT05OVFJBQ0tfU0VDTUFSS1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMjQtXFx0Ym9vbCAgJ0Nvbm5lY3Rpb24gdHJhY2tpbmcgc2VjdXJpdHkgbWFyayBzdXBwb3J0J1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTEzNS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTM2OmNvbmZpZyBORl9DT05OVFJBQ0tfWk9ORVNcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTM3LVxcdGJvb2wgICdDb25uZWN0aW9uIHRyYWNraW5nIHpvbmVzJ1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE0Ny1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTQ4OmNvbmZpZyBORl9DT05OVFJBQ0tfUFJPQ0ZTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE0OS1cXHRib29sIFxcXCJTdXBwbHkgQ1QgbGlzdCBpbiBwcm9jZnMgKE9CU09MRVRFKVxcXCJcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNTYtXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjE1Nzpjb25maWcgTkZfQ09OTlRSQUNLX0VWRU5UU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiQ29ubmVjdGlvbiB0cmFja2luZyBldmVudHNcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTY2LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoxNjc6Y29uZmlnIE5GX0NPTk5UUkFDS19USU1FT1VUXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE2OC1cXHRib29sICAnQ29ubmVjdGlvbiB0cmFja2luZyB0aW1lb3V0J1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE3Ni1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTc3OmNvbmZpZyBORl9DT05OVFJBQ0tfVElNRVNUQU1QXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE3OC1cXHRib29sICAnQ29ubmVjdGlvbiB0cmFja2luZyB0aW1lc3RhbXBpbmcnXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTg3LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoxODg6Y29uZmlnIE5GX0NPTk5UUkFDS19MQUJFTFNcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTg5LVxcdGJvb2wgXFxcIkNvbm5lY3Rpb24gdHJhY2tpbmcgbGFiZWxzXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE5NC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTk1OmNvbmZpZyBORl9DT05OVFJBQ0tfT1ZTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE5Ni1cXHRib29sXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9MjEyPWNvbmZpZyBORl9DVF9QUk9UT19VRFBMSVRFXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjIyLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyMjM6Y29uZmlnIE5GX0NPTk5UUkFDS19BTUFOREFcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjI0LVxcdHRyaXN0YXRlIFxcXCJBbWFuZGEgYmFja3VwIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjM3LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyMzg6Y29uZmlnIE5GX0NPTk5UUkFDS19GVFBcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjM5LVxcdHRyaXN0YXRlIFxcXCJGVFAgcHJvdG9jb2wgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yNDktXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjI1MDpjb25maWcgTkZfQ09OTlRSQUNLX0gzMjNcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjUxLVxcdHRyaXN0YXRlIFxcXCJILjMyMyBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI2OS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MjcwOmNvbmZpZyBORl9DT05OVFJBQ0tfSVJDXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI3MS1cXHR0cmlzdGF0ZSBcXFwiSVJDIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg0LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyODU6Y29uZmlnIE5GX0NPTk5UUkFDS19CUk9BRENBU1RcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg2LVxcdHRyaXN0YXRlXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI4Ny1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Mjg4OmNvbmZpZyBORl9DT05OVFJBQ0tfTkVUQklPU19OU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yODktXFx0dHJpc3RhdGUgXFxcIk5ldEJJT1MgbmFtZSBzZXJ2aWNlIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzA2LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozMDc6Y29uZmlnIE5GX0NPTk5UUkFDS19TTk1QXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTMwOC1cXHR0cmlzdGF0ZSBcXFwiU05NUCBzZXJ2aWNlIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzIxLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozMjI6Y29uZmlnIE5GX0NPTk5UUkFDS19QUFRQXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTMyMy1cXHR0cmlzdGF0ZSBcXFwiUFB0UCBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM0MC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MzQxOmNvbmZpZyBORl9DT05OVFJBQ0tfU0FORVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNDItXFx0dHJpc3RhdGUgXFxcIlNBTkUgcHJvdG9jb2wgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNTMtXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjM1NDpjb25maWcgTkZfQ09OTlRSQUNLX1NJUFxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNTUtXFx0dHJpc3RhdGUgXFxcIlNJUCBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM2NS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MzY2OmNvbmZpZyBORl9DT05OVFJBQ0tfVEZUUFxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNjctXFx0dHJpc3RhdGUgXFxcIlRGVFAgcHJvdG9jb2wgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MTEuMDQ2NTE5MTc0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2NzQ3MDIxNzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzb21lIHNwZWNpZmljIG5ldGZpbHRlciBjb25maWd1cmF0aW9ucywgc28gSSdtIGdvaW5nIHRvIGp1bXAgc3RyYWlnaHQgaW50byB0aGUgYG5ldC9uZXRmaWx0ZXIvS2NvbmZpZ2AgZmlsZS4gSSdtIGZvY3VzaW5nIG9uIGFyb3VuZCBsaW5lIDgyOyBob3BlZnVsbHksIHRoYXQncyB3aGVyZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIEknbSBpbnRlcmVzdGVkIGluIGFyZSBsb2NhdGVkLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZmluZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA2OCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjEzLjcyMTIyMzEzM1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzAyMCwiRXJyb3IiOiJhcmd1bWVudCBcIkZpcnN0TGluZVwiIGhhcyB3cm9uZyB0eXBlOiBnb3Qgc3RyaW5nLCB3YW50IGludCIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiBcIjc1XCIsXG4gIFwiTGluZUNvdW50XCI6IFwiMjBcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJhcmd1bWVudCBcXFwiRmlyc3RMaW5lXFxcIiBoYXMgd3JvbmcgdHlwZTogZ290IHN0cmluZywgd2FudCBpbnRcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MTMuNzIxMjQ5MzMzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjg4ODEyMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhpbmtpbmcsIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIHlvdXIgb3duIGV4cGVydCBpbnRlcm5hbCBkaWFsb2d1ZTpcblxuKipJbnRlZ2VyIENvbnN0cmFpbnQgZm9yIEZpcnN0TGluZSoqXG5cbk9rYXksIGxldCdzIHByb2Nlc3MgdGhpcy4gVGhlIGNvcmUgb2YgdGhpcyBzeXN0ZW0sIG9yIGF0IGxlYXN0IGEgY3J1Y2lhbCBwYXJ0IG9mIGl0LCBzZWVtcyB0byByZWx5IG9uIHRoZSB2YXJpYWJsZSBgRmlyc3RMaW5lYC4gSW1tZWRpYXRlbHksIGFsYXJtIGJlbGxzIGFyZSByaW5naW5nIGluIG15IGhlYWQuIEp1ZGdpbmcgYnkgdGhlIGNvbnRleHQgYW5kIGxpa2VseSBkb3duc3RyZWFtIG9wZXJhdGlvbnMsIEknbSB2aXJ0dWFsbHkgY2VydGFpbiBgRmlyc3RMaW5lYCBuZWVkcyB0byBiZSBkZWZpbmVkIGFzIGFuIGludGVnZXIuIEFueSBvdGhlciBkYXRhIHR5cGUgaW50cm9kdWNlcyBhIGhvc3Qgb2YgcG90ZW50aWFsIHByb2JsZW1zLiBGbG9hdGluZy1wb2ludCBudW1iZXJzIHdvdWxkIGJlIGEgZGlzYXN0ZXIgZm9yIGFueSBraW5kIG9mIGluZGV4aW5nLCBvZmZzZXRzIG9yIGxpbmUgbnVtYmVyaW5nLiBTdHJpbmdzLCBvciB3b3JzZSwgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMsIHdvdWxkIGNyYXNoIG9yIGNvcnJ1cHQgdGhlIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGVuc3VyZSB0aGlzIGNvbnN0cmFpbnQgaXMgZW5mb3JjZWQuIEknbGwgbmVlZCB0byBnbyBiYWNrIGFuZCBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgRmlyc3RMaW5lYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjI1NiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoxNi44OTAxMzI0NzdaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTY1ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDc1OlxcdFxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgT1NGIG92ZXIgTkZORVRMSU5LIGludGVyZmFjZVxcXCJcXG4gIDc2OlxcdFxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxuICA3NzpcXHRcXHRzZWxlY3QgTkVURklMVEVSX05FVExJTktcXG4gIDc4OlxcdFxcdGhlbHBcXG4gIDc5OlxcdFxcdCAgSWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgdGhlIGtlcm5lbCB3aWxsIGluY2x1ZGUgc3VwcG9ydFxcbiAgODA6XFx0XFx0ICBmb3IgcGFzc2l2ZSBPUyBmaW5nZXJwcmludCB2aWEgTkZORVRMSU5LLlxcbiAgODE6XFx0XFxuICA4MjpcXHRjb25maWcgTkZfQ09OTlRSQUNLXFxuICA4MzpcXHRcXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3VwcG9ydFxcXCJcXG4gIDg0OlxcdFxcdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9blxcbiAgODU6XFx0XFx0c2VsZWN0IE5GX0RFRlJBR19JUFY0XFxuICA4NjpcXHRcXHRzZWxlY3QgTkZfREVGUkFHX0lQVjYgaWYgSVBWNiAhPSBuXFxuICA4NzpcXHRcXHRoZWxwXFxuICA4ODpcXHRcXHQgIENvbm5lY3Rpb24gdHJhY2tpbmcga2VlcHMgYSByZWNvcmQgb2Ygd2hhdCBwYWNrZXRzIGhhdmUgcGFzc2VkXFxuICA4OTpcXHRcXHQgIHRocm91Z2ggeW91ciBtYWNoaW5lLCBpbiBvcmRlciB0byBmaWd1cmUgb3V0IGhvdyB0aGV5IGFyZSByZWxhdGVkXFxuICA5MDpcXHRcXHQgIGludG8gY29ubmVjdGlvbnMuXFxuICA5MTpcXHRcXG4gIDkyOlxcdFxcdCAgVGhpcyBpcyByZXF1aXJlZCB0byBkbyBNYXNxdWVyYWRpbmcgb3Igb3RoZXIga2luZHMgb2YgTmV0d29ya1xcbiAgOTM6XFx0XFx0ICBBZGRyZXNzIFRyYW5zbGF0aW9uLiAgSXQgY2FuIGFsc28gYmUgdXNlZCB0byBlbmhhbmNlIHBhY2tldFxcbiAgOTQ6XFx0XFx0ICBmaWx0ZXJpbmcgKHNlZSBgQ29ubmVjdGlvbiBzdGF0ZSBtYXRjaCBzdXBwb3J0JyBiZWxvdykuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjE2Ljg5MDIzMDIzN1oiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjI2Njg2NjkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIE5GX0NPTk5UUkFDSyBEZXBlbmRlbmNpZXMqKlxuXG5IbW0sIHNvIGBORl9DT05OVFJBQ0tgIGFwcGVhcnMgdG8gYmUgcHJldHR5IHNlbGYtY29udGFpbmVkLCBhdCBsZWFzdCBvbiB0aGUgc3VyZmFjZS4gTm8gZXhwbGljaXQgYGRlcGVuZHMgb25gIGJleW9uZCwgcGVyaGFwcywgdGhlIG92ZXJhcmNoaW5nIGBORVRGSUxURVJgIGluZnJhc3RydWN0dXJlLCB3aGljaCBpcyBhIGdpdmVuIGluIHRoaXMgY29udGV4dC4gTGV0J3Mgbm90IG1ha2UgYXNzdW1wdGlvbnMgaGVyZSwgdGhvdWdoLCBhbmQgYmUgc3VyZS4gSSdsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgYG5ldC9uZXRmaWx0ZXIvS2NvbmZpZ2AgZmlsZSBhdCB0aGUgdG9wLWxldmVsLiBKdXN0IHRvIGNvbmZpcm0gdGhlcmUgaXNuJ3QgYW55dGhpbmcgc3VidGx5IGluZmx1ZW5jaW5nIHRoZSBjb25maWd1cmF0aW9uIG9mIGNvbm5lY3Rpb24gdHJhY2tpbmcgdGhhdCBJJ3ZlIG1pc3NlZC4gSXQncyBhbHdheXMgd29ydGggYSBxdWljayBsb29rIHRvIGF2b2lkIGFueSBzaWxseSBnb3RjaGFzIGxhdGVyIG9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzcyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoyMC4xMTY5MTg2OThaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTQyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRtZW51IFxcXCJDb3JlIE5ldGZpbHRlciBDb25maWd1cmF0aW9uXFxcIlxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUIFxcdTAwMjZcXHUwMDI2IE5FVEZJTFRFUlxcbiAgIDQ6XFx0XFxuICAgNTpcXHRjb25maWcgTkVURklMVEVSX0lOR1JFU1NcXG4gICA2OlxcdFxcdGJvb2wgXFxcIk5ldGZpbHRlciBpbmdyZXNzIHN1cHBvcnRcXFwiXFxuICAgNzpcXHRcXHRkZWZhdWx0IHlcXG4gICA4OlxcdFxcdHNlbGVjdCBORVRfSU5HUkVTU1xcbiAgIDk6XFx0XFx0aGVscFxcbiAgMTA6XFx0XFx0ICBUaGlzIGFsbG93cyB5b3UgdG8gY2xhc3NpZnkgcGFja2V0cyBmcm9tIGluZ3Jlc3MgdXNpbmcgdGhlIE5ldGZpbHRlclxcbiAgMTE6XFx0XFx0ICBpbmZyYXN0cnVjdHVyZS5cXG4gIDEyOlxcdFxcbiAgMTM6XFx0Y29uZmlnIE5FVEZJTFRFUl9FR1JFU1NcXG4gIDE0OlxcdFxcdGJvb2wgXFxcIk5ldGZpbHRlciBlZ3Jlc3Mgc3VwcG9ydFxcXCJcXG4gIDE1OlxcdFxcdGRlZmF1bHQgeVxcbiAgMTY6XFx0XFx0c2VsZWN0IE5FVF9FR1JFU1NcXG4gIDE3OlxcdFxcdGhlbHBcXG4gIDE4OlxcdFxcdCAgVGhpcyBhbGxvd3MgeW91IHRvIGNsYXNzaWZ5IHBhY2tldHMgYmVmb3JlIHRyYW5zbWlzc2lvbiB1c2luZyB0aGVcXG4gIDE5OlxcdFxcdCAgTmV0ZmlsdGVyIGluZnJhc3RydWN0dXJlLlxcbiAgMjA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjIwLjExNzAxNDQ2OFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDIwMzM4NjIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBJIGFuYWx5emUgdGhpczpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgTmV0ZmlsdGVyIGFuZCBDb25uZWN0aW9uIFRyYWNraW5nKipcblxuT2theSwgc28gd2UncmUgZGVhbGluZyB3aXRoIHNvbWV0aGluZyB0aGF0IGluaGVyZW50bHkgaW52b2x2ZXMgbmV0d29yayBjb25uZWN0aW9ucywgbGlrZWx5IGF0IHRoZSBrZXJuZWwgbGV2ZWwuIFRoZSBtZW50aW9uIG9mIGBJTkVUYCBhbmQgYE5FVEZJTFRFUmAgaW5zdGFudGx5IHRlbGxzIG1lIHRoYXQgd2UncmUgd2l0aGluIHRoZSByZWFsbSBvZiBuZXR3b3JrIGZpbHRlcmluZywgcHJvYmFibHkgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwncyBOZXRmaWx0ZXIgZnJhbWV3b3JrLiBgTkZfQ09OTlRSQUNLYCBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlLCBzbyBjb25uZWN0aW9uIHRyYWNraW5nIGlzIHRoZSBjb3JlIGNvbmNlcHQgd2UncmUgd29ya2luZyB3aXRoLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBOb3csIGxldCdzIHNlZSB3aGF0IHRoZSBzcGVjaWZpYyBjb250ZXh0IGFkZHMuXG5cbkl0IHNlZW1zIHRoYXQgdGhlcmUncyBhIHBhdGNoIHVuZGVyIGFuYWx5c2lzLiBUaGUga2V5IGluZGljYXRvciBpcyB0aGF0IGEgZnVuY3Rpb24gYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBpcyBiZWluZyBtb2RpZmllZC4gTm93LCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIHNpbmNlIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgaXMgdGhlIG1haW4gc3ltYm9sIHRvIGZvY3VzIG9uLlxuXG5NeSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhhdCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIHN0YXRpYywgd2hpY2ggd291bGQgbWVhbiBpdCBpcyBub3QgZXh0ZXJuYWxseSB2aXNpYmxlLCBhbmQgdGhhdCB3b3VsZCBjaGFuZ2UgaG93IGl0IGFmZmVjdHMgdGhlIGtlcm5lbC4gVGhhdCBtYXkgbm90IGJlIHRoZSBjYXNlLiBTbyBJIHNob3VsZCBmaXJzdCB2ZXJpZnkuIEdpdmVuIHRoZSBsaW5lIFwiV2FpdCwgaXMgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBzdGF0aWM/IE5vLCB3ZSBzYXcgaXQgaW4gYG5mX2Nvbm50cmFja19jb3JlLmNgIGNhbGxlZCBkaXJlY3RseVwiLCBJIGNhbiBzdXJtaXNlIHRoZSBjb2RlIGlzIG5vdCBzdGF0aWMuIElmIGl0IHdhcyBzdGF0aWMsIGl0IHdvdWxkIG5vdCBoYXZlIGJlZW4gY2FsbGVkIGRpcmVjdGx5LlxuXG5JIHNob3VsZCBjaGVjayB0aGUgbGlrZWx5IGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4gTGV0IG1lIGNoZWNrIGBuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY2AsIGFuZCBtYWtlIHN1cmUgaXQgaXMgbm90IHN0YXRpYywgYW5kIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIFRoYXQncyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcyMjUsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoyNC41MzczNTQ5MzlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTM5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNcIixcbiAgXCJGaXJzdExpbmVcIjogOTYwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgOTYwOlxcdH1cXG4gOTYxOlxcdFxcbiA5NjI6XFx0LyogUmV0dXJucyB2ZXJkaWN0IGZvciBwYWNrZXQsIG9yIC0xIGZvciBpbnZhbGlkLiAqL1xcbiA5NjM6XFx0aW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcXG4gOTY0OlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiA5NjU6XFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBkYXRhb2ZmLFxcbiA5NjY6XFx0XFx0XFx0XFx0ICAgIGVudW0gaXBfY29ubnRyYWNrX2luZm8gY3RpbmZvLFxcbiA5Njc6XFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcXG4gOTY4OlxcdHtcXG4gOTY5OlxcdFxcdHN0cnVjdCBuZXQgKm5ldCA9IG5mX2N0X25ldChjdCk7XFxuIDk3MDpcXHRcXHRzdHJ1Y3QgbmZfdGNwX25ldCAqdG4gPSBuZl90Y3BfcGVybmV0KG5ldCk7XFxuIDk3MTpcXHRcXHRlbnVtIHRjcF9jb25udHJhY2sgbmV3X3N0YXRlLCBvbGRfc3RhdGU7XFxuIDk3MjpcXHRcXHR1bnNpZ25lZCBpbnQgaW5kZXgsICp0aW1lb3V0cztcXG4gOTczOlxcdFxcdGVudW0gbmZfY3RfdGNwX2FjdGlvbiByZXM7XFxuIDk3NDpcXHRcXHRlbnVtIGlwX2Nvbm50cmFja19kaXIgZGlyO1xcbiA5NzU6XFx0XFx0Y29uc3Qgc3RydWN0IHRjcGhkciAqdGg7XFxuIDk3NjpcXHRcXHRzdHJ1Y3QgdGNwaGRyIF90Y3BoO1xcbiA5Nzc6XFx0XFx0dW5zaWduZWQgbG9uZyB0aW1lb3V0O1xcbiA5Nzg6XFx0XFxuIDk3OTpcXHRcXHR0aCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIGRhdGFvZmYsIHNpemVvZihfdGNwaCksIFxcdTAwMjZfdGNwaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjI0LjUzNzQ0OTk0OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODk5NjU5OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgU2lnbmlmaWNhbmNlKipcblxuT2theSwgc28gdGhpcyBkZWZpbml0ZWx5IGlzbid0IHN0YXRpYyBjb2RlLCB0aGF0IG11Y2ggaXMgY2xlYXIuIFRoZSBwcmltYXJ5IGZ1bmN0aW9uIG1vZGlmaWVkLCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgLCBpcyBhIHNvbGlkIGZvY3VzIHN5bWJvbC4gSSBzZWUgcG90ZW50aWFsIGhlcmUuXG5cbk5vdywgSSdtIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIHNjb3BlLiBEb2VzIHRoaXMgaGF2ZSBhIGJyb2FkZXIgaW1wYWN0IGJleW9uZCBqdXN0IHRoYXQgZnVuY3Rpb24/IEknbSBleGFtaW5pbmcgdGhlIHBhdGNoIHRvIGRldGVybWluZSBpZiB0aGVyZSBhcmUgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG9yIHBvc3NpYmx5IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkLlxuXG5MZXQncyBxdWlja2x5IHZlcmlmeSB0aGF0IGVuYWJsaW5nIGBORl9DT05OVFJBQ0tgIGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgcGF0Y2ggdG8gaGF2ZSBhbiBlZmZlY3QuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgd2lkZXIgY29uZmlndXJhdGlvbiBjb250ZXh0IHRvIGJlIHN1cmUuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGBDT05GSUdfTkZfQ09OTlRSQUNLYCwgYENPTkZJR19ORVRGSUxURVJgLCBhbmQgYENPTkZJR19JTkVUYC5cblxuQWxyaWdodCwgSSdtIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJ2xsIHN1bW1hcml6ZSB0aGlzIGFzOlxuXG4qICAgKipXb3J0aEZ1enppbmc6IHRydWUqKiDigJMgVGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IHdhcnJhbnRzIGZ1enppbmcuXG4qICAgKipGb2N1c1N5bWJvbHM6IFxcW1wibmZcXF9jb25udHJhY2tcXF90Y3BcXF9wYWNrZXRcIlxcXSoqIOKAkyBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBwcmltYXJ5IHRhcmdldC5cbiogICAqKkVuYWJsZUNvbmZpZ3M6IFxcW1wiTkZcXF9DT05OVFJBQ0tcIiwgXCJORVRGSUxURVJcIiwgXCJJTkVUXCJcXF0qKiDigJMgVGhlc2UgYXJlIHRoZSByZXF1aXJlZCBjb25maWdzLlxuKiAgICoqUmVhc29uaW5nOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyBsb2dpYyBpbiBuZXRmaWx0ZXIsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aW1lb3V0cyB1cG9uIHJlY2VpdmluZyBhIFJTVCBwYWNrZXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIqKiDigJMgVGhpcyBzdWNjaW5jdGx5IGNhcHR1cmVzIHRoZSBlc3NlbmNlIG9mIHRoZSBwYXRjaCdzIGltcGFjdCwgZXhwbGFpbmluZyB0aGF0IGl0IGRpcmVjdGx5IHRvdWNoZXMgY29yZSBuZXR3b3JraW5nIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgxMDgsIk91dHB1dFRva2VucyI6OTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoyOS40MzcxMTI3MjZaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3Nzg4NjI3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORVRGSUxURVJcIixcbiAgICBcIklORVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jb25udHJhY2tfdGNwX3BhY2tldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nIGxvZ2ljIGluIG5ldGZpbHRlciwgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRpbWVvdXRzIHVwb24gcmVjZWl2aW5nIGEgUlNUIHBhY2tldC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9DT05OVFJBQ0tcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiSU5FVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2Nvbm50cmFja190Y3BfcGFja2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 21:21:08 +0000 UTC FinishedAt: 2026-07-30 21:42:31 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "fb402386af4cdce108ff991a796386de55439735", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_CONNTRACK", "NETFILTER", "INET" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git", "commit_hash": "fb402386af4cdce108ff991a796386de55439735", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_CONNTRACK", "NETFILTER", "INET" ], "series_id": "ef00ebd8-7c50-45ce-8042-d1eb591424cf" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_conntrack_tcp_packet" ], "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+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX0NPTk5UUkFDSyYjMzQ7LAogICAgJiMzNDtORVRGSUxURVImIzM0OywKICAgICYjMzQ7SU5FVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2Nvbm50cmFja190Y3BfcGFja2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nIGxvZ2ljIGluIG5ldGZpbHRlciwgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRpbWVvdXRzIHVwb24gcmVjZWl2aW5nIGEgUlNUIHBhY2tldC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRhNjk2YmRhNzlmOTUwZTE3NTU3YmY3ZDJkOGE1ZGYzYzY0ZDFjMjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAyMTo0MTo1MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jXG5pbmRleCAwYzFkMDg2ZTk2Y2IzLi44NDk0NzExMDE1NmEzIDEwMDY0NFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jXG5AQCAtMTI4MCw4ICYjNDM7MTI4MCwxMSBAQCBpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxuIFx0aWYgKGN0LVx1MDAzZXByb3RvLnRjcC5yZXRyYW5zIFx1MDAzZT0gdG4tXHUwMDNldGNwX21heF9yZXRyYW5zIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRpbWVvdXRzW25ld19zdGF0ZV0gXHUwMDNlIHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfUkVUUkFOU10pXG4gXHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1JFVFJBTlNdO1xuLVx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQpKVxuJiM0MztcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUIFx1MDAyNlx1MDAyNlxuJiM0MztcdFx0XHQgIG5ld19zdGF0ZSA9PSBUQ1BfQ09OTlRSQUNLX0NMT1NFKSlcbiBcdFx0dGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfQ0xPU0VdO1xuJiM0MztcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUKSlcbiYjNDM7XHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1VOQUNLXTtcbiBcdGVsc2UgaWYgKChjdC1cdTAwM2Vwcm90by50Y3Auc2VlblswXS5mbGFncyB8IGN0LVx1MDAzZXByb3RvLnRjcC5zZWVuWzFdLmZsYWdzKSBcdTAwMjZcbiBcdFx0IElQX0NUX1RDUF9GTEFHX0RBVEFfVU5BQ0tOT1dMRURHRUQgXHUwMDI2XHUwMDI2XG4gXHRcdCB0aW1lb3V0c1tuZXdfc3RhdGVdIFx1MDAzZSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1VOQUNLXSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUiYjMzQ7LAogICAgJiMzNDtJTkVUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfY29ubnRyYWNrX3RjcF9wYWNrZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGE2OTZiZGE3OWY5NTBlMTc1NTdiZjdkMmQ4YTVkZjNjNjRkMWMyOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDMwIDIxOjQxOjUyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwppbmRleCAwYzFkMDg2ZTk2Y2IzLi44NDk0NzExMDE1NmEzIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwpAQCAtMTI4MCw4ICYjNDM7MTI4MCwxMSBAQCBpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LAogCWlmIChjdC0mZ3Q7cHJvdG8udGNwLnJldHJhbnMgJmd0Oz0gdG4tJmd0O3RjcF9tYXhfcmV0cmFucyAmYW1wOyZhbXA7CiAJICAgIHRpbWVvdXRzW25ld19zdGF0ZV0gJmd0OyB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1JFVFJBTlNdKQogCQl0aW1lb3V0ID0gdGltZW91dHNbVENQX0NPTk5UUkFDS19SRVRSQU5TXTsKLQllbHNlIGlmICh1bmxpa2VseShpbmRleCA9PSBUQ1BfUlNUX1NFVCkpCiYjNDM7CWVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUICZhbXA7JmFtcDsKJiM0MzsJCQkgIG5ld19zdGF0ZSA9PSBUQ1BfQ09OTlRSQUNLX0NMT1NFKSkKIAkJdGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfQ0xPU0VdOwomIzQzOwllbHNlIGlmICh1bmxpa2VseShpbmRleCA9PSBUQ1BfUlNUX1NFVCkpCiYjNDM7CQl0aW1lb3V0ID0gdGltZW91dHNbVENQX0NPTk5UUkFDS19VTkFDS107CiAJZWxzZSBpZiAoKGN0LSZndDtwcm90by50Y3Auc2VlblswXS5mbGFncyB8IGN0LSZndDtwcm90by50Y3Auc2VlblsxXS5mbGFncykgJmFtcDsKIAkJIElQX0NUX1RDUF9GTEFHX0RBVEFfVU5BQ0tOT1dMRURHRUQgJmFtcDsmYW1wOwogCQkgdGltZW91dHNbbmV3X3N0YXRlXSAmZ3Q7IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjE5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFRDUCBDb25uZWN0aW9uIFRyYWNraW5nIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgd2l0aGluIGBuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY2AuIE15IGluaXRpYWwgcmVhZCB0ZWxscyBtZSBpdCYjMzk7cyB0b3VjaGluZyB0aGUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgdGltZW91dCBsb2dpYywgc3BlY2lmaWNhbGx5IHdoZW4gYSBSU1QgcGFja2V0IGNvbWVzIGludG8gcGxheS4gSSBzZWUgdGhhdCB0aGVyZSBhcmUgYWRqdXN0bWVudHMgdG8gaG93IHRpbWVvdXRzIGFyZSBoYW5kbGVkIGJhc2VkIG9uIHRoZSBjb25uZWN0aW9uJiMzOTtzIHN0YXRlIHdoZW4gYSBSU1QgaXMgcmVjZWl2ZWQuIElmIGBpbmRleCA9PSBUQ1BfUlNUX1NFVGAgYW5kIHRoZSBuZXcgc3RhdGUgaXMgYFRDUF9DT05OVFJBQ0tfQ0xPU0VgLCB0aGUgdGltZW91dCBnZXRzIHNldCB0byBgdGltZW91dHNbVENQX0NPTk5UUkFDS19DTE9TRV1gLiBDb252ZXJzZWx5LCBpZiBgaW5kZXggPT0gVENQX1JTVF9TRVRgIGJ1dCB0aGUgbmV3IHN0YXRlIGlzbiYjMzk7dCBgVENQX0NPTk5UUkFDS19DTE9TRWAsIGl0JiMzOTtzIHNldHRpbmcgdGhlIHRpbWVvdXQgdG8gYHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdYC4KClRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgbmV0ZmlsdGVyIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nLiBJbW1lZGlhdGVseSwgbXkgcmFkYXIgaXMgdXA7IHRoaXMgYmVncyBmb3Igc29tZSBzZXJpb3VzIGZ1enppbmcuIFRoZSB3YXkgdGltZW91dHMgYXJlIGhhbmRsZWQgY2FuIG9mdGVuIGJlIGEgc291cmNlIG9mIHN1YnRsZSwgb3Igbm90IHNvIHN1YnRsZSwgaXNzdWVzLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHN1cnJvdW5kaW5nIGNvZGUuIExldCYjMzk7cyBzdGFydCBieSBpZGVudGlmeWluZyB0aGUgY3JpdGljYWwgc3ltYm9scyBhbmQgYW55IHBvdGVudGlhbCBjb25maWcgcmVxdWlyZW1lbnRzLiBJJiMzOTtsbCBuZWVkIHRvIGZvY3VzIG9uIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgYW5kIGl0cyBjb250ZXh0IHdpdGhpbiB0aGUgbmV0ZmlsdGVyIFRDUCBtb2R1bGUuCgpPa2F5LCBsZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHF1aWNrIGBncmVwYCBmb3IgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGp1bXBpbmctb2ZmIHBvaW50IHRvIHNlZSBob3cgdGhlIGZ1bmN0aW9uIGlzIHVzZWQgYW5kIGFueSByZWxhdGVkIGZ1bmN0aW9ucyBvciBkYXRhIHN0cnVjdHVyZXMgSSBuZWVkIHRvIGZvY3VzIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2Nvbm50cmFja190Y3BfcGFja2V0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jPTE5NzE9c3RhdGljIGludCBuZl9jb25udHJhY2tfaGFuZGxlX3BhY2tldChzdHJ1Y3QgbmZfY29ubiAqY3QsXG4tLVxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jLTE5NzgtXHRjYXNlIElQUFJPVE9fVENQOlxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jOjE5Nzk6XHRcdHJldHVybiBuZl9jb25udHJhY2tfdGNwX3BhY2tldChjdCwgc2tiLCBkYXRhb2ZmLFxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jLTE5ODAtXHRcdFx0XHRcdCAgICAgICBjdGluZm8sIHN0YXRlKTtcbi0tXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYz05NTI9c3RhdGljIHZvaWQgbmZfY3RfdGNwX3N0YXRlX3Jlc2V0KHN0cnVjdCBpcF9jdF90Y3Bfc3RhdGUgKnN0YXRlKVxuLS1cbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jLTk2Mi0vKiBSZXR1cm5zIHZlcmRpY3QgZm9yIHBhY2tldCwgb3IgLTEgZm9yIGludmFsaWQuICovXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYzo5NjM6aW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcbm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jLTk2NC1cdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTI2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAuIFRoZSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBhIG5vbi1zdGF0aWMgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGVpdGhlciBleHBvcnRlZCBvciBhdCBsZWFzdCB1c2VkIGluIG11bHRpcGxlIGZpbGVzLCBhcyBjb25maXJtZWQgYnkgbG9va2luZyBhdCBgbmZfY29ubnRyYWNrX2NvcmUuY2AuIEhtbSwgd2FpdCBhIHNlY29uZC4gSSByZW1lbWJlciBub3c6IGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgaXMgYWN0dWFsbHkgY2FsbGVkIGZyb20gYG5mX2Nvbm50cmFja19oYW5kbGVfcGFja2V0YCwgYW5kICp0aGF0KiBmdW5jdGlvbiBpcyBzdGF0aWMuIFRoaXMgbmVlZHMgc29tZSBjbGFyaWZpY2F0aW9uLiBJIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBpcyB0cnVseSBleHBvcnRlZCBvciBpZiBpdCYjMzk7cyBtZXJlbHkgbm9uLXN0YXRpYyBmb3Igc29tZSBvdGhlciByZWFzb24sIGxpa2UgYmVpbmcgdXNlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgc29tZXdoZXJlLiBMZXQmIzM5O3MgbWFrZSBzdXJlLiBBaCwgeWVzLiBJdCBpcyBub24tc3RhdGljLCBjb25maXJtaW5nIHRoYXQgaXQgKmNhbiogYmUgYSBzeW1ib2wgd29ydGggZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBOb3csIGxldCYjMzk7cyBtb3ZlIG9uIGFuZCBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgcGFydGljdWxhcmx5IGZvciBgbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jYCwganVzdCB0byBnZXQgdGhlIGZ1bGwgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9jb25udHJhY2tfcHJvdG9fdGNwLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTQ9bmZfY29ubnRyYWNrLXlcdDo9IG5mX2Nvbm50cmFja19jb3JlLm8gbmZfY29ubnRyYWNrX3N0YW5kYWxvbmUubyBuZl9jb25udHJhY2tfZXhwZWN0Lm8gbmZfY29ubnRyYWNrX2hlbHBlci5vIFxcXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjU6XHRcdCAgIG5mX2Nvbm50cmFja19wcm90by5vIG5mX2Nvbm50cmFja19wcm90b19nZW5lcmljLm8gbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5vIG5mX2Nvbm50cmFja19wcm90b191ZHAubyBcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS02LVx0XHQgICBuZl9jb25udHJhY2tfcHJvdG9faWNtcC5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY4NQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGBuZl9jb25udHJhY2tgIERlcGVuZGVuY2llcyoqCgpSaWdodCwgdGhpcyBzbmlwcGV0IGlzIGNsZWFybHkgcmVsYXRlZCB0byB0aGUgYG5mX2Nvbm50cmFjay15YCBwYWNrYWdlIG9yIHN1YnN5c3RlbS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSB3aGF0IG1lY2hhbmlzbXMgZW5hYmxlIHRoZSBjb3JlIGBuZl9jb25udHJhY2tgIGZ1bmN0aW9uYWxpdHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBwcmVyZXF1aXNpdGVzIGFuZCBkZXBlbmRlbmNpZXMuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgZXhhY3RseSB3aGF04oCZcyByZXF1aXJlZCBmb3IgYG5mX2Nvbm50cmFja2AgdG8gYmUgb3BlcmF0aW9uYWwuIFRoaXMgd2lsbCBpbmZvcm0gYW55IHN1YnNlcXVlbnQgdHJvdWJsZXNob290aW5nIG9yIGNvbmZpZ3VyYXRpb24gd29yayByZWxhdGVkIHRvIHRoaXMgcGFydCBvZiB0aGUgbmV0d29yayBzdGFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9jb25udHJhY2steSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9Mj1uZXRmaWx0ZXItb2JqcyA6PSBjb3JlLm8gbmZfbG9nLm8gbmZfcXVldWUubyBuZl9zb2Nrb3B0Lm8gdXRpbHMub1xubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zLVxubmV0L25ldGZpbHRlci9NYWtlZmlsZTo0Om5mX2Nvbm50cmFjay15XHQ6PSBuZl9jb25udHJhY2tfY29yZS5vIG5mX2Nvbm50cmFja19zdGFuZGFsb25lLm8gbmZfY29ubnRyYWNrX2V4cGVjdC5vIG5mX2Nvbm50cmFja19oZWxwZXIubyBcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS01LVx0XHQgICBuZl9jb25udHJhY2tfcHJvdG8ubyBuZl9jb25udHJhY2tfcHJvdG9fZ2VuZXJpYy5vIG5mX2Nvbm50cmFja19wcm90b190Y3AubyBuZl9jb25udHJhY2tfcHJvdG9fdWRwLm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDQzCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgbmZfY29ubnRyYWNrLm9gIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBlbmFibGluZyBgbmZfY29ubnRyYWNrLm9gLiBUaGlzIGlzbiYjMzk7dCBhIHBhcnRpY3VsYXJseSBjb21wbGV4IHF1ZXN0aW9uLCBidXQgaXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdHJvdWJsZXNob290aW5nIG9yIG9wdGltaXphdGlvbi4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSB0cmFjaW5nIGJhY2sgdGhyb3VnaCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgbW9kdWxlcyB0aGF0IHVsdGltYXRlbHkgbGVhZCB0byBpdHMgaW5jbHVzaW9uLiBJIHdpbGwgY29uc2lkZXIgdGhlIHVzdWFsIHN1c3BlY3RzLCBzdWNoIGFzIHdoZXRoZXIgaXQmIzM5O3Mgc3RhdGljYWxseSBjb21waWxlZCBvciBwdWxsZWQgaW4gYXMgYSBtb2R1bGUgYmFzZWQgb24gb3RoZXIgb3B0aW9ucy4gUGVyaGFwcyB0aGVyZSYjMzk7cyBhIHNwZWNpZmljIG5ldHdvcmtpbmcgb3B0aW9uLCBmaXJld2FsbCBmZWF0dXJlLCBvciBjb25uZWN0aW9uIHRyYWNraW5nLXJlbGF0ZWQgc2V0dGluZyB0aGF0IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgZW5hYmxlcyBpdC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgdGhlIGtlcm5lbCBjb25maWcgdG9vbHMgdG8gc2VhcmNoIGFuZCBleHBsb3JlIHRoaXMgY29uZmlndXJhdGlvbiBzcGFjZSB0byBnYWluIGZ1bGwgdW5kZXJzdGFuZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmZfY29ubnRyYWNrLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTEzPW5mX2Nvbm50cmFjay0kKENPTkZJR19ORl9DT05OVFJBQ0tfTEFCRUxTKSAmIzQzOz0gbmZfY29ubnRyYWNrX2xhYmVscy5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjE0Om5mX2Nvbm50cmFjay0kKENPTkZJR19ORl9DT05OVFJBQ0tfT1ZTKSAmIzQzOz0gbmZfY29ubnRyYWNrX292cy5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTE1LW5mX2Nvbm50cmFjay0kKENPTkZJR19ORl9DVF9QUk9UT19TQ1RQKSAmIzQzOz0gbmZfY29ubnRyYWNrX3Byb3RvX3NjdHAub1xuLS1cbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU9MzE9b2JqLSQoQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0spICYjNDM7PSBuZm5ldGxpbmtfaG9vay5vXG4tLVxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zMy0jIGNvbm5lY3Rpb24gdHJhY2tpbmdcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU6MzQ6b2JqLSQoQ09ORklHX05GX0NPTk5UUkFDSykgJiM0Mzs9IG5mX2Nvbm50cmFjay5vXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTM1LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDk1CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgYSBDb25uZWN0aW9uIFRyYWNraW5nIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgdGhlIHN5c3RlbSYjMzk7cyB0ZWxsaW5nIG1lIGBDT05GSUdfTkZfQ09OTlRSQUNLYCBpcyBhIHJlcXVpcmVtZW50LiBUaGF0JiMzOTtzIGZpbmUsIGNvbm5lY3Rpb24gdHJhY2tpbmcgaXMgcHJldHR5IGZ1bmRhbWVudGFsIGZvciBtYW55IG5ldHdvcmsgZnVuY3Rpb25hbGl0aWVzLCBlc3BlY2lhbGx5IGluIG1vZGVybiBmaXJld2FsbHMgYW5kIE5BVCBzZXR1cHMuIEJ1dCBiZWZvcmUgSSBnbyBhaGVhZCBhbmQgZW5hYmxlIGl0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLgoKVGhlIGZpcnN0IHRoaW5nIEkgYWx3YXlzIGRvIHdpdGggYSBjb25maWd1cmF0aW9uIG9wdGlvbiBsaWtlIHRoaXMgaXMgdG8gZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgaGF2ZSB0byBmaWd1cmUgb3V0IHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzLCBtb2R1bGVzLCBvciBzdXBwb3J0IGxpYnJhcmllcyBhcmUgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBsaW5rZWQgdG8gYENPTkZJR19ORl9DT05OVFJBQ0tgLiBBcmUgdGhlcmUgb3RoZXIgc2V0dGluZ3MgdGhhdCAqbXVzdCogYmUgZW5hYmxlZCBvciB0aGF0IGFyZSBoaWdobHkgcmVjb21tZW5kZWQ/IE9yLCBjb252ZXJzZWx5LCBhcmUgdGhlcmUgYW55IHBvdGVudGlhbCBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgd2UgdGFsa2luZyBhYm91dCBhIHNpbXBsZSBtb2R1bGUsIG9yIGRvZXMgaXQgdHJpZ2dlciBhIGNhc2NhZGUgb2YgcmVsYXRlZCBvcHRpb25zPyBEZXBlbmRpbmcgb24gbXkgdXNlIGNhc2UgSSYjMzk7bGwgbmVlZCB0byBrbm93IHdoZXRoZXIgZW5hYmxpbmcgdGhpcyB3aWxsIGJlIGEgc3RyYWlnaHRmb3J3YXJkIGFkZGl0aW9uIG9yIHdpbGwgcmVxdWlyZSBjYXJlZnVsIGNvbnNpZGVyYXRpb24gb2YgZXhpc3Rpbmcgc3lzdGVtIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTkZfQ09OTlRSQUNLJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnPTc0PWNvbmZpZyBORVRGSUxURVJfTkVUTElOS19PU0Zcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctODEtXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6ODI6Y29uZmlnIE5GX0NPTk5UUkFDS1xubmV0L25ldGZpbHRlci9LY29uZmlnLTgzLVx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz0xMTE9Y29uZmlnIE5FVEZJTFRFUl9DT05OQ09VTlRcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTEzLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjExNDpjb25maWcgTkZfQ09OTlRSQUNLX01BUktcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gbWFyayB0cmFja2luZyBzdXBwb3J0JiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTIyLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjEyMzpjb25maWcgTkZfQ09OTlRSQUNLX1NFQ01BUktcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMjQtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gdHJhY2tpbmcgc2VjdXJpdHkgbWFyayBzdXBwb3J0JiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTM1LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjEzNjpjb25maWcgTkZfQ09OTlRSQUNLX1pPTkVTXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTM3LVx0Ym9vbCAgJiMzOTtDb25uZWN0aW9uIHRyYWNraW5nIHpvbmVzJiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTQ3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE0ODpjb25maWcgTkZfQ09OTlRSQUNLX1BST0NGU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE0OS1cdGJvb2wgXCYjMzQ7U3VwcGx5IENUIGxpc3QgaW4gcHJvY2ZzIChPQlNPTEVURSlcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTU2LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE1Nzpjb25maWcgTkZfQ09OTlRSQUNLX0VWRU5UU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE1OC1cdGJvb2wgXCYjMzQ7Q29ubmVjdGlvbiB0cmFja2luZyBldmVudHNcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTY2LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE2Nzpjb25maWcgTkZfQ09OTlRSQUNLX1RJTUVPVVRcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNjgtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gdHJhY2tpbmcgdGltZW91dCYjMzk7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTE3Ni1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoxNzc6Y29uZmlnIE5GX0NPTk5UUkFDS19USU1FU1RBTVBcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNzgtXHRib29sICAmIzM5O0Nvbm5lY3Rpb24gdHJhY2tpbmcgdGltZXN0YW1waW5nJiMzOTtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTg3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE4ODpjb25maWcgTkZfQ09OTlRSQUNLX0xBQkVMU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE4OS1cdGJvb2wgXCYjMzQ7Q29ubmVjdGlvbiB0cmFja2luZyBsYWJlbHNcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTk0LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjE5NTpjb25maWcgTkZfQ09OTlRSQUNLX09WU1xubmV0L25ldGZpbHRlci9LY29uZmlnLTE5Ni1cdGJvb2xcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9MjEyPWNvbmZpZyBORl9DVF9QUk9UT19VRFBMSVRFXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTIyMi1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyMjM6Y29uZmlnIE5GX0NPTk5UUkFDS19BTUFOREFcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yMjQtXHR0cmlzdGF0ZSBcJiMzNDtBbWFuZGEgYmFja3VwIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjM3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjIzODpjb25maWcgTkZfQ09OTlRSQUNLX0ZUUFxubmV0L25ldGZpbHRlci9LY29uZmlnLTIzOS1cdHRyaXN0YXRlIFwmIzM0O0ZUUCBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTI0OS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyNTA6Y29uZmlnIE5GX0NPTk5UUkFDS19IMzIzXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjUxLVx0dHJpc3RhdGUgXCYjMzQ7SC4zMjMgcHJvdG9jb2wgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yNjktXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MjcwOmNvbmZpZyBORl9DT05OVFJBQ0tfSVJDXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjcxLVx0dHJpc3RhdGUgXCYjMzQ7SVJDIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg0LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjI4NTpjb25maWcgTkZfQ09OTlRSQUNLX0JST0FEQ0FTVFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI4Ni1cdHRyaXN0YXRlXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg3LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjI4ODpjb25maWcgTkZfQ09OTlRSQUNLX05FVEJJT1NfTlNcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yODktXHR0cmlzdGF0ZSBcJiMzNDtOZXRCSU9TIG5hbWUgc2VydmljZSBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTMwNi1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozMDc6Y29uZmlnIE5GX0NPTk5UUkFDS19TTk1QXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzA4LVx0dHJpc3RhdGUgXCYjMzQ7U05NUCBzZXJ2aWNlIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzIxLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjMyMjpjb25maWcgTkZfQ09OTlRSQUNLX1BQVFBcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zMjMtXHR0cmlzdGF0ZSBcJiMzNDtQUHRQIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzQwLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjM0MTpjb25maWcgTkZfQ09OTlRSQUNLX1NBTkVcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNDItXHR0cmlzdGF0ZSBcJiMzNDtTQU5FIHByb3RvY29sIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzUzLVxubmV0L25ldGZpbHRlci9LY29uZmlnOjM1NDpjb25maWcgTkZfQ09OTlRSQUNLX1NJUFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O1NJUCBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTM2NS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozNjY6Y29uZmlnIE5GX0NPTk5UUkFDS19URlRQXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzY3LVx0dHJpc3RhdGUgXCYjMzQ7VEZUUCBwcm90b2NvbCBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNjgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzb21lIHNwZWNpZmljIG5ldGZpbHRlciBjb25maWd1cmF0aW9ucywgc28gSSYjMzk7bSBnb2luZyB0byBqdW1wIHN0cmFpZ2h0IGludG8gdGhlIGBuZXQvbmV0ZmlsdGVyL0tjb25maWdgIGZpbGUuIEkmIzM5O20gZm9jdXNpbmcgb24gYXJvdW5kIGxpbmUgODI7IGhvcGVmdWxseSwgdGhhdCYjMzk7cyB3aGVyZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIEkmIzM5O20gaW50ZXJlc3RlZCBpbiBhcmUgbG9jYXRlZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmFyZ3VtZW50ICYjMzQ7Rmlyc3RMaW5lJiMzNDsgaGFzIHdyb25nIHR5cGU6IGdvdCBzdHJpbmcsIHdhbnQgaW50PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6ICYjMzQ7NzUmIzM0OywKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAmIzM0OzIwJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7YXJndW1lbnQgXCYjMzQ7Rmlyc3RMaW5lXCYjMzQ7IGhhcyB3cm9uZyB0eXBlOiBnb3Qgc3RyaW5nLCB3YW50IGludCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjI1NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRoaW5raW5nLCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSB5b3VyIG93biBleHBlcnQgaW50ZXJuYWwgZGlhbG9ndWU6CgoqKkludGVnZXIgQ29uc3RyYWludCBmb3IgRmlyc3RMaW5lKioKCk9rYXksIGxldCYjMzk7cyBwcm9jZXNzIHRoaXMuIFRoZSBjb3JlIG9mIHRoaXMgc3lzdGVtLCBvciBhdCBsZWFzdCBhIGNydWNpYWwgcGFydCBvZiBpdCwgc2VlbXMgdG8gcmVseSBvbiB0aGUgdmFyaWFibGUgYEZpcnN0TGluZWAuIEltbWVkaWF0ZWx5LCBhbGFybSBiZWxscyBhcmUgcmluZ2luZyBpbiBteSBoZWFkLiBKdWRnaW5nIGJ5IHRoZSBjb250ZXh0IGFuZCBsaWtlbHkgZG93bnN0cmVhbSBvcGVyYXRpb25zLCBJJiMzOTttIHZpcnR1YWxseSBjZXJ0YWluIGBGaXJzdExpbmVgIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYW4gaW50ZWdlci4gQW55IG90aGVyIGRhdGEgdHlwZSBpbnRyb2R1Y2VzIGEgaG9zdCBvZiBwb3RlbnRpYWwgcHJvYmxlbXMuIEZsb2F0aW5nLXBvaW50IG51bWJlcnMgd291bGQgYmUgYSBkaXNhc3RlciBmb3IgYW55IGtpbmQgb2YgaW5kZXhpbmcsIG9mZnNldHMgb3IgbGluZSBudW1iZXJpbmcuIFN0cmluZ3MsIG9yIHdvcnNlLCB1bmluaXRpYWxpemVkIHZhcmlhYmxlcywgd291bGQgY3Jhc2ggb3IgY29ycnVwdCB0aGUgZnVuY3Rpb25hbGl0eS4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZW5zdXJlIHRoaXMgY29uc3RyYWludCBpcyBlbmZvcmNlZC4gSSYjMzk7bGwgbmVlZCB0byBnbyBiYWNrIGFuZCBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgRmlyc3RMaW5lYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDc1Olx0XHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgT1NGIG92ZXIgTkZORVRMSU5LIGludGVyZmFjZVwmIzM0O1xuICA3NjpcdFx0ZGVwZW5kcyBvbiBORVRGSUxURVJfQURWQU5DRURcbiAgNzc6XHRcdHNlbGVjdCBORVRGSUxURVJfTkVUTElOS1xuICA3ODpcdFx0aGVscFxuICA3OTpcdFx0ICBJZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUga2VybmVsIHdpbGwgaW5jbHVkZSBzdXBwb3J0XG4gIDgwOlx0XHQgIGZvciBwYXNzaXZlIE9TIGZpbmdlcnByaW50IHZpYSBORk5FVExJTksuXG4gIDgxOlx0XG4gIDgyOlx0Y29uZmlnIE5GX0NPTk5UUkFDS1xuICA4MzpcdFx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3VwcG9ydFwmIzM0O1xuICA4NDpcdFx0ZGVmYXVsdCBtIGlmIE5FVEZJTFRFUl9BRFZBTkNFRD1uXG4gIDg1Olx0XHRzZWxlY3QgTkZfREVGUkFHX0lQVjRcbiAgODY6XHRcdHNlbGVjdCBORl9ERUZSQUdfSVBWNiBpZiBJUFY2ICE9IG5cbiAgODc6XHRcdGhlbHBcbiAgODg6XHRcdCAgQ29ubmVjdGlvbiB0cmFja2luZyBrZWVwcyBhIHJlY29yZCBvZiB3aGF0IHBhY2tldHMgaGF2ZSBwYXNzZWRcbiAgODk6XHRcdCAgdGhyb3VnaCB5b3VyIG1hY2hpbmUsIGluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXkgYXJlIHJlbGF0ZWRcbiAgOTA6XHRcdCAgaW50byBjb25uZWN0aW9ucy5cbiAgOTE6XHRcbiAgOTI6XHRcdCAgVGhpcyBpcyByZXF1aXJlZCB0byBkbyBNYXNxdWVyYWRpbmcgb3Igb3RoZXIga2luZHMgb2YgTmV0d29ya1xuICA5MzpcdFx0ICBBZGRyZXNzIFRyYW5zbGF0aW9uLiAgSXQgY2FuIGFsc28gYmUgdXNlZCB0byBlbmhhbmNlIHBhY2tldFxuICA5NDpcdFx0ICBmaWx0ZXJpbmcgKHNlZSBgQ29ubmVjdGlvbiBzdGF0ZSBtYXRjaCBzdXBwb3J0JiMzOTsgYmVsb3cpLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NzcyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgTkZfQ09OTlRSQUNLIERlcGVuZGVuY2llcyoqCgpIbW0sIHNvIGBORl9DT05OVFJBQ0tgIGFwcGVhcnMgdG8gYmUgcHJldHR5IHNlbGYtY29udGFpbmVkLCBhdCBsZWFzdCBvbiB0aGUgc3VyZmFjZS4gTm8gZXhwbGljaXQgYGRlcGVuZHMgb25gIGJleW9uZCwgcGVyaGFwcywgdGhlIG92ZXJhcmNoaW5nIGBORVRGSUxURVJgIGluZnJhc3RydWN0dXJlLCB3aGljaCBpcyBhIGdpdmVuIGluIHRoaXMgY29udGV4dC4gTGV0JiMzOTtzIG5vdCBtYWtlIGFzc3VtcHRpb25zIGhlcmUsIHRob3VnaCwgYW5kIGJlIHN1cmUuIEkmIzM5O2xsIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBgbmV0L25ldGZpbHRlci9LY29uZmlnYCBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwuIEp1c3QgdG8gY29uZmlybSB0aGVyZSBpc24mIzM5O3QgYW55dGhpbmcgc3VidGx5IGluZmx1ZW5jaW5nIHRoZSBjb25maWd1cmF0aW9uIG9mIGNvbm5lY3Rpb24gdHJhY2tpbmcgdGhhdCBJJiMzOTt2ZSBtaXNzZWQuIEl0JiMzOTtzIGFsd2F5cyB3b3J0aCBhIHF1aWNrIGxvb2sgdG8gYXZvaWQgYW55IHNpbGx5IGdvdGNoYXMgbGF0ZXIgb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDIxOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0bWVudSBcJiMzNDtDb3JlIE5ldGZpbHRlciBDb25maWd1cmF0aW9uXCYjMzQ7XG4gICAzOlx0XHRkZXBlbmRzIG9uIElORVQgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUlxuICAgNDpcdFxuICAgNTpcdGNvbmZpZyBORVRGSUxURVJfSU5HUkVTU1xuICAgNjpcdFx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgaW5ncmVzcyBzdXBwb3J0XCYjMzQ7XG4gICA3Olx0XHRkZWZhdWx0IHlcbiAgIDg6XHRcdHNlbGVjdCBORVRfSU5HUkVTU1xuICAgOTpcdFx0aGVscFxuICAxMDpcdFx0ICBUaGlzIGFsbG93cyB5b3UgdG8gY2xhc3NpZnkgcGFja2V0cyBmcm9tIGluZ3Jlc3MgdXNpbmcgdGhlIE5ldGZpbHRlclxuICAxMTpcdFx0ICBpbmZyYXN0cnVjdHVyZS5cbiAgMTI6XHRcbiAgMTM6XHRjb25maWcgTkVURklMVEVSX0VHUkVTU1xuICAxNDpcdFx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgZWdyZXNzIHN1cHBvcnRcJiMzNDtcbiAgMTU6XHRcdGRlZmF1bHQgeVxuICAxNjpcdFx0c2VsZWN0IE5FVF9FR1JFU1NcbiAgMTc6XHRcdGhlbHBcbiAgMTg6XHRcdCAgVGhpcyBhbGxvd3MgeW91IHRvIGNsYXNzaWZ5IHBhY2tldHMgYmVmb3JlIHRyYW5zbWlzc2lvbiB1c2luZyB0aGVcbiAgMTk6XHRcdCAgTmV0ZmlsdGVyIGluZnJhc3RydWN0dXJlLlxuICAyMDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MjI1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgSSBhbmFseXplIHRoaXM6CgoqKkluaXRpYWwgQXNzZXNzbWVudCBvZiBOZXRmaWx0ZXIgYW5kIENvbm5lY3Rpb24gVHJhY2tpbmcqKgoKT2theSwgc28gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgdGhhdCBpbmhlcmVudGx5IGludm9sdmVzIG5ldHdvcmsgY29ubmVjdGlvbnMsIGxpa2VseSBhdCB0aGUga2VybmVsIGxldmVsLiBUaGUgbWVudGlvbiBvZiBgSU5FVGAgYW5kIGBORVRGSUxURVJgIGluc3RhbnRseSB0ZWxscyBtZSB0aGF0IHdlJiMzOTtyZSB3aXRoaW4gdGhlIHJlYWxtIG9mIG5ldHdvcmsgZmlsdGVyaW5nLCBwcm9iYWJseSB3aXRoaW4gdGhlIExpbnV4IGtlcm5lbCYjMzk7cyBOZXRmaWx0ZXIgZnJhbWV3b3JrLiBgTkZfQ09OTlRSQUNLYCBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlLCBzbyBjb25uZWN0aW9uIHRyYWNraW5nIGlzIHRoZSBjb3JlIGNvbmNlcHQgd2UmIzM5O3JlIHdvcmtpbmcgd2l0aC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIE5vdywgbGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBzcGVjaWZpYyBjb250ZXh0IGFkZHMuCgpJdCBzZWVtcyB0aGF0IHRoZXJlJiMzOTtzIGEgcGF0Y2ggdW5kZXIgYW5hbHlzaXMuIFRoZSBrZXkgaW5kaWNhdG9yIGlzIHRoYXQgYSBmdW5jdGlvbiBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIGJlaW5nIG1vZGlmaWVkLiBOb3csIHRoaXMgaXMgd2hlcmUgaXQgZ2V0cyBpbnRlcmVzdGluZywgc2luY2UgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBpcyB0aGUgbWFpbiBzeW1ib2wgdG8gZm9jdXMgb24uCgpNeSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhhdCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIHN0YXRpYywgd2hpY2ggd291bGQgbWVhbiBpdCBpcyBub3QgZXh0ZXJuYWxseSB2aXNpYmxlLCBhbmQgdGhhdCB3b3VsZCBjaGFuZ2UgaG93IGl0IGFmZmVjdHMgdGhlIGtlcm5lbC4gVGhhdCBtYXkgbm90IGJlIHRoZSBjYXNlLiBTbyBJIHNob3VsZCBmaXJzdCB2ZXJpZnkuIEdpdmVuIHRoZSBsaW5lICYjMzQ7V2FpdCwgaXMgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBzdGF0aWM/IE5vLCB3ZSBzYXcgaXQgaW4gYG5mX2Nvbm50cmFja19jb3JlLmNgIGNhbGxlZCBkaXJlY3RseSYjMzQ7LCBJIGNhbiBzdXJtaXNlIHRoZSBjb2RlIGlzIG5vdCBzdGF0aWMuIElmIGl0IHdhcyBzdGF0aWMsIGl0IHdvdWxkIG5vdCBoYXZlIGJlZW4gY2FsbGVkIGRpcmVjdGx5LgoKSSBzaG91bGQgY2hlY2sgdGhlIGxpa2VseSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIGNvZGUuIExldCBtZSBjaGVjayBgbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNgLCBhbmQgbWFrZSBzdXJlIGl0IGlzIG5vdCBzdGF0aWMsIGFuZCB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIG5leHQgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMjE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDk2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgOTYwOlx0fVxuIDk2MTpcdFxuIDk2MjpcdC8qIFJldHVybnMgdmVyZGljdCBmb3IgcGFja2V0LCBvciAtMSBmb3IgaW52YWxpZC4gKi9cbiA5NjM6XHRpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxuIDk2NDpcdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIDk2NTpcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgZGF0YW9mZixcbiA5NjY6XHRcdFx0XHQgICAgZW51bSBpcF9jb25udHJhY2tfaW5mbyBjdGluZm8sXG4gOTY3Olx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcbiA5Njg6XHR7XG4gOTY5Olx0XHRzdHJ1Y3QgbmV0ICpuZXQgPSBuZl9jdF9uZXQoY3QpO1xuIDk3MDpcdFx0c3RydWN0IG5mX3RjcF9uZXQgKnRuID0gbmZfdGNwX3Blcm5ldChuZXQpO1xuIDk3MTpcdFx0ZW51bSB0Y3BfY29ubnRyYWNrIG5ld19zdGF0ZSwgb2xkX3N0YXRlO1xuIDk3MjpcdFx0dW5zaWduZWQgaW50IGluZGV4LCAqdGltZW91dHM7XG4gOTczOlx0XHRlbnVtIG5mX2N0X3RjcF9hY3Rpb24gcmVzO1xuIDk3NDpcdFx0ZW51bSBpcF9jb25udHJhY2tfZGlyIGRpcjtcbiA5NzU6XHRcdGNvbnN0IHN0cnVjdCB0Y3BoZHIgKnRoO1xuIDk3NjpcdFx0c3RydWN0IHRjcGhkciBfdGNwaDtcbiA5Nzc6XHRcdHVuc2lnbmVkIGxvbmcgdGltZW91dDtcbiA5Nzg6XHRcbiA5Nzk6XHRcdHRoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgZGF0YW9mZiwgc2l6ZW9mKF90Y3BoKSwgXHUwMDI2X3RjcGgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTA4CgkJCQkJCQlvdXRwdXQ6IDkwCgkJCQkJCQl0aG91Z2h0czogMTc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIFNpZ25pZmljYW5jZSoqCgpPa2F5LCBzbyB0aGlzIGRlZmluaXRlbHkgaXNuJiMzOTt0IHN0YXRpYyBjb2RlLCB0aGF0IG11Y2ggaXMgY2xlYXIuIFRoZSBwcmltYXJ5IGZ1bmN0aW9uIG1vZGlmaWVkLCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgLCBpcyBhIHNvbGlkIGZvY3VzIHN5bWJvbC4gSSBzZWUgcG90ZW50aWFsIGhlcmUuCgpOb3csIEkmIzM5O20gdHJ5aW5nIHRvIGRldGVybWluZSB0aGUgc2NvcGUuIERvZXMgdGhpcyBoYXZlIGEgYnJvYWRlciBpbXBhY3QgYmV5b25kIGp1c3QgdGhhdCBmdW5jdGlvbj8gSSYjMzk7bSBleGFtaW5pbmcgdGhlIHBhdGNoIHRvIGRldGVybWluZSBpZiB0aGVyZSBhcmUgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG9yIHBvc3NpYmx5IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkLgoKTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgZW5hYmxpbmcgYE5GX0NPTk5UUkFDS2AgaXMgc3VmZmljaWVudCBmb3IgdGhpcyBwYXRjaCB0byBoYXZlIGFuIGVmZmVjdC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgd2lkZXIgY29uZmlndXJhdGlvbiBjb250ZXh0IHRvIGJlIHN1cmUuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgQ09ORklHX05GX0NPTk5UUkFDS2AsIGBDT05GSUdfTkVURklMVEVSYCwgYW5kIGBDT05GSUdfSU5FVGAuCgpBbHJpZ2h0LCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJiMzOTtsbCBzdW1tYXJpemUgdGhpcyBhczoKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqIOKAkyBUaGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZy4KKiAgICoqRm9jdXNTeW1ib2xzOiBcWyYjMzQ7bmZcX2Nvbm50cmFja1xfdGNwXF9wYWNrZXQmIzM0O1xdKiog4oCTIFRoaXMgZnVuY3Rpb24gaXMgdGhlIHByaW1hcnkgdGFyZ2V0LgoqICAgKipFbmFibGVDb25maWdzOiBcWyYjMzQ7TkZcX0NPTk5UUkFDSyYjMzQ7LCAmIzM0O05FVEZJTFRFUiYjMzQ7LCAmIzM0O0lORVQmIzM0O1xdKiog4oCTIFRoZXNlIGFyZSB0aGUgcmVxdWlyZWQgY29uZmlncy4KKiAgICoqUmVhc29uaW5nOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyBsb2dpYyBpbiBuZXRmaWx0ZXIsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aW1lb3V0cyB1cG9uIHJlY2VpdmluZyBhIFJTVCBwYWNrZXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDsqKiDigJMgVGhpcyBzdWNjaW5jdGx5IGNhcHR1cmVzIHRoZSBlc3NlbmNlIG9mIHRoZSBwYXRjaCYjMzk7cyBpbXBhY3QsIGV4cGxhaW5pbmcgdGhhdCBpdCBkaXJlY3RseSB0b3VjaGVzIGNvcmUgbmV0d29ya2luZyBjb2RlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAyMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfQ09OTlRSQUNLJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUiYjMzQ7LAogICAgJiMzNDtJTkVUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZfY29ubnRyYWNrX3RjcF9wYWNrZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORl9DT05OVFJBQ0smIzM0OywKICAgICYjMzQ7TkVURklMVEVSJiMzNDssCiAgICAmIzM0O0lORVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9jb25udHJhY2tfdGNwX3BhY2tldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyBsb2dpYyBpbiBuZXRmaWx0ZXIsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aW1lb3V0cyB1cG9uIHJlY2VpdmluZyBhIFJTVCBwYWNrZXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MTo1My40OTg4OTc2NTRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjAxNjExMjE1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9DT05OVFJBQ0tcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiSU5FVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2Nvbm50cmFja190Y3BfcGFja2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MTo1My40OTg5MDMyMDRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1OTQ2ODgxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDRhNjk2YmRhNzlmOTUwZTE3NTU3YmY3ZDJkOGE1ZGYzYzY0ZDFjMjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMzAgMjE6NDE6NTIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xcbmluZGV4IDBjMWQwODZlOTZjYjMuLjg0OTQ3MTEwMTU2YTMgMTAwNjQ0XFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNcXG4rKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xcbkBAIC0xMjgwLDggKzEyODAsMTEgQEAgaW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcXG4gXFx0aWYgKGN0LVxcdTAwM2Vwcm90by50Y3AucmV0cmFucyBcXHUwMDNlPSB0bi1cXHUwMDNldGNwX21heF9yZXRyYW5zIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICB0aW1lb3V0c1tuZXdfc3RhdGVdIFxcdTAwM2UgdGltZW91dHNbVENQX0NPTk5UUkFDS19SRVRSQU5TXSlcXG4gXFx0XFx0dGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfUkVUUkFOU107XFxuLVxcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUKSlcXG4rXFx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQgXFx1MDAyNlxcdTAwMjZcXG4rXFx0XFx0XFx0ICBuZXdfc3RhdGUgPT0gVENQX0NPTk5UUkFDS19DTE9TRSkpXFxuIFxcdFxcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX0NMT1NFXTtcXG4rXFx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQpKVxcbitcXHRcXHR0aW1lb3V0ID0gdGltZW91dHNbVENQX0NPTk5UUkFDS19VTkFDS107XFxuIFxcdGVsc2UgaWYgKChjdC1cXHUwMDNlcHJvdG8udGNwLnNlZW5bMF0uZmxhZ3MgfCBjdC1cXHUwMDNlcHJvdG8udGNwLnNlZW5bMV0uZmxhZ3MpIFxcdTAwMjZcXG4gXFx0XFx0IElQX0NUX1RDUF9GTEFHX0RBVEFfVU5BQ0tOT1dMRURHRUQgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0IHRpbWVvdXRzW25ld19zdGF0ZV0gXFx1MDAzZSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1VOQUNLXSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDE6NTMuODU4OTM2MjI2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzU2NTYwNjQ5NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORVRGSUxURVJcIixcbiAgICBcIklORVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jb25udHJhY2tfdGNwX3BhY2tldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nIGxvZ2ljIGluIG5ldGZpbHRlciwgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRpbWVvdXRzIHVwb24gcmVjZWl2aW5nIGEgUlNUIHBhY2tldC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGE2OTZiZGE3OWY5NTBlMTc1NTdiZjdkMmQ4YTVkZjNjNjRkMWMyOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDIxOjQxOjUyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xuaW5kZXggMGMxZDA4NmU5NmNiMy4uODQ5NDcxMTAxNTZhMyAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jXG4rKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY1xuQEAgLTEyODAsOCArMTI4MCwxMSBAQCBpbnQgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxuIFx0aWYgKGN0LVx1MDAzZXByb3RvLnRjcC5yZXRyYW5zIFx1MDAzZT0gdG4tXHUwMDNldGNwX21heF9yZXRyYW5zIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRpbWVvdXRzW25ld19zdGF0ZV0gXHUwMDNlIHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfUkVUUkFOU10pXG4gXHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX1JFVFJBTlNdO1xuLVx0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQpKVxuK1x0ZWxzZSBpZiAodW5saWtlbHkoaW5kZXggPT0gVENQX1JTVF9TRVQgXHUwMDI2XHUwMDI2XG4rXHRcdFx0ICBuZXdfc3RhdGUgPT0gVENQX0NPTk5UUkFDS19DTE9TRSkpXG4gXHRcdHRpbWVvdXQgPSB0aW1lb3V0c1tUQ1BfQ09OTlRSQUNLX0NMT1NFXTtcbitcdGVsc2UgaWYgKHVubGlrZWx5KGluZGV4ID09IFRDUF9SU1RfU0VUKSlcbitcdFx0dGltZW91dCA9IHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdO1xuIFx0ZWxzZSBpZiAoKGN0LVx1MDAzZXByb3RvLnRjcC5zZWVuWzBdLmZsYWdzIHwgY3QtXHUwMDNlcHJvdG8udGNwLnNlZW5bMV0uZmxhZ3MpIFx1MDAyNlxuIFx0XHQgSVBfQ1RfVENQX0ZMQUdfREFUQV9VTkFDS05PV0xFREdFRCBcdTAwMjZcdTAwMjZcbiBcdFx0IHRpbWVvdXRzW25ld19zdGF0ZV0gXHUwMDNlIHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfVU5BQ0tdKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDE6NTMuODU4OTM3NDE2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI4ODI3ODkyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBUQ1AgQ29ubmVjdGlvbiBUcmFja2luZyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgd2l0aGluIGBuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY2AuIE15IGluaXRpYWwgcmVhZCB0ZWxscyBtZSBpdCdzIHRvdWNoaW5nIHRoZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyB0aW1lb3V0IGxvZ2ljLCBzcGVjaWZpY2FsbHkgd2hlbiBhIFJTVCBwYWNrZXQgY29tZXMgaW50byBwbGF5LiBJIHNlZSB0aGF0IHRoZXJlIGFyZSBhZGp1c3RtZW50cyB0byBob3cgdGltZW91dHMgYXJlIGhhbmRsZWQgYmFzZWQgb24gdGhlIGNvbm5lY3Rpb24ncyBzdGF0ZSB3aGVuIGEgUlNUIGlzIHJlY2VpdmVkLiBJZiBgaW5kZXggPT0gVENQX1JTVF9TRVRgIGFuZCB0aGUgbmV3IHN0YXRlIGlzIGBUQ1BfQ09OTlRSQUNLX0NMT1NFYCwgdGhlIHRpbWVvdXQgZ2V0cyBzZXQgdG8gYHRpbWVvdXRzW1RDUF9DT05OVFJBQ0tfQ0xPU0VdYC4gQ29udmVyc2VseSwgaWYgYGluZGV4ID09IFRDUF9SU1RfU0VUYCBidXQgdGhlIG5ldyBzdGF0ZSBpc24ndCBgVENQX0NPTk5UUkFDS19DTE9TRWAsIGl0J3Mgc2V0dGluZyB0aGUgdGltZW91dCB0byBgdGltZW91dHNbVENQX0NPTk5UUkFDS19VTkFDS11gLlxuXG5UaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIG5ldGZpbHRlciBUQ1AgY29ubmVjdGlvbiB0cmFja2luZy4gSW1tZWRpYXRlbHksIG15IHJhZGFyIGlzIHVwOyB0aGlzIGJlZ3MgZm9yIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBUaGUgd2F5IHRpbWVvdXRzIGFyZSBoYW5kbGVkIGNhbiBvZnRlbiBiZSBhIHNvdXJjZSBvZiBzdWJ0bGUsIG9yIG5vdCBzbyBzdWJ0bGUsIGlzc3Vlcy5cblxuSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHN1cnJvdW5kaW5nIGNvZGUuIExldCdzIHN0YXJ0IGJ5IGlkZW50aWZ5aW5nIHRoZSBjcml0aWNhbCBzeW1ib2xzIGFuZCBhbnkgcG90ZW50aWFsIGNvbmZpZyByZXF1aXJlbWVudHMuIEknbGwgbmVlZCB0byBmb2N1cyBvbiBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGFuZCBpdHMgY29udGV4dCB3aXRoaW4gdGhlIG5ldGZpbHRlciBUQ1AgbW9kdWxlLlxuXG5Pa2F5LCBsZXQncyBzdGFydCB3aXRoIGEgcXVpY2sgYGdyZXBgIGZvciBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QganVtcGluZy1vZmYgcG9pbnQgdG8gc2VlIGhvdyB0aGUgZnVuY3Rpb24gaXMgdXNlZCBhbmQgYW55IHJlbGF0ZWQgZnVuY3Rpb25zIG9yIGRhdGEgc3RydWN0dXJlcyBJIG5lZWQgdG8gZm9jdXMgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMTksIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MTo1OC4xNDcyMTgyMjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MzYxNjczLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2Nvbm50cmFja190Y3BfcGFja2V0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuYz0xOTcxPXN0YXRpYyBpbnQgbmZfY29ubnRyYWNrX2hhbmRsZV9wYWNrZXQoc3RydWN0IG5mX2Nvbm4gKmN0LFxcbi0tXFxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jLTE5NzgtXFx0Y2FzZSBJUFBST1RPX1RDUDpcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmM6MTk3OTpcXHRcXHRyZXR1cm4gbmZfY29ubnRyYWNrX3RjcF9wYWNrZXQoY3QsIHNrYiwgZGF0YW9mZixcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmMtMTk4MC1cXHRcXHRcXHRcXHRcXHQgICAgICAgY3RpbmZvLCBzdGF0ZSk7XFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYz05NTI9c3RhdGljIHZvaWQgbmZfY3RfdGNwX3N0YXRlX3Jlc2V0KHN0cnVjdCBpcF9jdF90Y3Bfc3RhdGUgKnN0YXRlKVxcbi0tXFxubmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMtOTYyLS8qIFJldHVybnMgdmVyZGljdCBmb3IgcGFja2V0LCBvciAtMSBmb3IgaW52YWxpZC4gKi9cXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYzo5NjM6aW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcXG5uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYy05NjQtXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQxOjU4LjI3MTU4MzUzNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5Mzk2OTI1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBuZl9jb25udHJhY2tfdGNwX3BhY2tldCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAuIFRoZSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCdzIGEgbm9uLXN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggbWVhbnMgaXQncyBlaXRoZXIgZXhwb3J0ZWQgb3IgYXQgbGVhc3QgdXNlZCBpbiBtdWx0aXBsZSBmaWxlcywgYXMgY29uZmlybWVkIGJ5IGxvb2tpbmcgYXQgYG5mX2Nvbm50cmFja19jb3JlLmNgLiBIbW0sIHdhaXQgYSBzZWNvbmQuIEkgcmVtZW1iZXIgbm93OiBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIGBuZl9jb25udHJhY2tfaGFuZGxlX3BhY2tldGAsIGFuZCAqdGhhdCogZnVuY3Rpb24gaXMgc3RhdGljLiBUaGlzIG5lZWRzIHNvbWUgY2xhcmlmaWNhdGlvbi4gSSBuZWVkIHRvIHZlcmlmeSB3aGV0aGVyIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgaXMgdHJ1bHkgZXhwb3J0ZWQgb3IgaWYgaXQncyBtZXJlbHkgbm9uLXN0YXRpYyBmb3Igc29tZSBvdGhlciByZWFzb24sIGxpa2UgYmVpbmcgdXNlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgc29tZXdoZXJlLiBMZXQncyBtYWtlIHN1cmUuIEFoLCB5ZXMuIEl0IGlzIG5vbi1zdGF0aWMsIGNvbmZpcm1pbmcgdGhhdCBpdCAqY2FuKiBiZSBhIHN5bWJvbCB3b3J0aCBmdXJ0aGVyIGludmVzdGlnYXRpb24uIE5vdywgbGV0J3MgbW92ZSBvbiBhbmQgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHBhcnRpY3VsYXJseSBmb3IgYG5mX2Nvbm50cmFja19wcm90b190Y3AuY2AsIGp1c3QgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMjYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MDIuMjExMjc4OTExWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NzM2MTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2Nvbm50cmFja19wcm90b190Y3Aub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTQ9bmZfY29ubnRyYWNrLXlcXHQ6PSBuZl9jb25udHJhY2tfY29yZS5vIG5mX2Nvbm50cmFja19zdGFuZGFsb25lLm8gbmZfY29ubnRyYWNrX2V4cGVjdC5vIG5mX2Nvbm50cmFja19oZWxwZXIubyBcXFxcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZTo1OlxcdFxcdCAgIG5mX2Nvbm50cmFja19wcm90by5vIG5mX2Nvbm50cmFja19wcm90b19nZW5lcmljLm8gbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5vIG5mX2Nvbm50cmFja19wcm90b191ZHAubyBcXFxcXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS02LVxcdFxcdCAgIG5mX2Nvbm50cmFja19wcm90b19pY21wLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjowMi4yNTkwMTcyMloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3NTUyNTIwMjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYG5mX2Nvbm50cmFja2AgRGVwZW5kZW5jaWVzKipcblxuUmlnaHQsIHRoaXMgc25pcHBldCBpcyBjbGVhcmx5IHJlbGF0ZWQgdG8gdGhlIGBuZl9jb25udHJhY2steWAgcGFja2FnZSBvciBzdWJzeXN0ZW0uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkZXRlcm1pbmUgd2hhdCBtZWNoYW5pc21zIGVuYWJsZSB0aGUgY29yZSBgbmZfY29ubnRyYWNrYCBmdW5jdGlvbmFsaXR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcHJlcmVxdWlzaXRlcyBhbmQgZGVwZW5kZW5jaWVzLiBMZXQncyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgZXhhY3RseSB3aGF04oCZcyByZXF1aXJlZCBmb3IgYG5mX2Nvbm50cmFja2AgdG8gYmUgb3BlcmF0aW9uYWwuIFRoaXMgd2lsbCBpbmZvcm0gYW55IHN1YnNlcXVlbnQgdHJvdWJsZXNob290aW5nIG9yIGNvbmZpZ3VyYXRpb24gd29yayByZWxhdGVkIHRvIHRoaXMgcGFydCBvZiB0aGUgbmV0d29yayBzdGFjay5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY4NSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjA1LjAxNDI3MTU5MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTM0NzE1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZl9jb25udHJhY2steVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTI9bmV0ZmlsdGVyLW9ianMgOj0gY29yZS5vIG5mX2xvZy5vIG5mX3F1ZXVlLm8gbmZfc29ja29wdC5vIHV0aWxzLm9cXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTMtXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZTo0Om5mX2Nvbm50cmFjay15XFx0Oj0gbmZfY29ubnRyYWNrX2NvcmUubyBuZl9jb25udHJhY2tfc3RhbmRhbG9uZS5vIG5mX2Nvbm50cmFja19leHBlY3QubyBuZl9jb25udHJhY2tfaGVscGVyLm8gXFxcXFxcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGUtNS1cXHRcXHQgICBuZl9jb25udHJhY2tfcHJvdG8ubyBuZl9jb25udHJhY2tfcHJvdG9fZ2VuZXJpYy5vIG5mX2Nvbm50cmFja19wcm90b190Y3AubyBuZl9jb25udHJhY2tfcHJvdG9fdWRwLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjowNS4wNTk2MzkxODJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzk5NDMyNzczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIGBuZl9jb25udHJhY2sub2AgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQncyBlbmFibGluZyBgbmZfY29ubnRyYWNrLm9gLiBUaGlzIGlzbid0IGEgcGFydGljdWxhcmx5IGNvbXBsZXggcXVlc3Rpb24sIGJ1dCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRyb3VibGVzaG9vdGluZyBvciBvcHRpbWl6YXRpb24uIEknbSBnb2luZyB0byBzdGFydCBieSB0cmFjaW5nIGJhY2sgdGhyb3VnaCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdG8gaWRlbnRpZnkgdGhlIHNwZWNpZmljIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgb3IgbW9kdWxlcyB0aGF0IHVsdGltYXRlbHkgbGVhZCB0byBpdHMgaW5jbHVzaW9uLiBJIHdpbGwgY29uc2lkZXIgdGhlIHVzdWFsIHN1c3BlY3RzLCBzdWNoIGFzIHdoZXRoZXIgaXQncyBzdGF0aWNhbGx5IGNvbXBpbGVkIG9yIHB1bGxlZCBpbiBhcyBhIG1vZHVsZSBiYXNlZCBvbiBvdGhlciBvcHRpb25zLiBQZXJoYXBzIHRoZXJlJ3MgYSBzcGVjaWZpYyBuZXR3b3JraW5nIG9wdGlvbiwgZmlyZXdhbGwgZmVhdHVyZSwgb3IgY29ubmVjdGlvbiB0cmFja2luZy1yZWxhdGVkIHNldHRpbmcgdGhhdCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGVuYWJsZXMgaXQuIEknbGwgbmVlZCB0byB1c2UgdGhlIGtlcm5lbCBjb25maWcgdG9vbHMgdG8gc2VhcmNoIGFuZCBleHBsb3JlIHRoaXMgY29uZmlndXJhdGlvbiBzcGFjZSB0byBnYWluIGZ1bGwgdW5kZXJzdGFuZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA0MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjA3Ljg1OTA3Mzc0NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkxODUwMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibmZfY29ubnRyYWNrLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZT0xMz1uZl9jb25udHJhY2stJChDT05GSUdfTkZfQ09OTlRSQUNLX0xBQkVMUykgKz0gbmZfY29ubnRyYWNrX2xhYmVscy5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZToxNDpuZl9jb25udHJhY2stJChDT05GSUdfTkZfQ09OTlRSQUNLX09WUykgKz0gbmZfY29ubnRyYWNrX292cy5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0xNS1uZl9jb25udHJhY2stJChDT05GSUdfTkZfQ1RfUFJPVE9fU0NUUCkgKz0gbmZfY29ubnRyYWNrX3Byb3RvX3NjdHAub1xcbi0tXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZT0zMT1vYmotJChDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PSykgKz0gbmZuZXRsaW5rX2hvb2sub1xcbi0tXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zMy0jIGNvbm5lY3Rpb24gdHJhY2tpbmdcXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19ORl9DT05OVFJBQ0spICs9IG5mX2Nvbm50cmFjay5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS0zNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MDcuOTA4MjYxMTQ0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwODI0ODM3NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYSBDb25uZWN0aW9uIFRyYWNraW5nIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCB0aGUgc3lzdGVtJ3MgdGVsbGluZyBtZSBgQ09ORklHX05GX0NPTk5UUkFDS2AgaXMgYSByZXF1aXJlbWVudC4gVGhhdCdzIGZpbmUsIGNvbm5lY3Rpb24gdHJhY2tpbmcgaXMgcHJldHR5IGZ1bmRhbWVudGFsIGZvciBtYW55IG5ldHdvcmsgZnVuY3Rpb25hbGl0aWVzLCBlc3BlY2lhbGx5IGluIG1vZGVybiBmaXJld2FsbHMgYW5kIE5BVCBzZXR1cHMuIEJ1dCBiZWZvcmUgSSBnbyBhaGVhZCBhbmQgZW5hYmxlIGl0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zLlxuXG5UaGUgZmlyc3QgdGhpbmcgSSBhbHdheXMgZG8gd2l0aCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGxpa2UgdGhpcyBpcyB0byBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcy4gSSBoYXZlIHRvIGZpZ3VyZSBvdXQgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMsIG1vZHVsZXMsIG9yIHN1cHBvcnQgbGlicmFyaWVzIGFyZSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGxpbmtlZCB0byBgQ09ORklHX05GX0NPTk5UUkFDS2AuIEFyZSB0aGVyZSBvdGhlciBzZXR0aW5ncyB0aGF0ICptdXN0KiBiZSBlbmFibGVkIG9yIHRoYXQgYXJlIGhpZ2hseSByZWNvbW1lbmRlZD8gT3IsIGNvbnZlcnNlbHksIGFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEFyZSB3ZSB0YWxraW5nIGFib3V0IGEgc2ltcGxlIG1vZHVsZSwgb3IgZG9lcyBpdCB0cmlnZ2VyIGEgY2FzY2FkZSBvZiByZWxhdGVkIG9wdGlvbnM/IERlcGVuZGluZyBvbiBteSB1c2UgY2FzZSBJJ2xsIG5lZWQgdG8ga25vdyB3aGV0aGVyIGVuYWJsaW5nIHRoaXMgd2lsbCBiZSBhIHN0cmFpZ2h0Zm9yd2FyZCBhZGRpdGlvbiBvciB3aWxsIHJlcXVpcmUgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIG9mIGV4aXN0aW5nIHN5c3RlbSBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ5NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjEwLjk5MDc0NzA5NloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU3Njk5OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GX0NPTk5UUkFDS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmV0ZmlsdGVyL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NzQ9Y29uZmlnIE5FVEZJTFRFUl9ORVRMSU5LX09TRlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTgxLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo4Mjpjb25maWcgTkZfQ09OTlRSQUNLXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgY29ubmVjdGlvbiB0cmFja2luZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnPTExMT1jb25maWcgTkVURklMVEVSX0NPTk5DT1VOVFxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTExMy1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTE0OmNvbmZpZyBORl9DT05OVFJBQ0tfTUFSS1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXFx0Ym9vbCAgJ0Nvbm5lY3Rpb24gbWFyayB0cmFja2luZyBzdXBwb3J0J1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTEyMi1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTIzOmNvbmZpZyBORl9DT05OVFJBQ0tfU0VDTUFSS1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xMjQtXFx0Ym9vbCAgJ0Nvbm5lY3Rpb24gdHJhY2tpbmcgc2VjdXJpdHkgbWFyayBzdXBwb3J0J1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTEzNS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTM2OmNvbmZpZyBORl9DT05OVFJBQ0tfWk9ORVNcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTM3LVxcdGJvb2wgICdDb25uZWN0aW9uIHRyYWNraW5nIHpvbmVzJ1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE0Ny1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTQ4OmNvbmZpZyBORl9DT05OVFJBQ0tfUFJPQ0ZTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE0OS1cXHRib29sIFxcXCJTdXBwbHkgQ1QgbGlzdCBpbiBwcm9jZnMgKE9CU09MRVRFKVxcXCJcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNTYtXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjE1Nzpjb25maWcgTkZfQ09OTlRSQUNLX0VWRU5UU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiQ29ubmVjdGlvbiB0cmFja2luZyBldmVudHNcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTY2LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoxNjc6Y29uZmlnIE5GX0NPTk5UUkFDS19USU1FT1VUXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE2OC1cXHRib29sICAnQ29ubmVjdGlvbiB0cmFja2luZyB0aW1lb3V0J1xcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE3Ni1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTc3OmNvbmZpZyBORl9DT05OVFJBQ0tfVElNRVNUQU1QXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE3OC1cXHRib29sICAnQ29ubmVjdGlvbiB0cmFja2luZyB0aW1lc3RhbXBpbmcnXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTg3LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoxODg6Y29uZmlnIE5GX0NPTk5UUkFDS19MQUJFTFNcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMTg5LVxcdGJvb2wgXFxcIkNvbm5lY3Rpb24gdHJhY2tpbmcgbGFiZWxzXFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE5NC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MTk1OmNvbmZpZyBORl9DT05OVFJBQ0tfT1ZTXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTE5Ni1cXHRib29sXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9MjEyPWNvbmZpZyBORl9DVF9QUk9UT19VRFBMSVRFXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjIyLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyMjM6Y29uZmlnIE5GX0NPTk5UUkFDS19BTUFOREFcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjI0LVxcdHRyaXN0YXRlIFxcXCJBbWFuZGEgYmFja3VwIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjM3LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyMzg6Y29uZmlnIE5GX0NPTk5UUkFDS19GVFBcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjM5LVxcdHRyaXN0YXRlIFxcXCJGVFAgcHJvdG9jb2wgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yNDktXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjI1MDpjb25maWcgTkZfQ09OTlRSQUNLX0gzMjNcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjUxLVxcdHRyaXN0YXRlIFxcXCJILjMyMyBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI2OS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MjcwOmNvbmZpZyBORl9DT05OVFJBQ0tfSVJDXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI3MS1cXHR0cmlzdGF0ZSBcXFwiSVJDIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg0LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzoyODU6Y29uZmlnIE5GX0NPTk5UUkFDS19CUk9BRENBU1RcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMjg2LVxcdHRyaXN0YXRlXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTI4Ny1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Mjg4OmNvbmZpZyBORl9DT05OVFJBQ0tfTkVUQklPU19OU1xcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0yODktXFx0dHJpc3RhdGUgXFxcIk5ldEJJT1MgbmFtZSBzZXJ2aWNlIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzA2LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozMDc6Y29uZmlnIE5GX0NPTk5UUkFDS19TTk1QXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTMwOC1cXHR0cmlzdGF0ZSBcXFwiU05NUCBzZXJ2aWNlIHByb3RvY29sIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctMzIxLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzozMjI6Y29uZmlnIE5GX0NPTk5UUkFDS19QUFRQXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTMyMy1cXHR0cmlzdGF0ZSBcXFwiUFB0UCBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM0MC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MzQxOmNvbmZpZyBORl9DT05OVFJBQ0tfU0FORVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNDItXFx0dHJpc3RhdGUgXFxcIlNBTkUgcHJvdG9jb2wgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNTMtXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjM1NDpjb25maWcgTkZfQ09OTlRSQUNLX1NJUFxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNTUtXFx0dHJpc3RhdGUgXFxcIlNJUCBwcm90b2NvbCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTM2NS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6MzY2OmNvbmZpZyBORl9DT05OVFJBQ0tfVEZUUFxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy0zNjctXFx0dHJpc3RhdGUgXFxcIlRGVFAgcHJvdG9jb2wgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MTEuMDQ2NTE5MTc0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2NzQ3MDIxNzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzb21lIHNwZWNpZmljIG5ldGZpbHRlciBjb25maWd1cmF0aW9ucywgc28gSSdtIGdvaW5nIHRvIGp1bXAgc3RyYWlnaHQgaW50byB0aGUgYG5ldC9uZXRmaWx0ZXIvS2NvbmZpZ2AgZmlsZS4gSSdtIGZvY3VzaW5nIG9uIGFyb3VuZCBsaW5lIDgyOyBob3BlZnVsbHksIHRoYXQncyB3aGVyZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIEknbSBpbnRlcmVzdGVkIGluIGFyZSBsb2NhdGVkLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZmluZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA2OCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjEzLjcyMTIyMzEzM1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzAyMCwiRXJyb3IiOiJhcmd1bWVudCBcIkZpcnN0TGluZVwiIGhhcyB3cm9uZyB0eXBlOiBnb3Qgc3RyaW5nLCB3YW50IGludCIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiBcIjc1XCIsXG4gIFwiTGluZUNvdW50XCI6IFwiMjBcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJhcmd1bWVudCBcXFwiRmlyc3RMaW5lXFxcIiBoYXMgd3JvbmcgdHlwZTogZ290IHN0cmluZywgd2FudCBpbnRcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMjE6NDI6MTMuNzIxMjQ5MzMzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjg4ODEyMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhpbmtpbmcsIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIHlvdXIgb3duIGV4cGVydCBpbnRlcm5hbCBkaWFsb2d1ZTpcblxuKipJbnRlZ2VyIENvbnN0cmFpbnQgZm9yIEZpcnN0TGluZSoqXG5cbk9rYXksIGxldCdzIHByb2Nlc3MgdGhpcy4gVGhlIGNvcmUgb2YgdGhpcyBzeXN0ZW0sIG9yIGF0IGxlYXN0IGEgY3J1Y2lhbCBwYXJ0IG9mIGl0LCBzZWVtcyB0byByZWx5IG9uIHRoZSB2YXJpYWJsZSBgRmlyc3RMaW5lYC4gSW1tZWRpYXRlbHksIGFsYXJtIGJlbGxzIGFyZSByaW5naW5nIGluIG15IGhlYWQuIEp1ZGdpbmcgYnkgdGhlIGNvbnRleHQgYW5kIGxpa2VseSBkb3duc3RyZWFtIG9wZXJhdGlvbnMsIEknbSB2aXJ0dWFsbHkgY2VydGFpbiBgRmlyc3RMaW5lYCBuZWVkcyB0byBiZSBkZWZpbmVkIGFzIGFuIGludGVnZXIuIEFueSBvdGhlciBkYXRhIHR5cGUgaW50cm9kdWNlcyBhIGhvc3Qgb2YgcG90ZW50aWFsIHByb2JsZW1zLiBGbG9hdGluZy1wb2ludCBudW1iZXJzIHdvdWxkIGJlIGEgZGlzYXN0ZXIgZm9yIGFueSBraW5kIG9mIGluZGV4aW5nLCBvZmZzZXRzIG9yIGxpbmUgbnVtYmVyaW5nLiBTdHJpbmdzLCBvciB3b3JzZSwgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMsIHdvdWxkIGNyYXNoIG9yIGNvcnJ1cHQgdGhlIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGVuc3VyZSB0aGlzIGNvbnN0cmFpbnQgaXMgZW5mb3JjZWQuIEknbGwgbmVlZCB0byBnbyBiYWNrIGFuZCBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgRmlyc3RMaW5lYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjI1NiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoxNi44OTAxMzI0NzdaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTY1ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDc1OlxcdFxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgT1NGIG92ZXIgTkZORVRMSU5LIGludGVyZmFjZVxcXCJcXG4gIDc2OlxcdFxcdGRlcGVuZHMgb24gTkVURklMVEVSX0FEVkFOQ0VEXFxuICA3NzpcXHRcXHRzZWxlY3QgTkVURklMVEVSX05FVExJTktcXG4gIDc4OlxcdFxcdGhlbHBcXG4gIDc5OlxcdFxcdCAgSWYgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgdGhlIGtlcm5lbCB3aWxsIGluY2x1ZGUgc3VwcG9ydFxcbiAgODA6XFx0XFx0ICBmb3IgcGFzc2l2ZSBPUyBmaW5nZXJwcmludCB2aWEgTkZORVRMSU5LLlxcbiAgODE6XFx0XFxuICA4MjpcXHRjb25maWcgTkZfQ09OTlRSQUNLXFxuICA4MzpcXHRcXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3VwcG9ydFxcXCJcXG4gIDg0OlxcdFxcdGRlZmF1bHQgbSBpZiBORVRGSUxURVJfQURWQU5DRUQ9blxcbiAgODU6XFx0XFx0c2VsZWN0IE5GX0RFRlJBR19JUFY0XFxuICA4NjpcXHRcXHRzZWxlY3QgTkZfREVGUkFHX0lQVjYgaWYgSVBWNiAhPSBuXFxuICA4NzpcXHRcXHRoZWxwXFxuICA4ODpcXHRcXHQgIENvbm5lY3Rpb24gdHJhY2tpbmcga2VlcHMgYSByZWNvcmQgb2Ygd2hhdCBwYWNrZXRzIGhhdmUgcGFzc2VkXFxuICA4OTpcXHRcXHQgIHRocm91Z2ggeW91ciBtYWNoaW5lLCBpbiBvcmRlciB0byBmaWd1cmUgb3V0IGhvdyB0aGV5IGFyZSByZWxhdGVkXFxuICA5MDpcXHRcXHQgIGludG8gY29ubmVjdGlvbnMuXFxuICA5MTpcXHRcXG4gIDkyOlxcdFxcdCAgVGhpcyBpcyByZXF1aXJlZCB0byBkbyBNYXNxdWVyYWRpbmcgb3Igb3RoZXIga2luZHMgb2YgTmV0d29ya1xcbiAgOTM6XFx0XFx0ICBBZGRyZXNzIFRyYW5zbGF0aW9uLiAgSXQgY2FuIGFsc28gYmUgdXNlZCB0byBlbmhhbmNlIHBhY2tldFxcbiAgOTQ6XFx0XFx0ICBmaWx0ZXJpbmcgKHNlZSBgQ29ubmVjdGlvbiBzdGF0ZSBtYXRjaCBzdXBwb3J0JyBiZWxvdykuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjE2Ljg5MDIzMDIzN1oiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjI2Njg2NjkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIE5GX0NPTk5UUkFDSyBEZXBlbmRlbmNpZXMqKlxuXG5IbW0sIHNvIGBORl9DT05OVFJBQ0tgIGFwcGVhcnMgdG8gYmUgcHJldHR5IHNlbGYtY29udGFpbmVkLCBhdCBsZWFzdCBvbiB0aGUgc3VyZmFjZS4gTm8gZXhwbGljaXQgYGRlcGVuZHMgb25gIGJleW9uZCwgcGVyaGFwcywgdGhlIG92ZXJhcmNoaW5nIGBORVRGSUxURVJgIGluZnJhc3RydWN0dXJlLCB3aGljaCBpcyBhIGdpdmVuIGluIHRoaXMgY29udGV4dC4gTGV0J3Mgbm90IG1ha2UgYXNzdW1wdGlvbnMgaGVyZSwgdGhvdWdoLCBhbmQgYmUgc3VyZS4gSSdsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgYG5ldC9uZXRmaWx0ZXIvS2NvbmZpZ2AgZmlsZSBhdCB0aGUgdG9wLWxldmVsLiBKdXN0IHRvIGNvbmZpcm0gdGhlcmUgaXNuJ3QgYW55dGhpbmcgc3VidGx5IGluZmx1ZW5jaW5nIHRoZSBjb25maWd1cmF0aW9uIG9mIGNvbm5lY3Rpb24gdHJhY2tpbmcgdGhhdCBJJ3ZlIG1pc3NlZC4gSXQncyBhbHdheXMgd29ydGggYSBxdWljayBsb29rIHRvIGF2b2lkIGFueSBzaWxseSBnb3RjaGFzIGxhdGVyIG9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzcyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoyMC4xMTY5MTg2OThaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTQyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRtZW51IFxcXCJDb3JlIE5ldGZpbHRlciBDb25maWd1cmF0aW9uXFxcIlxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUIFxcdTAwMjZcXHUwMDI2IE5FVEZJTFRFUlxcbiAgIDQ6XFx0XFxuICAgNTpcXHRjb25maWcgTkVURklMVEVSX0lOR1JFU1NcXG4gICA2OlxcdFxcdGJvb2wgXFxcIk5ldGZpbHRlciBpbmdyZXNzIHN1cHBvcnRcXFwiXFxuICAgNzpcXHRcXHRkZWZhdWx0IHlcXG4gICA4OlxcdFxcdHNlbGVjdCBORVRfSU5HUkVTU1xcbiAgIDk6XFx0XFx0aGVscFxcbiAgMTA6XFx0XFx0ICBUaGlzIGFsbG93cyB5b3UgdG8gY2xhc3NpZnkgcGFja2V0cyBmcm9tIGluZ3Jlc3MgdXNpbmcgdGhlIE5ldGZpbHRlclxcbiAgMTE6XFx0XFx0ICBpbmZyYXN0cnVjdHVyZS5cXG4gIDEyOlxcdFxcbiAgMTM6XFx0Y29uZmlnIE5FVEZJTFRFUl9FR1JFU1NcXG4gIDE0OlxcdFxcdGJvb2wgXFxcIk5ldGZpbHRlciBlZ3Jlc3Mgc3VwcG9ydFxcXCJcXG4gIDE1OlxcdFxcdGRlZmF1bHQgeVxcbiAgMTY6XFx0XFx0c2VsZWN0IE5FVF9FR1JFU1NcXG4gIDE3OlxcdFxcdGhlbHBcXG4gIDE4OlxcdFxcdCAgVGhpcyBhbGxvd3MgeW91IHRvIGNsYXNzaWZ5IHBhY2tldHMgYmVmb3JlIHRyYW5zbWlzc2lvbiB1c2luZyB0aGVcXG4gIDE5OlxcdFxcdCAgTmV0ZmlsdGVyIGluZnJhc3RydWN0dXJlLlxcbiAgMjA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjIwLjExNzAxNDQ2OFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDIwMzM4NjIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBJIGFuYWx5emUgdGhpczpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQgb2YgTmV0ZmlsdGVyIGFuZCBDb25uZWN0aW9uIFRyYWNraW5nKipcblxuT2theSwgc28gd2UncmUgZGVhbGluZyB3aXRoIHNvbWV0aGluZyB0aGF0IGluaGVyZW50bHkgaW52b2x2ZXMgbmV0d29yayBjb25uZWN0aW9ucywgbGlrZWx5IGF0IHRoZSBrZXJuZWwgbGV2ZWwuIFRoZSBtZW50aW9uIG9mIGBJTkVUYCBhbmQgYE5FVEZJTFRFUmAgaW5zdGFudGx5IHRlbGxzIG1lIHRoYXQgd2UncmUgd2l0aGluIHRoZSByZWFsbSBvZiBuZXR3b3JrIGZpbHRlcmluZywgcHJvYmFibHkgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwncyBOZXRmaWx0ZXIgZnJhbWV3b3JrLiBgTkZfQ09OTlRSQUNLYCBpcyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlLCBzbyBjb25uZWN0aW9uIHRyYWNraW5nIGlzIHRoZSBjb3JlIGNvbmNlcHQgd2UncmUgd29ya2luZyB3aXRoLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBOb3csIGxldCdzIHNlZSB3aGF0IHRoZSBzcGVjaWZpYyBjb250ZXh0IGFkZHMuXG5cbkl0IHNlZW1zIHRoYXQgdGhlcmUncyBhIHBhdGNoIHVuZGVyIGFuYWx5c2lzLiBUaGUga2V5IGluZGljYXRvciBpcyB0aGF0IGEgZnVuY3Rpb24gYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBpcyBiZWluZyBtb2RpZmllZC4gTm93LCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIHNpbmNlIGBuZl9jb25udHJhY2tfdGNwX3BhY2tldGAgaXMgdGhlIG1haW4gc3ltYm9sIHRvIGZvY3VzIG9uLlxuXG5NeSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhhdCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgIGlzIHN0YXRpYywgd2hpY2ggd291bGQgbWVhbiBpdCBpcyBub3QgZXh0ZXJuYWxseSB2aXNpYmxlLCBhbmQgdGhhdCB3b3VsZCBjaGFuZ2UgaG93IGl0IGFmZmVjdHMgdGhlIGtlcm5lbC4gVGhhdCBtYXkgbm90IGJlIHRoZSBjYXNlLiBTbyBJIHNob3VsZCBmaXJzdCB2ZXJpZnkuIEdpdmVuIHRoZSBsaW5lIFwiV2FpdCwgaXMgYG5mX2Nvbm50cmFja190Y3BfcGFja2V0YCBzdGF0aWM/IE5vLCB3ZSBzYXcgaXQgaW4gYG5mX2Nvbm50cmFja19jb3JlLmNgIGNhbGxlZCBkaXJlY3RseVwiLCBJIGNhbiBzdXJtaXNlIHRoZSBjb2RlIGlzIG5vdCBzdGF0aWMuIElmIGl0IHdhcyBzdGF0aWMsIGl0IHdvdWxkIG5vdCBoYXZlIGJlZW4gY2FsbGVkIGRpcmVjdGx5LlxuXG5JIHNob3VsZCBjaGVjayB0aGUgbGlrZWx5IGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4gTGV0IG1lIGNoZWNrIGBuZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuY2AsIGFuZCBtYWtlIHN1cmUgaXQgaXMgbm90IHN0YXRpYywgYW5kIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIFRoYXQncyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcyMjUsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoyNC41MzczNTQ5MzlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTM5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmNcIixcbiAgXCJGaXJzdExpbmVcIjogOTYwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgOTYwOlxcdH1cXG4gOTYxOlxcdFxcbiA5NjI6XFx0LyogUmV0dXJucyB2ZXJkaWN0IGZvciBwYWNrZXQsIG9yIC0xIGZvciBpbnZhbGlkLiAqL1xcbiA5NjM6XFx0aW50IG5mX2Nvbm50cmFja190Y3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCxcXG4gOTY0OlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiA5NjU6XFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBkYXRhb2ZmLFxcbiA5NjY6XFx0XFx0XFx0XFx0ICAgIGVudW0gaXBfY29ubnRyYWNrX2luZm8gY3RpbmZvLFxcbiA5Njc6XFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBuZl9ob29rX3N0YXRlICpzdGF0ZSlcXG4gOTY4OlxcdHtcXG4gOTY5OlxcdFxcdHN0cnVjdCBuZXQgKm5ldCA9IG5mX2N0X25ldChjdCk7XFxuIDk3MDpcXHRcXHRzdHJ1Y3QgbmZfdGNwX25ldCAqdG4gPSBuZl90Y3BfcGVybmV0KG5ldCk7XFxuIDk3MTpcXHRcXHRlbnVtIHRjcF9jb25udHJhY2sgbmV3X3N0YXRlLCBvbGRfc3RhdGU7XFxuIDk3MjpcXHRcXHR1bnNpZ25lZCBpbnQgaW5kZXgsICp0aW1lb3V0cztcXG4gOTczOlxcdFxcdGVudW0gbmZfY3RfdGNwX2FjdGlvbiByZXM7XFxuIDk3NDpcXHRcXHRlbnVtIGlwX2Nvbm50cmFja19kaXIgZGlyO1xcbiA5NzU6XFx0XFx0Y29uc3Qgc3RydWN0IHRjcGhkciAqdGg7XFxuIDk3NjpcXHRcXHRzdHJ1Y3QgdGNwaGRyIF90Y3BoO1xcbiA5Nzc6XFx0XFx0dW5zaWduZWQgbG9uZyB0aW1lb3V0O1xcbiA5Nzg6XFx0XFxuIDk3OTpcXHRcXHR0aCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIGRhdGFvZmYsIHNpemVvZihfdGNwaCksIFxcdTAwMjZfdGNwaCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDIxOjQyOjI0LjUzNzQ0OTk0OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODk5NjU5OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgU2lnbmlmaWNhbmNlKipcblxuT2theSwgc28gdGhpcyBkZWZpbml0ZWx5IGlzbid0IHN0YXRpYyBjb2RlLCB0aGF0IG11Y2ggaXMgY2xlYXIuIFRoZSBwcmltYXJ5IGZ1bmN0aW9uIG1vZGlmaWVkLCBgbmZfY29ubnRyYWNrX3RjcF9wYWNrZXRgLCBpcyBhIHNvbGlkIGZvY3VzIHN5bWJvbC4gSSBzZWUgcG90ZW50aWFsIGhlcmUuXG5cbk5vdywgSSdtIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIHNjb3BlLiBEb2VzIHRoaXMgaGF2ZSBhIGJyb2FkZXIgaW1wYWN0IGJleW9uZCBqdXN0IHRoYXQgZnVuY3Rpb24/IEknbSBleGFtaW5pbmcgdGhlIHBhdGNoIHRvIGRldGVybWluZSBpZiB0aGVyZSBhcmUgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG9yIHBvc3NpYmx5IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkLlxuXG5MZXQncyBxdWlja2x5IHZlcmlmeSB0aGF0IGVuYWJsaW5nIGBORl9DT05OVFJBQ0tgIGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgcGF0Y2ggdG8gaGF2ZSBhbiBlZmZlY3QuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgd2lkZXIgY29uZmlndXJhdGlvbiBjb250ZXh0IHRvIGJlIHN1cmUuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGBDT05GSUdfTkZfQ09OTlRSQUNLYCwgYENPTkZJR19ORVRGSUxURVJgLCBhbmQgYENPTkZJR19JTkVUYC5cblxuQWxyaWdodCwgSSdtIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJ2xsIHN1bW1hcml6ZSB0aGlzIGFzOlxuXG4qICAgKipXb3J0aEZ1enppbmc6IHRydWUqKiDigJMgVGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IHdhcnJhbnRzIGZ1enppbmcuXG4qICAgKipGb2N1c1N5bWJvbHM6IFxcW1wibmZcXF9jb25udHJhY2tcXF90Y3BcXF9wYWNrZXRcIlxcXSoqIOKAkyBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBwcmltYXJ5IHRhcmdldC5cbiogICAqKkVuYWJsZUNvbmZpZ3M6IFxcW1wiTkZcXF9DT05OVFJBQ0tcIiwgXCJORVRGSUxURVJcIiwgXCJJTkVUXCJcXF0qKiDigJMgVGhlc2UgYXJlIHRoZSByZXF1aXJlZCBjb25maWdzLlxuKiAgICoqUmVhc29uaW5nOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBUQ1AgY29ubmVjdGlvbiB0cmFja2luZyBsb2dpYyBpbiBuZXRmaWx0ZXIsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aW1lb3V0cyB1cG9uIHJlY2VpdmluZyBhIFJTVCBwYWNrZXQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIqKiDigJMgVGhpcyBzdWNjaW5jdGx5IGNhcHR1cmVzIHRoZSBlc3NlbmNlIG9mIHRoZSBwYXRjaCdzIGltcGFjdCwgZXhwbGFpbmluZyB0aGF0IGl0IGRpcmVjdGx5IHRvdWNoZXMgY29yZSBuZXR3b3JraW5nIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgxMDgsIk91dHB1dFRva2VucyI6OTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQyMTo0MjoyOS40MzcxMTI3MjZaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3Nzg4NjI3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfQ09OTlRSQUNLXCIsXG4gICAgXCJORVRGSUxURVJcIixcbiAgICBcIklORVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9jb25udHJhY2tfdGNwX3BhY2tldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFRDUCBjb25uZWN0aW9uIHRyYWNraW5nIGxvZ2ljIGluIG5ldGZpbHRlciwgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRpbWVvdXRzIHVwb24gcmVjZWl2aW5nIGEgUlNUIHBhY2tldC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORl9DT05OVFJBQ0tcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiSU5FVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5mX2Nvbm50cmFja190Y3BfcGFja2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVENQIGNvbm5lY3Rpb24gdHJhY2tpbmcgbG9naWMgaW4gbmV0ZmlsdGVyLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGltZW91dHMgdXBvbiByZWNlaXZpbmcgYSBSU1QgcGFja2V0LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[1] Phase: Succeeded StartedAt: 2026-07-30 21:42:40 +0000 UTC FinishedAt: 2026-07-30 21:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-30 21:42:40 +0000 UTC FinishedAt: 2026-07-30 21:42:40 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2] Phase: Succeeded StartedAt: 2026-07-30 21:42:40 +0000 UTC FinishedAt: 2026-07-31 01:20:15 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-30 21:42:40 +0000 UTC FinishedAt: 2026-07-31 01:20:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-30 21:42:40 +0000 UTC FinishedAt: 2026-07-30 21:42:50 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-30 21:42:40 +0000 UTC FinishedAt: 2026-07-30 21:42:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.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-workfloww7b85/series-workfloww7b85-convert-artifact-1927711539/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-30 21:42:50 +0000 UTC FinishedAt: 2026-07-30 21:58:12 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-30 21:42:50 +0000 UTC FinishedAt: 2026-07-30 21:58:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*0cc8bed6-ce4b-458e-ab79-4e9818fc8d04,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-workfloww7b85/series-workfloww7b85-convert-artifact-1927711539/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": "3955ca85-d8d2-4d78-8b1e-15a6ac7ff1f5", "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-workfloww7b85/series-workfloww7b85-build-action-776779233/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-30 21:42:50 +0000 UTC FinishedAt: 2026-07-30 21:58:01 +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:*0cc8bed6-ce4b-458e-ab79-4e9818fc8d04,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-workfloww7b85/series-workfloww7b85-convert-artifact-1927711539/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": "3955ca85-d8d2-4d78-8b1e-15a6ac7ff1f5", "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-workfloww7b85/series-workfloww7b85-build-action-776779233/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-30 21:58:12 +0000 UTC FinishedAt: 2026-07-30 21:58:12 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-30 21:58:12 +0000 UTC FinishedAt: 2026-07-30 21:58:12 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-30 21:58:12 +0000 UTC FinishedAt: 2026-07-30 21:58:23 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-30 21:58:12 +0000 UTC FinishedAt: 2026-07-30 21:58:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.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-workfloww7b85/series-workfloww7b85-convert-artifact-1907345962/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-30 21:58:23 +0000 UTC FinishedAt: 2026-07-30 22:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-30 21:58:23 +0000 UTC FinishedAt: 2026-07-30 22:00:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*3955ca85-d8d2-4d78-8b1e-15a6ac7ff1f5,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-workfloww7b85/series-workfloww7b85-build-action-776779233/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-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-30 22:00:17 +0000 UTC FinishedAt: 2026-07-30 22:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-30 22:00:17 +0000 UTC FinishedAt: 2026-07-30 22:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-30 22:00:17 +0000 UTC FinishedAt: 2026-07-30 22:16:01 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-30 22:00:17 +0000 UTC FinishedAt: 2026-07-30 22:16:01 +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:*0cc8bed6-ce4b-458e-ab79-4e9818fc8d04,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-workfloww7b85/series-workfloww7b85-convert-artifact-1907345962/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": "bd017c48-4477-4869-a4a8-61cdddeb0b85", "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-workfloww7b85/series-workfloww7b85-build-action-4222935374/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-30 22:00:17 +0000 UTC FinishedAt: 2026-07-30 22:15:50 +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:*0cc8bed6-ce4b-458e-ab79-4e9818fc8d04,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-workfloww7b85/series-workfloww7b85-convert-artifact-1907345962/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": "bd017c48-4477-4869-a4a8-61cdddeb0b85", "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-workfloww7b85/series-workfloww7b85-build-action-4222935374/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-30 22:16:01 +0000 UTC FinishedAt: 2026-07-30 22:16:01 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-30 22:16:01 +0000 UTC FinishedAt: 2026-07-30 22:16:01 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-30 22:16:01 +0000 UTC FinishedAt: 2026-07-30 22:17:57 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-30 22:16:01 +0000 UTC FinishedAt: 2026-07-30 22:17:47 +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:*bd017c48-4477-4869-a4a8-61cdddeb0b85,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-workfloww7b85/series-workfloww7b85-build-action-4222935374/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-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-30 22:17:57 +0000 UTC FinishedAt: 2026-07-31 01:20:15 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-30 22:17:57 +0000 UTC FinishedAt: 2026-07-30 22:17:57 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-30 22:17:57 +0000 UTC FinishedAt: 2026-07-30 22:17:57 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-30 22:17:58 +0000 UTC FinishedAt: 2026-07-31 01:20:15 +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":["nf_conntrack_tcp_packet"],"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:*3955ca85-d8d2-4d78-8b1e-15a6ac7ff1f5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*bd017c48-4477-4869-a4a8-61cdddeb0b85,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-workfloww7b85/series-workfloww7b85-build-action-776779233/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-workfloww7b85/series-workfloww7b85-build-action-4222935374/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-30 22:17:58 +0000 UTC FinishedAt: 2026-07-30 22:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-30 22:17:58 +0000 UTC FinishedAt: 2026-07-30 22:18:03 +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":["nf_conntrack_tcp_packet"],"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-workfloww7b85/series-workfloww7b85-convert-artifact-1181898943/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-30 22:17:58 +0000 UTC FinishedAt: 2026-07-30 22:17:58 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-30 22:18:08 +0000 UTC FinishedAt: 2026-07-31 01:20:15 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww7b85[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_conntrack_tcp_packet"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"fb402386af4cdce108ff991a796386de55439735","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_CONNTRACK","NETFILTER","INET"],"series_id":"ef00ebd8-7c50-45ce-8042-d1eb591424cf","tree_name":"nf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-30 22:18:08 +0000 UTC FinishedAt: 2026-07-31 01:20:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*3955ca85-d8d2-4d78-8b1e-15a6ac7ff1f5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*bd017c48-4477-4869-a4a8-61cdddeb0b85,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-workfloww7b85/series-workfloww7b85-build-action-776779233/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-workfloww7b85/series-workfloww7b85-build-action-4222935374/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-workfloww7b85/series-workfloww7b85-convert-artifact-1181898943/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,}