Name: series-workflowtgvc7 Phase: Succeeded StartedAt: 2026-07-31 02:20:42 +0000 UTC FinishedAt: 2026-07-31 04:36:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[0] Phase: Succeeded StartedAt: 2026-07-31 02:20:42 +0000 UTC FinishedAt: 2026-07-31 02:50:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[0].run-triage Phase: Succeeded StartedAt: 2026-07-31 02:20:42 +0000 UTC FinishedAt: 2026-07-31 02:50:25 +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": "a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_EBT_NFLOG", "BRIDGE_NF_EBTABLES", "BRIDGE", "NETFILTER", "NETFILTER_XTABLES" ], "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": "a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_EBT_NFLOG", "BRIDGE_NF_EBTABLES", "BRIDGE", "NETFILTER", "NETFILTER_XTABLES" ], "series_id": "fec938cf-954e-41cb-ad78-0205cc23a808" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ebt_nflog_tg_check", "ebt_nflog_tg_destroy" ], "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+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSSURHRV9FQlRfTkZMT0cmIzM0OywKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTJiMzNDssCiAgICAmIzM0O0JSSURHRSYjMzQ7LAogICAgJiMzNDtORVRGSUxURVImIzM0OywKICAgICYjMzQ7TkVURklMVEVSX1hUQUJMRVMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlYnRfbmZsb2dfdGdfY2hlY2smIzM0OywKICAgICYjMzQ7ZWJ0X25mbG9nX3RnX2Rlc3Ryb3kmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQmIzM5O3MgbGlmZWN5Y2xlLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDU2MWQxNGU0NTJhOWUzMTdlY2RjOTE1MzMxZDg0OTk1MjZhOWU1NzJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzMSAwMjo0NzozNCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5pbmRleCA2MWJmOGY0NDY1YWI3Li40MjZmOGFkYzkxMmM3IDEwMDY0NFxuLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5AQCAtNDEsMTEgJiM0Mzs0MSwyNSBAQCBlYnRfbmZsb2dfdGcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHh0X2FjdGlvbl9wYXJhbSAqcGFyKVxuIHN0YXRpYyBpbnQgZWJ0X25mbG9nX3RnX2NoZWNrKGNvbnN0IHN0cnVjdCB4dF90Z2Noa19wYXJhbSAqcGFyKVxuIHtcbiBcdHN0cnVjdCBlYnRfbmZsb2dfaW5mbyAqaW5mbyA9IHBhci1cdTAwM2V0YXJnaW5mbztcbiYjNDM7XHRpbnQgcmV0O1xuIFxuIFx0aWYgKGluZm8tXHUwMDNlZmxhZ3MgXHUwMDI2IH5FQlRfTkZMT0dfTUFTSylcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRpbmZvLVx1MDAzZXByZWZpeFtFQlRfTkZMT0dfUFJFRklYX1NJWkUgLSAxXSA9ICYjMzk7XFwwJiMzOTs7XG4tXHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuJiM0MztcdGlmIChyZXQgIT0gMCBcdTAwMjZcdTAwMjYgIXBhci1cdTAwM2VuZnRfY29tcGF0KSB7XG4mIzQzO1x0XHRyZXF1ZXN0X21vZHVsZShcJiMzNDslc1wmIzM0OywgXCYjMzQ7bmZuZXRsaW5rX2xvZ1wmIzM0Oyk7XG4mIzQzO1xuJiM0MztcdFx0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIHZvaWQgZWJ0X25mbG9nX3RnX2Rlc3Ryb3koY29uc3Qgc3RydWN0IHh0X3RnZHRvcl9wYXJhbSAqcGFyKVxuJiM0Mzt7XG4mIzQzO1x0bmZfbG9nZ2VyX3B1dChwYXItXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcbiB9XG4gXG4gc3RhdGljIHN0cnVjdCB4dF90YXJnZXQgZWJ0X25mbG9nX3RnX3JlZyBfX3JlYWRfbW9zdGx5ID0ge1xuQEAgLTU0LDYgJiM0Mzs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHtcbiBcdC5mYW1pbHkgICAgID0gTkZQUk9UT19CUklER0UsXG4gXHQudGFyZ2V0ICAgICA9IGVidF9uZmxvZ190ZyxcbiBcdC5jaGVja2VudHJ5ID0gZWJ0X25mbG9nX3RnX2NoZWNrLFxuJiM0MztcdC5kZXN0cm95ICAgID0gZWJ0X25mbG9nX3RnX2Rlc3Ryb3ksXG4gXHQudGFyZ2V0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZWJ0X25mbG9nX2luZm8pLFxuIFx0Lm1lICAgICAgICAgPSBUSElTX01PRFVMRSxcbiB9O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUklER0VfRUJUX05GTE9HJiMzNDssCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFUyYjMzQ7LAogICAgJiMzNDtCUklER0UmIzM0OywKICAgICYjMzQ7TkVURklMVEVSJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUl9YVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWJ0X25mbG9nX3RnX2NoZWNrJiMzNDssCiAgICAmIzM0O2VidF9uZmxvZ190Z19kZXN0cm95JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2YgdGhlIGVidF9uZmxvZyB0YXJnZXQgaW4gZWJ0YWJsZXMsIGFkZGluZyBtb2R1bGUgbG9hZGluZyBhbmQgbG9nZ2VyIHJlZmVyZW5jZSBjb3VudGluZy4gVGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGVidGFibGVzIGNvbmZpZ3VyYXRpb24gYW5kIGFsdGVycyB0aGUgdGFyZ2V0JiMzOTtzIGxpZmVjeWNsZSwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1NjFkMTRlNDUyYTllMzE3ZWNkYzkxNTMzMWQ4NDk5NTI2YTllNTcyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMzEgMDI6NDc6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jCmluZGV4IDYxYmY4ZjQ0NjVhYjcuLjQyNmY4YWRjOTEyYzcgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jCkBAIC00MSwxMSAmIzQzOzQxLDI1IEBAIGVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpCiBzdGF0aWMgaW50IGVidF9uZmxvZ190Z19jaGVjayhjb25zdCBzdHJ1Y3QgeHRfdGdjaGtfcGFyYW0gKnBhcikKIHsKIAlzdHJ1Y3QgZWJ0X25mbG9nX2luZm8gKmluZm8gPSBwYXItJmd0O3RhcmdpbmZvOwomIzQzOwlpbnQgcmV0OwogCiAJaWYgKGluZm8tJmd0O2ZsYWdzICZhbXA7IH5FQlRfTkZMT0dfTUFTSykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaW5mby0mZ3Q7cHJlZml4W0VCVF9ORkxPR19QUkVGSVhfU0laRSAtIDFdID0gJiMzOTtcMCYjMzk7OwotCXJldHVybiAwOwomIzQzOwomIzQzOwlyZXQgPSBuZl9sb2dnZXJfZmluZF9nZXQocGFyLSZndDtmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpOwomIzQzOwlpZiAocmV0ICE9IDAgJmFtcDsmYW1wOyAhcGFyLSZndDtuZnRfY29tcGF0KSB7CiYjNDM7CQlyZXF1ZXN0X21vZHVsZSgmIzM0OyVzJiMzNDssICYjMzQ7bmZuZXRsaW5rX2xvZyYjMzQ7KTsKJiM0MzsKJiM0MzsJCXJldCA9IG5mX2xvZ2dlcl9maW5kX2dldChwYXItJmd0O2ZhbWlseSwgTkZfTE9HX1RZUEVfVUxPRyk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgZWJ0X25mbG9nX3RnX2Rlc3Ryb3koY29uc3Qgc3RydWN0IHh0X3RnZHRvcl9wYXJhbSAqcGFyKQomIzQzO3sKJiM0MzsJbmZfbG9nZ2VyX3B1dChwYXItJmd0O2ZhbWlseSwgTkZfTE9HX1RZUEVfVUxPRyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHsKQEAgLTU0LDYgJiM0Mzs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHsKIAkuZmFtaWx5ICAgICA9IE5GUFJPVE9fQlJJREdFLAogCS50YXJnZXQgICAgID0gZWJ0X25mbG9nX3RnLAogCS5jaGVja2VudHJ5ID0gZWJ0X25mbG9nX3RnX2NoZWNrLAomIzQzOwkuZGVzdHJveSAgICA9IGVidF9uZmxvZ190Z19kZXN0cm95LAogCS50YXJnZXRzaXplID0gc2l6ZW9mKHN0cnVjdCBlYnRfbmZsb2dfaW5mbyksCiAJLm1lICAgICAgICAgPSBUSElTX01PRFVMRSwKIH07CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIHRoZSBlYnRfbmZsb2cgUGF0Y2gqKgoKUmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgZm9jdXNlZCBvbiBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb247IGl0JiMzOTtzIG5vdCBhIGJ1ZyBmaXgsIGl0JiMzOTtzIGFkZGluZyBuZXcgYmVoYXZpb3IuIFNwZWNpZmljYWxseSwgdGhlIHBhdGNoIGlzIGludHJvZHVjaW5nIG1vZHVsZSByZXF1ZXN0IGFuZCBsb2dnZXIgZGlzY292ZXJ5IGluIHRoZSBgZWJ0X25mbG9nX3RnX2NoZWNrYCBmdW5jdGlvbiwgYW5kIHRoZW4gZW5zdXJpbmcgdGhlIGxvZ2dlciBpcyBwcm9wZXJseSByZWxlYXNlZCBpbiBgZWJ0X25mbG9nX3RnX2Rlc3Ryb3lgLgoKVGhpcyBtYWtlcyBzZW5zZS4gV2UmIzM5O3JlIGxpa2VseSBkZWFsaW5nIHdpdGggbG9nZ2luZyBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBmcmFtZXdvcmssIHByb2JhYmx5IHJlbGF0ZWQgdG8gbG9nZ2luZyBvZiBuZXR3b3JrIHRyYWZmaWMgdGhhdCB0cmF2ZXJzZXMgdGhlIGJyaWRnZS4gVGhlIGFkZGl0aW9uIG9mIHRoZSBtb2R1bGUgcmVxdWVzdCBhbmQgbG9nZ2VyIG1hbmFnZW1lbnQgc3VnZ2VzdHMgdGhhdCB0aGUgbG9nZ2luZyBtZWNoYW5pc20gbWlnaHQgYmUgZHluYW1pYywgcGVyaGFwcyBsb2FkaW5nIHRoZSBuZWNlc3NhcnkgbG9nZ2luZyBtb2R1bGUgb25seSB3aGVuIG5lZWRlZC4KCk5vdywgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBgZWJ0X25mbG9nLmNgIGZpbGUgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGV4aXN0aW5nIGNvZGUgY29udGV4dCwgaG93IHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IGltcGxlbWVudGVkLCBhbmQgaG93IHRoZXNlIGNoYW5nZXMgZml0IGludG8gdGhlIGxhcmdlciBwaWN0dXJlLiBJJiMzOTtsbCBhbHNvIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBjaGFuZ2UgaXMgcHJvcGVybHkgaW50ZWdyYXRlZCB3aXRoIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiB2aWEgdGhlIGBLY29uZmlnYCBmaWxlLiBJJiMzOTttIGtlZW4gdG8gZXhhbWluZSB0aGUgZGVwZW5kZW5jaWVzIGFuZCB3aGV0aGVyIHRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW55IG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgaW1wYWN0cyBleGlzdGluZyBvbmVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2VidF9uZmxvZ190Z19jaGVjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jPTI0PWVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmMtNDAtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYzo0MTpzdGF0aWMgaW50IGVidF9uZmxvZ190Z19jaGVjayhjb25zdCBzdHJ1Y3QgeHRfdGdjaGtfcGFyYW0gKnBhcilcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jLTQyLXtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYz02NT1zdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmMtNjktXHQudGFyZ2V0ICAgICA9IGVidF9uZmxvZ190Zyxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jOjcwOlx0LmNoZWNrZW50cnkgPSBlYnRfbmZsb2dfdGdfY2hlY2ssXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy03MS1cdC5kZXN0cm95ICAgID0gZWJ0X25mbG9nX3RnX2Rlc3Ryb3ksXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA4MgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIENoZWNrIGZvciBgZWJ0X25mbG9nLmNgKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdXJyb3VuZGluZyBgZWJ0X25mbG9nLmNgLiBJIG5lZWQgdG8gZW5zdXJlIGl0JiMzOTtzIHByb3Blcmx5IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc3BlY2lmaWMgYnVpbGQuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIEtjb25maWcgZmlsZXMsIHNpbmNlIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGxpdmVzLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHNlZSB3aGF0IGZlYXR1cmVzIGVuYWJsZSBpdCwgYW5kIGNvbmZpcm0gdGhlIHJlbGV2YW50IHNldHRpbmdzLiBObyBwb2ludCBpbiBtYWtpbmcgYSB3cm9uZyB0dXJuLCB0aW1lIHRvIHN0YXJ0IGJ5IGNoZWNraW5nIEtjb25maWcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYnRfbmZsb2cmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjc5CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIEtlcm5lbCYjMzk7cyBOZXR3b3JrIEZpbHRlciBNYWtlZmlsZSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoZXJlIGEgc3BlY2lmaWMgbmV0d29yayBmaWx0ZXJpbmcgY29tcG9uZW50IGlzIGJ1aWx0IHdpdGhpbiB0aGUga2VybmVsLiBJdCBzZWVtcyBsaWtlIGEgZGVjZW50IHN0YXJ0aW5nIHBvaW50IG1pZ2h0IGJlIHRoZSBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGVgLiBUaGlzIGZpbGUgaXMgcmVzcG9uc2libGUgZm9yIGJ1aWxkaW5nIGEgcG9ydGlvbiBvZiB0aGUgbmV0d29yayBicmlkZ2luZyBmdW5jdGlvbmFsaXR5LCBhbmQgZ2l2ZW4gdGhlIG5hbWUgb2YgdGhlIGZpbGUgaXQmIzM5O3MgbGlrZWx5IHRoYXQgYSBuZXR3b3JrIGZpbHRlciBpcyBpbmNsdWRlZCB3aXRoaW4uIEkmIzM5O2xsIG5lZWQgdG8gb3BlbiB0aGF0IGZpbGUgYW5kIHNlZSB3aGF0JiMzOTtzIGRlZmluZWQgaW4gdGhlcmUuIFRoZW4gSSYjMzk7bGwgaGF2ZSBhIGJldHRlciBwaWN0dXJlIG9mIHRoZSBidWlsZCB0YXJnZXRzLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIEhvcGVmdWxseSwgdGhpcyBmaWxlIHdpbGwgcG9pbnQgbWUgZGlyZWN0bHkgdG8gdGhlIHJlbGV2YW50IHNvdXJjZXMgb3IgYXQgbGVhc3QgbmFycm93IGRvd24gdGhlIHNlYXJjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYnRfbmZsb2cmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZT0zOT1vYmotJChDT05GSUdfQlJJREdFX0VCVF9MT0cpICYjNDM7PSBlYnRfbG9nLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjQwOm9iai0kKENPTkZJR19CUklER0VfRUJUX05GTE9HKSAmIzQzOz0gZWJ0X25mbG9nLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTQxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NzMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkNoZWNraW5nIGBDT05GSUdfQlJJREdFX0VCVF9ORkxPR2AgaW4gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gTXkgdHJhaW4gb2YgdGhvdWdodCBpcyB0byB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGBDT05GSUdfQlJJREdFX0VCVF9ORkxPR2AuIFRoZSBzcGVjaWZpYyBsb2NhdGlvbiwgYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgLCBpcyB0ZWxsaW5nLiBJJiMzOTttIGFzc3VtaW5nIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYnJpZGdpbmcgYW5kIG5ldGZpbHRlciBpbnRlZ3JhdGlvbiwgYW5kIHNwZWNpZmljYWxseSwgdGhlIGxvZ2dpbmcgY29tcG9uZW50IGZvciBFQlRBQkxFUy4gSSBuZWVkIHRvIHF1aWNrbHkgYXNjZXJ0YWluIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgZmxhZyBhbmQgaXRzIGltcGxpY2F0aW9ucy4gUGVyaGFwcyBJJiMzOTttIHRyeWluZyB0byBlbmFibGUgb3IgZGlzYWJsZSBzb21lIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBsb2dnaW5nIGJyaWRnZSB0cmFmZmljLCBvciBJJiMzOTttIHRyb3VibGVzaG9vdGluZyBhIHByb2JsZW0gdGhhdCBtaWdodCBpbnZvbHZlIG5ldGZpbHRlciBsb2dnaW5nIHdpdGhpbiBhIGJyaWRnZWQgZW52aXJvbm1lbnQuIE1heWJlIEkmIzM5O20gZXhhbWluaW5nIGEgc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbiBvciBqdXN0IHJldmlld2luZyBwb3RlbnRpYWwga2VybmVsIGZlYXR1cmVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24gKmRvZXMqIGluIHRoZSBjb250ZXh0IG9mIHRoZSBsYXJnZXIgbmV0d29ya2luZyBwaWN0dXJlLiBJcyBpdCBlbmFibGVkPyBXaGF0IGFyZSB0aGUgZGVwZW5kZW5jaWVzPyBBcmUgdGhlcmUgcGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM/IEVzc2VudGlhbGx5LCBJJiMzOTttIGNoZWNraW5nIHRoZSBrY29uZmlnIGZpbGUgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGlzIHBhcnRpY3VsYXIgbmV0ZmlsdGVyIGxvZ2dpbmcgZmVhdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7QlJJREdFX0VCVF9ORkxPRyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yMzQ9Y29uZmlnIEJSSURHRV9FQlRfTE9HXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjI0Mzpjb25maWcgQlJJREdFX0VCVF9ORkxPR1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDQtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IG5mbG9nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk4MwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKlBlZXJpbmcgaW50byB0aGUgRGVwdGhzIG9mIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsaW5lYWdlIG9mIGBCUklER0VfRUJUX05GTE9HYC4gV2hhdCBhcmUgdGhlIHVuZGVybHlpbmcgcGllY2VzIHRoYXQgY29udHJpYnV0ZSB0byBpdHMgZnVuY3Rpb25hbGl0eT8gSSBuZWVkIHRvIGtub3cgd2hhdCBpdCByZWxpZXMgb24sIHdoYXQgaXQgYnVpbGRzIHVwb24uIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQga25vd2luZyB0aGUgZGlyZWN0IGRlcGVuZGVuY2llcywgYnV0IHVuZGVyc3RhbmRpbmcgdGhlICp3aHkqIGJlaGluZCB0aGVtLiBJIHdhbnQgdG8gYnVpbGQgYSBjbGVhciBtZW50YWwgbWFwIG9mIGl0cyBwbGFjZSBpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIGFuZCBpZGVudGlmeSBhbnkgcG90ZW50aWFsIHdlYWsgcG9pbnRzIG9yIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gYmFzZWQgb24gdGhpcyB1bmRlcnN0YW5kaW5nLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlIGNvZGUgdGVsbHMgbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0MywKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjQzOlx0Y29uZmlnIEJSSURHRV9FQlRfTkZMT0dcbiAyNDQ6XHRcdHRyaXN0YXRlIFwmIzM0O2VidDogbmZsb2cgc3VwcG9ydFwmIzM0O1xuIDI0NTpcdFx0aGVscFxuIDI0NjpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBuZmxvZyB3YXRjaGVyLCB3aGljaCBhbGxvd3MgdG8gTE9HXG4gMjQ3Olx0XHQgIG1lc3NhZ2VzIHRocm91Z2ggdGhlIG5ldGZpbHRlciBsb2dnaW5nIEFQSSwgd2hpY2ggY2FuIHVzZVxuIDI0ODpcdFx0ICBlaXRoZXIgdGhlIG9sZCBMT0cgdGFyZ2V0LCB0aGUgb2xkIFVMT0cgdGFyZ2V0IG9yIG5mbmV0bGlua19sb2dcbiAyNDk6XHRcdCAgYXMgYmFja2VuZC5cbiAyNTA6XHRcbiAyNTE6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgbmZsb2cgd2F0Y2hlciwgdGhhdCB5b3UgY2FuIHVzZSBpbiBhbnkgcnVsZVxuIDI1MjpcdFx0ICBpbiBhbnkgZWJ0YWJsZXMgdGFibGUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNDQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBpZWNlIG9mIGNvZGUsIGFuZCB3aGlsZSBpdCBkb2VzbiYjMzk7dCAqZGlyZWN0bHkqIHN0YXRlIGl0cyBkZXBlbmRlbmNpZXMsIGl0cyBsb2NhdGlvbiBpbiBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ2AgaXMgYSBwcmV0dHkgYmlnIGNsdWUuIFRoYXQgc2NyZWFtcyBgQlJJREdFX05GX0VCVEFCTEVTYCB0byBtZS4gSSYjMzk7bSBvcGVyYXRpbmcgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBpdCBsaWtlbHkgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBidXQsIGFzIGFsd2F5cywgbGV0JiMzOTtzIHZlcmlmeSB0aGF0IGFzc3VtcHRpb24gYmVmb3JlIHdlIG1vdmUgb24uIEdvdHRhIGNoZWNrIGFuZCBtYWtlIHN1cmUuIE5vIHBvaW50IGluIG1ha2luZyBhIGZvb2wgb2YgbXlzZWxmLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Mjg9Y29uZmlnIE5GX0NPTk5UUkFDS19CUklER0Vcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3Bcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NDM6Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgRUJUQUJMRVMgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNTItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7RXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTYxLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo2MjppZiBCUklER0VfTkZfRUJUQUJMRVNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNjMtXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz02Nz1jb25maWcgQlJJREdFX0VCVF9CUk9VVEVcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNjgtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGJyb3V0ZSB0YWJsZSBzdXBwb3J0XCYjMzQ7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY5Olx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTcwLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Nzg9Y29uZmlnIEJSSURHRV9FQlRfVF9GSUxURVJcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNzktXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGZpbHRlciB0YWJsZSBzdXBwb3J0XCYjMzQ7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjgwOlx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTgxLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9ODg9Y29uZmlnIEJSSURHRV9FQlRfVF9OQVRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctODktXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IG5hdCB0YWJsZSBzdXBwb3J0XCYjMzQ7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjkwOlx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTkxLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9MTMyPWNvbmZpZyBCUklER0VfRUJUX0lQNlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMzMtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IElQNiBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMzQ6XHRkZXBlbmRzIG9uIEJSSURHRV9ORl9FQlRBQkxFUyBcdTAwMjZcdTAwMjYgSVBWNlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMzUtXHRoZWxwXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0xODk9Y29uZmlnIEJSSURHRV9FQlRfQVJQUkVQTFlcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTkwLVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBhcnAgcmVwbHkgdGFyZ2V0IHN1cHBvcnRcJiMzNDtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTkxOlx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVMgXHUwMDI2XHUwMDI2IElORVRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTkyLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9MjQzPWNvbmZpZyBCUklER0VfRUJUX05GTE9HXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNTUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjI1NjplbmRpZiAjIEJSSURHRV9ORl9FQlRBQkxFU1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzI5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIGVidF9uZmxvZyBUYXJnZXQgaW4gRWJ0YWJsZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGhvdyB0byBiZXN0IGFwcHJvYWNoIGZ1enppbmcgdGhlIGBlYnRfbmZsb2dgIHRhcmdldCB3aXRoaW4gZWJ0YWJsZXMsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiB0aGUgcmVjZW50IHBhdGNoLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBJIGFic29sdXRlbHkgbmVlZCBgQlJJREdFX05GX0VCVEFCTEVTYCBlbmFibGVkLCBhbmQsIG9mIGNvdXJzZSwgYEJSSURHRV9FQlRfTkZMT0dgIGlzIGVzc2VudGlhbCBhcyB3ZWxsLiBUaGUgcGF0Y2ggaXRzZWxmIGlzIG1vZGlmeWluZyB0aGUgYGVidF9uZmxvZ190Z19jaGVja2AgYW5kIGBlYnRfbmZsb2dfdGdfZGVzdHJveWAgZnVuY3Rpb25zLiBSaWdodCwgdGhvc2UgYXJlIHRoZSB0YXJnZXQgY2hlY2sgYW5kIGRlc3Ryb3kgZnVuY3Rpb25zLCB3aGljaCBhcmUgY3JpdGljYWwgYmVjYXVzZSB0aGV5JiMzOTtyZSBwYXJ0IG9mIHRoZSBgZWJ0X25mbG9nYCB0YXJnZXQuIEFuZCBiZWNhdXNlIGVidGFibGVzIGFsbG93cyB1c2Vyc3BhY2UgYWNjZXNzLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIHRoZXJlLiBTbyBteSBrZXkgZm9jdXMgc2hvdWxkIGRlZmluaXRlbHkgYmUgb24gZnV6emluZyBgZWJ0X25mbG9nX3RnX2NoZWNrYCBhbmQgYGVidF9uZmxvZ190Z19kZXN0cm95YC4gVGhvc2UgYXJlIHRoZSBwcmltZSB0YXJnZXRzLiBJ4oCZdmUgYWxyZWFkeSBtYWRlIGEgbm90ZSBvZiB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnM6IGBCUklER0VfTkZfRUJUQUJMRVNgIGFuZCBgQlJJREdFX0VCVF9ORkxPR2AuIAoKSG1tLCBhbnl0aGluZyBlbHNlIHRvIGNvbnNpZGVyPyBPaCwgeWVzLCBgbmZfbG9nZ2VyX2ZpbmRfZ2V0YCBhbmQgYG5mX2xvZ2dlcl9wdXRgIGFyZSBhbHNvIGNhbGxlZCBkdXJpbmcgdGhlIHByb2Nlc3NpbmcuIEkmIzM5O2xsIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gdGhvc2UuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBCUklER0VgIGlzIGEgcHJlcmVxdWlzaXRlIGhlcmUuIFllcywgYEJSSURHRV9ORl9FQlRBQkxFU2AgaGFzIGEgZGVwZW5kZW5jeSBvbiBgQlJJREdFYCwgc28gdGhhdCBpcyBhbHNvIGltcG9ydGFudC4gTm93IEkgY2FuIHN0YXJ0IGJ1aWxkaW5nIG15IGZ1enppbmcgc3RyYXRlZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUklER0VfTkZfRUJUQUJMRVMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Mjg9Y29uZmlnIE5GX0NPTk5UUkFDS19CUklER0Vcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3Bcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NDM6Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgRUJUQUJMRVMgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNTItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7RXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA3NgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipFeGFtaW5pbmcgZWJ0YWJsZXMgd2l0aGluIHRoZSBMaW51eCBOZXR3b3JraW5nIEZyYW1ld29yayoqCgpBbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgZWJ0YWJsZXMgc2l0dWF0aW9uIHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBjb250ZXh0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgIGZpbGUuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB6ZXJvaW5nIGluIG9uIHRoZSBgQlJJREdFX05GX0VCVEFCTEVTYCBjb25maWd1cmF0aW9uIG9wdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcy4gV2hhdCBvdGhlciBmZWF0dXJlcyBvciBtb2R1bGVzIGRvZXMgaXQgcmVseSBvbj8gQXJlIHRoZXJlIGFueSB1cHN0cmVhbSBjaGFuZ2VzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHRoZXJlIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBuZXRmaWx0ZXIgbW9kdWxlcz8gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgbmVlZCB0byBjb25maXJtIHRoZSBkZXNpcmVkIGJlaGF2aW91ci4gVGhpcyBzaG91bGQgYmUgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUzLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTM6XHRtZW51Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU1xuICA1NDpcdFx0dHJpc3RhdGUgXCYjMzQ7RXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcJiMzNDtcbiAgNTU6XHRcdGRlcGVuZHMgb24gQlJJREdFIFx1MDAyNlx1MDAyNiBORVRGSUxURVIgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUl9YVEFCTEVTXG4gIDU2Olx0XHRzZWxlY3QgTkVURklMVEVSX0ZBTUlMWV9CUklER0VcbiAgNTc6XHRcdGhlbHBcbiAgNTg6XHRcdCAgZWJ0YWJsZXMgaXMgYSBnZW5lcmFsLCBleHRlbnNpYmxlIGZyYW1lL3BhY2tldCBpZGVudGlmaWNhdGlvblxuICA1OTpcdFx0ICBmcmFtZXdvcmsuIFNheSAmIzM5O1kmIzM5OyBvciAmIzM5O00mIzM5OyBoZXJlIGlmIHlvdSB3YW50IHRvIGRvIEV0aGVybmV0XG4gIDYwOlx0XHQgIGZpbHRlcmluZy9OQVQvYnJvdXRpbmcgb24gdGhlIEV0aGVybmV0IGJyaWRnZS5cbiAgNjE6XHRcbiAgNjI6XHRpZiBCUklER0VfTkZfRUJUQUJMRVNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQ3MAoJCQkJCQkJb3V0cHV0OiAxNDQKCQkJCQkJCXRob3VnaHRzOiAyNTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIGZvciBFQlRBQkxFUyBORkxPRyBJbnRlZ3JhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gY29uZmlndXJlIHRoZSBrZXJuZWwgcHJvcGVybHkgZm9yIHRoaXMgZWJ0YWJsZXMgTkZMT0cgZnVuY3Rpb25hbGl0eSB0byB3b3JrLiBJdCYjMzk7cyBjbGVhciB0aGF0IEkgbmVlZCBhdCBsZWFzdCBgQlJJREdFYCwgYE5FVEZJTFRFUmAsIGFuZCBgTkVURklMVEVSX1hUQUJMRVNgLiBUaGVuIHRoZXJlIGFyZSB0aGUgc3BlY2lmaWMgZWJ0YWJsZXMgb25lcy4gSW5pdGlhbGx5LCBJIHRob3VnaHQganVzdCBgQlJJREdFX0VCVF9ORkxPR2Agd291bGQgZG8gdGhlIHRyaWNrLCB3aXRoIHRoZSBidWlsZCBzeXN0ZW0gcmVzb2x2aW5nIGRlcGVuZGVuY2llcy4gQnV0LCB0aGlua2luZyBhYm91dCBzeXprYWxsZXImIzM5O3MgY29uZmlnIGdlbmVyYXRpb24sIEkgcmVhbGl6ZSBpdOKAmXMgc2FmZXIgdG8gYmUgZXhwbGljaXQuIEl0JiMzOTtzIGJlc3QgdG8gZW5zdXJlIHRoZXNlIG1vZHVsZXMgYXJlICpkZWZpbml0ZWx5KiBzZWxlY3RlZCBhbmQgbm90IHJlbHkgb24gaW1wbGljaXQgcmVzb2x1dGlvbiBkdXJpbmcgY29tcGlsYXRpb24sIGVzcGVjaWFsbHkgdG8gYXZvaWQgYW55IGlzc3VlcyBkb3duIHRoZSBsaW5lLgoKU28sIEkmIzM5O20gZ29pbmcgdG8gaW5jbHVkZSBgQlJJREdFX0VCVF9ORkxPR2AsIGBCUklER0VfTkZfRUJUQUJMRVNgLCBgQlJJREdFYCwgYE5FVEZJTFRFUmAsIGFuZCBgTkVURklMVEVSX1hUQUJMRVNgLiBJIGJlbGlldmUgYEJSSURHRV9FQlRfTkZMT0dgIGlzIHRoZSBtb3N0IGNyaXRpY2FsIGRlcGVuZGVuY3kgaGVyZS4KCk5vdywganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkgbmVlZCB0byB2ZXJpZnkgdGhlIGNvZGUgcGF0aHMgYXJlIHJlYWNoYWJsZS4gU3BlY2lmaWNhbGx5LCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhhdCBgZWJ0X25mbG9nX3RnX2NoZWNrYCBpcyBhY3R1YWxseSByZWFjaGFibGUuCgpZZXMsIGNvbmZpcm1lZCwgaXQmIzM5O3MgYWNjZXNzaWJsZSB0aHJvdWdoIGBzZXRzb2Nrb3B0YCBvciBuZXRsaW5rIGNhbGxzIGZvciBlYnRhYmxlcy4gQWxzbywgSSBzZWUgdGhlIHBhdGNoIGFkZHMgYHJlcXVlc3RfbW9kdWxlKCYjMzQ7JXMmIzM0OywgJiMzNDtuZm5ldGxpbmtfbG9nJiMzNDspO2AgYW5kIGBuZl9sb2dnZXJfZmluZF9nZXRgL2BuZl9sb2dnZXJfcHV0YC4gT2theSwgVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLgoKQWxyaWdodCwgSSYjMzk7bSBjb25maWRlbnQuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJJREdFX0VCVF9ORkxPRyYjMzQ7LAogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OywKICAgICYjMzQ7QlJJREdFJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUiYjMzQ7LAogICAgJiMzNDtORVRGSUxURVJfWFRBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VidF9uZmxvZ190Z19jaGVjayYjMzQ7LAogICAgJiMzNDtlYnRfbmZsb2dfdGdfZGVzdHJveSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGRlc3RydWN0aW9uIG9mIHRoZSBlYnRfbmZsb2cgdGFyZ2V0IGluIGVidGFibGVzLCBhZGRpbmcgbW9kdWxlIGxvYWRpbmcgYW5kIGxvZ2dlciByZWZlcmVuY2UgY291bnRpbmcuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBlYnRhYmxlcyBjb25maWd1cmF0aW9uIGFuZCBhbHRlcnMgdGhlIHRhcmdldCYjMzk7cyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUklER0VfRUJUX05GTE9HJiMzNDssCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFUyYjMzQ7LAogICAgJiMzNDtCUklER0UmIzM0OywKICAgICYjMzQ7TkVURklMVEVSJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUl9YVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWJ0X25mbG9nX3RnX2NoZWNrJiMzNDssCiAgICAmIzM0O2VidF9uZmxvZ190Z19kZXN0cm95JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2YgdGhlIGVidF9uZmxvZyB0YXJnZXQgaW4gZWJ0YWJsZXMsIGFkZGluZyBtb2R1bGUgbG9hZGluZyBhbmQgbG9nZ2VyIHJlZmVyZW5jZSBjb3VudGluZy4gVGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGVidGFibGVzIGNvbmZpZ3VyYXRpb24gYW5kIGFsdGVycyB0aGUgdGFyZ2V0JiMzOTtzIGxpZmVjeWNsZSwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0NzozNC45MDk2OTc1NDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDcwNjk1NzMwMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX0VCVF9ORkxPR1wiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gICAgXCJCUklER0VcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiTkVURklMVEVSX1hUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfbmZsb2dfdGdfY2hlY2tcIixcbiAgICBcImVidF9uZmxvZ190Z19kZXN0cm95XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQncyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0NzozNC45MDk3MTcwNjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNzAyODg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDU2MWQxNGU0NTJhOWUzMTdlY2RjOTE1MzMxZDg0OTk1MjZhOWU1NzJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDI6NDc6MzQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuY1xcbmluZGV4IDYxYmY4ZjQ0NjVhYjcuLjQyNmY4YWRjOTEyYzcgMTAwNjQ0XFxuLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNcXG4rKysgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuY1xcbkBAIC00MSwxMSArNDEsMjUgQEAgZWJ0X25mbG9nX3RnKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB4dF9hY3Rpb25fcGFyYW0gKnBhcilcXG4gc3RhdGljIGludCBlYnRfbmZsb2dfdGdfY2hlY2soY29uc3Qgc3RydWN0IHh0X3RnY2hrX3BhcmFtICpwYXIpXFxuIHtcXG4gXFx0c3RydWN0IGVidF9uZmxvZ19pbmZvICppbmZvID0gcGFyLVxcdTAwM2V0YXJnaW5mbztcXG4rXFx0aW50IHJldDtcXG4gXFxuIFxcdGlmIChpbmZvLVxcdTAwM2VmbGFncyBcXHUwMDI2IH5FQlRfTkZMT0dfTUFTSylcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdGluZm8tXFx1MDAzZXByZWZpeFtFQlRfTkZMT0dfUFJFRklYX1NJWkUgLSAxXSA9ICdcXFxcMCc7XFxuLVxcdHJldHVybiAwO1xcbitcXG4rXFx0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcXG4rXFx0aWYgKHJldCAhPSAwIFxcdTAwMjZcXHUwMDI2ICFwYXItXFx1MDAzZW5mdF9jb21wYXQpIHtcXG4rXFx0XFx0cmVxdWVzdF9tb2R1bGUoXFxcIiVzXFxcIiwgXFxcIm5mbmV0bGlua19sb2dcXFwiKTtcXG4rXFxuK1xcdFxcdHJldCA9IG5mX2xvZ2dlcl9maW5kX2dldChwYXItXFx1MDAzZWZhbWlseSwgTkZfTE9HX1RZUEVfVUxPRyk7XFxuK1xcdH1cXG4rXFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIGVidF9uZmxvZ190Z19kZXN0cm95KGNvbnN0IHN0cnVjdCB4dF90Z2R0b3JfcGFyYW0gKnBhcilcXG4re1xcbitcXHRuZl9sb2dnZXJfcHV0KHBhci1cXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcXG4gfVxcbiBcXG4gc3RhdGljIHN0cnVjdCB4dF90YXJnZXQgZWJ0X25mbG9nX3RnX3JlZyBfX3JlYWRfbW9zdGx5ID0ge1xcbkBAIC01NCw2ICs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHtcXG4gXFx0LmZhbWlseSAgICAgPSBORlBST1RPX0JSSURHRSxcXG4gXFx0LnRhcmdldCAgICAgPSBlYnRfbmZsb2dfdGcsXFxuIFxcdC5jaGVja2VudHJ5ID0gZWJ0X25mbG9nX3RnX2NoZWNrLFxcbitcXHQuZGVzdHJveSAgICA9IGVidF9uZmxvZ190Z19kZXN0cm95LFxcbiBcXHQudGFyZ2V0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZWJ0X25mbG9nX2luZm8pLFxcbiBcXHQubWUgICAgICAgICA9IFRISVNfTU9EVUxFLFxcbiB9O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0NzozNS4zMjc3NTAzNjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDY2NTE1MTIzOTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX0VCVF9ORkxPR1wiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gICAgXCJCUklER0VcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiTkVURklMVEVSX1hUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfbmZsb2dfdGdfY2hlY2tcIixcbiAgICBcImVidF9uZmxvZ190Z19kZXN0cm95XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQncyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1NjFkMTRlNDUyYTllMzE3ZWNkYzkxNTMzMWQ4NDk5NTI2YTllNTcyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDI6NDc6MzQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5pbmRleCA2MWJmOGY0NDY1YWI3Li40MjZmOGFkYzkxMmM3IDEwMDY0NFxuLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNcbisrKyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5AQCAtNDEsMTEgKzQxLDI1IEBAIGVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpXG4gc3RhdGljIGludCBlYnRfbmZsb2dfdGdfY2hlY2soY29uc3Qgc3RydWN0IHh0X3RnY2hrX3BhcmFtICpwYXIpXG4ge1xuIFx0c3RydWN0IGVidF9uZmxvZ19pbmZvICppbmZvID0gcGFyLVx1MDAzZXRhcmdpbmZvO1xuK1x0aW50IHJldDtcbiBcbiBcdGlmIChpbmZvLVx1MDAzZWZsYWdzIFx1MDAyNiB+RUJUX05GTE9HX01BU0spXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFx0aW5mby1cdTAwM2VwcmVmaXhbRUJUX05GTE9HX1BSRUZJWF9TSVpFIC0gMV0gPSAnXFwwJztcbi1cdHJldHVybiAwO1xuK1xuK1x0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuK1x0aWYgKHJldCAhPSAwIFx1MDAyNlx1MDAyNiAhcGFyLVx1MDAzZW5mdF9jb21wYXQpIHtcbitcdFx0cmVxdWVzdF9tb2R1bGUoXCIlc1wiLCBcIm5mbmV0bGlua19sb2dcIik7XG4rXG4rXHRcdHJldCA9IG5mX2xvZ2dlcl9maW5kX2dldChwYXItXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcbitcdH1cbitcbitcdHJldHVybiByZXQ7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIGVidF9uZmxvZ190Z19kZXN0cm95KGNvbnN0IHN0cnVjdCB4dF90Z2R0b3JfcGFyYW0gKnBhcilcbit7XG4rXHRuZl9sb2dnZXJfcHV0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuIH1cbiBcbiBzdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XG5AQCAtNTQsNiArNjgsNyBAQCBzdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XG4gXHQuZmFtaWx5ICAgICA9IE5GUFJPVE9fQlJJREdFLFxuIFx0LnRhcmdldCAgICAgPSBlYnRfbmZsb2dfdGcsXG4gXHQuY2hlY2tlbnRyeSA9IGVidF9uZmxvZ190Z19jaGVjayxcbitcdC5kZXN0cm95ICAgID0gZWJ0X25mbG9nX3RnX2Rlc3Ryb3ksXG4gXHQudGFyZ2V0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZWJ0X25mbG9nX2luZm8pLFxuIFx0Lm1lICAgICAgICAgPSBUSElTX01PRFVMRSxcbiB9O1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDI6NDc6MzUuMzI3NzUyMzQzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODg5Nzg0ODU0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyB0aGUgZWJ0X25mbG9nIFBhdGNoKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIGZvY3VzZWQgb24gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uOyBpdCdzIG5vdCBhIGJ1ZyBmaXgsIGl0J3MgYWRkaW5nIG5ldyBiZWhhdmlvci4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaXMgaW50cm9kdWNpbmcgbW9kdWxlIHJlcXVlc3QgYW5kIGxvZ2dlciBkaXNjb3ZlcnkgaW4gdGhlIGBlYnRfbmZsb2dfdGdfY2hlY2tgIGZ1bmN0aW9uLCBhbmQgdGhlbiBlbnN1cmluZyB0aGUgbG9nZ2VyIGlzIHByb3Blcmx5IHJlbGVhc2VkIGluIGBlYnRfbmZsb2dfdGdfZGVzdHJveWAuXG5cblRoaXMgbWFrZXMgc2Vuc2UuIFdlJ3JlIGxpa2VseSBkZWFsaW5nIHdpdGggbG9nZ2luZyBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBmcmFtZXdvcmssIHByb2JhYmx5IHJlbGF0ZWQgdG8gbG9nZ2luZyBvZiBuZXR3b3JrIHRyYWZmaWMgdGhhdCB0cmF2ZXJzZXMgdGhlIGJyaWRnZS4gVGhlIGFkZGl0aW9uIG9mIHRoZSBtb2R1bGUgcmVxdWVzdCBhbmQgbG9nZ2VyIG1hbmFnZW1lbnQgc3VnZ2VzdHMgdGhhdCB0aGUgbG9nZ2luZyBtZWNoYW5pc20gbWlnaHQgYmUgZHluYW1pYywgcGVyaGFwcyBsb2FkaW5nIHRoZSBuZWNlc3NhcnkgbG9nZ2luZyBtb2R1bGUgb25seSB3aGVuIG5lZWRlZC5cblxuTm93LCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGBlYnRfbmZsb2cuY2AgZmlsZSBpdHNlbGYgdG8gdW5kZXJzdGFuZCB0aGUgZXhpc3RpbmcgY29kZSBjb250ZXh0LCBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQsIGFuZCBob3cgdGhlc2UgY2hhbmdlcyBmaXQgaW50byB0aGUgbGFyZ2VyIHBpY3R1cmUuIEknbGwgYWxzbyBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hhbmdlIGlzIHByb3Blcmx5IGludGVncmF0ZWQgd2l0aCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdmlhIHRoZSBgS2NvbmZpZ2AgZmlsZS4gSSdtIGtlZW4gdG8gZXhhbWluZSB0aGUgZGVwZW5kZW5jaWVzIGFuZCB3aGV0aGVyIHRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW55IG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgaW1wYWN0cyBleGlzdGluZyBvbmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDA1LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0Nzo0NC4yMjU2MDQ3NDRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE4NjY5NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X25mbG9nX3RnX2NoZWNrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jPTI0PWVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy00MC1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYzo0MTpzdGF0aWMgaW50IGVidF9uZmxvZ190Z19jaGVjayhjb25zdCBzdHJ1Y3QgeHRfdGdjaGtfcGFyYW0gKnBhcilcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy00Mi17XFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYz02NT1zdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy02OS1cXHQudGFyZ2V0ICAgICA9IGVidF9uZmxvZ190ZyxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYzo3MDpcXHQuY2hlY2tlbnRyeSA9IGVidF9uZmxvZ190Z19jaGVjayxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy03MS1cXHQuZGVzdHJveSAgICA9IGVidF9uZmxvZ190Z19kZXN0cm95LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0Nzo0NC4yNzc0NzcwNDNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDgyMTc2NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBDaGVjayBmb3IgYGVidF9uZmxvZy5jYCoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHN1cnJvdW5kaW5nIGBlYnRfbmZsb2cuY2AuIEkgbmVlZCB0byBlbnN1cmUgaXQncyBwcm9wZXJseSBjb25maWd1cmVkIGZvciB0aGlzIHNwZWNpZmljIGJ1aWxkLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBLY29uZmlnIGZpbGVzLCBzaW5jZSB0aGF0J3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGxpdmVzLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHNlZSB3aGF0IGZlYXR1cmVzIGVuYWJsZSBpdCwgYW5kIGNvbmZpcm0gdGhlIHJlbGV2YW50IHNldHRpbmdzLiBObyBwb2ludCBpbiBtYWtpbmcgYSB3cm9uZyB0dXJuLCB0aW1lIHRvIHN0YXJ0IGJ5IGNoZWNraW5nIEtjb25maWcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0Nzo0OC4zNTk2NTUyNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzI4OTQ2OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X25mbG9nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ3OjQ4LjQyNjk1NzcwOVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDE4ODE4MDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgS2VybmVsJ3MgTmV0d29yayBGaWx0ZXIgTWFrZWZpbGUqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYSBzcGVjaWZpYyBuZXR3b3JrIGZpbHRlcmluZyBjb21wb25lbnQgaXMgYnVpbHQgd2l0aGluIHRoZSBrZXJuZWwuIEl0IHNlZW1zIGxpa2UgYSBkZWNlbnQgc3RhcnRpbmcgcG9pbnQgbWlnaHQgYmUgdGhlIGBuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZWAuIFRoaXMgZmlsZSBpcyByZXNwb25zaWJsZSBmb3IgYnVpbGRpbmcgYSBwb3J0aW9uIG9mIHRoZSBuZXR3b3JrIGJyaWRnaW5nIGZ1bmN0aW9uYWxpdHksIGFuZCBnaXZlbiB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpdCdzIGxpa2VseSB0aGF0IGEgbmV0d29yayBmaWx0ZXIgaXMgaW5jbHVkZWQgd2l0aGluLiBJJ2xsIG5lZWQgdG8gb3BlbiB0aGF0IGZpbGUgYW5kIHNlZSB3aGF0J3MgZGVmaW5lZCBpbiB0aGVyZS4gVGhlbiBJJ2xsIGhhdmUgYSBiZXR0ZXIgcGljdHVyZSBvZiB0aGUgYnVpbGQgdGFyZ2V0cywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBIb3BlZnVsbHksIHRoaXMgZmlsZSB3aWxsIHBvaW50IG1lIGRpcmVjdGx5IHRvIHRoZSByZWxldmFudCBzb3VyY2VzIG9yIGF0IGxlYXN0IG5hcnJvdyBkb3duIHRoZSBzZWFyY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNzksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0ODozMy44NDU3Nzc2NDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDA1MTUwNzM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImVidF9uZmxvZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZT0zOT1vYmotJChDT05GSUdfQlJJREdFX0VCVF9MT0cpICs9IGVidF9sb2cub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjQwOm9iai0kKENPTkZJR19CUklER0VfRUJUX05GTE9HKSArPSBlYnRfbmZsb2cub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTQxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0ODozNC4yNTA5MzUxMjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDc2ODgwNzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OlxuXG4qKkNoZWNraW5nIGBDT05GSUdfQlJJREdFX0VCVF9ORkxPR2AgaW4gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIE15IHRyYWluIG9mIHRob3VnaHQgaXMgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgQ09ORklHX0JSSURHRV9FQlRfTkZMT0dgLiBUaGUgc3BlY2lmaWMgbG9jYXRpb24sIGBuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnYCwgaXMgdGVsbGluZy4gSSdtIGFzc3VtaW5nIHdlJ3JlIGRlYWxpbmcgd2l0aCBicmlkZ2luZyBhbmQgbmV0ZmlsdGVyIGludGVncmF0aW9uLCBhbmQgc3BlY2lmaWNhbGx5LCB0aGUgbG9nZ2luZyBjb21wb25lbnQgZm9yIEVCVEFCTEVTLiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBmbGFnIGFuZCBpdHMgaW1wbGljYXRpb25zLiBQZXJoYXBzIEknbSB0cnlpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgc29tZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gbG9nZ2luZyBicmlkZ2UgdHJhZmZpYywgb3IgSSdtIHRyb3VibGVzaG9vdGluZyBhIHByb2JsZW0gdGhhdCBtaWdodCBpbnZvbHZlIG5ldGZpbHRlciBsb2dnaW5nIHdpdGhpbiBhIGJyaWRnZWQgZW52aXJvbm1lbnQuIE1heWJlIEknbSBleGFtaW5pbmcgYSBzcGVjaWZpYyBidWlsZCBjb25maWd1cmF0aW9uIG9yIGp1c3QgcmV2aWV3aW5nIHBvdGVudGlhbCBrZXJuZWwgZmVhdHVyZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiAqZG9lcyogaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciBuZXR3b3JraW5nIHBpY3R1cmUuIElzIGl0IGVuYWJsZWQ/IFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IEFyZSB0aGVyZSBwZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9ucz8gRXNzZW50aWFsbHksIEknbSBjaGVja2luZyB0aGUga2NvbmZpZyBmaWxlIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhpcyBwYXJ0aWN1bGFyIG5ldGZpbHRlciBsb2dnaW5nIGZlYXR1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NzMsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0ODozNy43Mjc4MTkwODFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NjI5MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkJSSURHRV9FQlRfTkZMT0dcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTIzND1jb25maWcgQlJJREdFX0VCVF9MT0dcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjQyLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjQzOmNvbmZpZyBCUklER0VfRUJUX05GTE9HXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDQtXFx0dHJpc3RhdGUgXFxcImVidDogbmZsb2cgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDI6NDg6MzcuNzkyNDU3NTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjUzOTc0NzY4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKlBlZXJpbmcgaW50byB0aGUgRGVwdGhzIG9mIERlcGVuZGVuY3kqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxpbmVhZ2Ugb2YgYEJSSURHRV9FQlRfTkZMT0dgLiBXaGF0IGFyZSB0aGUgdW5kZXJseWluZyBwaWVjZXMgdGhhdCBjb250cmlidXRlIHRvIGl0cyBmdW5jdGlvbmFsaXR5PyBJIG5lZWQgdG8ga25vdyB3aGF0IGl0IHJlbGllcyBvbiwgd2hhdCBpdCBidWlsZHMgdXBvbi4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGtub3dpbmcgdGhlIGRpcmVjdCBkZXBlbmRlbmNpZXMsIGJ1dCB1bmRlcnN0YW5kaW5nIHRoZSAqd2h5KiBiZWhpbmQgdGhlbS4gSSB3YW50IHRvIGJ1aWxkIGEgY2xlYXIgbWVudGFsIG1hcCBvZiBpdHMgcGxhY2UgaW4gdGhlIGJyb2FkZXIgc3lzdGVtLCBhbmQgaWRlbnRpZnkgYW55IHBvdGVudGlhbCB3ZWFrIHBvaW50cyBvciBhcmVhcyBmb3Igb3B0aW1pemF0aW9uIGJhc2VkIG9uIHRoaXMgdW5kZXJzdGFuZGluZy4gTGV0J3Mgc2VlIHdoYXQgdGhlIGNvZGUgdGVsbHMgbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5ODMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTowMy4xODk5MzcxNjVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDMsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNDM6XFx0Y29uZmlnIEJSSURHRV9FQlRfTkZMT0dcXG4gMjQ0OlxcdFxcdHRyaXN0YXRlIFxcXCJlYnQ6IG5mbG9nIHN1cHBvcnRcXFwiXFxuIDI0NTpcXHRcXHRoZWxwXFxuIDI0NjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIG5mbG9nIHdhdGNoZXIsIHdoaWNoIGFsbG93cyB0byBMT0dcXG4gMjQ3OlxcdFxcdCAgbWVzc2FnZXMgdGhyb3VnaCB0aGUgbmV0ZmlsdGVyIGxvZ2dpbmcgQVBJLCB3aGljaCBjYW4gdXNlXFxuIDI0ODpcXHRcXHQgIGVpdGhlciB0aGUgb2xkIExPRyB0YXJnZXQsIHRoZSBvbGQgVUxPRyB0YXJnZXQgb3IgbmZuZXRsaW5rX2xvZ1xcbiAyNDk6XFx0XFx0ICBhcyBiYWNrZW5kLlxcbiAyNTA6XFx0XFxuIDI1MTpcXHRcXHQgIFRoaXMgb3B0aW9uIGFkZHMgdGhlIG5mbG9nIHdhdGNoZXIsIHRoYXQgeW91IGNhbiB1c2UgaW4gYW55IHJ1bGVcXG4gMjUyOlxcdFxcdCAgaW4gYW55IGVidGFibGVzIHRhYmxlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTowMy4xODk5OTc2NDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjc4NDUyMjAzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIEtlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGllY2Ugb2YgY29kZSwgYW5kIHdoaWxlIGl0IGRvZXNuJ3QgKmRpcmVjdGx5KiBzdGF0ZSBpdHMgZGVwZW5kZW5jaWVzLCBpdHMgbG9jYXRpb24gaW4gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBUaGF0IHNjcmVhbXMgYEJSSURHRV9ORl9FQlRBQkxFU2AgdG8gbWUuIEknbSBvcGVyYXRpbmcgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBpdCBsaWtlbHkgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBidXQsIGFzIGFsd2F5cywgbGV0J3MgdmVyaWZ5IHRoYXQgYXNzdW1wdGlvbiBiZWZvcmUgd2UgbW92ZSBvbi4gR290dGEgY2hlY2sgYW5kIG1ha2Ugc3VyZS4gTm8gcG9pbnQgaW4gbWFraW5nIGEgZm9vbCBvZiBteXNlbGYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNDQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ5OjA1Ljk3NDUyNTg5MVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIyOTE4NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00Mi0jIG9sZCBzb2Nrb3B0IGludGVyZmFjZSBhbmQgZXZhbCBsb29wXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01Mi1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiRXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTYxLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NjI6aWYgQlJJREdFX05GX0VCVEFCTEVTXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02My1cXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Njc9Y29uZmlnIEJSSURHRV9FQlRfQlJPVVRFXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02OC1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBicm91dGUgdGFibGUgc3VwcG9ydFxcXCJcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY5OlxcdGRlcGVuZHMgb24gQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNzAtXFx0aGVscFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz03OD1jb25maWcgQlJJREdFX0VCVF9UX0ZJTFRFUlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNzktXFx0dHJpc3RhdGUgXFxcImVidDogZmlsdGVyIHRhYmxlIHN1cHBvcnRcXFwiXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo4MDpcXHRkZXBlbmRzIG9uIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTgxLVxcdGhlbHBcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9ODg9Y29uZmlnIEJSSURHRV9FQlRfVF9OQVRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTg5LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IG5hdCB0YWJsZSBzdXBwb3J0XFxcIlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6OTA6XFx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy05MS1cXHRoZWxwXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTEzMj1jb25maWcgQlJJREdFX0VCVF9JUDZcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEzMy1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBJUDYgZmlsdGVyIHN1cHBvcnRcXFwiXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMzQ6XFx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVMgXFx1MDAyNlxcdTAwMjYgSVBWNlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTM1LVxcdGhlbHBcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9MTg5PWNvbmZpZyBCUklER0VfRUJUX0FSUFJFUExZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xOTAtXFx0dHJpc3RhdGUgXFxcImVidDogYXJwIHJlcGx5IHRhcmdldCBzdXBwb3J0XFxcIlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTkxOlxcdGRlcGVuZHMgb24gQlJJREdFX05GX0VCVEFCTEVTIFxcdTAwMjZcXHUwMDI2IElORVRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE5Mi1cXHRoZWxwXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTI0Mz1jb25maWcgQlJJREdFX0VCVF9ORkxPR1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNTUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoyNTY6ZW5kaWYgIyBCUklER0VfTkZfRUJUQUJMRVNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDI6NDk6MDYuMDE2ODIwNFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mzc2MjcxNzE4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBlYnRfbmZsb2cgVGFyZ2V0IGluIEVidGFibGVzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHRvIGJlc3QgYXBwcm9hY2ggZnV6emluZyB0aGUgYGVidF9uZmxvZ2AgdGFyZ2V0IHdpdGhpbiBlYnRhYmxlcywgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSByZWNlbnQgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IEkgYWJzb2x1dGVseSBuZWVkIGBCUklER0VfTkZfRUJUQUJMRVNgIGVuYWJsZWQsIGFuZCwgb2YgY291cnNlLCBgQlJJREdFX0VCVF9ORkxPR2AgaXMgZXNzZW50aWFsIGFzIHdlbGwuIFRoZSBwYXRjaCBpdHNlbGYgaXMgbW9kaWZ5aW5nIHRoZSBgZWJ0X25mbG9nX3RnX2NoZWNrYCBhbmQgYGVidF9uZmxvZ190Z19kZXN0cm95YCBmdW5jdGlvbnMuIFJpZ2h0LCB0aG9zZSBhcmUgdGhlIHRhcmdldCBjaGVjayBhbmQgZGVzdHJveSBmdW5jdGlvbnMsIHdoaWNoIGFyZSBjcml0aWNhbCBiZWNhdXNlIHRoZXkncmUgcGFydCBvZiB0aGUgYGVidF9uZmxvZ2AgdGFyZ2V0LiBBbmQgYmVjYXVzZSBlYnRhYmxlcyBhbGxvd3MgdXNlcnNwYWNlIGFjY2VzcywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyB0aGVyZS4gU28gbXkga2V5IGZvY3VzIHNob3VsZCBkZWZpbml0ZWx5IGJlIG9uIGZ1enppbmcgYGVidF9uZmxvZ190Z19jaGVja2AgYW5kIGBlYnRfbmZsb2dfdGdfZGVzdHJveWAuIFRob3NlIGFyZSB0aGUgcHJpbWUgdGFyZ2V0cy4gSeKAmXZlIGFscmVhZHkgbWFkZSBhIG5vdGUgb2YgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zOiBgQlJJREdFX05GX0VCVEFCTEVTYCBhbmQgYEJSSURHRV9FQlRfTkZMT0dgLiBcblxuSG1tLCBhbnl0aGluZyBlbHNlIHRvIGNvbnNpZGVyPyBPaCwgeWVzLCBgbmZfbG9nZ2VyX2ZpbmRfZ2V0YCBhbmQgYG5mX2xvZ2dlcl9wdXRgIGFyZSBhbHNvIGNhbGxlZCBkdXJpbmcgdGhlIHByb2Nlc3NpbmcuIEknbGwgbmVlZCB0byBrZWVwIGFuIGV5ZSBvbiB0aG9zZS4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYEJSSURHRWAgaXMgYSBwcmVyZXF1aXNpdGUgaGVyZS4gWWVzLCBgQlJJREdFX05GX0VCVEFCTEVTYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBCUklER0VgLCBzbyB0aGF0IGlzIGFsc28gaW1wb3J0YW50LiBOb3cgSSBjYW4gc3RhcnQgYnVpbGRpbmcgbXkgZnV6emluZyBzdHJhdGVneS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTMyOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTo0OS43Nzk1NDA2NzlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4MTg3NTIwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00Mi0jIG9sZCBzb2Nrb3B0IGludGVyZmFjZSBhbmQgZXZhbCBsb29wXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01Mi1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiRXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ5OjUwLjA2MTQyMjAyNVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDYyMDk4NTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRXhhbWluaW5nIGVidGFibGVzIHdpdGhpbiB0aGUgTGludXggTmV0d29ya2luZyBGcmFtZXdvcmsqKlxuXG5BbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgZWJ0YWJsZXMgc2l0dWF0aW9uIHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBjb250ZXh0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgIGZpbGUuIFNwZWNpZmljYWxseSwgSSdtIHplcm9pbmcgaW4gb24gdGhlIGBCUklER0VfTkZfRUJUQUJMRVNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBXaGF0IG90aGVyIGZlYXR1cmVzIG9yIG1vZHVsZXMgZG9lcyBpdCByZWx5IG9uPyBBcmUgdGhlcmUgYW55IHVwc3RyZWFtIGNoYW5nZXMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIG90aGVyIG5ldGZpbHRlciBtb2R1bGVzPyBUaGlzIHdpbGwgZ2l2ZSBtZSB0aGUgaW5mb3JtYXRpb24gSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGRlc2lyZWQgYmVoYXZpb3VyLiBUaGlzIHNob3VsZCBiZSB0aGUgYmVzdCBwbGFjZSB0byBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3NiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ5OjU0LjEyMzUyMzIzMloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzEyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDUzLFxuICBcIkxpbmVDb3VudFwiOiAxMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDUzOlxcdG1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXFxuICA1NDpcXHRcXHR0cmlzdGF0ZSBcXFwiRXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcXFwiXFxuICA1NTpcXHRcXHRkZXBlbmRzIG9uIEJSSURHRSBcXHUwMDI2XFx1MDAyNiBORVRGSUxURVIgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSX1hUQUJMRVNcXG4gIDU2OlxcdFxcdHNlbGVjdCBORVRGSUxURVJfRkFNSUxZX0JSSURHRVxcbiAgNTc6XFx0XFx0aGVscFxcbiAgNTg6XFx0XFx0ICBlYnRhYmxlcyBpcyBhIGdlbmVyYWwsIGV4dGVuc2libGUgZnJhbWUvcGFja2V0IGlkZW50aWZpY2F0aW9uXFxuICA1OTpcXHRcXHQgIGZyYW1ld29yay4gU2F5ICdZJyBvciAnTScgaGVyZSBpZiB5b3Ugd2FudCB0byBkbyBFdGhlcm5ldFxcbiAgNjA6XFx0XFx0ICBmaWx0ZXJpbmcvTkFUL2Jyb3V0aW5nIG9uIHRoZSBFdGhlcm5ldCBicmlkZ2UuXFxuICA2MTpcXHRcXG4gIDYyOlxcdGlmIEJSSURHRV9ORl9FQlRBQkxFU1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTo1NC4xMjM1OTIzNjFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzc3MzAwMTQ3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMgZm9yIEVCVEFCTEVTIE5GTE9HIEludGVncmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUga2VybmVsIHByb3Blcmx5IGZvciB0aGlzIGVidGFibGVzIE5GTE9HIGZ1bmN0aW9uYWxpdHkgdG8gd29yay4gSXQncyBjbGVhciB0aGF0IEkgbmVlZCBhdCBsZWFzdCBgQlJJREdFYCwgYE5FVEZJTFRFUmAsIGFuZCBgTkVURklMVEVSX1hUQUJMRVNgLiBUaGVuIHRoZXJlIGFyZSB0aGUgc3BlY2lmaWMgZWJ0YWJsZXMgb25lcy4gSW5pdGlhbGx5LCBJIHRob3VnaHQganVzdCBgQlJJREdFX0VCVF9ORkxPR2Agd291bGQgZG8gdGhlIHRyaWNrLCB3aXRoIHRoZSBidWlsZCBzeXN0ZW0gcmVzb2x2aW5nIGRlcGVuZGVuY2llcy4gQnV0LCB0aGlua2luZyBhYm91dCBzeXprYWxsZXIncyBjb25maWcgZ2VuZXJhdGlvbiwgSSByZWFsaXplIGl04oCZcyBzYWZlciB0byBiZSBleHBsaWNpdC4gSXQncyBiZXN0IHRvIGVuc3VyZSB0aGVzZSBtb2R1bGVzIGFyZSAqZGVmaW5pdGVseSogc2VsZWN0ZWQgYW5kIG5vdCByZWx5IG9uIGltcGxpY2l0IHJlc29sdXRpb24gZHVyaW5nIGNvbXBpbGF0aW9uLCBlc3BlY2lhbGx5IHRvIGF2b2lkIGFueSBpc3N1ZXMgZG93biB0aGUgbGluZS5cblxuU28sIEknbSBnb2luZyB0byBpbmNsdWRlIGBCUklER0VfRUJUX05GTE9HYCwgYEJSSURHRV9ORl9FQlRBQkxFU2AsIGBCUklER0VgLCBgTkVURklMVEVSYCwgYW5kIGBORVRGSUxURVJfWFRBQkxFU2AuIEkgYmVsaWV2ZSBgQlJJREdFX0VCVF9ORkxPR2AgaXMgdGhlIG1vc3QgY3JpdGljYWwgZGVwZW5kZW5jeSBoZXJlLlxuXG5Ob3csIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJIG5lZWQgdG8gdmVyaWZ5IHRoZSBjb2RlIHBhdGhzIGFyZSByZWFjaGFibGUuIFNwZWNpZmljYWxseSwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoYXQgYGVidF9uZmxvZ190Z19jaGVja2AgaXMgYWN0dWFsbHkgcmVhY2hhYmxlLlxuXG5ZZXMsIGNvbmZpcm1lZCwgaXQncyBhY2Nlc3NpYmxlIHRocm91Z2ggYHNldHNvY2tvcHRgIG9yIG5ldGxpbmsgY2FsbHMgZm9yIGVidGFibGVzLiBBbHNvLCBJIHNlZSB0aGUgcGF0Y2ggYWRkcyBgcmVxdWVzdF9tb2R1bGUoXCIlc1wiLCBcIm5mbmV0bGlua19sb2dcIik7YCBhbmQgYG5mX2xvZ2dlcl9maW5kX2dldGAvYG5mX2xvZ2dlcl9wdXRgLiBPa2F5LCBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDcwLCJPdXRwdXRUb2tlbnMiOjE0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjUwOjAxLjg5NjU5NzE0MVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyNjYyNTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUklER0VfRUJUX05GTE9HXCIsXG4gICAgXCJCUklER0VfTkZfRUJUQUJMRVNcIixcbiAgICBcIkJSSURHRVwiLFxuICAgIFwiTkVURklMVEVSXCIsXG4gICAgXCJORVRGSUxURVJfWFRBQkxFU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImVidF9uZmxvZ190Z19jaGVja1wiLFxuICAgIFwiZWJ0X25mbG9nX3RnX2Rlc3Ryb3lcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGRlc3RydWN0aW9uIG9mIHRoZSBlYnRfbmZsb2cgdGFyZ2V0IGluIGVidGFibGVzLCBhZGRpbmcgbW9kdWxlIGxvYWRpbmcgYW5kIGxvZ2dlciByZWZlcmVuY2UgY291bnRpbmcuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBlYnRhYmxlcyBjb25maWd1cmF0aW9uIGFuZCBhbHRlcnMgdGhlIHRhcmdldCdzIGxpZmVjeWNsZSwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX0VCVF9ORkxPR1wiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gICAgXCJCUklER0VcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiTkVURklMVEVSX1hUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfbmZsb2dfdGdfY2hlY2tcIixcbiAgICBcImVidF9uZmxvZ190Z19kZXN0cm95XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQncyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowtgvc7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-31 02:20:42 +0000 UTC FinishedAt: 2026-07-31 02:50:03 +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": "a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_EBT_NFLOG", "BRIDGE_NF_EBTABLES", "BRIDGE", "NETFILTER", "NETFILTER_XTABLES" ], "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": "a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_EBT_NFLOG", "BRIDGE_NF_EBTABLES", "BRIDGE", "NETFILTER", "NETFILTER_XTABLES" ], "series_id": "fec938cf-954e-41cb-ad78-0205cc23a808" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ebt_nflog_tg_check", "ebt_nflog_tg_destroy" ], "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+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSSURHRV9FQlRfTkZMT0cmIzM0OywKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTJiMzNDssCiAgICAmIzM0O0JSSURHRSYjMzQ7LAogICAgJiMzNDtORVRGSUxURVImIzM0OywKICAgICYjMzQ7TkVURklMVEVSX1hUQUJMRVMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlYnRfbmZsb2dfdGdfY2hlY2smIzM0OywKICAgICYjMzQ7ZWJ0X25mbG9nX3RnX2Rlc3Ryb3kmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQmIzM5O3MgbGlmZWN5Y2xlLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDU2MWQxNGU0NTJhOWUzMTdlY2RjOTE1MzMxZDg0OTk1MjZhOWU1NzJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzMSAwMjo0NzozNCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5pbmRleCA2MWJmOGY0NDY1YWI3Li40MjZmOGFkYzkxMmM3IDEwMDY0NFxuLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5AQCAtNDEsMTEgJiM0Mzs0MSwyNSBAQCBlYnRfbmZsb2dfdGcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHh0X2FjdGlvbl9wYXJhbSAqcGFyKVxuIHN0YXRpYyBpbnQgZWJ0X25mbG9nX3RnX2NoZWNrKGNvbnN0IHN0cnVjdCB4dF90Z2Noa19wYXJhbSAqcGFyKVxuIHtcbiBcdHN0cnVjdCBlYnRfbmZsb2dfaW5mbyAqaW5mbyA9IHBhci1cdTAwM2V0YXJnaW5mbztcbiYjNDM7XHRpbnQgcmV0O1xuIFxuIFx0aWYgKGluZm8tXHUwMDNlZmxhZ3MgXHUwMDI2IH5FQlRfTkZMT0dfTUFTSylcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRpbmZvLVx1MDAzZXByZWZpeFtFQlRfTkZMT0dfUFJFRklYX1NJWkUgLSAxXSA9ICYjMzk7XFwwJiMzOTs7XG4tXHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuJiM0MztcdGlmIChyZXQgIT0gMCBcdTAwMjZcdTAwMjYgIXBhci1cdTAwM2VuZnRfY29tcGF0KSB7XG4mIzQzO1x0XHRyZXF1ZXN0X21vZHVsZShcJiMzNDslc1wmIzM0OywgXCYjMzQ7bmZuZXRsaW5rX2xvZ1wmIzM0Oyk7XG4mIzQzO1xuJiM0MztcdFx0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIHZvaWQgZWJ0X25mbG9nX3RnX2Rlc3Ryb3koY29uc3Qgc3RydWN0IHh0X3RnZHRvcl9wYXJhbSAqcGFyKVxuJiM0Mzt7XG4mIzQzO1x0bmZfbG9nZ2VyX3B1dChwYXItXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcbiB9XG4gXG4gc3RhdGljIHN0cnVjdCB4dF90YXJnZXQgZWJ0X25mbG9nX3RnX3JlZyBfX3JlYWRfbW9zdGx5ID0ge1xuQEAgLTU0LDYgJiM0Mzs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHtcbiBcdC5mYW1pbHkgICAgID0gTkZQUk9UT19CUklER0UsXG4gXHQudGFyZ2V0ICAgICA9IGVidF9uZmxvZ190ZyxcbiBcdC5jaGVja2VudHJ5ID0gZWJ0X25mbG9nX3RnX2NoZWNrLFxuJiM0MztcdC5kZXN0cm95ICAgID0gZWJ0X25mbG9nX3RnX2Rlc3Ryb3ksXG4gXHQudGFyZ2V0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZWJ0X25mbG9nX2luZm8pLFxuIFx0Lm1lICAgICAgICAgPSBUSElTX01PRFVMRSxcbiB9O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUklER0VfRUJUX05GTE9HJiMzNDssCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFUyYjMzQ7LAogICAgJiMzNDtCUklER0UmIzM0OywKICAgICYjMzQ7TkVURklMVEVSJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUl9YVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWJ0X25mbG9nX3RnX2NoZWNrJiMzNDssCiAgICAmIzM0O2VidF9uZmxvZ190Z19kZXN0cm95JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2YgdGhlIGVidF9uZmxvZyB0YXJnZXQgaW4gZWJ0YWJsZXMsIGFkZGluZyBtb2R1bGUgbG9hZGluZyBhbmQgbG9nZ2VyIHJlZmVyZW5jZSBjb3VudGluZy4gVGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGVidGFibGVzIGNvbmZpZ3VyYXRpb24gYW5kIGFsdGVycyB0aGUgdGFyZ2V0JiMzOTtzIGxpZmVjeWNsZSwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1NjFkMTRlNDUyYTllMzE3ZWNkYzkxNTMzMWQ4NDk5NTI2YTllNTcyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMzEgMDI6NDc6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jCmluZGV4IDYxYmY4ZjQ0NjVhYjcuLjQyNmY4YWRjOTEyYzcgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jCkBAIC00MSwxMSAmIzQzOzQxLDI1IEBAIGVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpCiBzdGF0aWMgaW50IGVidF9uZmxvZ190Z19jaGVjayhjb25zdCBzdHJ1Y3QgeHRfdGdjaGtfcGFyYW0gKnBhcikKIHsKIAlzdHJ1Y3QgZWJ0X25mbG9nX2luZm8gKmluZm8gPSBwYXItJmd0O3RhcmdpbmZvOwomIzQzOwlpbnQgcmV0OwogCiAJaWYgKGluZm8tJmd0O2ZsYWdzICZhbXA7IH5FQlRfTkZMT0dfTUFTSykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaW5mby0mZ3Q7cHJlZml4W0VCVF9ORkxPR19QUkVGSVhfU0laRSAtIDFdID0gJiMzOTtcMCYjMzk7OwotCXJldHVybiAwOwomIzQzOwomIzQzOwlyZXQgPSBuZl9sb2dnZXJfZmluZF9nZXQocGFyLSZndDtmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpOwomIzQzOwlpZiAocmV0ICE9IDAgJmFtcDsmYW1wOyAhcGFyLSZndDtuZnRfY29tcGF0KSB7CiYjNDM7CQlyZXF1ZXN0X21vZHVsZSgmIzM0OyVzJiMzNDssICYjMzQ7bmZuZXRsaW5rX2xvZyYjMzQ7KTsKJiM0MzsKJiM0MzsJCXJldCA9IG5mX2xvZ2dlcl9maW5kX2dldChwYXItJmd0O2ZhbWlseSwgTkZfTE9HX1RZUEVfVUxPRyk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgZWJ0X25mbG9nX3RnX2Rlc3Ryb3koY29uc3Qgc3RydWN0IHh0X3RnZHRvcl9wYXJhbSAqcGFyKQomIzQzO3sKJiM0MzsJbmZfbG9nZ2VyX3B1dChwYXItJmd0O2ZhbWlseSwgTkZfTE9HX1RZUEVfVUxPRyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHsKQEAgLTU0LDYgJiM0Mzs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHsKIAkuZmFtaWx5ICAgICA9IE5GUFJPVE9fQlJJREdFLAogCS50YXJnZXQgICAgID0gZWJ0X25mbG9nX3RnLAogCS5jaGVja2VudHJ5ID0gZWJ0X25mbG9nX3RnX2NoZWNrLAomIzQzOwkuZGVzdHJveSAgICA9IGVidF9uZmxvZ190Z19kZXN0cm95LAogCS50YXJnZXRzaXplID0gc2l6ZW9mKHN0cnVjdCBlYnRfbmZsb2dfaW5mbyksCiAJLm1lICAgICAgICAgPSBUSElTX01PRFVMRSwKIH07CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIHRoZSBlYnRfbmZsb2cgUGF0Y2gqKgoKUmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgZm9jdXNlZCBvbiBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb247IGl0JiMzOTtzIG5vdCBhIGJ1ZyBmaXgsIGl0JiMzOTtzIGFkZGluZyBuZXcgYmVoYXZpb3IuIFNwZWNpZmljYWxseSwgdGhlIHBhdGNoIGlzIGludHJvZHVjaW5nIG1vZHVsZSByZXF1ZXN0IGFuZCBsb2dnZXIgZGlzY292ZXJ5IGluIHRoZSBgZWJ0X25mbG9nX3RnX2NoZWNrYCBmdW5jdGlvbiwgYW5kIHRoZW4gZW5zdXJpbmcgdGhlIGxvZ2dlciBpcyBwcm9wZXJseSByZWxlYXNlZCBpbiBgZWJ0X25mbG9nX3RnX2Rlc3Ryb3lgLgoKVGhpcyBtYWtlcyBzZW5zZS4gV2UmIzM5O3JlIGxpa2VseSBkZWFsaW5nIHdpdGggbG9nZ2luZyBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBmcmFtZXdvcmssIHByb2JhYmx5IHJlbGF0ZWQgdG8gbG9nZ2luZyBvZiBuZXR3b3JrIHRyYWZmaWMgdGhhdCB0cmF2ZXJzZXMgdGhlIGJyaWRnZS4gVGhlIGFkZGl0aW9uIG9mIHRoZSBtb2R1bGUgcmVxdWVzdCBhbmQgbG9nZ2VyIG1hbmFnZW1lbnQgc3VnZ2VzdHMgdGhhdCB0aGUgbG9nZ2luZyBtZWNoYW5pc20gbWlnaHQgYmUgZHluYW1pYywgcGVyaGFwcyBsb2FkaW5nIHRoZSBuZWNlc3NhcnkgbG9nZ2luZyBtb2R1bGUgb25seSB3aGVuIG5lZWRlZC4KCk5vdywgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBgZWJ0X25mbG9nLmNgIGZpbGUgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGV4aXN0aW5nIGNvZGUgY29udGV4dCwgaG93IHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IGltcGxlbWVudGVkLCBhbmQgaG93IHRoZXNlIGNoYW5nZXMgZml0IGludG8gdGhlIGxhcmdlciBwaWN0dXJlLiBJJiMzOTtsbCBhbHNvIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBjaGFuZ2UgaXMgcHJvcGVybHkgaW50ZWdyYXRlZCB3aXRoIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiB2aWEgdGhlIGBLY29uZmlnYCBmaWxlLiBJJiMzOTttIGtlZW4gdG8gZXhhbWluZSB0aGUgZGVwZW5kZW5jaWVzIGFuZCB3aGV0aGVyIHRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW55IG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgaW1wYWN0cyBleGlzdGluZyBvbmVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2VidF9uZmxvZ190Z19jaGVjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jPTI0PWVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmMtNDAtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYzo0MTpzdGF0aWMgaW50IGVidF9uZmxvZ190Z19jaGVjayhjb25zdCBzdHJ1Y3QgeHRfdGdjaGtfcGFyYW0gKnBhcilcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jLTQyLXtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYz02NT1zdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmMtNjktXHQudGFyZ2V0ICAgICA9IGVidF9uZmxvZ190Zyxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jOjcwOlx0LmNoZWNrZW50cnkgPSBlYnRfbmZsb2dfdGdfY2hlY2ssXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy03MS1cdC5kZXN0cm95ICAgID0gZWJ0X25mbG9nX3RnX2Rlc3Ryb3ksXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA4MgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIENoZWNrIGZvciBgZWJ0X25mbG9nLmNgKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdXJyb3VuZGluZyBgZWJ0X25mbG9nLmNgLiBJIG5lZWQgdG8gZW5zdXJlIGl0JiMzOTtzIHByb3Blcmx5IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc3BlY2lmaWMgYnVpbGQuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIEtjb25maWcgZmlsZXMsIHNpbmNlIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGxpdmVzLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHNlZSB3aGF0IGZlYXR1cmVzIGVuYWJsZSBpdCwgYW5kIGNvbmZpcm0gdGhlIHJlbGV2YW50IHNldHRpbmdzLiBObyBwb2ludCBpbiBtYWtpbmcgYSB3cm9uZyB0dXJuLCB0aW1lIHRvIHN0YXJ0IGJ5IGNoZWNraW5nIEtjb25maWcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYnRfbmZsb2cmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjc5CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIEtlcm5lbCYjMzk7cyBOZXR3b3JrIEZpbHRlciBNYWtlZmlsZSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoZXJlIGEgc3BlY2lmaWMgbmV0d29yayBmaWx0ZXJpbmcgY29tcG9uZW50IGlzIGJ1aWx0IHdpdGhpbiB0aGUga2VybmVsLiBJdCBzZWVtcyBsaWtlIGEgZGVjZW50IHN0YXJ0aW5nIHBvaW50IG1pZ2h0IGJlIHRoZSBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGVgLiBUaGlzIGZpbGUgaXMgcmVzcG9uc2libGUgZm9yIGJ1aWxkaW5nIGEgcG9ydGlvbiBvZiB0aGUgbmV0d29yayBicmlkZ2luZyBmdW5jdGlvbmFsaXR5LCBhbmQgZ2l2ZW4gdGhlIG5hbWUgb2YgdGhlIGZpbGUgaXQmIzM5O3MgbGlrZWx5IHRoYXQgYSBuZXR3b3JrIGZpbHRlciBpcyBpbmNsdWRlZCB3aXRoaW4uIEkmIzM5O2xsIG5lZWQgdG8gb3BlbiB0aGF0IGZpbGUgYW5kIHNlZSB3aGF0JiMzOTtzIGRlZmluZWQgaW4gdGhlcmUuIFRoZW4gSSYjMzk7bGwgaGF2ZSBhIGJldHRlciBwaWN0dXJlIG9mIHRoZSBidWlsZCB0YXJnZXRzLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIEhvcGVmdWxseSwgdGhpcyBmaWxlIHdpbGwgcG9pbnQgbWUgZGlyZWN0bHkgdG8gdGhlIHJlbGV2YW50IHNvdXJjZXMgb3IgYXQgbGVhc3QgbmFycm93IGRvd24gdGhlIHNlYXJjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYnRfbmZsb2cmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZT0zOT1vYmotJChDT05GSUdfQlJJREdFX0VCVF9MT0cpICYjNDM7PSBlYnRfbG9nLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjQwOm9iai0kKENPTkZJR19CUklER0VfRUJUX05GTE9HKSAmIzQzOz0gZWJ0X25mbG9nLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTQxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NzMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkNoZWNraW5nIGBDT05GSUdfQlJJREdFX0VCVF9ORkxPR2AgaW4gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gTXkgdHJhaW4gb2YgdGhvdWdodCBpcyB0byB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGBDT05GSUdfQlJJREdFX0VCVF9ORkxPR2AuIFRoZSBzcGVjaWZpYyBsb2NhdGlvbiwgYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgLCBpcyB0ZWxsaW5nLiBJJiMzOTttIGFzc3VtaW5nIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYnJpZGdpbmcgYW5kIG5ldGZpbHRlciBpbnRlZ3JhdGlvbiwgYW5kIHNwZWNpZmljYWxseSwgdGhlIGxvZ2dpbmcgY29tcG9uZW50IGZvciBFQlRBQkxFUy4gSSBuZWVkIHRvIHF1aWNrbHkgYXNjZXJ0YWluIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgZmxhZyBhbmQgaXRzIGltcGxpY2F0aW9ucy4gUGVyaGFwcyBJJiMzOTttIHRyeWluZyB0byBlbmFibGUgb3IgZGlzYWJsZSBzb21lIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBsb2dnaW5nIGJyaWRnZSB0cmFmZmljLCBvciBJJiMzOTttIHRyb3VibGVzaG9vdGluZyBhIHByb2JsZW0gdGhhdCBtaWdodCBpbnZvbHZlIG5ldGZpbHRlciBsb2dnaW5nIHdpdGhpbiBhIGJyaWRnZWQgZW52aXJvbm1lbnQuIE1heWJlIEkmIzM5O20gZXhhbWluaW5nIGEgc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbiBvciBqdXN0IHJldmlld2luZyBwb3RlbnRpYWwga2VybmVsIGZlYXR1cmVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24gKmRvZXMqIGluIHRoZSBjb250ZXh0IG9mIHRoZSBsYXJnZXIgbmV0d29ya2luZyBwaWN0dXJlLiBJcyBpdCBlbmFibGVkPyBXaGF0IGFyZSB0aGUgZGVwZW5kZW5jaWVzPyBBcmUgdGhlcmUgcGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM/IEVzc2VudGlhbGx5LCBJJiMzOTttIGNoZWNraW5nIHRoZSBrY29uZmlnIGZpbGUgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGlzIHBhcnRpY3VsYXIgbmV0ZmlsdGVyIGxvZ2dpbmcgZmVhdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7QlJJREdFX0VCVF9ORkxPRyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yMzQ9Y29uZmlnIEJSSURHRV9FQlRfTE9HXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjI0Mzpjb25maWcgQlJJREdFX0VCVF9ORkxPR1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDQtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IG5mbG9nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk4MwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKlBlZXJpbmcgaW50byB0aGUgRGVwdGhzIG9mIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsaW5lYWdlIG9mIGBCUklER0VfRUJUX05GTE9HYC4gV2hhdCBhcmUgdGhlIHVuZGVybHlpbmcgcGllY2VzIHRoYXQgY29udHJpYnV0ZSB0byBpdHMgZnVuY3Rpb25hbGl0eT8gSSBuZWVkIHRvIGtub3cgd2hhdCBpdCByZWxpZXMgb24sIHdoYXQgaXQgYnVpbGRzIHVwb24uIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQga25vd2luZyB0aGUgZGlyZWN0IGRlcGVuZGVuY2llcywgYnV0IHVuZGVyc3RhbmRpbmcgdGhlICp3aHkqIGJlaGluZCB0aGVtLiBJIHdhbnQgdG8gYnVpbGQgYSBjbGVhciBtZW50YWwgbWFwIG9mIGl0cyBwbGFjZSBpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIGFuZCBpZGVudGlmeSBhbnkgcG90ZW50aWFsIHdlYWsgcG9pbnRzIG9yIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gYmFzZWQgb24gdGhpcyB1bmRlcnN0YW5kaW5nLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlIGNvZGUgdGVsbHMgbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0MywKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjQzOlx0Y29uZmlnIEJSSURHRV9FQlRfTkZMT0dcbiAyNDQ6XHRcdHRyaXN0YXRlIFwmIzM0O2VidDogbmZsb2cgc3VwcG9ydFwmIzM0O1xuIDI0NTpcdFx0aGVscFxuIDI0NjpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBuZmxvZyB3YXRjaGVyLCB3aGljaCBhbGxvd3MgdG8gTE9HXG4gMjQ3Olx0XHQgIG1lc3NhZ2VzIHRocm91Z2ggdGhlIG5ldGZpbHRlciBsb2dnaW5nIEFQSSwgd2hpY2ggY2FuIHVzZVxuIDI0ODpcdFx0ICBlaXRoZXIgdGhlIG9sZCBMT0cgdGFyZ2V0LCB0aGUgb2xkIFVMT0cgdGFyZ2V0IG9yIG5mbmV0bGlua19sb2dcbiAyNDk6XHRcdCAgYXMgYmFja2VuZC5cbiAyNTA6XHRcbiAyNTE6XHRcdCAgVGhpcyBvcHRpb24gYWRkcyB0aGUgbmZsb2cgd2F0Y2hlciwgdGhhdCB5b3UgY2FuIHVzZSBpbiBhbnkgcnVsZVxuIDI1MjpcdFx0ICBpbiBhbnkgZWJ0YWJsZXMgdGFibGUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNDQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBpZWNlIG9mIGNvZGUsIGFuZCB3aGlsZSBpdCBkb2VzbiYjMzk7dCAqZGlyZWN0bHkqIHN0YXRlIGl0cyBkZXBlbmRlbmNpZXMsIGl0cyBsb2NhdGlvbiBpbiBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ2AgaXMgYSBwcmV0dHkgYmlnIGNsdWUuIFRoYXQgc2NyZWFtcyBgQlJJREdFX05GX0VCVEFCTEVTYCB0byBtZS4gSSYjMzk7bSBvcGVyYXRpbmcgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBpdCBsaWtlbHkgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBidXQsIGFzIGFsd2F5cywgbGV0JiMzOTtzIHZlcmlmeSB0aGF0IGFzc3VtcHRpb24gYmVmb3JlIHdlIG1vdmUgb24uIEdvdHRhIGNoZWNrIGFuZCBtYWtlIHN1cmUuIE5vIHBvaW50IGluIG1ha2luZyBhIGZvb2wgb2YgbXlzZWxmLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Mjg9Y29uZmlnIE5GX0NPTk5UUkFDS19CUklER0Vcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3Bcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NDM6Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgRUJUQUJMRVMgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNTItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7RXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTYxLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo2MjppZiBCUklER0VfTkZfRUJUQUJMRVNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNjMtXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz02Nz1jb25maWcgQlJJREdFX0VCVF9CUk9VVEVcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNjgtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGJyb3V0ZSB0YWJsZSBzdXBwb3J0XCYjMzQ7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY5Olx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTcwLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Nzg9Y29uZmlnIEJSSURHRV9FQlRfVF9GSUxURVJcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNzktXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGZpbHRlciB0YWJsZSBzdXBwb3J0XCYjMzQ7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjgwOlx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTgxLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9ODg9Y29uZmlnIEJSSURHRV9FQlRfVF9OQVRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctODktXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IG5hdCB0YWJsZSBzdXBwb3J0XCYjMzQ7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjkwOlx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTkxLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9MTMyPWNvbmZpZyBCUklER0VfRUJUX0lQNlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMzMtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IElQNiBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMzQ6XHRkZXBlbmRzIG9uIEJSSURHRV9ORl9FQlRBQkxFUyBcdTAwMjZcdTAwMjYgSVBWNlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMzUtXHRoZWxwXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0xODk9Y29uZmlnIEJSSURHRV9FQlRfQVJQUkVQTFlcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTkwLVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBhcnAgcmVwbHkgdGFyZ2V0IHN1cHBvcnRcJiMzNDtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTkxOlx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVMgXHUwMDI2XHUwMDI2IElORVRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTkyLVx0aGVscFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9MjQzPWNvbmZpZyBCUklER0VfRUJUX05GTE9HXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNTUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjI1NjplbmRpZiAjIEJSSURHRV9ORl9FQlRBQkxFU1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzI5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIGVidF9uZmxvZyBUYXJnZXQgaW4gRWJ0YWJsZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGhvdyB0byBiZXN0IGFwcHJvYWNoIGZ1enppbmcgdGhlIGBlYnRfbmZsb2dgIHRhcmdldCB3aXRoaW4gZWJ0YWJsZXMsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiB0aGUgcmVjZW50IHBhdGNoLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBJIGFic29sdXRlbHkgbmVlZCBgQlJJREdFX05GX0VCVEFCTEVTYCBlbmFibGVkLCBhbmQsIG9mIGNvdXJzZSwgYEJSSURHRV9FQlRfTkZMT0dgIGlzIGVzc2VudGlhbCBhcyB3ZWxsLiBUaGUgcGF0Y2ggaXRzZWxmIGlzIG1vZGlmeWluZyB0aGUgYGVidF9uZmxvZ190Z19jaGVja2AgYW5kIGBlYnRfbmZsb2dfdGdfZGVzdHJveWAgZnVuY3Rpb25zLiBSaWdodCwgdGhvc2UgYXJlIHRoZSB0YXJnZXQgY2hlY2sgYW5kIGRlc3Ryb3kgZnVuY3Rpb25zLCB3aGljaCBhcmUgY3JpdGljYWwgYmVjYXVzZSB0aGV5JiMzOTtyZSBwYXJ0IG9mIHRoZSBgZWJ0X25mbG9nYCB0YXJnZXQuIEFuZCBiZWNhdXNlIGVidGFibGVzIGFsbG93cyB1c2Vyc3BhY2UgYWNjZXNzLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIHRoZXJlLiBTbyBteSBrZXkgZm9jdXMgc2hvdWxkIGRlZmluaXRlbHkgYmUgb24gZnV6emluZyBgZWJ0X25mbG9nX3RnX2NoZWNrYCBhbmQgYGVidF9uZmxvZ190Z19kZXN0cm95YC4gVGhvc2UgYXJlIHRoZSBwcmltZSB0YXJnZXRzLiBJ4oCZdmUgYWxyZWFkeSBtYWRlIGEgbm90ZSBvZiB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbnM6IGBCUklER0VfTkZfRUJUQUJMRVNgIGFuZCBgQlJJREdFX0VCVF9ORkxPR2AuIAoKSG1tLCBhbnl0aGluZyBlbHNlIHRvIGNvbnNpZGVyPyBPaCwgeWVzLCBgbmZfbG9nZ2VyX2ZpbmRfZ2V0YCBhbmQgYG5mX2xvZ2dlcl9wdXRgIGFyZSBhbHNvIGNhbGxlZCBkdXJpbmcgdGhlIHByb2Nlc3NpbmcuIEkmIzM5O2xsIG5lZWQgdG8ga2VlcCBhbiBleWUgb24gdGhvc2UuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBCUklER0VgIGlzIGEgcHJlcmVxdWlzaXRlIGhlcmUuIFllcywgYEJSSURHRV9ORl9FQlRBQkxFU2AgaGFzIGEgZGVwZW5kZW5jeSBvbiBgQlJJREdFYCwgc28gdGhhdCBpcyBhbHNvIGltcG9ydGFudC4gTm93IEkgY2FuIHN0YXJ0IGJ1aWxkaW5nIG15IGZ1enppbmcgc3RyYXRlZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUklER0VfTkZfRUJUQUJMRVMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Mjg9Y29uZmlnIE5GX0NPTk5UUkFDS19CUklER0Vcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3Bcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NDM6Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgRUJUQUJMRVMgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNTItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7RXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA3NgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipFeGFtaW5pbmcgZWJ0YWJsZXMgd2l0aGluIHRoZSBMaW51eCBOZXR3b3JraW5nIEZyYW1ld29yayoqCgpBbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgZWJ0YWJsZXMgc2l0dWF0aW9uIHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBjb250ZXh0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgIGZpbGUuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB6ZXJvaW5nIGluIG9uIHRoZSBgQlJJREdFX05GX0VCVEFCTEVTYCBjb25maWd1cmF0aW9uIG9wdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcy4gV2hhdCBvdGhlciBmZWF0dXJlcyBvciBtb2R1bGVzIGRvZXMgaXQgcmVseSBvbj8gQXJlIHRoZXJlIGFueSB1cHN0cmVhbSBjaGFuZ2VzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHRoZXJlIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBuZXRmaWx0ZXIgbW9kdWxlcz8gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGluZm9ybWF0aW9uIEkgbmVlZCB0byBjb25maXJtIHRoZSBkZXNpcmVkIGJlaGF2aW91ci4gVGhpcyBzaG91bGQgYmUgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUzLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTM6XHRtZW51Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU1xuICA1NDpcdFx0dHJpc3RhdGUgXCYjMzQ7RXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcJiMzNDtcbiAgNTU6XHRcdGRlcGVuZHMgb24gQlJJREdFIFx1MDAyNlx1MDAyNiBORVRGSUxURVIgXHUwMDI2XHUwMDI2IE5FVEZJTFRFUl9YVEFCTEVTXG4gIDU2Olx0XHRzZWxlY3QgTkVURklMVEVSX0ZBTUlMWV9CUklER0VcbiAgNTc6XHRcdGhlbHBcbiAgNTg6XHRcdCAgZWJ0YWJsZXMgaXMgYSBnZW5lcmFsLCBleHRlbnNpYmxlIGZyYW1lL3BhY2tldCBpZGVudGlmaWNhdGlvblxuICA1OTpcdFx0ICBmcmFtZXdvcmsuIFNheSAmIzM5O1kmIzM5OyBvciAmIzM5O00mIzM5OyBoZXJlIGlmIHlvdSB3YW50IHRvIGRvIEV0aGVybmV0XG4gIDYwOlx0XHQgIGZpbHRlcmluZy9OQVQvYnJvdXRpbmcgb24gdGhlIEV0aGVybmV0IGJyaWRnZS5cbiAgNjE6XHRcbiAgNjI6XHRpZiBCUklER0VfTkZfRUJUQUJMRVNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQ3MAoJCQkJCQkJb3V0cHV0OiAxNDQKCQkJCQkJCXRob3VnaHRzOiAyNTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzIGZvciBFQlRBQkxFUyBORkxPRyBJbnRlZ3JhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gY29uZmlndXJlIHRoZSBrZXJuZWwgcHJvcGVybHkgZm9yIHRoaXMgZWJ0YWJsZXMgTkZMT0cgZnVuY3Rpb25hbGl0eSB0byB3b3JrLiBJdCYjMzk7cyBjbGVhciB0aGF0IEkgbmVlZCBhdCBsZWFzdCBgQlJJREdFYCwgYE5FVEZJTFRFUmAsIGFuZCBgTkVURklMVEVSX1hUQUJMRVNgLiBUaGVuIHRoZXJlIGFyZSB0aGUgc3BlY2lmaWMgZWJ0YWJsZXMgb25lcy4gSW5pdGlhbGx5LCBJIHRob3VnaHQganVzdCBgQlJJREdFX0VCVF9ORkxPR2Agd291bGQgZG8gdGhlIHRyaWNrLCB3aXRoIHRoZSBidWlsZCBzeXN0ZW0gcmVzb2x2aW5nIGRlcGVuZGVuY2llcy4gQnV0LCB0aGlua2luZyBhYm91dCBzeXprYWxsZXImIzM5O3MgY29uZmlnIGdlbmVyYXRpb24sIEkgcmVhbGl6ZSBpdOKAmXMgc2FmZXIgdG8gYmUgZXhwbGljaXQuIEl0JiMzOTtzIGJlc3QgdG8gZW5zdXJlIHRoZXNlIG1vZHVsZXMgYXJlICpkZWZpbml0ZWx5KiBzZWxlY3RlZCBhbmQgbm90IHJlbHkgb24gaW1wbGljaXQgcmVzb2x1dGlvbiBkdXJpbmcgY29tcGlsYXRpb24sIGVzcGVjaWFsbHkgdG8gYXZvaWQgYW55IGlzc3VlcyBkb3duIHRoZSBsaW5lLgoKU28sIEkmIzM5O20gZ29pbmcgdG8gaW5jbHVkZSBgQlJJREdFX0VCVF9ORkxPR2AsIGBCUklER0VfTkZfRUJUQUJMRVNgLCBgQlJJREdFYCwgYE5FVEZJTFRFUmAsIGFuZCBgTkVURklMVEVSX1hUQUJMRVNgLiBJIGJlbGlldmUgYEJSSURHRV9FQlRfTkZMT0dgIGlzIHRoZSBtb3N0IGNyaXRpY2FsIGRlcGVuZGVuY3kgaGVyZS4KCk5vdywganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkgbmVlZCB0byB2ZXJpZnkgdGhlIGNvZGUgcGF0aHMgYXJlIHJlYWNoYWJsZS4gU3BlY2lmaWNhbGx5LCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhhdCBgZWJ0X25mbG9nX3RnX2NoZWNrYCBpcyBhY3R1YWxseSByZWFjaGFibGUuCgpZZXMsIGNvbmZpcm1lZCwgaXQmIzM5O3MgYWNjZXNzaWJsZSB0aHJvdWdoIGBzZXRzb2Nrb3B0YCBvciBuZXRsaW5rIGNhbGxzIGZvciBlYnRhYmxlcy4gQWxzbywgSSBzZWUgdGhlIHBhdGNoIGFkZHMgYHJlcXVlc3RfbW9kdWxlKCYjMzQ7JXMmIzM0OywgJiMzNDtuZm5ldGxpbmtfbG9nJiMzNDspO2AgYW5kIGBuZl9sb2dnZXJfZmluZF9nZXRgL2BuZl9sb2dnZXJfcHV0YC4gT2theSwgVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLgoKQWxyaWdodCwgSSYjMzk7bSBjb25maWRlbnQuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMjo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJJREdFX0VCVF9ORkxPRyYjMzQ7LAogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OywKICAgICYjMzQ7QlJJREdFJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUiYjMzQ7LAogICAgJiMzNDtORVRGSUxURVJfWFRBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VidF9uZmxvZ190Z19jaGVjayYjMzQ7LAogICAgJiMzNDtlYnRfbmZsb2dfdGdfZGVzdHJveSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGRlc3RydWN0aW9uIG9mIHRoZSBlYnRfbmZsb2cgdGFyZ2V0IGluIGVidGFibGVzLCBhZGRpbmcgbW9kdWxlIGxvYWRpbmcgYW5kIGxvZ2dlciByZWZlcmVuY2UgY291bnRpbmcuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBlYnRhYmxlcyBjb25maWd1cmF0aW9uIGFuZCBhbHRlcnMgdGhlIHRhcmdldCYjMzk7cyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUklER0VfRUJUX05GTE9HJiMzNDssCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFUyYjMzQ7LAogICAgJiMzNDtCUklER0UmIzM0OywKICAgICYjMzQ7TkVURklMVEVSJiMzNDssCiAgICAmIzM0O05FVEZJTFRFUl9YVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWJ0X25mbG9nX3RnX2NoZWNrJiMzNDssCiAgICAmIzM0O2VidF9uZmxvZ190Z19kZXN0cm95JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gb2YgdGhlIGVidF9uZmxvZyB0YXJnZXQgaW4gZWJ0YWJsZXMsIGFkZGluZyBtb2R1bGUgbG9hZGluZyBhbmQgbG9nZ2VyIHJlZmVyZW5jZSBjb3VudGluZy4gVGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGVidGFibGVzIGNvbmZpZ3VyYXRpb24gYW5kIGFsdGVycyB0aGUgdGFyZ2V0JiMzOTtzIGxpZmVjeWNsZSwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0NzozNC45MDk2OTc1NDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDcwNjk1NzMwMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX0VCVF9ORkxPR1wiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gICAgXCJCUklER0VcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiTkVURklMVEVSX1hUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfbmZsb2dfdGdfY2hlY2tcIixcbiAgICBcImVidF9uZmxvZ190Z19kZXN0cm95XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQncyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0NzozNC45MDk3MTcwNjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNzAyODg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDU2MWQxNGU0NTJhOWUzMTdlY2RjOTE1MzMxZDg0OTk1MjZhOWU1NzJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDI6NDc6MzQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuY1xcbmluZGV4IDYxYmY4ZjQ0NjVhYjcuLjQyNmY4YWRjOTEyYzcgMTAwNjQ0XFxuLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNcXG4rKysgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuY1xcbkBAIC00MSwxMSArNDEsMjUgQEAgZWJ0X25mbG9nX3RnKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB4dF9hY3Rpb25fcGFyYW0gKnBhcilcXG4gc3RhdGljIGludCBlYnRfbmZsb2dfdGdfY2hlY2soY29uc3Qgc3RydWN0IHh0X3RnY2hrX3BhcmFtICpwYXIpXFxuIHtcXG4gXFx0c3RydWN0IGVidF9uZmxvZ19pbmZvICppbmZvID0gcGFyLVxcdTAwM2V0YXJnaW5mbztcXG4rXFx0aW50IHJldDtcXG4gXFxuIFxcdGlmIChpbmZvLVxcdTAwM2VmbGFncyBcXHUwMDI2IH5FQlRfTkZMT0dfTUFTSylcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdGluZm8tXFx1MDAzZXByZWZpeFtFQlRfTkZMT0dfUFJFRklYX1NJWkUgLSAxXSA9ICdcXFxcMCc7XFxuLVxcdHJldHVybiAwO1xcbitcXG4rXFx0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcXG4rXFx0aWYgKHJldCAhPSAwIFxcdTAwMjZcXHUwMDI2ICFwYXItXFx1MDAzZW5mdF9jb21wYXQpIHtcXG4rXFx0XFx0cmVxdWVzdF9tb2R1bGUoXFxcIiVzXFxcIiwgXFxcIm5mbmV0bGlua19sb2dcXFwiKTtcXG4rXFxuK1xcdFxcdHJldCA9IG5mX2xvZ2dlcl9maW5kX2dldChwYXItXFx1MDAzZWZhbWlseSwgTkZfTE9HX1RZUEVfVUxPRyk7XFxuK1xcdH1cXG4rXFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIGVidF9uZmxvZ190Z19kZXN0cm95KGNvbnN0IHN0cnVjdCB4dF90Z2R0b3JfcGFyYW0gKnBhcilcXG4re1xcbitcXHRuZl9sb2dnZXJfcHV0KHBhci1cXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcXG4gfVxcbiBcXG4gc3RhdGljIHN0cnVjdCB4dF90YXJnZXQgZWJ0X25mbG9nX3RnX3JlZyBfX3JlYWRfbW9zdGx5ID0ge1xcbkBAIC01NCw2ICs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHRfdGFyZ2V0IGVidF9uZmxvZ190Z19yZWcgX19yZWFkX21vc3RseSA9IHtcXG4gXFx0LmZhbWlseSAgICAgPSBORlBST1RPX0JSSURHRSxcXG4gXFx0LnRhcmdldCAgICAgPSBlYnRfbmZsb2dfdGcsXFxuIFxcdC5jaGVja2VudHJ5ID0gZWJ0X25mbG9nX3RnX2NoZWNrLFxcbitcXHQuZGVzdHJveSAgICA9IGVidF9uZmxvZ190Z19kZXN0cm95LFxcbiBcXHQudGFyZ2V0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZWJ0X25mbG9nX2luZm8pLFxcbiBcXHQubWUgICAgICAgICA9IFRISVNfTU9EVUxFLFxcbiB9O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0NzozNS4zMjc3NTAzNjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDY2NTE1MTIzOTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX0VCVF9ORkxPR1wiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gICAgXCJCUklER0VcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiTkVURklMVEVSX1hUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfbmZsb2dfdGdfY2hlY2tcIixcbiAgICBcImVidF9uZmxvZ190Z19kZXN0cm95XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQncyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1NjFkMTRlNDUyYTllMzE3ZWNkYzkxNTMzMWQ4NDk5NTI2YTllNTcyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDI6NDc6MzQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5pbmRleCA2MWJmOGY0NDY1YWI3Li40MjZmOGFkYzkxMmM3IDEwMDY0NFxuLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0X25mbG9nLmNcbisrKyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXG5AQCAtNDEsMTEgKzQxLDI1IEBAIGVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpXG4gc3RhdGljIGludCBlYnRfbmZsb2dfdGdfY2hlY2soY29uc3Qgc3RydWN0IHh0X3RnY2hrX3BhcmFtICpwYXIpXG4ge1xuIFx0c3RydWN0IGVidF9uZmxvZ19pbmZvICppbmZvID0gcGFyLVx1MDAzZXRhcmdpbmZvO1xuK1x0aW50IHJldDtcbiBcbiBcdGlmIChpbmZvLVx1MDAzZWZsYWdzIFx1MDAyNiB+RUJUX05GTE9HX01BU0spXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFx0aW5mby1cdTAwM2VwcmVmaXhbRUJUX05GTE9HX1BSRUZJWF9TSVpFIC0gMV0gPSAnXFwwJztcbi1cdHJldHVybiAwO1xuK1xuK1x0cmV0ID0gbmZfbG9nZ2VyX2ZpbmRfZ2V0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuK1x0aWYgKHJldCAhPSAwIFx1MDAyNlx1MDAyNiAhcGFyLVx1MDAzZW5mdF9jb21wYXQpIHtcbitcdFx0cmVxdWVzdF9tb2R1bGUoXCIlc1wiLCBcIm5mbmV0bGlua19sb2dcIik7XG4rXG4rXHRcdHJldCA9IG5mX2xvZ2dlcl9maW5kX2dldChwYXItXHUwMDNlZmFtaWx5LCBORl9MT0dfVFlQRV9VTE9HKTtcbitcdH1cbitcbitcdHJldHVybiByZXQ7XG4rfVxuK1xuK3N0YXRpYyB2b2lkIGVidF9uZmxvZ190Z19kZXN0cm95KGNvbnN0IHN0cnVjdCB4dF90Z2R0b3JfcGFyYW0gKnBhcilcbit7XG4rXHRuZl9sb2dnZXJfcHV0KHBhci1cdTAwM2VmYW1pbHksIE5GX0xPR19UWVBFX1VMT0cpO1xuIH1cbiBcbiBzdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XG5AQCAtNTQsNiArNjgsNyBAQCBzdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XG4gXHQuZmFtaWx5ICAgICA9IE5GUFJPVE9fQlJJREdFLFxuIFx0LnRhcmdldCAgICAgPSBlYnRfbmZsb2dfdGcsXG4gXHQuY2hlY2tlbnRyeSA9IGVidF9uZmxvZ190Z19jaGVjayxcbitcdC5kZXN0cm95ICAgID0gZWJ0X25mbG9nX3RnX2Rlc3Ryb3ksXG4gXHQudGFyZ2V0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZWJ0X25mbG9nX2luZm8pLFxuIFx0Lm1lICAgICAgICAgPSBUSElTX01PRFVMRSxcbiB9O1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDI6NDc6MzUuMzI3NzUyMzQzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODg5Nzg0ODU0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyB0aGUgZWJ0X25mbG9nIFBhdGNoKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIGZvY3VzZWQgb24gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uOyBpdCdzIG5vdCBhIGJ1ZyBmaXgsIGl0J3MgYWRkaW5nIG5ldyBiZWhhdmlvci4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaXMgaW50cm9kdWNpbmcgbW9kdWxlIHJlcXVlc3QgYW5kIGxvZ2dlciBkaXNjb3ZlcnkgaW4gdGhlIGBlYnRfbmZsb2dfdGdfY2hlY2tgIGZ1bmN0aW9uLCBhbmQgdGhlbiBlbnN1cmluZyB0aGUgbG9nZ2VyIGlzIHByb3Blcmx5IHJlbGVhc2VkIGluIGBlYnRfbmZsb2dfdGdfZGVzdHJveWAuXG5cblRoaXMgbWFrZXMgc2Vuc2UuIFdlJ3JlIGxpa2VseSBkZWFsaW5nIHdpdGggbG9nZ2luZyBmdW5jdGlvbmFsaXR5IHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBmcmFtZXdvcmssIHByb2JhYmx5IHJlbGF0ZWQgdG8gbG9nZ2luZyBvZiBuZXR3b3JrIHRyYWZmaWMgdGhhdCB0cmF2ZXJzZXMgdGhlIGJyaWRnZS4gVGhlIGFkZGl0aW9uIG9mIHRoZSBtb2R1bGUgcmVxdWVzdCBhbmQgbG9nZ2VyIG1hbmFnZW1lbnQgc3VnZ2VzdHMgdGhhdCB0aGUgbG9nZ2luZyBtZWNoYW5pc20gbWlnaHQgYmUgZHluYW1pYywgcGVyaGFwcyBsb2FkaW5nIHRoZSBuZWNlc3NhcnkgbG9nZ2luZyBtb2R1bGUgb25seSB3aGVuIG5lZWRlZC5cblxuTm93LCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGBlYnRfbmZsb2cuY2AgZmlsZSBpdHNlbGYgdG8gdW5kZXJzdGFuZCB0aGUgZXhpc3RpbmcgY29kZSBjb250ZXh0LCBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQsIGFuZCBob3cgdGhlc2UgY2hhbmdlcyBmaXQgaW50byB0aGUgbGFyZ2VyIHBpY3R1cmUuIEknbGwgYWxzbyBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hhbmdlIGlzIHByb3Blcmx5IGludGVncmF0ZWQgd2l0aCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdmlhIHRoZSBgS2NvbmZpZ2AgZmlsZS4gSSdtIGtlZW4gdG8gZXhhbWluZSB0aGUgZGVwZW5kZW5jaWVzIGFuZCB3aGV0aGVyIHRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW55IG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgaW1wYWN0cyBleGlzdGluZyBvbmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDA1LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0Nzo0NC4yMjU2MDQ3NDRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE4NjY5NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X25mbG9nX3RnX2NoZWNrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidF9uZmxvZy5jPTI0PWVidF9uZmxvZ190ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgeHRfYWN0aW9uX3BhcmFtICpwYXIpXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy00MC1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYzo0MTpzdGF0aWMgaW50IGVidF9uZmxvZ190Z19jaGVjayhjb25zdCBzdHJ1Y3QgeHRfdGdjaGtfcGFyYW0gKnBhcilcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy00Mi17XFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYz02NT1zdGF0aWMgc3RydWN0IHh0X3RhcmdldCBlYnRfbmZsb2dfdGdfcmVnIF9fcmVhZF9tb3N0bHkgPSB7XFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy02OS1cXHQudGFyZ2V0ICAgICA9IGVidF9uZmxvZ190ZyxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYzo3MDpcXHQuY2hlY2tlbnRyeSA9IGVidF9uZmxvZ190Z19jaGVjayxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRfbmZsb2cuYy03MS1cXHQuZGVzdHJveSAgICA9IGVidF9uZmxvZ190Z19kZXN0cm95LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0Nzo0NC4yNzc0NzcwNDNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDgyMTc2NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBDaGVjayBmb3IgYGVidF9uZmxvZy5jYCoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHN1cnJvdW5kaW5nIGBlYnRfbmZsb2cuY2AuIEkgbmVlZCB0byBlbnN1cmUgaXQncyBwcm9wZXJseSBjb25maWd1cmVkIGZvciB0aGlzIHNwZWNpZmljIGJ1aWxkLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBLY29uZmlnIGZpbGVzLCBzaW5jZSB0aGF0J3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGxpdmVzLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHNlZSB3aGF0IGZlYXR1cmVzIGVuYWJsZSBpdCwgYW5kIGNvbmZpcm0gdGhlIHJlbGV2YW50IHNldHRpbmdzLiBObyBwb2ludCBpbiBtYWtpbmcgYSB3cm9uZyB0dXJuLCB0aW1lIHRvIHN0YXJ0IGJ5IGNoZWNraW5nIEtjb25maWcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0Nzo0OC4zNTk2NTUyNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzI4OTQ2OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X25mbG9nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ3OjQ4LjQyNjk1NzcwOVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDE4ODE4MDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgS2VybmVsJ3MgTmV0d29yayBGaWx0ZXIgTWFrZWZpbGUqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYSBzcGVjaWZpYyBuZXR3b3JrIGZpbHRlcmluZyBjb21wb25lbnQgaXMgYnVpbHQgd2l0aGluIHRoZSBrZXJuZWwuIEl0IHNlZW1zIGxpa2UgYSBkZWNlbnQgc3RhcnRpbmcgcG9pbnQgbWlnaHQgYmUgdGhlIGBuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZWAuIFRoaXMgZmlsZSBpcyByZXNwb25zaWJsZSBmb3IgYnVpbGRpbmcgYSBwb3J0aW9uIG9mIHRoZSBuZXR3b3JrIGJyaWRnaW5nIGZ1bmN0aW9uYWxpdHksIGFuZCBnaXZlbiB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpdCdzIGxpa2VseSB0aGF0IGEgbmV0d29yayBmaWx0ZXIgaXMgaW5jbHVkZWQgd2l0aGluLiBJJ2xsIG5lZWQgdG8gb3BlbiB0aGF0IGZpbGUgYW5kIHNlZSB3aGF0J3MgZGVmaW5lZCBpbiB0aGVyZS4gVGhlbiBJJ2xsIGhhdmUgYSBiZXR0ZXIgcGljdHVyZSBvZiB0aGUgYnVpbGQgdGFyZ2V0cywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBIb3BlZnVsbHksIHRoaXMgZmlsZSB3aWxsIHBvaW50IG1lIGRpcmVjdGx5IHRvIHRoZSByZWxldmFudCBzb3VyY2VzIG9yIGF0IGxlYXN0IG5hcnJvdyBkb3duIHRoZSBzZWFyY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNzksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0ODozMy44NDU3Nzc2NDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDA1MTUwNzM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImVidF9uZmxvZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZT0zOT1vYmotJChDT05GSUdfQlJJREdFX0VCVF9MT0cpICs9IGVidF9sb2cub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjQwOm9iai0kKENPTkZJR19CUklER0VfRUJUX05GTE9HKSArPSBlYnRfbmZsb2cub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTQxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0ODozNC4yNTA5MzUxMjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDc2ODgwNzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OlxuXG4qKkNoZWNraW5nIGBDT05GSUdfQlJJREdFX0VCVF9ORkxPR2AgaW4gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIE15IHRyYWluIG9mIHRob3VnaHQgaXMgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgQ09ORklHX0JSSURHRV9FQlRfTkZMT0dgLiBUaGUgc3BlY2lmaWMgbG9jYXRpb24sIGBuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnYCwgaXMgdGVsbGluZy4gSSdtIGFzc3VtaW5nIHdlJ3JlIGRlYWxpbmcgd2l0aCBicmlkZ2luZyBhbmQgbmV0ZmlsdGVyIGludGVncmF0aW9uLCBhbmQgc3BlY2lmaWNhbGx5LCB0aGUgbG9nZ2luZyBjb21wb25lbnQgZm9yIEVCVEFCTEVTLiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBmbGFnIGFuZCBpdHMgaW1wbGljYXRpb25zLiBQZXJoYXBzIEknbSB0cnlpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgc29tZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gbG9nZ2luZyBicmlkZ2UgdHJhZmZpYywgb3IgSSdtIHRyb3VibGVzaG9vdGluZyBhIHByb2JsZW0gdGhhdCBtaWdodCBpbnZvbHZlIG5ldGZpbHRlciBsb2dnaW5nIHdpdGhpbiBhIGJyaWRnZWQgZW52aXJvbm1lbnQuIE1heWJlIEknbSBleGFtaW5pbmcgYSBzcGVjaWZpYyBidWlsZCBjb25maWd1cmF0aW9uIG9yIGp1c3QgcmV2aWV3aW5nIHBvdGVudGlhbCBrZXJuZWwgZmVhdHVyZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiAqZG9lcyogaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciBuZXR3b3JraW5nIHBpY3R1cmUuIElzIGl0IGVuYWJsZWQ/IFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IEFyZSB0aGVyZSBwZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9ucz8gRXNzZW50aWFsbHksIEknbSBjaGVja2luZyB0aGUga2NvbmZpZyBmaWxlIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhpcyBwYXJ0aWN1bGFyIG5ldGZpbHRlciBsb2dnaW5nIGZlYXR1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NzMsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0ODozNy43Mjc4MTkwODFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NjI5MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkJSSURHRV9FQlRfTkZMT0dcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTIzND1jb25maWcgQlJJREdFX0VCVF9MT0dcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjQyLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjQzOmNvbmZpZyBCUklER0VfRUJUX05GTE9HXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDQtXFx0dHJpc3RhdGUgXFxcImVidDogbmZsb2cgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDI6NDg6MzcuNzkyNDU3NTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjUzOTc0NzY4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKlBlZXJpbmcgaW50byB0aGUgRGVwdGhzIG9mIERlcGVuZGVuY3kqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxpbmVhZ2Ugb2YgYEJSSURHRV9FQlRfTkZMT0dgLiBXaGF0IGFyZSB0aGUgdW5kZXJseWluZyBwaWVjZXMgdGhhdCBjb250cmlidXRlIHRvIGl0cyBmdW5jdGlvbmFsaXR5PyBJIG5lZWQgdG8ga25vdyB3aGF0IGl0IHJlbGllcyBvbiwgd2hhdCBpdCBidWlsZHMgdXBvbi4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGtub3dpbmcgdGhlIGRpcmVjdCBkZXBlbmRlbmNpZXMsIGJ1dCB1bmRlcnN0YW5kaW5nIHRoZSAqd2h5KiBiZWhpbmQgdGhlbS4gSSB3YW50IHRvIGJ1aWxkIGEgY2xlYXIgbWVudGFsIG1hcCBvZiBpdHMgcGxhY2UgaW4gdGhlIGJyb2FkZXIgc3lzdGVtLCBhbmQgaWRlbnRpZnkgYW55IHBvdGVudGlhbCB3ZWFrIHBvaW50cyBvciBhcmVhcyBmb3Igb3B0aW1pemF0aW9uIGJhc2VkIG9uIHRoaXMgdW5kZXJzdGFuZGluZy4gTGV0J3Mgc2VlIHdoYXQgdGhlIGNvZGUgdGVsbHMgbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5ODMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTowMy4xODk5MzcxNjVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDMsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNDM6XFx0Y29uZmlnIEJSSURHRV9FQlRfTkZMT0dcXG4gMjQ0OlxcdFxcdHRyaXN0YXRlIFxcXCJlYnQ6IG5mbG9nIHN1cHBvcnRcXFwiXFxuIDI0NTpcXHRcXHRoZWxwXFxuIDI0NjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIG5mbG9nIHdhdGNoZXIsIHdoaWNoIGFsbG93cyB0byBMT0dcXG4gMjQ3OlxcdFxcdCAgbWVzc2FnZXMgdGhyb3VnaCB0aGUgbmV0ZmlsdGVyIGxvZ2dpbmcgQVBJLCB3aGljaCBjYW4gdXNlXFxuIDI0ODpcXHRcXHQgIGVpdGhlciB0aGUgb2xkIExPRyB0YXJnZXQsIHRoZSBvbGQgVUxPRyB0YXJnZXQgb3IgbmZuZXRsaW5rX2xvZ1xcbiAyNDk6XFx0XFx0ICBhcyBiYWNrZW5kLlxcbiAyNTA6XFx0XFxuIDI1MTpcXHRcXHQgIFRoaXMgb3B0aW9uIGFkZHMgdGhlIG5mbG9nIHdhdGNoZXIsIHRoYXQgeW91IGNhbiB1c2UgaW4gYW55IHJ1bGVcXG4gMjUyOlxcdFxcdCAgaW4gYW55IGVidGFibGVzIHRhYmxlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTowMy4xODk5OTc2NDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjc4NDUyMjAzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIEtlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGllY2Ugb2YgY29kZSwgYW5kIHdoaWxlIGl0IGRvZXNuJ3QgKmRpcmVjdGx5KiBzdGF0ZSBpdHMgZGVwZW5kZW5jaWVzLCBpdHMgbG9jYXRpb24gaW4gYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBUaGF0IHNjcmVhbXMgYEJSSURHRV9ORl9FQlRBQkxFU2AgdG8gbWUuIEknbSBvcGVyYXRpbmcgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBpdCBsaWtlbHkgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBidXQsIGFzIGFsd2F5cywgbGV0J3MgdmVyaWZ5IHRoYXQgYXNzdW1wdGlvbiBiZWZvcmUgd2UgbW92ZSBvbi4gR290dGEgY2hlY2sgYW5kIG1ha2Ugc3VyZS4gTm8gcG9pbnQgaW4gbWFraW5nIGEgZm9vbCBvZiBteXNlbGYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNDQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ5OjA1Ljk3NDUyNTg5MVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIyOTE4NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00Mi0jIG9sZCBzb2Nrb3B0IGludGVyZmFjZSBhbmQgZXZhbCBsb29wXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01Mi1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiRXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTYxLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NjI6aWYgQlJJREdFX05GX0VCVEFCTEVTXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02My1cXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Njc9Y29uZmlnIEJSSURHRV9FQlRfQlJPVVRFXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02OC1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBicm91dGUgdGFibGUgc3VwcG9ydFxcXCJcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY5OlxcdGRlcGVuZHMgb24gQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNzAtXFx0aGVscFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz03OD1jb25maWcgQlJJREdFX0VCVF9UX0ZJTFRFUlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNzktXFx0dHJpc3RhdGUgXFxcImVidDogZmlsdGVyIHRhYmxlIHN1cHBvcnRcXFwiXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo4MDpcXHRkZXBlbmRzIG9uIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTgxLVxcdGhlbHBcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9ODg9Y29uZmlnIEJSSURHRV9FQlRfVF9OQVRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTg5LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IG5hdCB0YWJsZSBzdXBwb3J0XFxcIlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6OTA6XFx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy05MS1cXHRoZWxwXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTEzMj1jb25maWcgQlJJREdFX0VCVF9JUDZcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEzMy1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBJUDYgZmlsdGVyIHN1cHBvcnRcXFwiXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMzQ6XFx0ZGVwZW5kcyBvbiBCUklER0VfTkZfRUJUQUJMRVMgXFx1MDAyNlxcdTAwMjYgSVBWNlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTM1LVxcdGhlbHBcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9MTg5PWNvbmZpZyBCUklER0VfRUJUX0FSUFJFUExZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xOTAtXFx0dHJpc3RhdGUgXFxcImVidDogYXJwIHJlcGx5IHRhcmdldCBzdXBwb3J0XFxcIlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTkxOlxcdGRlcGVuZHMgb24gQlJJREdFX05GX0VCVEFCTEVTIFxcdTAwMjZcXHUwMDI2IElORVRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE5Mi1cXHRoZWxwXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTI0Mz1jb25maWcgQlJJREdFX0VCVF9ORkxPR1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNTUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoyNTY6ZW5kaWYgIyBCUklER0VfTkZfRUJUQUJMRVNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDI6NDk6MDYuMDE2ODIwNFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mzc2MjcxNzE4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBlYnRfbmZsb2cgVGFyZ2V0IGluIEVidGFibGVzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHRvIGJlc3QgYXBwcm9hY2ggZnV6emluZyB0aGUgYGVidF9uZmxvZ2AgdGFyZ2V0IHdpdGhpbiBlYnRhYmxlcywgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSByZWNlbnQgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IEkgYWJzb2x1dGVseSBuZWVkIGBCUklER0VfTkZfRUJUQUJMRVNgIGVuYWJsZWQsIGFuZCwgb2YgY291cnNlLCBgQlJJREdFX0VCVF9ORkxPR2AgaXMgZXNzZW50aWFsIGFzIHdlbGwuIFRoZSBwYXRjaCBpdHNlbGYgaXMgbW9kaWZ5aW5nIHRoZSBgZWJ0X25mbG9nX3RnX2NoZWNrYCBhbmQgYGVidF9uZmxvZ190Z19kZXN0cm95YCBmdW5jdGlvbnMuIFJpZ2h0LCB0aG9zZSBhcmUgdGhlIHRhcmdldCBjaGVjayBhbmQgZGVzdHJveSBmdW5jdGlvbnMsIHdoaWNoIGFyZSBjcml0aWNhbCBiZWNhdXNlIHRoZXkncmUgcGFydCBvZiB0aGUgYGVidF9uZmxvZ2AgdGFyZ2V0LiBBbmQgYmVjYXVzZSBlYnRhYmxlcyBhbGxvd3MgdXNlcnNwYWNlIGFjY2VzcywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyB0aGVyZS4gU28gbXkga2V5IGZvY3VzIHNob3VsZCBkZWZpbml0ZWx5IGJlIG9uIGZ1enppbmcgYGVidF9uZmxvZ190Z19jaGVja2AgYW5kIGBlYnRfbmZsb2dfdGdfZGVzdHJveWAuIFRob3NlIGFyZSB0aGUgcHJpbWUgdGFyZ2V0cy4gSeKAmXZlIGFscmVhZHkgbWFkZSBhIG5vdGUgb2YgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zOiBgQlJJREdFX05GX0VCVEFCTEVTYCBhbmQgYEJSSURHRV9FQlRfTkZMT0dgLiBcblxuSG1tLCBhbnl0aGluZyBlbHNlIHRvIGNvbnNpZGVyPyBPaCwgeWVzLCBgbmZfbG9nZ2VyX2ZpbmRfZ2V0YCBhbmQgYG5mX2xvZ2dlcl9wdXRgIGFyZSBhbHNvIGNhbGxlZCBkdXJpbmcgdGhlIHByb2Nlc3NpbmcuIEknbGwgbmVlZCB0byBrZWVwIGFuIGV5ZSBvbiB0aG9zZS4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYEJSSURHRWAgaXMgYSBwcmVyZXF1aXNpdGUgaGVyZS4gWWVzLCBgQlJJREdFX05GX0VCVEFCTEVTYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBCUklER0VgLCBzbyB0aGF0IGlzIGFsc28gaW1wb3J0YW50LiBOb3cgSSBjYW4gc3RhcnQgYnVpbGRpbmcgbXkgZnV6emluZyBzdHJhdGVneS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTMyOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTo0OS43Nzk1NDA2NzlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4MTg3NTIwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00Mi0jIG9sZCBzb2Nrb3B0IGludGVyZmFjZSBhbmQgZXZhbCBsb29wXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01Mi1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjUzOm1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiRXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ5OjUwLjA2MTQyMjAyNVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDYyMDk4NTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRXhhbWluaW5nIGVidGFibGVzIHdpdGhpbiB0aGUgTGludXggTmV0d29ya2luZyBGcmFtZXdvcmsqKlxuXG5BbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgZWJ0YWJsZXMgc2l0dWF0aW9uIHdpdGhpbiB0aGUgYnJpZGdlIG5ldGZpbHRlciBjb250ZXh0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgYG5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdgIGZpbGUuIFNwZWNpZmljYWxseSwgSSdtIHplcm9pbmcgaW4gb24gdGhlIGBCUklER0VfTkZfRUJUQUJMRVNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBXaGF0IG90aGVyIGZlYXR1cmVzIG9yIG1vZHVsZXMgZG9lcyBpdCByZWx5IG9uPyBBcmUgdGhlcmUgYW55IHVwc3RyZWFtIGNoYW5nZXMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIG90aGVyIG5ldGZpbHRlciBtb2R1bGVzPyBUaGlzIHdpbGwgZ2l2ZSBtZSB0aGUgaW5mb3JtYXRpb24gSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGRlc2lyZWQgYmVoYXZpb3VyLiBUaGlzIHNob3VsZCBiZSB0aGUgYmVzdCBwbGFjZSB0byBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3NiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjQ5OjU0LjEyMzUyMzIzMloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzEyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDUzLFxuICBcIkxpbmVDb3VudFwiOiAxMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDUzOlxcdG1lbnVjb25maWcgQlJJREdFX05GX0VCVEFCTEVTXFxuICA1NDpcXHRcXHR0cmlzdGF0ZSBcXFwiRXRoZXJuZXQgQnJpZGdlIHRhYmxlcyAoZWJ0YWJsZXMpIHN1cHBvcnRcXFwiXFxuICA1NTpcXHRcXHRkZXBlbmRzIG9uIEJSSURHRSBcXHUwMDI2XFx1MDAyNiBORVRGSUxURVIgXFx1MDAyNlxcdTAwMjYgTkVURklMVEVSX1hUQUJMRVNcXG4gIDU2OlxcdFxcdHNlbGVjdCBORVRGSUxURVJfRkFNSUxZX0JSSURHRVxcbiAgNTc6XFx0XFx0aGVscFxcbiAgNTg6XFx0XFx0ICBlYnRhYmxlcyBpcyBhIGdlbmVyYWwsIGV4dGVuc2libGUgZnJhbWUvcGFja2V0IGlkZW50aWZpY2F0aW9uXFxuICA1OTpcXHRcXHQgIGZyYW1ld29yay4gU2F5ICdZJyBvciAnTScgaGVyZSBpZiB5b3Ugd2FudCB0byBkbyBFdGhlcm5ldFxcbiAgNjA6XFx0XFx0ICBmaWx0ZXJpbmcvTkFUL2Jyb3V0aW5nIG9uIHRoZSBFdGhlcm5ldCBicmlkZ2UuXFxuICA2MTpcXHRcXG4gIDYyOlxcdGlmIEJSSURHRV9ORl9FQlRBQkxFU1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMjo0OTo1NC4xMjM1OTIzNjFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzc3MzAwMTQ3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMgZm9yIEVCVEFCTEVTIE5GTE9HIEludGVncmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUga2VybmVsIHByb3Blcmx5IGZvciB0aGlzIGVidGFibGVzIE5GTE9HIGZ1bmN0aW9uYWxpdHkgdG8gd29yay4gSXQncyBjbGVhciB0aGF0IEkgbmVlZCBhdCBsZWFzdCBgQlJJREdFYCwgYE5FVEZJTFRFUmAsIGFuZCBgTkVURklMVEVSX1hUQUJMRVNgLiBUaGVuIHRoZXJlIGFyZSB0aGUgc3BlY2lmaWMgZWJ0YWJsZXMgb25lcy4gSW5pdGlhbGx5LCBJIHRob3VnaHQganVzdCBgQlJJREdFX0VCVF9ORkxPR2Agd291bGQgZG8gdGhlIHRyaWNrLCB3aXRoIHRoZSBidWlsZCBzeXN0ZW0gcmVzb2x2aW5nIGRlcGVuZGVuY2llcy4gQnV0LCB0aGlua2luZyBhYm91dCBzeXprYWxsZXIncyBjb25maWcgZ2VuZXJhdGlvbiwgSSByZWFsaXplIGl04oCZcyBzYWZlciB0byBiZSBleHBsaWNpdC4gSXQncyBiZXN0IHRvIGVuc3VyZSB0aGVzZSBtb2R1bGVzIGFyZSAqZGVmaW5pdGVseSogc2VsZWN0ZWQgYW5kIG5vdCByZWx5IG9uIGltcGxpY2l0IHJlc29sdXRpb24gZHVyaW5nIGNvbXBpbGF0aW9uLCBlc3BlY2lhbGx5IHRvIGF2b2lkIGFueSBpc3N1ZXMgZG93biB0aGUgbGluZS5cblxuU28sIEknbSBnb2luZyB0byBpbmNsdWRlIGBCUklER0VfRUJUX05GTE9HYCwgYEJSSURHRV9ORl9FQlRBQkxFU2AsIGBCUklER0VgLCBgTkVURklMVEVSYCwgYW5kIGBORVRGSUxURVJfWFRBQkxFU2AuIEkgYmVsaWV2ZSBgQlJJREdFX0VCVF9ORkxPR2AgaXMgdGhlIG1vc3QgY3JpdGljYWwgZGVwZW5kZW5jeSBoZXJlLlxuXG5Ob3csIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJIG5lZWQgdG8gdmVyaWZ5IHRoZSBjb2RlIHBhdGhzIGFyZSByZWFjaGFibGUuIFNwZWNpZmljYWxseSwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoYXQgYGVidF9uZmxvZ190Z19jaGVja2AgaXMgYWN0dWFsbHkgcmVhY2hhYmxlLlxuXG5ZZXMsIGNvbmZpcm1lZCwgaXQncyBhY2Nlc3NpYmxlIHRocm91Z2ggYHNldHNvY2tvcHRgIG9yIG5ldGxpbmsgY2FsbHMgZm9yIGVidGFibGVzLiBBbHNvLCBJIHNlZSB0aGUgcGF0Y2ggYWRkcyBgcmVxdWVzdF9tb2R1bGUoXCIlc1wiLCBcIm5mbmV0bGlua19sb2dcIik7YCBhbmQgYG5mX2xvZ2dlcl9maW5kX2dldGAvYG5mX2xvZ2dlcl9wdXRgLiBPa2F5LCBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDcwLCJPdXRwdXRUb2tlbnMiOjE0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAyOjUwOjAxLjg5NjU5NzE0MVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyNjYyNTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUklER0VfRUJUX05GTE9HXCIsXG4gICAgXCJCUklER0VfTkZfRUJUQUJMRVNcIixcbiAgICBcIkJSSURHRVwiLFxuICAgIFwiTkVURklMVEVSXCIsXG4gICAgXCJORVRGSUxURVJfWFRBQkxFU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImVidF9uZmxvZ190Z19jaGVja1wiLFxuICAgIFwiZWJ0X25mbG9nX3RnX2Rlc3Ryb3lcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIGRlc3RydWN0aW9uIG9mIHRoZSBlYnRfbmZsb2cgdGFyZ2V0IGluIGVidGFibGVzLCBhZGRpbmcgbW9kdWxlIGxvYWRpbmcgYW5kIGxvZ2dlciByZWZlcmVuY2UgY291bnRpbmcuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBlYnRhYmxlcyBjb25maWd1cmF0aW9uIGFuZCBhbHRlcnMgdGhlIHRhcmdldCdzIGxpZmVjeWNsZSwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX0VCVF9ORkxPR1wiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCIsXG4gICAgXCJCUklER0VcIixcbiAgICBcIk5FVEZJTFRFUlwiLFxuICAgIFwiTkVURklMVEVSX1hUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfbmZsb2dfdGdfY2hlY2tcIixcbiAgICBcImVidF9uZmxvZ190Z19kZXN0cm95XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGUgZWJ0X25mbG9nIHRhcmdldCBpbiBlYnRhYmxlcywgYWRkaW5nIG1vZHVsZSBsb2FkaW5nIGFuZCBsb2dnZXIgcmVmZXJlbmNlIGNvdW50aW5nLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZWJ0YWJsZXMgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJzIHRoZSB0YXJnZXQncyBsaWZlY3ljbGUsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowtgvc7[1] Phase: Succeeded StartedAt: 2026-07-31 02:50:25 +0000 UTC FinishedAt: 2026-07-31 02:50:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-31 02:50:25 +0000 UTC FinishedAt: 2026-07-31 02:50:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2] Phase: Succeeded StartedAt: 2026-07-31 02:50:25 +0000 UTC FinishedAt: 2026-07-31 04:36:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 02:50:25 +0000 UTC FinishedAt: 2026-07-31 04:36:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 02:50:25 +0000 UTC FinishedAt: 2026-07-31 02:50:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 02:50:25 +0000 UTC FinishedAt: 2026-07-31 02:50:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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-workflowtgvc7/series-workflowtgvc7-convert-artifact-3751310403/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 02:50:36 +0000 UTC FinishedAt: 2026-07-31 03:16:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 02:50:36 +0000 UTC FinishedAt: 2026-07-31 03:16:37 +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:*bc11e715-e5cc-4eda-9010-afef55bf3980,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-workflowtgvc7/series-workflowtgvc7-convert-artifact-3751310403/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": "dc4f46fb-6614-44f8-9ec3-31e8fd283630", "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-workflowtgvc7/series-workflowtgvc7-build-action-216788657/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 02:50:36 +0000 UTC FinishedAt: 2026-07-31 03:16:29 +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:*bc11e715-e5cc-4eda-9010-afef55bf3980,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-workflowtgvc7/series-workflowtgvc7-convert-artifact-3751310403/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": "dc4f46fb-6614-44f8-9ec3-31e8fd283630", "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-workflowtgvc7/series-workflowtgvc7-build-action-216788657/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:16:37 +0000 UTC FinishedAt: 2026-07-31 03:16:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:16:37 +0000 UTC FinishedAt: 2026-07-31 03:16:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:16:37 +0000 UTC FinishedAt: 2026-07-31 03:16:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:16:37 +0000 UTC FinishedAt: 2026-07-31 03:16:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-workflowtgvc7/series-workflowtgvc7-convert-artifact-3192517882/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:16:47 +0000 UTC FinishedAt: 2026-07-31 03:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:16:47 +0000 UTC FinishedAt: 2026-07-31 03:18:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dc4f46fb-6614-44f8-9ec3-31e8fd283630,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-workflowtgvc7/series-workflowtgvc7-build-action-216788657/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-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:18:55 +0000 UTC FinishedAt: 2026-07-31 03:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:18:55 +0000 UTC FinishedAt: 2026-07-31 03:18:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:18:55 +0000 UTC FinishedAt: 2026-07-31 03:38:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:18:55 +0000 UTC FinishedAt: 2026-07-31 03:38:58 +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:*bc11e715-e5cc-4eda-9010-afef55bf3980,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-workflowtgvc7/series-workflowtgvc7-convert-artifact-3192517882/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": "a81614ad-acad-4357-9d64-cd4328026a84", "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-workflowtgvc7/series-workflowtgvc7-build-action-2158269534/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:18:55 +0000 UTC FinishedAt: 2026-07-31 03:38:48 +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:*bc11e715-e5cc-4eda-9010-afef55bf3980,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-workflowtgvc7/series-workflowtgvc7-convert-artifact-3192517882/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": "a81614ad-acad-4357-9d64-cd4328026a84", "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-workflowtgvc7/series-workflowtgvc7-build-action-2158269534/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:38:58 +0000 UTC FinishedAt: 2026-07-31 03:38:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:38:58 +0000 UTC FinishedAt: 2026-07-31 03:38:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:38:58 +0000 UTC FinishedAt: 2026-07-31 03:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:38:58 +0000 UTC FinishedAt: 2026-07-31 03:40:48 +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:*a81614ad-acad-4357-9d64-cd4328026a84,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-workflowtgvc7/series-workflowtgvc7-build-action-2158269534/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-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 04:36:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 04:36:51 +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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"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:*dc4f46fb-6614-44f8-9ec3-31e8fd283630,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a81614ad-acad-4357-9d64-cd4328026a84,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-workflowtgvc7/series-workflowtgvc7-build-action-216788657/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-workflowtgvc7/series-workflowtgvc7-build-action-2158269534/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 03:41:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 03:41:04 +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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"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-workflowtgvc7/series-workflowtgvc7-convert-artifact-2311627567/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 03:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 03:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:40:58 +0000 UTC FinishedAt: 2026-07-31 03:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:41:08 +0000 UTC FinishedAt: 2026-07-31 04:36:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtgvc7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"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":["ebt_nflog_tg_check","ebt_nflog_tg_destroy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_EBT_NFLOG","BRIDGE_NF_EBTABLES","BRIDGE","NETFILTER","NETFILTER_XTABLES"],"series_id":"fec938cf-954e-41cb-ad78-0205cc23a808","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-31 03:41:08 +0000 UTC FinishedAt: 2026-07-31 04:36:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dc4f46fb-6614-44f8-9ec3-31e8fd283630,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a81614ad-acad-4357-9d64-cd4328026a84,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-workflowtgvc7/series-workflowtgvc7-build-action-216788657/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-workflowtgvc7/series-workflowtgvc7-build-action-2158269534/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-workflowtgvc7/series-workflowtgvc7-convert-artifact-2311627567/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,}