Name: series-workflows5h8t Phase: Failed StartedAt: 2026-07-13 22:19:56 +0000 UTC FinishedAt: 2026-07-13 22:35:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflows5h8t[0] Phase: Succeeded StartedAt: 2026-07-13 22:19:56 +0000 UTC FinishedAt: 2026-07-13 22:35:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflows5h8t[0].run-triage Phase: Succeeded StartedAt: 2026-07-13 22:19:56 +0000 UTC FinishedAt: 2026-07-13 22:35:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDIyOjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhdWRpdCBsb2dnaW5nIGZvciB0aGUgZnNjb25maWcgc3lzY2FsbCBhbmQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMjI6MzU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNDMwNGU3ZjdkNjk5YTM0Y2EwZTc2Njg4MWRmZmJhZGUwY2NmYTU2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMTMgMjI6MzU6MjggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZnNvcGVuLmMgYi9mcy9mc29wZW4uY1xuaW5kZXggYWUxOWU1MTM2NTk4NmYuLjliM2MwMmY1OWRmNGJhIDEwMDY0NFxuLS0tIGEvZnMvZnNvcGVuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2Zzb3Blbi5jXG5AQCAtMTUsNiAmIzQzOzE1LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9uYW1laS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZmlsZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjdWFwaS9saW51eC9tb3VudC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1ZGl0LmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtpbnRlcm5hbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7bW91bnQuaFwmIzM0O1xuIFxuQEAgLTM1Nyw2ICYjNDM7MzU4LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0c3RydWN0IGZzX2NvbnRleHQgKmZjO1xuIFx0aW50IHJldDtcbiBcdGludCBsb29rdXBfZmxhZ3MgPSAwO1xuJiM0MztcdGNvbnN0IGNoYXIgKnZhbHVlX3N0ciA9IE5VTEw7XG4gXG4gXHRzdHJ1Y3QgZnNfcGFyYW1ldGVyIHBhcmFtID0ge1xuIFx0XHQudHlwZVx0PSBmc192YWx1ZV9pc191bmRlZmluZWQsXG5AQCAtNDIzLDYgJiM0Mzs0MjUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXG4gXHRcdFx0Z290byBvdXRfa2V5O1xuIFx0XHR9XG4gXHRcdHBhcmFtLnNpemUgPSBzdHJsZW4ocGFyYW0uc3RyaW5nKTtcbiYjNDM7XHRcdHZhbHVlX3N0ciA9IHBhcmFtLnN0cmluZztcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEZTQ09ORklHX1NFVF9CSU5BUlk6XG4gXHRcdHBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19ibG9iO1xuQEAgLTQzMiw2ICYjNDM7NDM1LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRcdHJldCA9IFBUUl9FUlIocGFyYW0uYmxvYik7XG4gXHRcdFx0Z290byBvdXRfa2V5O1xuIFx0XHR9XG4mIzQzO1x0XHR2YWx1ZV9zdHIgPSBcJiMzNDtcdTAwM2NiaW5hcnlcdTAwM2VcJiMzNDs7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWTpcbiBcdFx0bG9va3VwX2ZsYWdzID0gTE9PS1VQX0VNUFRZO1xuQEAgLTQ0NSw2ICYjNDM7NDQ5LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHR9XG4gXHRcdHBhcmFtLmRpcmZkID0gYXV4O1xuIFx0XHRwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLm5hbWUtXHUwMDNlbmFtZSk7XG4mIzQzO1x0XHR2YWx1ZV9zdHIgPSBwYXJhbS5uYW1lLVx1MDAzZW5hbWU7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfRkQ6XG4gXHRcdHBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19maWxlO1xuQEAgLTQ1OCw2ICYjNDM7NDYzLDggQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRicmVhaztcbiBcdH1cbiBcbiYjNDM7XHRhdWRpdF9sb2dfZnNjb25maWcoY21kLCBwYXJhbS5rZXksIHZhbHVlX3N0ciwgYXV4KTtcbiYjNDM7XG4gXHRyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXHUwMDI2ZmMtXHUwMDNldWFwaV9tdXRleCk7XG4gXHRpZiAocmV0ID09IDApIHtcbiBcdFx0cmV0ID0gdmZzX2ZzY29uZmlnX2xvY2tlZChmYywgY21kLCBcdTAwMjZwYXJhbSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oXG5pbmRleCA0NWFiYjM3MjJkMzA0Yy4uOTc4ZWI4ODE5NzRjODggMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvYXVkaXQuaFxuQEAgLTQ0OSw2ICYjNDM7NDQ5LDggQEAgZXh0ZXJuIHZvaWQgX19hdWRpdF90a19pbmpvZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgb2Zmc2V0KTtcbiBleHRlcm4gdm9pZCBfX2F1ZGl0X250cF9sb2coY29uc3Qgc3RydWN0IGF1ZGl0X250cF9kYXRhICphZCk7XG4gZXh0ZXJuIHZvaWQgX19hdWRpdF9sb2dfbmZjZmcoY29uc3QgY2hhciAqbmFtZSwgdTggYWYsIHVuc2lnbmVkIGludCBuZW50cmllcyxcbiBcdFx0XHQgICAgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCk7XG4mIzQzO2V4dGVybiB2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcbiYjNDM7XHRcdFx0XHQgY29uc3QgY2hhciAqdmFsdWUsIGludCBhdXgpO1xuIFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9pcGNfb2JqKHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwKVxuIHtcbkBAIC01OTgsNiAmIzQzOzYwMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLFxuIFx0XHRfX2F1ZGl0X2xvZ19uZmNmZyhuYW1lLCBhZiwgbmVudHJpZXMsIG9wLCBnZnApO1xuIH1cbiBcbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXG4mIzQzO1x0XHRcdFx0ICAgICAgY29uc3QgY2hhciAqdmFsdWUsIGludCBhdXgpXG4mIzQzO3tcbiYjNDM7XHRpZiAoIWF1ZGl0X2R1bW15X2NvbnRleHQoKSlcbiYjNDM7XHRcdF9fYXVkaXRfbG9nX2ZzY29uZmlnKGNtZCwga2V5LCB2YWx1ZSwgYXV4KTtcbiYjNDM7fVxuJiM0MztcbiBleHRlcm4gaW50IGF1ZGl0X25fcnVsZXM7XG4gZXh0ZXJuIGludCBhdWRpdF9zaWduYWxzO1xuICNlbHNlIC8qIENPTkZJR19BVURJVFNZU0NBTEwgKi9cbkBAIC03MzAsNiAmIzQzOzczOSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLFxuIFx0XHRcdFx0ICAgZW51bSBhdWRpdF9uZmNmZ29wIG9wLCBnZnBfdCBnZnApXG4geyB9XG4gXG4mIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuJiM0MztcdFx0XHRcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxuJiM0Mzt7IH1cbiYjNDM7XG4gI2RlZmluZSBhdWRpdF9uX3J1bGVzIDBcbiAjZGVmaW5lIGF1ZGl0X3NpZ25hbHMgMFxuICNlbmRpZiAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaFxuaW5kZXggZThmNWNlNjc3ZGY3MzQuLjVjZDBlYjYwMjUyOGIyIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oXG5AQCAtMTIyLDYgJiM0MzsxMjIsNyBAQFxuICNkZWZpbmUgQVVESVRfT1BFTkFUMlx0XHQxMzM3XHQvKiBSZWNvcmQgc2hvd2luZyBvcGVuYXQyIGhvdyBhcmdzICovXG4gI2RlZmluZSBBVURJVF9ETV9DVFJMXHRcdDEzMzhcdC8qIERldmljZSBNYXBwZXIgdGFyZ2V0IGNvbnRyb2wgKi9cbiAjZGVmaW5lIEFVRElUX0RNX0VWRU5UXHRcdDEzMzlcdC8qIERldmljZSBNYXBwZXIgZXZlbnRzICovXG4mIzQzOyNkZWZpbmUgQVVESVRfRlNDT05GSUdcdFx0MTM0MVx0LyogUmVjb3JkIHNob3dpbmcgZnNjb25maWcgYXJncyAqL1xuIFxuICNkZWZpbmUgQVVESVRfQVZDXHRcdDE0MDBcdC8qIFNFIExpbnV4IGF2YyBkZW5pYWwgb3IgZ3JhbnQgKi9cbiAjZGVmaW5lIEFVRElUX1NFTElOVVhfRVJSXHQxNDAxXHQvKiBJbnRlcm5hbCBTRSBMaW51eCBFcnJvcnMgKi9cbmRpZmYgLS1naXQgYS9rZXJuZWwvYXVkaXRzYy5jIGIva2VybmVsL2F1ZGl0c2MuY1xuaW5kZXggNjYxMGU2NjdjNzI4YWEuLjIyMmJmNzllZTliZGMxIDEwMDY0NFxuLS0tIGEva2VybmVsL2F1ZGl0c2MuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2F1ZGl0c2MuY1xuQEAgLTI4ODIsNiAmIzQzOzI4ODIsMzMgQEAgdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChfX2F1ZGl0X2xvZ19uZmNmZyk7XG4gXG4mIzQzO3ZvaWQgX19hdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuJiM0MztcdFx0XHQgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGF1ZGl0X2J1ZmZlciAqYWI7XG4mIzQzO1xuJiM0MztcdGFiID0gYXVkaXRfbG9nX3N0YXJ0KGF1ZGl0X2NvbnRleHQoKSwgR0ZQX0tFUk5FTCwgQVVESVRfRlNDT05GSUcpO1xuJiM0MztcdGlmICghYWIpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuJiM0MztcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwmIzM0O2ZzX2NtZD0ldVwmIzM0OywgY21kKTtcbiYjNDM7XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcJiMzNDsgZnNfa2V5PVwmIzM0Oyk7XG4mIzQzO1x0aWYgKHZhbHVlKVxuJiM0MztcdFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwga2V5KTtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcJiMzNDsobnVsbClcJiMzNDspO1xuJiM0MztcbiYjNDM7XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcJiMzNDsgZnNfdmFsPVwmIzM0Oyk7XG4mIzQzO1x0aWYgKHZhbHVlKVxuJiM0MztcdFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwgdmFsdWUpO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwmIzM0OyhudWxsKVwmIzM0Oyk7XG4mIzQzO1xuJiM0MztcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwmIzM0OyBmc19hdXg9JWRcJiMzNDssIGF1eCk7XG4mIzQzO1xuJiM0MztcdGF1ZGl0X2xvZ19lbmQoYWIpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ190YXNrKHN0cnVjdCBhdWRpdF9idWZmZXIgKmFiKVxuIHtcbiBcdGt1aWRfdCBhdWlkLCB1aWQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMjI6MzU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDQzMDRlN2Y3ZDY5OWEzNGNhMGU3NjY4ODFkZmZiYWRlMGNjZmE1NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDEzIDIyOjM1OjI4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZnNvcGVuLmMgYi9mcy9mc29wZW4uYwppbmRleCBhZTE5ZTUxMzY1OTg2Zi4uOWIzYzAyZjU5ZGY0YmEgMTAwNjQ0Ci0tLSBhL2ZzL2Zzb3Blbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2Zzb3Blbi5jCkBAIC0xNSw2ICYjNDM7MTUsNyBAQAogI2luY2x1ZGUgJmx0O2xpbnV4L25hbWVpLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvZmlsZS5oJmd0OwogI2luY2x1ZGUgJmx0O3VhcGkvbGludXgvbW91bnQuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvYXVkaXQuaCZndDsKICNpbmNsdWRlICYjMzQ7aW50ZXJuYWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O21vdW50LmgmIzM0OwogCkBAIC0zNTcsNiAmIzQzOzM1OCw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZywKIAlzdHJ1Y3QgZnNfY29udGV4dCAqZmM7CiAJaW50IHJldDsKIAlpbnQgbG9va3VwX2ZsYWdzID0gMDsKJiM0MzsJY29uc3QgY2hhciAqdmFsdWVfc3RyID0gTlVMTDsKIAogCXN0cnVjdCBmc19wYXJhbWV0ZXIgcGFyYW0gPSB7CiAJCS50eXBlCT0gZnNfdmFsdWVfaXNfdW5kZWZpbmVkLApAQCAtNDIzLDYgJiM0Mzs0MjUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsCiAJCQlnb3RvIG91dF9rZXk7CiAJCX0KIAkJcGFyYW0uc2l6ZSA9IHN0cmxlbihwYXJhbS5zdHJpbmcpOwomIzQzOwkJdmFsdWVfc3RyID0gcGFyYW0uc3RyaW5nOwogCQlicmVhazsKIAljYXNlIEZTQ09ORklHX1NFVF9CSU5BUlk6CiAJCXBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19ibG9iOwpAQCAtNDMyLDYgJiM0Mzs0MzUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsCiAJCQlyZXQgPSBQVFJfRVJSKHBhcmFtLmJsb2IpOwogCQkJZ290byBvdXRfa2V5OwogCQl9CiYjNDM7CQl2YWx1ZV9zdHIgPSAmIzM0OyZsdDtiaW5hcnkmZ3Q7JiMzNDs7CiAJCWJyZWFrOwogCWNhc2UgRlNDT05GSUdfU0VUX1BBVEhfRU1QVFk6CiAJCWxvb2t1cF9mbGFncyA9IExPT0tVUF9FTVBUWTsKQEAgLTQ0NSw2ICYjNDM7NDQ5LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLAogCQl9CiAJCXBhcmFtLmRpcmZkID0gYXV4OwogCQlwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLm5hbWUtJmd0O25hbWUpOwomIzQzOwkJdmFsdWVfc3RyID0gcGFyYW0ubmFtZS0mZ3Q7bmFtZTsKIAkJYnJlYWs7CiAJY2FzZSBGU0NPTkZJR19TRVRfRkQ6CiAJCXBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19maWxlOwpAQCAtNDU4LDYgJiM0Mzs0NjMsOCBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsCiAJCWJyZWFrOwogCX0KIAomIzQzOwlhdWRpdF9sb2dfZnNjb25maWcoY21kLCBwYXJhbS5rZXksIHZhbHVlX3N0ciwgYXV4KTsKJiM0MzsKIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmFtcDtmYy0mZ3Q7dWFwaV9tdXRleCk7CiAJaWYgKHJldCA9PSAwKSB7CiAJCXJldCA9IHZmc19mc2NvbmZpZ19sb2NrZWQoZmMsIGNtZCwgJmFtcDtwYXJhbSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKaW5kZXggNDVhYmIzNzIyZDMwNGMuLjk3OGViODgxOTc0Yzg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9hdWRpdC5oCkBAIC00NDksNiAmIzQzOzQ0OSw4IEBAIGV4dGVybiB2b2lkIF9fYXVkaXRfdGtfaW5qb2Zmc2V0KHN0cnVjdCB0aW1lc3BlYzY0IG9mZnNldCk7CiBleHRlcm4gdm9pZCBfX2F1ZGl0X250cF9sb2coY29uc3Qgc3RydWN0IGF1ZGl0X250cF9kYXRhICphZCk7CiBleHRlcm4gdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLAogCQkJICAgICAgZW51bSBhdWRpdF9uZmNmZ29wIG9wLCBnZnBfdCBnZnApOwomIzQzO2V4dGVybiB2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSwKJiM0MzsJCQkJIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KTsKIAogc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2lwY19vYmooc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3ApCiB7CkBAIC01OTgsNiAmIzQzOzYwMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLAogCQlfX2F1ZGl0X2xvZ19uZmNmZyhuYW1lLCBhZiwgbmVudHJpZXMsIG9wLCBnZnApOwogfQogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksCiYjNDM7CQkJCSAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KQomIzQzO3sKJiM0MzsJaWYgKCFhdWRpdF9kdW1teV9jb250ZXh0KCkpCiYjNDM7CQlfX2F1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIGtleSwgdmFsdWUsIGF1eCk7CiYjNDM7fQomIzQzOwogZXh0ZXJuIGludCBhdWRpdF9uX3J1bGVzOwogZXh0ZXJuIGludCBhdWRpdF9zaWduYWxzOwogI2Vsc2UgLyogQ09ORklHX0FVRElUU1lTQ0FMTCAqLwpAQCAtNzMwLDYgJiM0Mzs3MzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwKIAkJCQkgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCkKIHsgfQogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksCiYjNDM7CQkJCSAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KQomIzQzO3sgfQomIzQzOwogI2RlZmluZSBhdWRpdF9uX3J1bGVzIDAKICNkZWZpbmUgYXVkaXRfc2lnbmFscyAwCiAjZW5kaWYgLyogQ09ORklHX0FVRElUU1lTQ0FMTCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaAppbmRleCBlOGY1Y2U2NzdkZjczNC4uNWNkMGViNjAyNTI4YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oCkBAIC0xMjIsNiAmIzQzOzEyMiw3IEBACiAjZGVmaW5lIEFVRElUX09QRU5BVDIJCTEzMzcJLyogUmVjb3JkIHNob3dpbmcgb3BlbmF0MiBob3cgYXJncyAqLwogI2RlZmluZSBBVURJVF9ETV9DVFJMCQkxMzM4CS8qIERldmljZSBNYXBwZXIgdGFyZ2V0IGNvbnRyb2wgKi8KICNkZWZpbmUgQVVESVRfRE1fRVZFTlQJCTEzMzkJLyogRGV2aWNlIE1hcHBlciBldmVudHMgKi8KJiM0MzsjZGVmaW5lIEFVRElUX0ZTQ09ORklHCQkxMzQxCS8qIFJlY29yZCBzaG93aW5nIGZzY29uZmlnIGFyZ3MgKi8KIAogI2RlZmluZSBBVURJVF9BVkMJCTE0MDAJLyogU0UgTGludXggYXZjIGRlbmlhbCBvciBncmFudCAqLwogI2RlZmluZSBBVURJVF9TRUxJTlVYX0VSUgkxNDAxCS8qIEludGVybmFsIFNFIExpbnV4IEVycm9ycyAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmMKaW5kZXggNjYxMGU2NjdjNzI4YWEuLjIyMmJmNzllZTliZGMxIDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXRzYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9hdWRpdHNjLmMKQEAgLTI4ODIsNiAmIzQzOzI4ODIsMzMgQEAgdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoX19hdWRpdF9sb2dfbmZjZmcpOwogCiYjNDM7dm9pZCBfX2F1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksCiYjNDM7CQkJICBjb25zdCBjaGFyICp2YWx1ZSwgaW50IGF1eCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBhdWRpdF9idWZmZXIgKmFiOwomIzQzOwomIzQzOwlhYiA9IGF1ZGl0X2xvZ19zdGFydChhdWRpdF9jb250ZXh0KCksIEdGUF9LRVJORUwsIEFVRElUX0ZTQ09ORklHKTsKJiM0MzsJaWYgKCFhYikKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDtmc19jbWQ9JXUmIzM0OywgY21kKTsKJiM0MzsJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDsgZnNfa2V5PSYjMzQ7KTsKJiM0MzsJaWYgKHZhbHVlKQomIzQzOwkJYXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwga2V5KTsKJiM0MzsJZWxzZQomIzQzOwkJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDsobnVsbCkmIzM0Oyk7CiYjNDM7CiYjNDM7CWF1ZGl0X2xvZ19mb3JtYXQoYWIsICYjMzQ7IGZzX3ZhbD0mIzM0Oyk7CiYjNDM7CWlmICh2YWx1ZSkKJiM0MzsJCWF1ZGl0X2xvZ191bnRydXN0ZWRzdHJpbmcoYWIsIHZhbHVlKTsKJiM0MzsJZWxzZQomIzQzOwkJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDsobnVsbCkmIzM0Oyk7CiYjNDM7CiYjNDM7CWF1ZGl0X2xvZ19mb3JtYXQoYWIsICYjMzQ7IGZzX2F1eD0lZCYjMzQ7LCBhdXgpOwomIzQzOwomIzQzOwlhdWRpdF9sb2dfZW5kKGFiKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBhdWRpdF9sb2dfdGFzayhzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYikKIHsKIAlrdWlkX3QgYXVpZCwgdWlkOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAyMjozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDM1CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogMTc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBmc2NvbmZpZ2AgQXVkaXQgTG9nZ2luZyBQYXRjaCoqCgpPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIHRoaXMgcGF0Y2ggaXMgc3RyYWlnaHRmb3J3YXJkLiBJdCYjMzk7cyBlc3NlbnRpYWxseSBpbnRyb2R1Y2luZyBhbiBhdWRpdCBsb2cgZm9yIHRoZSBgZnNjb25maWdgIHN5c2NhbGwuIFRoZSBjb3JlIG9mIGl0IGludm9sdmVzIG1vZGlmaWNhdGlvbnMgdG8gYGZzL2Zzb3Blbi5jYCwgd2hlcmUgdGhleSYjMzk7cmUgY2FsbGluZyBgYXVkaXRfbG9nX2ZzY29uZmlnYC4gVGhlbiwgb3ZlciBpbiBga2VybmVsL2F1ZGl0c2MuY2AsIHdlIGhhdmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBfX2F1ZGl0X2xvZ19mc2NvbmZpZ2AsIGFuZCB3ZSBjYW4gc2VlIHRoZSBkZWNsYXJhdGlvbiBvZiBgYXVkaXRfbG9nX2ZzY29uZmlnYCBpbiBgaW5jbHVkZS9saW51eC9hdWRpdC5oYC4gQW5kIGZpbmFsbHksIHRoZXkmIzM5O3ZlIGFkZGVkIGEgbmV3IGF1ZGl0IHR5cGUsIGBBVURJVF9GU0NPTkZJR2AsIGluIGBpbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaGAuCgpUaGUgY3J1Y2lhbCB0aGluZyBoZXJlLCB0aG91Z2gsIGlzIHRoYXQgdGhlIGRlc2NyaXB0aW9uIGNsYWltcyAqdGhlc2UgYXJlIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMqLiBJdCBzZWVtcyB0aGUgcGF0Y2ggZG9lc24mIzM5O3QgYWN0dWFsbHkgYWx0ZXIgdGhlIGZ1bmRhbWVudGFsIGJlaGF2aW9yIG9yIGxvZ2ljIG9mIHRoZSBgZnNjb25maWdgIHN5c2NhbGwgaW4gYW55IHdheS4gSXQmIzM5O3MganVzdCBhZGRpbmcgbG9nZ2luZy4gVGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljIG9mIHRoZSBgZnNjb25maWdgIGNhbGwuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBwYXRjaCBpcyBpc29sYXRlZCB0byBsb2dnaW5nLCBJIGNvbmNsdWRlIHRoYXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0JiMzOTtzIGEgdXNlZnVsIGFkZGl0aW9uIGZvciBhdWRpdGluZyBhbmQgZGVidWdnaW5nLCBidXQgaXQmIzM5O3MgKm5vdCogaW50cm9kdWNpbmcgYW55IG5ldyBhdmVudWVzIGZvciBleHBsb2l0YXRpb24gb3IgbG9naWMgZXJyb3JzIHRoYXQgd291bGQgd2FycmFudCBmdXp6aW5nIHRoZSBhbHRlcmVkIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMjI6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYXVkaXQgbG9nZ2luZyBmb3IgdGhlIGZzY29uZmlnIHN5c2NhbGwgYW5kIGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYXVkaXQgbG9nZ2luZyBmb3IgdGhlIGZzY29uZmlnIHN5c2NhbGwgYW5kIGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTNUMjI6MzU6MjkuODk1OTI0MTQ5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM5MTc4NDU5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMjI6MzU6MjkuODk1OTMzMjE5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjgzODQ2NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwNDMwNGU3ZjdkNjk5YTM0Y2EwZTc2Njg4MWRmZmJhZGUwY2NmYTU2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDEzIDIyOjM1OjI4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2ZzL2Zzb3Blbi5jIGIvZnMvZnNvcGVuLmNcXG5pbmRleCBhZTE5ZTUxMzY1OTg2Zi4uOWIzYzAyZjU5ZGY0YmEgMTAwNjQ0XFxuLS0tIGEvZnMvZnNvcGVuLmNcXG4rKysgYi9mcy9mc29wZW4uY1xcbkBAIC0xNSw2ICsxNSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9uYW1laS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZmlsZS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjdWFwaS9saW51eC9tb3VudC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYXVkaXQuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImludGVybmFsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJtb3VudC5oXFxcIlxcbiBcXG5AQCAtMzU3LDYgKzM1OCw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZyxcXG4gXFx0c3RydWN0IGZzX2NvbnRleHQgKmZjO1xcbiBcXHRpbnQgcmV0O1xcbiBcXHRpbnQgbG9va3VwX2ZsYWdzID0gMDtcXG4rXFx0Y29uc3QgY2hhciAqdmFsdWVfc3RyID0gTlVMTDtcXG4gXFxuIFxcdHN0cnVjdCBmc19wYXJhbWV0ZXIgcGFyYW0gPSB7XFxuIFxcdFxcdC50eXBlXFx0PSBmc192YWx1ZV9pc191bmRlZmluZWQsXFxuQEAgLTQyMyw2ICs0MjUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXFxuIFxcdFxcdFxcdGdvdG8gb3V0X2tleTtcXG4gXFx0XFx0fVxcbiBcXHRcXHRwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLnN0cmluZyk7XFxuK1xcdFxcdHZhbHVlX3N0ciA9IHBhcmFtLnN0cmluZztcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgRlNDT05GSUdfU0VUX0JJTkFSWTpcXG4gXFx0XFx0cGFyYW0udHlwZSA9IGZzX3ZhbHVlX2lzX2Jsb2I7XFxuQEAgLTQzMiw2ICs0MzUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXFxuIFxcdFxcdFxcdHJldCA9IFBUUl9FUlIocGFyYW0uYmxvYik7XFxuIFxcdFxcdFxcdGdvdG8gb3V0X2tleTtcXG4gXFx0XFx0fVxcbitcXHRcXHR2YWx1ZV9zdHIgPSBcXFwiXFx1MDAzY2JpbmFyeVxcdTAwM2VcXFwiO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWTpcXG4gXFx0XFx0bG9va3VwX2ZsYWdzID0gTE9PS1VQX0VNUFRZO1xcbkBAIC00NDUsNiArNDQ5LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxcbiBcXHRcXHR9XFxuIFxcdFxcdHBhcmFtLmRpcmZkID0gYXV4O1xcbiBcXHRcXHRwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLm5hbWUtXFx1MDAzZW5hbWUpO1xcbitcXHRcXHR2YWx1ZV9zdHIgPSBwYXJhbS5uYW1lLVxcdTAwM2VuYW1lO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBGU0NPTkZJR19TRVRfRkQ6XFxuIFxcdFxcdHBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19maWxlO1xcbkBAIC00NTgsNiArNDYzLDggQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxcbiBcXHRcXHRicmVhaztcXG4gXFx0fVxcbiBcXG4rXFx0YXVkaXRfbG9nX2ZzY29uZmlnKGNtZCwgcGFyYW0ua2V5LCB2YWx1ZV9zdHIsIGF1eCk7XFxuK1xcbiBcXHRyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXFx1MDAyNmZjLVxcdTAwM2V1YXBpX211dGV4KTtcXG4gXFx0aWYgKHJldCA9PSAwKSB7XFxuIFxcdFxcdHJldCA9IHZmc19mc2NvbmZpZ19sb2NrZWQoZmMsIGNtZCwgXFx1MDAyNnBhcmFtKTtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oXFxuaW5kZXggNDVhYmIzNzIyZDMwNGMuLjk3OGViODgxOTc0Yzg4IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvYXVkaXQuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvYXVkaXQuaFxcbkBAIC00NDksNiArNDQ5LDggQEAgZXh0ZXJuIHZvaWQgX19hdWRpdF90a19pbmpvZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgb2Zmc2V0KTtcXG4gZXh0ZXJuIHZvaWQgX19hdWRpdF9udHBfbG9nKGNvbnN0IHN0cnVjdCBhdWRpdF9udHBfZGF0YSAqYWQpO1xcbiBleHRlcm4gdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLFxcbiBcXHRcXHRcXHQgICAgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCk7XFxuK2V4dGVybiB2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcXG4rXFx0XFx0XFx0XFx0IGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KTtcXG4gXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9pcGNfb2JqKHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwKVxcbiB7XFxuQEAgLTU5OCw2ICs2MDAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZixcXG4gXFx0XFx0X19hdWRpdF9sb2dfbmZjZmcobmFtZSwgYWYsIG5lbnRyaWVzLCBvcCwgZ2ZwKTtcXG4gfVxcbiBcXG4rc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXFxuK1xcdFxcdFxcdFxcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxcbit7XFxuK1xcdGlmICghYXVkaXRfZHVtbXlfY29udGV4dCgpKVxcbitcXHRcXHRfX2F1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIGtleSwgdmFsdWUsIGF1eCk7XFxuK31cXG4rXFxuIGV4dGVybiBpbnQgYXVkaXRfbl9ydWxlcztcXG4gZXh0ZXJuIGludCBhdWRpdF9zaWduYWxzO1xcbiAjZWxzZSAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXFxuQEAgLTczMCw2ICs3MzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZixcXG4gXFx0XFx0XFx0XFx0ICAgZW51bSBhdWRpdF9uZmNmZ29wIG9wLCBnZnBfdCBnZnApXFxuIHsgfVxcbiBcXG4rc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXFxuK1xcdFxcdFxcdFxcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxcbit7IH1cXG4rXFxuICNkZWZpbmUgYXVkaXRfbl9ydWxlcyAwXFxuICNkZWZpbmUgYXVkaXRfc2lnbmFscyAwXFxuICNlbmRpZiAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcXG5pbmRleCBlOGY1Y2U2NzdkZjczNC4uNWNkMGViNjAyNTI4YjIgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaFxcbkBAIC0xMjIsNiArMTIyLDcgQEBcXG4gI2RlZmluZSBBVURJVF9PUEVOQVQyXFx0XFx0MTMzN1xcdC8qIFJlY29yZCBzaG93aW5nIG9wZW5hdDIgaG93IGFyZ3MgKi9cXG4gI2RlZmluZSBBVURJVF9ETV9DVFJMXFx0XFx0MTMzOFxcdC8qIERldmljZSBNYXBwZXIgdGFyZ2V0IGNvbnRyb2wgKi9cXG4gI2RlZmluZSBBVURJVF9ETV9FVkVOVFxcdFxcdDEzMzlcXHQvKiBEZXZpY2UgTWFwcGVyIGV2ZW50cyAqL1xcbisjZGVmaW5lIEFVRElUX0ZTQ09ORklHXFx0XFx0MTM0MVxcdC8qIFJlY29yZCBzaG93aW5nIGZzY29uZmlnIGFyZ3MgKi9cXG4gXFxuICNkZWZpbmUgQVVESVRfQVZDXFx0XFx0MTQwMFxcdC8qIFNFIExpbnV4IGF2YyBkZW5pYWwgb3IgZ3JhbnQgKi9cXG4gI2RlZmluZSBBVURJVF9TRUxJTlVYX0VSUlxcdDE0MDFcXHQvKiBJbnRlcm5hbCBTRSBMaW51eCBFcnJvcnMgKi9cXG5kaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmNcXG5pbmRleCA2NjEwZTY2N2M3MjhhYS4uMjIyYmY3OWVlOWJkYzEgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2F1ZGl0c2MuY1xcbisrKyBiL2tlcm5lbC9hdWRpdHNjLmNcXG5AQCAtMjg4Miw2ICsyODgyLDMzIEBAIHZvaWQgX19hdWRpdF9sb2dfbmZjZmcoY29uc3QgY2hhciAqbmFtZSwgdTggYWYsIHVuc2lnbmVkIGludCBuZW50cmllcyxcXG4gfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChfX2F1ZGl0X2xvZ19uZmNmZyk7XFxuIFxcbit2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcXG4rXFx0XFx0XFx0ICBjb25zdCBjaGFyICp2YWx1ZSwgaW50IGF1eClcXG4re1xcbitcXHRzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYjtcXG4rXFxuK1xcdGFiID0gYXVkaXRfbG9nX3N0YXJ0KGF1ZGl0X2NvbnRleHQoKSwgR0ZQX0tFUk5FTCwgQVVESVRfRlNDT05GSUcpO1xcbitcXHRpZiAoIWFiKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbitcXHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcXFwiZnNfY21kPSV1XFxcIiwgY21kKTtcXG4rXFx0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXFxcIiBmc19rZXk9XFxcIik7XFxuK1xcdGlmICh2YWx1ZSlcXG4rXFx0XFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwga2V5KTtcXG4rXFx0ZWxzZVxcbitcXHRcXHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcXFwiKG51bGwpXFxcIik7XFxuK1xcbitcXHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcXFwiIGZzX3ZhbD1cXFwiKTtcXG4rXFx0aWYgKHZhbHVlKVxcbitcXHRcXHRhdWRpdF9sb2dfdW50cnVzdGVkc3RyaW5nKGFiLCB2YWx1ZSk7XFxuK1xcdGVsc2VcXG4rXFx0XFx0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXFxcIihudWxsKVxcXCIpO1xcbitcXG4rXFx0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXFxcIiBmc19hdXg9JWRcXFwiLCBhdXgpO1xcbitcXG4rXFx0YXVkaXRfbG9nX2VuZChhYik7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ190YXNrKHN0cnVjdCBhdWRpdF9idWZmZXIgKmFiKVxcbiB7XFxuIFxcdGt1aWRfdCBhdWlkLCB1aWQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDIyOjM1OjMwLjU2NTMwMjE0M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcyMjM5NjIzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNDMwNGU3ZjdkNjk5YTM0Y2EwZTc2Njg4MWRmZmJhZGUwY2NmYTU2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMTMgMjI6MzU6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9mc29wZW4uYyBiL2ZzL2Zzb3Blbi5jXG5pbmRleCBhZTE5ZTUxMzY1OTg2Zi4uOWIzYzAyZjU5ZGY0YmEgMTAwNjQ0XG4tLS0gYS9mcy9mc29wZW4uY1xuKysrIGIvZnMvZnNvcGVuLmNcbkBAIC0xNSw2ICsxNSw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbmFtZWkuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2ZpbGUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY3VhcGkvbGludXgvbW91bnQuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1ZGl0LmhcdTAwM2VcbiAjaW5jbHVkZSBcImludGVybmFsLmhcIlxuICNpbmNsdWRlIFwibW91bnQuaFwiXG4gXG5AQCAtMzU3LDYgKzM1OCw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZyxcbiBcdHN0cnVjdCBmc19jb250ZXh0ICpmYztcbiBcdGludCByZXQ7XG4gXHRpbnQgbG9va3VwX2ZsYWdzID0gMDtcbitcdGNvbnN0IGNoYXIgKnZhbHVlX3N0ciA9IE5VTEw7XG4gXG4gXHRzdHJ1Y3QgZnNfcGFyYW1ldGVyIHBhcmFtID0ge1xuIFx0XHQudHlwZVx0PSBmc192YWx1ZV9pc191bmRlZmluZWQsXG5AQCAtNDIzLDYgKzQyNSw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZyxcbiBcdFx0XHRnb3RvIG91dF9rZXk7XG4gXHRcdH1cbiBcdFx0cGFyYW0uc2l6ZSA9IHN0cmxlbihwYXJhbS5zdHJpbmcpO1xuK1x0XHR2YWx1ZV9zdHIgPSBwYXJhbS5zdHJpbmc7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfQklOQVJZOlxuIFx0XHRwYXJhbS50eXBlID0gZnNfdmFsdWVfaXNfYmxvYjtcbkBAIC00MzIsNiArNDM1LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRcdHJldCA9IFBUUl9FUlIocGFyYW0uYmxvYik7XG4gXHRcdFx0Z290byBvdXRfa2V5O1xuIFx0XHR9XG4rXHRcdHZhbHVlX3N0ciA9IFwiXHUwMDNjYmluYXJ5XHUwMDNlXCI7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWTpcbiBcdFx0bG9va3VwX2ZsYWdzID0gTE9PS1VQX0VNUFRZO1xuQEAgLTQ0NSw2ICs0NDksNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXG4gXHRcdH1cbiBcdFx0cGFyYW0uZGlyZmQgPSBhdXg7XG4gXHRcdHBhcmFtLnNpemUgPSBzdHJsZW4ocGFyYW0ubmFtZS1cdTAwM2VuYW1lKTtcbitcdFx0dmFsdWVfc3RyID0gcGFyYW0ubmFtZS1cdTAwM2VuYW1lO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgRlNDT05GSUdfU0VUX0ZEOlxuIFx0XHRwYXJhbS50eXBlID0gZnNfdmFsdWVfaXNfZmlsZTtcbkBAIC00NTgsNiArNDYzLDggQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRicmVhaztcbiBcdH1cbiBcbitcdGF1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIHBhcmFtLmtleSwgdmFsdWVfc3RyLCBhdXgpO1xuK1xuIFx0cmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKFx1MDAyNmZjLVx1MDAzZXVhcGlfbXV0ZXgpO1xuIFx0aWYgKHJldCA9PSAwKSB7XG4gXHRcdHJldCA9IHZmc19mc2NvbmZpZ19sb2NrZWQoZmMsIGNtZCwgXHUwMDI2cGFyYW0pO1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXVkaXQuaCBiL2luY2x1ZGUvbGludXgvYXVkaXQuaFxuaW5kZXggNDVhYmIzNzIyZDMwNGMuLjk3OGViODgxOTc0Yzg4IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdWRpdC5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmhcbkBAIC00NDksNiArNDQ5LDggQEAgZXh0ZXJuIHZvaWQgX19hdWRpdF90a19pbmpvZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgb2Zmc2V0KTtcbiBleHRlcm4gdm9pZCBfX2F1ZGl0X250cF9sb2coY29uc3Qgc3RydWN0IGF1ZGl0X250cF9kYXRhICphZCk7XG4gZXh0ZXJuIHZvaWQgX19hdWRpdF9sb2dfbmZjZmcoY29uc3QgY2hhciAqbmFtZSwgdTggYWYsIHVuc2lnbmVkIGludCBuZW50cmllcyxcbiBcdFx0XHQgICAgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCk7XG4rZXh0ZXJuIHZvaWQgX19hdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuK1x0XHRcdFx0IGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KTtcbiBcbiBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfaXBjX29iaihzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcClcbiB7XG5AQCAtNTk4LDYgKzYwMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLFxuIFx0XHRfX2F1ZGl0X2xvZ19uZmNmZyhuYW1lLCBhZiwgbmVudHJpZXMsIG9wLCBnZnApO1xuIH1cbiBcbitzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcbitcdFx0XHRcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxuK3tcbitcdGlmICghYXVkaXRfZHVtbXlfY29udGV4dCgpKVxuK1x0XHRfX2F1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIGtleSwgdmFsdWUsIGF1eCk7XG4rfVxuK1xuIGV4dGVybiBpbnQgYXVkaXRfbl9ydWxlcztcbiBleHRlcm4gaW50IGF1ZGl0X3NpZ25hbHM7XG4gI2Vsc2UgLyogQ09ORklHX0FVRElUU1lTQ0FMTCAqL1xuQEAgLTczMCw2ICs3MzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZixcbiBcdFx0XHRcdCAgIGVudW0gYXVkaXRfbmZjZmdvcCBvcCwgZ2ZwX3QgZ2ZwKVxuIHsgfVxuIFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuK1x0XHRcdFx0ICAgICAgY29uc3QgY2hhciAqdmFsdWUsIGludCBhdXgpXG4reyB9XG4rXG4gI2RlZmluZSBhdWRpdF9uX3J1bGVzIDBcbiAjZGVmaW5lIGF1ZGl0X3NpZ25hbHMgMFxuICNlbmRpZiAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaFxuaW5kZXggZThmNWNlNjc3ZGY3MzQuLjVjZDBlYjYwMjUyOGIyIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oXG5AQCAtMTIyLDYgKzEyMiw3IEBAXG4gI2RlZmluZSBBVURJVF9PUEVOQVQyXHRcdDEzMzdcdC8qIFJlY29yZCBzaG93aW5nIG9wZW5hdDIgaG93IGFyZ3MgKi9cbiAjZGVmaW5lIEFVRElUX0RNX0NUUkxcdFx0MTMzOFx0LyogRGV2aWNlIE1hcHBlciB0YXJnZXQgY29udHJvbCAqL1xuICNkZWZpbmUgQVVESVRfRE1fRVZFTlRcdFx0MTMzOVx0LyogRGV2aWNlIE1hcHBlciBldmVudHMgKi9cbisjZGVmaW5lIEFVRElUX0ZTQ09ORklHXHRcdDEzNDFcdC8qIFJlY29yZCBzaG93aW5nIGZzY29uZmlnIGFyZ3MgKi9cbiBcbiAjZGVmaW5lIEFVRElUX0FWQ1x0XHQxNDAwXHQvKiBTRSBMaW51eCBhdmMgZGVuaWFsIG9yIGdyYW50ICovXG4gI2RlZmluZSBBVURJVF9TRUxJTlVYX0VSUlx0MTQwMVx0LyogSW50ZXJuYWwgU0UgTGludXggRXJyb3JzICovXG5kaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmNcbmluZGV4IDY2MTBlNjY3YzcyOGFhLi4yMjJiZjc5ZWU5YmRjMSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9hdWRpdHNjLmNcbisrKyBiL2tlcm5lbC9hdWRpdHNjLmNcbkBAIC0yODgyLDYgKzI4ODIsMzMgQEAgdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChfX2F1ZGl0X2xvZ19uZmNmZyk7XG4gXG4rdm9pZCBfX2F1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXG4rXHRcdFx0ICBjb25zdCBjaGFyICp2YWx1ZSwgaW50IGF1eClcbit7XG4rXHRzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYjtcbitcbitcdGFiID0gYXVkaXRfbG9nX3N0YXJ0KGF1ZGl0X2NvbnRleHQoKSwgR0ZQX0tFUk5FTCwgQVVESVRfRlNDT05GSUcpO1xuK1x0aWYgKCFhYilcbitcdFx0cmV0dXJuO1xuK1xuK1x0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXCJmc19jbWQ9JXVcIiwgY21kKTtcbitcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwiIGZzX2tleT1cIik7XG4rXHRpZiAodmFsdWUpXG4rXHRcdGF1ZGl0X2xvZ191bnRydXN0ZWRzdHJpbmcoYWIsIGtleSk7XG4rXHRlbHNlXG4rXHRcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwiKG51bGwpXCIpO1xuK1xuK1x0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXCIgZnNfdmFsPVwiKTtcbitcdGlmICh2YWx1ZSlcbitcdFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwgdmFsdWUpO1xuK1x0ZWxzZVxuK1x0XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcIihudWxsKVwiKTtcbitcbitcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwiIGZzX2F1eD0lZFwiLCBhdXgpO1xuK1xuK1x0YXVkaXRfbG9nX2VuZChhYik7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ190YXNrKHN0cnVjdCBhdWRpdF9idWZmZXIgKmFiKVxuIHtcbiBcdGt1aWRfdCBhdWlkLCB1aWQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QyMjozNTozMC41NjUzMDQyNzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzIyMzYxMTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBmc2NvbmZpZ2AgQXVkaXQgTG9nZ2luZyBQYXRjaCoqXG5cbk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgdGhpcyBwYXRjaCBpcyBzdHJhaWdodGZvcndhcmQuIEl0J3MgZXNzZW50aWFsbHkgaW50cm9kdWNpbmcgYW4gYXVkaXQgbG9nIGZvciB0aGUgYGZzY29uZmlnYCBzeXNjYWxsLiBUaGUgY29yZSBvZiBpdCBpbnZvbHZlcyBtb2RpZmljYXRpb25zIHRvIGBmcy9mc29wZW4uY2AsIHdoZXJlIHRoZXkncmUgY2FsbGluZyBgYXVkaXRfbG9nX2ZzY29uZmlnYC4gVGhlbiwgb3ZlciBpbiBga2VybmVsL2F1ZGl0c2MuY2AsIHdlIGhhdmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBfX2F1ZGl0X2xvZ19mc2NvbmZpZ2AsIGFuZCB3ZSBjYW4gc2VlIHRoZSBkZWNsYXJhdGlvbiBvZiBgYXVkaXRfbG9nX2ZzY29uZmlnYCBpbiBgaW5jbHVkZS9saW51eC9hdWRpdC5oYC4gQW5kIGZpbmFsbHksIHRoZXkndmUgYWRkZWQgYSBuZXcgYXVkaXQgdHlwZSwgYEFVRElUX0ZTQ09ORklHYCwgaW4gYGluY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oYC5cblxuVGhlIGNydWNpYWwgdGhpbmcgaGVyZSwgdGhvdWdoLCBpcyB0aGF0IHRoZSBkZXNjcmlwdGlvbiBjbGFpbXMgKnRoZXNlIGFyZSBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzKi4gSXQgc2VlbXMgdGhlIHBhdGNoIGRvZXNuJ3QgYWN0dWFsbHkgYWx0ZXIgdGhlIGZ1bmRhbWVudGFsIGJlaGF2aW9yIG9yIGxvZ2ljIG9mIHRoZSBgZnNjb25maWdgIHN5c2NhbGwgaW4gYW55IHdheS4gSXQncyBqdXN0IGFkZGluZyBsb2dnaW5nLiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgY29yZSBrZXJuZWwgbG9naWMgb2YgdGhlIGBmc2NvbmZpZ2AgY2FsbC5cblxuVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgcGF0Y2ggaXMgaXNvbGF0ZWQgdG8gbG9nZ2luZywgSSBjb25jbHVkZSB0aGF0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCdzIGEgdXNlZnVsIGFkZGl0aW9uIGZvciBhdWRpdGluZyBhbmQgZGVidWdnaW5nLCBidXQgaXQncyAqbm90KiBpbnRyb2R1Y2luZyBhbnkgbmV3IGF2ZW51ZXMgZm9yIGV4cGxvaXRhdGlvbiBvciBsb2dpYyBlcnJvcnMgdGhhdCB3b3VsZCB3YXJyYW50IGZ1enppbmcgdGhlIGFsdGVyZWQgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQzNSwiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDIyOjM1OjM1LjI4NzY2ODMzMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgyNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflows5h8t[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-13 22:19:56 +0000 UTC FinishedAt: 2026-07-13 22:35:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEzIDIyOjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhdWRpdCBsb2dnaW5nIGZvciB0aGUgZnNjb25maWcgc3lzY2FsbCBhbmQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBjb3JlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMjI6MzU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwNDMwNGU3ZjdkNjk5YTM0Y2EwZTc2Njg4MWRmZmJhZGUwY2NmYTU2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMTMgMjI6MzU6MjggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZnNvcGVuLmMgYi9mcy9mc29wZW4uY1xuaW5kZXggYWUxOWU1MTM2NTk4NmYuLjliM2MwMmY1OWRmNGJhIDEwMDY0NFxuLS0tIGEvZnMvZnNvcGVuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2Zzb3Blbi5jXG5AQCAtMTUsNiAmIzQzOzE1LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9uYW1laS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZmlsZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjdWFwaS9saW51eC9tb3VudC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1ZGl0LmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtpbnRlcm5hbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7bW91bnQuaFwmIzM0O1xuIFxuQEAgLTM1Nyw2ICYjNDM7MzU4LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0c3RydWN0IGZzX2NvbnRleHQgKmZjO1xuIFx0aW50IHJldDtcbiBcdGludCBsb29rdXBfZmxhZ3MgPSAwO1xuJiM0MztcdGNvbnN0IGNoYXIgKnZhbHVlX3N0ciA9IE5VTEw7XG4gXG4gXHRzdHJ1Y3QgZnNfcGFyYW1ldGVyIHBhcmFtID0ge1xuIFx0XHQudHlwZVx0PSBmc192YWx1ZV9pc191bmRlZmluZWQsXG5AQCAtNDIzLDYgJiM0Mzs0MjUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXG4gXHRcdFx0Z290byBvdXRfa2V5O1xuIFx0XHR9XG4gXHRcdHBhcmFtLnNpemUgPSBzdHJsZW4ocGFyYW0uc3RyaW5nKTtcbiYjNDM7XHRcdHZhbHVlX3N0ciA9IHBhcmFtLnN0cmluZztcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEZTQ09ORklHX1NFVF9CSU5BUlk6XG4gXHRcdHBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19ibG9iO1xuQEAgLTQzMiw2ICYjNDM7NDM1LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRcdHJldCA9IFBUUl9FUlIocGFyYW0uYmxvYik7XG4gXHRcdFx0Z290byBvdXRfa2V5O1xuIFx0XHR9XG4mIzQzO1x0XHR2YWx1ZV9zdHIgPSBcJiMzNDtcdTAwM2NiaW5hcnlcdTAwM2VcJiMzNDs7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWTpcbiBcdFx0bG9va3VwX2ZsYWdzID0gTE9PS1VQX0VNUFRZO1xuQEAgLTQ0NSw2ICYjNDM7NDQ5LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHR9XG4gXHRcdHBhcmFtLmRpcmZkID0gYXV4O1xuIFx0XHRwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLm5hbWUtXHUwMDNlbmFtZSk7XG4mIzQzO1x0XHR2YWx1ZV9zdHIgPSBwYXJhbS5uYW1lLVx1MDAzZW5hbWU7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfRkQ6XG4gXHRcdHBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19maWxlO1xuQEAgLTQ1OCw2ICYjNDM7NDYzLDggQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRicmVhaztcbiBcdH1cbiBcbiYjNDM7XHRhdWRpdF9sb2dfZnNjb25maWcoY21kLCBwYXJhbS5rZXksIHZhbHVlX3N0ciwgYXV4KTtcbiYjNDM7XG4gXHRyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXHUwMDI2ZmMtXHUwMDNldWFwaV9tdXRleCk7XG4gXHRpZiAocmV0ID09IDApIHtcbiBcdFx0cmV0ID0gdmZzX2ZzY29uZmlnX2xvY2tlZChmYywgY21kLCBcdTAwMjZwYXJhbSk7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oXG5pbmRleCA0NWFiYjM3MjJkMzA0Yy4uOTc4ZWI4ODE5NzRjODggMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvYXVkaXQuaFxuQEAgLTQ0OSw2ICYjNDM7NDQ5LDggQEAgZXh0ZXJuIHZvaWQgX19hdWRpdF90a19pbmpvZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgb2Zmc2V0KTtcbiBleHRlcm4gdm9pZCBfX2F1ZGl0X250cF9sb2coY29uc3Qgc3RydWN0IGF1ZGl0X250cF9kYXRhICphZCk7XG4gZXh0ZXJuIHZvaWQgX19hdWRpdF9sb2dfbmZjZmcoY29uc3QgY2hhciAqbmFtZSwgdTggYWYsIHVuc2lnbmVkIGludCBuZW50cmllcyxcbiBcdFx0XHQgICAgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCk7XG4mIzQzO2V4dGVybiB2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcbiYjNDM7XHRcdFx0XHQgY29uc3QgY2hhciAqdmFsdWUsIGludCBhdXgpO1xuIFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9pcGNfb2JqKHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwKVxuIHtcbkBAIC01OTgsNiAmIzQzOzYwMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLFxuIFx0XHRfX2F1ZGl0X2xvZ19uZmNmZyhuYW1lLCBhZiwgbmVudHJpZXMsIG9wLCBnZnApO1xuIH1cbiBcbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXG4mIzQzO1x0XHRcdFx0ICAgICAgY29uc3QgY2hhciAqdmFsdWUsIGludCBhdXgpXG4mIzQzO3tcbiYjNDM7XHRpZiAoIWF1ZGl0X2R1bW15X2NvbnRleHQoKSlcbiYjNDM7XHRcdF9fYXVkaXRfbG9nX2ZzY29uZmlnKGNtZCwga2V5LCB2YWx1ZSwgYXV4KTtcbiYjNDM7fVxuJiM0MztcbiBleHRlcm4gaW50IGF1ZGl0X25fcnVsZXM7XG4gZXh0ZXJuIGludCBhdWRpdF9zaWduYWxzO1xuICNlbHNlIC8qIENPTkZJR19BVURJVFNZU0NBTEwgKi9cbkBAIC03MzAsNiAmIzQzOzczOSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLFxuIFx0XHRcdFx0ICAgZW51bSBhdWRpdF9uZmNmZ29wIG9wLCBnZnBfdCBnZnApXG4geyB9XG4gXG4mIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuJiM0MztcdFx0XHRcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxuJiM0Mzt7IH1cbiYjNDM7XG4gI2RlZmluZSBhdWRpdF9uX3J1bGVzIDBcbiAjZGVmaW5lIGF1ZGl0X3NpZ25hbHMgMFxuICNlbmRpZiAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaFxuaW5kZXggZThmNWNlNjc3ZGY3MzQuLjVjZDBlYjYwMjUyOGIyIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oXG5AQCAtMTIyLDYgJiM0MzsxMjIsNyBAQFxuICNkZWZpbmUgQVVESVRfT1BFTkFUMlx0XHQxMzM3XHQvKiBSZWNvcmQgc2hvd2luZyBvcGVuYXQyIGhvdyBhcmdzICovXG4gI2RlZmluZSBBVURJVF9ETV9DVFJMXHRcdDEzMzhcdC8qIERldmljZSBNYXBwZXIgdGFyZ2V0IGNvbnRyb2wgKi9cbiAjZGVmaW5lIEFVRElUX0RNX0VWRU5UXHRcdDEzMzlcdC8qIERldmljZSBNYXBwZXIgZXZlbnRzICovXG4mIzQzOyNkZWZpbmUgQVVESVRfRlNDT05GSUdcdFx0MTM0MVx0LyogUmVjb3JkIHNob3dpbmcgZnNjb25maWcgYXJncyAqL1xuIFxuICNkZWZpbmUgQVVESVRfQVZDXHRcdDE0MDBcdC8qIFNFIExpbnV4IGF2YyBkZW5pYWwgb3IgZ3JhbnQgKi9cbiAjZGVmaW5lIEFVRElUX1NFTElOVVhfRVJSXHQxNDAxXHQvKiBJbnRlcm5hbCBTRSBMaW51eCBFcnJvcnMgKi9cbmRpZmYgLS1naXQgYS9rZXJuZWwvYXVkaXRzYy5jIGIva2VybmVsL2F1ZGl0c2MuY1xuaW5kZXggNjYxMGU2NjdjNzI4YWEuLjIyMmJmNzllZTliZGMxIDEwMDY0NFxuLS0tIGEva2VybmVsL2F1ZGl0c2MuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2F1ZGl0c2MuY1xuQEAgLTI4ODIsNiAmIzQzOzI4ODIsMzMgQEAgdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChfX2F1ZGl0X2xvZ19uZmNmZyk7XG4gXG4mIzQzO3ZvaWQgX19hdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuJiM0MztcdFx0XHQgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGF1ZGl0X2J1ZmZlciAqYWI7XG4mIzQzO1xuJiM0MztcdGFiID0gYXVkaXRfbG9nX3N0YXJ0KGF1ZGl0X2NvbnRleHQoKSwgR0ZQX0tFUk5FTCwgQVVESVRfRlNDT05GSUcpO1xuJiM0MztcdGlmICghYWIpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuJiM0MztcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwmIzM0O2ZzX2NtZD0ldVwmIzM0OywgY21kKTtcbiYjNDM7XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcJiMzNDsgZnNfa2V5PVwmIzM0Oyk7XG4mIzQzO1x0aWYgKHZhbHVlKVxuJiM0MztcdFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwga2V5KTtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcJiMzNDsobnVsbClcJiMzNDspO1xuJiM0MztcbiYjNDM7XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcJiMzNDsgZnNfdmFsPVwmIzM0Oyk7XG4mIzQzO1x0aWYgKHZhbHVlKVxuJiM0MztcdFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwgdmFsdWUpO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwmIzM0OyhudWxsKVwmIzM0Oyk7XG4mIzQzO1xuJiM0MztcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwmIzM0OyBmc19hdXg9JWRcJiMzNDssIGF1eCk7XG4mIzQzO1xuJiM0MztcdGF1ZGl0X2xvZ19lbmQoYWIpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ190YXNrKHN0cnVjdCBhdWRpdF9idWZmZXIgKmFiKVxuIHtcbiBcdGt1aWRfdCBhdWlkLCB1aWQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMjI6MzU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDQzMDRlN2Y3ZDY5OWEzNGNhMGU3NjY4ODFkZmZiYWRlMGNjZmE1NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDEzIDIyOjM1OjI4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZnNvcGVuLmMgYi9mcy9mc29wZW4uYwppbmRleCBhZTE5ZTUxMzY1OTg2Zi4uOWIzYzAyZjU5ZGY0YmEgMTAwNjQ0Ci0tLSBhL2ZzL2Zzb3Blbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2Zzb3Blbi5jCkBAIC0xNSw2ICYjNDM7MTUsNyBAQAogI2luY2x1ZGUgJmx0O2xpbnV4L25hbWVpLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvZmlsZS5oJmd0OwogI2luY2x1ZGUgJmx0O3VhcGkvbGludXgvbW91bnQuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvYXVkaXQuaCZndDsKICNpbmNsdWRlICYjMzQ7aW50ZXJuYWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O21vdW50LmgmIzM0OwogCkBAIC0zNTcsNiAmIzQzOzM1OCw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZywKIAlzdHJ1Y3QgZnNfY29udGV4dCAqZmM7CiAJaW50IHJldDsKIAlpbnQgbG9va3VwX2ZsYWdzID0gMDsKJiM0MzsJY29uc3QgY2hhciAqdmFsdWVfc3RyID0gTlVMTDsKIAogCXN0cnVjdCBmc19wYXJhbWV0ZXIgcGFyYW0gPSB7CiAJCS50eXBlCT0gZnNfdmFsdWVfaXNfdW5kZWZpbmVkLApAQCAtNDIzLDYgJiM0Mzs0MjUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsCiAJCQlnb3RvIG91dF9rZXk7CiAJCX0KIAkJcGFyYW0uc2l6ZSA9IHN0cmxlbihwYXJhbS5zdHJpbmcpOwomIzQzOwkJdmFsdWVfc3RyID0gcGFyYW0uc3RyaW5nOwogCQlicmVhazsKIAljYXNlIEZTQ09ORklHX1NFVF9CSU5BUlk6CiAJCXBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19ibG9iOwpAQCAtNDMyLDYgJiM0Mzs0MzUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsCiAJCQlyZXQgPSBQVFJfRVJSKHBhcmFtLmJsb2IpOwogCQkJZ290byBvdXRfa2V5OwogCQl9CiYjNDM7CQl2YWx1ZV9zdHIgPSAmIzM0OyZsdDtiaW5hcnkmZ3Q7JiMzNDs7CiAJCWJyZWFrOwogCWNhc2UgRlNDT05GSUdfU0VUX1BBVEhfRU1QVFk6CiAJCWxvb2t1cF9mbGFncyA9IExPT0tVUF9FTVBUWTsKQEAgLTQ0NSw2ICYjNDM7NDQ5LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLAogCQl9CiAJCXBhcmFtLmRpcmZkID0gYXV4OwogCQlwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLm5hbWUtJmd0O25hbWUpOwomIzQzOwkJdmFsdWVfc3RyID0gcGFyYW0ubmFtZS0mZ3Q7bmFtZTsKIAkJYnJlYWs7CiAJY2FzZSBGU0NPTkZJR19TRVRfRkQ6CiAJCXBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19maWxlOwpAQCAtNDU4LDYgJiM0Mzs0NjMsOCBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsCiAJCWJyZWFrOwogCX0KIAomIzQzOwlhdWRpdF9sb2dfZnNjb25maWcoY21kLCBwYXJhbS5rZXksIHZhbHVlX3N0ciwgYXV4KTsKJiM0MzsKIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmFtcDtmYy0mZ3Q7dWFwaV9tdXRleCk7CiAJaWYgKHJldCA9PSAwKSB7CiAJCXJldCA9IHZmc19mc2NvbmZpZ19sb2NrZWQoZmMsIGNtZCwgJmFtcDtwYXJhbSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKaW5kZXggNDVhYmIzNzIyZDMwNGMuLjk3OGViODgxOTc0Yzg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9hdWRpdC5oCkBAIC00NDksNiAmIzQzOzQ0OSw4IEBAIGV4dGVybiB2b2lkIF9fYXVkaXRfdGtfaW5qb2Zmc2V0KHN0cnVjdCB0aW1lc3BlYzY0IG9mZnNldCk7CiBleHRlcm4gdm9pZCBfX2F1ZGl0X250cF9sb2coY29uc3Qgc3RydWN0IGF1ZGl0X250cF9kYXRhICphZCk7CiBleHRlcm4gdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLAogCQkJICAgICAgZW51bSBhdWRpdF9uZmNmZ29wIG9wLCBnZnBfdCBnZnApOwomIzQzO2V4dGVybiB2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSwKJiM0MzsJCQkJIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KTsKIAogc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2lwY19vYmooc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3ApCiB7CkBAIC01OTgsNiAmIzQzOzYwMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLAogCQlfX2F1ZGl0X2xvZ19uZmNmZyhuYW1lLCBhZiwgbmVudHJpZXMsIG9wLCBnZnApOwogfQogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksCiYjNDM7CQkJCSAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KQomIzQzO3sKJiM0MzsJaWYgKCFhdWRpdF9kdW1teV9jb250ZXh0KCkpCiYjNDM7CQlfX2F1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIGtleSwgdmFsdWUsIGF1eCk7CiYjNDM7fQomIzQzOwogZXh0ZXJuIGludCBhdWRpdF9uX3J1bGVzOwogZXh0ZXJuIGludCBhdWRpdF9zaWduYWxzOwogI2Vsc2UgLyogQ09ORklHX0FVRElUU1lTQ0FMTCAqLwpAQCAtNzMwLDYgJiM0Mzs3MzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwKIAkJCQkgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCkKIHsgfQogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksCiYjNDM7CQkJCSAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KQomIzQzO3sgfQomIzQzOwogI2RlZmluZSBhdWRpdF9uX3J1bGVzIDAKICNkZWZpbmUgYXVkaXRfc2lnbmFscyAwCiAjZW5kaWYgLyogQ09ORklHX0FVRElUU1lTQ0FMTCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaAppbmRleCBlOGY1Y2U2NzdkZjczNC4uNWNkMGViNjAyNTI4YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oCkBAIC0xMjIsNiAmIzQzOzEyMiw3IEBACiAjZGVmaW5lIEFVRElUX09QRU5BVDIJCTEzMzcJLyogUmVjb3JkIHNob3dpbmcgb3BlbmF0MiBob3cgYXJncyAqLwogI2RlZmluZSBBVURJVF9ETV9DVFJMCQkxMzM4CS8qIERldmljZSBNYXBwZXIgdGFyZ2V0IGNvbnRyb2wgKi8KICNkZWZpbmUgQVVESVRfRE1fRVZFTlQJCTEzMzkJLyogRGV2aWNlIE1hcHBlciBldmVudHMgKi8KJiM0MzsjZGVmaW5lIEFVRElUX0ZTQ09ORklHCQkxMzQxCS8qIFJlY29yZCBzaG93aW5nIGZzY29uZmlnIGFyZ3MgKi8KIAogI2RlZmluZSBBVURJVF9BVkMJCTE0MDAJLyogU0UgTGludXggYXZjIGRlbmlhbCBvciBncmFudCAqLwogI2RlZmluZSBBVURJVF9TRUxJTlVYX0VSUgkxNDAxCS8qIEludGVybmFsIFNFIExpbnV4IEVycm9ycyAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmMKaW5kZXggNjYxMGU2NjdjNzI4YWEuLjIyMmJmNzllZTliZGMxIDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXRzYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9hdWRpdHNjLmMKQEAgLTI4ODIsNiAmIzQzOzI4ODIsMzMgQEAgdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoX19hdWRpdF9sb2dfbmZjZmcpOwogCiYjNDM7dm9pZCBfX2F1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksCiYjNDM7CQkJICBjb25zdCBjaGFyICp2YWx1ZSwgaW50IGF1eCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBhdWRpdF9idWZmZXIgKmFiOwomIzQzOwomIzQzOwlhYiA9IGF1ZGl0X2xvZ19zdGFydChhdWRpdF9jb250ZXh0KCksIEdGUF9LRVJORUwsIEFVRElUX0ZTQ09ORklHKTsKJiM0MzsJaWYgKCFhYikKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDtmc19jbWQ9JXUmIzM0OywgY21kKTsKJiM0MzsJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDsgZnNfa2V5PSYjMzQ7KTsKJiM0MzsJaWYgKHZhbHVlKQomIzQzOwkJYXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwga2V5KTsKJiM0MzsJZWxzZQomIzQzOwkJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDsobnVsbCkmIzM0Oyk7CiYjNDM7CiYjNDM7CWF1ZGl0X2xvZ19mb3JtYXQoYWIsICYjMzQ7IGZzX3ZhbD0mIzM0Oyk7CiYjNDM7CWlmICh2YWx1ZSkKJiM0MzsJCWF1ZGl0X2xvZ191bnRydXN0ZWRzdHJpbmcoYWIsIHZhbHVlKTsKJiM0MzsJZWxzZQomIzQzOwkJYXVkaXRfbG9nX2Zvcm1hdChhYiwgJiMzNDsobnVsbCkmIzM0Oyk7CiYjNDM7CiYjNDM7CWF1ZGl0X2xvZ19mb3JtYXQoYWIsICYjMzQ7IGZzX2F1eD0lZCYjMzQ7LCBhdXgpOwomIzQzOwomIzQzOwlhdWRpdF9sb2dfZW5kKGFiKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBhdWRpdF9sb2dfdGFzayhzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYikKIHsKIAlrdWlkX3QgYXVpZCwgdWlkOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMyAyMjozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDM1CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogMTc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBmc2NvbmZpZ2AgQXVkaXQgTG9nZ2luZyBQYXRjaCoqCgpPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIHRoaXMgcGF0Y2ggaXMgc3RyYWlnaHRmb3J3YXJkLiBJdCYjMzk7cyBlc3NlbnRpYWxseSBpbnRyb2R1Y2luZyBhbiBhdWRpdCBsb2cgZm9yIHRoZSBgZnNjb25maWdgIHN5c2NhbGwuIFRoZSBjb3JlIG9mIGl0IGludm9sdmVzIG1vZGlmaWNhdGlvbnMgdG8gYGZzL2Zzb3Blbi5jYCwgd2hlcmUgdGhleSYjMzk7cmUgY2FsbGluZyBgYXVkaXRfbG9nX2ZzY29uZmlnYC4gVGhlbiwgb3ZlciBpbiBga2VybmVsL2F1ZGl0c2MuY2AsIHdlIGhhdmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBfX2F1ZGl0X2xvZ19mc2NvbmZpZ2AsIGFuZCB3ZSBjYW4gc2VlIHRoZSBkZWNsYXJhdGlvbiBvZiBgYXVkaXRfbG9nX2ZzY29uZmlnYCBpbiBgaW5jbHVkZS9saW51eC9hdWRpdC5oYC4gQW5kIGZpbmFsbHksIHRoZXkmIzM5O3ZlIGFkZGVkIGEgbmV3IGF1ZGl0IHR5cGUsIGBBVURJVF9GU0NPTkZJR2AsIGluIGBpbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaGAuCgpUaGUgY3J1Y2lhbCB0aGluZyBoZXJlLCB0aG91Z2gsIGlzIHRoYXQgdGhlIGRlc2NyaXB0aW9uIGNsYWltcyAqdGhlc2UgYXJlIHB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMqLiBJdCBzZWVtcyB0aGUgcGF0Y2ggZG9lc24mIzM5O3QgYWN0dWFsbHkgYWx0ZXIgdGhlIGZ1bmRhbWVudGFsIGJlaGF2aW9yIG9yIGxvZ2ljIG9mIHRoZSBgZnNjb25maWdgIHN5c2NhbGwgaW4gYW55IHdheS4gSXQmIzM5O3MganVzdCBhZGRpbmcgbG9nZ2luZy4gVGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljIG9mIHRoZSBgZnNjb25maWdgIGNhbGwuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBwYXRjaCBpcyBpc29sYXRlZCB0byBsb2dnaW5nLCBJIGNvbmNsdWRlIHRoYXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIEl0JiMzOTtzIGEgdXNlZnVsIGFkZGl0aW9uIGZvciBhdWRpdGluZyBhbmQgZGVidWdnaW5nLCBidXQgaXQmIzM5O3MgKm5vdCogaW50cm9kdWNpbmcgYW55IG5ldyBhdmVudWVzIGZvciBleHBsb2l0YXRpb24gb3IgbG9naWMgZXJyb3JzIHRoYXQgd291bGQgd2FycmFudCBmdXp6aW5nIHRoZSBhbHRlcmVkIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTMgMjI6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYXVkaXQgbG9nZ2luZyBmb3IgdGhlIGZzY29uZmlnIHN5c2NhbGwgYW5kIGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYXVkaXQgbG9nZ2luZyBmb3IgdGhlIGZzY29uZmlnIHN5c2NhbGwgYW5kIGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgY29yZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTNUMjI6MzU6MjkuODk1OTI0MTQ5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM5MTc4NDU5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTNUMjI6MzU6MjkuODk1OTMzMjE5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjgzODQ2NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwNDMwNGU3ZjdkNjk5YTM0Y2EwZTc2Njg4MWRmZmJhZGUwY2NmYTU2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDEzIDIyOjM1OjI4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2ZzL2Zzb3Blbi5jIGIvZnMvZnNvcGVuLmNcXG5pbmRleCBhZTE5ZTUxMzY1OTg2Zi4uOWIzYzAyZjU5ZGY0YmEgMTAwNjQ0XFxuLS0tIGEvZnMvZnNvcGVuLmNcXG4rKysgYi9mcy9mc29wZW4uY1xcbkBAIC0xNSw2ICsxNSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9uYW1laS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZmlsZS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjdWFwaS9saW51eC9tb3VudC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYXVkaXQuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImludGVybmFsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJtb3VudC5oXFxcIlxcbiBcXG5AQCAtMzU3LDYgKzM1OCw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZyxcXG4gXFx0c3RydWN0IGZzX2NvbnRleHQgKmZjO1xcbiBcXHRpbnQgcmV0O1xcbiBcXHRpbnQgbG9va3VwX2ZsYWdzID0gMDtcXG4rXFx0Y29uc3QgY2hhciAqdmFsdWVfc3RyID0gTlVMTDtcXG4gXFxuIFxcdHN0cnVjdCBmc19wYXJhbWV0ZXIgcGFyYW0gPSB7XFxuIFxcdFxcdC50eXBlXFx0PSBmc192YWx1ZV9pc191bmRlZmluZWQsXFxuQEAgLTQyMyw2ICs0MjUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXFxuIFxcdFxcdFxcdGdvdG8gb3V0X2tleTtcXG4gXFx0XFx0fVxcbiBcXHRcXHRwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLnN0cmluZyk7XFxuK1xcdFxcdHZhbHVlX3N0ciA9IHBhcmFtLnN0cmluZztcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgRlNDT05GSUdfU0VUX0JJTkFSWTpcXG4gXFx0XFx0cGFyYW0udHlwZSA9IGZzX3ZhbHVlX2lzX2Jsb2I7XFxuQEAgLTQzMiw2ICs0MzUsNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXFxuIFxcdFxcdFxcdHJldCA9IFBUUl9FUlIocGFyYW0uYmxvYik7XFxuIFxcdFxcdFxcdGdvdG8gb3V0X2tleTtcXG4gXFx0XFx0fVxcbitcXHRcXHR2YWx1ZV9zdHIgPSBcXFwiXFx1MDAzY2JpbmFyeVxcdTAwM2VcXFwiO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWTpcXG4gXFx0XFx0bG9va3VwX2ZsYWdzID0gTE9PS1VQX0VNUFRZO1xcbkBAIC00NDUsNiArNDQ5LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxcbiBcXHRcXHR9XFxuIFxcdFxcdHBhcmFtLmRpcmZkID0gYXV4O1xcbiBcXHRcXHRwYXJhbS5zaXplID0gc3RybGVuKHBhcmFtLm5hbWUtXFx1MDAzZW5hbWUpO1xcbitcXHRcXHR2YWx1ZV9zdHIgPSBwYXJhbS5uYW1lLVxcdTAwM2VuYW1lO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBGU0NPTkZJR19TRVRfRkQ6XFxuIFxcdFxcdHBhcmFtLnR5cGUgPSBmc192YWx1ZV9pc19maWxlO1xcbkBAIC00NTgsNiArNDYzLDggQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxcbiBcXHRcXHRicmVhaztcXG4gXFx0fVxcbiBcXG4rXFx0YXVkaXRfbG9nX2ZzY29uZmlnKGNtZCwgcGFyYW0ua2V5LCB2YWx1ZV9zdHIsIGF1eCk7XFxuK1xcbiBcXHRyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXFx1MDAyNmZjLVxcdTAwM2V1YXBpX211dGV4KTtcXG4gXFx0aWYgKHJldCA9PSAwKSB7XFxuIFxcdFxcdHJldCA9IHZmc19mc2NvbmZpZ19sb2NrZWQoZmMsIGNtZCwgXFx1MDAyNnBhcmFtKTtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oXFxuaW5kZXggNDVhYmIzNzIyZDMwNGMuLjk3OGViODgxOTc0Yzg4IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvYXVkaXQuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvYXVkaXQuaFxcbkBAIC00NDksNiArNDQ5LDggQEAgZXh0ZXJuIHZvaWQgX19hdWRpdF90a19pbmpvZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgb2Zmc2V0KTtcXG4gZXh0ZXJuIHZvaWQgX19hdWRpdF9udHBfbG9nKGNvbnN0IHN0cnVjdCBhdWRpdF9udHBfZGF0YSAqYWQpO1xcbiBleHRlcm4gdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLFxcbiBcXHRcXHRcXHQgICAgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCk7XFxuK2V4dGVybiB2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcXG4rXFx0XFx0XFx0XFx0IGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KTtcXG4gXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9pcGNfb2JqKHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwKVxcbiB7XFxuQEAgLTU5OCw2ICs2MDAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZixcXG4gXFx0XFx0X19hdWRpdF9sb2dfbmZjZmcobmFtZSwgYWYsIG5lbnRyaWVzLCBvcCwgZ2ZwKTtcXG4gfVxcbiBcXG4rc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXFxuK1xcdFxcdFxcdFxcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxcbit7XFxuK1xcdGlmICghYXVkaXRfZHVtbXlfY29udGV4dCgpKVxcbitcXHRcXHRfX2F1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIGtleSwgdmFsdWUsIGF1eCk7XFxuK31cXG4rXFxuIGV4dGVybiBpbnQgYXVkaXRfbl9ydWxlcztcXG4gZXh0ZXJuIGludCBhdWRpdF9zaWduYWxzO1xcbiAjZWxzZSAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXFxuQEAgLTczMCw2ICs3MzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZixcXG4gXFx0XFx0XFx0XFx0ICAgZW51bSBhdWRpdF9uZmNmZ29wIG9wLCBnZnBfdCBnZnApXFxuIHsgfVxcbiBcXG4rc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXFxuK1xcdFxcdFxcdFxcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxcbit7IH1cXG4rXFxuICNkZWZpbmUgYXVkaXRfbl9ydWxlcyAwXFxuICNkZWZpbmUgYXVkaXRfc2lnbmFscyAwXFxuICNlbmRpZiAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcXG5pbmRleCBlOGY1Y2U2NzdkZjczNC4uNWNkMGViNjAyNTI4YjIgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaFxcbkBAIC0xMjIsNiArMTIyLDcgQEBcXG4gI2RlZmluZSBBVURJVF9PUEVOQVQyXFx0XFx0MTMzN1xcdC8qIFJlY29yZCBzaG93aW5nIG9wZW5hdDIgaG93IGFyZ3MgKi9cXG4gI2RlZmluZSBBVURJVF9ETV9DVFJMXFx0XFx0MTMzOFxcdC8qIERldmljZSBNYXBwZXIgdGFyZ2V0IGNvbnRyb2wgKi9cXG4gI2RlZmluZSBBVURJVF9ETV9FVkVOVFxcdFxcdDEzMzlcXHQvKiBEZXZpY2UgTWFwcGVyIGV2ZW50cyAqL1xcbisjZGVmaW5lIEFVRElUX0ZTQ09ORklHXFx0XFx0MTM0MVxcdC8qIFJlY29yZCBzaG93aW5nIGZzY29uZmlnIGFyZ3MgKi9cXG4gXFxuICNkZWZpbmUgQVVESVRfQVZDXFx0XFx0MTQwMFxcdC8qIFNFIExpbnV4IGF2YyBkZW5pYWwgb3IgZ3JhbnQgKi9cXG4gI2RlZmluZSBBVURJVF9TRUxJTlVYX0VSUlxcdDE0MDFcXHQvKiBJbnRlcm5hbCBTRSBMaW51eCBFcnJvcnMgKi9cXG5kaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmNcXG5pbmRleCA2NjEwZTY2N2M3MjhhYS4uMjIyYmY3OWVlOWJkYzEgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2F1ZGl0c2MuY1xcbisrKyBiL2tlcm5lbC9hdWRpdHNjLmNcXG5AQCAtMjg4Miw2ICsyODgyLDMzIEBAIHZvaWQgX19hdWRpdF9sb2dfbmZjZmcoY29uc3QgY2hhciAqbmFtZSwgdTggYWYsIHVuc2lnbmVkIGludCBuZW50cmllcyxcXG4gfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChfX2F1ZGl0X2xvZ19uZmNmZyk7XFxuIFxcbit2b2lkIF9fYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcXG4rXFx0XFx0XFx0ICBjb25zdCBjaGFyICp2YWx1ZSwgaW50IGF1eClcXG4re1xcbitcXHRzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYjtcXG4rXFxuK1xcdGFiID0gYXVkaXRfbG9nX3N0YXJ0KGF1ZGl0X2NvbnRleHQoKSwgR0ZQX0tFUk5FTCwgQVVESVRfRlNDT05GSUcpO1xcbitcXHRpZiAoIWFiKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbitcXHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcXFwiZnNfY21kPSV1XFxcIiwgY21kKTtcXG4rXFx0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXFxcIiBmc19rZXk9XFxcIik7XFxuK1xcdGlmICh2YWx1ZSlcXG4rXFx0XFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwga2V5KTtcXG4rXFx0ZWxzZVxcbitcXHRcXHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcXFwiKG51bGwpXFxcIik7XFxuK1xcbitcXHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcXFwiIGZzX3ZhbD1cXFwiKTtcXG4rXFx0aWYgKHZhbHVlKVxcbitcXHRcXHRhdWRpdF9sb2dfdW50cnVzdGVkc3RyaW5nKGFiLCB2YWx1ZSk7XFxuK1xcdGVsc2VcXG4rXFx0XFx0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXFxcIihudWxsKVxcXCIpO1xcbitcXG4rXFx0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXFxcIiBmc19hdXg9JWRcXFwiLCBhdXgpO1xcbitcXG4rXFx0YXVkaXRfbG9nX2VuZChhYik7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ190YXNrKHN0cnVjdCBhdWRpdF9idWZmZXIgKmFiKVxcbiB7XFxuIFxcdGt1aWRfdCBhdWlkLCB1aWQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDIyOjM1OjMwLjU2NTMwMjE0M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcyMjM5NjIzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNDMwNGU3ZjdkNjk5YTM0Y2EwZTc2Njg4MWRmZmJhZGUwY2NmYTU2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMTMgMjI6MzU6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9mc29wZW4uYyBiL2ZzL2Zzb3Blbi5jXG5pbmRleCBhZTE5ZTUxMzY1OTg2Zi4uOWIzYzAyZjU5ZGY0YmEgMTAwNjQ0XG4tLS0gYS9mcy9mc29wZW4uY1xuKysrIGIvZnMvZnNvcGVuLmNcbkBAIC0xNSw2ICsxNSw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbmFtZWkuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2ZpbGUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY3VhcGkvbGludXgvbW91bnQuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2F1ZGl0LmhcdTAwM2VcbiAjaW5jbHVkZSBcImludGVybmFsLmhcIlxuICNpbmNsdWRlIFwibW91bnQuaFwiXG4gXG5AQCAtMzU3LDYgKzM1OCw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZyxcbiBcdHN0cnVjdCBmc19jb250ZXh0ICpmYztcbiBcdGludCByZXQ7XG4gXHRpbnQgbG9va3VwX2ZsYWdzID0gMDtcbitcdGNvbnN0IGNoYXIgKnZhbHVlX3N0ciA9IE5VTEw7XG4gXG4gXHRzdHJ1Y3QgZnNfcGFyYW1ldGVyIHBhcmFtID0ge1xuIFx0XHQudHlwZVx0PSBmc192YWx1ZV9pc191bmRlZmluZWQsXG5AQCAtNDIzLDYgKzQyNSw3IEBAIFNZU0NBTExfREVGSU5FNShmc2NvbmZpZyxcbiBcdFx0XHRnb3RvIG91dF9rZXk7XG4gXHRcdH1cbiBcdFx0cGFyYW0uc2l6ZSA9IHN0cmxlbihwYXJhbS5zdHJpbmcpO1xuK1x0XHR2YWx1ZV9zdHIgPSBwYXJhbS5zdHJpbmc7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfQklOQVJZOlxuIFx0XHRwYXJhbS50eXBlID0gZnNfdmFsdWVfaXNfYmxvYjtcbkBAIC00MzIsNiArNDM1LDcgQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRcdHJldCA9IFBUUl9FUlIocGFyYW0uYmxvYik7XG4gXHRcdFx0Z290byBvdXRfa2V5O1xuIFx0XHR9XG4rXHRcdHZhbHVlX3N0ciA9IFwiXHUwMDNjYmluYXJ5XHUwMDNlXCI7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBGU0NPTkZJR19TRVRfUEFUSF9FTVBUWTpcbiBcdFx0bG9va3VwX2ZsYWdzID0gTE9PS1VQX0VNUFRZO1xuQEAgLTQ0NSw2ICs0NDksNyBAQCBTWVNDQUxMX0RFRklORTUoZnNjb25maWcsXG4gXHRcdH1cbiBcdFx0cGFyYW0uZGlyZmQgPSBhdXg7XG4gXHRcdHBhcmFtLnNpemUgPSBzdHJsZW4ocGFyYW0ubmFtZS1cdTAwM2VuYW1lKTtcbitcdFx0dmFsdWVfc3RyID0gcGFyYW0ubmFtZS1cdTAwM2VuYW1lO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgRlNDT05GSUdfU0VUX0ZEOlxuIFx0XHRwYXJhbS50eXBlID0gZnNfdmFsdWVfaXNfZmlsZTtcbkBAIC00NTgsNiArNDYzLDggQEAgU1lTQ0FMTF9ERUZJTkU1KGZzY29uZmlnLFxuIFx0XHRicmVhaztcbiBcdH1cbiBcbitcdGF1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIHBhcmFtLmtleSwgdmFsdWVfc3RyLCBhdXgpO1xuK1xuIFx0cmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKFx1MDAyNmZjLVx1MDAzZXVhcGlfbXV0ZXgpO1xuIFx0aWYgKHJldCA9PSAwKSB7XG4gXHRcdHJldCA9IHZmc19mc2NvbmZpZ19sb2NrZWQoZmMsIGNtZCwgXHUwMDI2cGFyYW0pO1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXVkaXQuaCBiL2luY2x1ZGUvbGludXgvYXVkaXQuaFxuaW5kZXggNDVhYmIzNzIyZDMwNGMuLjk3OGViODgxOTc0Yzg4IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9hdWRpdC5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L2F1ZGl0LmhcbkBAIC00NDksNiArNDQ5LDggQEAgZXh0ZXJuIHZvaWQgX19hdWRpdF90a19pbmpvZmZzZXQoc3RydWN0IHRpbWVzcGVjNjQgb2Zmc2V0KTtcbiBleHRlcm4gdm9pZCBfX2F1ZGl0X250cF9sb2coY29uc3Qgc3RydWN0IGF1ZGl0X250cF9kYXRhICphZCk7XG4gZXh0ZXJuIHZvaWQgX19hdWRpdF9sb2dfbmZjZmcoY29uc3QgY2hhciAqbmFtZSwgdTggYWYsIHVuc2lnbmVkIGludCBuZW50cmllcyxcbiBcdFx0XHQgICAgICBlbnVtIGF1ZGl0X25mY2Znb3Agb3AsIGdmcF90IGdmcCk7XG4rZXh0ZXJuIHZvaWQgX19hdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuK1x0XHRcdFx0IGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KTtcbiBcbiBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfaXBjX29iaihzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcClcbiB7XG5AQCAtNTk4LDYgKzYwMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX25mY2ZnKGNvbnN0IGNoYXIgKm5hbWUsIHU4IGFmLFxuIFx0XHRfX2F1ZGl0X2xvZ19uZmNmZyhuYW1lLCBhZiwgbmVudHJpZXMsIG9wLCBnZnApO1xuIH1cbiBcbitzdGF0aWMgaW5saW5lIHZvaWQgYXVkaXRfbG9nX2ZzY29uZmlnKHVuc2lnbmVkIGludCBjbWQsIGNvbnN0IGNoYXIgKmtleSxcbitcdFx0XHRcdCAgICAgIGNvbnN0IGNoYXIgKnZhbHVlLCBpbnQgYXV4KVxuK3tcbitcdGlmICghYXVkaXRfZHVtbXlfY29udGV4dCgpKVxuK1x0XHRfX2F1ZGl0X2xvZ19mc2NvbmZpZyhjbWQsIGtleSwgdmFsdWUsIGF1eCk7XG4rfVxuK1xuIGV4dGVybiBpbnQgYXVkaXRfbl9ydWxlcztcbiBleHRlcm4gaW50IGF1ZGl0X3NpZ25hbHM7XG4gI2Vsc2UgLyogQ09ORklHX0FVRElUU1lTQ0FMTCAqL1xuQEAgLTczMCw2ICs3MzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGF1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZixcbiBcdFx0XHRcdCAgIGVudW0gYXVkaXRfbmZjZmdvcCBvcCwgZ2ZwX3QgZ2ZwKVxuIHsgfVxuIFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBhdWRpdF9sb2dfZnNjb25maWcodW5zaWduZWQgaW50IGNtZCwgY29uc3QgY2hhciAqa2V5LFxuK1x0XHRcdFx0ICAgICAgY29uc3QgY2hhciAqdmFsdWUsIGludCBhdXgpXG4reyB9XG4rXG4gI2RlZmluZSBhdWRpdF9uX3J1bGVzIDBcbiAjZGVmaW5lIGF1ZGl0X3NpZ25hbHMgMFxuICNlbmRpZiAvKiBDT05GSUdfQVVESVRTWVNDQUxMICovXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmggYi9pbmNsdWRlL3VhcGkvbGludXgvYXVkaXQuaFxuaW5kZXggZThmNWNlNjc3ZGY3MzQuLjVjZDBlYjYwMjUyOGIyIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2F1ZGl0LmhcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oXG5AQCAtMTIyLDYgKzEyMiw3IEBAXG4gI2RlZmluZSBBVURJVF9PUEVOQVQyXHRcdDEzMzdcdC8qIFJlY29yZCBzaG93aW5nIG9wZW5hdDIgaG93IGFyZ3MgKi9cbiAjZGVmaW5lIEFVRElUX0RNX0NUUkxcdFx0MTMzOFx0LyogRGV2aWNlIE1hcHBlciB0YXJnZXQgY29udHJvbCAqL1xuICNkZWZpbmUgQVVESVRfRE1fRVZFTlRcdFx0MTMzOVx0LyogRGV2aWNlIE1hcHBlciBldmVudHMgKi9cbisjZGVmaW5lIEFVRElUX0ZTQ09ORklHXHRcdDEzNDFcdC8qIFJlY29yZCBzaG93aW5nIGZzY29uZmlnIGFyZ3MgKi9cbiBcbiAjZGVmaW5lIEFVRElUX0FWQ1x0XHQxNDAwXHQvKiBTRSBMaW51eCBhdmMgZGVuaWFsIG9yIGdyYW50ICovXG4gI2RlZmluZSBBVURJVF9TRUxJTlVYX0VSUlx0MTQwMVx0LyogSW50ZXJuYWwgU0UgTGludXggRXJyb3JzICovXG5kaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmNcbmluZGV4IDY2MTBlNjY3YzcyOGFhLi4yMjJiZjc5ZWU5YmRjMSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9hdWRpdHNjLmNcbisrKyBiL2tlcm5lbC9hdWRpdHNjLmNcbkBAIC0yODgyLDYgKzI4ODIsMzMgQEAgdm9pZCBfX2F1ZGl0X2xvZ19uZmNmZyhjb25zdCBjaGFyICpuYW1lLCB1OCBhZiwgdW5zaWduZWQgaW50IG5lbnRyaWVzLFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChfX2F1ZGl0X2xvZ19uZmNmZyk7XG4gXG4rdm9pZCBfX2F1ZGl0X2xvZ19mc2NvbmZpZyh1bnNpZ25lZCBpbnQgY21kLCBjb25zdCBjaGFyICprZXksXG4rXHRcdFx0ICBjb25zdCBjaGFyICp2YWx1ZSwgaW50IGF1eClcbit7XG4rXHRzdHJ1Y3QgYXVkaXRfYnVmZmVyICphYjtcbitcbitcdGFiID0gYXVkaXRfbG9nX3N0YXJ0KGF1ZGl0X2NvbnRleHQoKSwgR0ZQX0tFUk5FTCwgQVVESVRfRlNDT05GSUcpO1xuK1x0aWYgKCFhYilcbitcdFx0cmV0dXJuO1xuK1xuK1x0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXCJmc19jbWQ9JXVcIiwgY21kKTtcbitcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwiIGZzX2tleT1cIik7XG4rXHRpZiAodmFsdWUpXG4rXHRcdGF1ZGl0X2xvZ191bnRydXN0ZWRzdHJpbmcoYWIsIGtleSk7XG4rXHRlbHNlXG4rXHRcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwiKG51bGwpXCIpO1xuK1xuK1x0YXVkaXRfbG9nX2Zvcm1hdChhYiwgXCIgZnNfdmFsPVwiKTtcbitcdGlmICh2YWx1ZSlcbitcdFx0YXVkaXRfbG9nX3VudHJ1c3RlZHN0cmluZyhhYiwgdmFsdWUpO1xuK1x0ZWxzZVxuK1x0XHRhdWRpdF9sb2dfZm9ybWF0KGFiLCBcIihudWxsKVwiKTtcbitcbitcdGF1ZGl0X2xvZ19mb3JtYXQoYWIsIFwiIGZzX2F1eD0lZFwiLCBhdXgpO1xuK1xuK1x0YXVkaXRfbG9nX2VuZChhYik7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ190YXNrKHN0cnVjdCBhdWRpdF9idWZmZXIgKmFiKVxuIHtcbiBcdGt1aWRfdCBhdWlkLCB1aWQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xM1QyMjozNTozMC41NjUzMDQyNzNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzIyMzYxMTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBmc2NvbmZpZ2AgQXVkaXQgTG9nZ2luZyBQYXRjaCoqXG5cbk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgdGhpcyBwYXRjaCBpcyBzdHJhaWdodGZvcndhcmQuIEl0J3MgZXNzZW50aWFsbHkgaW50cm9kdWNpbmcgYW4gYXVkaXQgbG9nIGZvciB0aGUgYGZzY29uZmlnYCBzeXNjYWxsLiBUaGUgY29yZSBvZiBpdCBpbnZvbHZlcyBtb2RpZmljYXRpb25zIHRvIGBmcy9mc29wZW4uY2AsIHdoZXJlIHRoZXkncmUgY2FsbGluZyBgYXVkaXRfbG9nX2ZzY29uZmlnYC4gVGhlbiwgb3ZlciBpbiBga2VybmVsL2F1ZGl0c2MuY2AsIHdlIGhhdmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBfX2F1ZGl0X2xvZ19mc2NvbmZpZ2AsIGFuZCB3ZSBjYW4gc2VlIHRoZSBkZWNsYXJhdGlvbiBvZiBgYXVkaXRfbG9nX2ZzY29uZmlnYCBpbiBgaW5jbHVkZS9saW51eC9hdWRpdC5oYC4gQW5kIGZpbmFsbHksIHRoZXkndmUgYWRkZWQgYSBuZXcgYXVkaXQgdHlwZSwgYEFVRElUX0ZTQ09ORklHYCwgaW4gYGluY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oYC5cblxuVGhlIGNydWNpYWwgdGhpbmcgaGVyZSwgdGhvdWdoLCBpcyB0aGF0IHRoZSBkZXNjcmlwdGlvbiBjbGFpbXMgKnRoZXNlIGFyZSBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzKi4gSXQgc2VlbXMgdGhlIHBhdGNoIGRvZXNuJ3QgYWN0dWFsbHkgYWx0ZXIgdGhlIGZ1bmRhbWVudGFsIGJlaGF2aW9yIG9yIGxvZ2ljIG9mIHRoZSBgZnNjb25maWdgIHN5c2NhbGwgaW4gYW55IHdheS4gSXQncyBqdXN0IGFkZGluZyBsb2dnaW5nLiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgY29yZSBrZXJuZWwgbG9naWMgb2YgdGhlIGBmc2NvbmZpZ2AgY2FsbC5cblxuVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgcGF0Y2ggaXMgaXNvbGF0ZWQgdG8gbG9nZ2luZywgSSBjb25jbHVkZSB0aGF0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCdzIGEgdXNlZnVsIGFkZGl0aW9uIGZvciBhdWRpdGluZyBhbmQgZGVidWdnaW5nLCBidXQgaXQncyAqbm90KiBpbnRyb2R1Y2luZyBhbnkgbmV3IGF2ZW51ZXMgZm9yIGV4cGxvaXRhdGlvbiBvciBsb2dpYyBlcnJvcnMgdGhhdCB3b3VsZCB3YXJyYW50IGZ1enppbmcgdGhlIGFsdGVyZWQgY29kZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQzNSwiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEzVDIyOjM1OjM1LjI4NzY2ODMzMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgyNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGF1ZGl0IGxvZ2dpbmcgZm9yIHRoZSBmc2NvbmZpZyBzeXNjYWxsIGFuZCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGNvcmUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflows5h8t[1] Phase: Running StartedAt: 2026-07-13 22:35:47 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflows5h8t[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-13 22:35:47 +0000 UTC FinishedAt: 2026-07-13 22:35:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}