Name: series-workflowfzdgx Phase: Succeeded StartedAt: 2026-07-02 21:59:04 +0000 UTC FinishedAt: 2026-07-03 02:16:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[0] Phase: Succeeded StartedAt: 2026-07-02 21:59:04 +0000 UTC FinishedAt: 2026-07-02 22:14:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 21:59:04 +0000 UTC FinishedAt: 2026-07-02 22:14:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "f4b4fac1867633ac17c35842f03933f6a7a4425f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_ELF_PLUGINS", "BINFMT_ELF_NIX" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "f4b4fac1867633ac17c35842f03933f6a7a4425f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_ELF_PLUGINS", "BINFMT_ELF_NIX" ], "series_id": "c4794c99-846c-4750-b499-e3a347d90f32" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "elf_plugin_open_interpreter", "nix_open_interpreter" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIyOjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9FTEZfUExVR0lOUyYjMzQ7LAogICAgJiMzNDtCSU5GTVRfRUxGX05JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlciYjMzQ7LAogICAgJiMzNDtuaXhfb3Blbl9pbnRlcnByZXRlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3lzdGVtIGFuZCBhIHNwZWNpZmljIHBsdWdpbiBmb3IgTml4T1MuIFRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwYXRoIChleGVjdmUpLCB3aGljaCBpcyBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcgYXMgaXQgcGFyc2VzIHVudHJ1c3RlZCBFTEYgaGVhZGVycy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMjoxMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk2NTBkODY3OGNmY2ZmOTJiOGE1ODA5ODY2MjZhZGJhYmQ0NTNhYjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDIyOjEzOjQwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL0tjb25maWcuYmluZm10IGIvZnMvS2NvbmZpZy5iaW5mbXRcbmluZGV4IDE5NDllMjVjNzc0MWIxLi5lZjQyNzdmZDgwNTBiMSAxMDA2NDRcbi0tLSBhL2ZzL0tjb25maWcuYmluZm10XG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9LY29uZmlnLmJpbmZtdFxuQEAgLTM4LDYgJiM0MzszOCwyMSBAQCBjb25maWcgQklORk1UX0VMRl9LVU5JVF9URVNUXG4gXHQgIG9ubHkgbmVlZGVkIGZvciBkZWJ1Z2dpbmcuIE5vdGUgdGhhdCB3aXRoIENPTkZJR19DT01QQVQ9eSwgdGhlXG4gXHQgIGNvbXBhdF9iaW5mbXRfZWxmIEtVbml0IHRlc3QgaXMgYWxzbyBjcmVhdGVkLlxuIFxuJiM0Mztjb25maWcgQklORk1UX0VMRl9QTFVHSU5TXG4mIzQzO1x0Ym9vbCBcJiMzNDtFbmFibGUgcGx1Z2luIHN1cHBvcnQgZm9yIEVMRiBpbnRlcnByZXRlciBsb2FkaW5nXCYjMzQ7XG4mIzQzO1x0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGXG4mIzQzO1x0aGVscFxuJiM0MztcdCAgVGhpcyBvcHRpb24gYWxsb3dzIGtlcm5lbCBtb2R1bGVzIHRvIHJlZ2lzdGVyIGhhbmRsZXJzIHRvIGR5bmFtaWNhbGx5XG4mIzQzO1x0ICByZXNvbHZlIGFuZCBvdmVycmlkZSB0aGUgRUxGIHByb2dyYW0gaW50ZXJwcmV0ZXIgKGUuZy4gc3VwcG9ydGluZyByZWxhdGl2ZVxuJiM0MztcdCAgaW50ZXJwcmV0ZXIgcGF0aHMgd2l0aCAkT1JJR0lOKS5cbiYjNDM7XG4mIzQzO2NvbmZpZyBCSU5GTVRfRUxGX05JWFxuJiM0MztcdHRyaXN0YXRlIFwmIzM0O0VMRiBpbnRlcnByZXRlciBwbHVnaW4gZm9yIE5peE9TICgkT1JJR0lOIHN1cHBvcnQpXCYjMzQ7XG4mIzQzO1x0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGX1BMVUdJTlNcbiYjNDM7XHRoZWxwXG4mIzQzO1x0ICBUaGlzIGJ1aWxkcyB0aGUgTml4T1MgRUxGIGludGVycHJldGVyIHBsdWdpbi4gSXQgaW50ZXJjZXB0cyBQVF9JTlRFUlBfTklYXG4mIzQzO1x0ICBoZWFkZXJzIHRvIHJlc29sdmUgcmVsYXRpdmUgYW5kICRPUklHSU4gaW50ZXJwcmV0ZXIgcGF0aHMuXG4mIzQzO1xuIGNvbmZpZyBDT01QQVRfQklORk1UX0VMRlxuIFx0ZGVmX2Jvb2wgeVxuIFx0ZGVwZW5kcyBvbiBDT01QQVQgXHUwMDI2XHUwMDI2IEJJTkZNVF9FTEZcbmRpZmYgLS1naXQgYS9mcy9NYWtlZmlsZSBiL2ZzL01ha2VmaWxlXG5pbmRleCA4OWE4YTlkMjA3ZDFjNS4uYmQ4MWU3ZmY2NGYzOTIgMTAwNjQ0XG4tLS0gYS9mcy9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvTWFrZWZpbGVcbkBAIC0zNSw2ICYjNDM7MzUsNyBAQCBvYmotJChDT05GSUdfRklMRV9MT0NLSU5HKSAgICAgICYjNDM7PSBsb2Nrcy5vXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9NSVNDKVx0JiM0Mzs9IGJpbmZtdF9taXNjLm9cbiBvYmotJChDT05GSUdfQklORk1UX1NDUklQVClcdCYjNDM7PSBiaW5mbXRfc2NyaXB0Lm9cbiBvYmotJChDT05GSUdfQklORk1UX0VMRilcdCYjNDM7PSBiaW5mbXRfZWxmLm9cbiYjNDM7b2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfTklYKVx0JiM0Mzs9IGJpbmZtdF9lbGZfbml4Lm9cbiBvYmotJChDT05GSUdfQ09NUEFUX0JJTkZNVF9FTEYpXHQmIzQzOz0gY29tcGF0X2JpbmZtdF9lbGYub1xuIG9iai0kKENPTkZJR19CSU5GTVRfRUxGX0ZEUElDKVx0JiM0Mzs9IGJpbmZtdF9lbGZfZmRwaWMub1xuIG9iai0kKENPTkZJR19CSU5GTVRfRkxBVClcdCYjNDM7PSBiaW5mbXRfZmxhdC5vXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZi5jIGIvZnMvYmluZm10X2VsZi5jXG5pbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0XG4tLS0gYS9mcy9iaW5mbXRfZWxmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2JpbmZtdF9lbGYuY1xuQEAgLTM1LDYgJiM0MzszNSw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcmFuZG9tLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9lbGYuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi1yYW5kb21pemUuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9lbGZfcGx1Z2lucy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdXRzbmFtZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY29yZWR1bXAuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkLmhcdTAwM2VcbkBAIC04NzAsNiAmIzQzOzg3MSwxMiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuIFx0aWYgKCFlbGZfcGhkYXRhKVxuIFx0XHRnb3RvIG91dDtcbiBcbiYjNDM7XHRpbnRlcnByZXRlciA9IGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihicHJtLCBlbGZfZXgsIGVsZl9waGRhdGEpO1xuJiM0MztcdGlmIChJU19FUlIoaW50ZXJwcmV0ZXIpKSB7XG4mIzQzO1x0XHRyZXR2YWwgPSBQVFJfRVJSKGludGVycHJldGVyKTtcbiYjNDM7XHRcdGdvdG8gb3V0X2ZyZWVfcGg7XG4mIzQzO1x0fVxuJiM0MztcbiBcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGVsZl9leC1cdTAwM2VlX3BobnVtOyBpJiM0MzsmIzQzOywgZWxmX3BwbnQmIzQzOyYjNDM7KSB7XG4gXHRcdGNoYXIgKmVsZl9pbnRlcnByZXRlcjtcbkBAIC04ODIsNiAmIzQzOzg4OSw5IEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4gXHRcdGlmIChlbGZfcHBudC1cdTAwM2VwX3R5cGUgIT0gUFRfSU5URVJQKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFxuJiM0MztcdFx0aWYgKGludGVycHJldGVyKVxuJiM0MztcdFx0XHRjb250aW51ZTtcbiYjNDM7XG4gXHRcdC8qXG4gXHRcdCAqIFRoaXMgaXMgdGhlIHByb2dyYW0gaW50ZXJwcmV0ZXIgdXNlZCBmb3Igc2hhcmVkIGxpYnJhcmllcyAtXG4gXHRcdCAqIGZvciBub3cgYXNzdW1lIHRoYXQgdGhpcyBpcyBhbiBhLm91dCBmb3JtYXQgYmluYXJ5LlxuQEAgLTkzNSw2ICYjNDM7OTQ1LDIwIEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4gXHRcdGdvdG8gb3V0X2ZyZWVfcGg7XG4gXHR9XG4gXG4mIzQzO1x0aWYgKGludGVycHJldGVyIFx1MDAyNlx1MDAyNiAhaW50ZXJwX2VsZl9leCkge1xuJiM0MztcdFx0aW50ZXJwX2VsZl9leCA9IGttYWxsb2Nfb2JqKCppbnRlcnBfZWxmX2V4KTtcbiYjNDM7XHRcdGlmICghaW50ZXJwX2VsZl9leCkge1xuJiM0MztcdFx0XHRyZXR2YWwgPSAtRU5PTUVNO1xuJiM0MztcdFx0XHRnb3RvIG91dF9mcmVlX2ZpbGU7XG4mIzQzO1x0XHR9XG4mIzQzO1xuJiM0MztcdFx0LyogR2V0IHRoZSBleGVjIGhlYWRlcnMgKi9cbiYjNDM7XHRcdHJldHZhbCA9IGVsZl9yZWFkKGludGVycHJldGVyLCBpbnRlcnBfZWxmX2V4LFxuJiM0MztcdFx0XHRcdCAgc2l6ZW9mKCppbnRlcnBfZWxmX2V4KSwgMCk7XG4mIzQzO1x0XHRpZiAocmV0dmFsIFx1MDAzYyAwKVxuJiM0MztcdFx0XHRnb3RvIG91dF9mcmVlX2RlbnRyeTtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0ZWxmX3BwbnQgPSBlbGZfcGhkYXRhO1xuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZWxmX2V4LVx1MDAzZWVfcGhudW07IGkmIzQzOyYjNDM7LCBlbGZfcHBudCYjNDM7JiM0MzspXG4gXHRcdHN3aXRjaCAoZWxmX3BwbnQtXHUwMDNlcF90eXBlKSB7XG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZl9uaXguYyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2Fcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbkBAIC0wLDAgJiM0MzsxLDEwOCBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2luaXQuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9mcy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BhdGguaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9uYW1laS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZl9wbHVnaW5zLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG4mIzQzO1xuJiM0MztNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7RUxGIEludGVycHJldGVyIHBsdWdpbiBmb3IgTml4T1MgLyAkT1JJR0lOXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0FVVEhPUihcJiMzNDtGYXJpZCBaYWthcmlhXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjNDM7XG4mIzQzOy8qIE1uZW1vbmljIHZhbHVlIGZvciBOaXhPUy1zcGVjaWZpYyBwcm9ncmFtIGludGVycHJldGVyOiAmIzM5O04mIzM5OywgJiMzOTtJJiMzOTssICYjMzk7WCYjMzk7LCAzICovXG4mIzQzOyNkZWZpbmUgUFRfSU5URVJQX05JWCAgKFBUX0xPT1MgJiM0MzsgMHg0ZTQ5NTgzKVxuJiM0MztcbiYjNDM7c3RhdGljIHN0cnVjdCBmaWxlICpuaXhfb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuJiM0MztcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbiYjNDM7XHRcdFx0XHRcdCBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9wcG50O1xuJiM0MztcdHN0cnVjdCBmaWxlICppbnRlcnByZXRlciA9IE5VTEw7XG4mIzQzO1x0Y2hhciAqZWxmX2ludGVycHJldGVyID0gTlVMTDtcbiYjNDM7XHRpbnQgaSwgcmV0dmFsO1xuJiM0MztcbiYjNDM7XHQvKiBGaW5kIHRoZSBjdXN0b20gTml4IGludGVycHJldGVyIGhlYWRlciAqL1xuJiM0MztcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBlbGZfZXgtXHUwMDNlZV9waG51bTsgaSYjNDM7JiM0MzssIGVsZl9wcG50JiM0MzsmIzQzOykge1xuJiM0MztcdFx0aWYgKGVsZl9wcG50LVx1MDAzZXBfdHlwZSA9PSBQVF9JTlRFUlBfTklYKVxuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGlmIChpID09IGVsZl9leC1cdTAwM2VlX3BobnVtKVxuJiM0MztcdFx0cmV0dXJuIE5VTEw7IC8qIFNlZ21lbnQgbm90IHByZXNlbnQ7IGZhbGwgYmFjayB0byBvdGhlcnMgKi9cbiYjNDM7XG4mIzQzO1x0LyogU2VjdXJpdHkgY2hlY2s6IHJlZnVzZSByZWxhdGl2ZSBpbnRlcnAgcmVzb2x1dGlvbiBvbiBzZWN1cmUgZXhlY3V0aW9uICovXG4mIzQzO1x0aWYgKGJwcm0tXHUwMDNlc2VjdXJlZXhlYykge1xuJiM0MztcdFx0cHJfd2Fybl9vbmNlKFwmIzM0O2JpbmZtdF9lbGZfbml4OiBzZWN1cmVleGVjIGFjdGl2ZSwgcmVmdXNpbmcgY3VzdG9tIGludGVycHJldGVyIGxvb2t1cFxcblwmIzM0Oyk7XG4mIzQzO1x0XHRyZXR1cm4gTlVMTDsgLyogRmFsbGJhY2sgdG8gc3RhbmRhcmQgUFRfSU5URVJQICovXG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAoZWxmX3BwbnQtXHUwMDNlcF9maWxlc3ogXHUwMDNlIFBBVEhfTUFYIHx8IGVsZl9wcG50LVx1MDAzZXBfZmlsZXN6IFx1MDAzYyAyKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT0VYRUMpO1xuJiM0MztcbiYjNDM7XHRlbGZfaW50ZXJwcmV0ZXIgPSBrbWFsbG9jKGVsZl9wcG50LVx1MDAzZXBfZmlsZXN6LCBHRlBfS0VSTkVMKTtcbiYjNDM7XHRpZiAoIWVsZl9pbnRlcnByZXRlcilcbiYjNDM7XHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuJiM0MztcbiYjNDM7XHQvKiBSZWFkIHRoZSBpbnRlcnByZXRlciBwYXRoIGZyb20gdGhlIGV4ZWN1dGFibGUgZmlsZSAqL1xuJiM0MztcdHJldHZhbCA9IGtlcm5lbF9yZWFkKGJwcm0tXHUwMDNlZmlsZSwgZWxmX2ludGVycHJldGVyLCBlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeiwgXHUwMDI2ZWxmX3BwbnQtXHUwMDNlcF9vZmZzZXQpO1xuJiM0MztcdGlmIChyZXR2YWwgIT0gZWxmX3BwbnQtXHUwMDNlcF9maWxlc3opIHtcbiYjNDM7XHRcdHJldHZhbCA9IChyZXR2YWwgXHUwMDNjIDApID8gcmV0dmFsIDogLUVJTztcbiYjNDM7XHRcdGdvdG8gb3V0X2ZyZWU7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LVx1MDAzZXBfZmlsZXN6IC0gMV0gIT0gJiMzOTtcXDAmIzM5Oykge1xuJiM0MztcdFx0cmV0dmFsID0gLUVOT0VYRUM7XG4mIzQzO1x0XHRnb3RvIG91dF9mcmVlO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0LyogUGF0aCBSZXNvbHV0aW9uOiBBYnNvbHV0ZSB2cy4gJE9SSUdJTiAqL1xuJiM0MztcdGlmIChlbGZfaW50ZXJwcmV0ZXJbMF0gPT0gJiMzOTsvJiMzOTspIHtcbiYjNDM7XHRcdGludGVycHJldGVyID0gb3Blbl9leGVjKGVsZl9pbnRlcnByZXRlcik7XG4mIzQzO1x0fSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXCYjMzQ7JE9SSUdJTi9cJiMzNDssIDgpID09IDAgfHwgc3RybmNtcChlbGZfaW50ZXJwcmV0ZXIsIFwmIzM0OyR7T1JJR0lOfS9cJiMzNDssIDEwKSA9PSAwKSB7XG4mIzQzO1x0XHRjb25zdCBjaGFyICpyZWxfcGF0aCA9IChlbGZfaW50ZXJwcmV0ZXJbMF0gPT0gJiMzOTskJiMzOTspID8gKGVsZl9pbnRlcnByZXRlciAmIzQzOyA4KSA6IChlbGZfaW50ZXJwcmV0ZXIgJiM0MzsgMTApO1xuJiM0MztcdFx0c3RydWN0IHBhdGggcGFyZW50X3BhdGg7XG4mIzQzO1xuJiM0MztcdFx0LyogUmVmZXJlbmNlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGVkIGZpbGUgc2FmZWx5ICovXG4mIzQzO1x0XHRwYXJlbnRfcGF0aC5tbnQgPSBtbnRnZXQoYnBybS1cdTAwM2VmaWxlLVx1MDAzZWZfcGF0aC5tbnQpO1xuJiM0MztcdFx0cGFyZW50X3BhdGguZGVudHJ5ID0gZGdldF9wYXJlbnQoYnBybS1cdTAwM2VmaWxlLVx1MDAzZWZfcGF0aC5kZW50cnkpO1xuJiM0MztcbiYjNDM7XHRcdC8qIE9wZW4gcmVsYXRpdmUgdG8gcGFyZW50IGRpcmVjdG9yeSAqL1xuJiM0MztcdFx0aW50ZXJwcmV0ZXIgPSBmaWxlX29wZW5fcm9vdChcdTAwMjZwYXJlbnRfcGF0aCwgcmVsX3BhdGgsIE9fUkRPTkxZLCAwKTtcbiYjNDM7XG4mIzQzO1x0XHRwYXRoX3B1dChcdTAwMjZwYXJlbnRfcGF0aCk7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdC8qIE5ha2VkIHJlbGF0aXZlIHBhdGhzIGFyZSByZWplY3RlZCBmb3Igc2FmZXR5ICovXG4mIzQzO1x0XHRyZXR2YWwgPSAtRU5PRVhFQztcbiYjNDM7XHRcdGdvdG8gb3V0X2ZyZWU7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRrZnJlZShlbGZfaW50ZXJwcmV0ZXIpO1xuJiM0MztcdHJldHVybiBpbnRlcnByZXRlcjtcbiYjNDM7XG4mIzQzO291dF9mcmVlOlxuJiM0MztcdGtmcmVlKGVsZl9pbnRlcnByZXRlcik7XG4mIzQzO1x0cmV0dXJuIEVSUl9QVFIocmV0dmFsKTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIHN0cnVjdCBlbGZfcGx1Z2luIG5peF9lbGZfcGx1Z2luID0ge1xuJiM0MztcdC5vd25lciA9IFRISVNfTU9EVUxFLFxuJiM0MztcdC5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gcmVnaXN0ZXJfZWxmX3BsdWdpbihcdTAwMjZuaXhfZWxmX3BsdWdpbik7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIF9fZXhpdCBiaW5mbXRfZWxmX25peF9leGl0KHZvaWQpXG4mIzQzO3tcbiYjNDM7XHR1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oXHUwMDI2bml4X2VsZl9wbHVnaW4pO1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzttb2R1bGVfaW5pdChiaW5mbXRfZWxmX25peF9pbml0KTtcbiYjNDM7bW9kdWxlX2V4aXQoYmluZm10X2VsZl9uaXhfZXhpdCk7XG5kaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jXG5pbmRleCBiOTJmZTdkYjE3NmNmZi4uNDU4MTNiYmNlODMzMDQgMTAwNjQ0XG4tLS0gYS9mcy9leGVjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZWMuY1xuQEAgLTQ2LDYgJiM0Mzs0Niw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2V5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wZXJzb25hbGl0eS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYmluZm10cy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZl9wbHVnaW5zLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91dHNuYW1lLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9waWRfbmFtZXNwYWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuQEAgLTEwOCw2ICYjNDM7MTA5LDUyIEBAIHZvaWQgdW5yZWdpc3Rlcl9iaW5mbXQoc3RydWN0IGxpbnV4X2JpbmZtdCAqIGZtdClcbiBcbiBFWFBPUlRfU1lNQk9MKHVucmVnaXN0ZXJfYmluZm10KTtcbiBcbiYjNDM7I2lmIElTX0VOQUJMRUQoQ09ORklHX0JJTkZNVF9FTEZfUExVR0lOUylcbiYjNDM7c3RhdGljIERFRklORV9NVVRFWChlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7c3RhdGljIExJU1RfSEVBRChlbGZfcGx1Z2lucyk7XG4mIzQzO1xuJiM0MztpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuJiM0Mzt7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7XHRsaXN0X2FkZF90YWlsKFx1MDAyNnBsdWdpbi1cdTAwM2VsaXN0LCBcdTAwMjZlbGZfcGx1Z2lucyk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuJiM0MztcdHJldHVybiAwO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHJlZ2lzdGVyX2VsZl9wbHVnaW4pO1xuJiM0MztcbiYjNDM7dm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcbiYjNDM7e1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4mIzQzO1x0bGlzdF9kZWwoXHUwMDI2cGx1Z2luLVx1MDAzZWxpc3QpO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX0dQTCh1bnJlZ2lzdGVyX2VsZl9wbHVnaW4pO1xuJiM0MztcbiYjNDM7c3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuJiM0MztcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbiYjNDM7XHRcdFx0XHRcdCBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luO1xuJiM0MztcdHN0cnVjdCBmaWxlICpmaWxlID0gTlVMTDtcbiYjNDM7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsdWdpbiwgXHUwMDI2ZWxmX3BsdWdpbnMsIGxpc3QpIHtcbiYjNDM7XHRcdGlmICghdHJ5X21vZHVsZV9nZXQocGx1Z2luLVx1MDAzZW93bmVyKSlcbiYjNDM7XHRcdFx0Y29udGludWU7XG4mIzQzO1x0XHRtdXRleF91bmxvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4mIzQzO1xuJiM0MztcdFx0ZmlsZSA9IHBsdWdpbi1cdTAwM2VvcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XG4mIzQzO1xuJiM0MztcdFx0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7XHRcdG1vZHVsZV9wdXQocGx1Z2luLVx1MDAzZW93bmVyKTtcbiYjNDM7XHRcdGlmIChmaWxlKVxuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XHR9XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuJiM0MztcdHJldHVybiBmaWxlO1xuJiM0Mzt9XG4mIzQzOyNlbmRpZlxuJiM0MztcbiBzdGF0aWMgaW5saW5lIHZvaWQgcHV0X2JpbmZtdChzdHJ1Y3QgbGludXhfYmluZm10ICogZm10KVxuIHtcbiBcdG1vZHVsZV9wdXQoZm10LVx1MDAzZW1vZHVsZSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjgyNmEzMjg1NDRiM2QzXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2VsZl9wbHVnaW5zLmhcbkBAIC0wLDAgJiM0MzsxLDM5IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi9cbiYjNDM7I2lmbmRlZiBfTElOVVhfRUxGX1BMVUdJTlNfSFxuJiM0MzsjZGVmaW5lIF9MSU5VWF9FTEZfUExVR0lOU19IXG4mIzQzO1xuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9iaW5mbXRzLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvZWxmLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvbGlzdC5oXHUwMDNlXG4mIzQzO1xuJiM0MztzdHJ1Y3QgZWxmX3BsdWdpbiB7XG4mIzQzO1x0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuJiM0MztcdHN0cnVjdCBtb2R1bGUgKm93bmVyO1xuJiM0MztcdHN0cnVjdCBmaWxlICooKm9wZW5faW50ZXJwcmV0ZXIpKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXG4mIzQzO1x0XHRcdFx0XHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxuJiM0MztcdFx0XHRcdFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSk7XG4mIzQzO307XG4mIzQzO1xuJiM0MzsjaWYgSVNfRU5BQkxFRChDT05GSUdfQklORk1UX0VMRl9QTFVHSU5TKVxuJiM0MztpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKTtcbiYjNDM7dm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbik7XG4mIzQzO3N0cnVjdCBmaWxlICplbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbiYjNDM7XHRcdFx0XHRcdCBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXG4mIzQzO1x0XHRcdFx0XHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTtcbiYjNDM7I2Vsc2VcbiYjNDM7c3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIHVucmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuJiM0Mzt7XG4mIzQzO31cbiYjNDM7c3RhdGljIGlubGluZSBzdHJ1Y3QgZmlsZSAqZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gTlVMTDtcbiYjNDM7fVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNlbmRpZiAvKiBfTElOVVhfRUxGX1BMVUdJTlNfSCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIyOjEzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9FTEZfUExVR0lOUyYjMzQ7LAogICAgJiMzNDtCSU5GTVRfRUxGX05JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlciYjMzQ7LAogICAgJiMzNDtuaXhfb3Blbl9pbnRlcnByZXRlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3lzdGVtIGFuZCBhIHNwZWNpZmljIHBsdWdpbiBmb3IgTml4T1MuIFRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwYXRoIChleGVjdmUpLCB3aGljaCBpcyBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcgYXMgaXQgcGFyc2VzIHVudHJ1c3RlZCBFTEYgaGVhZGVycy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTY1MGQ4Njc4Y2ZjZmY5MmI4YTU4MDk4NjYyNmFkYmFiZDQ1M2FiNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMjI6MTM6NDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9LY29uZmlnLmJpbmZtdCBiL2ZzL0tjb25maWcuYmluZm10CmluZGV4IDE5NDllMjVjNzc0MWIxLi5lZjQyNzdmZDgwNTBiMSAxMDA2NDQKLS0tIGEvZnMvS2NvbmZpZy5iaW5mbXQKJiM0MzsmIzQzOyYjNDM7IGIvZnMvS2NvbmZpZy5iaW5mbXQKQEAgLTM4LDYgJiM0MzszOCwyMSBAQCBjb25maWcgQklORk1UX0VMRl9LVU5JVF9URVNUCiAJICBvbmx5IG5lZWRlZCBmb3IgZGVidWdnaW5nLiBOb3RlIHRoYXQgd2l0aCBDT05GSUdfQ09NUEFUPXksIHRoZQogCSAgY29tcGF0X2JpbmZtdF9lbGYgS1VuaXQgdGVzdCBpcyBhbHNvIGNyZWF0ZWQuCiAKJiM0Mztjb25maWcgQklORk1UX0VMRl9QTFVHSU5TCiYjNDM7CWJvb2wgJiMzNDtFbmFibGUgcGx1Z2luIHN1cHBvcnQgZm9yIEVMRiBpbnRlcnByZXRlciBsb2FkaW5nJiMzNDsKJiM0MzsJZGVwZW5kcyBvbiBCSU5GTVRfRUxGCiYjNDM7CWhlbHAKJiM0MzsJICBUaGlzIG9wdGlvbiBhbGxvd3Mga2VybmVsIG1vZHVsZXMgdG8gcmVnaXN0ZXIgaGFuZGxlcnMgdG8gZHluYW1pY2FsbHkKJiM0MzsJICByZXNvbHZlIGFuZCBvdmVycmlkZSB0aGUgRUxGIHByb2dyYW0gaW50ZXJwcmV0ZXIgKGUuZy4gc3VwcG9ydGluZyByZWxhdGl2ZQomIzQzOwkgIGludGVycHJldGVyIHBhdGhzIHdpdGggJE9SSUdJTikuCiYjNDM7CiYjNDM7Y29uZmlnIEJJTkZNVF9FTEZfTklYCiYjNDM7CXRyaXN0YXRlICYjMzQ7RUxGIGludGVycHJldGVyIHBsdWdpbiBmb3IgTml4T1MgKCRPUklHSU4gc3VwcG9ydCkmIzM0OwomIzQzOwlkZXBlbmRzIG9uIEJJTkZNVF9FTEZfUExVR0lOUwomIzQzOwloZWxwCiYjNDM7CSAgVGhpcyBidWlsZHMgdGhlIE5peE9TIEVMRiBpbnRlcnByZXRlciBwbHVnaW4uIEl0IGludGVyY2VwdHMgUFRfSU5URVJQX05JWAomIzQzOwkgIGhlYWRlcnMgdG8gcmVzb2x2ZSByZWxhdGl2ZSBhbmQgJE9SSUdJTiBpbnRlcnByZXRlciBwYXRocy4KJiM0MzsKIGNvbmZpZyBDT01QQVRfQklORk1UX0VMRgogCWRlZl9ib29sIHkKIAlkZXBlbmRzIG9uIENPTVBBVCAmYW1wOyZhbXA7IEJJTkZNVF9FTEYKZGlmZiAtLWdpdCBhL2ZzL01ha2VmaWxlIGIvZnMvTWFrZWZpbGUKaW5kZXggODlhOGE5ZDIwN2QxYzUuLmJkODFlN2ZmNjRmMzkyIDEwMDY0NAotLS0gYS9mcy9NYWtlZmlsZQomIzQzOyYjNDM7JiM0MzsgYi9mcy9NYWtlZmlsZQpAQCAtMzUsNiAmIzQzOzM1LDcgQEAgb2JqLSQoQ09ORklHX0ZJTEVfTE9DS0lORykgICAgICAmIzQzOz0gbG9ja3Mubwogb2JqLSQoQ09ORklHX0JJTkZNVF9NSVNDKQkmIzQzOz0gYmluZm10X21pc2Mubwogb2JqLSQoQ09ORklHX0JJTkZNVF9TQ1JJUFQpCSYjNDM7PSBiaW5mbXRfc2NyaXB0Lm8KIG9iai0kKENPTkZJR19CSU5GTVRfRUxGKQkmIzQzOz0gYmluZm10X2VsZi5vCiYjNDM7b2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfTklYKQkmIzQzOz0gYmluZm10X2VsZl9uaXgubwogb2JqLSQoQ09ORklHX0NPTVBBVF9CSU5GTVRfRUxGKQkmIzQzOz0gY29tcGF0X2JpbmZtdF9lbGYubwogb2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfRkRQSUMpCSYjNDM7PSBiaW5mbXRfZWxmX2ZkcGljLm8KIG9iai0kKENPTkZJR19CSU5GTVRfRkxBVCkJJiM0Mzs9IGJpbmZtdF9mbGF0Lm8KZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbGYuYyBiL2ZzL2JpbmZtdF9lbGYuYwppbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0Ci0tLSBhL2ZzL2JpbmZtdF9lbGYuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9iaW5mbXRfZWxmLmMKQEAgLTM1LDYgJiM0MzszNSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvcmFuZG9tLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvZWxmLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvZWxmLXJhbmRvbWl6ZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9lbGZfcGx1Z2lucy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3V0c25hbWUuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9jb3JlZHVtcC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NjaGVkLmgmZ3Q7CkBAIC04NzAsNiAmIzQzOzg3MSwxMiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQogCWlmICghZWxmX3BoZGF0YSkKIAkJZ290byBvdXQ7CiAKJiM0MzsJaW50ZXJwcmV0ZXIgPSBlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXIoYnBybSwgZWxmX2V4LCBlbGZfcGhkYXRhKTsKJiM0MzsJaWYgKElTX0VSUihpbnRlcnByZXRlcikpIHsKJiM0MzsJCXJldHZhbCA9IFBUUl9FUlIoaW50ZXJwcmV0ZXIpOwomIzQzOwkJZ290byBvdXRfZnJlZV9waDsKJiM0MzsJfQomIzQzOwogCWVsZl9wcG50ID0gZWxmX3BoZGF0YTsKIAlmb3IgKGkgPSAwOyBpICZsdDsgZWxmX2V4LSZndDtlX3BobnVtOyBpJiM0MzsmIzQzOywgZWxmX3BwbnQmIzQzOyYjNDM7KSB7CiAJCWNoYXIgKmVsZl9pbnRlcnByZXRlcjsKQEAgLTg4Miw2ICYjNDM7ODg5LDkgQEAgc3RhdGljIGludCBsb2FkX2VsZl9iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKIAkJaWYgKGVsZl9wcG50LSZndDtwX3R5cGUgIT0gUFRfSU5URVJQKQogCQkJY29udGludWU7CiAKJiM0MzsJCWlmIChpbnRlcnByZXRlcikKJiM0MzsJCQljb250aW51ZTsKJiM0MzsKIAkJLyoKIAkJICogVGhpcyBpcyB0aGUgcHJvZ3JhbSBpbnRlcnByZXRlciB1c2VkIGZvciBzaGFyZWQgbGlicmFyaWVzIC0KIAkJICogZm9yIG5vdyBhc3N1bWUgdGhhdCB0aGlzIGlzIGFuIGEub3V0IGZvcm1hdCBiaW5hcnkuCkBAIC05MzUsNiAmIzQzOzk0NSwyMCBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQogCQlnb3RvIG91dF9mcmVlX3BoOwogCX0KIAomIzQzOwlpZiAoaW50ZXJwcmV0ZXIgJmFtcDsmYW1wOyAhaW50ZXJwX2VsZl9leCkgewomIzQzOwkJaW50ZXJwX2VsZl9leCA9IGttYWxsb2Nfb2JqKCppbnRlcnBfZWxmX2V4KTsKJiM0MzsJCWlmICghaW50ZXJwX2VsZl9leCkgewomIzQzOwkJCXJldHZhbCA9IC1FTk9NRU07CiYjNDM7CQkJZ290byBvdXRfZnJlZV9maWxlOwomIzQzOwkJfQomIzQzOwomIzQzOwkJLyogR2V0IHRoZSBleGVjIGhlYWRlcnMgKi8KJiM0MzsJCXJldHZhbCA9IGVsZl9yZWFkKGludGVycHJldGVyLCBpbnRlcnBfZWxmX2V4LAomIzQzOwkJCQkgIHNpemVvZigqaW50ZXJwX2VsZl9leCksIDApOwomIzQzOwkJaWYgKHJldHZhbCAmbHQ7IDApCiYjNDM7CQkJZ290byBvdXRfZnJlZV9kZW50cnk7CiYjNDM7CX0KJiM0MzsKIAllbGZfcHBudCA9IGVsZl9waGRhdGE7CiAJZm9yIChpID0gMDsgaSAmbHQ7IGVsZl9leC0mZ3Q7ZV9waG51bTsgaSYjNDM7JiM0MzssIGVsZl9wcG50JiM0MzsmIzQzOykKIAkJc3dpdGNoIChlbGZfcHBudC0mZ3Q7cF90eXBlKSB7CmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmX25peC5jIGIvZnMvYmluZm10X2VsZl9uaXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2EKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9mcy9iaW5mbXRfZWxmX25peC5jCkBAIC0wLDAgJiM0MzsxLDEwOCBAQAomIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbW9kdWxlLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2tlcm5lbC5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9pbml0LmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2ZzLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3BhdGguaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbmFtZWkuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvZWxmLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2VsZl9wbHVnaW5zLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3NsYWIuaCZndDsKJiM0MzsKJiM0MztNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtFTEYgSW50ZXJwcmV0ZXIgcGx1Z2luIGZvciBOaXhPUyAvICRPUklHSU4mIzM0Oyk7CiYjNDM7TU9EVUxFX0FVVEhPUigmIzM0O0ZhcmlkIFpha2FyaWEmIzM0Oyk7CiYjNDM7TU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CiYjNDM7CiYjNDM7LyogTW5lbW9uaWMgdmFsdWUgZm9yIE5peE9TLXNwZWNpZmljIHByb2dyYW0gaW50ZXJwcmV0ZXI6ICYjMzk7TiYjMzk7LCAmIzM5O0kmIzM5OywgJiMzOTtYJiMzOTssIDMgKi8KJiM0MzsjZGVmaW5lIFBUX0lOVEVSUF9OSVggIChQVF9MT09TICYjNDM7IDB4NGU0OTU4MykKJiM0MzsKJiM0MztzdGF0aWMgc3RydWN0IGZpbGUgKm5peF9vcGVuX2ludGVycHJldGVyKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sCiYjNDM7CQkJCQkgc3RydWN0IGVsZmhkciAqZWxmX2V4LAomIzQzOwkJCQkJIHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBlbGZfcGhkciAqZWxmX3BwbnQ7CiYjNDM7CXN0cnVjdCBmaWxlICppbnRlcnByZXRlciA9IE5VTEw7CiYjNDM7CWNoYXIgKmVsZl9pbnRlcnByZXRlciA9IE5VTEw7CiYjNDM7CWludCBpLCByZXR2YWw7CiYjNDM7CiYjNDM7CS8qIEZpbmQgdGhlIGN1c3RvbSBOaXggaW50ZXJwcmV0ZXIgaGVhZGVyICovCiYjNDM7CWVsZl9wcG50ID0gZWxmX3BoZGF0YTsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IGVsZl9leC0mZ3Q7ZV9waG51bTsgaSYjNDM7JiM0MzssIGVsZl9wcG50JiM0MzsmIzQzOykgewomIzQzOwkJaWYgKGVsZl9wcG50LSZndDtwX3R5cGUgPT0gUFRfSU5URVJQX05JWCkKJiM0MzsJCQlicmVhazsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoaSA9PSBlbGZfZXgtJmd0O2VfcGhudW0pCiYjNDM7CQlyZXR1cm4gTlVMTDsgLyogU2VnbWVudCBub3QgcHJlc2VudDsgZmFsbCBiYWNrIHRvIG90aGVycyAqLwomIzQzOwomIzQzOwkvKiBTZWN1cml0eSBjaGVjazogcmVmdXNlIHJlbGF0aXZlIGludGVycCByZXNvbHV0aW9uIG9uIHNlY3VyZSBleGVjdXRpb24gKi8KJiM0MzsJaWYgKGJwcm0tJmd0O3NlY3VyZWV4ZWMpIHsKJiM0MzsJCXByX3dhcm5fb25jZSgmIzM0O2JpbmZtdF9lbGZfbml4OiBzZWN1cmVleGVjIGFjdGl2ZSwgcmVmdXNpbmcgY3VzdG9tIGludGVycHJldGVyIGxvb2t1cFxuJiMzNDspOwomIzQzOwkJcmV0dXJuIE5VTEw7IC8qIEZhbGxiYWNrIHRvIHN0YW5kYXJkIFBUX0lOVEVSUCAqLwomIzQzOwl9CiYjNDM7CiYjNDM7CWlmIChlbGZfcHBudC0mZ3Q7cF9maWxlc3ogJmd0OyBQQVRIX01BWCB8fCBlbGZfcHBudC0mZ3Q7cF9maWxlc3ogJmx0OyAyKQomIzQzOwkJcmV0dXJuIEVSUl9QVFIoLUVOT0VYRUMpOwomIzQzOwomIzQzOwllbGZfaW50ZXJwcmV0ZXIgPSBrbWFsbG9jKGVsZl9wcG50LSZndDtwX2ZpbGVzeiwgR0ZQX0tFUk5FTCk7CiYjNDM7CWlmICghZWxmX2ludGVycHJldGVyKQomIzQzOwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiYjNDM7CiYjNDM7CS8qIFJlYWQgdGhlIGludGVycHJldGVyIHBhdGggZnJvbSB0aGUgZXhlY3V0YWJsZSBmaWxlICovCiYjNDM7CXJldHZhbCA9IGtlcm5lbF9yZWFkKGJwcm0tJmd0O2ZpbGUsIGVsZl9pbnRlcnByZXRlciwgZWxmX3BwbnQtJmd0O3BfZmlsZXN6LCAmYW1wO2VsZl9wcG50LSZndDtwX29mZnNldCk7CiYjNDM7CWlmIChyZXR2YWwgIT0gZWxmX3BwbnQtJmd0O3BfZmlsZXN6KSB7CiYjNDM7CQlyZXR2YWwgPSAocmV0dmFsICZsdDsgMCkgPyByZXR2YWwgOiAtRUlPOwomIzQzOwkJZ290byBvdXRfZnJlZTsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LSZndDtwX2ZpbGVzeiAtIDFdICE9ICYjMzk7XDAmIzM5OykgewomIzQzOwkJcmV0dmFsID0gLUVOT0VYRUM7CiYjNDM7CQlnb3RvIG91dF9mcmVlOwomIzQzOwl9CiYjNDM7CiYjNDM7CS8qIFBhdGggUmVzb2x1dGlvbjogQWJzb2x1dGUgdnMuICRPUklHSU4gKi8KJiM0MzsJaWYgKGVsZl9pbnRlcnByZXRlclswXSA9PSAmIzM5Oy8mIzM5OykgewomIzQzOwkJaW50ZXJwcmV0ZXIgPSBvcGVuX2V4ZWMoZWxmX2ludGVycHJldGVyKTsKJiM0MzsJfSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgJiMzNDskT1JJR0lOLyYjMzQ7LCA4KSA9PSAwIHx8IHN0cm5jbXAoZWxmX2ludGVycHJldGVyLCAmIzM0OyR7T1JJR0lOfS8mIzM0OywgMTApID09IDApIHsKJiM0MzsJCWNvbnN0IGNoYXIgKnJlbF9wYXRoID0gKGVsZl9pbnRlcnByZXRlclswXSA9PSAmIzM5OyQmIzM5OykgPyAoZWxmX2ludGVycHJldGVyICYjNDM7IDgpIDogKGVsZl9pbnRlcnByZXRlciAmIzQzOyAxMCk7CiYjNDM7CQlzdHJ1Y3QgcGF0aCBwYXJlbnRfcGF0aDsKJiM0MzsKJiM0MzsJCS8qIFJlZmVyZW5jZSBwYXJlbnQgZGlyZWN0b3J5IG9mIHRoZSBleGVjdXRlZCBmaWxlIHNhZmVseSAqLwomIzQzOwkJcGFyZW50X3BhdGgubW50ID0gbW50Z2V0KGJwcm0tJmd0O2ZpbGUtJmd0O2ZfcGF0aC5tbnQpOwomIzQzOwkJcGFyZW50X3BhdGguZGVudHJ5ID0gZGdldF9wYXJlbnQoYnBybS0mZ3Q7ZmlsZS0mZ3Q7Zl9wYXRoLmRlbnRyeSk7CiYjNDM7CiYjNDM7CQkvKiBPcGVuIHJlbGF0aXZlIHRvIHBhcmVudCBkaXJlY3RvcnkgKi8KJiM0MzsJCWludGVycHJldGVyID0gZmlsZV9vcGVuX3Jvb3QoJmFtcDtwYXJlbnRfcGF0aCwgcmVsX3BhdGgsIE9fUkRPTkxZLCAwKTsKJiM0MzsKJiM0MzsJCXBhdGhfcHV0KCZhbXA7cGFyZW50X3BhdGgpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJLyogTmFrZWQgcmVsYXRpdmUgcGF0aHMgYXJlIHJlamVjdGVkIGZvciBzYWZldHkgKi8KJiM0MzsJCXJldHZhbCA9IC1FTk9FWEVDOwomIzQzOwkJZ290byBvdXRfZnJlZTsKJiM0MzsJfQomIzQzOwomIzQzOwlrZnJlZShlbGZfaW50ZXJwcmV0ZXIpOwomIzQzOwlyZXR1cm4gaW50ZXJwcmV0ZXI7CiYjNDM7CiYjNDM7b3V0X2ZyZWU6CiYjNDM7CWtmcmVlKGVsZl9pbnRlcnByZXRlcik7CiYjNDM7CXJldHVybiBFUlJfUFRSKHJldHZhbCk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzdHJ1Y3QgZWxmX3BsdWdpbiBuaXhfZWxmX3BsdWdpbiA9IHsKJiM0MzsJLm93bmVyID0gVEhJU19NT0RVTEUsCiYjNDM7CS5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpCiYjNDM7ewomIzQzOwlyZXR1cm4gcmVnaXN0ZXJfZWxmX3BsdWdpbigmYW1wO25peF9lbGZfcGx1Z2luKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgX19leGl0IGJpbmZtdF9lbGZfbml4X2V4aXQodm9pZCkKJiM0Mzt7CiYjNDM7CXVucmVnaXN0ZXJfZWxmX3BsdWdpbigmYW1wO25peF9lbGZfcGx1Z2luKTsKJiM0Mzt9CiYjNDM7CiYjNDM7bW9kdWxlX2luaXQoYmluZm10X2VsZl9uaXhfaW5pdCk7CiYjNDM7bW9kdWxlX2V4aXQoYmluZm10X2VsZl9uaXhfZXhpdCk7CmRpZmYgLS1naXQgYS9mcy9leGVjLmMgYi9mcy9leGVjLmMKaW5kZXggYjkyZmU3ZGIxNzZjZmYuLjQ1ODEzYmJjZTgzMzA0IDEwMDY0NAotLS0gYS9mcy9leGVjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZXhlYy5jCkBAIC00Niw2ICYjNDM7NDYsNyBAQAogI2luY2x1ZGUgJmx0O2xpbnV4L2tleS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3BlcnNvbmFsaXR5LmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvYmluZm10cy5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9lbGZfcGx1Z2lucy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3V0c25hbWUuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9waWRfbmFtZXNwYWNlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvbW9kdWxlLmgmZ3Q7CkBAIC0xMDgsNiAmIzQzOzEwOSw1MiBAQCB2b2lkIHVucmVnaXN0ZXJfYmluZm10KHN0cnVjdCBsaW51eF9iaW5mbXQgKiBmbXQpCiAKIEVYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9iaW5mbXQpOwogCiYjNDM7I2lmIElTX0VOQUJMRUQoQ09ORklHX0JJTkZNVF9FTEZfUExVR0lOUykKJiM0MztzdGF0aWMgREVGSU5FX01VVEVYKGVsZl9wbHVnaW5zX2xvY2spOwomIzQzO3N0YXRpYyBMSVNUX0hFQUQoZWxmX3BsdWdpbnMpOwomIzQzOwomIzQzO2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pCiYjNDM7ewomIzQzOwltdXRleF9sb2NrKCZhbXA7ZWxmX3BsdWdpbnNfbG9jayk7CiYjNDM7CWxpc3RfYWRkX3RhaWwoJmFtcDtwbHVnaW4tJmd0O2xpc3QsICZhbXA7ZWxmX3BsdWdpbnMpOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHJlZ2lzdGVyX2VsZl9wbHVnaW4pOwomIzQzOwomIzQzO3ZvaWQgdW5yZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pCiYjNDM7ewomIzQzOwltdXRleF9sb2NrKCZhbXA7ZWxmX3BsdWdpbnNfbG9jayk7CiYjNDM7CWxpc3RfZGVsKCZhbXA7cGx1Z2luLSZndDtsaXN0KTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7ZWxmX3BsdWdpbnNfbG9jayk7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHVucmVnaXN0ZXJfZWxmX3BsdWdpbik7CiYjNDM7CiYjNDM7c3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAomIzQzOwkJCQkJIHN0cnVjdCBlbGZoZHIgKmVsZl9leCwKJiM0MzsJCQkJCSBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luOwomIzQzOwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IE5VTEw7CiYjNDM7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJbGlzdF9mb3JfZWFjaF9lbnRyeShwbHVnaW4sICZhbXA7ZWxmX3BsdWdpbnMsIGxpc3QpIHsKJiM0MzsJCWlmICghdHJ5X21vZHVsZV9nZXQocGx1Z2luLSZndDtvd25lcikpCiYjNDM7CQkJY29udGludWU7CiYjNDM7CQltdXRleF91bmxvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsKJiM0MzsJCWZpbGUgPSBwbHVnaW4tJmd0O29wZW5faW50ZXJwcmV0ZXIoYnBybSwgZWxmX2V4LCBlbGZfcGhkYXRhKTsKJiM0MzsKJiM0MzsJCW11dGV4X2xvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJCW1vZHVsZV9wdXQocGx1Z2luLSZndDtvd25lcik7CiYjNDM7CQlpZiAoZmlsZSkKJiM0MzsJCQlicmVhazsKJiM0MzsJfQomIzQzOwltdXRleF91bmxvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJcmV0dXJuIGZpbGU7CiYjNDM7fQomIzQzOyNlbmRpZgomIzQzOwogc3RhdGljIGlubGluZSB2b2lkIHB1dF9iaW5mbXQoc3RydWN0IGxpbnV4X2JpbmZtdCAqIGZtdCkKIHsKIAltb2R1bGVfcHV0KGZtdC0mZ3Q7bW9kdWxlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZWxmX3BsdWdpbnMuaCBiL2luY2x1ZGUvbGludXgvZWxmX3BsdWdpbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uODI2YTMyODU0NGIzZDMKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2VsZl9wbHVnaW5zLmgKQEAgLTAsMCAmIzQzOzEsMzkgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCiYjNDM7I2lmbmRlZiBfTElOVVhfRUxGX1BMVUdJTlNfSAomIzQzOyNkZWZpbmUgX0xJTlVYX0VMRl9QTFVHSU5TX0gKJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvYmluZm10cy5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9lbGYuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbGlzdC5oJmd0OwomIzQzOwomIzQzO3N0cnVjdCBlbGZfcGx1Z2luIHsKJiM0MzsJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwomIzQzOwlzdHJ1Y3QgbW9kdWxlICpvd25lcjsKJiM0MzsJc3RydWN0IGZpbGUgKigqb3Blbl9pbnRlcnByZXRlcikoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwKJiM0MzsJCQkJCSBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsCiYjNDM7CQkJCQkgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTsKJiM0Mzt9OwomIzQzOwomIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19CSU5GTVRfRUxGX1BMVUdJTlMpCiYjNDM7aW50IHJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbik7CiYjNDM7dm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbik7CiYjNDM7c3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAomIzQzOwkJCQkJIHN0cnVjdCBlbGZoZHIgKmVsZl9leCwKJiM0MzsJCQkJCSBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpOwomIzQzOyNlbHNlCiYjNDM7c3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKQomIzQzO3sKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbikKJiM0Mzt7CiYjNDM7fQomIzQzO3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAomIzQzOwkJCQkJCSAgICAgICBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsCiYjNDM7CQkJCQkJICAgICAgIHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSkKJiM0Mzt7CiYjNDM7CXJldHVybiBOVUxMOwomIzQzO30KJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjZW5kaWYgLyogX0xJTlVYX0VMRl9QTFVHSU5TX0ggKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjI6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ0MAoJCQkJCQkJb3V0cHV0OiAxMTcKCQkJCQkJCXRob3VnaHRzOiA2NjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRUxGIEludGVycHJldGVyIFBsdWdpbiBBbmFseXNpcyBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBpbiBmcm9udCBvZiBtZSB0aGF0JiMzOTtzIGFkZGluZyBzb21lIGludGVyZXN0aW5nIG5ldyBmdW5jdGlvbmFsaXR5OiBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIHN1cHBvcnQsIHNwZWNpZmljYWxseSBmb3IgTml4T1MgYW5kIGl0cyBgJE9SSUdJTmAgc3VwcG9ydC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7ZnV6emluZyB0YXJnZXQsIGZvciBzdXJlLiYjMzQ7IEl0IHRvdWNoZXMgYGZzL2JpbmZtdF9lbGYuY2AsIGBmcy9leGVjLmNgLCBpbnRyb2R1Y2VzIGBmcy9iaW5mbXRfZWxmX25peC5jYCwgYW5kIGEgbmV3IGhlYWRlciwgYGluY2x1ZGUvbGludXgvZWxmX3BsdWdpbnMuaGAuIFRoaXMgbWVhbnMgbmV3IGNvZGUgcGF0aHMgaW4gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwcm9jZXNzLCB3aGljaCBpcyBhbHdheXMgYSBwcmltZSB0YXJnZXQuCgpGaXJzdCwgSSBuZWVkIHRvIGNvbmZpcm0gcmVhY2hhYmlsaXR5LiBUaGUgbW9kaWZpY2F0aW9uIHRvIGBsb2FkX2VsZl9iaW5hcnlgIGluIGBmcy9iaW5mbXRfZWxmLmNgIGlzIGtleS4gSXQgbm93IGNhbGxzIGBlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXJgLCB3aGljaCBpcyBkZWZpbml0ZWx5IHRyaWdnZXJlZCBkdXJpbmcgdGhlIGBleGVjdmVgIHN5c3RlbSBjYWxsIGZvciBhbnkgRUxGIGJpbmFyeS4gRXhjZWxsZW50LCB0aGF0JiMzOTtzIGFscmVhZHkgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBUaGUgYG5peF9vcGVuX2ludGVycHJldGVyYCBmdW5jdGlvbiBpbiBgZnMvYmluZm10X2VsZl9uaXguY2AgaXMgdGhlIHBsdWdpbiBpdHNlbGYuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgZ29pbmcgdG8gaW50ZXJjZXB0IGBQVF9JTlRFUlBfTklYYCDigJMgdGhhdCYjMzk7cyBhIGN1c3RvbSBwcm9ncmFtIGhlYWRlciB0eXBlLCBhIGdvb2Qgc2lnbiB0aGF0IHRoZSBkZXZlbG9wZXJzIGFyZSBhd2FyZSBvZiB0aGUgZnV6emluZyBwb3RlbnRpYWwuCgpOZXh0LCBJIG5lZWQgdG8ga25vdyBob3cgdG8gZW5hYmxlIHRoaXMuIERpZ2dpbmcgaW50byB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgdHdvIGNvbmZpZyBvcHRpb25zOiBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gUmlnaHQsIG5vdyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSBjb2RlIGlzIGRlZmluZWQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIGNvcnJlY3QgYnVpbGQgZmxhZ3MuIE9rYXksIEkmIzM5O3ZlIGdvdCB0aGVtOiBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gQm90aCBlbmFibGVkLCBvZiBjb3Vyc2UuCgpUaGUgbWFpbiBmdW5jdGlvbnMgSSYjMzk7bSBpbnRlcmVzdGVkIGluIGFyZTogYGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcmAsIGBuaXhfb3Blbl9pbnRlcnByZXRlcmAsIGByZWdpc3Rlcl9lbGZfcGx1Z2luYCwgYW5kIGB1bnJlZ2lzdGVyX2VsZl9wbHVnaW5gLiBJJiMzOTttIGVzcGVjaWFsbHkga2VlbiBvbiBgZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyYCBhbmQgYG5peF9vcGVuX2ludGVycHJldGVyYCBhcyB0aGV5JiMzOTtyZSB0aGUgZGlyZWN0IGVudHJ5IHBvaW50cy4gSSBoYXZlIHRvIGRvdWJsZS1jaGVjayB0aGF0IGBQVF9JTlRFUlBfTklYYCBpcyByZWFjaGFibGUuIFllcywgaWYgYW4gRUxGIGJpbmFyeSBjb250YWlucyBhIGBQVF9JTlRFUlBfTklYYCBoZWFkZXIsIHRoZSBwbHVnaW4gd2lsbCBhdHRlbXB0IHRvIGxvYWQgaXQuIFRoaXMgaXMgZ29sZC4KClRoaXMgaXMgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IHdpdGggc29tZXRoaW5nIGxpa2UgU3l6a2FsbGVyLiBJdCBjYW4gZ2VuZXJhdGUgRUxGIGJpbmFyaWVzIHdpdGggYWxsIHNvcnRzIG9mIHByb2dyYW0gaGVhZGVycy4gSSBjYW4gY3JhZnQgYmluYXJpZXMgY29udGFpbmluZyBgUFRfSU5URVJQX05JWGAgYW5kIHNlZSB3aGF0IGhhcHBlbnMuIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29uZmlybSB0aGUgZmVhdHVyZSBpcyBlYXNpbHkgZW5hYmxlZC4gSSYjMzk7dmUgZ290IGEgc29saWQgcGF0aCB0byB0ZXN0LgoKT2theSwgbGV0JiMzOTtzIGNhbGwgdGhlIHNldC1yZXN1bHRzIHRvb2wuIEl0JiMzOTtzIFdvcnRoRnV6emluZywgZm9yIHN1cmUuIFRoZSBpbXBvcnRhbnQgc3ltYm9scyBhcmUgYGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcmAgYW5kIGBuaXhfb3Blbl9pbnRlcnByZXRlcmAsIGFuZCBJIG5lZWQgdG8gZW5hYmxlIGBCSU5GTVRfRUxGX1BMVUdJTlNgIGFuZCBgQklORk1UX0VMRl9OSVhgLiBUaGUgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGxvYWRpbmcgcGF0aCAoZXhlY3ZlKSwgcGFyc2luZyBwb3RlbnRpYWxseSB1bnRydXN0ZWQgRUxGIGhlYWRlcnMsIGEgY2xhc3NpYyB2dWxuZXJhYmlsaXR5IHNvdXJjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMjoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QklORk1UX0VMRl9QTFVHSU5TJiMzNDssCiAgICAmIzM0O0JJTkZNVF9FTEZfTklYJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyJiMzNDssCiAgICAmIzM0O25peF9vcGVuX2ludGVycHJldGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgRUxGIGludGVycHJldGVyIHBsdWdpbiBzeXN0ZW0gYW5kIGEgc3BlY2lmaWMgcGx1Z2luIGZvciBOaXhPUy4gVGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHdoaWNoIGlzIGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZyBhcyBpdCBwYXJzZXMgdW50cnVzdGVkIEVMRiBoZWFkZXJzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCSU5GTVRfRUxGX1BMVUdJTlMmIzM0OywKICAgICYjMzQ7QklORk1UX0VMRl9OSVgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXImIzM0OywKICAgICYjMzQ7bml4X29wZW5faW50ZXJwcmV0ZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIHN5c3RlbSBhbmQgYSBzcGVjaWZpYyBwbHVnaW4gZm9yIE5peE9TLiBUaGlzIGFkZHMgbmV3IGxvZ2ljIHRvIHRoZSBFTEYgYmluYXJ5IGxvYWRpbmcgcGF0aCAoZXhlY3ZlKSwgd2hpY2ggaXMgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nIGFzIGl0IHBhcnNlcyB1bnRydXN0ZWQgRUxGIGhlYWRlcnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMjoxMzo0MS43MTAzNTUxMDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTc2MjMwNDQzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCSU5GTVRfRUxGX1BMVUdJTlNcIixcbiAgICBcIkJJTkZNVF9FTEZfTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyXCIsXG4gICAgXCJuaXhfb3Blbl9pbnRlcnByZXRlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgRUxGIGludGVycHJldGVyIHBsdWdpbiBzeXN0ZW0gYW5kIGEgc3BlY2lmaWMgcGx1Z2luIGZvciBOaXhPUy4gVGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHdoaWNoIGlzIGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZyBhcyBpdCBwYXJzZXMgdW50cnVzdGVkIEVMRiBoZWFkZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMjoxMzo0MS43MTAzNTk2OTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MzQ2MjUyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDk2NTBkODY3OGNmY2ZmOTJiOGE1ODA5ODY2MjZhZGJhYmQ0NTNhYjVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMiAyMjoxMzo0MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9LY29uZmlnLmJpbmZtdCBiL2ZzL0tjb25maWcuYmluZm10XFxuaW5kZXggMTk0OWUyNWM3NzQxYjEuLmVmNDI3N2ZkODA1MGIxIDEwMDY0NFxcbi0tLSBhL2ZzL0tjb25maWcuYmluZm10XFxuKysrIGIvZnMvS2NvbmZpZy5iaW5mbXRcXG5AQCAtMzgsNiArMzgsMjEgQEAgY29uZmlnIEJJTkZNVF9FTEZfS1VOSVRfVEVTVFxcbiBcXHQgIG9ubHkgbmVlZGVkIGZvciBkZWJ1Z2dpbmcuIE5vdGUgdGhhdCB3aXRoIENPTkZJR19DT01QQVQ9eSwgdGhlXFxuIFxcdCAgY29tcGF0X2JpbmZtdF9lbGYgS1VuaXQgdGVzdCBpcyBhbHNvIGNyZWF0ZWQuXFxuIFxcbitjb25maWcgQklORk1UX0VMRl9QTFVHSU5TXFxuK1xcdGJvb2wgXFxcIkVuYWJsZSBwbHVnaW4gc3VwcG9ydCBmb3IgRUxGIGludGVycHJldGVyIGxvYWRpbmdcXFwiXFxuK1xcdGRlcGVuZHMgb24gQklORk1UX0VMRlxcbitcXHRoZWxwXFxuK1xcdCAgVGhpcyBvcHRpb24gYWxsb3dzIGtlcm5lbCBtb2R1bGVzIHRvIHJlZ2lzdGVyIGhhbmRsZXJzIHRvIGR5bmFtaWNhbGx5XFxuK1xcdCAgcmVzb2x2ZSBhbmQgb3ZlcnJpZGUgdGhlIEVMRiBwcm9ncmFtIGludGVycHJldGVyIChlLmcuIHN1cHBvcnRpbmcgcmVsYXRpdmVcXG4rXFx0ICBpbnRlcnByZXRlciBwYXRocyB3aXRoICRPUklHSU4pLlxcbitcXG4rY29uZmlnIEJJTkZNVF9FTEZfTklYXFxuK1xcdHRyaXN0YXRlIFxcXCJFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIGZvciBOaXhPUyAoJE9SSUdJTiBzdXBwb3J0KVxcXCJcXG4rXFx0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGX1BMVUdJTlNcXG4rXFx0aGVscFxcbitcXHQgIFRoaXMgYnVpbGRzIHRoZSBOaXhPUyBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luLiBJdCBpbnRlcmNlcHRzIFBUX0lOVEVSUF9OSVhcXG4rXFx0ICBoZWFkZXJzIHRvIHJlc29sdmUgcmVsYXRpdmUgYW5kICRPUklHSU4gaW50ZXJwcmV0ZXIgcGF0aHMuXFxuK1xcbiBjb25maWcgQ09NUEFUX0JJTkZNVF9FTEZcXG4gXFx0ZGVmX2Jvb2wgeVxcbiBcXHRkZXBlbmRzIG9uIENPTVBBVCBcXHUwMDI2XFx1MDAyNiBCSU5GTVRfRUxGXFxuZGlmZiAtLWdpdCBhL2ZzL01ha2VmaWxlIGIvZnMvTWFrZWZpbGVcXG5pbmRleCA4OWE4YTlkMjA3ZDFjNS4uYmQ4MWU3ZmY2NGYzOTIgMTAwNjQ0XFxuLS0tIGEvZnMvTWFrZWZpbGVcXG4rKysgYi9mcy9NYWtlZmlsZVxcbkBAIC0zNSw2ICszNSw3IEBAIG9iai0kKENPTkZJR19GSUxFX0xPQ0tJTkcpICAgICAgKz0gbG9ja3Mub1xcbiBvYmotJChDT05GSUdfQklORk1UX01JU0MpXFx0Kz0gYmluZm10X21pc2Mub1xcbiBvYmotJChDT05GSUdfQklORk1UX1NDUklQVClcXHQrPSBiaW5mbXRfc2NyaXB0Lm9cXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9FTEYpXFx0Kz0gYmluZm10X2VsZi5vXFxuK29iai0kKENPTkZJR19CSU5GTVRfRUxGX05JWClcXHQrPSBiaW5mbXRfZWxmX25peC5vXFxuIG9iai0kKENPTkZJR19DT01QQVRfQklORk1UX0VMRilcXHQrPSBjb21wYXRfYmluZm10X2VsZi5vXFxuIG9iai0kKENPTkZJR19CSU5GTVRfRUxGX0ZEUElDKVxcdCs9IGJpbmZtdF9lbGZfZmRwaWMub1xcbiBvYmotJChDT05GSUdfQklORk1UX0ZMQVQpXFx0Kz0gYmluZm10X2ZsYXQub1xcbmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmLmMgYi9mcy9iaW5mbXRfZWxmLmNcXG5pbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0XFxuLS0tIGEvZnMvYmluZm10X2VsZi5jXFxuKysrIGIvZnMvYmluZm10X2VsZi5jXFxuQEAgLTM1LDYgKzM1LDcgQEBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JhbmRvbS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZWxmLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9lbGYtcmFuZG9taXplLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9lbGZfcGx1Z2lucy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvdXRzbmFtZS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvY29yZWR1bXAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NjaGVkLmhcXHUwMDNlXFxuQEAgLTg3MCw2ICs4NzEsMTIgQEAgc3RhdGljIGludCBsb2FkX2VsZl9iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcXG4gXFx0aWYgKCFlbGZfcGhkYXRhKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuK1xcdGludGVycHJldGVyID0gZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XFxuK1xcdGlmIChJU19FUlIoaW50ZXJwcmV0ZXIpKSB7XFxuK1xcdFxcdHJldHZhbCA9IFBUUl9FUlIoaW50ZXJwcmV0ZXIpO1xcbitcXHRcXHRnb3RvIG91dF9mcmVlX3BoO1xcbitcXHR9XFxuK1xcbiBcXHRlbGZfcHBudCA9IGVsZl9waGRhdGE7XFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlbGZfZXgtXFx1MDAzZWVfcGhudW07IGkrKywgZWxmX3BwbnQrKykge1xcbiBcXHRcXHRjaGFyICplbGZfaW50ZXJwcmV0ZXI7XFxuQEAgLTg4Miw2ICs4ODksOSBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxcbiBcXHRcXHRpZiAoZWxmX3BwbnQtXFx1MDAzZXBfdHlwZSAhPSBQVF9JTlRFUlApXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXG4rXFx0XFx0aWYgKGludGVycHJldGVyKVxcbitcXHRcXHRcXHRjb250aW51ZTtcXG4rXFxuIFxcdFxcdC8qXFxuIFxcdFxcdCAqIFRoaXMgaXMgdGhlIHByb2dyYW0gaW50ZXJwcmV0ZXIgdXNlZCBmb3Igc2hhcmVkIGxpYnJhcmllcyAtXFxuIFxcdFxcdCAqIGZvciBub3cgYXNzdW1lIHRoYXQgdGhpcyBpcyBhbiBhLm91dCBmb3JtYXQgYmluYXJ5LlxcbkBAIC05MzUsNiArOTQ1LDIwIEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXFxuIFxcdFxcdGdvdG8gb3V0X2ZyZWVfcGg7XFxuIFxcdH1cXG4gXFxuK1xcdGlmIChpbnRlcnByZXRlciBcXHUwMDI2XFx1MDAyNiAhaW50ZXJwX2VsZl9leCkge1xcbitcXHRcXHRpbnRlcnBfZWxmX2V4ID0ga21hbGxvY19vYmooKmludGVycF9lbGZfZXgpO1xcbitcXHRcXHRpZiAoIWludGVycF9lbGZfZXgpIHtcXG4rXFx0XFx0XFx0cmV0dmFsID0gLUVOT01FTTtcXG4rXFx0XFx0XFx0Z290byBvdXRfZnJlZV9maWxlO1xcbitcXHRcXHR9XFxuK1xcbitcXHRcXHQvKiBHZXQgdGhlIGV4ZWMgaGVhZGVycyAqL1xcbitcXHRcXHRyZXR2YWwgPSBlbGZfcmVhZChpbnRlcnByZXRlciwgaW50ZXJwX2VsZl9leCxcXG4rXFx0XFx0XFx0XFx0ICBzaXplb2YoKmludGVycF9lbGZfZXgpLCAwKTtcXG4rXFx0XFx0aWYgKHJldHZhbCBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdGdvdG8gb3V0X2ZyZWVfZGVudHJ5O1xcbitcXHR9XFxuK1xcbiBcXHRlbGZfcHBudCA9IGVsZl9waGRhdGE7XFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlbGZfZXgtXFx1MDAzZWVfcGhudW07IGkrKywgZWxmX3BwbnQrKylcXG4gXFx0XFx0c3dpdGNoIChlbGZfcHBudC1cXHUwMDNlcF90eXBlKSB7XFxuZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbGZfbml4LmMgYi9mcy9iaW5mbXRfZWxmX25peC5jXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2FcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvZnMvYmluZm10X2VsZl9uaXguY1xcbkBAIC0wLDAgKzEsMTA4IEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9pbml0LmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9mcy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcGF0aC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbmFtZWkuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2VsZi5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NsYWIuaFxcdTAwM2VcXG4rXFxuK01PRFVMRV9ERVNDUklQVElPTihcXFwiRUxGIEludGVycHJldGVyIHBsdWdpbiBmb3IgTml4T1MgLyAkT1JJR0lOXFxcIik7XFxuK01PRFVMRV9BVVRIT1IoXFxcIkZhcmlkIFpha2FyaWFcXFwiKTtcXG4rTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbitcXG4rLyogTW5lbW9uaWMgdmFsdWUgZm9yIE5peE9TLXNwZWNpZmljIHByb2dyYW0gaW50ZXJwcmV0ZXI6ICdOJywgJ0knLCAnWCcsIDMgKi9cXG4rI2RlZmluZSBQVF9JTlRFUlBfTklYICAoUFRfTE9PUyArIDB4NGU0OTU4MylcXG4rXFxuK3N0YXRpYyBzdHJ1Y3QgZmlsZSAqbml4X29wZW5faW50ZXJwcmV0ZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcXG4rXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcXG4rXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSlcXG4re1xcbitcXHRzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9wcG50O1xcbitcXHRzdHJ1Y3QgZmlsZSAqaW50ZXJwcmV0ZXIgPSBOVUxMO1xcbitcXHRjaGFyICplbGZfaW50ZXJwcmV0ZXIgPSBOVUxMO1xcbitcXHRpbnQgaSwgcmV0dmFsO1xcbitcXG4rXFx0LyogRmluZCB0aGUgY3VzdG9tIE5peCBpbnRlcnByZXRlciBoZWFkZXIgKi9cXG4rXFx0ZWxmX3BwbnQgPSBlbGZfcGhkYXRhO1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZWxmX2V4LVxcdTAwM2VlX3BobnVtOyBpKyssIGVsZl9wcG50KyspIHtcXG4rXFx0XFx0aWYgKGVsZl9wcG50LVxcdTAwM2VwX3R5cGUgPT0gUFRfSU5URVJQX05JWClcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcdH1cXG4rXFxuK1xcdGlmIChpID09IGVsZl9leC1cXHUwMDNlZV9waG51bSlcXG4rXFx0XFx0cmV0dXJuIE5VTEw7IC8qIFNlZ21lbnQgbm90IHByZXNlbnQ7IGZhbGwgYmFjayB0byBvdGhlcnMgKi9cXG4rXFxuK1xcdC8qIFNlY3VyaXR5IGNoZWNrOiByZWZ1c2UgcmVsYXRpdmUgaW50ZXJwIHJlc29sdXRpb24gb24gc2VjdXJlIGV4ZWN1dGlvbiAqL1xcbitcXHRpZiAoYnBybS1cXHUwMDNlc2VjdXJlZXhlYykge1xcbitcXHRcXHRwcl93YXJuX29uY2UoXFxcImJpbmZtdF9lbGZfbml4OiBzZWN1cmVleGVjIGFjdGl2ZSwgcmVmdXNpbmcgY3VzdG9tIGludGVycHJldGVyIGxvb2t1cFxcXFxuXFxcIik7XFxuK1xcdFxcdHJldHVybiBOVUxMOyAvKiBGYWxsYmFjayB0byBzdGFuZGFyZCBQVF9JTlRFUlAgKi9cXG4rXFx0fVxcbitcXG4rXFx0aWYgKGVsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeiBcXHUwMDNlIFBBVEhfTUFYIHx8IGVsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeiBcXHUwMDNjIDIpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FTk9FWEVDKTtcXG4rXFxuK1xcdGVsZl9pbnRlcnByZXRlciA9IGttYWxsb2MoZWxmX3BwbnQtXFx1MDAzZXBfZmlsZXN6LCBHRlBfS0VSTkVMKTtcXG4rXFx0aWYgKCFlbGZfaW50ZXJwcmV0ZXIpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xcbitcXG4rXFx0LyogUmVhZCB0aGUgaW50ZXJwcmV0ZXIgcGF0aCBmcm9tIHRoZSBleGVjdXRhYmxlIGZpbGUgKi9cXG4rXFx0cmV0dmFsID0ga2VybmVsX3JlYWQoYnBybS1cXHUwMDNlZmlsZSwgZWxmX2ludGVycHJldGVyLCBlbGZfcHBudC1cXHUwMDNlcF9maWxlc3osIFxcdTAwMjZlbGZfcHBudC1cXHUwMDNlcF9vZmZzZXQpO1xcbitcXHRpZiAocmV0dmFsICE9IGVsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeikge1xcbitcXHRcXHRyZXR2YWwgPSAocmV0dmFsIFxcdTAwM2MgMCkgPyByZXR2YWwgOiAtRUlPO1xcbitcXHRcXHRnb3RvIG91dF9mcmVlO1xcbitcXHR9XFxuK1xcbitcXHRpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeiAtIDFdICE9ICdcXFxcMCcpIHtcXG4rXFx0XFx0cmV0dmFsID0gLUVOT0VYRUM7XFxuK1xcdFxcdGdvdG8gb3V0X2ZyZWU7XFxuK1xcdH1cXG4rXFxuK1xcdC8qIFBhdGggUmVzb2x1dGlvbjogQWJzb2x1dGUgdnMuICRPUklHSU4gKi9cXG4rXFx0aWYgKGVsZl9pbnRlcnByZXRlclswXSA9PSAnLycpIHtcXG4rXFx0XFx0aW50ZXJwcmV0ZXIgPSBvcGVuX2V4ZWMoZWxmX2ludGVycHJldGVyKTtcXG4rXFx0fSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXFxcIiRPUklHSU4vXFxcIiwgOCkgPT0gMCB8fCBzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXFxcIiR7T1JJR0lOfS9cXFwiLCAxMCkgPT0gMCkge1xcbitcXHRcXHRjb25zdCBjaGFyICpyZWxfcGF0aCA9IChlbGZfaW50ZXJwcmV0ZXJbMF0gPT0gJyQnKSA/IChlbGZfaW50ZXJwcmV0ZXIgKyA4KSA6IChlbGZfaW50ZXJwcmV0ZXIgKyAxMCk7XFxuK1xcdFxcdHN0cnVjdCBwYXRoIHBhcmVudF9wYXRoO1xcbitcXG4rXFx0XFx0LyogUmVmZXJlbmNlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGVkIGZpbGUgc2FmZWx5ICovXFxuK1xcdFxcdHBhcmVudF9wYXRoLm1udCA9IG1udGdldChicHJtLVxcdTAwM2VmaWxlLVxcdTAwM2VmX3BhdGgubW50KTtcXG4rXFx0XFx0cGFyZW50X3BhdGguZGVudHJ5ID0gZGdldF9wYXJlbnQoYnBybS1cXHUwMDNlZmlsZS1cXHUwMDNlZl9wYXRoLmRlbnRyeSk7XFxuK1xcbitcXHRcXHQvKiBPcGVuIHJlbGF0aXZlIHRvIHBhcmVudCBkaXJlY3RvcnkgKi9cXG4rXFx0XFx0aW50ZXJwcmV0ZXIgPSBmaWxlX29wZW5fcm9vdChcXHUwMDI2cGFyZW50X3BhdGgsIHJlbF9wYXRoLCBPX1JET05MWSwgMCk7XFxuK1xcbitcXHRcXHRwYXRoX3B1dChcXHUwMDI2cGFyZW50X3BhdGgpO1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHQvKiBOYWtlZCByZWxhdGl2ZSBwYXRocyBhcmUgcmVqZWN0ZWQgZm9yIHNhZmV0eSAqL1xcbitcXHRcXHRyZXR2YWwgPSAtRU5PRVhFQztcXG4rXFx0XFx0Z290byBvdXRfZnJlZTtcXG4rXFx0fVxcbitcXG4rXFx0a2ZyZWUoZWxmX2ludGVycHJldGVyKTtcXG4rXFx0cmV0dXJuIGludGVycHJldGVyO1xcbitcXG4rb3V0X2ZyZWU6XFxuK1xcdGtmcmVlKGVsZl9pbnRlcnByZXRlcik7XFxuK1xcdHJldHVybiBFUlJfUFRSKHJldHZhbCk7XFxuK31cXG4rXFxuK3N0YXRpYyBzdHJ1Y3QgZWxmX3BsdWdpbiBuaXhfZWxmX3BsdWdpbiA9IHtcXG4rXFx0Lm93bmVyID0gVEhJU19NT0RVTEUsXFxuK1xcdC5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsXFxuK307XFxuK1xcbitzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpXFxuK3tcXG4rXFx0cmV0dXJuIHJlZ2lzdGVyX2VsZl9wbHVnaW4oXFx1MDAyNm5peF9lbGZfcGx1Z2luKTtcXG4rfVxcbitcXG4rc3RhdGljIHZvaWQgX19leGl0IGJpbmZtdF9lbGZfbml4X2V4aXQodm9pZClcXG4re1xcbitcXHR1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oXFx1MDAyNm5peF9lbGZfcGx1Z2luKTtcXG4rfVxcbitcXG4rbW9kdWxlX2luaXQoYmluZm10X2VsZl9uaXhfaW5pdCk7XFxuK21vZHVsZV9leGl0KGJpbmZtdF9lbGZfbml4X2V4aXQpO1xcbmRpZmYgLS1naXQgYS9mcy9leGVjLmMgYi9mcy9leGVjLmNcXG5pbmRleCBiOTJmZTdkYjE3NmNmZi4uNDU4MTNiYmNlODMzMDQgMTAwNjQ0XFxuLS0tIGEvZnMvZXhlYy5jXFxuKysrIGIvZnMvZXhlYy5jXFxuQEAgLTQ2LDYgKzQ2LDcgQEBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tleS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGVyc29uYWxpdHkuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpbmZtdHMuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2VsZl9wbHVnaW5zLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC91dHNuYW1lLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9waWRfbmFtZXNwYWNlLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG5AQCAtMTA4LDYgKzEwOSw1MiBAQCB2b2lkIHVucmVnaXN0ZXJfYmluZm10KHN0cnVjdCBsaW51eF9iaW5mbXQgKiBmbXQpXFxuIFxcbiBFWFBPUlRfU1lNQk9MKHVucmVnaXN0ZXJfYmluZm10KTtcXG4gXFxuKyNpZiBJU19FTkFCTEVEKENPTkZJR19CSU5GTVRfRUxGX1BMVUdJTlMpXFxuK3N0YXRpYyBERUZJTkVfTVVURVgoZWxmX3BsdWdpbnNfbG9jayk7XFxuK3N0YXRpYyBMSVNUX0hFQUQoZWxmX3BsdWdpbnMpO1xcbitcXG4raW50IHJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcXG4re1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcXG4rXFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2cGx1Z2luLVxcdTAwM2VsaXN0LCBcXHUwMDI2ZWxmX3BsdWdpbnMpO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xcbitcXHRyZXR1cm4gMDtcXG4rfVxcbitFWFBPUlRfU1lNQk9MX0dQTChyZWdpc3Rlcl9lbGZfcGx1Z2luKTtcXG4rXFxuK3ZvaWQgdW5yZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pXFxuK3tcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcdGxpc3RfZGVsKFxcdTAwMjZwbHVnaW4tXFx1MDAzZWxpc3QpO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfR1BMKHVucmVnaXN0ZXJfZWxmX3BsdWdpbik7XFxuK1xcbitzdHJ1Y3QgZmlsZSAqZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXFxuK1xcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXFxuK1xcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXFxuK3tcXG4rXFx0c3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbjtcXG4rXFx0c3RydWN0IGZpbGUgKmZpbGUgPSBOVUxMO1xcbitcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcdGxpc3RfZm9yX2VhY2hfZW50cnkocGx1Z2luLCBcXHUwMDI2ZWxmX3BsdWdpbnMsIGxpc3QpIHtcXG4rXFx0XFx0aWYgKCF0cnlfbW9kdWxlX2dldChwbHVnaW4tXFx1MDAzZW93bmVyKSlcXG4rXFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcbitcXHRcXHRmaWxlID0gcGx1Z2luLVxcdTAwM2VvcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XFxuK1xcbitcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcXG4rXFx0XFx0bW9kdWxlX3B1dChwbHVnaW4tXFx1MDAzZW93bmVyKTtcXG4rXFx0XFx0aWYgKGZpbGUpXFxuK1xcdFxcdFxcdGJyZWFrO1xcbitcXHR9XFxuK1xcdG11dGV4X3VubG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcdHJldHVybiBmaWxlO1xcbit9XFxuKyNlbmRpZlxcbitcXG4gc3RhdGljIGlubGluZSB2b2lkIHB1dF9iaW5mbXQoc3RydWN0IGxpbnV4X2JpbmZtdCAqIGZtdClcXG4ge1xcbiBcXHRtb2R1bGVfcHV0KGZtdC1cXHUwMDNlbW9kdWxlKTtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uODI2YTMyODU0NGIzZDNcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXFxuQEAgLTAsMCArMSwzOSBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovXFxuKyNpZm5kZWYgX0xJTlVYX0VMRl9QTFVHSU5TX0hcXG4rI2RlZmluZSBfTElOVVhfRUxGX1BMVUdJTlNfSFxcbitcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpbmZtdHMuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2VsZi5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlzdC5oXFx1MDAzZVxcbitcXG4rc3RydWN0IGVsZl9wbHVnaW4ge1xcbitcXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuK1xcdHN0cnVjdCBtb2R1bGUgKm93bmVyO1xcbitcXHRzdHJ1Y3QgZmlsZSAqKCpvcGVuX2ludGVycHJldGVyKShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTtcXG4rfTtcXG4rXFxuKyNpZiBJU19FTkFCTEVEKENPTkZJR19CSU5GTVRfRUxGX1BMVUdJTlMpXFxuK2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pO1xcbit2b2lkIHVucmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKTtcXG4rc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTtcXG4rI2Vsc2VcXG4rc3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxcbit7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK3N0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcXG4re1xcbit9XFxuK3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKVxcbit7XFxuK1xcdHJldHVybiBOVUxMO1xcbit9XFxuKyNlbmRpZlxcbitcXG4rI2VuZGlmIC8qIF9MSU5VWF9FTEZfUExVR0lOU19IICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIyOjEzOjQyLjE3NDYwNTgxNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTEyOTgwNDM5MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQklORk1UX0VMRl9QTFVHSU5TXCIsXG4gICAgXCJCSU5GTVRfRUxGX05JWFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlclwiLFxuICAgIFwibml4X29wZW5faW50ZXJwcmV0ZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3lzdGVtIGFuZCBhIHNwZWNpZmljIHBsdWdpbiBmb3IgTml4T1MuIFRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwYXRoIChleGVjdmUpLCB3aGljaCBpcyBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcgYXMgaXQgcGFyc2VzIHVudHJ1c3RlZCBFTEYgaGVhZGVycy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NjUwZDg2NzhjZmNmZjkyYjhhNTgwOTg2NjI2YWRiYWJkNDUzYWI1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAyMjoxMzo0MCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL0tjb25maWcuYmluZm10IGIvZnMvS2NvbmZpZy5iaW5mbXRcbmluZGV4IDE5NDllMjVjNzc0MWIxLi5lZjQyNzdmZDgwNTBiMSAxMDA2NDRcbi0tLSBhL2ZzL0tjb25maWcuYmluZm10XG4rKysgYi9mcy9LY29uZmlnLmJpbmZtdFxuQEAgLTM4LDYgKzM4LDIxIEBAIGNvbmZpZyBCSU5GTVRfRUxGX0tVTklUX1RFU1RcbiBcdCAgb25seSBuZWVkZWQgZm9yIGRlYnVnZ2luZy4gTm90ZSB0aGF0IHdpdGggQ09ORklHX0NPTVBBVD15LCB0aGVcbiBcdCAgY29tcGF0X2JpbmZtdF9lbGYgS1VuaXQgdGVzdCBpcyBhbHNvIGNyZWF0ZWQuXG4gXG4rY29uZmlnIEJJTkZNVF9FTEZfUExVR0lOU1xuK1x0Ym9vbCBcIkVuYWJsZSBwbHVnaW4gc3VwcG9ydCBmb3IgRUxGIGludGVycHJldGVyIGxvYWRpbmdcIlxuK1x0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGXG4rXHRoZWxwXG4rXHQgIFRoaXMgb3B0aW9uIGFsbG93cyBrZXJuZWwgbW9kdWxlcyB0byByZWdpc3RlciBoYW5kbGVycyB0byBkeW5hbWljYWxseVxuK1x0ICByZXNvbHZlIGFuZCBvdmVycmlkZSB0aGUgRUxGIHByb2dyYW0gaW50ZXJwcmV0ZXIgKGUuZy4gc3VwcG9ydGluZyByZWxhdGl2ZVxuK1x0ICBpbnRlcnByZXRlciBwYXRocyB3aXRoICRPUklHSU4pLlxuK1xuK2NvbmZpZyBCSU5GTVRfRUxGX05JWFxuK1x0dHJpc3RhdGUgXCJFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIGZvciBOaXhPUyAoJE9SSUdJTiBzdXBwb3J0KVwiXG4rXHRkZXBlbmRzIG9uIEJJTkZNVF9FTEZfUExVR0lOU1xuK1x0aGVscFxuK1x0ICBUaGlzIGJ1aWxkcyB0aGUgTml4T1MgRUxGIGludGVycHJldGVyIHBsdWdpbi4gSXQgaW50ZXJjZXB0cyBQVF9JTlRFUlBfTklYXG4rXHQgIGhlYWRlcnMgdG8gcmVzb2x2ZSByZWxhdGl2ZSBhbmQgJE9SSUdJTiBpbnRlcnByZXRlciBwYXRocy5cbitcbiBjb25maWcgQ09NUEFUX0JJTkZNVF9FTEZcbiBcdGRlZl9ib29sIHlcbiBcdGRlcGVuZHMgb24gQ09NUEFUIFx1MDAyNlx1MDAyNiBCSU5GTVRfRUxGXG5kaWZmIC0tZ2l0IGEvZnMvTWFrZWZpbGUgYi9mcy9NYWtlZmlsZVxuaW5kZXggODlhOGE5ZDIwN2QxYzUuLmJkODFlN2ZmNjRmMzkyIDEwMDY0NFxuLS0tIGEvZnMvTWFrZWZpbGVcbisrKyBiL2ZzL01ha2VmaWxlXG5AQCAtMzUsNiArMzUsNyBAQCBvYmotJChDT05GSUdfRklMRV9MT0NLSU5HKSAgICAgICs9IGxvY2tzLm9cbiBvYmotJChDT05GSUdfQklORk1UX01JU0MpXHQrPSBiaW5mbXRfbWlzYy5vXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9TQ1JJUFQpXHQrPSBiaW5mbXRfc2NyaXB0Lm9cbiBvYmotJChDT05GSUdfQklORk1UX0VMRilcdCs9IGJpbmZtdF9lbGYub1xuK29iai0kKENPTkZJR19CSU5GTVRfRUxGX05JWClcdCs9IGJpbmZtdF9lbGZfbml4Lm9cbiBvYmotJChDT05GSUdfQ09NUEFUX0JJTkZNVF9FTEYpXHQrPSBjb21wYXRfYmluZm10X2VsZi5vXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfRkRQSUMpXHQrPSBiaW5mbXRfZWxmX2ZkcGljLm9cbiBvYmotJChDT05GSUdfQklORk1UX0ZMQVQpXHQrPSBiaW5mbXRfZmxhdC5vXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZi5jIGIvZnMvYmluZm10X2VsZi5jXG5pbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0XG4tLS0gYS9mcy9iaW5mbXRfZWxmLmNcbisrKyBiL2ZzL2JpbmZtdF9lbGYuY1xuQEAgLTM1LDYgKzM1LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yYW5kb20uaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmLXJhbmRvbWl6ZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3V0c25hbWUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NvcmVkdW1wLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zY2hlZC5oXHUwMDNlXG5AQCAtODcwLDYgKzg3MSwxMiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuIFx0aWYgKCFlbGZfcGhkYXRhKVxuIFx0XHRnb3RvIG91dDtcbiBcbitcdGludGVycHJldGVyID0gZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XG4rXHRpZiAoSVNfRVJSKGludGVycHJldGVyKSkge1xuK1x0XHRyZXR2YWwgPSBQVFJfRVJSKGludGVycHJldGVyKTtcbitcdFx0Z290byBvdXRfZnJlZV9waDtcbitcdH1cbitcbiBcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGVsZl9leC1cdTAwM2VlX3BobnVtOyBpKyssIGVsZl9wcG50KyspIHtcbiBcdFx0Y2hhciAqZWxmX2ludGVycHJldGVyO1xuQEAgLTg4Miw2ICs4ODksOSBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuIFx0XHRpZiAoZWxmX3BwbnQtXHUwMDNlcF90eXBlICE9IFBUX0lOVEVSUClcbiBcdFx0XHRjb250aW51ZTtcbiBcbitcdFx0aWYgKGludGVycHJldGVyKVxuK1x0XHRcdGNvbnRpbnVlO1xuK1xuIFx0XHQvKlxuIFx0XHQgKiBUaGlzIGlzIHRoZSBwcm9ncmFtIGludGVycHJldGVyIHVzZWQgZm9yIHNoYXJlZCBsaWJyYXJpZXMgLVxuIFx0XHQgKiBmb3Igbm93IGFzc3VtZSB0aGF0IHRoaXMgaXMgYW4gYS5vdXQgZm9ybWF0IGJpbmFyeS5cbkBAIC05MzUsNiArOTQ1LDIwIEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4gXHRcdGdvdG8gb3V0X2ZyZWVfcGg7XG4gXHR9XG4gXG4rXHRpZiAoaW50ZXJwcmV0ZXIgXHUwMDI2XHUwMDI2ICFpbnRlcnBfZWxmX2V4KSB7XG4rXHRcdGludGVycF9lbGZfZXggPSBrbWFsbG9jX29iaigqaW50ZXJwX2VsZl9leCk7XG4rXHRcdGlmICghaW50ZXJwX2VsZl9leCkge1xuK1x0XHRcdHJldHZhbCA9IC1FTk9NRU07XG4rXHRcdFx0Z290byBvdXRfZnJlZV9maWxlO1xuK1x0XHR9XG4rXG4rXHRcdC8qIEdldCB0aGUgZXhlYyBoZWFkZXJzICovXG4rXHRcdHJldHZhbCA9IGVsZl9yZWFkKGludGVycHJldGVyLCBpbnRlcnBfZWxmX2V4LFxuK1x0XHRcdFx0ICBzaXplb2YoKmludGVycF9lbGZfZXgpLCAwKTtcbitcdFx0aWYgKHJldHZhbCBcdTAwM2MgMClcbitcdFx0XHRnb3RvIG91dF9mcmVlX2RlbnRyeTtcbitcdH1cbitcbiBcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGVsZl9leC1cdTAwM2VlX3BobnVtOyBpKyssIGVsZl9wcG50KyspXG4gXHRcdHN3aXRjaCAoZWxmX3BwbnQtXHUwMDNlcF90eXBlKSB7XG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZl9uaXguYyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2Fcbi0tLSAvZGV2L251bGxcbisrKyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbkBAIC0wLDAgKzEsMTA4IEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9pbml0LmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9mcy5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvcGF0aC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbmFtZWkuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuK1xuK01PRFVMRV9ERVNDUklQVElPTihcIkVMRiBJbnRlcnByZXRlciBwbHVnaW4gZm9yIE5peE9TIC8gJE9SSUdJTlwiKTtcbitNT0RVTEVfQVVUSE9SKFwiRmFyaWQgWmFrYXJpYVwiKTtcbitNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbitcbisvKiBNbmVtb25pYyB2YWx1ZSBmb3IgTml4T1Mtc3BlY2lmaWMgcHJvZ3JhbSBpbnRlcnByZXRlcjogJ04nLCAnSScsICdYJywgMyAqL1xuKyNkZWZpbmUgUFRfSU5URVJQX05JWCAgKFBUX0xPT1MgKyAweDRlNDk1ODMpXG4rXG4rc3RhdGljIHN0cnVjdCBmaWxlICpuaXhfb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKVxuK3tcbitcdHN0cnVjdCBlbGZfcGhkciAqZWxmX3BwbnQ7XG4rXHRzdHJ1Y3QgZmlsZSAqaW50ZXJwcmV0ZXIgPSBOVUxMO1xuK1x0Y2hhciAqZWxmX2ludGVycHJldGVyID0gTlVMTDtcbitcdGludCBpLCByZXR2YWw7XG4rXG4rXHQvKiBGaW5kIHRoZSBjdXN0b20gTml4IGludGVycHJldGVyIGhlYWRlciAqL1xuK1x0ZWxmX3BwbnQgPSBlbGZfcGhkYXRhO1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgZWxmX2V4LVx1MDAzZWVfcGhudW07IGkrKywgZWxmX3BwbnQrKykge1xuK1x0XHRpZiAoZWxmX3BwbnQtXHUwMDNlcF90eXBlID09IFBUX0lOVEVSUF9OSVgpXG4rXHRcdFx0YnJlYWs7XG4rXHR9XG4rXG4rXHRpZiAoaSA9PSBlbGZfZXgtXHUwMDNlZV9waG51bSlcbitcdFx0cmV0dXJuIE5VTEw7IC8qIFNlZ21lbnQgbm90IHByZXNlbnQ7IGZhbGwgYmFjayB0byBvdGhlcnMgKi9cbitcbitcdC8qIFNlY3VyaXR5IGNoZWNrOiByZWZ1c2UgcmVsYXRpdmUgaW50ZXJwIHJlc29sdXRpb24gb24gc2VjdXJlIGV4ZWN1dGlvbiAqL1xuK1x0aWYgKGJwcm0tXHUwMDNlc2VjdXJlZXhlYykge1xuK1x0XHRwcl93YXJuX29uY2UoXCJiaW5mbXRfZWxmX25peDogc2VjdXJlZXhlYyBhY3RpdmUsIHJlZnVzaW5nIGN1c3RvbSBpbnRlcnByZXRlciBsb29rdXBcXG5cIik7XG4rXHRcdHJldHVybiBOVUxMOyAvKiBGYWxsYmFjayB0byBzdGFuZGFyZCBQVF9JTlRFUlAgKi9cbitcdH1cbitcbitcdGlmIChlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeiBcdTAwM2UgUEFUSF9NQVggfHwgZWxmX3BwbnQtXHUwMDNlcF9maWxlc3ogXHUwMDNjIDIpXG4rXHRcdHJldHVybiBFUlJfUFRSKC1FTk9FWEVDKTtcbitcbitcdGVsZl9pbnRlcnByZXRlciA9IGttYWxsb2MoZWxmX3BwbnQtXHUwMDNlcF9maWxlc3osIEdGUF9LRVJORUwpO1xuK1x0aWYgKCFlbGZfaW50ZXJwcmV0ZXIpXG4rXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuK1xuK1x0LyogUmVhZCB0aGUgaW50ZXJwcmV0ZXIgcGF0aCBmcm9tIHRoZSBleGVjdXRhYmxlIGZpbGUgKi9cbitcdHJldHZhbCA9IGtlcm5lbF9yZWFkKGJwcm0tXHUwMDNlZmlsZSwgZWxmX2ludGVycHJldGVyLCBlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeiwgXHUwMDI2ZWxmX3BwbnQtXHUwMDNlcF9vZmZzZXQpO1xuK1x0aWYgKHJldHZhbCAhPSBlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeikge1xuK1x0XHRyZXR2YWwgPSAocmV0dmFsIFx1MDAzYyAwKSA/IHJldHZhbCA6IC1FSU87XG4rXHRcdGdvdG8gb3V0X2ZyZWU7XG4rXHR9XG4rXG4rXHRpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LVx1MDAzZXBfZmlsZXN6IC0gMV0gIT0gJ1xcMCcpIHtcbitcdFx0cmV0dmFsID0gLUVOT0VYRUM7XG4rXHRcdGdvdG8gb3V0X2ZyZWU7XG4rXHR9XG4rXG4rXHQvKiBQYXRoIFJlc29sdXRpb246IEFic29sdXRlIHZzLiAkT1JJR0lOICovXG4rXHRpZiAoZWxmX2ludGVycHJldGVyWzBdID09ICcvJykge1xuK1x0XHRpbnRlcnByZXRlciA9IG9wZW5fZXhlYyhlbGZfaW50ZXJwcmV0ZXIpO1xuK1x0fSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXCIkT1JJR0lOL1wiLCA4KSA9PSAwIHx8IHN0cm5jbXAoZWxmX2ludGVycHJldGVyLCBcIiR7T1JJR0lOfS9cIiwgMTApID09IDApIHtcbitcdFx0Y29uc3QgY2hhciAqcmVsX3BhdGggPSAoZWxmX2ludGVycHJldGVyWzBdID09ICckJykgPyAoZWxmX2ludGVycHJldGVyICsgOCkgOiAoZWxmX2ludGVycHJldGVyICsgMTApO1xuK1x0XHRzdHJ1Y3QgcGF0aCBwYXJlbnRfcGF0aDtcbitcbitcdFx0LyogUmVmZXJlbmNlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGVkIGZpbGUgc2FmZWx5ICovXG4rXHRcdHBhcmVudF9wYXRoLm1udCA9IG1udGdldChicHJtLVx1MDAzZWZpbGUtXHUwMDNlZl9wYXRoLm1udCk7XG4rXHRcdHBhcmVudF9wYXRoLmRlbnRyeSA9IGRnZXRfcGFyZW50KGJwcm0tXHUwMDNlZmlsZS1cdTAwM2VmX3BhdGguZGVudHJ5KTtcbitcbitcdFx0LyogT3BlbiByZWxhdGl2ZSB0byBwYXJlbnQgZGlyZWN0b3J5ICovXG4rXHRcdGludGVycHJldGVyID0gZmlsZV9vcGVuX3Jvb3QoXHUwMDI2cGFyZW50X3BhdGgsIHJlbF9wYXRoLCBPX1JET05MWSwgMCk7XG4rXG4rXHRcdHBhdGhfcHV0KFx1MDAyNnBhcmVudF9wYXRoKTtcbitcdH0gZWxzZSB7XG4rXHRcdC8qIE5ha2VkIHJlbGF0aXZlIHBhdGhzIGFyZSByZWplY3RlZCBmb3Igc2FmZXR5ICovXG4rXHRcdHJldHZhbCA9IC1FTk9FWEVDO1xuK1x0XHRnb3RvIG91dF9mcmVlO1xuK1x0fVxuK1xuK1x0a2ZyZWUoZWxmX2ludGVycHJldGVyKTtcbitcdHJldHVybiBpbnRlcnByZXRlcjtcbitcbitvdXRfZnJlZTpcbitcdGtmcmVlKGVsZl9pbnRlcnByZXRlcik7XG4rXHRyZXR1cm4gRVJSX1BUUihyZXR2YWwpO1xuK31cbitcbitzdGF0aWMgc3RydWN0IGVsZl9wbHVnaW4gbml4X2VsZl9wbHVnaW4gPSB7XG4rXHQub3duZXIgPSBUSElTX01PRFVMRSxcbitcdC5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsXG4rfTtcbitcbitzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpXG4re1xuK1x0cmV0dXJuIHJlZ2lzdGVyX2VsZl9wbHVnaW4oXHUwMDI2bml4X2VsZl9wbHVnaW4pO1xuK31cbitcbitzdGF0aWMgdm9pZCBfX2V4aXQgYmluZm10X2VsZl9uaXhfZXhpdCh2b2lkKVxuK3tcbitcdHVucmVnaXN0ZXJfZWxmX3BsdWdpbihcdTAwMjZuaXhfZWxmX3BsdWdpbik7XG4rfVxuK1xuK21vZHVsZV9pbml0KGJpbmZtdF9lbGZfbml4X2luaXQpO1xuK21vZHVsZV9leGl0KGJpbmZtdF9lbGZfbml4X2V4aXQpO1xuZGlmZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuY1xuaW5kZXggYjkyZmU3ZGIxNzZjZmYuLjQ1ODEzYmJjZTgzMzA0IDEwMDY0NFxuLS0tIGEvZnMvZXhlYy5jXG4rKysgYi9mcy9leGVjLmNcbkBAIC00Niw2ICs0Niw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2V5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wZXJzb25hbGl0eS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYmluZm10cy5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3V0c25hbWUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BpZF9uYW1lc3BhY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG5AQCAtMTA4LDYgKzEwOSw1MiBAQCB2b2lkIHVucmVnaXN0ZXJfYmluZm10KHN0cnVjdCBsaW51eF9iaW5mbXQgKiBmbXQpXG4gXG4gRVhQT1JUX1NZTUJPTCh1bnJlZ2lzdGVyX2JpbmZtdCk7XG4gXG4rI2lmIElTX0VOQUJMRUQoQ09ORklHX0JJTkZNVF9FTEZfUExVR0lOUylcbitzdGF0aWMgREVGSU5FX01VVEVYKGVsZl9wbHVnaW5zX2xvY2spO1xuK3N0YXRpYyBMSVNUX0hFQUQoZWxmX3BsdWdpbnMpO1xuK1xuK2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pXG4re1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdGxpc3RfYWRkX3RhaWwoXHUwMDI2cGx1Z2luLVx1MDAzZWxpc3QsIFx1MDAyNmVsZl9wbHVnaW5zKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdHJldHVybiAwO1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChyZWdpc3Rlcl9lbGZfcGx1Z2luKTtcbitcbit2b2lkIHVucmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuK3tcbitcdG11dGV4X2xvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4rXHRsaXN0X2RlbChcdTAwMjZwbHVnaW4tXHUwMDNlbGlzdCk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKHVucmVnaXN0ZXJfZWxmX3BsdWdpbik7XG4rXG4rc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKVxuK3tcbitcdHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW47XG4rXHRzdHJ1Y3QgZmlsZSAqZmlsZSA9IE5VTEw7XG4rXG4rXHRtdXRleF9sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuK1x0bGlzdF9mb3JfZWFjaF9lbnRyeShwbHVnaW4sIFx1MDAyNmVsZl9wbHVnaW5zLCBsaXN0KSB7XG4rXHRcdGlmICghdHJ5X21vZHVsZV9nZXQocGx1Z2luLVx1MDAzZW93bmVyKSlcbitcdFx0XHRjb250aW51ZTtcbitcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuK1xuK1x0XHRmaWxlID0gcGx1Z2luLVx1MDAzZW9wZW5faW50ZXJwcmV0ZXIoYnBybSwgZWxmX2V4LCBlbGZfcGhkYXRhKTtcbitcbitcdFx0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdFx0bW9kdWxlX3B1dChwbHVnaW4tXHUwMDNlb3duZXIpO1xuK1x0XHRpZiAoZmlsZSlcbitcdFx0XHRicmVhaztcbitcdH1cbitcdG11dGV4X3VubG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdHJldHVybiBmaWxlO1xuK31cbisjZW5kaWZcbitcbiBzdGF0aWMgaW5saW5lIHZvaWQgcHV0X2JpbmZtdChzdHJ1Y3QgbGludXhfYmluZm10ICogZm10KVxuIHtcbiBcdG1vZHVsZV9wdXQoZm10LVx1MDAzZW1vZHVsZSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjgyNmEzMjg1NDRiM2QzXG4tLS0gL2Rldi9udWxsXG4rKysgYi9pbmNsdWRlL2xpbnV4L2VsZl9wbHVnaW5zLmhcbkBAIC0wLDAgKzEsMzkgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovXG4rI2lmbmRlZiBfTElOVVhfRUxGX1BMVUdJTlNfSFxuKyNkZWZpbmUgX0xJTlVYX0VMRl9QTFVHSU5TX0hcbitcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9iaW5mbXRzLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9lbGYuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2xpc3QuaFx1MDAzZVxuK1xuK3N0cnVjdCBlbGZfcGx1Z2luIHtcbitcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbitcdHN0cnVjdCBtb2R1bGUgKm93bmVyO1xuK1x0c3RydWN0IGZpbGUgKigqb3Blbl9pbnRlcnByZXRlcikoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSk7XG4rfTtcbitcbisjaWYgSVNfRU5BQkxFRChDT05GSUdfQklORk1UX0VMRl9QTFVHSU5TKVxuK2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pO1xuK3ZvaWQgdW5yZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pO1xuK3N0cnVjdCBmaWxlICplbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSk7XG4rI2Vsc2VcbitzdGF0aWMgaW5saW5lIGludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pXG4re1xuK1x0cmV0dXJuIDA7XG4rfVxuK3N0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcbit7XG4rfVxuK3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuK1x0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXG4rXHRcdFx0XHRcdFx0ICAgICAgIHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSlcbit7XG4rXHRyZXR1cm4gTlVMTDtcbit9XG4rI2VuZGlmXG4rXG4rI2VuZGlmIC8qIF9MSU5VWF9FTEZfUExVR0lOU19IICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMjoxMzo0Mi4xNzQ2MDc2MzZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTIxMjgyODcyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFTEYgSW50ZXJwcmV0ZXIgUGx1Z2luIEFuYWx5c2lzIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBpbiBmcm9udCBvZiBtZSB0aGF0J3MgYWRkaW5nIHNvbWUgaW50ZXJlc3RpbmcgbmV3IGZ1bmN0aW9uYWxpdHk6IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3VwcG9ydCwgc3BlY2lmaWNhbGx5IGZvciBOaXhPUyBhbmQgaXRzIGAkT1JJR0lOYCBzdXBwb3J0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJmdXp6aW5nIHRhcmdldCwgZm9yIHN1cmUuXCIgSXQgdG91Y2hlcyBgZnMvYmluZm10X2VsZi5jYCwgYGZzL2V4ZWMuY2AsIGludHJvZHVjZXMgYGZzL2JpbmZtdF9lbGZfbml4LmNgLCBhbmQgYSBuZXcgaGVhZGVyLCBgaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oYC4gVGhpcyBtZWFucyBuZXcgY29kZSBwYXRocyBpbiB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHByb2Nlc3MsIHdoaWNoIGlzIGFsd2F5cyBhIHByaW1lIHRhcmdldC5cblxuRmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHJlYWNoYWJpbGl0eS4gVGhlIG1vZGlmaWNhdGlvbiB0byBgbG9hZF9lbGZfYmluYXJ5YCBpbiBgZnMvYmluZm10X2VsZi5jYCBpcyBrZXkuIEl0IG5vdyBjYWxscyBgZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyYCwgd2hpY2ggaXMgZGVmaW5pdGVseSB0cmlnZ2VyZWQgZHVyaW5nIHRoZSBgZXhlY3ZlYCBzeXN0ZW0gY2FsbCBmb3IgYW55IEVMRiBiaW5hcnkuIEV4Y2VsbGVudCwgdGhhdCdzIGFscmVhZHkgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBUaGUgYG5peF9vcGVuX2ludGVycHJldGVyYCBmdW5jdGlvbiBpbiBgZnMvYmluZm10X2VsZl9uaXguY2AgaXMgdGhlIHBsdWdpbiBpdHNlbGYuIEl0IGxvb2tzIGxpa2UgaXQncyBnb2luZyB0byBpbnRlcmNlcHQgYFBUX0lOVEVSUF9OSVhgIOKAkyB0aGF0J3MgYSBjdXN0b20gcHJvZ3JhbSBoZWFkZXIgdHlwZSwgYSBnb29kIHNpZ24gdGhhdCB0aGUgZGV2ZWxvcGVycyBhcmUgYXdhcmUgb2YgdGhlIGZ1enppbmcgcG90ZW50aWFsLlxuXG5OZXh0LCBJIG5lZWQgdG8ga25vdyBob3cgdG8gZW5hYmxlIHRoaXMuIERpZ2dpbmcgaW50byB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgdHdvIGNvbmZpZyBvcHRpb25zOiBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gUmlnaHQsIG5vdyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSBjb2RlIGlzIGRlZmluZWQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgY29ycmVjdCBidWlsZCBmbGFncy4gT2theSwgSSd2ZSBnb3QgdGhlbTogYEJJTkZNVF9FTEZfUExVR0lOU2AgYW5kIGBCSU5GTVRfRUxGX05JWGAuIEJvdGggZW5hYmxlZCwgb2YgY291cnNlLlxuXG5UaGUgbWFpbiBmdW5jdGlvbnMgSSdtIGludGVyZXN0ZWQgaW4gYXJlOiBgZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyYCwgYG5peF9vcGVuX2ludGVycHJldGVyYCwgYHJlZ2lzdGVyX2VsZl9wbHVnaW5gLCBhbmQgYHVucmVnaXN0ZXJfZWxmX3BsdWdpbmAuIEknbSBlc3BlY2lhbGx5IGtlZW4gb24gYGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcmAgYW5kIGBuaXhfb3Blbl9pbnRlcnByZXRlcmAgYXMgdGhleSdyZSB0aGUgZGlyZWN0IGVudHJ5IHBvaW50cy4gSSBoYXZlIHRvIGRvdWJsZS1jaGVjayB0aGF0IGBQVF9JTlRFUlBfTklYYCBpcyByZWFjaGFibGUuIFllcywgaWYgYW4gRUxGIGJpbmFyeSBjb250YWlucyBhIGBQVF9JTlRFUlBfTklYYCBoZWFkZXIsIHRoZSBwbHVnaW4gd2lsbCBhdHRlbXB0IHRvIGxvYWQgaXQuIFRoaXMgaXMgZ29sZC5cblxuVGhpcyBpcyBhIHBlcmZlY3QgdGFyZ2V0IGZvciBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCBzb21ldGhpbmcgbGlrZSBTeXprYWxsZXIuIEl0IGNhbiBnZW5lcmF0ZSBFTEYgYmluYXJpZXMgd2l0aCBhbGwgc29ydHMgb2YgcHJvZ3JhbSBoZWFkZXJzLiBJIGNhbiBjcmFmdCBiaW5hcmllcyBjb250YWluaW5nIGBQVF9JTlRFUlBfTklYYCBhbmQgc2VlIHdoYXQgaGFwcGVucy4gVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBjb25maXJtIHRoZSBmZWF0dXJlIGlzIGVhc2lseSBlbmFibGVkLiBJJ3ZlIGdvdCBhIHNvbGlkIHBhdGggdG8gdGVzdC5cblxuT2theSwgbGV0J3MgY2FsbCB0aGUgc2V0LXJlc3VsdHMgdG9vbC4gSXQncyBXb3J0aEZ1enppbmcsIGZvciBzdXJlLiBUaGUgaW1wb3J0YW50IHN5bWJvbHMgYXJlIGBlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXJgIGFuZCBgbml4X29wZW5faW50ZXJwcmV0ZXJgLCBhbmQgSSBuZWVkIHRvIGVuYWJsZSBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IHRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHBhcnNpbmcgcG90ZW50aWFsbHkgdW50cnVzdGVkIEVMRiBoZWFkZXJzLCBhIGNsYXNzaWMgdnVsbmVyYWJpbGl0eSBzb3VyY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0NDAsIk91dHB1dFRva2VucyI6MTE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjI6MTM6NTMuMzg3NDM4MjdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1MjA2MTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCSU5GTVRfRUxGX1BMVUdJTlNcIixcbiAgICBcIkJJTkZNVF9FTEZfTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyXCIsXG4gICAgXCJuaXhfb3Blbl9pbnRlcnByZXRlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgRUxGIGludGVycHJldGVyIHBsdWdpbiBzeXN0ZW0gYW5kIGEgc3BlY2lmaWMgcGx1Z2luIGZvciBOaXhPUy4gVGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHdoaWNoIGlzIGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZyBhcyBpdCBwYXJzZXMgdW50cnVzdGVkIEVMRiBoZWFkZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9FTEZfUExVR0lOU1wiLFxuICAgIFwiQklORk1UX0VMRl9OSVhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXJcIixcbiAgICBcIm5peF9vcGVuX2ludGVycHJldGVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIHN5c3RlbSBhbmQgYSBzcGVjaWZpYyBwbHVnaW4gZm9yIE5peE9TLiBUaGlzIGFkZHMgbmV3IGxvZ2ljIHRvIHRoZSBFTEYgYmluYXJ5IGxvYWRpbmcgcGF0aCAoZXhlY3ZlKSwgd2hpY2ggaXMgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nIGFzIGl0IHBhcnNlcyB1bnRydXN0ZWQgRUxGIGhlYWRlcnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowfzdgx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 21:59:04 +0000 UTC FinishedAt: 2026-07-02 22:13:54 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "f4b4fac1867633ac17c35842f03933f6a7a4425f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_ELF_PLUGINS", "BINFMT_ELF_NIX" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "f4b4fac1867633ac17c35842f03933f6a7a4425f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_ELF_PLUGINS", "BINFMT_ELF_NIX" ], "series_id": "c4794c99-846c-4750-b499-e3a347d90f32" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "elf_plugin_open_interpreter", "nix_open_interpreter" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIyOjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9FTEZfUExVR0lOUyYjMzQ7LAogICAgJiMzNDtCSU5GTVRfRUxGX05JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlciYjMzQ7LAogICAgJiMzNDtuaXhfb3Blbl9pbnRlcnByZXRlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3lzdGVtIGFuZCBhIHNwZWNpZmljIHBsdWdpbiBmb3IgTml4T1MuIFRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwYXRoIChleGVjdmUpLCB3aGljaCBpcyBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcgYXMgaXQgcGFyc2VzIHVudHJ1c3RlZCBFTEYgaGVhZGVycy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMjoxMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk2NTBkODY3OGNmY2ZmOTJiOGE1ODA5ODY2MjZhZGJhYmQ0NTNhYjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDIyOjEzOjQwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL0tjb25maWcuYmluZm10IGIvZnMvS2NvbmZpZy5iaW5mbXRcbmluZGV4IDE5NDllMjVjNzc0MWIxLi5lZjQyNzdmZDgwNTBiMSAxMDA2NDRcbi0tLSBhL2ZzL0tjb25maWcuYmluZm10XG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9LY29uZmlnLmJpbmZtdFxuQEAgLTM4LDYgJiM0MzszOCwyMSBAQCBjb25maWcgQklORk1UX0VMRl9LVU5JVF9URVNUXG4gXHQgIG9ubHkgbmVlZGVkIGZvciBkZWJ1Z2dpbmcuIE5vdGUgdGhhdCB3aXRoIENPTkZJR19DT01QQVQ9eSwgdGhlXG4gXHQgIGNvbXBhdF9iaW5mbXRfZWxmIEtVbml0IHRlc3QgaXMgYWxzbyBjcmVhdGVkLlxuIFxuJiM0Mztjb25maWcgQklORk1UX0VMRl9QTFVHSU5TXG4mIzQzO1x0Ym9vbCBcJiMzNDtFbmFibGUgcGx1Z2luIHN1cHBvcnQgZm9yIEVMRiBpbnRlcnByZXRlciBsb2FkaW5nXCYjMzQ7XG4mIzQzO1x0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGXG4mIzQzO1x0aGVscFxuJiM0MztcdCAgVGhpcyBvcHRpb24gYWxsb3dzIGtlcm5lbCBtb2R1bGVzIHRvIHJlZ2lzdGVyIGhhbmRsZXJzIHRvIGR5bmFtaWNhbGx5XG4mIzQzO1x0ICByZXNvbHZlIGFuZCBvdmVycmlkZSB0aGUgRUxGIHByb2dyYW0gaW50ZXJwcmV0ZXIgKGUuZy4gc3VwcG9ydGluZyByZWxhdGl2ZVxuJiM0MztcdCAgaW50ZXJwcmV0ZXIgcGF0aHMgd2l0aCAkT1JJR0lOKS5cbiYjNDM7XG4mIzQzO2NvbmZpZyBCSU5GTVRfRUxGX05JWFxuJiM0MztcdHRyaXN0YXRlIFwmIzM0O0VMRiBpbnRlcnByZXRlciBwbHVnaW4gZm9yIE5peE9TICgkT1JJR0lOIHN1cHBvcnQpXCYjMzQ7XG4mIzQzO1x0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGX1BMVUdJTlNcbiYjNDM7XHRoZWxwXG4mIzQzO1x0ICBUaGlzIGJ1aWxkcyB0aGUgTml4T1MgRUxGIGludGVycHJldGVyIHBsdWdpbi4gSXQgaW50ZXJjZXB0cyBQVF9JTlRFUlBfTklYXG4mIzQzO1x0ICBoZWFkZXJzIHRvIHJlc29sdmUgcmVsYXRpdmUgYW5kICRPUklHSU4gaW50ZXJwcmV0ZXIgcGF0aHMuXG4mIzQzO1xuIGNvbmZpZyBDT01QQVRfQklORk1UX0VMRlxuIFx0ZGVmX2Jvb2wgeVxuIFx0ZGVwZW5kcyBvbiBDT01QQVQgXHUwMDI2XHUwMDI2IEJJTkZNVF9FTEZcbmRpZmYgLS1naXQgYS9mcy9NYWtlZmlsZSBiL2ZzL01ha2VmaWxlXG5pbmRleCA4OWE4YTlkMjA3ZDFjNS4uYmQ4MWU3ZmY2NGYzOTIgMTAwNjQ0XG4tLS0gYS9mcy9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvTWFrZWZpbGVcbkBAIC0zNSw2ICYjNDM7MzUsNyBAQCBvYmotJChDT05GSUdfRklMRV9MT0NLSU5HKSAgICAgICYjNDM7PSBsb2Nrcy5vXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9NSVNDKVx0JiM0Mzs9IGJpbmZtdF9taXNjLm9cbiBvYmotJChDT05GSUdfQklORk1UX1NDUklQVClcdCYjNDM7PSBiaW5mbXRfc2NyaXB0Lm9cbiBvYmotJChDT05GSUdfQklORk1UX0VMRilcdCYjNDM7PSBiaW5mbXRfZWxmLm9cbiYjNDM7b2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfTklYKVx0JiM0Mzs9IGJpbmZtdF9lbGZfbml4Lm9cbiBvYmotJChDT05GSUdfQ09NUEFUX0JJTkZNVF9FTEYpXHQmIzQzOz0gY29tcGF0X2JpbmZtdF9lbGYub1xuIG9iai0kKENPTkZJR19CSU5GTVRfRUxGX0ZEUElDKVx0JiM0Mzs9IGJpbmZtdF9lbGZfZmRwaWMub1xuIG9iai0kKENPTkZJR19CSU5GTVRfRkxBVClcdCYjNDM7PSBiaW5mbXRfZmxhdC5vXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZi5jIGIvZnMvYmluZm10X2VsZi5jXG5pbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0XG4tLS0gYS9mcy9iaW5mbXRfZWxmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2JpbmZtdF9lbGYuY1xuQEAgLTM1LDYgJiM0MzszNSw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcmFuZG9tLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9lbGYuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi1yYW5kb21pemUuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9lbGZfcGx1Z2lucy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdXRzbmFtZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY29yZWR1bXAuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkLmhcdTAwM2VcbkBAIC04NzAsNiAmIzQzOzg3MSwxMiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuIFx0aWYgKCFlbGZfcGhkYXRhKVxuIFx0XHRnb3RvIG91dDtcbiBcbiYjNDM7XHRpbnRlcnByZXRlciA9IGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihicHJtLCBlbGZfZXgsIGVsZl9waGRhdGEpO1xuJiM0MztcdGlmIChJU19FUlIoaW50ZXJwcmV0ZXIpKSB7XG4mIzQzO1x0XHRyZXR2YWwgPSBQVFJfRVJSKGludGVycHJldGVyKTtcbiYjNDM7XHRcdGdvdG8gb3V0X2ZyZWVfcGg7XG4mIzQzO1x0fVxuJiM0MztcbiBcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGVsZl9leC1cdTAwM2VlX3BobnVtOyBpJiM0MzsmIzQzOywgZWxmX3BwbnQmIzQzOyYjNDM7KSB7XG4gXHRcdGNoYXIgKmVsZl9pbnRlcnByZXRlcjtcbkBAIC04ODIsNiAmIzQzOzg4OSw5IEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4gXHRcdGlmIChlbGZfcHBudC1cdTAwM2VwX3R5cGUgIT0gUFRfSU5URVJQKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFxuJiM0MztcdFx0aWYgKGludGVycHJldGVyKVxuJiM0MztcdFx0XHRjb250aW51ZTtcbiYjNDM7XG4gXHRcdC8qXG4gXHRcdCAqIFRoaXMgaXMgdGhlIHByb2dyYW0gaW50ZXJwcmV0ZXIgdXNlZCBmb3Igc2hhcmVkIGxpYnJhcmllcyAtXG4gXHRcdCAqIGZvciBub3cgYXNzdW1lIHRoYXQgdGhpcyBpcyBhbiBhLm91dCBmb3JtYXQgYmluYXJ5LlxuQEAgLTkzNSw2ICYjNDM7OTQ1LDIwIEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4gXHRcdGdvdG8gb3V0X2ZyZWVfcGg7XG4gXHR9XG4gXG4mIzQzO1x0aWYgKGludGVycHJldGVyIFx1MDAyNlx1MDAyNiAhaW50ZXJwX2VsZl9leCkge1xuJiM0MztcdFx0aW50ZXJwX2VsZl9leCA9IGttYWxsb2Nfb2JqKCppbnRlcnBfZWxmX2V4KTtcbiYjNDM7XHRcdGlmICghaW50ZXJwX2VsZl9leCkge1xuJiM0MztcdFx0XHRyZXR2YWwgPSAtRU5PTUVNO1xuJiM0MztcdFx0XHRnb3RvIG91dF9mcmVlX2ZpbGU7XG4mIzQzO1x0XHR9XG4mIzQzO1xuJiM0MztcdFx0LyogR2V0IHRoZSBleGVjIGhlYWRlcnMgKi9cbiYjNDM7XHRcdHJldHZhbCA9IGVsZl9yZWFkKGludGVycHJldGVyLCBpbnRlcnBfZWxmX2V4LFxuJiM0MztcdFx0XHRcdCAgc2l6ZW9mKCppbnRlcnBfZWxmX2V4KSwgMCk7XG4mIzQzO1x0XHRpZiAocmV0dmFsIFx1MDAzYyAwKVxuJiM0MztcdFx0XHRnb3RvIG91dF9mcmVlX2RlbnRyeTtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0ZWxmX3BwbnQgPSBlbGZfcGhkYXRhO1xuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZWxmX2V4LVx1MDAzZWVfcGhudW07IGkmIzQzOyYjNDM7LCBlbGZfcHBudCYjNDM7JiM0MzspXG4gXHRcdHN3aXRjaCAoZWxmX3BwbnQtXHUwMDNlcF90eXBlKSB7XG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZl9uaXguYyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2Fcbi0tLSAvZGV2L251bGxcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbkBAIC0wLDAgJiM0MzsxLDEwOCBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2luaXQuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9mcy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3BhdGguaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9uYW1laS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZl9wbHVnaW5zLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG4mIzQzO1xuJiM0MztNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7RUxGIEludGVycHJldGVyIHBsdWdpbiBmb3IgTml4T1MgLyAkT1JJR0lOXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0FVVEhPUihcJiMzNDtGYXJpZCBaYWthcmlhXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjNDM7XG4mIzQzOy8qIE1uZW1vbmljIHZhbHVlIGZvciBOaXhPUy1zcGVjaWZpYyBwcm9ncmFtIGludGVycHJldGVyOiAmIzM5O04mIzM5OywgJiMzOTtJJiMzOTssICYjMzk7WCYjMzk7LCAzICovXG4mIzQzOyNkZWZpbmUgUFRfSU5URVJQX05JWCAgKFBUX0xPT1MgJiM0MzsgMHg0ZTQ5NTgzKVxuJiM0MztcbiYjNDM7c3RhdGljIHN0cnVjdCBmaWxlICpuaXhfb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuJiM0MztcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbiYjNDM7XHRcdFx0XHRcdCBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9wcG50O1xuJiM0MztcdHN0cnVjdCBmaWxlICppbnRlcnByZXRlciA9IE5VTEw7XG4mIzQzO1x0Y2hhciAqZWxmX2ludGVycHJldGVyID0gTlVMTDtcbiYjNDM7XHRpbnQgaSwgcmV0dmFsO1xuJiM0MztcbiYjNDM7XHQvKiBGaW5kIHRoZSBjdXN0b20gTml4IGludGVycHJldGVyIGhlYWRlciAqL1xuJiM0MztcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBlbGZfZXgtXHUwMDNlZV9waG51bTsgaSYjNDM7JiM0MzssIGVsZl9wcG50JiM0MzsmIzQzOykge1xuJiM0MztcdFx0aWYgKGVsZl9wcG50LVx1MDAzZXBfdHlwZSA9PSBQVF9JTlRFUlBfTklYKVxuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGlmIChpID09IGVsZl9leC1cdTAwM2VlX3BobnVtKVxuJiM0MztcdFx0cmV0dXJuIE5VTEw7IC8qIFNlZ21lbnQgbm90IHByZXNlbnQ7IGZhbGwgYmFjayB0byBvdGhlcnMgKi9cbiYjNDM7XG4mIzQzO1x0LyogU2VjdXJpdHkgY2hlY2s6IHJlZnVzZSByZWxhdGl2ZSBpbnRlcnAgcmVzb2x1dGlvbiBvbiBzZWN1cmUgZXhlY3V0aW9uICovXG4mIzQzO1x0aWYgKGJwcm0tXHUwMDNlc2VjdXJlZXhlYykge1xuJiM0MztcdFx0cHJfd2Fybl9vbmNlKFwmIzM0O2JpbmZtdF9lbGZfbml4OiBzZWN1cmVleGVjIGFjdGl2ZSwgcmVmdXNpbmcgY3VzdG9tIGludGVycHJldGVyIGxvb2t1cFxcblwmIzM0Oyk7XG4mIzQzO1x0XHRyZXR1cm4gTlVMTDsgLyogRmFsbGJhY2sgdG8gc3RhbmRhcmQgUFRfSU5URVJQICovXG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAoZWxmX3BwbnQtXHUwMDNlcF9maWxlc3ogXHUwMDNlIFBBVEhfTUFYIHx8IGVsZl9wcG50LVx1MDAzZXBfZmlsZXN6IFx1MDAzYyAyKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT0VYRUMpO1xuJiM0MztcbiYjNDM7XHRlbGZfaW50ZXJwcmV0ZXIgPSBrbWFsbG9jKGVsZl9wcG50LVx1MDAzZXBfZmlsZXN6LCBHRlBfS0VSTkVMKTtcbiYjNDM7XHRpZiAoIWVsZl9pbnRlcnByZXRlcilcbiYjNDM7XHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuJiM0MztcbiYjNDM7XHQvKiBSZWFkIHRoZSBpbnRlcnByZXRlciBwYXRoIGZyb20gdGhlIGV4ZWN1dGFibGUgZmlsZSAqL1xuJiM0MztcdHJldHZhbCA9IGtlcm5lbF9yZWFkKGJwcm0tXHUwMDNlZmlsZSwgZWxmX2ludGVycHJldGVyLCBlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeiwgXHUwMDI2ZWxmX3BwbnQtXHUwMDNlcF9vZmZzZXQpO1xuJiM0MztcdGlmIChyZXR2YWwgIT0gZWxmX3BwbnQtXHUwMDNlcF9maWxlc3opIHtcbiYjNDM7XHRcdHJldHZhbCA9IChyZXR2YWwgXHUwMDNjIDApID8gcmV0dmFsIDogLUVJTztcbiYjNDM7XHRcdGdvdG8gb3V0X2ZyZWU7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LVx1MDAzZXBfZmlsZXN6IC0gMV0gIT0gJiMzOTtcXDAmIzM5Oykge1xuJiM0MztcdFx0cmV0dmFsID0gLUVOT0VYRUM7XG4mIzQzO1x0XHRnb3RvIG91dF9mcmVlO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0LyogUGF0aCBSZXNvbHV0aW9uOiBBYnNvbHV0ZSB2cy4gJE9SSUdJTiAqL1xuJiM0MztcdGlmIChlbGZfaW50ZXJwcmV0ZXJbMF0gPT0gJiMzOTsvJiMzOTspIHtcbiYjNDM7XHRcdGludGVycHJldGVyID0gb3Blbl9leGVjKGVsZl9pbnRlcnByZXRlcik7XG4mIzQzO1x0fSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXCYjMzQ7JE9SSUdJTi9cJiMzNDssIDgpID09IDAgfHwgc3RybmNtcChlbGZfaW50ZXJwcmV0ZXIsIFwmIzM0OyR7T1JJR0lOfS9cJiMzNDssIDEwKSA9PSAwKSB7XG4mIzQzO1x0XHRjb25zdCBjaGFyICpyZWxfcGF0aCA9IChlbGZfaW50ZXJwcmV0ZXJbMF0gPT0gJiMzOTskJiMzOTspID8gKGVsZl9pbnRlcnByZXRlciAmIzQzOyA4KSA6IChlbGZfaW50ZXJwcmV0ZXIgJiM0MzsgMTApO1xuJiM0MztcdFx0c3RydWN0IHBhdGggcGFyZW50X3BhdGg7XG4mIzQzO1xuJiM0MztcdFx0LyogUmVmZXJlbmNlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGVkIGZpbGUgc2FmZWx5ICovXG4mIzQzO1x0XHRwYXJlbnRfcGF0aC5tbnQgPSBtbnRnZXQoYnBybS1cdTAwM2VmaWxlLVx1MDAzZWZfcGF0aC5tbnQpO1xuJiM0MztcdFx0cGFyZW50X3BhdGguZGVudHJ5ID0gZGdldF9wYXJlbnQoYnBybS1cdTAwM2VmaWxlLVx1MDAzZWZfcGF0aC5kZW50cnkpO1xuJiM0MztcbiYjNDM7XHRcdC8qIE9wZW4gcmVsYXRpdmUgdG8gcGFyZW50IGRpcmVjdG9yeSAqL1xuJiM0MztcdFx0aW50ZXJwcmV0ZXIgPSBmaWxlX29wZW5fcm9vdChcdTAwMjZwYXJlbnRfcGF0aCwgcmVsX3BhdGgsIE9fUkRPTkxZLCAwKTtcbiYjNDM7XG4mIzQzO1x0XHRwYXRoX3B1dChcdTAwMjZwYXJlbnRfcGF0aCk7XG4mIzQzO1x0fSBlbHNlIHtcbiYjNDM7XHRcdC8qIE5ha2VkIHJlbGF0aXZlIHBhdGhzIGFyZSByZWplY3RlZCBmb3Igc2FmZXR5ICovXG4mIzQzO1x0XHRyZXR2YWwgPSAtRU5PRVhFQztcbiYjNDM7XHRcdGdvdG8gb3V0X2ZyZWU7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRrZnJlZShlbGZfaW50ZXJwcmV0ZXIpO1xuJiM0MztcdHJldHVybiBpbnRlcnByZXRlcjtcbiYjNDM7XG4mIzQzO291dF9mcmVlOlxuJiM0MztcdGtmcmVlKGVsZl9pbnRlcnByZXRlcik7XG4mIzQzO1x0cmV0dXJuIEVSUl9QVFIocmV0dmFsKTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIHN0cnVjdCBlbGZfcGx1Z2luIG5peF9lbGZfcGx1Z2luID0ge1xuJiM0MztcdC5vd25lciA9IFRISVNfTU9EVUxFLFxuJiM0MztcdC5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gcmVnaXN0ZXJfZWxmX3BsdWdpbihcdTAwMjZuaXhfZWxmX3BsdWdpbik7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIF9fZXhpdCBiaW5mbXRfZWxmX25peF9leGl0KHZvaWQpXG4mIzQzO3tcbiYjNDM7XHR1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oXHUwMDI2bml4X2VsZl9wbHVnaW4pO1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mzttb2R1bGVfaW5pdChiaW5mbXRfZWxmX25peF9pbml0KTtcbiYjNDM7bW9kdWxlX2V4aXQoYmluZm10X2VsZl9uaXhfZXhpdCk7XG5kaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jXG5pbmRleCBiOTJmZTdkYjE3NmNmZi4uNDU4MTNiYmNlODMzMDQgMTAwNjQ0XG4tLS0gYS9mcy9leGVjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZWMuY1xuQEAgLTQ2LDYgJiM0Mzs0Niw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2V5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wZXJzb25hbGl0eS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYmluZm10cy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZl9wbHVnaW5zLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91dHNuYW1lLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9waWRfbmFtZXNwYWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuQEAgLTEwOCw2ICYjNDM7MTA5LDUyIEBAIHZvaWQgdW5yZWdpc3Rlcl9iaW5mbXQoc3RydWN0IGxpbnV4X2JpbmZtdCAqIGZtdClcbiBcbiBFWFBPUlRfU1lNQk9MKHVucmVnaXN0ZXJfYmluZm10KTtcbiBcbiYjNDM7I2lmIElTX0VOQUJMRUQoQ09ORklHX0JJTkZNVF9FTEZfUExVR0lOUylcbiYjNDM7c3RhdGljIERFRklORV9NVVRFWChlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7c3RhdGljIExJU1RfSEVBRChlbGZfcGx1Z2lucyk7XG4mIzQzO1xuJiM0MztpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuJiM0Mzt7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7XHRsaXN0X2FkZF90YWlsKFx1MDAyNnBsdWdpbi1cdTAwM2VsaXN0LCBcdTAwMjZlbGZfcGx1Z2lucyk7XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuJiM0MztcdHJldHVybiAwO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHJlZ2lzdGVyX2VsZl9wbHVnaW4pO1xuJiM0MztcbiYjNDM7dm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcbiYjNDM7e1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4mIzQzO1x0bGlzdF9kZWwoXHUwMDI2cGx1Z2luLVx1MDAzZWxpc3QpO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX0dQTCh1bnJlZ2lzdGVyX2VsZl9wbHVnaW4pO1xuJiM0MztcbiYjNDM7c3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuJiM0MztcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbiYjNDM7XHRcdFx0XHRcdCBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luO1xuJiM0MztcdHN0cnVjdCBmaWxlICpmaWxlID0gTlVMTDtcbiYjNDM7XG4mIzQzO1x0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsdWdpbiwgXHUwMDI2ZWxmX3BsdWdpbnMsIGxpc3QpIHtcbiYjNDM7XHRcdGlmICghdHJ5X21vZHVsZV9nZXQocGx1Z2luLVx1MDAzZW93bmVyKSlcbiYjNDM7XHRcdFx0Y29udGludWU7XG4mIzQzO1x0XHRtdXRleF91bmxvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4mIzQzO1xuJiM0MztcdFx0ZmlsZSA9IHBsdWdpbi1cdTAwM2VvcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XG4mIzQzO1xuJiM0MztcdFx0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbiYjNDM7XHRcdG1vZHVsZV9wdXQocGx1Z2luLVx1MDAzZW93bmVyKTtcbiYjNDM7XHRcdGlmIChmaWxlKVxuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XHR9XG4mIzQzO1x0bXV0ZXhfdW5sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuJiM0MztcdHJldHVybiBmaWxlO1xuJiM0Mzt9XG4mIzQzOyNlbmRpZlxuJiM0MztcbiBzdGF0aWMgaW5saW5lIHZvaWQgcHV0X2JpbmZtdChzdHJ1Y3QgbGludXhfYmluZm10ICogZm10KVxuIHtcbiBcdG1vZHVsZV9wdXQoZm10LVx1MDAzZW1vZHVsZSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjgyNmEzMjg1NDRiM2QzXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2VsZl9wbHVnaW5zLmhcbkBAIC0wLDAgJiM0MzsxLDM5IEBAXG4mIzQzOy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi9cbiYjNDM7I2lmbmRlZiBfTElOVVhfRUxGX1BMVUdJTlNfSFxuJiM0MzsjZGVmaW5lIF9MSU5VWF9FTEZfUExVR0lOU19IXG4mIzQzO1xuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9iaW5mbXRzLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvZWxmLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvbGlzdC5oXHUwMDNlXG4mIzQzO1xuJiM0MztzdHJ1Y3QgZWxmX3BsdWdpbiB7XG4mIzQzO1x0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuJiM0MztcdHN0cnVjdCBtb2R1bGUgKm93bmVyO1xuJiM0MztcdHN0cnVjdCBmaWxlICooKm9wZW5faW50ZXJwcmV0ZXIpKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXG4mIzQzO1x0XHRcdFx0XHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxuJiM0MztcdFx0XHRcdFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSk7XG4mIzQzO307XG4mIzQzO1xuJiM0MzsjaWYgSVNfRU5BQkxFRChDT05GSUdfQklORk1UX0VMRl9QTFVHSU5TKVxuJiM0MztpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKTtcbiYjNDM7dm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbik7XG4mIzQzO3N0cnVjdCBmaWxlICplbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbiYjNDM7XHRcdFx0XHRcdCBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXG4mIzQzO1x0XHRcdFx0XHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTtcbiYjNDM7I2Vsc2VcbiYjNDM7c3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIHVucmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuJiM0Mzt7XG4mIzQzO31cbiYjNDM7c3RhdGljIGlubGluZSBzdHJ1Y3QgZmlsZSAqZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXG4mIzQzO1x0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gTlVMTDtcbiYjNDM7fVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNlbmRpZiAvKiBfTElOVVhfRUxGX1BMVUdJTlNfSCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDIyOjEzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9FTEZfUExVR0lOUyYjMzQ7LAogICAgJiMzNDtCSU5GTVRfRUxGX05JWCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlciYjMzQ7LAogICAgJiMzNDtuaXhfb3Blbl9pbnRlcnByZXRlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3lzdGVtIGFuZCBhIHNwZWNpZmljIHBsdWdpbiBmb3IgTml4T1MuIFRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwYXRoIChleGVjdmUpLCB3aGljaCBpcyBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcgYXMgaXQgcGFyc2VzIHVudHJ1c3RlZCBFTEYgaGVhZGVycy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTY1MGQ4Njc4Y2ZjZmY5MmI4YTU4MDk4NjYyNmFkYmFiZDQ1M2FiNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMjI6MTM6NDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9LY29uZmlnLmJpbmZtdCBiL2ZzL0tjb25maWcuYmluZm10CmluZGV4IDE5NDllMjVjNzc0MWIxLi5lZjQyNzdmZDgwNTBiMSAxMDA2NDQKLS0tIGEvZnMvS2NvbmZpZy5iaW5mbXQKJiM0MzsmIzQzOyYjNDM7IGIvZnMvS2NvbmZpZy5iaW5mbXQKQEAgLTM4LDYgJiM0MzszOCwyMSBAQCBjb25maWcgQklORk1UX0VMRl9LVU5JVF9URVNUCiAJICBvbmx5IG5lZWRlZCBmb3IgZGVidWdnaW5nLiBOb3RlIHRoYXQgd2l0aCBDT05GSUdfQ09NUEFUPXksIHRoZQogCSAgY29tcGF0X2JpbmZtdF9lbGYgS1VuaXQgdGVzdCBpcyBhbHNvIGNyZWF0ZWQuCiAKJiM0Mztjb25maWcgQklORk1UX0VMRl9QTFVHSU5TCiYjNDM7CWJvb2wgJiMzNDtFbmFibGUgcGx1Z2luIHN1cHBvcnQgZm9yIEVMRiBpbnRlcnByZXRlciBsb2FkaW5nJiMzNDsKJiM0MzsJZGVwZW5kcyBvbiBCSU5GTVRfRUxGCiYjNDM7CWhlbHAKJiM0MzsJICBUaGlzIG9wdGlvbiBhbGxvd3Mga2VybmVsIG1vZHVsZXMgdG8gcmVnaXN0ZXIgaGFuZGxlcnMgdG8gZHluYW1pY2FsbHkKJiM0MzsJICByZXNvbHZlIGFuZCBvdmVycmlkZSB0aGUgRUxGIHByb2dyYW0gaW50ZXJwcmV0ZXIgKGUuZy4gc3VwcG9ydGluZyByZWxhdGl2ZQomIzQzOwkgIGludGVycHJldGVyIHBhdGhzIHdpdGggJE9SSUdJTikuCiYjNDM7CiYjNDM7Y29uZmlnIEJJTkZNVF9FTEZfTklYCiYjNDM7CXRyaXN0YXRlICYjMzQ7RUxGIGludGVycHJldGVyIHBsdWdpbiBmb3IgTml4T1MgKCRPUklHSU4gc3VwcG9ydCkmIzM0OwomIzQzOwlkZXBlbmRzIG9uIEJJTkZNVF9FTEZfUExVR0lOUwomIzQzOwloZWxwCiYjNDM7CSAgVGhpcyBidWlsZHMgdGhlIE5peE9TIEVMRiBpbnRlcnByZXRlciBwbHVnaW4uIEl0IGludGVyY2VwdHMgUFRfSU5URVJQX05JWAomIzQzOwkgIGhlYWRlcnMgdG8gcmVzb2x2ZSByZWxhdGl2ZSBhbmQgJE9SSUdJTiBpbnRlcnByZXRlciBwYXRocy4KJiM0MzsKIGNvbmZpZyBDT01QQVRfQklORk1UX0VMRgogCWRlZl9ib29sIHkKIAlkZXBlbmRzIG9uIENPTVBBVCAmYW1wOyZhbXA7IEJJTkZNVF9FTEYKZGlmZiAtLWdpdCBhL2ZzL01ha2VmaWxlIGIvZnMvTWFrZWZpbGUKaW5kZXggODlhOGE5ZDIwN2QxYzUuLmJkODFlN2ZmNjRmMzkyIDEwMDY0NAotLS0gYS9mcy9NYWtlZmlsZQomIzQzOyYjNDM7JiM0MzsgYi9mcy9NYWtlZmlsZQpAQCAtMzUsNiAmIzQzOzM1LDcgQEAgb2JqLSQoQ09ORklHX0ZJTEVfTE9DS0lORykgICAgICAmIzQzOz0gbG9ja3Mubwogb2JqLSQoQ09ORklHX0JJTkZNVF9NSVNDKQkmIzQzOz0gYmluZm10X21pc2Mubwogb2JqLSQoQ09ORklHX0JJTkZNVF9TQ1JJUFQpCSYjNDM7PSBiaW5mbXRfc2NyaXB0Lm8KIG9iai0kKENPTkZJR19CSU5GTVRfRUxGKQkmIzQzOz0gYmluZm10X2VsZi5vCiYjNDM7b2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfTklYKQkmIzQzOz0gYmluZm10X2VsZl9uaXgubwogb2JqLSQoQ09ORklHX0NPTVBBVF9CSU5GTVRfRUxGKQkmIzQzOz0gY29tcGF0X2JpbmZtdF9lbGYubwogb2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfRkRQSUMpCSYjNDM7PSBiaW5mbXRfZWxmX2ZkcGljLm8KIG9iai0kKENPTkZJR19CSU5GTVRfRkxBVCkJJiM0Mzs9IGJpbmZtdF9mbGF0Lm8KZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbGYuYyBiL2ZzL2JpbmZtdF9lbGYuYwppbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0Ci0tLSBhL2ZzL2JpbmZtdF9lbGYuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9iaW5mbXRfZWxmLmMKQEAgLTM1LDYgJiM0MzszNSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvcmFuZG9tLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvZWxmLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvZWxmLXJhbmRvbWl6ZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9lbGZfcGx1Z2lucy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3V0c25hbWUuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9jb3JlZHVtcC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NjaGVkLmgmZ3Q7CkBAIC04NzAsNiAmIzQzOzg3MSwxMiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQogCWlmICghZWxmX3BoZGF0YSkKIAkJZ290byBvdXQ7CiAKJiM0MzsJaW50ZXJwcmV0ZXIgPSBlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXIoYnBybSwgZWxmX2V4LCBlbGZfcGhkYXRhKTsKJiM0MzsJaWYgKElTX0VSUihpbnRlcnByZXRlcikpIHsKJiM0MzsJCXJldHZhbCA9IFBUUl9FUlIoaW50ZXJwcmV0ZXIpOwomIzQzOwkJZ290byBvdXRfZnJlZV9waDsKJiM0MzsJfQomIzQzOwogCWVsZl9wcG50ID0gZWxmX3BoZGF0YTsKIAlmb3IgKGkgPSAwOyBpICZsdDsgZWxmX2V4LSZndDtlX3BobnVtOyBpJiM0MzsmIzQzOywgZWxmX3BwbnQmIzQzOyYjNDM7KSB7CiAJCWNoYXIgKmVsZl9pbnRlcnByZXRlcjsKQEAgLTg4Miw2ICYjNDM7ODg5LDkgQEAgc3RhdGljIGludCBsb2FkX2VsZl9iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKIAkJaWYgKGVsZl9wcG50LSZndDtwX3R5cGUgIT0gUFRfSU5URVJQKQogCQkJY29udGludWU7CiAKJiM0MzsJCWlmIChpbnRlcnByZXRlcikKJiM0MzsJCQljb250aW51ZTsKJiM0MzsKIAkJLyoKIAkJICogVGhpcyBpcyB0aGUgcHJvZ3JhbSBpbnRlcnByZXRlciB1c2VkIGZvciBzaGFyZWQgbGlicmFyaWVzIC0KIAkJICogZm9yIG5vdyBhc3N1bWUgdGhhdCB0aGlzIGlzIGFuIGEub3V0IGZvcm1hdCBiaW5hcnkuCkBAIC05MzUsNiAmIzQzOzk0NSwyMCBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQogCQlnb3RvIG91dF9mcmVlX3BoOwogCX0KIAomIzQzOwlpZiAoaW50ZXJwcmV0ZXIgJmFtcDsmYW1wOyAhaW50ZXJwX2VsZl9leCkgewomIzQzOwkJaW50ZXJwX2VsZl9leCA9IGttYWxsb2Nfb2JqKCppbnRlcnBfZWxmX2V4KTsKJiM0MzsJCWlmICghaW50ZXJwX2VsZl9leCkgewomIzQzOwkJCXJldHZhbCA9IC1FTk9NRU07CiYjNDM7CQkJZ290byBvdXRfZnJlZV9maWxlOwomIzQzOwkJfQomIzQzOwomIzQzOwkJLyogR2V0IHRoZSBleGVjIGhlYWRlcnMgKi8KJiM0MzsJCXJldHZhbCA9IGVsZl9yZWFkKGludGVycHJldGVyLCBpbnRlcnBfZWxmX2V4LAomIzQzOwkJCQkgIHNpemVvZigqaW50ZXJwX2VsZl9leCksIDApOwomIzQzOwkJaWYgKHJldHZhbCAmbHQ7IDApCiYjNDM7CQkJZ290byBvdXRfZnJlZV9kZW50cnk7CiYjNDM7CX0KJiM0MzsKIAllbGZfcHBudCA9IGVsZl9waGRhdGE7CiAJZm9yIChpID0gMDsgaSAmbHQ7IGVsZl9leC0mZ3Q7ZV9waG51bTsgaSYjNDM7JiM0MzssIGVsZl9wcG50JiM0MzsmIzQzOykKIAkJc3dpdGNoIChlbGZfcHBudC0mZ3Q7cF90eXBlKSB7CmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmX25peC5jIGIvZnMvYmluZm10X2VsZl9uaXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2EKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9mcy9iaW5mbXRfZWxmX25peC5jCkBAIC0wLDAgJiM0MzsxLDEwOCBAQAomIzQzOy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbW9kdWxlLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2tlcm5lbC5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9pbml0LmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2ZzLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3BhdGguaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbmFtZWkuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvZWxmLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2VsZl9wbHVnaW5zLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3NsYWIuaCZndDsKJiM0MzsKJiM0MztNT0RVTEVfREVTQ1JJUFRJT04oJiMzNDtFTEYgSW50ZXJwcmV0ZXIgcGx1Z2luIGZvciBOaXhPUyAvICRPUklHSU4mIzM0Oyk7CiYjNDM7TU9EVUxFX0FVVEhPUigmIzM0O0ZhcmlkIFpha2FyaWEmIzM0Oyk7CiYjNDM7TU9EVUxFX0xJQ0VOU0UoJiMzNDtHUEwmIzM0Oyk7CiYjNDM7CiYjNDM7LyogTW5lbW9uaWMgdmFsdWUgZm9yIE5peE9TLXNwZWNpZmljIHByb2dyYW0gaW50ZXJwcmV0ZXI6ICYjMzk7TiYjMzk7LCAmIzM5O0kmIzM5OywgJiMzOTtYJiMzOTssIDMgKi8KJiM0MzsjZGVmaW5lIFBUX0lOVEVSUF9OSVggIChQVF9MT09TICYjNDM7IDB4NGU0OTU4MykKJiM0MzsKJiM0MztzdGF0aWMgc3RydWN0IGZpbGUgKm5peF9vcGVuX2ludGVycHJldGVyKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sCiYjNDM7CQkJCQkgc3RydWN0IGVsZmhkciAqZWxmX2V4LAomIzQzOwkJCQkJIHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBlbGZfcGhkciAqZWxmX3BwbnQ7CiYjNDM7CXN0cnVjdCBmaWxlICppbnRlcnByZXRlciA9IE5VTEw7CiYjNDM7CWNoYXIgKmVsZl9pbnRlcnByZXRlciA9IE5VTEw7CiYjNDM7CWludCBpLCByZXR2YWw7CiYjNDM7CiYjNDM7CS8qIEZpbmQgdGhlIGN1c3RvbSBOaXggaW50ZXJwcmV0ZXIgaGVhZGVyICovCiYjNDM7CWVsZl9wcG50ID0gZWxmX3BoZGF0YTsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IGVsZl9leC0mZ3Q7ZV9waG51bTsgaSYjNDM7JiM0MzssIGVsZl9wcG50JiM0MzsmIzQzOykgewomIzQzOwkJaWYgKGVsZl9wcG50LSZndDtwX3R5cGUgPT0gUFRfSU5URVJQX05JWCkKJiM0MzsJCQlicmVhazsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoaSA9PSBlbGZfZXgtJmd0O2VfcGhudW0pCiYjNDM7CQlyZXR1cm4gTlVMTDsgLyogU2VnbWVudCBub3QgcHJlc2VudDsgZmFsbCBiYWNrIHRvIG90aGVycyAqLwomIzQzOwomIzQzOwkvKiBTZWN1cml0eSBjaGVjazogcmVmdXNlIHJlbGF0aXZlIGludGVycCByZXNvbHV0aW9uIG9uIHNlY3VyZSBleGVjdXRpb24gKi8KJiM0MzsJaWYgKGJwcm0tJmd0O3NlY3VyZWV4ZWMpIHsKJiM0MzsJCXByX3dhcm5fb25jZSgmIzM0O2JpbmZtdF9lbGZfbml4OiBzZWN1cmVleGVjIGFjdGl2ZSwgcmVmdXNpbmcgY3VzdG9tIGludGVycHJldGVyIGxvb2t1cFxuJiMzNDspOwomIzQzOwkJcmV0dXJuIE5VTEw7IC8qIEZhbGxiYWNrIHRvIHN0YW5kYXJkIFBUX0lOVEVSUCAqLwomIzQzOwl9CiYjNDM7CiYjNDM7CWlmIChlbGZfcHBudC0mZ3Q7cF9maWxlc3ogJmd0OyBQQVRIX01BWCB8fCBlbGZfcHBudC0mZ3Q7cF9maWxlc3ogJmx0OyAyKQomIzQzOwkJcmV0dXJuIEVSUl9QVFIoLUVOT0VYRUMpOwomIzQzOwomIzQzOwllbGZfaW50ZXJwcmV0ZXIgPSBrbWFsbG9jKGVsZl9wcG50LSZndDtwX2ZpbGVzeiwgR0ZQX0tFUk5FTCk7CiYjNDM7CWlmICghZWxmX2ludGVycHJldGVyKQomIzQzOwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiYjNDM7CiYjNDM7CS8qIFJlYWQgdGhlIGludGVycHJldGVyIHBhdGggZnJvbSB0aGUgZXhlY3V0YWJsZSBmaWxlICovCiYjNDM7CXJldHZhbCA9IGtlcm5lbF9yZWFkKGJwcm0tJmd0O2ZpbGUsIGVsZl9pbnRlcnByZXRlciwgZWxmX3BwbnQtJmd0O3BfZmlsZXN6LCAmYW1wO2VsZl9wcG50LSZndDtwX29mZnNldCk7CiYjNDM7CWlmIChyZXR2YWwgIT0gZWxmX3BwbnQtJmd0O3BfZmlsZXN6KSB7CiYjNDM7CQlyZXR2YWwgPSAocmV0dmFsICZsdDsgMCkgPyByZXR2YWwgOiAtRUlPOwomIzQzOwkJZ290byBvdXRfZnJlZTsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LSZndDtwX2ZpbGVzeiAtIDFdICE9ICYjMzk7XDAmIzM5OykgewomIzQzOwkJcmV0dmFsID0gLUVOT0VYRUM7CiYjNDM7CQlnb3RvIG91dF9mcmVlOwomIzQzOwl9CiYjNDM7CiYjNDM7CS8qIFBhdGggUmVzb2x1dGlvbjogQWJzb2x1dGUgdnMuICRPUklHSU4gKi8KJiM0MzsJaWYgKGVsZl9pbnRlcnByZXRlclswXSA9PSAmIzM5Oy8mIzM5OykgewomIzQzOwkJaW50ZXJwcmV0ZXIgPSBvcGVuX2V4ZWMoZWxmX2ludGVycHJldGVyKTsKJiM0MzsJfSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgJiMzNDskT1JJR0lOLyYjMzQ7LCA4KSA9PSAwIHx8IHN0cm5jbXAoZWxmX2ludGVycHJldGVyLCAmIzM0OyR7T1JJR0lOfS8mIzM0OywgMTApID09IDApIHsKJiM0MzsJCWNvbnN0IGNoYXIgKnJlbF9wYXRoID0gKGVsZl9pbnRlcnByZXRlclswXSA9PSAmIzM5OyQmIzM5OykgPyAoZWxmX2ludGVycHJldGVyICYjNDM7IDgpIDogKGVsZl9pbnRlcnByZXRlciAmIzQzOyAxMCk7CiYjNDM7CQlzdHJ1Y3QgcGF0aCBwYXJlbnRfcGF0aDsKJiM0MzsKJiM0MzsJCS8qIFJlZmVyZW5jZSBwYXJlbnQgZGlyZWN0b3J5IG9mIHRoZSBleGVjdXRlZCBmaWxlIHNhZmVseSAqLwomIzQzOwkJcGFyZW50X3BhdGgubW50ID0gbW50Z2V0KGJwcm0tJmd0O2ZpbGUtJmd0O2ZfcGF0aC5tbnQpOwomIzQzOwkJcGFyZW50X3BhdGguZGVudHJ5ID0gZGdldF9wYXJlbnQoYnBybS0mZ3Q7ZmlsZS0mZ3Q7Zl9wYXRoLmRlbnRyeSk7CiYjNDM7CiYjNDM7CQkvKiBPcGVuIHJlbGF0aXZlIHRvIHBhcmVudCBkaXJlY3RvcnkgKi8KJiM0MzsJCWludGVycHJldGVyID0gZmlsZV9vcGVuX3Jvb3QoJmFtcDtwYXJlbnRfcGF0aCwgcmVsX3BhdGgsIE9fUkRPTkxZLCAwKTsKJiM0MzsKJiM0MzsJCXBhdGhfcHV0KCZhbXA7cGFyZW50X3BhdGgpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJLyogTmFrZWQgcmVsYXRpdmUgcGF0aHMgYXJlIHJlamVjdGVkIGZvciBzYWZldHkgKi8KJiM0MzsJCXJldHZhbCA9IC1FTk9FWEVDOwomIzQzOwkJZ290byBvdXRfZnJlZTsKJiM0MzsJfQomIzQzOwomIzQzOwlrZnJlZShlbGZfaW50ZXJwcmV0ZXIpOwomIzQzOwlyZXR1cm4gaW50ZXJwcmV0ZXI7CiYjNDM7CiYjNDM7b3V0X2ZyZWU6CiYjNDM7CWtmcmVlKGVsZl9pbnRlcnByZXRlcik7CiYjNDM7CXJldHVybiBFUlJfUFRSKHJldHZhbCk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzdHJ1Y3QgZWxmX3BsdWdpbiBuaXhfZWxmX3BsdWdpbiA9IHsKJiM0MzsJLm93bmVyID0gVEhJU19NT0RVTEUsCiYjNDM7CS5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpCiYjNDM7ewomIzQzOwlyZXR1cm4gcmVnaXN0ZXJfZWxmX3BsdWdpbigmYW1wO25peF9lbGZfcGx1Z2luKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgX19leGl0IGJpbmZtdF9lbGZfbml4X2V4aXQodm9pZCkKJiM0Mzt7CiYjNDM7CXVucmVnaXN0ZXJfZWxmX3BsdWdpbigmYW1wO25peF9lbGZfcGx1Z2luKTsKJiM0Mzt9CiYjNDM7CiYjNDM7bW9kdWxlX2luaXQoYmluZm10X2VsZl9uaXhfaW5pdCk7CiYjNDM7bW9kdWxlX2V4aXQoYmluZm10X2VsZl9uaXhfZXhpdCk7CmRpZmYgLS1naXQgYS9mcy9leGVjLmMgYi9mcy9leGVjLmMKaW5kZXggYjkyZmU3ZGIxNzZjZmYuLjQ1ODEzYmJjZTgzMzA0IDEwMDY0NAotLS0gYS9mcy9leGVjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZXhlYy5jCkBAIC00Niw2ICYjNDM7NDYsNyBAQAogI2luY2x1ZGUgJmx0O2xpbnV4L2tleS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3BlcnNvbmFsaXR5LmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvYmluZm10cy5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9lbGZfcGx1Z2lucy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3V0c25hbWUuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9waWRfbmFtZXNwYWNlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvbW9kdWxlLmgmZ3Q7CkBAIC0xMDgsNiAmIzQzOzEwOSw1MiBAQCB2b2lkIHVucmVnaXN0ZXJfYmluZm10KHN0cnVjdCBsaW51eF9iaW5mbXQgKiBmbXQpCiAKIEVYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9iaW5mbXQpOwogCiYjNDM7I2lmIElTX0VOQUJMRUQoQ09ORklHX0JJTkZNVF9FTEZfUExVR0lOUykKJiM0MztzdGF0aWMgREVGSU5FX01VVEVYKGVsZl9wbHVnaW5zX2xvY2spOwomIzQzO3N0YXRpYyBMSVNUX0hFQUQoZWxmX3BsdWdpbnMpOwomIzQzOwomIzQzO2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pCiYjNDM7ewomIzQzOwltdXRleF9sb2NrKCZhbXA7ZWxmX3BsdWdpbnNfbG9jayk7CiYjNDM7CWxpc3RfYWRkX3RhaWwoJmFtcDtwbHVnaW4tJmd0O2xpc3QsICZhbXA7ZWxmX3BsdWdpbnMpOwomIzQzOwltdXRleF91bmxvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHJlZ2lzdGVyX2VsZl9wbHVnaW4pOwomIzQzOwomIzQzO3ZvaWQgdW5yZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pCiYjNDM7ewomIzQzOwltdXRleF9sb2NrKCZhbXA7ZWxmX3BsdWdpbnNfbG9jayk7CiYjNDM7CWxpc3RfZGVsKCZhbXA7cGx1Z2luLSZndDtsaXN0KTsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7ZWxmX3BsdWdpbnNfbG9jayk7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHVucmVnaXN0ZXJfZWxmX3BsdWdpbik7CiYjNDM7CiYjNDM7c3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAomIzQzOwkJCQkJIHN0cnVjdCBlbGZoZHIgKmVsZl9leCwKJiM0MzsJCQkJCSBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luOwomIzQzOwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IE5VTEw7CiYjNDM7CiYjNDM7CW11dGV4X2xvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJbGlzdF9mb3JfZWFjaF9lbnRyeShwbHVnaW4sICZhbXA7ZWxmX3BsdWdpbnMsIGxpc3QpIHsKJiM0MzsJCWlmICghdHJ5X21vZHVsZV9nZXQocGx1Z2luLSZndDtvd25lcikpCiYjNDM7CQkJY29udGludWU7CiYjNDM7CQltdXRleF91bmxvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsKJiM0MzsJCWZpbGUgPSBwbHVnaW4tJmd0O29wZW5faW50ZXJwcmV0ZXIoYnBybSwgZWxmX2V4LCBlbGZfcGhkYXRhKTsKJiM0MzsKJiM0MzsJCW11dGV4X2xvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJCW1vZHVsZV9wdXQocGx1Z2luLSZndDtvd25lcik7CiYjNDM7CQlpZiAoZmlsZSkKJiM0MzsJCQlicmVhazsKJiM0MzsJfQomIzQzOwltdXRleF91bmxvY2soJmFtcDtlbGZfcGx1Z2luc19sb2NrKTsKJiM0MzsJcmV0dXJuIGZpbGU7CiYjNDM7fQomIzQzOyNlbmRpZgomIzQzOwogc3RhdGljIGlubGluZSB2b2lkIHB1dF9iaW5mbXQoc3RydWN0IGxpbnV4X2JpbmZtdCAqIGZtdCkKIHsKIAltb2R1bGVfcHV0KGZtdC0mZ3Q7bW9kdWxlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZWxmX3BsdWdpbnMuaCBiL2luY2x1ZGUvbGludXgvZWxmX3BsdWdpbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uODI2YTMyODU0NGIzZDMKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2VsZl9wbHVnaW5zLmgKQEAgLTAsMCAmIzQzOzEsMzkgQEAKJiM0MzsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCiYjNDM7I2lmbmRlZiBfTElOVVhfRUxGX1BMVUdJTlNfSAomIzQzOyNkZWZpbmUgX0xJTlVYX0VMRl9QTFVHSU5TX0gKJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvYmluZm10cy5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9lbGYuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvbGlzdC5oJmd0OwomIzQzOwomIzQzO3N0cnVjdCBlbGZfcGx1Z2luIHsKJiM0MzsJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwomIzQzOwlzdHJ1Y3QgbW9kdWxlICpvd25lcjsKJiM0MzsJc3RydWN0IGZpbGUgKigqb3Blbl9pbnRlcnByZXRlcikoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwKJiM0MzsJCQkJCSBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsCiYjNDM7CQkJCQkgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTsKJiM0Mzt9OwomIzQzOwomIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19CSU5GTVRfRUxGX1BMVUdJTlMpCiYjNDM7aW50IHJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbik7CiYjNDM7dm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbik7CiYjNDM7c3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAomIzQzOwkJCQkJIHN0cnVjdCBlbGZoZHIgKmVsZl9leCwKJiM0MzsJCQkJCSBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpOwomIzQzOyNlbHNlCiYjNDM7c3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKQomIzQzO3sKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbikKJiM0Mzt7CiYjNDM7fQomIzQzO3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAomIzQzOwkJCQkJCSAgICAgICBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsCiYjNDM7CQkJCQkJICAgICAgIHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSkKJiM0Mzt7CiYjNDM7CXJldHVybiBOVUxMOwomIzQzO30KJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjZW5kaWYgLyogX0xJTlVYX0VMRl9QTFVHSU5TX0ggKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMjI6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ0MAoJCQkJCQkJb3V0cHV0OiAxMTcKCQkJCQkJCXRob3VnaHRzOiA2NjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRUxGIEludGVycHJldGVyIFBsdWdpbiBBbmFseXNpcyBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBpbiBmcm9udCBvZiBtZSB0aGF0JiMzOTtzIGFkZGluZyBzb21lIGludGVyZXN0aW5nIG5ldyBmdW5jdGlvbmFsaXR5OiBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIHN1cHBvcnQsIHNwZWNpZmljYWxseSBmb3IgTml4T1MgYW5kIGl0cyBgJE9SSUdJTmAgc3VwcG9ydC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7ZnV6emluZyB0YXJnZXQsIGZvciBzdXJlLiYjMzQ7IEl0IHRvdWNoZXMgYGZzL2JpbmZtdF9lbGYuY2AsIGBmcy9leGVjLmNgLCBpbnRyb2R1Y2VzIGBmcy9iaW5mbXRfZWxmX25peC5jYCwgYW5kIGEgbmV3IGhlYWRlciwgYGluY2x1ZGUvbGludXgvZWxmX3BsdWdpbnMuaGAuIFRoaXMgbWVhbnMgbmV3IGNvZGUgcGF0aHMgaW4gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwcm9jZXNzLCB3aGljaCBpcyBhbHdheXMgYSBwcmltZSB0YXJnZXQuCgpGaXJzdCwgSSBuZWVkIHRvIGNvbmZpcm0gcmVhY2hhYmlsaXR5LiBUaGUgbW9kaWZpY2F0aW9uIHRvIGBsb2FkX2VsZl9iaW5hcnlgIGluIGBmcy9iaW5mbXRfZWxmLmNgIGlzIGtleS4gSXQgbm93IGNhbGxzIGBlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXJgLCB3aGljaCBpcyBkZWZpbml0ZWx5IHRyaWdnZXJlZCBkdXJpbmcgdGhlIGBleGVjdmVgIHN5c3RlbSBjYWxsIGZvciBhbnkgRUxGIGJpbmFyeS4gRXhjZWxsZW50LCB0aGF0JiMzOTtzIGFscmVhZHkgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBUaGUgYG5peF9vcGVuX2ludGVycHJldGVyYCBmdW5jdGlvbiBpbiBgZnMvYmluZm10X2VsZl9uaXguY2AgaXMgdGhlIHBsdWdpbiBpdHNlbGYuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgZ29pbmcgdG8gaW50ZXJjZXB0IGBQVF9JTlRFUlBfTklYYCDigJMgdGhhdCYjMzk7cyBhIGN1c3RvbSBwcm9ncmFtIGhlYWRlciB0eXBlLCBhIGdvb2Qgc2lnbiB0aGF0IHRoZSBkZXZlbG9wZXJzIGFyZSBhd2FyZSBvZiB0aGUgZnV6emluZyBwb3RlbnRpYWwuCgpOZXh0LCBJIG5lZWQgdG8ga25vdyBob3cgdG8gZW5hYmxlIHRoaXMuIERpZ2dpbmcgaW50byB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgdHdvIGNvbmZpZyBvcHRpb25zOiBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gUmlnaHQsIG5vdyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSBjb2RlIGlzIGRlZmluZWQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIGNvcnJlY3QgYnVpbGQgZmxhZ3MuIE9rYXksIEkmIzM5O3ZlIGdvdCB0aGVtOiBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gQm90aCBlbmFibGVkLCBvZiBjb3Vyc2UuCgpUaGUgbWFpbiBmdW5jdGlvbnMgSSYjMzk7bSBpbnRlcmVzdGVkIGluIGFyZTogYGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcmAsIGBuaXhfb3Blbl9pbnRlcnByZXRlcmAsIGByZWdpc3Rlcl9lbGZfcGx1Z2luYCwgYW5kIGB1bnJlZ2lzdGVyX2VsZl9wbHVnaW5gLiBJJiMzOTttIGVzcGVjaWFsbHkga2VlbiBvbiBgZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyYCBhbmQgYG5peF9vcGVuX2ludGVycHJldGVyYCBhcyB0aGV5JiMzOTtyZSB0aGUgZGlyZWN0IGVudHJ5IHBvaW50cy4gSSBoYXZlIHRvIGRvdWJsZS1jaGVjayB0aGF0IGBQVF9JTlRFUlBfTklYYCBpcyByZWFjaGFibGUuIFllcywgaWYgYW4gRUxGIGJpbmFyeSBjb250YWlucyBhIGBQVF9JTlRFUlBfTklYYCBoZWFkZXIsIHRoZSBwbHVnaW4gd2lsbCBhdHRlbXB0IHRvIGxvYWQgaXQuIFRoaXMgaXMgZ29sZC4KClRoaXMgaXMgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZywgc3BlY2lmaWNhbGx5IHdpdGggc29tZXRoaW5nIGxpa2UgU3l6a2FsbGVyLiBJdCBjYW4gZ2VuZXJhdGUgRUxGIGJpbmFyaWVzIHdpdGggYWxsIHNvcnRzIG9mIHByb2dyYW0gaGVhZGVycy4gSSBjYW4gY3JhZnQgYmluYXJpZXMgY29udGFpbmluZyBgUFRfSU5URVJQX05JWGAgYW5kIHNlZSB3aGF0IGhhcHBlbnMuIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgY29uZmlybSB0aGUgZmVhdHVyZSBpcyBlYXNpbHkgZW5hYmxlZC4gSSYjMzk7dmUgZ290IGEgc29saWQgcGF0aCB0byB0ZXN0LgoKT2theSwgbGV0JiMzOTtzIGNhbGwgdGhlIHNldC1yZXN1bHRzIHRvb2wuIEl0JiMzOTtzIFdvcnRoRnV6emluZywgZm9yIHN1cmUuIFRoZSBpbXBvcnRhbnQgc3ltYm9scyBhcmUgYGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcmAgYW5kIGBuaXhfb3Blbl9pbnRlcnByZXRlcmAsIGFuZCBJIG5lZWQgdG8gZW5hYmxlIGBCSU5GTVRfRUxGX1BMVUdJTlNgIGFuZCBgQklORk1UX0VMRl9OSVhgLiBUaGUgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGxvYWRpbmcgcGF0aCAoZXhlY3ZlKSwgcGFyc2luZyBwb3RlbnRpYWxseSB1bnRydXN0ZWQgRUxGIGhlYWRlcnMsIGEgY2xhc3NpYyB2dWxuZXJhYmlsaXR5IHNvdXJjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAyMjoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QklORk1UX0VMRl9QTFVHSU5TJiMzNDssCiAgICAmIzM0O0JJTkZNVF9FTEZfTklYJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyJiMzNDssCiAgICAmIzM0O25peF9vcGVuX2ludGVycHJldGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgRUxGIGludGVycHJldGVyIHBsdWdpbiBzeXN0ZW0gYW5kIGEgc3BlY2lmaWMgcGx1Z2luIGZvciBOaXhPUy4gVGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHdoaWNoIGlzIGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZyBhcyBpdCBwYXJzZXMgdW50cnVzdGVkIEVMRiBoZWFkZXJzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCSU5GTVRfRUxGX1BMVUdJTlMmIzM0OywKICAgICYjMzQ7QklORk1UX0VMRl9OSVgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXImIzM0OywKICAgICYjMzQ7bml4X29wZW5faW50ZXJwcmV0ZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIHN5c3RlbSBhbmQgYSBzcGVjaWZpYyBwbHVnaW4gZm9yIE5peE9TLiBUaGlzIGFkZHMgbmV3IGxvZ2ljIHRvIHRoZSBFTEYgYmluYXJ5IGxvYWRpbmcgcGF0aCAoZXhlY3ZlKSwgd2hpY2ggaXMgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nIGFzIGl0IHBhcnNlcyB1bnRydXN0ZWQgRUxGIGhlYWRlcnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMjoxMzo0MS43MTAzNTUxMDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTc2MjMwNDQzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCSU5GTVRfRUxGX1BMVUdJTlNcIixcbiAgICBcIkJJTkZNVF9FTEZfTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyXCIsXG4gICAgXCJuaXhfb3Blbl9pbnRlcnByZXRlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgRUxGIGludGVycHJldGVyIHBsdWdpbiBzeXN0ZW0gYW5kIGEgc3BlY2lmaWMgcGx1Z2luIGZvciBOaXhPUy4gVGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHdoaWNoIGlzIGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZyBhcyBpdCBwYXJzZXMgdW50cnVzdGVkIEVMRiBoZWFkZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMjoxMzo0MS43MTAzNTk2OTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MzQ2MjUyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDk2NTBkODY3OGNmY2ZmOTJiOGE1ODA5ODY2MjZhZGJhYmQ0NTNhYjVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMiAyMjoxMzo0MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9LY29uZmlnLmJpbmZtdCBiL2ZzL0tjb25maWcuYmluZm10XFxuaW5kZXggMTk0OWUyNWM3NzQxYjEuLmVmNDI3N2ZkODA1MGIxIDEwMDY0NFxcbi0tLSBhL2ZzL0tjb25maWcuYmluZm10XFxuKysrIGIvZnMvS2NvbmZpZy5iaW5mbXRcXG5AQCAtMzgsNiArMzgsMjEgQEAgY29uZmlnIEJJTkZNVF9FTEZfS1VOSVRfVEVTVFxcbiBcXHQgIG9ubHkgbmVlZGVkIGZvciBkZWJ1Z2dpbmcuIE5vdGUgdGhhdCB3aXRoIENPTkZJR19DT01QQVQ9eSwgdGhlXFxuIFxcdCAgY29tcGF0X2JpbmZtdF9lbGYgS1VuaXQgdGVzdCBpcyBhbHNvIGNyZWF0ZWQuXFxuIFxcbitjb25maWcgQklORk1UX0VMRl9QTFVHSU5TXFxuK1xcdGJvb2wgXFxcIkVuYWJsZSBwbHVnaW4gc3VwcG9ydCBmb3IgRUxGIGludGVycHJldGVyIGxvYWRpbmdcXFwiXFxuK1xcdGRlcGVuZHMgb24gQklORk1UX0VMRlxcbitcXHRoZWxwXFxuK1xcdCAgVGhpcyBvcHRpb24gYWxsb3dzIGtlcm5lbCBtb2R1bGVzIHRvIHJlZ2lzdGVyIGhhbmRsZXJzIHRvIGR5bmFtaWNhbGx5XFxuK1xcdCAgcmVzb2x2ZSBhbmQgb3ZlcnJpZGUgdGhlIEVMRiBwcm9ncmFtIGludGVycHJldGVyIChlLmcuIHN1cHBvcnRpbmcgcmVsYXRpdmVcXG4rXFx0ICBpbnRlcnByZXRlciBwYXRocyB3aXRoICRPUklHSU4pLlxcbitcXG4rY29uZmlnIEJJTkZNVF9FTEZfTklYXFxuK1xcdHRyaXN0YXRlIFxcXCJFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIGZvciBOaXhPUyAoJE9SSUdJTiBzdXBwb3J0KVxcXCJcXG4rXFx0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGX1BMVUdJTlNcXG4rXFx0aGVscFxcbitcXHQgIFRoaXMgYnVpbGRzIHRoZSBOaXhPUyBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luLiBJdCBpbnRlcmNlcHRzIFBUX0lOVEVSUF9OSVhcXG4rXFx0ICBoZWFkZXJzIHRvIHJlc29sdmUgcmVsYXRpdmUgYW5kICRPUklHSU4gaW50ZXJwcmV0ZXIgcGF0aHMuXFxuK1xcbiBjb25maWcgQ09NUEFUX0JJTkZNVF9FTEZcXG4gXFx0ZGVmX2Jvb2wgeVxcbiBcXHRkZXBlbmRzIG9uIENPTVBBVCBcXHUwMDI2XFx1MDAyNiBCSU5GTVRfRUxGXFxuZGlmZiAtLWdpdCBhL2ZzL01ha2VmaWxlIGIvZnMvTWFrZWZpbGVcXG5pbmRleCA4OWE4YTlkMjA3ZDFjNS4uYmQ4MWU3ZmY2NGYzOTIgMTAwNjQ0XFxuLS0tIGEvZnMvTWFrZWZpbGVcXG4rKysgYi9mcy9NYWtlZmlsZVxcbkBAIC0zNSw2ICszNSw3IEBAIG9iai0kKENPTkZJR19GSUxFX0xPQ0tJTkcpICAgICAgKz0gbG9ja3Mub1xcbiBvYmotJChDT05GSUdfQklORk1UX01JU0MpXFx0Kz0gYmluZm10X21pc2Mub1xcbiBvYmotJChDT05GSUdfQklORk1UX1NDUklQVClcXHQrPSBiaW5mbXRfc2NyaXB0Lm9cXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9FTEYpXFx0Kz0gYmluZm10X2VsZi5vXFxuK29iai0kKENPTkZJR19CSU5GTVRfRUxGX05JWClcXHQrPSBiaW5mbXRfZWxmX25peC5vXFxuIG9iai0kKENPTkZJR19DT01QQVRfQklORk1UX0VMRilcXHQrPSBjb21wYXRfYmluZm10X2VsZi5vXFxuIG9iai0kKENPTkZJR19CSU5GTVRfRUxGX0ZEUElDKVxcdCs9IGJpbmZtdF9lbGZfZmRwaWMub1xcbiBvYmotJChDT05GSUdfQklORk1UX0ZMQVQpXFx0Kz0gYmluZm10X2ZsYXQub1xcbmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmLmMgYi9mcy9iaW5mbXRfZWxmLmNcXG5pbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0XFxuLS0tIGEvZnMvYmluZm10X2VsZi5jXFxuKysrIGIvZnMvYmluZm10X2VsZi5jXFxuQEAgLTM1LDYgKzM1LDcgQEBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JhbmRvbS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZWxmLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9lbGYtcmFuZG9taXplLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9lbGZfcGx1Z2lucy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvdXRzbmFtZS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvY29yZWR1bXAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NjaGVkLmhcXHUwMDNlXFxuQEAgLTg3MCw2ICs4NzEsMTIgQEAgc3RhdGljIGludCBsb2FkX2VsZl9iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcXG4gXFx0aWYgKCFlbGZfcGhkYXRhKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuK1xcdGludGVycHJldGVyID0gZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XFxuK1xcdGlmIChJU19FUlIoaW50ZXJwcmV0ZXIpKSB7XFxuK1xcdFxcdHJldHZhbCA9IFBUUl9FUlIoaW50ZXJwcmV0ZXIpO1xcbitcXHRcXHRnb3RvIG91dF9mcmVlX3BoO1xcbitcXHR9XFxuK1xcbiBcXHRlbGZfcHBudCA9IGVsZl9waGRhdGE7XFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlbGZfZXgtXFx1MDAzZWVfcGhudW07IGkrKywgZWxmX3BwbnQrKykge1xcbiBcXHRcXHRjaGFyICplbGZfaW50ZXJwcmV0ZXI7XFxuQEAgLTg4Miw2ICs4ODksOSBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxcbiBcXHRcXHRpZiAoZWxmX3BwbnQtXFx1MDAzZXBfdHlwZSAhPSBQVF9JTlRFUlApXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXG4rXFx0XFx0aWYgKGludGVycHJldGVyKVxcbitcXHRcXHRcXHRjb250aW51ZTtcXG4rXFxuIFxcdFxcdC8qXFxuIFxcdFxcdCAqIFRoaXMgaXMgdGhlIHByb2dyYW0gaW50ZXJwcmV0ZXIgdXNlZCBmb3Igc2hhcmVkIGxpYnJhcmllcyAtXFxuIFxcdFxcdCAqIGZvciBub3cgYXNzdW1lIHRoYXQgdGhpcyBpcyBhbiBhLm91dCBmb3JtYXQgYmluYXJ5LlxcbkBAIC05MzUsNiArOTQ1LDIwIEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXFxuIFxcdFxcdGdvdG8gb3V0X2ZyZWVfcGg7XFxuIFxcdH1cXG4gXFxuK1xcdGlmIChpbnRlcnByZXRlciBcXHUwMDI2XFx1MDAyNiAhaW50ZXJwX2VsZl9leCkge1xcbitcXHRcXHRpbnRlcnBfZWxmX2V4ID0ga21hbGxvY19vYmooKmludGVycF9lbGZfZXgpO1xcbitcXHRcXHRpZiAoIWludGVycF9lbGZfZXgpIHtcXG4rXFx0XFx0XFx0cmV0dmFsID0gLUVOT01FTTtcXG4rXFx0XFx0XFx0Z290byBvdXRfZnJlZV9maWxlO1xcbitcXHRcXHR9XFxuK1xcbitcXHRcXHQvKiBHZXQgdGhlIGV4ZWMgaGVhZGVycyAqL1xcbitcXHRcXHRyZXR2YWwgPSBlbGZfcmVhZChpbnRlcnByZXRlciwgaW50ZXJwX2VsZl9leCxcXG4rXFx0XFx0XFx0XFx0ICBzaXplb2YoKmludGVycF9lbGZfZXgpLCAwKTtcXG4rXFx0XFx0aWYgKHJldHZhbCBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdGdvdG8gb3V0X2ZyZWVfZGVudHJ5O1xcbitcXHR9XFxuK1xcbiBcXHRlbGZfcHBudCA9IGVsZl9waGRhdGE7XFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBlbGZfZXgtXFx1MDAzZWVfcGhudW07IGkrKywgZWxmX3BwbnQrKylcXG4gXFx0XFx0c3dpdGNoIChlbGZfcHBudC1cXHUwMDNlcF90eXBlKSB7XFxuZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbGZfbml4LmMgYi9mcy9iaW5mbXRfZWxmX25peC5jXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2FcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvZnMvYmluZm10X2VsZl9uaXguY1xcbkBAIC0wLDAgKzEsMTA4IEBAXFxuKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9pbml0LmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9mcy5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvcGF0aC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbmFtZWkuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2VsZi5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NsYWIuaFxcdTAwM2VcXG4rXFxuK01PRFVMRV9ERVNDUklQVElPTihcXFwiRUxGIEludGVycHJldGVyIHBsdWdpbiBmb3IgTml4T1MgLyAkT1JJR0lOXFxcIik7XFxuK01PRFVMRV9BVVRIT1IoXFxcIkZhcmlkIFpha2FyaWFcXFwiKTtcXG4rTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbitcXG4rLyogTW5lbW9uaWMgdmFsdWUgZm9yIE5peE9TLXNwZWNpZmljIHByb2dyYW0gaW50ZXJwcmV0ZXI6ICdOJywgJ0knLCAnWCcsIDMgKi9cXG4rI2RlZmluZSBQVF9JTlRFUlBfTklYICAoUFRfTE9PUyArIDB4NGU0OTU4MylcXG4rXFxuK3N0YXRpYyBzdHJ1Y3QgZmlsZSAqbml4X29wZW5faW50ZXJwcmV0ZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcXG4rXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcXG4rXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSlcXG4re1xcbitcXHRzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9wcG50O1xcbitcXHRzdHJ1Y3QgZmlsZSAqaW50ZXJwcmV0ZXIgPSBOVUxMO1xcbitcXHRjaGFyICplbGZfaW50ZXJwcmV0ZXIgPSBOVUxMO1xcbitcXHRpbnQgaSwgcmV0dmFsO1xcbitcXG4rXFx0LyogRmluZCB0aGUgY3VzdG9tIE5peCBpbnRlcnByZXRlciBoZWFkZXIgKi9cXG4rXFx0ZWxmX3BwbnQgPSBlbGZfcGhkYXRhO1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZWxmX2V4LVxcdTAwM2VlX3BobnVtOyBpKyssIGVsZl9wcG50KyspIHtcXG4rXFx0XFx0aWYgKGVsZl9wcG50LVxcdTAwM2VwX3R5cGUgPT0gUFRfSU5URVJQX05JWClcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcdH1cXG4rXFxuK1xcdGlmIChpID09IGVsZl9leC1cXHUwMDNlZV9waG51bSlcXG4rXFx0XFx0cmV0dXJuIE5VTEw7IC8qIFNlZ21lbnQgbm90IHByZXNlbnQ7IGZhbGwgYmFjayB0byBvdGhlcnMgKi9cXG4rXFxuK1xcdC8qIFNlY3VyaXR5IGNoZWNrOiByZWZ1c2UgcmVsYXRpdmUgaW50ZXJwIHJlc29sdXRpb24gb24gc2VjdXJlIGV4ZWN1dGlvbiAqL1xcbitcXHRpZiAoYnBybS1cXHUwMDNlc2VjdXJlZXhlYykge1xcbitcXHRcXHRwcl93YXJuX29uY2UoXFxcImJpbmZtdF9lbGZfbml4OiBzZWN1cmVleGVjIGFjdGl2ZSwgcmVmdXNpbmcgY3VzdG9tIGludGVycHJldGVyIGxvb2t1cFxcXFxuXFxcIik7XFxuK1xcdFxcdHJldHVybiBOVUxMOyAvKiBGYWxsYmFjayB0byBzdGFuZGFyZCBQVF9JTlRFUlAgKi9cXG4rXFx0fVxcbitcXG4rXFx0aWYgKGVsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeiBcXHUwMDNlIFBBVEhfTUFYIHx8IGVsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeiBcXHUwMDNjIDIpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FTk9FWEVDKTtcXG4rXFxuK1xcdGVsZl9pbnRlcnByZXRlciA9IGttYWxsb2MoZWxmX3BwbnQtXFx1MDAzZXBfZmlsZXN6LCBHRlBfS0VSTkVMKTtcXG4rXFx0aWYgKCFlbGZfaW50ZXJwcmV0ZXIpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xcbitcXG4rXFx0LyogUmVhZCB0aGUgaW50ZXJwcmV0ZXIgcGF0aCBmcm9tIHRoZSBleGVjdXRhYmxlIGZpbGUgKi9cXG4rXFx0cmV0dmFsID0ga2VybmVsX3JlYWQoYnBybS1cXHUwMDNlZmlsZSwgZWxmX2ludGVycHJldGVyLCBlbGZfcHBudC1cXHUwMDNlcF9maWxlc3osIFxcdTAwMjZlbGZfcHBudC1cXHUwMDNlcF9vZmZzZXQpO1xcbitcXHRpZiAocmV0dmFsICE9IGVsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeikge1xcbitcXHRcXHRyZXR2YWwgPSAocmV0dmFsIFxcdTAwM2MgMCkgPyByZXR2YWwgOiAtRUlPO1xcbitcXHRcXHRnb3RvIG91dF9mcmVlO1xcbitcXHR9XFxuK1xcbitcXHRpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LVxcdTAwM2VwX2ZpbGVzeiAtIDFdICE9ICdcXFxcMCcpIHtcXG4rXFx0XFx0cmV0dmFsID0gLUVOT0VYRUM7XFxuK1xcdFxcdGdvdG8gb3V0X2ZyZWU7XFxuK1xcdH1cXG4rXFxuK1xcdC8qIFBhdGggUmVzb2x1dGlvbjogQWJzb2x1dGUgdnMuICRPUklHSU4gKi9cXG4rXFx0aWYgKGVsZl9pbnRlcnByZXRlclswXSA9PSAnLycpIHtcXG4rXFx0XFx0aW50ZXJwcmV0ZXIgPSBvcGVuX2V4ZWMoZWxmX2ludGVycHJldGVyKTtcXG4rXFx0fSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXFxcIiRPUklHSU4vXFxcIiwgOCkgPT0gMCB8fCBzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXFxcIiR7T1JJR0lOfS9cXFwiLCAxMCkgPT0gMCkge1xcbitcXHRcXHRjb25zdCBjaGFyICpyZWxfcGF0aCA9IChlbGZfaW50ZXJwcmV0ZXJbMF0gPT0gJyQnKSA/IChlbGZfaW50ZXJwcmV0ZXIgKyA4KSA6IChlbGZfaW50ZXJwcmV0ZXIgKyAxMCk7XFxuK1xcdFxcdHN0cnVjdCBwYXRoIHBhcmVudF9wYXRoO1xcbitcXG4rXFx0XFx0LyogUmVmZXJlbmNlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGVkIGZpbGUgc2FmZWx5ICovXFxuK1xcdFxcdHBhcmVudF9wYXRoLm1udCA9IG1udGdldChicHJtLVxcdTAwM2VmaWxlLVxcdTAwM2VmX3BhdGgubW50KTtcXG4rXFx0XFx0cGFyZW50X3BhdGguZGVudHJ5ID0gZGdldF9wYXJlbnQoYnBybS1cXHUwMDNlZmlsZS1cXHUwMDNlZl9wYXRoLmRlbnRyeSk7XFxuK1xcbitcXHRcXHQvKiBPcGVuIHJlbGF0aXZlIHRvIHBhcmVudCBkaXJlY3RvcnkgKi9cXG4rXFx0XFx0aW50ZXJwcmV0ZXIgPSBmaWxlX29wZW5fcm9vdChcXHUwMDI2cGFyZW50X3BhdGgsIHJlbF9wYXRoLCBPX1JET05MWSwgMCk7XFxuK1xcbitcXHRcXHRwYXRoX3B1dChcXHUwMDI2cGFyZW50X3BhdGgpO1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHQvKiBOYWtlZCByZWxhdGl2ZSBwYXRocyBhcmUgcmVqZWN0ZWQgZm9yIHNhZmV0eSAqL1xcbitcXHRcXHRyZXR2YWwgPSAtRU5PRVhFQztcXG4rXFx0XFx0Z290byBvdXRfZnJlZTtcXG4rXFx0fVxcbitcXG4rXFx0a2ZyZWUoZWxmX2ludGVycHJldGVyKTtcXG4rXFx0cmV0dXJuIGludGVycHJldGVyO1xcbitcXG4rb3V0X2ZyZWU6XFxuK1xcdGtmcmVlKGVsZl9pbnRlcnByZXRlcik7XFxuK1xcdHJldHVybiBFUlJfUFRSKHJldHZhbCk7XFxuK31cXG4rXFxuK3N0YXRpYyBzdHJ1Y3QgZWxmX3BsdWdpbiBuaXhfZWxmX3BsdWdpbiA9IHtcXG4rXFx0Lm93bmVyID0gVEhJU19NT0RVTEUsXFxuK1xcdC5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsXFxuK307XFxuK1xcbitzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpXFxuK3tcXG4rXFx0cmV0dXJuIHJlZ2lzdGVyX2VsZl9wbHVnaW4oXFx1MDAyNm5peF9lbGZfcGx1Z2luKTtcXG4rfVxcbitcXG4rc3RhdGljIHZvaWQgX19leGl0IGJpbmZtdF9lbGZfbml4X2V4aXQodm9pZClcXG4re1xcbitcXHR1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oXFx1MDAyNm5peF9lbGZfcGx1Z2luKTtcXG4rfVxcbitcXG4rbW9kdWxlX2luaXQoYmluZm10X2VsZl9uaXhfaW5pdCk7XFxuK21vZHVsZV9leGl0KGJpbmZtdF9lbGZfbml4X2V4aXQpO1xcbmRpZmYgLS1naXQgYS9mcy9leGVjLmMgYi9mcy9leGVjLmNcXG5pbmRleCBiOTJmZTdkYjE3NmNmZi4uNDU4MTNiYmNlODMzMDQgMTAwNjQ0XFxuLS0tIGEvZnMvZXhlYy5jXFxuKysrIGIvZnMvZXhlYy5jXFxuQEAgLTQ2LDYgKzQ2LDcgQEBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tleS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGVyc29uYWxpdHkuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpbmZtdHMuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2VsZl9wbHVnaW5zLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC91dHNuYW1lLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9waWRfbmFtZXNwYWNlLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG5AQCAtMTA4LDYgKzEwOSw1MiBAQCB2b2lkIHVucmVnaXN0ZXJfYmluZm10KHN0cnVjdCBsaW51eF9iaW5mbXQgKiBmbXQpXFxuIFxcbiBFWFBPUlRfU1lNQk9MKHVucmVnaXN0ZXJfYmluZm10KTtcXG4gXFxuKyNpZiBJU19FTkFCTEVEKENPTkZJR19CSU5GTVRfRUxGX1BMVUdJTlMpXFxuK3N0YXRpYyBERUZJTkVfTVVURVgoZWxmX3BsdWdpbnNfbG9jayk7XFxuK3N0YXRpYyBMSVNUX0hFQUQoZWxmX3BsdWdpbnMpO1xcbitcXG4raW50IHJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcXG4re1xcbitcXHRtdXRleF9sb2NrKFxcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcXG4rXFx0bGlzdF9hZGRfdGFpbChcXHUwMDI2cGx1Z2luLVxcdTAwM2VsaXN0LCBcXHUwMDI2ZWxmX3BsdWdpbnMpO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xcbitcXHRyZXR1cm4gMDtcXG4rfVxcbitFWFBPUlRfU1lNQk9MX0dQTChyZWdpc3Rlcl9lbGZfcGx1Z2luKTtcXG4rXFxuK3ZvaWQgdW5yZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pXFxuK3tcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcdGxpc3RfZGVsKFxcdTAwMjZwbHVnaW4tXFx1MDAzZWxpc3QpO1xcbitcXHRtdXRleF91bmxvY2soXFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfR1BMKHVucmVnaXN0ZXJfZWxmX3BsdWdpbik7XFxuK1xcbitzdHJ1Y3QgZmlsZSAqZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sXFxuK1xcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXFxuK1xcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZWxmX3BoZHIgKmVsZl9waGRhdGEpXFxuK3tcXG4rXFx0c3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbjtcXG4rXFx0c3RydWN0IGZpbGUgKmZpbGUgPSBOVUxMO1xcbitcXG4rXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcdGxpc3RfZm9yX2VhY2hfZW50cnkocGx1Z2luLCBcXHUwMDI2ZWxmX3BsdWdpbnMsIGxpc3QpIHtcXG4rXFx0XFx0aWYgKCF0cnlfbW9kdWxlX2dldChwbHVnaW4tXFx1MDAzZW93bmVyKSlcXG4rXFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcbitcXHRcXHRmaWxlID0gcGx1Z2luLVxcdTAwM2VvcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XFxuK1xcbitcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcXG4rXFx0XFx0bW9kdWxlX3B1dChwbHVnaW4tXFx1MDAzZW93bmVyKTtcXG4rXFx0XFx0aWYgKGZpbGUpXFxuK1xcdFxcdFxcdGJyZWFrO1xcbitcXHR9XFxuK1xcdG11dGV4X3VubG9jayhcXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XFxuK1xcdHJldHVybiBmaWxlO1xcbit9XFxuKyNlbmRpZlxcbitcXG4gc3RhdGljIGlubGluZSB2b2lkIHB1dF9iaW5mbXQoc3RydWN0IGxpbnV4X2JpbmZtdCAqIGZtdClcXG4ge1xcbiBcXHRtb2R1bGVfcHV0KGZtdC1cXHUwMDNlbW9kdWxlKTtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uODI2YTMyODU0NGIzZDNcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXFxuQEAgLTAsMCArMSwzOSBAQFxcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovXFxuKyNpZm5kZWYgX0xJTlVYX0VMRl9QTFVHSU5TX0hcXG4rI2RlZmluZSBfTElOVVhfRUxGX1BMVUdJTlNfSFxcbitcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpbmZtdHMuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2VsZi5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlzdC5oXFx1MDAzZVxcbitcXG4rc3RydWN0IGVsZl9wbHVnaW4ge1xcbitcXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuK1xcdHN0cnVjdCBtb2R1bGUgKm93bmVyO1xcbitcXHRzdHJ1Y3QgZmlsZSAqKCpvcGVuX2ludGVycHJldGVyKShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTtcXG4rfTtcXG4rXFxuKyNpZiBJU19FTkFCTEVEKENPTkZJR19CSU5GTVRfRUxGX1BMVUdJTlMpXFxuK2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pO1xcbit2b2lkIHVucmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKTtcXG4rc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxcbitcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKTtcXG4rI2Vsc2VcXG4rc3RhdGljIGlubGluZSBpbnQgcmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxcbit7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK3N0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcXG4re1xcbit9XFxuK3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKVxcbit7XFxuK1xcdHJldHVybiBOVUxMO1xcbit9XFxuKyNlbmRpZlxcbitcXG4rI2VuZGlmIC8qIF9MSU5VWF9FTEZfUExVR0lOU19IICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDIyOjEzOjQyLjE3NDYwNTgxNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTEyOTgwNDM5MDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQklORk1UX0VMRl9QTFVHSU5TXCIsXG4gICAgXCJCSU5GTVRfRUxGX05JWFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlclwiLFxuICAgIFwibml4X29wZW5faW50ZXJwcmV0ZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3lzdGVtIGFuZCBhIHNwZWNpZmljIHBsdWdpbiBmb3IgTml4T1MuIFRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBiaW5hcnkgbG9hZGluZyBwYXRoIChleGVjdmUpLCB3aGljaCBpcyBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcgYXMgaXQgcGFyc2VzIHVudHJ1c3RlZCBFTEYgaGVhZGVycy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NjUwZDg2NzhjZmNmZjkyYjhhNTgwOTg2NjI2YWRiYWJkNDUzYWI1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAyMjoxMzo0MCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL0tjb25maWcuYmluZm10IGIvZnMvS2NvbmZpZy5iaW5mbXRcbmluZGV4IDE5NDllMjVjNzc0MWIxLi5lZjQyNzdmZDgwNTBiMSAxMDA2NDRcbi0tLSBhL2ZzL0tjb25maWcuYmluZm10XG4rKysgYi9mcy9LY29uZmlnLmJpbmZtdFxuQEAgLTM4LDYgKzM4LDIxIEBAIGNvbmZpZyBCSU5GTVRfRUxGX0tVTklUX1RFU1RcbiBcdCAgb25seSBuZWVkZWQgZm9yIGRlYnVnZ2luZy4gTm90ZSB0aGF0IHdpdGggQ09ORklHX0NPTVBBVD15LCB0aGVcbiBcdCAgY29tcGF0X2JpbmZtdF9lbGYgS1VuaXQgdGVzdCBpcyBhbHNvIGNyZWF0ZWQuXG4gXG4rY29uZmlnIEJJTkZNVF9FTEZfUExVR0lOU1xuK1x0Ym9vbCBcIkVuYWJsZSBwbHVnaW4gc3VwcG9ydCBmb3IgRUxGIGludGVycHJldGVyIGxvYWRpbmdcIlxuK1x0ZGVwZW5kcyBvbiBCSU5GTVRfRUxGXG4rXHRoZWxwXG4rXHQgIFRoaXMgb3B0aW9uIGFsbG93cyBrZXJuZWwgbW9kdWxlcyB0byByZWdpc3RlciBoYW5kbGVycyB0byBkeW5hbWljYWxseVxuK1x0ICByZXNvbHZlIGFuZCBvdmVycmlkZSB0aGUgRUxGIHByb2dyYW0gaW50ZXJwcmV0ZXIgKGUuZy4gc3VwcG9ydGluZyByZWxhdGl2ZVxuK1x0ICBpbnRlcnByZXRlciBwYXRocyB3aXRoICRPUklHSU4pLlxuK1xuK2NvbmZpZyBCSU5GTVRfRUxGX05JWFxuK1x0dHJpc3RhdGUgXCJFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIGZvciBOaXhPUyAoJE9SSUdJTiBzdXBwb3J0KVwiXG4rXHRkZXBlbmRzIG9uIEJJTkZNVF9FTEZfUExVR0lOU1xuK1x0aGVscFxuK1x0ICBUaGlzIGJ1aWxkcyB0aGUgTml4T1MgRUxGIGludGVycHJldGVyIHBsdWdpbi4gSXQgaW50ZXJjZXB0cyBQVF9JTlRFUlBfTklYXG4rXHQgIGhlYWRlcnMgdG8gcmVzb2x2ZSByZWxhdGl2ZSBhbmQgJE9SSUdJTiBpbnRlcnByZXRlciBwYXRocy5cbitcbiBjb25maWcgQ09NUEFUX0JJTkZNVF9FTEZcbiBcdGRlZl9ib29sIHlcbiBcdGRlcGVuZHMgb24gQ09NUEFUIFx1MDAyNlx1MDAyNiBCSU5GTVRfRUxGXG5kaWZmIC0tZ2l0IGEvZnMvTWFrZWZpbGUgYi9mcy9NYWtlZmlsZVxuaW5kZXggODlhOGE5ZDIwN2QxYzUuLmJkODFlN2ZmNjRmMzkyIDEwMDY0NFxuLS0tIGEvZnMvTWFrZWZpbGVcbisrKyBiL2ZzL01ha2VmaWxlXG5AQCAtMzUsNiArMzUsNyBAQCBvYmotJChDT05GSUdfRklMRV9MT0NLSU5HKSAgICAgICs9IGxvY2tzLm9cbiBvYmotJChDT05GSUdfQklORk1UX01JU0MpXHQrPSBiaW5mbXRfbWlzYy5vXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9TQ1JJUFQpXHQrPSBiaW5mbXRfc2NyaXB0Lm9cbiBvYmotJChDT05GSUdfQklORk1UX0VMRilcdCs9IGJpbmZtdF9lbGYub1xuK29iai0kKENPTkZJR19CSU5GTVRfRUxGX05JWClcdCs9IGJpbmZtdF9lbGZfbml4Lm9cbiBvYmotJChDT05GSUdfQ09NUEFUX0JJTkZNVF9FTEYpXHQrPSBjb21wYXRfYmluZm10X2VsZi5vXG4gb2JqLSQoQ09ORklHX0JJTkZNVF9FTEZfRkRQSUMpXHQrPSBiaW5mbXRfZWxmX2ZkcGljLm9cbiBvYmotJChDT05GSUdfQklORk1UX0ZMQVQpXHQrPSBiaW5mbXRfZmxhdC5vXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZi5jIGIvZnMvYmluZm10X2VsZi5jXG5pbmRleCAxNmE1NmI2YjNmNmNhMS4uNTNmYTI2ODE1NTVhODQgMTAwNjQ0XG4tLS0gYS9mcy9iaW5mbXRfZWxmLmNcbisrKyBiL2ZzL2JpbmZtdF9lbGYuY1xuQEAgLTM1LDYgKzM1LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yYW5kb20uaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmLXJhbmRvbWl6ZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3V0c25hbWUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2NvcmVkdW1wLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zY2hlZC5oXHUwMDNlXG5AQCAtODcwLDYgKzg3MSwxMiBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuIFx0aWYgKCFlbGZfcGhkYXRhKVxuIFx0XHRnb3RvIG91dDtcbiBcbitcdGludGVycHJldGVyID0gZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyKGJwcm0sIGVsZl9leCwgZWxmX3BoZGF0YSk7XG4rXHRpZiAoSVNfRVJSKGludGVycHJldGVyKSkge1xuK1x0XHRyZXR2YWwgPSBQVFJfRVJSKGludGVycHJldGVyKTtcbitcdFx0Z290byBvdXRfZnJlZV9waDtcbitcdH1cbitcbiBcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGVsZl9leC1cdTAwM2VlX3BobnVtOyBpKyssIGVsZl9wcG50KyspIHtcbiBcdFx0Y2hhciAqZWxmX2ludGVycHJldGVyO1xuQEAgLTg4Miw2ICs4ODksOSBAQCBzdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuIFx0XHRpZiAoZWxmX3BwbnQtXHUwMDNlcF90eXBlICE9IFBUX0lOVEVSUClcbiBcdFx0XHRjb250aW51ZTtcbiBcbitcdFx0aWYgKGludGVycHJldGVyKVxuK1x0XHRcdGNvbnRpbnVlO1xuK1xuIFx0XHQvKlxuIFx0XHQgKiBUaGlzIGlzIHRoZSBwcm9ncmFtIGludGVycHJldGVyIHVzZWQgZm9yIHNoYXJlZCBsaWJyYXJpZXMgLVxuIFx0XHQgKiBmb3Igbm93IGFzc3VtZSB0aGF0IHRoaXMgaXMgYW4gYS5vdXQgZm9ybWF0IGJpbmFyeS5cbkBAIC05MzUsNiArOTQ1LDIwIEBAIHN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4gXHRcdGdvdG8gb3V0X2ZyZWVfcGg7XG4gXHR9XG4gXG4rXHRpZiAoaW50ZXJwcmV0ZXIgXHUwMDI2XHUwMDI2ICFpbnRlcnBfZWxmX2V4KSB7XG4rXHRcdGludGVycF9lbGZfZXggPSBrbWFsbG9jX29iaigqaW50ZXJwX2VsZl9leCk7XG4rXHRcdGlmICghaW50ZXJwX2VsZl9leCkge1xuK1x0XHRcdHJldHZhbCA9IC1FTk9NRU07XG4rXHRcdFx0Z290byBvdXRfZnJlZV9maWxlO1xuK1x0XHR9XG4rXG4rXHRcdC8qIEdldCB0aGUgZXhlYyBoZWFkZXJzICovXG4rXHRcdHJldHZhbCA9IGVsZl9yZWFkKGludGVycHJldGVyLCBpbnRlcnBfZWxmX2V4LFxuK1x0XHRcdFx0ICBzaXplb2YoKmludGVycF9lbGZfZXgpLCAwKTtcbitcdFx0aWYgKHJldHZhbCBcdTAwM2MgMClcbitcdFx0XHRnb3RvIG91dF9mcmVlX2RlbnRyeTtcbitcdH1cbitcbiBcdGVsZl9wcG50ID0gZWxmX3BoZGF0YTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGVsZl9leC1cdTAwM2VlX3BobnVtOyBpKyssIGVsZl9wcG50KyspXG4gXHRcdHN3aXRjaCAoZWxmX3BwbnQtXHUwMDNlcF90eXBlKSB7XG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X2VsZl9uaXguYyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uZDI4YjkyYzMwOTM5Y2Fcbi0tLSAvZGV2L251bGxcbisrKyBiL2ZzL2JpbmZtdF9lbGZfbml4LmNcbkBAIC0wLDAgKzEsMTA4IEBAXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9pbml0LmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9mcy5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvcGF0aC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbmFtZWkuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2VsZi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuK1xuK01PRFVMRV9ERVNDUklQVElPTihcIkVMRiBJbnRlcnByZXRlciBwbHVnaW4gZm9yIE5peE9TIC8gJE9SSUdJTlwiKTtcbitNT0RVTEVfQVVUSE9SKFwiRmFyaWQgWmFrYXJpYVwiKTtcbitNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbitcbisvKiBNbmVtb25pYyB2YWx1ZSBmb3IgTml4T1Mtc3BlY2lmaWMgcHJvZ3JhbSBpbnRlcnByZXRlcjogJ04nLCAnSScsICdYJywgMyAqL1xuKyNkZWZpbmUgUFRfSU5URVJQX05JWCAgKFBUX0xPT1MgKyAweDRlNDk1ODMpXG4rXG4rc3RhdGljIHN0cnVjdCBmaWxlICpuaXhfb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKVxuK3tcbitcdHN0cnVjdCBlbGZfcGhkciAqZWxmX3BwbnQ7XG4rXHRzdHJ1Y3QgZmlsZSAqaW50ZXJwcmV0ZXIgPSBOVUxMO1xuK1x0Y2hhciAqZWxmX2ludGVycHJldGVyID0gTlVMTDtcbitcdGludCBpLCByZXR2YWw7XG4rXG4rXHQvKiBGaW5kIHRoZSBjdXN0b20gTml4IGludGVycHJldGVyIGhlYWRlciAqL1xuK1x0ZWxmX3BwbnQgPSBlbGZfcGhkYXRhO1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgZWxmX2V4LVx1MDAzZWVfcGhudW07IGkrKywgZWxmX3BwbnQrKykge1xuK1x0XHRpZiAoZWxmX3BwbnQtXHUwMDNlcF90eXBlID09IFBUX0lOVEVSUF9OSVgpXG4rXHRcdFx0YnJlYWs7XG4rXHR9XG4rXG4rXHRpZiAoaSA9PSBlbGZfZXgtXHUwMDNlZV9waG51bSlcbitcdFx0cmV0dXJuIE5VTEw7IC8qIFNlZ21lbnQgbm90IHByZXNlbnQ7IGZhbGwgYmFjayB0byBvdGhlcnMgKi9cbitcbitcdC8qIFNlY3VyaXR5IGNoZWNrOiByZWZ1c2UgcmVsYXRpdmUgaW50ZXJwIHJlc29sdXRpb24gb24gc2VjdXJlIGV4ZWN1dGlvbiAqL1xuK1x0aWYgKGJwcm0tXHUwMDNlc2VjdXJlZXhlYykge1xuK1x0XHRwcl93YXJuX29uY2UoXCJiaW5mbXRfZWxmX25peDogc2VjdXJlZXhlYyBhY3RpdmUsIHJlZnVzaW5nIGN1c3RvbSBpbnRlcnByZXRlciBsb29rdXBcXG5cIik7XG4rXHRcdHJldHVybiBOVUxMOyAvKiBGYWxsYmFjayB0byBzdGFuZGFyZCBQVF9JTlRFUlAgKi9cbitcdH1cbitcbitcdGlmIChlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeiBcdTAwM2UgUEFUSF9NQVggfHwgZWxmX3BwbnQtXHUwMDNlcF9maWxlc3ogXHUwMDNjIDIpXG4rXHRcdHJldHVybiBFUlJfUFRSKC1FTk9FWEVDKTtcbitcbitcdGVsZl9pbnRlcnByZXRlciA9IGttYWxsb2MoZWxmX3BwbnQtXHUwMDNlcF9maWxlc3osIEdGUF9LRVJORUwpO1xuK1x0aWYgKCFlbGZfaW50ZXJwcmV0ZXIpXG4rXHRcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xuK1xuK1x0LyogUmVhZCB0aGUgaW50ZXJwcmV0ZXIgcGF0aCBmcm9tIHRoZSBleGVjdXRhYmxlIGZpbGUgKi9cbitcdHJldHZhbCA9IGtlcm5lbF9yZWFkKGJwcm0tXHUwMDNlZmlsZSwgZWxmX2ludGVycHJldGVyLCBlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeiwgXHUwMDI2ZWxmX3BwbnQtXHUwMDNlcF9vZmZzZXQpO1xuK1x0aWYgKHJldHZhbCAhPSBlbGZfcHBudC1cdTAwM2VwX2ZpbGVzeikge1xuK1x0XHRyZXR2YWwgPSAocmV0dmFsIFx1MDAzYyAwKSA/IHJldHZhbCA6IC1FSU87XG4rXHRcdGdvdG8gb3V0X2ZyZWU7XG4rXHR9XG4rXG4rXHRpZiAoZWxmX2ludGVycHJldGVyW2VsZl9wcG50LVx1MDAzZXBfZmlsZXN6IC0gMV0gIT0gJ1xcMCcpIHtcbitcdFx0cmV0dmFsID0gLUVOT0VYRUM7XG4rXHRcdGdvdG8gb3V0X2ZyZWU7XG4rXHR9XG4rXG4rXHQvKiBQYXRoIFJlc29sdXRpb246IEFic29sdXRlIHZzLiAkT1JJR0lOICovXG4rXHRpZiAoZWxmX2ludGVycHJldGVyWzBdID09ICcvJykge1xuK1x0XHRpbnRlcnByZXRlciA9IG9wZW5fZXhlYyhlbGZfaW50ZXJwcmV0ZXIpO1xuK1x0fSBlbHNlIGlmIChzdHJuY21wKGVsZl9pbnRlcnByZXRlciwgXCIkT1JJR0lOL1wiLCA4KSA9PSAwIHx8IHN0cm5jbXAoZWxmX2ludGVycHJldGVyLCBcIiR7T1JJR0lOfS9cIiwgMTApID09IDApIHtcbitcdFx0Y29uc3QgY2hhciAqcmVsX3BhdGggPSAoZWxmX2ludGVycHJldGVyWzBdID09ICckJykgPyAoZWxmX2ludGVycHJldGVyICsgOCkgOiAoZWxmX2ludGVycHJldGVyICsgMTApO1xuK1x0XHRzdHJ1Y3QgcGF0aCBwYXJlbnRfcGF0aDtcbitcbitcdFx0LyogUmVmZXJlbmNlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGVkIGZpbGUgc2FmZWx5ICovXG4rXHRcdHBhcmVudF9wYXRoLm1udCA9IG1udGdldChicHJtLVx1MDAzZWZpbGUtXHUwMDNlZl9wYXRoLm1udCk7XG4rXHRcdHBhcmVudF9wYXRoLmRlbnRyeSA9IGRnZXRfcGFyZW50KGJwcm0tXHUwMDNlZmlsZS1cdTAwM2VmX3BhdGguZGVudHJ5KTtcbitcbitcdFx0LyogT3BlbiByZWxhdGl2ZSB0byBwYXJlbnQgZGlyZWN0b3J5ICovXG4rXHRcdGludGVycHJldGVyID0gZmlsZV9vcGVuX3Jvb3QoXHUwMDI2cGFyZW50X3BhdGgsIHJlbF9wYXRoLCBPX1JET05MWSwgMCk7XG4rXG4rXHRcdHBhdGhfcHV0KFx1MDAyNnBhcmVudF9wYXRoKTtcbitcdH0gZWxzZSB7XG4rXHRcdC8qIE5ha2VkIHJlbGF0aXZlIHBhdGhzIGFyZSByZWplY3RlZCBmb3Igc2FmZXR5ICovXG4rXHRcdHJldHZhbCA9IC1FTk9FWEVDO1xuK1x0XHRnb3RvIG91dF9mcmVlO1xuK1x0fVxuK1xuK1x0a2ZyZWUoZWxmX2ludGVycHJldGVyKTtcbitcdHJldHVybiBpbnRlcnByZXRlcjtcbitcbitvdXRfZnJlZTpcbitcdGtmcmVlKGVsZl9pbnRlcnByZXRlcik7XG4rXHRyZXR1cm4gRVJSX1BUUihyZXR2YWwpO1xuK31cbitcbitzdGF0aWMgc3RydWN0IGVsZl9wbHVnaW4gbml4X2VsZl9wbHVnaW4gPSB7XG4rXHQub3duZXIgPSBUSElTX01PRFVMRSxcbitcdC5vcGVuX2ludGVycHJldGVyID0gbml4X29wZW5faW50ZXJwcmV0ZXIsXG4rfTtcbitcbitzdGF0aWMgaW50IF9faW5pdCBiaW5mbXRfZWxmX25peF9pbml0KHZvaWQpXG4re1xuK1x0cmV0dXJuIHJlZ2lzdGVyX2VsZl9wbHVnaW4oXHUwMDI2bml4X2VsZl9wbHVnaW4pO1xuK31cbitcbitzdGF0aWMgdm9pZCBfX2V4aXQgYmluZm10X2VsZl9uaXhfZXhpdCh2b2lkKVxuK3tcbitcdHVucmVnaXN0ZXJfZWxmX3BsdWdpbihcdTAwMjZuaXhfZWxmX3BsdWdpbik7XG4rfVxuK1xuK21vZHVsZV9pbml0KGJpbmZtdF9lbGZfbml4X2luaXQpO1xuK21vZHVsZV9leGl0KGJpbmZtdF9lbGZfbml4X2V4aXQpO1xuZGlmZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuY1xuaW5kZXggYjkyZmU3ZGIxNzZjZmYuLjQ1ODEzYmJjZTgzMzA0IDEwMDY0NFxuLS0tIGEvZnMvZXhlYy5jXG4rKysgYi9mcy9leGVjLmNcbkBAIC00Niw2ICs0Niw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2V5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wZXJzb25hbGl0eS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYmluZm10cy5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZWxmX3BsdWdpbnMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3V0c25hbWUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BpZF9uYW1lc3BhY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG5AQCAtMTA4LDYgKzEwOSw1MiBAQCB2b2lkIHVucmVnaXN0ZXJfYmluZm10KHN0cnVjdCBsaW51eF9iaW5mbXQgKiBmbXQpXG4gXG4gRVhQT1JUX1NZTUJPTCh1bnJlZ2lzdGVyX2JpbmZtdCk7XG4gXG4rI2lmIElTX0VOQUJMRUQoQ09ORklHX0JJTkZNVF9FTEZfUExVR0lOUylcbitzdGF0aWMgREVGSU5FX01VVEVYKGVsZl9wbHVnaW5zX2xvY2spO1xuK3N0YXRpYyBMSVNUX0hFQUQoZWxmX3BsdWdpbnMpO1xuK1xuK2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pXG4re1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdGxpc3RfYWRkX3RhaWwoXHUwMDI2cGx1Z2luLVx1MDAzZWxpc3QsIFx1MDAyNmVsZl9wbHVnaW5zKTtcbitcdG11dGV4X3VubG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdHJldHVybiAwO1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChyZWdpc3Rlcl9lbGZfcGx1Z2luKTtcbitcbit2b2lkIHVucmVnaXN0ZXJfZWxmX3BsdWdpbihzdHJ1Y3QgZWxmX3BsdWdpbiAqcGx1Z2luKVxuK3tcbitcdG11dGV4X2xvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4rXHRsaXN0X2RlbChcdTAwMjZwbHVnaW4tXHUwMDNlbGlzdCk7XG4rXHRtdXRleF91bmxvY2soXHUwMDI2ZWxmX3BsdWdpbnNfbG9jayk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKHVucmVnaXN0ZXJfZWxmX3BsdWdpbik7XG4rXG4rc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZmhkciAqZWxmX2V4LFxuK1x0XHRcdFx0XHQgc3RydWN0IGVsZl9waGRyICplbGZfcGhkYXRhKVxuK3tcbitcdHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW47XG4rXHRzdHJ1Y3QgZmlsZSAqZmlsZSA9IE5VTEw7XG4rXG4rXHRtdXRleF9sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuK1x0bGlzdF9mb3JfZWFjaF9lbnRyeShwbHVnaW4sIFx1MDAyNmVsZl9wbHVnaW5zLCBsaXN0KSB7XG4rXHRcdGlmICghdHJ5X21vZHVsZV9nZXQocGx1Z2luLVx1MDAzZW93bmVyKSlcbitcdFx0XHRjb250aW51ZTtcbitcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmVsZl9wbHVnaW5zX2xvY2spO1xuK1xuK1x0XHRmaWxlID0gcGx1Z2luLVx1MDAzZW9wZW5faW50ZXJwcmV0ZXIoYnBybSwgZWxmX2V4LCBlbGZfcGhkYXRhKTtcbitcbitcdFx0bXV0ZXhfbG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdFx0bW9kdWxlX3B1dChwbHVnaW4tXHUwMDNlb3duZXIpO1xuK1x0XHRpZiAoZmlsZSlcbitcdFx0XHRicmVhaztcbitcdH1cbitcdG11dGV4X3VubG9jayhcdTAwMjZlbGZfcGx1Z2luc19sb2NrKTtcbitcdHJldHVybiBmaWxlO1xuK31cbisjZW5kaWZcbitcbiBzdGF0aWMgaW5saW5lIHZvaWQgcHV0X2JpbmZtdChzdHJ1Y3QgbGludXhfYmluZm10ICogZm10KVxuIHtcbiBcdG1vZHVsZV9wdXQoZm10LVx1MDAzZW1vZHVsZSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oIGIvaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjgyNmEzMjg1NDRiM2QzXG4tLS0gL2Rldi9udWxsXG4rKysgYi9pbmNsdWRlL2xpbnV4L2VsZl9wbHVnaW5zLmhcbkBAIC0wLDAgKzEsMzkgQEBcbisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovXG4rI2lmbmRlZiBfTElOVVhfRUxGX1BMVUdJTlNfSFxuKyNkZWZpbmUgX0xJTlVYX0VMRl9QTFVHSU5TX0hcbitcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9iaW5mbXRzLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9lbGYuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2xpc3QuaFx1MDAzZVxuK1xuK3N0cnVjdCBlbGZfcGx1Z2luIHtcbitcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbitcdHN0cnVjdCBtb2R1bGUgKm93bmVyO1xuK1x0c3RydWN0IGZpbGUgKigqb3Blbl9pbnRlcnByZXRlcikoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSk7XG4rfTtcbitcbisjaWYgSVNfRU5BQkxFRChDT05GSUdfQklORk1UX0VMRl9QTFVHSU5TKVxuK2ludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pO1xuK3ZvaWQgdW5yZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pO1xuK3N0cnVjdCBmaWxlICplbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZoZHIgKmVsZl9leCxcbitcdFx0XHRcdFx0IHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSk7XG4rI2Vsc2VcbitzdGF0aWMgaW5saW5lIGludCByZWdpc3Rlcl9lbGZfcGx1Z2luKHN0cnVjdCBlbGZfcGx1Z2luICpwbHVnaW4pXG4re1xuK1x0cmV0dXJuIDA7XG4rfVxuK3N0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2VsZl9wbHVnaW4oc3RydWN0IGVsZl9wbHVnaW4gKnBsdWdpbilcbit7XG4rfVxuK3N0YXRpYyBpbmxpbmUgc3RydWN0IGZpbGUgKmVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcihzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLFxuK1x0XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgZWxmaGRyICplbGZfZXgsXG4rXHRcdFx0XHRcdFx0ICAgICAgIHN0cnVjdCBlbGZfcGhkciAqZWxmX3BoZGF0YSlcbit7XG4rXHRyZXR1cm4gTlVMTDtcbit9XG4rI2VuZGlmXG4rXG4rI2VuZGlmIC8qIF9MSU5VWF9FTEZfUExVR0lOU19IICovXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQyMjoxMzo0Mi4xNzQ2MDc2MzZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTIxMjgyODcyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFTEYgSW50ZXJwcmV0ZXIgUGx1Z2luIEFuYWx5c2lzIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBpbiBmcm9udCBvZiBtZSB0aGF0J3MgYWRkaW5nIHNvbWUgaW50ZXJlc3RpbmcgbmV3IGZ1bmN0aW9uYWxpdHk6IEVMRiBpbnRlcnByZXRlciBwbHVnaW4gc3VwcG9ydCwgc3BlY2lmaWNhbGx5IGZvciBOaXhPUyBhbmQgaXRzIGAkT1JJR0lOYCBzdXBwb3J0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJmdXp6aW5nIHRhcmdldCwgZm9yIHN1cmUuXCIgSXQgdG91Y2hlcyBgZnMvYmluZm10X2VsZi5jYCwgYGZzL2V4ZWMuY2AsIGludHJvZHVjZXMgYGZzL2JpbmZtdF9lbGZfbml4LmNgLCBhbmQgYSBuZXcgaGVhZGVyLCBgaW5jbHVkZS9saW51eC9lbGZfcGx1Z2lucy5oYC4gVGhpcyBtZWFucyBuZXcgY29kZSBwYXRocyBpbiB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHByb2Nlc3MsIHdoaWNoIGlzIGFsd2F5cyBhIHByaW1lIHRhcmdldC5cblxuRmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHJlYWNoYWJpbGl0eS4gVGhlIG1vZGlmaWNhdGlvbiB0byBgbG9hZF9lbGZfYmluYXJ5YCBpbiBgZnMvYmluZm10X2VsZi5jYCBpcyBrZXkuIEl0IG5vdyBjYWxscyBgZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyYCwgd2hpY2ggaXMgZGVmaW5pdGVseSB0cmlnZ2VyZWQgZHVyaW5nIHRoZSBgZXhlY3ZlYCBzeXN0ZW0gY2FsbCBmb3IgYW55IEVMRiBiaW5hcnkuIEV4Y2VsbGVudCwgdGhhdCdzIGFscmVhZHkgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBUaGUgYG5peF9vcGVuX2ludGVycHJldGVyYCBmdW5jdGlvbiBpbiBgZnMvYmluZm10X2VsZl9uaXguY2AgaXMgdGhlIHBsdWdpbiBpdHNlbGYuIEl0IGxvb2tzIGxpa2UgaXQncyBnb2luZyB0byBpbnRlcmNlcHQgYFBUX0lOVEVSUF9OSVhgIOKAkyB0aGF0J3MgYSBjdXN0b20gcHJvZ3JhbSBoZWFkZXIgdHlwZSwgYSBnb29kIHNpZ24gdGhhdCB0aGUgZGV2ZWxvcGVycyBhcmUgYXdhcmUgb2YgdGhlIGZ1enppbmcgcG90ZW50aWFsLlxuXG5OZXh0LCBJIG5lZWQgdG8ga25vdyBob3cgdG8gZW5hYmxlIHRoaXMuIERpZ2dpbmcgaW50byB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgdHdvIGNvbmZpZyBvcHRpb25zOiBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gUmlnaHQsIG5vdyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSBjb2RlIGlzIGRlZmluZWQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgY29ycmVjdCBidWlsZCBmbGFncy4gT2theSwgSSd2ZSBnb3QgdGhlbTogYEJJTkZNVF9FTEZfUExVR0lOU2AgYW5kIGBCSU5GTVRfRUxGX05JWGAuIEJvdGggZW5hYmxlZCwgb2YgY291cnNlLlxuXG5UaGUgbWFpbiBmdW5jdGlvbnMgSSdtIGludGVyZXN0ZWQgaW4gYXJlOiBgZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyYCwgYG5peF9vcGVuX2ludGVycHJldGVyYCwgYHJlZ2lzdGVyX2VsZl9wbHVnaW5gLCBhbmQgYHVucmVnaXN0ZXJfZWxmX3BsdWdpbmAuIEknbSBlc3BlY2lhbGx5IGtlZW4gb24gYGVsZl9wbHVnaW5fb3Blbl9pbnRlcnByZXRlcmAgYW5kIGBuaXhfb3Blbl9pbnRlcnByZXRlcmAgYXMgdGhleSdyZSB0aGUgZGlyZWN0IGVudHJ5IHBvaW50cy4gSSBoYXZlIHRvIGRvdWJsZS1jaGVjayB0aGF0IGBQVF9JTlRFUlBfTklYYCBpcyByZWFjaGFibGUuIFllcywgaWYgYW4gRUxGIGJpbmFyeSBjb250YWlucyBhIGBQVF9JTlRFUlBfTklYYCBoZWFkZXIsIHRoZSBwbHVnaW4gd2lsbCBhdHRlbXB0IHRvIGxvYWQgaXQuIFRoaXMgaXMgZ29sZC5cblxuVGhpcyBpcyBhIHBlcmZlY3QgdGFyZ2V0IGZvciBmdXp6aW5nLCBzcGVjaWZpY2FsbHkgd2l0aCBzb21ldGhpbmcgbGlrZSBTeXprYWxsZXIuIEl0IGNhbiBnZW5lcmF0ZSBFTEYgYmluYXJpZXMgd2l0aCBhbGwgc29ydHMgb2YgcHJvZ3JhbSBoZWFkZXJzLiBJIGNhbiBjcmFmdCBiaW5hcmllcyBjb250YWluaW5nIGBQVF9JTlRFUlBfTklYYCBhbmQgc2VlIHdoYXQgaGFwcGVucy4gVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBjb25maXJtIHRoZSBmZWF0dXJlIGlzIGVhc2lseSBlbmFibGVkLiBJJ3ZlIGdvdCBhIHNvbGlkIHBhdGggdG8gdGVzdC5cblxuT2theSwgbGV0J3MgY2FsbCB0aGUgc2V0LXJlc3VsdHMgdG9vbC4gSXQncyBXb3J0aEZ1enppbmcsIGZvciBzdXJlLiBUaGUgaW1wb3J0YW50IHN5bWJvbHMgYXJlIGBlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXJgIGFuZCBgbml4X29wZW5faW50ZXJwcmV0ZXJgLCBhbmQgSSBuZWVkIHRvIGVuYWJsZSBgQklORk1UX0VMRl9QTFVHSU5TYCBhbmQgYEJJTkZNVF9FTEZfTklYYC4gVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IHRoaXMgYWRkcyBuZXcgbG9naWMgdG8gdGhlIEVMRiBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHBhcnNpbmcgcG90ZW50aWFsbHkgdW50cnVzdGVkIEVMRiBoZWFkZXJzLCBhIGNsYXNzaWMgdnVsbmVyYWJpbGl0eSBzb3VyY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0NDAsIk91dHB1dFRva2VucyI6MTE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMjI6MTM6NTMuMzg3NDM4MjdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1MjA2MTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCSU5GTVRfRUxGX1BMVUdJTlNcIixcbiAgICBcIkJJTkZNVF9FTEZfTklYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWxmX3BsdWdpbl9vcGVuX2ludGVycHJldGVyXCIsXG4gICAgXCJuaXhfb3Blbl9pbnRlcnByZXRlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgRUxGIGludGVycHJldGVyIHBsdWdpbiBzeXN0ZW0gYW5kIGEgc3BlY2lmaWMgcGx1Z2luIGZvciBOaXhPUy4gVGhpcyBhZGRzIG5ldyBsb2dpYyB0byB0aGUgRUxGIGJpbmFyeSBsb2FkaW5nIHBhdGggKGV4ZWN2ZSksIHdoaWNoIGlzIGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZyBhcyBpdCBwYXJzZXMgdW50cnVzdGVkIEVMRiBoZWFkZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9FTEZfUExVR0lOU1wiLFxuICAgIFwiQklORk1UX0VMRl9OSVhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlbGZfcGx1Z2luX29wZW5faW50ZXJwcmV0ZXJcIixcbiAgICBcIm5peF9vcGVuX2ludGVycHJldGVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBFTEYgaW50ZXJwcmV0ZXIgcGx1Z2luIHN5c3RlbSBhbmQgYSBzcGVjaWZpYyBwbHVnaW4gZm9yIE5peE9TLiBUaGlzIGFkZHMgbmV3IGxvZ2ljIHRvIHRoZSBFTEYgYmluYXJ5IGxvYWRpbmcgcGF0aCAoZXhlY3ZlKSwgd2hpY2ggaXMgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nIGFzIGl0IHBhcnNlcyB1bnRydXN0ZWQgRUxGIGhlYWRlcnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowfzdgx[1] Phase: Succeeded StartedAt: 2026-07-02 22:14:16 +0000 UTC FinishedAt: 2026-07-02 22:14:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-02 22:14:16 +0000 UTC FinishedAt: 2026-07-02 22:14:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2] Phase: Succeeded StartedAt: 2026-07-02 22:14:16 +0000 UTC FinishedAt: 2026-07-03 02:16:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-02 22:14:16 +0000 UTC FinishedAt: 2026-07-03 02:16:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-02 22:14:16 +0000 UTC FinishedAt: 2026-07-02 22:14:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-02 22:14:16 +0000 UTC FinishedAt: 2026-07-02 22:14:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowfzdgx/series-workflowfzdgx-convert-artifact-1709915368/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-02 22:14:37 +0000 UTC FinishedAt: 2026-07-02 22:46:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-02 22:14:37 +0000 UTC FinishedAt: 2026-07-02 22:46:59 +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:*826dc8bb-5c7a-4464-98a1-4d9c32a98fb6,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-workflowfzdgx/series-workflowfzdgx-convert-artifact-1709915368/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": "7c7459b5-7a28-4d6b-9729-ad8cfdefa4c9", "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-workflowfzdgx/series-workflowfzdgx-build-action-354402910/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-02 22:14:37 +0000 UTC FinishedAt: 2026-07-02 22:46:49 +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:*826dc8bb-5c7a-4464-98a1-4d9c32a98fb6,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-workflowfzdgx/series-workflowfzdgx-convert-artifact-1709915368/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": "7c7459b5-7a28-4d6b-9729-ad8cfdefa4c9", "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-workflowfzdgx/series-workflowfzdgx-build-action-354402910/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-02 22:46:59 +0000 UTC FinishedAt: 2026-07-02 22:46:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-02 22:46:59 +0000 UTC FinishedAt: 2026-07-02 22:46:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-02 22:46:59 +0000 UTC FinishedAt: 2026-07-02 22:47:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-02 22:46:59 +0000 UTC FinishedAt: 2026-07-02 22:47:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowfzdgx/series-workflowfzdgx-convert-artifact-1514567119/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-02 22:47:09 +0000 UTC FinishedAt: 2026-07-02 22:49:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-02 22:47:09 +0000 UTC FinishedAt: 2026-07-02 22:49:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7c7459b5-7a28-4d6b-9729-ad8cfdefa4c9,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-workflowfzdgx/series-workflowfzdgx-build-action-354402910/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-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-02 22:49:31 +0000 UTC FinishedAt: 2026-07-02 22:49:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-02 22:49:31 +0000 UTC FinishedAt: 2026-07-02 22:49:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-02 22:49:31 +0000 UTC FinishedAt: 2026-07-02 23:10:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-02 22:49:31 +0000 UTC FinishedAt: 2026-07-02 23:10:53 +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:*826dc8bb-5c7a-4464-98a1-4d9c32a98fb6,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-workflowfzdgx/series-workflowfzdgx-convert-artifact-1514567119/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": "85700d8e-b8e4-44d6-9706-e131f1eaeb83", "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-workflowfzdgx/series-workflowfzdgx-build-action-620887523/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-02 22:49:31 +0000 UTC FinishedAt: 2026-07-02 23:10:43 +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:*826dc8bb-5c7a-4464-98a1-4d9c32a98fb6,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-workflowfzdgx/series-workflowfzdgx-convert-artifact-1514567119/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": "85700d8e-b8e4-44d6-9706-e131f1eaeb83", "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-workflowfzdgx/series-workflowfzdgx-build-action-620887523/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-02 23:10:53 +0000 UTC FinishedAt: 2026-07-02 23:10:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-02 23:10:53 +0000 UTC FinishedAt: 2026-07-02 23:10:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-02 23:10:53 +0000 UTC FinishedAt: 2026-07-02 23:13:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-02 23:10:53 +0000 UTC FinishedAt: 2026-07-02 23:12:59 +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:*85700d8e-b8e4-44d6-9706-e131f1eaeb83,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-workflowfzdgx/series-workflowfzdgx-build-action-620887523/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-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-03 02:16:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-03 02:16:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},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:*7c7459b5-7a28-4d6b-9729-ad8cfdefa4c9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*85700d8e-b8e4-44d6-9706-e131f1eaeb83,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-workflowfzdgx/series-workflowfzdgx-build-action-354402910/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-workflowfzdgx/series-workflowfzdgx-build-action-620887523/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-02 23:13:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-02 23:13:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},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-workflowfzdgx/series-workflowfzdgx-convert-artifact-3578475400/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-02 23:13:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-02 23:13:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-02 23:13:09 +0000 UTC FinishedAt: 2026-07-02 23:13:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-02 23:13:19 +0000 UTC FinishedAt: 2026-07-03 02:16:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfzdgx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["elf_plugin_open_interpreter","nix_open_interpreter"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"f4b4fac1867633ac17c35842f03933f6a7a4425f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_ELF_PLUGINS","BINFMT_ELF_NIX"],"series_id":"c4794c99-846c-4750-b499-e3a347d90f32","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-02 23:13:19 +0000 UTC FinishedAt: 2026-07-03 02:16:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7c7459b5-7a28-4d6b-9729-ad8cfdefa4c9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*85700d8e-b8e4-44d6-9706-e131f1eaeb83,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-workflowfzdgx/series-workflowfzdgx-build-action-354402910/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-workflowfzdgx/series-workflowfzdgx-build-action-620887523/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-workflowfzdgx/series-workflowfzdgx-convert-artifact-3578475400/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,}