ZGlmZiAtLWdpdCBhL2NwdS9pMzg2L01ha2VmaWxlIGIvY3B1L2kzODYvTWFrZWZpbGUKaW5kZXggY2Q0NmRlYS4uMTI0NWNmMCAxMDA2NDQKLS0tIGEvY3B1L2kzODYvTWFrZWZpbGUKKysrIGIvY3B1L2kzODYvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiAjCiAjIChDKSBDb3B5cmlnaHQgMjAwNgogIyBXb2xmZ2FuZyBEZW5rLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVyaW5nLCB3ZEBkZW54LmRlLgotIyAKKyMKICMgKEMpIENvcHlyaWdodCAyMDAyCiAjIERhbmllbCBFbmdzdHL2bSwgT21pY3JvbiBDZXRpIEFCLCBkYW5pZWxAb21pY3Jvbi5zZS4KICMKZGlmZiAtLWdpdCBhL2NwdS9tcGM1eHh4L2ludGVycnVwdHMuYyBiL2NwdS9tcGM1eHh4L2ludGVycnVwdHMuYwppbmRleCA3YjVjYjhiLi5iZWViMjIyIDEwMDY0NAotLS0gYS9jcHUvbXBjNXh4eC9pbnRlcnJ1cHRzLmMKKysrIGIvY3B1L21wYzV4eHgvaW50ZXJydXB0cy5jCkBAIC0zMiw3ICszMiw3IEBACiAgKgogICogQmFzZWQgb24gKHdlbGwsIG1vc3RseSBjb3BpZWQgZnJvbSkgdGhlIGNvZGUgZnJvbSB0aGUgMi40IGtlcm5lbCBieQogICogRGFsZSBGYXJuc3dvcnRoIDxkZmFybnN3b3J0aEBtdmlzdGEuY29tPiBhbmQgS2VudCBCb3JnLgotICogCisgKgogICogQ29weXJpZ2h0IChDKSAyMDA0IFN5bHZhaW4gTXVuYXV0IDx0bnRAMjQ2dE50LmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwMyBNb250YXZpc3RhIFNvZnR3YXJlLCBJbmMKICAqLwpkaWZmIC0tZ2l0IGEvY3B1L21wYzgzeHgvTWFrZWZpbGUgYi9jcHUvbXBjODN4eC9NYWtlZmlsZQppbmRleCBmM2ZhNmZkLi44NWUzMmUxIDEwMDY0NAotLS0gYS9jcHUvbXBjODN4eC9NYWtlZmlsZQorKysgYi9jcHUvbXBjODN4eC9NYWtlZmlsZQpAQCAtMSw3ICsxLDcgQEAKICMKICMgKEMpIENvcHlyaWdodCAyMDA2CiAjIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5lZXJpbmcsIHdkQGRlbnguZGUuCi0jIAorIwogIyBDb3B5cmlnaHQgMjAwNCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgogIwogIyBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcwpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9uZGZjLmMgYi9jcHUvcHBjNHh4L25kZmMuYwppbmRleCBjMjU1ZjkzLi4xODNhYjVlIDEwMDY0NAotLS0gYS9jcHUvcHBjNHh4L25kZmMuYworKysgYi9jcHUvcHBjNHh4L25kZmMuYwpAQCAtNjUsOCArNjUsOCBAQAogCiBzdGF0aWMgdm9pZCBuZGZjX3dyaXRlX2J5dGUoc3RydWN0IG10ZF9pbmZvICptdGRpbmZvLCB1X2NoYXIgYnl0ZSkKIHsKLSAgICAgICAgc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0gICAgICAgIHVsb25nIGJhc2UgPSAodWxvbmcpIHRoaXMtPklPX0FERFJfVzsKKwlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKKwl1bG9uZyBiYXNlID0gKHVsb25nKSB0aGlzLT5JT19BRERSX1c7CiAKIAlpZiAoaHdjdGwgJiAweDEpCiAJCW91dDgoYmFzZSArIE5ERkNfQ01ELCBieXRlKTsKQEAgLTc4LDE2ICs3OCwxNiBAQAogCiBzdGF0aWMgdV9jaGFyIG5kZmNfcmVhZF9ieXRlKHN0cnVjdCBtdGRfaW5mbyAqbXRkaW5mbykKIHsKLSAgICAgICAgc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0gICAgICAgIHVsb25nIGJhc2UgPSAodWxvbmcpIHRoaXMtPklPX0FERFJfVzsKKwlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKKwl1bG9uZyBiYXNlID0gKHVsb25nKSB0aGlzLT5JT19BRERSX1c7CiAKIAlyZXR1cm4gKGluOChiYXNlICsgTkRGQ19EQVRBKSk7CiB9CiAKIHN0YXRpYyBpbnQgbmRmY19kZXZfcmVhZHkoc3RydWN0IG10ZF9pbmZvICptdGRpbmZvKQogewotICAgICAgICBzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKLSAgICAgICAgdWxvbmcgYmFzZSA9ICh1bG9uZykgdGhpcy0+SU9fQUREUl9XOworCXN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGRpbmZvLT5wcml2OworCXVsb25nIGJhc2UgPSAodWxvbmcpIHRoaXMtPklPX0FERFJfVzsKIAogCXdoaWxlICghKGluMzIoYmFzZSArIE5ERkNfU1RBVCkgJiBOREZDX1NUQVRfSVNfUkVBRFkpKQogCQk7CkBAIC0xMTAsOCArMTEwLDggQEAKICAqLwogc3RhdGljIHZvaWQgbmRmY19yZWFkX2J1ZihzdHJ1Y3QgbXRkX2luZm8gKm10ZGluZm8sIHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKIHsKLSAgICAgICAgc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0gICAgICAgIHVsb25nIGJhc2UgPSAodWxvbmcpIHRoaXMtPklPX0FERFJfVzsKKwlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKKwl1bG9uZyBiYXNlID0gKHVsb25nKSB0aGlzLT5JT19BRERSX1c7CiAJdWludDMyX3QgKnAgPSAodWludDMyX3QgKikgYnVmOwogCiAJZm9yKDtsZW4gPiAwOyBsZW4gLT0gNCkKQEAgLTEyMCw4ICsxMjAsOCBAQAogCiBzdGF0aWMgdm9pZCBuZGZjX3dyaXRlX2J1ZihzdHJ1Y3QgbXRkX2luZm8gKm10ZGluZm8sIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKIHsKLSAgICAgICAgc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7Ci0gICAgICAgIHVsb25nIGJhc2UgPSAodWxvbmcpIHRoaXMtPklPX0FERFJfVzsKKwlzdHJ1Y3QgbmFuZF9jaGlwICp0aGlzID0gbXRkaW5mby0+cHJpdjsKKwl1bG9uZyBiYXNlID0gKHVsb25nKSB0aGlzLT5JT19BRERSX1c7CiAJdWludDMyX3QgKnAgPSAodWludDMyX3QgKikgYnVmOwogCiAJZm9yKDsgbGVuID4gMDsgbGVuIC09IDQpCkBAIC0xMzAsOCArMTMwLDggQEAKIAogc3RhdGljIGludCBuZGZjX3ZlcmlmeV9idWYoc3RydWN0IG10ZF9pbmZvICptdGRpbmZvLCBjb25zdCB1aW50OF90ICpidWYsIGludCBsZW4pCiB7Ci0gICAgICAgIHN0cnVjdCBuYW5kX2NoaXAgKnRoaXMgPSBtdGRpbmZvLT5wcml2OwotICAgICAgICB1bG9uZyBiYXNlID0gKHVsb25nKSB0aGlzLT5JT19BRERSX1c7CisJc3RydWN0IG5hbmRfY2hpcCAqdGhpcyA9IG10ZGluZm8tPnByaXY7CisJdWxvbmcgYmFzZSA9ICh1bG9uZykgdGhpcy0+SU9fQUREUl9XOwogCXVpbnQzMl90ICpwID0gKHVpbnQzMl90ICopIGJ1ZjsKIAogCWZvcig7IGxlbiA+IDA7IGxlbiAtPSA0KQpkaWZmIC0tZ2l0IGEvY3B1L3BwYzR4eC9zdGFydC5TIGIvY3B1L3BwYzR4eC9zdGFydC5TCmluZGV4IDVhMWFiMzguLjNmMjkzMTQgMTAwNjQ0Ci0tLSBhL2NwdS9wcGM0eHgvc3RhcnQuUworKysgYi9jcHUvcHBjNHh4L3N0YXJ0LlMKQEAgLTE3Myw5ICsxNzMsOSBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBfc3RhcnRfNDQwOgotICAgICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgICAgICB8IDQ0MEVQWCBCVVAgQ2hhbmdlIC0gSGFyZHdhcmUgdGVhbSByZXF1ZXN0Ci0gICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8IDQ0MEVQWCBCVVAgQ2hhbmdlIC0gSGFyZHdhcmUgdGVhbSByZXF1ZXN0CisJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICNpZiBkZWZpbmVkKENPTkZJR180NDBFUFgpIHx8IGRlZmluZWQoQ09ORklHXzQ0MEdSWCkKIAlzeW5jCiAJbm9wCg==