R2l0IGNvbW1pdCA4NWJhNTRlZmJjMjEyNmVlZjE4ODk5MDkyNjBmMjE4YTkyNGY0MWE1IGJ5IEJv dWRld2lqbiBSZW1wdCwgb24gYmVoYWxmIG9mIERtaXRyeSBLYXpha292LgpDb21taXR0ZWQgb24g MDMvMDkvMjAxNSBhdCAxNDoyOS4KUHVzaGVkIGJ5IHJlbXB0IGludG8gYnJhbmNoICdtYXN0ZXIn LgoKRml4IHNhdmluZyBQU0Qgd2hlbiB0aGUgaW1hZ2UgaGFzIGEgbm9uLXRyYW5zcGFyZW50IGJh Y2tncm91bmQKCldoZW4gS3JpdGEgZmlsZSBoYXMgYSBub24tdHJhbnNwYXJlbnQgYmFja2dyb3Vu ZCBhIHNwZWNpYWwgYmFja2dyb3VuZCBsYXllcgp3aWxsIGJlIGNyZWF0ZWQgd2hpbGUgc2F2aW5n IHRvIFBTRAoKRml4ZXMgVDU5MApDQzpraW1hZ2VzaG9wQGtkZS5vcmcKCk0gICsyOCAgIC0wICAg IGtyaXRhL3BsdWdpbnMvZm9ybWF0cy9wc2QvcHNkX2xheWVyX3NlY3Rpb24uY3BwCgpodHRwOi8v Y29tbWl0cy5rZGUub3JnL2NhbGxpZ3JhLzg1YmE1NGVmYmMyMTI2ZWVmMTg4OTkwOTI2MGYyMThh OTI0ZjQxYTUKCmRpZmYgLS1naXQgYS9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvcHNkL3BzZF9sYXll cl9zZWN0aW9uLmNwcCBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9wc2QvcHNkX2xheWVyX3NlY3Rp b24uY3BwCmluZGV4IDVhOGVlYTAuLjg4YmYxMDkgMTAwNjQ0Ci0tLSBhL2tyaXRhL3BsdWdpbnMv Zm9ybWF0cy9wc2QvcHNkX2xheWVyX3NlY3Rpb24uY3BwCisrKyBiL2tyaXRhL3BsdWdpbnMvZm9y bWF0cy9wc2QvcHNkX2xheWVyX3NlY3Rpb24uY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNs dWRlIDxRSU9EZXZpY2U+CiAKKyNpbmNsdWRlIDxLb0NvbG9yLmg+CiAjaW5jbHVkZSA8S29Db2xv clNwYWNlLmg+CiAKICNpbmNsdWRlIDxraXNfZGVidWcuaD4KQEAgLTI4LDYgKzI5LDggQEAKICNp bmNsdWRlIDxraXNfcGFpbnRfbGF5ZXIuaD4KICNpbmNsdWRlIDxraXNfZ3JvdXBfbGF5ZXIuaD4K ICNpbmNsdWRlIDxraXNfZWZmZWN0X21hc2suaD4KKyNpbmNsdWRlIDxraXNfaW1hZ2UuaD4KKwog CiAjaW5jbHVkZSAia2lzX2RvbV91dGlscy5oIgogCkBAIC0zMDAsNiArMzAzLDMwIEBAIHN0cnVj dCBGbGF0dGVuZWROb2RlIHsKICAgICBUeXBlIHR5cGU7CiB9OwogCit2b2lkIGFkZEJhY2tncm91 bmRJZk5lZWRlZChLaXNOb2RlU1Agcm9vdCwgUUxpc3Q8RmxhdHRlbmVkTm9kZT4gJm5vZGVzKQor eworICAgIEtpc0dyb3VwTGF5ZXIgKmdyb3VwID0gZHluYW1pY19jYXN0PEtpc0dyb3VwTGF5ZXIq Pihyb290LmRhdGEoKSk7CisgICAgaWYgKCFncm91cCkgcmV0dXJuOworCisgICAgS29Db2xvciBw cm9qZWN0aW9uQ29sb3IgPSBncm91cC0+ZGVmYXVsdFByb2plY3Rpb25Db2xvcigpOworICAgIGlm IChwcm9qZWN0aW9uQ29sb3Iub3BhY2l0eVU4KCkgPT0gT1BBQ0lUWV9UUkFOU1BBUkVOVF9VOCkg cmV0dXJuOworCisgICAgS2lzUGFpbnRMYXllclNQIGxheWVyID0KKyAgICAgICAgbmV3IEtpc1Bh aW50TGF5ZXIoZ3JvdXAtPmltYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG5j KCJBdXRvbWF0aWNhbGx5IGNyZWF0ZWQgbGF5ZXIgbmFtZSB3aGVuIHNhdmluZyBpbnRvIFBTRCIs ICJCYWNrZ3JvdW5kIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgIE9QQUNJVFlfT1BBUVVF X1U4KTsKKworICAgIHByb2plY3Rpb25Db2xvci5jb252ZXJ0VG8obGF5ZXItPnBhaW50RGV2aWNl KCktPmNvbG9yU3BhY2UoKSk7CisgICAgbGF5ZXItPnBhaW50RGV2aWNlKCktPnNldERlZmF1bHRQ aXhlbChwcm9qZWN0aW9uQ29sb3IuZGF0YSgpKTsKKworICAgIHsKKyAgICAgICAgRmxhdHRlbmVk Tm9kZSBpdGVtOworICAgICAgICBpdGVtLm5vZGUgPSBsYXllcjsKKyAgICAgICAgaXRlbS50eXBl ID0gRmxhdHRlbmVkTm9kZTo6UkFTVEVSX0xBWUVSOworICAgICAgICBub2RlcyA8PCBpdGVtOwor ICAgIH0KK30KKwogdm9pZCBmbGF0dGVuTm9kZXMoS2lzTm9kZVNQIG5vZGUsIFFMaXN0PEZsYXR0 ZW5lZE5vZGU+ICZub2RlcykKIHsKICAgICBLaXNOb2RlU1AgY2hpbGQgPSBub2RlLT5maXJzdENo aWxkKCk7CkBAIC00MTQsNiArNDQxLDcgQEAgdm9pZCBQU0RMYXllck1hc2tTZWN0aW9uOjp3cml0 ZUltcGwoUUlPRGV2aWNlKiBpbywgS2lzTm9kZVNQIHJvb3RMYXllcikKIAogICAgIC8vIEJ1aWxk IHRoZSB3aG9sZSBsYXllciBzdHJ1Y3R1cmUKICAgICBRTGlzdDxGbGF0dGVuZWROb2RlPiBub2Rl czsKKyAgICBhZGRCYWNrZ3JvdW5kSWZOZWVkZWQocm9vdExheWVyLCBub2Rlcyk7CiAgICAgZmxh dHRlbk5vZGVzKHJvb3RMYXllciwgbm9kZXMpOwogCiAgICAgaWYgKG5vZGVzLmlzRW1wdHkoKSkg ewoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KS3JpdGEg bWFpbGluZyBsaXN0CmtpbWFnZXNob3BAa2RlLm9yZwpodHRwczovL21haWwua2RlLm9yZy9tYWls bWFuL2xpc3RpbmZvL2tpbWFnZXNob3AK