Name: series-workflowl5vj7 Phase: Succeeded StartedAt: 2026-07-23 02:46:13 +0000 UTC FinishedAt: 2026-07-23 04:27:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[0] Phase: Succeeded StartedAt: 2026-07-23 02:46:13 +0000 UTC FinishedAt: 2026-07-23 03:03:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[0].run-triage Phase: Succeeded StartedAt: 2026-07-23 02:46:13 +0000 UTC FinishedAt: 2026-07-23 03:03:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "a23a71823352e2d792dcaae25f1ebb744acbfc0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "a23a71823352e2d792dcaae25f1ebb744acbfc0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "2bc50d06-2c6b-48e1-be90-b8ce2a7d9675" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_jit_supports_timed_may_goto", "bpf_jit_emit_insn" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzIzIDAzOjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvJiMzNDssCiAgICAmIzM0O2JwZl9qaXRfZW1pdF9pbnNuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGMyZTlhNzc0ZDdjY2EzMTBhNWJiMzQwN2VmNjU1OTYxYTE3ZDYyMzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAwMzowMjowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlXG5pbmRleCA5YTFlNWYwYTk0ZTU1OS4uNjQ1OGQ0ZDUxOTkwYTcgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGVcbkBAIC0zLDcgJiM0MzszLDcgQEBcbiBvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29yZS5vXG4gXG4gaWZlcSAoJChDT05GSUdfQVJDSF9SVjY0SSkseSlcbi1cdG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wNjQub1xuJiM0MztcdG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wNjQubyBicGZfdGltZWRfbWF5X2dvdG8ub1xuIGVsc2VcbiBcdG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuIGVuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbmluZGV4IGFkMDg5YTlhNGVhOWFjLi44ZmU4OTY5ZmI4YTBmOCAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbkBAIC0xODQxLDcgJiM0MzsxODQxLDEyIEBAIGludCBicGZfaml0X2VtaXRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4LFxuIFx0XHRpZiAoYXV4LVx1MDAzZXRhaWxfY2FsbF9yZWFjaGFibGUgXHUwMDI2XHUwMDI2IGluc24tXHUwMDNlc3JjX3JlZyA9PSBCUEZfUFNFVURPX0NBTEwpXG4gXHRcdFx0ZW1pdF9zZChSVl9SRUdfU1AsIGN0eC1cdTAwM2V0Y2Nfb2Zmc2V0LCBSVl9SRUdfVENDLCBjdHgpO1xuIFxuLVx0XHRpZiAoaW5zbi1cdTAwM2VzcmNfcmVnICE9IEJQRl9QU0VVRE9fQ0FMTClcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlIHZlcmlmaWVyIGFuZFxuJiM0MztcdFx0ICogcmV0dXJucyBpdHMgcmVzdWx0IGluIEJQRl9SRUdfQVggaW5zdGVhZCBvZiBCUEZfUkVHXzAsIHNvXG4mIzQzO1x0XHQgKiBza2lwIHRoZSBub3JtYWwgXCYjMzQ7bW92ZSByZXR1cm4gcmVnaXN0ZXIgaW50byBSMFwmIzM0Oy5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWYgKGluc24tXHUwMDNlc3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwgXHUwMDI2XHUwMDI2IGFkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbiBcdFx0XHRlbWl0X212KGJwZl90b19ydl9yZWcoQlBGX1JFR18wLCBjdHgpLCBSVl9SRUdfQTAsIGN0eCk7XG4gXHRcdGJyZWFrO1xuIFx0fVxuQEAgLTIxNjEsMyAmIzQzOzIxNjYsOCBAQCBib29sIGJwZl9qaXRfc3VwcG9ydHNfc3VicHJvZ190YWlsY2FsbHModm9pZClcbiB7XG4gXHRyZXR1cm4gdHJ1ZTtcbiB9XG4mIzQzO1xuJiM0Mztib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbiYjNDM7e1xuJiM0MztcdHJldHVybiB0cnVlO1xuJiM0Mzt9XG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMgYi9hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uU1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5mNGJmMmNkMTA1ODY2YlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlNcbkBAIC0wLDAgJiM0MzsxLDQ3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOy8qIENvcHlyaWdodCAoYykgMjAyNiBGZW5nIEppYW5nIFx1MDAzY2ppYW5nZmVuZ0BreWxpbm9zLmNuXHUwMDNlICovXG4mIzQzO1xuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9saW5rYWdlLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjYXNtL2FzbS5oXHUwMDNlXG4mIzQzO1xuJiM0MzsvKlxuJiM0MzsgKiBUcmFtcG9saW5lIGZvciB0aGUgQlBGIHRpbWVkIG1heV9nb3RvIGxvb3AgYm91bmQuIEN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb246XG4mIzQzOyAqXHQtIGlucHV0OiAgc3RhY2sgb2Zmc2V0IGluIEJQRl9SRUdfQVggKHQwKVxuJiM0MzsgKlx0LSBvdXRwdXQ6IHVwZGF0ZWQgY291bnQgaW4gQlBGX1JFR19BWCAodDApXG4mIzQzOyAqXG4mIzQzOyAqIENhbGxzIGJwZl9jaGVja190aW1lZF9tYXlfZ290byhwdHIpIHdpdGggdGhlIHN0YW5kYXJkIFJJU0MtViBBQkksIHdoZXJlXG4mIzQzOyAqIHB0ciA9IEJQRl9SRUdfRlAgKHM1KSAmIzQzOyBCUEZfUkVHX0FYICh0MCkuIEJQRiBSMC1SNSAoYTUsIGEwLWE0KSBhcmUgc2F2ZWRcbiYjNDM7ICogYWNyb3NzIHRoZSBjYWxsOyBCUEZfUkVHX0ZQIChzNSkgaXMgY2FsbGVlLXNhdmVkIGFuZCBuZWVkcyBubyBzYXZpbmcuXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG4mIzQzO1x0YWRkaVx0c3AsIHNwLCAtNjRcbiYjNDM7XHRzZFx0cmEsIDU2KHNwKVxuJiM0MztcdHNkXHRzMCwgNDgoc3ApXG4mIzQzO1x0YWRkaVx0czAsIHNwLCA2NFxuJiM0MztcbiYjNDM7XHQvKiBTYXZlIEJQRiByZWdpc3RlcnMgUjAtUjUgKGE1LCBhMC1hNCkgKi9cbiYjNDM7XHRzZFx0YTUsIDQwKHNwKVxuJiM0MztcdHNkXHRhMCwgMzIoc3ApXG4mIzQzO1x0c2RcdGExLCAyNChzcClcbiYjNDM7XHRzZFx0YTIsIDE2KHNwKVxuJiM0MztcdHNkXHRhMywgOChzcClcbiYjNDM7XHRzZFx0YTQsIDAoc3ApXG4mIzQzO1xuJiM0MztcdGFkZFx0YTAsIHQwLCBzNVxuJiM0MztcdGNhbGxcdGJwZl9jaGVja190aW1lZF9tYXlfZ290b1xuJiM0MztcdG12XHR0MCwgYTBcbiYjNDM7XG4mIzQzO1x0LyogUmVzdG9yZSBCUEYgcmVnaXN0ZXJzIFIwLVI1ICovXG4mIzQzO1x0bGRcdGE0LCAwKHNwKVxuJiM0MztcdGxkXHRhMywgOChzcClcbiYjNDM7XHRsZFx0YTIsIDE2KHNwKVxuJiM0MztcdGxkXHRhMSwgMjQoc3ApXG4mIzQzO1x0bGRcdGEwLCAzMihzcClcbiYjNDM7XHRsZFx0YTUsIDQwKHNwKVxuJiM0MztcbiYjNDM7XHRsZFx0czAsIDQ4KHNwKVxuJiM0MztcdGxkXHRyYSwgNTYoc3ApXG4mIzQzO1x0YWRkaVx0c3AsIHNwLCA2NFxuJiM0MztcdHJldFxuJiM0MztTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXG5pbmRleCA5MmJhMWQ3MmUwZWNlNC4uOGQ4ZTUzZDM3MjY2Y2QgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uY1xuQEAgLTY0LDYgJiM0Mzs2NCw3IEBAIFNFQyhcJiMzNDtzeXNjYWxsXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfYXJtNjRcbiBfX2FyY2hfczM5MHhcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiBfX3N1Y2Nlc3MgX19yZXR2YWwoMClcbiBfX3N0ZGVycihcJiMzNDtFUlJPUjogVGltZW91dCBkZXRlY3RlZCBmb3IgbWF5X2dvdG8gaW5zdHJ1Y3Rpb25cJiMzNDspXG4gX19zdGRlcnIoXCYjMzQ7Q1BVOiB7e1swLTldJiM0Mzt9fSBVSUQ6IDAgUElEOiB7e1swLTldJiM0Mzt9fSBDb21tOiB7ey4qfX1cJiMzNDspXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG5pbmRleCA4ZDdmZjM4ZTRjMDY5Ny4uODM3MDdmYWVhMDQ5OTQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuQEAgLTY2MCw2ICYjNDM7NjYwLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX2FybTY0XG4mIzQzO19fYXJjaF9yaXNjdjY0XG4gX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggMjRcJiMzNDspXG4gLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi9cbiBfX3hsYXRlZChcJiMzNDswOiAqKHU2NCAqKShyMTAgLTI0KSA9XCYjMzQ7KVxuQEAgLTY3OSw3ICYjNDM7NjgwLDcgQEAgX194bGF0ZWQoXCYjMzQ7MTA6ICoodTY0ICopKHIxMCAtMjQpID0gcjEyXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzExOiAqKHU2NCAqKShyMTAgLTgpID0gcjFcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MTI6IGV4aXRcJiMzNDspXG4gX19zdWNjZXNzXG4tX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX2FybTY0KHZvaWQpXG4mIzQzO19fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbih2b2lkKVxuIHtcbiBcdGFzbSB2b2xhdGlsZSAoXG4gXHRcJiMzNDtyMSA9IDE7XCYjMzQ7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21heV9nb3RvXzEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcbmluZGV4IDRiZGY0MjU2YTQxZTUxLi45NzEyOWQyNzMwYTA1MyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcbkBAIC0xMSw2ICYjNDM7MTEsNyBAQCBfX2Rlc2NyaXB0aW9uKFwmIzM0O21heV9nb3RvIDBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuIF9fYXJjaF9zMzkweFxuIF9fYXJjaF9hcm02NFxuJiM0MztfX2FyY2hfcmlzY3Y2NFxuIF9feGxhdGVkKFwmIzM0OzA6IHIwID0gMVwmIzM0OylcbiBfX3hsYXRlZChcJiMzNDsxOiBleGl0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuQEAgLTMxLDYgJiM0MzszMiw3IEBAIF9fZGVzY3JpcHRpb24oXCYjMzQ7YmF0Y2ggMiBvZiBtYXlfZ290byAwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfczM5MHhcbiBfX2FyY2hfYXJtNjRcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcJiMzNDswOiByMCA9IDFcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MTogZXhpdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbkBAIC01Myw2ICYjNDM7NTUsNyBAQCBfX2Rlc2NyaXB0aW9uKFwmIzM0O21heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzEvMFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX3MzOTB4XG4gX19hcmNoX2FybTY0XG4mIzQzO19fYXJjaF9yaXNjdjY0XG4gX194bGF0ZWQoXCYjMzQ7MDogcjAgPSAxXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzE6IGV4aXRcJiMzNDspXG4gX19zdWNjZXNzXG5AQCAtNzksNiAmIzQzOzgyLDcgQEAgX19kZXNjcmlwdGlvbihcJiMzNDttYXlfZ290byBiYXRjaCB3aXRoIG9mZnNldHMgMi8wXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfczM5MHhcbiBfX2FyY2hfYXJtNjRcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcJiMzNDswOiAqKHU2NCAqKShyMTAgLTE2KSA9IDY1NTM1XCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzE6ICoodTY0ICopKHIxMCAtOCkgPSAwXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzI6IHIxMiA9ICoodTY0ICopKHIxMCAtMTYpXCYjMzQ7KVxuQEAgLTEwNiw0ICYjNDM7MTEwLDYxIEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19iYXRjaF8yKHZvaWQpXG4gXHQ6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogVXNlIGJwZl9nZXRfcHJhbmRvbV91MzIoKSB0byBwcmV2ZW50IERDRSBmcm9tIHJlbW92aW5nIHRoZSBjaGVja3MuXG4mIzQzOyAqIHJldHZhbDogMD1hbGwgb2ssIDEtNj1SMC1SNSBjbG9iYmVyZWQuXG4mIzQzOyAqL1xuJiM0MztTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuJiM0MztfX2Rlc2NyaXB0aW9uKFwmIzM0O3RpbWVkIG1heV9nb3RvIHByZXNlcnZlcyBSMC1SNVwmIzM0OylcbiYjNDM7X19hcmNoX3g4Nl82NFxuJiM0MztfX2FyY2hfYXJtNjRcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiYjNDM7X19zdWNjZXNzXG4mIzQzO19fcmV0dmFsKDApXG4mIzQzO19fbmFrZWQgdm9pZCB0aW1lZF9tYXlfZ290b19wcmVzZXJ2ZXNfcmVncyh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0YXNtIHZvbGF0aWxlIChcbiYjNDM7XHRcJiMzNDtjYWxsICVbYnBmX2dldF9wcmFuZG9tX3UzMl07XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjYgPSByMDtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMCA9IDB4MTExMTtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMCAmIzQzOz0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjEgPSAweDIyMjI7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjEgJiM0Mzs9IHI2O1wmIzM0O1xuJiM0MztcdFwmIzM0O3IyID0gMHgzMzMzO1wmIzM0O1xuJiM0MztcdFwmIzM0O3IyICYjNDM7PSByNjtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMyA9IDB4NDQ0NDtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMyAmIzQzOz0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjQgPSAweDU1NTU7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjQgJiM0Mzs9IHI2O1wmIzM0O1xuJiM0MztcdFwmIzM0O3I1ID0gMHg2NjY2O1wmIzM0O1xuJiM0MztcdFwmIzM0O3I1ICYjNDM7PSByNjtcJiMzNDtcbiYjNDM7XHRcJiMzNDsuOGJ5dGUgJVttYXlfZ290b107XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7LjhieXRlICVbbG9vcF07XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjAgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjEgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjIgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjMgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjQgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjUgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjAgIT0gMHgxMTExIGdvdG8gMWY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjEgIT0gMHgyMjIyIGdvdG8gMmY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjIgIT0gMHgzMzMzIGdvdG8gM2Y7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjMgIT0gMHg0NDQ0IGdvdG8gNGY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjQgIT0gMHg1NTU1IGdvdG8gNWY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjUgIT0gMHg2NjY2IGdvdG8gNmY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjAgPSAwO1wmIzM0O1xuJiM0MztcdFwmIzM0O2V4aXQ7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7MTogcjAgPSAxOyBleGl0O1wmIzM0O1xuJiM0MztcdFwmIzM0OzI6IHIwID0gMjsgZXhpdDtcJiMzNDtcbiYjNDM7XHRcJiMzNDszOiByMCA9IDM7IGV4aXQ7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7NDogcjAgPSA0OyBleGl0O1wmIzM0O1xuJiM0MztcdFwmIzM0OzU6IHIwID0gNTsgZXhpdDtcJiMzNDtcbiYjNDM7XHRcJiMzNDs2OiByMCA9IDY7IGV4aXQ7XCYjMzQ7XG4mIzQzO1x0OlxuJiM0MztcdDogX19pbW0oYnBmX2dldF9wcmFuZG9tX3UzMiksXG4mIzQzO1x0ICBfX2ltbV9pbnNuKG1heV9nb3RvLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQ09ORCwgMCwgMCwgMSwgMCkpLFxuJiM0MztcdCAgX19pbW1faW5zbihsb29wLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSwgMCwgMCwgLTIsIDApKVxuJiM0MztcdDogX19jbG9iYmVyX2FsbCk7XG4mIzQzO31cbiYjNDM7XG4gY2hhciBfbGljZW5zZVtdIFNFQyhcJiMzNDtsaWNlbnNlXCYjMzQ7KSA9IFwmIzM0O0dQTFwmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8mIzM0OywKICAgICYjMzQ7YnBmX2ppdF9lbWl0X2luc24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW1wbGVtZW50cyBCUEYgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBmb3IgdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUgYnkgYWRkaW5nIHRoZSBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFzc2VtYmx5IHRyYW1wb2xpbmUgYW5kIHVwZGF0aW5nIHRoZSBKSVQgY29tcGlsZXIgKGBicGZfaml0X2VtaXRfaW5zbmApIHRvIGhhbmRsZSBpdHMgY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zIG9uIFJJU0MtViB3aXRoIEpJVCBlbmFibGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjMmU5YTc3NGQ3Y2NhMzEwYTViYjM0MDdlZjY1NTk2MWExN2Q2MjMwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMjMgMDM6MDI6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlCmluZGV4IDlhMWU1ZjBhOTRlNTU5Li42NDU4ZDRkNTE5OTBhNyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUKQEAgLTMsNyAmIzQzOzMsNyBAQAogb2JqLSQoQ09ORklHX0JQRl9KSVQpICYjNDM7PSBicGZfaml0X2NvcmUubwogCiBpZmVxICgkKENPTkZJR19BUkNIX1JWNjRJKSx5KQotCW9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wNjQubwomIzQzOwlvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcDY0Lm8gYnBmX3RpbWVkX21heV9nb3RvLm8KIGVsc2UKIAlvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcDMyLm8KIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYwppbmRleCBhZDA4OWE5YTRlYTlhYy4uOGZlODk2OWZiOGEwZjggMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYwpAQCAtMTg0MSw3ICYjNDM7MTg0MSwxMiBAQCBpbnQgYnBmX2ppdF9lbWl0X2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCwKIAkJaWYgKGF1eC0mZ3Q7dGFpbF9jYWxsX3JlYWNoYWJsZSAmYW1wOyZhbXA7IGluc24tJmd0O3NyY19yZWcgPT0gQlBGX1BTRVVET19DQUxMKQogCQkJZW1pdF9zZChSVl9SRUdfU1AsIGN0eC0mZ3Q7dGNjX29mZnNldCwgUlZfUkVHX1RDQywgY3R4KTsKIAotCQlpZiAoaW5zbi0mZ3Q7c3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwpCiYjNDM7CQkvKgomIzQzOwkJICogYXJjaF9icGZfdGltZWRfbWF5X2dvdG8oKSBpcyBlbWl0dGVkIGJ5IHRoZSB2ZXJpZmllciBhbmQKJiM0MzsJCSAqIHJldHVybnMgaXRzIHJlc3VsdCBpbiBCUEZfUkVHX0FYIGluc3RlYWQgb2YgQlBGX1JFR18wLCBzbwomIzQzOwkJICogc2tpcCB0aGUgbm9ybWFsICYjMzQ7bW92ZSByZXR1cm4gcmVnaXN0ZXIgaW50byBSMCYjMzQ7LgomIzQzOwkJICovCiYjNDM7CQlpZiAoaW5zbi0mZ3Q7c3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwgJmFtcDsmYW1wOyBhZGRyICE9ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pCiAJCQllbWl0X212KGJwZl90b19ydl9yZWcoQlBGX1JFR18wLCBjdHgpLCBSVl9SRUdfQTAsIGN0eCk7CiAJCWJyZWFrOwogCX0KQEAgLTIxNjEsMyAmIzQzOzIxNjYsOCBAQCBib29sIGJwZl9qaXRfc3VwcG9ydHNfc3VicHJvZ190YWlsY2FsbHModm9pZCkKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KJiM0MzsKJiM0Mztib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZCkKJiM0Mzt7CiYjNDM7CXJldHVybiB0cnVlOwomIzQzO30KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TIGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmY0YmYyY2QxMDU4NjZiCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMKQEAgLTAsMCAmIzQzOzEsNDcgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOy8qIENvcHlyaWdodCAoYykgMjAyNiBGZW5nIEppYW5nICZsdDtqaWFuZ2ZlbmdAa3lsaW5vcy5jbiZndDsgKi8KJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbGlua2FnZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDthc20vYXNtLmgmZ3Q7CiYjNDM7CiYjNDM7LyoKJiM0MzsgKiBUcmFtcG9saW5lIGZvciB0aGUgQlBGIHRpbWVkIG1heV9nb3RvIGxvb3AgYm91bmQuIEN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb246CiYjNDM7ICoJLSBpbnB1dDogIHN0YWNrIG9mZnNldCBpbiBCUEZfUkVHX0FYICh0MCkKJiM0MzsgKgktIG91dHB1dDogdXBkYXRlZCBjb3VudCBpbiBCUEZfUkVHX0FYICh0MCkKJiM0MzsgKgomIzQzOyAqIENhbGxzIGJwZl9jaGVja190aW1lZF9tYXlfZ290byhwdHIpIHdpdGggdGhlIHN0YW5kYXJkIFJJU0MtViBBQkksIHdoZXJlCiYjNDM7ICogcHRyID0gQlBGX1JFR19GUCAoczUpICYjNDM7IEJQRl9SRUdfQVggKHQwKS4gQlBGIFIwLVI1IChhNSwgYTAtYTQpIGFyZSBzYXZlZAomIzQzOyAqIGFjcm9zcyB0aGUgY2FsbDsgQlBGX1JFR19GUCAoczUpIGlzIGNhbGxlZS1zYXZlZCBhbmQgbmVlZHMgbm8gc2F2aW5nLgomIzQzOyAqLwomIzQzOwomIzQzO1NZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKQomIzQzOwlhZGRpCXNwLCBzcCwgLTY0CiYjNDM7CXNkCXJhLCA1NihzcCkKJiM0MzsJc2QJczAsIDQ4KHNwKQomIzQzOwlhZGRpCXMwLCBzcCwgNjQKJiM0MzsKJiM0MzsJLyogU2F2ZSBCUEYgcmVnaXN0ZXJzIFIwLVI1IChhNSwgYTAtYTQpICovCiYjNDM7CXNkCWE1LCA0MChzcCkKJiM0MzsJc2QJYTAsIDMyKHNwKQomIzQzOwlzZAlhMSwgMjQoc3ApCiYjNDM7CXNkCWEyLCAxNihzcCkKJiM0MzsJc2QJYTMsIDgoc3ApCiYjNDM7CXNkCWE0LCAwKHNwKQomIzQzOwomIzQzOwlhZGQJYTAsIHQwLCBzNQomIzQzOwljYWxsCWJwZl9jaGVja190aW1lZF9tYXlfZ290bwomIzQzOwltdgl0MCwgYTAKJiM0MzsKJiM0MzsJLyogUmVzdG9yZSBCUEYgcmVnaXN0ZXJzIFIwLVI1ICovCiYjNDM7CWxkCWE0LCAwKHNwKQomIzQzOwlsZAlhMywgOChzcCkKJiM0MzsJbGQJYTIsIDE2KHNwKQomIzQzOwlsZAlhMSwgMjQoc3ApCiYjNDM7CWxkCWEwLCAzMihzcCkKJiM0MzsJbGQJYTUsIDQwKHNwKQomIzQzOwomIzQzOwlsZAlzMCwgNDgoc3ApCiYjNDM7CWxkCXJhLCA1NihzcCkKJiM0MzsJYWRkaQlzcCwgc3AsIDY0CiYjNDM7CXJldAomIzQzO1NZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bykKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uYwppbmRleCA5MmJhMWQ3MmUwZWNlNC4uOGQ4ZTUzZDM3MjY2Y2QgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmMKQEAgLTY0LDYgJiM0Mzs2NCw3IEBAIFNFQygmIzM0O3N5c2NhbGwmIzM0OykKIF9fYXJjaF94ODZfNjQKIF9fYXJjaF9hcm02NAogX19hcmNoX3MzOTB4CiYjNDM7X19hcmNoX3Jpc2N2NjQKIF9fc3VjY2VzcyBfX3JldHZhbCgwKQogX19zdGRlcnIoJiMzNDtFUlJPUjogVGltZW91dCBkZXRlY3RlZCBmb3IgbWF5X2dvdG8gaW5zdHJ1Y3Rpb24mIzM0OykKIF9fc3RkZXJyKCYjMzQ7Q1BVOiB7e1swLTldJiM0Mzt9fSBVSUQ6IDAgUElEOiB7e1swLTldJiM0Mzt9fSBDb21tOiB7ey4qfX0mIzM0OykKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYwppbmRleCA4ZDdmZjM4ZTRjMDY5Ny4uODM3MDdmYWVhMDQ5OTQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmMKQEAgLTY2MCw2ICYjNDM7NjYwLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKQogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fYXJjaF9hcm02NAomIzQzO19fYXJjaF9yaXNjdjY0CiBfX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDI0JiMzNDspCiAvKiBtYXlfZ290byBjb3VudGVyIGF0IC0yNCAqLwogX194bGF0ZWQoJiMzNDswOiAqKHU2NCAqKShyMTAgLTI0KSA9JiMzNDspCkBAIC02NzksNyAmIzQzOzY4MCw3IEBAIF9feGxhdGVkKCYjMzQ7MTA6ICoodTY0ICopKHIxMCAtMjQpID0gcjEyJiMzNDspCiBfX3hsYXRlZCgmIzM0OzExOiAqKHU2NCAqKShyMTAgLTgpID0gcjEmIzM0OykKIF9feGxhdGVkKCYjMzQ7MTI6IGV4aXQmIzM0OykKIF9fc3VjY2VzcwotX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX2FybTY0KHZvaWQpCiYjNDM7X19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uKHZvaWQpCiB7CiAJYXNtIHZvbGF0aWxlICgKIAkmIzM0O3IxID0gMTsmIzM0OwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21heV9nb3RvXzEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMKaW5kZXggNGJkZjQyNTZhNDFlNTEuLjk3MTI5ZDI3MzBhMDUzIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMKQEAgLTExLDYgJiM0MzsxMSw3IEBAIF9fZGVzY3JpcHRpb24oJiMzNDttYXlfZ290byAwJiMzNDspCiBfX2FyY2hfeDg2XzY0CiBfX2FyY2hfczM5MHgKIF9fYXJjaF9hcm02NAomIzQzO19fYXJjaF9yaXNjdjY0CiBfX3hsYXRlZCgmIzM0OzA6IHIwID0gMSYjMzQ7KQogX194bGF0ZWQoJiMzNDsxOiBleGl0JiMzNDspCiBfX3N1Y2Nlc3MKQEAgLTMxLDYgJiM0MzszMiw3IEBAIF9fZGVzY3JpcHRpb24oJiMzNDtiYXRjaCAyIG9mIG1heV9nb3RvIDAmIzM0OykKIF9fYXJjaF94ODZfNjQKIF9fYXJjaF9zMzkweAogX19hcmNoX2FybTY0CiYjNDM7X19hcmNoX3Jpc2N2NjQKIF9feGxhdGVkKCYjMzQ7MDogcjAgPSAxJiMzNDspCiBfX3hsYXRlZCgmIzM0OzE6IGV4aXQmIzM0OykKIF9fc3VjY2VzcwpAQCAtNTMsNiAmIzQzOzU1LDcgQEAgX19kZXNjcmlwdGlvbigmIzM0O21heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzEvMCYjMzQ7KQogX19hcmNoX3g4Nl82NAogX19hcmNoX3MzOTB4CiBfX2FyY2hfYXJtNjQKJiM0MztfX2FyY2hfcmlzY3Y2NAogX194bGF0ZWQoJiMzNDswOiByMCA9IDEmIzM0OykKIF9feGxhdGVkKCYjMzQ7MTogZXhpdCYjMzQ7KQogX19zdWNjZXNzCkBAIC03OSw2ICYjNDM7ODIsNyBAQCBfX2Rlc2NyaXB0aW9uKCYjMzQ7bWF5X2dvdG8gYmF0Y2ggd2l0aCBvZmZzZXRzIDIvMCYjMzQ7KQogX19hcmNoX3g4Nl82NAogX19hcmNoX3MzOTB4CiBfX2FyY2hfYXJtNjQKJiM0MztfX2FyY2hfcmlzY3Y2NAogX194bGF0ZWQoJiMzNDswOiAqKHU2NCAqKShyMTAgLTE2KSA9IDY1NTM1JiMzNDspCiBfX3hsYXRlZCgmIzM0OzE6ICoodTY0ICopKHIxMCAtOCkgPSAwJiMzNDspCiBfX3hsYXRlZCgmIzM0OzI6IHIxMiA9ICoodTY0ICopKHIxMCAtMTYpJiMzNDspCkBAIC0xMDYsNCAmIzQzOzExMCw2MSBAQCBfX25ha2VkIHZvaWQgbWF5X2dvdG9fYmF0Y2hfMih2b2lkKQogCTogX19jbG9iYmVyX2FsbCk7CiB9CiAKJiM0MzsvKgomIzQzOyAqIFVzZSBicGZfZ2V0X3ByYW5kb21fdTMyKCkgdG8gcHJldmVudCBEQ0UgZnJvbSByZW1vdmluZyB0aGUgY2hlY2tzLgomIzQzOyAqIHJldHZhbDogMD1hbGwgb2ssIDEtNj1SMC1SNSBjbG9iYmVyZWQuCiYjNDM7ICovCiYjNDM7U0VDKCYjMzQ7cmF3X3RwJiMzNDspCiYjNDM7X19kZXNjcmlwdGlvbigmIzM0O3RpbWVkIG1heV9nb3RvIHByZXNlcnZlcyBSMC1SNSYjMzQ7KQomIzQzO19fYXJjaF94ODZfNjQKJiM0MztfX2FyY2hfYXJtNjQKJiM0MztfX2FyY2hfcmlzY3Y2NAomIzQzO19fc3VjY2VzcwomIzQzO19fcmV0dmFsKDApCiYjNDM7X19uYWtlZCB2b2lkIHRpbWVkX21heV9nb3RvX3ByZXNlcnZlc19yZWdzKHZvaWQpCiYjNDM7ewomIzQzOwlhc20gdm9sYXRpbGUgKAomIzQzOwkmIzM0O2NhbGwgJVticGZfZ2V0X3ByYW5kb21fdTMyXTsmIzM0OwomIzQzOwkmIzM0O3I2ID0gcjA7JiMzNDsKJiM0MzsJJiMzNDtyMCA9IDB4MTExMTsmIzM0OwomIzQzOwkmIzM0O3IwICYjNDM7PSByNjsmIzM0OwomIzQzOwkmIzM0O3IxID0gMHgyMjIyOyYjMzQ7CiYjNDM7CSYjMzQ7cjEgJiM0Mzs9IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjIgPSAweDMzMzM7JiMzNDsKJiM0MzsJJiMzNDtyMiAmIzQzOz0gcjY7JiMzNDsKJiM0MzsJJiMzNDtyMyA9IDB4NDQ0NDsmIzM0OwomIzQzOwkmIzM0O3IzICYjNDM7PSByNjsmIzM0OwomIzQzOwkmIzM0O3I0ID0gMHg1NTU1OyYjMzQ7CiYjNDM7CSYjMzQ7cjQgJiM0Mzs9IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjUgPSAweDY2NjY7JiMzNDsKJiM0MzsJJiMzNDtyNSAmIzQzOz0gcjY7JiMzNDsKJiM0MzsJJiMzNDsuOGJ5dGUgJVttYXlfZ290b107JiMzNDsKJiM0MzsJJiMzNDsuOGJ5dGUgJVtsb29wXTsmIzM0OwomIzQzOwkmIzM0O3IwIC09IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjEgLT0gcjY7JiMzNDsKJiM0MzsJJiMzNDtyMiAtPSByNjsmIzM0OwomIzQzOwkmIzM0O3IzIC09IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjQgLT0gcjY7JiMzNDsKJiM0MzsJJiMzNDtyNSAtPSByNjsmIzM0OwomIzQzOwkmIzM0O2lmIHIwICE9IDB4MTExMSBnb3RvIDFmOyYjMzQ7CiYjNDM7CSYjMzQ7aWYgcjEgIT0gMHgyMjIyIGdvdG8gMmY7JiMzNDsKJiM0MzsJJiMzNDtpZiByMiAhPSAweDMzMzMgZ290byAzZjsmIzM0OwomIzQzOwkmIzM0O2lmIHIzICE9IDB4NDQ0NCBnb3RvIDRmOyYjMzQ7CiYjNDM7CSYjMzQ7aWYgcjQgIT0gMHg1NTU1IGdvdG8gNWY7JiMzNDsKJiM0MzsJJiMzNDtpZiByNSAhPSAweDY2NjYgZ290byA2ZjsmIzM0OwomIzQzOwkmIzM0O3IwID0gMDsmIzM0OwomIzQzOwkmIzM0O2V4aXQ7JiMzNDsKJiM0MzsJJiMzNDsxOiByMCA9IDE7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDsyOiByMCA9IDI7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDszOiByMCA9IDM7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDs0OiByMCA9IDQ7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDs1OiByMCA9IDU7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDs2OiByMCA9IDY7IGV4aXQ7JiMzNDsKJiM0MzsJOgomIzQzOwk6IF9faW1tKGJwZl9nZXRfcHJhbmRvbV91MzIpLAomIzQzOwkgIF9faW1tX2luc24obWF5X2dvdG8sIEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0pDT05ELCAwLCAwLCAxLCAwKSksCiYjNDM7CSAgX19pbW1faW5zbihsb29wLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSwgMCwgMCwgLTIsIDApKQomIzQzOwk6IF9fY2xvYmJlcl9hbGwpOwomIzQzO30KJiM0MzsKIGNoYXIgX2xpY2Vuc2VbXSBTRUMoJiMzNDtsaWNlbnNlJiMzNDspID0gJiMzNDtHUEwmIzM0OzsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDM6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA2NQoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDU3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSSVNDLVYgQlBGIFRpbWVkIE1heS1Hb3RvIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgYnJpbmdpbmcgYGJwZl90aW1lZF9tYXlfZ290b2Agc3VwcG9ydCBpbnRvIHRoZSBSSVNDLVYgQlBGIEpJVCwgd2hpY2ggaXMgYSBnb29kIHN0ZXAuIEkgc2VlIHRoZSBtb2RpZmljYXRpb25zIGFyZSBzcHJlYWQgYWNyb3NzIHRoZSBleHBlY3RlZCBhcmVhczogYGFyY2gvcmlzY3YvbmV0L01ha2VmaWxlYCwgdGhlIEpJVCBjb21waWxlciBpdHNlbGYgKGBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jYCksIGEgbmV3IGFzc2VtYmx5IGZpbGUgZm9yIHRoZSB0aW1lZCBtYXktZ290byBsb2dpYyAoYGFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TYCksIGFuZCBzb21lIHVwZGF0ZWQgc2VsZnRlc3RzLiBTZWVtcyBsaWtlIGEgY29tcHJlaGVuc2l2ZSBhcHByb2FjaCwgd2hpY2ggaXMgd2hhdCBJIHdvdWxkIGV4cGVjdC4KCkxvb2tpbmcgc3BlY2lmaWNhbGx5IGF0IGBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jYCwgdGhlIGtleSBjaGFuZ2UgaXMgd2l0aGluIGBicGZfaml0X2VtaXRfaW5zbmAuIFRoZSBjb25kaXRpb25hbCBsb2dpYyBwcmV2ZW50aW5nIHRoZSBtb3ZlIGZyb20gQTAgdG8gUjAgYWZ0ZXIgYSBmdW5jdGlvbiBjYWxsIGhhcyBiZWVuIGF1Z21lbnRlZC4gSXQgbG9va3MgbGlrZSBpdCBoYW5kbGVzIHRoZSBzcGVjaWFsIGNhc2Ugb2YgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYC4gVGhpcyBtYWtlcyBzZW5zZSwgYmVjYXVzZSBJIGtub3cgdGhhdCBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIHJldHVybnMgaXRzIHJlc3VsdCBpbiBhIGRpZmZlcmVudCByZWdpc3RlciB0aGFuIHRoZSBzdGFuZGFyZCBCUEYgY2FsbHMuIFRoZSBjb2RlIGV4cGxpY2l0bHkgaWRlbnRpZmllcyB0aGlzLCB3aGljaCBpcyBnb29kLiBXZSBkb24mIzM5O3Qgd2FudCB0byBjb3JydXB0IG91ciByZXR1cm4gdmFsdWVzLgoKQmV5b25kIHRoZSByZWdpc3RlciBoYW5kbGluZywgdGhlIGZ1bmN0aW9uIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKClgIGhhcyBiZWVuIGFkZGVkLCBhbmQgaXQgc2ltcGx5IHJldHVybnMgYHRydWVgLiBUaGlzIG1ha2VzIHN1cmUgdGhpcyBjYXBhYmlsaXR5IGlzIGV4cG9zZWQgdG8gdGhlIEJQRiB2ZXJpZmllciBhbmQgZW5zdXJlcyB0aGUgSklUIGNvZGUgY2FuIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBpcyBleGFjdGx5IHdoYXQgSSB3b3VsZCBleHBlY3QgdG8gc2VlIGluIGEgcGF0Y2ggbGlrZSB0aGlzLgoKRnVuY3Rpb25hbGx5LCBJIGNhbiBzZWUgdGhhdCB0aGlzIHBhdGNoIGlzIGRvaW5nIHdoYXQgaXQgbmVlZHMgdG8gZG86IGVuYWJsaW5nIEJQRiB0aW1lZCBtYXktZ290byBzdXBwb3J0IG9uIFJJU0MtVi4gVGhlIEpJVCBjb2RlIGlzIHJlYWNoYWJsZSwgYW5kIHRoZSBzdXBwb3J0IGlzIGVuYWJsZWQgaWYgdGhlIEJQRiBKSVQgaXMgZW5hYmxlZCBvbiBSSVNDLVYsIHdoaWNoIGRlcGVuZHMgb24gYENPTkZJR19CUEZfSklUYCBhbmQgYENPTkZJR19SSVNDVmAgKG9yIGBDT05GSUdfQVJDSF9SVjY0SWApLiBTbywgdGhlcmUgaXNuJiMzOTt0IGFueXRoaW5nIHN0cmFuZ2UgdGhlcmUuIE5vdyBJIG5lZWQgdG8gY2hlY2sgdGhlIGNvbmZpZ3MgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBwcm9wZXJseSBleHBvc2VkIHRvIHRoZSB1c2VyLiBJJiMzOTtsbCBzZWFyY2ggZm9yIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCB0byBjb25maXJtIHRoZSBjb2RlIHdpbGwgZnVuY3Rpb24gY29ycmVjdGx5LiBTbyBmYXIsIHRoZSBwYXRjaCBzZWVtcyB0byBhZGRyZXNzIHRoZSBjb3JlIHByb2JsZW0gYW5kIGludGVncmF0ZSBjb3JyZWN0bHkgaW50byB0aGUgZXhpc3RpbmcgYXJjaGl0ZWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAzOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM9MzE5Nz1ib29sIGJwZl9qaXRfYnlwYXNzX3NwZWNfdjQodm9pZClcbi0tXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0zMjA3LVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM6MzIwODpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTMyMDkte1xuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmM9NTE1PWJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKVxuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmMtNTE5LVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYzo1MjA6Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jLTUyMS17XG4tLVxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYz0yMTY1PWJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKVxuLS1cbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE2OS1cbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmM6MjE3MDpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE3MS17XG4tLVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz0zMDU1PXZvaWQgYXJjaF9icGZfc3RhY2tfd2Fsayhib29sICgqY29uc3VtZV9mbikodm9pZCAqLCB1NjQsIHU2NCwgdTY0KSxcbi0tXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODAtXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jOjMwODE6Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODIte1xuLS1cbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYz00MjEwPXU2NCBicGZfYXJjaF91YWRkcmVzc19saW1pdCh2b2lkKVxuLS1cbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYy00MjE0LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jOjQyMTU6Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMtNDIxNi17XG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaD0xMTkxPWJvb2wgYnBmX2ppdF9zdXBwb3J0c19wcml2YXRlX3N0YWNrKHZvaWQpO1xuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMTkyOmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKTtcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTE5My1ib29sIGJwZl9qaXRfc3VwcG9ydHNfZnNlc3Npb24odm9pZCk7XG4tLVxua2VybmVsL2JwZi9jb3JlLmM9MzM3ND12b2lkIF9fd2VhayBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNwLCB1NjQgYnApLCB2b2lkICpjb29raWUpXG4tLVxua2VybmVsL2JwZi9jb3JlLmMtMzM3Ny1cbmtlcm5lbC9icGYvY29yZS5jOjMzNzg6Ym9vbCBfX3dlYWsgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxua2VybmVsL2JwZi9jb3JlLmMtMzM3OS17XG4tLVxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgwPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3NTQtXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjE3NTU6XHRcdGlmIChicGZfaXNfbWF5X2dvdG9faW5zbihpbnNuKSBcdTAwMjZcdTAwMjYgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290bygpKSB7XG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3NTYtXHRcdFx0aW50IHN0YWNrX29mZl9jbnQgPSAtc3RhY2tfZGVwdGggLSAxNjtcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTIzNjgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBlbnYtXHUwMDNlc3VicHJvZ19jbnQ7IGkmIzQzOyYjNDM7KSB7XG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjIzNjk6XHRcdGludCBkZWx0YSA9IGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSA/IDIgOiAxO1xua2VybmVsL2JwZi9maXh1cHMuYy0yMzcwLVx0XHRpbnQgc3VicHJvZ19zdGFydCA9IHN1YnByb2dzW2ldLnN0YXJ0O1xuLS1cbmtlcm5lbC9icGYvZml4dXBzLmMtMjM4Mi1cdFx0c3RhY2tfZGVwdGggPSBzdWJwcm9nc1tpXS5zdGFja19kZXB0aDtcbmtlcm5lbC9icGYvZml4dXBzLmM6MjM4MzpcdFx0aWYgKGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSkge1xua2VybmVsL2JwZi9maXh1cHMuYy0yMzg0LVx0XHRcdGluc25fYnVmW2NudCYjNDM7JiM0MztdID0gQlBGX1NUX01FTShCUEZfRFcsIEJQRl9SRUdfRlAsIC1zdGFja19kZXB0aCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDMzCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJJU0MtViBCUEYgSklUIEJ1ZyBIdW50OiBBIFRlc3RhYmxlIE9wcG9ydHVuaXR5KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFuZCB0d2Vha3MgYGJwZl9qaXRfZW1pdF9pbnNuYCBpbiB0aGUgUklTQy1WIEJQRiBKSVQgY29tcGlsYXRpb24gY29kZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMsICYjMzQ7WWVzLCB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHdlIGNhbiB0cmlwIHVwIGlmIHdlIHRocm93IGZ1enppbmcgYXQgaXQuJiMzNDsgVGhpbmtpbmcgcHJhY3RpY2FsbHksIGlmIHdlJiMzOTtyZSBmdXp6aW5nIEJQRiBvbiBSSVNDLVYsIHRoaXMgY29kZSBwYXRoICp3aWxsKiBnZXQgZXhlcmNpc2VkLiBXYWl0IGEgbWludXRlLi4uIGRvZXNuJiMzOTt0IHN5emthbGxlciAqYWxyZWFkeSogZnV6eiB0aGUgUklTQy1WIEJQRiBKSVQgd2hlbiBydW5uaW5nIG9uIGEgUklTQy1WIHRhcmdldD8gQmluZ28hCgpUaGlzIGlzIGV4Y2VsbGVudCBuZXdzLiBJdCBtZWFucyB3ZSBoYXZlIGEgc2ltcGxlIHdheSB0byB0ZXN0IHRoaXMhIFdlIGp1c3QgbmVlZCB0byBlbnN1cmUgdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb25zIGFyZSBlbmFibGVkLiBMZXQgbWUgc2VlLi4uIGBCUEZfSklUYCBhbmQgZWl0aGVyIGBSSVNDVmAgb3IgYEFSQ0hfUlY2NElgIHNob3VsZCBkbyB0aGUgdHJpY2suIE5vdywgdG8gZG91YmxlLWNoZWNrIHRoYXQgZXZlcnl0aGluZyBpcyBpbiBwbGFjZSwgSSBzaG91bGQgcHJvYmFibHkgZ2xhbmNlIGF0IGBhcmNoL3Jpc2N2L25ldC9NYWtlZmlsZWAgdG8gbWFrZSBzdXJlIGFsbCB0aGUgcGllY2VzIGFyZSBsaW5rZWQgdG9nZXRoZXIgY29ycmVjdGx5LiBUaW1lIHRvIHZlcmlmeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX0pJVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTItXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZTozOm9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb3JlLm9cbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTQtXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZT01PWlmZXEgKCQoQ09ORklHX0FSQ0hfUlY2NEkpLHkpXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZTo2Olx0b2JqLSQoQ09ORklHX0JQRl9KSVQpICYjNDM7PSBicGZfaml0X2NvbXA2NC5vIGJwZl90aW1lZF9tYXlfZ290by5vXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZS03LWVsc2VcbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlOjg6XHRvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcDMyLm9cbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTktZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MDY5CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgQlBGIEpJVCBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgYENPTkZJR19CUEZfSklUYCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBkZWZpbml0ZWx5IGVzc2VudGlhbCBoZXJlLiBCdXQgaGFuZyBvbiwgdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgUklTQy1WIHNwZWNpZmljYWxseSwgYW5kIEkgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhhdCBTeXprYWxsZXIsIHdoaWNoIGlzIHdoYXQgSSYjMzk7bSBsaWtlbHkgdXNpbmcsIHJ1bnMgb24gYSBtdWNoIGJyb2FkZXIgcmFuZ2Ugb2YgYXJjaGl0ZWN0dXJlcyBsaWtlIHg4Nl82NCwgYXJtNjQsIGFuZCByaXNjdjY0LCBldGMuIElmIEkgZmxhZyB0aGlzIHdpdGggYFdvcnRoRnV6emluZz10cnVlYCwgaXQmIzM5O2xsIGdldCBhdHRlbnRpb24gZnJvbSB0aGUgZnV6emVyLgoKUmlnaHQsIHRpbWUgdG8gZm9jdXMgb24gc29tZSBzeW1ib2xzLiBgYnBmX2ppdF9lbWl0X2luc25gIGxvb2tzIGxpa2UgYSBrZXkgZnVuY3Rpb24gc2luY2UgaXQmIzM5O3MgdGhlIGNvcmUgSklUIGluc3RydWN0aW9uIGVtaXR0ZXIsIGJ1dCBpdCBtaWdodCBiZSB0b28gZ2VuZXJpYy4gSXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIEpJVCwgc28gaXQgbWlnaHQgYmUuIGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgaXMgYW4gYXNzZW1ibHkgZnVuY3Rpb24sIHNvIEtDT1YgaW5zdHJ1bWVudGF0aW9uIGlzIG91dCBmb3IgdGhhdCBvbmUsIHdoaWNoIGlzIHVuZm9ydHVuYXRlLiBgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b2AgaXMganVzdCBhIGJvb2xlYW4sIHNvIHRoYXQmIzM5O3Mgbm90IGdvaW5nIHRvIHRlbGwgdXMgYSBsb3QuCgpBaGEhIGBicGZfaml0X2VtaXRfaW5zbmAgKmlzKiBiZWluZyBtb2RpZmllZCwgc28gdGhhdCYjMzk7cyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgZGlnZ2luZyBkZWVwZXIuIEl0IGxvb2tzIGxpa2UgdGhhdCBpcyB0aGUgbWFpbiB3b3JraG9yc2UgaGVyZSwgc28gaXQgaXMgdGhlIGNvcnJlY3QgcGxhY2UgdG8gZm9jdXMgb24uIE9rYXksIGxldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIGludm9sdmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAzOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FyY2hfYnBmX3RpbWVkX21heV9nb3RvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jPTEyNTM9c3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjcwLVx0XHQvKlxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM6MTY3MTpcdFx0ICogQ2FsbCB0byBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjcyLVx0XHQgKiB2ZXJpZmllciBhbmQgY2FsbGVkIHdpdGggY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbiB3aXRoXG4tLVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMTY3NC1cdFx0ICovXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzoxNjc1Olx0XHRpZiAoZnVuY19hZGRyICE9ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjc2LVx0XHRcdGVtaXQoQTY0X01PVigxLCByMCwgQTY0X1IoMCkpLCBjdHgpO1xuLS1cbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTUtXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo2OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNy1cdC8qIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGFuZCBlbWl0IGZyYW1lIHJlY29yZCAqL1xuLS1cbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTIwLVx0ICpcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjIxOlx0ICogQmVmb3JlIGdlbmVyYXRpbmcgdGhlIGNhbGwgdG8gYXJjaF9icGZfdGltZWRfbWF5X2dvdG8sIHRoZSB2ZXJpZmllclxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMjItXHQgKiBnZW5lcmF0ZXMgYSBsb2FkIGluc3RydWN0aW9uIHVzaW5nIEZQLCBpLmUuIFJFR19BWCA9ICoodTY0ICopKEZQIC1cbi0tXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0zOS1cdHJldFxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6NDA6U1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYz05Njc9aW50IGJwZl9qaXRfYnVpbGRfYm9keShzdHJ1Y3QgYnBmX3Byb2cgKmZwLCB1MzIgKmltYWdlLCB1MzIgKmZpbWFnZSwgc3RydWN0IGNvZGVnZW5fY29udGV4dCAqY3R4LFxuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYy0xNzY5LVx0XHRcdC8qXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmM6MTc3MDpcdFx0XHQgKiBDYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaXMgZW1pdHRlZCBieSB0aGVcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYy0xNzcxLVx0XHRcdCAqIHZlcmlmaWVyIGFuZCBjYWxsZWQgd2l0aCBjdXN0b20gY2FsbGluZyBjb252ZW50aW9uIHdpdGhcbi0tXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc4Mi1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYzoxNzgzOlx0XHRcdGlmIChmdW5jX2FkZHIgPT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bykge1xuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXA2NC5jLTE3ODQtXHRcdFx0XHRyZXQgPSAwO1xuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNy0vKlxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo4OiAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgdHJhbXBvbGluZSBmb3IgcG93ZXJwYzY0XG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTktICpcbi0tXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE5LVxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzoyMDpTWU1fRlVOQ19TVEFSVChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMjEtXHQvKiBQcm9sb2d1ZTogc2F2ZSBMUiwgYWxsb2NhdGUgZnJhbWUgKi9cbi0tXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTU2LVx0YmxyXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjU3OlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jPTEzNjE9aW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXG4tLVxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODQ0LVx0XHQvKlxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoxODQ1Olx0XHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlIHZlcmlmaWVyIGFuZFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODQ2LVx0XHQgKiByZXR1cm5zIGl0cyByZXN1bHQgaW4gQlBGX1JFR19BWCBpbnN0ZWFkIG9mIEJQRl9SRUdfMCwgc29cbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDgtXHRcdCAqL1xuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoxODQ5Olx0XHRpZiAoaW5zbi1cdTAwM2VzcmNfcmVnICE9IEJQRl9QU0VVRE9fQ0FMTCBcdTAwMjZcdTAwMjYgYWRkciAhPSAodTY0KWFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODUwLVx0XHRcdGVtaXRfbXYoYnBmX3RvX3J2X3JlZyhCUEZfUkVHXzAsIGN0eCksIFJWX1JFR19BMCwgY3R4KTtcbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0xNi1cbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjE3OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMTgtXHRhZGRpXHRzcCwgc3AsIC02NFxuLS1cbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTQ2LVx0cmV0XG5hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo0NzpTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG4tLVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz04NzY9c3RhdGljIG5vaW5saW5lIGludCBicGZfaml0X2luc24oc3RydWN0IGJwZl9qaXQgKmppdCwgc3RydWN0IGJwZl9wcm9nICpmcCxcbi0tXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTE4NDEtXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jOjE4NDI6XHRcdGlmICgodm9pZCAqKWZ1bmMgPT0gYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pIHtcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMTg0My1cdFx0XHQvKlxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYzoxODQ0Olx0XHRcdCAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaGFzIGEgc3BlY2lhbCBBQkk6IHRoZVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0xODQ1LVx0XHRcdCAqIHBhcmFtZXRlcnMgYXJlIGluIEJQRl9SRUdfQVggYW5kIEJQRl9SRUdfMTA7IHRoZVxuLS1cbmFyY2gvczM5MC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMjEtXG5hcmNoL3MzOTAvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjIyOlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMy1cdC8qXG4tLVxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy00NC1cdEJSX0VYICVyMVxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo0NTpTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG4tLVxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTEwLVxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjExOlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTEyLVx0QU5OT1RBVEVfTk9FTkRCUlxuLS1cbmFyY2gveDg2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy01NC1cdFJFVFxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjU1OlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTExOTU9dm9pZCBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNwLCB1NjQgYnApLCB2b2lkICpjb29raWUpO1xuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMTk2OnU2NCBhcmNoX2JwZl90aW1lZF9tYXlfZ290byh2b2lkKTtcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTE5Ny11NjQgYnBmX2NoZWNrX3RpbWVkX21heV9nb3RvKHN0cnVjdCBicGZfdGltZWRfbWF5X2dvdG8gKik7XG4tLVxua2VybmVsL2JwZi9jb3JlLmM9MzM3OD1ib29sIF9fd2VhayBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG4tLVxua2VybmVsL2JwZi9jb3JlLmMtMzM4Mi1cbmtlcm5lbC9icGYvY29yZS5jOjMzODM6dTY0IF9fd2VhayBhcmNoX2JwZl90aW1lZF9tYXlfZ290byh2b2lkKVxua2VybmVsL2JwZi9jb3JlLmMtMzM4NC17XG4tLVxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgwPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3NjQtXHRcdFx0ICogdW50aWwgdGhlIHZhbHVlIGJlY29tZXMgMCBpbiBBWCAodGh1cywgMSBpbiBzdGFjayksXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjE3NjU6XHRcdFx0ICogYWZ0ZXIgd2hpY2ggd2UgY2FsbCBhcmNoX2JwZl90aW1lZF9tYXlfZ290bywgd2hpY2hcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc2Ni1cdFx0XHQgKiBlaXRoZXIgc2V0cyBBWCB0byAweGZmZmYgdG8ga2VlcCBsb29waW5nLCBvciB0byAwXG4tLVxua2VybmVsL2JwZi9maXh1cHMuYy0xNzgyLVx0XHRcdCAqICh0byBhZGQgdG8gcjEwL2ZwKSwgYW5kIGFsc28gYXMgdGhlIHJldHVybiB2YWx1ZSBvZlxua2VybmVsL2JwZi9maXh1cHMuYzoxNzgzOlx0XHRcdCAqIHRoZSBjYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLlxua2VybmVsL2JwZi9maXh1cHMuYy0xNzg0LVx0XHRcdCAqL1xua2VybmVsL2JwZi9maXh1cHMuYy0xNzg1LVx0XHRcdGluc25fYnVmWzRdID0gQlBGX01PVjY0X0lNTShCUEZfUkVHX0FYLCBzdGFja19vZmZfY250KTtcbmtlcm5lbC9icGYvZml4dXBzLmM6MTc4NjpcdFx0XHRpbnNuX2J1Zls1XSA9IEJQRl9FTUlUX0NBTEwoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pO1xua2VybmVsL2JwZi9maXh1cHMuYy0xNzg3LVx0XHRcdGluc25fYnVmWzZdID0gQlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzEwLCBCUEZfUkVHX0FYLCBzdGFja19vZmZfY250KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTMyMQoJCQkJCQkJb3V0cHV0OiAxNDcKCQkJCQkJCXRob3VnaHRzOiA2ODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhpcyBCUEYgVGltZWQgTWF5X0dvdG8gUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgc2VlLCB0aGUgcHJpbWFyeSBtb2RpZmljYXRpb24gaGVyZSBjZW50ZXJzIGFyb3VuZCBpbXBsZW1lbnRpbmcgQlBGJiMzOTtzIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgc3BlY2lmaWNhbGx5IGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gSXQgbG9va3MgbGlrZSB0aGUgY29yZSB3b3JrIGludm9sdmVzIGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lLCB3aGljaCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBtYWluIEMgZnVuY3Rpb24gdG91Y2hlZCBpcyBgYnBmX2ppdF9lbWl0X2luc25gLCBhbmQgSSBhbHNvIHNlZSBhIG5ldyBmdW5jdGlvbiwgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gLCBhZGRlZC4KCkluaXRpYWxseSwgSSB0aG91Z2h0IG9mIGluY2x1ZGluZyBib3RoIGBicGZfaml0X2VtaXRfaW5zbmAgYW5kIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCBpbiB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdC4gSG93ZXZlciwgYGJwZl9qaXRfZW1pdF9pbnNuYCBpcyBhIHNpemVhYmxlIGZ1bmN0aW9uLCBlc3BlY2lhbGx5IGdpdmVuIGl0cyByb2xlIGluIHRoZSBKSVQgcHJvY2Vzcy4gSXQgaXMgdGhlIHByaW1hcnkgSklUIGZ1bmN0aW9uLCBhZnRlciBhbGwuIEJ1dCBnaXZlbiB0aGF0IGl0JiMzOTtzIHRoZSBvbmx5IG1vZGlmaWVkIEMgZnVuY3Rpb24sIGFuZCB0aGlzIHBhdGNoIGRvZXNuJiMzOTt0IGFwcGVhciB0byBiZSBkcmFzdGljYWxseSBjaGFuZ2luZyB0aGUgaG90LXBhdGggcHJvY2Vzc2luZyBvZiBwYWNrZXRzLCBJJiMzOTtsbCBnbyB3aXRoIGl0LgoKSSB3aWxsIGFkZCBib3RoIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCBhbmQgYGJwZl9qaXRfZW1pdF9pbnNuYCB0byB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdCwgc2luY2UgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gIGlzIGEgdGlueSBmdW5jdGlvbiwgYW5kIGBicGZfaml0X2VtaXRfaW5zbmAgaXMgbm90IGNhbGxlZCBkdXJpbmcgcGFja2V0IHByb2Nlc3NpbmcuCgpOb3csIG9uIHRvIHRoZSBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgQ09ORklHX0JQRl9KSVRgIGlzIHRoZSBvbmx5IG9uZSBleHBsaWNpdGx5IG1lbnRpb25lZC4gQ29uc2lkZXJpbmcgdGhlIGluc3RydWN0aW9ucywgSSBuZWVkIHRvIGZvY3VzIG9uIGNvbmZpZ3MgdGhhdCBzcGVjaWZpY2FsbHkgZW5hYmxlICp0aGlzKiBjb2RlLiBXaGlsZSBgQlBGX0pJVGAgaXMgb2Z0ZW4gZW5hYmxlZCwgaXQmIzM5O3MgZGVmaW5pdGVseSB0aGUgcmVsZXZhbnQgY29uZmlnIGZvciBlbmFibGluZyB0aGlzIHNwZWNpZmljIEpJVCBmdW5jdGlvbmFsaXR5LgoKVGhlcmUmIzM5O3MgYSBub3RlIGFib3V0IG5vdCBsaXN0aW5nIGdlbmVyaWMgY29uZmlncywgd2hpY2ggbWFkZSBtZSBwYXVzZSBvbiB3aGV0aGVyIHRvIGluY2x1ZGUgYEFSQ0hfUlY2NElgIHNpbmNlIHRoaXMgaXMgZm9yIFJJU0MtViwgYnV0IGl0IHNlZW1zIHRvIGJlIHRoZSBhcmNoaXRlY3R1cmUgaXRzZWxmLCB3aGljaCBpcyB0b28gZ2VuZXJpYy4gSSYjMzk7bGwgc3RpY2sgd2l0aCBsaXN0aW5nIGBCUEZfSklUYCB1bmRlciBgRW5hYmxlQ29uZmlnc2AuCgpKdXN0IHRvIGJlIHN1cmUsIEkgZG91YmxlLWNoZWNrZWQgdGhlIG1ha2VmaWxlcyBhbmQgZGlkbiYjMzk7dCBmaW5kIGFueSBvdGhlciAqc3BlY2lmaWMqIGNvbmZpZ3MgdGllZCB0byB0aGlzIG1vZGlmaWNhdGlvbi4KClRoZSByZWFzb25pbmcgaXMgcHJldHR5IGNsZWFyOiBUaGlzIHBhdGNoIGFkZHMgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBvbiBSSVNDLVYgYnkgbW9kaWZ5aW5nIHRoZSBKSVQgY29tcGlsZXIuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGNvcmUga2VybmVsIGNvZGUgYWNjZXNzaWJsZSB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zLCB3aGljaCBpcyBjcnVjaWFsIGZvciBCUEYmIzM5O3MgZnVuY3Rpb25hbGl0eSBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KClNvLCBoZXJlJiMzOTtzIHdoYXQgSSYjMzk7dmUgZ290OgoKKiAgICoqRm9jdXNTeW1ib2xzOioqCiAgICAqICAgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gCiAgICAqICAgYGJwZl9qaXRfZW1pdF9pbnNuYAoqICAgKipFbmFibGVDb25maWdzOioqCiAgICAqICAgYEJQRl9KSVRgCgpMZXQmIzM5O3MgY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDM6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvJiMzNDssCiAgICAmIzM0O2JwZl9qaXRfZW1pdF9pbnNuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8mIzM0OywKICAgICYjMzQ7YnBmX2ppdF9lbWl0X2luc24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW1wbGVtZW50cyBCUEYgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBmb3IgdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUgYnkgYWRkaW5nIHRoZSBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFzc2VtYmx5IHRyYW1wb2xpbmUgYW5kIHVwZGF0aW5nIHRoZSBKSVQgY29tcGlsZXIgKGBicGZfaml0X2VtaXRfaW5zbmApIHRvIGhhbmRsZSBpdHMgY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zIG9uIFJJU0MtViB3aXRoIEpJVCBlbmFibGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjNUMDM6MDI6MDkuMjIxODcxMTU0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI5MzEwMjk2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9cIixcbiAgICBcImJwZl9qaXRfZW1pdF9pbnNuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW1wbGVtZW50cyBCUEYgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBmb3IgdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUgYnkgYWRkaW5nIHRoZSBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFzc2VtYmx5IHRyYW1wb2xpbmUgYW5kIHVwZGF0aW5nIHRoZSBKSVQgY29tcGlsZXIgKGBicGZfaml0X2VtaXRfaW5zbmApIHRvIGhhbmRsZSBpdHMgY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zIG9uIFJJU0MtViB3aXRoIEpJVCBlbmFibGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMzowMjowOS4yMjE4Nzg1ODRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwOTc1OTgwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGMyZTlhNzc0ZDdjY2EzMTBhNWJiMzQwN2VmNjU1OTYxYTE3ZDYyMzBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMDM6MDI6MDcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUgYi9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxcbmluZGV4IDlhMWU1ZjBhOTRlNTU5Li42NDU4ZDRkNTE5OTBhNyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxcbisrKyBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlXFxuQEAgLTMsNyArMyw3IEBAXFxuIG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvcmUub1xcbiBcXG4gaWZlcSAoJChDT05GSUdfQVJDSF9SVjY0SSkseSlcXG4tXFx0b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDY0Lm9cXG4rXFx0b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDY0Lm8gYnBmX3RpbWVkX21heV9nb3RvLm9cXG4gZWxzZVxcbiBcXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbiBlbmRpZlxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuY1xcbmluZGV4IGFkMDg5YTlhNGVhOWFjLi44ZmU4OTY5ZmI4YTBmOCAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jXFxuKysrIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuY1xcbkBAIC0xODQxLDcgKzE4NDEsMTIgQEAgaW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXFxuIFxcdFxcdGlmIChhdXgtXFx1MDAzZXRhaWxfY2FsbF9yZWFjaGFibGUgXFx1MDAyNlxcdTAwMjYgaW5zbi1cXHUwMDNlc3JjX3JlZyA9PSBCUEZfUFNFVURPX0NBTEwpXFxuIFxcdFxcdFxcdGVtaXRfc2QoUlZfUkVHX1NQLCBjdHgtXFx1MDAzZXRjY19vZmZzZXQsIFJWX1JFR19UQ0MsIGN0eCk7XFxuIFxcbi1cXHRcXHRpZiAoaW5zbi1cXHUwMDNlc3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwpXFxuK1xcdFxcdC8qXFxuK1xcdFxcdCAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaXMgZW1pdHRlZCBieSB0aGUgdmVyaWZpZXIgYW5kXFxuK1xcdFxcdCAqIHJldHVybnMgaXRzIHJlc3VsdCBpbiBCUEZfUkVHX0FYIGluc3RlYWQgb2YgQlBGX1JFR18wLCBzb1xcbitcXHRcXHQgKiBza2lwIHRoZSBub3JtYWwgXFxcIm1vdmUgcmV0dXJuIHJlZ2lzdGVyIGludG8gUjBcXFwiLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKGluc24tXFx1MDAzZXNyY19yZWcgIT0gQlBGX1BTRVVET19DQUxMIFxcdTAwMjZcXHUwMDI2IGFkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4gXFx0XFx0XFx0ZW1pdF9tdihicGZfdG9fcnZfcmVnKEJQRl9SRUdfMCwgY3R4KSwgUlZfUkVHX0EwLCBjdHgpO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0fVxcbkBAIC0yMTYxLDMgKzIxNjYsOCBAQCBib29sIGJwZl9qaXRfc3VwcG9ydHNfc3VicHJvZ190YWlsY2FsbHModm9pZClcXG4ge1xcbiBcXHRyZXR1cm4gdHJ1ZTtcXG4gfVxcbitcXG4rYm9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXFxuK3tcXG4rXFx0cmV0dXJuIHRydWU7XFxuK31cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMgYi9hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uU1xcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLmY0YmYyY2QxMDU4NjZiXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TXFxuQEAgLTAsMCArMSw0NyBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xcbisvKiBDb3B5cmlnaHQgKGMpIDIwMjYgRmVuZyBKaWFuZyBcXHUwMDNjamlhbmdmZW5nQGt5bGlub3MuY25cXHUwMDNlICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlua2FnZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjYXNtL2FzbS5oXFx1MDAzZVxcbitcXG4rLypcXG4rICogVHJhbXBvbGluZSBmb3IgdGhlIEJQRiB0aW1lZCBtYXlfZ290byBsb29wIGJvdW5kLiBDdXN0b20gY2FsbGluZyBjb252ZW50aW9uOlxcbisgKlxcdC0gaW5wdXQ6ICBzdGFjayBvZmZzZXQgaW4gQlBGX1JFR19BWCAodDApXFxuKyAqXFx0LSBvdXRwdXQ6IHVwZGF0ZWQgY291bnQgaW4gQlBGX1JFR19BWCAodDApXFxuKyAqXFxuKyAqIENhbGxzIGJwZl9jaGVja190aW1lZF9tYXlfZ290byhwdHIpIHdpdGggdGhlIHN0YW5kYXJkIFJJU0MtViBBQkksIHdoZXJlXFxuKyAqIHB0ciA9IEJQRl9SRUdfRlAgKHM1KSArIEJQRl9SRUdfQVggKHQwKS4gQlBGIFIwLVI1IChhNSwgYTAtYTQpIGFyZSBzYXZlZFxcbisgKiBhY3Jvc3MgdGhlIGNhbGw7IEJQRl9SRUdfRlAgKHM1KSBpcyBjYWxsZWUtc2F2ZWQgYW5kIG5lZWRzIG5vIHNhdmluZy5cXG4rICovXFxuK1xcbitTWU1fRlVOQ19TVEFSVChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4rXFx0YWRkaVxcdHNwLCBzcCwgLTY0XFxuK1xcdHNkXFx0cmEsIDU2KHNwKVxcbitcXHRzZFxcdHMwLCA0OChzcClcXG4rXFx0YWRkaVxcdHMwLCBzcCwgNjRcXG4rXFxuK1xcdC8qIFNhdmUgQlBGIHJlZ2lzdGVycyBSMC1SNSAoYTUsIGEwLWE0KSAqL1xcbitcXHRzZFxcdGE1LCA0MChzcClcXG4rXFx0c2RcXHRhMCwgMzIoc3ApXFxuK1xcdHNkXFx0YTEsIDI0KHNwKVxcbitcXHRzZFxcdGEyLCAxNihzcClcXG4rXFx0c2RcXHRhMywgOChzcClcXG4rXFx0c2RcXHRhNCwgMChzcClcXG4rXFxuK1xcdGFkZFxcdGEwLCB0MCwgczVcXG4rXFx0Y2FsbFxcdGJwZl9jaGVja190aW1lZF9tYXlfZ290b1xcbitcXHRtdlxcdHQwLCBhMFxcbitcXG4rXFx0LyogUmVzdG9yZSBCUEYgcmVnaXN0ZXJzIFIwLVI1ICovXFxuK1xcdGxkXFx0YTQsIDAoc3ApXFxuK1xcdGxkXFx0YTMsIDgoc3ApXFxuK1xcdGxkXFx0YTIsIDE2KHNwKVxcbitcXHRsZFxcdGExLCAyNChzcClcXG4rXFx0bGRcXHRhMCwgMzIoc3ApXFxuK1xcdGxkXFx0YTUsIDQwKHNwKVxcbitcXG4rXFx0bGRcXHRzMCwgNDgoc3ApXFxuK1xcdGxkXFx0cmEsIDU2KHNwKVxcbitcXHRhZGRpXFx0c3AsIHNwLCA2NFxcbitcXHRyZXRcXG4rU1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmNcXG5pbmRleCA5MmJhMWQ3MmUwZWNlNC4uOGQ4ZTUzZDM3MjY2Y2QgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXFxuQEAgLTY0LDYgKzY0LDcgQEAgU0VDKFxcXCJzeXNjYWxsXFxcIilcXG4gX19hcmNoX3g4Nl82NFxcbiBfX2FyY2hfYXJtNjRcXG4gX19hcmNoX3MzOTB4XFxuK19fYXJjaF9yaXNjdjY0XFxuIF9fc3VjY2VzcyBfX3JldHZhbCgwKVxcbiBfX3N0ZGVycihcXFwiRVJST1I6IFRpbWVvdXQgZGV0ZWN0ZWQgZm9yIG1heV9nb3RvIGluc3RydWN0aW9uXFxcIilcXG4gX19zdGRlcnIoXFxcIkNQVToge3tbMC05XSt9fSBVSUQ6IDAgUElEOiB7e1swLTldK319IENvbW06IHt7Lip9fVxcXCIpXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xcbmluZGV4IDhkN2ZmMzhlNGMwNjk3Li44MzcwN2ZhZWEwNDk5NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG5AQCAtNjYwLDYgKzY2MCw3IEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbl94ODZfNjQodm9pZClcXG4gXFxuIFNFQyhcXFwicmF3X3RwXFxcIilcXG4gX19hcmNoX2FybTY0XFxuK19fYXJjaF9yaXNjdjY0XFxuIF9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCAyNFxcXCIpXFxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXFxuIF9feGxhdGVkKFxcXCIwOiAqKHU2NCAqKShyMTAgLTI0KSA9XFxcIilcXG5AQCAtNjc5LDcgKzY4MCw3IEBAIF9feGxhdGVkKFxcXCIxMDogKih1NjQgKikocjEwIC0yNCkgPSByMTJcXFwiKVxcbiBfX3hsYXRlZChcXFwiMTE6ICoodTY0ICopKHIxMCAtOCkgPSByMVxcXCIpXFxuIF9feGxhdGVkKFxcXCIxMjogZXhpdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbi1fX25ha2VkIHZvaWQgbWF5X2dvdG9faW50ZXJhY3Rpb25fYXJtNjQodm9pZClcXG4rX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uKHZvaWQpXFxuIHtcXG4gXFx0YXNtIHZvbGF0aWxlIChcXG4gXFx0XFxcInIxID0gMTtcXFwiXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXFxuaW5kZXggNGJkZjQyNTZhNDFlNTEuLjk3MTI5ZDI3MzBhMDUzIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXFxuQEAgLTExLDYgKzExLDcgQEAgX19kZXNjcmlwdGlvbihcXFwibWF5X2dvdG8gMFxcXCIpXFxuIF9fYXJjaF94ODZfNjRcXG4gX19hcmNoX3MzOTB4XFxuIF9fYXJjaF9hcm02NFxcbitfX2FyY2hfcmlzY3Y2NFxcbiBfX3hsYXRlZChcXFwiMDogcjAgPSAxXFxcIilcXG4gX194bGF0ZWQoXFxcIjE6IGV4aXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG5AQCAtMzEsNiArMzIsNyBAQCBfX2Rlc2NyaXB0aW9uKFxcXCJiYXRjaCAyIG9mIG1heV9nb3RvIDBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9fYXJjaF9zMzkweFxcbiBfX2FyY2hfYXJtNjRcXG4rX19hcmNoX3Jpc2N2NjRcXG4gX194bGF0ZWQoXFxcIjA6IHIwID0gMVxcXCIpXFxuIF9feGxhdGVkKFxcXCIxOiBleGl0XFxcIilcXG4gX19zdWNjZXNzXFxuQEAgLTUzLDYgKzU1LDcgQEAgX19kZXNjcmlwdGlvbihcXFwibWF5X2dvdG8gYmF0Y2ggd2l0aCBvZmZzZXRzIDIvMS8wXFxcIilcXG4gX19hcmNoX3g4Nl82NFxcbiBfX2FyY2hfczM5MHhcXG4gX19hcmNoX2FybTY0XFxuK19fYXJjaF9yaXNjdjY0XFxuIF9feGxhdGVkKFxcXCIwOiByMCA9IDFcXFwiKVxcbiBfX3hsYXRlZChcXFwiMTogZXhpdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbkBAIC03OSw2ICs4Miw3IEBAIF9fZGVzY3JpcHRpb24oXFxcIm1heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9fYXJjaF9zMzkweFxcbiBfX2FyY2hfYXJtNjRcXG4rX19hcmNoX3Jpc2N2NjRcXG4gX194bGF0ZWQoXFxcIjA6ICoodTY0ICopKHIxMCAtMTYpID0gNjU1MzVcXFwiKVxcbiBfX3hsYXRlZChcXFwiMTogKih1NjQgKikocjEwIC04KSA9IDBcXFwiKVxcbiBfX3hsYXRlZChcXFwiMjogcjEyID0gKih1NjQgKikocjEwIC0xNilcXFwiKVxcbkBAIC0xMDYsNCArMTEwLDYxIEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19iYXRjaF8yKHZvaWQpXFxuIFxcdDogX19jbG9iYmVyX2FsbCk7XFxuIH1cXG4gXFxuKy8qXFxuKyAqIFVzZSBicGZfZ2V0X3ByYW5kb21fdTMyKCkgdG8gcHJldmVudCBEQ0UgZnJvbSByZW1vdmluZyB0aGUgY2hlY2tzLlxcbisgKiByZXR2YWw6IDA9YWxsIG9rLCAxLTY9UjAtUjUgY2xvYmJlcmVkLlxcbisgKi9cXG4rU0VDKFxcXCJyYXdfdHBcXFwiKVxcbitfX2Rlc2NyaXB0aW9uKFxcXCJ0aW1lZCBtYXlfZ290byBwcmVzZXJ2ZXMgUjAtUjVcXFwiKVxcbitfX2FyY2hfeDg2XzY0XFxuK19fYXJjaF9hcm02NFxcbitfX2FyY2hfcmlzY3Y2NFxcbitfX3N1Y2Nlc3NcXG4rX19yZXR2YWwoMClcXG4rX19uYWtlZCB2b2lkIHRpbWVkX21heV9nb3RvX3ByZXNlcnZlc19yZWdzKHZvaWQpXFxuK3tcXG4rXFx0YXNtIHZvbGF0aWxlIChcXG4rXFx0XFxcImNhbGwgJVticGZfZ2V0X3ByYW5kb21fdTMyXTtcXFwiXFxuK1xcdFxcXCJyNiA9IHIwO1xcXCJcXG4rXFx0XFxcInIwID0gMHgxMTExO1xcXCJcXG4rXFx0XFxcInIwICs9IHI2O1xcXCJcXG4rXFx0XFxcInIxID0gMHgyMjIyO1xcXCJcXG4rXFx0XFxcInIxICs9IHI2O1xcXCJcXG4rXFx0XFxcInIyID0gMHgzMzMzO1xcXCJcXG4rXFx0XFxcInIyICs9IHI2O1xcXCJcXG4rXFx0XFxcInIzID0gMHg0NDQ0O1xcXCJcXG4rXFx0XFxcInIzICs9IHI2O1xcXCJcXG4rXFx0XFxcInI0ID0gMHg1NTU1O1xcXCJcXG4rXFx0XFxcInI0ICs9IHI2O1xcXCJcXG4rXFx0XFxcInI1ID0gMHg2NjY2O1xcXCJcXG4rXFx0XFxcInI1ICs9IHI2O1xcXCJcXG4rXFx0XFxcIi44Ynl0ZSAlW21heV9nb3RvXTtcXFwiXFxuK1xcdFxcXCIuOGJ5dGUgJVtsb29wXTtcXFwiXFxuK1xcdFxcXCJyMCAtPSByNjtcXFwiXFxuK1xcdFxcXCJyMSAtPSByNjtcXFwiXFxuK1xcdFxcXCJyMiAtPSByNjtcXFwiXFxuK1xcdFxcXCJyMyAtPSByNjtcXFwiXFxuK1xcdFxcXCJyNCAtPSByNjtcXFwiXFxuK1xcdFxcXCJyNSAtPSByNjtcXFwiXFxuK1xcdFxcXCJpZiByMCAhPSAweDExMTEgZ290byAxZjtcXFwiXFxuK1xcdFxcXCJpZiByMSAhPSAweDIyMjIgZ290byAyZjtcXFwiXFxuK1xcdFxcXCJpZiByMiAhPSAweDMzMzMgZ290byAzZjtcXFwiXFxuK1xcdFxcXCJpZiByMyAhPSAweDQ0NDQgZ290byA0ZjtcXFwiXFxuK1xcdFxcXCJpZiByNCAhPSAweDU1NTUgZ290byA1ZjtcXFwiXFxuK1xcdFxcXCJpZiByNSAhPSAweDY2NjYgZ290byA2ZjtcXFwiXFxuK1xcdFxcXCJyMCA9IDA7XFxcIlxcbitcXHRcXFwiZXhpdDtcXFwiXFxuK1xcdFxcXCIxOiByMCA9IDE7IGV4aXQ7XFxcIlxcbitcXHRcXFwiMjogcjAgPSAyOyBleGl0O1xcXCJcXG4rXFx0XFxcIjM6IHIwID0gMzsgZXhpdDtcXFwiXFxuK1xcdFxcXCI0OiByMCA9IDQ7IGV4aXQ7XFxcIlxcbitcXHRcXFwiNTogcjAgPSA1OyBleGl0O1xcXCJcXG4rXFx0XFxcIjY6IHIwID0gNjsgZXhpdDtcXFwiXFxuK1xcdDpcXG4rXFx0OiBfX2ltbShicGZfZ2V0X3ByYW5kb21fdTMyKSxcXG4rXFx0ICBfX2ltbV9pbnNuKG1heV9nb3RvLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQ09ORCwgMCwgMCwgMSwgMCkpLFxcbitcXHQgIF9faW1tX2luc24obG9vcCwgQlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfSkEsIDAsIDAsIC0yLCAwKSlcXG4rXFx0OiBfX2Nsb2JiZXJfYWxsKTtcXG4rfVxcbitcXG4gY2hhciBfbGljZW5zZVtdIFNFQyhcXFwibGljZW5zZVxcXCIpID0gXFxcIkdQTFxcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjEwLjAzMjU2MzU1NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjQyMTIwMzI0MTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvXCIsXG4gICAgXCJicGZfaml0X2VtaXRfaW5zblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjMmU5YTc3NGQ3Y2NhMzEwYTViYjM0MDdlZjY1NTk2MWExN2Q2MjMwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDM6MDI6MDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlXG5pbmRleCA5YTFlNWYwYTk0ZTU1OS4uNjQ1OGQ0ZDUxOTkwYTcgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxuKysrIGIvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGVcbkBAIC0zLDcgKzMsNyBAQFxuIG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvcmUub1xuIFxuIGlmZXEgKCQoQ09ORklHX0FSQ0hfUlY2NEkpLHkpXG4tXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wNjQub1xuK1x0b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDY0Lm8gYnBmX3RpbWVkX21heV9nb3RvLm9cbiBlbHNlXG4gXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xuIGVuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbmluZGV4IGFkMDg5YTlhNGVhOWFjLi44ZmU4OTY5ZmI4YTBmOCAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbisrKyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbkBAIC0xODQxLDcgKzE4NDEsMTIgQEAgaW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXG4gXHRcdGlmIChhdXgtXHUwMDNldGFpbF9jYWxsX3JlYWNoYWJsZSBcdTAwMjZcdTAwMjYgaW5zbi1cdTAwM2VzcmNfcmVnID09IEJQRl9QU0VVRE9fQ0FMTClcbiBcdFx0XHRlbWl0X3NkKFJWX1JFR19TUCwgY3R4LVx1MDAzZXRjY19vZmZzZXQsIFJWX1JFR19UQ0MsIGN0eCk7XG4gXG4tXHRcdGlmIChpbnNuLVx1MDAzZXNyY19yZWcgIT0gQlBGX1BTRVVET19DQUxMKVxuK1x0XHQvKlxuK1x0XHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlIHZlcmlmaWVyIGFuZFxuK1x0XHQgKiByZXR1cm5zIGl0cyByZXN1bHQgaW4gQlBGX1JFR19BWCBpbnN0ZWFkIG9mIEJQRl9SRUdfMCwgc29cbitcdFx0ICogc2tpcCB0aGUgbm9ybWFsIFwibW92ZSByZXR1cm4gcmVnaXN0ZXIgaW50byBSMFwiLlxuK1x0XHQgKi9cbitcdFx0aWYgKGluc24tXHUwMDNlc3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwgXHUwMDI2XHUwMDI2IGFkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbiBcdFx0XHRlbWl0X212KGJwZl90b19ydl9yZWcoQlBGX1JFR18wLCBjdHgpLCBSVl9SRUdfQTAsIGN0eCk7XG4gXHRcdGJyZWFrO1xuIFx0fVxuQEAgLTIxNjEsMyArMjE2Niw4IEBAIGJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKVxuIHtcbiBcdHJldHVybiB0cnVlO1xuIH1cbitcbitib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbit7XG4rXHRyZXR1cm4gdHJ1ZTtcbit9XG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMgYi9hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uU1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5mNGJmMmNkMTA1ODY2YlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlNcbkBAIC0wLDAgKzEsNDcgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKy8qIENvcHlyaWdodCAoYykgMjAyNiBGZW5nIEppYW5nIFx1MDAzY2ppYW5nZmVuZ0BreWxpbm9zLmNuXHUwMDNlICovXG4rXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbGlua2FnZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjYXNtL2FzbS5oXHUwMDNlXG4rXG4rLypcbisgKiBUcmFtcG9saW5lIGZvciB0aGUgQlBGIHRpbWVkIG1heV9nb3RvIGxvb3AgYm91bmQuIEN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb246XG4rICpcdC0gaW5wdXQ6ICBzdGFjayBvZmZzZXQgaW4gQlBGX1JFR19BWCAodDApXG4rICpcdC0gb3V0cHV0OiB1cGRhdGVkIGNvdW50IGluIEJQRl9SRUdfQVggKHQwKVxuKyAqXG4rICogQ2FsbHMgYnBmX2NoZWNrX3RpbWVkX21heV9nb3RvKHB0cikgd2l0aCB0aGUgc3RhbmRhcmQgUklTQy1WIEFCSSwgd2hlcmVcbisgKiBwdHIgPSBCUEZfUkVHX0ZQIChzNSkgKyBCUEZfUkVHX0FYICh0MCkuIEJQRiBSMC1SNSAoYTUsIGEwLWE0KSBhcmUgc2F2ZWRcbisgKiBhY3Jvc3MgdGhlIGNhbGw7IEJQRl9SRUdfRlAgKHM1KSBpcyBjYWxsZWUtc2F2ZWQgYW5kIG5lZWRzIG5vIHNhdmluZy5cbisgKi9cbitcbitTWU1fRlVOQ19TVEFSVChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbitcdGFkZGlcdHNwLCBzcCwgLTY0XG4rXHRzZFx0cmEsIDU2KHNwKVxuK1x0c2RcdHMwLCA0OChzcClcbitcdGFkZGlcdHMwLCBzcCwgNjRcbitcbitcdC8qIFNhdmUgQlBGIHJlZ2lzdGVycyBSMC1SNSAoYTUsIGEwLWE0KSAqL1xuK1x0c2RcdGE1LCA0MChzcClcbitcdHNkXHRhMCwgMzIoc3ApXG4rXHRzZFx0YTEsIDI0KHNwKVxuK1x0c2RcdGEyLCAxNihzcClcbitcdHNkXHRhMywgOChzcClcbitcdHNkXHRhNCwgMChzcClcbitcbitcdGFkZFx0YTAsIHQwLCBzNVxuK1x0Y2FsbFx0YnBmX2NoZWNrX3RpbWVkX21heV9nb3RvXG4rXHRtdlx0dDAsIGEwXG4rXG4rXHQvKiBSZXN0b3JlIEJQRiByZWdpc3RlcnMgUjAtUjUgKi9cbitcdGxkXHRhNCwgMChzcClcbitcdGxkXHRhMywgOChzcClcbitcdGxkXHRhMiwgMTYoc3ApXG4rXHRsZFx0YTEsIDI0KHNwKVxuK1x0bGRcdGEwLCAzMihzcClcbitcdGxkXHRhNSwgNDAoc3ApXG4rXG4rXHRsZFx0czAsIDQ4KHNwKVxuK1x0bGRcdHJhLCA1NihzcClcbitcdGFkZGlcdHNwLCBzcCwgNjRcbitcdHJldFxuK1NZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmNcbmluZGV4IDkyYmExZDcyZTBlY2U0Li44ZDhlNTNkMzcyNjZjZCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXG5AQCAtNjQsNiArNjQsNyBAQCBTRUMoXCJzeXNjYWxsXCIpXG4gX19hcmNoX3g4Nl82NFxuIF9fYXJjaF9hcm02NFxuIF9fYXJjaF9zMzkweFxuK19fYXJjaF9yaXNjdjY0XG4gX19zdWNjZXNzIF9fcmV0dmFsKDApXG4gX19zdGRlcnIoXCJFUlJPUjogVGltZW91dCBkZXRlY3RlZCBmb3IgbWF5X2dvdG8gaW5zdHJ1Y3Rpb25cIilcbiBfX3N0ZGVycihcIkNQVToge3tbMC05XSt9fSBVSUQ6IDAgUElEOiB7e1swLTldK319IENvbW06IHt7Lip9fVwiKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuaW5kZXggOGQ3ZmYzOGU0YzA2OTcuLjgzNzA3ZmFlYTA0OTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcbkBAIC02NjAsNiArNjYwLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKVxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF9hcm02NFxuK19fYXJjaF9yaXNjdjY0XG4gX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCAyNFwiKVxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXG4gX194bGF0ZWQoXCIwOiAqKHU2NCAqKShyMTAgLTI0KSA9XCIpXG5AQCAtNjc5LDcgKzY4MCw3IEBAIF9feGxhdGVkKFwiMTA6ICoodTY0ICopKHIxMCAtMjQpID0gcjEyXCIpXG4gX194bGF0ZWQoXCIxMTogKih1NjQgKikocjEwIC04KSA9IHIxXCIpXG4gX194bGF0ZWQoXCIxMjogZXhpdFwiKVxuIF9fc3VjY2Vzc1xuLV9fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbl9hcm02NCh2b2lkKVxuK19fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbih2b2lkKVxuIHtcbiBcdGFzbSB2b2xhdGlsZSAoXG4gXHRcInIxID0gMTtcIlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXG5pbmRleCA0YmRmNDI1NmE0MWU1MS4uOTcxMjlkMjczMGEwNTMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXG5AQCAtMTEsNiArMTEsNyBAQCBfX2Rlc2NyaXB0aW9uKFwibWF5X2dvdG8gMFwiKVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfczM5MHhcbiBfX2FyY2hfYXJtNjRcbitfX2FyY2hfcmlzY3Y2NFxuIF9feGxhdGVkKFwiMDogcjAgPSAxXCIpXG4gX194bGF0ZWQoXCIxOiBleGl0XCIpXG4gX19zdWNjZXNzXG5AQCAtMzEsNiArMzIsNyBAQCBfX2Rlc2NyaXB0aW9uKFwiYmF0Y2ggMiBvZiBtYXlfZ290byAwXCIpXG4gX19hcmNoX3g4Nl82NFxuIF9fYXJjaF9zMzkweFxuIF9fYXJjaF9hcm02NFxuK19fYXJjaF9yaXNjdjY0XG4gX194bGF0ZWQoXCIwOiByMCA9IDFcIilcbiBfX3hsYXRlZChcIjE6IGV4aXRcIilcbiBfX3N1Y2Nlc3NcbkBAIC01Myw2ICs1NSw3IEBAIF9fZGVzY3JpcHRpb24oXCJtYXlfZ290byBiYXRjaCB3aXRoIG9mZnNldHMgMi8xLzBcIilcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX3MzOTB4XG4gX19hcmNoX2FybTY0XG4rX19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcIjA6IHIwID0gMVwiKVxuIF9feGxhdGVkKFwiMTogZXhpdFwiKVxuIF9fc3VjY2Vzc1xuQEAgLTc5LDYgKzgyLDcgQEAgX19kZXNjcmlwdGlvbihcIm1heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzBcIilcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX3MzOTB4XG4gX19hcmNoX2FybTY0XG4rX19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcIjA6ICoodTY0ICopKHIxMCAtMTYpID0gNjU1MzVcIilcbiBfX3hsYXRlZChcIjE6ICoodTY0ICopKHIxMCAtOCkgPSAwXCIpXG4gX194bGF0ZWQoXCIyOiByMTIgPSAqKHU2NCAqKShyMTAgLTE2KVwiKVxuQEAgLTEwNiw0ICsxMTAsNjEgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2JhdGNoXzIodm9pZClcbiBcdDogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuKy8qXG4rICogVXNlIGJwZl9nZXRfcHJhbmRvbV91MzIoKSB0byBwcmV2ZW50IERDRSBmcm9tIHJlbW92aW5nIHRoZSBjaGVja3MuXG4rICogcmV0dmFsOiAwPWFsbCBvaywgMS02PVIwLVI1IGNsb2JiZXJlZC5cbisgKi9cbitTRUMoXCJyYXdfdHBcIilcbitfX2Rlc2NyaXB0aW9uKFwidGltZWQgbWF5X2dvdG8gcHJlc2VydmVzIFIwLVI1XCIpXG4rX19hcmNoX3g4Nl82NFxuK19fYXJjaF9hcm02NFxuK19fYXJjaF9yaXNjdjY0XG4rX19zdWNjZXNzXG4rX19yZXR2YWwoMClcbitfX25ha2VkIHZvaWQgdGltZWRfbWF5X2dvdG9fcHJlc2VydmVzX3JlZ3Modm9pZClcbit7XG4rXHRhc20gdm9sYXRpbGUgKFxuK1x0XCJjYWxsICVbYnBmX2dldF9wcmFuZG9tX3UzMl07XCJcbitcdFwicjYgPSByMDtcIlxuK1x0XCJyMCA9IDB4MTExMTtcIlxuK1x0XCJyMCArPSByNjtcIlxuK1x0XCJyMSA9IDB4MjIyMjtcIlxuK1x0XCJyMSArPSByNjtcIlxuK1x0XCJyMiA9IDB4MzMzMztcIlxuK1x0XCJyMiArPSByNjtcIlxuK1x0XCJyMyA9IDB4NDQ0NDtcIlxuK1x0XCJyMyArPSByNjtcIlxuK1x0XCJyNCA9IDB4NTU1NTtcIlxuK1x0XCJyNCArPSByNjtcIlxuK1x0XCJyNSA9IDB4NjY2NjtcIlxuK1x0XCJyNSArPSByNjtcIlxuK1x0XCIuOGJ5dGUgJVttYXlfZ290b107XCJcbitcdFwiLjhieXRlICVbbG9vcF07XCJcbitcdFwicjAgLT0gcjY7XCJcbitcdFwicjEgLT0gcjY7XCJcbitcdFwicjIgLT0gcjY7XCJcbitcdFwicjMgLT0gcjY7XCJcbitcdFwicjQgLT0gcjY7XCJcbitcdFwicjUgLT0gcjY7XCJcbitcdFwiaWYgcjAgIT0gMHgxMTExIGdvdG8gMWY7XCJcbitcdFwiaWYgcjEgIT0gMHgyMjIyIGdvdG8gMmY7XCJcbitcdFwiaWYgcjIgIT0gMHgzMzMzIGdvdG8gM2Y7XCJcbitcdFwiaWYgcjMgIT0gMHg0NDQ0IGdvdG8gNGY7XCJcbitcdFwiaWYgcjQgIT0gMHg1NTU1IGdvdG8gNWY7XCJcbitcdFwiaWYgcjUgIT0gMHg2NjY2IGdvdG8gNmY7XCJcbitcdFwicjAgPSAwO1wiXG4rXHRcImV4aXQ7XCJcbitcdFwiMTogcjAgPSAxOyBleGl0O1wiXG4rXHRcIjI6IHIwID0gMjsgZXhpdDtcIlxuK1x0XCIzOiByMCA9IDM7IGV4aXQ7XCJcbitcdFwiNDogcjAgPSA0OyBleGl0O1wiXG4rXHRcIjU6IHIwID0gNTsgZXhpdDtcIlxuK1x0XCI2OiByMCA9IDY7IGV4aXQ7XCJcbitcdDpcbitcdDogX19pbW0oYnBmX2dldF9wcmFuZG9tX3UzMiksXG4rXHQgIF9faW1tX2luc24obWF5X2dvdG8sIEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0pDT05ELCAwLCAwLCAxLCAwKSksXG4rXHQgIF9faW1tX2luc24obG9vcCwgQlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfSkEsIDAsIDAsIC0yLCAwKSlcbitcdDogX19jbG9iYmVyX2FsbCk7XG4rfVxuK1xuIGNoYXIgX2xpY2Vuc2VbXSBTRUMoXCJsaWNlbnNlXCIpID0gXCJHUExcIjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjEwLjAzMjU2NjQ4NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1MTQxNDY2MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUklTQy1WIEJQRiBUaW1lZCBNYXktR290byBQYXRjaCoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gV2UndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgYnJpbmdpbmcgYGJwZl90aW1lZF9tYXlfZ290b2Agc3VwcG9ydCBpbnRvIHRoZSBSSVNDLVYgQlBGIEpJVCwgd2hpY2ggaXMgYSBnb29kIHN0ZXAuIEkgc2VlIHRoZSBtb2RpZmljYXRpb25zIGFyZSBzcHJlYWQgYWNyb3NzIHRoZSBleHBlY3RlZCBhcmVhczogYGFyY2gvcmlzY3YvbmV0L01ha2VmaWxlYCwgdGhlIEpJVCBjb21waWxlciBpdHNlbGYgKGBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jYCksIGEgbmV3IGFzc2VtYmx5IGZpbGUgZm9yIHRoZSB0aW1lZCBtYXktZ290byBsb2dpYyAoYGFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TYCksIGFuZCBzb21lIHVwZGF0ZWQgc2VsZnRlc3RzLiBTZWVtcyBsaWtlIGEgY29tcHJlaGVuc2l2ZSBhcHByb2FjaCwgd2hpY2ggaXMgd2hhdCBJIHdvdWxkIGV4cGVjdC5cblxuTG9va2luZyBzcGVjaWZpY2FsbHkgYXQgYGFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNgLCB0aGUga2V5IGNoYW5nZSBpcyB3aXRoaW4gYGJwZl9qaXRfZW1pdF9pbnNuYC4gVGhlIGNvbmRpdGlvbmFsIGxvZ2ljIHByZXZlbnRpbmcgdGhlIG1vdmUgZnJvbSBBMCB0byBSMCBhZnRlciBhIGZ1bmN0aW9uIGNhbGwgaGFzIGJlZW4gYXVnbWVudGVkLiBJdCBsb29rcyBsaWtlIGl0IGhhbmRsZXMgdGhlIHNwZWNpYWwgY2FzZSBvZiBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gLiBUaGlzIG1ha2VzIHNlbnNlLCBiZWNhdXNlIEkga25vdyB0aGF0IGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgcmV0dXJucyBpdHMgcmVzdWx0IGluIGEgZGlmZmVyZW50IHJlZ2lzdGVyIHRoYW4gdGhlIHN0YW5kYXJkIEJQRiBjYWxscy4gVGhlIGNvZGUgZXhwbGljaXRseSBpZGVudGlmaWVzIHRoaXMsIHdoaWNoIGlzIGdvb2QuIFdlIGRvbid0IHdhbnQgdG8gY29ycnVwdCBvdXIgcmV0dXJuIHZhbHVlcy5cblxuQmV5b25kIHRoZSByZWdpc3RlciBoYW5kbGluZywgdGhlIGZ1bmN0aW9uIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKClgIGhhcyBiZWVuIGFkZGVkLCBhbmQgaXQgc2ltcGx5IHJldHVybnMgYHRydWVgLiBUaGlzIG1ha2VzIHN1cmUgdGhpcyBjYXBhYmlsaXR5IGlzIGV4cG9zZWQgdG8gdGhlIEJQRiB2ZXJpZmllciBhbmQgZW5zdXJlcyB0aGUgSklUIGNvZGUgY2FuIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBpcyBleGFjdGx5IHdoYXQgSSB3b3VsZCBleHBlY3QgdG8gc2VlIGluIGEgcGF0Y2ggbGlrZSB0aGlzLlxuXG5GdW5jdGlvbmFsbHksIEkgY2FuIHNlZSB0aGF0IHRoaXMgcGF0Y2ggaXMgZG9pbmcgd2hhdCBpdCBuZWVkcyB0byBkbzogZW5hYmxpbmcgQlBGIHRpbWVkIG1heS1nb3RvIHN1cHBvcnQgb24gUklTQy1WLiBUaGUgSklUIGNvZGUgaXMgcmVhY2hhYmxlLCBhbmQgdGhlIHN1cHBvcnQgaXMgZW5hYmxlZCBpZiB0aGUgQlBGIEpJVCBpcyBlbmFibGVkIG9uIFJJU0MtViwgd2hpY2ggZGVwZW5kcyBvbiBgQ09ORklHX0JQRl9KSVRgIGFuZCBgQ09ORklHX1JJU0NWYCAob3IgYENPTkZJR19BUkNIX1JWNjRJYCkuIFNvLCB0aGVyZSBpc24ndCBhbnl0aGluZyBzdHJhbmdlIHRoZXJlLiBOb3cgSSBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWdzIHRvIHNlZSBpZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJvcGVybHkgZXhwb3NlZCB0byB0aGUgdXNlci4gSSdsbCBzZWFyY2ggZm9yIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCB0byBjb25maXJtIHRoZSBjb2RlIHdpbGwgZnVuY3Rpb24gY29ycmVjdGx5LiBTbyBmYXIsIHRoZSBwYXRjaCBzZWVtcyB0byBhZGRyZXNzIHRoZSBjb3JlIHByb2JsZW0gYW5kIGludGVncmF0ZSBjb3JyZWN0bHkgaW50byB0aGUgZXhpc3RpbmcgYXJjaGl0ZWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDY1LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDM6MDI6MTcuNTQ2NzE3NjY3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MzA0NTkxODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYz0zMTk3PWJvb2wgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKVxcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNy1cXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzozMjA4OmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTMyMDkte1xcbi0tXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYz01MTU9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3N1YnByb2dfdGFpbGNhbGxzKHZvaWQpXFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jLTUxOS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jOjUyMDpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jLTUyMS17XFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jPTIxNjU9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3N1YnByb2dfdGFpbGNhbGxzKHZvaWQpXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTIxNjktXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoyMTcwOmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE3MS17XFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jPTMwNTU9dm9pZCBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICosIHU2NCwgdTY0LCB1NjQpLFxcbi0tXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0zMDgwLVxcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmM6MzA4MTpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODIte1xcbi0tXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jPTQyMTA9dTY0IGJwZl9hcmNoX3VhZGRyZXNzX2xpbWl0KHZvaWQpXFxuLS1cXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMtNDIxNC1cXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmM6NDIxNTpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMtNDIxNi17XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTExOTE9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3ByaXZhdGVfc3RhY2sodm9pZCk7XFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMTkyOmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTExOTMtYm9vbCBicGZfaml0X3N1cHBvcnRzX2ZzZXNzaW9uKHZvaWQpO1xcbi0tXFxua2VybmVsL2JwZi9jb3JlLmM9MzM3ND12b2lkIF9fd2VhayBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNwLCB1NjQgYnApLCB2b2lkICpjb29raWUpXFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYy0zMzc3LVxcbmtlcm5lbC9icGYvY29yZS5jOjMzNzg6Ym9vbCBfX3dlYWsgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbmtlcm5lbC9icGYvY29yZS5jLTMzNzkte1xcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgwPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc1NC1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjE3NTU6XFx0XFx0aWYgKGJwZl9pc19tYXlfZ290b19pbnNuKGluc24pIFxcdTAwMjZcXHUwMDI2IGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSkge1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc1Ni1cXHRcXHRcXHRpbnQgc3RhY2tfb2ZmX2NudCA9IC1zdGFja19kZXB0aCAtIDE2O1xcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYy0yMzY4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlbnYtXFx1MDAzZXN1YnByb2dfY250OyBpKyspIHtcXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjIzNjk6XFx0XFx0aW50IGRlbHRhID0gYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290bygpID8gMiA6IDE7XFxua2VybmVsL2JwZi9maXh1cHMuYy0yMzcwLVxcdFxcdGludCBzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZ3NbaV0uc3RhcnQ7XFxuLS1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTIzODItXFx0XFx0c3RhY2tfZGVwdGggPSBzdWJwcm9nc1tpXS5zdGFja19kZXB0aDtcXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjIzODM6XFx0XFx0aWYgKGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSkge1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMjM4NC1cXHRcXHRcXHRpbnNuX2J1ZltjbnQrK10gPSBCUEZfU1RfTUVNKEJQRl9EVywgQlBGX1JFR19GUCwgLXN0YWNrX2RlcHRoLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMzowMjoyNC4yNzcxODQ4NjNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTU0NjUyMDAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJJU0MtViBCUEYgSklUIEJ1ZyBIdW50OiBBIFRlc3RhYmxlIE9wcG9ydHVuaXR5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgYW5kIHR3ZWFrcyBgYnBmX2ppdF9lbWl0X2luc25gIGluIHRoZSBSSVNDLVYgQlBGIEpJVCBjb21waWxhdGlvbiBjb2RlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcywgXCJZZXMsIHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgd2UgY2FuIHRyaXAgdXAgaWYgd2UgdGhyb3cgZnV6emluZyBhdCBpdC5cIiBUaGlua2luZyBwcmFjdGljYWxseSwgaWYgd2UncmUgZnV6emluZyBCUEYgb24gUklTQy1WLCB0aGlzIGNvZGUgcGF0aCAqd2lsbCogZ2V0IGV4ZXJjaXNlZC4gV2FpdCBhIG1pbnV0ZS4uLiBkb2Vzbid0IHN5emthbGxlciAqYWxyZWFkeSogZnV6eiB0aGUgUklTQy1WIEJQRiBKSVQgd2hlbiBydW5uaW5nIG9uIGEgUklTQy1WIHRhcmdldD8gQmluZ28hXG5cblRoaXMgaXMgZXhjZWxsZW50IG5ld3MuIEl0IG1lYW5zIHdlIGhhdmUgYSBzaW1wbGUgd2F5IHRvIHRlc3QgdGhpcyEgV2UganVzdCBuZWVkIHRvIGVuc3VyZSB0aGUgcmlnaHQgY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQuIExldCBtZSBzZWUuLi4gYEJQRl9KSVRgIGFuZCBlaXRoZXIgYFJJU0NWYCBvciBgQVJDSF9SVjY0SWAgc2hvdWxkIGRvIHRoZSB0cmljay4gTm93LCB0byBkb3VibGUtY2hlY2sgdGhhdCBldmVyeXRoaW5nIGlzIGluIHBsYWNlLCBJIHNob3VsZCBwcm9iYWJseSBnbGFuY2UgYXQgYGFyY2gvcmlzY3YvbmV0L01ha2VmaWxlYCB0byBtYWtlIHN1cmUgYWxsIHRoZSBwaWVjZXMgYXJlIGxpbmtlZCB0b2dldGhlciBjb3JyZWN0bHkuIFRpbWUgdG8gdmVyaWZ5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDMzLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjI4LjQzMTgzOTI4NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA1ODk5Mzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19CUEZfSklUXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3YvbmV0L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTItXFxuYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb3JlLm9cXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZS00LVxcbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlPTU9aWZlcSAoJChDT05GSUdfQVJDSF9SVjY0SSkseSlcXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZTo2OlxcdG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvbXA2NC5vIGJwZl90aW1lZF9tYXlfZ290by5vXFxuYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUtNy1lbHNlXFxuYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGU6ODpcXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTktZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDM6MDI6MzAuNDM3NzQ0MTMxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDg0ODM4MDI2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIEJQRiBKSVQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGUgYENPTkZJR19CUEZfSklUYCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBkZWZpbml0ZWx5IGVzc2VudGlhbCBoZXJlLiBCdXQgaGFuZyBvbiwgdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgUklTQy1WIHNwZWNpZmljYWxseSwgYW5kIEkgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhhdCBTeXprYWxsZXIsIHdoaWNoIGlzIHdoYXQgSSdtIGxpa2VseSB1c2luZywgcnVucyBvbiBhIG11Y2ggYnJvYWRlciByYW5nZSBvZiBhcmNoaXRlY3R1cmVzIGxpa2UgeDg2XzY0LCBhcm02NCwgYW5kIHJpc2N2NjQsIGV0Yy4gSWYgSSBmbGFnIHRoaXMgd2l0aCBgV29ydGhGdXp6aW5nPXRydWVgLCBpdCdsbCBnZXQgYXR0ZW50aW9uIGZyb20gdGhlIGZ1enplci5cblxuUmlnaHQsIHRpbWUgdG8gZm9jdXMgb24gc29tZSBzeW1ib2xzLiBgYnBmX2ppdF9lbWl0X2luc25gIGxvb2tzIGxpa2UgYSBrZXkgZnVuY3Rpb24gc2luY2UgaXQncyB0aGUgY29yZSBKSVQgaW5zdHJ1Y3Rpb24gZW1pdHRlciwgYnV0IGl0IG1pZ2h0IGJlIHRvbyBnZW5lcmljLiBJdCdzIHRoZSBjb3JlIG9mIHRoZSBKSVQsIHNvIGl0IG1pZ2h0IGJlLiBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGlzIGFuIGFzc2VtYmx5IGZ1bmN0aW9uLCBzbyBLQ09WIGluc3RydW1lbnRhdGlvbiBpcyBvdXQgZm9yIHRoYXQgb25lLCB3aGljaCBpcyB1bmZvcnR1bmF0ZS4gYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gIGlzIGp1c3QgYSBib29sZWFuLCBzbyB0aGF0J3Mgbm90IGdvaW5nIHRvIHRlbGwgdXMgYSBsb3QuXG5cbkFoYSEgYGJwZl9qaXRfZW1pdF9pbnNuYCAqaXMqIGJlaW5nIG1vZGlmaWVkLCBzbyB0aGF0J3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGRpZ2dpbmcgZGVlcGVyLiBJdCBsb29rcyBsaWtlIHRoYXQgaXMgdGhlIG1haW4gd29ya2hvcnNlIGhlcmUsIHNvIGl0IGlzIHRoZSBjb3JyZWN0IHBsYWNlIHRvIGZvY3VzIG9uLiBPa2F5LCBsZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIGludm9sdmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MDY5LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjM1LjI4NjEyOTMyM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTY4NDA3NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFyY2hfYnBmX3RpbWVkX21heV9nb3RvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jPTEyNTM9c3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcXG4tLVxcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTE2NzAtXFx0XFx0LypcXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzoxNjcxOlxcdFxcdCAqIENhbGwgdG8gYXJjaF9icGZfdGltZWRfbWF5X2dvdG8oKSBpcyBlbWl0dGVkIGJ5IHRoZVxcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTE2NzItXFx0XFx0ICogdmVyaWZpZXIgYW5kIGNhbGxlZCB3aXRoIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24gd2l0aFxcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMTY3NC1cXHRcXHQgKi9cXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzoxNjc1OlxcdFxcdGlmIChmdW5jX2FkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjc2LVxcdFxcdFxcdGVtaXQoQTY0X01PVigxLCByMCwgQTY0X1IoMCkpLCBjdHgpO1xcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNS1cXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo2OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTctXFx0LyogQWxsb2NhdGUgc3RhY2sgc3BhY2UgYW5kIGVtaXQgZnJhbWUgcmVjb3JkICovXFxuLS1cXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMC1cXHQgKlxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjIxOlxcdCAqIEJlZm9yZSBnZW5lcmF0aW5nIHRoZSBjYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLCB0aGUgdmVyaWZpZXJcXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMi1cXHQgKiBnZW5lcmF0ZXMgYSBsb2FkIGluc3RydWN0aW9uIHVzaW5nIEZQLCBpLmUuIFJFR19BWCA9ICoodTY0ICopKEZQIC1cXG4tLVxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTM5LVxcdHJldFxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjQwOlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4tLVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYz05Njc9aW50IGJwZl9qaXRfYnVpbGRfYm9keShzdHJ1Y3QgYnBmX3Byb2cgKmZwLCB1MzIgKmltYWdlLCB1MzIgKmZpbWFnZSwgc3RydWN0IGNvZGVnZW5fY29udGV4dCAqY3R4LFxcbi0tXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXA2NC5jLTE3NjktXFx0XFx0XFx0LypcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmM6MTc3MDpcXHRcXHRcXHQgKiBDYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaXMgZW1pdHRlZCBieSB0aGVcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc3MS1cXHRcXHRcXHQgKiB2ZXJpZmllciBhbmQgY2FsbGVkIHdpdGggY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbiB3aXRoXFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc4Mi1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmM6MTc4MzpcXHRcXHRcXHRpZiAoZnVuY19hZGRyID09ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pIHtcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc4NC1cXHRcXHRcXHRcXHRyZXQgPSAwO1xcbi0tXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy03LS8qXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo4OiAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgdHJhbXBvbGluZSBmb3IgcG93ZXJwYzY0XFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy05LSAqXFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE5LVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6MjA6U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMS1cXHQvKiBQcm9sb2d1ZTogc2F2ZSBMUiwgYWxsb2NhdGUgZnJhbWUgKi9cXG4tLVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNTYtXFx0YmxyXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo1NzpTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jPTEzNjE9aW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDQtXFx0XFx0LypcXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jOjE4NDU6XFx0XFx0ICogYXJjaF9icGZfdGltZWRfbWF5X2dvdG8oKSBpcyBlbWl0dGVkIGJ5IHRoZSB2ZXJpZmllciBhbmRcXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDYtXFx0XFx0ICogcmV0dXJucyBpdHMgcmVzdWx0IGluIEJQRl9SRUdfQVggaW5zdGVhZCBvZiBCUEZfUkVHXzAsIHNvXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDgtXFx0XFx0ICovXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoxODQ5OlxcdFxcdGlmIChpbnNuLVxcdTAwM2VzcmNfcmVnICE9IEJQRl9QU0VVRE9fQ0FMTCBcXHUwMDI2XFx1MDAyNiBhZGRyICE9ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODUwLVxcdFxcdFxcdGVtaXRfbXYoYnBmX3RvX3J2X3JlZyhCUEZfUkVHXzAsIGN0eCksIFJWX1JFR19BMCwgY3R4KTtcXG4tLVxcbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE2LVxcbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjE3OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE4LVxcdGFkZGlcXHRzcCwgc3AsIC02NFxcbi0tXFxuYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNDYtXFx0cmV0XFxuYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6NDc6U1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbi0tXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz04NzY9c3RhdGljIG5vaW5saW5lIGludCBicGZfaml0X2luc24oc3RydWN0IGJwZl9qaXQgKmppdCwgc3RydWN0IGJwZl9wcm9nICpmcCxcXG4tLVxcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMTg0MS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jOjE4NDI6XFx0XFx0aWYgKCh2b2lkICopZnVuYyA9PSBhcmNoX2JwZl90aW1lZF9tYXlfZ290bykge1xcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMTg0My1cXHRcXHRcXHQvKlxcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmM6MTg0NDpcXHRcXHRcXHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGhhcyBhIHNwZWNpYWwgQUJJOiB0aGVcXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTE4NDUtXFx0XFx0XFx0ICogcGFyYW1ldGVycyBhcmUgaW4gQlBGX1JFR19BWCBhbmQgQlBGX1JFR18xMDsgdGhlXFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTIxLVxcbmFyY2gvczM5MC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6MjI6U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMy1cXHQvKlxcbi0tXFxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy00NC1cXHRCUl9FWCAlcjFcXG5hcmNoL3MzOTAvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjQ1OlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0xMC1cXG5hcmNoL3g4Ni9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6MTE6U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTEyLVxcdEFOTk9UQVRFX05PRU5EQlJcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy01NC1cXHRSRVRcXG5hcmNoL3g4Ni9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6NTU6U1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbi0tXFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaD0xMTk1PXZvaWQgYXJjaF9icGZfc3RhY2tfd2Fsayhib29sICgqY29uc3VtZV9mbikodm9pZCAqY29va2llLCB1NjQgaXAsIHU2NCBzcCwgdTY0IGJwKSwgdm9pZCAqY29va2llKTtcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjExOTY6dTY0IGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKHZvaWQpO1xcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTE5Ny11NjQgYnBmX2NoZWNrX3RpbWVkX21heV9nb3RvKHN0cnVjdCBicGZfdGltZWRfbWF5X2dvdG8gKik7XFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYz0zMzc4PWJvb2wgX193ZWFrIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG4tLVxcbmtlcm5lbC9icGYvY29yZS5jLTMzODItXFxua2VybmVsL2JwZi9jb3JlLmM6MzM4Mzp1NjQgX193ZWFrIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKHZvaWQpXFxua2VybmVsL2JwZi9jb3JlLmMtMzM4NC17XFxuLS1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jPTE0ODA9aW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYy0xNzY0LVxcdFxcdFxcdCAqIHVudGlsIHRoZSB2YWx1ZSBiZWNvbWVzIDAgaW4gQVggKHRodXMsIDEgaW4gc3RhY2spLFxcbmtlcm5lbC9icGYvZml4dXBzLmM6MTc2NTpcXHRcXHRcXHQgKiBhZnRlciB3aGljaCB3ZSBjYWxsIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLCB3aGljaFxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc2Ni1cXHRcXHRcXHQgKiBlaXRoZXIgc2V0cyBBWCB0byAweGZmZmYgdG8ga2VlcCBsb29waW5nLCBvciB0byAwXFxuLS1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3ODItXFx0XFx0XFx0ICogKHRvIGFkZCB0byByMTAvZnApLCBhbmQgYWxzbyBhcyB0aGUgcmV0dXJuIHZhbHVlIG9mXFxua2VybmVsL2JwZi9maXh1cHMuYzoxNzgzOlxcdFxcdFxcdCAqIHRoZSBjYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLlxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc4NC1cXHRcXHRcXHQgKi9cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3ODUtXFx0XFx0XFx0aW5zbl9idWZbNF0gPSBCUEZfTU9WNjRfSU1NKEJQRl9SRUdfQVgsIHN0YWNrX29mZl9jbnQpO1xcbmtlcm5lbC9icGYvZml4dXBzLmM6MTc4NjpcXHRcXHRcXHRpbnNuX2J1Zls1XSA9IEJQRl9FTUlUX0NBTEwoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pO1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc4Ny1cXHRcXHRcXHRpbnNuX2J1Zls2XSA9IEJQRl9TVFhfTUVNKEJQRl9EVywgQlBGX1JFR18xMCwgQlBGX1JFR19BWCwgc3RhY2tfb2ZmX2NudCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjQxLjQ1NDU0NTczWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTAzNzc5NzY0ODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhpcyBCUEYgVGltZWQgTWF5X0dvdG8gUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgdGhlIHByaW1hcnkgbW9kaWZpY2F0aW9uIGhlcmUgY2VudGVycyBhcm91bmQgaW1wbGVtZW50aW5nIEJQRidzIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgc3BlY2lmaWNhbGx5IGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gSXQgbG9va3MgbGlrZSB0aGUgY29yZSB3b3JrIGludm9sdmVzIGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lLCB3aGljaCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBtYWluIEMgZnVuY3Rpb24gdG91Y2hlZCBpcyBgYnBmX2ppdF9lbWl0X2luc25gLCBhbmQgSSBhbHNvIHNlZSBhIG5ldyBmdW5jdGlvbiwgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gLCBhZGRlZC5cblxuSW5pdGlhbGx5LCBJIHRob3VnaHQgb2YgaW5jbHVkaW5nIGJvdGggYGJwZl9qaXRfZW1pdF9pbnNuYCBhbmQgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gIGluIHRoZSBgRm9jdXNTeW1ib2xzYCBsaXN0LiBIb3dldmVyLCBgYnBmX2ppdF9lbWl0X2luc25gIGlzIGEgc2l6ZWFibGUgZnVuY3Rpb24sIGVzcGVjaWFsbHkgZ2l2ZW4gaXRzIHJvbGUgaW4gdGhlIEpJVCBwcm9jZXNzLiBJdCBpcyB0aGUgcHJpbWFyeSBKSVQgZnVuY3Rpb24sIGFmdGVyIGFsbC4gQnV0IGdpdmVuIHRoYXQgaXQncyB0aGUgb25seSBtb2RpZmllZCBDIGZ1bmN0aW9uLCBhbmQgdGhpcyBwYXRjaCBkb2Vzbid0IGFwcGVhciB0byBiZSBkcmFzdGljYWxseSBjaGFuZ2luZyB0aGUgaG90LXBhdGggcHJvY2Vzc2luZyBvZiBwYWNrZXRzLCBJJ2xsIGdvIHdpdGggaXQuXG5cbkkgd2lsbCBhZGQgYm90aCBgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b2AgYW5kIGBicGZfaml0X2VtaXRfaW5zbmAgdG8gdGhlIGBGb2N1c1N5bWJvbHNgIGxpc3QsIHNpbmNlIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCBpcyBhIHRpbnkgZnVuY3Rpb24sIGFuZCBgYnBmX2ppdF9lbWl0X2luc25gIGlzIG5vdCBjYWxsZWQgZHVyaW5nIHBhY2tldCBwcm9jZXNzaW5nLlxuXG5Ob3csIG9uIHRvIHRoZSBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgQ09ORklHX0JQRl9KSVRgIGlzIHRoZSBvbmx5IG9uZSBleHBsaWNpdGx5IG1lbnRpb25lZC4gQ29uc2lkZXJpbmcgdGhlIGluc3RydWN0aW9ucywgSSBuZWVkIHRvIGZvY3VzIG9uIGNvbmZpZ3MgdGhhdCBzcGVjaWZpY2FsbHkgZW5hYmxlICp0aGlzKiBjb2RlLiBXaGlsZSBgQlBGX0pJVGAgaXMgb2Z0ZW4gZW5hYmxlZCwgaXQncyBkZWZpbml0ZWx5IHRoZSByZWxldmFudCBjb25maWcgZm9yIGVuYWJsaW5nIHRoaXMgc3BlY2lmaWMgSklUIGZ1bmN0aW9uYWxpdHkuXG5cblRoZXJlJ3MgYSBub3RlIGFib3V0IG5vdCBsaXN0aW5nIGdlbmVyaWMgY29uZmlncywgd2hpY2ggbWFkZSBtZSBwYXVzZSBvbiB3aGV0aGVyIHRvIGluY2x1ZGUgYEFSQ0hfUlY2NElgIHNpbmNlIHRoaXMgaXMgZm9yIFJJU0MtViwgYnV0IGl0IHNlZW1zIHRvIGJlIHRoZSBhcmNoaXRlY3R1cmUgaXRzZWxmLCB3aGljaCBpcyB0b28gZ2VuZXJpYy4gSSdsbCBzdGljayB3aXRoIGxpc3RpbmcgYEJQRl9KSVRgIHVuZGVyIGBFbmFibGVDb25maWdzYC5cblxuSnVzdCB0byBiZSBzdXJlLCBJIGRvdWJsZS1jaGVja2VkIHRoZSBtYWtlZmlsZXMgYW5kIGRpZG4ndCBmaW5kIGFueSBvdGhlciAqc3BlY2lmaWMqIGNvbmZpZ3MgdGllZCB0byB0aGlzIG1vZGlmaWNhdGlvbi5cblxuVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgY2xlYXI6IFRoaXMgcGF0Y2ggYWRkcyB0aW1lZCBtYXlfZ290byBzdXBwb3J0IG9uIFJJU0MtViBieSBtb2RpZnlpbmcgdGhlIEpJVCBjb21waWxlci4gV2UncmUgdGFsa2luZyBhYm91dCBjb3JlIGtlcm5lbCBjb2RlIGFjY2Vzc2libGUgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgQlBGJ3MgZnVuY3Rpb25hbGl0eSBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuU28sIGhlcmUncyB3aGF0IEkndmUgZ290OlxuXG4qICAgKipGb2N1c1N5bWJvbHM6KipcbiAgICAqICAgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gXG4gICAgKiAgIGBicGZfaml0X2VtaXRfaW5zbmBcbiogICAqKkVuYWJsZUNvbmZpZ3M6KipcbiAgICAqICAgYEJQRl9KSVRgXG5cbkxldCdzIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMzIxLCJPdXRwdXRUb2tlbnMiOjE0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMzowMjo1MS44MzI1MjU0MjVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjAzNTcwODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvXCIsXG4gICAgXCJicGZfaml0X2VtaXRfaW5zblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b1wiLFxuICAgIFwiYnBmX2ppdF9lbWl0X2luc25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbXBsZW1lbnRzIEJQRiB0aW1lZCBtYXlfZ290byBzdXBwb3J0IGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZSBieSBhZGRpbmcgdGhlIGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgYXNzZW1ibHkgdHJhbXBvbGluZSBhbmQgdXBkYXRpbmcgdGhlIEpJVCBjb21waWxlciAoYGJwZl9qaXRfZW1pdF9pbnNuYCkgdG8gaGFuZGxlIGl0cyBjdXN0b20gY2FsbGluZyBjb252ZW50aW9uLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgY29kZSB0aGF0IGNhbiBiZSByZWFjaGVkIHdoZW4gbG9hZGluZyBCUEYgcHJvZ3JhbXMgb24gUklTQy1WIHdpdGggSklUIGVuYWJsZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-23 02:46:13 +0000 UTC FinishedAt: 2026-07-23 03:02:54 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "a23a71823352e2d792dcaae25f1ebb744acbfc0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "a23a71823352e2d792dcaae25f1ebb744acbfc0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "2bc50d06-2c6b-48e1-be90-b8ce2a7d9675" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_jit_supports_timed_may_goto", "bpf_jit_emit_insn" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzIzIDAzOjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvJiMzNDssCiAgICAmIzM0O2JwZl9qaXRfZW1pdF9pbnNuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGMyZTlhNzc0ZDdjY2EzMTBhNWJiMzQwN2VmNjU1OTYxYTE3ZDYyMzBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAwMzowMjowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlXG5pbmRleCA5YTFlNWYwYTk0ZTU1OS4uNjQ1OGQ0ZDUxOTkwYTcgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGVcbkBAIC0zLDcgJiM0MzszLDcgQEBcbiBvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29yZS5vXG4gXG4gaWZlcSAoJChDT05GSUdfQVJDSF9SVjY0SSkseSlcbi1cdG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wNjQub1xuJiM0MztcdG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wNjQubyBicGZfdGltZWRfbWF5X2dvdG8ub1xuIGVsc2VcbiBcdG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuIGVuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbmluZGV4IGFkMDg5YTlhNGVhOWFjLi44ZmU4OTY5ZmI4YTBmOCAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbkBAIC0xODQxLDcgJiM0MzsxODQxLDEyIEBAIGludCBicGZfaml0X2VtaXRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4LFxuIFx0XHRpZiAoYXV4LVx1MDAzZXRhaWxfY2FsbF9yZWFjaGFibGUgXHUwMDI2XHUwMDI2IGluc24tXHUwMDNlc3JjX3JlZyA9PSBCUEZfUFNFVURPX0NBTEwpXG4gXHRcdFx0ZW1pdF9zZChSVl9SRUdfU1AsIGN0eC1cdTAwM2V0Y2Nfb2Zmc2V0LCBSVl9SRUdfVENDLCBjdHgpO1xuIFxuLVx0XHRpZiAoaW5zbi1cdTAwM2VzcmNfcmVnICE9IEJQRl9QU0VVRE9fQ0FMTClcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlIHZlcmlmaWVyIGFuZFxuJiM0MztcdFx0ICogcmV0dXJucyBpdHMgcmVzdWx0IGluIEJQRl9SRUdfQVggaW5zdGVhZCBvZiBCUEZfUkVHXzAsIHNvXG4mIzQzO1x0XHQgKiBza2lwIHRoZSBub3JtYWwgXCYjMzQ7bW92ZSByZXR1cm4gcmVnaXN0ZXIgaW50byBSMFwmIzM0Oy5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWYgKGluc24tXHUwMDNlc3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwgXHUwMDI2XHUwMDI2IGFkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbiBcdFx0XHRlbWl0X212KGJwZl90b19ydl9yZWcoQlBGX1JFR18wLCBjdHgpLCBSVl9SRUdfQTAsIGN0eCk7XG4gXHRcdGJyZWFrO1xuIFx0fVxuQEAgLTIxNjEsMyAmIzQzOzIxNjYsOCBAQCBib29sIGJwZl9qaXRfc3VwcG9ydHNfc3VicHJvZ190YWlsY2FsbHModm9pZClcbiB7XG4gXHRyZXR1cm4gdHJ1ZTtcbiB9XG4mIzQzO1xuJiM0Mztib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbiYjNDM7e1xuJiM0MztcdHJldHVybiB0cnVlO1xuJiM0Mzt9XG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMgYi9hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uU1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5mNGJmMmNkMTA1ODY2YlxuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlNcbkBAIC0wLDAgJiM0MzsxLDQ3IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4mIzQzOy8qIENvcHlyaWdodCAoYykgMjAyNiBGZW5nIEppYW5nIFx1MDAzY2ppYW5nZmVuZ0BreWxpbm9zLmNuXHUwMDNlICovXG4mIzQzO1xuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9saW5rYWdlLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjYXNtL2FzbS5oXHUwMDNlXG4mIzQzO1xuJiM0MzsvKlxuJiM0MzsgKiBUcmFtcG9saW5lIGZvciB0aGUgQlBGIHRpbWVkIG1heV9nb3RvIGxvb3AgYm91bmQuIEN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb246XG4mIzQzOyAqXHQtIGlucHV0OiAgc3RhY2sgb2Zmc2V0IGluIEJQRl9SRUdfQVggKHQwKVxuJiM0MzsgKlx0LSBvdXRwdXQ6IHVwZGF0ZWQgY291bnQgaW4gQlBGX1JFR19BWCAodDApXG4mIzQzOyAqXG4mIzQzOyAqIENhbGxzIGJwZl9jaGVja190aW1lZF9tYXlfZ290byhwdHIpIHdpdGggdGhlIHN0YW5kYXJkIFJJU0MtViBBQkksIHdoZXJlXG4mIzQzOyAqIHB0ciA9IEJQRl9SRUdfRlAgKHM1KSAmIzQzOyBCUEZfUkVHX0FYICh0MCkuIEJQRiBSMC1SNSAoYTUsIGEwLWE0KSBhcmUgc2F2ZWRcbiYjNDM7ICogYWNyb3NzIHRoZSBjYWxsOyBCUEZfUkVHX0ZQIChzNSkgaXMgY2FsbGVlLXNhdmVkIGFuZCBuZWVkcyBubyBzYXZpbmcuXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG4mIzQzO1x0YWRkaVx0c3AsIHNwLCAtNjRcbiYjNDM7XHRzZFx0cmEsIDU2KHNwKVxuJiM0MztcdHNkXHRzMCwgNDgoc3ApXG4mIzQzO1x0YWRkaVx0czAsIHNwLCA2NFxuJiM0MztcbiYjNDM7XHQvKiBTYXZlIEJQRiByZWdpc3RlcnMgUjAtUjUgKGE1LCBhMC1hNCkgKi9cbiYjNDM7XHRzZFx0YTUsIDQwKHNwKVxuJiM0MztcdHNkXHRhMCwgMzIoc3ApXG4mIzQzO1x0c2RcdGExLCAyNChzcClcbiYjNDM7XHRzZFx0YTIsIDE2KHNwKVxuJiM0MztcdHNkXHRhMywgOChzcClcbiYjNDM7XHRzZFx0YTQsIDAoc3ApXG4mIzQzO1xuJiM0MztcdGFkZFx0YTAsIHQwLCBzNVxuJiM0MztcdGNhbGxcdGJwZl9jaGVja190aW1lZF9tYXlfZ290b1xuJiM0MztcdG12XHR0MCwgYTBcbiYjNDM7XG4mIzQzO1x0LyogUmVzdG9yZSBCUEYgcmVnaXN0ZXJzIFIwLVI1ICovXG4mIzQzO1x0bGRcdGE0LCAwKHNwKVxuJiM0MztcdGxkXHRhMywgOChzcClcbiYjNDM7XHRsZFx0YTIsIDE2KHNwKVxuJiM0MztcdGxkXHRhMSwgMjQoc3ApXG4mIzQzO1x0bGRcdGEwLCAzMihzcClcbiYjNDM7XHRsZFx0YTUsIDQwKHNwKVxuJiM0MztcbiYjNDM7XHRsZFx0czAsIDQ4KHNwKVxuJiM0MztcdGxkXHRyYSwgNTYoc3ApXG4mIzQzO1x0YWRkaVx0c3AsIHNwLCA2NFxuJiM0MztcdHJldFxuJiM0MztTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXG5pbmRleCA5MmJhMWQ3MmUwZWNlNC4uOGQ4ZTUzZDM3MjY2Y2QgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uY1xuQEAgLTY0LDYgJiM0Mzs2NCw3IEBAIFNFQyhcJiMzNDtzeXNjYWxsXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfYXJtNjRcbiBfX2FyY2hfczM5MHhcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiBfX3N1Y2Nlc3MgX19yZXR2YWwoMClcbiBfX3N0ZGVycihcJiMzNDtFUlJPUjogVGltZW91dCBkZXRlY3RlZCBmb3IgbWF5X2dvdG8gaW5zdHJ1Y3Rpb25cJiMzNDspXG4gX19zdGRlcnIoXCYjMzQ7Q1BVOiB7e1swLTldJiM0Mzt9fSBVSUQ6IDAgUElEOiB7e1swLTldJiM0Mzt9fSBDb21tOiB7ey4qfX1cJiMzNDspXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG5pbmRleCA4ZDdmZjM4ZTRjMDY5Ny4uODM3MDdmYWVhMDQ5OTQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuQEAgLTY2MCw2ICYjNDM7NjYwLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKVxuIFxuIFNFQyhcJiMzNDtyYXdfdHBcJiMzNDspXG4gX19hcmNoX2FybTY0XG4mIzQzO19fYXJjaF9yaXNjdjY0XG4gX19sb2dfbGV2ZWwoNCkgX19tc2coXCYjMzQ7c3RhY2sgZGVwdGggMjRcJiMzNDspXG4gLyogbWF5X2dvdG8gY291bnRlciBhdCAtMjQgKi9cbiBfX3hsYXRlZChcJiMzNDswOiAqKHU2NCAqKShyMTAgLTI0KSA9XCYjMzQ7KVxuQEAgLTY3OSw3ICYjNDM7NjgwLDcgQEAgX194bGF0ZWQoXCYjMzQ7MTA6ICoodTY0ICopKHIxMCAtMjQpID0gcjEyXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzExOiAqKHU2NCAqKShyMTAgLTgpID0gcjFcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MTI6IGV4aXRcJiMzNDspXG4gX19zdWNjZXNzXG4tX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX2FybTY0KHZvaWQpXG4mIzQzO19fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbih2b2lkKVxuIHtcbiBcdGFzbSB2b2xhdGlsZSAoXG4gXHRcJiMzNDtyMSA9IDE7XCYjMzQ7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21heV9nb3RvXzEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcbmluZGV4IDRiZGY0MjU2YTQxZTUxLi45NzEyOWQyNzMwYTA1MyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcbkBAIC0xMSw2ICYjNDM7MTEsNyBAQCBfX2Rlc2NyaXB0aW9uKFwmIzM0O21heV9nb3RvIDBcJiMzNDspXG4gX19hcmNoX3g4Nl82NFxuIF9fYXJjaF9zMzkweFxuIF9fYXJjaF9hcm02NFxuJiM0MztfX2FyY2hfcmlzY3Y2NFxuIF9feGxhdGVkKFwmIzM0OzA6IHIwID0gMVwmIzM0OylcbiBfX3hsYXRlZChcJiMzNDsxOiBleGl0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuQEAgLTMxLDYgJiM0MzszMiw3IEBAIF9fZGVzY3JpcHRpb24oXCYjMzQ7YmF0Y2ggMiBvZiBtYXlfZ290byAwXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfczM5MHhcbiBfX2FyY2hfYXJtNjRcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcJiMzNDswOiByMCA9IDFcJiMzNDspXG4gX194bGF0ZWQoXCYjMzQ7MTogZXhpdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbkBAIC01Myw2ICYjNDM7NTUsNyBAQCBfX2Rlc2NyaXB0aW9uKFwmIzM0O21heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzEvMFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX3MzOTB4XG4gX19hcmNoX2FybTY0XG4mIzQzO19fYXJjaF9yaXNjdjY0XG4gX194bGF0ZWQoXCYjMzQ7MDogcjAgPSAxXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzE6IGV4aXRcJiMzNDspXG4gX19zdWNjZXNzXG5AQCAtNzksNiAmIzQzOzgyLDcgQEAgX19kZXNjcmlwdGlvbihcJiMzNDttYXlfZ290byBiYXRjaCB3aXRoIG9mZnNldHMgMi8wXCYjMzQ7KVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfczM5MHhcbiBfX2FyY2hfYXJtNjRcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcJiMzNDswOiAqKHU2NCAqKShyMTAgLTE2KSA9IDY1NTM1XCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzE6ICoodTY0ICopKHIxMCAtOCkgPSAwXCYjMzQ7KVxuIF9feGxhdGVkKFwmIzM0OzI6IHIxMiA9ICoodTY0ICopKHIxMCAtMTYpXCYjMzQ7KVxuQEAgLTEwNiw0ICYjNDM7MTEwLDYxIEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19iYXRjaF8yKHZvaWQpXG4gXHQ6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogVXNlIGJwZl9nZXRfcHJhbmRvbV91MzIoKSB0byBwcmV2ZW50IERDRSBmcm9tIHJlbW92aW5nIHRoZSBjaGVja3MuXG4mIzQzOyAqIHJldHZhbDogMD1hbGwgb2ssIDEtNj1SMC1SNSBjbG9iYmVyZWQuXG4mIzQzOyAqL1xuJiM0MztTRUMoXCYjMzQ7cmF3X3RwXCYjMzQ7KVxuJiM0MztfX2Rlc2NyaXB0aW9uKFwmIzM0O3RpbWVkIG1heV9nb3RvIHByZXNlcnZlcyBSMC1SNVwmIzM0OylcbiYjNDM7X19hcmNoX3g4Nl82NFxuJiM0MztfX2FyY2hfYXJtNjRcbiYjNDM7X19hcmNoX3Jpc2N2NjRcbiYjNDM7X19zdWNjZXNzXG4mIzQzO19fcmV0dmFsKDApXG4mIzQzO19fbmFrZWQgdm9pZCB0aW1lZF9tYXlfZ290b19wcmVzZXJ2ZXNfcmVncyh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0YXNtIHZvbGF0aWxlIChcbiYjNDM7XHRcJiMzNDtjYWxsICVbYnBmX2dldF9wcmFuZG9tX3UzMl07XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjYgPSByMDtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMCA9IDB4MTExMTtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMCAmIzQzOz0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjEgPSAweDIyMjI7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjEgJiM0Mzs9IHI2O1wmIzM0O1xuJiM0MztcdFwmIzM0O3IyID0gMHgzMzMzO1wmIzM0O1xuJiM0MztcdFwmIzM0O3IyICYjNDM7PSByNjtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMyA9IDB4NDQ0NDtcJiMzNDtcbiYjNDM7XHRcJiMzNDtyMyAmIzQzOz0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjQgPSAweDU1NTU7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjQgJiM0Mzs9IHI2O1wmIzM0O1xuJiM0MztcdFwmIzM0O3I1ID0gMHg2NjY2O1wmIzM0O1xuJiM0MztcdFwmIzM0O3I1ICYjNDM7PSByNjtcJiMzNDtcbiYjNDM7XHRcJiMzNDsuOGJ5dGUgJVttYXlfZ290b107XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7LjhieXRlICVbbG9vcF07XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjAgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjEgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjIgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjMgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjQgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjUgLT0gcjY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjAgIT0gMHgxMTExIGdvdG8gMWY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjEgIT0gMHgyMjIyIGdvdG8gMmY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjIgIT0gMHgzMzMzIGdvdG8gM2Y7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjMgIT0gMHg0NDQ0IGdvdG8gNGY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjQgIT0gMHg1NTU1IGdvdG8gNWY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7aWYgcjUgIT0gMHg2NjY2IGdvdG8gNmY7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7cjAgPSAwO1wmIzM0O1xuJiM0MztcdFwmIzM0O2V4aXQ7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7MTogcjAgPSAxOyBleGl0O1wmIzM0O1xuJiM0MztcdFwmIzM0OzI6IHIwID0gMjsgZXhpdDtcJiMzNDtcbiYjNDM7XHRcJiMzNDszOiByMCA9IDM7IGV4aXQ7XCYjMzQ7XG4mIzQzO1x0XCYjMzQ7NDogcjAgPSA0OyBleGl0O1wmIzM0O1xuJiM0MztcdFwmIzM0OzU6IHIwID0gNTsgZXhpdDtcJiMzNDtcbiYjNDM7XHRcJiMzNDs2OiByMCA9IDY7IGV4aXQ7XCYjMzQ7XG4mIzQzO1x0OlxuJiM0MztcdDogX19pbW0oYnBmX2dldF9wcmFuZG9tX3UzMiksXG4mIzQzO1x0ICBfX2ltbV9pbnNuKG1heV9nb3RvLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQ09ORCwgMCwgMCwgMSwgMCkpLFxuJiM0MztcdCAgX19pbW1faW5zbihsb29wLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSwgMCwgMCwgLTIsIDApKVxuJiM0MztcdDogX19jbG9iYmVyX2FsbCk7XG4mIzQzO31cbiYjNDM7XG4gY2hhciBfbGljZW5zZVtdIFNFQyhcJiMzNDtsaWNlbnNlXCYjMzQ7KSA9IFwmIzM0O0dQTFwmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8mIzM0OywKICAgICYjMzQ7YnBmX2ppdF9lbWl0X2luc24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW1wbGVtZW50cyBCUEYgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBmb3IgdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUgYnkgYWRkaW5nIHRoZSBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFzc2VtYmx5IHRyYW1wb2xpbmUgYW5kIHVwZGF0aW5nIHRoZSBKSVQgY29tcGlsZXIgKGBicGZfaml0X2VtaXRfaW5zbmApIHRvIGhhbmRsZSBpdHMgY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zIG9uIFJJU0MtViB3aXRoIEpJVCBlbmFibGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjMmU5YTc3NGQ3Y2NhMzEwYTViYjM0MDdlZjY1NTk2MWExN2Q2MjMwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMjMgMDM6MDI6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlCmluZGV4IDlhMWU1ZjBhOTRlNTU5Li42NDU4ZDRkNTE5OTBhNyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUKQEAgLTMsNyAmIzQzOzMsNyBAQAogb2JqLSQoQ09ORklHX0JQRl9KSVQpICYjNDM7PSBicGZfaml0X2NvcmUubwogCiBpZmVxICgkKENPTkZJR19BUkNIX1JWNjRJKSx5KQotCW9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wNjQubwomIzQzOwlvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcDY0Lm8gYnBmX3RpbWVkX21heV9nb3RvLm8KIGVsc2UKIAlvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcDMyLm8KIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYwppbmRleCBhZDA4OWE5YTRlYTlhYy4uOGZlODk2OWZiOGEwZjggMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYwpAQCAtMTg0MSw3ICYjNDM7MTg0MSwxMiBAQCBpbnQgYnBmX2ppdF9lbWl0X2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCwKIAkJaWYgKGF1eC0mZ3Q7dGFpbF9jYWxsX3JlYWNoYWJsZSAmYW1wOyZhbXA7IGluc24tJmd0O3NyY19yZWcgPT0gQlBGX1BTRVVET19DQUxMKQogCQkJZW1pdF9zZChSVl9SRUdfU1AsIGN0eC0mZ3Q7dGNjX29mZnNldCwgUlZfUkVHX1RDQywgY3R4KTsKIAotCQlpZiAoaW5zbi0mZ3Q7c3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwpCiYjNDM7CQkvKgomIzQzOwkJICogYXJjaF9icGZfdGltZWRfbWF5X2dvdG8oKSBpcyBlbWl0dGVkIGJ5IHRoZSB2ZXJpZmllciBhbmQKJiM0MzsJCSAqIHJldHVybnMgaXRzIHJlc3VsdCBpbiBCUEZfUkVHX0FYIGluc3RlYWQgb2YgQlBGX1JFR18wLCBzbwomIzQzOwkJICogc2tpcCB0aGUgbm9ybWFsICYjMzQ7bW92ZSByZXR1cm4gcmVnaXN0ZXIgaW50byBSMCYjMzQ7LgomIzQzOwkJICovCiYjNDM7CQlpZiAoaW5zbi0mZ3Q7c3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwgJmFtcDsmYW1wOyBhZGRyICE9ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pCiAJCQllbWl0X212KGJwZl90b19ydl9yZWcoQlBGX1JFR18wLCBjdHgpLCBSVl9SRUdfQTAsIGN0eCk7CiAJCWJyZWFrOwogCX0KQEAgLTIxNjEsMyAmIzQzOzIxNjYsOCBAQCBib29sIGJwZl9qaXRfc3VwcG9ydHNfc3VicHJvZ190YWlsY2FsbHModm9pZCkKIHsKIAlyZXR1cm4gdHJ1ZTsKIH0KJiM0MzsKJiM0Mztib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZCkKJiM0Mzt7CiYjNDM7CXJldHVybiB0cnVlOwomIzQzO30KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TIGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmY0YmYyY2QxMDU4NjZiCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMKQEAgLTAsMCAmIzQzOzEsNDcgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwomIzQzOy8qIENvcHlyaWdodCAoYykgMjAyNiBGZW5nIEppYW5nICZsdDtqaWFuZ2ZlbmdAa3lsaW5vcy5jbiZndDsgKi8KJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbGlua2FnZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDthc20vYXNtLmgmZ3Q7CiYjNDM7CiYjNDM7LyoKJiM0MzsgKiBUcmFtcG9saW5lIGZvciB0aGUgQlBGIHRpbWVkIG1heV9nb3RvIGxvb3AgYm91bmQuIEN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb246CiYjNDM7ICoJLSBpbnB1dDogIHN0YWNrIG9mZnNldCBpbiBCUEZfUkVHX0FYICh0MCkKJiM0MzsgKgktIG91dHB1dDogdXBkYXRlZCBjb3VudCBpbiBCUEZfUkVHX0FYICh0MCkKJiM0MzsgKgomIzQzOyAqIENhbGxzIGJwZl9jaGVja190aW1lZF9tYXlfZ290byhwdHIpIHdpdGggdGhlIHN0YW5kYXJkIFJJU0MtViBBQkksIHdoZXJlCiYjNDM7ICogcHRyID0gQlBGX1JFR19GUCAoczUpICYjNDM7IEJQRl9SRUdfQVggKHQwKS4gQlBGIFIwLVI1IChhNSwgYTAtYTQpIGFyZSBzYXZlZAomIzQzOyAqIGFjcm9zcyB0aGUgY2FsbDsgQlBGX1JFR19GUCAoczUpIGlzIGNhbGxlZS1zYXZlZCBhbmQgbmVlZHMgbm8gc2F2aW5nLgomIzQzOyAqLwomIzQzOwomIzQzO1NZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKQomIzQzOwlhZGRpCXNwLCBzcCwgLTY0CiYjNDM7CXNkCXJhLCA1NihzcCkKJiM0MzsJc2QJczAsIDQ4KHNwKQomIzQzOwlhZGRpCXMwLCBzcCwgNjQKJiM0MzsKJiM0MzsJLyogU2F2ZSBCUEYgcmVnaXN0ZXJzIFIwLVI1IChhNSwgYTAtYTQpICovCiYjNDM7CXNkCWE1LCA0MChzcCkKJiM0MzsJc2QJYTAsIDMyKHNwKQomIzQzOwlzZAlhMSwgMjQoc3ApCiYjNDM7CXNkCWEyLCAxNihzcCkKJiM0MzsJc2QJYTMsIDgoc3ApCiYjNDM7CXNkCWE0LCAwKHNwKQomIzQzOwomIzQzOwlhZGQJYTAsIHQwLCBzNQomIzQzOwljYWxsCWJwZl9jaGVja190aW1lZF9tYXlfZ290bwomIzQzOwltdgl0MCwgYTAKJiM0MzsKJiM0MzsJLyogUmVzdG9yZSBCUEYgcmVnaXN0ZXJzIFIwLVI1ICovCiYjNDM7CWxkCWE0LCAwKHNwKQomIzQzOwlsZAlhMywgOChzcCkKJiM0MzsJbGQJYTIsIDE2KHNwKQomIzQzOwlsZAlhMSwgMjQoc3ApCiYjNDM7CWxkCWEwLCAzMihzcCkKJiM0MzsJbGQJYTUsIDQwKHNwKQomIzQzOwomIzQzOwlsZAlzMCwgNDgoc3ApCiYjNDM7CWxkCXJhLCA1NihzcCkKJiM0MzsJYWRkaQlzcCwgc3AsIDY0CiYjNDM7CXJldAomIzQzO1NZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bykKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uYwppbmRleCA5MmJhMWQ3MmUwZWNlNC4uOGQ4ZTUzZDM3MjY2Y2QgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmMKQEAgLTY0LDYgJiM0Mzs2NCw3IEBAIFNFQygmIzM0O3N5c2NhbGwmIzM0OykKIF9fYXJjaF94ODZfNjQKIF9fYXJjaF9hcm02NAogX19hcmNoX3MzOTB4CiYjNDM7X19hcmNoX3Jpc2N2NjQKIF9fc3VjY2VzcyBfX3JldHZhbCgwKQogX19zdGRlcnIoJiMzNDtFUlJPUjogVGltZW91dCBkZXRlY3RlZCBmb3IgbWF5X2dvdG8gaW5zdHJ1Y3Rpb24mIzM0OykKIF9fc3RkZXJyKCYjMzQ7Q1BVOiB7e1swLTldJiM0Mzt9fSBVSUQ6IDAgUElEOiB7e1swLTldJiM0Mzt9fSBDb21tOiB7ey4qfX0mIzM0OykKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYwppbmRleCA4ZDdmZjM4ZTRjMDY5Ny4uODM3MDdmYWVhMDQ5OTQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmMKQEAgLTY2MCw2ICYjNDM7NjYwLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKQogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fYXJjaF9hcm02NAomIzQzO19fYXJjaF9yaXNjdjY0CiBfX2xvZ19sZXZlbCg0KSBfX21zZygmIzM0O3N0YWNrIGRlcHRoIDI0JiMzNDspCiAvKiBtYXlfZ290byBjb3VudGVyIGF0IC0yNCAqLwogX194bGF0ZWQoJiMzNDswOiAqKHU2NCAqKShyMTAgLTI0KSA9JiMzNDspCkBAIC02NzksNyAmIzQzOzY4MCw3IEBAIF9feGxhdGVkKCYjMzQ7MTA6ICoodTY0ICopKHIxMCAtMjQpID0gcjEyJiMzNDspCiBfX3hsYXRlZCgmIzM0OzExOiAqKHU2NCAqKShyMTAgLTgpID0gcjEmIzM0OykKIF9feGxhdGVkKCYjMzQ7MTI6IGV4aXQmIzM0OykKIF9fc3VjY2VzcwotX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX2FybTY0KHZvaWQpCiYjNDM7X19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uKHZvaWQpCiB7CiAJYXNtIHZvbGF0aWxlICgKIAkmIzM0O3IxID0gMTsmIzM0OwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21heV9nb3RvXzEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMKaW5kZXggNGJkZjQyNTZhNDFlNTEuLjk3MTI5ZDI3MzBhMDUzIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMKQEAgLTExLDYgJiM0MzsxMSw3IEBAIF9fZGVzY3JpcHRpb24oJiMzNDttYXlfZ290byAwJiMzNDspCiBfX2FyY2hfeDg2XzY0CiBfX2FyY2hfczM5MHgKIF9fYXJjaF9hcm02NAomIzQzO19fYXJjaF9yaXNjdjY0CiBfX3hsYXRlZCgmIzM0OzA6IHIwID0gMSYjMzQ7KQogX194bGF0ZWQoJiMzNDsxOiBleGl0JiMzNDspCiBfX3N1Y2Nlc3MKQEAgLTMxLDYgJiM0MzszMiw3IEBAIF9fZGVzY3JpcHRpb24oJiMzNDtiYXRjaCAyIG9mIG1heV9nb3RvIDAmIzM0OykKIF9fYXJjaF94ODZfNjQKIF9fYXJjaF9zMzkweAogX19hcmNoX2FybTY0CiYjNDM7X19hcmNoX3Jpc2N2NjQKIF9feGxhdGVkKCYjMzQ7MDogcjAgPSAxJiMzNDspCiBfX3hsYXRlZCgmIzM0OzE6IGV4aXQmIzM0OykKIF9fc3VjY2VzcwpAQCAtNTMsNiAmIzQzOzU1LDcgQEAgX19kZXNjcmlwdGlvbigmIzM0O21heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzEvMCYjMzQ7KQogX19hcmNoX3g4Nl82NAogX19hcmNoX3MzOTB4CiBfX2FyY2hfYXJtNjQKJiM0MztfX2FyY2hfcmlzY3Y2NAogX194bGF0ZWQoJiMzNDswOiByMCA9IDEmIzM0OykKIF9feGxhdGVkKCYjMzQ7MTogZXhpdCYjMzQ7KQogX19zdWNjZXNzCkBAIC03OSw2ICYjNDM7ODIsNyBAQCBfX2Rlc2NyaXB0aW9uKCYjMzQ7bWF5X2dvdG8gYmF0Y2ggd2l0aCBvZmZzZXRzIDIvMCYjMzQ7KQogX19hcmNoX3g4Nl82NAogX19hcmNoX3MzOTB4CiBfX2FyY2hfYXJtNjQKJiM0MztfX2FyY2hfcmlzY3Y2NAogX194bGF0ZWQoJiMzNDswOiAqKHU2NCAqKShyMTAgLTE2KSA9IDY1NTM1JiMzNDspCiBfX3hsYXRlZCgmIzM0OzE6ICoodTY0ICopKHIxMCAtOCkgPSAwJiMzNDspCiBfX3hsYXRlZCgmIzM0OzI6IHIxMiA9ICoodTY0ICopKHIxMCAtMTYpJiMzNDspCkBAIC0xMDYsNCAmIzQzOzExMCw2MSBAQCBfX25ha2VkIHZvaWQgbWF5X2dvdG9fYmF0Y2hfMih2b2lkKQogCTogX19jbG9iYmVyX2FsbCk7CiB9CiAKJiM0MzsvKgomIzQzOyAqIFVzZSBicGZfZ2V0X3ByYW5kb21fdTMyKCkgdG8gcHJldmVudCBEQ0UgZnJvbSByZW1vdmluZyB0aGUgY2hlY2tzLgomIzQzOyAqIHJldHZhbDogMD1hbGwgb2ssIDEtNj1SMC1SNSBjbG9iYmVyZWQuCiYjNDM7ICovCiYjNDM7U0VDKCYjMzQ7cmF3X3RwJiMzNDspCiYjNDM7X19kZXNjcmlwdGlvbigmIzM0O3RpbWVkIG1heV9nb3RvIHByZXNlcnZlcyBSMC1SNSYjMzQ7KQomIzQzO19fYXJjaF94ODZfNjQKJiM0MztfX2FyY2hfYXJtNjQKJiM0MztfX2FyY2hfcmlzY3Y2NAomIzQzO19fc3VjY2VzcwomIzQzO19fcmV0dmFsKDApCiYjNDM7X19uYWtlZCB2b2lkIHRpbWVkX21heV9nb3RvX3ByZXNlcnZlc19yZWdzKHZvaWQpCiYjNDM7ewomIzQzOwlhc20gdm9sYXRpbGUgKAomIzQzOwkmIzM0O2NhbGwgJVticGZfZ2V0X3ByYW5kb21fdTMyXTsmIzM0OwomIzQzOwkmIzM0O3I2ID0gcjA7JiMzNDsKJiM0MzsJJiMzNDtyMCA9IDB4MTExMTsmIzM0OwomIzQzOwkmIzM0O3IwICYjNDM7PSByNjsmIzM0OwomIzQzOwkmIzM0O3IxID0gMHgyMjIyOyYjMzQ7CiYjNDM7CSYjMzQ7cjEgJiM0Mzs9IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjIgPSAweDMzMzM7JiMzNDsKJiM0MzsJJiMzNDtyMiAmIzQzOz0gcjY7JiMzNDsKJiM0MzsJJiMzNDtyMyA9IDB4NDQ0NDsmIzM0OwomIzQzOwkmIzM0O3IzICYjNDM7PSByNjsmIzM0OwomIzQzOwkmIzM0O3I0ID0gMHg1NTU1OyYjMzQ7CiYjNDM7CSYjMzQ7cjQgJiM0Mzs9IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjUgPSAweDY2NjY7JiMzNDsKJiM0MzsJJiMzNDtyNSAmIzQzOz0gcjY7JiMzNDsKJiM0MzsJJiMzNDsuOGJ5dGUgJVttYXlfZ290b107JiMzNDsKJiM0MzsJJiMzNDsuOGJ5dGUgJVtsb29wXTsmIzM0OwomIzQzOwkmIzM0O3IwIC09IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjEgLT0gcjY7JiMzNDsKJiM0MzsJJiMzNDtyMiAtPSByNjsmIzM0OwomIzQzOwkmIzM0O3IzIC09IHI2OyYjMzQ7CiYjNDM7CSYjMzQ7cjQgLT0gcjY7JiMzNDsKJiM0MzsJJiMzNDtyNSAtPSByNjsmIzM0OwomIzQzOwkmIzM0O2lmIHIwICE9IDB4MTExMSBnb3RvIDFmOyYjMzQ7CiYjNDM7CSYjMzQ7aWYgcjEgIT0gMHgyMjIyIGdvdG8gMmY7JiMzNDsKJiM0MzsJJiMzNDtpZiByMiAhPSAweDMzMzMgZ290byAzZjsmIzM0OwomIzQzOwkmIzM0O2lmIHIzICE9IDB4NDQ0NCBnb3RvIDRmOyYjMzQ7CiYjNDM7CSYjMzQ7aWYgcjQgIT0gMHg1NTU1IGdvdG8gNWY7JiMzNDsKJiM0MzsJJiMzNDtpZiByNSAhPSAweDY2NjYgZ290byA2ZjsmIzM0OwomIzQzOwkmIzM0O3IwID0gMDsmIzM0OwomIzQzOwkmIzM0O2V4aXQ7JiMzNDsKJiM0MzsJJiMzNDsxOiByMCA9IDE7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDsyOiByMCA9IDI7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDszOiByMCA9IDM7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDs0OiByMCA9IDQ7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDs1OiByMCA9IDU7IGV4aXQ7JiMzNDsKJiM0MzsJJiMzNDs2OiByMCA9IDY7IGV4aXQ7JiMzNDsKJiM0MzsJOgomIzQzOwk6IF9faW1tKGJwZl9nZXRfcHJhbmRvbV91MzIpLAomIzQzOwkgIF9faW1tX2luc24obWF5X2dvdG8sIEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0pDT05ELCAwLCAwLCAxLCAwKSksCiYjNDM7CSAgX19pbW1faW5zbihsb29wLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQSwgMCwgMCwgLTIsIDApKQomIzQzOwk6IF9fY2xvYmJlcl9hbGwpOwomIzQzO30KJiM0MzsKIGNoYXIgX2xpY2Vuc2VbXSBTRUMoJiMzNDtsaWNlbnNlJiMzNDspID0gJiMzNDtHUEwmIzM0OzsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDM6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA2NQoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDU3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSSVNDLVYgQlBGIFRpbWVkIE1heS1Hb3RvIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgYnJpbmdpbmcgYGJwZl90aW1lZF9tYXlfZ290b2Agc3VwcG9ydCBpbnRvIHRoZSBSSVNDLVYgQlBGIEpJVCwgd2hpY2ggaXMgYSBnb29kIHN0ZXAuIEkgc2VlIHRoZSBtb2RpZmljYXRpb25zIGFyZSBzcHJlYWQgYWNyb3NzIHRoZSBleHBlY3RlZCBhcmVhczogYGFyY2gvcmlzY3YvbmV0L01ha2VmaWxlYCwgdGhlIEpJVCBjb21waWxlciBpdHNlbGYgKGBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jYCksIGEgbmV3IGFzc2VtYmx5IGZpbGUgZm9yIHRoZSB0aW1lZCBtYXktZ290byBsb2dpYyAoYGFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TYCksIGFuZCBzb21lIHVwZGF0ZWQgc2VsZnRlc3RzLiBTZWVtcyBsaWtlIGEgY29tcHJlaGVuc2l2ZSBhcHByb2FjaCwgd2hpY2ggaXMgd2hhdCBJIHdvdWxkIGV4cGVjdC4KCkxvb2tpbmcgc3BlY2lmaWNhbGx5IGF0IGBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jYCwgdGhlIGtleSBjaGFuZ2UgaXMgd2l0aGluIGBicGZfaml0X2VtaXRfaW5zbmAuIFRoZSBjb25kaXRpb25hbCBsb2dpYyBwcmV2ZW50aW5nIHRoZSBtb3ZlIGZyb20gQTAgdG8gUjAgYWZ0ZXIgYSBmdW5jdGlvbiBjYWxsIGhhcyBiZWVuIGF1Z21lbnRlZC4gSXQgbG9va3MgbGlrZSBpdCBoYW5kbGVzIHRoZSBzcGVjaWFsIGNhc2Ugb2YgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYC4gVGhpcyBtYWtlcyBzZW5zZSwgYmVjYXVzZSBJIGtub3cgdGhhdCBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIHJldHVybnMgaXRzIHJlc3VsdCBpbiBhIGRpZmZlcmVudCByZWdpc3RlciB0aGFuIHRoZSBzdGFuZGFyZCBCUEYgY2FsbHMuIFRoZSBjb2RlIGV4cGxpY2l0bHkgaWRlbnRpZmllcyB0aGlzLCB3aGljaCBpcyBnb29kLiBXZSBkb24mIzM5O3Qgd2FudCB0byBjb3JydXB0IG91ciByZXR1cm4gdmFsdWVzLgoKQmV5b25kIHRoZSByZWdpc3RlciBoYW5kbGluZywgdGhlIGZ1bmN0aW9uIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKClgIGhhcyBiZWVuIGFkZGVkLCBhbmQgaXQgc2ltcGx5IHJldHVybnMgYHRydWVgLiBUaGlzIG1ha2VzIHN1cmUgdGhpcyBjYXBhYmlsaXR5IGlzIGV4cG9zZWQgdG8gdGhlIEJQRiB2ZXJpZmllciBhbmQgZW5zdXJlcyB0aGUgSklUIGNvZGUgY2FuIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBpcyBleGFjdGx5IHdoYXQgSSB3b3VsZCBleHBlY3QgdG8gc2VlIGluIGEgcGF0Y2ggbGlrZSB0aGlzLgoKRnVuY3Rpb25hbGx5LCBJIGNhbiBzZWUgdGhhdCB0aGlzIHBhdGNoIGlzIGRvaW5nIHdoYXQgaXQgbmVlZHMgdG8gZG86IGVuYWJsaW5nIEJQRiB0aW1lZCBtYXktZ290byBzdXBwb3J0IG9uIFJJU0MtVi4gVGhlIEpJVCBjb2RlIGlzIHJlYWNoYWJsZSwgYW5kIHRoZSBzdXBwb3J0IGlzIGVuYWJsZWQgaWYgdGhlIEJQRiBKSVQgaXMgZW5hYmxlZCBvbiBSSVNDLVYsIHdoaWNoIGRlcGVuZHMgb24gYENPTkZJR19CUEZfSklUYCBhbmQgYENPTkZJR19SSVNDVmAgKG9yIGBDT05GSUdfQVJDSF9SVjY0SWApLiBTbywgdGhlcmUgaXNuJiMzOTt0IGFueXRoaW5nIHN0cmFuZ2UgdGhlcmUuIE5vdyBJIG5lZWQgdG8gY2hlY2sgdGhlIGNvbmZpZ3MgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBwcm9wZXJseSBleHBvc2VkIHRvIHRoZSB1c2VyLiBJJiMzOTtsbCBzZWFyY2ggZm9yIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCB0byBjb25maXJtIHRoZSBjb2RlIHdpbGwgZnVuY3Rpb24gY29ycmVjdGx5LiBTbyBmYXIsIHRoZSBwYXRjaCBzZWVtcyB0byBhZGRyZXNzIHRoZSBjb3JlIHByb2JsZW0gYW5kIGludGVncmF0ZSBjb3JyZWN0bHkgaW50byB0aGUgZXhpc3RpbmcgYXJjaGl0ZWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAzOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM9MzE5Nz1ib29sIGJwZl9qaXRfYnlwYXNzX3NwZWNfdjQodm9pZClcbi0tXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0zMjA3LVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM6MzIwODpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTMyMDkte1xuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmM9NTE1PWJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKVxuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmMtNTE5LVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYzo1MjA6Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jLTUyMS17XG4tLVxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYz0yMTY1PWJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKVxuLS1cbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE2OS1cbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmM6MjE3MDpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE3MS17XG4tLVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz0zMDU1PXZvaWQgYXJjaF9icGZfc3RhY2tfd2Fsayhib29sICgqY29uc3VtZV9mbikodm9pZCAqLCB1NjQsIHU2NCwgdTY0KSxcbi0tXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODAtXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jOjMwODE6Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODIte1xuLS1cbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYz00MjEwPXU2NCBicGZfYXJjaF91YWRkcmVzc19saW1pdCh2b2lkKVxuLS1cbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYy00MjE0LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jOjQyMTU6Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMtNDIxNi17XG4tLVxuaW5jbHVkZS9saW51eC9maWx0ZXIuaD0xMTkxPWJvb2wgYnBmX2ppdF9zdXBwb3J0c19wcml2YXRlX3N0YWNrKHZvaWQpO1xuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMTkyOmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKTtcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTE5My1ib29sIGJwZl9qaXRfc3VwcG9ydHNfZnNlc3Npb24odm9pZCk7XG4tLVxua2VybmVsL2JwZi9jb3JlLmM9MzM3ND12b2lkIF9fd2VhayBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNwLCB1NjQgYnApLCB2b2lkICpjb29raWUpXG4tLVxua2VybmVsL2JwZi9jb3JlLmMtMzM3Ny1cbmtlcm5lbC9icGYvY29yZS5jOjMzNzg6Ym9vbCBfX3dlYWsgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxua2VybmVsL2JwZi9jb3JlLmMtMzM3OS17XG4tLVxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgwPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3NTQtXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjE3NTU6XHRcdGlmIChicGZfaXNfbWF5X2dvdG9faW5zbihpbnNuKSBcdTAwMjZcdTAwMjYgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290bygpKSB7XG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3NTYtXHRcdFx0aW50IHN0YWNrX29mZl9jbnQgPSAtc3RhY2tfZGVwdGggLSAxNjtcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTIzNjgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBlbnYtXHUwMDNlc3VicHJvZ19jbnQ7IGkmIzQzOyYjNDM7KSB7XG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjIzNjk6XHRcdGludCBkZWx0YSA9IGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSA/IDIgOiAxO1xua2VybmVsL2JwZi9maXh1cHMuYy0yMzcwLVx0XHRpbnQgc3VicHJvZ19zdGFydCA9IHN1YnByb2dzW2ldLnN0YXJ0O1xuLS1cbmtlcm5lbC9icGYvZml4dXBzLmMtMjM4Mi1cdFx0c3RhY2tfZGVwdGggPSBzdWJwcm9nc1tpXS5zdGFja19kZXB0aDtcbmtlcm5lbC9icGYvZml4dXBzLmM6MjM4MzpcdFx0aWYgKGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSkge1xua2VybmVsL2JwZi9maXh1cHMuYy0yMzg0LVx0XHRcdGluc25fYnVmW2NudCYjNDM7JiM0MztdID0gQlBGX1NUX01FTShCUEZfRFcsIEJQRl9SRUdfRlAsIC1zdGFja19kZXB0aCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDMzCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJJU0MtViBCUEYgSklUIEJ1ZyBIdW50OiBBIFRlc3RhYmxlIE9wcG9ydHVuaXR5KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFuZCB0d2Vha3MgYGJwZl9qaXRfZW1pdF9pbnNuYCBpbiB0aGUgUklTQy1WIEJQRiBKSVQgY29tcGlsYXRpb24gY29kZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMsICYjMzQ7WWVzLCB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHdlIGNhbiB0cmlwIHVwIGlmIHdlIHRocm93IGZ1enppbmcgYXQgaXQuJiMzNDsgVGhpbmtpbmcgcHJhY3RpY2FsbHksIGlmIHdlJiMzOTtyZSBmdXp6aW5nIEJQRiBvbiBSSVNDLVYsIHRoaXMgY29kZSBwYXRoICp3aWxsKiBnZXQgZXhlcmNpc2VkLiBXYWl0IGEgbWludXRlLi4uIGRvZXNuJiMzOTt0IHN5emthbGxlciAqYWxyZWFkeSogZnV6eiB0aGUgUklTQy1WIEJQRiBKSVQgd2hlbiBydW5uaW5nIG9uIGEgUklTQy1WIHRhcmdldD8gQmluZ28hCgpUaGlzIGlzIGV4Y2VsbGVudCBuZXdzLiBJdCBtZWFucyB3ZSBoYXZlIGEgc2ltcGxlIHdheSB0byB0ZXN0IHRoaXMhIFdlIGp1c3QgbmVlZCB0byBlbnN1cmUgdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb25zIGFyZSBlbmFibGVkLiBMZXQgbWUgc2VlLi4uIGBCUEZfSklUYCBhbmQgZWl0aGVyIGBSSVNDVmAgb3IgYEFSQ0hfUlY2NElgIHNob3VsZCBkbyB0aGUgdHJpY2suIE5vdywgdG8gZG91YmxlLWNoZWNrIHRoYXQgZXZlcnl0aGluZyBpcyBpbiBwbGFjZSwgSSBzaG91bGQgcHJvYmFibHkgZ2xhbmNlIGF0IGBhcmNoL3Jpc2N2L25ldC9NYWtlZmlsZWAgdG8gbWFrZSBzdXJlIGFsbCB0aGUgcGllY2VzIGFyZSBsaW5rZWQgdG9nZXRoZXIgY29ycmVjdGx5LiBUaW1lIHRvIHZlcmlmeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX0pJVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTItXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZTozOm9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb3JlLm9cbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTQtXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZT01PWlmZXEgKCQoQ09ORklHX0FSQ0hfUlY2NEkpLHkpXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZTo2Olx0b2JqLSQoQ09ORklHX0JQRl9KSVQpICYjNDM7PSBicGZfaml0X2NvbXA2NC5vIGJwZl90aW1lZF9tYXlfZ290by5vXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZS03LWVsc2VcbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlOjg6XHRvYmotJChDT05GSUdfQlBGX0pJVCkgJiM0Mzs9IGJwZl9qaXRfY29tcDMyLm9cbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTktZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MDY5CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgQlBGIEpJVCBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgYENPTkZJR19CUEZfSklUYCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBkZWZpbml0ZWx5IGVzc2VudGlhbCBoZXJlLiBCdXQgaGFuZyBvbiwgdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgUklTQy1WIHNwZWNpZmljYWxseSwgYW5kIEkgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhhdCBTeXprYWxsZXIsIHdoaWNoIGlzIHdoYXQgSSYjMzk7bSBsaWtlbHkgdXNpbmcsIHJ1bnMgb24gYSBtdWNoIGJyb2FkZXIgcmFuZ2Ugb2YgYXJjaGl0ZWN0dXJlcyBsaWtlIHg4Nl82NCwgYXJtNjQsIGFuZCByaXNjdjY0LCBldGMuIElmIEkgZmxhZyB0aGlzIHdpdGggYFdvcnRoRnV6emluZz10cnVlYCwgaXQmIzM5O2xsIGdldCBhdHRlbnRpb24gZnJvbSB0aGUgZnV6emVyLgoKUmlnaHQsIHRpbWUgdG8gZm9jdXMgb24gc29tZSBzeW1ib2xzLiBgYnBmX2ppdF9lbWl0X2luc25gIGxvb2tzIGxpa2UgYSBrZXkgZnVuY3Rpb24gc2luY2UgaXQmIzM5O3MgdGhlIGNvcmUgSklUIGluc3RydWN0aW9uIGVtaXR0ZXIsIGJ1dCBpdCBtaWdodCBiZSB0b28gZ2VuZXJpYy4gSXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIEpJVCwgc28gaXQgbWlnaHQgYmUuIGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgaXMgYW4gYXNzZW1ibHkgZnVuY3Rpb24sIHNvIEtDT1YgaW5zdHJ1bWVudGF0aW9uIGlzIG91dCBmb3IgdGhhdCBvbmUsIHdoaWNoIGlzIHVuZm9ydHVuYXRlLiBgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b2AgaXMganVzdCBhIGJvb2xlYW4sIHNvIHRoYXQmIzM5O3Mgbm90IGdvaW5nIHRvIHRlbGwgdXMgYSBsb3QuCgpBaGEhIGBicGZfaml0X2VtaXRfaW5zbmAgKmlzKiBiZWluZyBtb2RpZmllZCwgc28gdGhhdCYjMzk7cyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgZGlnZ2luZyBkZWVwZXIuIEl0IGxvb2tzIGxpa2UgdGhhdCBpcyB0aGUgbWFpbiB3b3JraG9yc2UgaGVyZSwgc28gaXQgaXMgdGhlIGNvcnJlY3QgcGxhY2UgdG8gZm9jdXMgb24uIE9rYXksIGxldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIGludm9sdmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAzOjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FyY2hfYnBmX3RpbWVkX21heV9nb3RvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jPTEyNTM9c3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjcwLVx0XHQvKlxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM6MTY3MTpcdFx0ICogQ2FsbCB0byBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjcyLVx0XHQgKiB2ZXJpZmllciBhbmQgY2FsbGVkIHdpdGggY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbiB3aXRoXG4tLVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMTY3NC1cdFx0ICovXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzoxNjc1Olx0XHRpZiAoZnVuY19hZGRyICE9ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjc2LVx0XHRcdGVtaXQoQTY0X01PVigxLCByMCwgQTY0X1IoMCkpLCBjdHgpO1xuLS1cbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTUtXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo2OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNy1cdC8qIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGFuZCBlbWl0IGZyYW1lIHJlY29yZCAqL1xuLS1cbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTIwLVx0ICpcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjIxOlx0ICogQmVmb3JlIGdlbmVyYXRpbmcgdGhlIGNhbGwgdG8gYXJjaF9icGZfdGltZWRfbWF5X2dvdG8sIHRoZSB2ZXJpZmllclxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMjItXHQgKiBnZW5lcmF0ZXMgYSBsb2FkIGluc3RydWN0aW9uIHVzaW5nIEZQLCBpLmUuIFJFR19BWCA9ICoodTY0ICopKEZQIC1cbi0tXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0zOS1cdHJldFxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6NDA6U1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYz05Njc9aW50IGJwZl9qaXRfYnVpbGRfYm9keShzdHJ1Y3QgYnBmX3Byb2cgKmZwLCB1MzIgKmltYWdlLCB1MzIgKmZpbWFnZSwgc3RydWN0IGNvZGVnZW5fY29udGV4dCAqY3R4LFxuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYy0xNzY5LVx0XHRcdC8qXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmM6MTc3MDpcdFx0XHQgKiBDYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaXMgZW1pdHRlZCBieSB0aGVcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYy0xNzcxLVx0XHRcdCAqIHZlcmlmaWVyIGFuZCBjYWxsZWQgd2l0aCBjdXN0b20gY2FsbGluZyBjb252ZW50aW9uIHdpdGhcbi0tXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc4Mi1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYzoxNzgzOlx0XHRcdGlmIChmdW5jX2FkZHIgPT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bykge1xuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXA2NC5jLTE3ODQtXHRcdFx0XHRyZXQgPSAwO1xuLS1cbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNy0vKlxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo4OiAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgdHJhbXBvbGluZSBmb3IgcG93ZXJwYzY0XG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTktICpcbi0tXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE5LVxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzoyMDpTWU1fRlVOQ19TVEFSVChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMjEtXHQvKiBQcm9sb2d1ZTogc2F2ZSBMUiwgYWxsb2NhdGUgZnJhbWUgKi9cbi0tXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTU2LVx0YmxyXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjU3OlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jPTEzNjE9aW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXG4tLVxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODQ0LVx0XHQvKlxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoxODQ1Olx0XHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlIHZlcmlmaWVyIGFuZFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODQ2LVx0XHQgKiByZXR1cm5zIGl0cyByZXN1bHQgaW4gQlBGX1JFR19BWCBpbnN0ZWFkIG9mIEJQRl9SRUdfMCwgc29cbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDgtXHRcdCAqL1xuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoxODQ5Olx0XHRpZiAoaW5zbi1cdTAwM2VzcmNfcmVnICE9IEJQRl9QU0VVRE9fQ0FMTCBcdTAwMjZcdTAwMjYgYWRkciAhPSAodTY0KWFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODUwLVx0XHRcdGVtaXRfbXYoYnBmX3RvX3J2X3JlZyhCUEZfUkVHXzAsIGN0eCksIFJWX1JFR19BMCwgY3R4KTtcbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0xNi1cbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjE3OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMTgtXHRhZGRpXHRzcCwgc3AsIC02NFxuLS1cbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTQ2LVx0cmV0XG5hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo0NzpTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG4tLVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz04NzY9c3RhdGljIG5vaW5saW5lIGludCBicGZfaml0X2luc24oc3RydWN0IGJwZl9qaXQgKmppdCwgc3RydWN0IGJwZl9wcm9nICpmcCxcbi0tXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTE4NDEtXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jOjE4NDI6XHRcdGlmICgodm9pZCAqKWZ1bmMgPT0gYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pIHtcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMTg0My1cdFx0XHQvKlxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYzoxODQ0Olx0XHRcdCAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaGFzIGEgc3BlY2lhbCBBQkk6IHRoZVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0xODQ1LVx0XHRcdCAqIHBhcmFtZXRlcnMgYXJlIGluIEJQRl9SRUdfQVggYW5kIEJQRl9SRUdfMTA7IHRoZVxuLS1cbmFyY2gvczM5MC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtMjEtXG5hcmNoL3MzOTAvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjIyOlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMy1cdC8qXG4tLVxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy00NC1cdEJSX0VYICVyMVxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo0NTpTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXG4tLVxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTEwLVxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjExOlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTEyLVx0QU5OT1RBVEVfTk9FTkRCUlxuLS1cbmFyY2gveDg2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy01NC1cdFJFVFxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjU1OlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTExOTU9dm9pZCBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNwLCB1NjQgYnApLCB2b2lkICpjb29raWUpO1xuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMTk2OnU2NCBhcmNoX2JwZl90aW1lZF9tYXlfZ290byh2b2lkKTtcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTE5Ny11NjQgYnBmX2NoZWNrX3RpbWVkX21heV9nb3RvKHN0cnVjdCBicGZfdGltZWRfbWF5X2dvdG8gKik7XG4tLVxua2VybmVsL2JwZi9jb3JlLmM9MzM3OD1ib29sIF9fd2VhayBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXG4tLVxua2VybmVsL2JwZi9jb3JlLmMtMzM4Mi1cbmtlcm5lbC9icGYvY29yZS5jOjMzODM6dTY0IF9fd2VhayBhcmNoX2JwZl90aW1lZF9tYXlfZ290byh2b2lkKVxua2VybmVsL2JwZi9jb3JlLmMtMzM4NC17XG4tLVxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgwPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3NjQtXHRcdFx0ICogdW50aWwgdGhlIHZhbHVlIGJlY29tZXMgMCBpbiBBWCAodGh1cywgMSBpbiBzdGFjayksXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjE3NjU6XHRcdFx0ICogYWZ0ZXIgd2hpY2ggd2UgY2FsbCBhcmNoX2JwZl90aW1lZF9tYXlfZ290bywgd2hpY2hcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc2Ni1cdFx0XHQgKiBlaXRoZXIgc2V0cyBBWCB0byAweGZmZmYgdG8ga2VlcCBsb29waW5nLCBvciB0byAwXG4tLVxua2VybmVsL2JwZi9maXh1cHMuYy0xNzgyLVx0XHRcdCAqICh0byBhZGQgdG8gcjEwL2ZwKSwgYW5kIGFsc28gYXMgdGhlIHJldHVybiB2YWx1ZSBvZlxua2VybmVsL2JwZi9maXh1cHMuYzoxNzgzOlx0XHRcdCAqIHRoZSBjYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLlxua2VybmVsL2JwZi9maXh1cHMuYy0xNzg0LVx0XHRcdCAqL1xua2VybmVsL2JwZi9maXh1cHMuYy0xNzg1LVx0XHRcdGluc25fYnVmWzRdID0gQlBGX01PVjY0X0lNTShCUEZfUkVHX0FYLCBzdGFja19vZmZfY250KTtcbmtlcm5lbC9icGYvZml4dXBzLmM6MTc4NjpcdFx0XHRpbnNuX2J1Zls1XSA9IEJQRl9FTUlUX0NBTEwoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pO1xua2VybmVsL2JwZi9maXh1cHMuYy0xNzg3LVx0XHRcdGluc25fYnVmWzZdID0gQlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzEwLCBCUEZfUkVHX0FYLCBzdGFja19vZmZfY250KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMzowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTMyMQoJCQkJCQkJb3V0cHV0OiAxNDcKCQkJCQkJCXRob3VnaHRzOiA2ODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhpcyBCUEYgVGltZWQgTWF5X0dvdG8gUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgc2VlLCB0aGUgcHJpbWFyeSBtb2RpZmljYXRpb24gaGVyZSBjZW50ZXJzIGFyb3VuZCBpbXBsZW1lbnRpbmcgQlBGJiMzOTtzIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgc3BlY2lmaWNhbGx5IGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gSXQgbG9va3MgbGlrZSB0aGUgY29yZSB3b3JrIGludm9sdmVzIGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lLCB3aGljaCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBtYWluIEMgZnVuY3Rpb24gdG91Y2hlZCBpcyBgYnBmX2ppdF9lbWl0X2luc25gLCBhbmQgSSBhbHNvIHNlZSBhIG5ldyBmdW5jdGlvbiwgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gLCBhZGRlZC4KCkluaXRpYWxseSwgSSB0aG91Z2h0IG9mIGluY2x1ZGluZyBib3RoIGBicGZfaml0X2VtaXRfaW5zbmAgYW5kIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCBpbiB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdC4gSG93ZXZlciwgYGJwZl9qaXRfZW1pdF9pbnNuYCBpcyBhIHNpemVhYmxlIGZ1bmN0aW9uLCBlc3BlY2lhbGx5IGdpdmVuIGl0cyByb2xlIGluIHRoZSBKSVQgcHJvY2Vzcy4gSXQgaXMgdGhlIHByaW1hcnkgSklUIGZ1bmN0aW9uLCBhZnRlciBhbGwuIEJ1dCBnaXZlbiB0aGF0IGl0JiMzOTtzIHRoZSBvbmx5IG1vZGlmaWVkIEMgZnVuY3Rpb24sIGFuZCB0aGlzIHBhdGNoIGRvZXNuJiMzOTt0IGFwcGVhciB0byBiZSBkcmFzdGljYWxseSBjaGFuZ2luZyB0aGUgaG90LXBhdGggcHJvY2Vzc2luZyBvZiBwYWNrZXRzLCBJJiMzOTtsbCBnbyB3aXRoIGl0LgoKSSB3aWxsIGFkZCBib3RoIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCBhbmQgYGJwZl9qaXRfZW1pdF9pbnNuYCB0byB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdCwgc2luY2UgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gIGlzIGEgdGlueSBmdW5jdGlvbiwgYW5kIGBicGZfaml0X2VtaXRfaW5zbmAgaXMgbm90IGNhbGxlZCBkdXJpbmcgcGFja2V0IHByb2Nlc3NpbmcuCgpOb3csIG9uIHRvIHRoZSBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgQ09ORklHX0JQRl9KSVRgIGlzIHRoZSBvbmx5IG9uZSBleHBsaWNpdGx5IG1lbnRpb25lZC4gQ29uc2lkZXJpbmcgdGhlIGluc3RydWN0aW9ucywgSSBuZWVkIHRvIGZvY3VzIG9uIGNvbmZpZ3MgdGhhdCBzcGVjaWZpY2FsbHkgZW5hYmxlICp0aGlzKiBjb2RlLiBXaGlsZSBgQlBGX0pJVGAgaXMgb2Z0ZW4gZW5hYmxlZCwgaXQmIzM5O3MgZGVmaW5pdGVseSB0aGUgcmVsZXZhbnQgY29uZmlnIGZvciBlbmFibGluZyB0aGlzIHNwZWNpZmljIEpJVCBmdW5jdGlvbmFsaXR5LgoKVGhlcmUmIzM5O3MgYSBub3RlIGFib3V0IG5vdCBsaXN0aW5nIGdlbmVyaWMgY29uZmlncywgd2hpY2ggbWFkZSBtZSBwYXVzZSBvbiB3aGV0aGVyIHRvIGluY2x1ZGUgYEFSQ0hfUlY2NElgIHNpbmNlIHRoaXMgaXMgZm9yIFJJU0MtViwgYnV0IGl0IHNlZW1zIHRvIGJlIHRoZSBhcmNoaXRlY3R1cmUgaXRzZWxmLCB3aGljaCBpcyB0b28gZ2VuZXJpYy4gSSYjMzk7bGwgc3RpY2sgd2l0aCBsaXN0aW5nIGBCUEZfSklUYCB1bmRlciBgRW5hYmxlQ29uZmlnc2AuCgpKdXN0IHRvIGJlIHN1cmUsIEkgZG91YmxlLWNoZWNrZWQgdGhlIG1ha2VmaWxlcyBhbmQgZGlkbiYjMzk7dCBmaW5kIGFueSBvdGhlciAqc3BlY2lmaWMqIGNvbmZpZ3MgdGllZCB0byB0aGlzIG1vZGlmaWNhdGlvbi4KClRoZSByZWFzb25pbmcgaXMgcHJldHR5IGNsZWFyOiBUaGlzIHBhdGNoIGFkZHMgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBvbiBSSVNDLVYgYnkgbW9kaWZ5aW5nIHRoZSBKSVQgY29tcGlsZXIuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGNvcmUga2VybmVsIGNvZGUgYWNjZXNzaWJsZSB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zLCB3aGljaCBpcyBjcnVjaWFsIGZvciBCUEYmIzM5O3MgZnVuY3Rpb25hbGl0eSBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KClNvLCBoZXJlJiMzOTtzIHdoYXQgSSYjMzk7dmUgZ290OgoKKiAgICoqRm9jdXNTeW1ib2xzOioqCiAgICAqICAgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gCiAgICAqICAgYGJwZl9qaXRfZW1pdF9pbnNuYAoqICAgKipFbmFibGVDb25maWdzOioqCiAgICAqICAgYEJQRl9KSVRgCgpMZXQmIzM5O3MgY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDM6MDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvJiMzNDssCiAgICAmIzM0O2JwZl9qaXRfZW1pdF9pbnNuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8mIzM0OywKICAgICYjMzQ7YnBmX2ppdF9lbWl0X2luc24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW1wbGVtZW50cyBCUEYgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBmb3IgdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUgYnkgYWRkaW5nIHRoZSBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFzc2VtYmx5IHRyYW1wb2xpbmUgYW5kIHVwZGF0aW5nIHRoZSBKSVQgY29tcGlsZXIgKGBicGZfaml0X2VtaXRfaW5zbmApIHRvIGhhbmRsZSBpdHMgY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zIG9uIFJJU0MtViB3aXRoIEpJVCBlbmFibGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjNUMDM6MDI6MDkuMjIxODcxMTU0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI5MzEwMjk2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9cIixcbiAgICBcImJwZl9qaXRfZW1pdF9pbnNuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW1wbGVtZW50cyBCUEYgdGltZWQgbWF5X2dvdG8gc3VwcG9ydCBmb3IgdGhlIFJJU0MtViBhcmNoaXRlY3R1cmUgYnkgYWRkaW5nIHRoZSBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGFzc2VtYmx5IHRyYW1wb2xpbmUgYW5kIHVwZGF0aW5nIHRoZSBKSVQgY29tcGlsZXIgKGBicGZfaml0X2VtaXRfaW5zbmApIHRvIGhhbmRsZSBpdHMgY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvcmUga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgcmVhY2hlZCB3aGVuIGxvYWRpbmcgQlBGIHByb2dyYW1zIG9uIFJJU0MtViB3aXRoIEpJVCBlbmFibGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMzowMjowOS4yMjE4Nzg1ODRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwOTc1OTgwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGMyZTlhNzc0ZDdjY2EzMTBhNWJiMzQwN2VmNjU1OTYxYTE3ZDYyMzBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMDM6MDI6MDcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUgYi9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxcbmluZGV4IDlhMWU1ZjBhOTRlNTU5Li42NDU4ZDRkNTE5OTBhNyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxcbisrKyBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlXFxuQEAgLTMsNyArMyw3IEBAXFxuIG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvcmUub1xcbiBcXG4gaWZlcSAoJChDT05GSUdfQVJDSF9SVjY0SSkseSlcXG4tXFx0b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDY0Lm9cXG4rXFx0b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDY0Lm8gYnBmX3RpbWVkX21heV9nb3RvLm9cXG4gZWxzZVxcbiBcXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbiBlbmRpZlxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuY1xcbmluZGV4IGFkMDg5YTlhNGVhOWFjLi44ZmU4OTY5ZmI4YTBmOCAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jXFxuKysrIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuY1xcbkBAIC0xODQxLDcgKzE4NDEsMTIgQEAgaW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXFxuIFxcdFxcdGlmIChhdXgtXFx1MDAzZXRhaWxfY2FsbF9yZWFjaGFibGUgXFx1MDAyNlxcdTAwMjYgaW5zbi1cXHUwMDNlc3JjX3JlZyA9PSBCUEZfUFNFVURPX0NBTEwpXFxuIFxcdFxcdFxcdGVtaXRfc2QoUlZfUkVHX1NQLCBjdHgtXFx1MDAzZXRjY19vZmZzZXQsIFJWX1JFR19UQ0MsIGN0eCk7XFxuIFxcbi1cXHRcXHRpZiAoaW5zbi1cXHUwMDNlc3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwpXFxuK1xcdFxcdC8qXFxuK1xcdFxcdCAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaXMgZW1pdHRlZCBieSB0aGUgdmVyaWZpZXIgYW5kXFxuK1xcdFxcdCAqIHJldHVybnMgaXRzIHJlc3VsdCBpbiBCUEZfUkVHX0FYIGluc3RlYWQgb2YgQlBGX1JFR18wLCBzb1xcbitcXHRcXHQgKiBza2lwIHRoZSBub3JtYWwgXFxcIm1vdmUgcmV0dXJuIHJlZ2lzdGVyIGludG8gUjBcXFwiLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKGluc24tXFx1MDAzZXNyY19yZWcgIT0gQlBGX1BTRVVET19DQUxMIFxcdTAwMjZcXHUwMDI2IGFkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4gXFx0XFx0XFx0ZW1pdF9tdihicGZfdG9fcnZfcmVnKEJQRl9SRUdfMCwgY3R4KSwgUlZfUkVHX0EwLCBjdHgpO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0fVxcbkBAIC0yMTYxLDMgKzIxNjYsOCBAQCBib29sIGJwZl9qaXRfc3VwcG9ydHNfc3VicHJvZ190YWlsY2FsbHModm9pZClcXG4ge1xcbiBcXHRyZXR1cm4gdHJ1ZTtcXG4gfVxcbitcXG4rYm9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXFxuK3tcXG4rXFx0cmV0dXJuIHRydWU7XFxuK31cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMgYi9hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uU1xcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLmY0YmYyY2QxMDU4NjZiXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2FyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TXFxuQEAgLTAsMCArMSw0NyBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xcbisvKiBDb3B5cmlnaHQgKGMpIDIwMjYgRmVuZyBKaWFuZyBcXHUwMDNjamlhbmdmZW5nQGt5bGlub3MuY25cXHUwMDNlICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlua2FnZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjYXNtL2FzbS5oXFx1MDAzZVxcbitcXG4rLypcXG4rICogVHJhbXBvbGluZSBmb3IgdGhlIEJQRiB0aW1lZCBtYXlfZ290byBsb29wIGJvdW5kLiBDdXN0b20gY2FsbGluZyBjb252ZW50aW9uOlxcbisgKlxcdC0gaW5wdXQ6ICBzdGFjayBvZmZzZXQgaW4gQlBGX1JFR19BWCAodDApXFxuKyAqXFx0LSBvdXRwdXQ6IHVwZGF0ZWQgY291bnQgaW4gQlBGX1JFR19BWCAodDApXFxuKyAqXFxuKyAqIENhbGxzIGJwZl9jaGVja190aW1lZF9tYXlfZ290byhwdHIpIHdpdGggdGhlIHN0YW5kYXJkIFJJU0MtViBBQkksIHdoZXJlXFxuKyAqIHB0ciA9IEJQRl9SRUdfRlAgKHM1KSArIEJQRl9SRUdfQVggKHQwKS4gQlBGIFIwLVI1IChhNSwgYTAtYTQpIGFyZSBzYXZlZFxcbisgKiBhY3Jvc3MgdGhlIGNhbGw7IEJQRl9SRUdfRlAgKHM1KSBpcyBjYWxsZWUtc2F2ZWQgYW5kIG5lZWRzIG5vIHNhdmluZy5cXG4rICovXFxuK1xcbitTWU1fRlVOQ19TVEFSVChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4rXFx0YWRkaVxcdHNwLCBzcCwgLTY0XFxuK1xcdHNkXFx0cmEsIDU2KHNwKVxcbitcXHRzZFxcdHMwLCA0OChzcClcXG4rXFx0YWRkaVxcdHMwLCBzcCwgNjRcXG4rXFxuK1xcdC8qIFNhdmUgQlBGIHJlZ2lzdGVycyBSMC1SNSAoYTUsIGEwLWE0KSAqL1xcbitcXHRzZFxcdGE1LCA0MChzcClcXG4rXFx0c2RcXHRhMCwgMzIoc3ApXFxuK1xcdHNkXFx0YTEsIDI0KHNwKVxcbitcXHRzZFxcdGEyLCAxNihzcClcXG4rXFx0c2RcXHRhMywgOChzcClcXG4rXFx0c2RcXHRhNCwgMChzcClcXG4rXFxuK1xcdGFkZFxcdGEwLCB0MCwgczVcXG4rXFx0Y2FsbFxcdGJwZl9jaGVja190aW1lZF9tYXlfZ290b1xcbitcXHRtdlxcdHQwLCBhMFxcbitcXG4rXFx0LyogUmVzdG9yZSBCUEYgcmVnaXN0ZXJzIFIwLVI1ICovXFxuK1xcdGxkXFx0YTQsIDAoc3ApXFxuK1xcdGxkXFx0YTMsIDgoc3ApXFxuK1xcdGxkXFx0YTIsIDE2KHNwKVxcbitcXHRsZFxcdGExLCAyNChzcClcXG4rXFx0bGRcXHRhMCwgMzIoc3ApXFxuK1xcdGxkXFx0YTUsIDQwKHNwKVxcbitcXG4rXFx0bGRcXHRzMCwgNDgoc3ApXFxuK1xcdGxkXFx0cmEsIDU2KHNwKVxcbitcXHRhZGRpXFx0c3AsIHNwLCA2NFxcbitcXHRyZXRcXG4rU1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmNcXG5pbmRleCA5MmJhMWQ3MmUwZWNlNC4uOGQ4ZTUzZDM3MjY2Y2QgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXFxuQEAgLTY0LDYgKzY0LDcgQEAgU0VDKFxcXCJzeXNjYWxsXFxcIilcXG4gX19hcmNoX3g4Nl82NFxcbiBfX2FyY2hfYXJtNjRcXG4gX19hcmNoX3MzOTB4XFxuK19fYXJjaF9yaXNjdjY0XFxuIF9fc3VjY2VzcyBfX3JldHZhbCgwKVxcbiBfX3N0ZGVycihcXFwiRVJST1I6IFRpbWVvdXQgZGV0ZWN0ZWQgZm9yIG1heV9nb3RvIGluc3RydWN0aW9uXFxcIilcXG4gX19zdGRlcnIoXFxcIkNQVToge3tbMC05XSt9fSBVSUQ6IDAgUElEOiB7e1swLTldK319IENvbW06IHt7Lip9fVxcXCIpXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xcbmluZGV4IDhkN2ZmMzhlNGMwNjk3Li44MzcwN2ZhZWEwNDk5NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcXG5AQCAtNjYwLDYgKzY2MCw3IEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbl94ODZfNjQodm9pZClcXG4gXFxuIFNFQyhcXFwicmF3X3RwXFxcIilcXG4gX19hcmNoX2FybTY0XFxuK19fYXJjaF9yaXNjdjY0XFxuIF9fbG9nX2xldmVsKDQpIF9fbXNnKFxcXCJzdGFjayBkZXB0aCAyNFxcXCIpXFxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXFxuIF9feGxhdGVkKFxcXCIwOiAqKHU2NCAqKShyMTAgLTI0KSA9XFxcIilcXG5AQCAtNjc5LDcgKzY4MCw3IEBAIF9feGxhdGVkKFxcXCIxMDogKih1NjQgKikocjEwIC0yNCkgPSByMTJcXFwiKVxcbiBfX3hsYXRlZChcXFwiMTE6ICoodTY0ICopKHIxMCAtOCkgPSByMVxcXCIpXFxuIF9feGxhdGVkKFxcXCIxMjogZXhpdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbi1fX25ha2VkIHZvaWQgbWF5X2dvdG9faW50ZXJhY3Rpb25fYXJtNjQodm9pZClcXG4rX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uKHZvaWQpXFxuIHtcXG4gXFx0YXNtIHZvbGF0aWxlIChcXG4gXFx0XFxcInIxID0gMTtcXFwiXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXFxuaW5kZXggNGJkZjQyNTZhNDFlNTEuLjk3MTI5ZDI3MzBhMDUzIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXFxuQEAgLTExLDYgKzExLDcgQEAgX19kZXNjcmlwdGlvbihcXFwibWF5X2dvdG8gMFxcXCIpXFxuIF9fYXJjaF94ODZfNjRcXG4gX19hcmNoX3MzOTB4XFxuIF9fYXJjaF9hcm02NFxcbitfX2FyY2hfcmlzY3Y2NFxcbiBfX3hsYXRlZChcXFwiMDogcjAgPSAxXFxcIilcXG4gX194bGF0ZWQoXFxcIjE6IGV4aXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG5AQCAtMzEsNiArMzIsNyBAQCBfX2Rlc2NyaXB0aW9uKFxcXCJiYXRjaCAyIG9mIG1heV9nb3RvIDBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9fYXJjaF9zMzkweFxcbiBfX2FyY2hfYXJtNjRcXG4rX19hcmNoX3Jpc2N2NjRcXG4gX194bGF0ZWQoXFxcIjA6IHIwID0gMVxcXCIpXFxuIF9feGxhdGVkKFxcXCIxOiBleGl0XFxcIilcXG4gX19zdWNjZXNzXFxuQEAgLTUzLDYgKzU1LDcgQEAgX19kZXNjcmlwdGlvbihcXFwibWF5X2dvdG8gYmF0Y2ggd2l0aCBvZmZzZXRzIDIvMS8wXFxcIilcXG4gX19hcmNoX3g4Nl82NFxcbiBfX2FyY2hfczM5MHhcXG4gX19hcmNoX2FybTY0XFxuK19fYXJjaF9yaXNjdjY0XFxuIF9feGxhdGVkKFxcXCIwOiByMCA9IDFcXFwiKVxcbiBfX3hsYXRlZChcXFwiMTogZXhpdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbkBAIC03OSw2ICs4Miw3IEBAIF9fZGVzY3JpcHRpb24oXFxcIm1heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzBcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9fYXJjaF9zMzkweFxcbiBfX2FyY2hfYXJtNjRcXG4rX19hcmNoX3Jpc2N2NjRcXG4gX194bGF0ZWQoXFxcIjA6ICoodTY0ICopKHIxMCAtMTYpID0gNjU1MzVcXFwiKVxcbiBfX3hsYXRlZChcXFwiMTogKih1NjQgKikocjEwIC04KSA9IDBcXFwiKVxcbiBfX3hsYXRlZChcXFwiMjogcjEyID0gKih1NjQgKikocjEwIC0xNilcXFwiKVxcbkBAIC0xMDYsNCArMTEwLDYxIEBAIF9fbmFrZWQgdm9pZCBtYXlfZ290b19iYXRjaF8yKHZvaWQpXFxuIFxcdDogX19jbG9iYmVyX2FsbCk7XFxuIH1cXG4gXFxuKy8qXFxuKyAqIFVzZSBicGZfZ2V0X3ByYW5kb21fdTMyKCkgdG8gcHJldmVudCBEQ0UgZnJvbSByZW1vdmluZyB0aGUgY2hlY2tzLlxcbisgKiByZXR2YWw6IDA9YWxsIG9rLCAxLTY9UjAtUjUgY2xvYmJlcmVkLlxcbisgKi9cXG4rU0VDKFxcXCJyYXdfdHBcXFwiKVxcbitfX2Rlc2NyaXB0aW9uKFxcXCJ0aW1lZCBtYXlfZ290byBwcmVzZXJ2ZXMgUjAtUjVcXFwiKVxcbitfX2FyY2hfeDg2XzY0XFxuK19fYXJjaF9hcm02NFxcbitfX2FyY2hfcmlzY3Y2NFxcbitfX3N1Y2Nlc3NcXG4rX19yZXR2YWwoMClcXG4rX19uYWtlZCB2b2lkIHRpbWVkX21heV9nb3RvX3ByZXNlcnZlc19yZWdzKHZvaWQpXFxuK3tcXG4rXFx0YXNtIHZvbGF0aWxlIChcXG4rXFx0XFxcImNhbGwgJVticGZfZ2V0X3ByYW5kb21fdTMyXTtcXFwiXFxuK1xcdFxcXCJyNiA9IHIwO1xcXCJcXG4rXFx0XFxcInIwID0gMHgxMTExO1xcXCJcXG4rXFx0XFxcInIwICs9IHI2O1xcXCJcXG4rXFx0XFxcInIxID0gMHgyMjIyO1xcXCJcXG4rXFx0XFxcInIxICs9IHI2O1xcXCJcXG4rXFx0XFxcInIyID0gMHgzMzMzO1xcXCJcXG4rXFx0XFxcInIyICs9IHI2O1xcXCJcXG4rXFx0XFxcInIzID0gMHg0NDQ0O1xcXCJcXG4rXFx0XFxcInIzICs9IHI2O1xcXCJcXG4rXFx0XFxcInI0ID0gMHg1NTU1O1xcXCJcXG4rXFx0XFxcInI0ICs9IHI2O1xcXCJcXG4rXFx0XFxcInI1ID0gMHg2NjY2O1xcXCJcXG4rXFx0XFxcInI1ICs9IHI2O1xcXCJcXG4rXFx0XFxcIi44Ynl0ZSAlW21heV9nb3RvXTtcXFwiXFxuK1xcdFxcXCIuOGJ5dGUgJVtsb29wXTtcXFwiXFxuK1xcdFxcXCJyMCAtPSByNjtcXFwiXFxuK1xcdFxcXCJyMSAtPSByNjtcXFwiXFxuK1xcdFxcXCJyMiAtPSByNjtcXFwiXFxuK1xcdFxcXCJyMyAtPSByNjtcXFwiXFxuK1xcdFxcXCJyNCAtPSByNjtcXFwiXFxuK1xcdFxcXCJyNSAtPSByNjtcXFwiXFxuK1xcdFxcXCJpZiByMCAhPSAweDExMTEgZ290byAxZjtcXFwiXFxuK1xcdFxcXCJpZiByMSAhPSAweDIyMjIgZ290byAyZjtcXFwiXFxuK1xcdFxcXCJpZiByMiAhPSAweDMzMzMgZ290byAzZjtcXFwiXFxuK1xcdFxcXCJpZiByMyAhPSAweDQ0NDQgZ290byA0ZjtcXFwiXFxuK1xcdFxcXCJpZiByNCAhPSAweDU1NTUgZ290byA1ZjtcXFwiXFxuK1xcdFxcXCJpZiByNSAhPSAweDY2NjYgZ290byA2ZjtcXFwiXFxuK1xcdFxcXCJyMCA9IDA7XFxcIlxcbitcXHRcXFwiZXhpdDtcXFwiXFxuK1xcdFxcXCIxOiByMCA9IDE7IGV4aXQ7XFxcIlxcbitcXHRcXFwiMjogcjAgPSAyOyBleGl0O1xcXCJcXG4rXFx0XFxcIjM6IHIwID0gMzsgZXhpdDtcXFwiXFxuK1xcdFxcXCI0OiByMCA9IDQ7IGV4aXQ7XFxcIlxcbitcXHRcXFwiNTogcjAgPSA1OyBleGl0O1xcXCJcXG4rXFx0XFxcIjY6IHIwID0gNjsgZXhpdDtcXFwiXFxuK1xcdDpcXG4rXFx0OiBfX2ltbShicGZfZ2V0X3ByYW5kb21fdTMyKSxcXG4rXFx0ICBfX2ltbV9pbnNuKG1heV9nb3RvLCBCUEZfUkFXX0lOU04oQlBGX0pNUCB8IEJQRl9KQ09ORCwgMCwgMCwgMSwgMCkpLFxcbitcXHQgIF9faW1tX2luc24obG9vcCwgQlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfSkEsIDAsIDAsIC0yLCAwKSlcXG4rXFx0OiBfX2Nsb2JiZXJfYWxsKTtcXG4rfVxcbitcXG4gY2hhciBfbGljZW5zZVtdIFNFQyhcXFwibGljZW5zZVxcXCIpID0gXFxcIkdQTFxcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjEwLjAzMjU2MzU1NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjQyMTIwMzI0MTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvXCIsXG4gICAgXCJicGZfaml0X2VtaXRfaW5zblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjMmU5YTc3NGQ3Y2NhMzEwYTViYjM0MDdlZjY1NTk2MWExN2Q2MjMwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDM6MDI6MDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvbmV0L01ha2VmaWxlXG5pbmRleCA5YTFlNWYwYTk0ZTU1OS4uNjQ1OGQ0ZDUxOTkwYTcgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZVxuKysrIGIvYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGVcbkBAIC0zLDcgKzMsNyBAQFxuIG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvcmUub1xuIFxuIGlmZXEgKCQoQ09ORklHX0FSQ0hfUlY2NEkpLHkpXG4tXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wNjQub1xuK1x0b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDY0Lm8gYnBmX3RpbWVkX21heV9nb3RvLm9cbiBlbHNlXG4gXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xuIGVuZGlmXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbmluZGV4IGFkMDg5YTlhNGVhOWFjLi44ZmU4OTY5ZmI4YTBmOCAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbisrKyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNcbkBAIC0xODQxLDcgKzE4NDEsMTIgQEAgaW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXG4gXHRcdGlmIChhdXgtXHUwMDNldGFpbF9jYWxsX3JlYWNoYWJsZSBcdTAwMjZcdTAwMjYgaW5zbi1cdTAwM2VzcmNfcmVnID09IEJQRl9QU0VVRE9fQ0FMTClcbiBcdFx0XHRlbWl0X3NkKFJWX1JFR19TUCwgY3R4LVx1MDAzZXRjY19vZmZzZXQsIFJWX1JFR19UQ0MsIGN0eCk7XG4gXG4tXHRcdGlmIChpbnNuLVx1MDAzZXNyY19yZWcgIT0gQlBGX1BTRVVET19DQUxMKVxuK1x0XHQvKlxuK1x0XHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGlzIGVtaXR0ZWQgYnkgdGhlIHZlcmlmaWVyIGFuZFxuK1x0XHQgKiByZXR1cm5zIGl0cyByZXN1bHQgaW4gQlBGX1JFR19BWCBpbnN0ZWFkIG9mIEJQRl9SRUdfMCwgc29cbitcdFx0ICogc2tpcCB0aGUgbm9ybWFsIFwibW92ZSByZXR1cm4gcmVnaXN0ZXIgaW50byBSMFwiLlxuK1x0XHQgKi9cbitcdFx0aWYgKGluc24tXHUwMDNlc3JjX3JlZyAhPSBCUEZfUFNFVURPX0NBTEwgXHUwMDI2XHUwMDI2IGFkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbiBcdFx0XHRlbWl0X212KGJwZl90b19ydl9yZWcoQlBGX1JFR18wLCBjdHgpLCBSVl9SRUdfQTAsIGN0eCk7XG4gXHRcdGJyZWFrO1xuIFx0fVxuQEAgLTIxNjEsMyArMjE2Niw4IEBAIGJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKVxuIHtcbiBcdHJldHVybiB0cnVlO1xuIH1cbitcbitib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbit7XG4rXHRyZXR1cm4gdHJ1ZTtcbit9XG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMgYi9hcmNoL3Jpc2N2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uU1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi5mNGJmMmNkMTA1ODY2YlxuLS0tIC9kZXYvbnVsbFxuKysrIGIvYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlNcbkBAIC0wLDAgKzEsNDcgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqL1xuKy8qIENvcHlyaWdodCAoYykgMjAyNiBGZW5nIEppYW5nIFx1MDAzY2ppYW5nZmVuZ0BreWxpbm9zLmNuXHUwMDNlICovXG4rXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbGlua2FnZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjYXNtL2FzbS5oXHUwMDNlXG4rXG4rLypcbisgKiBUcmFtcG9saW5lIGZvciB0aGUgQlBGIHRpbWVkIG1heV9nb3RvIGxvb3AgYm91bmQuIEN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb246XG4rICpcdC0gaW5wdXQ6ICBzdGFjayBvZmZzZXQgaW4gQlBGX1JFR19BWCAodDApXG4rICpcdC0gb3V0cHV0OiB1cGRhdGVkIGNvdW50IGluIEJQRl9SRUdfQVggKHQwKVxuKyAqXG4rICogQ2FsbHMgYnBmX2NoZWNrX3RpbWVkX21heV9nb3RvKHB0cikgd2l0aCB0aGUgc3RhbmRhcmQgUklTQy1WIEFCSSwgd2hlcmVcbisgKiBwdHIgPSBCUEZfUkVHX0ZQIChzNSkgKyBCUEZfUkVHX0FYICh0MCkuIEJQRiBSMC1SNSAoYTUsIGEwLWE0KSBhcmUgc2F2ZWRcbisgKiBhY3Jvc3MgdGhlIGNhbGw7IEJQRl9SRUdfRlAgKHM1KSBpcyBjYWxsZWUtc2F2ZWQgYW5kIG5lZWRzIG5vIHNhdmluZy5cbisgKi9cbitcbitTWU1fRlVOQ19TVEFSVChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbitcdGFkZGlcdHNwLCBzcCwgLTY0XG4rXHRzZFx0cmEsIDU2KHNwKVxuK1x0c2RcdHMwLCA0OChzcClcbitcdGFkZGlcdHMwLCBzcCwgNjRcbitcbitcdC8qIFNhdmUgQlBGIHJlZ2lzdGVycyBSMC1SNSAoYTUsIGEwLWE0KSAqL1xuK1x0c2RcdGE1LCA0MChzcClcbitcdHNkXHRhMCwgMzIoc3ApXG4rXHRzZFx0YTEsIDI0KHNwKVxuK1x0c2RcdGEyLCAxNihzcClcbitcdHNkXHRhMywgOChzcClcbitcdHNkXHRhNCwgMChzcClcbitcbitcdGFkZFx0YTAsIHQwLCBzNVxuK1x0Y2FsbFx0YnBmX2NoZWNrX3RpbWVkX21heV9nb3RvXG4rXHRtdlx0dDAsIGEwXG4rXG4rXHQvKiBSZXN0b3JlIEJQRiByZWdpc3RlcnMgUjAtUjUgKi9cbitcdGxkXHRhNCwgMChzcClcbitcdGxkXHRhMywgOChzcClcbitcdGxkXHRhMiwgMTYoc3ApXG4rXHRsZFx0YTEsIDI0KHNwKVxuK1x0bGRcdGEwLCAzMihzcClcbitcdGxkXHRhNSwgNDAoc3ApXG4rXG4rXHRsZFx0czAsIDQ4KHNwKVxuK1x0bGRcdHJhLCA1NihzcClcbitcdGFkZGlcdHNwLCBzcCwgNjRcbitcdHJldFxuK1NZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RyZWFtLmNcbmluZGV4IDkyYmExZDcyZTBlY2U0Li44ZDhlNTNkMzcyNjZjZCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdHJlYW0uY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0cmVhbS5jXG5AQCAtNjQsNiArNjQsNyBAQCBTRUMoXCJzeXNjYWxsXCIpXG4gX19hcmNoX3g4Nl82NFxuIF9fYXJjaF9hcm02NFxuIF9fYXJjaF9zMzkweFxuK19fYXJjaF9yaXNjdjY0XG4gX19zdWNjZXNzIF9fcmV0dmFsKDApXG4gX19zdGRlcnIoXCJFUlJPUjogVGltZW91dCBkZXRlY3RlZCBmb3IgbWF5X2dvdG8gaW5zdHJ1Y3Rpb25cIilcbiBfX3N0ZGVycihcIkNQVToge3tbMC05XSt9fSBVSUQ6IDAgUElEOiB7e1swLTldK319IENvbW06IHt7Lip9fVwiKVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9icGZfZmFzdGNhbGwuY1xuaW5kZXggOGQ3ZmYzOGU0YzA2OTcuLjgzNzA3ZmFlYTA0OTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2JwZl9mYXN0Y2FsbC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnBmX2Zhc3RjYWxsLmNcbkBAIC02NjAsNiArNjYwLDcgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2ludGVyYWN0aW9uX3g4Nl82NCh2b2lkKVxuIFxuIFNFQyhcInJhd190cFwiKVxuIF9fYXJjaF9hcm02NFxuK19fYXJjaF9yaXNjdjY0XG4gX19sb2dfbGV2ZWwoNCkgX19tc2coXCJzdGFjayBkZXB0aCAyNFwiKVxuIC8qIG1heV9nb3RvIGNvdW50ZXIgYXQgLTI0ICovXG4gX194bGF0ZWQoXCIwOiAqKHU2NCAqKShyMTAgLTI0KSA9XCIpXG5AQCAtNjc5LDcgKzY4MCw3IEBAIF9feGxhdGVkKFwiMTA6ICoodTY0ICopKHIxMCAtMjQpID0gcjEyXCIpXG4gX194bGF0ZWQoXCIxMTogKih1NjQgKikocjEwIC04KSA9IHIxXCIpXG4gX194bGF0ZWQoXCIxMjogZXhpdFwiKVxuIF9fc3VjY2Vzc1xuLV9fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbl9hcm02NCh2b2lkKVxuK19fbmFrZWQgdm9pZCBtYXlfZ290b19pbnRlcmFjdGlvbih2b2lkKVxuIHtcbiBcdGFzbSB2b2xhdGlsZSAoXG4gXHRcInIxID0gMTtcIlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tYXlfZ290b18xLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXG5pbmRleCA0YmRmNDI1NmE0MWU1MS4uOTcxMjlkMjczMGEwNTMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbWF5X2dvdG9fMS5jXG5AQCAtMTEsNiArMTEsNyBAQCBfX2Rlc2NyaXB0aW9uKFwibWF5X2dvdG8gMFwiKVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfczM5MHhcbiBfX2FyY2hfYXJtNjRcbitfX2FyY2hfcmlzY3Y2NFxuIF9feGxhdGVkKFwiMDogcjAgPSAxXCIpXG4gX194bGF0ZWQoXCIxOiBleGl0XCIpXG4gX19zdWNjZXNzXG5AQCAtMzEsNiArMzIsNyBAQCBfX2Rlc2NyaXB0aW9uKFwiYmF0Y2ggMiBvZiBtYXlfZ290byAwXCIpXG4gX19hcmNoX3g4Nl82NFxuIF9fYXJjaF9zMzkweFxuIF9fYXJjaF9hcm02NFxuK19fYXJjaF9yaXNjdjY0XG4gX194bGF0ZWQoXCIwOiByMCA9IDFcIilcbiBfX3hsYXRlZChcIjE6IGV4aXRcIilcbiBfX3N1Y2Nlc3NcbkBAIC01Myw2ICs1NSw3IEBAIF9fZGVzY3JpcHRpb24oXCJtYXlfZ290byBiYXRjaCB3aXRoIG9mZnNldHMgMi8xLzBcIilcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX3MzOTB4XG4gX19hcmNoX2FybTY0XG4rX19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcIjA6IHIwID0gMVwiKVxuIF9feGxhdGVkKFwiMTogZXhpdFwiKVxuIF9fc3VjY2Vzc1xuQEAgLTc5LDYgKzgyLDcgQEAgX19kZXNjcmlwdGlvbihcIm1heV9nb3RvIGJhdGNoIHdpdGggb2Zmc2V0cyAyLzBcIilcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX3MzOTB4XG4gX19hcmNoX2FybTY0XG4rX19hcmNoX3Jpc2N2NjRcbiBfX3hsYXRlZChcIjA6ICoodTY0ICopKHIxMCAtMTYpID0gNjU1MzVcIilcbiBfX3hsYXRlZChcIjE6ICoodTY0ICopKHIxMCAtOCkgPSAwXCIpXG4gX194bGF0ZWQoXCIyOiByMTIgPSAqKHU2NCAqKShyMTAgLTE2KVwiKVxuQEAgLTEwNiw0ICsxMTAsNjEgQEAgX19uYWtlZCB2b2lkIG1heV9nb3RvX2JhdGNoXzIodm9pZClcbiBcdDogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuKy8qXG4rICogVXNlIGJwZl9nZXRfcHJhbmRvbV91MzIoKSB0byBwcmV2ZW50IERDRSBmcm9tIHJlbW92aW5nIHRoZSBjaGVja3MuXG4rICogcmV0dmFsOiAwPWFsbCBvaywgMS02PVIwLVI1IGNsb2JiZXJlZC5cbisgKi9cbitTRUMoXCJyYXdfdHBcIilcbitfX2Rlc2NyaXB0aW9uKFwidGltZWQgbWF5X2dvdG8gcHJlc2VydmVzIFIwLVI1XCIpXG4rX19hcmNoX3g4Nl82NFxuK19fYXJjaF9hcm02NFxuK19fYXJjaF9yaXNjdjY0XG4rX19zdWNjZXNzXG4rX19yZXR2YWwoMClcbitfX25ha2VkIHZvaWQgdGltZWRfbWF5X2dvdG9fcHJlc2VydmVzX3JlZ3Modm9pZClcbit7XG4rXHRhc20gdm9sYXRpbGUgKFxuK1x0XCJjYWxsICVbYnBmX2dldF9wcmFuZG9tX3UzMl07XCJcbitcdFwicjYgPSByMDtcIlxuK1x0XCJyMCA9IDB4MTExMTtcIlxuK1x0XCJyMCArPSByNjtcIlxuK1x0XCJyMSA9IDB4MjIyMjtcIlxuK1x0XCJyMSArPSByNjtcIlxuK1x0XCJyMiA9IDB4MzMzMztcIlxuK1x0XCJyMiArPSByNjtcIlxuK1x0XCJyMyA9IDB4NDQ0NDtcIlxuK1x0XCJyMyArPSByNjtcIlxuK1x0XCJyNCA9IDB4NTU1NTtcIlxuK1x0XCJyNCArPSByNjtcIlxuK1x0XCJyNSA9IDB4NjY2NjtcIlxuK1x0XCJyNSArPSByNjtcIlxuK1x0XCIuOGJ5dGUgJVttYXlfZ290b107XCJcbitcdFwiLjhieXRlICVbbG9vcF07XCJcbitcdFwicjAgLT0gcjY7XCJcbitcdFwicjEgLT0gcjY7XCJcbitcdFwicjIgLT0gcjY7XCJcbitcdFwicjMgLT0gcjY7XCJcbitcdFwicjQgLT0gcjY7XCJcbitcdFwicjUgLT0gcjY7XCJcbitcdFwiaWYgcjAgIT0gMHgxMTExIGdvdG8gMWY7XCJcbitcdFwiaWYgcjEgIT0gMHgyMjIyIGdvdG8gMmY7XCJcbitcdFwiaWYgcjIgIT0gMHgzMzMzIGdvdG8gM2Y7XCJcbitcdFwiaWYgcjMgIT0gMHg0NDQ0IGdvdG8gNGY7XCJcbitcdFwiaWYgcjQgIT0gMHg1NTU1IGdvdG8gNWY7XCJcbitcdFwiaWYgcjUgIT0gMHg2NjY2IGdvdG8gNmY7XCJcbitcdFwicjAgPSAwO1wiXG4rXHRcImV4aXQ7XCJcbitcdFwiMTogcjAgPSAxOyBleGl0O1wiXG4rXHRcIjI6IHIwID0gMjsgZXhpdDtcIlxuK1x0XCIzOiByMCA9IDM7IGV4aXQ7XCJcbitcdFwiNDogcjAgPSA0OyBleGl0O1wiXG4rXHRcIjU6IHIwID0gNTsgZXhpdDtcIlxuK1x0XCI2OiByMCA9IDY7IGV4aXQ7XCJcbitcdDpcbitcdDogX19pbW0oYnBmX2dldF9wcmFuZG9tX3UzMiksXG4rXHQgIF9faW1tX2luc24obWF5X2dvdG8sIEJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0pDT05ELCAwLCAwLCAxLCAwKSksXG4rXHQgIF9faW1tX2luc24obG9vcCwgQlBGX1JBV19JTlNOKEJQRl9KTVAgfCBCUEZfSkEsIDAsIDAsIC0yLCAwKSlcbitcdDogX19jbG9iYmVyX2FsbCk7XG4rfVxuK1xuIGNoYXIgX2xpY2Vuc2VbXSBTRUMoXCJsaWNlbnNlXCIpID0gXCJHUExcIjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjEwLjAzMjU2NjQ4NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1MTQxNDY2MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUklTQy1WIEJQRiBUaW1lZCBNYXktR290byBQYXRjaCoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gV2UndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgYnJpbmdpbmcgYGJwZl90aW1lZF9tYXlfZ290b2Agc3VwcG9ydCBpbnRvIHRoZSBSSVNDLVYgQlBGIEpJVCwgd2hpY2ggaXMgYSBnb29kIHN0ZXAuIEkgc2VlIHRoZSBtb2RpZmljYXRpb25zIGFyZSBzcHJlYWQgYWNyb3NzIHRoZSBleHBlY3RlZCBhcmVhczogYGFyY2gvcmlzY3YvbmV0L01ha2VmaWxlYCwgdGhlIEpJVCBjb21waWxlciBpdHNlbGYgKGBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jYCksIGEgbmV3IGFzc2VtYmx5IGZpbGUgZm9yIHRoZSB0aW1lZCBtYXktZ290byBsb2dpYyAoYGFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TYCksIGFuZCBzb21lIHVwZGF0ZWQgc2VsZnRlc3RzLiBTZWVtcyBsaWtlIGEgY29tcHJlaGVuc2l2ZSBhcHByb2FjaCwgd2hpY2ggaXMgd2hhdCBJIHdvdWxkIGV4cGVjdC5cblxuTG9va2luZyBzcGVjaWZpY2FsbHkgYXQgYGFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmNgLCB0aGUga2V5IGNoYW5nZSBpcyB3aXRoaW4gYGJwZl9qaXRfZW1pdF9pbnNuYC4gVGhlIGNvbmRpdGlvbmFsIGxvZ2ljIHByZXZlbnRpbmcgdGhlIG1vdmUgZnJvbSBBMCB0byBSMCBhZnRlciBhIGZ1bmN0aW9uIGNhbGwgaGFzIGJlZW4gYXVnbWVudGVkLiBJdCBsb29rcyBsaWtlIGl0IGhhbmRsZXMgdGhlIHNwZWNpYWwgY2FzZSBvZiBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gLiBUaGlzIG1ha2VzIHNlbnNlLCBiZWNhdXNlIEkga25vdyB0aGF0IGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgcmV0dXJucyBpdHMgcmVzdWx0IGluIGEgZGlmZmVyZW50IHJlZ2lzdGVyIHRoYW4gdGhlIHN0YW5kYXJkIEJQRiBjYWxscy4gVGhlIGNvZGUgZXhwbGljaXRseSBpZGVudGlmaWVzIHRoaXMsIHdoaWNoIGlzIGdvb2QuIFdlIGRvbid0IHdhbnQgdG8gY29ycnVwdCBvdXIgcmV0dXJuIHZhbHVlcy5cblxuQmV5b25kIHRoZSByZWdpc3RlciBoYW5kbGluZywgdGhlIGZ1bmN0aW9uIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKClgIGhhcyBiZWVuIGFkZGVkLCBhbmQgaXQgc2ltcGx5IHJldHVybnMgYHRydWVgLiBUaGlzIG1ha2VzIHN1cmUgdGhpcyBjYXBhYmlsaXR5IGlzIGV4cG9zZWQgdG8gdGhlIEJQRiB2ZXJpZmllciBhbmQgZW5zdXJlcyB0aGUgSklUIGNvZGUgY2FuIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBpcyBleGFjdGx5IHdoYXQgSSB3b3VsZCBleHBlY3QgdG8gc2VlIGluIGEgcGF0Y2ggbGlrZSB0aGlzLlxuXG5GdW5jdGlvbmFsbHksIEkgY2FuIHNlZSB0aGF0IHRoaXMgcGF0Y2ggaXMgZG9pbmcgd2hhdCBpdCBuZWVkcyB0byBkbzogZW5hYmxpbmcgQlBGIHRpbWVkIG1heS1nb3RvIHN1cHBvcnQgb24gUklTQy1WLiBUaGUgSklUIGNvZGUgaXMgcmVhY2hhYmxlLCBhbmQgdGhlIHN1cHBvcnQgaXMgZW5hYmxlZCBpZiB0aGUgQlBGIEpJVCBpcyBlbmFibGVkIG9uIFJJU0MtViwgd2hpY2ggZGVwZW5kcyBvbiBgQ09ORklHX0JQRl9KSVRgIGFuZCBgQ09ORklHX1JJU0NWYCAob3IgYENPTkZJR19BUkNIX1JWNjRJYCkuIFNvLCB0aGVyZSBpc24ndCBhbnl0aGluZyBzdHJhbmdlIHRoZXJlLiBOb3cgSSBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWdzIHRvIHNlZSBpZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJvcGVybHkgZXhwb3NlZCB0byB0aGUgdXNlci4gSSdsbCBzZWFyY2ggZm9yIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCB0byBjb25maXJtIHRoZSBjb2RlIHdpbGwgZnVuY3Rpb24gY29ycmVjdGx5LiBTbyBmYXIsIHRoZSBwYXRjaCBzZWVtcyB0byBhZGRyZXNzIHRoZSBjb3JlIHByb2JsZW0gYW5kIGludGVncmF0ZSBjb3JyZWN0bHkgaW50byB0aGUgZXhpc3RpbmcgYXJjaGl0ZWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDY1LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDM6MDI6MTcuNTQ2NzE3NjY3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MzA0NTkxODcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYz0zMTk3PWJvb2wgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKVxcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNy1cXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzozMjA4OmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTMyMDkte1xcbi0tXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYz01MTU9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3N1YnByb2dfdGFpbGNhbGxzKHZvaWQpXFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jLTUxOS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jOjUyMDpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jLTUyMS17XFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jPTIxNjU9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3N1YnByb2dfdGFpbGNhbGxzKHZvaWQpXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTIxNjktXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoyMTcwOmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE3MS17XFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jPTMwNTU9dm9pZCBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICosIHU2NCwgdTY0LCB1NjQpLFxcbi0tXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0zMDgwLVxcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmM6MzA4MTpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODIte1xcbi0tXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jPTQyMTA9dTY0IGJwZl9hcmNoX3VhZGRyZXNzX2xpbWl0KHZvaWQpXFxuLS1cXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMtNDIxNC1cXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmM6NDIxNTpib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMtNDIxNi17XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTExOTE9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3ByaXZhdGVfc3RhY2sodm9pZCk7XFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaDoxMTkyOmJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTExOTMtYm9vbCBicGZfaml0X3N1cHBvcnRzX2ZzZXNzaW9uKHZvaWQpO1xcbi0tXFxua2VybmVsL2JwZi9jb3JlLmM9MzM3ND12b2lkIF9fd2VhayBhcmNoX2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2ZuKSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNwLCB1NjQgYnApLCB2b2lkICpjb29raWUpXFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYy0zMzc3LVxcbmtlcm5lbC9icGYvY29yZS5jOjMzNzg6Ym9vbCBfX3dlYWsgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbmtlcm5lbC9icGYvY29yZS5jLTMzNzkte1xcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgwPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc1NC1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjE3NTU6XFx0XFx0aWYgKGJwZl9pc19tYXlfZ290b19pbnNuKGluc24pIFxcdTAwMjZcXHUwMDI2IGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSkge1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc1Ni1cXHRcXHRcXHRpbnQgc3RhY2tfb2ZmX2NudCA9IC1zdGFja19kZXB0aCAtIDE2O1xcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYy0yMzY4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlbnYtXFx1MDAzZXN1YnByb2dfY250OyBpKyspIHtcXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjIzNjk6XFx0XFx0aW50IGRlbHRhID0gYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290bygpID8gMiA6IDE7XFxua2VybmVsL2JwZi9maXh1cHMuYy0yMzcwLVxcdFxcdGludCBzdWJwcm9nX3N0YXJ0ID0gc3VicHJvZ3NbaV0uc3RhcnQ7XFxuLS1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTIzODItXFx0XFx0c3RhY2tfZGVwdGggPSBzdWJwcm9nc1tpXS5zdGFja19kZXB0aDtcXG5rZXJuZWwvYnBmL2ZpeHVwcy5jOjIzODM6XFx0XFx0aWYgKGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8oKSkge1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMjM4NC1cXHRcXHRcXHRpbnNuX2J1ZltjbnQrK10gPSBCUEZfU1RfTUVNKEJQRl9EVywgQlBGX1JFR19GUCwgLXN0YWNrX2RlcHRoLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMzowMjoyNC4yNzcxODQ4NjNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTU0NjUyMDAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJJU0MtViBCUEYgSklUIEJ1ZyBIdW50OiBBIFRlc3RhYmxlIE9wcG9ydHVuaXR5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgYW5kIHR3ZWFrcyBgYnBmX2ppdF9lbWl0X2luc25gIGluIHRoZSBSSVNDLVYgQlBGIEpJVCBjb21waWxhdGlvbiBjb2RlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcywgXCJZZXMsIHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgd2UgY2FuIHRyaXAgdXAgaWYgd2UgdGhyb3cgZnV6emluZyBhdCBpdC5cIiBUaGlua2luZyBwcmFjdGljYWxseSwgaWYgd2UncmUgZnV6emluZyBCUEYgb24gUklTQy1WLCB0aGlzIGNvZGUgcGF0aCAqd2lsbCogZ2V0IGV4ZXJjaXNlZC4gV2FpdCBhIG1pbnV0ZS4uLiBkb2Vzbid0IHN5emthbGxlciAqYWxyZWFkeSogZnV6eiB0aGUgUklTQy1WIEJQRiBKSVQgd2hlbiBydW5uaW5nIG9uIGEgUklTQy1WIHRhcmdldD8gQmluZ28hXG5cblRoaXMgaXMgZXhjZWxsZW50IG5ld3MuIEl0IG1lYW5zIHdlIGhhdmUgYSBzaW1wbGUgd2F5IHRvIHRlc3QgdGhpcyEgV2UganVzdCBuZWVkIHRvIGVuc3VyZSB0aGUgcmlnaHQgY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQuIExldCBtZSBzZWUuLi4gYEJQRl9KSVRgIGFuZCBlaXRoZXIgYFJJU0NWYCBvciBgQVJDSF9SVjY0SWAgc2hvdWxkIGRvIHRoZSB0cmljay4gTm93LCB0byBkb3VibGUtY2hlY2sgdGhhdCBldmVyeXRoaW5nIGlzIGluIHBsYWNlLCBJIHNob3VsZCBwcm9iYWJseSBnbGFuY2UgYXQgYGFyY2gvcmlzY3YvbmV0L01ha2VmaWxlYCB0byBtYWtlIHN1cmUgYWxsIHRoZSBwaWVjZXMgYXJlIGxpbmtlZCB0b2dldGhlciBjb3JyZWN0bHkuIFRpbWUgdG8gdmVyaWZ5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDMzLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjI4LjQzMTgzOTI4NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA1ODk5Mzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19CUEZfSklUXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3YvbmV0L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTItXFxuYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb3JlLm9cXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZS00LVxcbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlPTU9aWZlcSAoJChDT05GSUdfQVJDSF9SVjY0SSkseSlcXG5hcmNoL3Jpc2N2L25ldC9NYWtlZmlsZTo2OlxcdG9iai0kKENPTkZJR19CUEZfSklUKSArPSBicGZfaml0X2NvbXA2NC5vIGJwZl90aW1lZF9tYXlfZ290by5vXFxuYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGUtNy1lbHNlXFxuYXJjaC9yaXNjdi9uZXQvTWFrZWZpbGU6ODpcXHRvYmotJChDT05GSUdfQlBGX0pJVCkgKz0gYnBmX2ppdF9jb21wMzIub1xcbmFyY2gvcmlzY3YvbmV0L01ha2VmaWxlLTktZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDM6MDI6MzAuNDM3NzQ0MTMxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDg0ODM4MDI2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIEJQRiBKSVQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGUgYENPTkZJR19CUEZfSklUYCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBkZWZpbml0ZWx5IGVzc2VudGlhbCBoZXJlLiBCdXQgaGFuZyBvbiwgdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgUklTQy1WIHNwZWNpZmljYWxseSwgYW5kIEkgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhhdCBTeXprYWxsZXIsIHdoaWNoIGlzIHdoYXQgSSdtIGxpa2VseSB1c2luZywgcnVucyBvbiBhIG11Y2ggYnJvYWRlciByYW5nZSBvZiBhcmNoaXRlY3R1cmVzIGxpa2UgeDg2XzY0LCBhcm02NCwgYW5kIHJpc2N2NjQsIGV0Yy4gSWYgSSBmbGFnIHRoaXMgd2l0aCBgV29ydGhGdXp6aW5nPXRydWVgLCBpdCdsbCBnZXQgYXR0ZW50aW9uIGZyb20gdGhlIGZ1enplci5cblxuUmlnaHQsIHRpbWUgdG8gZm9jdXMgb24gc29tZSBzeW1ib2xzLiBgYnBmX2ppdF9lbWl0X2luc25gIGxvb2tzIGxpa2UgYSBrZXkgZnVuY3Rpb24gc2luY2UgaXQncyB0aGUgY29yZSBKSVQgaW5zdHJ1Y3Rpb24gZW1pdHRlciwgYnV0IGl0IG1pZ2h0IGJlIHRvbyBnZW5lcmljLiBJdCdzIHRoZSBjb3JlIG9mIHRoZSBKSVQsIHNvIGl0IG1pZ2h0IGJlLiBgYXJjaF9icGZfdGltZWRfbWF5X2dvdG9gIGlzIGFuIGFzc2VtYmx5IGZ1bmN0aW9uLCBzbyBLQ09WIGluc3RydW1lbnRhdGlvbiBpcyBvdXQgZm9yIHRoYXQgb25lLCB3aGljaCBpcyB1bmZvcnR1bmF0ZS4gYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gIGlzIGp1c3QgYSBib29sZWFuLCBzbyB0aGF0J3Mgbm90IGdvaW5nIHRvIHRlbGwgdXMgYSBsb3QuXG5cbkFoYSEgYGJwZl9qaXRfZW1pdF9pbnNuYCAqaXMqIGJlaW5nIG1vZGlmaWVkLCBzbyB0aGF0J3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGRpZ2dpbmcgZGVlcGVyLiBJdCBsb29rcyBsaWtlIHRoYXQgaXMgdGhlIG1haW4gd29ya2hvcnNlIGhlcmUsIHNvIGl0IGlzIHRoZSBjb3JyZWN0IHBsYWNlIHRvIGZvY3VzIG9uLiBPa2F5LCBsZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIGludm9sdmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MDY5LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjM1LjI4NjEyOTMyM1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTY4NDA3NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFyY2hfYnBmX3RpbWVkX21heV9nb3RvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jPTEyNTM9c3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbixcXG4tLVxcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTE2NzAtXFx0XFx0LypcXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzoxNjcxOlxcdFxcdCAqIENhbGwgdG8gYXJjaF9icGZfdGltZWRfbWF5X2dvdG8oKSBpcyBlbWl0dGVkIGJ5IHRoZVxcbmFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jLTE2NzItXFx0XFx0ICogdmVyaWZpZXIgYW5kIGNhbGxlZCB3aXRoIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24gd2l0aFxcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMTY3NC1cXHRcXHQgKi9cXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzoxNjc1OlxcdFxcdGlmIChmdW5jX2FkZHIgIT0gKHU2NClhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0xNjc2LVxcdFxcdFxcdGVtaXQoQTY0X01PVigxLCByMCwgQTY0X1IoMCkpLCBjdHgpO1xcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNS1cXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo2OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTctXFx0LyogQWxsb2NhdGUgc3RhY2sgc3BhY2UgYW5kIGVtaXQgZnJhbWUgcmVjb3JkICovXFxuLS1cXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMC1cXHQgKlxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjIxOlxcdCAqIEJlZm9yZSBnZW5lcmF0aW5nIHRoZSBjYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLCB0aGUgdmVyaWZpZXJcXG5hcmNoL2FybTY0L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMi1cXHQgKiBnZW5lcmF0ZXMgYSBsb2FkIGluc3RydWN0aW9uIHVzaW5nIEZQLCBpLmUuIFJFR19BWCA9ICoodTY0ICopKEZQIC1cXG4tLVxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTM5LVxcdHJldFxcbmFyY2gvYXJtNjQvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjQwOlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4tLVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wNjQuYz05Njc9aW50IGJwZl9qaXRfYnVpbGRfYm9keShzdHJ1Y3QgYnBmX3Byb2cgKmZwLCB1MzIgKmltYWdlLCB1MzIgKmZpbWFnZSwgc3RydWN0IGNvZGVnZW5fY29udGV4dCAqY3R4LFxcbi0tXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXA2NC5jLTE3NjktXFx0XFx0XFx0LypcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmM6MTc3MDpcXHRcXHRcXHQgKiBDYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgaXMgZW1pdHRlZCBieSB0aGVcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc3MS1cXHRcXHRcXHQgKiB2ZXJpZmllciBhbmQgY2FsbGVkIHdpdGggY3VzdG9tIGNhbGxpbmcgY29udmVudGlvbiB3aXRoXFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc4Mi1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmM6MTc4MzpcXHRcXHRcXHRpZiAoZnVuY19hZGRyID09ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pIHtcXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcDY0LmMtMTc4NC1cXHRcXHRcXHRcXHRyZXQgPSAwO1xcbi0tXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy03LS8qXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo4OiAqIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKCkgdHJhbXBvbGluZSBmb3IgcG93ZXJwYzY0XFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy05LSAqXFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE5LVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6MjA6U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMS1cXHQvKiBQcm9sb2d1ZTogc2F2ZSBMUiwgYWxsb2NhdGUgZnJhbWUgKi9cXG4tLVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNTYtXFx0YmxyXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUzo1NzpTWU1fRlVOQ19FTkQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jPTEzNjE9aW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDQtXFx0XFx0LypcXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jOjE4NDU6XFx0XFx0ICogYXJjaF9icGZfdGltZWRfbWF5X2dvdG8oKSBpcyBlbWl0dGVkIGJ5IHRoZSB2ZXJpZmllciBhbmRcXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDYtXFx0XFx0ICogcmV0dXJucyBpdHMgcmVzdWx0IGluIEJQRl9SRUdfQVggaW5zdGVhZCBvZiBCUEZfUkVHXzAsIHNvXFxuLS1cXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTE4NDgtXFx0XFx0ICovXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYzoxODQ5OlxcdFxcdGlmIChpbnNuLVxcdTAwM2VzcmNfcmVnICE9IEJQRl9QU0VVRE9fQ0FMTCBcXHUwMDI2XFx1MDAyNiBhZGRyICE9ICh1NjQpYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0xODUwLVxcdFxcdFxcdGVtaXRfbXYoYnBmX3RvX3J2X3JlZyhCUEZfUkVHXzAsIGN0eCksIFJWX1JFR19BMCwgY3R4KTtcXG4tLVxcbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE2LVxcbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjE3OlNZTV9GVU5DX1NUQVJUKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbmFyY2gvcmlzY3YvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTE4LVxcdGFkZGlcXHRzcCwgc3AsIC02NFxcbi0tXFxuYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlMtNDYtXFx0cmV0XFxuYXJjaC9yaXNjdi9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6NDc6U1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbi0tXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz04NzY9c3RhdGljIG5vaW5saW5lIGludCBicGZfaml0X2luc24oc3RydWN0IGJwZl9qaXQgKmppdCwgc3RydWN0IGJwZl9wcm9nICpmcCxcXG4tLVxcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMTg0MS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jOjE4NDI6XFx0XFx0aWYgKCh2b2lkICopZnVuYyA9PSBhcmNoX2JwZl90aW1lZF9tYXlfZ290bykge1xcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMTg0My1cXHRcXHRcXHQvKlxcbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmM6MTg0NDpcXHRcXHRcXHQgKiBhcmNoX2JwZl90aW1lZF9tYXlfZ290bygpIGhhcyBhIHNwZWNpYWwgQUJJOiB0aGVcXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTE4NDUtXFx0XFx0XFx0ICogcGFyYW1ldGVycyBhcmUgaW4gQlBGX1JFR19BWCBhbmQgQlBGX1JFR18xMDsgdGhlXFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTIxLVxcbmFyY2gvczM5MC9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6MjI6U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0yMy1cXHQvKlxcbi0tXFxuYXJjaC9zMzkwL25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy00NC1cXHRCUl9FWCAlcjFcXG5hcmNoL3MzOTAvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TOjQ1OlNZTV9GVU5DX0VORChhcmNoX2JwZl90aW1lZF9tYXlfZ290bylcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy0xMC1cXG5hcmNoL3g4Ni9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6MTE6U1lNX0ZVTkNfU1RBUlQoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pXFxuYXJjaC94ODYvbmV0L2JwZl90aW1lZF9tYXlfZ290by5TLTEyLVxcdEFOTk9UQVRFX05PRU5EQlJcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfdGltZWRfbWF5X2dvdG8uUy01NC1cXHRSRVRcXG5hcmNoL3g4Ni9uZXQvYnBmX3RpbWVkX21heV9nb3RvLlM6NTU6U1lNX0ZVTkNfRU5EKGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKVxcbi0tXFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaD0xMTk1PXZvaWQgYXJjaF9icGZfc3RhY2tfd2Fsayhib29sICgqY29uc3VtZV9mbikodm9pZCAqY29va2llLCB1NjQgaXAsIHU2NCBzcCwgdTY0IGJwKSwgdm9pZCAqY29va2llKTtcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjExOTY6dTY0IGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKHZvaWQpO1xcbmluY2x1ZGUvbGludXgvZmlsdGVyLmgtMTE5Ny11NjQgYnBmX2NoZWNrX3RpbWVkX21heV9nb3RvKHN0cnVjdCBicGZfdGltZWRfbWF5X2dvdG8gKik7XFxuLS1cXG5rZXJuZWwvYnBmL2NvcmUuYz0zMzc4PWJvb2wgX193ZWFrIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcXG4tLVxcbmtlcm5lbC9icGYvY29yZS5jLTMzODItXFxua2VybmVsL2JwZi9jb3JlLmM6MzM4Mzp1NjQgX193ZWFrIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvKHZvaWQpXFxua2VybmVsL2JwZi9jb3JlLmMtMzM4NC17XFxuLS1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jPTE0ODA9aW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYy0xNzY0LVxcdFxcdFxcdCAqIHVudGlsIHRoZSB2YWx1ZSBiZWNvbWVzIDAgaW4gQVggKHRodXMsIDEgaW4gc3RhY2spLFxcbmtlcm5lbC9icGYvZml4dXBzLmM6MTc2NTpcXHRcXHRcXHQgKiBhZnRlciB3aGljaCB3ZSBjYWxsIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLCB3aGljaFxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc2Ni1cXHRcXHRcXHQgKiBlaXRoZXIgc2V0cyBBWCB0byAweGZmZmYgdG8ga2VlcCBsb29waW5nLCBvciB0byAwXFxuLS1cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3ODItXFx0XFx0XFx0ICogKHRvIGFkZCB0byByMTAvZnApLCBhbmQgYWxzbyBhcyB0aGUgcmV0dXJuIHZhbHVlIG9mXFxua2VybmVsL2JwZi9maXh1cHMuYzoxNzgzOlxcdFxcdFxcdCAqIHRoZSBjYWxsIHRvIGFyY2hfYnBmX3RpbWVkX21heV9nb3RvLlxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc4NC1cXHRcXHRcXHQgKi9cXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE3ODUtXFx0XFx0XFx0aW5zbl9idWZbNF0gPSBCUEZfTU9WNjRfSU1NKEJQRl9SRUdfQVgsIHN0YWNrX29mZl9jbnQpO1xcbmtlcm5lbC9icGYvZml4dXBzLmM6MTc4NjpcXHRcXHRcXHRpbnNuX2J1Zls1XSA9IEJQRl9FTUlUX0NBTEwoYXJjaF9icGZfdGltZWRfbWF5X2dvdG8pO1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMTc4Ny1cXHRcXHRcXHRpbnNuX2J1Zls2XSA9IEJQRl9TVFhfTUVNKEJQRl9EVywgQlBGX1JFR18xMCwgQlBGX1JFR19BWCwgc3RhY2tfb2ZmX2NudCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAzOjAyOjQxLjQ1NDU0NTczWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTAzNzc5NzY0ODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhpcyBCUEYgVGltZWQgTWF5X0dvdG8gUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgdGhlIHByaW1hcnkgbW9kaWZpY2F0aW9uIGhlcmUgY2VudGVycyBhcm91bmQgaW1wbGVtZW50aW5nIEJQRidzIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgc3BlY2lmaWNhbGx5IGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gSXQgbG9va3MgbGlrZSB0aGUgY29yZSB3b3JrIGludm9sdmVzIGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lLCB3aGljaCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBtYWluIEMgZnVuY3Rpb24gdG91Y2hlZCBpcyBgYnBmX2ppdF9lbWl0X2luc25gLCBhbmQgSSBhbHNvIHNlZSBhIG5ldyBmdW5jdGlvbiwgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gLCBhZGRlZC5cblxuSW5pdGlhbGx5LCBJIHRob3VnaHQgb2YgaW5jbHVkaW5nIGJvdGggYGJwZl9qaXRfZW1pdF9pbnNuYCBhbmQgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gIGluIHRoZSBgRm9jdXNTeW1ib2xzYCBsaXN0LiBIb3dldmVyLCBgYnBmX2ppdF9lbWl0X2luc25gIGlzIGEgc2l6ZWFibGUgZnVuY3Rpb24sIGVzcGVjaWFsbHkgZ2l2ZW4gaXRzIHJvbGUgaW4gdGhlIEpJVCBwcm9jZXNzLiBJdCBpcyB0aGUgcHJpbWFyeSBKSVQgZnVuY3Rpb24sIGFmdGVyIGFsbC4gQnV0IGdpdmVuIHRoYXQgaXQncyB0aGUgb25seSBtb2RpZmllZCBDIGZ1bmN0aW9uLCBhbmQgdGhpcyBwYXRjaCBkb2Vzbid0IGFwcGVhciB0byBiZSBkcmFzdGljYWxseSBjaGFuZ2luZyB0aGUgaG90LXBhdGggcHJvY2Vzc2luZyBvZiBwYWNrZXRzLCBJJ2xsIGdvIHdpdGggaXQuXG5cbkkgd2lsbCBhZGQgYm90aCBgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b2AgYW5kIGBicGZfaml0X2VtaXRfaW5zbmAgdG8gdGhlIGBGb2N1c1N5bWJvbHNgIGxpc3QsIHNpbmNlIGBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvYCBpcyBhIHRpbnkgZnVuY3Rpb24sIGFuZCBgYnBmX2ppdF9lbWl0X2luc25gIGlzIG5vdCBjYWxsZWQgZHVyaW5nIHBhY2tldCBwcm9jZXNzaW5nLlxuXG5Ob3csIG9uIHRvIHRoZSBjb25maWd1cmF0aW9ucy4gSXQgbG9va3MgbGlrZSBgQ09ORklHX0JQRl9KSVRgIGlzIHRoZSBvbmx5IG9uZSBleHBsaWNpdGx5IG1lbnRpb25lZC4gQ29uc2lkZXJpbmcgdGhlIGluc3RydWN0aW9ucywgSSBuZWVkIHRvIGZvY3VzIG9uIGNvbmZpZ3MgdGhhdCBzcGVjaWZpY2FsbHkgZW5hYmxlICp0aGlzKiBjb2RlLiBXaGlsZSBgQlBGX0pJVGAgaXMgb2Z0ZW4gZW5hYmxlZCwgaXQncyBkZWZpbml0ZWx5IHRoZSByZWxldmFudCBjb25maWcgZm9yIGVuYWJsaW5nIHRoaXMgc3BlY2lmaWMgSklUIGZ1bmN0aW9uYWxpdHkuXG5cblRoZXJlJ3MgYSBub3RlIGFib3V0IG5vdCBsaXN0aW5nIGdlbmVyaWMgY29uZmlncywgd2hpY2ggbWFkZSBtZSBwYXVzZSBvbiB3aGV0aGVyIHRvIGluY2x1ZGUgYEFSQ0hfUlY2NElgIHNpbmNlIHRoaXMgaXMgZm9yIFJJU0MtViwgYnV0IGl0IHNlZW1zIHRvIGJlIHRoZSBhcmNoaXRlY3R1cmUgaXRzZWxmLCB3aGljaCBpcyB0b28gZ2VuZXJpYy4gSSdsbCBzdGljayB3aXRoIGxpc3RpbmcgYEJQRl9KSVRgIHVuZGVyIGBFbmFibGVDb25maWdzYC5cblxuSnVzdCB0byBiZSBzdXJlLCBJIGRvdWJsZS1jaGVja2VkIHRoZSBtYWtlZmlsZXMgYW5kIGRpZG4ndCBmaW5kIGFueSBvdGhlciAqc3BlY2lmaWMqIGNvbmZpZ3MgdGllZCB0byB0aGlzIG1vZGlmaWNhdGlvbi5cblxuVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgY2xlYXI6IFRoaXMgcGF0Y2ggYWRkcyB0aW1lZCBtYXlfZ290byBzdXBwb3J0IG9uIFJJU0MtViBieSBtb2RpZnlpbmcgdGhlIEpJVCBjb21waWxlci4gV2UncmUgdGFsa2luZyBhYm91dCBjb3JlIGtlcm5lbCBjb2RlIGFjY2Vzc2libGUgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgQlBGJ3MgZnVuY3Rpb25hbGl0eSBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuU28sIGhlcmUncyB3aGF0IEkndmUgZ290OlxuXG4qICAgKipGb2N1c1N5bWJvbHM6KipcbiAgICAqICAgYGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG9gXG4gICAgKiAgIGBicGZfaml0X2VtaXRfaW5zbmBcbiogICAqKkVuYWJsZUNvbmZpZ3M6KipcbiAgICAqICAgYEJQRl9KSVRgXG5cbkxldCdzIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMzIxLCJPdXRwdXRUb2tlbnMiOjE0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMzowMjo1MS44MzI1MjU0MjVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjAzNTcwODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvXCIsXG4gICAgXCJicGZfaml0X2VtaXRfaW5zblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGltcGxlbWVudHMgQlBGIHRpbWVkIG1heV9nb3RvIHN1cHBvcnQgZm9yIHRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJlIGJ5IGFkZGluZyB0aGUgYGFyY2hfYnBmX3RpbWVkX21heV9nb3RvYCBhc3NlbWJseSB0cmFtcG9saW5lIGFuZCB1cGRhdGluZyB0aGUgSklUIGNvbXBpbGVyIChgYnBmX2ppdF9lbWl0X2luc25gKSB0byBoYW5kbGUgaXRzIGN1c3RvbSBjYWxsaW5nIGNvbnZlbnRpb24uIFRoaXMgaXMgZnVuY3Rpb25hbCBjb3JlIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIHJlYWNoZWQgd2hlbiBsb2FkaW5nIEJQRiBwcm9ncmFtcyBvbiBSSVNDLVYgd2l0aCBKSVQgZW5hYmxlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290b1wiLFxuICAgIFwiYnBmX2ppdF9lbWl0X2luc25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbXBsZW1lbnRzIEJQRiB0aW1lZCBtYXlfZ290byBzdXBwb3J0IGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZSBieSBhZGRpbmcgdGhlIGBhcmNoX2JwZl90aW1lZF9tYXlfZ290b2AgYXNzZW1ibHkgdHJhbXBvbGluZSBhbmQgdXBkYXRpbmcgdGhlIEpJVCBjb21waWxlciAoYGJwZl9qaXRfZW1pdF9pbnNuYCkgdG8gaGFuZGxlIGl0cyBjdXN0b20gY2FsbGluZyBjb252ZW50aW9uLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29yZSBrZXJuZWwgY29kZSB0aGF0IGNhbiBiZSByZWFjaGVkIHdoZW4gbG9hZGluZyBCUEYgcHJvZ3JhbXMgb24gUklTQy1WIHdpdGggSklUIGVuYWJsZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[1] Phase: Succeeded StartedAt: 2026-07-23 03:03:04 +0000 UTC FinishedAt: 2026-07-23 03:03:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 03:03:04 +0000 UTC FinishedAt: 2026-07-23 03:03:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2] Phase: Succeeded StartedAt: 2026-07-23 03:03:04 +0000 UTC FinishedAt: 2026-07-23 04:27:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-23 03:03:05 +0000 UTC FinishedAt: 2026-07-23 04:27:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-23 03:03:05 +0000 UTC FinishedAt: 2026-07-23 03:03:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-23 03:03:05 +0000 UTC FinishedAt: 2026-07-23 03:03:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowl5vj7/series-workflowl5vj7-convert-artifact-2436709533/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-23 03:03:20 +0000 UTC FinishedAt: 2026-07-23 03:42:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-23 03:03:20 +0000 UTC FinishedAt: 2026-07-23 03:42:55 +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:*4eaf7e8d-5032-40fa-8b40-1f6f266a5c15,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-workflowl5vj7/series-workflowl5vj7-convert-artifact-2436709533/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": "b4b9d830-c50e-4bca-8f47-180fd1997ce9", "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-workflowl5vj7/series-workflowl5vj7-build-action-2448534995/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-23 03:03:20 +0000 UTC FinishedAt: 2026-07-23 03:42:41 +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:*4eaf7e8d-5032-40fa-8b40-1f6f266a5c15,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-workflowl5vj7/series-workflowl5vj7-convert-artifact-2436709533/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": "b4b9d830-c50e-4bca-8f47-180fd1997ce9", "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-workflowl5vj7/series-workflowl5vj7-build-action-2448534995/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-23 03:42:55 +0000 UTC FinishedAt: 2026-07-23 03:42:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-23 03:42:55 +0000 UTC FinishedAt: 2026-07-23 03:42:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-23 03:42:55 +0000 UTC FinishedAt: 2026-07-23 03:43:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-23 03:42:55 +0000 UTC FinishedAt: 2026-07-23 03:43:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowl5vj7/series-workflowl5vj7-convert-artifact-587193720/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-23 03:43:06 +0000 UTC FinishedAt: 2026-07-23 03:45:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-23 03:43:06 +0000 UTC FinishedAt: 2026-07-23 03:44:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b4b9d830-c50e-4bca-8f47-180fd1997ce9,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-workflowl5vj7/series-workflowl5vj7-build-action-2448534995/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-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-23 03:45:08 +0000 UTC FinishedAt: 2026-07-23 03:45:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-23 03:45:08 +0000 UTC FinishedAt: 2026-07-23 03:45:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-23 03:45:08 +0000 UTC FinishedAt: 2026-07-23 04:22:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-23 03:45:08 +0000 UTC FinishedAt: 2026-07-23 04:22:21 +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:*4eaf7e8d-5032-40fa-8b40-1f6f266a5c15,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-workflowl5vj7/series-workflowl5vj7-convert-artifact-587193720/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": "03fe5072-ff06-4a1a-b3d0-d5c95fe074a7", "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-workflowl5vj7/series-workflowl5vj7-build-action-2896790116/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-23 03:45:08 +0000 UTC FinishedAt: 2026-07-23 04:22:11 +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:*4eaf7e8d-5032-40fa-8b40-1f6f266a5c15,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-workflowl5vj7/series-workflowl5vj7-convert-artifact-587193720/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": "03fe5072-ff06-4a1a-b3d0-d5c95fe074a7", "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-workflowl5vj7/series-workflowl5vj7-build-action-2896790116/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-23 04:22:21 +0000 UTC FinishedAt: 2026-07-23 04:22:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-23 04:22:21 +0000 UTC FinishedAt: 2026-07-23 04:22:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-23 04:22:21 +0000 UTC FinishedAt: 2026-07-23 04:24:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-23 04:22:21 +0000 UTC FinishedAt: 2026-07-23 04:24:12 +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:*03fe5072-ff06-4a1a-b3d0-d5c95fe074a7,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-workflowl5vj7/series-workflowl5vj7-build-action-2896790116/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-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-23 04:24:22 +0000 UTC FinishedAt: 2026-07-23 04:27:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-23 04:24:22 +0000 UTC FinishedAt: 2026-07-23 04:27:22 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"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:*b4b9d830-c50e-4bca-8f47-180fd1997ce9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*03fe5072-ff06-4a1a-b3d0-d5c95fe074a7,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-workflowl5vj7/series-workflowl5vj7-build-action-2448534995/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-workflowl5vj7/series-workflowl5vj7-build-action-2896790116/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-23 04:24:22 +0000 UTC FinishedAt: 2026-07-23 04:24:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-23 04:24:22 +0000 UTC FinishedAt: 2026-07-23 04:24:30 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"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-workflowl5vj7/series-workflowl5vj7-convert-artifact-360975569/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-23 04:24:22 +0000 UTC FinishedAt: 2026-07-23 04:24:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-23 04:24:22 +0000 UTC FinishedAt: 2026-07-23 04:24:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-23 04:24:23 +0000 UTC FinishedAt: 2026-07-23 04:24:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-23 04:24:33 +0000 UTC FinishedAt: 2026-07-23 04:27:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl5vj7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_jit_supports_timed_may_goto","bpf_jit_emit_insn"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a23a71823352e2d792dcaae25f1ebb744acbfc0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"2bc50d06-2c6b-48e1-be90-b8ce2a7d9675","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-23 04:24:33 +0000 UTC FinishedAt: 2026-07-23 04:27:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b4b9d830-c50e-4bca-8f47-180fd1997ce9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*03fe5072-ff06-4a1a-b3d0-d5c95fe074a7,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-workflowl5vj7/series-workflowl5vj7-build-action-2448534995/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-workflowl5vj7/series-workflowl5vj7-build-action-2896790116/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-workflowl5vj7/series-workflowl5vj7-convert-artifact-360975569/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,}