ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaTJjLWFsZ28tcGNmLmggYi9pbmNsdWRlL2xpbnV4L2kyYy1hbGdvLXBjZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTA4NTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2kyYy1hbGdvLXBjZi5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIGFkYXAtcGNmLmggaTJjIGRyaXZlciBhbGdvcml0aG1zIGZvciBQQ0Y4NTg0IGFkYXB0ZXJzICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qICAgQ29weXJpZ2h0IChDKSAxOTk1LTk3IFNpbW9uIEcuIFZvZ2wKKyAgICAgICAgICAgICAgICAgICAxOTk4LTk5IEhhbnMgQmVyZ2x1bmQKKworICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLiAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKiBXaXRoIHNvbWUgY2hhbmdlcyBmcm9tIEt59nN0aSBN5Gxra2kgPGttYWxra2lAY2MuaHV0LmZpPiBhbmQgZXZlbgorICAgRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiAqLworCisvKiAkSWQ6IGkyYy1hbGdvLXBjZi5oLHYgMS44IDIwMDMvMDEvMjEgMDg6MDg6MTYga21hbGtraSBFeHAgJCAqLworCisjaWZuZGVmIF9MSU5VWF9JMkNfQUxHT19QQ0ZfSAorI2RlZmluZSBfTElOVVhfSTJDX0FMR09fUENGX0gKKworc3RydWN0IGkyY19hbGdvX3BjZl9kYXRhIHsKKwl2b2lkICpkYXRhOwkJLyogcHJpdmF0ZSBkYXRhIGZvciBsb2xldmVsIHJvdXRpbmVzCSovCisJdm9pZCAoKnNldHBjZikgKHZvaWQgKmRhdGEsIGludCBjdGwsIGludCB2YWwpOworCWludCAgKCpnZXRwY2YpICh2b2lkICpkYXRhLCBpbnQgY3RsKTsKKwlpbnQgICgqZ2V0b3duKSAodm9pZCAqZGF0YSk7CisJaW50ICAoKmdldGNsb2NrKSAodm9pZCAqZGF0YSk7CisJdm9pZCAoKndhaXRmb3JwaW4pICh2b2lkKTsgICAgIAorCisJLyogbG9jYWwgc2V0dGluZ3MgKi8KKwlpbnQgdWRlbGF5OworCWludCBtZGVsYXk7CisJaW50IHRpbWVvdXQ7Cit9OworCisjZGVmaW5lIEkyQ19QQ0ZfQURBUF9NQVgJMTYKKworaW50IGkyY19wY2ZfYWRkX2J1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKik7CitpbnQgaTJjX3BjZl9kZWxfYnVzKHN0cnVjdCBpMmNfYWRhcHRlciAqKTsKKworI2VuZGlmIC8qIF9MSU5VWF9JMkNfQUxHT19QQ0ZfSCAqLwo=