Name: series-workflowkc5h5 Phase: Succeeded StartedAt: 2026-07-10 20:33:22 +0000 UTC FinishedAt: 2026-07-11 01:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[0] Phase: Succeeded StartedAt: 2026-07-10 20:33:22 +0000 UTC FinishedAt: 2026-07-10 20:51:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[0].run-triage Phase: Succeeded StartedAt: 2026-07-10 20:33:22 +0000 UTC FinishedAt: 2026-07-10 20:51:50 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "HFS_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "HFS_FS" ], "series_id": "bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "hfs_mdb_commit", "hfs_sync_fs", "hfs_mdb_close", "flush_mdb" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0hGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2hmc19tZGJfY29tbWl0JiMzNDssCiAgICAmIzM0O2hmc19zeW5jX2ZzJiMzNDssCiAgICAmIzM0O2hmc19tZGJfY2xvc2UmIzM0OywKICAgICYjMzQ7Zmx1c2hfbWRiJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgZm9yIHdoZW4gdGhlIHByaW1hcnkgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm90IHVwLXRvLWRhdGUgaW4gdGhlIEhGUyBmaWxlc3lzdGVtLCBzZXR0aW5nIHRoZSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJuaW5nIC1FSU8uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ2ZmY1MTQ3NTIzNzlmODNkYTRkZGU2M2E3NjIxMGNmZTRjYWFlOGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxMCAyMDo1MToxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9oZnMvaGZzX2ZzLmggYi9mcy9oZnMvaGZzX2ZzLmhcbmluZGV4IGYzNjI0NTE0ZmNiMDMwLi44ZTlhMTY3M2ExNDI0NyAxMDA2NDRcbi0tLSBhL2ZzL2hmcy9oZnNfZnMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaGZzL2hmc19mcy5oXG5AQCAtMjAxLDcgJiM0MzsyMDEsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKiBjb25zdCBoZnNfeGF0dHJfaGFuZGxlcnNbXTtcbiAvKiBtZGIuYyAqL1xuIGV4dGVybiBib29sIGlzX2hmc19jbmlkX2NvdW50c192YWxpZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbiBleHRlcm4gaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuLWV4dGVybiB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuJiM0MztleHRlcm4gaW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIGV4dGVybiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4gZXh0ZXJuIHZvaWQgaGZzX21kYl9wdXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4gXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL21kYi5jIGIvZnMvaGZzL21kYi5jXG5pbmRleCBhOTdjZWEzNWNhMmUxMi4uZjQ1NzhmNjM0MzAyZjcgMTAwNjQ0XG4tLS0gYS9mcy9oZnMvbWRiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9tZGIuY1xuQEAgLTI3NCw3ICYjNDM7Mjc0LDkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gICogT3V0cHV0IFZhcmlhYmxlKHMpOlxuICAqICAgTk9ORVxuICAqIFJldHVybnM6XG4tICogICB2b2lkXG4mIzQzOyAqICAgMCBvbiBzdWNjZXNzLCAtRUlPIGlmIHRoZSBNREIgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm8gbG9uZ2VyXG4mIzQzOyAqICAgdmFsaWQgKGUuZy4gYWZ0ZXIgYSBwcmlvciB3cml0ZSBlcnJvciksIGluIHdoaWNoIGNhc2UgdGhlIHZvbHVtZSBpc1xuJiM0MzsgKiAgIHJlbW91bnRlZCByZWFkLW9ubHkuXG4gICogUHJlY29uZGl0aW9uczpcbiAgKiAgICYjMzk7bWRiJiMzOTsgcG9pbnRzIHRvIGEgXCYjMzQ7dmFsaWRcJiMzNDsgKHN0cnVjdCBoZnNfbWRiKS5cbiAgKiBQb3N0Y29uZGl0aW9uczpcbkBAIC0yODQsMTIgJiM0MzsyODYsMTkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gICogICBJZiAmIzM5O2JhY2t1cCYjMzk7IGlzIG5vbi16ZXJvIHRoZW4gdGhlIGFsdGVybmF0ZSBNREIgaXMgYWxzbyB3cml0dGVuXG4gICogICBhbmQgdGhlIGZ1bmN0aW9uIGRvZXNuJiMzOTt0IHJldHVybiB1bnRpbCBpdCBpcyBhY3R1YWxseSBvbiBkaXNrLlxuICAqL1xuLXZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiYjNDM7aW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuIFx0c3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktXHUwMDNlbWRiO1xuJiM0MztcdGludCByZXQgPSAwO1xuIFxuIFx0aWYgKHNiX3Jkb25seShzYikpXG4tXHRcdHJldHVybjtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCkpIHtcbiYjNDM7XHRcdHByX2VycihcJiMzNDtwcmltYXJ5IE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXG5cJiMzNDspO1xuJiM0MztcdFx0c2ItXHUwMDNlc19mbGFncyB8PSBTQl9SRE9OTFk7XG4mIzQzO1x0XHRyZXR1cm4gLUVJTztcbiYjNDM7XHR9XG4gXG4gXHRsb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCk7XG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfTURCX0RJUlRZLCBcdTAwMjZIRlNfU0Ioc2IpLVx1MDAzZWZsYWdzKSkge1xuQEAgLTMxNCw2ICYjNDM7MzIzLDEzIEBAIHZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiBcdCAqIGZpbGVzIGdyb3cuICovXG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfQUxUX01EQl9ESVJUWSwgXHUwMDI2SEZTX1NCKHNiKS1cdTAwM2VmbGFncykgXHUwMDI2XHUwMDI2XG4gXHQgICAgSEZTX1NCKHNiKS1cdTAwM2VhbHRfbWRiKSB7XG4mIzQzO1x0XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZWFsdF9tZGJfYmgpKSB7XG4mIzQzO1x0XHRcdHByX2VycihcJiMzNDthbHRlcm5hdGUgTURCIGlzIGNvcnJ1cHQsIG1vdW50aW5nIHJlYWQtb25seVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuJiM0MztcdFx0XHRyZXQgPSAtRUlPO1xuJiM0MztcdFx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdGhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktXHUwMDNlZXh0X3RyZWUtXHUwMDNlaW5vZGUsIG1kYi1cdTAwM2VkclhURXh0UmVjLFxuIFx0XHRcdFx0ICAgICBcdTAwMjZtZGItXHUwMDNlZHJYVEZsU2l6ZSwgTlVMTCk7XG4gXHRcdGhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktXHUwMDNlY2F0X3RyZWUtXHUwMDNlaW5vZGUsIG1kYi1cdTAwM2VkckNURXh0UmVjLFxuQEAgLTM2MCw3ICYjNDM7Mzc2LDkgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0XHRcdHNpemUgLT0gbGVuO1xuIFx0XHR9XG4gXHR9XG4mIzQzO291dDpcbiBcdHVubG9ja19idWZmZXIoSEZTX1NCKHNiKS1cdTAwM2VtZGJfYmgpO1xuJiM0MztcdHJldHVybiByZXQ7XG4gfVxuIFxuIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuQEAgLTM2OCw2ICYjNDM7Mzg2LDEwIEBAIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0LyogdXBkYXRlIHZvbHVtZSBhdHRyaWJ1dGVzICovXG4gXHRpZiAoc2JfcmRvbmx5KHNiKSlcbiBcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0SEZTX1NCKHNiKS1cdTAwM2VtZGItXHUwMDNlZHJBdHJiIHw9IGNwdV90b19iZTE2KEhGU19TQl9BVFRSSUJfVU5NTlQpO1xuIFx0SEZTX1NCKHNiKS1cdTAwM2VtZGItXHUwMDNlZHJBdHJiIFx1MDAyNj0gY3B1X3RvX2JlMTYofkhGU19TQl9BVFRSSUJfSU5DTlNUTlQpO1xuIFx0bWFya19idWZmZXJfZGlydHkoSEZTX1NCKHNiKS1cdTAwM2VtZGJfYmgpO1xuZGlmZiAtLWdpdCBhL2ZzL2hmcy9zdXBlci5jIGIvZnMvaGZzL3N1cGVyLmNcbmluZGV4IGE0NjZjNDAxZjZiYjI2Li42N2VjYTZmODA3NDY5MyAxMDA2NDRcbi0tLSBhL2ZzL2hmcy9zdXBlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9oZnMvc3VwZXIuY1xuQEAgLTM1LDggJiM0MzszNSw3IEBAIE1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4gc3RhdGljIGludCBoZnNfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcbiB7XG4gXHRpc19oZnNfY25pZF9jb3VudHNfdmFsaWQoc2IpO1xuLVx0aGZzX21kYl9jb21taXQoc2IpO1xuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIGhmc19tZGJfY29tbWl0KHNiKTtcbiB9XG4gXG4gLypcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtIRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtoZnNfbWRiX2NvbW1pdCYjMzQ7LAogICAgJiMzNDtoZnNfc3luY19mcyYjMzQ7LAogICAgJiMzNDtoZnNfbWRiX2Nsb3NlJiMzNDssCiAgICAmIzM0O2ZsdXNoX21kYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ2ZmY1MTQ3NTIzNzlmODNkYTRkZGU2M2E3NjIxMGNmZTRjYWFlOGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxMCAyMDo1MToxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2hmcy9oZnNfZnMuaCBiL2ZzL2hmcy9oZnNfZnMuaAppbmRleCBmMzYyNDUxNGZjYjAzMC4uOGU5YTE2NzNhMTQyNDcgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9oZnNfZnMuaAomIzQzOyYjNDM7JiM0MzsgYi9mcy9oZnMvaGZzX2ZzLmgKQEAgLTIwMSw3ICYjNDM7MjAxLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICogY29uc3QgaGZzX3hhdHRyX2hhbmRsZXJzW107CiAvKiBtZGIuYyAqLwogZXh0ZXJuIGJvb2wgaXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogZXh0ZXJuIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKLWV4dGVybiB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwomIzQzO2V4dGVybiBpbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiBleHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogZXh0ZXJuIHZvaWQgaGZzX21kYl9wdXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAKZGlmZiAtLWdpdCBhL2ZzL2hmcy9tZGIuYyBiL2ZzL2hmcy9tZGIuYwppbmRleCBhOTdjZWEzNWNhMmUxMi4uZjQ1NzhmNjM0MzAyZjcgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9tZGIuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9oZnMvbWRiLmMKQEAgLTI3NCw3ICYjNDM7Mjc0LDkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAgKiBPdXRwdXQgVmFyaWFibGUocyk6CiAgKiAgIE5PTkUKICAqIFJldHVybnM6Ci0gKiAgIHZvaWQKJiM0MzsgKiAgIDAgb24gc3VjY2VzcywgLUVJTyBpZiB0aGUgTURCIG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vIGxvbmdlcgomIzQzOyAqICAgdmFsaWQgKGUuZy4gYWZ0ZXIgYSBwcmlvciB3cml0ZSBlcnJvciksIGluIHdoaWNoIGNhc2UgdGhlIHZvbHVtZSBpcwomIzQzOyAqICAgcmVtb3VudGVkIHJlYWQtb25seS4KICAqIFByZWNvbmRpdGlvbnM6CiAgKiAgICYjMzk7bWRiJiMzOTsgcG9pbnRzIHRvIGEgJiMzNDt2YWxpZCYjMzQ7IChzdHJ1Y3QgaGZzX21kYikuCiAgKiBQb3N0Y29uZGl0aW9uczoKQEAgLTI4NCwxMiAmIzQzOzI4NiwxOSBAQCBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKICAqICAgSWYgJiMzOTtiYWNrdXAmIzM5OyBpcyBub24temVybyB0aGVuIHRoZSBhbHRlcm5hdGUgTURCIGlzIGFsc28gd3JpdHRlbgogICogICBhbmQgdGhlIGZ1bmN0aW9uIGRvZXNuJiMzOTt0IHJldHVybiB1bnRpbCBpdCBpcyBhY3R1YWxseSBvbiBkaXNrLgogICovCi12b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiYjNDM7aW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJc3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktJmd0O21kYjsKJiM0MzsJaW50IHJldCA9IDA7CiAKIAlpZiAoc2JfcmRvbmx5KHNiKSkKLQkJcmV0dXJuOwomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiYjNDM7CWlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktJmd0O21kYl9iaCkpIHsKJiM0MzsJCXByX2VycigmIzM0O3ByaW1hcnkgTURCIGlzIGNvcnJ1cHQsIG1vdW50aW5nIHJlYWQtb25seVxuJiMzNDspOwomIzQzOwkJc2ItJmd0O3NfZmxhZ3MgfD0gU0JfUkRPTkxZOwomIzQzOwkJcmV0dXJuIC1FSU87CiYjNDM7CX0KIAogCWxvY2tfYnVmZmVyKEhGU19TQihzYiktJmd0O21kYl9iaCk7CiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChIRlNfRkxHX01EQl9ESVJUWSwgJmFtcDtIRlNfU0Ioc2IpLSZndDtmbGFncykpIHsKQEAgLTMxNCw2ICYjNDM7MzIzLDEzIEBAIHZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAkgKiBmaWxlcyBncm93LiAqLwogCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSEZTX0ZMR19BTFRfTURCX0RJUlRZLCAmYW1wO0hGU19TQihzYiktJmd0O2ZsYWdzKSAmYW1wOyZhbXA7CiAJICAgIEhGU19TQihzYiktJmd0O2FsdF9tZGIpIHsKJiM0MzsJCWlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktJmd0O2FsdF9tZGJfYmgpKSB7CiYjNDM7CQkJcHJfZXJyKCYjMzQ7YWx0ZXJuYXRlIE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcbiYjMzQ7KTsKJiM0MzsJCQlzYi0mZ3Q7c19mbGFncyB8PSBTQl9SRE9OTFk7CiYjNDM7CQkJcmV0ID0gLUVJTzsKJiM0MzsJCQlnb3RvIG91dDsKJiM0MzsJCX0KJiM0MzsKIAkJaGZzX2lub2RlX3dyaXRlX2ZvcmsoSEZTX1NCKHNiKS0mZ3Q7ZXh0X3RyZWUtJmd0O2lub2RlLCBtZGItJmd0O2RyWFRFeHRSZWMsCiAJCQkJICAgICAmYW1wO21kYi0mZ3Q7ZHJYVEZsU2l6ZSwgTlVMTCk7CiAJCWhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktJmd0O2NhdF90cmVlLSZndDtpbm9kZSwgbWRiLSZndDtkckNURXh0UmVjLApAQCAtMzYwLDcgJiM0MzszNzYsOSBAQCB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJCQlzaXplIC09IGxlbjsKIAkJfQogCX0KJiM0MztvdXQ6CiAJdW5sb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLSZndDttZGJfYmgpOwomIzQzOwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTM2OCw2ICYjNDM7Mzg2LDEwIEBAIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCS8qIHVwZGF0ZSB2b2x1bWUgYXR0cmlidXRlcyAqLwogCWlmIChzYl9yZG9ubHkoc2IpKQogCQlyZXR1cm47CiYjNDM7CiYjNDM7CWlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktJmd0O21kYl9iaCkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJSEZTX1NCKHNiKS0mZ3Q7bWRiLSZndDtkckF0cmIgfD0gY3B1X3RvX2JlMTYoSEZTX1NCX0FUVFJJQl9VTk1OVCk7CiAJSEZTX1NCKHNiKS0mZ3Q7bWRiLSZndDtkckF0cmIgJmFtcDs9IGNwdV90b19iZTE2KH5IRlNfU0JfQVRUUklCX0lOQ05TVE5UKTsKIAltYXJrX2J1ZmZlcl9kaXJ0eShIRlNfU0Ioc2IpLSZndDttZGJfYmgpOwpkaWZmIC0tZ2l0IGEvZnMvaGZzL3N1cGVyLmMgYi9mcy9oZnMvc3VwZXIuYwppbmRleCBhNDY2YzQwMWY2YmIyNi4uNjdlY2E2ZjgwNzQ2OTMgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9zdXBlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9zdXBlci5jCkBAIC0zNSw4ICYjNDM7MzUsNyBAQCBNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKIHN0YXRpYyBpbnQgaGZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpCiB7CiAJaXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHNiKTsKLQloZnNfbWRiX2NvbW1pdChzYik7Ci0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7CiB9CiAKIC8qCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTAKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBIRlMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIEhGUyBmaWxlc3lzdGVtIGNvZGUsIHNwZWNpZmljYWxseSBgaGZzX21kYl9jb21taXRgIGluIGBmcy9oZnMvbWRiLmNgIGFuZCBgaGZzX3N5bmNfZnNgIGluIGBmcy9oZnMvc3VwZXIuY2AuIFRoZSBjb3JlIG9mIGl0IGludm9sdmVzIGEgc2lnbmlmaWNhbnQgY2hhbmdlOiB0aGV5JiMzOTtyZSBtYWtpbmcgYGhmc19tZGJfY29tbWl0YCByZXR1cm4gYW4gaW50ZWdlciBub3csIGluc3RlYWQgb2YganVzdCBgdm9pZGAuIFRoYXQgaW1tZWRpYXRlbHkgZ3JhYnMgbXkgYXR0ZW50aW9uIOKAkyBpdCBzaWduYWxzIGEgc2hpZnQgdG93YXJkcyBtb3JlIHJvYnVzdCBlcnJvciByZXBvcnRpbmcgd2l0aGluIHRoZSBNREIgY29tbWl0IHByb2Nlc3MuCgpFc3NlbnRpYWxseSwgdGhlIHBhdGNoIGlzIGFkZGluZyBlcnJvciBoYW5kbGluZyBhcm91bmQgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGFuZCBhbHRlcm5hdGUgTURCIGJ1ZmZlcnMuIFRoZSBjb2RlIHdpbGwgbm93IGNoZWNrIGlmIHRoZXNlIGJ1ZmZlcnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGNvbW1pdHRpbmcuIElmIHRoZXJlJiMzOTtzIGEgZGlzY3JlcGFuY3kgb3IgYW4gaXNzdWUgd2l0aCB0aGUgYnVmZmVyIHN0YXRlcywgdGhlIHBhdGNoIGlzIGRlc2lnbmVkIHRvIHNldCB0aGUgZmlsZXN5c3RlbSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJucyBgLUVJT2AsIHdoaWNoIG1ha2VzIHRvdGFsIHNlbnNlIOKAkyBpdCYjMzk7cyBhIGNyaXRpY2FsIHNhZmV0eSBtZWFzdXJlIHRvIHByZXZlbnQgZGF0YSBjb3JydXB0aW9uLiBTbywgaXQgYXBwZWFycyB0aGlzIGFkZHJlc3NlcyBhIHBvdGVudGlhbCBkYXRhIGludGVncml0eSBpc3N1ZSBpbiB0aGUgSEZTIGltcGxlbWVudGF0aW9uLgoKSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggaXMgdGFyZ2V0aW5nIGltcHJvdmVkIGVycm9yIGhhbmRsaW5nIGFuZCBkYXRhIGNvbnNpc3RlbmN5LiBJJiMzOTttIGdvaW5nIHRvIHdhbnQgdG8gdmVyaWZ5IHRoZSBpbXBsaWNhdGlvbnMgYW5kIGNvbnNpZGVyIHRoZSBpbXBhY3Qgb24gYW55IG9mIG15IHVzZSBjYXNlcy4gTmV4dCwgSSBzaG91bGQgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgSEZTIHRvIHNlZSBpZiBhbnkgYXJlIGltcGFjdGVkIGJ5IHRoaXMgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBIRlNfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9oZnMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZnMvaGZzL0tjb25maWc6Mjpjb25maWcgSEZTX0ZTXG5mcy9oZnMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXBwbGUgTWFjaW50b3NoIGZpbGUgc3lzdGVtIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjIyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipBbmFseXppbmcgUG90ZW50aWFsIEhGUyBGaWxlIFN5c3RlbSBWdWxuZXJhYmlsaXRpZXMqKgoKTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgYEhGU19GU2AgY29uZmlndXJhdGlvbiBvcHRpb24g4oCTIHRoYXQmIzM5O3MgdGhlIGtleS4gTm93LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIEhGUyBmaWxlIHN5c3RlbSBpbnRlcmFjdGlvbnMuIFRoZSBsaWtlbHkgc3VzcGVjdHMgYXJlIGBoZnNfbWRiX2NvbW1pdGAsIGBoZnNfc3luY19mc2AsIGFuZCBgaGZzX21kYl9jbG9zZWAuIFRob3NlIHNlZW0gbGlrZSB0aGUgYXJlYXMgdG8gc2NydXRpbml6ZSBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy4gVGltZSB0byBjaGVjayB0aGUgY2FsbCBzdHJ1Y3R1cmUuCgpJdCBsb29rcyBsaWtlIGBoZnNfbWRiX2NvbW1pdGAgaXMgY2FsbGVkIGJ5IGBoZnNfc3luY19mc2AsIHNvIGFueSBpc3N1ZXMgdGhlcmUgd291bGQgcHJvcGFnYXRlLiBBbmQgYGhmc19tZGJfY2xvc2VgIGlzIHBhcnQgb2YgYGhmc19wdXRfc3VwZXJgLCBzbyB0aGF0IG1ha2VzIHNlbnNlLCB0b28uIEtub3dpbmcgdGhlIGNhbGwgcmVsYXRpb25zaGlwcyBpcyBjcnVjaWFsIGZvciBhIGZ1bGwgYXVkaXQgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIHBvdGVudGlhbCBpbXBhY3Qgb2YgYW55IHdlYWtuZXNzZXMgSSBtaWdodCBmaW5kLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gbm90ZSBhbGwgcG9zc2libGUgY2FsbCBjaGFpbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBnZXQgYSBnb29kIHBpY3R1cmUgb2YgdGhlIGZpbGUgc3lzdGVtJiMzOTtzIGJlaGF2aW9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hmc19tZGJfY29tbWl0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvaGZzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9oZnMvaGZzX2ZzLmg9MjAzPWV4dGVybiBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG5mcy9oZnMvaGZzX2ZzLmg6MjA0OmV4dGVybiBpbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG5mcy9oZnMvaGZzX2ZzLmgtMjA1LWV4dGVybiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4tLVxuZnMvaGZzL21kYi5jPTk0PWludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2hmcy9tZGIuYy0yNjMtLypcbmZzL2hmcy9tZGIuYzoyNjQ6ICogaGZzX21kYl9jb21taXQoKVxuZnMvaGZzL21kYi5jLTI2NS0gKlxuLS1cbmZzL2hmcy9tZGIuYy0yODgtICovXG5mcy9oZnMvbWRiLmM6Mjg5OmludCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuZnMvaGZzL21kYi5jLTI5MC17XG4tLVxuZnMvaGZzL3N1cGVyLmM9MzU9c3RhdGljIGludCBoZnNfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcbi0tXG5mcy9oZnMvc3VwZXIuYy0zNy1cdGlzX2hmc19jbmlkX2NvdW50c192YWxpZChzYik7XG5mcy9oZnMvc3VwZXIuYzozODpcdHJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7XG5mcy9oZnMvc3VwZXIuYy0zOS19XG4tLVxuZnMvaGZzL3N1cGVyLmM9NTY9c3RhdGljIHZvaWQgZmx1c2hfbWRiKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5mcy9oZnMvc3VwZXIuYy02OS1cbmZzL2hmcy9zdXBlci5jOjcwOlx0aGZzX21kYl9jb21taXQoc2IpO1xuZnMvaGZzL3N1cGVyLmMtNzEtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MDUKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgY29kZSwgcHJlc2VudGVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgYW4gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBEYXRhIExvc3MgU2NlbmFyaW9zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlIE1ldGFkYXRhIERhdGFiYXNlIChNREIpIGlzIGhhbmRsZWQgaW4gdGhpcyBIRlMmIzQzOyBpbXBsZW1lbnRhdGlvbi4gSSBzZWUgdGhhdCBgZmx1c2hfbWRiYCBpbnRlcm5hbGx5IGNhbGxzIGBoZnNfbWRiX2NvbW1pdGAuIFRoYXQmIzM5O3MgZXhwZWN0ZWQsIGFzIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBjaGFuZ2VzIGFyZSB3cml0dGVuLiBBbHNvLCBgaGZzX3N5bmNfZnNgICphbHNvKiBjYWxscyBgaGZzX21kYl9jb21taXRgLiBUaGlzIHN1Z2dlc3RzIGEgY3J1Y2lhbCBwb2ludCBvZiBkYXRhIHN5bmNocm9uaXphdGlvbiByZWxhdGVkIHRvIHRoZSBmaWxlc3lzdGVtIGZsdXNoIG9wZXJhdGlvbiwgd2hpY2ggaXMgYSBrZXkgcHJvY2VzcyBmb3IgZW5zdXJpbmcgdGhlIGNvbnNpc3RlbmN5IG9mIGRhdGEuIE5vdywgdG8gZGVlcGVuIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgYWxsIGZ1bmN0aW9ucywgSSBuZWVkIHRvIGNoZWNrIGhvdyBgaGZzX21kYl9jbG9zZWAgaW50ZXJhY3RzIHdpdGggYm90aCBvZiB0aG9zZSBjYWxscy4gS25vd2luZyBob3cgdGhlIE1EQiBnZXRzIGNsb3NlZCB3aWxsIGlsbHVtaW5hdGUgd2hldGhlciBhbnkgY29tbWl0cyBjb3VsZCBiZSBsb3N0IGluIHNwZWNpZmljIHNjZW5hcmlvcy4gVGhpcyBpcyBhIGNyaXRpY2FsIGFyZWEgZm9yIGlkZW50aWZ5aW5nIHBvdGVudGlhbCBkYXRhIGxvc3MgdnVsbmVyYWJpbGl0aWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hmc19tZGJfY2xvc2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9oZnNfZnMuaD0yMDQ9ZXh0ZXJuIGludCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbmZzL2hmcy9oZnNfZnMuaDoyMDU6ZXh0ZXJuIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbmZzL2hmcy9oZnNfZnMuaC0yMDYtZXh0ZXJuIHZvaWQgaGZzX21kYl9wdXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4tLVxuZnMvaGZzL21kYi5jPTI4OT1pbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9oZnMvbWRiLmMtMzgzLVxuZnMvaGZzL21kYi5jOjM4NDp2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2hmcy9tZGIuYy0zODUte1xuLS1cbmZzL2hmcy9zdXBlci5jPTQ4PXN0YXRpYyB2b2lkIGhmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9oZnMvc3VwZXIuYy01MC1cdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZIRlNfU0Ioc2IpLVx1MDAzZW1kYl93b3JrKTtcbmZzL2hmcy9zdXBlci5jOjUxOlx0aGZzX21kYl9jbG9zZShzYik7XG5mcy9oZnMvc3VwZXIuYy01Mi1cdC8qIHJlbGVhc2UgdGhlIE1EQiYjMzk7cyByZXNvdXJjZXMgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk0CgkJCQkJCQlvdXRwdXQ6IDEyMgoJCQkJCQkJdGhvdWdodHM6IDIzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEhGUyBGaWxlc3lzdGVtIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBwYXRjaCBhZGRyZXNzaW5nIHBvdGVudGlhbCB3cml0ZSBlcnJvcnMgd2l0aGluIHRoZSBIRlMgZmlsZXN5c3RlbS4gVGhlIGZ1bmN0aW9ucyBoaWdobGlnaHRlZCDigJMgYGhmc19tZGJfY29tbWl0YCwgYGhmc19zeW5jX2ZzYCwgYW5kIGBoZnNfbWRiX2Nsb3NlYCDigJMgYXJlIGtleSBoZXJlLCBlc3BlY2lhbGx5IGNvbnNpZGVyaW5nIHRoZSBjb250ZXh0LiBXZSBjYW4gcHJvYmFibHkgc2V0IGFzaWRlIGBmbHVzaF9tZGJgIGFuZCBgaGZzX3B1dF9zdXBlcmAgZm9yIHRoZSB0aW1lIGJlaW5nLgoKVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSBpbXByb3ZlZCBlcnJvciBoYW5kbGluZyByZWxhdGVkIHRvIHRoZSBNREIgKE1hc3RlciBEaXJlY3RvcnkgQmxvY2spIGJ1ZmZlci4gVGhpcyBwYXRjaCBhY2NvdW50cyBmb3Igc2NlbmFyaW9zIHdoZXJlIHRoZSBNREIgYnVmZmVyIGlzbuKAmXQgdXAtdG8tZGF0ZSwgcG90ZW50aWFsbHkgZHVlIHRvIGEgcHJpb3Igd3JpdGUgZXJyb3IuIFRoaXMgbWFrZXMgdGhlIGZpbGVzeXN0ZW0gc2V0IHJlYWQtb25seSBhbmQgcmV0dXJuIGAtRUlPYC4gVGhlIGZhY3QgdGhhdCBpdCBtb2RpZmllcyB0aGUgcHJpbWFyeSBhbmQgYWx0ZXJuYXRlIE1EQiBidWZmZXJzIHN1Z2dlc3RzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIGFzcGVjdCBvZiBmaWxlc3lzdGVtIGludGVncml0eS4KCkdpdmVuIHRoYXQgaXQgY2hhbmdlcyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbSwgYW5kIGRlYWxzIHdpdGggcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBzY2VuYXJpb3MsIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy4KCk15IGNvbmNsdXNpb24gaXM6CgoqICAgKipXb3J0aEZ1enppbmc6IHRydWUqKgoqICAgKipFbmFibGVDb25maWdzOiBbJiMzNDtIRlNcX0ZTJiMzNDtdKiogKE9idmlvdXNseSwgd2UgbmVlZCB0byBlbmFibGUgSEZTIGZpbGVzeXN0ZW0gc3VwcG9ydCkKKiAgICoqRm9jdXNTeW1ib2xzOiBbJiMzNDtoZnNcX21kYlxfY29tbWl0JiMzNDssICYjMzQ7aGZzXF9zeW5jXF9mcyYjMzQ7LCAmIzM0O2hmc1xfbWRiXF9jbG9zZSYjMzQ7LCAmIzM0O2ZsdXNoXF9tZGImIzM0O10qKiAoVGhlc2UgZnVuY3Rpb25zIGFyZSBlc3NlbnRpYWwgdGFyZ2V0cyBmb3IgdGVzdGluZyB0aGlzIG5ldyBlcnJvciBoYW5kbGluZykKKiAgICoqUmVhc29uaW5nOiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uJiMzNDsqKgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aGZzX21kYl9jb21taXQmIzM0OywKICAgICYjMzQ7aGZzX3N5bmNfZnMmIzM0OywKICAgICYjMzQ7aGZzX21kYl9jbG9zZSYjMzQ7LAogICAgJiMzNDtmbHVzaF9tZGImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBmb3Igd2hlbiB0aGUgcHJpbWFyeSBvciBhbHRlcm5hdGUgTURCIGJ1ZmZlciBpcyBub3QgdXAtdG8tZGF0ZSBpbiB0aGUgSEZTIGZpbGVzeXN0ZW0sIHNldHRpbmcgdGhlIHN1cGVyYmxvY2sgdG8gcmVhZC1vbmx5IGFuZCByZXR1cm5pbmcgLUVJTy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSBmaWxlc3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtIRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtoZnNfbWRiX2NvbW1pdCYjMzQ7LAogICAgJiMzNDtoZnNfc3luY19mcyYjMzQ7LAogICAgJiMzNDtoZnNfbWRiX2Nsb3NlJiMzNDssCiAgICAmIzM0O2ZsdXNoX21kYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyMC41OTY0NzExNDhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzU3NDE0NTkzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfbWRiX2NvbW1pdFwiLFxuICAgIFwiaGZzX3N5bmNfZnNcIixcbiAgICBcImhmc19tZGJfY2xvc2VcIixcbiAgICBcImZsdXNoX21kYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgZm9yIHdoZW4gdGhlIHByaW1hcnkgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm90IHVwLXRvLWRhdGUgaW4gdGhlIEhGUyBmaWxlc3lzdGVtLCBzZXR0aW5nIHRoZSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJuaW5nIC1FSU8uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6NTE6MjAuNTk2NDc3NDQ4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU1NzUyMDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkNmZmNTE0NzUyMzc5ZjgzZGE0ZGRlNjNhNzYyMTBjZmU0Y2FhZThjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDEwIDIwOjUxOjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2ZzL2hmcy9oZnNfZnMuaCBiL2ZzL2hmcy9oZnNfZnMuaFxcbmluZGV4IGYzNjI0NTE0ZmNiMDMwLi44ZTlhMTY3M2ExNDI0NyAxMDA2NDRcXG4tLS0gYS9mcy9oZnMvaGZzX2ZzLmhcXG4rKysgYi9mcy9oZnMvaGZzX2ZzLmhcXG5AQCAtMjAxLDcgKzIwMSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGhmc194YXR0cl9oYW5kbGVyc1tdO1xcbiAvKiBtZGIuYyAqL1xcbiBleHRlcm4gYm9vbCBpc19oZnNfY25pZF9jb3VudHNfdmFsaWQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuIGV4dGVybiBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuLWV4dGVybiB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbitleHRlcm4gaW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbiBleHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbiBleHRlcm4gdm9pZCBoZnNfbWRiX3B1dChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcXG4gXFxuZGlmZiAtLWdpdCBhL2ZzL2hmcy9tZGIuYyBiL2ZzL2hmcy9tZGIuY1xcbmluZGV4IGE5N2NlYTM1Y2EyZTEyLi5mNDU3OGY2MzQzMDJmNyAxMDA2NDRcXG4tLS0gYS9mcy9oZnMvbWRiLmNcXG4rKysgYi9mcy9oZnMvbWRiLmNcXG5AQCAtMjc0LDcgKzI3NCw5IEBAIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiAgKiBPdXRwdXQgVmFyaWFibGUocyk6XFxuICAqICAgTk9ORVxcbiAgKiBSZXR1cm5zOlxcbi0gKiAgIHZvaWRcXG4rICogICAwIG9uIHN1Y2Nlc3MsIC1FSU8gaWYgdGhlIE1EQiBvciBhbHRlcm5hdGUgTURCIGJ1ZmZlciBpcyBubyBsb25nZXJcXG4rICogICB2YWxpZCAoZS5nLiBhZnRlciBhIHByaW9yIHdyaXRlIGVycm9yKSwgaW4gd2hpY2ggY2FzZSB0aGUgdm9sdW1lIGlzXFxuKyAqICAgcmVtb3VudGVkIHJlYWQtb25seS5cXG4gICogUHJlY29uZGl0aW9uczpcXG4gICogICAnbWRiJyBwb2ludHMgdG8gYSBcXFwidmFsaWRcXFwiIChzdHJ1Y3QgaGZzX21kYikuXFxuICAqIFBvc3Rjb25kaXRpb25zOlxcbkBAIC0yODQsMTIgKzI4NiwxOSBAQCBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gICogICBJZiAnYmFja3VwJyBpcyBub24temVybyB0aGVuIHRoZSBhbHRlcm5hdGUgTURCIGlzIGFsc28gd3JpdHRlblxcbiAgKiAgIGFuZCB0aGUgZnVuY3Rpb24gZG9lc24ndCByZXR1cm4gdW50aWwgaXQgaXMgYWN0dWFsbHkgb24gZGlzay5cXG4gICovXFxuLXZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4raW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuIHtcXG4gXFx0c3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktXFx1MDAzZW1kYjtcXG4rXFx0aW50IHJldCA9IDA7XFxuIFxcbiBcXHRpZiAoc2JfcmRvbmx5KHNiKSlcXG4tXFx0XFx0cmV0dXJuO1xcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktXFx1MDAzZW1kYl9iaCkpIHtcXG4rXFx0XFx0cHJfZXJyKFxcXCJwcmltYXJ5IE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXFxcblxcXCIpO1xcbitcXHRcXHRzYi1cXHUwMDNlc19mbGFncyB8PSBTQl9SRE9OTFk7XFxuK1xcdFxcdHJldHVybiAtRUlPO1xcbitcXHR9XFxuIFxcbiBcXHRsb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpO1xcbiBcXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfTURCX0RJUlRZLCBcXHUwMDI2SEZTX1NCKHNiKS1cXHUwMDNlZmxhZ3MpKSB7XFxuQEAgLTMxNCw2ICszMjMsMTMgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiBcXHQgKiBmaWxlcyBncm93LiAqL1xcbiBcXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfQUxUX01EQl9ESVJUWSwgXFx1MDAyNkhGU19TQihzYiktXFx1MDAzZWZsYWdzKSBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgSEZTX1NCKHNiKS1cXHUwMDNlYWx0X21kYikge1xcbitcXHRcXHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVxcdTAwM2VhbHRfbWRiX2JoKSkge1xcbitcXHRcXHRcXHRwcl9lcnIoXFxcImFsdGVybmF0ZSBNREIgaXMgY29ycnVwdCwgbW91bnRpbmcgcmVhZC1vbmx5XFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0c2ItXFx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xcbitcXHRcXHRcXHRyZXQgPSAtRUlPO1xcbitcXHRcXHRcXHRnb3RvIG91dDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0aGZzX2lub2RlX3dyaXRlX2ZvcmsoSEZTX1NCKHNiKS1cXHUwMDNlZXh0X3RyZWUtXFx1MDAzZWlub2RlLCBtZGItXFx1MDAzZWRyWFRFeHRSZWMsXFxuIFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNm1kYi1cXHUwMDNlZHJYVEZsU2l6ZSwgTlVMTCk7XFxuIFxcdFxcdGhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktXFx1MDAzZWNhdF90cmVlLVxcdTAwM2Vpbm9kZSwgbWRiLVxcdTAwM2VkckNURXh0UmVjLFxcbkBAIC0zNjAsNyArMzc2LDkgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiBcXHRcXHRcXHRzaXplIC09IGxlbjtcXG4gXFx0XFx0fVxcbiBcXHR9XFxuK291dDpcXG4gXFx0dW5sb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpO1xcbitcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcbiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5AQCAtMzY4LDYgKzM4NiwxMCBAQCB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gXFx0LyogdXBkYXRlIHZvbHVtZSBhdHRyaWJ1dGVzICovXFxuIFxcdGlmIChzYl9yZG9ubHkoc2IpKVxcbiBcXHRcXHRyZXR1cm47XFxuK1xcbitcXHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRIRlNfU0Ioc2IpLVxcdTAwM2VtZGItXFx1MDAzZWRyQXRyYiB8PSBjcHVfdG9fYmUxNihIRlNfU0JfQVRUUklCX1VOTU5UKTtcXG4gXFx0SEZTX1NCKHNiKS1cXHUwMDNlbWRiLVxcdTAwM2VkckF0cmIgXFx1MDAyNj0gY3B1X3RvX2JlMTYofkhGU19TQl9BVFRSSUJfSU5DTlNUTlQpO1xcbiBcXHRtYXJrX2J1ZmZlcl9kaXJ0eShIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpO1xcbmRpZmYgLS1naXQgYS9mcy9oZnMvc3VwZXIuYyBiL2ZzL2hmcy9zdXBlci5jXFxuaW5kZXggYTQ2NmM0MDFmNmJiMjYuLjY3ZWNhNmY4MDc0NjkzIDEwMDY0NFxcbi0tLSBhL2ZzL2hmcy9zdXBlci5jXFxuKysrIGIvZnMvaGZzL3N1cGVyLmNcXG5AQCAtMzUsOCArMzUsNyBAQCBNT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuIHN0YXRpYyBpbnQgaGZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpXFxuIHtcXG4gXFx0aXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHNiKTtcXG4tXFx0aGZzX21kYl9jb21taXQoc2IpO1xcbi1cXHRyZXR1cm4gMDtcXG4rXFx0cmV0dXJuIGhmc19tZGJfY29tbWl0KHNiKTtcXG4gfVxcbiBcXG4gLypcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6NTE6MjEuMTkzMDkwMzM1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjk3NzUxODk3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfbWRiX2NvbW1pdFwiLFxuICAgIFwiaGZzX3N5bmNfZnNcIixcbiAgICBcImhmc19tZGJfY2xvc2VcIixcbiAgICBcImZsdXNoX21kYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgZm9yIHdoZW4gdGhlIHByaW1hcnkgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm90IHVwLXRvLWRhdGUgaW4gdGhlIEhGUyBmaWxlc3lzdGVtLCBzZXR0aW5nIHRoZSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJuaW5nIC1FSU8uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkNmZmNTE0NzUyMzc5ZjgzZGE0ZGRlNjNhNzYyMTBjZmU0Y2FhZThjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTAgMjA6NTE6MTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9oZnMvaGZzX2ZzLmggYi9mcy9oZnMvaGZzX2ZzLmhcbmluZGV4IGYzNjI0NTE0ZmNiMDMwLi44ZTlhMTY3M2ExNDI0NyAxMDA2NDRcbi0tLSBhL2ZzL2hmcy9oZnNfZnMuaFxuKysrIGIvZnMvaGZzL2hmc19mcy5oXG5AQCAtMjAxLDcgKzIwMSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGhmc194YXR0cl9oYW5kbGVyc1tdO1xuIC8qIG1kYi5jICovXG4gZXh0ZXJuIGJvb2wgaXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIGV4dGVybiBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4tZXh0ZXJuIHZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4rZXh0ZXJuIGludCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbiBleHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIGV4dGVybiB2b2lkIGhmc19tZGJfcHV0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIFxuZGlmZiAtLWdpdCBhL2ZzL2hmcy9tZGIuYyBiL2ZzL2hmcy9tZGIuY1xuaW5kZXggYTk3Y2VhMzVjYTJlMTIuLmY0NTc4ZjYzNDMwMmY3IDEwMDY0NFxuLS0tIGEvZnMvaGZzL21kYi5jXG4rKysgYi9mcy9oZnMvbWRiLmNcbkBAIC0yNzQsNyArMjc0LDkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gICogT3V0cHV0IFZhcmlhYmxlKHMpOlxuICAqICAgTk9ORVxuICAqIFJldHVybnM6XG4tICogICB2b2lkXG4rICogICAwIG9uIHN1Y2Nlc3MsIC1FSU8gaWYgdGhlIE1EQiBvciBhbHRlcm5hdGUgTURCIGJ1ZmZlciBpcyBubyBsb25nZXJcbisgKiAgIHZhbGlkIChlLmcuIGFmdGVyIGEgcHJpb3Igd3JpdGUgZXJyb3IpLCBpbiB3aGljaCBjYXNlIHRoZSB2b2x1bWUgaXNcbisgKiAgIHJlbW91bnRlZCByZWFkLW9ubHkuXG4gICogUHJlY29uZGl0aW9uczpcbiAgKiAgICdtZGInIHBvaW50cyB0byBhIFwidmFsaWRcIiAoc3RydWN0IGhmc19tZGIpLlxuICAqIFBvc3Rjb25kaXRpb25zOlxuQEAgLTI4NCwxMiArMjg2LDE5IEBAIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuICAqICAgSWYgJ2JhY2t1cCcgaXMgbm9uLXplcm8gdGhlbiB0aGUgYWx0ZXJuYXRlIE1EQiBpcyBhbHNvIHdyaXR0ZW5cbiAgKiAgIGFuZCB0aGUgZnVuY3Rpb24gZG9lc24ndCByZXR1cm4gdW50aWwgaXQgaXMgYWN0dWFsbHkgb24gZGlzay5cbiAgKi9cbi12b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4raW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuIFx0c3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktXHUwMDNlbWRiO1xuK1x0aW50IHJldCA9IDA7XG4gXG4gXHRpZiAoc2JfcmRvbmx5KHNiKSlcbi1cdFx0cmV0dXJuO1xuK1x0XHRyZXR1cm4gMDtcbitcbitcdGlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktXHUwMDNlbWRiX2JoKSkge1xuK1x0XHRwcl9lcnIoXCJwcmltYXJ5IE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXG5cIik7XG4rXHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuK1x0XHRyZXR1cm4gLUVJTztcbitcdH1cbiBcbiBcdGxvY2tfYnVmZmVyKEhGU19TQihzYiktXHUwMDNlbWRiX2JoKTtcbiBcdGlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSEZTX0ZMR19NREJfRElSVFksIFx1MDAyNkhGU19TQihzYiktXHUwMDNlZmxhZ3MpKSB7XG5AQCAtMzE0LDYgKzMyMywxMyBAQCB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gXHQgKiBmaWxlcyBncm93LiAqL1xuIFx0aWYgKHRlc3RfYW5kX2NsZWFyX2JpdChIRlNfRkxHX0FMVF9NREJfRElSVFksIFx1MDAyNkhGU19TQihzYiktXHUwMDNlZmxhZ3MpIFx1MDAyNlx1MDAyNlxuIFx0ICAgIEhGU19TQihzYiktXHUwMDNlYWx0X21kYikge1xuK1x0XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZWFsdF9tZGJfYmgpKSB7XG4rXHRcdFx0cHJfZXJyKFwiYWx0ZXJuYXRlIE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXG5cIik7XG4rXHRcdFx0c2ItXHUwMDNlc19mbGFncyB8PSBTQl9SRE9OTFk7XG4rXHRcdFx0cmV0ID0gLUVJTztcbitcdFx0XHRnb3RvIG91dDtcbitcdFx0fVxuK1xuIFx0XHRoZnNfaW5vZGVfd3JpdGVfZm9yayhIRlNfU0Ioc2IpLVx1MDAzZWV4dF90cmVlLVx1MDAzZWlub2RlLCBtZGItXHUwMDNlZHJYVEV4dFJlYyxcbiBcdFx0XHRcdCAgICAgXHUwMDI2bWRiLVx1MDAzZWRyWFRGbFNpemUsIE5VTEwpO1xuIFx0XHRoZnNfaW5vZGVfd3JpdGVfZm9yayhIRlNfU0Ioc2IpLVx1MDAzZWNhdF90cmVlLVx1MDAzZWlub2RlLCBtZGItXHUwMDNlZHJDVEV4dFJlYyxcbkBAIC0zNjAsNyArMzc2LDkgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0XHRcdHNpemUgLT0gbGVuO1xuIFx0XHR9XG4gXHR9XG4rb3V0OlxuIFx0dW5sb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCk7XG4rXHRyZXR1cm4gcmV0O1xuIH1cbiBcbiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbkBAIC0zNjgsNiArMzg2LDEwIEBAIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0LyogdXBkYXRlIHZvbHVtZSBhdHRyaWJ1dGVzICovXG4gXHRpZiAoc2JfcmRvbmx5KHNiKSlcbiBcdFx0cmV0dXJuO1xuK1xuK1x0aWYgKCFidWZmZXJfdXB0b2RhdGUoSEZTX1NCKHNiKS1cdTAwM2VtZGJfYmgpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRIRlNfU0Ioc2IpLVx1MDAzZW1kYi1cdTAwM2VkckF0cmIgfD0gY3B1X3RvX2JlMTYoSEZTX1NCX0FUVFJJQl9VTk1OVCk7XG4gXHRIRlNfU0Ioc2IpLVx1MDAzZW1kYi1cdTAwM2VkckF0cmIgXHUwMDI2PSBjcHVfdG9fYmUxNih+SEZTX1NCX0FUVFJJQl9JTkNOU1ROVCk7XG4gXHRtYXJrX2J1ZmZlcl9kaXJ0eShIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCk7XG5kaWZmIC0tZ2l0IGEvZnMvaGZzL3N1cGVyLmMgYi9mcy9oZnMvc3VwZXIuY1xuaW5kZXggYTQ2NmM0MDFmNmJiMjYuLjY3ZWNhNmY4MDc0NjkzIDEwMDY0NFxuLS0tIGEvZnMvaGZzL3N1cGVyLmNcbisrKyBiL2ZzL2hmcy9zdXBlci5jXG5AQCAtMzUsOCArMzUsNyBAQCBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbiBzdGF0aWMgaW50IGhmc19zeW5jX2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0KVxuIHtcbiBcdGlzX2hmc19jbmlkX2NvdW50c192YWxpZChzYik7XG4tXHRoZnNfbWRiX2NvbW1pdChzYik7XG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7XG4gfVxuIFxuIC8qXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyMS4xOTMwOTMyMTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTg0MjExOTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSEZTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgSEZTIGZpbGVzeXN0ZW0gY29kZSwgc3BlY2lmaWNhbGx5IGBoZnNfbWRiX2NvbW1pdGAgaW4gYGZzL2hmcy9tZGIuY2AgYW5kIGBoZnNfc3luY19mc2AgaW4gYGZzL2hmcy9zdXBlci5jYC4gVGhlIGNvcmUgb2YgaXQgaW52b2x2ZXMgYSBzaWduaWZpY2FudCBjaGFuZ2U6IHRoZXkncmUgbWFraW5nIGBoZnNfbWRiX2NvbW1pdGAgcmV0dXJuIGFuIGludGVnZXIgbm93LCBpbnN0ZWFkIG9mIGp1c3QgYHZvaWRgLiBUaGF0IGltbWVkaWF0ZWx5IGdyYWJzIG15IGF0dGVudGlvbiDigJMgaXQgc2lnbmFscyBhIHNoaWZ0IHRvd2FyZHMgbW9yZSByb2J1c3QgZXJyb3IgcmVwb3J0aW5nIHdpdGhpbiB0aGUgTURCIGNvbW1pdCBwcm9jZXNzLlxuXG5Fc3NlbnRpYWxseSwgdGhlIHBhdGNoIGlzIGFkZGluZyBlcnJvciBoYW5kbGluZyBhcm91bmQgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGFuZCBhbHRlcm5hdGUgTURCIGJ1ZmZlcnMuIFRoZSBjb2RlIHdpbGwgbm93IGNoZWNrIGlmIHRoZXNlIGJ1ZmZlcnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGNvbW1pdHRpbmcuIElmIHRoZXJlJ3MgYSBkaXNjcmVwYW5jeSBvciBhbiBpc3N1ZSB3aXRoIHRoZSBidWZmZXIgc3RhdGVzLCB0aGUgcGF0Y2ggaXMgZGVzaWduZWQgdG8gc2V0IHRoZSBmaWxlc3lzdGVtIHN1cGVyYmxvY2sgdG8gcmVhZC1vbmx5IGFuZCByZXR1cm5zIGAtRUlPYCwgd2hpY2ggbWFrZXMgdG90YWwgc2Vuc2Ug4oCTIGl0J3MgYSBjcml0aWNhbCBzYWZldHkgbWVhc3VyZSB0byBwcmV2ZW50IGRhdGEgY29ycnVwdGlvbi4gU28sIGl0IGFwcGVhcnMgdGhpcyBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgZGF0YSBpbnRlZ3JpdHkgaXNzdWUgaW4gdGhlIEhGUyBpbXBsZW1lbnRhdGlvbi5cblxuSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggaXMgdGFyZ2V0aW5nIGltcHJvdmVkIGVycm9yIGhhbmRsaW5nIGFuZCBkYXRhIGNvbnNpc3RlbmN5LiBJJ20gZ29pbmcgdG8gd2FudCB0byB2ZXJpZnkgdGhlIGltcGxpY2F0aW9ucyBhbmQgY29uc2lkZXIgdGhlIGltcGFjdCBvbiBhbnkgb2YgbXkgdXNlIGNhc2VzLiBOZXh0LCBJIHNob3VsZCB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBIRlMgdG8gc2VlIGlmIGFueSBhcmUgaW1wYWN0ZWQgYnkgdGhpcyBjaGFuZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwOTAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyNS4zNzczMDc1NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTk4MjgyNzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEhGU19GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9oZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9oZnMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmZzL2hmcy9LY29uZmlnOjI6Y29uZmlnIEhGU19GU1xcbmZzL2hmcy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkFwcGxlIE1hY2ludG9zaCBmaWxlIHN5c3RlbSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyNS44NzcxNDIyMTNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzk3MTcyNjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIFBvdGVudGlhbCBIRlMgRmlsZSBTeXN0ZW0gVnVsbmVyYWJpbGl0aWVzKipcblxuTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgYEhGU19GU2AgY29uZmlndXJhdGlvbiBvcHRpb24g4oCTIHRoYXQncyB0aGUga2V5LiBOb3csIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gSEZTIGZpbGUgc3lzdGVtIGludGVyYWN0aW9ucy4gVGhlIGxpa2VseSBzdXNwZWN0cyBhcmUgYGhmc19tZGJfY29tbWl0YCwgYGhmc19zeW5jX2ZzYCwgYW5kIGBoZnNfbWRiX2Nsb3NlYC4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBhcmVhcyB0byBzY3J1dGluaXplIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBUaW1lIHRvIGNoZWNrIHRoZSBjYWxsIHN0cnVjdHVyZS5cblxuSXQgbG9va3MgbGlrZSBgaGZzX21kYl9jb21taXRgIGlzIGNhbGxlZCBieSBgaGZzX3N5bmNfZnNgLCBzbyBhbnkgaXNzdWVzIHRoZXJlIHdvdWxkIHByb3BhZ2F0ZS4gQW5kIGBoZnNfbWRiX2Nsb3NlYCBpcyBwYXJ0IG9mIGBoZnNfcHV0X3N1cGVyYCwgc28gdGhhdCBtYWtlcyBzZW5zZSwgdG9vLiBLbm93aW5nIHRoZSBjYWxsIHJlbGF0aW9uc2hpcHMgaXMgY3J1Y2lhbCBmb3IgYSBmdWxsIGF1ZGl0IGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIGFueSB3ZWFrbmVzc2VzIEkgbWlnaHQgZmluZC4gSSdsbCBtYWtlIHN1cmUgdG8gbm90ZSBhbGwgcG9zc2libGUgY2FsbCBjaGFpbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBnZXQgYSBnb29kIHBpY3R1cmUgb2YgdGhlIGZpbGUgc3lzdGVtJ3MgYmVoYXZpb3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2MjIsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6NTE6MjkuMjc0MzE2NDQ1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzkxNTIwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoZnNfbWRiX2NvbW1pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9oZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2hmcy9oZnNfZnMuaD0yMDM9ZXh0ZXJuIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcXG5mcy9oZnMvaGZzX2ZzLmg6MjA0OmV4dGVybiBpbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuZnMvaGZzL2hmc19mcy5oLTIwNS1leHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbi0tXFxuZnMvaGZzL21kYi5jPTk0PWludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbi0tXFxuZnMvaGZzL21kYi5jLTI2My0vKlxcbmZzL2hmcy9tZGIuYzoyNjQ6ICogaGZzX21kYl9jb21taXQoKVxcbmZzL2hmcy9tZGIuYy0yNjUtICpcXG4tLVxcbmZzL2hmcy9tZGIuYy0yODgtICovXFxuZnMvaGZzL21kYi5jOjI4OTppbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9oZnMvbWRiLmMtMjkwLXtcXG4tLVxcbmZzL2hmcy9zdXBlci5jPTM1PXN0YXRpYyBpbnQgaGZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpXFxuLS1cXG5mcy9oZnMvc3VwZXIuYy0zNy1cXHRpc19oZnNfY25pZF9jb3VudHNfdmFsaWQoc2IpO1xcbmZzL2hmcy9zdXBlci5jOjM4OlxcdHJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7XFxuZnMvaGZzL3N1cGVyLmMtMzktfVxcbi0tXFxuZnMvaGZzL3N1cGVyLmM9NTY9c3RhdGljIHZvaWQgZmx1c2hfbWRiKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmZzL2hmcy9zdXBlci5jLTY5LVxcbmZzL2hmcy9zdXBlci5jOjcwOlxcdGhmc19tZGJfY29tbWl0KHNiKTtcXG5mcy9oZnMvc3VwZXIuYy03MS19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjUxOjI5LjM3ODIzNzgwN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDg2MjE0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgY29kZSwgcHJlc2VudGVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgYW4gZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIERhdGEgTG9zcyBTY2VuYXJpb3MqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhlIE1ldGFkYXRhIERhdGFiYXNlIChNREIpIGlzIGhhbmRsZWQgaW4gdGhpcyBIRlMrIGltcGxlbWVudGF0aW9uLiBJIHNlZSB0aGF0IGBmbHVzaF9tZGJgIGludGVybmFsbHkgY2FsbHMgYGhmc19tZGJfY29tbWl0YC4gVGhhdCdzIGV4cGVjdGVkLCBhcyB3ZSBuZWVkIHRvIGVuc3VyZSB0aGUgY2hhbmdlcyBhcmUgd3JpdHRlbi4gQWxzbywgYGhmc19zeW5jX2ZzYCAqYWxzbyogY2FsbHMgYGhmc19tZGJfY29tbWl0YC4gVGhpcyBzdWdnZXN0cyBhIGNydWNpYWwgcG9pbnQgb2YgZGF0YSBzeW5jaHJvbml6YXRpb24gcmVsYXRlZCB0byB0aGUgZmlsZXN5c3RlbSBmbHVzaCBvcGVyYXRpb24sIHdoaWNoIGlzIGEga2V5IHByb2Nlc3MgZm9yIGVuc3VyaW5nIHRoZSBjb25zaXN0ZW5jeSBvZiBkYXRhLiBOb3csIHRvIGRlZXBlbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGFsbCBmdW5jdGlvbnMsIEkgbmVlZCB0byBjaGVjayBob3cgYGhmc19tZGJfY2xvc2VgIGludGVyYWN0cyB3aXRoIGJvdGggb2YgdGhvc2UgY2FsbHMuIEtub3dpbmcgaG93IHRoZSBNREIgZ2V0cyBjbG9zZWQgd2lsbCBpbGx1bWluYXRlIHdoZXRoZXIgYW55IGNvbW1pdHMgY291bGQgYmUgbG9zdCBpbiBzcGVjaWZpYyBzY2VuYXJpb3MuIFRoaXMgaXMgYSBjcml0aWNhbCBhcmVhIGZvciBpZGVudGlmeWluZyBwb3RlbnRpYWwgZGF0YSBsb3NzIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQwNSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjUxOjMyLjU4Njg2MDcxMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NDUwNDQwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoZnNfbWRiX2Nsb3NlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvaGZzL2hmc19mcy5oPTIwND1leHRlcm4gaW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbmZzL2hmcy9oZnNfZnMuaDoyMDU6ZXh0ZXJuIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcXG5mcy9oZnMvaGZzX2ZzLmgtMjA2LWV4dGVybiB2b2lkIGhmc19tZGJfcHV0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbi0tXFxuZnMvaGZzL21kYi5jPTI4OT1pbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2hmcy9tZGIuYy0zODMtXFxuZnMvaGZzL21kYi5jOjM4NDp2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9oZnMvbWRiLmMtMzg1LXtcXG4tLVxcbmZzL2hmcy9zdXBlci5jPTQ4PXN0YXRpYyB2b2lkIGhmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2hmcy9zdXBlci5jLTUwLVxcdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcXHUwMDI2SEZTX1NCKHNiKS1cXHUwMDNlbWRiX3dvcmspO1xcbmZzL2hmcy9zdXBlci5jOjUxOlxcdGhmc19tZGJfY2xvc2Uoc2IpO1xcbmZzL2hmcy9zdXBlci5jLTUyLVxcdC8qIHJlbGVhc2UgdGhlIE1EQidzIHJlc291cmNlcyAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MTozMi42ODEzNzAzNzRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzM2MzYzNjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSEZTIEZpbGVzeXN0ZW0gUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHBhdGNoIGFkZHJlc3NpbmcgcG90ZW50aWFsIHdyaXRlIGVycm9ycyB3aXRoaW4gdGhlIEhGUyBmaWxlc3lzdGVtLiBUaGUgZnVuY3Rpb25zIGhpZ2hsaWdodGVkIOKAkyBgaGZzX21kYl9jb21taXRgLCBgaGZzX3N5bmNfZnNgLCBhbmQgYGhmc19tZGJfY2xvc2VgIOKAkyBhcmUga2V5IGhlcmUsIGVzcGVjaWFsbHkgY29uc2lkZXJpbmcgdGhlIGNvbnRleHQuIFdlIGNhbiBwcm9iYWJseSBzZXQgYXNpZGUgYGZsdXNoX21kYmAgYW5kIGBoZnNfcHV0X3N1cGVyYCBmb3IgdGhlIHRpbWUgYmVpbmcuXG5cblRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgaW1wcm92ZWQgZXJyb3IgaGFuZGxpbmcgcmVsYXRlZCB0byB0aGUgTURCIChNYXN0ZXIgRGlyZWN0b3J5IEJsb2NrKSBidWZmZXIuIFRoaXMgcGF0Y2ggYWNjb3VudHMgZm9yIHNjZW5hcmlvcyB3aGVyZSB0aGUgTURCIGJ1ZmZlciBpc27igJl0IHVwLXRvLWRhdGUsIHBvdGVudGlhbGx5IGR1ZSB0byBhIHByaW9yIHdyaXRlIGVycm9yLiBUaGlzIG1ha2VzIHRoZSBmaWxlc3lzdGVtIHNldCByZWFkLW9ubHkgYW5kIHJldHVybiBgLUVJT2AuIFRoZSBmYWN0IHRoYXQgaXQgbW9kaWZpZXMgdGhlIHByaW1hcnkgYW5kIGFsdGVybmF0ZSBNREIgYnVmZmVycyBzdWdnZXN0cyB0aGF0IHRoaXMgaXMgYSBjcml0aWNhbCBhc3BlY3Qgb2YgZmlsZXN5c3RlbSBpbnRlZ3JpdHkuXG5cbkdpdmVuIHRoYXQgaXQgY2hhbmdlcyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbSwgYW5kIGRlYWxzIHdpdGggcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBzY2VuYXJpb3MsIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy5cblxuTXkgY29uY2x1c2lvbiBpczpcblxuKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKipcbiogICAqKkVuYWJsZUNvbmZpZ3M6IFtcIkhGU1xcX0ZTXCJdKiogKE9idmlvdXNseSwgd2UgbmVlZCB0byBlbmFibGUgSEZTIGZpbGVzeXN0ZW0gc3VwcG9ydClcbiogICAqKkZvY3VzU3ltYm9sczogW1wiaGZzXFxfbWRiXFxfY29tbWl0XCIsIFwiaGZzXFxfc3luY1xcX2ZzXCIsIFwiaGZzXFxfbWRiXFxfY2xvc2VcIiwgXCJmbHVzaFxcX21kYlwiXSoqIChUaGVzZSBmdW5jdGlvbnMgYXJlIGVzc2VudGlhbCB0YXJnZXRzIGZvciB0ZXN0aW5nIHRoaXMgbmV3IGVycm9yIGhhbmRsaW5nKVxuKiAgICoqUmVhc29uaW5nOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uXCIqKlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk0LCJPdXRwdXRUb2tlbnMiOjEyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MTozOC4wMTc3MzYyM1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Mjg2ODk4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSEZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaGZzX21kYl9jb21taXRcIixcbiAgICBcImhmc19zeW5jX2ZzXCIsXG4gICAgXCJoZnNfbWRiX2Nsb3NlXCIsXG4gICAgXCJmbHVzaF9tZGJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSEZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaGZzX21kYl9jb21taXRcIixcbiAgICBcImhmc19zeW5jX2ZzXCIsXG4gICAgXCJoZnNfbWRiX2Nsb3NlXCIsXG4gICAgXCJmbHVzaF9tZGJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowkc5h5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-10 20:33:22 +0000 UTC FinishedAt: 2026-07-10 20:51:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "HFS_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "HFS_FS" ], "series_id": "bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "hfs_mdb_commit", "hfs_sync_fs", "hfs_mdb_close", "flush_mdb" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0hGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2hmc19tZGJfY29tbWl0JiMzNDssCiAgICAmIzM0O2hmc19zeW5jX2ZzJiMzNDssCiAgICAmIzM0O2hmc19tZGJfY2xvc2UmIzM0OywKICAgICYjMzQ7Zmx1c2hfbWRiJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgZm9yIHdoZW4gdGhlIHByaW1hcnkgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm90IHVwLXRvLWRhdGUgaW4gdGhlIEhGUyBmaWxlc3lzdGVtLCBzZXR0aW5nIHRoZSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJuaW5nIC1FSU8uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ2ZmY1MTQ3NTIzNzlmODNkYTRkZGU2M2E3NjIxMGNmZTRjYWFlOGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxMCAyMDo1MToxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9oZnMvaGZzX2ZzLmggYi9mcy9oZnMvaGZzX2ZzLmhcbmluZGV4IGYzNjI0NTE0ZmNiMDMwLi44ZTlhMTY3M2ExNDI0NyAxMDA2NDRcbi0tLSBhL2ZzL2hmcy9oZnNfZnMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaGZzL2hmc19mcy5oXG5AQCAtMjAxLDcgJiM0MzsyMDEsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKiBjb25zdCBoZnNfeGF0dHJfaGFuZGxlcnNbXTtcbiAvKiBtZGIuYyAqL1xuIGV4dGVybiBib29sIGlzX2hmc19jbmlkX2NvdW50c192YWxpZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbiBleHRlcm4gaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuLWV4dGVybiB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuJiM0MztleHRlcm4gaW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIGV4dGVybiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4gZXh0ZXJuIHZvaWQgaGZzX21kYl9wdXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4gXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL21kYi5jIGIvZnMvaGZzL21kYi5jXG5pbmRleCBhOTdjZWEzNWNhMmUxMi4uZjQ1NzhmNjM0MzAyZjcgMTAwNjQ0XG4tLS0gYS9mcy9oZnMvbWRiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9tZGIuY1xuQEAgLTI3NCw3ICYjNDM7Mjc0LDkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gICogT3V0cHV0IFZhcmlhYmxlKHMpOlxuICAqICAgTk9ORVxuICAqIFJldHVybnM6XG4tICogICB2b2lkXG4mIzQzOyAqICAgMCBvbiBzdWNjZXNzLCAtRUlPIGlmIHRoZSBNREIgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm8gbG9uZ2VyXG4mIzQzOyAqICAgdmFsaWQgKGUuZy4gYWZ0ZXIgYSBwcmlvciB3cml0ZSBlcnJvciksIGluIHdoaWNoIGNhc2UgdGhlIHZvbHVtZSBpc1xuJiM0MzsgKiAgIHJlbW91bnRlZCByZWFkLW9ubHkuXG4gICogUHJlY29uZGl0aW9uczpcbiAgKiAgICYjMzk7bWRiJiMzOTsgcG9pbnRzIHRvIGEgXCYjMzQ7dmFsaWRcJiMzNDsgKHN0cnVjdCBoZnNfbWRiKS5cbiAgKiBQb3N0Y29uZGl0aW9uczpcbkBAIC0yODQsMTIgJiM0MzsyODYsMTkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gICogICBJZiAmIzM5O2JhY2t1cCYjMzk7IGlzIG5vbi16ZXJvIHRoZW4gdGhlIGFsdGVybmF0ZSBNREIgaXMgYWxzbyB3cml0dGVuXG4gICogICBhbmQgdGhlIGZ1bmN0aW9uIGRvZXNuJiMzOTt0IHJldHVybiB1bnRpbCBpdCBpcyBhY3R1YWxseSBvbiBkaXNrLlxuICAqL1xuLXZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiYjNDM7aW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuIFx0c3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktXHUwMDNlbWRiO1xuJiM0MztcdGludCByZXQgPSAwO1xuIFxuIFx0aWYgKHNiX3Jkb25seShzYikpXG4tXHRcdHJldHVybjtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCkpIHtcbiYjNDM7XHRcdHByX2VycihcJiMzNDtwcmltYXJ5IE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXG5cJiMzNDspO1xuJiM0MztcdFx0c2ItXHUwMDNlc19mbGFncyB8PSBTQl9SRE9OTFk7XG4mIzQzO1x0XHRyZXR1cm4gLUVJTztcbiYjNDM7XHR9XG4gXG4gXHRsb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCk7XG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfTURCX0RJUlRZLCBcdTAwMjZIRlNfU0Ioc2IpLVx1MDAzZWZsYWdzKSkge1xuQEAgLTMxNCw2ICYjNDM7MzIzLDEzIEBAIHZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiBcdCAqIGZpbGVzIGdyb3cuICovXG4gXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfQUxUX01EQl9ESVJUWSwgXHUwMDI2SEZTX1NCKHNiKS1cdTAwM2VmbGFncykgXHUwMDI2XHUwMDI2XG4gXHQgICAgSEZTX1NCKHNiKS1cdTAwM2VhbHRfbWRiKSB7XG4mIzQzO1x0XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZWFsdF9tZGJfYmgpKSB7XG4mIzQzO1x0XHRcdHByX2VycihcJiMzNDthbHRlcm5hdGUgTURCIGlzIGNvcnJ1cHQsIG1vdW50aW5nIHJlYWQtb25seVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuJiM0MztcdFx0XHRyZXQgPSAtRUlPO1xuJiM0MztcdFx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdGhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktXHUwMDNlZXh0X3RyZWUtXHUwMDNlaW5vZGUsIG1kYi1cdTAwM2VkclhURXh0UmVjLFxuIFx0XHRcdFx0ICAgICBcdTAwMjZtZGItXHUwMDNlZHJYVEZsU2l6ZSwgTlVMTCk7XG4gXHRcdGhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktXHUwMDNlY2F0X3RyZWUtXHUwMDNlaW5vZGUsIG1kYi1cdTAwM2VkckNURXh0UmVjLFxuQEAgLTM2MCw3ICYjNDM7Mzc2LDkgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0XHRcdHNpemUgLT0gbGVuO1xuIFx0XHR9XG4gXHR9XG4mIzQzO291dDpcbiBcdHVubG9ja19idWZmZXIoSEZTX1NCKHNiKS1cdTAwM2VtZGJfYmgpO1xuJiM0MztcdHJldHVybiByZXQ7XG4gfVxuIFxuIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuQEAgLTM2OCw2ICYjNDM7Mzg2LDEwIEBAIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0LyogdXBkYXRlIHZvbHVtZSBhdHRyaWJ1dGVzICovXG4gXHRpZiAoc2JfcmRvbmx5KHNiKSlcbiBcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0SEZTX1NCKHNiKS1cdTAwM2VtZGItXHUwMDNlZHJBdHJiIHw9IGNwdV90b19iZTE2KEhGU19TQl9BVFRSSUJfVU5NTlQpO1xuIFx0SEZTX1NCKHNiKS1cdTAwM2VtZGItXHUwMDNlZHJBdHJiIFx1MDAyNj0gY3B1X3RvX2JlMTYofkhGU19TQl9BVFRSSUJfSU5DTlNUTlQpO1xuIFx0bWFya19idWZmZXJfZGlydHkoSEZTX1NCKHNiKS1cdTAwM2VtZGJfYmgpO1xuZGlmZiAtLWdpdCBhL2ZzL2hmcy9zdXBlci5jIGIvZnMvaGZzL3N1cGVyLmNcbmluZGV4IGE0NjZjNDAxZjZiYjI2Li42N2VjYTZmODA3NDY5MyAxMDA2NDRcbi0tLSBhL2ZzL2hmcy9zdXBlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9oZnMvc3VwZXIuY1xuQEAgLTM1LDggJiM0MzszNSw3IEBAIE1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4gc3RhdGljIGludCBoZnNfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcbiB7XG4gXHRpc19oZnNfY25pZF9jb3VudHNfdmFsaWQoc2IpO1xuLVx0aGZzX21kYl9jb21taXQoc2IpO1xuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIGhmc19tZGJfY29tbWl0KHNiKTtcbiB9XG4gXG4gLypcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtIRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtoZnNfbWRiX2NvbW1pdCYjMzQ7LAogICAgJiMzNDtoZnNfc3luY19mcyYjMzQ7LAogICAgJiMzNDtoZnNfbWRiX2Nsb3NlJiMzNDssCiAgICAmIzM0O2ZsdXNoX21kYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ2ZmY1MTQ3NTIzNzlmODNkYTRkZGU2M2E3NjIxMGNmZTRjYWFlOGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxMCAyMDo1MToxOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2hmcy9oZnNfZnMuaCBiL2ZzL2hmcy9oZnNfZnMuaAppbmRleCBmMzYyNDUxNGZjYjAzMC4uOGU5YTE2NzNhMTQyNDcgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9oZnNfZnMuaAomIzQzOyYjNDM7JiM0MzsgYi9mcy9oZnMvaGZzX2ZzLmgKQEAgLTIwMSw3ICYjNDM7MjAxLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICogY29uc3QgaGZzX3hhdHRyX2hhbmRsZXJzW107CiAvKiBtZGIuYyAqLwogZXh0ZXJuIGJvb2wgaXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogZXh0ZXJuIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKLWV4dGVybiB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwomIzQzO2V4dGVybiBpbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiBleHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogZXh0ZXJuIHZvaWQgaGZzX21kYl9wdXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAKZGlmZiAtLWdpdCBhL2ZzL2hmcy9tZGIuYyBiL2ZzL2hmcy9tZGIuYwppbmRleCBhOTdjZWEzNWNhMmUxMi4uZjQ1NzhmNjM0MzAyZjcgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9tZGIuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9oZnMvbWRiLmMKQEAgLTI3NCw3ICYjNDM7Mjc0LDkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAgKiBPdXRwdXQgVmFyaWFibGUocyk6CiAgKiAgIE5PTkUKICAqIFJldHVybnM6Ci0gKiAgIHZvaWQKJiM0MzsgKiAgIDAgb24gc3VjY2VzcywgLUVJTyBpZiB0aGUgTURCIG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vIGxvbmdlcgomIzQzOyAqICAgdmFsaWQgKGUuZy4gYWZ0ZXIgYSBwcmlvciB3cml0ZSBlcnJvciksIGluIHdoaWNoIGNhc2UgdGhlIHZvbHVtZSBpcwomIzQzOyAqICAgcmVtb3VudGVkIHJlYWQtb25seS4KICAqIFByZWNvbmRpdGlvbnM6CiAgKiAgICYjMzk7bWRiJiMzOTsgcG9pbnRzIHRvIGEgJiMzNDt2YWxpZCYjMzQ7IChzdHJ1Y3QgaGZzX21kYikuCiAgKiBQb3N0Y29uZGl0aW9uczoKQEAgLTI4NCwxMiAmIzQzOzI4NiwxOSBAQCBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKICAqICAgSWYgJiMzOTtiYWNrdXAmIzM5OyBpcyBub24temVybyB0aGVuIHRoZSBhbHRlcm5hdGUgTURCIGlzIGFsc28gd3JpdHRlbgogICogICBhbmQgdGhlIGZ1bmN0aW9uIGRvZXNuJiMzOTt0IHJldHVybiB1bnRpbCBpdCBpcyBhY3R1YWxseSBvbiBkaXNrLgogICovCi12b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiYjNDM7aW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJc3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktJmd0O21kYjsKJiM0MzsJaW50IHJldCA9IDA7CiAKIAlpZiAoc2JfcmRvbmx5KHNiKSkKLQkJcmV0dXJuOwomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiYjNDM7CWlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktJmd0O21kYl9iaCkpIHsKJiM0MzsJCXByX2VycigmIzM0O3ByaW1hcnkgTURCIGlzIGNvcnJ1cHQsIG1vdW50aW5nIHJlYWQtb25seVxuJiMzNDspOwomIzQzOwkJc2ItJmd0O3NfZmxhZ3MgfD0gU0JfUkRPTkxZOwomIzQzOwkJcmV0dXJuIC1FSU87CiYjNDM7CX0KIAogCWxvY2tfYnVmZmVyKEhGU19TQihzYiktJmd0O21kYl9iaCk7CiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChIRlNfRkxHX01EQl9ESVJUWSwgJmFtcDtIRlNfU0Ioc2IpLSZndDtmbGFncykpIHsKQEAgLTMxNCw2ICYjNDM7MzIzLDEzIEBAIHZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAkgKiBmaWxlcyBncm93LiAqLwogCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSEZTX0ZMR19BTFRfTURCX0RJUlRZLCAmYW1wO0hGU19TQihzYiktJmd0O2ZsYWdzKSAmYW1wOyZhbXA7CiAJICAgIEhGU19TQihzYiktJmd0O2FsdF9tZGIpIHsKJiM0MzsJCWlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktJmd0O2FsdF9tZGJfYmgpKSB7CiYjNDM7CQkJcHJfZXJyKCYjMzQ7YWx0ZXJuYXRlIE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcbiYjMzQ7KTsKJiM0MzsJCQlzYi0mZ3Q7c19mbGFncyB8PSBTQl9SRE9OTFk7CiYjNDM7CQkJcmV0ID0gLUVJTzsKJiM0MzsJCQlnb3RvIG91dDsKJiM0MzsJCX0KJiM0MzsKIAkJaGZzX2lub2RlX3dyaXRlX2ZvcmsoSEZTX1NCKHNiKS0mZ3Q7ZXh0X3RyZWUtJmd0O2lub2RlLCBtZGItJmd0O2RyWFRFeHRSZWMsCiAJCQkJICAgICAmYW1wO21kYi0mZ3Q7ZHJYVEZsU2l6ZSwgTlVMTCk7CiAJCWhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktJmd0O2NhdF90cmVlLSZndDtpbm9kZSwgbWRiLSZndDtkckNURXh0UmVjLApAQCAtMzYwLDcgJiM0MzszNzYsOSBAQCB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJCQlzaXplIC09IGxlbjsKIAkJfQogCX0KJiM0MztvdXQ6CiAJdW5sb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLSZndDttZGJfYmgpOwomIzQzOwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTM2OCw2ICYjNDM7Mzg2LDEwIEBAIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCS8qIHVwZGF0ZSB2b2x1bWUgYXR0cmlidXRlcyAqLwogCWlmIChzYl9yZG9ubHkoc2IpKQogCQlyZXR1cm47CiYjNDM7CiYjNDM7CWlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktJmd0O21kYl9iaCkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJSEZTX1NCKHNiKS0mZ3Q7bWRiLSZndDtkckF0cmIgfD0gY3B1X3RvX2JlMTYoSEZTX1NCX0FUVFJJQl9VTk1OVCk7CiAJSEZTX1NCKHNiKS0mZ3Q7bWRiLSZndDtkckF0cmIgJmFtcDs9IGNwdV90b19iZTE2KH5IRlNfU0JfQVRUUklCX0lOQ05TVE5UKTsKIAltYXJrX2J1ZmZlcl9kaXJ0eShIRlNfU0Ioc2IpLSZndDttZGJfYmgpOwpkaWZmIC0tZ2l0IGEvZnMvaGZzL3N1cGVyLmMgYi9mcy9oZnMvc3VwZXIuYwppbmRleCBhNDY2YzQwMWY2YmIyNi4uNjdlY2E2ZjgwNzQ2OTMgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9zdXBlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9zdXBlci5jCkBAIC0zNSw4ICYjNDM7MzUsNyBAQCBNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKIHN0YXRpYyBpbnQgaGZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpCiB7CiAJaXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHNiKTsKLQloZnNfbWRiX2NvbW1pdChzYik7Ci0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7CiB9CiAKIC8qCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTAKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBIRlMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIEhGUyBmaWxlc3lzdGVtIGNvZGUsIHNwZWNpZmljYWxseSBgaGZzX21kYl9jb21taXRgIGluIGBmcy9oZnMvbWRiLmNgIGFuZCBgaGZzX3N5bmNfZnNgIGluIGBmcy9oZnMvc3VwZXIuY2AuIFRoZSBjb3JlIG9mIGl0IGludm9sdmVzIGEgc2lnbmlmaWNhbnQgY2hhbmdlOiB0aGV5JiMzOTtyZSBtYWtpbmcgYGhmc19tZGJfY29tbWl0YCByZXR1cm4gYW4gaW50ZWdlciBub3csIGluc3RlYWQgb2YganVzdCBgdm9pZGAuIFRoYXQgaW1tZWRpYXRlbHkgZ3JhYnMgbXkgYXR0ZW50aW9uIOKAkyBpdCBzaWduYWxzIGEgc2hpZnQgdG93YXJkcyBtb3JlIHJvYnVzdCBlcnJvciByZXBvcnRpbmcgd2l0aGluIHRoZSBNREIgY29tbWl0IHByb2Nlc3MuCgpFc3NlbnRpYWxseSwgdGhlIHBhdGNoIGlzIGFkZGluZyBlcnJvciBoYW5kbGluZyBhcm91bmQgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGFuZCBhbHRlcm5hdGUgTURCIGJ1ZmZlcnMuIFRoZSBjb2RlIHdpbGwgbm93IGNoZWNrIGlmIHRoZXNlIGJ1ZmZlcnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGNvbW1pdHRpbmcuIElmIHRoZXJlJiMzOTtzIGEgZGlzY3JlcGFuY3kgb3IgYW4gaXNzdWUgd2l0aCB0aGUgYnVmZmVyIHN0YXRlcywgdGhlIHBhdGNoIGlzIGRlc2lnbmVkIHRvIHNldCB0aGUgZmlsZXN5c3RlbSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJucyBgLUVJT2AsIHdoaWNoIG1ha2VzIHRvdGFsIHNlbnNlIOKAkyBpdCYjMzk7cyBhIGNyaXRpY2FsIHNhZmV0eSBtZWFzdXJlIHRvIHByZXZlbnQgZGF0YSBjb3JydXB0aW9uLiBTbywgaXQgYXBwZWFycyB0aGlzIGFkZHJlc3NlcyBhIHBvdGVudGlhbCBkYXRhIGludGVncml0eSBpc3N1ZSBpbiB0aGUgSEZTIGltcGxlbWVudGF0aW9uLgoKSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggaXMgdGFyZ2V0aW5nIGltcHJvdmVkIGVycm9yIGhhbmRsaW5nIGFuZCBkYXRhIGNvbnNpc3RlbmN5LiBJJiMzOTttIGdvaW5nIHRvIHdhbnQgdG8gdmVyaWZ5IHRoZSBpbXBsaWNhdGlvbnMgYW5kIGNvbnNpZGVyIHRoZSBpbXBhY3Qgb24gYW55IG9mIG15IHVzZSBjYXNlcy4gTmV4dCwgSSBzaG91bGQgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgSEZTIHRvIHNlZSBpZiBhbnkgYXJlIGltcGFjdGVkIGJ5IHRoaXMgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBIRlNfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9oZnMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZnMvaGZzL0tjb25maWc6Mjpjb25maWcgSEZTX0ZTXG5mcy9oZnMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXBwbGUgTWFjaW50b3NoIGZpbGUgc3lzdGVtIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjIyCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipBbmFseXppbmcgUG90ZW50aWFsIEhGUyBGaWxlIFN5c3RlbSBWdWxuZXJhYmlsaXRpZXMqKgoKTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgYEhGU19GU2AgY29uZmlndXJhdGlvbiBvcHRpb24g4oCTIHRoYXQmIzM5O3MgdGhlIGtleS4gTm93LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGNyaXRpY2FsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIEhGUyBmaWxlIHN5c3RlbSBpbnRlcmFjdGlvbnMuIFRoZSBsaWtlbHkgc3VzcGVjdHMgYXJlIGBoZnNfbWRiX2NvbW1pdGAsIGBoZnNfc3luY19mc2AsIGFuZCBgaGZzX21kYl9jbG9zZWAuIFRob3NlIHNlZW0gbGlrZSB0aGUgYXJlYXMgdG8gc2NydXRpbml6ZSBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy4gVGltZSB0byBjaGVjayB0aGUgY2FsbCBzdHJ1Y3R1cmUuCgpJdCBsb29rcyBsaWtlIGBoZnNfbWRiX2NvbW1pdGAgaXMgY2FsbGVkIGJ5IGBoZnNfc3luY19mc2AsIHNvIGFueSBpc3N1ZXMgdGhlcmUgd291bGQgcHJvcGFnYXRlLiBBbmQgYGhmc19tZGJfY2xvc2VgIGlzIHBhcnQgb2YgYGhmc19wdXRfc3VwZXJgLCBzbyB0aGF0IG1ha2VzIHNlbnNlLCB0b28uIEtub3dpbmcgdGhlIGNhbGwgcmVsYXRpb25zaGlwcyBpcyBjcnVjaWFsIGZvciBhIGZ1bGwgYXVkaXQgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIHBvdGVudGlhbCBpbXBhY3Qgb2YgYW55IHdlYWtuZXNzZXMgSSBtaWdodCBmaW5kLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gbm90ZSBhbGwgcG9zc2libGUgY2FsbCBjaGFpbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBnZXQgYSBnb29kIHBpY3R1cmUgb2YgdGhlIGZpbGUgc3lzdGVtJiMzOTtzIGJlaGF2aW9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hmc19tZGJfY29tbWl0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvaGZzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9oZnMvaGZzX2ZzLmg9MjAzPWV4dGVybiBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG5mcy9oZnMvaGZzX2ZzLmg6MjA0OmV4dGVybiBpbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG5mcy9oZnMvaGZzX2ZzLmgtMjA1LWV4dGVybiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4tLVxuZnMvaGZzL21kYi5jPTk0PWludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2hmcy9tZGIuYy0yNjMtLypcbmZzL2hmcy9tZGIuYzoyNjQ6ICogaGZzX21kYl9jb21taXQoKVxuZnMvaGZzL21kYi5jLTI2NS0gKlxuLS1cbmZzL2hmcy9tZGIuYy0yODgtICovXG5mcy9oZnMvbWRiLmM6Mjg5OmludCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuZnMvaGZzL21kYi5jLTI5MC17XG4tLVxuZnMvaGZzL3N1cGVyLmM9MzU9c3RhdGljIGludCBoZnNfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcbi0tXG5mcy9oZnMvc3VwZXIuYy0zNy1cdGlzX2hmc19jbmlkX2NvdW50c192YWxpZChzYik7XG5mcy9oZnMvc3VwZXIuYzozODpcdHJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7XG5mcy9oZnMvc3VwZXIuYy0zOS19XG4tLVxuZnMvaGZzL3N1cGVyLmM9NTY9c3RhdGljIHZvaWQgZmx1c2hfbWRiKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5mcy9oZnMvc3VwZXIuYy02OS1cbmZzL2hmcy9zdXBlci5jOjcwOlx0aGZzX21kYl9jb21taXQoc2IpO1xuZnMvaGZzL3N1cGVyLmMtNzEtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MDUKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgY29kZSwgcHJlc2VudGVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgYW4gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBEYXRhIExvc3MgU2NlbmFyaW9zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlIE1ldGFkYXRhIERhdGFiYXNlIChNREIpIGlzIGhhbmRsZWQgaW4gdGhpcyBIRlMmIzQzOyBpbXBsZW1lbnRhdGlvbi4gSSBzZWUgdGhhdCBgZmx1c2hfbWRiYCBpbnRlcm5hbGx5IGNhbGxzIGBoZnNfbWRiX2NvbW1pdGAuIFRoYXQmIzM5O3MgZXhwZWN0ZWQsIGFzIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBjaGFuZ2VzIGFyZSB3cml0dGVuLiBBbHNvLCBgaGZzX3N5bmNfZnNgICphbHNvKiBjYWxscyBgaGZzX21kYl9jb21taXRgLiBUaGlzIHN1Z2dlc3RzIGEgY3J1Y2lhbCBwb2ludCBvZiBkYXRhIHN5bmNocm9uaXphdGlvbiByZWxhdGVkIHRvIHRoZSBmaWxlc3lzdGVtIGZsdXNoIG9wZXJhdGlvbiwgd2hpY2ggaXMgYSBrZXkgcHJvY2VzcyBmb3IgZW5zdXJpbmcgdGhlIGNvbnNpc3RlbmN5IG9mIGRhdGEuIE5vdywgdG8gZGVlcGVuIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgYWxsIGZ1bmN0aW9ucywgSSBuZWVkIHRvIGNoZWNrIGhvdyBgaGZzX21kYl9jbG9zZWAgaW50ZXJhY3RzIHdpdGggYm90aCBvZiB0aG9zZSBjYWxscy4gS25vd2luZyBob3cgdGhlIE1EQiBnZXRzIGNsb3NlZCB3aWxsIGlsbHVtaW5hdGUgd2hldGhlciBhbnkgY29tbWl0cyBjb3VsZCBiZSBsb3N0IGluIHNwZWNpZmljIHNjZW5hcmlvcy4gVGhpcyBpcyBhIGNyaXRpY2FsIGFyZWEgZm9yIGlkZW50aWZ5aW5nIHBvdGVudGlhbCBkYXRhIGxvc3MgdnVsbmVyYWJpbGl0aWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hmc19tZGJfY2xvc2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9oZnNfZnMuaD0yMDQ9ZXh0ZXJuIGludCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbmZzL2hmcy9oZnNfZnMuaDoyMDU6ZXh0ZXJuIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbmZzL2hmcy9oZnNfZnMuaC0yMDYtZXh0ZXJuIHZvaWQgaGZzX21kYl9wdXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4tLVxuZnMvaGZzL21kYi5jPTI4OT1pbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9oZnMvbWRiLmMtMzgzLVxuZnMvaGZzL21kYi5jOjM4NDp2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2hmcy9tZGIuYy0zODUte1xuLS1cbmZzL2hmcy9zdXBlci5jPTQ4PXN0YXRpYyB2b2lkIGhmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9oZnMvc3VwZXIuYy01MC1cdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZIRlNfU0Ioc2IpLVx1MDAzZW1kYl93b3JrKTtcbmZzL2hmcy9zdXBlci5jOjUxOlx0aGZzX21kYl9jbG9zZShzYik7XG5mcy9oZnMvc3VwZXIuYy01Mi1cdC8qIHJlbGVhc2UgdGhlIE1EQiYjMzk7cyByZXNvdXJjZXMgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk0CgkJCQkJCQlvdXRwdXQ6IDEyMgoJCQkJCQkJdGhvdWdodHM6IDIzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEhGUyBGaWxlc3lzdGVtIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBwYXRjaCBhZGRyZXNzaW5nIHBvdGVudGlhbCB3cml0ZSBlcnJvcnMgd2l0aGluIHRoZSBIRlMgZmlsZXN5c3RlbS4gVGhlIGZ1bmN0aW9ucyBoaWdobGlnaHRlZCDigJMgYGhmc19tZGJfY29tbWl0YCwgYGhmc19zeW5jX2ZzYCwgYW5kIGBoZnNfbWRiX2Nsb3NlYCDigJMgYXJlIGtleSBoZXJlLCBlc3BlY2lhbGx5IGNvbnNpZGVyaW5nIHRoZSBjb250ZXh0LiBXZSBjYW4gcHJvYmFibHkgc2V0IGFzaWRlIGBmbHVzaF9tZGJgIGFuZCBgaGZzX3B1dF9zdXBlcmAgZm9yIHRoZSB0aW1lIGJlaW5nLgoKVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSBpbXByb3ZlZCBlcnJvciBoYW5kbGluZyByZWxhdGVkIHRvIHRoZSBNREIgKE1hc3RlciBEaXJlY3RvcnkgQmxvY2spIGJ1ZmZlci4gVGhpcyBwYXRjaCBhY2NvdW50cyBmb3Igc2NlbmFyaW9zIHdoZXJlIHRoZSBNREIgYnVmZmVyIGlzbuKAmXQgdXAtdG8tZGF0ZSwgcG90ZW50aWFsbHkgZHVlIHRvIGEgcHJpb3Igd3JpdGUgZXJyb3IuIFRoaXMgbWFrZXMgdGhlIGZpbGVzeXN0ZW0gc2V0IHJlYWQtb25seSBhbmQgcmV0dXJuIGAtRUlPYC4gVGhlIGZhY3QgdGhhdCBpdCBtb2RpZmllcyB0aGUgcHJpbWFyeSBhbmQgYWx0ZXJuYXRlIE1EQiBidWZmZXJzIHN1Z2dlc3RzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIGFzcGVjdCBvZiBmaWxlc3lzdGVtIGludGVncml0eS4KCkdpdmVuIHRoYXQgaXQgY2hhbmdlcyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbSwgYW5kIGRlYWxzIHdpdGggcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBzY2VuYXJpb3MsIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy4KCk15IGNvbmNsdXNpb24gaXM6CgoqICAgKipXb3J0aEZ1enppbmc6IHRydWUqKgoqICAgKipFbmFibGVDb25maWdzOiBbJiMzNDtIRlNcX0ZTJiMzNDtdKiogKE9idmlvdXNseSwgd2UgbmVlZCB0byBlbmFibGUgSEZTIGZpbGVzeXN0ZW0gc3VwcG9ydCkKKiAgICoqRm9jdXNTeW1ib2xzOiBbJiMzNDtoZnNcX21kYlxfY29tbWl0JiMzNDssICYjMzQ7aGZzXF9zeW5jXF9mcyYjMzQ7LCAmIzM0O2hmc1xfbWRiXF9jbG9zZSYjMzQ7LCAmIzM0O2ZsdXNoXF9tZGImIzM0O10qKiAoVGhlc2UgZnVuY3Rpb25zIGFyZSBlc3NlbnRpYWwgdGFyZ2V0cyBmb3IgdGVzdGluZyB0aGlzIG5ldyBlcnJvciBoYW5kbGluZykKKiAgICoqUmVhc29uaW5nOiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uJiMzNDsqKgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aGZzX21kYl9jb21taXQmIzM0OywKICAgICYjMzQ7aGZzX3N5bmNfZnMmIzM0OywKICAgICYjMzQ7aGZzX21kYl9jbG9zZSYjMzQ7LAogICAgJiMzNDtmbHVzaF9tZGImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBmb3Igd2hlbiB0aGUgcHJpbWFyeSBvciBhbHRlcm5hdGUgTURCIGJ1ZmZlciBpcyBub3QgdXAtdG8tZGF0ZSBpbiB0aGUgSEZTIGZpbGVzeXN0ZW0sIHNldHRpbmcgdGhlIHN1cGVyYmxvY2sgdG8gcmVhZC1vbmx5IGFuZCByZXR1cm5pbmcgLUVJTy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSBmaWxlc3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtIRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtoZnNfbWRiX2NvbW1pdCYjMzQ7LAogICAgJiMzNDtoZnNfc3luY19mcyYjMzQ7LAogICAgJiMzNDtoZnNfbWRiX2Nsb3NlJiMzNDssCiAgICAmIzM0O2ZsdXNoX21kYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyMC41OTY0NzExNDhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzU3NDE0NTkzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfbWRiX2NvbW1pdFwiLFxuICAgIFwiaGZzX3N5bmNfZnNcIixcbiAgICBcImhmc19tZGJfY2xvc2VcIixcbiAgICBcImZsdXNoX21kYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgZm9yIHdoZW4gdGhlIHByaW1hcnkgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm90IHVwLXRvLWRhdGUgaW4gdGhlIEhGUyBmaWxlc3lzdGVtLCBzZXR0aW5nIHRoZSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJuaW5nIC1FSU8uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6NTE6MjAuNTk2NDc3NDQ4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU1NzUyMDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkNmZmNTE0NzUyMzc5ZjgzZGE0ZGRlNjNhNzYyMTBjZmU0Y2FhZThjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDEwIDIwOjUxOjE4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2ZzL2hmcy9oZnNfZnMuaCBiL2ZzL2hmcy9oZnNfZnMuaFxcbmluZGV4IGYzNjI0NTE0ZmNiMDMwLi44ZTlhMTY3M2ExNDI0NyAxMDA2NDRcXG4tLS0gYS9mcy9oZnMvaGZzX2ZzLmhcXG4rKysgYi9mcy9oZnMvaGZzX2ZzLmhcXG5AQCAtMjAxLDcgKzIwMSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGhmc194YXR0cl9oYW5kbGVyc1tdO1xcbiAvKiBtZGIuYyAqL1xcbiBleHRlcm4gYm9vbCBpc19oZnNfY25pZF9jb3VudHNfdmFsaWQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuIGV4dGVybiBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuLWV4dGVybiB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbitleHRlcm4gaW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbiBleHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbiBleHRlcm4gdm9pZCBoZnNfbWRiX3B1dChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcXG4gXFxuZGlmZiAtLWdpdCBhL2ZzL2hmcy9tZGIuYyBiL2ZzL2hmcy9tZGIuY1xcbmluZGV4IGE5N2NlYTM1Y2EyZTEyLi5mNDU3OGY2MzQzMDJmNyAxMDA2NDRcXG4tLS0gYS9mcy9oZnMvbWRiLmNcXG4rKysgYi9mcy9oZnMvbWRiLmNcXG5AQCAtMjc0LDcgKzI3NCw5IEBAIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiAgKiBPdXRwdXQgVmFyaWFibGUocyk6XFxuICAqICAgTk9ORVxcbiAgKiBSZXR1cm5zOlxcbi0gKiAgIHZvaWRcXG4rICogICAwIG9uIHN1Y2Nlc3MsIC1FSU8gaWYgdGhlIE1EQiBvciBhbHRlcm5hdGUgTURCIGJ1ZmZlciBpcyBubyBsb25nZXJcXG4rICogICB2YWxpZCAoZS5nLiBhZnRlciBhIHByaW9yIHdyaXRlIGVycm9yKSwgaW4gd2hpY2ggY2FzZSB0aGUgdm9sdW1lIGlzXFxuKyAqICAgcmVtb3VudGVkIHJlYWQtb25seS5cXG4gICogUHJlY29uZGl0aW9uczpcXG4gICogICAnbWRiJyBwb2ludHMgdG8gYSBcXFwidmFsaWRcXFwiIChzdHJ1Y3QgaGZzX21kYikuXFxuICAqIFBvc3Rjb25kaXRpb25zOlxcbkBAIC0yODQsMTIgKzI4NiwxOSBAQCBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gICogICBJZiAnYmFja3VwJyBpcyBub24temVybyB0aGVuIHRoZSBhbHRlcm5hdGUgTURCIGlzIGFsc28gd3JpdHRlblxcbiAgKiAgIGFuZCB0aGUgZnVuY3Rpb24gZG9lc24ndCByZXR1cm4gdW50aWwgaXQgaXMgYWN0dWFsbHkgb24gZGlzay5cXG4gICovXFxuLXZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4raW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuIHtcXG4gXFx0c3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktXFx1MDAzZW1kYjtcXG4rXFx0aW50IHJldCA9IDA7XFxuIFxcbiBcXHRpZiAoc2JfcmRvbmx5KHNiKSlcXG4tXFx0XFx0cmV0dXJuO1xcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdGlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktXFx1MDAzZW1kYl9iaCkpIHtcXG4rXFx0XFx0cHJfZXJyKFxcXCJwcmltYXJ5IE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXFxcblxcXCIpO1xcbitcXHRcXHRzYi1cXHUwMDNlc19mbGFncyB8PSBTQl9SRE9OTFk7XFxuK1xcdFxcdHJldHVybiAtRUlPO1xcbitcXHR9XFxuIFxcbiBcXHRsb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpO1xcbiBcXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfTURCX0RJUlRZLCBcXHUwMDI2SEZTX1NCKHNiKS1cXHUwMDNlZmxhZ3MpKSB7XFxuQEAgLTMxNCw2ICszMjMsMTMgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiBcXHQgKiBmaWxlcyBncm93LiAqL1xcbiBcXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KEhGU19GTEdfQUxUX01EQl9ESVJUWSwgXFx1MDAyNkhGU19TQihzYiktXFx1MDAzZWZsYWdzKSBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgSEZTX1NCKHNiKS1cXHUwMDNlYWx0X21kYikge1xcbitcXHRcXHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVxcdTAwM2VhbHRfbWRiX2JoKSkge1xcbitcXHRcXHRcXHRwcl9lcnIoXFxcImFsdGVybmF0ZSBNREIgaXMgY29ycnVwdCwgbW91bnRpbmcgcmVhZC1vbmx5XFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0c2ItXFx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xcbitcXHRcXHRcXHRyZXQgPSAtRUlPO1xcbitcXHRcXHRcXHRnb3RvIG91dDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0aGZzX2lub2RlX3dyaXRlX2ZvcmsoSEZTX1NCKHNiKS1cXHUwMDNlZXh0X3RyZWUtXFx1MDAzZWlub2RlLCBtZGItXFx1MDAzZWRyWFRFeHRSZWMsXFxuIFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNm1kYi1cXHUwMDNlZHJYVEZsU2l6ZSwgTlVMTCk7XFxuIFxcdFxcdGhmc19pbm9kZV93cml0ZV9mb3JrKEhGU19TQihzYiktXFx1MDAzZWNhdF90cmVlLVxcdTAwM2Vpbm9kZSwgbWRiLVxcdTAwM2VkckNURXh0UmVjLFxcbkBAIC0zNjAsNyArMzc2LDkgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbiBcXHRcXHRcXHRzaXplIC09IGxlbjtcXG4gXFx0XFx0fVxcbiBcXHR9XFxuK291dDpcXG4gXFx0dW5sb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpO1xcbitcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcbiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5AQCAtMzY4LDYgKzM4NiwxMCBAQCB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gXFx0LyogdXBkYXRlIHZvbHVtZSBhdHRyaWJ1dGVzICovXFxuIFxcdGlmIChzYl9yZG9ubHkoc2IpKVxcbiBcXHRcXHRyZXR1cm47XFxuK1xcbitcXHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRIRlNfU0Ioc2IpLVxcdTAwM2VtZGItXFx1MDAzZWRyQXRyYiB8PSBjcHVfdG9fYmUxNihIRlNfU0JfQVRUUklCX1VOTU5UKTtcXG4gXFx0SEZTX1NCKHNiKS1cXHUwMDNlbWRiLVxcdTAwM2VkckF0cmIgXFx1MDAyNj0gY3B1X3RvX2JlMTYofkhGU19TQl9BVFRSSUJfSU5DTlNUTlQpO1xcbiBcXHRtYXJrX2J1ZmZlcl9kaXJ0eShIRlNfU0Ioc2IpLVxcdTAwM2VtZGJfYmgpO1xcbmRpZmYgLS1naXQgYS9mcy9oZnMvc3VwZXIuYyBiL2ZzL2hmcy9zdXBlci5jXFxuaW5kZXggYTQ2NmM0MDFmNmJiMjYuLjY3ZWNhNmY4MDc0NjkzIDEwMDY0NFxcbi0tLSBhL2ZzL2hmcy9zdXBlci5jXFxuKysrIGIvZnMvaGZzL3N1cGVyLmNcXG5AQCAtMzUsOCArMzUsNyBAQCBNT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuIHN0YXRpYyBpbnQgaGZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpXFxuIHtcXG4gXFx0aXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHNiKTtcXG4tXFx0aGZzX21kYl9jb21taXQoc2IpO1xcbi1cXHRyZXR1cm4gMDtcXG4rXFx0cmV0dXJuIGhmc19tZGJfY29tbWl0KHNiKTtcXG4gfVxcbiBcXG4gLypcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6NTE6MjEuMTkzMDkwMzM1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjk3NzUxODk3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfbWRiX2NvbW1pdFwiLFxuICAgIFwiaGZzX3N5bmNfZnNcIixcbiAgICBcImhmc19tZGJfY2xvc2VcIixcbiAgICBcImZsdXNoX21kYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgZm9yIHdoZW4gdGhlIHByaW1hcnkgb3IgYWx0ZXJuYXRlIE1EQiBidWZmZXIgaXMgbm90IHVwLXRvLWRhdGUgaW4gdGhlIEhGUyBmaWxlc3lzdGVtLCBzZXR0aW5nIHRoZSBzdXBlcmJsb2NrIHRvIHJlYWQtb25seSBhbmQgcmV0dXJuaW5nIC1FSU8uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkNmZmNTE0NzUyMzc5ZjgzZGE0ZGRlNjNhNzYyMTBjZmU0Y2FhZThjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTAgMjA6NTE6MTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9oZnMvaGZzX2ZzLmggYi9mcy9oZnMvaGZzX2ZzLmhcbmluZGV4IGYzNjI0NTE0ZmNiMDMwLi44ZTlhMTY3M2ExNDI0NyAxMDA2NDRcbi0tLSBhL2ZzL2hmcy9oZnNfZnMuaFxuKysrIGIvZnMvaGZzL2hmc19mcy5oXG5AQCAtMjAxLDcgKzIwMSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqIGNvbnN0IGhmc194YXR0cl9oYW5kbGVyc1tdO1xuIC8qIG1kYi5jICovXG4gZXh0ZXJuIGJvb2wgaXNfaGZzX2NuaWRfY291bnRzX3ZhbGlkKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIGV4dGVybiBpbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4tZXh0ZXJuIHZvaWQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG4rZXh0ZXJuIGludCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbiBleHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIGV4dGVybiB2b2lkIGhmc19tZGJfcHV0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuIFxuZGlmZiAtLWdpdCBhL2ZzL2hmcy9tZGIuYyBiL2ZzL2hmcy9tZGIuY1xuaW5kZXggYTk3Y2VhMzVjYTJlMTIuLmY0NTc4ZjYzNDMwMmY3IDEwMDY0NFxuLS0tIGEvZnMvaGZzL21kYi5jXG4rKysgYi9mcy9oZnMvbWRiLmNcbkBAIC0yNzQsNyArMjc0LDkgQEAgaW50IGhmc19tZGJfZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gICogT3V0cHV0IFZhcmlhYmxlKHMpOlxuICAqICAgTk9ORVxuICAqIFJldHVybnM6XG4tICogICB2b2lkXG4rICogICAwIG9uIHN1Y2Nlc3MsIC1FSU8gaWYgdGhlIE1EQiBvciBhbHRlcm5hdGUgTURCIGJ1ZmZlciBpcyBubyBsb25nZXJcbisgKiAgIHZhbGlkIChlLmcuIGFmdGVyIGEgcHJpb3Igd3JpdGUgZXJyb3IpLCBpbiB3aGljaCBjYXNlIHRoZSB2b2x1bWUgaXNcbisgKiAgIHJlbW91bnRlZCByZWFkLW9ubHkuXG4gICogUHJlY29uZGl0aW9uczpcbiAgKiAgICdtZGInIHBvaW50cyB0byBhIFwidmFsaWRcIiAoc3RydWN0IGhmc19tZGIpLlxuICAqIFBvc3Rjb25kaXRpb25zOlxuQEAgLTI4NCwxMiArMjg2LDE5IEBAIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuICAqICAgSWYgJ2JhY2t1cCcgaXMgbm9uLXplcm8gdGhlbiB0aGUgYWx0ZXJuYXRlIE1EQiBpcyBhbHNvIHdyaXR0ZW5cbiAgKiAgIGFuZCB0aGUgZnVuY3Rpb24gZG9lc24ndCByZXR1cm4gdW50aWwgaXQgaXMgYWN0dWFsbHkgb24gZGlzay5cbiAgKi9cbi12b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4raW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4ge1xuIFx0c3RydWN0IGhmc19tZGIgKm1kYiA9IEhGU19TQihzYiktXHUwMDNlbWRiO1xuK1x0aW50IHJldCA9IDA7XG4gXG4gXHRpZiAoc2JfcmRvbmx5KHNiKSlcbi1cdFx0cmV0dXJuO1xuK1x0XHRyZXR1cm4gMDtcbitcbitcdGlmICghYnVmZmVyX3VwdG9kYXRlKEhGU19TQihzYiktXHUwMDNlbWRiX2JoKSkge1xuK1x0XHRwcl9lcnIoXCJwcmltYXJ5IE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXG5cIik7XG4rXHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuK1x0XHRyZXR1cm4gLUVJTztcbitcdH1cbiBcbiBcdGxvY2tfYnVmZmVyKEhGU19TQihzYiktXHUwMDNlbWRiX2JoKTtcbiBcdGlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSEZTX0ZMR19NREJfRElSVFksIFx1MDAyNkhGU19TQihzYiktXHUwMDNlZmxhZ3MpKSB7XG5AQCAtMzE0LDYgKzMyMywxMyBAQCB2b2lkIGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gXHQgKiBmaWxlcyBncm93LiAqL1xuIFx0aWYgKHRlc3RfYW5kX2NsZWFyX2JpdChIRlNfRkxHX0FMVF9NREJfRElSVFksIFx1MDAyNkhGU19TQihzYiktXHUwMDNlZmxhZ3MpIFx1MDAyNlx1MDAyNlxuIFx0ICAgIEhGU19TQihzYiktXHUwMDNlYWx0X21kYikge1xuK1x0XHRpZiAoIWJ1ZmZlcl91cHRvZGF0ZShIRlNfU0Ioc2IpLVx1MDAzZWFsdF9tZGJfYmgpKSB7XG4rXHRcdFx0cHJfZXJyKFwiYWx0ZXJuYXRlIE1EQiBpcyBjb3JydXB0LCBtb3VudGluZyByZWFkLW9ubHlcXG5cIik7XG4rXHRcdFx0c2ItXHUwMDNlc19mbGFncyB8PSBTQl9SRE9OTFk7XG4rXHRcdFx0cmV0ID0gLUVJTztcbitcdFx0XHRnb3RvIG91dDtcbitcdFx0fVxuK1xuIFx0XHRoZnNfaW5vZGVfd3JpdGVfZm9yayhIRlNfU0Ioc2IpLVx1MDAzZWV4dF90cmVlLVx1MDAzZWlub2RlLCBtZGItXHUwMDNlZHJYVEV4dFJlYyxcbiBcdFx0XHRcdCAgICAgXHUwMDI2bWRiLVx1MDAzZWRyWFRGbFNpemUsIE5VTEwpO1xuIFx0XHRoZnNfaW5vZGVfd3JpdGVfZm9yayhIRlNfU0Ioc2IpLVx1MDAzZWNhdF90cmVlLVx1MDAzZWlub2RlLCBtZGItXHUwMDNlZHJDVEV4dFJlYyxcbkBAIC0zNjAsNyArMzc2LDkgQEAgdm9pZCBoZnNfbWRiX2NvbW1pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0XHRcdHNpemUgLT0gbGVuO1xuIFx0XHR9XG4gXHR9XG4rb3V0OlxuIFx0dW5sb2NrX2J1ZmZlcihIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCk7XG4rXHRyZXR1cm4gcmV0O1xuIH1cbiBcbiB2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbkBAIC0zNjgsNiArMzg2LDEwIEBAIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0LyogdXBkYXRlIHZvbHVtZSBhdHRyaWJ1dGVzICovXG4gXHRpZiAoc2JfcmRvbmx5KHNiKSlcbiBcdFx0cmV0dXJuO1xuK1xuK1x0aWYgKCFidWZmZXJfdXB0b2RhdGUoSEZTX1NCKHNiKS1cdTAwM2VtZGJfYmgpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRIRlNfU0Ioc2IpLVx1MDAzZW1kYi1cdTAwM2VkckF0cmIgfD0gY3B1X3RvX2JlMTYoSEZTX1NCX0FUVFJJQl9VTk1OVCk7XG4gXHRIRlNfU0Ioc2IpLVx1MDAzZW1kYi1cdTAwM2VkckF0cmIgXHUwMDI2PSBjcHVfdG9fYmUxNih+SEZTX1NCX0FUVFJJQl9JTkNOU1ROVCk7XG4gXHRtYXJrX2J1ZmZlcl9kaXJ0eShIRlNfU0Ioc2IpLVx1MDAzZW1kYl9iaCk7XG5kaWZmIC0tZ2l0IGEvZnMvaGZzL3N1cGVyLmMgYi9mcy9oZnMvc3VwZXIuY1xuaW5kZXggYTQ2NmM0MDFmNmJiMjYuLjY3ZWNhNmY4MDc0NjkzIDEwMDY0NFxuLS0tIGEvZnMvaGZzL3N1cGVyLmNcbisrKyBiL2ZzL2hmcy9zdXBlci5jXG5AQCAtMzUsOCArMzUsNyBAQCBNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbiBzdGF0aWMgaW50IGhmc19zeW5jX2ZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0KVxuIHtcbiBcdGlzX2hmc19jbmlkX2NvdW50c192YWxpZChzYik7XG4tXHRoZnNfbWRiX2NvbW1pdChzYik7XG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7XG4gfVxuIFxuIC8qXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyMS4xOTMwOTMyMTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTg0MjExOTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSEZTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgSEZTIGZpbGVzeXN0ZW0gY29kZSwgc3BlY2lmaWNhbGx5IGBoZnNfbWRiX2NvbW1pdGAgaW4gYGZzL2hmcy9tZGIuY2AgYW5kIGBoZnNfc3luY19mc2AgaW4gYGZzL2hmcy9zdXBlci5jYC4gVGhlIGNvcmUgb2YgaXQgaW52b2x2ZXMgYSBzaWduaWZpY2FudCBjaGFuZ2U6IHRoZXkncmUgbWFraW5nIGBoZnNfbWRiX2NvbW1pdGAgcmV0dXJuIGFuIGludGVnZXIgbm93LCBpbnN0ZWFkIG9mIGp1c3QgYHZvaWRgLiBUaGF0IGltbWVkaWF0ZWx5IGdyYWJzIG15IGF0dGVudGlvbiDigJMgaXQgc2lnbmFscyBhIHNoaWZ0IHRvd2FyZHMgbW9yZSByb2J1c3QgZXJyb3IgcmVwb3J0aW5nIHdpdGhpbiB0aGUgTURCIGNvbW1pdCBwcm9jZXNzLlxuXG5Fc3NlbnRpYWxseSwgdGhlIHBhdGNoIGlzIGFkZGluZyBlcnJvciBoYW5kbGluZyBhcm91bmQgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGFuZCBhbHRlcm5hdGUgTURCIGJ1ZmZlcnMuIFRoZSBjb2RlIHdpbGwgbm93IGNoZWNrIGlmIHRoZXNlIGJ1ZmZlcnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlIGNvbW1pdHRpbmcuIElmIHRoZXJlJ3MgYSBkaXNjcmVwYW5jeSBvciBhbiBpc3N1ZSB3aXRoIHRoZSBidWZmZXIgc3RhdGVzLCB0aGUgcGF0Y2ggaXMgZGVzaWduZWQgdG8gc2V0IHRoZSBmaWxlc3lzdGVtIHN1cGVyYmxvY2sgdG8gcmVhZC1vbmx5IGFuZCByZXR1cm5zIGAtRUlPYCwgd2hpY2ggbWFrZXMgdG90YWwgc2Vuc2Ug4oCTIGl0J3MgYSBjcml0aWNhbCBzYWZldHkgbWVhc3VyZSB0byBwcmV2ZW50IGRhdGEgY29ycnVwdGlvbi4gU28sIGl0IGFwcGVhcnMgdGhpcyBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgZGF0YSBpbnRlZ3JpdHkgaXNzdWUgaW4gdGhlIEhGUyBpbXBsZW1lbnRhdGlvbi5cblxuSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggaXMgdGFyZ2V0aW5nIGltcHJvdmVkIGVycm9yIGhhbmRsaW5nIGFuZCBkYXRhIGNvbnNpc3RlbmN5LiBJJ20gZ29pbmcgdG8gd2FudCB0byB2ZXJpZnkgdGhlIGltcGxpY2F0aW9ucyBhbmQgY29uc2lkZXIgdGhlIGltcGFjdCBvbiBhbnkgb2YgbXkgdXNlIGNhc2VzLiBOZXh0LCBJIHNob3VsZCB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBIRlMgdG8gc2VlIGlmIGFueSBhcmUgaW1wYWN0ZWQgYnkgdGhpcyBjaGFuZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwOTAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyNS4zNzczMDc1NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTk4MjgyNzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEhGU19GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9oZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9oZnMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmZzL2hmcy9LY29uZmlnOjI6Y29uZmlnIEhGU19GU1xcbmZzL2hmcy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkFwcGxlIE1hY2ludG9zaCBmaWxlIHN5c3RlbSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MToyNS44NzcxNDIyMTNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzk3MTcyNjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIFBvdGVudGlhbCBIRlMgRmlsZSBTeXN0ZW0gVnVsbmVyYWJpbGl0aWVzKipcblxuTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgYEhGU19GU2AgY29uZmlndXJhdGlvbiBvcHRpb24g4oCTIHRoYXQncyB0aGUga2V5LiBOb3csIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gSEZTIGZpbGUgc3lzdGVtIGludGVyYWN0aW9ucy4gVGhlIGxpa2VseSBzdXNwZWN0cyBhcmUgYGhmc19tZGJfY29tbWl0YCwgYGhmc19zeW5jX2ZzYCwgYW5kIGBoZnNfbWRiX2Nsb3NlYC4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBhcmVhcyB0byBzY3J1dGluaXplIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBUaW1lIHRvIGNoZWNrIHRoZSBjYWxsIHN0cnVjdHVyZS5cblxuSXQgbG9va3MgbGlrZSBgaGZzX21kYl9jb21taXRgIGlzIGNhbGxlZCBieSBgaGZzX3N5bmNfZnNgLCBzbyBhbnkgaXNzdWVzIHRoZXJlIHdvdWxkIHByb3BhZ2F0ZS4gQW5kIGBoZnNfbWRiX2Nsb3NlYCBpcyBwYXJ0IG9mIGBoZnNfcHV0X3N1cGVyYCwgc28gdGhhdCBtYWtlcyBzZW5zZSwgdG9vLiBLbm93aW5nIHRoZSBjYWxsIHJlbGF0aW9uc2hpcHMgaXMgY3J1Y2lhbCBmb3IgYSBmdWxsIGF1ZGl0IGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIGFueSB3ZWFrbmVzc2VzIEkgbWlnaHQgZmluZC4gSSdsbCBtYWtlIHN1cmUgdG8gbm90ZSBhbGwgcG9zc2libGUgY2FsbCBjaGFpbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBnZXQgYSBnb29kIHBpY3R1cmUgb2YgdGhlIGZpbGUgc3lzdGVtJ3MgYmVoYXZpb3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2MjIsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6NTE6MjkuMjc0MzE2NDQ1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzkxNTIwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoZnNfbWRiX2NvbW1pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9oZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2hmcy9oZnNfZnMuaD0yMDM9ZXh0ZXJuIGludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcXG5mcy9oZnMvaGZzX2ZzLmg6MjA0OmV4dGVybiBpbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuZnMvaGZzL2hmc19mcy5oLTIwNS1leHRlcm4gdm9pZCBoZnNfbWRiX2Nsb3NlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbi0tXFxuZnMvaGZzL21kYi5jPTk0PWludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbi0tXFxuZnMvaGZzL21kYi5jLTI2My0vKlxcbmZzL2hmcy9tZGIuYzoyNjQ6ICogaGZzX21kYl9jb21taXQoKVxcbmZzL2hmcy9tZGIuYy0yNjUtICpcXG4tLVxcbmZzL2hmcy9tZGIuYy0yODgtICovXFxuZnMvaGZzL21kYi5jOjI4OTppbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9oZnMvbWRiLmMtMjkwLXtcXG4tLVxcbmZzL2hmcy9zdXBlci5jPTM1PXN0YXRpYyBpbnQgaGZzX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpXFxuLS1cXG5mcy9oZnMvc3VwZXIuYy0zNy1cXHRpc19oZnNfY25pZF9jb3VudHNfdmFsaWQoc2IpO1xcbmZzL2hmcy9zdXBlci5jOjM4OlxcdHJldHVybiBoZnNfbWRiX2NvbW1pdChzYik7XFxuZnMvaGZzL3N1cGVyLmMtMzktfVxcbi0tXFxuZnMvaGZzL3N1cGVyLmM9NTY9c3RhdGljIHZvaWQgZmx1c2hfbWRiKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmZzL2hmcy9zdXBlci5jLTY5LVxcbmZzL2hmcy9zdXBlci5jOjcwOlxcdGhmc19tZGJfY29tbWl0KHNiKTtcXG5mcy9oZnMvc3VwZXIuYy03MS19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjUxOjI5LjM3ODIzNzgwN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDg2MjE0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgY29kZSwgcHJlc2VudGVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgYW4gZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIERhdGEgTG9zcyBTY2VuYXJpb3MqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhlIE1ldGFkYXRhIERhdGFiYXNlIChNREIpIGlzIGhhbmRsZWQgaW4gdGhpcyBIRlMrIGltcGxlbWVudGF0aW9uLiBJIHNlZSB0aGF0IGBmbHVzaF9tZGJgIGludGVybmFsbHkgY2FsbHMgYGhmc19tZGJfY29tbWl0YC4gVGhhdCdzIGV4cGVjdGVkLCBhcyB3ZSBuZWVkIHRvIGVuc3VyZSB0aGUgY2hhbmdlcyBhcmUgd3JpdHRlbi4gQWxzbywgYGhmc19zeW5jX2ZzYCAqYWxzbyogY2FsbHMgYGhmc19tZGJfY29tbWl0YC4gVGhpcyBzdWdnZXN0cyBhIGNydWNpYWwgcG9pbnQgb2YgZGF0YSBzeW5jaHJvbml6YXRpb24gcmVsYXRlZCB0byB0aGUgZmlsZXN5c3RlbSBmbHVzaCBvcGVyYXRpb24sIHdoaWNoIGlzIGEga2V5IHByb2Nlc3MgZm9yIGVuc3VyaW5nIHRoZSBjb25zaXN0ZW5jeSBvZiBkYXRhLiBOb3csIHRvIGRlZXBlbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGFsbCBmdW5jdGlvbnMsIEkgbmVlZCB0byBjaGVjayBob3cgYGhmc19tZGJfY2xvc2VgIGludGVyYWN0cyB3aXRoIGJvdGggb2YgdGhvc2UgY2FsbHMuIEtub3dpbmcgaG93IHRoZSBNREIgZ2V0cyBjbG9zZWQgd2lsbCBpbGx1bWluYXRlIHdoZXRoZXIgYW55IGNvbW1pdHMgY291bGQgYmUgbG9zdCBpbiBzcGVjaWZpYyBzY2VuYXJpb3MuIFRoaXMgaXMgYSBjcml0aWNhbCBhcmVhIGZvciBpZGVudGlmeWluZyBwb3RlbnRpYWwgZGF0YSBsb3NzIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQwNSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjUxOjMyLjU4Njg2MDcxMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NDUwNDQwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoZnNfbWRiX2Nsb3NlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvaGZzL2hmc19mcy5oPTIwND1leHRlcm4gaW50IGhmc19tZGJfY29tbWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbmZzL2hmcy9oZnNfZnMuaDoyMDU6ZXh0ZXJuIHZvaWQgaGZzX21kYl9jbG9zZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcXG5mcy9oZnMvaGZzX2ZzLmgtMjA2LWV4dGVybiB2b2lkIGhmc19tZGJfcHV0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xcbi0tXFxuZnMvaGZzL21kYi5jPTI4OT1pbnQgaGZzX21kYl9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2hmcy9tZGIuYy0zODMtXFxuZnMvaGZzL21kYi5jOjM4NDp2b2lkIGhmc19tZGJfY2xvc2Uoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9oZnMvbWRiLmMtMzg1LXtcXG4tLVxcbmZzL2hmcy9zdXBlci5jPTQ4PXN0YXRpYyB2b2lkIGhmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2hmcy9zdXBlci5jLTUwLVxcdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcXHUwMDI2SEZTX1NCKHNiKS1cXHUwMDNlbWRiX3dvcmspO1xcbmZzL2hmcy9zdXBlci5jOjUxOlxcdGhmc19tZGJfY2xvc2Uoc2IpO1xcbmZzL2hmcy9zdXBlci5jLTUyLVxcdC8qIHJlbGVhc2UgdGhlIE1EQidzIHJlc291cmNlcyAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MTozMi42ODEzNzAzNzRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzM2MzYzNjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSEZTIEZpbGVzeXN0ZW0gUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHBhdGNoIGFkZHJlc3NpbmcgcG90ZW50aWFsIHdyaXRlIGVycm9ycyB3aXRoaW4gdGhlIEhGUyBmaWxlc3lzdGVtLiBUaGUgZnVuY3Rpb25zIGhpZ2hsaWdodGVkIOKAkyBgaGZzX21kYl9jb21taXRgLCBgaGZzX3N5bmNfZnNgLCBhbmQgYGhmc19tZGJfY2xvc2VgIOKAkyBhcmUga2V5IGhlcmUsIGVzcGVjaWFsbHkgY29uc2lkZXJpbmcgdGhlIGNvbnRleHQuIFdlIGNhbiBwcm9iYWJseSBzZXQgYXNpZGUgYGZsdXNoX21kYmAgYW5kIGBoZnNfcHV0X3N1cGVyYCBmb3IgdGhlIHRpbWUgYmVpbmcuXG5cblRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgaW1wcm92ZWQgZXJyb3IgaGFuZGxpbmcgcmVsYXRlZCB0byB0aGUgTURCIChNYXN0ZXIgRGlyZWN0b3J5IEJsb2NrKSBidWZmZXIuIFRoaXMgcGF0Y2ggYWNjb3VudHMgZm9yIHNjZW5hcmlvcyB3aGVyZSB0aGUgTURCIGJ1ZmZlciBpc27igJl0IHVwLXRvLWRhdGUsIHBvdGVudGlhbGx5IGR1ZSB0byBhIHByaW9yIHdyaXRlIGVycm9yLiBUaGlzIG1ha2VzIHRoZSBmaWxlc3lzdGVtIHNldCByZWFkLW9ubHkgYW5kIHJldHVybiBgLUVJT2AuIFRoZSBmYWN0IHRoYXQgaXQgbW9kaWZpZXMgdGhlIHByaW1hcnkgYW5kIGFsdGVybmF0ZSBNREIgYnVmZmVycyBzdWdnZXN0cyB0aGF0IHRoaXMgaXMgYSBjcml0aWNhbCBhc3BlY3Qgb2YgZmlsZXN5c3RlbSBpbnRlZ3JpdHkuXG5cbkdpdmVuIHRoYXQgaXQgY2hhbmdlcyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgZmlsZXN5c3RlbSwgYW5kIGRlYWxzIHdpdGggcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBzY2VuYXJpb3MsIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgd2FycmFudHMgdGhvcm91Z2ggZnV6emluZy5cblxuTXkgY29uY2x1c2lvbiBpczpcblxuKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKipcbiogICAqKkVuYWJsZUNvbmZpZ3M6IFtcIkhGU1xcX0ZTXCJdKiogKE9idmlvdXNseSwgd2UgbmVlZCB0byBlbmFibGUgSEZTIGZpbGVzeXN0ZW0gc3VwcG9ydClcbiogICAqKkZvY3VzU3ltYm9sczogW1wiaGZzXFxfbWRiXFxfY29tbWl0XCIsIFwiaGZzXFxfc3luY1xcX2ZzXCIsIFwiaGZzXFxfbWRiXFxfY2xvc2VcIiwgXCJmbHVzaFxcX21kYlwiXSoqIChUaGVzZSBmdW5jdGlvbnMgYXJlIGVzc2VudGlhbCB0YXJnZXRzIGZvciB0ZXN0aW5nIHRoaXMgbmV3IGVycm9yIGhhbmRsaW5nKVxuKiAgICoqUmVhc29uaW5nOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uXCIqKlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk0LCJPdXRwdXRUb2tlbnMiOjEyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDo1MTozOC4wMTc3MzYyM1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Mjg2ODk4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSEZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaGZzX21kYl9jb21taXRcIixcbiAgICBcImhmc19zeW5jX2ZzXCIsXG4gICAgXCJoZnNfbWRiX2Nsb3NlXCIsXG4gICAgXCJmbHVzaF9tZGJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSEZTX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaGZzX21kYl9jb21taXRcIixcbiAgICBcImhmc19zeW5jX2ZzXCIsXG4gICAgXCJoZnNfbWRiX2Nsb3NlXCIsXG4gICAgXCJmbHVzaF9tZGJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGZvciB3aGVuIHRoZSBwcmltYXJ5IG9yIGFsdGVybmF0ZSBNREIgYnVmZmVyIGlzIG5vdCB1cC10by1kYXRlIGluIHRoZSBIRlMgZmlsZXN5c3RlbSwgc2V0dGluZyB0aGUgc3VwZXJibG9jayB0byByZWFkLW9ubHkgYW5kIHJldHVybmluZyAtRUlPLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowkc5h5[1] Phase: Succeeded StartedAt: 2026-07-10 20:51:50 +0000 UTC FinishedAt: 2026-07-10 20:51:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-10 20:51:50 +0000 UTC FinishedAt: 2026-07-10 20:51:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2] Phase: Succeeded StartedAt: 2026-07-10 20:51:50 +0000 UTC FinishedAt: 2026-07-11 01:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-10 20:51:50 +0000 UTC FinishedAt: 2026-07-11 01:01:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-10 20:51:50 +0000 UTC FinishedAt: 2026-07-10 20:52:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-10 20:51:50 +0000 UTC FinishedAt: 2026-07-10 20:51:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowkc5h5/series-workflowkc5h5-convert-artifact-3042278991/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-10 20:52:10 +0000 UTC FinishedAt: 2026-07-10 21:18:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-10 20:52:10 +0000 UTC FinishedAt: 2026-07-10 21:18:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*97d88b57-be34-470e-b26c-05e48c3def4c,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-workflowkc5h5/series-workflowkc5h5-convert-artifact-3042278991/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": "65bfbb2b-de5c-4f89-a2e3-653b1aabdce4", "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-workflowkc5h5/series-workflowkc5h5-build-action-1993887125/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-10 20:52:10 +0000 UTC FinishedAt: 2026-07-10 21:18:14 +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:*97d88b57-be34-470e-b26c-05e48c3def4c,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-workflowkc5h5/series-workflowkc5h5-convert-artifact-3042278991/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": "65bfbb2b-de5c-4f89-a2e3-653b1aabdce4", "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-workflowkc5h5/series-workflowkc5h5-build-action-1993887125/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-10 21:18:25 +0000 UTC FinishedAt: 2026-07-10 21:18:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-10 21:18:25 +0000 UTC FinishedAt: 2026-07-10 21:18:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-10 21:18:25 +0000 UTC FinishedAt: 2026-07-10 21:18:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-10 21:18:25 +0000 UTC FinishedAt: 2026-07-10 21:18:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowkc5h5/series-workflowkc5h5-convert-artifact-3264612766/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-10 21:18:46 +0000 UTC FinishedAt: 2026-07-10 21:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-10 21:18:46 +0000 UTC FinishedAt: 2026-07-10 21:20:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*65bfbb2b-de5c-4f89-a2e3-653b1aabdce4,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-workflowkc5h5/series-workflowkc5h5-build-action-1993887125/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-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-10 21:20:43 +0000 UTC FinishedAt: 2026-07-10 21:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-10 21:20:43 +0000 UTC FinishedAt: 2026-07-10 21:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-10 21:20:43 +0000 UTC FinishedAt: 2026-07-10 21:53:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-10 21:20:43 +0000 UTC FinishedAt: 2026-07-10 21:53:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*97d88b57-be34-470e-b26c-05e48c3def4c,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-workflowkc5h5/series-workflowkc5h5-convert-artifact-3264612766/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": "532fb83c-c501-42d7-bebe-b25ee72e6212", "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-workflowkc5h5/series-workflowkc5h5-build-action-3398416242/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-10 21:20:43 +0000 UTC FinishedAt: 2026-07-10 21:53:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*97d88b57-be34-470e-b26c-05e48c3def4c,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-workflowkc5h5/series-workflowkc5h5-convert-artifact-3264612766/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": "532fb83c-c501-42d7-bebe-b25ee72e6212", "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-workflowkc5h5/series-workflowkc5h5-build-action-3398416242/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-10 21:53:58 +0000 UTC FinishedAt: 2026-07-10 21:53:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-10 21:53:58 +0000 UTC FinishedAt: 2026-07-10 21:53:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-10 21:53:58 +0000 UTC FinishedAt: 2026-07-10 21:55:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-10 21:53:58 +0000 UTC FinishedAt: 2026-07-10 21:55:46 +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:*532fb83c-c501-42d7-bebe-b25ee72e6212,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-workflowkc5h5/series-workflowkc5h5-build-action-3398416242/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-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-11 01:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-11 01:01:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"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:*65bfbb2b-de5c-4f89-a2e3-653b1aabdce4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*532fb83c-c501-42d7-bebe-b25ee72e6212,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-workflowkc5h5/series-workflowkc5h5-build-action-1993887125/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-workflowkc5h5/series-workflowkc5h5-build-action-3398416242/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-10 21:56:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-10 21:56:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"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-workflowkc5h5/series-workflowkc5h5-convert-artifact-1645820067/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-10 21:55:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-10 21:55:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-10 21:55:56 +0000 UTC FinishedAt: 2026-07-10 21:55:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-10 21:56:20 +0000 UTC FinishedAt: 2026-07-11 01:01:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkc5h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["hfs_mdb_commit","hfs_sync_fs","hfs_mdb_close","flush_mdb"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"bb1766a6-c73d-4262-ba0e-d4b8b9bcb7ea","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-10 21:56:20 +0000 UTC FinishedAt: 2026-07-11 01:01:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*65bfbb2b-de5c-4f89-a2e3-653b1aabdce4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*532fb83c-c501-42d7-bebe-b25ee72e6212,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-workflowkc5h5/series-workflowkc5h5-build-action-1993887125/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-workflowkc5h5/series-workflowkc5h5-build-action-3398416242/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-workflowkc5h5/series-workflowkc5h5-convert-artifact-1645820067/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,}