ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xjbXMvc3JjL2Ntc3hmb3JtLmMgYi90aGlyZF9wYXJ0eS9sY21zL3NyYy9jbXN4Zm9ybS5jCmluZGV4IDZiMjk1MGU0ZS4uNTA4MTE3YmQzIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9sY21zL3NyYy9jbXN4Zm9ybS5jCisrKyBiL3RoaXJkX3BhcnR5L2xjbXMvc3JjL2Ntc3hmb3JtLmMKQEAgLTM0MSw3ICszNDEsNyBAQCB2b2lkIE51bGxGbG9hdFhGT1JNKF9jbXNUUkFOU0ZPUk0qIHAsCiAKIC8vIDE2IGJpdCBwcmVjaXNpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLy8gTnVsbCB0cmFuc2Zvcm1hdGlvbiwgb25seSBhcHBsaWVzIGZvcm1hdHRlcnMuIE5vIGNhY2jpCisvLyBOdWxsIHRyYW5zZm9ybWF0aW9uLCBvbmx5IGFwcGxpZXMgZm9ybWF0dGVycy4gTm8gY2FjaGUKIHN0YXRpYwogdm9pZCBOdWxsWEZPUk0oX2Ntc1RSQU5TRk9STSogcCwKICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIGluLApAQCAtNDQyLDcgKzQ0Miw3IEBAIHZvaWQgVHJhbnNmb3JtT25lUGl4ZWxXaXRoR2FtdXRDaGVjayhfY21zVFJBTlNGT1JNKiBwLAogICAgICAgICBwIC0+THV0IC0+RXZhbDE2Rm4od0luLCB3T3V0LCBwIC0+IEx1dC0+RGF0YSk7CiB9CiAKLS8vIEdhbXV0IGNoZWNrLCBObyBjYWNo6SwgMTYgYml0cy4KKy8vIEdhbXV0IGNoZWNrLCBObyBjYWNoZSwgMTYgYml0cy4KIHN0YXRpYwogdm9pZCBQcmVjYWxjdWxhdGVkWEZPUk1HYW11dENoZWNrKF9jbXNUUkFOU0ZPUk0qIHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCogaW4sCkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBQcmVjYWxjdWxhdGVkWEZPUk1HYW11dENoZWNrKF9jbXNUUkFOU0ZPUk0qIHAsCiB9CiAKIAotLy8gTm8gZ2FtdXQgY2hlY2ssIENhY2jpLCAxNiBiaXRzLAorLy8gTm8gZ2FtdXQgY2hlY2ssIENhY2hlLCAxNiBiaXRzLAogc3RhdGljCiB2b2lkIENhY2hlZFhGT1JNKF9jbXNUUkFOU0ZPUk0qIHAsCiAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIGluLApAQCAtODM5LDcgKzgzOSw3IEBAIF9jbXNUUkFOU0ZPUk0qIEFsbG9jRW1wdHlUcmFuc2Zvcm0oY21zQ29udGV4dCBDb250ZXh0SUQsIGNtc1BpcGVsaW5lKiBsdXQsCiAgICAgICAgICAgICBwIC0+eGZvcm0gPSBOdWxsRmxvYXRYRk9STTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIEZsb2F0IHRyYW5zZm9ybXMgZG9uJ3QgdXNlIGNhY2jpLCBhbHdheXMgYXJlIG5vbi1OVUxMCisgICAgICAgICAgICAvLyBGbG9hdCB0cmFuc2Zvcm1zIGRvbid0IHVzZSBjYWNoZSwgYWx3YXlzIGFyZSBub24tTlVMTAogICAgICAgICAgICAgcCAtPnhmb3JtID0gRmxvYXRYRk9STTsKICAgICAgICAgfQogCkBAIC04NzgsMTYgKzg3OCwxNiBAQCBfY21zVFJBTlNGT1JNKiBBbGxvY0VtcHR5VHJhbnNmb3JtKGNtc0NvbnRleHQgQ29udGV4dElELCBjbXNQaXBlbGluZSogbHV0LAogICAgICAgICAgICAgaWYgKCpkd0ZsYWdzICYgY21zRkxBR1NfTk9DQUNIRSkgewogCiAgICAgICAgICAgICAgICAgaWYgKCpkd0ZsYWdzICYgY21zRkxBR1NfR0FNVVRDSEVDSykKLSAgICAgICAgICAgICAgICAgICAgcCAtPnhmb3JtID0gUHJlY2FsY3VsYXRlZFhGT1JNR2FtdXRDaGVjazsgIC8vIEdhbXV0IGNoZWNrLCBubyBjYWNo6QorICAgICAgICAgICAgICAgICAgICBwIC0+eGZvcm0gPSBQcmVjYWxjdWxhdGVkWEZPUk1HYW11dENoZWNrOyAgLy8gR2FtdXQgY2hlY2ssIG5vIGNhY2hlCiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwIC0+eGZvcm0gPSBQcmVjYWxjdWxhdGVkWEZPUk07ICAvLyBObyBjYWNo6Swgbm8gZ2FtdXQgY2hlY2sKKyAgICAgICAgICAgICAgICAgICAgcCAtPnhmb3JtID0gUHJlY2FsY3VsYXRlZFhGT1JNOyAgLy8gTm8gY2FjaGUsIG5vIGdhbXV0IGNoZWNrCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKIAogICAgICAgICAgICAgICAgIGlmICgqZHdGbGFncyAmIGNtc0ZMQUdTX0dBTVVUQ0hFQ0spCi0gICAgICAgICAgICAgICAgICAgIHAgLT54Zm9ybSA9IENhY2hlZFhGT1JNR2FtdXRDaGVjazsgICAgLy8gR2FtdXQgY2hlY2ssIGNhY2jpCisgICAgICAgICAgICAgICAgICAgIHAgLT54Zm9ybSA9IENhY2hlZFhGT1JNR2FtdXRDaGVjazsgICAgLy8gR2FtdXQgY2hlY2ssIGNhY2hlCiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwIC0+eGZvcm0gPSBDYWNoZWRYRk9STTsgIC8vIE5vIGdhbXV0IGNoZWNrLCBjYWNo6QorICAgICAgICAgICAgICAgICAgICBwIC0+eGZvcm0gPSBDYWNoZWRYRk9STTsgIC8vIE5vIGdhbXV0IGNoZWNrLCBjYWNoZQogCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K