Name: series-workflow2f6l6 Phase: Succeeded StartedAt: 2026-08-20 12:40:54 +0000 UTC FinishedAt: 2026-08-20 16:38:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[0] Phase: Succeeded StartedAt: 2026-08-20 12:40:54 +0000 UTC FinishedAt: 2026-08-20 12:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[0].run-triage Phase: Succeeded StartedAt: 2026-08-20 12:40:54 +0000 UTC FinishedAt: 2026-08-20 12:48:30 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_arch_vcpu_ioctl_set_mpstate", "vmx_clear_hlt" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBLVk0gaW9jdGwgYEtWTV9TRVRfTVBfU1RBVEVgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSAoZS5nLiBWTVgmIzM5O3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgeDg2IG9wIGBjbGVhcl9obHRgIGFuZCBtb2RpZmllcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gY2FsbCBpdCB3aGVuIHRoZSB2Q1BVIGlzIHRha2VuIG91dCBvZiB0aGUgSEFMVEVEIHN0YXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDc2NGM0ZjdkMTAyMTUyMWJiNDZjYTU5NmViYzRlOTYxZGRhZmQxZGVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyMCAxMjo0Mjo0OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKVxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spXG4gS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spXG4mIzQzO0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KVxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXG4gS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdylcbiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvXG4mIzQzO1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbiYjNDM7XHQgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzXG4mIzQzO1x0ICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuXG4mIzQzO1x0ICovXG4mIzQzO1x0dm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cbiBcdGJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbkBAIC02MDEsNiAmIzQzOzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZClcbiBcdHZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4mIzQzO3tcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFREWCBkb2VzbiYjMzk7dCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4mIzM5O3QgYWNjZXNzIGFcbiYjNDM7XHQgKiBURCYjMzk7cyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cbkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuJiM0MztcdC5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLFxuIFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxuIFx0LmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLFxuIFx0LnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTE5MDksNyAmIzQzOzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5AQCAtOTUsNiAmIzQzOzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjNiMjI0YzNiYmU0MjEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiAmIzQzOzkwNTgsMjEgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0fVxuIFxuIFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZSk7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSwgZS5nLiBWTVgmIzM5O3NcbiYjNDM7XHQgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQsIHdoZW4gdXNlcnNwYWNlIHB1dHMgdGhlIHZDUFUgaW50byBhIHN0YXRlXG4mIzQzO1x0ICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuJiM0MztcdCAqIFZNLUVudGVyIGFuZCBpcyBub3QgdG91Y2hlZCBieSBhbnkgb3RoZXIgaW9jdGwsIHNvIGEgdkNQVSB0aGF0IGhhbHRlZFxuJiM0MztcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgc3RheXMgd2VkZ2VkIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIHJld3JpdGVzXG4mIzQzO1x0ICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tXG4mIzQzO1x0ICogSExUIGlzIGFyY2hpdGVjdHVyYWxseSBhbGxvd2VkIHRvIGJlIHNwdXJpb3VzLCBzbyBjbGVhcmluZyBpdCBpc1xuJiM0MztcdCAqIGFsd2F5cyBzYWZlLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChrdm1faGx0X2luX2d1ZXN0KHZjcHUtXHUwMDNla3ZtKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgbXBfc3RhdGUtXHUwMDNlbXBfc3RhdGUgIT0gS1ZNX01QX1NUQVRFX0hBTFRFRClcbiYjNDM7XHRcdGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpO1xuJiM0MztcbiBcdGt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9FVkVOVCwgdmNwdSk7XG4gXG4gXHRyZXQgPSAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjVtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlJiMzNDssCiAgICAmIzM0O3ZteF9jbGVhcl9obHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyB4ODYgb3AgYGNsZWFyX2hsdGAgYW5kIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGl0IHdoZW4gdGhlIHZDUFUgaXMgdGFrZW4gb3V0IG9mIHRoZSBIQUxURUQgc3RhdGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzY0YzRmN2QxMDIxNTIxYmI0NmNhNTk2ZWJjNGU5NjFkZGFmZDFkZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKQogS1ZNX1g4Nl9PUChubWlfYWxsb3dlZCkKIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKQogS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spCiYjNDM7S1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpCiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KQogS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdykKIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAppbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHsKIAlpbnQgKCpubWlfYWxsb3dlZCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogCWJvb2wgKCpnZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJdm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc28KJiM0MzsJICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci4KJiM0MzsJICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zcwomIzQzOwkgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC4KJiM0MzsJICovCiYjNDM7CXZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqLwogCWJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKQEAgLTYwMSw2ICYjNDM7NjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKQogCXZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwkvKgomIzQzOwkgKiBURFggZG9lc24mIzM5O3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJiMzOTt0IGFjY2VzcyBhCiYjNDM7CSAqIFREJiMzOTtzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuCiYjNDM7CSAqLwomIzQzOwlpZiAoaXNfdGRfdmNwdSh2Y3B1KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJdm14X2NsZWFyX2hsdCh2Y3B1KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovCkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7CiAJLm5taV9hbGxvd2VkID0gdnRfb3Aobm1pX2FsbG93ZWQpLAogCS5nZXRfbm1pX21hc2sgPSB2dF9vcChnZXRfbm1pX21hc2spLAogCS5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLAomIzQzOwkuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSwKIAkuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksCiAJLmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLAogCS51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtMTkwOSw3ICYjNDM7MTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQomIzQzO3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyoKIAkgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKQEAgLTk1LDYgJiM0Mzs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTsKJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9lbmFibGVfaXJxX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBkOTRiNTkxNDBjNDUyLi4zYjIyNGMzYmJlNDIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC05MDU4LDYgJiM0Mzs5MDU4LDIxIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAl9CiAKIAlrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLSZndDttcF9zdGF0ZSk7CiYjNDM7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUsIGUuZy4gVk1YJiMzOTtzCiYjNDM7CSAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCwgd2hlbiB1c2Vyc3BhY2UgcHV0cyB0aGUgdkNQVSBpbnRvIGEgc3RhdGUKJiM0MzsJICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZAomIzQzOwkgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWQKJiM0MzsJICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCBzdGF5cyB3ZWRnZWQgZXZlbiBhZnRlciB1c2Vyc3BhY2UgcmV3cml0ZXMKJiM0MzsJICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tCiYjNDM7CSAqIEhMVCBpcyBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMKJiM0MzsJICogYWx3YXlzIHNhZmUuCiYjNDM7CSAqLwomIzQzOwlpZiAoa3ZtX2hsdF9pbl9ndWVzdCh2Y3B1LSZndDtrdm0pICZhbXA7JmFtcDsKJiM0MzsJICAgIG1wX3N0YXRlLSZndDttcF9zdGF0ZSAhPSBLVk1fTVBfU1RBVEVfSEFMVEVEKQomIzQzOwkJa3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7CiYjNDM7CiAJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTsKIAogCXJldCA9IDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5MzUKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAyMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IENsZWFyIEhMVCBvbiB4ODYgS1ZNKioKCk9rYXksIHNvIHdlJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgYSBuZXcgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHdpdGhpbiBLVk0sIHNwZWNpZmljYWxseSBmb3IgeDg2LiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGUgcGF0Y2ggbWFrZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgY2xlYXIgbW9kaWZpY2F0aW9uIHRvIGhvdyBLVk0gYmVoYXZlcy4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRpbmcgYW4gKm9wdGlvbmFsKiBgY2xlYXJfaGx0YCBvcCwgYnV0IHRoZSBzaWduaWZpY2FudCBwYXJ0IGlzIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGggYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLiBUaGF0JiMzOTtzIHRoZSBob29rIHdlJiMzOTtyZSBpbnRlcmVzdGVkIGluOyBpdCYjMzk7cyB0aGUgZ2F0ZXdheSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC4gSXQgc2VlbXMgd2UmIzM5O2xsIG5lZWQgYGt2bV9obHRfaW5fZ3Vlc3RgIHRvIGJlIHRydWUgYW5kIHRoZSBNUCBzdGF0ZSBub3QgdG8gYmUgaGFsdGVkLiBUaGlzIGlzIGEgY2xlYXIgaW5kaWNhdG9yIHRoYXQgd2Ugc2hvdWxkIG1hcmsgdGhpcyBwYXRjaCBhcyBgV29ydGhGdXp6aW5nPXRydWVgLgoKTm93LCBsZXQmIzM5O3MgZHJpbGwgZG93biBhbmQgcGlucG9pbnQgdGhlIGV4YWN0IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMgb24uIEkgc2VlIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhcyB0aGUgcHJpbWFyeSB0YXJnZXQsIGJlY2F1c2UgaXQmIzM5O3MgdGhlIGVudHJ5IHBvaW50LiBBZGRpdGlvbmFsbHksIHdlIG5lZWQgdG8gY29uc2lkZXIgaG93IGB2dF9jbGVhcl9obHRgIGFuZCBgdm14X2NsZWFyX2hsdGAgYXJlIHVzZWQuIFRoZXkmIzM5O3JlIHJlbGF0ZWQsIHNvIHdlIGhhdmUgdG8gZnV6eiB0aG9zZSB0b28uIFNvLCBsZXQmIzM5O3Mgc3RhcnQgYnkgZG9pbmcgYSBxdWljayBzZWFyY2ggZm9yIGFsbCBpbnN0YW5jZXMgb2YgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9rdm0vYXJtLmM9Nzg2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL2FybTY0L2t2bS9hcm0uYy03OTMtXG5hcmNoL2FybTY0L2t2bS9hcm0uYzo3OTQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9hcm02NC9rdm0vYXJtLmMtNzk1LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9NDY3PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTQ3NC1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM6NDc1OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtNDc2LVx0XHRcdFx0c3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9taXBzL2t2bS9taXBzLmM9NTE1PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjAtXG5hcmNoL21pcHMva3ZtL21pcHMuYzo1MjE6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9taXBzL2t2bS9taXBzLmMtNTIyLVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jPTIwMTM9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jLTIwMTgtXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYzoyMDE5OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jLTIwMjAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jPTQ5Nj1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jLTUwMy1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYzo1MDQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jLTUwNS1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDI2MT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jLTQyNzUtXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM6NDI3NjppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDI3Ny1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmM9OTAwMD1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTkwMjUtXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTAyNjppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTAyNy1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg9MTYzOT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0MC1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSk7XG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg6MTY0MTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0Mi1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSk7XG4tLVxudmlydC9rdm0va3ZtX21haW4uYz00NDI1PXN0YXRpYyBsb25nIGt2bV92Y3B1X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLFxuLS1cbnZpcnQva3ZtL2t2bV9tYWluLmMtNDU3Mi1cdFx0XHRnb3RvIG91dDtcbnZpcnQva3ZtL2t2bV9tYWluLmM6NDU3MzpcdFx0ciA9IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUodmNwdSwgXHUwMDI2bXBfc3RhdGUpO1xudmlydC9rdm0va3ZtX21haW4uYy00NTc0LVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODI1CgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUsIEkmIzM5O20gdGhpbmtpbmcgSSBzaG91bGQgcmVhbGx5IGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cy4gTG9va2luZyBhdCB0aGUgY29kZSwgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGltbWVkaWF0ZWx5IHN0YW5kcyBvdXQgYXMgYSBwcm9taXNpbmcgdGFyZ2V0LiBJdCBqdXN0IGZlZWxzIGxpa2UgYSBnb29kIHNwb3QgdG8gc3RhcnQgZGlnZ2luZyBhcm91bmQuIEFuZCBoZXksIHdoaWxlIEkmIzM5O20gYXQgaXQsIGB2bXhfY2xlYXJfaGx0YCBhbHNvIHNlZW1zIGxpa2UgaXQgY291bGQgaGF2ZSBzb21lIGludGVyZXN0aW5nIGFuZ2xlcyBJIG1pZ2h0IGV4cGxvaXQuIEl0JiMzOTtzIHRpbWUgdG8gY29uZmlybSB0aGF0IHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZS4gR290dGEgbWFrZSBzdXJlIHRoZSBlbnZpcm9ubWVudCBpcyBzZXQgdXAgY29ycmVjdGx5IGJlZm9yZSBJIHN0YXJ0IHRocm93aW5nIHRoaW5ncyBhdCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnOjIwOm1lbnVjb25maWcgS1ZNXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE3LVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjY6Y29uZmlnIEtWTV9CT09LM1NfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MzQ6Y29uZmlnIEtWTV9CT09LM1NfNjRfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM5LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX0JPT0szU182NFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzY0IHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNzgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMjY6Y29uZmlnIEtWTV9CT09LM1NfSFZfRVhJVF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNTc6Y29uZmlnIEtWTV9CT09LM1NfSFZfTkVTVEVEX1BNVV9XT1JLQVJPVU5EXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVx0Ym9vbCBcJiMzNDtOZXN0ZWQgTDAgaG9zdCB3b3JrYXJvdW5kIGZvciBMMSBLVk0gaG9zdCBQTVUgaGFuZGxpbmcgYnVnXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cdHRyaXN0YXRlIFwmIzM0O0h5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg1LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODc6Y29uZmlnIEtWTV9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgZXhpdCB0aW1pbmdcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxNC1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX01QSUNcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgTVBJQyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTItXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnPTIyPXNvdXJjZSBcJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXCYjMzQ7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3MzOTAva3ZtL0tjb25maWc9MTc9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXG5hcmNoL3MzOTAva3ZtL0tjb25maWctMjAtXHRkZWZfdHJpc3RhdGUgeVxuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00Ni1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cdGJvb2wgXCYjMzQ7VXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1wmIzM0O1xuLS1cbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcJiMzNDthcmNoL3g4Ni94ZW4vS2NvbmZpZ1wmIzM0O1xuYXJjaC94ODYvS2NvbmZpZy04MjctXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3g4Ni9LY29uZmlnLTgyOS1cdGJvb2wgXCYjMzQ7S1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC94ODYva3ZtL0tjb25maWctMTktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXHRkZWZfdHJpc3RhdGUgS1ZNIGlmIChLVk1fSU5URUwgIT0gbiB8fCBLVk1fQU1EICE9IG4pXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1Mjpjb25maWcgS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTY4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5Njpjb25maWcgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgSW50ZWwgKGFuZCBjb21wYXRpYmxlKSBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcJiMzNDtDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTEyMj1jb25maWcgWDg2X1NHWF9LVk1cbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzQ6Y29uZmlnIEtWTV9JTlRFTF9URFhcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cdGJvb2wgXCYjMzQ7SW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbnMgKFREWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTczOmNvbmZpZyBLVk1fSU9BUElDXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzQtXHRib29sIFwmIzM0O0kvTyBBUElDLCBQSUMsIGFuZCBQSVQgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgzOmNvbmZpZyBLVk1fU01NXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXHRib29sIFwmIzM0O1N5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTkzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTUtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwODpjb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA5LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNzpjb25maWcgS1ZNX1BST1ZFX01NVVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVx0Ym9vbCBcJiMzNDtQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjI5LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cdGJvb2xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMzpjb25maWcgS1ZNX01BWF9OUl9WQ1BVU1xuYXJjaC94ODYva3ZtL0tjb25maWctMjM0LVx0aW50IFwmIzM0O01heGltdW0gbnVtYmVyIG9mIHZDUFVzIHBlciBLVk0gZ3Vlc3RcJiMzNDtcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTMtXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQyLVxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNDUtXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcbnZpcnQva3ZtL0tjb25maWctNTEtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXG4tLVxudmlydC9rdm0vS2NvbmZpZy02MS1cbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXG52aXJ0L2t2bS9LY29uZmlnLTYzLSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXG4tLVxudmlydC9rdm0vS2NvbmZpZy02Ny1cbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxudmlydC9rdm0vS2NvbmZpZy02OS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03MC1cbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcbnZpcnQva3ZtL0tjb25maWctNzItICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNzMtXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXG52aXJ0L2t2bS9LY29uZmlnLTc1LSAgICAgICBkZWZfYm9vbCB5XG4tLVxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbnZpcnQva3ZtL0tjb25maWctOTUtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTYtXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXG52aXJ0L2t2bS9LY29uZmlnLTk4LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcbnZpcnQva3ZtL0tjb25maWctMTAxLSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xudmlydC9rdm0vS2NvbmZpZy0xMDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTA1LVxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxudmlydC9rdm0vS2NvbmZpZy0xMDctICAgICAgIHNlbGVjdCBYQVJSQVlfTVVMVElcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDMxMQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgS1ZNIGFuZCBITFQgQ2xlYXJpbmcgRnVuY3Rpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIEtWTSBjb25maWd1cmF0aW9uLCBzcGVjaWZpY2FsbHkgdGhlIEtWTSBjb25maWd1cmF0aW9uLiBUaGUgc3lzdGVtIHNlZW1zIHRvIGJlIHVzaW5nIGBLVk1gLiBNeSBnb2FsIGhlcmUgaXMgdG8gZGV0ZXJtaW5lIGhvdyB0byBiZXN0IGNsZWFyIHRoZSBITFQgKEhhbHQpIHN0YXRlLgoKSSYjMzk7dmUgaWRlbnRpZmllZCBhIGZldyBmdW5jdGlvbnMgdG8gY29uc2lkZXI6IGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCwgYHZ0X2NsZWFyX2hsdGAsIGFuZCBgdm14X2NsZWFyX2hsdGAuIEZpcnN0LCBJIHdhbnRlZCB0byBjb25maXJtIGlmIGB2dF9jbGVhcl9obHRgIGlzIGEgc3RhdGljIGZ1bmN0aW9uLiBJIHJlY2FsbCBpdCBiZWluZyBsb2NhdGVkIGluIGBhcmNoL3g4Ni9rdm0vdm14L21haW4uY2AsIGFuZCBhIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHRoYXQgaXQgKmlzKiBzdGF0aWMgd2l0aGluIHRoYXQgZmlsZS4gVGhpcyBtZWFucyBJIGNhbiYjMzk7dCBkaXJlY3RseSBjYWxsIGl0IGZyb20gb3V0c2lkZSB0aGF0IGZpbGUsIHNvIHRoYXQgbGltaXRzIGl0cyB1c2VmdWxuZXNzIGhlcmUuCgpIb3dldmVyLCBgdm14X2NsZWFyX2hsdGAgaXMgKm5vdCogc3RhdGljLCB3aGljaCBvcGVucyB1cCBtb3JlIHBvc3NpYmlsaXRpZXMuIFRoaXMgbGVhdmVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhbmQgYHZteF9jbGVhcl9obHRgIGFzIGNhbmRpZGF0ZXMuCgpCZWZvcmUgSSBwcm9jZWVkLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIGB2bXhfY2xlYXJfaGx0YCYjMzk7cyBzaWduYXR1cmUgYW5kIGNvbmZpcm0gd2hldGhlciBpdCBpcyBleHBvcnRlZCBjb3JyZWN0bHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBjYW4gY2FsbCBpdCBjbGVhbmx5LiBMZXQmIzM5O3MgbWFrZSBzdXJlIGl0JiMzOTtzIGFjY2Vzc2libGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L21haW4uYz02MDQ9c3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy02MTItXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzo2MTM6XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtNjE0LX1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTE5MDY9aW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjE5MTI6dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTkxMy17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz0xOTI1PXZvaWQgdm14X2luamVjdF9leGNlcHRpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTk4NC1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6MTk4NTpcdHZteF9jbGVhcl9obHQodmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5ODYtfVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NTEyMz12b2lkIHZteF9pbmplY3RfaXJxKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCByZWluamVjdGVkKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTE0Ny1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NTE0ODpcdHZteF9jbGVhcl9obHQodmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxNDktfVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NTE1MT12b2lkIHZteF9pbmplY3Rfbm1pKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxNzgtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjUxNzk6XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC92bXguYy01MTgwLX1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTg0ODA9aW50IHZteF9lbnRlcl9zbW0oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bmlvbiBrdm1fc21yYW0gKnNtcmFtKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODQ5Ni1cdHZteC1cdTAwM2VuZXN0ZWQudm14b24gPSBmYWxzZTtcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODQ5NzpcdHZteF9jbGVhcl9obHQodmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTg0OTgtXHRyZXR1cm4gMDtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaD05Nz12b2lkIHZteF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaDo5ODp2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTk5LXZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE2OTQKCQkJCQkJCW91dHB1dDogMTM1CgkJCQkJCQl0aG91Z2h0czogMzE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSXQgbG9va3MgbGlrZSBgdm14X2NsZWFyX2hsdGAgaXNuJiMzOTt0IHN0YXRpYyBhbnltb3JlLCBhbmQgbmVpdGhlciBpcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAuIEFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjayBmb3Igb3RoZXIgcmVsYXRlZCBtb2RpZmljYXRpb25zLiBBaCwgeWVzLCBjb25maXJtZWQ6IGBhcmNoL3g4Ni9rdm0veDg2LmNgIHRvdWNoZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgaXMgbW9kaWZ5aW5nIGB2bXhfY2xlYXJfaGx0YCAoc3BlY2lmaWNhbGx5LCByZW1vdmluZyBpdHMgYHN0YXRpY2AgZGVzaWduYXRpb24pLiBGdXJ0aGVybW9yZSwgYGFyY2gveDg2L2t2bS92bXgvbWFpbi5jYCBpcyBpbnRyb2R1Y2luZyBgdnRfY2xlYXJfaGx0YC4KClNvLCB0aGUga2V5IGZ1bmN0aW9ucyB0byBpbnZlc3RpZ2F0ZSBhcmUgZGVmaW5pdGVseSBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgYW5kIGB2bXhfY2xlYXJfaGx0YC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBgS1ZNYC4KCk5vdywgbGV0JiMzOTtzIGZvcm1hbGl6ZSB0aGlzLiBUaGlzIHBhdGNoIHdhcnJhbnRzIGZ1enppbmcsIHdpdGhvdXQgYSBkb3VidC4gVGhlIHJlYXNvbmluZz8gV2VsbCwgaXQmIzM5O3MgYWRkaW5nIGEgbmV3IHg4NiBvcGVyYXRpb24sIGBjbGVhcl9obHRgLCBhbmQgaXQmIzM5O3MgbW9kaWZ5aW5nIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBpbnZva2UgdGhpcyBgY2xlYXJfaGx0YCBvcCB3aGVuIGEgdkNQVSB0cmFuc2l0aW9ucyBvdXQgb2YgYSBIQUxURUQgc3RhdGUuIFRoYXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gS1ZNIGFuZCBpdCYjMzk7cyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiBJdCYjMzk7cyBhIGNsZWFyIGVudHJ5IHBvaW50IGZvciBmdXp6aW5nLCBhbmQgaXQmIzM5O3MgZ29vZCB0byBjYWxsIGl0IG91dC4gVGhlIGZ1enppbmcgdGFyZ2V0cyBhcmUgZ29pbmcgdG8gYmUgdGhvc2UgdHdvIGZ1bmN0aW9uczogYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgdm14X2NsZWFyX2hsdGAuIEFuZCBvZiBjb3Vyc2UsIHRoZSBgS1ZNYCBjb25maWcgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSByZWxldmFudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHg4NiBvcCBgY2xlYXJfaGx0YCBhbmQgbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNhbGwgaXQgd2hlbiB0aGUgdkNQVSBpcyB0YWtlbiBvdXQgb2YgdGhlIEhBTFRFRCBzdGF0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgS1ZNX1NFVF9NUF9TVEFURWAgaW9jdGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHg4NiBvcCBgY2xlYXJfaGx0YCBhbmQgbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNhbGwgaXQgd2hlbiB0aGUgdkNQVSBpcyB0YWtlbiBvdXQgb2YgdGhlIEhBTFRFRCBzdGF0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgS1ZNX1NFVF9NUF9TVEFURWAgaW9jdGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQ3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEtWTSBpb2N0bCBgS1ZNX1NFVF9NUF9TVEFURWAgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIChlLmcuIFZNWCYjMzk7cyBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQpIHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYEtWTV9NUF9TVEFURV9IQUxURURgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBoYXJkd2FyZSBzdGF0ZSBmaXggdG8gcHJldmVudCB2Q1BVcyBmcm9tIHN0YXlpbmcgd2VkZ2VkIGFmdGVyIGEgbWFjaGluZSByZXNldC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgZG9lcyBub3QgY29weSBhbnkgbmV3IGRhdGEgdG8gdXNlcnNwYWNlLCBhbmQgZG9lcyBub3QgcmVhZCBhbnkgcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCBtZW1vcnkuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLCBhbmQgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzY0YzRmN2QxMDIxNTIxYmI0NmNhNTk2ZWJjNGU5NjFkZGFmZDFkZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKQogS1ZNX1g4Nl9PUChubWlfYWxsb3dlZCkKIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKQogS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spCiYjNDM7S1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpCiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KQogS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdykKIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAppbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHsKIAlpbnQgKCpubWlfYWxsb3dlZCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogCWJvb2wgKCpnZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJdm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc28KJiM0MzsJICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci4KJiM0MzsJICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zcwomIzQzOwkgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC4KJiM0MzsJICovCiYjNDM7CXZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqLwogCWJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKQEAgLTYwMSw2ICYjNDM7NjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKQogCXZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwkvKgomIzQzOwkgKiBURFggZG9lc24mIzM5O3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJiMzOTt0IGFjY2VzcyBhCiYjNDM7CSAqIFREJiMzOTtzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuCiYjNDM7CSAqLwomIzQzOwlpZiAoaXNfdGRfdmNwdSh2Y3B1KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJdm14X2NsZWFyX2hsdCh2Y3B1KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovCkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7CiAJLm5taV9hbGxvd2VkID0gdnRfb3Aobm1pX2FsbG93ZWQpLAogCS5nZXRfbm1pX21hc2sgPSB2dF9vcChnZXRfbm1pX21hc2spLAogCS5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLAomIzQzOwkuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSwKIAkuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksCiAJLmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLAogCS51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtMTkwOSw3ICYjNDM7MTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQomIzQzO3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyoKIAkgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKQEAgLTk1LDYgJiM0Mzs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTsKJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9lbmFibGVfaXJxX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBkOTRiNTkxNDBjNDUyLi4zYjIyNGMzYmJlNDIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC05MDU4LDYgJiM0Mzs5MDU4LDIxIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAl9CiAKIAlrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLSZndDttcF9zdGF0ZSk7CiYjNDM7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUsIGUuZy4gVk1YJiMzOTtzCiYjNDM7CSAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCwgd2hlbiB1c2Vyc3BhY2UgcHV0cyB0aGUgdkNQVSBpbnRvIGEgc3RhdGUKJiM0MzsJICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZAomIzQzOwkgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWQKJiM0MzsJICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCBzdGF5cyB3ZWRnZWQgZXZlbiBhZnRlciB1c2Vyc3BhY2UgcmV3cml0ZXMKJiM0MzsJICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tCiYjNDM7CSAqIEhMVCBpcyBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMKJiM0MzsJICogYWx3YXlzIHNhZmUuCiYjNDM7CSAqLwomIzQzOwlpZiAoa3ZtX2hsdF9pbl9ndWVzdCh2Y3B1LSZndDtrdm0pICZhbXA7JmFtcDsKJiM0MzsJICAgIG1wX3N0YXRlLSZndDttcF9zdGF0ZSAhPSBLVk1fTVBfU1RBVEVfSEFMVEVEKQomIzQzOwkJa3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7CiYjNDM7CiAJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTsKIAogCXJldCA9IDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTMyCgkJCQkJCQlvdXRwdXQ6IDE3NgoJCQkJCQkJdGhvdWdodHM6IDM3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBLVk0gSExUIENsZWFyaW5nIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgYSBgY2xlYXJfaGx0YCBvcGVyYXRpb24gd2l0aGluIGBrdm1feDg2X29wc2Agc3BlY2lmaWNhbGx5IHRhcmdldGluZyBWTVguIFRoZSBjb3JlIGlkZWEgaXMgdG8gY2xlYXIgdGhlIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUsIGFuZCBpdCYjMzk7cyBiZWluZyB0cmlnZ2VyZWQgaW4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLiBUaGlzIG1ha2VzIHNlbnNlOyBpdCYjMzk7cyBiZWluZyBjYWxsZWQgd2hlbiB1c2Vyc3BhY2UgY2hhbmdlcyB0aGUgTVAgc3RhdGUgKmF3YXkqIGZyb20gYEtWTV9NUF9TVEFURV9IQUxURURgLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgYSBmaXggZm9yIGEgc2l0dWF0aW9uIHdoZXJlIGEgdkNQVSwgc3R1Y2sgaW4gYSBoYWx0ZWQgc3RhdGUgd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCwgd291bGRuJiMzOTt0IHJlc3BvbmQgZXZlbiB3aGVuIGl0cyByZWdpc3RlcnMgd2VyZSBtb2RpZmllZCwgbGlrZSBkdXJpbmcgYSByZXNldC4KCk15IGluaXRpYWwgY29uY2VybiBpcyBhbHdheXMgYXJvdW5kIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciB3cml0ZXMuIEJ1dCwgZGlnZ2luZyBpbiwgaXQgc2VlbXMgcHJldHR5IGNsZWFuLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLCB5ZXMsIGFuZCBpdCBnZXRzIHRoZSBgbXBfc3RhdGVgIGFzIGEgcG9pbnRlciB0byBgc3RydWN0IGt2bV9tcF9zdGF0ZWAgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiBDcnVjaWFsbHksIHRoZSBwYXRjaCAqb25seSogcmVhZHMgdGhlIGBtcF9zdGF0ZS0mZ3Q7bXBfc3RhdGVgIHZhbHVlLCBhbmQgaXQgY2FsbHMgYGNsZWFyX2hsdGAgYmFzZWQgb24gdGhhdC4gVGhlcmUmIzM5O3Mgbm8gbmV3IGFsbG9jYXRpb24gaGVyZSwgbm8gbmV3IGRhdGEgYmVpbmcgc2VudCBiYWNrIHRvIHVzZXJzcGFjZSwgbm8gYWRkZWQgdXNlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGF0IGFsbC4gSXQmIzM5O3Mgc3RyaWN0bHkgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIG1hbmlwdWxhdGlvbiBmaXguCgpUbyBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkgcXVpY2tseSBkb3VibGUtY2hlY2tlZCB0aGUgYGt2bV9tcF9zdGF0ZWAgc3RydWN0IGl0c2VsZiwgYW5kIGl0JiMzOTtzIGp1c3QgYSBzaW1wbGUgYF9fdTMyIG1wX3N0YXRlYCBmaWVsZC4gSXQmIzM5O3Mgc2ltcGxlIGFuZCBjb3BpZWQgZnJvbSB1c2Vyc3BhY2UgaW4gdGhlIGBrdm1fdmNwdV9pb2N0bGAgZnVuY3Rpb24uIFRoaXMgY29uZmlybXMgdGhhdCB0aGVyZSYjMzk7cyBub3RoaW5nIGNvbmNlcm5pbmcgaGVyZS4KCkdpdmVuIGFsbCB0aGlzLCBJJiMzOTttIGNvbmZpZGVudCB0aGF0IHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcy4gS0FTQU4gaXMgcGVyaGFwcyBub3QgZGlyZWN0bHkgcmVsZXZhbnQsIGJ1dCBJIGRvbiYjMzk7dCBzZWUgYW55IG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhpcyBmdXJ0aGVyIHdpdGggS01TQU4uIFRoZXJlZm9yZSwgSSB3aWxsIHNldCBgTmVlZHNLTVNBTj1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBLVk0gaW9jdGwgYEtWTV9TRVRfTVBfU1RBVEVgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSAoZS5nLiBWTVgmIzM5O3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgS1ZNIGlvY3RsIGBLVk1fU0VUX01QX1NUQVRFYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgKGUuZy4gVk1YJiMzOTtzIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCkgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBgS1ZNX01QX1NUQVRFX0hBTFRFRGAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIGZpeCB0byBwcmV2ZW50IHZDUFVzIGZyb20gc3RheWluZyB3ZWRnZWQgYWZ0ZXIgYSBtYWNoaW5lIHJlc2V0LiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBkb2VzIG5vdCBjb3B5IGFueSBuZXcgZGF0YSB0byB1c2Vyc3BhY2UsIGFuZCBkb2VzIG5vdCByZWFkIGFueSBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIG1lbW9yeS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MsIGFuZCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Mjo1MC4zODgzNTg4NzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjc3NzY5Njk3MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiLFxuICAgIFwidm14X2NsZWFyX2hsdFwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEtWTSBpb2N0bCBgS1ZNX1NFVF9NUF9TVEFURWAgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIChlLmcuIFZNWCdzIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCkgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBgS1ZNX01QX1NUQVRFX0hBTFRFRGAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIGZpeCB0byBwcmV2ZW50IHZDUFVzIGZyb20gc3RheWluZyB3ZWRnZWQgYWZ0ZXIgYSBtYWNoaW5lIHJlc2V0LiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBkb2VzIG5vdCBjb3B5IGFueSBuZXcgZGF0YSB0byB1c2Vyc3BhY2UsIGFuZCBkb2VzIG5vdCByZWFkIGFueSBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIG1lbW9yeS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MsIGFuZCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgeDg2IG9wIGBjbGVhcl9obHRgIGFuZCBtb2RpZmllcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gY2FsbCBpdCB3aGVuIHRoZSB2Q1BVIGlzIHRha2VuIG91dCBvZiB0aGUgSEFMVEVEIHN0YXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDI6NTAuMzg4MzY0NTA5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjAzOTMyNjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3NjRjNGY3ZDEwMjE1MjFiYjQ2Y2E1OTZlYmM0ZTk2MWRkYWZkMWRlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXFxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXFxuIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKVxcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpXFxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXFxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcXG4gXFx0aW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcXG4gXFx0Ym9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XFxuK1xcdC8qXFxuK1xcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc29cXG4rXFx0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cXG4rXFx0ICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zc1xcbitcXHQgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC5cXG4rXFx0ICovXFxuK1xcdHZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuIFxcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cXG4gXFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0LypcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbkBAIC02MDEsNiArNjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKVxcbiBcXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuK3tcXG4rXFx0LypcXG4rXFx0ICogVERYIGRvZXNuJ3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJ3QgYWNjZXNzIGFcXG4rXFx0ICogVEQncyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxcbitcXHQgKi9cXG4rXFx0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdHZteF9jbGVhcl9obHQodmNwdSk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XFxuIFxcdC5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSxcXG4gXFx0LmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksXFxuIFxcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxcbitcXHQuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSxcXG4gXFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxcbiBcXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXFxuIFxcdC51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSxcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuQEAgLTE5MDksNyArMTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKlxcbiBcXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxcbisrKyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuQEAgLTk1LDYgKzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XFxuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xcbiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuaW5kZXggZDk0YjU5MTQwYzQ1Mi4uM2IyMjRjM2JiZTQyMSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5AQCAtOTA1OCw2ICs5MDU4LDIxIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0fVxcbiBcXG4gXFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cXHUwMDNlbXBfc3RhdGUpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSwgZS5nLiBWTVgnc1xcbitcXHQgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQsIHdoZW4gdXNlcnNwYWNlIHB1dHMgdGhlIHZDUFUgaW50byBhIHN0YXRlXFxuK1xcdCAqIG90aGVyIHRoYW4gSEFMVEVELiAgVGhlIGhhcmR3YXJlIHN0YXRlIGlzIHN0aWNreSBhY3Jvc3MgVk0tRXhpdCBhbmRcXG4rXFx0ICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkXFxuK1xcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgc3RheXMgd2VkZ2VkIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIHJld3JpdGVzXFxuK1xcdCAqIGl0cyByZWdpc3RlcnMsIGUuZy4gd2hlbiBhIFZNTSBlbXVsYXRlcyBhIG1hY2hpbmUgcmVzZXQuICBXYWtpbmcgZnJvbVxcbitcXHQgKiBITFQgaXMgYXJjaGl0ZWN0dXJhbGx5IGFsbG93ZWQgdG8gYmUgc3B1cmlvdXMsIHNvIGNsZWFyaW5nIGl0IGlzXFxuK1xcdCAqIGFsd2F5cyBzYWZlLlxcbitcXHQgKi9cXG4rXFx0aWYgKGt2bV9obHRfaW5fZ3Vlc3QodmNwdS1cXHUwMDNla3ZtKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgbXBfc3RhdGUtXFx1MDAzZW1wX3N0YXRlICE9IEtWTV9NUF9TVEFURV9IQUxURUQpXFxuK1xcdFxcdGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpO1xcbitcXG4gXFx0a3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTtcXG4gXFxuIFxcdHJldCA9IDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQyOjUwLjkwOTU2Mzc2NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMwNTM2NzQwOTA4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlXCIsXG4gICAgXCJ2bXhfY2xlYXJfaGx0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyB4ODYgb3AgYGNsZWFyX2hsdGAgYW5kIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGl0IHdoZW4gdGhlIHZDUFUgaXMgdGFrZW4gb3V0IG9mIHRoZSBIQUxURUQgc3RhdGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3NjRjNGY3ZDEwMjE1MjFiYjQ2Y2E1OTZlYmM0ZTk2MWRkYWZkMWRlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjAgMTI6NDI6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChubWlfYWxsb3dlZClcbiBLVk1fWDg2X09QKGdldF9ubWlfbWFzaylcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcbitLVk1fWDg2X09QX09QVElPTkFMKGNsZWFyX2hsdClcbiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KVxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXG4gS1ZNX1g4Nl9PUF9PUFRJT05BTCh1cGRhdGVfY3I4X2ludGVyY2VwdClcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4rXHQvKlxuK1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZC9pbmFjdGl2ZSBzdGF0ZSBzb1xuK1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbitcdCAqIE9ubHkgbmVlZGVkIGJ5IFZNWCwgd2hlcmUgVk1DUy5HVUVTVF9BQ1RJVklUWV9TVEFURSBwZXJzaXN0cyBhY3Jvc3NcbitcdCAqIFZNLUV4aXQvVk0tRW50ZXI7IFNWTSBoYXMgbm8gZXF1aXZhbGVudCBWTUNCIGZpZWxkLlxuK1x0ICovXG4rXHR2b2lkICgqY2xlYXJfaGx0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0LyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqL1xuIFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuQEAgLTYwMSw2ICs2MDEsMTggQEAgc3RhdGljIHZvaWQgdnRfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpXG4gXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4re1xuK1x0LypcbitcdCAqIFREWCBkb2Vzbid0IHN1cHBvcnQgZGlzYWJsaW5nIEhMVC1leGl0aW5nLCBhbmQgS1ZNIGNhbid0IGFjY2VzcyBhXG4rXHQgKiBURCdzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuXG4rXHQgKi9cbitcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuIFx0LyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuK1x0LmNsZWFyX2hsdCA9IHZ0X29wKGNsZWFyX2hsdCksXG4gXHQuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksXG4gXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXG4gXHQudXBkYXRlX2NyOF9pbnRlcmNlcHQgPSB2dF9vcCh1cGRhdGVfY3I4X2ludGVyY2VwdCksXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtMTkwOSw3ICsxOTA5LDcgQEAgaW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbmluZGV4IGNkYjM4ZDk0MGNmYjcuLjQ1ZTQ3ZjUwMmEzNzAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbkBAIC05NSw2ICs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGJvb2wgdm14X2dldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjNiMjI0YzNiYmU0MjEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiArOTA1OCwyMSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHR9XG4gXG4gXHRrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLVx1MDAzZW1wX3N0YXRlKTtcbitcbitcdC8qXG4rXHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlLCBlLmcuIFZNWCdzXG4rXHQgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQsIHdoZW4gdXNlcnNwYWNlIHB1dHMgdGhlIHZDUFUgaW50byBhIHN0YXRlXG4rXHQgKiBvdGhlciB0aGFuIEhBTFRFRC4gIFRoZSBoYXJkd2FyZSBzdGF0ZSBpcyBzdGlja3kgYWNyb3NzIFZNLUV4aXQgYW5kXG4rXHQgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWRcbitcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgc3RheXMgd2VkZ2VkIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIHJld3JpdGVzXG4rXHQgKiBpdHMgcmVnaXN0ZXJzLCBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb21cbitcdCAqIEhMVCBpcyBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXNcbitcdCAqIGFsd2F5cyBzYWZlLlxuK1x0ICovXG4rXHRpZiAoa3ZtX2hsdF9pbl9ndWVzdCh2Y3B1LVx1MDAzZWt2bSkgXHUwMDI2XHUwMDI2XG4rXHQgICAgbXBfc3RhdGUtXHUwMDNlbXBfc3RhdGUgIT0gS1ZNX01QX1NUQVRFX0hBTFRFRClcbitcdFx0a3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7XG4rXG4gXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xuIFxuIFx0cmV0ID0gMDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQyOjUwLjkwOTU2NTE1NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIwMjAzMDcwNTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBDbGVhciBITFQgb24geDg2IEtWTSoqXG5cbk9rYXksIHNvIHdlJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gd2l0aGluIEtWTSwgc3BlY2lmaWNhbGx5IGZvciB4ODYuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIFRoZSBwYXRjaCBtYWtlcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBjbGVhciBtb2RpZmljYXRpb24gdG8gaG93IEtWTSBiZWhhdmVzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGFuICpvcHRpb25hbCogYGNsZWFyX2hsdGAgb3AsIGJ1dCB0aGUgc2lnbmlmaWNhbnQgcGFydCBpcyBob3cgaXQncyBpbnRlZ3JhdGVkIHdpdGggYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLiBUaGF0J3MgdGhlIGhvb2sgd2UncmUgaW50ZXJlc3RlZCBpbjsgaXQncyB0aGUgZ2F0ZXdheSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC4gSXQgc2VlbXMgd2UnbGwgbmVlZCBga3ZtX2hsdF9pbl9ndWVzdGAgdG8gYmUgdHJ1ZSBhbmQgdGhlIE1QIHN0YXRlIG5vdCB0byBiZSBoYWx0ZWQuIFRoaXMgaXMgYSBjbGVhciBpbmRpY2F0b3IgdGhhdCB3ZSBzaG91bGQgbWFyayB0aGlzIHBhdGNoIGFzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5vdywgbGV0J3MgZHJpbGwgZG93biBhbmQgcGlucG9pbnQgdGhlIGV4YWN0IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMgb24uIEkgc2VlIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhcyB0aGUgcHJpbWFyeSB0YXJnZXQsIGJlY2F1c2UgaXQncyB0aGUgZW50cnkgcG9pbnQuIEFkZGl0aW9uYWxseSwgd2UgbmVlZCB0byBjb25zaWRlciBob3cgYHZ0X2NsZWFyX2hsdGAgYW5kIGB2bXhfY2xlYXJfaGx0YCBhcmUgdXNlZC4gVGhleSdyZSByZWxhdGVkLCBzbyB3ZSBoYXZlIHRvIGZ1enogdGhvc2UgdG9vLiBTbywgbGV0J3Mgc3RhcnQgYnkgZG9pbmcgYSBxdWljayBzZWFyY2ggZm9yIGFsbCBpbnN0YW5jZXMgb2YgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTM1LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDM6MTEuMTEyNjM5MDY1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDI0Mjg0NzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybTY0L2t2bS9hcm0uYz03ODY9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9hcm02NC9rdm0vYXJtLmMtNzkzLVxcbmFyY2gvYXJtNjQva3ZtL2FybS5jOjc5NDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9hcm02NC9rdm0vYXJtLmMtNzk1LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9NDY3PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtNDc0LVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM6NDc1OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTQ3Ni1cXHRcXHRcXHRcXHRzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gvbWlwcy9rdm0vbWlwcy5jPTUxNT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjAtXFxuYXJjaC9taXBzL2t2bS9taXBzLmM6NTIxOmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjItXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmM9MjAxMz1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYy0yMDE4LVxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jOjIwMTk6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jLTIwMjAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmM9NDk2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYy01MDMtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jOjUwNDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jLTUwNS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDI2MT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDI3NS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM6NDI3NjppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jLTQyNzctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jPTkwMDA9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTkwMjUtXFxuYXJjaC94ODYva3ZtL3g4Ni5jOjkwMjY6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gveDg2L2t2bS94ODYuYy05MDI3LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaD0xNjM5PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0MC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpO1xcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaDoxNjQxOmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0Mi1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpO1xcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYz00NDI1PXN0YXRpYyBsb25nIGt2bV92Y3B1X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLFxcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYy00NTcyLVxcdFxcdFxcdGdvdG8gb3V0O1xcbnZpcnQva3ZtL2t2bV9tYWluLmM6NDU3MzpcXHRcXHRyID0ga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZSh2Y3B1LCBcXHUwMDI2bXBfc3RhdGUpO1xcbnZpcnQva3ZtL2t2bV9tYWluLmMtNDU3NC1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDM6MTIuOTU1MDc0NjMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjYyOTg3NzgzOTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUsIEknbSB0aGlua2luZyBJIHNob3VsZCByZWFsbHkgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzLiBMb29raW5nIGF0IHRoZSBjb2RlLCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaW1tZWRpYXRlbHkgc3RhbmRzIG91dCBhcyBhIHByb21pc2luZyB0YXJnZXQuIEl0IGp1c3QgZmVlbHMgbGlrZSBhIGdvb2Qgc3BvdCB0byBzdGFydCBkaWdnaW5nIGFyb3VuZC4gQW5kIGhleSwgd2hpbGUgSSdtIGF0IGl0LCBgdm14X2NsZWFyX2hsdGAgYWxzbyBzZWVtcyBsaWtlIGl0IGNvdWxkIGhhdmUgc29tZSBpbnRlcmVzdGluZyBhbmdsZXMgSSBtaWdodCBleHBsb2l0LiBJdCdzIHRpbWUgdG8gY29uZmlybSB0aGF0IHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZS4gR290dGEgbWFrZSBzdXJlIHRoZSBlbnZpcm9ubWVudCBpcyBzZXQgdXAgY29ycmVjdGx5IGJlZm9yZSBJIHN0YXJ0IHRocm93aW5nIHRoaW5ncyBhdCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTgyNSwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQ3OjM1Ljk0Mjg2MjQxM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTI0MzkxOTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXFxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZzoyMDptZW51Y29uZmlnIEtWTVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xNy1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMi1cXHRib29sIFxcXCJNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI2OmNvbmZpZyBLVk1fQk9PSzNTX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM0OmNvbmZpZyBLVk1fQk9PSzNTXzY0X0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zOS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9CT09LM1NfNjRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc182NCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTc4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI2OmNvbmZpZyBLVk1fQk9PSzNTX0hWX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0My1cXHRib29sIFxcXCJEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTU3OmNvbmZpZyBLVk1fQk9PSzNTX0hWX05FU1RFRF9QTVVfV09SS0FST1VORFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiTmVzdGVkIEwwIGhvc3Qgd29ya2Fyb3VuZCBmb3IgTDEgS1ZNIGhvc3QgUE1VIGhhbmRsaW5nIGJ1Z1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTcxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiSHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4NS1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg3OmNvbmZpZyBLVk1fRVhJVF9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVxcdGJvb2wgXFxcIkRldGFpbGVkIGV4aXQgdGltaW5nXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5Ny1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cXHRib29sIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTQtXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9NUElDXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cXHRib29sIFxcXCJLVk0gaW4ta2VybmVsIE1QSUMgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0MC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUyLVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZz0yMj1zb3VyY2UgXFxcImFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcXFwiXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTIzLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnPTE3PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTIwLVxcdGRlZl90cmlzdGF0ZSB5XFxuLS1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDYtXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cXHRib29sIFxcXCJVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXFxcIlxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFxcXCJhcmNoL3g4Ni94ZW4vS2NvbmZpZ1xcXCJcXG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC94ODYvS2NvbmZpZy04MjktXFx0Ym9vbCBcXFwiS1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy0zLVxcbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxcbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy00Mi1cXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xcbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTQ1LVxcbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXFxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcXG52aXJ0L2t2bS9LY29uZmlnLTUxLSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxcbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXFxudmlydC9rdm0vS2NvbmZpZy02My0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxcbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbnZpcnQva3ZtL0tjb25maWctNjktICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxcbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcXG52aXJ0L2t2bS9LY29uZmlnLTcyLSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03My1cXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXFxudmlydC9rdm0vS2NvbmZpZy03NS0gICAgICAgZGVmX2Jvb2wgeVxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctOTMtXFxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTk1LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy05Ni1cXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXFxudmlydC9rdm0vS2NvbmZpZy05OC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTktXFxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTEwMS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTAyLVxcbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xcbnZpcnQva3ZtL0tjb25maWctMTA0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXFxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxcbnZpcnQva3ZtL0tjb25maWctMTA3LSAgICAgICBzZWxlY3QgWEFSUkFZX01VTFRJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQ3OjM4LjQ2NzI2NTIyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1ODg3NTk0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgS1ZNIGFuZCBITFQgQ2xlYXJpbmcgRnVuY3Rpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBLVk0gY29uZmlndXJhdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBLVk0gY29uZmlndXJhdGlvbi4gVGhlIHN5c3RlbSBzZWVtcyB0byBiZSB1c2luZyBgS1ZNYC4gTXkgZ29hbCBoZXJlIGlzIHRvIGRldGVybWluZSBob3cgdG8gYmVzdCBjbGVhciB0aGUgSExUIChIYWx0KSBzdGF0ZS5cblxuSSd2ZSBpZGVudGlmaWVkIGEgZmV3IGZ1bmN0aW9ucyB0byBjb25zaWRlcjogYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLCBgdnRfY2xlYXJfaGx0YCwgYW5kIGB2bXhfY2xlYXJfaGx0YC4gRmlyc3QsIEkgd2FudGVkIHRvIGNvbmZpcm0gaWYgYHZ0X2NsZWFyX2hsdGAgaXMgYSBzdGF0aWMgZnVuY3Rpb24uIEkgcmVjYWxsIGl0IGJlaW5nIGxvY2F0ZWQgaW4gYGFyY2gveDg2L2t2bS92bXgvbWFpbi5jYCwgYW5kIGEgcXVpY2sgY2hlY2sgY29uZmlybXMgdGhhdCBpdCAqaXMqIHN0YXRpYyB3aXRoaW4gdGhhdCBmaWxlLiBUaGlzIG1lYW5zIEkgY2FuJ3QgZGlyZWN0bHkgY2FsbCBpdCBmcm9tIG91dHNpZGUgdGhhdCBmaWxlLCBzbyB0aGF0IGxpbWl0cyBpdHMgdXNlZnVsbmVzcyBoZXJlLlxuXG5Ib3dldmVyLCBgdm14X2NsZWFyX2hsdGAgaXMgKm5vdCogc3RhdGljLCB3aGljaCBvcGVucyB1cCBtb3JlIHBvc3NpYmlsaXRpZXMuIFRoaXMgbGVhdmVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhbmQgYHZteF9jbGVhcl9obHRgIGFzIGNhbmRpZGF0ZXMuXG5cbkJlZm9yZSBJIHByb2NlZWQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgYHZteF9jbGVhcl9obHRgJ3Mgc2lnbmF0dXJlIGFuZCBjb25maXJtIHdoZXRoZXIgaXQgaXMgZXhwb3J0ZWQgY29ycmVjdGx5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgY2FuIGNhbGwgaXQgY2xlYW5seS4gTGV0J3MgbWFrZSBzdXJlIGl0J3MgYWNjZXNzaWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAzMTEsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDc6NDMuODI2MTQzNTIzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3Nzc2ODQ4OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm14X2NsZWFyX2hsdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vdm14L21haW4uYz02MDQ9c3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTYxMi1cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzo2MTM6XFx0dm14X2NsZWFyX2hsdCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy02MTQtfVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz0xOTA2PWludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzoxOTEyOnZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy0xOTEzLXtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9MTkyNT12b2lkIHZteF9pbmplY3RfZXhjZXB0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTk4NC1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjE5ODU6XFx0dm14X2NsZWFyX2hsdCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5ODYtfVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz01MTIzPXZvaWQgdm14X2luamVjdF9pcnEoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIHJlaW5qZWN0ZWQpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxNDctXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo1MTQ4OlxcdHZteF9jbGVhcl9obHQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01MTQ5LX1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NTE1MT12b2lkIHZteF9pbmplY3Rfbm1pKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTE3OC1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjUxNzk6XFx0dm14X2NsZWFyX2hsdCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxODAtfVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz04NDgwPWludCB2bXhfZW50ZXJfc21tKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5pb24ga3ZtX3NtcmFtICpzbXJhbSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODQ5Ni1cXHR2bXgtXFx1MDAzZW5lc3RlZC52bXhvbiA9IGZhbHNlO1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODQ5NzpcXHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODQ5OC1cXHRyZXR1cm4gMDtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTk3PXZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaDo5ODp2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC05OS12b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Nzo0Ni42MDM4MzU3MzRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NTI0NjEzNDE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IGxvb2tzIGxpa2UgYHZteF9jbGVhcl9obHRgIGlzbid0IHN0YXRpYyBhbnltb3JlLCBhbmQgbmVpdGhlciBpcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAuIEFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjayBmb3Igb3RoZXIgcmVsYXRlZCBtb2RpZmljYXRpb25zLiBBaCwgeWVzLCBjb25maXJtZWQ6IGBhcmNoL3g4Ni9rdm0veDg2LmNgIHRvdWNoZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgaXMgbW9kaWZ5aW5nIGB2bXhfY2xlYXJfaGx0YCAoc3BlY2lmaWNhbGx5LCByZW1vdmluZyBpdHMgYHN0YXRpY2AgZGVzaWduYXRpb24pLiBGdXJ0aGVybW9yZSwgYGFyY2gveDg2L2t2bS92bXgvbWFpbi5jYCBpcyBpbnRyb2R1Y2luZyBgdnRfY2xlYXJfaGx0YC5cblxuU28sIHRoZSBrZXkgZnVuY3Rpb25zIHRvIGludmVzdGlnYXRlIGFyZSBkZWZpbml0ZWx5IGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhbmQgYHZteF9jbGVhcl9obHRgLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBoZXJlIGlzIGBLVk1gLlxuXG5Ob3csIGxldCdzIGZvcm1hbGl6ZSB0aGlzLiBUaGlzIHBhdGNoIHdhcnJhbnRzIGZ1enppbmcsIHdpdGhvdXQgYSBkb3VidC4gVGhlIHJlYXNvbmluZz8gV2VsbCwgaXQncyBhZGRpbmcgYSBuZXcgeDg2IG9wZXJhdGlvbiwgYGNsZWFyX2hsdGAsIGFuZCBpdCdzIG1vZGlmeWluZyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gaW52b2tlIHRoaXMgYGNsZWFyX2hsdGAgb3Agd2hlbiBhIHZDUFUgdHJhbnNpdGlvbnMgb3V0IG9mIGEgSEFMVEVEIHN0YXRlLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gS1ZNIGFuZCBpdCdzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBgS1ZNX1NFVF9NUF9TVEFURWAgaW9jdGwuIEl0J3MgYSBjbGVhciBlbnRyeSBwb2ludCBmb3IgZnV6emluZywgYW5kIGl0J3MgZ29vZCB0byBjYWxsIGl0IG91dC4gVGhlIGZ1enppbmcgdGFyZ2V0cyBhcmUgZ29pbmcgdG8gYmUgdGhvc2UgdHdvIGZ1bmN0aW9uczogYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgdm14X2NsZWFyX2hsdGAuIEFuZCBvZiBjb3Vyc2UsIHRoZSBgS1ZNYCBjb25maWcgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSByZWxldmFudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE2OTQsIk91dHB1dFRva2VucyI6MTM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQ3OjU2LjEyODQ2NDgyMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0ODUwMTgxNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiLFxuICAgIFwidm14X2NsZWFyX2hsdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgeDg2IG9wIGBjbGVhcl9obHRgIGFuZCBtb2RpZmllcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gY2FsbCBpdCB3aGVuIHRoZSB2Q1BVIGlzIHRha2VuIG91dCBvZiB0aGUgSEFMVEVEIHN0YXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlXCIsXG4gICAgXCJ2bXhfY2xlYXJfaGx0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyB4ODYgb3AgYGNsZWFyX2hsdGAgYW5kIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGl0IHdoZW4gdGhlIHZDUFUgaXMgdGFrZW4gb3V0IG9mIHRoZSBIQUxURUQgc3RhdGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Nzo1Ni4yNzY5Nzg1MzZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxODg4MzM3NjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDc6NTYuMjc3OTA2NTY2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIxODg3NDA1NDYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgS1ZNIGlvY3RsIGBLVk1fU0VUX01QX1NUQVRFYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgKGUuZy4gVk1YJ3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzY0YzRmN2QxMDIxNTIxYmI0NmNhNTk2ZWJjNGU5NjFkZGFmZDFkZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbmluZGV4IGUyMTNjOWFlM2UzMDEuLmRkOTAyNmMxMDcxY2UgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXG5AQCAtODIsNiArODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKVxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spXG4gS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpXG4gS1ZNX1g4Nl9PUChlbmFibGVfbm1pX3dpbmRvdylcbiBLVk1fWDg2X09QKGVuYWJsZV9pcnFfd2luZG93KVxuIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbmluZGV4IDI4Mzg0NzYxOWZmODguLmU1YTA3NTg1MzZlMTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTYwNyw2ICsxNjA3LDEzIEBAIHN0cnVjdCBrdm1feDg2X29wcyB7XG4gXHRpbnQgKCpubWlfYWxsb3dlZCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIFx0Ym9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdHZvaWQgKCpzZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuK1x0LypcbitcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc29cbitcdCAqIHRoYXQgaXQgd2lsbCBmZXRjaCBhbmQgZXhlY3V0ZSBpbnN0cnVjdGlvbnMgb24gdGhlIG5leHQgVk0tRW50ZXIuXG4rXHQgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzXG4rXHQgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC5cbitcdCAqL1xuK1x0dm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cbiBcdGJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuKysrIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbkBAIC02MDEsNiArNjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKVxuIFx0dm14X3NldF9ubWlfbWFzayh2Y3B1LCBtYXNrZWQpO1xuIH1cbiBcbitzdGF0aWMgdm9pZCB2dF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuK3tcbitcdC8qXG4rXHQgKiBURFggZG9lc24ndCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4ndCBhY2Nlc3MgYVxuK1x0ICogVEQncyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxuK1x0ICovXG4rXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSlcbitcdFx0cmV0dXJuO1xuK1xuK1x0dm14X2NsZWFyX2hsdCh2Y3B1KTtcbit9XG4rXG4gc3RhdGljIHZvaWQgdnRfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qIFJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiB0ZHhfaW5qZWN0X25taSgpLiAqL1xuQEAgLTk2NCw2ICs5NzYsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgdnRfeDg2X29wcyBfX2luaXRkYXRhID0ge1xuIFx0Lm5taV9hbGxvd2VkID0gdnRfb3Aobm1pX2FsbG93ZWQpLFxuIFx0LmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksXG4gXHQuc2V0X25taV9tYXNrID0gdnRfb3Aoc2V0X25taV9tYXNrKSxcbitcdC5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLFxuIFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxuIFx0LmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLFxuIFx0LnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTE5MDksNyArMTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRyZXR1cm4gc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKlxuIFx0ICogRW5zdXJlIHRoYXQgd2UgY2xlYXIgdGhlIEhMVCBzdGF0ZSBpbiB0aGUgVk1DUy4gIFdlIGRvbid0IG5lZWQgdG9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbisrKyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5AQCAtOTUsNiArOTUsNyBAQCBpbnQgdm14X2ludGVycnVwdF9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcbiBpbnQgdm14X25taV9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcbiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfaXJxX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X3VwZGF0ZV9jcjhfaW50ZXJjZXB0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHRwciwgaW50IGlycik7XG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBkOTRiNTkxNDBjNDUyLi4zYjIyNGMzYmJlNDIxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC05MDU4LDYgKzkwNTgsMjEgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0fVxuIFxuIFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZSk7XG4rXG4rXHQvKlxuK1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSwgZS5nLiBWTVgnc1xuK1x0ICogR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExULCB3aGVuIHVzZXJzcGFjZSBwdXRzIHRoZSB2Q1BVIGludG8gYSBzdGF0ZVxuK1x0ICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuK1x0ICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkXG4rXHQgKiB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkIHN0YXlzIHdlZGdlZCBldmVuIGFmdGVyIHVzZXJzcGFjZSByZXdyaXRlc1xuK1x0ICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tXG4rXHQgKiBITFQgaXMgYXJjaGl0ZWN0dXJhbGx5IGFsbG93ZWQgdG8gYmUgc3B1cmlvdXMsIHNvIGNsZWFyaW5nIGl0IGlzXG4rXHQgKiBhbHdheXMgc2FmZS5cbitcdCAqL1xuK1x0aWYgKGt2bV9obHRfaW5fZ3Vlc3QodmNwdS1cdTAwM2Vrdm0pIFx1MDAyNlx1MDAyNlxuK1x0ICAgIG1wX3N0YXRlLVx1MDAzZW1wX3N0YXRlICE9IEtWTV9NUF9TVEFURV9IQUxURUQpXG4rXHRcdGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpO1xuK1xuIFx0a3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTtcbiBcbiBcdHJldCA9IDA7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Nzo1Ni4yNzc5MDgzNTZaIiwiU2VxIjoxMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE4ODczNzcyODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIEhMVCBDbGVhcmluZyBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB3aXRoaW4gYGt2bV94ODZfb3BzYCBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIFZNWC4gVGhlIGNvcmUgaWRlYSBpcyB0byBjbGVhciB0aGUgaGFsdGVkIHN0YXRlIG9mIGEgdkNQVSwgYW5kIGl0J3MgYmVpbmcgdHJpZ2dlcmVkIGluIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYC4gVGhpcyBtYWtlcyBzZW5zZTsgaXQncyBiZWluZyBjYWxsZWQgd2hlbiB1c2Vyc3BhY2UgY2hhbmdlcyB0aGUgTVAgc3RhdGUgKmF3YXkqIGZyb20gYEtWTV9NUF9TVEFURV9IQUxURURgLiBFc3NlbnRpYWxseSwgaXQncyBhIGZpeCBmb3IgYSBzaXR1YXRpb24gd2hlcmUgYSB2Q1BVLCBzdHVjayBpbiBhIGhhbHRlZCBzdGF0ZSB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkLCB3b3VsZG4ndCByZXNwb25kIGV2ZW4gd2hlbiBpdHMgcmVnaXN0ZXJzIHdlcmUgbW9kaWZpZWQsIGxpa2UgZHVyaW5nIGEgcmVzZXQuXG5cbk15IGluaXRpYWwgY29uY2VybiBpcyBhbHdheXMgYXJvdW5kIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciB3cml0ZXMuIEJ1dCwgZGlnZ2luZyBpbiwgaXQgc2VlbXMgcHJldHR5IGNsZWFuLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLCB5ZXMsIGFuZCBpdCBnZXRzIHRoZSBgbXBfc3RhdGVgIGFzIGEgcG9pbnRlciB0byBgc3RydWN0IGt2bV9tcF9zdGF0ZWAgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiBDcnVjaWFsbHksIHRoZSBwYXRjaCAqb25seSogcmVhZHMgdGhlIGBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZWAgdmFsdWUsIGFuZCBpdCBjYWxscyBgY2xlYXJfaGx0YCBiYXNlZCBvbiB0aGF0LiBUaGVyZSdzIG5vIG5ldyBhbGxvY2F0aW9uIGhlcmUsIG5vIG5ldyBkYXRhIGJlaW5nIHNlbnQgYmFjayB0byB1c2Vyc3BhY2UsIG5vIGFkZGVkIHVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBhdCBhbGwuIEl0J3Mgc3RyaWN0bHkgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIG1hbmlwdWxhdGlvbiBmaXguXG5cblRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSBxdWlja2x5IGRvdWJsZS1jaGVja2VkIHRoZSBga3ZtX21wX3N0YXRlYCBzdHJ1Y3QgaXRzZWxmLCBhbmQgaXQncyBqdXN0IGEgc2ltcGxlIGBfX3UzMiBtcF9zdGF0ZWAgZmllbGQuIEl0J3Mgc2ltcGxlIGFuZCBjb3BpZWQgZnJvbSB1c2Vyc3BhY2UgaW4gdGhlIGBrdm1fdmNwdV9pb2N0bGAgZnVuY3Rpb24uIFRoaXMgY29uZmlybXMgdGhhdCB0aGVyZSdzIG5vdGhpbmcgY29uY2VybmluZyBoZXJlLlxuXG5HaXZlbiBhbGwgdGhpcywgSSdtIGNvbmZpZGVudCB0aGF0IHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcy4gS0FTQU4gaXMgcGVyaGFwcyBub3QgZGlyZWN0bHkgcmVsZXZhbnQsIGJ1dCBJIGRvbid0IHNlZSBhbnkgbmVlZCB0byBpbnZlc3RpZ2F0ZSB0aGlzIGZ1cnRoZXIgd2l0aCBLTVNBTi4gVGhlcmVmb3JlLCBJIHdpbGwgc2V0IGBOZWVkc0tNU0FOPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzkzMiwiT3V0cHV0VG9rZW5zIjoxNzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0ODoxOC4xNjUyODg0NzhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBLVk0gaW9jdGwgYEtWTV9TRVRfTVBfU1RBVEVgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSAoZS5nLiBWTVgncyBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQpIHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYEtWTV9NUF9TVEFURV9IQUxURURgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBoYXJkd2FyZSBzdGF0ZSBmaXggdG8gcHJldmVudCB2Q1BVcyBmcm9tIHN0YXlpbmcgd2VkZ2VkIGFmdGVyIGEgbWFjaGluZSByZXNldC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgZG9lcyBub3QgY29weSBhbnkgbmV3IGRhdGEgdG8gdXNlcnNwYWNlLCBhbmQgZG9lcyBub3QgcmVhZCBhbnkgcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCBtZW1vcnkuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLCBhbmQgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgS1ZNIGlvY3RsIGBLVk1fU0VUX01QX1NUQVRFYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgKGUuZy4gVk1YJ3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow2f6l6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-20 12:40:54 +0000 UTC FinishedAt: 2026-08-20 12:48:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_arch_vcpu_ioctl_set_mpstate", "vmx_clear_hlt" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBLVk0gaW9jdGwgYEtWTV9TRVRfTVBfU1RBVEVgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSAoZS5nLiBWTVgmIzM5O3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgeDg2IG9wIGBjbGVhcl9obHRgIGFuZCBtb2RpZmllcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gY2FsbCBpdCB3aGVuIHRoZSB2Q1BVIGlzIHRha2VuIG91dCBvZiB0aGUgSEFMVEVEIHN0YXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDc2NGM0ZjdkMTAyMTUyMWJiNDZjYTU5NmViYzRlOTYxZGRhZmQxZGVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyMCAxMjo0Mjo0OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKVxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spXG4gS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spXG4mIzQzO0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KVxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXG4gS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdylcbiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvXG4mIzQzO1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbiYjNDM7XHQgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzXG4mIzQzO1x0ICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuXG4mIzQzO1x0ICovXG4mIzQzO1x0dm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cbiBcdGJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbkBAIC02MDEsNiAmIzQzOzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZClcbiBcdHZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4mIzQzO3tcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFREWCBkb2VzbiYjMzk7dCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4mIzM5O3QgYWNjZXNzIGFcbiYjNDM7XHQgKiBURCYjMzk7cyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cbkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuJiM0MztcdC5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLFxuIFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxuIFx0LmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLFxuIFx0LnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTE5MDksNyAmIzQzOzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5AQCAtOTUsNiAmIzQzOzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjNiMjI0YzNiYmU0MjEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiAmIzQzOzkwNTgsMjEgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0fVxuIFxuIFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZSk7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSwgZS5nLiBWTVgmIzM5O3NcbiYjNDM7XHQgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQsIHdoZW4gdXNlcnNwYWNlIHB1dHMgdGhlIHZDUFUgaW50byBhIHN0YXRlXG4mIzQzO1x0ICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuJiM0MztcdCAqIFZNLUVudGVyIGFuZCBpcyBub3QgdG91Y2hlZCBieSBhbnkgb3RoZXIgaW9jdGwsIHNvIGEgdkNQVSB0aGF0IGhhbHRlZFxuJiM0MztcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgc3RheXMgd2VkZ2VkIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIHJld3JpdGVzXG4mIzQzO1x0ICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tXG4mIzQzO1x0ICogSExUIGlzIGFyY2hpdGVjdHVyYWxseSBhbGxvd2VkIHRvIGJlIHNwdXJpb3VzLCBzbyBjbGVhcmluZyBpdCBpc1xuJiM0MztcdCAqIGFsd2F5cyBzYWZlLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChrdm1faGx0X2luX2d1ZXN0KHZjcHUtXHUwMDNla3ZtKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgbXBfc3RhdGUtXHUwMDNlbXBfc3RhdGUgIT0gS1ZNX01QX1NUQVRFX0hBTFRFRClcbiYjNDM7XHRcdGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpO1xuJiM0MztcbiBcdGt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9FVkVOVCwgdmNwdSk7XG4gXG4gXHRyZXQgPSAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjVtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlJiMzNDssCiAgICAmIzM0O3ZteF9jbGVhcl9obHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyB4ODYgb3AgYGNsZWFyX2hsdGAgYW5kIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGl0IHdoZW4gdGhlIHZDUFUgaXMgdGFrZW4gb3V0IG9mIHRoZSBIQUxURUQgc3RhdGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzY0YzRmN2QxMDIxNTIxYmI0NmNhNTk2ZWJjNGU5NjFkZGFmZDFkZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKQogS1ZNX1g4Nl9PUChubWlfYWxsb3dlZCkKIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKQogS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spCiYjNDM7S1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpCiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KQogS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdykKIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAppbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHsKIAlpbnQgKCpubWlfYWxsb3dlZCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogCWJvb2wgKCpnZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJdm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc28KJiM0MzsJICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci4KJiM0MzsJICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zcwomIzQzOwkgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC4KJiM0MzsJICovCiYjNDM7CXZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqLwogCWJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKQEAgLTYwMSw2ICYjNDM7NjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKQogCXZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwkvKgomIzQzOwkgKiBURFggZG9lc24mIzM5O3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJiMzOTt0IGFjY2VzcyBhCiYjNDM7CSAqIFREJiMzOTtzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuCiYjNDM7CSAqLwomIzQzOwlpZiAoaXNfdGRfdmNwdSh2Y3B1KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJdm14X2NsZWFyX2hsdCh2Y3B1KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovCkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7CiAJLm5taV9hbGxvd2VkID0gdnRfb3Aobm1pX2FsbG93ZWQpLAogCS5nZXRfbm1pX21hc2sgPSB2dF9vcChnZXRfbm1pX21hc2spLAogCS5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLAomIzQzOwkuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSwKIAkuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksCiAJLmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLAogCS51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtMTkwOSw3ICYjNDM7MTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQomIzQzO3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyoKIAkgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKQEAgLTk1LDYgJiM0Mzs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTsKJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9lbmFibGVfaXJxX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBkOTRiNTkxNDBjNDUyLi4zYjIyNGMzYmJlNDIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC05MDU4LDYgJiM0Mzs5MDU4LDIxIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAl9CiAKIAlrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLSZndDttcF9zdGF0ZSk7CiYjNDM7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUsIGUuZy4gVk1YJiMzOTtzCiYjNDM7CSAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCwgd2hlbiB1c2Vyc3BhY2UgcHV0cyB0aGUgdkNQVSBpbnRvIGEgc3RhdGUKJiM0MzsJICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZAomIzQzOwkgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWQKJiM0MzsJICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCBzdGF5cyB3ZWRnZWQgZXZlbiBhZnRlciB1c2Vyc3BhY2UgcmV3cml0ZXMKJiM0MzsJICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tCiYjNDM7CSAqIEhMVCBpcyBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMKJiM0MzsJICogYWx3YXlzIHNhZmUuCiYjNDM7CSAqLwomIzQzOwlpZiAoa3ZtX2hsdF9pbl9ndWVzdCh2Y3B1LSZndDtrdm0pICZhbXA7JmFtcDsKJiM0MzsJICAgIG1wX3N0YXRlLSZndDttcF9zdGF0ZSAhPSBLVk1fTVBfU1RBVEVfSEFMVEVEKQomIzQzOwkJa3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7CiYjNDM7CiAJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTsKIAogCXJldCA9IDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM5MzUKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAyMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IENsZWFyIEhMVCBvbiB4ODYgS1ZNKioKCk9rYXksIHNvIHdlJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgYSBuZXcgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHdpdGhpbiBLVk0sIHNwZWNpZmljYWxseSBmb3IgeDg2LiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGUgcGF0Y2ggbWFrZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgY2xlYXIgbW9kaWZpY2F0aW9uIHRvIGhvdyBLVk0gYmVoYXZlcy4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRpbmcgYW4gKm9wdGlvbmFsKiBgY2xlYXJfaGx0YCBvcCwgYnV0IHRoZSBzaWduaWZpY2FudCBwYXJ0IGlzIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGggYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLiBUaGF0JiMzOTtzIHRoZSBob29rIHdlJiMzOTtyZSBpbnRlcmVzdGVkIGluOyBpdCYjMzk7cyB0aGUgZ2F0ZXdheSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC4gSXQgc2VlbXMgd2UmIzM5O2xsIG5lZWQgYGt2bV9obHRfaW5fZ3Vlc3RgIHRvIGJlIHRydWUgYW5kIHRoZSBNUCBzdGF0ZSBub3QgdG8gYmUgaGFsdGVkLiBUaGlzIGlzIGEgY2xlYXIgaW5kaWNhdG9yIHRoYXQgd2Ugc2hvdWxkIG1hcmsgdGhpcyBwYXRjaCBhcyBgV29ydGhGdXp6aW5nPXRydWVgLgoKTm93LCBsZXQmIzM5O3MgZHJpbGwgZG93biBhbmQgcGlucG9pbnQgdGhlIGV4YWN0IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMgb24uIEkgc2VlIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhcyB0aGUgcHJpbWFyeSB0YXJnZXQsIGJlY2F1c2UgaXQmIzM5O3MgdGhlIGVudHJ5IHBvaW50LiBBZGRpdGlvbmFsbHksIHdlIG5lZWQgdG8gY29uc2lkZXIgaG93IGB2dF9jbGVhcl9obHRgIGFuZCBgdm14X2NsZWFyX2hsdGAgYXJlIHVzZWQuIFRoZXkmIzM5O3JlIHJlbGF0ZWQsIHNvIHdlIGhhdmUgdG8gZnV6eiB0aG9zZSB0b28uIFNvLCBsZXQmIzM5O3Mgc3RhcnQgYnkgZG9pbmcgYSBxdWljayBzZWFyY2ggZm9yIGFsbCBpbnN0YW5jZXMgb2YgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9rdm0vYXJtLmM9Nzg2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL2FybTY0L2t2bS9hcm0uYy03OTMtXG5hcmNoL2FybTY0L2t2bS9hcm0uYzo3OTQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9hcm02NC9rdm0vYXJtLmMtNzk1LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9NDY3PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTQ3NC1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM6NDc1OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtNDc2LVx0XHRcdFx0c3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9taXBzL2t2bS9taXBzLmM9NTE1PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjAtXG5hcmNoL21pcHMva3ZtL21pcHMuYzo1MjE6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9taXBzL2t2bS9taXBzLmMtNTIyLVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jPTIwMTM9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jLTIwMTgtXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYzoyMDE5OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jLTIwMjAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jPTQ5Nj1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jLTUwMy1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYzo1MDQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jLTUwNS1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDI2MT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jLTQyNzUtXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM6NDI3NjppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDI3Ny1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmM9OTAwMD1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTkwMjUtXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTAyNjppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTAyNy1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg9MTYzOT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0MC1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSk7XG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg6MTY0MTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0Mi1cdFx0XHRcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSk7XG4tLVxudmlydC9rdm0va3ZtX21haW4uYz00NDI1PXN0YXRpYyBsb25nIGt2bV92Y3B1X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLFxuLS1cbnZpcnQva3ZtL2t2bV9tYWluLmMtNDU3Mi1cdFx0XHRnb3RvIG91dDtcbnZpcnQva3ZtL2t2bV9tYWluLmM6NDU3MzpcdFx0ciA9IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUodmNwdSwgXHUwMDI2bXBfc3RhdGUpO1xudmlydC9rdm0va3ZtX21haW4uYy00NTc0LVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODI1CgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUsIEkmIzM5O20gdGhpbmtpbmcgSSBzaG91bGQgcmVhbGx5IGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cy4gTG9va2luZyBhdCB0aGUgY29kZSwgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGltbWVkaWF0ZWx5IHN0YW5kcyBvdXQgYXMgYSBwcm9taXNpbmcgdGFyZ2V0LiBJdCBqdXN0IGZlZWxzIGxpa2UgYSBnb29kIHNwb3QgdG8gc3RhcnQgZGlnZ2luZyBhcm91bmQuIEFuZCBoZXksIHdoaWxlIEkmIzM5O20gYXQgaXQsIGB2bXhfY2xlYXJfaGx0YCBhbHNvIHNlZW1zIGxpa2UgaXQgY291bGQgaGF2ZSBzb21lIGludGVyZXN0aW5nIGFuZ2xlcyBJIG1pZ2h0IGV4cGxvaXQuIEl0JiMzOTtzIHRpbWUgdG8gY29uZmlybSB0aGF0IHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZS4gR290dGEgbWFrZSBzdXJlIHRoZSBlbnZpcm9ubWVudCBpcyBzZXQgdXAgY29ycmVjdGx5IGJlZm9yZSBJIHN0YXJ0IHRocm93aW5nIHRoaW5ncyBhdCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnOjIwOm1lbnVjb25maWcgS1ZNXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE3LVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjY6Y29uZmlnIEtWTV9CT09LM1NfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MzQ6Y29uZmlnIEtWTV9CT09LM1NfNjRfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM5LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX0JPT0szU182NFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzY0IHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNzgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMjY6Y29uZmlnIEtWTV9CT09LM1NfSFZfRVhJVF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNTc6Y29uZmlnIEtWTV9CT09LM1NfSFZfTkVTVEVEX1BNVV9XT1JLQVJPVU5EXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVx0Ym9vbCBcJiMzNDtOZXN0ZWQgTDAgaG9zdCB3b3JrYXJvdW5kIGZvciBMMSBLVk0gaG9zdCBQTVUgaGFuZGxpbmcgYnVnXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cdHRyaXN0YXRlIFwmIzM0O0h5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg1LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODc6Y29uZmlnIEtWTV9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgZXhpdCB0aW1pbmdcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxNC1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX01QSUNcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgTVBJQyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTItXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnPTIyPXNvdXJjZSBcJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXCYjMzQ7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3MzOTAva3ZtL0tjb25maWc9MTc9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXG5hcmNoL3MzOTAva3ZtL0tjb25maWctMjAtXHRkZWZfdHJpc3RhdGUgeVxuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00Ni1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cdGJvb2wgXCYjMzQ7VXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1wmIzM0O1xuLS1cbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcJiMzNDthcmNoL3g4Ni94ZW4vS2NvbmZpZ1wmIzM0O1xuYXJjaC94ODYvS2NvbmZpZy04MjctXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3g4Ni9LY29uZmlnLTgyOS1cdGJvb2wgXCYjMzQ7S1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC94ODYva3ZtL0tjb25maWctMTktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXHRkZWZfdHJpc3RhdGUgS1ZNIGlmIChLVk1fSU5URUwgIT0gbiB8fCBLVk1fQU1EICE9IG4pXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1Mjpjb25maWcgS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTY4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5Njpjb25maWcgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgSW50ZWwgKGFuZCBjb21wYXRpYmxlKSBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcJiMzNDtDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTEyMj1jb25maWcgWDg2X1NHWF9LVk1cbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzQ6Y29uZmlnIEtWTV9JTlRFTF9URFhcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cdGJvb2wgXCYjMzQ7SW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbnMgKFREWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTczOmNvbmZpZyBLVk1fSU9BUElDXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzQtXHRib29sIFwmIzM0O0kvTyBBUElDLCBQSUMsIGFuZCBQSVQgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgzOmNvbmZpZyBLVk1fU01NXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXHRib29sIFwmIzM0O1N5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTkzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTUtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwODpjb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA5LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNzpjb25maWcgS1ZNX1BST1ZFX01NVVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVx0Ym9vbCBcJiMzNDtQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjI5LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cdGJvb2xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMzpjb25maWcgS1ZNX01BWF9OUl9WQ1BVU1xuYXJjaC94ODYva3ZtL0tjb25maWctMjM0LVx0aW50IFwmIzM0O01heGltdW0gbnVtYmVyIG9mIHZDUFVzIHBlciBLVk0gZ3Vlc3RcJiMzNDtcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTMtXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQyLVxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNDUtXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcbnZpcnQva3ZtL0tjb25maWctNTEtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXG4tLVxudmlydC9rdm0vS2NvbmZpZy02MS1cbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXG52aXJ0L2t2bS9LY29uZmlnLTYzLSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXG4tLVxudmlydC9rdm0vS2NvbmZpZy02Ny1cbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxudmlydC9rdm0vS2NvbmZpZy02OS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03MC1cbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcbnZpcnQva3ZtL0tjb25maWctNzItICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNzMtXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXG52aXJ0L2t2bS9LY29uZmlnLTc1LSAgICAgICBkZWZfYm9vbCB5XG4tLVxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbnZpcnQva3ZtL0tjb25maWctOTUtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTYtXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXG52aXJ0L2t2bS9LY29uZmlnLTk4LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcbnZpcnQva3ZtL0tjb25maWctMTAxLSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xudmlydC9rdm0vS2NvbmZpZy0xMDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTA1LVxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxudmlydC9rdm0vS2NvbmZpZy0xMDctICAgICAgIHNlbGVjdCBYQVJSQVlfTVVMVElcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDMxMQoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgS1ZNIGFuZCBITFQgQ2xlYXJpbmcgRnVuY3Rpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIEtWTSBjb25maWd1cmF0aW9uLCBzcGVjaWZpY2FsbHkgdGhlIEtWTSBjb25maWd1cmF0aW9uLiBUaGUgc3lzdGVtIHNlZW1zIHRvIGJlIHVzaW5nIGBLVk1gLiBNeSBnb2FsIGhlcmUgaXMgdG8gZGV0ZXJtaW5lIGhvdyB0byBiZXN0IGNsZWFyIHRoZSBITFQgKEhhbHQpIHN0YXRlLgoKSSYjMzk7dmUgaWRlbnRpZmllZCBhIGZldyBmdW5jdGlvbnMgdG8gY29uc2lkZXI6IGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCwgYHZ0X2NsZWFyX2hsdGAsIGFuZCBgdm14X2NsZWFyX2hsdGAuIEZpcnN0LCBJIHdhbnRlZCB0byBjb25maXJtIGlmIGB2dF9jbGVhcl9obHRgIGlzIGEgc3RhdGljIGZ1bmN0aW9uLiBJIHJlY2FsbCBpdCBiZWluZyBsb2NhdGVkIGluIGBhcmNoL3g4Ni9rdm0vdm14L21haW4uY2AsIGFuZCBhIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHRoYXQgaXQgKmlzKiBzdGF0aWMgd2l0aGluIHRoYXQgZmlsZS4gVGhpcyBtZWFucyBJIGNhbiYjMzk7dCBkaXJlY3RseSBjYWxsIGl0IGZyb20gb3V0c2lkZSB0aGF0IGZpbGUsIHNvIHRoYXQgbGltaXRzIGl0cyB1c2VmdWxuZXNzIGhlcmUuCgpIb3dldmVyLCBgdm14X2NsZWFyX2hsdGAgaXMgKm5vdCogc3RhdGljLCB3aGljaCBvcGVucyB1cCBtb3JlIHBvc3NpYmlsaXRpZXMuIFRoaXMgbGVhdmVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhbmQgYHZteF9jbGVhcl9obHRgIGFzIGNhbmRpZGF0ZXMuCgpCZWZvcmUgSSBwcm9jZWVkLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIGB2bXhfY2xlYXJfaGx0YCYjMzk7cyBzaWduYXR1cmUgYW5kIGNvbmZpcm0gd2hldGhlciBpdCBpcyBleHBvcnRlZCBjb3JyZWN0bHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBjYW4gY2FsbCBpdCBjbGVhbmx5LiBMZXQmIzM5O3MgbWFrZSBzdXJlIGl0JiMzOTtzIGFjY2Vzc2libGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L21haW4uYz02MDQ9c3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy02MTItXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzo2MTM6XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtNjE0LX1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTE5MDY9aW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjE5MTI6dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTkxMy17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz0xOTI1PXZvaWQgdm14X2luamVjdF9leGNlcHRpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTk4NC1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6MTk4NTpcdHZteF9jbGVhcl9obHQodmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5ODYtfVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NTEyMz12b2lkIHZteF9pbmplY3RfaXJxKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCByZWluamVjdGVkKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTE0Ny1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NTE0ODpcdHZteF9jbGVhcl9obHQodmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxNDktfVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NTE1MT12b2lkIHZteF9pbmplY3Rfbm1pKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxNzgtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjUxNzk6XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC92bXguYy01MTgwLX1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTg0ODA9aW50IHZteF9lbnRlcl9zbW0oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bmlvbiBrdm1fc21yYW0gKnNtcmFtKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODQ5Ni1cdHZteC1cdTAwM2VuZXN0ZWQudm14b24gPSBmYWxzZTtcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODQ5NzpcdHZteF9jbGVhcl9obHQodmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTg0OTgtXHRyZXR1cm4gMDtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaD05Nz12b2lkIHZteF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaDo5ODp2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTk5LXZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE2OTQKCQkJCQkJCW91dHB1dDogMTM1CgkJCQkJCQl0aG91Z2h0czogMzE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSXQgbG9va3MgbGlrZSBgdm14X2NsZWFyX2hsdGAgaXNuJiMzOTt0IHN0YXRpYyBhbnltb3JlLCBhbmQgbmVpdGhlciBpcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAuIEFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjayBmb3Igb3RoZXIgcmVsYXRlZCBtb2RpZmljYXRpb25zLiBBaCwgeWVzLCBjb25maXJtZWQ6IGBhcmNoL3g4Ni9rdm0veDg2LmNgIHRvdWNoZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgaXMgbW9kaWZ5aW5nIGB2bXhfY2xlYXJfaGx0YCAoc3BlY2lmaWNhbGx5LCByZW1vdmluZyBpdHMgYHN0YXRpY2AgZGVzaWduYXRpb24pLiBGdXJ0aGVybW9yZSwgYGFyY2gveDg2L2t2bS92bXgvbWFpbi5jYCBpcyBpbnRyb2R1Y2luZyBgdnRfY2xlYXJfaGx0YC4KClNvLCB0aGUga2V5IGZ1bmN0aW9ucyB0byBpbnZlc3RpZ2F0ZSBhcmUgZGVmaW5pdGVseSBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgYW5kIGB2bXhfY2xlYXJfaGx0YC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBgS1ZNYC4KCk5vdywgbGV0JiMzOTtzIGZvcm1hbGl6ZSB0aGlzLiBUaGlzIHBhdGNoIHdhcnJhbnRzIGZ1enppbmcsIHdpdGhvdXQgYSBkb3VidC4gVGhlIHJlYXNvbmluZz8gV2VsbCwgaXQmIzM5O3MgYWRkaW5nIGEgbmV3IHg4NiBvcGVyYXRpb24sIGBjbGVhcl9obHRgLCBhbmQgaXQmIzM5O3MgbW9kaWZ5aW5nIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBpbnZva2UgdGhpcyBgY2xlYXJfaGx0YCBvcCB3aGVuIGEgdkNQVSB0cmFuc2l0aW9ucyBvdXQgb2YgYSBIQUxURUQgc3RhdGUuIFRoYXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gS1ZNIGFuZCBpdCYjMzk7cyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiBJdCYjMzk7cyBhIGNsZWFyIGVudHJ5IHBvaW50IGZvciBmdXp6aW5nLCBhbmQgaXQmIzM5O3MgZ29vZCB0byBjYWxsIGl0IG91dC4gVGhlIGZ1enppbmcgdGFyZ2V0cyBhcmUgZ29pbmcgdG8gYmUgdGhvc2UgdHdvIGZ1bmN0aW9uczogYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgdm14X2NsZWFyX2hsdGAuIEFuZCBvZiBjb3Vyc2UsIHRoZSBgS1ZNYCBjb25maWcgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSByZWxldmFudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHg4NiBvcCBgY2xlYXJfaGx0YCBhbmQgbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNhbGwgaXQgd2hlbiB0aGUgdkNQVSBpcyB0YWtlbiBvdXQgb2YgdGhlIEhBTFRFRCBzdGF0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgS1ZNX1NFVF9NUF9TVEFURWAgaW9jdGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHg4NiBvcCBgY2xlYXJfaGx0YCBhbmQgbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNhbGwgaXQgd2hlbiB0aGUgdkNQVSBpcyB0YWtlbiBvdXQgb2YgdGhlIEhBTFRFRCBzdGF0ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgS1ZNX1NFVF9NUF9TVEFURWAgaW9jdGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQ3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMTI6NDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEtWTSBpb2N0bCBgS1ZNX1NFVF9NUF9TVEFURWAgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIChlLmcuIFZNWCYjMzk7cyBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQpIHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYEtWTV9NUF9TVEFURV9IQUxURURgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBoYXJkd2FyZSBzdGF0ZSBmaXggdG8gcHJldmVudCB2Q1BVcyBmcm9tIHN0YXlpbmcgd2VkZ2VkIGFmdGVyIGEgbWFjaGluZSByZXNldC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgZG9lcyBub3QgY29weSBhbnkgbmV3IGRhdGEgdG8gdXNlcnNwYWNlLCBhbmQgZG9lcyBub3QgcmVhZCBhbnkgcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCBtZW1vcnkuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLCBhbmQgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzY0YzRmN2QxMDIxNTIxYmI0NmNhNTk2ZWJjNGU5NjFkZGFmZDFkZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKQogS1ZNX1g4Nl9PUChubWlfYWxsb3dlZCkKIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKQogS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spCiYjNDM7S1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpCiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KQogS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdykKIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAppbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHsKIAlpbnQgKCpubWlfYWxsb3dlZCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogCWJvb2wgKCpnZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJdm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc28KJiM0MzsJICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci4KJiM0MzsJICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zcwomIzQzOwkgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC4KJiM0MzsJICovCiYjNDM7CXZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqLwogCWJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMKQEAgLTYwMSw2ICYjNDM7NjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKQogCXZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7ewomIzQzOwkvKgomIzQzOwkgKiBURFggZG9lc24mIzM5O3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJiMzOTt0IGFjY2VzcyBhCiYjNDM7CSAqIFREJiMzOTtzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuCiYjNDM7CSAqLwomIzQzOwlpZiAoaXNfdGRfdmNwdSh2Y3B1KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJdm14X2NsZWFyX2hsdCh2Y3B1KTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovCkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7CiAJLm5taV9hbGxvd2VkID0gdnRfb3Aobm1pX2FsbG93ZWQpLAogCS5nZXRfbm1pX21hc2sgPSB2dF9vcChnZXRfbm1pX21hc2spLAogCS5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLAomIzQzOwkuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSwKIAkuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksCiAJLmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLAogCS51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtMTkwOSw3ICYjNDM7MTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJcmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7CiB9CiAKLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQomIzQzO3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiAJLyoKIAkgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgKQEAgLTk1LDYgJiM0Mzs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTsKJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9lbmFibGVfaXJxX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBkOTRiNTkxNDBjNDUyLi4zYjIyNGMzYmJlNDIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC05MDU4LDYgJiM0Mzs5MDU4LDIxIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAl9CiAKIAlrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLSZndDttcF9zdGF0ZSk7CiYjNDM7CiYjNDM7CS8qCiYjNDM7CSAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUsIGUuZy4gVk1YJiMzOTtzCiYjNDM7CSAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCwgd2hlbiB1c2Vyc3BhY2UgcHV0cyB0aGUgdkNQVSBpbnRvIGEgc3RhdGUKJiM0MzsJICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZAomIzQzOwkgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWQKJiM0MzsJICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCBzdGF5cyB3ZWRnZWQgZXZlbiBhZnRlciB1c2Vyc3BhY2UgcmV3cml0ZXMKJiM0MzsJICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tCiYjNDM7CSAqIEhMVCBpcyBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMKJiM0MzsJICogYWx3YXlzIHNhZmUuCiYjNDM7CSAqLwomIzQzOwlpZiAoa3ZtX2hsdF9pbl9ndWVzdCh2Y3B1LSZndDtrdm0pICZhbXA7JmFtcDsKJiM0MzsJICAgIG1wX3N0YXRlLSZndDttcF9zdGF0ZSAhPSBLVk1fTVBfU1RBVEVfSEFMVEVEKQomIzQzOwkJa3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7CiYjNDM7CiAJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTsKIAogCXJldCA9IDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAxMjo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTMyCgkJCQkJCQlvdXRwdXQ6IDE3NgoJCQkJCQkJdGhvdWdodHM6IDM3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBLVk0gSExUIENsZWFyaW5nIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgYSBgY2xlYXJfaGx0YCBvcGVyYXRpb24gd2l0aGluIGBrdm1feDg2X29wc2Agc3BlY2lmaWNhbGx5IHRhcmdldGluZyBWTVguIFRoZSBjb3JlIGlkZWEgaXMgdG8gY2xlYXIgdGhlIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUsIGFuZCBpdCYjMzk7cyBiZWluZyB0cmlnZ2VyZWQgaW4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLiBUaGlzIG1ha2VzIHNlbnNlOyBpdCYjMzk7cyBiZWluZyBjYWxsZWQgd2hlbiB1c2Vyc3BhY2UgY2hhbmdlcyB0aGUgTVAgc3RhdGUgKmF3YXkqIGZyb20gYEtWTV9NUF9TVEFURV9IQUxURURgLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgYSBmaXggZm9yIGEgc2l0dWF0aW9uIHdoZXJlIGEgdkNQVSwgc3R1Y2sgaW4gYSBoYWx0ZWQgc3RhdGUgd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCwgd291bGRuJiMzOTt0IHJlc3BvbmQgZXZlbiB3aGVuIGl0cyByZWdpc3RlcnMgd2VyZSBtb2RpZmllZCwgbGlrZSBkdXJpbmcgYSByZXNldC4KCk15IGluaXRpYWwgY29uY2VybiBpcyBhbHdheXMgYXJvdW5kIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciB3cml0ZXMuIEJ1dCwgZGlnZ2luZyBpbiwgaXQgc2VlbXMgcHJldHR5IGNsZWFuLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLCB5ZXMsIGFuZCBpdCBnZXRzIHRoZSBgbXBfc3RhdGVgIGFzIGEgcG9pbnRlciB0byBgc3RydWN0IGt2bV9tcF9zdGF0ZWAgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiBDcnVjaWFsbHksIHRoZSBwYXRjaCAqb25seSogcmVhZHMgdGhlIGBtcF9zdGF0ZS0mZ3Q7bXBfc3RhdGVgIHZhbHVlLCBhbmQgaXQgY2FsbHMgYGNsZWFyX2hsdGAgYmFzZWQgb24gdGhhdC4gVGhlcmUmIzM5O3Mgbm8gbmV3IGFsbG9jYXRpb24gaGVyZSwgbm8gbmV3IGRhdGEgYmVpbmcgc2VudCBiYWNrIHRvIHVzZXJzcGFjZSwgbm8gYWRkZWQgdXNlIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGF0IGFsbC4gSXQmIzM5O3Mgc3RyaWN0bHkgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIG1hbmlwdWxhdGlvbiBmaXguCgpUbyBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIEkgcXVpY2tseSBkb3VibGUtY2hlY2tlZCB0aGUgYGt2bV9tcF9zdGF0ZWAgc3RydWN0IGl0c2VsZiwgYW5kIGl0JiMzOTtzIGp1c3QgYSBzaW1wbGUgYF9fdTMyIG1wX3N0YXRlYCBmaWVsZC4gSXQmIzM5O3Mgc2ltcGxlIGFuZCBjb3BpZWQgZnJvbSB1c2Vyc3BhY2UgaW4gdGhlIGBrdm1fdmNwdV9pb2N0bGAgZnVuY3Rpb24uIFRoaXMgY29uZmlybXMgdGhhdCB0aGVyZSYjMzk7cyBub3RoaW5nIGNvbmNlcm5pbmcgaGVyZS4KCkdpdmVuIGFsbCB0aGlzLCBJJiMzOTttIGNvbmZpZGVudCB0aGF0IHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcy4gS0FTQU4gaXMgcGVyaGFwcyBub3QgZGlyZWN0bHkgcmVsZXZhbnQsIGJ1dCBJIGRvbiYjMzk7dCBzZWUgYW55IG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhpcyBmdXJ0aGVyIHdpdGggS01TQU4uIFRoZXJlZm9yZSwgSSB3aWxsIHNldCBgTmVlZHNLTVNBTj1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDEyOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBLVk0gaW9jdGwgYEtWTV9TRVRfTVBfU1RBVEVgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSAoZS5nLiBWTVgmIzM5O3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgS1ZNIGlvY3RsIGBLVk1fU0VUX01QX1NUQVRFYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgKGUuZy4gVk1YJiMzOTtzIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCkgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBgS1ZNX01QX1NUQVRFX0hBTFRFRGAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIGZpeCB0byBwcmV2ZW50IHZDUFVzIGZyb20gc3RheWluZyB3ZWRnZWQgYWZ0ZXIgYSBtYWNoaW5lIHJlc2V0LiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBkb2VzIG5vdCBjb3B5IGFueSBuZXcgZGF0YSB0byB1c2Vyc3BhY2UsIGFuZCBkb2VzIG5vdCByZWFkIGFueSBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIG1lbW9yeS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MsIGFuZCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Mjo1MC4zODgzNTg4NzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjc3NzY5Njk3MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiLFxuICAgIFwidm14X2NsZWFyX2hsdFwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEtWTSBpb2N0bCBgS1ZNX1NFVF9NUF9TVEFURWAgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIChlLmcuIFZNWCdzIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVCkgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBgS1ZNX01QX1NUQVRFX0hBTFRFRGAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIGZpeCB0byBwcmV2ZW50IHZDUFVzIGZyb20gc3RheWluZyB3ZWRnZWQgYWZ0ZXIgYSBtYWNoaW5lIHJlc2V0LiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBkb2VzIG5vdCBjb3B5IGFueSBuZXcgZGF0YSB0byB1c2Vyc3BhY2UsIGFuZCBkb2VzIG5vdCByZWFkIGFueSBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIG1lbW9yeS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MsIGFuZCBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IHJlcXVpcmVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgeDg2IG9wIGBjbGVhcl9obHRgIGFuZCBtb2RpZmllcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gY2FsbCBpdCB3aGVuIHRoZSB2Q1BVIGlzIHRha2VuIG91dCBvZiB0aGUgSEFMVEVEIHN0YXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDI6NTAuMzg4MzY0NTA5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjAzOTMyNjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3NjRjNGY3ZDEwMjE1MjFiYjQ2Y2E1OTZlYmM0ZTk2MWRkYWZkMWRlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXFxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXFxuIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKVxcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpXFxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXFxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcXG4gXFx0aW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcXG4gXFx0Ym9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XFxuK1xcdC8qXFxuK1xcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc29cXG4rXFx0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cXG4rXFx0ICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zc1xcbitcXHQgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC5cXG4rXFx0ICovXFxuK1xcdHZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuIFxcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cXG4gXFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0LypcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbkBAIC02MDEsNiArNjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKVxcbiBcXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuK3tcXG4rXFx0LypcXG4rXFx0ICogVERYIGRvZXNuJ3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJ3QgYWNjZXNzIGFcXG4rXFx0ICogVEQncyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxcbitcXHQgKi9cXG4rXFx0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdHZteF9jbGVhcl9obHQodmNwdSk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XFxuIFxcdC5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSxcXG4gXFx0LmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksXFxuIFxcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxcbitcXHQuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSxcXG4gXFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxcbiBcXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXFxuIFxcdC51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSxcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuQEAgLTE5MDksNyArMTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKlxcbiBcXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxcbisrKyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuQEAgLTk1LDYgKzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XFxuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xcbiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuaW5kZXggZDk0YjU5MTQwYzQ1Mi4uM2IyMjRjM2JiZTQyMSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5AQCAtOTA1OCw2ICs5MDU4LDIxIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0fVxcbiBcXG4gXFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cXHUwMDNlbXBfc3RhdGUpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSwgZS5nLiBWTVgnc1xcbitcXHQgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQsIHdoZW4gdXNlcnNwYWNlIHB1dHMgdGhlIHZDUFUgaW50byBhIHN0YXRlXFxuK1xcdCAqIG90aGVyIHRoYW4gSEFMVEVELiAgVGhlIGhhcmR3YXJlIHN0YXRlIGlzIHN0aWNreSBhY3Jvc3MgVk0tRXhpdCBhbmRcXG4rXFx0ICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkXFxuK1xcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgc3RheXMgd2VkZ2VkIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIHJld3JpdGVzXFxuK1xcdCAqIGl0cyByZWdpc3RlcnMsIGUuZy4gd2hlbiBhIFZNTSBlbXVsYXRlcyBhIG1hY2hpbmUgcmVzZXQuICBXYWtpbmcgZnJvbVxcbitcXHQgKiBITFQgaXMgYXJjaGl0ZWN0dXJhbGx5IGFsbG93ZWQgdG8gYmUgc3B1cmlvdXMsIHNvIGNsZWFyaW5nIGl0IGlzXFxuK1xcdCAqIGFsd2F5cyBzYWZlLlxcbitcXHQgKi9cXG4rXFx0aWYgKGt2bV9obHRfaW5fZ3Vlc3QodmNwdS1cXHUwMDNla3ZtKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgbXBfc3RhdGUtXFx1MDAzZW1wX3N0YXRlICE9IEtWTV9NUF9TVEFURV9IQUxURUQpXFxuK1xcdFxcdGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpO1xcbitcXG4gXFx0a3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTtcXG4gXFxuIFxcdHJldCA9IDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQyOjUwLjkwOTU2Mzc2NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMwNTM2NzQwOTA4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlXCIsXG4gICAgXCJ2bXhfY2xlYXJfaGx0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyB4ODYgb3AgYGNsZWFyX2hsdGAgYW5kIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGl0IHdoZW4gdGhlIHZDUFUgaXMgdGFrZW4gb3V0IG9mIHRoZSBIQUxURUQgc3RhdGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3NjRjNGY3ZDEwMjE1MjFiYjQ2Y2E1OTZlYmM0ZTk2MWRkYWZkMWRlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjAgMTI6NDI6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChubWlfYWxsb3dlZClcbiBLVk1fWDg2X09QKGdldF9ubWlfbWFzaylcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcbitLVk1fWDg2X09QX09QVElPTkFMKGNsZWFyX2hsdClcbiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KVxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXG4gS1ZNX1g4Nl9PUF9PUFRJT05BTCh1cGRhdGVfY3I4X2ludGVyY2VwdClcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4rXHQvKlxuK1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZC9pbmFjdGl2ZSBzdGF0ZSBzb1xuK1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbitcdCAqIE9ubHkgbmVlZGVkIGJ5IFZNWCwgd2hlcmUgVk1DUy5HVUVTVF9BQ1RJVklUWV9TVEFURSBwZXJzaXN0cyBhY3Jvc3NcbitcdCAqIFZNLUV4aXQvVk0tRW50ZXI7IFNWTSBoYXMgbm8gZXF1aXZhbGVudCBWTUNCIGZpZWxkLlxuK1x0ICovXG4rXHR2b2lkICgqY2xlYXJfaGx0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0LyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqL1xuIFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuQEAgLTYwMSw2ICs2MDEsMTggQEAgc3RhdGljIHZvaWQgdnRfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpXG4gXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4re1xuK1x0LypcbitcdCAqIFREWCBkb2Vzbid0IHN1cHBvcnQgZGlzYWJsaW5nIEhMVC1leGl0aW5nLCBhbmQgS1ZNIGNhbid0IGFjY2VzcyBhXG4rXHQgKiBURCdzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuXG4rXHQgKi9cbitcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuIFx0LyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuK1x0LmNsZWFyX2hsdCA9IHZ0X29wKGNsZWFyX2hsdCksXG4gXHQuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksXG4gXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXG4gXHQudXBkYXRlX2NyOF9pbnRlcmNlcHQgPSB2dF9vcCh1cGRhdGVfY3I4X2ludGVyY2VwdCksXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtMTkwOSw3ICsxOTA5LDcgQEAgaW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbmluZGV4IGNkYjM4ZDk0MGNmYjcuLjQ1ZTQ3ZjUwMmEzNzAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbkBAIC05NSw2ICs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGJvb2wgdm14X2dldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjNiMjI0YzNiYmU0MjEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiArOTA1OCwyMSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHR9XG4gXG4gXHRrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLVx1MDAzZW1wX3N0YXRlKTtcbitcbitcdC8qXG4rXHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlLCBlLmcuIFZNWCdzXG4rXHQgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQsIHdoZW4gdXNlcnNwYWNlIHB1dHMgdGhlIHZDUFUgaW50byBhIHN0YXRlXG4rXHQgKiBvdGhlciB0aGFuIEhBTFRFRC4gIFRoZSBoYXJkd2FyZSBzdGF0ZSBpcyBzdGlja3kgYWNyb3NzIFZNLUV4aXQgYW5kXG4rXHQgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWRcbitcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgc3RheXMgd2VkZ2VkIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIHJld3JpdGVzXG4rXHQgKiBpdHMgcmVnaXN0ZXJzLCBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb21cbitcdCAqIEhMVCBpcyBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXNcbitcdCAqIGFsd2F5cyBzYWZlLlxuK1x0ICovXG4rXHRpZiAoa3ZtX2hsdF9pbl9ndWVzdCh2Y3B1LVx1MDAzZWt2bSkgXHUwMDI2XHUwMDI2XG4rXHQgICAgbXBfc3RhdGUtXHUwMDNlbXBfc3RhdGUgIT0gS1ZNX01QX1NUQVRFX0hBTFRFRClcbitcdFx0a3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7XG4rXG4gXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xuIFxuIFx0cmV0ID0gMDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQyOjUwLjkwOTU2NTE1NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIwMjAzMDcwNTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBDbGVhciBITFQgb24geDg2IEtWTSoqXG5cbk9rYXksIHNvIHdlJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gd2l0aGluIEtWTSwgc3BlY2lmaWNhbGx5IGZvciB4ODYuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIFRoZSBwYXRjaCBtYWtlcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBjbGVhciBtb2RpZmljYXRpb24gdG8gaG93IEtWTSBiZWhhdmVzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGFuICpvcHRpb25hbCogYGNsZWFyX2hsdGAgb3AsIGJ1dCB0aGUgc2lnbmlmaWNhbnQgcGFydCBpcyBob3cgaXQncyBpbnRlZ3JhdGVkIHdpdGggYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLiBUaGF0J3MgdGhlIGhvb2sgd2UncmUgaW50ZXJlc3RlZCBpbjsgaXQncyB0aGUgZ2F0ZXdheSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC4gSXQgc2VlbXMgd2UnbGwgbmVlZCBga3ZtX2hsdF9pbl9ndWVzdGAgdG8gYmUgdHJ1ZSBhbmQgdGhlIE1QIHN0YXRlIG5vdCB0byBiZSBoYWx0ZWQuIFRoaXMgaXMgYSBjbGVhciBpbmRpY2F0b3IgdGhhdCB3ZSBzaG91bGQgbWFyayB0aGlzIHBhdGNoIGFzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5vdywgbGV0J3MgZHJpbGwgZG93biBhbmQgcGlucG9pbnQgdGhlIGV4YWN0IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIGZvY3VzIG91ciBmdXp6aW5nIGVmZm9ydHMgb24uIEkgc2VlIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhcyB0aGUgcHJpbWFyeSB0YXJnZXQsIGJlY2F1c2UgaXQncyB0aGUgZW50cnkgcG9pbnQuIEFkZGl0aW9uYWxseSwgd2UgbmVlZCB0byBjb25zaWRlciBob3cgYHZ0X2NsZWFyX2hsdGAgYW5kIGB2bXhfY2xlYXJfaGx0YCBhcmUgdXNlZC4gVGhleSdyZSByZWxhdGVkLCBzbyB3ZSBoYXZlIHRvIGZ1enogdGhvc2UgdG9vLiBTbywgbGV0J3Mgc3RhcnQgYnkgZG9pbmcgYSBxdWljayBzZWFyY2ggZm9yIGFsbCBpbnN0YW5jZXMgb2YgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTM1LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDM6MTEuMTEyNjM5MDY1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDI0Mjg0NzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybTY0L2t2bS9hcm0uYz03ODY9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9hcm02NC9rdm0vYXJtLmMtNzkzLVxcbmFyY2gvYXJtNjQva3ZtL2FybS5jOjc5NDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9hcm02NC9rdm0vYXJtLmMtNzk1LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9NDY3PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtNDc0LVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM6NDc1OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTQ3Ni1cXHRcXHRcXHRcXHRzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gvbWlwcy9rdm0vbWlwcy5jPTUxNT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjAtXFxuYXJjaC9taXBzL2t2bS9taXBzLmM6NTIxOmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjItXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmM9MjAxMz1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYy0yMDE4LVxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jOjIwMTk6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jLTIwMjAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmM9NDk2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYy01MDMtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jOjUwNDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jLTUwNS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDI2MT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDI3NS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM6NDI3NjppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jLTQyNzctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jPTkwMDA9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jLTkwMjUtXFxuYXJjaC94ODYva3ZtL3g4Ni5jOjkwMjY6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gveDg2L2t2bS94ODYuYy05MDI3LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaD0xNjM5PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0MC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpO1xcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaDoxNjQxOmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgtMTY0Mi1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpO1xcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYz00NDI1PXN0YXRpYyBsb25nIGt2bV92Y3B1X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLFxcbi0tXFxudmlydC9rdm0va3ZtX21haW4uYy00NTcyLVxcdFxcdFxcdGdvdG8gb3V0O1xcbnZpcnQva3ZtL2t2bV9tYWluLmM6NDU3MzpcXHRcXHRyID0ga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZSh2Y3B1LCBcXHUwMDI2bXBfc3RhdGUpO1xcbnZpcnQva3ZtL2t2bV9tYWluLmMtNDU3NC1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDM6MTIuOTU1MDc0NjMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjYyOTg3NzgzOTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUsIEknbSB0aGlua2luZyBJIHNob3VsZCByZWFsbHkgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzLiBMb29raW5nIGF0IHRoZSBjb2RlLCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaW1tZWRpYXRlbHkgc3RhbmRzIG91dCBhcyBhIHByb21pc2luZyB0YXJnZXQuIEl0IGp1c3QgZmVlbHMgbGlrZSBhIGdvb2Qgc3BvdCB0byBzdGFydCBkaWdnaW5nIGFyb3VuZC4gQW5kIGhleSwgd2hpbGUgSSdtIGF0IGl0LCBgdm14X2NsZWFyX2hsdGAgYWxzbyBzZWVtcyBsaWtlIGl0IGNvdWxkIGhhdmUgc29tZSBpbnRlcmVzdGluZyBhbmdsZXMgSSBtaWdodCBleHBsb2l0LiBJdCdzIHRpbWUgdG8gY29uZmlybSB0aGF0IHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZS4gR290dGEgbWFrZSBzdXJlIHRoZSBlbnZpcm9ubWVudCBpcyBzZXQgdXAgY29ycmVjdGx5IGJlZm9yZSBJIHN0YXJ0IHRocm93aW5nIHRoaW5ncyBhdCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTgyNSwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQ3OjM1Ljk0Mjg2MjQxM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTI0MzkxOTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXFxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZzoyMDptZW51Y29uZmlnIEtWTVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xNy1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMi1cXHRib29sIFxcXCJNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI2OmNvbmZpZyBLVk1fQk9PSzNTX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM0OmNvbmZpZyBLVk1fQk9PSzNTXzY0X0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zOS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9CT09LM1NfNjRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc182NCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTc4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI2OmNvbmZpZyBLVk1fQk9PSzNTX0hWX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0My1cXHRib29sIFxcXCJEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTU3OmNvbmZpZyBLVk1fQk9PSzNTX0hWX05FU1RFRF9QTVVfV09SS0FST1VORFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiTmVzdGVkIEwwIGhvc3Qgd29ya2Fyb3VuZCBmb3IgTDEgS1ZNIGhvc3QgUE1VIGhhbmRsaW5nIGJ1Z1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTcxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiSHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4NS1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg3OmNvbmZpZyBLVk1fRVhJVF9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVxcdGJvb2wgXFxcIkRldGFpbGVkIGV4aXQgdGltaW5nXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5Ny1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cXHRib29sIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTQtXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9NUElDXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cXHRib29sIFxcXCJLVk0gaW4ta2VybmVsIE1QSUMgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0MC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUyLVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZz0yMj1zb3VyY2UgXFxcImFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcXFwiXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTIzLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnPTE3PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTIwLVxcdGRlZl90cmlzdGF0ZSB5XFxuLS1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDYtXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cXHRib29sIFxcXCJVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXFxcIlxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFxcXCJhcmNoL3g4Ni94ZW4vS2NvbmZpZ1xcXCJcXG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC94ODYvS2NvbmZpZy04MjktXFx0Ym9vbCBcXFwiS1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy0zLVxcbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxcbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy00Mi1cXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xcbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTQ1LVxcbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXFxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcXG52aXJ0L2t2bS9LY29uZmlnLTUxLSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxcbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXFxudmlydC9rdm0vS2NvbmZpZy02My0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxcbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbnZpcnQva3ZtL0tjb25maWctNjktICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxcbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcXG52aXJ0L2t2bS9LY29uZmlnLTcyLSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03My1cXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXFxudmlydC9rdm0vS2NvbmZpZy03NS0gICAgICAgZGVmX2Jvb2wgeVxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctOTMtXFxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTk1LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy05Ni1cXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXFxudmlydC9rdm0vS2NvbmZpZy05OC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTktXFxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTEwMS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTAyLVxcbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xcbnZpcnQva3ZtL0tjb25maWctMTA0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXFxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxcbnZpcnQva3ZtL0tjb25maWctMTA3LSAgICAgICBzZWxlY3QgWEFSUkFZX01VTFRJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQ3OjM4LjQ2NzI2NTIyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1ODg3NTk0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgS1ZNIGFuZCBITFQgQ2xlYXJpbmcgRnVuY3Rpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBLVk0gY29uZmlndXJhdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBLVk0gY29uZmlndXJhdGlvbi4gVGhlIHN5c3RlbSBzZWVtcyB0byBiZSB1c2luZyBgS1ZNYC4gTXkgZ29hbCBoZXJlIGlzIHRvIGRldGVybWluZSBob3cgdG8gYmVzdCBjbGVhciB0aGUgSExUIChIYWx0KSBzdGF0ZS5cblxuSSd2ZSBpZGVudGlmaWVkIGEgZmV3IGZ1bmN0aW9ucyB0byBjb25zaWRlcjogYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLCBgdnRfY2xlYXJfaGx0YCwgYW5kIGB2bXhfY2xlYXJfaGx0YC4gRmlyc3QsIEkgd2FudGVkIHRvIGNvbmZpcm0gaWYgYHZ0X2NsZWFyX2hsdGAgaXMgYSBzdGF0aWMgZnVuY3Rpb24uIEkgcmVjYWxsIGl0IGJlaW5nIGxvY2F0ZWQgaW4gYGFyY2gveDg2L2t2bS92bXgvbWFpbi5jYCwgYW5kIGEgcXVpY2sgY2hlY2sgY29uZmlybXMgdGhhdCBpdCAqaXMqIHN0YXRpYyB3aXRoaW4gdGhhdCBmaWxlLiBUaGlzIG1lYW5zIEkgY2FuJ3QgZGlyZWN0bHkgY2FsbCBpdCBmcm9tIG91dHNpZGUgdGhhdCBmaWxlLCBzbyB0aGF0IGxpbWl0cyBpdHMgdXNlZnVsbmVzcyBoZXJlLlxuXG5Ib3dldmVyLCBgdm14X2NsZWFyX2hsdGAgaXMgKm5vdCogc3RhdGljLCB3aGljaCBvcGVucyB1cCBtb3JlIHBvc3NpYmlsaXRpZXMuIFRoaXMgbGVhdmVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhbmQgYHZteF9jbGVhcl9obHRgIGFzIGNhbmRpZGF0ZXMuXG5cbkJlZm9yZSBJIHByb2NlZWQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgYHZteF9jbGVhcl9obHRgJ3Mgc2lnbmF0dXJlIGFuZCBjb25maXJtIHdoZXRoZXIgaXQgaXMgZXhwb3J0ZWQgY29ycmVjdGx5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgY2FuIGNhbGwgaXQgY2xlYW5seS4gTGV0J3MgbWFrZSBzdXJlIGl0J3MgYWNjZXNzaWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAzMTEsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDc6NDMuODI2MTQzNTIzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3Nzc2ODQ4OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm14X2NsZWFyX2hsdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vdm14L21haW4uYz02MDQ9c3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTYxMi1cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzo2MTM6XFx0dm14X2NsZWFyX2hsdCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy02MTQtfVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz0xOTA2PWludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzoxOTEyOnZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy0xOTEzLXtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9MTkyNT12b2lkIHZteF9pbmplY3RfZXhjZXB0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTk4NC1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjE5ODU6XFx0dm14X2NsZWFyX2hsdCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5ODYtfVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz01MTIzPXZvaWQgdm14X2luamVjdF9pcnEoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIHJlaW5qZWN0ZWQpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxNDctXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo1MTQ4OlxcdHZteF9jbGVhcl9obHQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01MTQ5LX1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NTE1MT12b2lkIHZteF9pbmplY3Rfbm1pKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTE3OC1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjUxNzk6XFx0dm14X2NsZWFyX2hsdCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTUxODAtfVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz04NDgwPWludCB2bXhfZW50ZXJfc21tKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5pb24ga3ZtX3NtcmFtICpzbXJhbSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODQ5Ni1cXHR2bXgtXFx1MDAzZW5lc3RlZC52bXhvbiA9IGZhbHNlO1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODQ5NzpcXHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODQ5OC1cXHRyZXR1cm4gMDtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTk3PXZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaDo5ODp2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC05OS12b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Nzo0Ni42MDM4MzU3MzRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NTI0NjEzNDE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IGxvb2tzIGxpa2UgYHZteF9jbGVhcl9obHRgIGlzbid0IHN0YXRpYyBhbnltb3JlLCBhbmQgbmVpdGhlciBpcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAuIEFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjayBmb3Igb3RoZXIgcmVsYXRlZCBtb2RpZmljYXRpb25zLiBBaCwgeWVzLCBjb25maXJtZWQ6IGBhcmNoL3g4Ni9rdm0veDg2LmNgIHRvdWNoZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgaXMgbW9kaWZ5aW5nIGB2bXhfY2xlYXJfaGx0YCAoc3BlY2lmaWNhbGx5LCByZW1vdmluZyBpdHMgYHN0YXRpY2AgZGVzaWduYXRpb24pLiBGdXJ0aGVybW9yZSwgYGFyY2gveDg2L2t2bS92bXgvbWFpbi5jYCBpcyBpbnRyb2R1Y2luZyBgdnRfY2xlYXJfaGx0YC5cblxuU28sIHRoZSBrZXkgZnVuY3Rpb25zIHRvIGludmVzdGlnYXRlIGFyZSBkZWZpbml0ZWx5IGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBhbmQgYHZteF9jbGVhcl9obHRgLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBoZXJlIGlzIGBLVk1gLlxuXG5Ob3csIGxldCdzIGZvcm1hbGl6ZSB0aGlzLiBUaGlzIHBhdGNoIHdhcnJhbnRzIGZ1enppbmcsIHdpdGhvdXQgYSBkb3VidC4gVGhlIHJlYXNvbmluZz8gV2VsbCwgaXQncyBhZGRpbmcgYSBuZXcgeDg2IG9wZXJhdGlvbiwgYGNsZWFyX2hsdGAsIGFuZCBpdCdzIG1vZGlmeWluZyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gaW52b2tlIHRoaXMgYGNsZWFyX2hsdGAgb3Agd2hlbiBhIHZDUFUgdHJhbnNpdGlvbnMgb3V0IG9mIGEgSEFMVEVEIHN0YXRlLiBUaGF0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gS1ZNIGFuZCBpdCdzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBgS1ZNX1NFVF9NUF9TVEFURWAgaW9jdGwuIEl0J3MgYSBjbGVhciBlbnRyeSBwb2ludCBmb3IgZnV6emluZywgYW5kIGl0J3MgZ29vZCB0byBjYWxsIGl0IG91dC4gVGhlIGZ1enppbmcgdGFyZ2V0cyBhcmUgZ29pbmcgdG8gYmUgdGhvc2UgdHdvIGZ1bmN0aW9uczogYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgdm14X2NsZWFyX2hsdGAuIEFuZCBvZiBjb3Vyc2UsIHRoZSBgS1ZNYCBjb25maWcgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSByZWxldmFudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE2OTQsIk91dHB1dFRva2VucyI6MTM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDEyOjQ3OjU2LjEyODQ2NDgyMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0ODUwMTgxNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiLFxuICAgIFwidm14X2NsZWFyX2hsdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgeDg2IG9wIGBjbGVhcl9obHRgIGFuZCBtb2RpZmllcyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgdG8gY2FsbCBpdCB3aGVuIHRoZSB2Q1BVIGlzIHRha2VuIG91dCBvZiB0aGUgSEFMVEVEIHN0YXRlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBLVk1fU0VUX01QX1NUQVRFYCBpb2N0bC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlXCIsXG4gICAgXCJ2bXhfY2xlYXJfaGx0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyB4ODYgb3AgYGNsZWFyX2hsdGAgYW5kIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGl0IHdoZW4gdGhlIHZDUFUgaXMgdGFrZW4gb3V0IG9mIHRoZSBIQUxURUQgc3RhdGUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Nzo1Ni4yNzY5Nzg1MzZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxODg4MzM3NjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMTI6NDc6NTYuMjc3OTA2NTY2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIxODg3NDA1NDYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgS1ZNIGlvY3RsIGBLVk1fU0VUX01QX1NUQVRFYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgKGUuZy4gVk1YJ3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzY0YzRmN2QxMDIxNTIxYmI0NmNhNTk2ZWJjNGU5NjFkZGFmZDFkZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDIwIDEyOjQyOjQ5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbmluZGV4IGUyMTNjOWFlM2UzMDEuLmRkOTAyNmMxMDcxY2UgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXG5AQCAtODIsNiArODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKVxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spXG4gS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpXG4gS1ZNX1g4Nl9PUChlbmFibGVfbm1pX3dpbmRvdylcbiBLVk1fWDg2X09QKGVuYWJsZV9pcnFfd2luZG93KVxuIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbmluZGV4IDI4Mzg0NzYxOWZmODguLmU1YTA3NTg1MzZlMTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTYwNyw2ICsxNjA3LDEzIEBAIHN0cnVjdCBrdm1feDg2X29wcyB7XG4gXHRpbnQgKCpubWlfYWxsb3dlZCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIFx0Ym9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdHZvaWQgKCpzZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuK1x0LypcbitcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc29cbitcdCAqIHRoYXQgaXQgd2lsbCBmZXRjaCBhbmQgZXhlY3V0ZSBpbnN0cnVjdGlvbnMgb24gdGhlIG5leHQgVk0tRW50ZXIuXG4rXHQgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzXG4rXHQgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC5cbitcdCAqL1xuK1x0dm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cbiBcdGJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuKysrIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbkBAIC02MDEsNiArNjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKVxuIFx0dm14X3NldF9ubWlfbWFzayh2Y3B1LCBtYXNrZWQpO1xuIH1cbiBcbitzdGF0aWMgdm9pZCB2dF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuK3tcbitcdC8qXG4rXHQgKiBURFggZG9lc24ndCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4ndCBhY2Nlc3MgYVxuK1x0ICogVEQncyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxuK1x0ICovXG4rXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSlcbitcdFx0cmV0dXJuO1xuK1xuK1x0dm14X2NsZWFyX2hsdCh2Y3B1KTtcbit9XG4rXG4gc3RhdGljIHZvaWQgdnRfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qIFJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiB0ZHhfaW5qZWN0X25taSgpLiAqL1xuQEAgLTk2NCw2ICs5NzYsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgdnRfeDg2X29wcyBfX2luaXRkYXRhID0ge1xuIFx0Lm5taV9hbGxvd2VkID0gdnRfb3Aobm1pX2FsbG93ZWQpLFxuIFx0LmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksXG4gXHQuc2V0X25taV9tYXNrID0gdnRfb3Aoc2V0X25taV9tYXNrKSxcbitcdC5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLFxuIFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxuIFx0LmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLFxuIFx0LnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTE5MDksNyArMTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXHRyZXR1cm4gc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKlxuIFx0ICogRW5zdXJlIHRoYXQgd2UgY2xlYXIgdGhlIEhMVCBzdGF0ZSBpbiB0aGUgVk1DUy4gIFdlIGRvbid0IG5lZWQgdG9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbisrKyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5AQCAtOTUsNiArOTUsNyBAQCBpbnQgdm14X2ludGVycnVwdF9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcbiBpbnQgdm14X25taV9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcbiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfaXJxX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X3VwZGF0ZV9jcjhfaW50ZXJjZXB0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHRwciwgaW50IGlycik7XG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBkOTRiNTkxNDBjNDUyLi4zYjIyNGMzYmJlNDIxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC05MDU4LDYgKzkwNTgsMjEgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0fVxuIFxuIFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZSk7XG4rXG4rXHQvKlxuK1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSwgZS5nLiBWTVgnc1xuK1x0ICogR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExULCB3aGVuIHVzZXJzcGFjZSBwdXRzIHRoZSB2Q1BVIGludG8gYSBzdGF0ZVxuK1x0ICogb3RoZXIgdGhhbiBIQUxURUQuICBUaGUgaGFyZHdhcmUgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuK1x0ICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkXG4rXHQgKiB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkIHN0YXlzIHdlZGdlZCBldmVuIGFmdGVyIHVzZXJzcGFjZSByZXdyaXRlc1xuK1x0ICogaXRzIHJlZ2lzdGVycywgZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tXG4rXHQgKiBITFQgaXMgYXJjaGl0ZWN0dXJhbGx5IGFsbG93ZWQgdG8gYmUgc3B1cmlvdXMsIHNvIGNsZWFyaW5nIGl0IGlzXG4rXHQgKiBhbHdheXMgc2FmZS5cbitcdCAqL1xuK1x0aWYgKGt2bV9obHRfaW5fZ3Vlc3QodmNwdS1cdTAwM2Vrdm0pIFx1MDAyNlx1MDAyNlxuK1x0ICAgIG1wX3N0YXRlLVx1MDAzZW1wX3N0YXRlICE9IEtWTV9NUF9TVEFURV9IQUxURUQpXG4rXHRcdGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpO1xuK1xuIFx0a3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2Y3B1KTtcbiBcbiBcdHJldCA9IDA7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0Nzo1Ni4yNzc5MDgzNTZaIiwiU2VxIjoxMywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE4ODczNzcyODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIEhMVCBDbGVhcmluZyBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB3aXRoaW4gYGt2bV94ODZfb3BzYCBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIFZNWC4gVGhlIGNvcmUgaWRlYSBpcyB0byBjbGVhciB0aGUgaGFsdGVkIHN0YXRlIG9mIGEgdkNQVSwgYW5kIGl0J3MgYmVpbmcgdHJpZ2dlcmVkIGluIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYC4gVGhpcyBtYWtlcyBzZW5zZTsgaXQncyBiZWluZyBjYWxsZWQgd2hlbiB1c2Vyc3BhY2UgY2hhbmdlcyB0aGUgTVAgc3RhdGUgKmF3YXkqIGZyb20gYEtWTV9NUF9TVEFURV9IQUxURURgLiBFc3NlbnRpYWxseSwgaXQncyBhIGZpeCBmb3IgYSBzaXR1YXRpb24gd2hlcmUgYSB2Q1BVLCBzdHVjayBpbiBhIGhhbHRlZCBzdGF0ZSB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkLCB3b3VsZG4ndCByZXNwb25kIGV2ZW4gd2hlbiBpdHMgcmVnaXN0ZXJzIHdlcmUgbW9kaWZpZWQsIGxpa2UgZHVyaW5nIGEgcmVzZXQuXG5cbk15IGluaXRpYWwgY29uY2VybiBpcyBhbHdheXMgYXJvdW5kIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciB3cml0ZXMuIEJ1dCwgZGlnZ2luZyBpbiwgaXQgc2VlbXMgcHJldHR5IGNsZWFuLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgLCB5ZXMsIGFuZCBpdCBnZXRzIHRoZSBgbXBfc3RhdGVgIGFzIGEgcG9pbnRlciB0byBgc3RydWN0IGt2bV9tcF9zdGF0ZWAgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsLiBDcnVjaWFsbHksIHRoZSBwYXRjaCAqb25seSogcmVhZHMgdGhlIGBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZWAgdmFsdWUsIGFuZCBpdCBjYWxscyBgY2xlYXJfaGx0YCBiYXNlZCBvbiB0aGF0LiBUaGVyZSdzIG5vIG5ldyBhbGxvY2F0aW9uIGhlcmUsIG5vIG5ldyBkYXRhIGJlaW5nIHNlbnQgYmFjayB0byB1c2Vyc3BhY2UsIG5vIGFkZGVkIHVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBhdCBhbGwuIEl0J3Mgc3RyaWN0bHkgYSBjb250cm9sIGZsb3cgYW5kIGhhcmR3YXJlIHN0YXRlIG1hbmlwdWxhdGlvbiBmaXguXG5cblRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSBxdWlja2x5IGRvdWJsZS1jaGVja2VkIHRoZSBga3ZtX21wX3N0YXRlYCBzdHJ1Y3QgaXRzZWxmLCBhbmQgaXQncyBqdXN0IGEgc2ltcGxlIGBfX3UzMiBtcF9zdGF0ZWAgZmllbGQuIEl0J3Mgc2ltcGxlIGFuZCBjb3BpZWQgZnJvbSB1c2Vyc3BhY2UgaW4gdGhlIGBrdm1fdmNwdV9pb2N0bGAgZnVuY3Rpb24uIFRoaXMgY29uZmlybXMgdGhhdCB0aGVyZSdzIG5vdGhpbmcgY29uY2VybmluZyBoZXJlLlxuXG5HaXZlbiBhbGwgdGhpcywgSSdtIGNvbmZpZGVudCB0aGF0IHRoZXJlIGFyZSBubyB1bmluaXRpYWxpemVkIG1lbW9yeSByaXNrcy4gS0FTQU4gaXMgcGVyaGFwcyBub3QgZGlyZWN0bHkgcmVsZXZhbnQsIGJ1dCBJIGRvbid0IHNlZSBhbnkgbmVlZCB0byBpbnZlc3RpZ2F0ZSB0aGlzIGZ1cnRoZXIgd2l0aCBLTVNBTi4gVGhlcmVmb3JlLCBJIHdpbGwgc2V0IGBOZWVkc0tNU0FOPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzkzMiwiT3V0cHV0VG9rZW5zIjoxNzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQxMjo0ODoxOC4xNjUyODg0NzhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBLVk0gaW9jdGwgYEtWTV9TRVRfTVBfU1RBVEVgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSAoZS5nLiBWTVgncyBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQpIHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYEtWTV9NUF9TVEFURV9IQUxURURgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBoYXJkd2FyZSBzdGF0ZSBmaXggdG8gcHJldmVudCB2Q1BVcyBmcm9tIHN0YXlpbmcgd2VkZ2VkIGFmdGVyIGEgbWFjaGluZSByZXNldC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgZG9lcyBub3QgY29weSBhbnkgbmV3IGRhdGEgdG8gdXNlcnNwYWNlLCBhbmQgZG9lcyBub3QgcmVhZCBhbnkgcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCBtZW1vcnkuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLCBhbmQgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgS1ZNIGlvY3RsIGBLVk1fU0VUX01QX1NUQVRFYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgKGUuZy4gVk1YJ3MgR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExUKSB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGBLVk1fTVBfU1RBVEVfSEFMVEVEYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgaGFyZHdhcmUgc3RhdGUgZml4IHRvIHByZXZlbnQgdkNQVXMgZnJvbSBzdGF5aW5nIHdlZGdlZCBhZnRlciBhIG1hY2hpbmUgcmVzZXQuIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIGRvZXMgbm90IGNvcHkgYW55IG5ldyBkYXRhIHRvIHVzZXJzcGFjZSwgYW5kIGRvZXMgbm90IHJlYWQgYW55IHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcywgYW5kIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow2f6l6[1] Phase: Succeeded StartedAt: 2026-08-20 12:48:30 +0000 UTC FinishedAt: 2026-08-20 12:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-20 12:48:30 +0000 UTC FinishedAt: 2026-08-20 12:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2] Phase: Succeeded StartedAt: 2026-08-20 12:48:30 +0000 UTC FinishedAt: 2026-08-20 16:38:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-20 12:48:30 +0000 UTC FinishedAt: 2026-08-20 16:38:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-20 12:48:30 +0000 UTC FinishedAt: 2026-08-20 12:48:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-20 12:48:30 +0000 UTC FinishedAt: 2026-08-20 12:48:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow2f6l6/series-workflow2f6l6-convert-artifact-2988358868/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-20 12:48:40 +0000 UTC FinishedAt: 2026-08-20 13:07:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-20 12:48:40 +0000 UTC FinishedAt: 2026-08-20 13:07:53 +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:*762e7b23-5e6b-4cbc-9674-d6a4606f5ac0,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-workflow2f6l6/series-workflow2f6l6-convert-artifact-2988358868/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": "f6f1bb3e-eefb-4e4f-9e8a-c9343b3c6f23", "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-workflow2f6l6/series-workflow2f6l6-build-action-845609042/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-20 12:48:40 +0000 UTC FinishedAt: 2026-08-20 13:07:43 +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:*762e7b23-5e6b-4cbc-9674-d6a4606f5ac0,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-workflow2f6l6/series-workflow2f6l6-convert-artifact-2988358868/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": "f6f1bb3e-eefb-4e4f-9e8a-c9343b3c6f23", "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-workflow2f6l6/series-workflow2f6l6-build-action-845609042/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-20 13:07:53 +0000 UTC FinishedAt: 2026-08-20 13:07:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-20 13:07:53 +0000 UTC FinishedAt: 2026-08-20 13:07:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-20 13:07:53 +0000 UTC FinishedAt: 2026-08-20 13:08:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-20 13:07:53 +0000 UTC FinishedAt: 2026-08-20 13:07:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow2f6l6/series-workflow2f6l6-convert-artifact-326837395/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-20 13:08:03 +0000 UTC FinishedAt: 2026-08-20 13:10:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-20 13:08:03 +0000 UTC FinishedAt: 2026-08-20 13:09:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f6f1bb3e-eefb-4e4f-9e8a-c9343b3c6f23,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-workflow2f6l6/series-workflow2f6l6-build-action-845609042/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-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-20 13:10:03 +0000 UTC FinishedAt: 2026-08-20 13:10:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-20 13:10:03 +0000 UTC FinishedAt: 2026-08-20 13:10:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-20 13:10:03 +0000 UTC FinishedAt: 2026-08-20 13:35:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-20 13:10:03 +0000 UTC FinishedAt: 2026-08-20 13:35:28 +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:*762e7b23-5e6b-4cbc-9674-d6a4606f5ac0,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-workflow2f6l6/series-workflow2f6l6-convert-artifact-326837395/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": "dd8bb5b5-3d16-4602-8332-dae9251c0df9", "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-workflow2f6l6/series-workflow2f6l6-build-action-3982097095/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-20 13:10:03 +0000 UTC FinishedAt: 2026-08-20 13:35:06 +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:*762e7b23-5e6b-4cbc-9674-d6a4606f5ac0,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-workflow2f6l6/series-workflow2f6l6-convert-artifact-326837395/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": "dd8bb5b5-3d16-4602-8332-dae9251c0df9", "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-workflow2f6l6/series-workflow2f6l6-build-action-3982097095/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-20 13:35:28 +0000 UTC FinishedAt: 2026-08-20 13:35:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-20 13:35:28 +0000 UTC FinishedAt: 2026-08-20 13:35:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-20 13:35:28 +0000 UTC FinishedAt: 2026-08-20 13:37:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-20 13:35:28 +0000 UTC FinishedAt: 2026-08-20 13:37:20 +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:*dd8bb5b5-3d16-4602-8332-dae9251c0df9,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-workflow2f6l6/series-workflow2f6l6-build-action-3982097095/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-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-20 13:37:30 +0000 UTC FinishedAt: 2026-08-20 16:38:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-20 13:37:30 +0000 UTC FinishedAt: 2026-08-20 16:38:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"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:*f6f1bb3e-eefb-4e4f-9e8a-c9343b3c6f23,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dd8bb5b5-3d16-4602-8332-dae9251c0df9,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-workflow2f6l6/series-workflow2f6l6-build-action-845609042/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-workflow2f6l6/series-workflow2f6l6-build-action-3982097095/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-20 13:37:30 +0000 UTC FinishedAt: 2026-08-20 13:37:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-20 13:37:30 +0000 UTC FinishedAt: 2026-08-20 13:37:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"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-workflow2f6l6/series-workflow2f6l6-convert-artifact-2465630476/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-20 13:37:30 +0000 UTC FinishedAt: 2026-08-20 13:37:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-20 13:37:30 +0000 UTC FinishedAt: 2026-08-20 13:37:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-20 13:37:31 +0000 UTC FinishedAt: 2026-08-20 13:37:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-20 13:37:41 +0000 UTC FinishedAt: 2026-08-20 16:38:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2f6l6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"e71a1db8-c7e5-4ed4-bd56-bd1e4f1391a3","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-20 13:37:41 +0000 UTC FinishedAt: 2026-08-20 16:38:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f6f1bb3e-eefb-4e4f-9e8a-c9343b3c6f23,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*dd8bb5b5-3d16-4602-8332-dae9251c0df9,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-workflow2f6l6/series-workflow2f6l6-build-action-845609042/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-workflow2f6l6/series-workflow2f6l6-build-action-3982097095/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-workflow2f6l6/series-workflow2f6l6-convert-artifact-2465630476/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,}