Name: series-workflowmzzt5 Phase: Succeeded StartedAt: 2026-07-12 10:16:59 +0000 UTC FinishedAt: 2026-07-12 14:50:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[0] Phase: Succeeded StartedAt: 2026-07-12 10:16:59 +0000 UTC FinishedAt: 2026-07-12 10:39:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[0].run-triage Phase: Succeeded StartedAt: 2026-07-12 10:16:59 +0000 UTC FinishedAt: 2026-07-12 10:39:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "44696aa3a489d2baf58efa61b37833f100072bee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "44696aa3a489d2baf58efa61b37833f100072bee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "a5d991cd-2db8-45ae-a84f-764dd689efb4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_vif_set_links", "ieee80211_vif_update_links" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDozODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE2YjBkNDZjZTM1NGQ0Mjk2YmZlZWU4ZDUyMTMzMmI3OGUxYmM1Y2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAxMiAxMDozODo0MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbGluay5jIGIvbmV0L21hYzgwMjExL2xpbmsuY1xuaW5kZXggZDA1MzUyNjg5NjJjN2EuLmRjNjgxNDRkYzM2M2FmIDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL2xpbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL2xpbmsuY1xuQEAgLTM5OSw2ICYjNDM7Mzk5LDEwIEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRcdG1lbWNweShzZGF0YS1cdTAwM2VsaW5rLCBvbGRfZGF0YSwgc2l6ZW9mKG9sZF9kYXRhKSk7XG4gXHRcdG1lbWNweShzZGF0YS1cdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcbiBcdFx0aWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzZGF0YSwgb2xkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcbiYjNDM7XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbiYjNDM7XHRcdFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4mIzQzO1x0XHRcdGllZWU4MDIxMV9saW5rX3N0b3AoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4mIzQzO1x0XHR9XG4gXHRcdC8qIGFuZCBmcmVlIChvbmx5KSB0aGUgbmV3bHkgYWxsb2NhdGVkIGxpbmtzICovXG4gXHRcdG1lbXNldCh0b19mcmVlLCAwLCBzaXplb2YobGlua3MpKTtcbiBcdFx0Z290byBmcmVlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTZiMGQ0NmNlMzU0ZDQyOTZiZmVlZThkNTIxMzMyYjc4ZTFiYzVjYwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gSnVsIDEyIDEwOjM4OjQyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2xpbmsuYyBiL25ldC9tYWM4MDIxMS9saW5rLmMKaW5kZXggZDA1MzUyNjg5NjJjN2EuLmRjNjgxNDRkYzM2M2FmIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbGluay5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9saW5rLmMKQEAgLTM5OSw2ICYjNDM7Mzk5LDEwIEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsCiAJCW1lbWNweShzZGF0YS0mZ3Q7bGluaywgb2xkX2RhdGEsIHNpemVvZihvbGRfZGF0YSkpOwogCQltZW1jcHkoc2RhdGEtJmd0O3ZpZi5saW5rX2NvbmYsIG9sZCwgc2l6ZW9mKG9sZCkpOwogCQlpZWVlODAyMTFfc2V0X3ZpZl9saW5rc19iaXRtYXBzKHNkYXRhLCBvbGRfbGlua3MsIGRvcm1hbnRfbGlua3MpOwomIzQzOwkJZm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCAmYW1wO2FkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7CiYjNDM7CQkJaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoJmFtcDtsaW5rc1tsaW5rX2lkXS0mZ3Q7ZGF0YSk7CiYjNDM7CQkJaWVlZTgwMjExX2xpbmtfc3RvcCgmYW1wO2xpbmtzW2xpbmtfaWRdLSZndDtkYXRhKTsKJiM0MzsJCX0KIAkJLyogYW5kIGZyZWUgKG9ubHkpIHRoZSBuZXdseSBhbGxvY2F0ZWQgbGlua3MgKi8KIAkJbWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpOwogCQlnb3RvIGZyZWU7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzAKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBMaW5rIFVwZGF0ZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9tYWM4MDIxMS9saW5rLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgZnVuY3Rpb24uIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCBhbiBlcnJvciBoYW5kbGluZyBzY2VuYXJpby4gVGhlIHBhdGNoIGFkZHMgYSBjbGVhbnVwIGxvb3AgdG8gaGFuZGxlIHBvdGVudGlhbCBlcnJvcnMgdGhhdCBtaWdodCBhcmlzZSB3aGlsZSB1cGRhdGluZyBsaW5rcy4KCkkgc2VlIGEgYGZvcl9lYWNoX3NldF9iaXRgIGxvb3Agd2l0aGluIHRoZSBlcnJvciBwYXRoLCB1c2luZyB0aGUgYGFkZGAgYml0bWFwIHRvIGl0ZXJhdGUgdGhyb3VnaCBuZXdseSBhZGRlZCBsaW5rcy4gSW5zaWRlIHRoZSBsb29wLCBpdCBjYWxscyBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGFuZCBgaWVlZTgwMjExX2xpbmtfc3RvcGAgb24gdGhvc2UgbGlua3MuIFRoaXMgaXMgYSBjcnVjaWFsIHN0ZXAgZm9yIHByZXZlbnRpbmcgcmVzb3VyY2UgbGVha3MgYW5kIGVuc3VyaW5nIGEgY2xlYW4gc3RhdGUgaWYgdGhlIHVwZGF0ZSBwcm9jZXNzIGZhaWxzLiBJdCYjMzk7cyBhIHNvbGlkIGRlZmVuc2l2ZSBtZWFzdXJlLCBnaXZlbiB0aGUgY29tcGxleGl0eSBvZiBsaW5rIG1hbmFnZW1lbnQgaW4gdGhpcyBhcmVhLiBJdCBhbHNvIHN1Z2dlc3RzIHRoYXQgbGluayBjcmVhdGlvbiBpcyBhIG11bHRpLXN0ZXAgb3BlcmF0aW9uLCBhbmQgdGhpcyBoYW5kbGVzIHRoZSByb2xsYmFjaywgc28gdG8gc3BlYWsuCgpOb3csIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGZ1bmN0aW9uIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCBvZiB0aGlzIGVycm9yIGhhbmRsaW5nIHRvIGZ1bGx5IGFwcHJlY2lhdGUgaXRzIGltcGxpY2F0aW9ucy4gSSYjMzk7bGwgbmVlZCB0byBzZWUgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSwgaXRzIGRhdGEgc3RydWN0dXJlcywgYW5kIHRoZSBwb3NzaWJsZSBwb2ludHMgd2hlcmUgYW4gZXJyb3IgY291bGQgYXJpc2UgdG8gYXNzZXNzIHRoZSBlZmZlY3RpdmVuZXNzIGFuZCBjb3JyZWN0bmVzcyBvZiB0aGlzIHBhdGNoIGluIGl0cyBlbnRpcmV0eS4gSXQmIzM5O3MgYSB3ZWxsLXdyaXR0ZW4gYXBwcm9hY2gsIGJ1dCBjb250ZXh0IGlzIGtpbmcsIGFzIGFsd2F5cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9saW5rLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2xpbmsuYz0yNTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbGluay5jLTI4Ni1cbm5ldC9tYWM4MDIxMS9saW5rLmM6Mjg3OnN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvbGluay5jLTI4OC1cdFx0XHRcdCAgICAgIHN0cnVjdCBsaW5rX2NvbnRhaW5lciAqKnRvX2ZyZWUsXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYz00NTY9aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYxLVxubmV0L21hYzgwMjExL2xpbmsuYzo0NjI6XHRyZXQgPSBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzZGF0YSwgbGlua3MsIG5ld19saW5rcyxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYzLVx0XHRcdFx0XHQgZG9ybWFudF9saW5rcyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg1MQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlRyYWNpbmcgdGhlIExpbmthZ2Ugb2YgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYC4gSSBrbm93IGZyb20gdGhlIHN0cnVjdHVyZSB0aGF0IGl0JiMzOTtzIGNhbGxlZCBieSBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dCBvZiB0aGlzIGNhbGwgY2hhaW4uIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBpdHNlbGYgaXMgYmVpbmcgaW52b2tlZC4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbGluZyBjb250ZXh0cyB3aWxsIGdpdmUgbWUgdGhlIGJlc3QgaW5zaWdodCBpbnRvIGl0cyBwdXJwb3NlIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBvdmVyYWxsIElFRUUgODAyLjExIHN0YWNrIG9wZXJhdGlvbnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0yNzI0PXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9zdGFfNGFkZHIoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTI3NTMtXG5uZXQvbWFjODAyMTEvY2ZnLmM6Mjc1NDpcdFx0ZXJyID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld19saW5rcywgMCk7XG5uZXQvbWFjODAyMTEvY2ZnLmMtMjc1NS1cdFx0aWYgKGVycikge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz01ODAxPXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9pbnRmX2xpbmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTgwOC1cbm5ldC9tYWM4MDIxMS9jZmcuYzo1ODA5Olx0cmV0dXJuIGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB3ZGV2LVx1MDAzZXZhbGlkX2xpbmtzLCAwKTtcbm5ldC9tYWM4MDIxMS9jZmcuYy01ODEwLX1cbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9NTgxMj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2ludGZfbGluayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy01ODI1LVx0ICovXG5uZXQvbWFjODAyMTEvY2ZnLmM6NTgyNjpcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfbGlua3MsIDApO1xubmV0L21hYzgwMjExL2NmZy5jLTU4MjctfVxuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTIyMTQ9dm9pZCBpZWVlODAyMTFfbGlua19zdG9wKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rKTtcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjIyMTU6aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIxNi1cdFx0XHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MjIxNz1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX3ZpZl9jbGVhcl9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTIyMTgte1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjIxOTpcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCAwLCAwKTtcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTIyMjAtfVxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9MTU9c3RhdGljIHZvaWQgaWVlZTgwMjExX3VwZGF0ZV9hcHZsYW5fbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00OS1cbm5ldC9tYWM4MDIxMS9saW5rLmM6NTA6XHRcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHZsYW4sIGFkZCwgMCk7XG5uZXQvbWFjODAyMTEvbGluay5jLTUxLVxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9NTk9dm9pZCBpZWVlODAyMTFfYXB2bGFuX2xpbmtfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy03Ni1cbm5ldC9tYWM4MDIxMS9saW5rLmM6Nzc6XHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X2xpbmtzLCAwKTtcbm5ldC9tYWM4MDIxMS9saW5rLmMtNzgtfVxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9Mjg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00NTUtXG5uZXQvbWFjODAyMTEvbGluay5jOjQ1NjppbnQgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvbGluay5jLTQ1Ny1cdFx0XHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpXG4tLVxubmV0L21hYzgwMjExL21sbWUuYz00NTA4PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9zZXRfZGlzYXNzb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy00NzUyLVxubmV0L21hYzgwMjExL21sbWUuYzo0NzUzOlx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xubmV0L21hYzgwMjExL21sbWUuYy00NzU0LVxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9NTI2MT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVzdHJveV9hdXRoX2RhdGEoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy01Mjg1LVx0XHRpZWVlODAyMTFfbGlua19yZWxlYXNlX2NoYW5uZWwoXHUwMDI2c2RhdGEtXHUwMDNlZGVmbGluayk7XG5uZXQvbWFjODAyMTEvbWxtZS5jOjUyODY6XHRcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCAwLCAwKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTI4Ny1cdH1cbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTUzMDA9c3RhdGljIHZvaWQgaWVlZTgwMjExX2Rlc3Ryb3lfYXNzb2NfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTUzNDItXHRcdGllZWU4MDIxMV9saW5rX3JlbGVhc2VfY2hhbm5lbChcdTAwMjZzZGF0YS1cdTAwM2VkZWZsaW5rKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NTM0MzpcdFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xubmV0L21hYzgwMjExL21sbWUuYy01MzQ0LVx0fVxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9NjkyND1zdGF0aWMgYm9vbCBpZWVlODAyMTFfYXNzb2Nfc3VjY2VzcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTY5OTUtXG5uZXQvbWFjODAyMTEvbWxtZS5jOjY5OTY6XHRcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgZG9ybWFudF9saW5rcyk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTY5OTctXHR9XG4tLVxubmV0L21hYzgwMjExL21sbWUuYy03MDc5LVx0LyogbGlua3MgbWlnaHQgaGF2ZSBjaGFuZ2VkIGR1ZSB0byByZWplY3RlZCBvbmVzLCBzZXQgdGhlbSBhZ2FpbiAqL1xubmV0L21hYzgwMjExL21sbWUuYzo3MDgwOlx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHZhbGlkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzA4MS1cbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTc1NzE9c3RhdGljIHZvaWQgaWVlZTgwMjExX21sX3JlY29uZl93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy03NjE0LVxubmV0L21hYzgwMjExL21sbWUuYzo3NjE1Olx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld192YWxpZF9saW5rcyxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzYxNi1cdFx0XHRcdCAgICAgIG5ld19kb3JtYW50X2xpbmtzKTtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTc3MjE9c3RhdGljIGludCBpZWVlODAyMTFfdHRsbV9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy03NzU4LVxubmV0L21hYzgwMjExL21sbWUuYzo3NzU5Olx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHNkYXRhLVx1MDAzZXZpZi52YWxpZF9saW5rcyxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc2MC1cdFx0XHRcdCAgICAgIGRvcm1hbnRfbGlua3MpO1xuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9Nzc3OT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfdGlkX3RvX2xpbmtfbWFwX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc3OTEtXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc3OTI6XHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgc2RhdGEtXHUwMDNldmlmLnZhbGlkX2xpbmtzLCAwKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc5My1cdGlmIChpZWVlODAyMTFfdHRsbV9zZXRfbGlua3Moc2RhdGEsIG5ld19hY3RpdmVfbGlua3MsIG5ld19kb3JtYW50X2xpbmtzLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9NzgwMT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc19hZHZfdHRsbShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc4MjEtXHRcdFx0ICovXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc4MjI6XHRcdFx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc4MjMtXHRcdFx0XHRcdFx0ICAgICAgc2RhdGEtXHUwMDNldmlmLnZhbGlkX2xpbmtzLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9ODc5Nj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc190dGxtX3RlYXJkb3duKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwNi1cdHNkYXRhLVx1MDAzZXZpZi5zdXNwZW5kZWRfbGlua3MgPSAwO1xubmV0L21hYzgwMjExL21sbWUuYzo4ODA3Olx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHNkYXRhLVx1MDAzZXZpZi52YWxpZF9saW5rcyxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwOC1cdFx0XHRcdG5ld19kb3JtYW50X2xpbmtzKTtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTk1NDA9c3RhdGljIGludCBpZWVlODAyMTFfcHJlcF9jb25uZWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTU3Ny1cbm5ldC9tYWM4MDIxMS9tbG1lLmM6OTU3ODpcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfbGlua3MsIDApO1xubmV0L21hYzgwMjExL21sbWUuYy05NTc5LVx0aWYgKGVycilcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTk3NTEtXHRcdFdBUk5fT04oX19zdGFfaW5mb19kZXN0cm95KGhhdmVfc3RhKSk7XG5uZXQvbWFjODAyMTEvbWxtZS5jOjk3NTI6XHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTk3NTMtXHRyZXR1cm4gZXJyO1xuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9MTAyNjU9aW50IGllZWU4MDIxMV9tZ2RfYXNzb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMC1cdFx0LyogaWYgdGhlcmUgd2FzIG5vIGF1dGhlbnRpY2F0aW9uLCBzZXQgdXAgdGhlIGxpbmsgKi9cbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTA1MzE6XHRcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBCSVQoYXNzb2NfbGlua19pZCksIDApO1xubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMi1cdFx0aWYgKGVycilcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTEwODY4PWllZWU4MDIxMV9wcm9jZXNzX21sX3JlY29uZl9yZXNwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTA5ODctXG5uZXQvbWFjODAyMTEvbWxtZS5jOjEwOTg4Olx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHZhbGlkX2xpbmtzLCBzZGF0YS1cdTAwM2V2aWYuZG9ybWFudF9saW5rcyk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTEwOTg5LVx0bGlua19tYXNrID0gMDtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExMDcwLVx0LyogbGlua3MgbWlnaHQgaGF2ZSBjaGFuZ2VkIGR1ZSB0byByZWplY3RlZCBvbmVzLCBzZXQgdGhlbSBhZ2FpbiAqL1xubmV0L21hYzgwMjExL21sbWUuYzoxMTA3MTpcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgc2RhdGEtXHUwMDNldmlmLmRvcm1hbnRfbGlua3MpO1xubmV0L21hYzgwMjExL21sbWUuYy0xMTA3Mi1cdGllZWU4MDIxMV92aWZfY2ZnX2NoYW5nZV9ub3RpZnkoc2RhdGEsIEJTU19DSEFOR0VEX01MRF9WQUxJRF9MSU5LUyk7XG4tLVxubmV0L21hYzgwMjExL21sbWUuYz0xMTMzMD1pbnQgaWVlZTgwMjExX21nZF9hc3NvY19tbF9yZWNvbmYoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy0xMTUyMC1cbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTE1MjE6XHRcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfdmFsaWRfbGlua3MsXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExNTIyLVx0XHRcdFx0XHQgICAgICBuZXdfZG9ybWFudF9saW5rcyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjcxOQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbWFjODAyMTEgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhbmluZyB0aGluZ3MgdXAgd2l0aGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIHBvdGVudGlhbCBmYWlsdXJlIHNjZW5hcmlvcy4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgY29ycmVjdGlvbiB3aXRoaW4gdGhlIGNvcmUgbWFjODAyMTEgc3Vic3lzdGVtLiBUaGUgZGVzY3JpcHRpb24gaGludHMgYXQgYSByZXNvdXJjZSBsZWFrIG9yIGEgc2ltaWxhciBwcm9ibGVtIHJlbGF0ZWQgdG8gbGluayB1cGRhdGVzIG5vdCBjb21wbGV0aW5nIHN1Y2Nlc3NmdWxseS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7Z29vZCBjYXRjaCEmIzM0Oy4gV2UgbmVlZCB0byBiZSByb2J1c3QgYW5kIGhhbmRsZSB0aGVzZSBmYWlsdXJlIGNhc2VzIGdyYWNlZnVsbHkgdG8gYXZvaWQgYW55IGluc3RhYmlsaXR5LiBOb3cgSSBuZWVkIHRvIHF1aWNrbHkgcmV2aWV3IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIG1hYzgwMjExIHRvIHNlZSBpZiBhbnkgc3BlY2lmaWMgc2V0dGluZ3MgbWlnaHQgYmUgaW5mbHVlbmNpbmcgdGhpcyBiZWhhdmlvciBvciBpZiB0aGlzIHBhdGNoIGltcGFjdHMgYW55IG9mIG91ciB0dW5lZCBjb25maWd1cmF0aW9ucy4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGludm9sdmVkLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MTcwCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgYE1BQzgwMjExYCBMaW5rIE1hbmFnZW1lbnQqKgoKT2theSwgc28gdGhlIGNvbmZpZyBoZXJlIGlzIGRlZmluaXRlbHkgYE1BQzgwMjExYCwgd2hpY2ggbmFycm93cyB0aGluZ3MgZG93bi4gSSBzZWUgdGhhdCB0aGUgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBmdW5jdGlvbiBoYXMgYmVlbiB0b3VjaGVkLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0JiMzOTtzIGZ1enogYm90aCBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGFuZCBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgLiBUaGVzZSBzZWVtIGxpa2UgdGhlIGtleSBlbnRyeSBwb2ludHMgZm9yIG1hbmFnaW5nIGFuZCB1cGRhdGluZyBsaW5rcy4KCkkgbmVlZCB0byBxdWlja2x5IGNoZWNrIHRoZSBkZWJ1Z2ZzIHJlbW92YWw7IHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgLiBBaCwgeWVzLCBpdCBsb29rcyBsaWtlIGBNQUM4MDIxMV9ERUJVR0ZTYCBpcyByZXF1aXJlZCwgYnV0IGhleSwgYGllZWU4MDIxMV9saW5rX3N0b3BgIGlzIGFsc28gYmVpbmcgY2FsbGVkIHRoZXJlLiBUaGlzIGxvb2tzIGludGVyZXN0aW5nIGFuZCB3b3J0aCBhIGRlZXBlciBkaXZlLgoKYGBgYwoJCWZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgJmFtcDthZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykgewoJCQlpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZSgmYW1wO2xpbmtzW2xpbmtfaWRdLSZndDtkYXRhKTsKCQkJaWVlZTgwMjExX2xpbmtfc3RvcCgmYW1wO2xpbmtzW2xpbmtfaWRdLSZndDtkYXRhKTsKCQl9CmBgYAoKTm93LCB0aGUgcXVlc3Rpb24gaXMgaG93IHRvIHRlc3QgdGhpcy4gSXMgYG1hYzgwMjExX2h3c2ltYCBlbm91Z2ggZm9yIHRoaXM/IENvbnNpZGVyaW5nIHRoYXQgYG1hYzgwMjExX2h3c2ltYCAqaXMqIGEgYG1hYzgwMjExYCB1c2VyIGFuZCBpdCYjMzk7cyBjYXBhYmxlIG9mIHNpbXVsYXRpbmcgTXVsdGlwbGUgTGluayBEZXZpY2UgKE1MRCksIGl0IHNob3VsZCBiZSBmaW5lLiBJdCBpcyByZWFjaGFibGUgdmlhIGBtYWM4MDIxMV9od3NpbWAgb3IgZXZlbiB0aGUgYG5sODAyMTFgIG5ldGxpbmsgaW50ZXJmYWNlLgoKSG9sZCBvbiwgdGhlIHByb21wdCBtZW50aW9ucyBzb21ldGhpbmcgYWJvdXQgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEJ1dCB0aGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHZpYSBib3RoIGBtYWM4MDIxMV9od3NpbWAgYW5kIGBubDgwMjExYCEgSSYjMzk7bGwgaGF2ZSB0byBrZWVwIHRoYXQgY2F2ZWF0IGluIG1pbmQuCgpGaW5hbGx5LCBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgIGlzIGludm9rZWQgZHVyaW5nIGludGVyZmFjZSBjb25maWd1cmF0aW9uLCBsaW5rIGFkZGl0aW9ucywgYW5kIHRoZSBsaWtlLiBUaGF0JiMzOTtzIGEgY3J1Y2lhbCBwb2ludCwgYW5kIEkgbmVlZCB0byBmdWxseSB1bmRlcnN0YW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AuIExldCBtZSBjaGVjayBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGluIGBuZXQvbWFjODAyMTEvbGluay5jYCByaWdodCBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2xpbmsuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI4MDpcdFx0XHRXQVJOX09OKGh3ZWlnaHQxNihzZGF0YS1cdTAwM2V2aWYuYWN0aXZlX2xpbmtzKSBcdTAwM2UgMSk7XG4gMjgxOlx0XHRcdGJyZWFrO1xuIDI4MjpcdFx0ZGVmYXVsdDpcbiAyODM6XHRcdFx0V0FSTl9PTigxKTtcbiAyODQ6XHRcdH1cbiAyODU6XHR9XG4gMjg2Olx0XG4gMjg3Olx0c3RhdGljIGludCBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiAyODg6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCBsaW5rX2NvbnRhaW5lciAqKnRvX2ZyZWUsXG4gMjg5Olx0XHRcdFx0XHQgICAgICB1MTYgbmV3X2xpbmtzLCB1MTYgZG9ybWFudF9saW5rcylcbiAyOTA6XHR7XG4gMjkxOlx0XHR1MTYgb2xkX2xpbmtzID0gc2RhdGEtXHUwMDNldmlmLnZhbGlkX2xpbmtzO1xuIDI5MjpcdFx0dTE2IG9sZF9hY3RpdmUgPSBzZGF0YS1cdTAwM2V2aWYuYWN0aXZlX2xpbmtzO1xuIDI5MzpcdFx0dW5zaWduZWQgbG9uZyBhZGQgPSBuZXdfbGlua3MgXHUwMDI2IH5vbGRfbGlua3M7XG4gMjk0Olx0XHR1bnNpZ25lZCBsb25nIHJlbSA9IG9sZF9saW5rcyBcdTAwMjYgfm5ld19saW5rcztcbiAyOTU6XHRcdHVuc2lnbmVkIGxvbmcgc3RhX3JlbSA9IHJlbTtcbiAyOTY6XHRcdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuIDI5NzpcdFx0aW50IHJldDtcbiAyOTg6XHRcdHN0cnVjdCBsaW5rX2NvbnRhaW5lciAqbGlua3NbSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTXSA9IHt9LCAqbGluaztcbiAyOTk6XHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKm9sZFtJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1NdO1xuIDMwMDpcdFx0c3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKm9sZF9kYXRhW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XG4gMzAxOlx0XHRib29sIHVzZV9kZWZsaW5rID0gb2xkX2xpbmtzID09IDA7IC8qIHNldCBmb3IgZXJyb3IgY2FzZSAqL1xuIDMwMjpcdFx0Ym9vbCBub25fc3RhID0gc2RhdGEtXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTjtcbiAzMDM6XHRcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xuIDMwNDpcdFxuIDMwNTpcdFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkoc2RhdGEtXHUwMDNlbG9jYWwtXHUwMDNlaHcud2lwaHkpO1xuIDMwNjpcdFxuIDMwNzpcdFx0bWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpO1xuIDMwODpcdFxuIDMwOTpcdFx0aWYgKG9sZF9saW5rcyA9PSBuZXdfbGlua3MgXHUwMDI2XHUwMDI2IGRvcm1hbnRfbGlua3MgPT0gc2RhdGEtXHUwMDNldmlmLmRvcm1hbnRfbGlua3MpXG4gMzEwOlx0XHRcdHJldHVybiAwO1xuIDMxMTpcdFxuIDMxMjpcdFx0aWYgKCFvbGRfbGlua3MgfHwgIW5ld19saW5rcylcbiAzMTM6XHRcdFx0V0FSTl9PTihzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpIFx1MDAzZSAwKTtcbiAzMTQ6XHRcbiAzMTU6XHRcdC8qIGlmIHRoZXJlIHdlcmUgbm8gb2xkIGxpbmtzLCBuZWVkIHRvIGNsZWFyIHRoZSBwb2ludGVycyB0byBkZWZsaW5rICovXG4gMzE2Olx0XHRpZiAoIW9sZF9saW5rcylcbiAzMTc6XHRcdFx0cmVtIHw9IEJJVCgwKTtcbiAzMTg6XHRcbiAzMTk6XHRcdC8qIGFsbG9jYXRlIG5ldyBsaW5rIHN0cnVjdHVyZXMgZmlyc3QgKi9cbiAzMjA6XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbiAzMjE6XHRcdFx0bGluayA9IGt6YWxsb2Nfb2JqKCpsaW5rKTtcbiAzMjI6XHRcdFx0aWYgKCFsaW5rKSB7XG4gMzIzOlx0XHRcdFx0cmV0ID0gLUVOT01FTTtcbiAzMjQ6XHRcdFx0XHRnb3RvIGZyZWU7XG4gMzI1Olx0XHRcdH1cbiAzMjY6XHRcdFx0bGlua3NbbGlua19pZF0gPSBsaW5rO1xuIDMyNzpcdFx0fVxuIDMyODpcdFxuIDMyOTpcdFx0Lyoga2VlcCB0cmFjayBvZiB0aGUgb2xkIHBvaW50ZXJzIGZvciB0aGUgZHJpdmVyICovXG4gMzMwOlx0XHRCVUlMRF9CVUdfT04oc2l6ZW9mKG9sZCkgIT0gc2l6ZW9mKHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmYpKTtcbiAzMzE6XHRcdG1lbWNweShvbGQsIHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmYsIHNpemVvZihvbGQpKTtcbiAzMzI6XHRcdC8qIGFuZCBmb3IgdXMgaW4gZXJyb3IgY2FzZXMgKi9cbiAzMzM6XHRcdEJVSUxEX0JVR19PTihzaXplb2Yob2xkX2RhdGEpICE9IHNpemVvZihzZGF0YS1cdTAwM2VsaW5rKSk7XG4gMzM0Olx0XHRtZW1jcHkob2xkX2RhdGEsIHNkYXRhLVx1MDAzZWxpbmssIHNpemVvZihvbGRfZGF0YSkpO1xuIDMzNTpcdFxuIDMzNjpcdFx0LyogZ3JhYiBvbGQgbGlua3MgdG8gZnJlZSBsYXRlciAqL1xuIDMzNzpcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZyZW0sIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuIDMzODpcdFx0XHRpZiAocmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0pICE9IFx1MDAyNnNkYXRhLVx1MDAzZWRlZmxpbmspIHtcbiAzMzk6XHRcdFx0XHQvKlxuIDM0MDpcdFx0XHRcdCAqIHdlIG11c3QgaGF2ZSBhbGxvY2F0ZWQgdGhlIGRhdGEgdGhyb3VnaCB0aGlzIHBhdGggc29cbiAzNDE6XHRcdFx0XHQgKiB3ZSBrbm93IHdlIGNhbiBmcmVlIGJvdGggYXQgdGhlIHNhbWUgdGltZVxuIDM0MjpcdFx0XHRcdCAqL1xuIDM0MzpcdFx0XHRcdHRvX2ZyZWVbbGlua19pZF0gPSBjb250YWluZXJfb2YocmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0pLFxuIDM0NDpcdFx0XHRcdFx0XHRcdFx0dHlwZW9mKCpsaW5rc1tsaW5rX2lkXSksXG4gMzQ1Olx0XHRcdFx0XHRcdFx0XHRkYXRhKTtcbiAzNDY6XHRcdFx0fVxuIDM0NzpcdFxuIDM0ODpcdFx0XHRSQ1VfSU5JVF9QT0lOVEVSKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0sIE5VTEwpO1xuIDM0OTpcdFx0XHRSQ1VfSU5JVF9QT0lOVEVSKHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmZbbGlua19pZF0sIE5VTEwpO1xuIDM1MDpcdFx0fVxuIDM1MTpcdFxuIDM1MjpcdFx0aWYgKCFvbGRfbGlua3MpXG4gMzUzOlx0XHRcdGllZWU4MDIxMV9kZWJ1Z2ZzX3JlY3JlYXRlX25ldGRldihzZGF0YSwgdHJ1ZSk7XG4gMzU0Olx0XG4gMzU1Olx0XHQvKiBsaW5rIHRoZW0gaW50byBkYXRhIHN0cnVjdHVyZXMgKi9cbiAzNTY6XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbiAzNTc6XHRcdFx0V0FSTl9PTighdXNlX2RlZmxpbmsgXHUwMDI2XHUwMDI2XG4gMzU4Olx0XHRcdFx0cmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0pID09IFx1MDAyNnNkYXRhLVx1MDAzZWRlZmxpbmspO1xuIDM1OTpcdFxuIDM2MDpcdFx0XHRsaW5rID0gbGlua3NbbGlua19pZF07XG4gMzYxOlx0XHRcdGllZWU4MDIxMV9saW5rX2luaXQoc2RhdGEsIGxpbmtfaWQsIFx1MDAyNmxpbmstXHUwMDNlZGF0YSwgXHUwMDI2bGluay1cdTAwM2Vjb25mKTtcbiAzNjI6XHRcdFx0aWVlZTgwMjExX2xpbmtfc2V0dXAoXHUwMDI2bGluay1cdTAwM2VkYXRhKTtcbiAzNjM6XHRcdFx0aWVlZTgwMjExX3NldF93bW1fZGVmYXVsdChcdTAwMjZsaW5rLVx1MDAzZWRhdGEsIHRydWUsIG5vbl9zdGEpO1xuIDM2NDpcdFx0fVxuIDM2NTpcdFxuIDM2NjpcdFx0aWYgKG5ld19saW5rcyA9PSAwKVxuIDM2NzpcdFx0XHRpZWVlODAyMTFfbGlua19pbml0KHNkYXRhLCAtMSwgXHUwMDI2c2RhdGEtXHUwMDNlZGVmbGluayxcbiAzNjg6XHRcdFx0XHRcdCAgICBcdTAwMjZzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYpO1xuIDM2OTpcdFxuIDM3MDpcdFx0cmV0ID0gaWVlZTgwMjExX2NoZWNrX2R1cF9saW5rX2FkZHJzKHNkYXRhKTtcbiAzNzE6XHRcdGlmICghcmV0KSB7XG4gMzcyOlx0XHRcdC8qIGZvciBrZXlzIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gdW5kbyB0aGlzICovXG4gMzczOlx0XHRcdGllZWU4MDIxMV90ZWFyX2Rvd25fbGlua3Moc2RhdGEsIHRvX2ZyZWUsIHJlbSk7XG4gMzc0Olx0XG4gMzc1Olx0XHRcdGllZWU4MDIxMV9zZXRfdmlmX2xpbmtzX2JpdG1hcHMoc2RhdGEsIG5ld19saW5rcywgZG9ybWFudF9saW5rcyk7XG4gMzc2Olx0XG4gMzc3Olx0XHRcdC8qIHRlbGwgdGhlIGRyaXZlciAqL1xuIDM3ODpcdFx0XHRpZiAoc2RhdGEtXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTilcbiAzNzk6XHRcdFx0XHRyZXQgPSBkcnZfY2hhbmdlX3ZpZl9saW5rcyhzZGF0YS1cdTAwM2Vsb2NhbCwgc2RhdGEsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyMDQxCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24mIzM5O3MgQ29udGV4dCoqCgpSaWdodCwgc28gSSYjMzk7dmUganVzdCBiZWVuIHByb21wdGVkIHRvIGFzc2VzcyBzb21lIGNvZGUgb3IgYSBkZXNjcmlwdGlvbiBvZiBhIGZ1bmN0aW9uLiBUaGUgaW1tZWRpYXRlIHRob3VnaHQgaXMsICpJIG5lZWQgbW9yZSBpbmZvcm1hdGlvbiouIEkmIzM5O20gbm90IGdvaW5nIHRvIGp1bXAgdG8gYW55IGNvbmNsdXNpb25zIGJhc2VkIG9uIGp1c3QgYSBzbmlwcGV0LiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgdGhlIG1vc3QgZWZmaWNpZW50IHdheSB0byB1bmRlcnN0YW5kIGl0cyBwdXJwb3NlIGFuZCBpbm5lciB3b3JraW5ncyBpcyB0byBzZWUgdGhlIHdob2xlIHRoaW5nLCBvciBhdCBsZWFzdCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgaXQuIEkgd2FudCB0byBsb29rIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlLCB0aGUgZGF0YSBpdCBvcGVyYXRlcyBvbiwgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgYnJvYWRlciBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBlbnRyeSBwb2ludHMsIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzICYjMzQ7TGV0JiMzOTtzIHJlYWQgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uJiMzNDsgaXMgY3J1Y2lhbDsgSSB1bmRlcnN0YW5kIHRoZSBpbXBvcnRhbmNlIG9mIGNvbXBsZXRlIGNvbnRleHQgdG8gbWFrZSBhIHNvdW5kIGV2YWx1YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2xpbmsuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDM4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDM4MDpcdFx0XHRcdFx0XHRcdCAgIG9sZF9saW5rcyBcdTAwMjYgb2xkX2FjdGl2ZSxcbiAzODE6XHRcdFx0XHRcdFx0XHQgICBuZXdfbGlua3MgXHUwMDI2IHNkYXRhLVx1MDAzZXZpZi5hY3RpdmVfbGlua3MsXG4gMzgyOlx0XHRcdFx0XHRcdFx0ICAgb2xkKTtcbiAzODM6XHRcdFx0aWYgKCFuZXdfbGlua3MpXG4gMzg0Olx0XHRcdFx0aWVlZTgwMjExX2RlYnVnZnNfcmVjcmVhdGVfbmV0ZGV2KHNkYXRhLCBmYWxzZSk7XG4gMzg1Olx0XG4gMzg2Olx0XHRcdGlmIChzZGF0YS1cdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUClcbiAzODc6XHRcdFx0XHRpZWVlODAyMTFfdXBkYXRlX2Fwdmxhbl9saW5rcyhzZGF0YSk7XG4gMzg4Olx0XHR9XG4gMzg5Olx0XG4gMzkwOlx0XHQvKlxuIDM5MTpcdFx0ICogSWdub3JlIGVycm9ycyBpZiB3ZSBhcmUgb25seSByZW1vdmluZyBsaW5rcyBhcyByZW1vdmFsIHNob3VsZFxuIDM5MjpcdFx0ICogYWx3YXlzIHN1Y2NlZWRcbiAzOTM6XHRcdCAqL1xuIDM5NDpcdFx0aWYgKCFuZXdfbGlua3MpXG4gMzk1Olx0XHRcdHJldCA9IDA7XG4gMzk2Olx0XG4gMzk3Olx0XHRpZiAocmV0KSB7XG4gMzk4Olx0XHRcdC8qIHJlc3RvcmUgY29uZmlnICovXG4gMzk5Olx0XHRcdG1lbWNweShzZGF0YS1cdTAwM2VsaW5rLCBvbGRfZGF0YSwgc2l6ZW9mKG9sZF9kYXRhKSk7XG4gNDAwOlx0XHRcdG1lbWNweShzZGF0YS1cdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcbiA0MDE6XHRcdFx0aWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzZGF0YSwgb2xkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcbiA0MDI6XHRcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuIDQwMzpcdFx0XHRcdGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKFx1MDAyNmxpbmtzW2xpbmtfaWRdLVx1MDAzZWRhdGEpO1xuIDQwNDpcdFx0XHRcdGllZWU4MDIxMV9saW5rX3N0b3AoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4gNDA1Olx0XHRcdH1cbiA0MDY6XHRcdFx0LyogYW5kIGZyZWUgKG9ubHkpIHRoZSBuZXdseSBhbGxvY2F0ZWQgbGlua3MgKi9cbiA0MDc6XHRcdFx0bWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpO1xuIDQwODpcdFx0XHRnb3RvIGZyZWU7XG4gNDA5Olx0XHR9XG4gNDEwOlx0XG4gNDExOlx0XHQvKiB0cnkgdG8gcmVtb3ZlIGxpbmtzIHRoYXQgYXJlIG5vdyBpbnZhbGlkIGZyb20gKE1MTykgc3RhdGlvbnMgKi9cbiA0MTI6XHRcdGxpc3RfZm9yX2VhY2hfZW50cnkoc3RhLCBcdTAwMjZzZGF0YS1cdTAwM2Vsb2NhbC1cdTAwM2VzdGFfbGlzdCwgbGlzdCkge1xuIDQxMzpcdFx0XHR1bnNpZ25lZCBsb25nIHJlbV9saW5rcyA9IHN0YS1cdTAwM2VzdGEudmFsaWRfbGlua3MgXHUwMDI2IHN0YV9yZW07XG4gNDE0Olx0XG4gNDE1Olx0XHRcdGlmIChzdGEtXHUwMDNlc2RhdGEgIT0gc2RhdGEpXG4gNDE2Olx0XHRcdFx0Y29udGludWU7XG4gNDE3Olx0XG4gNDE4Olx0XHRcdC8qXG4gNDE5Olx0XHRcdCAqIHNraXAgc3RhdGlvbnMgdGhhdCB3b3VsZCBoYXZlIG5vIGxpbmtzIGxlZnQsXG4gNDIwOlx0XHRcdCAqIHRob3NlIHdpbGwgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGxhdGVyXG4gNDIxOlx0XHRcdCAqL1xuIDQyMjpcdFx0XHRpZiAoc3RhLVx1MDAzZXN0YS52YWxpZF9saW5rcyA9PSByZW1fbGlua3MpXG4gNDIzOlx0XHRcdFx0Y29udGludWU7XG4gNDI0Olx0XG4gNDI1Olx0XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2cmVtX2xpbmtzLFxuIDQyNjpcdFx0XHRcdFx0IElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUylcbiA0Mjc6XHRcdFx0XHRpZWVlODAyMTFfc3RhX3JlbW92ZV9saW5rKHN0YSwgbGlua19pZCk7XG4gNDI4Olx0XHR9XG4gNDI5Olx0XG4gNDMwOlx0XHQvKlxuIDQzMTpcdFx0ICogUmVtb3ZlIHN0YXRpb25zIHVzaW5nIGFueSByZW1vdmVkIGxpbmtzLiBOb3RlIHRoYXQgZHVlXG4gNDMyOlx0XHQgKiB0byB0aGUgYWJvdmUgc3RhdGlvbiBsaW5rIHJlbW92YWwsIHRoaXMgb25seSByZW1vdmVzXG4gNDMzOlx0XHQgKiBzdGF0aW9ucyB0aGF0IHdlcmUgc2tpcHBlZCBhYm92ZSBiZWNhdXNlIHRoZXkmIzM5O2QgaGF2ZSBub1xuIDQzNDpcdFx0ICogbGlua3MgbGVmdCBhZnRlciBsaW5rIHJlbW92YWwuXG4gNDM1Olx0XHQgKi9cbiA0MzY6XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2c3RhX3JlbSwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKVxuIDQzNzpcdFx0XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgbGlua19pZCk7XG4gNDM4Olx0XG4gNDM5Olx0XHQvKiB1c2UgZGVmbGluay9ic3NfY29uZiBhZ2FpbiBpZiBhbmQgb25seSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBsaW5rcyAqL1xuIDQ0MDpcdFx0dXNlX2RlZmxpbmsgPSBuZXdfbGlua3MgPT0gMDtcbiA0NDE6XHRcbiA0NDI6XHRcdGdvdG8gZGVpbml0O1xuIDQ0MzpcdGZyZWU6XG4gNDQ0Olx0XHQvKiBpZiB3ZSBmYWlsZWQgZHVyaW5nIGFsbG9jYXRpb24sIG9ubHkgZnJlZSBhbGwgKi9cbiA0NDU6XHRcdGZvciAobGlua19pZCA9IDA7IGxpbmtfaWQgXHUwMDNjIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUzsgbGlua19pZCYjNDM7JiM0MzspIHtcbiA0NDY6XHRcdFx0a2ZyZWUobGlua3NbbGlua19pZF0pO1xuIDQ0NzpcdFx0XHRsaW5rc1tsaW5rX2lkXSA9IE5VTEw7XG4gNDQ4Olx0XHR9XG4gNDQ5Olx0ZGVpbml0OlxuIDQ1MDpcdFx0aWYgKHVzZV9kZWZsaW5rKVxuIDQ1MTpcdFx0XHRpZWVlODAyMTFfbGlua19pbml0KHNkYXRhLCAtMSwgXHUwMDI2c2RhdGEtXHUwMDNlZGVmbGluayxcbiA0NTI6XHRcdFx0XHRcdCAgICBcdTAwMjZzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYpO1xuIDQ1MzpcdFx0cmV0dXJuIHJldDtcbiA0NTQ6XHR9XG4gNDU1Olx0XG4gNDU2Olx0aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIDQ1NzpcdFx0XHRcdCAgICB1MTYgbmV3X2xpbmtzLCB1MTYgZG9ybWFudF9saW5rcylcbiA0NTg6XHR7XG4gNDU5Olx0XHRzdHJ1Y3QgbGlua19jb250YWluZXIgKmxpbmtzW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XG4gNDYwOlx0XHRpbnQgcmV0O1xuIDQ2MTpcdFxuIDQ2MjpcdFx0cmV0ID0gaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc2RhdGEsIGxpbmtzLCBuZXdfbGlua3MsXG4gNDYzOlx0XHRcdFx0XHRcdCBkb3JtYW50X2xpbmtzKTtcbiA0NjQ6XHRcdGllZWU4MDIxMV9mcmVlX2xpbmtzKHNkYXRhLCBsaW5rcyk7XG4gNDY1Olx0XG4gNDY2Olx0XHRyZXR1cm4gcmV0O1xuIDQ2NzpcdH1cbiA0Njg6XHRcbiA0Njk6XHRzdGF0aWMgaW50IF9pZWVlODAyMTFfc2V0X2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiA0NzA6XHRcdFx0XHRcdCAgICAgICB1MTYgYWN0aXZlX2xpbmtzKVxuIDQ3MTpcdHtcbiA0NzI6XHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbmtfY29uZnNbSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTXTtcbiA0NzM6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gc2RhdGEtXHUwMDNlbG9jYWw7XG4gNDc0Olx0XHR1MTYgb2xkX2FjdGl2ZSA9IHNkYXRhLVx1MDAzZXZpZi5hY3RpdmVfbGlua3M7XG4gNDc1Olx0XHR1bnNpZ25lZCBsb25nIHJlbSA9IG9sZF9hY3RpdmUgXHUwMDI2IH5hY3RpdmVfbGlua3M7XG4gNDc2Olx0XHR1bnNpZ25lZCBsb25nIGFkZCA9IGFjdGl2ZV9saW5rcyBcdTAwMjYgfm9sZF9hY3RpdmU7XG4gNDc3Olx0XHRzdHJ1Y3Qgc3RhX2luZm8gKnN0YTtcbiA0Nzg6XHRcdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuIDQ3OTpcdFx0aW50IHJldCwgaTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM5NzUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXcgRXJyb3IgQ2xlYW51cCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgZXJyb3IgY2xlYW51cCB3aXRoaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBmb3IgdGhlc2UgZnJlc2hseSBhZGRlZCBsaW5rcy4gVGhhdCYjMzk7cyBhIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQsIGRlZmluaXRlbHkgd29ydGggbG9va2luZyBhdC4gQW5kLCBJIGtub3cgZm9yIGEgZmFjdCB0aGF0IGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXMgYSByZWFjaGFibGUgZnVuY3Rpb24sIHNvIHdlIGNhbiBjb25zaWRlciB0aGF0IGFzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBmdXp6ZWQuCgpHaXZlbiB0aGlzLCBJJiMzOTttIHRoaW5raW5nIHdlIHNob3VsZCB6ZXJvIGluIG9uIGZ1enppbmcgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBhbmQgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYC4gSG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgY29uZmlybSBpZiBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGlzIHN0YXRpYy4uLiBZZXAsIGl0IGlzLiBBbHJpZ2h0LCBzbyB0aGUgcmVhbCBmb2N1cyBzaG91bGQgYmUgb24gYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCB0aGVuLgoKTm93LCB3aGF0IGFib3V0IHRoZSBjb25maWcgb3B0aW9ucz8gVGhlIHByaW1hcnkgb25lIHNlZW1zIHRvIGJlIGBNQUM4MDIxMWAsIGJ1dCBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGZvciBhbnkgb3RoZXJzLiBPa2F5LCBtYXliZSBgTUFDODAyMTFfREVCVUdGU2A/IFRoZSBwYXRjaCAqZG9lcyogY2FsbCBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgLCBidXQgaXQgYWxzbyBjYWxscyBgaWVlZTgwMjExX2xpbmtfc3RvcGAsIHNvIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuIEJlc3QgdG8gZG91YmxlLWNoZWNrIHRoYXQgYGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlYCBmdW5jdGlvbiBkZWZpbml0aW9uLCBqdXN0IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz0xMDQzPXZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmMtMTA2NC1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjEwNjU6dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTEwNjYte1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5oPTE5PXZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspO1xubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MjA6dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaC0yMS1cbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaD0zND1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaC0zNS17fVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MzY6c3RhdGljIGlubGluZSB2b2lkIGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rKVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMzcte31cbi0tXG5uZXQvbWFjODAyMTEvbGluay5jPTE5MT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfdGVhcl9kb3duX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmMtMjA2LVx0XHRpZWVlODAyMTFfcmVtb3ZlX2xpbmtfa2V5cyhsaW5rLCBcdTAwMjZrZXlzKTtcbm5ldC9tYWM4MDIxMS9saW5rLmM6MjA3Olx0XHRpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShsaW5rKTtcbm5ldC9tYWM4MDIxMS9saW5rLmMtMjA4LVx0XHRpZWVlODAyMTFfbGlua19zdG9wKGxpbmspO1xuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9Mjg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00MDItXHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDAzOlx0XHRcdGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKFx1MDAyNmxpbmtzW2xpbmtfaWRdLVx1MDAzZWRhdGEpO1xubmV0L21hYzgwMjExL2xpbmsuYy00MDQtXHRcdFx0aWVlZTgwMjExX2xpbmtfc3RvcChcdTAwMjZsaW5rc1tsaW5rX2lkXS1cdTAwM2VkYXRhKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU0MDAKCQkJCQkJCW91dHB1dDogMTQ0CgkJCQkJCQl0aG91Z2h0czogNDc0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgaGVyZSBpcyB0byBzZWUgaWYgaXQgbW9kaWZpZXMgY29kZSB0aGF0JiMzOTtzIHJlYWNoYWJsZSBhbmQgcG90ZW50aWFsbHkgaW50cm9kdWNlcyBuZXcgZnV6emluZyB0YXJnZXRzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBzaW5jZSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGlzIGEgbm8tb3Agd2hlbiBgTUFDODAyMTFfREVCVUdGU2AgaXNuJiMzOTt0IHNldCwgYW5kIGBpZWVlODAyMTFfbGlua19zdG9wYCBhbHdheXMgcnVucywgd2UgbGlrZWx5IGRvbiYjMzk7dCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBkZWJ1Z2ZzIG9wdGlvbi4gYE1BQzgwMjExYCBpdHNlbGYgaXMgdGhlIGNydWNpYWwgY29tcG9uZW50IGhlcmUuCgpNeSBzdHJhdGVneSBpcyB0byBjb25maXJtIGlmIGBNQUM4MDIxMWAgaXMgZW5vdWdoLCBvciBpZiB3ZSByZXF1aXJlIGBNQUM4MDIxMV9IV1NJTWAgb3Igc29tZXRoaW5nIHNpbWlsYXIgZm9yIHRoZSBjb2RlIHRvIGJlIGFjY2Vzc2libGUsIHdoaWNoIGlzIGVzc2VudGlhbCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgd29ydGggZnV6emluZy4gSSYjMzk7dmUgcGlucG9pbnRlZCBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgIGFzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciB0aGUgbG9naWMgaW52b2x2ZWQgYW5kIEkmIzM5O20gYWRkaW5nIGl0LCBhbG9uZyB3aXRoIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AsIHRvIGBGb2N1c1N5bWJvbHNgLgoKTm93LCByZXZpZXdpbmcgdGhlIHByb21wdCYjMzk7cyBjcml0ZXJpYSBmb3IgYFdvcnRoRnV6emluZz1mYWxzZWAsIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYXZvaWQgdGhvc2UgcGl0ZmFsbHMuIEl0IGRlYWxzIHdpdGggY29yZSBtYWM4MDIxMSBsb2dpYywgd2hpY2ggSSBrbm93IGlzIHJlYWNoYWJsZSBldmVuIGluIGEgc2ltdWxhdGVkIGhhcmR3YXJlIGVudmlyb25tZW50IGxpa2UgYG1hYzgwMjExX2h3c2ltYC4gQ3J1Y2lhbGx5LCB0aGlzIHBhdGNoIGFkZHJlc3NlcyBhIHJlc291cmNlIGxlYWsgb3Igc3RhdGUgaW5jb25zaXN0ZW5jeSBvbiBhbiBlcnJvciBwYXRoLCBhIGNsYXNzaWMgYXJlYSBmb3IgcG90ZW50aWFsIGZ1enppbmcuIEdpdmVuIHRoaXMsIEkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC4KCkZvciB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uLCBJJiMzOTtsbCBlbmFibGUgYE1BQzgwMjExYCwgYW5kIG15IHNwZWNpZmljIGZvY3VzIHdpbGwgYmUgb24gdGhlIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgYW5kIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgZnVuY3Rpb25zLiBJIHF1aWNrbHkgZG91YmxlLWNoZWNrZWQgaWYgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBpcyBzdGF0aWMuIEl0IGlzLCBidXQgdGhhdCYjMzk7cyBub3QgYSBkZWFsLWJyZWFrZXIuIFN5emthbGxlciBjYW4gc3RpbGwgcmVhY2ggdGhvc2UgZnVuY3Rpb25zIGlmIHRoZXkgYXJlIHBhcnQgb2YgdGhlIGNhbGwgdHJlZSwgc28gSSYjMzk7bSBrZWVwaW5nIGJvdGggYXMgdGFyZ2V0cy4gVGltZSB0byBzZXQgdGhlc2UgcmVzdWx0cyBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfdmlmX3NldF9saW5rcyYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGNsZWFudXAgaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCB0byBzdG9wIGFuZCByZW1vdmUgZGVidWdmcyBmb3IgbmV3bHkgYWxsb2NhdGVkIGxpbmtzIGlmIGFuIGVycm9yIG9jY3Vycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIHN1YnN5c3RlbSwgcmVhY2hhYmxlIHZpYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIG1hYzgwMjExX2h3c2ltLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NDQuNDE3OTM3ODUyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUyMjgwNjE2MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfdmlmX3NldF9saW5rc1wiLFxuICAgIFwiaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGNsZWFudXAgaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCB0byBzdG9wIGFuZCByZW1vdmUgZGVidWdmcyBmb3IgbmV3bHkgYWxsb2NhdGVkIGxpbmtzIGlmIGFuIGVycm9yIG9jY3Vycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIHN1YnN5c3RlbSwgcmVhY2hhYmxlIHZpYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIG1hYzgwMjExX2h3c2ltLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo0NC40MTc5NDQ4MzJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwMDIzMzczNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGE2YjBkNDZjZTM1NGQ0Mjk2YmZlZWU4ZDUyMTMzMmI3OGUxYmM1Y2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdWwgMTIgMTA6Mzg6NDIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2xpbmsuYyBiL25ldC9tYWM4MDIxMS9saW5rLmNcXG5pbmRleCBkMDUzNTI2ODk2MmM3YS4uZGM2ODE0NGRjMzYzYWYgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL2xpbmsuY1xcbisrKyBiL25ldC9tYWM4MDIxMS9saW5rLmNcXG5AQCAtMzk5LDYgKzM5OSwxMCBAQCBzdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiBcXHRcXHRtZW1jcHkoc2RhdGEtXFx1MDAzZWxpbmssIG9sZF9kYXRhLCBzaXplb2Yob2xkX2RhdGEpKTtcXG4gXFx0XFx0bWVtY3B5KHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcXG4gXFx0XFx0aWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzZGF0YSwgb2xkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcXG4rXFx0XFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcXG4rXFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXFx1MDAyNmxpbmtzW2xpbmtfaWRdLVxcdTAwM2VkYXRhKTtcXG4rXFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfc3RvcChcXHUwMDI2bGlua3NbbGlua19pZF0tXFx1MDAzZWRhdGEpO1xcbitcXHRcXHR9XFxuIFxcdFxcdC8qIGFuZCBmcmVlIChvbmx5KSB0aGUgbmV3bHkgYWxsb2NhdGVkIGxpbmtzICovXFxuIFxcdFxcdG1lbXNldCh0b19mcmVlLCAwLCBzaXplb2YobGlua3MpKTtcXG4gXFx0XFx0Z290byBmcmVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo0NS4wMTkxMzMyODhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NjI2ODUxMTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NcIixcbiAgICBcImllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNmIwZDQ2Y2UzNTRkNDI5NmJmZWVlOGQ1MjEzMzJiNzhlMWJjNWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMTIgMTA6Mzg6NDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbGluay5jIGIvbmV0L21hYzgwMjExL2xpbmsuY1xuaW5kZXggZDA1MzUyNjg5NjJjN2EuLmRjNjgxNDRkYzM2M2FmIDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL2xpbmsuY1xuKysrIGIvbmV0L21hYzgwMjExL2xpbmsuY1xuQEAgLTM5OSw2ICszOTksMTAgQEAgc3RhdGljIGludCBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdFx0bWVtY3B5KHNkYXRhLVx1MDAzZWxpbmssIG9sZF9kYXRhLCBzaXplb2Yob2xkX2RhdGEpKTtcbiBcdFx0bWVtY3B5KHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmYsIG9sZCwgc2l6ZW9mKG9sZCkpO1xuIFx0XHRpZWVlODAyMTFfc2V0X3ZpZl9saW5rc19iaXRtYXBzKHNkYXRhLCBvbGRfbGlua3MsIGRvcm1hbnRfbGlua3MpO1xuK1x0XHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFx1MDAyNmFkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4rXHRcdFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4rXHRcdFx0aWVlZTgwMjExX2xpbmtfc3RvcChcdTAwMjZsaW5rc1tsaW5rX2lkXS1cdTAwM2VkYXRhKTtcbitcdFx0fVxuIFx0XHQvKiBhbmQgZnJlZSAob25seSkgdGhlIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyAqL1xuIFx0XHRtZW1zZXQodG9fZnJlZSwgMCwgc2l6ZW9mKGxpbmtzKSk7XG4gXHRcdGdvdG8gZnJlZTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjM4OjQ1LjAxOTEzNTE1OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MjQwNDI0NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBMaW5rIFVwZGF0ZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvbWFjODAyMTEvbGluay5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGZ1bmN0aW9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgYW4gZXJyb3IgaGFuZGxpbmcgc2NlbmFyaW8uIFRoZSBwYXRjaCBhZGRzIGEgY2xlYW51cCBsb29wIHRvIGhhbmRsZSBwb3RlbnRpYWwgZXJyb3JzIHRoYXQgbWlnaHQgYXJpc2Ugd2hpbGUgdXBkYXRpbmcgbGlua3MuXG5cbkkgc2VlIGEgYGZvcl9lYWNoX3NldF9iaXRgIGxvb3Agd2l0aGluIHRoZSBlcnJvciBwYXRoLCB1c2luZyB0aGUgYGFkZGAgYml0bWFwIHRvIGl0ZXJhdGUgdGhyb3VnaCBuZXdseSBhZGRlZCBsaW5rcy4gSW5zaWRlIHRoZSBsb29wLCBpdCBjYWxscyBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGFuZCBgaWVlZTgwMjExX2xpbmtfc3RvcGAgb24gdGhvc2UgbGlua3MuIFRoaXMgaXMgYSBjcnVjaWFsIHN0ZXAgZm9yIHByZXZlbnRpbmcgcmVzb3VyY2UgbGVha3MgYW5kIGVuc3VyaW5nIGEgY2xlYW4gc3RhdGUgaWYgdGhlIHVwZGF0ZSBwcm9jZXNzIGZhaWxzLiBJdCdzIGEgc29saWQgZGVmZW5zaXZlIG1lYXN1cmUsIGdpdmVuIHRoZSBjb21wbGV4aXR5IG9mIGxpbmsgbWFuYWdlbWVudCBpbiB0aGlzIGFyZWEuIEl0IGFsc28gc3VnZ2VzdHMgdGhhdCBsaW5rIGNyZWF0aW9uIGlzIGEgbXVsdGktc3RlcCBvcGVyYXRpb24sIGFuZCB0aGlzIGhhbmRsZXMgdGhlIHJvbGxiYWNrLCBzbyB0byBzcGVhay5cblxuTm93LCBsZXQncyBkaXZlIGludG8gdGhlIGZ1bmN0aW9uIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCBvZiB0aGlzIGVycm9yIGhhbmRsaW5nIHRvIGZ1bGx5IGFwcHJlY2lhdGUgaXRzIGltcGxpY2F0aW9ucy4gSSdsbCBuZWVkIHRvIHNlZSB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlLCBpdHMgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIHBvc3NpYmxlIHBvaW50cyB3aGVyZSBhbiBlcnJvciBjb3VsZCBhcmlzZSB0byBhc3Nlc3MgdGhlIGVmZmVjdGl2ZW5lc3MgYW5kIGNvcnJlY3RuZXNzIG9mIHRoaXMgcGF0Y2ggaW4gaXRzIGVudGlyZXR5LiBJdCdzIGEgd2VsbC13cml0dGVuIGFwcHJvYWNoLCBidXQgY29udGV4dCBpcyBraW5nLCBhcyBhbHdheXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NzAsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo0OS42NDMxODAwNTdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUyNTQ5ODI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9saW5rLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2xpbmsuYz0yNTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmMtMjg2LVxcbm5ldC9tYWM4MDIxMS9saW5rLmM6Mjg3OnN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxubmV0L21hYzgwMjExL2xpbmsuYy0yODgtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGxpbmtfY29udGFpbmVyICoqdG9fZnJlZSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9NDU2PWludCBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYxLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDYyOlxcdHJldCA9IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHNkYXRhLCBsaW5rcywgbmV3X2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYzLVxcdFxcdFxcdFxcdFxcdCBkb3JtYW50X2xpbmtzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NDkuNzk1NzM2NTc0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjc4OTA1Njc0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipUcmFjaW5nIHRoZSBMaW5rYWdlIG9mIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgLiBJIGtub3cgZnJvbSB0aGUgc3RydWN0dXJlIHRoYXQgaXQncyBjYWxsZWQgYnkgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbGFyZ2VyIGNvbnRleHQgb2YgdGhpcyBjYWxsIGNoYWluLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBrbm93IHdoZXJlIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgaXRzZWxmIGlzIGJlaW5nIGludm9rZWQuIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIHRoZSBiZXN0IGluc2lnaHQgaW50byBpdHMgcHVycG9zZSBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgb3ZlcmFsbCBJRUVFIDgwMi4xMSBzdGFjayBvcGVyYXRpb25zLiBMZXQncyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTEsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo1Mi41ODQ3OTU4OTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM0ODEyNjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV92aWZfc2V0X2xpbmtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTI3MjQ9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X3N0YV80YWRkcihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzUzLVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyNzU0OlxcdFxcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfbGlua3MsIDApO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzU1LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01ODAxPXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9pbnRmX2xpbmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy01ODA4LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzo1ODA5OlxcdHJldHVybiBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgd2Rldi1cXHUwMDNldmFsaWRfbGlua3MsIDApO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy01ODEwLX1cXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01ODEyPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9kZWxfaW50Zl9saW5rKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTgyNS1cXHQgKi9cXG5uZXQvbWFjODAyMTEvY2ZnLmM6NTgyNjpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X2xpbmtzLCAwKTtcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTgyNy19XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yMjE0PXZvaWQgaWVlZTgwMjExX2xpbmtfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjIxNTppbnQgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIxNi1cXHRcXHRcXHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTIyMTc9c3RhdGljIGlubGluZSB2b2lkIGllZWU4MDIxMV92aWZfY2xlYXJfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIxOC17XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjIxOTpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIyMC19XFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jPTE1PXN0YXRpYyB2b2lkIGllZWU4MDIxMV91cGRhdGVfYXB2bGFuX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL2xpbmsuYy00OS1cXG5uZXQvbWFjODAyMTEvbGluay5jOjUwOlxcdFxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHZsYW4sIGFkZCwgMCk7XFxubmV0L21hYzgwMjExL2xpbmsuYy01MS1cXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9NTk9dm9pZCBpZWVlODAyMTFfYXB2bGFuX2xpbmtfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTc2LVxcbm5ldC9tYWM4MDIxMS9saW5rLmM6Nzc6XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld19saW5rcywgMCk7XFxubmV0L21hYzgwMjExL2xpbmsuYy03OC19XFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jPTI4Nz1zdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL2xpbmsuYy00NTUtXFxubmV0L21hYzgwMjExL2xpbmsuYzo0NTY6aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDU3LVxcdFxcdFxcdCAgICB1MTYgbmV3X2xpbmtzLCB1MTYgZG9ybWFudF9saW5rcylcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9NDUwOD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X2Rpc2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy00NzUyLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDc1MzpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XFxubmV0L21hYzgwMjExL21sbWUuYy00NzU0LVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz01MjYxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9kZXN0cm95X2F1dGhfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTI4NS1cXHRcXHRpZWVlODAyMTFfbGlua19yZWxlYXNlX2NoYW5uZWwoXFx1MDAyNnNkYXRhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjUyODY6XFx0XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTI4Ny1cXHR9XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTUzMDA9c3RhdGljIHZvaWQgaWVlZTgwMjExX2Rlc3Ryb3lfYXNzb2NfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTM0Mi1cXHRcXHRpZWVlODAyMTFfbGlua19yZWxlYXNlX2NoYW5uZWwoXFx1MDAyNnNkYXRhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjUzNDM6XFx0XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTM0NC1cXHR9XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTY5MjQ9c3RhdGljIGJvb2wgaWVlZTgwMjExX2Fzc29jX3N1Y2Nlc3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTY5OTUtXFxubmV0L21hYzgwMjExL21sbWUuYzo2OTk2OlxcdFxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy02OTk3LVxcdH1cXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzA3OS1cXHQvKiBsaW5rcyBtaWdodCBoYXZlIGNoYW5nZWQgZHVlIHRvIHJlamVjdGVkIG9uZXMsIHNldCB0aGVtIGFnYWluICovXFxubmV0L21hYzgwMjExL21sbWUuYzo3MDgwOlxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy03MDgxLVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz03NTcxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9tbF9yZWNvbmZfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy03NjE0LVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NzYxNTpcXHRyZXQgPSBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X3ZhbGlkX2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzYxNi1cXHRcXHRcXHRcXHQgICAgICBuZXdfZG9ybWFudF9saW5rcyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTc3MjE9c3RhdGljIGludCBpZWVlODAyMTFfdHRsbV9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc3NTgtXFxubmV0L21hYzgwMjExL21sbWUuYzo3NzU5OlxcdHJldCA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBzZGF0YS1cXHUwMDNldmlmLnZhbGlkX2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc2MC1cXHRcXHRcXHRcXHQgICAgICBkb3JtYW50X2xpbmtzKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9Nzc3OT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfdGlkX3RvX2xpbmtfbWFwX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc5MS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc3OTI6XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHNkYXRhLVxcdTAwM2V2aWYudmFsaWRfbGlua3MsIDApO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc5My1cXHRpZiAoaWVlZTgwMjExX3R0bG1fc2V0X2xpbmtzKHNkYXRhLCBuZXdfYWN0aXZlX2xpbmtzLCBuZXdfZG9ybWFudF9saW5rcyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9NzgwMT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc19hZHZfdHRsbShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzgyMS1cXHRcXHRcXHQgKi9cXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc4MjI6XFx0XFx0XFx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsXFxubmV0L21hYzgwMjExL21sbWUuYy03ODIzLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIHNkYXRhLVxcdTAwM2V2aWYudmFsaWRfbGlua3MsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTg3OTY9c3RhdGljIHZvaWQgaWVlZTgwMjExX3Byb2Nlc3NfdHRsbV90ZWFyZG93bihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwNi1cXHRzZGF0YS1cXHUwMDNldmlmLnN1c3BlbmRlZF9saW5rcyA9IDA7XFxubmV0L21hYzgwMjExL21sbWUuYzo4ODA3OlxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBzZGF0YS1cXHUwMDNldmlmLnZhbGlkX2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwOC1cXHRcXHRcXHRcXHRuZXdfZG9ybWFudF9saW5rcyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTk1NDA9c3RhdGljIGludCBpZWVlODAyMTFfcHJlcF9jb25uZWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy05NTc3LVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6OTU3ODpcXHRlcnIgPSBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X2xpbmtzLCAwKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTk1NzktXFx0aWYgKGVycilcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTc1MS1cXHRcXHRXQVJOX09OKF9fc3RhX2luZm9fZGVzdHJveShoYXZlX3N0YSkpO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmM6OTc1MjpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XFxubmV0L21hYzgwMjExL21sbWUuYy05NzUzLVxcdHJldHVybiBlcnI7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTEwMjY1PWludCBpZWVlODAyMTFfbWdkX2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMC1cXHRcXHQvKiBpZiB0aGVyZSB3YXMgbm8gYXV0aGVudGljYXRpb24sIHNldCB1cCB0aGUgbGluayAqL1xcbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTA1MzE6XFx0XFx0ZXJyID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIEJJVChhc3NvY19saW5rX2lkKSwgMCk7XFxubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMi1cXHRcXHRpZiAoZXJyKVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz0xMDg2OD1pZWVlODAyMTFfcHJvY2Vzc19tbF9yZWNvbmZfcmVzcChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTA5ODctXFxubmV0L21hYzgwMjExL21sbWUuYzoxMDk4ODpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgdmFsaWRfbGlua3MsIHNkYXRhLVxcdTAwM2V2aWYuZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy0xMDk4OS1cXHRsaW5rX21hc2sgPSAwO1xcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0xMTA3MC1cXHQvKiBsaW5rcyBtaWdodCBoYXZlIGNoYW5nZWQgZHVlIHRvIHJlamVjdGVkIG9uZXMsIHNldCB0aGVtIGFnYWluICovXFxubmV0L21hYzgwMjExL21sbWUuYzoxMTA3MTpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgdmFsaWRfbGlua3MsIHNkYXRhLVxcdTAwM2V2aWYuZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy0xMTA3Mi1cXHRpZWVlODAyMTFfdmlmX2NmZ19jaGFuZ2Vfbm90aWZ5KHNkYXRhLCBCU1NfQ0hBTkdFRF9NTERfVkFMSURfTElOS1MpO1xcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz0xMTMzMD1pbnQgaWVlZTgwMjExX21nZF9hc3NvY19tbF9yZWNvbmYoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExNTIwLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTE1MjE6XFx0XFx0ZXJyID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld192YWxpZF9saW5rcyxcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExNTIyLVxcdFxcdFxcdFxcdFxcdCAgICAgIG5ld19kb3JtYW50X2xpbmtzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NTIuNzE5NjE0Njc1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMzMjc1MzQ3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG1hYzgwMjExIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhbmluZyB0aGluZ3MgdXAgd2l0aGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIHBvdGVudGlhbCBmYWlsdXJlIHNjZW5hcmlvcy4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgY29ycmVjdGlvbiB3aXRoaW4gdGhlIGNvcmUgbWFjODAyMTEgc3Vic3lzdGVtLiBUaGUgZGVzY3JpcHRpb24gaGludHMgYXQgYSByZXNvdXJjZSBsZWFrIG9yIGEgc2ltaWxhciBwcm9ibGVtIHJlbGF0ZWQgdG8gbGluayB1cGRhdGVzIG5vdCBjb21wbGV0aW5nIHN1Y2Nlc3NmdWxseS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiZ29vZCBjYXRjaCFcIi4gV2UgbmVlZCB0byBiZSByb2J1c3QgYW5kIGhhbmRsZSB0aGVzZSBmYWlsdXJlIGNhc2VzIGdyYWNlZnVsbHkgdG8gYXZvaWQgYW55IGluc3RhYmlsaXR5LiBOb3cgSSBuZWVkIHRvIHF1aWNrbHkgcmV2aWV3IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIG1hYzgwMjExIHRvIHNlZSBpZiBhbnkgc3BlY2lmaWMgc2V0dGluZ3MgbWlnaHQgYmUgaW5mbHVlbmNpbmcgdGhpcyBiZWhhdmlvciBvciBpZiB0aGlzIHBhdGNoIGltcGFjdHMgYW55IG9mIG91ciB0dW5lZCBjb25maWd1cmF0aW9ucy4gTGV0J3Mgc2VlIHdoYXQncyBpbnZvbHZlZC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzE5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NTYuMDUyMzcwNzc5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjMzMTU2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDODAyMTFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cXHRib29sXFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXFxubmV0L21hYzgwMjExL0tjb25maWctNDktXFxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cXHRzdHJpbmdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXFxcIlNvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBtYWM4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cXHRib29sIFxcXCJFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVxcdGJvb2wgXFxcIkVuYWJsZSBMRUQgdHJpZ2dlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXFxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cXHRib29sIFxcXCJTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXFx0Ym9vbCBcXFwiRG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXFx0Ym9vbCBcXFwiVmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIlZlcmJvc2UgT0NCIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjEwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXFx0Ym9vbCBcXFwiVmVyYm9zZSBURExTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL0tjb25maWctMjk0LVxcdGJvb2wgXFxcIkV4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXFxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVxcdGludCBcXFwiU3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVxcXCIgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo1Ni4yNjg3MDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzAyNTg5NDc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgYE1BQzgwMjExYCBMaW5rIE1hbmFnZW1lbnQqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGhlcmUgaXMgZGVmaW5pdGVseSBgTUFDODAyMTFgLCB3aGljaCBuYXJyb3dzIHRoaW5ncyBkb3duLiBJIHNlZSB0aGF0IHRoZSBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGZ1bmN0aW9uIGhhcyBiZWVuIHRvdWNoZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyBmdXp6IGJvdGggYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBhbmQgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYC4gVGhlc2Ugc2VlbSBsaWtlIHRoZSBrZXkgZW50cnkgcG9pbnRzIGZvciBtYW5hZ2luZyBhbmQgdXBkYXRpbmcgbGlua3MuXG5cbkkgbmVlZCB0byBxdWlja2x5IGNoZWNrIHRoZSBkZWJ1Z2ZzIHJlbW92YWw7IHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgLiBBaCwgeWVzLCBpdCBsb29rcyBsaWtlIGBNQUM4MDIxMV9ERUJVR0ZTYCBpcyByZXF1aXJlZCwgYnV0IGhleSwgYGllZWU4MDIxMV9saW5rX3N0b3BgIGlzIGFsc28gYmVpbmcgY2FsbGVkIHRoZXJlLiBUaGlzIGxvb2tzIGludGVyZXN0aW5nIGFuZCB3b3J0aCBhIGRlZXBlciBkaXZlLlxuXG5gYGBjXG5cdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuXHRcdFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG5cdFx0XHRpZWVlODAyMTFfbGlua19zdG9wKFx1MDAyNmxpbmtzW2xpbmtfaWRdLVx1MDAzZWRhdGEpO1xuXHRcdH1cbmBgYFxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcyBob3cgdG8gdGVzdCB0aGlzLiBJcyBgbWFjODAyMTFfaHdzaW1gIGVub3VnaCBmb3IgdGhpcz8gQ29uc2lkZXJpbmcgdGhhdCBgbWFjODAyMTFfaHdzaW1gICppcyogYSBgbWFjODAyMTFgIHVzZXIgYW5kIGl0J3MgY2FwYWJsZSBvZiBzaW11bGF0aW5nIE11bHRpcGxlIExpbmsgRGV2aWNlIChNTEQpLCBpdCBzaG91bGQgYmUgZmluZS4gSXQgaXMgcmVhY2hhYmxlIHZpYSBgbWFjODAyMTFfaHdzaW1gIG9yIGV2ZW4gdGhlIGBubDgwMjExYCBuZXRsaW5rIGludGVyZmFjZS5cblxuSG9sZCBvbiwgdGhlIHByb21wdCBtZW50aW9ucyBzb21ldGhpbmcgYWJvdXQgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEJ1dCB0aGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHZpYSBib3RoIGBtYWM4MDIxMV9od3NpbWAgYW5kIGBubDgwMjExYCEgSSdsbCBoYXZlIHRvIGtlZXAgdGhhdCBjYXZlYXQgaW4gbWluZC5cblxuRmluYWxseSwgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBpcyBpbnZva2VkIGR1cmluZyBpbnRlcmZhY2UgY29uZmlndXJhdGlvbiwgbGluayBhZGRpdGlvbnMsIGFuZCB0aGUgbGlrZS4gVGhhdCdzIGEgY3J1Y2lhbCBwb2ludCwgYW5kIEkgbmVlZCB0byBmdWxseSB1bmRlcnN0YW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AuIExldCBtZSBjaGVjayBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGluIGBuZXQvbWFjODAyMTEvbGluay5jYCByaWdodCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkxNzAsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzk6MDIuOTcxMzAwMjk0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0OTAxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTEvbGluay5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI4MCxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyODA6XFx0XFx0XFx0V0FSTl9PTihod2VpZ2h0MTYoc2RhdGEtXFx1MDAzZXZpZi5hY3RpdmVfbGlua3MpIFxcdTAwM2UgMSk7XFxuIDI4MTpcXHRcXHRcXHRicmVhaztcXG4gMjgyOlxcdFxcdGRlZmF1bHQ6XFxuIDI4MzpcXHRcXHRcXHRXQVJOX09OKDEpO1xcbiAyODQ6XFx0XFx0fVxcbiAyODU6XFx0fVxcbiAyODY6XFx0XFxuIDI4NzpcXHRzdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiAyODg6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGxpbmtfY29udGFpbmVyICoqdG9fZnJlZSxcXG4gMjg5OlxcdFxcdFxcdFxcdFxcdCAgICAgIHUxNiBuZXdfbGlua3MsIHUxNiBkb3JtYW50X2xpbmtzKVxcbiAyOTA6XFx0e1xcbiAyOTE6XFx0XFx0dTE2IG9sZF9saW5rcyA9IHNkYXRhLVxcdTAwM2V2aWYudmFsaWRfbGlua3M7XFxuIDI5MjpcXHRcXHR1MTYgb2xkX2FjdGl2ZSA9IHNkYXRhLVxcdTAwM2V2aWYuYWN0aXZlX2xpbmtzO1xcbiAyOTM6XFx0XFx0dW5zaWduZWQgbG9uZyBhZGQgPSBuZXdfbGlua3MgXFx1MDAyNiB+b2xkX2xpbmtzO1xcbiAyOTQ6XFx0XFx0dW5zaWduZWQgbG9uZyByZW0gPSBvbGRfbGlua3MgXFx1MDAyNiB+bmV3X2xpbmtzO1xcbiAyOTU6XFx0XFx0dW5zaWduZWQgbG9uZyBzdGFfcmVtID0gcmVtO1xcbiAyOTY6XFx0XFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuIDI5NzpcXHRcXHRpbnQgcmV0O1xcbiAyOTg6XFx0XFx0c3RydWN0IGxpbmtfY29udGFpbmVyICpsaW5rc1tJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1NdID0ge30sICpsaW5rO1xcbiAyOTk6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqb2xkW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XFxuIDMwMDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqb2xkX2RhdGFbSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTXTtcXG4gMzAxOlxcdFxcdGJvb2wgdXNlX2RlZmxpbmsgPSBvbGRfbGlua3MgPT0gMDsgLyogc2V0IGZvciBlcnJvciBjYXNlICovXFxuIDMwMjpcXHRcXHRib29sIG5vbl9zdGEgPSBzZGF0YS1cXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTjtcXG4gMzAzOlxcdFxcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xcbiAzMDQ6XFx0XFxuIDMwNTpcXHRcXHRsb2NrZGVwX2Fzc2VydF93aXBoeShzZGF0YS1cXHUwMDNlbG9jYWwtXFx1MDAzZWh3LndpcGh5KTtcXG4gMzA2OlxcdFxcbiAzMDc6XFx0XFx0bWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpO1xcbiAzMDg6XFx0XFxuIDMwOTpcXHRcXHRpZiAob2xkX2xpbmtzID09IG5ld19saW5rcyBcXHUwMDI2XFx1MDAyNiBkb3JtYW50X2xpbmtzID09IHNkYXRhLVxcdTAwM2V2aWYuZG9ybWFudF9saW5rcylcXG4gMzEwOlxcdFxcdFxcdHJldHVybiAwO1xcbiAzMTE6XFx0XFxuIDMxMjpcXHRcXHRpZiAoIW9sZF9saW5rcyB8fCAhbmV3X2xpbmtzKVxcbiAzMTM6XFx0XFx0XFx0V0FSTl9PTihzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpIFxcdTAwM2UgMCk7XFxuIDMxNDpcXHRcXG4gMzE1OlxcdFxcdC8qIGlmIHRoZXJlIHdlcmUgbm8gb2xkIGxpbmtzLCBuZWVkIHRvIGNsZWFyIHRoZSBwb2ludGVycyB0byBkZWZsaW5rICovXFxuIDMxNjpcXHRcXHRpZiAoIW9sZF9saW5rcylcXG4gMzE3OlxcdFxcdFxcdHJlbSB8PSBCSVQoMCk7XFxuIDMxODpcXHRcXG4gMzE5OlxcdFxcdC8qIGFsbG9jYXRlIG5ldyBsaW5rIHN0cnVjdHVyZXMgZmlyc3QgKi9cXG4gMzIwOlxcdFxcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXFx1MDAyNmFkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuIDMyMTpcXHRcXHRcXHRsaW5rID0ga3phbGxvY19vYmooKmxpbmspO1xcbiAzMjI6XFx0XFx0XFx0aWYgKCFsaW5rKSB7XFxuIDMyMzpcXHRcXHRcXHRcXHRyZXQgPSAtRU5PTUVNO1xcbiAzMjQ6XFx0XFx0XFx0XFx0Z290byBmcmVlO1xcbiAzMjU6XFx0XFx0XFx0fVxcbiAzMjY6XFx0XFx0XFx0bGlua3NbbGlua19pZF0gPSBsaW5rO1xcbiAzMjc6XFx0XFx0fVxcbiAzMjg6XFx0XFxuIDMyOTpcXHRcXHQvKiBrZWVwIHRyYWNrIG9mIHRoZSBvbGQgcG9pbnRlcnMgZm9yIHRoZSBkcml2ZXIgKi9cXG4gMzMwOlxcdFxcdEJVSUxEX0JVR19PTihzaXplb2Yob2xkKSAhPSBzaXplb2Yoc2RhdGEtXFx1MDAzZXZpZi5saW5rX2NvbmYpKTtcXG4gMzMxOlxcdFxcdG1lbWNweShvbGQsIHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mLCBzaXplb2Yob2xkKSk7XFxuIDMzMjpcXHRcXHQvKiBhbmQgZm9yIHVzIGluIGVycm9yIGNhc2VzICovXFxuIDMzMzpcXHRcXHRCVUlMRF9CVUdfT04oc2l6ZW9mKG9sZF9kYXRhKSAhPSBzaXplb2Yoc2RhdGEtXFx1MDAzZWxpbmspKTtcXG4gMzM0OlxcdFxcdG1lbWNweShvbGRfZGF0YSwgc2RhdGEtXFx1MDAzZWxpbmssIHNpemVvZihvbGRfZGF0YSkpO1xcbiAzMzU6XFx0XFxuIDMzNjpcXHRcXHQvKiBncmFiIG9sZCBsaW5rcyB0byBmcmVlIGxhdGVyICovXFxuIDMzNzpcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZyZW0sIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xcbiAzMzg6XFx0XFx0XFx0aWYgKHJjdV9hY2Nlc3NfcG9pbnRlcihzZGF0YS1cXHUwMDNlbGlua1tsaW5rX2lkXSkgIT0gXFx1MDAyNnNkYXRhLVxcdTAwM2VkZWZsaW5rKSB7XFxuIDMzOTpcXHRcXHRcXHRcXHQvKlxcbiAzNDA6XFx0XFx0XFx0XFx0ICogd2UgbXVzdCBoYXZlIGFsbG9jYXRlZCB0aGUgZGF0YSB0aHJvdWdoIHRoaXMgcGF0aCBzb1xcbiAzNDE6XFx0XFx0XFx0XFx0ICogd2Uga25vdyB3ZSBjYW4gZnJlZSBib3RoIGF0IHRoZSBzYW1lIHRpbWVcXG4gMzQyOlxcdFxcdFxcdFxcdCAqL1xcbiAzNDM6XFx0XFx0XFx0XFx0dG9fZnJlZVtsaW5rX2lkXSA9IGNvbnRhaW5lcl9vZihyY3VfYWNjZXNzX3BvaW50ZXIoc2RhdGEtXFx1MDAzZWxpbmtbbGlua19pZF0pLFxcbiAzNDQ6XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0dHlwZW9mKCpsaW5rc1tsaW5rX2lkXSksXFxuIDM0NTpcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkYXRhKTtcXG4gMzQ2OlxcdFxcdFxcdH1cXG4gMzQ3OlxcdFxcbiAzNDg6XFx0XFx0XFx0UkNVX0lOSVRfUE9JTlRFUihzZGF0YS1cXHUwMDNlbGlua1tsaW5rX2lkXSwgTlVMTCk7XFxuIDM0OTpcXHRcXHRcXHRSQ1VfSU5JVF9QT0lOVEVSKHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mW2xpbmtfaWRdLCBOVUxMKTtcXG4gMzUwOlxcdFxcdH1cXG4gMzUxOlxcdFxcbiAzNTI6XFx0XFx0aWYgKCFvbGRfbGlua3MpXFxuIDM1MzpcXHRcXHRcXHRpZWVlODAyMTFfZGVidWdmc19yZWNyZWF0ZV9uZXRkZXYoc2RhdGEsIHRydWUpO1xcbiAzNTQ6XFx0XFxuIDM1NTpcXHRcXHQvKiBsaW5rIHRoZW0gaW50byBkYXRhIHN0cnVjdHVyZXMgKi9cXG4gMzU2OlxcdFxcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXFx1MDAyNmFkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuIDM1NzpcXHRcXHRcXHRXQVJOX09OKCF1c2VfZGVmbGluayBcXHUwMDI2XFx1MDAyNlxcbiAzNTg6XFx0XFx0XFx0XFx0cmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVxcdTAwM2VsaW5rW2xpbmtfaWRdKSA9PSBcXHUwMDI2c2RhdGEtXFx1MDAzZWRlZmxpbmspO1xcbiAzNTk6XFx0XFxuIDM2MDpcXHRcXHRcXHRsaW5rID0gbGlua3NbbGlua19pZF07XFxuIDM2MTpcXHRcXHRcXHRpZWVlODAyMTFfbGlua19pbml0KHNkYXRhLCBsaW5rX2lkLCBcXHUwMDI2bGluay1cXHUwMDNlZGF0YSwgXFx1MDAyNmxpbmstXFx1MDAzZWNvbmYpO1xcbiAzNjI6XFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfc2V0dXAoXFx1MDAyNmxpbmstXFx1MDAzZWRhdGEpO1xcbiAzNjM6XFx0XFx0XFx0aWVlZTgwMjExX3NldF93bW1fZGVmYXVsdChcXHUwMDI2bGluay1cXHUwMDNlZGF0YSwgdHJ1ZSwgbm9uX3N0YSk7XFxuIDM2NDpcXHRcXHR9XFxuIDM2NTpcXHRcXG4gMzY2OlxcdFxcdGlmIChuZXdfbGlua3MgPT0gMClcXG4gMzY3OlxcdFxcdFxcdGllZWU4MDIxMV9saW5rX2luaXQoc2RhdGEsIC0xLCBcXHUwMDI2c2RhdGEtXFx1MDAzZWRlZmxpbmssXFxuIDM2ODpcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnNkYXRhLVxcdTAwM2V2aWYuYnNzX2NvbmYpO1xcbiAzNjk6XFx0XFxuIDM3MDpcXHRcXHRyZXQgPSBpZWVlODAyMTFfY2hlY2tfZHVwX2xpbmtfYWRkcnMoc2RhdGEpO1xcbiAzNzE6XFx0XFx0aWYgKCFyZXQpIHtcXG4gMzcyOlxcdFxcdFxcdC8qIGZvciBrZXlzIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gdW5kbyB0aGlzICovXFxuIDM3MzpcXHRcXHRcXHRpZWVlODAyMTFfdGVhcl9kb3duX2xpbmtzKHNkYXRhLCB0b19mcmVlLCByZW0pO1xcbiAzNzQ6XFx0XFxuIDM3NTpcXHRcXHRcXHRpZWVlODAyMTFfc2V0X3ZpZl9saW5rc19iaXRtYXBzKHNkYXRhLCBuZXdfbGlua3MsIGRvcm1hbnRfbGlua3MpO1xcbiAzNzY6XFx0XFxuIDM3NzpcXHRcXHRcXHQvKiB0ZWxsIHRoZSBkcml2ZXIgKi9cXG4gMzc4OlxcdFxcdFxcdGlmIChzZGF0YS1cXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTilcXG4gMzc5OlxcdFxcdFxcdFxcdHJldCA9IGRydl9jaGFuZ2VfdmlmX2xpbmtzKHNkYXRhLVxcdTAwM2Vsb2NhbCwgc2RhdGEsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjM5OjAyLjk3MTQ1MTYzNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTI2Nzk4MDgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqQW5hbHl6aW5nIHRoZSBGdW5jdGlvbidzIENvbnRleHQqKlxuXG5SaWdodCwgc28gSSd2ZSBqdXN0IGJlZW4gcHJvbXB0ZWQgdG8gYXNzZXNzIHNvbWUgY29kZSBvciBhIGRlc2NyaXB0aW9uIG9mIGEgZnVuY3Rpb24uIFRoZSBpbW1lZGlhdGUgdGhvdWdodCBpcywgKkkgbmVlZCBtb3JlIGluZm9ybWF0aW9uKi4gSSdtIG5vdCBnb2luZyB0byBqdW1wIHRvIGFueSBjb25jbHVzaW9ucyBiYXNlZCBvbiBqdXN0IGEgc25pcHBldC4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IHRoZSBtb3N0IGVmZmljaWVudCB3YXkgdG8gdW5kZXJzdGFuZCBpdHMgcHVycG9zZSBhbmQgaW5uZXIgd29ya2luZ3MgaXMgdG8gc2VlIHRoZSB3aG9sZSB0aGluZywgb3IgYXQgbGVhc3QgYSBzaWduaWZpY2FudCBwb3J0aW9uIG9mIGl0LiBJIHdhbnQgdG8gbG9vayBhdCB0aGUgc3Vycm91bmRpbmcgY29kZSwgdGhlIGRhdGEgaXQgb3BlcmF0ZXMgb24sIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJyb2FkZXIgc3lzdGVtLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZW50cnkgcG9pbnRzLCBhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGhpcyBcIkxldCdzIHJlYWQgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uXCIgaXMgY3J1Y2lhbDsgSSB1bmRlcnN0YW5kIHRoZSBpbXBvcnRhbmNlIG9mIGNvbXBsZXRlIGNvbnRleHQgdG8gbWFrZSBhIHNvdW5kIGV2YWx1YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMDQxLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOTowNi4wOTgyNTIyMzdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI5ODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9saW5rLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzgwLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDM4MDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBvbGRfbGlua3MgXFx1MDAyNiBvbGRfYWN0aXZlLFxcbiAzODE6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgbmV3X2xpbmtzIFxcdTAwMjYgc2RhdGEtXFx1MDAzZXZpZi5hY3RpdmVfbGlua3MsXFxuIDM4MjpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBvbGQpO1xcbiAzODM6XFx0XFx0XFx0aWYgKCFuZXdfbGlua3MpXFxuIDM4NDpcXHRcXHRcXHRcXHRpZWVlODAyMTFfZGVidWdmc19yZWNyZWF0ZV9uZXRkZXYoc2RhdGEsIGZhbHNlKTtcXG4gMzg1OlxcdFxcbiAzODY6XFx0XFx0XFx0aWYgKHNkYXRhLVxcdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUClcXG4gMzg3OlxcdFxcdFxcdFxcdGllZWU4MDIxMV91cGRhdGVfYXB2bGFuX2xpbmtzKHNkYXRhKTtcXG4gMzg4OlxcdFxcdH1cXG4gMzg5OlxcdFxcbiAzOTA6XFx0XFx0LypcXG4gMzkxOlxcdFxcdCAqIElnbm9yZSBlcnJvcnMgaWYgd2UgYXJlIG9ubHkgcmVtb3ZpbmcgbGlua3MgYXMgcmVtb3ZhbCBzaG91bGRcXG4gMzkyOlxcdFxcdCAqIGFsd2F5cyBzdWNjZWVkXFxuIDM5MzpcXHRcXHQgKi9cXG4gMzk0OlxcdFxcdGlmICghbmV3X2xpbmtzKVxcbiAzOTU6XFx0XFx0XFx0cmV0ID0gMDtcXG4gMzk2OlxcdFxcbiAzOTc6XFx0XFx0aWYgKHJldCkge1xcbiAzOTg6XFx0XFx0XFx0LyogcmVzdG9yZSBjb25maWcgKi9cXG4gMzk5OlxcdFxcdFxcdG1lbWNweShzZGF0YS1cXHUwMDNlbGluaywgb2xkX2RhdGEsIHNpemVvZihvbGRfZGF0YSkpO1xcbiA0MDA6XFx0XFx0XFx0bWVtY3B5KHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcXG4gNDAxOlxcdFxcdFxcdGllZWU4MDIxMV9zZXRfdmlmX2xpbmtzX2JpdG1hcHMoc2RhdGEsIG9sZF9saW5rcywgZG9ybWFudF9saW5rcyk7XFxuIDQwMjpcXHRcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xcbiA0MDM6XFx0XFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXFx1MDAyNmxpbmtzW2xpbmtfaWRdLVxcdTAwM2VkYXRhKTtcXG4gNDA0OlxcdFxcdFxcdFxcdGllZWU4MDIxMV9saW5rX3N0b3AoXFx1MDAyNmxpbmtzW2xpbmtfaWRdLVxcdTAwM2VkYXRhKTtcXG4gNDA1OlxcdFxcdFxcdH1cXG4gNDA2OlxcdFxcdFxcdC8qIGFuZCBmcmVlIChvbmx5KSB0aGUgbmV3bHkgYWxsb2NhdGVkIGxpbmtzICovXFxuIDQwNzpcXHRcXHRcXHRtZW1zZXQodG9fZnJlZSwgMCwgc2l6ZW9mKGxpbmtzKSk7XFxuIDQwODpcXHRcXHRcXHRnb3RvIGZyZWU7XFxuIDQwOTpcXHRcXHR9XFxuIDQxMDpcXHRcXG4gNDExOlxcdFxcdC8qIHRyeSB0byByZW1vdmUgbGlua3MgdGhhdCBhcmUgbm93IGludmFsaWQgZnJvbSAoTUxPKSBzdGF0aW9ucyAqL1xcbiA0MTI6XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeShzdGEsIFxcdTAwMjZzZGF0YS1cXHUwMDNlbG9jYWwtXFx1MDAzZXN0YV9saXN0LCBsaXN0KSB7XFxuIDQxMzpcXHRcXHRcXHR1bnNpZ25lZCBsb25nIHJlbV9saW5rcyA9IHN0YS1cXHUwMDNlc3RhLnZhbGlkX2xpbmtzIFxcdTAwMjYgc3RhX3JlbTtcXG4gNDE0OlxcdFxcbiA0MTU6XFx0XFx0XFx0aWYgKHN0YS1cXHUwMDNlc2RhdGEgIT0gc2RhdGEpXFxuIDQxNjpcXHRcXHRcXHRcXHRjb250aW51ZTtcXG4gNDE3OlxcdFxcbiA0MTg6XFx0XFx0XFx0LypcXG4gNDE5OlxcdFxcdFxcdCAqIHNraXAgc3RhdGlvbnMgdGhhdCB3b3VsZCBoYXZlIG5vIGxpbmtzIGxlZnQsXFxuIDQyMDpcXHRcXHRcXHQgKiB0aG9zZSB3aWxsIGJlIHJlbW92ZWQgY29tcGxldGVseSBsYXRlclxcbiA0MjE6XFx0XFx0XFx0ICovXFxuIDQyMjpcXHRcXHRcXHRpZiAoc3RhLVxcdTAwM2VzdGEudmFsaWRfbGlua3MgPT0gcmVtX2xpbmtzKVxcbiA0MjM6XFx0XFx0XFx0XFx0Y29udGludWU7XFxuIDQyNDpcXHRcXG4gNDI1OlxcdFxcdFxcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXFx1MDAyNnJlbV9saW5rcyxcXG4gNDI2OlxcdFxcdFxcdFxcdFxcdCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpXFxuIDQyNzpcXHRcXHRcXHRcXHRpZWVlODAyMTFfc3RhX3JlbW92ZV9saW5rKHN0YSwgbGlua19pZCk7XFxuIDQyODpcXHRcXHR9XFxuIDQyOTpcXHRcXG4gNDMwOlxcdFxcdC8qXFxuIDQzMTpcXHRcXHQgKiBSZW1vdmUgc3RhdGlvbnMgdXNpbmcgYW55IHJlbW92ZWQgbGlua3MuIE5vdGUgdGhhdCBkdWVcXG4gNDMyOlxcdFxcdCAqIHRvIHRoZSBhYm92ZSBzdGF0aW9uIGxpbmsgcmVtb3ZhbCwgdGhpcyBvbmx5IHJlbW92ZXNcXG4gNDMzOlxcdFxcdCAqIHN0YXRpb25zIHRoYXQgd2VyZSBza2lwcGVkIGFib3ZlIGJlY2F1c2UgdGhleSdkIGhhdmUgbm9cXG4gNDM0OlxcdFxcdCAqIGxpbmtzIGxlZnQgYWZ0ZXIgbGluayByZW1vdmFsLlxcbiA0MzU6XFx0XFx0ICovXFxuIDQzNjpcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZzdGFfcmVtLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpXFxuIDQzNzpcXHRcXHRcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgbGlua19pZCk7XFxuIDQzODpcXHRcXG4gNDM5OlxcdFxcdC8qIHVzZSBkZWZsaW5rL2Jzc19jb25mIGFnYWluIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGFyZSBubyBtb3JlIGxpbmtzICovXFxuIDQ0MDpcXHRcXHR1c2VfZGVmbGluayA9IG5ld19saW5rcyA9PSAwO1xcbiA0NDE6XFx0XFxuIDQ0MjpcXHRcXHRnb3RvIGRlaW5pdDtcXG4gNDQzOlxcdGZyZWU6XFxuIDQ0NDpcXHRcXHQvKiBpZiB3ZSBmYWlsZWQgZHVyaW5nIGFsbG9jYXRpb24sIG9ubHkgZnJlZSBhbGwgKi9cXG4gNDQ1OlxcdFxcdGZvciAobGlua19pZCA9IDA7IGxpbmtfaWQgXFx1MDAzYyBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1M7IGxpbmtfaWQrKykge1xcbiA0NDY6XFx0XFx0XFx0a2ZyZWUobGlua3NbbGlua19pZF0pO1xcbiA0NDc6XFx0XFx0XFx0bGlua3NbbGlua19pZF0gPSBOVUxMO1xcbiA0NDg6XFx0XFx0fVxcbiA0NDk6XFx0ZGVpbml0OlxcbiA0NTA6XFx0XFx0aWYgKHVzZV9kZWZsaW5rKVxcbiA0NTE6XFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfaW5pdChzZGF0YSwgLTEsIFxcdTAwMjZzZGF0YS1cXHUwMDNlZGVmbGluayxcXG4gNDUyOlxcdFxcdFxcdFxcdFxcdCAgICBcXHUwMDI2c2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZik7XFxuIDQ1MzpcXHRcXHRyZXR1cm4gcmV0O1xcbiA0NTQ6XFx0fVxcbiA0NTU6XFx0XFxuIDQ1NjpcXHRpbnQgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuIDQ1NzpcXHRcXHRcXHRcXHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpXFxuIDQ1ODpcXHR7XFxuIDQ1OTpcXHRcXHRzdHJ1Y3QgbGlua19jb250YWluZXIgKmxpbmtzW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XFxuIDQ2MDpcXHRcXHRpbnQgcmV0O1xcbiA0NjE6XFx0XFxuIDQ2MjpcXHRcXHRyZXQgPSBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzZGF0YSwgbGlua3MsIG5ld19saW5rcyxcXG4gNDYzOlxcdFxcdFxcdFxcdFxcdFxcdCBkb3JtYW50X2xpbmtzKTtcXG4gNDY0OlxcdFxcdGllZWU4MDIxMV9mcmVlX2xpbmtzKHNkYXRhLCBsaW5rcyk7XFxuIDQ2NTpcXHRcXG4gNDY2OlxcdFxcdHJldHVybiByZXQ7XFxuIDQ2NzpcXHR9XFxuIDQ2ODpcXHRcXG4gNDY5OlxcdHN0YXRpYyBpbnQgX2llZWU4MDIxMV9zZXRfYWN0aXZlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiA0NzA6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHUxNiBhY3RpdmVfbGlua3MpXFxuIDQ3MTpcXHR7XFxuIDQ3MjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmZzW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XFxuIDQ3MzpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLVxcdTAwM2Vsb2NhbDtcXG4gNDc0OlxcdFxcdHUxNiBvbGRfYWN0aXZlID0gc2RhdGEtXFx1MDAzZXZpZi5hY3RpdmVfbGlua3M7XFxuIDQ3NTpcXHRcXHR1bnNpZ25lZCBsb25nIHJlbSA9IG9sZF9hY3RpdmUgXFx1MDAyNiB+YWN0aXZlX2xpbmtzO1xcbiA0NzY6XFx0XFx0dW5zaWduZWQgbG9uZyBhZGQgPSBhY3RpdmVfbGlua3MgXFx1MDAyNiB+b2xkX2FjdGl2ZTtcXG4gNDc3OlxcdFxcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xcbiA0Nzg6XFx0XFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuIDQ3OTpcXHRcXHRpbnQgcmV0LCBpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOTowNi4wOTg0ODQ3NDdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA5MjQxMDI0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldyBFcnJvciBDbGVhbnVwIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGVycm9yIGNsZWFudXAgd2l0aGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgZm9yIHRoZXNlIGZyZXNobHkgYWRkZWQgbGlua3MuIFRoYXQncyBhIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQsIGRlZmluaXRlbHkgd29ydGggbG9va2luZyBhdC4gQW5kLCBJIGtub3cgZm9yIGEgZmFjdCB0aGF0IGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXMgYSByZWFjaGFibGUgZnVuY3Rpb24sIHNvIHdlIGNhbiBjb25zaWRlciB0aGF0IGFzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBmdXp6ZWQuXG5cbkdpdmVuIHRoaXMsIEknbSB0aGlua2luZyB3ZSBzaG91bGQgemVybyBpbiBvbiBmdXp6aW5nIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgYW5kIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AuIEhvbGQgb24sIGxldCBtZSBxdWlja2x5IGNvbmZpcm0gaWYgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBpcyBzdGF0aWMuLi4gWWVwLCBpdCBpcy4gQWxyaWdodCwgc28gdGhlIHJlYWwgZm9jdXMgc2hvdWxkIGJlIG9uIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgdGhlbi5cblxuTm93LCB3aGF0IGFib3V0IHRoZSBjb25maWcgb3B0aW9ucz8gVGhlIHByaW1hcnkgb25lIHNlZW1zIHRvIGJlIGBNQUM4MDIxMWAsIGJ1dCBJJ2xsIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBvdGhlcnMuIE9rYXksIG1heWJlIGBNQUM4MDIxMV9ERUJVR0ZTYD8gVGhlIHBhdGNoICpkb2VzKiBjYWxsIGBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZWAsIGJ1dCBpdCBhbHNvIGNhbGxzIGBpZWVlODAyMTFfbGlua19zdG9wYCwgc28gdGhhdCBtaWdodCBiZSByZWxldmFudC4gQmVzdCB0byBkb3VibGUtY2hlY2sgdGhhdCBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGZ1bmN0aW9uIGRlZmluaXRpb24sIGp1c3QgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM5NzUsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOToxMS4xOTA4OTc2NDVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyODgyMTcxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTEwNDM9dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX2FkZChzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTEwNjQtXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6MTA2NTp2b2lkIGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rKVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTEwNjYte1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg9MTk9dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX2FkZChzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MjA6dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMjEtXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaD0zND1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMzUte31cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaDozNjpzdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMzcte31cXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9MTkxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV90ZWFyX2Rvd25fbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTIwNi1cXHRcXHRpZWVlODAyMTFfcmVtb3ZlX2xpbmtfa2V5cyhsaW5rLCBcXHUwMDI2a2V5cyk7XFxubmV0L21hYzgwMjExL2xpbmsuYzoyMDc6XFx0XFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUobGluayk7XFxubmV0L21hYzgwMjExL2xpbmsuYy0yMDgtXFx0XFx0aWVlZTgwMjExX2xpbmtfc3RvcChsaW5rKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9Mjg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTQwMi1cXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDAzOlxcdFxcdFxcdGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKFxcdTAwMjZsaW5rc1tsaW5rX2lkXS1cXHUwMDNlZGF0YSk7XFxubmV0L21hYzgwMjExL2xpbmsuYy00MDQtXFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfc3RvcChcXHUwMDI2bGlua3NbbGlua19pZF0tXFx1MDAzZWRhdGEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOToxMS4zMTk3Mjg2MjRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODEzMzAzMDI4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgaXQncyB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IGhlcmUgaXMgdG8gc2VlIGlmIGl0IG1vZGlmaWVzIGNvZGUgdGhhdCdzIHJlYWNoYWJsZSBhbmQgcG90ZW50aWFsbHkgaW50cm9kdWNlcyBuZXcgZnV6emluZyB0YXJnZXRzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBzaW5jZSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGlzIGEgbm8tb3Agd2hlbiBgTUFDODAyMTFfREVCVUdGU2AgaXNuJ3Qgc2V0LCBhbmQgYGllZWU4MDIxMV9saW5rX3N0b3BgIGFsd2F5cyBydW5zLCB3ZSBsaWtlbHkgZG9uJ3QgbmVlZCB0byBjb25zaWRlciB0aGUgZGVidWdmcyBvcHRpb24uIGBNQUM4MDIxMWAgaXRzZWxmIGlzIHRoZSBjcnVjaWFsIGNvbXBvbmVudCBoZXJlLlxuXG5NeSBzdHJhdGVneSBpcyB0byBjb25maXJtIGlmIGBNQUM4MDIxMWAgaXMgZW5vdWdoLCBvciBpZiB3ZSByZXF1aXJlIGBNQUM4MDIxMV9IV1NJTWAgb3Igc29tZXRoaW5nIHNpbWlsYXIgZm9yIHRoZSBjb2RlIHRvIGJlIGFjY2Vzc2libGUsIHdoaWNoIGlzIGVzc2VudGlhbCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgd29ydGggZnV6emluZy4gSSd2ZSBwaW5wb2ludGVkIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgYXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoZSBsb2dpYyBpbnZvbHZlZCBhbmQgSSdtIGFkZGluZyBpdCwgYWxvbmcgd2l0aCBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgLCB0byBgRm9jdXNTeW1ib2xzYC5cblxuTm93LCByZXZpZXdpbmcgdGhlIHByb21wdCdzIGNyaXRlcmlhIGZvciBgV29ydGhGdXp6aW5nPWZhbHNlYCwgdGhpcyBwYXRjaCBzZWVtcyB0byBhdm9pZCB0aG9zZSBwaXRmYWxscy4gSXQgZGVhbHMgd2l0aCBjb3JlIG1hYzgwMjExIGxvZ2ljLCB3aGljaCBJIGtub3cgaXMgcmVhY2hhYmxlIGV2ZW4gaW4gYSBzaW11bGF0ZWQgaGFyZHdhcmUgZW52aXJvbm1lbnQgbGlrZSBgbWFjODAyMTFfaHdzaW1gLiBDcnVjaWFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcmVzb3VyY2UgbGVhayBvciBzdGF0ZSBpbmNvbnNpc3RlbmN5IG9uIGFuIGVycm9yIHBhdGgsIGEgY2xhc3NpYyBhcmVhIGZvciBwb3RlbnRpYWwgZnV6emluZy4gR2l2ZW4gdGhpcywgSSdtIGNvbmZpZGVudCBpbiBzZXR0aW5nIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbkZvciB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uLCBJJ2xsIGVuYWJsZSBgTUFDODAyMTFgLCBhbmQgbXkgc3BlY2lmaWMgZm9jdXMgd2lsbCBiZSBvbiB0aGUgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBhbmQgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBmdW5jdGlvbnMuIEkgcXVpY2tseSBkb3VibGUtY2hlY2tlZCBpZiBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGlzIHN0YXRpYy4gSXQgaXMsIGJ1dCB0aGF0J3Mgbm90IGEgZGVhbC1icmVha2VyLiBTeXprYWxsZXIgY2FuIHN0aWxsIHJlYWNoIHRob3NlIGZ1bmN0aW9ucyBpZiB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBjYWxsIHRyZWUsIHNvIEknbSBrZWVwaW5nIGJvdGggYXMgdGFyZ2V0cy4gVGltZSB0byBzZXQgdGhlc2UgcmVzdWx0cyBhbmQgbW92ZSBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU0MDAsIk91dHB1dFRva2VucyI6MTQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjM5OjE5LjQ1Mjc2MjY1MVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MzIwODc4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfdmlmX3NldF9saW5rc1wiLFxuICAgIFwiaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGNsZWFudXAgaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCB0byBzdG9wIGFuZCByZW1vdmUgZGVidWdmcyBmb3IgbmV3bHkgYWxsb2NhdGVkIGxpbmtzIGlmIGFuIGVycm9yIG9jY3Vycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIHN1YnN5c3RlbSwgcmVhY2hhYmxlIHZpYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIG1hYzgwMjExX2h3c2ltLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NcIixcbiAgICBcImllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowmzzt5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-12 10:16:59 +0000 UTC FinishedAt: 2026-07-12 10:39:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "44696aa3a489d2baf58efa61b37833f100072bee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "44696aa3a489d2baf58efa61b37833f100072bee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC80211" ], "series_id": "a5d991cd-2db8-45ae-a84f-764dd689efb4" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_vif_set_links", "ieee80211_vif_update_links" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDozODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE2YjBkNDZjZTM1NGQ0Mjk2YmZlZWU4ZDUyMTMzMmI3OGUxYmM1Y2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAxMiAxMDozODo0MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbGluay5jIGIvbmV0L21hYzgwMjExL2xpbmsuY1xuaW5kZXggZDA1MzUyNjg5NjJjN2EuLmRjNjgxNDRkYzM2M2FmIDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL2xpbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL2xpbmsuY1xuQEAgLTM5OSw2ICYjNDM7Mzk5LDEwIEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4gXHRcdG1lbWNweShzZGF0YS1cdTAwM2VsaW5rLCBvbGRfZGF0YSwgc2l6ZW9mKG9sZF9kYXRhKSk7XG4gXHRcdG1lbWNweShzZGF0YS1cdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcbiBcdFx0aWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzZGF0YSwgb2xkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcbiYjNDM7XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbiYjNDM7XHRcdFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4mIzQzO1x0XHRcdGllZWU4MDIxMV9saW5rX3N0b3AoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4mIzQzO1x0XHR9XG4gXHRcdC8qIGFuZCBmcmVlIChvbmx5KSB0aGUgbmV3bHkgYWxsb2NhdGVkIGxpbmtzICovXG4gXHRcdG1lbXNldCh0b19mcmVlLCAwLCBzaXplb2YobGlua3MpKTtcbiBcdFx0Z290byBmcmVlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTZiMGQ0NmNlMzU0ZDQyOTZiZmVlZThkNTIxMzMyYjc4ZTFiYzVjYwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gSnVsIDEyIDEwOjM4OjQyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2xpbmsuYyBiL25ldC9tYWM4MDIxMS9saW5rLmMKaW5kZXggZDA1MzUyNjg5NjJjN2EuLmRjNjgxNDRkYzM2M2FmIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbGluay5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9saW5rLmMKQEAgLTM5OSw2ICYjNDM7Mzk5LDEwIEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsCiAJCW1lbWNweShzZGF0YS0mZ3Q7bGluaywgb2xkX2RhdGEsIHNpemVvZihvbGRfZGF0YSkpOwogCQltZW1jcHkoc2RhdGEtJmd0O3ZpZi5saW5rX2NvbmYsIG9sZCwgc2l6ZW9mKG9sZCkpOwogCQlpZWVlODAyMTFfc2V0X3ZpZl9saW5rc19iaXRtYXBzKHNkYXRhLCBvbGRfbGlua3MsIGRvcm1hbnRfbGlua3MpOwomIzQzOwkJZm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCAmYW1wO2FkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7CiYjNDM7CQkJaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoJmFtcDtsaW5rc1tsaW5rX2lkXS0mZ3Q7ZGF0YSk7CiYjNDM7CQkJaWVlZTgwMjExX2xpbmtfc3RvcCgmYW1wO2xpbmtzW2xpbmtfaWRdLSZndDtkYXRhKTsKJiM0MzsJCX0KIAkJLyogYW5kIGZyZWUgKG9ubHkpIHRoZSBuZXdseSBhbGxvY2F0ZWQgbGlua3MgKi8KIAkJbWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpOwogCQlnb3RvIGZyZWU7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzAKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBMaW5rIFVwZGF0ZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9tYWM4MDIxMS9saW5rLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgZnVuY3Rpb24uIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCBhbiBlcnJvciBoYW5kbGluZyBzY2VuYXJpby4gVGhlIHBhdGNoIGFkZHMgYSBjbGVhbnVwIGxvb3AgdG8gaGFuZGxlIHBvdGVudGlhbCBlcnJvcnMgdGhhdCBtaWdodCBhcmlzZSB3aGlsZSB1cGRhdGluZyBsaW5rcy4KCkkgc2VlIGEgYGZvcl9lYWNoX3NldF9iaXRgIGxvb3Agd2l0aGluIHRoZSBlcnJvciBwYXRoLCB1c2luZyB0aGUgYGFkZGAgYml0bWFwIHRvIGl0ZXJhdGUgdGhyb3VnaCBuZXdseSBhZGRlZCBsaW5rcy4gSW5zaWRlIHRoZSBsb29wLCBpdCBjYWxscyBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGFuZCBgaWVlZTgwMjExX2xpbmtfc3RvcGAgb24gdGhvc2UgbGlua3MuIFRoaXMgaXMgYSBjcnVjaWFsIHN0ZXAgZm9yIHByZXZlbnRpbmcgcmVzb3VyY2UgbGVha3MgYW5kIGVuc3VyaW5nIGEgY2xlYW4gc3RhdGUgaWYgdGhlIHVwZGF0ZSBwcm9jZXNzIGZhaWxzLiBJdCYjMzk7cyBhIHNvbGlkIGRlZmVuc2l2ZSBtZWFzdXJlLCBnaXZlbiB0aGUgY29tcGxleGl0eSBvZiBsaW5rIG1hbmFnZW1lbnQgaW4gdGhpcyBhcmVhLiBJdCBhbHNvIHN1Z2dlc3RzIHRoYXQgbGluayBjcmVhdGlvbiBpcyBhIG11bHRpLXN0ZXAgb3BlcmF0aW9uLCBhbmQgdGhpcyBoYW5kbGVzIHRoZSByb2xsYmFjaywgc28gdG8gc3BlYWsuCgpOb3csIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGZ1bmN0aW9uIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCBvZiB0aGlzIGVycm9yIGhhbmRsaW5nIHRvIGZ1bGx5IGFwcHJlY2lhdGUgaXRzIGltcGxpY2F0aW9ucy4gSSYjMzk7bGwgbmVlZCB0byBzZWUgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSwgaXRzIGRhdGEgc3RydWN0dXJlcywgYW5kIHRoZSBwb3NzaWJsZSBwb2ludHMgd2hlcmUgYW4gZXJyb3IgY291bGQgYXJpc2UgdG8gYXNzZXNzIHRoZSBlZmZlY3RpdmVuZXNzIGFuZCBjb3JyZWN0bmVzcyBvZiB0aGlzIHBhdGNoIGluIGl0cyBlbnRpcmV0eS4gSXQmIzM5O3MgYSB3ZWxsLXdyaXR0ZW4gYXBwcm9hY2gsIGJ1dCBjb250ZXh0IGlzIGtpbmcsIGFzIGFsd2F5cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9saW5rLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2xpbmsuYz0yNTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbGluay5jLTI4Ni1cbm5ldC9tYWM4MDIxMS9saW5rLmM6Mjg3OnN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvbGluay5jLTI4OC1cdFx0XHRcdCAgICAgIHN0cnVjdCBsaW5rX2NvbnRhaW5lciAqKnRvX2ZyZWUsXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYz00NTY9aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYxLVxubmV0L21hYzgwMjExL2xpbmsuYzo0NjI6XHRyZXQgPSBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzZGF0YSwgbGlua3MsIG5ld19saW5rcyxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYzLVx0XHRcdFx0XHQgZG9ybWFudF9saW5rcyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg1MQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlRyYWNpbmcgdGhlIExpbmthZ2Ugb2YgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYC4gSSBrbm93IGZyb20gdGhlIHN0cnVjdHVyZSB0aGF0IGl0JiMzOTtzIGNhbGxlZCBieSBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dCBvZiB0aGlzIGNhbGwgY2hhaW4uIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBpdHNlbGYgaXMgYmVpbmcgaW52b2tlZC4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbGluZyBjb250ZXh0cyB3aWxsIGdpdmUgbWUgdGhlIGJlc3QgaW5zaWdodCBpbnRvIGl0cyBwdXJwb3NlIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBvdmVyYWxsIElFRUUgODAyLjExIHN0YWNrIG9wZXJhdGlvbnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0yNzI0PXN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9zdGFfNGFkZHIoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTI3NTMtXG5uZXQvbWFjODAyMTEvY2ZnLmM6Mjc1NDpcdFx0ZXJyID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld19saW5rcywgMCk7XG5uZXQvbWFjODAyMTEvY2ZnLmMtMjc1NS1cdFx0aWYgKGVycikge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz01ODAxPXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9pbnRmX2xpbmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTgwOC1cbm5ldC9tYWM4MDIxMS9jZmcuYzo1ODA5Olx0cmV0dXJuIGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB3ZGV2LVx1MDAzZXZhbGlkX2xpbmtzLCAwKTtcbm5ldC9tYWM4MDIxMS9jZmcuYy01ODEwLX1cbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmM9NTgxMj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVsX2ludGZfbGluayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy01ODI1LVx0ICovXG5uZXQvbWFjODAyMTEvY2ZnLmM6NTgyNjpcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfbGlua3MsIDApO1xubmV0L21hYzgwMjExL2NmZy5jLTU4MjctfVxuLS1cbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTIyMTQ9dm9pZCBpZWVlODAyMTFfbGlua19zdG9wKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rKTtcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oOjIyMTU6aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIxNi1cdFx0XHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MjIxNz1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX3ZpZl9jbGVhcl9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTIyMTgte1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjIxOTpcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCAwLCAwKTtcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTIyMjAtfVxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9MTU9c3RhdGljIHZvaWQgaWVlZTgwMjExX3VwZGF0ZV9hcHZsYW5fbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00OS1cbm5ldC9tYWM4MDIxMS9saW5rLmM6NTA6XHRcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHZsYW4sIGFkZCwgMCk7XG5uZXQvbWFjODAyMTEvbGluay5jLTUxLVxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9NTk9dm9pZCBpZWVlODAyMTFfYXB2bGFuX2xpbmtfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy03Ni1cbm5ldC9tYWM4MDIxMS9saW5rLmM6Nzc6XHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X2xpbmtzLCAwKTtcbm5ldC9tYWM4MDIxMS9saW5rLmMtNzgtfVxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9Mjg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00NTUtXG5uZXQvbWFjODAyMTEvbGluay5jOjQ1NjppbnQgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvbGluay5jLTQ1Ny1cdFx0XHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpXG4tLVxubmV0L21hYzgwMjExL21sbWUuYz00NTA4PXN0YXRpYyB2b2lkIGllZWU4MDIxMV9zZXRfZGlzYXNzb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy00NzUyLVxubmV0L21hYzgwMjExL21sbWUuYzo0NzUzOlx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xubmV0L21hYzgwMjExL21sbWUuYy00NzU0LVxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9NTI2MT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfZGVzdHJveV9hdXRoX2RhdGEoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy01Mjg1LVx0XHRpZWVlODAyMTFfbGlua19yZWxlYXNlX2NoYW5uZWwoXHUwMDI2c2RhdGEtXHUwMDNlZGVmbGluayk7XG5uZXQvbWFjODAyMTEvbWxtZS5jOjUyODY6XHRcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCAwLCAwKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTI4Ny1cdH1cbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTUzMDA9c3RhdGljIHZvaWQgaWVlZTgwMjExX2Rlc3Ryb3lfYXNzb2NfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTUzNDItXHRcdGllZWU4MDIxMV9saW5rX3JlbGVhc2VfY2hhbm5lbChcdTAwMjZzZGF0YS1cdTAwM2VkZWZsaW5rKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NTM0MzpcdFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xubmV0L21hYzgwMjExL21sbWUuYy01MzQ0LVx0fVxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9NjkyND1zdGF0aWMgYm9vbCBpZWVlODAyMTFfYXNzb2Nfc3VjY2VzcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTY5OTUtXG5uZXQvbWFjODAyMTEvbWxtZS5jOjY5OTY6XHRcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgZG9ybWFudF9saW5rcyk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTY5OTctXHR9XG4tLVxubmV0L21hYzgwMjExL21sbWUuYy03MDc5LVx0LyogbGlua3MgbWlnaHQgaGF2ZSBjaGFuZ2VkIGR1ZSB0byByZWplY3RlZCBvbmVzLCBzZXQgdGhlbSBhZ2FpbiAqL1xubmV0L21hYzgwMjExL21sbWUuYzo3MDgwOlx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHZhbGlkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzA4MS1cbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTc1NzE9c3RhdGljIHZvaWQgaWVlZTgwMjExX21sX3JlY29uZl93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy03NjE0LVxubmV0L21hYzgwMjExL21sbWUuYzo3NjE1Olx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld192YWxpZF9saW5rcyxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzYxNi1cdFx0XHRcdCAgICAgIG5ld19kb3JtYW50X2xpbmtzKTtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTc3MjE9c3RhdGljIGludCBpZWVlODAyMTFfdHRsbV9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy03NzU4LVxubmV0L21hYzgwMjExL21sbWUuYzo3NzU5Olx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHNkYXRhLVx1MDAzZXZpZi52YWxpZF9saW5rcyxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc2MC1cdFx0XHRcdCAgICAgIGRvcm1hbnRfbGlua3MpO1xuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9Nzc3OT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfdGlkX3RvX2xpbmtfbWFwX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc3OTEtXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc3OTI6XHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgc2RhdGEtXHUwMDNldmlmLnZhbGlkX2xpbmtzLCAwKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc5My1cdGlmIChpZWVlODAyMTFfdHRsbV9zZXRfbGlua3Moc2RhdGEsIG5ld19hY3RpdmVfbGlua3MsIG5ld19kb3JtYW50X2xpbmtzLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9NzgwMT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc19hZHZfdHRsbShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc4MjEtXHRcdFx0ICovXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc4MjI6XHRcdFx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc4MjMtXHRcdFx0XHRcdFx0ICAgICAgc2RhdGEtXHUwMDNldmlmLnZhbGlkX2xpbmtzLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9ODc5Nj1zdGF0aWMgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc190dGxtX3RlYXJkb3duKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwNi1cdHNkYXRhLVx1MDAzZXZpZi5zdXNwZW5kZWRfbGlua3MgPSAwO1xubmV0L21hYzgwMjExL21sbWUuYzo4ODA3Olx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHNkYXRhLVx1MDAzZXZpZi52YWxpZF9saW5rcyxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwOC1cdFx0XHRcdG5ld19kb3JtYW50X2xpbmtzKTtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTk1NDA9c3RhdGljIGludCBpZWVlODAyMTFfcHJlcF9jb25uZWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTU3Ny1cbm5ldC9tYWM4MDIxMS9tbG1lLmM6OTU3ODpcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfbGlua3MsIDApO1xubmV0L21hYzgwMjExL21sbWUuYy05NTc5LVx0aWYgKGVycilcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTk3NTEtXHRcdFdBUk5fT04oX19zdGFfaW5mb19kZXN0cm95KGhhdmVfc3RhKSk7XG5uZXQvbWFjODAyMTEvbWxtZS5jOjk3NTI6XHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTk3NTMtXHRyZXR1cm4gZXJyO1xuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmM9MTAyNjU9aW50IGllZWU4MDIxMV9tZ2RfYXNzb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMC1cdFx0LyogaWYgdGhlcmUgd2FzIG5vIGF1dGhlbnRpY2F0aW9uLCBzZXQgdXAgdGhlIGxpbmsgKi9cbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTA1MzE6XHRcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBCSVQoYXNzb2NfbGlua19pZCksIDApO1xubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMi1cdFx0aWYgKGVycilcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTEwODY4PWllZWU4MDIxMV9wcm9jZXNzX21sX3JlY29uZl9yZXNwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTA5ODctXG5uZXQvbWFjODAyMTEvbWxtZS5jOjEwOTg4Olx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHZhbGlkX2xpbmtzLCBzZGF0YS1cdTAwM2V2aWYuZG9ybWFudF9saW5rcyk7XG5uZXQvbWFjODAyMTEvbWxtZS5jLTEwOTg5LVx0bGlua19tYXNrID0gMDtcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExMDcwLVx0LyogbGlua3MgbWlnaHQgaGF2ZSBjaGFuZ2VkIGR1ZSB0byByZWplY3RlZCBvbmVzLCBzZXQgdGhlbSBhZ2FpbiAqL1xubmV0L21hYzgwMjExL21sbWUuYzoxMTA3MTpcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgc2RhdGEtXHUwMDNldmlmLmRvcm1hbnRfbGlua3MpO1xubmV0L21hYzgwMjExL21sbWUuYy0xMTA3Mi1cdGllZWU4MDIxMV92aWZfY2ZnX2NoYW5nZV9ub3RpZnkoc2RhdGEsIEJTU19DSEFOR0VEX01MRF9WQUxJRF9MSU5LUyk7XG4tLVxubmV0L21hYzgwMjExL21sbWUuYz0xMTMzMD1pbnQgaWVlZTgwMjExX21nZF9hc3NvY19tbF9yZWNvbmYoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYy0xMTUyMC1cbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTE1MjE6XHRcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfdmFsaWRfbGlua3MsXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExNTIyLVx0XHRcdFx0XHQgICAgICBuZXdfZG9ybWFudF9saW5rcyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjcxOQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbWFjODAyMTEgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhbmluZyB0aGluZ3MgdXAgd2l0aGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIHBvdGVudGlhbCBmYWlsdXJlIHNjZW5hcmlvcy4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgY29ycmVjdGlvbiB3aXRoaW4gdGhlIGNvcmUgbWFjODAyMTEgc3Vic3lzdGVtLiBUaGUgZGVzY3JpcHRpb24gaGludHMgYXQgYSByZXNvdXJjZSBsZWFrIG9yIGEgc2ltaWxhciBwcm9ibGVtIHJlbGF0ZWQgdG8gbGluayB1cGRhdGVzIG5vdCBjb21wbGV0aW5nIHN1Y2Nlc3NmdWxseS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7Z29vZCBjYXRjaCEmIzM0Oy4gV2UgbmVlZCB0byBiZSByb2J1c3QgYW5kIGhhbmRsZSB0aGVzZSBmYWlsdXJlIGNhc2VzIGdyYWNlZnVsbHkgdG8gYXZvaWQgYW55IGluc3RhYmlsaXR5LiBOb3cgSSBuZWVkIHRvIHF1aWNrbHkgcmV2aWV3IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIG1hYzgwMjExIHRvIHNlZSBpZiBhbnkgc3BlY2lmaWMgc2V0dGluZ3MgbWlnaHQgYmUgaW5mbHVlbmNpbmcgdGhpcyBiZWhhdmlvciBvciBpZiB0aGlzIHBhdGNoIGltcGFjdHMgYW55IG9mIG91ciB0dW5lZCBjb25maWd1cmF0aW9ucy4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGludm9sdmVkLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MTcwCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgYE1BQzgwMjExYCBMaW5rIE1hbmFnZW1lbnQqKgoKT2theSwgc28gdGhlIGNvbmZpZyBoZXJlIGlzIGRlZmluaXRlbHkgYE1BQzgwMjExYCwgd2hpY2ggbmFycm93cyB0aGluZ3MgZG93bi4gSSBzZWUgdGhhdCB0aGUgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBmdW5jdGlvbiBoYXMgYmVlbiB0b3VjaGVkLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0JiMzOTtzIGZ1enogYm90aCBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGFuZCBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgLiBUaGVzZSBzZWVtIGxpa2UgdGhlIGtleSBlbnRyeSBwb2ludHMgZm9yIG1hbmFnaW5nIGFuZCB1cGRhdGluZyBsaW5rcy4KCkkgbmVlZCB0byBxdWlja2x5IGNoZWNrIHRoZSBkZWJ1Z2ZzIHJlbW92YWw7IHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgLiBBaCwgeWVzLCBpdCBsb29rcyBsaWtlIGBNQUM4MDIxMV9ERUJVR0ZTYCBpcyByZXF1aXJlZCwgYnV0IGhleSwgYGllZWU4MDIxMV9saW5rX3N0b3BgIGlzIGFsc28gYmVpbmcgY2FsbGVkIHRoZXJlLiBUaGlzIGxvb2tzIGludGVyZXN0aW5nIGFuZCB3b3J0aCBhIGRlZXBlciBkaXZlLgoKYGBgYwoJCWZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgJmFtcDthZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykgewoJCQlpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZSgmYW1wO2xpbmtzW2xpbmtfaWRdLSZndDtkYXRhKTsKCQkJaWVlZTgwMjExX2xpbmtfc3RvcCgmYW1wO2xpbmtzW2xpbmtfaWRdLSZndDtkYXRhKTsKCQl9CmBgYAoKTm93LCB0aGUgcXVlc3Rpb24gaXMgaG93IHRvIHRlc3QgdGhpcy4gSXMgYG1hYzgwMjExX2h3c2ltYCBlbm91Z2ggZm9yIHRoaXM/IENvbnNpZGVyaW5nIHRoYXQgYG1hYzgwMjExX2h3c2ltYCAqaXMqIGEgYG1hYzgwMjExYCB1c2VyIGFuZCBpdCYjMzk7cyBjYXBhYmxlIG9mIHNpbXVsYXRpbmcgTXVsdGlwbGUgTGluayBEZXZpY2UgKE1MRCksIGl0IHNob3VsZCBiZSBmaW5lLiBJdCBpcyByZWFjaGFibGUgdmlhIGBtYWM4MDIxMV9od3NpbWAgb3IgZXZlbiB0aGUgYG5sODAyMTFgIG5ldGxpbmsgaW50ZXJmYWNlLgoKSG9sZCBvbiwgdGhlIHByb21wdCBtZW50aW9ucyBzb21ldGhpbmcgYWJvdXQgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEJ1dCB0aGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHZpYSBib3RoIGBtYWM4MDIxMV9od3NpbWAgYW5kIGBubDgwMjExYCEgSSYjMzk7bGwgaGF2ZSB0byBrZWVwIHRoYXQgY2F2ZWF0IGluIG1pbmQuCgpGaW5hbGx5LCBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgIGlzIGludm9rZWQgZHVyaW5nIGludGVyZmFjZSBjb25maWd1cmF0aW9uLCBsaW5rIGFkZGl0aW9ucywgYW5kIHRoZSBsaWtlLiBUaGF0JiMzOTtzIGEgY3J1Y2lhbCBwb2ludCwgYW5kIEkgbmVlZCB0byBmdWxseSB1bmRlcnN0YW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AuIExldCBtZSBjaGVjayBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGluIGBuZXQvbWFjODAyMTEvbGluay5jYCByaWdodCBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2xpbmsuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI4MDpcdFx0XHRXQVJOX09OKGh3ZWlnaHQxNihzZGF0YS1cdTAwM2V2aWYuYWN0aXZlX2xpbmtzKSBcdTAwM2UgMSk7XG4gMjgxOlx0XHRcdGJyZWFrO1xuIDI4MjpcdFx0ZGVmYXVsdDpcbiAyODM6XHRcdFx0V0FSTl9PTigxKTtcbiAyODQ6XHRcdH1cbiAyODU6XHR9XG4gMjg2Olx0XG4gMjg3Olx0c3RhdGljIGludCBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiAyODg6XHRcdFx0XHRcdCAgICAgIHN0cnVjdCBsaW5rX2NvbnRhaW5lciAqKnRvX2ZyZWUsXG4gMjg5Olx0XHRcdFx0XHQgICAgICB1MTYgbmV3X2xpbmtzLCB1MTYgZG9ybWFudF9saW5rcylcbiAyOTA6XHR7XG4gMjkxOlx0XHR1MTYgb2xkX2xpbmtzID0gc2RhdGEtXHUwMDNldmlmLnZhbGlkX2xpbmtzO1xuIDI5MjpcdFx0dTE2IG9sZF9hY3RpdmUgPSBzZGF0YS1cdTAwM2V2aWYuYWN0aXZlX2xpbmtzO1xuIDI5MzpcdFx0dW5zaWduZWQgbG9uZyBhZGQgPSBuZXdfbGlua3MgXHUwMDI2IH5vbGRfbGlua3M7XG4gMjk0Olx0XHR1bnNpZ25lZCBsb25nIHJlbSA9IG9sZF9saW5rcyBcdTAwMjYgfm5ld19saW5rcztcbiAyOTU6XHRcdHVuc2lnbmVkIGxvbmcgc3RhX3JlbSA9IHJlbTtcbiAyOTY6XHRcdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuIDI5NzpcdFx0aW50IHJldDtcbiAyOTg6XHRcdHN0cnVjdCBsaW5rX2NvbnRhaW5lciAqbGlua3NbSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTXSA9IHt9LCAqbGluaztcbiAyOTk6XHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKm9sZFtJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1NdO1xuIDMwMDpcdFx0c3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKm9sZF9kYXRhW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XG4gMzAxOlx0XHRib29sIHVzZV9kZWZsaW5rID0gb2xkX2xpbmtzID09IDA7IC8qIHNldCBmb3IgZXJyb3IgY2FzZSAqL1xuIDMwMjpcdFx0Ym9vbCBub25fc3RhID0gc2RhdGEtXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTjtcbiAzMDM6XHRcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xuIDMwNDpcdFxuIDMwNTpcdFx0bG9ja2RlcF9hc3NlcnRfd2lwaHkoc2RhdGEtXHUwMDNlbG9jYWwtXHUwMDNlaHcud2lwaHkpO1xuIDMwNjpcdFxuIDMwNzpcdFx0bWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpO1xuIDMwODpcdFxuIDMwOTpcdFx0aWYgKG9sZF9saW5rcyA9PSBuZXdfbGlua3MgXHUwMDI2XHUwMDI2IGRvcm1hbnRfbGlua3MgPT0gc2RhdGEtXHUwMDNldmlmLmRvcm1hbnRfbGlua3MpXG4gMzEwOlx0XHRcdHJldHVybiAwO1xuIDMxMTpcdFxuIDMxMjpcdFx0aWYgKCFvbGRfbGlua3MgfHwgIW5ld19saW5rcylcbiAzMTM6XHRcdFx0V0FSTl9PTihzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpIFx1MDAzZSAwKTtcbiAzMTQ6XHRcbiAzMTU6XHRcdC8qIGlmIHRoZXJlIHdlcmUgbm8gb2xkIGxpbmtzLCBuZWVkIHRvIGNsZWFyIHRoZSBwb2ludGVycyB0byBkZWZsaW5rICovXG4gMzE2Olx0XHRpZiAoIW9sZF9saW5rcylcbiAzMTc6XHRcdFx0cmVtIHw9IEJJVCgwKTtcbiAzMTg6XHRcbiAzMTk6XHRcdC8qIGFsbG9jYXRlIG5ldyBsaW5rIHN0cnVjdHVyZXMgZmlyc3QgKi9cbiAzMjA6XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbiAzMjE6XHRcdFx0bGluayA9IGt6YWxsb2Nfb2JqKCpsaW5rKTtcbiAzMjI6XHRcdFx0aWYgKCFsaW5rKSB7XG4gMzIzOlx0XHRcdFx0cmV0ID0gLUVOT01FTTtcbiAzMjQ6XHRcdFx0XHRnb3RvIGZyZWU7XG4gMzI1Olx0XHRcdH1cbiAzMjY6XHRcdFx0bGlua3NbbGlua19pZF0gPSBsaW5rO1xuIDMyNzpcdFx0fVxuIDMyODpcdFxuIDMyOTpcdFx0Lyoga2VlcCB0cmFjayBvZiB0aGUgb2xkIHBvaW50ZXJzIGZvciB0aGUgZHJpdmVyICovXG4gMzMwOlx0XHRCVUlMRF9CVUdfT04oc2l6ZW9mKG9sZCkgIT0gc2l6ZW9mKHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmYpKTtcbiAzMzE6XHRcdG1lbWNweShvbGQsIHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmYsIHNpemVvZihvbGQpKTtcbiAzMzI6XHRcdC8qIGFuZCBmb3IgdXMgaW4gZXJyb3IgY2FzZXMgKi9cbiAzMzM6XHRcdEJVSUxEX0JVR19PTihzaXplb2Yob2xkX2RhdGEpICE9IHNpemVvZihzZGF0YS1cdTAwM2VsaW5rKSk7XG4gMzM0Olx0XHRtZW1jcHkob2xkX2RhdGEsIHNkYXRhLVx1MDAzZWxpbmssIHNpemVvZihvbGRfZGF0YSkpO1xuIDMzNTpcdFxuIDMzNjpcdFx0LyogZ3JhYiBvbGQgbGlua3MgdG8gZnJlZSBsYXRlciAqL1xuIDMzNzpcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZyZW0sIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuIDMzODpcdFx0XHRpZiAocmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0pICE9IFx1MDAyNnNkYXRhLVx1MDAzZWRlZmxpbmspIHtcbiAzMzk6XHRcdFx0XHQvKlxuIDM0MDpcdFx0XHRcdCAqIHdlIG11c3QgaGF2ZSBhbGxvY2F0ZWQgdGhlIGRhdGEgdGhyb3VnaCB0aGlzIHBhdGggc29cbiAzNDE6XHRcdFx0XHQgKiB3ZSBrbm93IHdlIGNhbiBmcmVlIGJvdGggYXQgdGhlIHNhbWUgdGltZVxuIDM0MjpcdFx0XHRcdCAqL1xuIDM0MzpcdFx0XHRcdHRvX2ZyZWVbbGlua19pZF0gPSBjb250YWluZXJfb2YocmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0pLFxuIDM0NDpcdFx0XHRcdFx0XHRcdFx0dHlwZW9mKCpsaW5rc1tsaW5rX2lkXSksXG4gMzQ1Olx0XHRcdFx0XHRcdFx0XHRkYXRhKTtcbiAzNDY6XHRcdFx0fVxuIDM0NzpcdFxuIDM0ODpcdFx0XHRSQ1VfSU5JVF9QT0lOVEVSKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0sIE5VTEwpO1xuIDM0OTpcdFx0XHRSQ1VfSU5JVF9QT0lOVEVSKHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmZbbGlua19pZF0sIE5VTEwpO1xuIDM1MDpcdFx0fVxuIDM1MTpcdFxuIDM1MjpcdFx0aWYgKCFvbGRfbGlua3MpXG4gMzUzOlx0XHRcdGllZWU4MDIxMV9kZWJ1Z2ZzX3JlY3JlYXRlX25ldGRldihzZGF0YSwgdHJ1ZSk7XG4gMzU0Olx0XG4gMzU1Olx0XHQvKiBsaW5rIHRoZW0gaW50byBkYXRhIHN0cnVjdHVyZXMgKi9cbiAzNTY6XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbiAzNTc6XHRcdFx0V0FSTl9PTighdXNlX2RlZmxpbmsgXHUwMDI2XHUwMDI2XG4gMzU4Olx0XHRcdFx0cmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVx1MDAzZWxpbmtbbGlua19pZF0pID09IFx1MDAyNnNkYXRhLVx1MDAzZWRlZmxpbmspO1xuIDM1OTpcdFxuIDM2MDpcdFx0XHRsaW5rID0gbGlua3NbbGlua19pZF07XG4gMzYxOlx0XHRcdGllZWU4MDIxMV9saW5rX2luaXQoc2RhdGEsIGxpbmtfaWQsIFx1MDAyNmxpbmstXHUwMDNlZGF0YSwgXHUwMDI2bGluay1cdTAwM2Vjb25mKTtcbiAzNjI6XHRcdFx0aWVlZTgwMjExX2xpbmtfc2V0dXAoXHUwMDI2bGluay1cdTAwM2VkYXRhKTtcbiAzNjM6XHRcdFx0aWVlZTgwMjExX3NldF93bW1fZGVmYXVsdChcdTAwMjZsaW5rLVx1MDAzZWRhdGEsIHRydWUsIG5vbl9zdGEpO1xuIDM2NDpcdFx0fVxuIDM2NTpcdFxuIDM2NjpcdFx0aWYgKG5ld19saW5rcyA9PSAwKVxuIDM2NzpcdFx0XHRpZWVlODAyMTFfbGlua19pbml0KHNkYXRhLCAtMSwgXHUwMDI2c2RhdGEtXHUwMDNlZGVmbGluayxcbiAzNjg6XHRcdFx0XHRcdCAgICBcdTAwMjZzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYpO1xuIDM2OTpcdFxuIDM3MDpcdFx0cmV0ID0gaWVlZTgwMjExX2NoZWNrX2R1cF9saW5rX2FkZHJzKHNkYXRhKTtcbiAzNzE6XHRcdGlmICghcmV0KSB7XG4gMzcyOlx0XHRcdC8qIGZvciBrZXlzIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gdW5kbyB0aGlzICovXG4gMzczOlx0XHRcdGllZWU4MDIxMV90ZWFyX2Rvd25fbGlua3Moc2RhdGEsIHRvX2ZyZWUsIHJlbSk7XG4gMzc0Olx0XG4gMzc1Olx0XHRcdGllZWU4MDIxMV9zZXRfdmlmX2xpbmtzX2JpdG1hcHMoc2RhdGEsIG5ld19saW5rcywgZG9ybWFudF9saW5rcyk7XG4gMzc2Olx0XG4gMzc3Olx0XHRcdC8qIHRlbGwgdGhlIGRyaXZlciAqL1xuIDM3ODpcdFx0XHRpZiAoc2RhdGEtXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTilcbiAzNzk6XHRcdFx0XHRyZXQgPSBkcnZfY2hhbmdlX3ZpZl9saW5rcyhzZGF0YS1cdTAwM2Vsb2NhbCwgc2RhdGEsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyMDQxCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24mIzM5O3MgQ29udGV4dCoqCgpSaWdodCwgc28gSSYjMzk7dmUganVzdCBiZWVuIHByb21wdGVkIHRvIGFzc2VzcyBzb21lIGNvZGUgb3IgYSBkZXNjcmlwdGlvbiBvZiBhIGZ1bmN0aW9uLiBUaGUgaW1tZWRpYXRlIHRob3VnaHQgaXMsICpJIG5lZWQgbW9yZSBpbmZvcm1hdGlvbiouIEkmIzM5O20gbm90IGdvaW5nIHRvIGp1bXAgdG8gYW55IGNvbmNsdXNpb25zIGJhc2VkIG9uIGp1c3QgYSBzbmlwcGV0LiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgdGhlIG1vc3QgZWZmaWNpZW50IHdheSB0byB1bmRlcnN0YW5kIGl0cyBwdXJwb3NlIGFuZCBpbm5lciB3b3JraW5ncyBpcyB0byBzZWUgdGhlIHdob2xlIHRoaW5nLCBvciBhdCBsZWFzdCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgaXQuIEkgd2FudCB0byBsb29rIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlLCB0aGUgZGF0YSBpdCBvcGVyYXRlcyBvbiwgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgYnJvYWRlciBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBlbnRyeSBwb2ludHMsIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzICYjMzQ7TGV0JiMzOTtzIHJlYWQgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uJiMzNDsgaXMgY3J1Y2lhbDsgSSB1bmRlcnN0YW5kIHRoZSBpbXBvcnRhbmNlIG9mIGNvbXBsZXRlIGNvbnRleHQgdG8gbWFrZSBhIHNvdW5kIGV2YWx1YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2xpbmsuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDM4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDM4MDpcdFx0XHRcdFx0XHRcdCAgIG9sZF9saW5rcyBcdTAwMjYgb2xkX2FjdGl2ZSxcbiAzODE6XHRcdFx0XHRcdFx0XHQgICBuZXdfbGlua3MgXHUwMDI2IHNkYXRhLVx1MDAzZXZpZi5hY3RpdmVfbGlua3MsXG4gMzgyOlx0XHRcdFx0XHRcdFx0ICAgb2xkKTtcbiAzODM6XHRcdFx0aWYgKCFuZXdfbGlua3MpXG4gMzg0Olx0XHRcdFx0aWVlZTgwMjExX2RlYnVnZnNfcmVjcmVhdGVfbmV0ZGV2KHNkYXRhLCBmYWxzZSk7XG4gMzg1Olx0XG4gMzg2Olx0XHRcdGlmIChzZGF0YS1cdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUClcbiAzODc6XHRcdFx0XHRpZWVlODAyMTFfdXBkYXRlX2Fwdmxhbl9saW5rcyhzZGF0YSk7XG4gMzg4Olx0XHR9XG4gMzg5Olx0XG4gMzkwOlx0XHQvKlxuIDM5MTpcdFx0ICogSWdub3JlIGVycm9ycyBpZiB3ZSBhcmUgb25seSByZW1vdmluZyBsaW5rcyBhcyByZW1vdmFsIHNob3VsZFxuIDM5MjpcdFx0ICogYWx3YXlzIHN1Y2NlZWRcbiAzOTM6XHRcdCAqL1xuIDM5NDpcdFx0aWYgKCFuZXdfbGlua3MpXG4gMzk1Olx0XHRcdHJldCA9IDA7XG4gMzk2Olx0XG4gMzk3Olx0XHRpZiAocmV0KSB7XG4gMzk4Olx0XHRcdC8qIHJlc3RvcmUgY29uZmlnICovXG4gMzk5Olx0XHRcdG1lbWNweShzZGF0YS1cdTAwM2VsaW5rLCBvbGRfZGF0YSwgc2l6ZW9mKG9sZF9kYXRhKSk7XG4gNDAwOlx0XHRcdG1lbWNweShzZGF0YS1cdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcbiA0MDE6XHRcdFx0aWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzZGF0YSwgb2xkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcbiA0MDI6XHRcdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuIDQwMzpcdFx0XHRcdGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKFx1MDAyNmxpbmtzW2xpbmtfaWRdLVx1MDAzZWRhdGEpO1xuIDQwNDpcdFx0XHRcdGllZWU4MDIxMV9saW5rX3N0b3AoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4gNDA1Olx0XHRcdH1cbiA0MDY6XHRcdFx0LyogYW5kIGZyZWUgKG9ubHkpIHRoZSBuZXdseSBhbGxvY2F0ZWQgbGlua3MgKi9cbiA0MDc6XHRcdFx0bWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpO1xuIDQwODpcdFx0XHRnb3RvIGZyZWU7XG4gNDA5Olx0XHR9XG4gNDEwOlx0XG4gNDExOlx0XHQvKiB0cnkgdG8gcmVtb3ZlIGxpbmtzIHRoYXQgYXJlIG5vdyBpbnZhbGlkIGZyb20gKE1MTykgc3RhdGlvbnMgKi9cbiA0MTI6XHRcdGxpc3RfZm9yX2VhY2hfZW50cnkoc3RhLCBcdTAwMjZzZGF0YS1cdTAwM2Vsb2NhbC1cdTAwM2VzdGFfbGlzdCwgbGlzdCkge1xuIDQxMzpcdFx0XHR1bnNpZ25lZCBsb25nIHJlbV9saW5rcyA9IHN0YS1cdTAwM2VzdGEudmFsaWRfbGlua3MgXHUwMDI2IHN0YV9yZW07XG4gNDE0Olx0XG4gNDE1Olx0XHRcdGlmIChzdGEtXHUwMDNlc2RhdGEgIT0gc2RhdGEpXG4gNDE2Olx0XHRcdFx0Y29udGludWU7XG4gNDE3Olx0XG4gNDE4Olx0XHRcdC8qXG4gNDE5Olx0XHRcdCAqIHNraXAgc3RhdGlvbnMgdGhhdCB3b3VsZCBoYXZlIG5vIGxpbmtzIGxlZnQsXG4gNDIwOlx0XHRcdCAqIHRob3NlIHdpbGwgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGxhdGVyXG4gNDIxOlx0XHRcdCAqL1xuIDQyMjpcdFx0XHRpZiAoc3RhLVx1MDAzZXN0YS52YWxpZF9saW5rcyA9PSByZW1fbGlua3MpXG4gNDIzOlx0XHRcdFx0Y29udGludWU7XG4gNDI0Olx0XG4gNDI1Olx0XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2cmVtX2xpbmtzLFxuIDQyNjpcdFx0XHRcdFx0IElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUylcbiA0Mjc6XHRcdFx0XHRpZWVlODAyMTFfc3RhX3JlbW92ZV9saW5rKHN0YSwgbGlua19pZCk7XG4gNDI4Olx0XHR9XG4gNDI5Olx0XG4gNDMwOlx0XHQvKlxuIDQzMTpcdFx0ICogUmVtb3ZlIHN0YXRpb25zIHVzaW5nIGFueSByZW1vdmVkIGxpbmtzLiBOb3RlIHRoYXQgZHVlXG4gNDMyOlx0XHQgKiB0byB0aGUgYWJvdmUgc3RhdGlvbiBsaW5rIHJlbW92YWwsIHRoaXMgb25seSByZW1vdmVzXG4gNDMzOlx0XHQgKiBzdGF0aW9ucyB0aGF0IHdlcmUgc2tpcHBlZCBhYm92ZSBiZWNhdXNlIHRoZXkmIzM5O2QgaGF2ZSBub1xuIDQzNDpcdFx0ICogbGlua3MgbGVmdCBhZnRlciBsaW5rIHJlbW92YWwuXG4gNDM1Olx0XHQgKi9cbiA0MzY6XHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2c3RhX3JlbSwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKVxuIDQzNzpcdFx0XHRzdGFfaW5mb19mbHVzaChzZGF0YSwgbGlua19pZCk7XG4gNDM4Olx0XG4gNDM5Olx0XHQvKiB1c2UgZGVmbGluay9ic3NfY29uZiBhZ2FpbiBpZiBhbmQgb25seSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBsaW5rcyAqL1xuIDQ0MDpcdFx0dXNlX2RlZmxpbmsgPSBuZXdfbGlua3MgPT0gMDtcbiA0NDE6XHRcbiA0NDI6XHRcdGdvdG8gZGVpbml0O1xuIDQ0MzpcdGZyZWU6XG4gNDQ0Olx0XHQvKiBpZiB3ZSBmYWlsZWQgZHVyaW5nIGFsbG9jYXRpb24sIG9ubHkgZnJlZSBhbGwgKi9cbiA0NDU6XHRcdGZvciAobGlua19pZCA9IDA7IGxpbmtfaWQgXHUwMDNjIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUzsgbGlua19pZCYjNDM7JiM0MzspIHtcbiA0NDY6XHRcdFx0a2ZyZWUobGlua3NbbGlua19pZF0pO1xuIDQ0NzpcdFx0XHRsaW5rc1tsaW5rX2lkXSA9IE5VTEw7XG4gNDQ4Olx0XHR9XG4gNDQ5Olx0ZGVpbml0OlxuIDQ1MDpcdFx0aWYgKHVzZV9kZWZsaW5rKVxuIDQ1MTpcdFx0XHRpZWVlODAyMTFfbGlua19pbml0KHNkYXRhLCAtMSwgXHUwMDI2c2RhdGEtXHUwMDNlZGVmbGluayxcbiA0NTI6XHRcdFx0XHRcdCAgICBcdTAwMjZzZGF0YS1cdTAwM2V2aWYuYnNzX2NvbmYpO1xuIDQ1MzpcdFx0cmV0dXJuIHJldDtcbiA0NTQ6XHR9XG4gNDU1Olx0XG4gNDU2Olx0aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIDQ1NzpcdFx0XHRcdCAgICB1MTYgbmV3X2xpbmtzLCB1MTYgZG9ybWFudF9saW5rcylcbiA0NTg6XHR7XG4gNDU5Olx0XHRzdHJ1Y3QgbGlua19jb250YWluZXIgKmxpbmtzW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XG4gNDYwOlx0XHRpbnQgcmV0O1xuIDQ2MTpcdFxuIDQ2MjpcdFx0cmV0ID0gaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc2RhdGEsIGxpbmtzLCBuZXdfbGlua3MsXG4gNDYzOlx0XHRcdFx0XHRcdCBkb3JtYW50X2xpbmtzKTtcbiA0NjQ6XHRcdGllZWU4MDIxMV9mcmVlX2xpbmtzKHNkYXRhLCBsaW5rcyk7XG4gNDY1Olx0XG4gNDY2Olx0XHRyZXR1cm4gcmV0O1xuIDQ2NzpcdH1cbiA0Njg6XHRcbiA0Njk6XHRzdGF0aWMgaW50IF9pZWVlODAyMTFfc2V0X2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiA0NzA6XHRcdFx0XHRcdCAgICAgICB1MTYgYWN0aXZlX2xpbmtzKVxuIDQ3MTpcdHtcbiA0NzI6XHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbmtfY29uZnNbSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTXTtcbiA0NzM6XHRcdHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gc2RhdGEtXHUwMDNlbG9jYWw7XG4gNDc0Olx0XHR1MTYgb2xkX2FjdGl2ZSA9IHNkYXRhLVx1MDAzZXZpZi5hY3RpdmVfbGlua3M7XG4gNDc1Olx0XHR1bnNpZ25lZCBsb25nIHJlbSA9IG9sZF9hY3RpdmUgXHUwMDI2IH5hY3RpdmVfbGlua3M7XG4gNDc2Olx0XHR1bnNpZ25lZCBsb25nIGFkZCA9IGFjdGl2ZV9saW5rcyBcdTAwMjYgfm9sZF9hY3RpdmU7XG4gNDc3Olx0XHRzdHJ1Y3Qgc3RhX2luZm8gKnN0YTtcbiA0Nzg6XHRcdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuIDQ3OTpcdFx0aW50IHJldCwgaTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM5NzUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXcgRXJyb3IgQ2xlYW51cCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgZXJyb3IgY2xlYW51cCB3aXRoaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBmb3IgdGhlc2UgZnJlc2hseSBhZGRlZCBsaW5rcy4gVGhhdCYjMzk7cyBhIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQsIGRlZmluaXRlbHkgd29ydGggbG9va2luZyBhdC4gQW5kLCBJIGtub3cgZm9yIGEgZmFjdCB0aGF0IGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXMgYSByZWFjaGFibGUgZnVuY3Rpb24sIHNvIHdlIGNhbiBjb25zaWRlciB0aGF0IGFzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBmdXp6ZWQuCgpHaXZlbiB0aGlzLCBJJiMzOTttIHRoaW5raW5nIHdlIHNob3VsZCB6ZXJvIGluIG9uIGZ1enppbmcgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBhbmQgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYC4gSG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgY29uZmlybSBpZiBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGlzIHN0YXRpYy4uLiBZZXAsIGl0IGlzLiBBbHJpZ2h0LCBzbyB0aGUgcmVhbCBmb2N1cyBzaG91bGQgYmUgb24gYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCB0aGVuLgoKTm93LCB3aGF0IGFib3V0IHRoZSBjb25maWcgb3B0aW9ucz8gVGhlIHByaW1hcnkgb25lIHNlZW1zIHRvIGJlIGBNQUM4MDIxMWAsIGJ1dCBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGZvciBhbnkgb3RoZXJzLiBPa2F5LCBtYXliZSBgTUFDODAyMTFfREVCVUdGU2A/IFRoZSBwYXRjaCAqZG9lcyogY2FsbCBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgLCBidXQgaXQgYWxzbyBjYWxscyBgaWVlZTgwMjExX2xpbmtfc3RvcGAsIHNvIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuIEJlc3QgdG8gZG91YmxlLWNoZWNrIHRoYXQgYGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlYCBmdW5jdGlvbiBkZWZpbml0aW9uLCBqdXN0IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuYz0xMDQzPXZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXG4tLVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmMtMTA2NC1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jOjEwNjU6dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTEwNjYte1xuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5oPTE5PXZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspO1xubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MjA6dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaC0yMS1cbi0tXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaD0zND1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaC0zNS17fVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MzY6c3RhdGljIGlubGluZSB2b2lkIGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rKVxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMzcte31cbi0tXG5uZXQvbWFjODAyMTEvbGluay5jPTE5MT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfdGVhcl9kb3duX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmMtMjA2LVx0XHRpZWVlODAyMTFfcmVtb3ZlX2xpbmtfa2V5cyhsaW5rLCBcdTAwMjZrZXlzKTtcbm5ldC9tYWM4MDIxMS9saW5rLmM6MjA3Olx0XHRpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShsaW5rKTtcbm5ldC9tYWM4MDIxMS9saW5rLmMtMjA4LVx0XHRpZWVlODAyMTFfbGlua19zdG9wKGxpbmspO1xuLS1cbm5ldC9tYWM4MDIxMS9saW5rLmM9Mjg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL2xpbmsuYy00MDItXHRcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDAzOlx0XHRcdGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKFx1MDAyNmxpbmtzW2xpbmtfaWRdLVx1MDAzZWRhdGEpO1xubmV0L21hYzgwMjExL2xpbmsuYy00MDQtXHRcdFx0aWVlZTgwMjExX2xpbmtfc3RvcChcdTAwMjZsaW5rc1tsaW5rX2lkXS1cdTAwM2VkYXRhKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU0MDAKCQkJCQkJCW91dHB1dDogMTQ0CgkJCQkJCQl0aG91Z2h0czogNDc0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgaGVyZSBpcyB0byBzZWUgaWYgaXQgbW9kaWZpZXMgY29kZSB0aGF0JiMzOTtzIHJlYWNoYWJsZSBhbmQgcG90ZW50aWFsbHkgaW50cm9kdWNlcyBuZXcgZnV6emluZyB0YXJnZXRzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBzaW5jZSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGlzIGEgbm8tb3Agd2hlbiBgTUFDODAyMTFfREVCVUdGU2AgaXNuJiMzOTt0IHNldCwgYW5kIGBpZWVlODAyMTFfbGlua19zdG9wYCBhbHdheXMgcnVucywgd2UgbGlrZWx5IGRvbiYjMzk7dCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBkZWJ1Z2ZzIG9wdGlvbi4gYE1BQzgwMjExYCBpdHNlbGYgaXMgdGhlIGNydWNpYWwgY29tcG9uZW50IGhlcmUuCgpNeSBzdHJhdGVneSBpcyB0byBjb25maXJtIGlmIGBNQUM4MDIxMWAgaXMgZW5vdWdoLCBvciBpZiB3ZSByZXF1aXJlIGBNQUM4MDIxMV9IV1NJTWAgb3Igc29tZXRoaW5nIHNpbWlsYXIgZm9yIHRoZSBjb2RlIHRvIGJlIGFjY2Vzc2libGUsIHdoaWNoIGlzIGVzc2VudGlhbCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgd29ydGggZnV6emluZy4gSSYjMzk7dmUgcGlucG9pbnRlZCBgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NgIGFzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciB0aGUgbG9naWMgaW52b2x2ZWQgYW5kIEkmIzM5O20gYWRkaW5nIGl0LCBhbG9uZyB3aXRoIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AsIHRvIGBGb2N1c1N5bWJvbHNgLgoKTm93LCByZXZpZXdpbmcgdGhlIHByb21wdCYjMzk7cyBjcml0ZXJpYSBmb3IgYFdvcnRoRnV6emluZz1mYWxzZWAsIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYXZvaWQgdGhvc2UgcGl0ZmFsbHMuIEl0IGRlYWxzIHdpdGggY29yZSBtYWM4MDIxMSBsb2dpYywgd2hpY2ggSSBrbm93IGlzIHJlYWNoYWJsZSBldmVuIGluIGEgc2ltdWxhdGVkIGhhcmR3YXJlIGVudmlyb25tZW50IGxpa2UgYG1hYzgwMjExX2h3c2ltYC4gQ3J1Y2lhbGx5LCB0aGlzIHBhdGNoIGFkZHJlc3NlcyBhIHJlc291cmNlIGxlYWsgb3Igc3RhdGUgaW5jb25zaXN0ZW5jeSBvbiBhbiBlcnJvciBwYXRoLCBhIGNsYXNzaWMgYXJlYSBmb3IgcG90ZW50aWFsIGZ1enppbmcuIEdpdmVuIHRoaXMsIEkmIzM5O20gY29uZmlkZW50IGluIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC4KCkZvciB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uLCBJJiMzOTtsbCBlbmFibGUgYE1BQzgwMjExYCwgYW5kIG15IHNwZWNpZmljIGZvY3VzIHdpbGwgYmUgb24gdGhlIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgYW5kIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgZnVuY3Rpb25zLiBJIHF1aWNrbHkgZG91YmxlLWNoZWNrZWQgaWYgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBpcyBzdGF0aWMuIEl0IGlzLCBidXQgdGhhdCYjMzk7cyBub3QgYSBkZWFsLWJyZWFrZXIuIFN5emthbGxlciBjYW4gc3RpbGwgcmVhY2ggdGhvc2UgZnVuY3Rpb25zIGlmIHRoZXkgYXJlIHBhcnQgb2YgdGhlIGNhbGwgdHJlZSwgc28gSSYjMzk7bSBrZWVwaW5nIGJvdGggYXMgdGFyZ2V0cy4gVGltZSB0byBzZXQgdGhlc2UgcmVzdWx0cyBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjExJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl9zZXRfbGlua3MmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDODAyMTEmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfdmlmX3NldF9saW5rcyYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGNsZWFudXAgaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCB0byBzdG9wIGFuZCByZW1vdmUgZGVidWdmcyBmb3IgbmV3bHkgYWxsb2NhdGVkIGxpbmtzIGlmIGFuIGVycm9yIG9jY3Vycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIHN1YnN5c3RlbSwgcmVhY2hhYmxlIHZpYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIG1hYzgwMjExX2h3c2ltLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NDQuNDE3OTM3ODUyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUyMjgwNjE2MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfdmlmX3NldF9saW5rc1wiLFxuICAgIFwiaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGNsZWFudXAgaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCB0byBzdG9wIGFuZCByZW1vdmUgZGVidWdmcyBmb3IgbmV3bHkgYWxsb2NhdGVkIGxpbmtzIGlmIGFuIGVycm9yIG9jY3Vycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIHN1YnN5c3RlbSwgcmVhY2hhYmxlIHZpYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIG1hYzgwMjExX2h3c2ltLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo0NC40MTc5NDQ4MzJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwMDIzMzczNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGE2YjBkNDZjZTM1NGQ0Mjk2YmZlZWU4ZDUyMTMzMmI3OGUxYmM1Y2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdWwgMTIgMTA6Mzg6NDIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2xpbmsuYyBiL25ldC9tYWM4MDIxMS9saW5rLmNcXG5pbmRleCBkMDUzNTI2ODk2MmM3YS4uZGM2ODE0NGRjMzYzYWYgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL2xpbmsuY1xcbisrKyBiL25ldC9tYWM4MDIxMS9saW5rLmNcXG5AQCAtMzk5LDYgKzM5OSwxMCBAQCBzdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiBcXHRcXHRtZW1jcHkoc2RhdGEtXFx1MDAzZWxpbmssIG9sZF9kYXRhLCBzaXplb2Yob2xkX2RhdGEpKTtcXG4gXFx0XFx0bWVtY3B5KHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcXG4gXFx0XFx0aWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzZGF0YSwgb2xkX2xpbmtzLCBkb3JtYW50X2xpbmtzKTtcXG4rXFx0XFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcXHUwMDI2YWRkLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpIHtcXG4rXFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXFx1MDAyNmxpbmtzW2xpbmtfaWRdLVxcdTAwM2VkYXRhKTtcXG4rXFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfc3RvcChcXHUwMDI2bGlua3NbbGlua19pZF0tXFx1MDAzZWRhdGEpO1xcbitcXHRcXHR9XFxuIFxcdFxcdC8qIGFuZCBmcmVlIChvbmx5KSB0aGUgbmV3bHkgYWxsb2NhdGVkIGxpbmtzICovXFxuIFxcdFxcdG1lbXNldCh0b19mcmVlLCAwLCBzaXplb2YobGlua3MpKTtcXG4gXFx0XFx0Z290byBmcmVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo0NS4wMTkxMzMyODhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NjI2ODUxMTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NcIixcbiAgICBcImllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNmIwZDQ2Y2UzNTRkNDI5NmJmZWVlOGQ1MjEzMzJiNzhlMWJjNWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMTIgMTA6Mzg6NDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbGluay5jIGIvbmV0L21hYzgwMjExL2xpbmsuY1xuaW5kZXggZDA1MzUyNjg5NjJjN2EuLmRjNjgxNDRkYzM2M2FmIDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL2xpbmsuY1xuKysrIGIvbmV0L21hYzgwMjExL2xpbmsuY1xuQEAgLTM5OSw2ICszOTksMTAgQEAgc3RhdGljIGludCBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdFx0bWVtY3B5KHNkYXRhLVx1MDAzZWxpbmssIG9sZF9kYXRhLCBzaXplb2Yob2xkX2RhdGEpKTtcbiBcdFx0bWVtY3B5KHNkYXRhLVx1MDAzZXZpZi5saW5rX2NvbmYsIG9sZCwgc2l6ZW9mKG9sZCkpO1xuIFx0XHRpZWVlODAyMTFfc2V0X3ZpZl9saW5rc19iaXRtYXBzKHNkYXRhLCBvbGRfbGlua3MsIGRvcm1hbnRfbGlua3MpO1xuK1x0XHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFx1MDAyNmFkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4rXHRcdFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG4rXHRcdFx0aWVlZTgwMjExX2xpbmtfc3RvcChcdTAwMjZsaW5rc1tsaW5rX2lkXS1cdTAwM2VkYXRhKTtcbitcdFx0fVxuIFx0XHQvKiBhbmQgZnJlZSAob25seSkgdGhlIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyAqL1xuIFx0XHRtZW1zZXQodG9fZnJlZSwgMCwgc2l6ZW9mKGxpbmtzKSk7XG4gXHRcdGdvdG8gZnJlZTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjM4OjQ1LjAxOTEzNTE1OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MjQwNDI0NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYWM4MDIxMSBMaW5rIFVwZGF0ZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvbWFjODAyMTEvbGluay5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGZ1bmN0aW9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgYW4gZXJyb3IgaGFuZGxpbmcgc2NlbmFyaW8uIFRoZSBwYXRjaCBhZGRzIGEgY2xlYW51cCBsb29wIHRvIGhhbmRsZSBwb3RlbnRpYWwgZXJyb3JzIHRoYXQgbWlnaHQgYXJpc2Ugd2hpbGUgdXBkYXRpbmcgbGlua3MuXG5cbkkgc2VlIGEgYGZvcl9lYWNoX3NldF9iaXRgIGxvb3Agd2l0aGluIHRoZSBlcnJvciBwYXRoLCB1c2luZyB0aGUgYGFkZGAgYml0bWFwIHRvIGl0ZXJhdGUgdGhyb3VnaCBuZXdseSBhZGRlZCBsaW5rcy4gSW5zaWRlIHRoZSBsb29wLCBpdCBjYWxscyBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGFuZCBgaWVlZTgwMjExX2xpbmtfc3RvcGAgb24gdGhvc2UgbGlua3MuIFRoaXMgaXMgYSBjcnVjaWFsIHN0ZXAgZm9yIHByZXZlbnRpbmcgcmVzb3VyY2UgbGVha3MgYW5kIGVuc3VyaW5nIGEgY2xlYW4gc3RhdGUgaWYgdGhlIHVwZGF0ZSBwcm9jZXNzIGZhaWxzLiBJdCdzIGEgc29saWQgZGVmZW5zaXZlIG1lYXN1cmUsIGdpdmVuIHRoZSBjb21wbGV4aXR5IG9mIGxpbmsgbWFuYWdlbWVudCBpbiB0aGlzIGFyZWEuIEl0IGFsc28gc3VnZ2VzdHMgdGhhdCBsaW5rIGNyZWF0aW9uIGlzIGEgbXVsdGktc3RlcCBvcGVyYXRpb24sIGFuZCB0aGlzIGhhbmRsZXMgdGhlIHJvbGxiYWNrLCBzbyB0byBzcGVhay5cblxuTm93LCBsZXQncyBkaXZlIGludG8gdGhlIGZ1bmN0aW9uIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3Vycm91bmRpbmcgY29udGV4dCBvZiB0aGlzIGVycm9yIGhhbmRsaW5nIHRvIGZ1bGx5IGFwcHJlY2lhdGUgaXRzIGltcGxpY2F0aW9ucy4gSSdsbCBuZWVkIHRvIHNlZSB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlLCBpdHMgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgdGhlIHBvc3NpYmxlIHBvaW50cyB3aGVyZSBhbiBlcnJvciBjb3VsZCBhcmlzZSB0byBhc3Nlc3MgdGhlIGVmZmVjdGl2ZW5lc3MgYW5kIGNvcnJlY3RuZXNzIG9mIHRoaXMgcGF0Y2ggaW4gaXRzIGVudGlyZXR5LiBJdCdzIGEgd2VsbC13cml0dGVuIGFwcHJvYWNoLCBidXQgY29udGV4dCBpcyBraW5nLCBhcyBhbHdheXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NzAsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo0OS42NDMxODAwNTdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUyNTQ5ODI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9saW5rLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2xpbmsuYz0yNTE9c3RhdGljIHZvaWQgaWVlZTgwMjExX3NldF92aWZfbGlua3NfYml0bWFwcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmMtMjg2LVxcbm5ldC9tYWM4MDIxMS9saW5rLmM6Mjg3OnN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxubmV0L21hYzgwMjExL2xpbmsuYy0yODgtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGxpbmtfY29udGFpbmVyICoqdG9fZnJlZSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9NDU2PWludCBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYxLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDYyOlxcdHJldCA9IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHNkYXRhLCBsaW5rcywgbmV3X2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDYzLVxcdFxcdFxcdFxcdFxcdCBkb3JtYW50X2xpbmtzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NDkuNzk1NzM2NTc0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjc4OTA1Njc0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipUcmFjaW5nIHRoZSBMaW5rYWdlIG9mIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgLiBJIGtub3cgZnJvbSB0aGUgc3RydWN0dXJlIHRoYXQgaXQncyBjYWxsZWQgYnkgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbGFyZ2VyIGNvbnRleHQgb2YgdGhpcyBjYWxsIGNoYWluLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBrbm93IHdoZXJlIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgaXRzZWxmIGlzIGJlaW5nIGludm9rZWQuIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIHRoZSBiZXN0IGluc2lnaHQgaW50byBpdHMgcHVycG9zZSBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgb3ZlcmFsbCBJRUVFIDgwMi4xMSBzdGFjayBvcGVyYXRpb25zLiBMZXQncyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTEsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo1Mi41ODQ3OTU4OTZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM0ODEyNjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV92aWZfc2V0X2xpbmtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTI3MjQ9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X3N0YV80YWRkcihzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzUzLVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyNzU0OlxcdFxcdGVyciA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBuZXdfbGlua3MsIDApO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNzU1LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01ODAxPXN0YXRpYyBpbnQgaWVlZTgwMjExX2FkZF9pbnRmX2xpbmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy01ODA4LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzo1ODA5OlxcdHJldHVybiBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgd2Rldi1cXHUwMDNldmFsaWRfbGlua3MsIDApO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy01ODEwLX1cXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01ODEyPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9kZWxfaW50Zl9saW5rKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTgyNS1cXHQgKi9cXG5uZXQvbWFjODAyMTEvY2ZnLmM6NTgyNjpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X2xpbmtzLCAwKTtcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTgyNy19XFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yMjE0PXZvaWQgaWVlZTgwMjExX2xpbmtfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjIxNTppbnQgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIxNi1cXHRcXHRcXHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTIyMTc9c3RhdGljIGlubGluZSB2b2lkIGllZWU4MDIxMV92aWZfY2xlYXJfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIxOC17XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjIxOTpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjIyMC19XFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jPTE1PXN0YXRpYyB2b2lkIGllZWU4MDIxMV91cGRhdGVfYXB2bGFuX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKVxcbi0tXFxubmV0L21hYzgwMjExL2xpbmsuYy00OS1cXG5uZXQvbWFjODAyMTEvbGluay5jOjUwOlxcdFxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHZsYW4sIGFkZCwgMCk7XFxubmV0L21hYzgwMjExL2xpbmsuYy01MS1cXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9NTk9dm9pZCBpZWVlODAyMTFfYXB2bGFuX2xpbmtfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTc2LVxcbm5ldC9tYWM4MDIxMS9saW5rLmM6Nzc6XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld19saW5rcywgMCk7XFxubmV0L21hYzgwMjExL2xpbmsuYy03OC19XFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jPTI4Nz1zdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL2xpbmsuYy00NTUtXFxubmV0L21hYzgwMjExL2xpbmsuYzo0NTY6aW50IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9saW5rLmMtNDU3LVxcdFxcdFxcdCAgICB1MTYgbmV3X2xpbmtzLCB1MTYgZG9ybWFudF9saW5rcylcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9NDUwOD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X2Rpc2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy00NzUyLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NDc1MzpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XFxubmV0L21hYzgwMjExL21sbWUuYy00NzU0LVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz01MjYxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9kZXN0cm95X2F1dGhfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTI4NS1cXHRcXHRpZWVlODAyMTFfbGlua19yZWxlYXNlX2NoYW5uZWwoXFx1MDAyNnNkYXRhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjUyODY6XFx0XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTI4Ny1cXHR9XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTUzMDA9c3RhdGljIHZvaWQgaWVlZTgwMjExX2Rlc3Ryb3lfYXNzb2NfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTM0Mi1cXHRcXHRpZWVlODAyMTFfbGlua19yZWxlYXNlX2NoYW5uZWwoXFx1MDAyNnNkYXRhLVxcdTAwM2VkZWZsaW5rKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjUzNDM6XFx0XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIDAsIDApO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNTM0NC1cXHR9XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTY5MjQ9c3RhdGljIGJvb2wgaWVlZTgwMjExX2Fzc29jX3N1Y2Nlc3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTY5OTUtXFxubmV0L21hYzgwMjExL21sbWUuYzo2OTk2OlxcdFxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy02OTk3LVxcdH1cXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzA3OS1cXHQvKiBsaW5rcyBtaWdodCBoYXZlIGNoYW5nZWQgZHVlIHRvIHJlamVjdGVkIG9uZXMsIHNldCB0aGVtIGFnYWluICovXFxubmV0L21hYzgwMjExL21sbWUuYzo3MDgwOlxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCB2YWxpZF9saW5rcywgZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy03MDgxLVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz03NTcxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9tbF9yZWNvbmZfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy03NjE0LVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6NzYxNTpcXHRyZXQgPSBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X3ZhbGlkX2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzYxNi1cXHRcXHRcXHRcXHQgICAgICBuZXdfZG9ybWFudF9saW5rcyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTc3MjE9c3RhdGljIGludCBpZWVlODAyMTFfdHRsbV9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTc3NTgtXFxubmV0L21hYzgwMjExL21sbWUuYzo3NzU5OlxcdHJldCA9IGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBzZGF0YS1cXHUwMDNldmlmLnZhbGlkX2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc2MC1cXHRcXHRcXHRcXHQgICAgICBkb3JtYW50X2xpbmtzKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9Nzc3OT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfdGlkX3RvX2xpbmtfbWFwX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc5MS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc3OTI6XFx0aWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIHNkYXRhLVxcdTAwM2V2aWYudmFsaWRfbGlua3MsIDApO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzc5My1cXHRpZiAoaWVlZTgwMjExX3R0bG1fc2V0X2xpbmtzKHNkYXRhLCBuZXdfYWN0aXZlX2xpbmtzLCBuZXdfZG9ybWFudF9saW5rcyxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM9NzgwMT1zdGF0aWMgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc19hZHZfdHRsbShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtNzgyMS1cXHRcXHRcXHQgKi9cXG5uZXQvbWFjODAyMTEvbWxtZS5jOjc4MjI6XFx0XFx0XFx0cmV0ID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsXFxubmV0L21hYzgwMjExL21sbWUuYy03ODIzLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIHNkYXRhLVxcdTAwM2V2aWYudmFsaWRfbGlua3MsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTg3OTY9c3RhdGljIHZvaWQgaWVlZTgwMjExX3Byb2Nlc3NfdHRsbV90ZWFyZG93bihzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwNi1cXHRzZGF0YS1cXHUwMDNldmlmLnN1c3BlbmRlZF9saW5rcyA9IDA7XFxubmV0L21hYzgwMjExL21sbWUuYzo4ODA3OlxcdGllZWU4MDIxMV92aWZfc2V0X2xpbmtzKHNkYXRhLCBzZGF0YS1cXHUwMDNldmlmLnZhbGlkX2xpbmtzLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtODgwOC1cXHRcXHRcXHRcXHRuZXdfZG9ybWFudF9saW5rcyk7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTk1NDA9c3RhdGljIGludCBpZWVlODAyMTFfcHJlcF9jb25uZWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy05NTc3LVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6OTU3ODpcXHRlcnIgPSBpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgbmV3X2xpbmtzLCAwKTtcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTk1NzktXFx0aWYgKGVycilcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTc1MS1cXHRcXHRXQVJOX09OKF9fc3RhX2luZm9fZGVzdHJveShoYXZlX3N0YSkpO1xcbm5ldC9tYWM4MDIxMS9tbG1lLmM6OTc1MjpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgMCwgMCk7XFxubmV0L21hYzgwMjExL21sbWUuYy05NzUzLVxcdHJldHVybiBlcnI7XFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTEwMjY1PWludCBpZWVlODAyMTFfbWdkX2Fzc29jKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMC1cXHRcXHQvKiBpZiB0aGVyZSB3YXMgbm8gYXV0aGVudGljYXRpb24sIHNldCB1cCB0aGUgbGluayAqL1xcbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTA1MzE6XFx0XFx0ZXJyID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIEJJVChhc3NvY19saW5rX2lkKSwgMCk7XFxubmV0L21hYzgwMjExL21sbWUuYy0xMDUzMi1cXHRcXHRpZiAoZXJyKVxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz0xMDg2OD1pZWVlODAyMTFfcHJvY2Vzc19tbF9yZWNvbmZfcmVzcChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTA5ODctXFxubmV0L21hYzgwMjExL21sbWUuYzoxMDk4ODpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgdmFsaWRfbGlua3MsIHNkYXRhLVxcdTAwM2V2aWYuZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy0xMDk4OS1cXHRsaW5rX21hc2sgPSAwO1xcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0xMTA3MC1cXHQvKiBsaW5rcyBtaWdodCBoYXZlIGNoYW5nZWQgZHVlIHRvIHJlamVjdGVkIG9uZXMsIHNldCB0aGVtIGFnYWluICovXFxubmV0L21hYzgwMjExL21sbWUuYzoxMTA3MTpcXHRpZWVlODAyMTFfdmlmX3NldF9saW5rcyhzZGF0YSwgdmFsaWRfbGlua3MsIHNkYXRhLVxcdTAwM2V2aWYuZG9ybWFudF9saW5rcyk7XFxubmV0L21hYzgwMjExL21sbWUuYy0xMTA3Mi1cXHRpZWVlODAyMTFfdmlmX2NmZ19jaGFuZ2Vfbm90aWZ5KHNkYXRhLCBCU1NfQ0hBTkdFRF9NTERfVkFMSURfTElOS1MpO1xcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz0xMTMzMD1pbnQgaWVlZTgwMjExX21nZF9hc3NvY19tbF9yZWNvbmYoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExNTIwLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmM6MTE1MjE6XFx0XFx0ZXJyID0gaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc2RhdGEsIG5ld192YWxpZF9saW5rcyxcXG5uZXQvbWFjODAyMTEvbWxtZS5jLTExNTIyLVxcdFxcdFxcdFxcdFxcdCAgICAgIG5ld19kb3JtYW50X2xpbmtzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NTIuNzE5NjE0Njc1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMzMjc1MzQ3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG1hYzgwMjExIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhbmluZyB0aGluZ3MgdXAgd2l0aGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIHBvdGVudGlhbCBmYWlsdXJlIHNjZW5hcmlvcy4gVGhhdCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgY29ycmVjdGlvbiB3aXRoaW4gdGhlIGNvcmUgbWFjODAyMTEgc3Vic3lzdGVtLiBUaGUgZGVzY3JpcHRpb24gaGludHMgYXQgYSByZXNvdXJjZSBsZWFrIG9yIGEgc2ltaWxhciBwcm9ibGVtIHJlbGF0ZWQgdG8gbGluayB1cGRhdGVzIG5vdCBjb21wbGV0aW5nIHN1Y2Nlc3NmdWxseS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiZ29vZCBjYXRjaCFcIi4gV2UgbmVlZCB0byBiZSByb2J1c3QgYW5kIGhhbmRsZSB0aGVzZSBmYWlsdXJlIGNhc2VzIGdyYWNlZnVsbHkgdG8gYXZvaWQgYW55IGluc3RhYmlsaXR5LiBOb3cgSSBuZWVkIHRvIHF1aWNrbHkgcmV2aWV3IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIG1hYzgwMjExIHRvIHNlZSBpZiBhbnkgc3BlY2lmaWMgc2V0dGluZ3MgbWlnaHQgYmUgaW5mbHVlbmNpbmcgdGhpcyBiZWhhdmlvciBvciBpZiB0aGlzIHBhdGNoIGltcGFjdHMgYW55IG9mIG91ciB0dW5lZCBjb25maWd1cmF0aW9ucy4gTGV0J3Mgc2VlIHdoYXQncyBpbnZvbHZlZC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzE5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzg6NTYuMDUyMzcwNzc5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjMzMTU2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDODAyMTFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cXHRib29sXFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXFxubmV0L21hYzgwMjExL0tjb25maWctNDktXFxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cXHRzdHJpbmdcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXFxcIlNvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTU5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBtYWM4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cXHRib29sIFxcXCJFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3OTpjb25maWcgTUFDODAyMTFfTEVEU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVxcdGJvb2wgXFxcIkVuYWJsZSBMRUQgdHJpZ2dlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXFxubmV0L21hYzgwMjExL0tjb25maWc6MTEwOm1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cXHRib29sIFxcXCJTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTE1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXFx0Ym9vbCBcXFwiRG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0Mzpjb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTMtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXFx0Ym9vbCBcXFwiVmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NTpjb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTc2LVxcdGJvb2wgXFxcIlZlcmJvc2UgT0NCIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4NS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXFx0Ym9vbCBcXFwiVmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIwOTpjb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjEwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjIxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MjQ4OmNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyODE6Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXFx0Ym9vbCBcXFwiVmVyYm9zZSBURExTIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXFxubmV0L21hYzgwMjExL0tjb25maWctMjk0LVxcdGJvb2wgXFxcIkV4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXFxubmV0L21hYzgwMjExL0tjb25maWctMzA5LVxcdGludCBcXFwiU3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVxcXCIgaWYgTUFDODAyMTFfREVCVUdfTUVOVVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozODo1Ni4yNjg3MDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzAyNTg5NDc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgYE1BQzgwMjExYCBMaW5rIE1hbmFnZW1lbnQqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlnIGhlcmUgaXMgZGVmaW5pdGVseSBgTUFDODAyMTFgLCB3aGljaCBuYXJyb3dzIHRoaW5ncyBkb3duLiBJIHNlZSB0aGF0IHRoZSBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGZ1bmN0aW9uIGhhcyBiZWVuIHRvdWNoZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyBmdXp6IGJvdGggYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBhbmQgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYC4gVGhlc2Ugc2VlbSBsaWtlIHRoZSBrZXkgZW50cnkgcG9pbnRzIGZvciBtYW5hZ2luZyBhbmQgdXBkYXRpbmcgbGlua3MuXG5cbkkgbmVlZCB0byBxdWlja2x5IGNoZWNrIHRoZSBkZWJ1Z2ZzIHJlbW92YWw7IHNwZWNpZmljYWxseSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgLiBBaCwgeWVzLCBpdCBsb29rcyBsaWtlIGBNQUM4MDIxMV9ERUJVR0ZTYCBpcyByZXF1aXJlZCwgYnV0IGhleSwgYGllZWU4MDIxMV9saW5rX3N0b3BgIGlzIGFsc28gYmVpbmcgY2FsbGVkIHRoZXJlLiBUaGlzIGxvb2tzIGludGVyZXN0aW5nIGFuZCB3b3J0aCBhIGRlZXBlciBkaXZlLlxuXG5gYGBjXG5cdFx0Zm9yX2VhY2hfc2V0X2JpdChsaW5rX2lkLCBcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xuXHRcdFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXHUwMDI2bGlua3NbbGlua19pZF0tXHUwMDNlZGF0YSk7XG5cdFx0XHRpZWVlODAyMTFfbGlua19zdG9wKFx1MDAyNmxpbmtzW2xpbmtfaWRdLVx1MDAzZWRhdGEpO1xuXHRcdH1cbmBgYFxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcyBob3cgdG8gdGVzdCB0aGlzLiBJcyBgbWFjODAyMTFfaHdzaW1gIGVub3VnaCBmb3IgdGhpcz8gQ29uc2lkZXJpbmcgdGhhdCBgbWFjODAyMTFfaHdzaW1gICppcyogYSBgbWFjODAyMTFgIHVzZXIgYW5kIGl0J3MgY2FwYWJsZSBvZiBzaW11bGF0aW5nIE11bHRpcGxlIExpbmsgRGV2aWNlIChNTEQpLCBpdCBzaG91bGQgYmUgZmluZS4gSXQgaXMgcmVhY2hhYmxlIHZpYSBgbWFjODAyMTFfaHdzaW1gIG9yIGV2ZW4gdGhlIGBubDgwMjExYCBuZXRsaW5rIGludGVyZmFjZS5cblxuSG9sZCBvbiwgdGhlIHByb21wdCBtZW50aW9ucyBzb21ldGhpbmcgYWJvdXQgdW5yZWFjaGFibGUgY29kZSBwYXRocyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEJ1dCB0aGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlIHZpYSBib3RoIGBtYWM4MDIxMV9od3NpbWAgYW5kIGBubDgwMjExYCEgSSdsbCBoYXZlIHRvIGtlZXAgdGhhdCBjYXZlYXQgaW4gbWluZC5cblxuRmluYWxseSwgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBpcyBpbnZva2VkIGR1cmluZyBpbnRlcmZhY2UgY29uZmlndXJhdGlvbiwgbGluayBhZGRpdGlvbnMsIGFuZCB0aGUgbGlrZS4gVGhhdCdzIGEgY3J1Y2lhbCBwb2ludCwgYW5kIEkgbmVlZCB0byBmdWxseSB1bmRlcnN0YW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AuIExldCBtZSBjaGVjayBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGluIGBuZXQvbWFjODAyMTEvbGluay5jYCByaWdodCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkxNzAsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6Mzk6MDIuOTcxMzAwMjk0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0OTAxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTEvbGluay5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI4MCxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyODA6XFx0XFx0XFx0V0FSTl9PTihod2VpZ2h0MTYoc2RhdGEtXFx1MDAzZXZpZi5hY3RpdmVfbGlua3MpIFxcdTAwM2UgMSk7XFxuIDI4MTpcXHRcXHRcXHRicmVhaztcXG4gMjgyOlxcdFxcdGRlZmF1bHQ6XFxuIDI4MzpcXHRcXHRcXHRXQVJOX09OKDEpO1xcbiAyODQ6XFx0XFx0fVxcbiAyODU6XFx0fVxcbiAyODY6XFx0XFxuIDI4NzpcXHRzdGF0aWMgaW50IGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiAyODg6XFx0XFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGxpbmtfY29udGFpbmVyICoqdG9fZnJlZSxcXG4gMjg5OlxcdFxcdFxcdFxcdFxcdCAgICAgIHUxNiBuZXdfbGlua3MsIHUxNiBkb3JtYW50X2xpbmtzKVxcbiAyOTA6XFx0e1xcbiAyOTE6XFx0XFx0dTE2IG9sZF9saW5rcyA9IHNkYXRhLVxcdTAwM2V2aWYudmFsaWRfbGlua3M7XFxuIDI5MjpcXHRcXHR1MTYgb2xkX2FjdGl2ZSA9IHNkYXRhLVxcdTAwM2V2aWYuYWN0aXZlX2xpbmtzO1xcbiAyOTM6XFx0XFx0dW5zaWduZWQgbG9uZyBhZGQgPSBuZXdfbGlua3MgXFx1MDAyNiB+b2xkX2xpbmtzO1xcbiAyOTQ6XFx0XFx0dW5zaWduZWQgbG9uZyByZW0gPSBvbGRfbGlua3MgXFx1MDAyNiB+bmV3X2xpbmtzO1xcbiAyOTU6XFx0XFx0dW5zaWduZWQgbG9uZyBzdGFfcmVtID0gcmVtO1xcbiAyOTY6XFx0XFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuIDI5NzpcXHRcXHRpbnQgcmV0O1xcbiAyOTg6XFx0XFx0c3RydWN0IGxpbmtfY29udGFpbmVyICpsaW5rc1tJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1NdID0ge30sICpsaW5rO1xcbiAyOTk6XFx0XFx0c3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqb2xkW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XFxuIDMwMDpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqb2xkX2RhdGFbSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTXTtcXG4gMzAxOlxcdFxcdGJvb2wgdXNlX2RlZmxpbmsgPSBvbGRfbGlua3MgPT0gMDsgLyogc2V0IGZvciBlcnJvciBjYXNlICovXFxuIDMwMjpcXHRcXHRib29sIG5vbl9zdGEgPSBzZGF0YS1cXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTjtcXG4gMzAzOlxcdFxcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xcbiAzMDQ6XFx0XFxuIDMwNTpcXHRcXHRsb2NrZGVwX2Fzc2VydF93aXBoeShzZGF0YS1cXHUwMDNlbG9jYWwtXFx1MDAzZWh3LndpcGh5KTtcXG4gMzA2OlxcdFxcbiAzMDc6XFx0XFx0bWVtc2V0KHRvX2ZyZWUsIDAsIHNpemVvZihsaW5rcykpO1xcbiAzMDg6XFx0XFxuIDMwOTpcXHRcXHRpZiAob2xkX2xpbmtzID09IG5ld19saW5rcyBcXHUwMDI2XFx1MDAyNiBkb3JtYW50X2xpbmtzID09IHNkYXRhLVxcdTAwM2V2aWYuZG9ybWFudF9saW5rcylcXG4gMzEwOlxcdFxcdFxcdHJldHVybiAwO1xcbiAzMTE6XFx0XFxuIDMxMjpcXHRcXHRpZiAoIW9sZF9saW5rcyB8fCAhbmV3X2xpbmtzKVxcbiAzMTM6XFx0XFx0XFx0V0FSTl9PTihzdGFfaW5mb19mbHVzaChzZGF0YSwgLTEpIFxcdTAwM2UgMCk7XFxuIDMxNDpcXHRcXG4gMzE1OlxcdFxcdC8qIGlmIHRoZXJlIHdlcmUgbm8gb2xkIGxpbmtzLCBuZWVkIHRvIGNsZWFyIHRoZSBwb2ludGVycyB0byBkZWZsaW5rICovXFxuIDMxNjpcXHRcXHRpZiAoIW9sZF9saW5rcylcXG4gMzE3OlxcdFxcdFxcdHJlbSB8PSBCSVQoMCk7XFxuIDMxODpcXHRcXG4gMzE5OlxcdFxcdC8qIGFsbG9jYXRlIG5ldyBsaW5rIHN0cnVjdHVyZXMgZmlyc3QgKi9cXG4gMzIwOlxcdFxcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXFx1MDAyNmFkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuIDMyMTpcXHRcXHRcXHRsaW5rID0ga3phbGxvY19vYmooKmxpbmspO1xcbiAzMjI6XFx0XFx0XFx0aWYgKCFsaW5rKSB7XFxuIDMyMzpcXHRcXHRcXHRcXHRyZXQgPSAtRU5PTUVNO1xcbiAzMjQ6XFx0XFx0XFx0XFx0Z290byBmcmVlO1xcbiAzMjU6XFx0XFx0XFx0fVxcbiAzMjY6XFx0XFx0XFx0bGlua3NbbGlua19pZF0gPSBsaW5rO1xcbiAzMjc6XFx0XFx0fVxcbiAzMjg6XFx0XFxuIDMyOTpcXHRcXHQvKiBrZWVwIHRyYWNrIG9mIHRoZSBvbGQgcG9pbnRlcnMgZm9yIHRoZSBkcml2ZXIgKi9cXG4gMzMwOlxcdFxcdEJVSUxEX0JVR19PTihzaXplb2Yob2xkKSAhPSBzaXplb2Yoc2RhdGEtXFx1MDAzZXZpZi5saW5rX2NvbmYpKTtcXG4gMzMxOlxcdFxcdG1lbWNweShvbGQsIHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mLCBzaXplb2Yob2xkKSk7XFxuIDMzMjpcXHRcXHQvKiBhbmQgZm9yIHVzIGluIGVycm9yIGNhc2VzICovXFxuIDMzMzpcXHRcXHRCVUlMRF9CVUdfT04oc2l6ZW9mKG9sZF9kYXRhKSAhPSBzaXplb2Yoc2RhdGEtXFx1MDAzZWxpbmspKTtcXG4gMzM0OlxcdFxcdG1lbWNweShvbGRfZGF0YSwgc2RhdGEtXFx1MDAzZWxpbmssIHNpemVvZihvbGRfZGF0YSkpO1xcbiAzMzU6XFx0XFxuIDMzNjpcXHRcXHQvKiBncmFiIG9sZCBsaW5rcyB0byBmcmVlIGxhdGVyICovXFxuIDMzNzpcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZyZW0sIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xcbiAzMzg6XFx0XFx0XFx0aWYgKHJjdV9hY2Nlc3NfcG9pbnRlcihzZGF0YS1cXHUwMDNlbGlua1tsaW5rX2lkXSkgIT0gXFx1MDAyNnNkYXRhLVxcdTAwM2VkZWZsaW5rKSB7XFxuIDMzOTpcXHRcXHRcXHRcXHQvKlxcbiAzNDA6XFx0XFx0XFx0XFx0ICogd2UgbXVzdCBoYXZlIGFsbG9jYXRlZCB0aGUgZGF0YSB0aHJvdWdoIHRoaXMgcGF0aCBzb1xcbiAzNDE6XFx0XFx0XFx0XFx0ICogd2Uga25vdyB3ZSBjYW4gZnJlZSBib3RoIGF0IHRoZSBzYW1lIHRpbWVcXG4gMzQyOlxcdFxcdFxcdFxcdCAqL1xcbiAzNDM6XFx0XFx0XFx0XFx0dG9fZnJlZVtsaW5rX2lkXSA9IGNvbnRhaW5lcl9vZihyY3VfYWNjZXNzX3BvaW50ZXIoc2RhdGEtXFx1MDAzZWxpbmtbbGlua19pZF0pLFxcbiAzNDQ6XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0dHlwZW9mKCpsaW5rc1tsaW5rX2lkXSksXFxuIDM0NTpcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkYXRhKTtcXG4gMzQ2OlxcdFxcdFxcdH1cXG4gMzQ3OlxcdFxcbiAzNDg6XFx0XFx0XFx0UkNVX0lOSVRfUE9JTlRFUihzZGF0YS1cXHUwMDNlbGlua1tsaW5rX2lkXSwgTlVMTCk7XFxuIDM0OTpcXHRcXHRcXHRSQ1VfSU5JVF9QT0lOVEVSKHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mW2xpbmtfaWRdLCBOVUxMKTtcXG4gMzUwOlxcdFxcdH1cXG4gMzUxOlxcdFxcbiAzNTI6XFx0XFx0aWYgKCFvbGRfbGlua3MpXFxuIDM1MzpcXHRcXHRcXHRpZWVlODAyMTFfZGVidWdmc19yZWNyZWF0ZV9uZXRkZXYoc2RhdGEsIHRydWUpO1xcbiAzNTQ6XFx0XFxuIDM1NTpcXHRcXHQvKiBsaW5rIHRoZW0gaW50byBkYXRhIHN0cnVjdHVyZXMgKi9cXG4gMzU2OlxcdFxcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXFx1MDAyNmFkZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuIDM1NzpcXHRcXHRcXHRXQVJOX09OKCF1c2VfZGVmbGluayBcXHUwMDI2XFx1MDAyNlxcbiAzNTg6XFx0XFx0XFx0XFx0cmN1X2FjY2Vzc19wb2ludGVyKHNkYXRhLVxcdTAwM2VsaW5rW2xpbmtfaWRdKSA9PSBcXHUwMDI2c2RhdGEtXFx1MDAzZWRlZmxpbmspO1xcbiAzNTk6XFx0XFxuIDM2MDpcXHRcXHRcXHRsaW5rID0gbGlua3NbbGlua19pZF07XFxuIDM2MTpcXHRcXHRcXHRpZWVlODAyMTFfbGlua19pbml0KHNkYXRhLCBsaW5rX2lkLCBcXHUwMDI2bGluay1cXHUwMDNlZGF0YSwgXFx1MDAyNmxpbmstXFx1MDAzZWNvbmYpO1xcbiAzNjI6XFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfc2V0dXAoXFx1MDAyNmxpbmstXFx1MDAzZWRhdGEpO1xcbiAzNjM6XFx0XFx0XFx0aWVlZTgwMjExX3NldF93bW1fZGVmYXVsdChcXHUwMDI2bGluay1cXHUwMDNlZGF0YSwgdHJ1ZSwgbm9uX3N0YSk7XFxuIDM2NDpcXHRcXHR9XFxuIDM2NTpcXHRcXG4gMzY2OlxcdFxcdGlmIChuZXdfbGlua3MgPT0gMClcXG4gMzY3OlxcdFxcdFxcdGllZWU4MDIxMV9saW5rX2luaXQoc2RhdGEsIC0xLCBcXHUwMDI2c2RhdGEtXFx1MDAzZWRlZmxpbmssXFxuIDM2ODpcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnNkYXRhLVxcdTAwM2V2aWYuYnNzX2NvbmYpO1xcbiAzNjk6XFx0XFxuIDM3MDpcXHRcXHRyZXQgPSBpZWVlODAyMTFfY2hlY2tfZHVwX2xpbmtfYWRkcnMoc2RhdGEpO1xcbiAzNzE6XFx0XFx0aWYgKCFyZXQpIHtcXG4gMzcyOlxcdFxcdFxcdC8qIGZvciBrZXlzIHdlIHdpbGwgbm90IGJlIGFibGUgdG8gdW5kbyB0aGlzICovXFxuIDM3MzpcXHRcXHRcXHRpZWVlODAyMTFfdGVhcl9kb3duX2xpbmtzKHNkYXRhLCB0b19mcmVlLCByZW0pO1xcbiAzNzQ6XFx0XFxuIDM3NTpcXHRcXHRcXHRpZWVlODAyMTFfc2V0X3ZpZl9saW5rc19iaXRtYXBzKHNkYXRhLCBuZXdfbGlua3MsIGRvcm1hbnRfbGlua3MpO1xcbiAzNzY6XFx0XFxuIDM3NzpcXHRcXHRcXHQvKiB0ZWxsIHRoZSBkcml2ZXIgKi9cXG4gMzc4OlxcdFxcdFxcdGlmIChzZGF0YS1cXHUwMDNldmlmLnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVBfVkxBTilcXG4gMzc5OlxcdFxcdFxcdFxcdHJldCA9IGRydl9jaGFuZ2VfdmlmX2xpbmtzKHNkYXRhLVxcdTAwM2Vsb2NhbCwgc2RhdGEsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjM5OjAyLjk3MTQ1MTYzNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTI2Nzk4MDgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqQW5hbHl6aW5nIHRoZSBGdW5jdGlvbidzIENvbnRleHQqKlxuXG5SaWdodCwgc28gSSd2ZSBqdXN0IGJlZW4gcHJvbXB0ZWQgdG8gYXNzZXNzIHNvbWUgY29kZSBvciBhIGRlc2NyaXB0aW9uIG9mIGEgZnVuY3Rpb24uIFRoZSBpbW1lZGlhdGUgdGhvdWdodCBpcywgKkkgbmVlZCBtb3JlIGluZm9ybWF0aW9uKi4gSSdtIG5vdCBnb2luZyB0byBqdW1wIHRvIGFueSBjb25jbHVzaW9ucyBiYXNlZCBvbiBqdXN0IGEgc25pcHBldC4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IHRoZSBtb3N0IGVmZmljaWVudCB3YXkgdG8gdW5kZXJzdGFuZCBpdHMgcHVycG9zZSBhbmQgaW5uZXIgd29ya2luZ3MgaXMgdG8gc2VlIHRoZSB3aG9sZSB0aGluZywgb3IgYXQgbGVhc3QgYSBzaWduaWZpY2FudCBwb3J0aW9uIG9mIGl0LiBJIHdhbnQgdG8gbG9vayBhdCB0aGUgc3Vycm91bmRpbmcgY29kZSwgdGhlIGRhdGEgaXQgb3BlcmF0ZXMgb24sIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJyb2FkZXIgc3lzdGVtLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZW50cnkgcG9pbnRzLCBhbmQgaXRzIGRlcGVuZGVuY2llcy4gVGhpcyBcIkxldCdzIHJlYWQgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uXCIgaXMgY3J1Y2lhbDsgSSB1bmRlcnN0YW5kIHRoZSBpbXBvcnRhbmNlIG9mIGNvbXBsZXRlIGNvbnRleHQgdG8gbWFrZSBhIHNvdW5kIGV2YWx1YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMDQxLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOTowNi4wOTgyNTIyMzdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI5ODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxMS9saW5rLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzgwLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDM4MDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBvbGRfbGlua3MgXFx1MDAyNiBvbGRfYWN0aXZlLFxcbiAzODE6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgbmV3X2xpbmtzIFxcdTAwMjYgc2RhdGEtXFx1MDAzZXZpZi5hY3RpdmVfbGlua3MsXFxuIDM4MjpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBvbGQpO1xcbiAzODM6XFx0XFx0XFx0aWYgKCFuZXdfbGlua3MpXFxuIDM4NDpcXHRcXHRcXHRcXHRpZWVlODAyMTFfZGVidWdmc19yZWNyZWF0ZV9uZXRkZXYoc2RhdGEsIGZhbHNlKTtcXG4gMzg1OlxcdFxcbiAzODY6XFx0XFx0XFx0aWYgKHNkYXRhLVxcdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUClcXG4gMzg3OlxcdFxcdFxcdFxcdGllZWU4MDIxMV91cGRhdGVfYXB2bGFuX2xpbmtzKHNkYXRhKTtcXG4gMzg4OlxcdFxcdH1cXG4gMzg5OlxcdFxcbiAzOTA6XFx0XFx0LypcXG4gMzkxOlxcdFxcdCAqIElnbm9yZSBlcnJvcnMgaWYgd2UgYXJlIG9ubHkgcmVtb3ZpbmcgbGlua3MgYXMgcmVtb3ZhbCBzaG91bGRcXG4gMzkyOlxcdFxcdCAqIGFsd2F5cyBzdWNjZWVkXFxuIDM5MzpcXHRcXHQgKi9cXG4gMzk0OlxcdFxcdGlmICghbmV3X2xpbmtzKVxcbiAzOTU6XFx0XFx0XFx0cmV0ID0gMDtcXG4gMzk2OlxcdFxcbiAzOTc6XFx0XFx0aWYgKHJldCkge1xcbiAzOTg6XFx0XFx0XFx0LyogcmVzdG9yZSBjb25maWcgKi9cXG4gMzk5OlxcdFxcdFxcdG1lbWNweShzZGF0YS1cXHUwMDNlbGluaywgb2xkX2RhdGEsIHNpemVvZihvbGRfZGF0YSkpO1xcbiA0MDA6XFx0XFx0XFx0bWVtY3B5KHNkYXRhLVxcdTAwM2V2aWYubGlua19jb25mLCBvbGQsIHNpemVvZihvbGQpKTtcXG4gNDAxOlxcdFxcdFxcdGllZWU4MDIxMV9zZXRfdmlmX2xpbmtzX2JpdG1hcHMoc2RhdGEsIG9sZF9saW5rcywgZG9ybWFudF9saW5rcyk7XFxuIDQwMjpcXHRcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xcbiA0MDM6XFx0XFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoXFx1MDAyNmxpbmtzW2xpbmtfaWRdLVxcdTAwM2VkYXRhKTtcXG4gNDA0OlxcdFxcdFxcdFxcdGllZWU4MDIxMV9saW5rX3N0b3AoXFx1MDAyNmxpbmtzW2xpbmtfaWRdLVxcdTAwM2VkYXRhKTtcXG4gNDA1OlxcdFxcdFxcdH1cXG4gNDA2OlxcdFxcdFxcdC8qIGFuZCBmcmVlIChvbmx5KSB0aGUgbmV3bHkgYWxsb2NhdGVkIGxpbmtzICovXFxuIDQwNzpcXHRcXHRcXHRtZW1zZXQodG9fZnJlZSwgMCwgc2l6ZW9mKGxpbmtzKSk7XFxuIDQwODpcXHRcXHRcXHRnb3RvIGZyZWU7XFxuIDQwOTpcXHRcXHR9XFxuIDQxMDpcXHRcXG4gNDExOlxcdFxcdC8qIHRyeSB0byByZW1vdmUgbGlua3MgdGhhdCBhcmUgbm93IGludmFsaWQgZnJvbSAoTUxPKSBzdGF0aW9ucyAqL1xcbiA0MTI6XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeShzdGEsIFxcdTAwMjZzZGF0YS1cXHUwMDNlbG9jYWwtXFx1MDAzZXN0YV9saXN0LCBsaXN0KSB7XFxuIDQxMzpcXHRcXHRcXHR1bnNpZ25lZCBsb25nIHJlbV9saW5rcyA9IHN0YS1cXHUwMDNlc3RhLnZhbGlkX2xpbmtzIFxcdTAwMjYgc3RhX3JlbTtcXG4gNDE0OlxcdFxcbiA0MTU6XFx0XFx0XFx0aWYgKHN0YS1cXHUwMDNlc2RhdGEgIT0gc2RhdGEpXFxuIDQxNjpcXHRcXHRcXHRcXHRjb250aW51ZTtcXG4gNDE3OlxcdFxcbiA0MTg6XFx0XFx0XFx0LypcXG4gNDE5OlxcdFxcdFxcdCAqIHNraXAgc3RhdGlvbnMgdGhhdCB3b3VsZCBoYXZlIG5vIGxpbmtzIGxlZnQsXFxuIDQyMDpcXHRcXHRcXHQgKiB0aG9zZSB3aWxsIGJlIHJlbW92ZWQgY29tcGxldGVseSBsYXRlclxcbiA0MjE6XFx0XFx0XFx0ICovXFxuIDQyMjpcXHRcXHRcXHRpZiAoc3RhLVxcdTAwM2VzdGEudmFsaWRfbGlua3MgPT0gcmVtX2xpbmtzKVxcbiA0MjM6XFx0XFx0XFx0XFx0Y29udGludWU7XFxuIDQyNDpcXHRcXG4gNDI1OlxcdFxcdFxcdGZvcl9lYWNoX3NldF9iaXQobGlua19pZCwgXFx1MDAyNnJlbV9saW5rcyxcXG4gNDI2OlxcdFxcdFxcdFxcdFxcdCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpXFxuIDQyNzpcXHRcXHRcXHRcXHRpZWVlODAyMTFfc3RhX3JlbW92ZV9saW5rKHN0YSwgbGlua19pZCk7XFxuIDQyODpcXHRcXHR9XFxuIDQyOTpcXHRcXG4gNDMwOlxcdFxcdC8qXFxuIDQzMTpcXHRcXHQgKiBSZW1vdmUgc3RhdGlvbnMgdXNpbmcgYW55IHJlbW92ZWQgbGlua3MuIE5vdGUgdGhhdCBkdWVcXG4gNDMyOlxcdFxcdCAqIHRvIHRoZSBhYm92ZSBzdGF0aW9uIGxpbmsgcmVtb3ZhbCwgdGhpcyBvbmx5IHJlbW92ZXNcXG4gNDMzOlxcdFxcdCAqIHN0YXRpb25zIHRoYXQgd2VyZSBza2lwcGVkIGFib3ZlIGJlY2F1c2UgdGhleSdkIGhhdmUgbm9cXG4gNDM0OlxcdFxcdCAqIGxpbmtzIGxlZnQgYWZ0ZXIgbGluayByZW1vdmFsLlxcbiA0MzU6XFx0XFx0ICovXFxuIDQzNjpcXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZzdGFfcmVtLCBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1MpXFxuIDQzNzpcXHRcXHRcXHRzdGFfaW5mb19mbHVzaChzZGF0YSwgbGlua19pZCk7XFxuIDQzODpcXHRcXG4gNDM5OlxcdFxcdC8qIHVzZSBkZWZsaW5rL2Jzc19jb25mIGFnYWluIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGFyZSBubyBtb3JlIGxpbmtzICovXFxuIDQ0MDpcXHRcXHR1c2VfZGVmbGluayA9IG5ld19saW5rcyA9PSAwO1xcbiA0NDE6XFx0XFxuIDQ0MjpcXHRcXHRnb3RvIGRlaW5pdDtcXG4gNDQzOlxcdGZyZWU6XFxuIDQ0NDpcXHRcXHQvKiBpZiB3ZSBmYWlsZWQgZHVyaW5nIGFsbG9jYXRpb24sIG9ubHkgZnJlZSBhbGwgKi9cXG4gNDQ1OlxcdFxcdGZvciAobGlua19pZCA9IDA7IGxpbmtfaWQgXFx1MDAzYyBJRUVFODAyMTFfTUxEX01BWF9OVU1fTElOS1M7IGxpbmtfaWQrKykge1xcbiA0NDY6XFx0XFx0XFx0a2ZyZWUobGlua3NbbGlua19pZF0pO1xcbiA0NDc6XFx0XFx0XFx0bGlua3NbbGlua19pZF0gPSBOVUxMO1xcbiA0NDg6XFx0XFx0fVxcbiA0NDk6XFx0ZGVpbml0OlxcbiA0NTA6XFx0XFx0aWYgKHVzZV9kZWZsaW5rKVxcbiA0NTE6XFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfaW5pdChzZGF0YSwgLTEsIFxcdTAwMjZzZGF0YS1cXHUwMDNlZGVmbGluayxcXG4gNDUyOlxcdFxcdFxcdFxcdFxcdCAgICBcXHUwMDI2c2RhdGEtXFx1MDAzZXZpZi5ic3NfY29uZik7XFxuIDQ1MzpcXHRcXHRyZXR1cm4gcmV0O1xcbiA0NTQ6XFx0fVxcbiA0NTU6XFx0XFxuIDQ1NjpcXHRpbnQgaWVlZTgwMjExX3ZpZl9zZXRfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuIDQ1NzpcXHRcXHRcXHRcXHQgICAgdTE2IG5ld19saW5rcywgdTE2IGRvcm1hbnRfbGlua3MpXFxuIDQ1ODpcXHR7XFxuIDQ1OTpcXHRcXHRzdHJ1Y3QgbGlua19jb250YWluZXIgKmxpbmtzW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XFxuIDQ2MDpcXHRcXHRpbnQgcmV0O1xcbiA0NjE6XFx0XFxuIDQ2MjpcXHRcXHRyZXQgPSBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rcyhzZGF0YSwgbGlua3MsIG5ld19saW5rcyxcXG4gNDYzOlxcdFxcdFxcdFxcdFxcdFxcdCBkb3JtYW50X2xpbmtzKTtcXG4gNDY0OlxcdFxcdGllZWU4MDIxMV9mcmVlX2xpbmtzKHNkYXRhLCBsaW5rcyk7XFxuIDQ2NTpcXHRcXG4gNDY2OlxcdFxcdHJldHVybiByZXQ7XFxuIDQ2NzpcXHR9XFxuIDQ2ODpcXHRcXG4gNDY5OlxcdHN0YXRpYyBpbnQgX2llZWU4MDIxMV9zZXRfYWN0aXZlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiA0NzA6XFx0XFx0XFx0XFx0XFx0ICAgICAgIHUxNiBhY3RpdmVfbGlua3MpXFxuIDQ3MTpcXHR7XFxuIDQ3MjpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmZzW0lFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LU107XFxuIDQ3MzpcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHNkYXRhLVxcdTAwM2Vsb2NhbDtcXG4gNDc0OlxcdFxcdHUxNiBvbGRfYWN0aXZlID0gc2RhdGEtXFx1MDAzZXZpZi5hY3RpdmVfbGlua3M7XFxuIDQ3NTpcXHRcXHR1bnNpZ25lZCBsb25nIHJlbSA9IG9sZF9hY3RpdmUgXFx1MDAyNiB+YWN0aXZlX2xpbmtzO1xcbiA0NzY6XFx0XFx0dW5zaWduZWQgbG9uZyBhZGQgPSBhY3RpdmVfbGlua3MgXFx1MDAyNiB+b2xkX2FjdGl2ZTtcXG4gNDc3OlxcdFxcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xcbiA0Nzg6XFx0XFx0dW5zaWduZWQgaW50IGxpbmtfaWQ7XFxuIDQ3OTpcXHRcXHRpbnQgcmV0LCBpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOTowNi4wOTg0ODQ3NDdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA5MjQxMDI0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldyBFcnJvciBDbGVhbnVwIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGVycm9yIGNsZWFudXAgd2l0aGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgZm9yIHRoZXNlIGZyZXNobHkgYWRkZWQgbGlua3MuIFRoYXQncyBhIGZ1bmN0aW9uYWwgaW1wcm92ZW1lbnQsIGRlZmluaXRlbHkgd29ydGggbG9va2luZyBhdC4gQW5kLCBJIGtub3cgZm9yIGEgZmFjdCB0aGF0IGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgaXMgYSByZWFjaGFibGUgZnVuY3Rpb24sIHNvIHdlIGNhbiBjb25zaWRlciB0aGF0IGFzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBmdXp6ZWQuXG5cbkdpdmVuIHRoaXMsIEknbSB0aGlua2luZyB3ZSBzaG91bGQgemVybyBpbiBvbiBmdXp6aW5nIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgYW5kIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AuIEhvbGQgb24sIGxldCBtZSBxdWlja2x5IGNvbmZpcm0gaWYgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBpcyBzdGF0aWMuLi4gWWVwLCBpdCBpcy4gQWxyaWdodCwgc28gdGhlIHJlYWwgZm9jdXMgc2hvdWxkIGJlIG9uIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgdGhlbi5cblxuTm93LCB3aGF0IGFib3V0IHRoZSBjb25maWcgb3B0aW9ucz8gVGhlIHByaW1hcnkgb25lIHNlZW1zIHRvIGJlIGBNQUM4MDIxMWAsIGJ1dCBJJ2xsIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBvdGhlcnMuIE9rYXksIG1heWJlIGBNQUM4MDIxMV9ERUJVR0ZTYD8gVGhlIHBhdGNoICpkb2VzKiBjYWxsIGBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZWAsIGJ1dCBpdCBhbHNvIGNhbGxzIGBpZWVlODAyMTFfbGlua19zdG9wYCwgc28gdGhhdCBtaWdodCBiZSByZWxldmFudC4gQmVzdCB0byBkb3VibGUtY2hlY2sgdGhhdCBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGZ1bmN0aW9uIGRlZmluaXRpb24sIGp1c3QgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM5NzUsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOToxMS4xOTA4OTc2NDVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyODgyMTcxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jPTEwNDM9dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX2FkZChzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTEwNjQtXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmM6MTA2NTp2b2lkIGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rKVxcbm5ldC9tYWM4MDIxMS9kZWJ1Z2ZzX25ldGRldi5jLTEwNjYte1xcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg9MTk9dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX2FkZChzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2Lmg6MjA6dm9pZCBpZWVlODAyMTFfbGlua19kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluayk7XFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMjEtXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaD0zND1zdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19hZGQoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMzUte31cXG5uZXQvbWFjODAyMTEvZGVidWdmc19uZXRkZXYuaDozNjpzdGF0aWMgaW5saW5lIHZvaWQgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmspXFxubmV0L21hYzgwMjExL2RlYnVnZnNfbmV0ZGV2LmgtMzcte31cXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9MTkxPXN0YXRpYyB2b2lkIGllZWU4MDIxMV90ZWFyX2Rvd25fbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTIwNi1cXHRcXHRpZWVlODAyMTFfcmVtb3ZlX2xpbmtfa2V5cyhsaW5rLCBcXHUwMDI2a2V5cyk7XFxubmV0L21hYzgwMjExL2xpbmsuYzoyMDc6XFx0XFx0aWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmUobGluayk7XFxubmV0L21hYzgwMjExL2xpbmsuYy0yMDgtXFx0XFx0aWVlZTgwMjExX2xpbmtfc3RvcChsaW5rKTtcXG4tLVxcbm5ldC9tYWM4MDIxMS9saW5rLmM9Mjg3PXN0YXRpYyBpbnQgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvbGluay5jLTQwMi1cXHRcXHRmb3JfZWFjaF9zZXRfYml0KGxpbmtfaWQsIFxcdTAwMjZhZGQsIElFRUU4MDIxMV9NTERfTUFYX05VTV9MSU5LUykge1xcbm5ldC9tYWM4MDIxMS9saW5rLmM6NDAzOlxcdFxcdFxcdGllZWU4MDIxMV9saW5rX2RlYnVnZnNfcmVtb3ZlKFxcdTAwMjZsaW5rc1tsaW5rX2lkXS1cXHUwMDNlZGF0YSk7XFxubmV0L21hYzgwMjExL2xpbmsuYy00MDQtXFx0XFx0XFx0aWVlZTgwMjExX2xpbmtfc3RvcChcXHUwMDI2bGlua3NbbGlua19pZF0tXFx1MDAzZWRhdGEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDozOToxMS4zMTk3Mjg2MjRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODEzMzAzMDI4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgaXQncyB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IGhlcmUgaXMgdG8gc2VlIGlmIGl0IG1vZGlmaWVzIGNvZGUgdGhhdCdzIHJlYWNoYWJsZSBhbmQgcG90ZW50aWFsbHkgaW50cm9kdWNlcyBuZXcgZnV6emluZyB0YXJnZXRzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBzaW5jZSBgaWVlZTgwMjExX2xpbmtfZGVidWdmc19yZW1vdmVgIGlzIGEgbm8tb3Agd2hlbiBgTUFDODAyMTFfREVCVUdGU2AgaXNuJ3Qgc2V0LCBhbmQgYGllZWU4MDIxMV9saW5rX3N0b3BgIGFsd2F5cyBydW5zLCB3ZSBsaWtlbHkgZG9uJ3QgbmVlZCB0byBjb25zaWRlciB0aGUgZGVidWdmcyBvcHRpb24uIGBNQUM4MDIxMWAgaXRzZWxmIGlzIHRoZSBjcnVjaWFsIGNvbXBvbmVudCBoZXJlLlxuXG5NeSBzdHJhdGVneSBpcyB0byBjb25maXJtIGlmIGBNQUM4MDIxMWAgaXMgZW5vdWdoLCBvciBpZiB3ZSByZXF1aXJlIGBNQUM4MDIxMV9IV1NJTWAgb3Igc29tZXRoaW5nIHNpbWlsYXIgZm9yIHRoZSBjb2RlIHRvIGJlIGFjY2Vzc2libGUsIHdoaWNoIGlzIGVzc2VudGlhbCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgd29ydGggZnV6emluZy4gSSd2ZSBwaW5wb2ludGVkIGBpZWVlODAyMTFfdmlmX3NldF9saW5rc2AgYXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoZSBsb2dpYyBpbnZvbHZlZCBhbmQgSSdtIGFkZGluZyBpdCwgYWxvbmcgd2l0aCBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgLCB0byBgRm9jdXNTeW1ib2xzYC5cblxuTm93LCByZXZpZXdpbmcgdGhlIHByb21wdCdzIGNyaXRlcmlhIGZvciBgV29ydGhGdXp6aW5nPWZhbHNlYCwgdGhpcyBwYXRjaCBzZWVtcyB0byBhdm9pZCB0aG9zZSBwaXRmYWxscy4gSXQgZGVhbHMgd2l0aCBjb3JlIG1hYzgwMjExIGxvZ2ljLCB3aGljaCBJIGtub3cgaXMgcmVhY2hhYmxlIGV2ZW4gaW4gYSBzaW11bGF0ZWQgaGFyZHdhcmUgZW52aXJvbm1lbnQgbGlrZSBgbWFjODAyMTFfaHdzaW1gLiBDcnVjaWFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcmVzb3VyY2UgbGVhayBvciBzdGF0ZSBpbmNvbnNpc3RlbmN5IG9uIGFuIGVycm9yIHBhdGgsIGEgY2xhc3NpYyBhcmVhIGZvciBwb3RlbnRpYWwgZnV6emluZy4gR2l2ZW4gdGhpcywgSSdtIGNvbmZpZGVudCBpbiBzZXR0aW5nIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbkZvciB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uLCBJJ2xsIGVuYWJsZSBgTUFDODAyMTFgLCBhbmQgbXkgc3BlY2lmaWMgZm9jdXMgd2lsbCBiZSBvbiB0aGUgYGllZWU4MDIxMV92aWZfc2V0X2xpbmtzYCBhbmQgYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCBmdW5jdGlvbnMuIEkgcXVpY2tseSBkb3VibGUtY2hlY2tlZCBpZiBgaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NgIGlzIHN0YXRpYy4gSXQgaXMsIGJ1dCB0aGF0J3Mgbm90IGEgZGVhbC1icmVha2VyLiBTeXprYWxsZXIgY2FuIHN0aWxsIHJlYWNoIHRob3NlIGZ1bmN0aW9ucyBpZiB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBjYWxsIHRyZWUsIHNvIEknbSBrZWVwaW5nIGJvdGggYXMgdGFyZ2V0cy4gVGltZSB0byBzZXQgdGhlc2UgcmVzdWx0cyBhbmQgbW92ZSBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU0MDAsIk91dHB1dFRva2VucyI6MTQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjM5OjE5LjQ1Mjc2MjY1MVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MzIwODc4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTFcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfdmlmX3NldF9saW5rc1wiLFxuICAgIFwiaWVlZTgwMjExX3ZpZl91cGRhdGVfbGlua3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIGNsZWFudXAgaW4gYGllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzYCB0byBzdG9wIGFuZCByZW1vdmUgZGVidWdmcyBmb3IgbmV3bHkgYWxsb2NhdGVkIGxpbmtzIGlmIGFuIGVycm9yIG9jY3Vycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIHN1YnN5c3RlbSwgcmVhY2hhYmxlIHZpYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBsaWtlIG1hYzgwMjExX2h3c2ltLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjExXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3ZpZl9zZXRfbGlua3NcIixcbiAgICBcImllZWU4MDIxMV92aWZfdXBkYXRlX2xpbmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyBjbGVhbnVwIGluIGBpZWVlODAyMTFfdmlmX3VwZGF0ZV9saW5rc2AgdG8gc3RvcCBhbmQgcmVtb3ZlIGRlYnVnZnMgZm9yIG5ld2x5IGFsbG9jYXRlZCBsaW5rcyBpZiBhbiBlcnJvciBvY2N1cnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBzdWJzeXN0ZW0sIHJlYWNoYWJsZSB2aWEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgbGlrZSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowmzzt5[1] Phase: Succeeded StartedAt: 2026-07-12 10:39:33 +0000 UTC FinishedAt: 2026-07-12 10:39:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-12 10:39:33 +0000 UTC FinishedAt: 2026-07-12 10:39:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2] Phase: Succeeded StartedAt: 2026-07-12 10:39:33 +0000 UTC FinishedAt: 2026-07-12 14:50:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-12 10:39:33 +0000 UTC FinishedAt: 2026-07-12 14:50:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-12 10:39:33 +0000 UTC FinishedAt: 2026-07-12 10:40:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-12 10:39:33 +0000 UTC FinishedAt: 2026-07-12 10:39:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmzzt5/series-workflowmzzt5-convert-artifact-3407778617/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-12 10:40:09 +0000 UTC FinishedAt: 2026-07-12 11:09:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-12 10:40:09 +0000 UTC FinishedAt: 2026-07-12 11:09:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2d456bf8-3e8f-4e91-b9de-20163a00271f,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-workflowmzzt5/series-workflowmzzt5-convert-artifact-3407778617/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": "406c9dd7-87d9-42c9-a14d-9fe3e4b9389e", "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-workflowmzzt5/series-workflowmzzt5-build-action-694354007/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-12 10:40:09 +0000 UTC FinishedAt: 2026-07-12 11:08:51 +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:*2d456bf8-3e8f-4e91-b9de-20163a00271f,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-workflowmzzt5/series-workflowmzzt5-convert-artifact-3407778617/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": "406c9dd7-87d9-42c9-a14d-9fe3e4b9389e", "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-workflowmzzt5/series-workflowmzzt5-build-action-694354007/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-12 11:09:41 +0000 UTC FinishedAt: 2026-07-12 11:09:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-12 11:09:41 +0000 UTC FinishedAt: 2026-07-12 11:09:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-12 11:09:41 +0000 UTC FinishedAt: 2026-07-12 11:09:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-12 11:09:41 +0000 UTC FinishedAt: 2026-07-12 11:09:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmzzt5/series-workflowmzzt5-convert-artifact-174353420/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-12 11:09:51 +0000 UTC FinishedAt: 2026-07-12 11:11:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-12 11:09:51 +0000 UTC FinishedAt: 2026-07-12 11:11:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*406c9dd7-87d9-42c9-a14d-9fe3e4b9389e,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-workflowmzzt5/series-workflowmzzt5-build-action-694354007/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-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-12 11:11:56 +0000 UTC FinishedAt: 2026-07-12 11:11:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-12 11:11:56 +0000 UTC FinishedAt: 2026-07-12 11:11:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-12 11:11:56 +0000 UTC FinishedAt: 2026-07-12 11:45:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-12 11:11:56 +0000 UTC FinishedAt: 2026-07-12 11:45:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2d456bf8-3e8f-4e91-b9de-20163a00271f,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-workflowmzzt5/series-workflowmzzt5-convert-artifact-174353420/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": "a6538d97-f7fd-406c-af6e-5aa8951f467c", "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-workflowmzzt5/series-workflowmzzt5-build-action-1615777832/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-12 11:11:56 +0000 UTC FinishedAt: 2026-07-12 11:45:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2d456bf8-3e8f-4e91-b9de-20163a00271f,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-workflowmzzt5/series-workflowmzzt5-convert-artifact-174353420/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": "a6538d97-f7fd-406c-af6e-5aa8951f467c", "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-workflowmzzt5/series-workflowmzzt5-build-action-1615777832/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-12 11:45:58 +0000 UTC FinishedAt: 2026-07-12 11:45:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-12 11:45:58 +0000 UTC FinishedAt: 2026-07-12 11:45:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-12 11:45:58 +0000 UTC FinishedAt: 2026-07-12 11:47:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-12 11:45:58 +0000 UTC FinishedAt: 2026-07-12 11:47:40 +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:*a6538d97-f7fd-406c-af6e-5aa8951f467c,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-workflowmzzt5/series-workflowmzzt5-build-action-1615777832/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-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 14:50:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 14:50:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*406c9dd7-87d9-42c9-a14d-9fe3e4b9389e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a6538d97-f7fd-406c-af6e-5aa8951f467c,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-workflowmzzt5/series-workflowmzzt5-build-action-694354007/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-workflowmzzt5/series-workflowmzzt5-build-action-1615777832/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 11:48:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 11:47:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowmzzt5/series-workflowmzzt5-convert-artifact-3595191413/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 11:47:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 11:47:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-12 11:47:50 +0000 UTC FinishedAt: 2026-07-12 11:47:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-12 11:48:00 +0000 UTC FinishedAt: 2026-07-12 14:50:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmzzt5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_vif_set_links","ieee80211_vif_update_links"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"44696aa3a489d2baf58efa61b37833f100072bee","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC80211"],"series_id":"a5d991cd-2db8-45ae-a84f-764dd689efb4","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-12 11:48:00 +0000 UTC FinishedAt: 2026-07-12 14:49:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*406c9dd7-87d9-42c9-a14d-9fe3e4b9389e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a6538d97-f7fd-406c-af6e-5aa8951f467c,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-workflowmzzt5/series-workflowmzzt5-build-action-694354007/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-workflowmzzt5/series-workflowmzzt5-build-action-1615777832/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-workflowmzzt5/series-workflowmzzt5-convert-artifact-3595191413/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,}