From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Bastien Nocera To: git-commits@fedoraproject.org Subject: [rpms/bluez] rawhide: Fix CVE-2026-80186 (Closes: #2524148) Date: Wed, 26 Aug 2026 12:36:55 GMT Message-ID: <178774781576.1.6208217789727221551.rpms-bluez-9d68577d2152@fedoraproject.org> List-ID: X-Git-Repo: rpms/bluez X-Git-Branch: rawhide X-Git-Rev: 9d68577d2152078771907189600a5a423c0840b3 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYmx1ZXoKQnJhbmNo IDogcmF3aGlkZQpDb21taXQgOiA5ZDY4NTc3ZDIxNTIwNzg3NzE5MDcxODk2MDBhNWE0MjNjMDg0 MGIzCkF1dGhvciA6IEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KRGF0ZSAgIDog MjAyNi0wOC0yNlQxNDozNjo0OCswMjowMApTdGF0cyAgOiArMTM1Mi8tMCBpbiAyIGZpbGUocykK VVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9ibHVlei9jLzlkNjg1 NzdkMjE1MjA3ODc3MTkwNzE4OTYwMGE1YTQyM2MwODQwYjM/YnJhbmNoPXJhd2hpZGUKCkxvZzoK Rml4IENWRS0yMDI2LTgwMTg2IChDbG9zZXM6ICMyNTI0MTQ4KQoKLS0tCmRpZmYgLS1naXQgYS9i bHVlei5zcGVjIGIvYmx1ZXouc3BlYwppbmRleCA1MTQxMDFkLi44NDJlNjhkIDEwMDY0NAotLS0g YS9ibHVlei5zcGVjCisrKyBiL2JsdWV6LnNwZWMKQEAgLTE3LDYgKzE3LDggQEAgU291cmNlMDog aHR0cHM6Ly93d3cua2VybmVsLm9yZy9wdWIvbGludXgvYmx1ZXRvb3RoLyV7bmFtZX0tJXt2ZXJz aW9ufS50YXIueHoKIFBhdGNoMTogNS44Ny1idWctZml4ZXMtMS5wYXRjaAogIyBDVkUtMjAyNi03 NTAzMgogUGF0Y2gyOiBhdnJjcC1nZXRmb2xkZXJpdGVtcy5wYXRjaAorIyBDVkUtMjAyNi04MDE4 NgorUGF0Y2gzOiBuYW1lMnV0Zjgtb3ZlcmZsb3cucGF0Y2gKIAogQnVpbGRSZXF1aXJlczogZGJ1 cy1kZXZlbCA+PSAxLjYKIEJ1aWxkUmVxdWlyZXM6IGdsaWIyLWRldmVsCkBAIC0zNDIsNiArMzQ0 LDkgQEAgaW5zdGFsbCBlbXVsYXRvci9idHZpcnQgJHtSUE1fQlVJTERfUk9PVH0vJXtfbGliZXhl Y2Rpcn0vYmx1ZXRvb3RoLwogJXtfdXNlcnVuaXRkaXJ9L29iZXguc2VydmljZQogCiAlY2hhbmdl bG9nCisqIFdlZCBBdWcgMjYgMjAyNiBCYXN0aWVuIE5vY2VyYSA8Ym5vY2VyYUByZWRoYXQuY29t PiAtIDUuODctNQorLSBGaXggQ1ZFLTIwMjYtODAxODYgKENsb3NlczogIzI1MjQxNDgpCisKICog V2VkIEF1ZyAxOSAyMDI2IEJhc3RpZW4gTm9jZXJhIDxibm9jZXJhQHJlZGhhdC5jb20+IC0gNS44 Ny01CiAtIEZpeCBDVkUtMjAyNi03NTAzMiAoQ2xvc2VzOiAjMjUxNzg3NykKIAoKZGlmZiAtLWdp dCBhL25hbWUydXRmOC1vdmVyZmxvdy5wYXRjaCBiL25hbWUydXRmOC1vdmVyZmxvdy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2IyYjZkCi0tLSAvZGV2L251bGwK KysrIGIvbmFtZTJ1dGY4LW92ZXJmbG93LnBhdGNoCkBAIC0wLDAgKzEsMTM0NyBAQAorRnJvbSAz ODFiNWQwZDIwODk3MjU4NjI4MjExNmQzMzM4NjViYTkzYjhkZWMyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50 ZWwuY29tPgorRGF0ZTogV2VkLCAxOSBBdWcgMjAyNiAxNjowMjo0NyAtMDQwMAorU3ViamVjdDog W1BBVENIIDAxLzEwXSBlaXI6IEZpeCBzdGFjayBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5n IHRoZSByZW1vdGUKKyBuYW1lCisKK25hbWUydXRmOCgpIGNvcGllcyBsZW4gYnl0ZXMgaW50byBh IEhDSV9NQVhfTkFNRV9MRU5HVEggKyAyLCBzbyAyNTAsCitieXRlIHN0YWNrIGJ1ZmZlciB3aXRo b3V0IGNsYW1waW5nIGxlbiBmaXJzdC4KKworZWlyX3BhcnNlKCkgb25seSByZWplY3RzIGEgZmll bGQgb25jZSBpdCBydW5zIHBhc3QgdGhlIGVuZCBvZiB0aGUgRUlSCitkYXRhLCBhbmQgdGhhdCBk YXRhIGlzIHVwIHRvIDI1NSBieXRlcywgc28gZmllbGRfbGVuIGNhbiBiZSAyNTQgYW5kIHRoZQor ZGF0YV9sZW4gcGFzc2VkIHRvIG5hbWUydXRmOCgpIGNhbiByZWFjaCAyNTMuIHN0cm5jcHkoKSB0 aGVuIHdyaXRlcyAyNTMKK2J5dGVzIGludG8gdGhlIDI1MCBieXRlIGJ1ZmZlciBhbmQgbGVhdmVz IGl0IHVudGVybWluYXRlZCwgc28gdGhlCitmb2xsb3dpbmcgZ19zdHJzdHJpcCgpIGFuZCBnX3N0 cmR1cCgpIGFsc28gcmVhZCBwYXN0IHRoZSBlbmQuCisKK1RoZSBFSVIgZGF0YSBjb21lcyBmcm9t IGEgcmVtb3RlIGRldmljZSwgZWl0aGVyIGluIGFuIGV4dGVuZGVkIGlucXVpcnkKK3Jlc3BvbnNl IG9yIGluIGFuIGFkdmVydGlzaW5nIHJlcG9ydCwgc28gdGhlIGxlbmd0aCBpcyBhdHRhY2tlcgor Y29udHJvbGxlZC4KKworQ2xhbXAgbGVuIHRvIEhDSV9NQVhfTkFNRV9MRU5HVEgsIHdoaWNoIGlz IHdoYXQgdGhlIGxvY2FsIG5hbWUgaXMKK2xpbWl0ZWQgdG8gYW55d2F5LCBhbmQgd2hhdCBhZF9y ZXBsYWNlX25hbWUoKSBhbHJlYWR5IGNsYW1wcyB0by4KKworRml4ZXM6IGh0dHBzOi8vZ2l0aHVi LmNvbS9ibHVlei9ibHVlei9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtNjhoNi01cWdwLTM5NzUK K0Fzc2lzdGVkLWJ5OiBDbGF1ZGU6Y2xhdWRlLW9wdXMtNQorLS0tCisgc3JjL2Vpci5jIHwgMiAr KworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9l aXIuYyBiL3NyYy9laXIuYworaW5kZXggODljMTU5OTVhNTQ2Li40NDIxYjE2NjJkNjUgMTAwNjQ0 CistLS0gYS9zcmMvZWlyLmMKKysrKyBiL3NyYy9laXIuYworQEAgLTEzNyw2ICsxMzcsOCBAQCBz dGF0aWMgY2hhciAqbmFtZTJ1dGY4KGNvbnN0IHVpbnQ4X3QgKm5hbWUsIHVpbnQ4X3QgbGVuKQor IHsKKyAJY2hhciB1dGY4X25hbWVbSENJX01BWF9OQU1FX0xFTkdUSCArIDJdOworIAorKwlsZW4g PSBNSU4obGVuLCBIQ0lfTUFYX05BTUVfTEVOR1RIKTsKKysKKyAJbWVtc2V0KHV0ZjhfbmFtZSwg MCwgc2l6ZW9mKHV0ZjhfbmFtZSkpOworIAlzdHJuY3B5KHV0ZjhfbmFtZSwgKGNoYXIgKikgbmFt ZSwgbGVuKTsKKyAJc3RydG91dGY4KHV0ZjhfbmFtZSwgbGVuKTsKKy0tIAorMi41NS4wCisKKwor RnJvbSA3ODQyMDMxNjBlMmZiOTA2MDkwMDU5MzM2ZDg2YTI0ZjI4MzQ5YjAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVu dHpAaW50ZWwuY29tPgorRGF0ZTogVGh1LCAyMCBBdWcgMjAyNiAxMzo0MjoxMiAtMDQwMAorU3Vi amVjdDogW1BBVENIIDAyLzEwXSBzaGFyZWQvYWQ6IEZpeCByZWFkaW5nIHBhc3QgdGhlIG5hbWUg dGhhdCB3YXMgY29waWVkCisKK2FkX3JlcGxhY2VfbmFtZSgpIGNvcGllcyBhdCBtb3N0IEhDSV9N QVhfTkFNRV9MRU5HVEggYnl0ZXMgb2YgdGhlIG5hbWUKK2ludG8gaXRzIGJ1ZmZlciwgYnV0IHRo ZW4gaGFuZHMgdGhlIGZ1bGwgaW92X2xlbiB0byBzdHJpc3V0ZjgoKSBhbmQKK3N0cnRvdXRmOCgp LgorCitUaGUgYWR2ZXJ0aXNpbmcgZGF0YSBpcyB1cCB0byAyNTUgYnl0ZXMsIHNvIGEgY29tcGxl dGUgbG9jYWwgbmFtZSBmaWVsZAorY2FuIGhvbGQgMjUzIG9mIHRoZW0sIGFuZCBib3RoIGVuZCB1 cCByZWFkaW5nIDI1MyBieXRlcyBvdXQgb2YgYSAyNTAKK2J5dGUgYnVmZmVyLCAzIG9mIHRoZW0g cGFzdCBpdHMgZW5kLgorCitVc2UgdGhlIHNhbWUgY2xhbXBlZCBsZW5ndGggdGhyb3VnaG91dC4K KworQXNzaXN0ZWQtYnk6IENsYXVkZTpjbGF1ZGUtb3B1cy01CistLS0KKyBzcmMvc2hhcmVkL2Fk LmMgfCA4ICsrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9zaGFyZWQvYWQuYyBiL3NyYy9zaGFyZWQvYWQu YworaW5kZXggYjFkMWI4NDYxMWFhLi5lYmVlMDc4NTAwYzYgMTAwNjQ0CistLS0gYS9zcmMvc2hh cmVkL2FkLmMKKysrKyBiL3NyYy9zaGFyZWQvYWQuYworQEAgLTI3NiwxNSArMjc2LDE1IEBAIHN0 YXRpYyBib29sIGFkX3JlcGxhY2VfdXVpZDEyOChzdHJ1Y3QgYnRfYWQgKmFkLCBzdHJ1Y3QgaW92 ZWMgKmlvdikKKyBzdGF0aWMgYm9vbCBhZF9yZXBsYWNlX25hbWUoc3RydWN0IGJ0X2FkICphZCwg c3RydWN0IGlvdmVjICppb3YpCisgeworIAljaGFyIHV0ZjhfbmFtZVtIQ0lfTUFYX05BTUVfTEVO R1RIICsgMl07CisrCXNpemVfdCBsZW4gPSBNSU4oaW92LT5pb3ZfbGVuLCAoc2l6ZV90KSBIQ0lf TUFYX05BTUVfTEVOR1RIKTsKKyAKKyAJbWVtc2V0KHV0ZjhfbmFtZSwgMCwgc2l6ZW9mKHV0Zjhf bmFtZSkpOworLQlzdHJuY3B5KHV0ZjhfbmFtZSwgKGNvbnN0IGNoYXIgKilpb3YtPmlvdl9iYXNl LAorLQkJCU1JTihpb3YtPmlvdl9sZW4sIEhDSV9NQVhfTkFNRV9MRU5HVEgpKTsKKysJc3RybmNw eSh1dGY4X25hbWUsIChjb25zdCBjaGFyICopaW92LT5pb3ZfYmFzZSwgbGVuKTsKKyAKKy0JaWYg KHN0cmlzdXRmOCh1dGY4X25hbWUsIGlvdi0+aW92X2xlbikpCisrCWlmIChzdHJpc3V0ZjgodXRm OF9uYW1lLCBsZW4pKQorIAkJZ290byBkb25lOworIAorLQlzdHJ0b3V0ZjgodXRmOF9uYW1lLCBp b3YtPmlvdl9sZW4pOworKwlzdHJ0b3V0ZjgodXRmOF9uYW1lLCBsZW4pOworIAorIAkvKiBSZW1v dmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzICovCisgCXN0cnN0 cmlwKHV0ZjhfbmFtZSk7CistLSAKKzIuNTUuMAorCisKK0Zyb20gZGViZDQzMmVmMTNjNWVhOWZm YWI5ZmZjYmZjYjQ1MzcyOTQ2OTIwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx1 aXogQXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGludGVsLmNvbT4KK0RhdGU6IFRo dSwgMjAgQXVnIDIwMjYgMTM6Mjg6MzggLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAwMy8xMF0gdW5p dC90ZXN0LWVpcjogQWRkIHRlc3RzIGZvciB0aGUgbG9uZ2VzdCBsb2NhbCBuYW1lcworCitOb3Ro aW5nIGNvdmVyZWQgYSBuYW1lIGFueXdoZXJlIG5lYXIgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBp dCBpcyBjb3BpZWQKK2ludG8sIHdoaWNoIGlzIHdoeSB0aGUgbWlzc2luZyBjbGFtcCB3ZW50IHVu bm90aWNlZC4KKworQWRkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHVzZXMgYSBuYW1lIG9mIEhDSV9N QVhfTkFNRV9MRU5HVEggYnl0ZXMsIHRoZQorbG9uZ2VzdCBvbmUgdGhhdCBmaXRzLCB0byBwaW4g dGhlIGJvdW5kYXJ5IGRvd24uCisKK1RoZSBzZWNvbmQgdXNlcyBhIG5hbWUgb2YgMjUzIGJ5dGVz LCBhcyBsYXJnZSBhcyBlaXJfcGFyc2UoKSBjYW4gYmUKK2hhbmRlZCBnaXZlbiB0aGUgRUlSIGxl bmd0aCBpcyBhIHNpbmdsZSBieXRlLCBhbmQgd2hpY2ggZG9lcyBub3QgZml0LgorUnVuIGFnYWlu c3QgdGhlIGNvZGUgYmVmb3JlIHRoZSBwcmV2aW91cyBwYXRjaCwgaXQgZGllcyB3aXRoCisKKyAg KioqIGJ1ZmZlciBvdmVyZmxvdyBkZXRlY3RlZCAqKio6IHRlcm1pbmF0ZWQKKworQXNzaXN0ZWQt Ynk6IENsYXVkZTpjbGF1ZGUtb3B1cy01CistLS0KKyB1bml0L3Rlc3QtZWlyLmMgfCA2MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNo YW5nZWQsIDYyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3VuaXQvdGVzdC1laXIuYyBi L3VuaXQvdGVzdC1laXIuYworaW5kZXggNjIxNjRjYTk5M2Y2Li4zMjZiYzg5OWUyNTEgMTAwNjQ0 CistLS0gYS91bml0L3Rlc3QtZWlyLmMKKysrKyBiL3VuaXQvdGVzdC1laXIuYworQEAgLTQ0MCw2 ICs0NDAsNjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0X2RhdGEgaXNvXzIwMjJfanBfbmFt ZV90ZXN0ID0geworIAkudHhfcG93ZXIgPSAxMjcsCisgfTsKKyAKKysvKgorKyAqIEEgY29tcGxl dGUgbG9jYWwgbmFtZSBvZiBIQ0lfTUFYX05BTUVfTEVOR1RIIGJ5dGVzLCB0aGUgbG9uZ2VzdCBv bmUgdGhhdAorKyAqIGZpdHMgdGhlIGJ1ZmZlciBlaXJfcGFyc2UoKSBjb3BpZXMgdGhlIG5hbWUg aW50by4KKysgKi8KKytzdGF0aWMgdW5zaWduZWQgY2hhciBtYXhfbmFtZV9kYXRhW0hDSV9NQVhf TkFNRV9MRU5HVEggKyAyXTsKKytzdGF0aWMgY2hhciBtYXhfbmFtZVtIQ0lfTUFYX05BTUVfTEVO R1RIICsgMV07CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0X2RhdGEgbWF4X25hbWVfdGVz dCA9IHsKKysJLmVpcl9kYXRhID0gbWF4X25hbWVfZGF0YSwKKysJLmVpcl9zaXplID0gc2l6ZW9m KG1heF9uYW1lX2RhdGEpLAorKwkubmFtZSA9IG1heF9uYW1lLAorKwkubmFtZV9jb21wbGV0ZSA9 IHRydWUsCisrCS50eF9wb3dlciA9IDEyNywKKyt9OworKworK3N0YXRpYyB2b2lkIG1heF9uYW1l X3NldHVwKGNvbnN0IHZvaWQgKmRhdGEpCisreworKwltYXhfbmFtZV9kYXRhWzBdID0gc2l6ZW9m KG1heF9uYW1lX2RhdGEpIC0gMTsKKysJbWF4X25hbWVfZGF0YVsxXSA9IEVJUl9OQU1FX0NPTVBM RVRFOworKwltZW1zZXQobWF4X25hbWVfZGF0YSArIDIsICdBJywgSENJX01BWF9OQU1FX0xFTkdU SCk7CisrCisrCW1lbXNldChtYXhfbmFtZSwgJ0EnLCBIQ0lfTUFYX05BTUVfTEVOR1RIKTsKKysJ bWF4X25hbWVbSENJX01BWF9OQU1FX0xFTkdUSF0gPSAnXDAnOworKworKwl0ZXN0ZXJfc2V0dXBf Y29tcGxldGUoKTsKKyt9CisrCisrLyoKKysgKiBUaGUgbG9uZ2VzdCBjb21wbGV0ZSBsb2NhbCBu YW1lIGVpcl9wYXJzZSgpIGNhbiBiZSBoYW5kZWQgYXQgYWxsLCB3aGljaCBpcworKyAqIGJvdW5k ZWQgYnkgdGhlIEVJUiBsZW5ndGggYmVpbmcgYSBzaW5nbGUgYnl0ZS4gVGhhdCBpcyAyNTMgYnl0 ZXMsIG1vcmUgdGhhbgorKyAqIHRoZSBidWZmZXIgaXQgaXMgY29waWVkIGludG8sIHNvIHRoaXMg dXNlZCB0byBvdmVyZmxvdyBpdC4KKysgKi8KKytzdGF0aWMgdW5zaWduZWQgY2hhciBsb25nX25h bWVfZGF0YVsyNTVdOworK3N0YXRpYyBjaGFyIGxvbmdfbmFtZVtzaXplb2YobG9uZ19uYW1lX2Rh dGEpIC0gMiArIDFdOworKworKy8qIFRoZSBuYW1lIGRvZXMgbm90IGZpdCwgc28gaXQgY29tZXMg YmFjayBjbGFtcGVkIHRvIEhDSV9NQVhfTkFNRV9MRU5HVEggKi8KKysjZGVmaW5lIExPTkdfTkFN RV9MRU4JSENJX01BWF9OQU1FX0xFTkdUSAorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdF9k YXRhIGxvbmdfbmFtZV90ZXN0ID0geworKwkuZWlyX2RhdGEgPSBsb25nX25hbWVfZGF0YSwKKysJ LmVpcl9zaXplID0gc2l6ZW9mKGxvbmdfbmFtZV9kYXRhKSwKKysJLm5hbWUgPSBsb25nX25hbWUs CisrCS5uYW1lX2NvbXBsZXRlID0gdHJ1ZSwKKysJLnR4X3Bvd2VyID0gMTI3LAorK307CisrCisr c3RhdGljIHZvaWQgbG9uZ19uYW1lX3NldHVwKGNvbnN0IHZvaWQgKmRhdGEpCisreworKwlsb25n X25hbWVfZGF0YVswXSA9IHNpemVvZihsb25nX25hbWVfZGF0YSkgLSAxOworKwlsb25nX25hbWVf ZGF0YVsxXSA9IEVJUl9OQU1FX0NPTVBMRVRFOworKwltZW1zZXQobG9uZ19uYW1lX2RhdGEgKyAy LCAnQicsIHNpemVvZihsb25nX25hbWVfZGF0YSkgLSAyKTsKKysKKysJbWVtc2V0KGxvbmdfbmFt ZSwgJ0InLCBMT05HX05BTUVfTEVOKTsKKysJbG9uZ19uYW1lW0xPTkdfTkFNRV9MRU5dID0gJ1ww JzsKKysKKysJdGVzdGVyX3NldHVwX2NvbXBsZXRlKCk7CisrfQorKworIHN0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIGJsdWVzY19kYXRhW10gPSB7CisgCQkweDAyLCAweDAxLCAweDA2LCAweDAz LCAweDAyLCAweDE2LCAweDE4LCAweDEyLAorIAkJMHgwOSwgMHg1NywgMHg2MSwgMHg2OCwgMHg2 ZiwgMHg2ZiwgMHgyMCwgMHg0MiwKK0BAIC03NTYsNiArODE0LDEwIEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCisgCQkJCQkJCQkJTlVMTCk7CisgCXRlc3Rlcl9hZGQoIi9laXIv aXNvLTIwMjItanAtbmFtZSIsICZpc29fMjAyMl9qcF9uYW1lX3Rlc3QsIE5VTEwsCisgCQkJCQkJ CXRlc3RfcGFyc2luZywgTlVMTCk7CisrCXRlc3Rlcl9hZGQoIi9laXIvbWF4LW5hbWUiLCAmbWF4 X25hbWVfdGVzdCwgbWF4X25hbWVfc2V0dXAsCisrCQkJCQkJCXRlc3RfcGFyc2luZywgTlVMTCk7 CisrCXRlc3Rlcl9hZGQoIi9laXIvbG9uZy1uYW1lIiwgJmxvbmdfbmFtZV90ZXN0LCBsb25nX25h bWVfc2V0dXAsCisrCQkJCQkJCXRlc3RfcGFyc2luZywgTlVMTCk7CisgCXRlc3Rlcl9hZGQoIi9h ZC9ibHVlc2MiLCAmYmx1ZXNjX3Rlc3QsIE5VTEwsIHRlc3RfcGFyc2luZywgTlVMTCk7CisgCXRl c3Rlcl9hZGQoIi9hZC93YWhvb3NjYWxlIiwgJndhaG9vX3NjYWxlX3Rlc3QsIE5VTEwsIHRlc3Rf cGFyc2luZywKKyAJCQkJCQkJCQlOVUxMKTsKKy0tIAorMi41NS4wCisKKworRnJvbSAzYWQ4MzJh M2MyYTk4OWVkOWYxNDU4NmNkM2I1NmY0MGFkNjA4Njc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwuY29t PgorRGF0ZTogV2VkLCAxOSBBdWcgMjAyNiAxNjoxMDozNiAtMDQwMAorU3ViamVjdDogW1BBVENI IDA0LzEwXSBzaGFyZWQvdXRpbDogTWFrZSBzdHJubGVudXRmOCByZWplY3QgaWxsLWZvcm1lZAor IHNlcXVlbmNlcworCitzdHJubGVudXRmOCgpIG9ubHkgY2hlY2tzIHRoZSBzaGFwZSBvZiB0aGUg bGVhZCBieXRlIGFuZCB0aGF0IHRoZQorZm9sbG93aW5nIGJ5dGVzIGFyZSBjb250aW51YXRpb24g Ynl0ZXMsIHNvIGl0IGFjY2VwdHMgc2VxdWVuY2VzIHRoYXQgYXJlCitub3Qgd2VsbC1mb3JtZWQg VVRGLTg6CisKKyAgQzAgODAgICAgICAgIG92ZXJsb25nIGVuY29kaW5nIG9mIFUrMDAwMAorICBD MCBBRiAgICAgICAgb3ZlcmxvbmcgZW5jb2Rpbmcgb2YgJy8nCisgIEVEIEEwIDgwICAgICBVVEYt MTYgc3Vycm9nYXRlIFUrRDgwMAorICBGNSA4MCA4MCA4MCAgcGFzdCB0aGUgVSsxMEZGRkYgbGlt aXQKKworc3RyaXN1dGY4KCkgYW5kIHN0cnRvdXRmOCgpIGFyZSBidWlsdCBvbiBpdCwgc28gYSBy ZW1vdGUgbmFtZSBjb250YWluaW5nCithbnkgb2YgdGhvc2UgaXMgY29uc2lkZXJlZCB2YWxpZCBh bmQgcGFzc2VkIG9uIHVuY2hhbmdlZCwgZm9yIGluc3RhbmNlCit0byBELUJ1cywgd2hpY2ggZG9l cyB2YWxpZGF0ZSBVVEYtOCBzdHJpY3RseSBhbmQgcmVqZWN0cyB0aGVtLgorCitWYWxpZGF0ZSB0 aGUgc2VxdWVuY2VzIGFzIGRlZmluZWQgYnkgdGFibGUgMy03IG9mIHRoZSBVbmljb2RlIFN0YW5k YXJkCitpbnN0ZWFkLCB3aGljaCBjb25zdHJhaW5zIHRoZSByYW5nZSBvZiB0aGUgc2Vjb25kIGJ5 dGUgZm9yIHRoZSBFMCwgRUQsCitGMCBhbmQgRjQgbGVhZCBieXRlcyBhbmQgcmVqZWN0cyB0aGUg QzAsIEMxIGFuZCBGNSB0byBGRiBvbmVzIG91dHJpZ2h0LgorCitUaGUgZGVjb2RpbmcgaXMgc3Bs aXQgb3V0IGludG8gYSBoZWxwZXIgdGhhdCBhbHNvIHJlcG9ydHMgdGhlIHNpemUgb2YKK3RoZSBt YXhpbWFsIHN1YnBhcnQgb2YgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZSwgc28gdGhhdCBjYWxsZXJz IGNhbiBza2lwCitvdmVyIGl0LCBhcyByZWNvbW1lbmRlZCBieSBzZWN0aW9uIDMuOSBvZiB0aGUg VW5pY29kZSBTdGFuZGFyZC4KKworQXNzaXN0ZWQtYnk6IENsYXVkZTpjbGF1ZGUtb3B1cy01Cist LS0KKyBzcmMvc2hhcmVkL3V0aWwuYyB8IDkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDI4 IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC91dGlsLmMgYi9zcmMvc2hh cmVkL3V0aWwuYworaW5kZXggNjJkZDEzNjliNzBkLi5lOTQ2MjE0ZWRiYjkgMTAwNjQ0CistLS0g YS9zcmMvc2hhcmVkL3V0aWwuYworKysrIGIvc3JjL3NoYXJlZC91dGlsLmMKK0BAIC0yMjExLDQ0 ICsyMjExLDc4IEBAIGNoYXIgKnN0cnN0cmlwKGNoYXIgKnN0cikKKyAJcmV0dXJuIHN0cjsKKyB9 CisgCistc2l6ZV90IHN0cm5sZW51dGY4KGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbikKKy0K KysvKgorKyAqIERlY29kZSB0aGUgVVRGLTggc2VxdWVuY2UgYXQgc3RyLCBhcyBkZWZpbmVkIGJ5 IHRhYmxlIDMtNyBvZiB0aGUgVW5pY29kZQorKyAqIFN0YW5kYXJkLCBhbmQgcmV0dXJuIGl0cyBz aXplLCBvciAwIGlmIGl0IGlzIGlsbC1mb3JtZWQuCisrICoKKysgKiBzdWJsZW4gaXMgc2V0IHRv IHRoZSBzaXplIG9mIHRoZSBtYXhpbWFsIHN1YnBhcnQgb2YgdGhlIHNlcXVlbmNlLCB0aGF0IGlz CisrICogdGhlIG51bWJlciBvZiBsZWFkaW5nIGJ5dGVzIHRoYXQgY291bGQgc3RpbGwgaGF2ZSBm b3JtZWQgYSB3ZWxsLWZvcm1lZAorKyAqIHNlcXVlbmNlLCB3aGljaCBpcyB3aGF0IHRoZSBjYWxs ZXIgbmVlZHMgdG8gc2tpcCBvdmVyLgorKyAqLworK3N0YXRpYyBzaXplX3QgdXRmOF9zZXFsZW4o Y29uc3QgdW5zaWduZWQgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBzaXplX3QgKnN1YmxlbikKKyB7 CistCXNpemVfdCBpID0gMDsKKysJdW5zaWduZWQgY2hhciBsbyA9IDB4ODAsIGhpID0gMHhiZjsK KysJc2l6ZV90IHNpemUsIGk7CisgCistCXdoaWxlIChpIDwgbGVuKSB7CistCQl1bnNpZ25lZCBj aGFyIGMgPSBzdHJbaV07CistCQlzaXplX3Qgc2l6ZSA9IDA7CisrCWlmIChzdHJbMF0gPD0gMHg3 ZikgeworKwkJKnN1YmxlbiA9IDE7CisrCQlyZXR1cm4gMTsKKysJfQorIAorLQkJLyogQ2hlY2sg dGhlIGZpcnN0IGJ5dGUgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlCist CQkgKiBVVEYtOCBjaGFyYWN0ZXIuCisrCWlmIChzdHJbMF0gPj0gMHhjMiAmJiBzdHJbMF0gPD0g MHhkZikgeworKwkJc2l6ZSA9IDI7CisrCX0gZWxzZSBpZiAoc3RyWzBdID49IDB4ZTAgJiYgc3Ry WzBdIDw9IDB4ZWYpIHsKKysJCXNpemUgPSAzOworKwkJLyogUmVqZWN0IHRoZSBvdmVybG9uZyBl bmNvZGluZ3MgYW5kIHRoZSBVVEYtMTYgc3Vycm9nYXRlcyAqLworKwkJaWYgKHN0clswXSA9PSAw eGUwKQorKwkJCWxvID0gMHhhMDsKKysJCWVsc2UgaWYgKHN0clswXSA9PSAweGVkKQorKwkJCWhp ID0gMHg5ZjsKKysJfSBlbHNlIGlmIChzdHJbMF0gPj0gMHhmMCAmJiBzdHJbMF0gPD0gMHhmNCkg eworKwkJc2l6ZSA9IDQ7CisrCQkvKiBSZWplY3QgdGhlIG92ZXJsb25nIGVuY29kaW5ncyBhbmQg YW55dGhpbmcgcGFzdCBVKzEwRkZGRiAqLworKwkJaWYgKHN0clswXSA9PSAweGYwKQorKwkJCWxv ID0gMHg5MDsKKysJCWVsc2UgaWYgKHN0clswXSA9PSAweGY0KQorKwkJCWhpID0gMHg4ZjsKKysJ fSBlbHNlIHsKKysJCS8qIEMwIGFuZCBDMSBhcmUgb3ZlcmxvbmcsIEY1IHRvIEZGIGFyZSBvdXQg b2YgcmFuZ2UsIGFuZCBhCisrCQkgKiBjb250aW51YXRpb24gYnl0ZSBjYW5ub3Qgc3RhcnQgYSBz ZXF1ZW5jZS4KKyAJCSAqLworLQkJaWYgKChjICYgMHg4MCkgPT0gMHgwMCkKKy0JCQlzaXplID0g MTsKKy0JCWVsc2UgaWYgKChjICYgMHhFMCkgPT0gMHhDMCkKKy0JCQlzaXplID0gMjsKKy0JCWVs c2UgaWYgKChjICYgMHhGMCkgPT0gMHhFMCkKKy0JCQlzaXplID0gMzsKKy0JCWVsc2UgaWYgKChj ICYgMHhGOCkgPT0gMHhGMCkKKy0JCQlzaXplID0gNDsKKy0JCWVsc2UKKy0JCQkvKiBJbnZhbGlk IFVURi04IHNlcXVlbmNlICovCistCQkJZ290byBkb25lOworKwkJKnN1YmxlbiA9IDE7CisrCQly ZXR1cm4gMDsKKysJfQorIAorLQkJLyogQ2hlY2sgdGhlIGZvbGxvd2luZyBieXRlcyB0byBlbnN1 cmUgdGhleSBoYXZlIHRoZSBjb3JyZWN0CistCQkgKiBmb3JtYXQuCistCQkgKi8KKy0JCWZvciAo c2l6ZV90IGogPSAxOyBqIDwgc2l6ZTsgKytqKSB7CistCQkJaWYgKGkgKyBqID49IGxlbiB8fCAo c3RyW2kgKyBqXSAmIDB4QzApICE9IDB4ODApCistCQkJCS8qIEludmFsaWQgVVRGLTggc2VxdWVu Y2UgKi8KKy0JCQkJZ290byBkb25lOworKwlmb3IgKGkgPSAxOyBpIDwgc2l6ZTsgaSsrKSB7Cisr CQlpZiAoaSA+PSBsZW4gfHwgc3RyW2ldIDwgbG8gfHwgc3RyW2ldID4gaGkpIHsKKysJCQkqc3Vi bGVuID0gaTsKKysJCQlyZXR1cm4gMDsKKyAJCX0KKyAKKysJCS8qIE9ubHkgdGhlIHNlY29uZCBi eXRlIGhhcyBhIHJlc3RyaWN0ZWQgcmFuZ2UgKi8KKysJCWxvID0gMHg4MDsKKysJCWhpID0gMHhi ZjsKKysJfQorKworKwkqc3VibGVuID0gc2l6ZTsKKysJcmV0dXJuIHNpemU7CisrfQorKworK3Np emVfdCBzdHJubGVudXRmOChjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4pCisreworKwlzaXpl X3QgaSA9IDA7CisrCisrCXdoaWxlIChpIDwgbGVuKSB7CisrCQlzaXplX3Qgc3VibGVuOworKwor KwkJaWYgKCF1dGY4X3NlcWxlbigoY29uc3QgdW5zaWduZWQgY2hhciAqKSBzdHIgKyBpLCBsZW4g LSBpLAorKwkJCQkJCQkJJnN1YmxlbikpCisrCQkJYnJlYWs7CisrCisgCQkvKiBNb3ZlIHRvIHRo ZSBuZXh0IGNoYXJhY3RlciAqLworLQkJaSArPSBzaXplOworKwkJaSArPSBzdWJsZW47CisgCX0K KyAKKy1kb25lOgorIAlyZXR1cm4gaTsKKyB9CisgCistLSAKKzIuNTUuMAorCisKK0Zyb20gMTEw ODFmNjBkOTVmNjQxZGRiY2E0YTUzOTIyZDg4Njk3MmM4N2FhMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEx1aXogQXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGludGVs LmNvbT4KK0RhdGU6IFdlZCwgMTkgQXVnIDIwMjYgMTY6MTE6MDMgLTA0MDAKK1N1YmplY3Q6IFtQ QVRDSCAwNS8xMF0gc2hhcmVkL3V0aWw6IEFkZCBzdHIydXRmOAorCitUaGVyZSBhcmUgZml2ZSBu ZWFyIGNvcGllcyBvZiB0aGUgc2FtZSAidHVybiBhIHJlbW90ZSBuYW1lIGludG8gYSBVVEYtOAor c3RyaW5nIiBoZWxwZXIsIGluIG1vbml0b3IvYXR0LmMsIHByb2ZpbGVzL2F1ZGlvL21jcC5jLCBw cm9maWxlcy9nYXAvZ2FzLmMsCitzcmMvZWlyLmMgYW5kIHNyYy9zaGFyZWQvYWQuYywgYW5kIHRo ZXkgZG8gbm90IGFncmVlIHdpdGggZWFjaCBvdGhlci4KKworTW9zdCB0cnVuY2F0ZSBhdCB0aGUg Zmlyc3QgaWxsLWZvcm1lZCBzZXF1ZW5jZSwgd2hpY2ggdGhyb3dzIGF3YXkgdGhlCityZXN0IG9m IHRoZSBuYW1lLCB3aGlsZSB0aGUgbW9uaXRvciByZXBsYWNlcyBldmVyeSBub24tQVNDSUkgYnl0 ZSB3aXRoIGEKK3NwYWNlLCB3aGljaCBtYW5nbGVzIHBlcmZlY3RseSB2YWxpZCBVVEYtOCBuYW1l cyBhcyBzb29uIGFzIG9uZSBiYWQgYnl0ZQorYXBwZWFycy4gTW9zdCBhbHNvIGNvcHkgaW50byBh IGZpeGVkIHNpemUgc3RhY2sgYnVmZmVyIGZpcnN0LCB3aGljaCBpcword2hhdCBtYWRlIHRoZSBt aXNzaW5nIGNsYW1wIGluIHNyYy9laXIuYyBhIGJ1ZmZlciBvdmVyZmxvdy4KKworQWRkIGEgc2lu Z2xlIGhlbHBlciB0aGV5IGNhbiBzaGFyZS4gSXQgYWxsb2NhdGVzIHRoZSByZXN1bHQsIHNvIHRo ZXJlIGlzCitubyB0cnVuY2F0aW9uIHRvIGEgYnVmZmVyIHNpemUsIGFuZCByZXBsYWNlcyBlYWNo IGlsbC1mb3JtZWQgc2VxdWVuY2UKK3dpdGggVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiBy YXRoZXIgdGhhbiBkcm9wcGluZyB0aGUgcmVzdCBvZiB0aGUKK3N0cmluZywgbWF0Y2hpbmcgd2hh dCBnX3V0ZjhfbWFrZV92YWxpZCgpIGFuZCB0aGUgV0hBVFdHIEVuY29kaW5nCitTdGFuZGFyZCBk by4KKworVGhlIHJlc3VsdCBoYXMgYmVlbiBjaGVja2VkIGJ5dGUgZm9yIGJ5dGUgYWdhaW5zdCBQ eXRob24ncworYnl0ZXMuZGVjb2RlKCd1dGYtOCcsIGVycm9ycz0ncmVwbGFjZScpIG92ZXIgYWxs IG9uZSBhbmQgdHdvIGJ5dGUKK3NlcXVlbmNlcywgYSBzYW1wbGUgb2YgdGhlIHRocmVlIGJ5dGUg b25lcyBhbmQgMjAwMDAwIHJhbmRvbSBpbnB1dHMuCisKK0Fzc2lzdGVkLWJ5OiBDbGF1ZGU6Y2xh dWRlLW9wdXMtNQorLS0tCisgc3JjL3NoYXJlZC91dGlsLmMgfCA0NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL3NoYXJlZC91dGlsLmggfCAgNyAr KysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg YS9zcmMvc2hhcmVkL3V0aWwuYyBiL3NyYy9zaGFyZWQvdXRpbC5jCitpbmRleCBlOTQ2MjE0ZWRi YjkuLjhlYzliNTJlNjQwMSAxMDA2NDQKKy0tLSBhL3NyYy9zaGFyZWQvdXRpbC5jCisrKysgYi9z cmMvc2hhcmVkL3V0aWwuYworQEAgLTIzMTUsMyArMjMxNSw0OSBAQCBjaGFyICpzdHJ0b3V0Zjgo Y2hhciAqc3RyLCBzaXplX3QgbGVuKQorIAltZW1zZXQoc3RyICsgaSwgMCwgbGVuIC0gaSk7Cisg CXJldHVybiBzdHI7CisgfQorKworK2NoYXIgKnN0cjJ1dGY4KGNvbnN0IHVpbnQ4X3QgKnN0ciwg c2l6ZV90IGxlbikKKyt7CisrCWNoYXIgKnV0ZjgsICpvdXQsICpzdHJpcHBlZDsKKysJc2l6ZV90 IGkgPSAwOworKworKwlpZiAoIXN0cikKKysJCXJldHVybiBOVUxMOworKworKwkvKgorKwkgKiBJ bnZhbGlkIGJ5dGVzIGFyZSByZXBsYWNlZCB3aXRoIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNU RVIsIHdoaWNoCisrCSAqIGlzIDMgYnl0ZXMgbG9uZywgc28gdGhhdCBpcyB0aGUgd29yc3QgY2Fz ZSBzaXplIG9mIHRoZSByZXN1bHQuCisrCSAqLworKwl1dGY4ID0gbWFsbG9jKGxlbiAqIDMgKyAx KTsKKysJaWYgKCF1dGY4KQorKwkJcmV0dXJuIE5VTEw7CisrCisrCW91dCA9IHV0Zjg7CisrCisr CXdoaWxlIChpIDwgbGVuKSB7CisrCQlzaXplX3Qgc3VibGVuOworKwkJc2l6ZV90IHNpemUgPSB1 dGY4X3NlcWxlbihzdHIgKyBpLCBsZW4gLSBpLCAmc3VibGVuKTsKKysKKysJCWlmIChzaXplKSB7 CisrCQkJbWVtY3B5KG91dCwgc3RyICsgaSwgc2l6ZSk7CisrCQkJb3V0ICs9IHNpemU7CisrCQkJ aSArPSBzaXplOworKwkJCWNvbnRpbnVlOworKwkJfQorKworKwkJLyogUmVwbGFjZSB0aGUgbWF4 aW1hbCBzdWJwYXJ0IHdpdGggVStGRkZEICovCisrCQkqb3V0KysgPSAweGVmOworKwkJKm91dCsr ID0gMHhiZjsKKysJCSpvdXQrKyA9IDB4YmQ7CisrCQlpICs9IHN1YmxlbjsKKysJfQorKworKwkq b3V0ID0gJ1wwJzsKKysKKysJLyogUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3Bh Y2UgY2hhcmFjdGVycyAqLworKwlzdHJpcHBlZCA9IHN0cnN0cmlwKHV0ZjgpOworKwlpZiAoc3Ry aXBwZWQgIT0gdXRmOCkKKysJCW1lbW1vdmUodXRmOCwgc3RyaXBwZWQsIHN0cmxlbihzdHJpcHBl ZCkgKyAxKTsKKysKKysJcmV0dXJuIHV0Zjg7CisrfQorZGlmZiAtLWdpdCBhL3NyYy9zaGFyZWQv dXRpbC5oIGIvc3JjL3NoYXJlZC91dGlsLmgKK2luZGV4IDU2MmE1YWYzMTc1MS4uMTk4NGZiNzVm MDllIDEwMDY0NAorLS0tIGEvc3JjL3NoYXJlZC91dGlsLmgKKysrKyBiL3NyYy9zaGFyZWQvdXRp bC5oCitAQCAtMTQzLDYgKzE0MywxMyBAQCBib29sIHN0cmlzdXRmOChjb25zdCBjaGFyICpzdHIs IHNpemVfdCBsZW5ndGgpOworIGJvb2wgYXJnc2lzdXRmOChpbnQgYXJnYywgY2hhciAqYXJndltd KTsKKyBjaGFyICpzdHJ0b3V0ZjgoY2hhciAqc3RyLCBzaXplX3QgbGVuKTsKKyAKKysvKgorKyAq IFJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCwgTlVMIHRlcm1pbmF0ZWQgYW5kIHdoaXRlc3BhY2Ug c3RyaXBwZWQgVVRGLTgKKysgKiBjb3B5IG9mIHRoZSBmaXJzdCBsZW4gYnl0ZXMgb2Ygc3RyLCB3 aXRoIGVhY2ggaWxsLWZvcm1lZCBzZXF1ZW5jZSByZXBsYWNlZAorKyAqIGJ5IFUrRkZGRCBSRVBM QUNFTUVOVCBDSEFSQUNURVIuIFRoZSByZXN1bHQgbXVzdCBiZSBmcmVlZCB3aXRoIGZyZWUoKS4K KysgKi8KKytjaGFyICpzdHIydXRmOChjb25zdCB1aW50OF90ICpzdHIsIHNpemVfdCBsZW4pOwor KworIHZvaWQgKnV0aWxfbWFsbG9jKHNpemVfdCBzaXplKTsKKyB2b2lkICp1dGlsX21lbWR1cChj b25zdCB2b2lkICpzcmMsIHNpemVfdCBzaXplKTsKKyAKKy0tIAorMi41NS4wCisKKworRnJvbSA3 NGM1NmRmZjJhYTVkNWYzY2Y0MWU0NDZhMGFmZWViYjIxZmZjNGU0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50 ZWwuY29tPgorRGF0ZTogV2VkLCAxOSBBdWcgMjAyNiAxNjoxMjoxMSAtMDQwMAorU3ViamVjdDog W1BBVENIIDA2LzEwXSB1bml0L3Rlc3QtdXRpbDogQWRkIHN0cjJ1dGY4IHRlc3RzCisKK0NvdmVy IHRoZSBjYXNlcyBzdHIydXRmOCgpIGlzIG1lYW50IHRvIGhhbmRsZTogd2VsbC1mb3JtZWQgaW5w dXQgdGhhdAoraGFzIHRvIGJlIGxlZnQgYWxvbmUsIHdoaXRlc3BhY2Ugc3RyaXBwaW5nLCBpbnB1 dCB0aGF0IGlzIG5vdCBOVUwKK3Rlcm1pbmF0ZWQsIGFuZCB0aGUgaWxsLWZvcm1lZCBzZXF1ZW5j ZXMgdGhhdCBoYXZlIHRvIGJlIHJlcGxhY2VkLAoraW5jbHVkaW5nIHRoZSBvdmVybG9uZyBlbmNv ZGluZ3MsIHRoZSBVVEYtMTYgc3Vycm9nYXRlcyBhbmQgdGhlIGNvZGUKK3BvaW50cyBwYXN0IFUr MTBGRkZGLgorCitBbHNvIGNoZWNrIHRoYXQgYSBtYXhpbWFsIHN1YnBhcnQgaXMgcmVwbGFjZWQg YnkgYSBzaW5nbGUgVStGRkZEIHJhdGhlcgordGhhbiBvbmUgcGVyIGJ5dGUsIGFuZCB0aGF0IHRo ZSByZXN1bHQgaXMgYWx3YXlzIHdlbGwtZm9ybWVkIFVURi04LgorCitBc3Npc3RlZC1ieTogQ2xh dWRlOmNsYXVkZS1vcHVzLTUKKy0tLQorIHVuaXQvdGVzdC11dGlsLmMgfCA4MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg ODMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvdW5pdC90ZXN0LXV0aWwuYyBiL3VuaXQv dGVzdC11dGlsLmMKK2luZGV4IDE2NzJiMzJlYjM5Yy4uZjBiMWJiNzk5NGZiIDEwMDY0NAorLS0t IGEvdW5pdC90ZXN0LXV0aWwuYworKysrIGIvdW5pdC90ZXN0LXV0aWwuYworQEAgLTgzLDYgKzgz LDg1IEBAIHN0YXRpYyB2b2lkIHRlc3RfbWluX21heChjb25zdCB2b2lkICpkYXRhKQorIAl0ZXN0 ZXJfdGVzdF9wYXNzZWQoKTsKKyB9CisgCisrc3RydWN0IHN0cjJ1dGY4X2RhdGEgeworKwljb25z dCBjaGFyICppbnB1dDsJLyogTm90IE5VTCB0ZXJtaW5hdGVkLCBsZW4gYnl0ZXMgYXJlIHVzZWQg Ki8KKysJc2l6ZV90IGxlbjsKKysJY29uc3QgY2hhciAqZXhwZWN0ZWQ7CisrfTsKKysKKysjZGVm aW5lIEZGRkQgIlx4ZWZceGJmXHhiZCIJCS8qIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIg Ki8KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHN0cjJ1dGY4X2RhdGEgc3RyMnV0ZjhfdGVzdHNb XSA9IHsKKysJLyogTm90aGluZyB0byBkbyAqLworKwl7ICIiLCAwLCAiIiB9LAorKwl7ICJQaXhl bCA3IiwgNywgIlBpeGVsIDciIH0sCisrCS8qIFdlbGwtZm9ybWVkIG11bHRpLWJ5dGUgc2VxdWVu Y2VzIGFyZSBrZXB0IGFzIHRoZXkgYXJlICovCisrCXsgIlx4ZTJceDgyXHhhYyA1IiwgNSwgIlx4 ZTJceDgyXHhhYyA1IiB9LAkJLyogVSsyMEFDICovCisrCXsgIlx4ZjBceDlmXHg5NFx4OGEiLCA0 LCAiXHhmMFx4OWZceDk0XHg4YSIgfSwJCS8qIFUrMUY1MEEgKi8KKysJLyogTGVhZGluZyBhbmQg dHJhaWxpbmcgd2hpdGVzcGFjZSBpcyByZW1vdmVkICovCisrCXsgIiAgc3BhY2VkICAiLCAxMCwg InNwYWNlZCIgfSwKKysJeyAiXHRcclxubmFtZVxuXHJcdCIsIDEwLCAibmFtZSIgfSwKKysJeyAi ICAgIiwgMywgIiIgfSwKKysJLyogVGhlIG5hbWUgaXMgbm90IE5VTCB0ZXJtaW5hdGVkLCBvbmx5 IGxlbiBieXRlcyBhcmUgdXNlZCAqLworKwl7ICJ0cnVuY2F0ZWQiLCA0LCAidHJ1biIgfSwKKysJ LyogQSBieXRlIHRoYXQgY2FuIG5ldmVyIGFwcGVhciBpbiBVVEYtOCAqLworKwl7ICJhYlx4ZmYi ImNkIiwgNSwgImFiIiBGRkZEICJjZCIgfSwKKysJLyogQSBjb250aW51YXRpb24gYnl0ZSBjYW5u b3Qgc3RhcnQgYSBzZXF1ZW5jZSAqLworKwl7ICJhYlx4ODAiImNkIiwgNSwgImFiIiBGRkZEICJj ZCIgfSwKKysJLyogT25lIFUrRkZGRCBwZXIgbWF4aW1hbCBzdWJwYXJ0LCBub3QgcGVyIGJ5dGUg Ki8KKysJeyAiYWJceGUyXHg4MiIiY2QiLCA2LCAiYWIiIEZGRkQgImNkIiB9LAorKwkvKiBBIHNl cXVlbmNlIGN1dCBzaG9ydCBieSBsZW4gaXMgc3RpbGwgb25lIG1heGltYWwgc3VicGFydCAqLwor Kwl7ICJhYlx4ZTJceDgyXHhhYyIsIDQsICJhYiIgRkZGRCB9LAorKwkvKiBMYXRpbi0xIHRleHQg aXMgbm90IHZhbGlkIFVURi04ICovCisrCXsgImNhZlx4ZTkiLCA0LCAiY2FmIiBGRkZEIH0sCisr CS8qIE92ZXJsb25nIGVuY29kaW5ncyBhcmUgcmVqZWN0ZWQsIEMwIGFuZCBDMSBhcmUgbmV2ZXIg dmFsaWQgKi8KKysJeyAiXHhjMFx4ODAiLCAyLCBGRkZEIEZGRkQgfSwKKysJeyAiXHhjMFx4YWYi LCAyLCBGRkZEIEZGRkQgfSwKKysJLyogVVRGLTE2IHN1cnJvZ2F0ZXMgaGF2ZSBubyBVVEYtOCBl bmNvZGluZyAqLworKwl7ICJceGVkXHhhMFx4ODAiLCAzLCBGRkZEIEZGRkQgRkZGRCB9LAorKwkv KiBVKzEwRkZGRiBpcyB0aGUgbGFzdCBjb2RlIHBvaW50LCBGNSB0byBGRiBhcmUgb3V0IG9mIHJh bmdlICovCisrCXsgIlx4ZjRceDkwXHg4MFx4ODAiLCA0LCBGRkZEIEZGRkQgRkZGRCBGRkZEIH0s CisrCXsgIlx4ZjVceDgwXHg4MFx4ODAiLCA0LCBGRkZEIEZGRkQgRkZGRCBGRkZEIH0sCisrCS8q IFRoZSBsYXN0IGNvZGUgcG9pbnQgaXRzZWxmIGlzIGZpbmUgKi8KKysJeyAiXHhmNFx4OGZceGJm XHhiZiIsIDQsICJceGY0XHg4Zlx4YmZceGJmIiB9LAorKwkvKiBSZXBsYWNlbWVudCBhbmQgc3Ry aXBwaW5nIGNvbWJpbmVkICovCisrCXsgIiBceGZmICIsIDMsIEZGRkQgfSwKKyt9OworKworK3N0 YXRpYyB2b2lkIHRlc3Rfc3RyMnV0ZjgoY29uc3Qgdm9pZCAqZGF0YSkKKyt7CisrCXNpemVfdCBp OworKworKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHN0cjJ1dGY4X3Rlc3RzKSAvCisrCQkJCXNp emVvZihzdHIydXRmOF90ZXN0c1swXSk7IGkrKykgeworKwkJY29uc3Qgc3RydWN0IHN0cjJ1dGY4 X2RhdGEgKnRlc3QgPSAmc3RyMnV0ZjhfdGVzdHNbaV07CisrCQljaGFyICpzdHIgPSBzdHIydXRm OCgoY29uc3QgdWludDhfdCAqKSB0ZXN0LT5pbnB1dCwKKysJCQkJCQkJCXRlc3QtPmxlbik7Cisr CisrCQlhc3NlcnQoc3RyKTsKKysJCWlmIChzdHJjbXAoc3RyLCB0ZXN0LT5leHBlY3RlZCkpIHsK KysJCQlwcmludGYoInRlc3QgJXp1OiBleHBlY3RlZCBcIiVzXCIsIGdvdCBcIiVzXCJcbiIsIGks CisrCQkJCQkJCXRlc3QtPmV4cGVjdGVkLCBzdHIpOworKwkJCWZyZWUoc3RyKTsKKysJCQl0ZXN0 ZXJfdGVzdF9mYWlsZWQoKTsKKysJCQlyZXR1cm47CisrCQl9CisrCisrCQkvKiBUaGUgcmVzdWx0 IGlzIGFsd2F5cyB3ZWxsLWZvcm1lZCBVVEYtOCAqLworKwkJYXNzZXJ0KHN0cmlzdXRmOChzdHIs IHN0cmxlbihzdHIpKSk7CisrCisrCQlmcmVlKHN0cik7CisrCX0KKysKKysJdGVzdGVyX3Rlc3Rf cGFzc2VkKCk7CisrfQorKworK3N0YXRpYyB2b2lkIHRlc3Rfc3RyMnV0ZjhfbnVsbChjb25zdCB2 b2lkICpkYXRhKQorK3sKKysJYXNzZXJ0KCFzdHIydXRmOChOVUxMLCAwKSk7CisrCXRlc3Rlcl90 ZXN0X3Bhc3NlZCgpOworK30KKysKKyBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQor IHsKKyAJdGVzdGVyX2luaXQoJmFyZ2MsICZhcmd2KTsKK0BAIC05NSw2ICsxNzQsMTAgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAJCQl0ZXN0X2NsZWFudXBfdHlwZSwgTlVM TCk7CisgCXRlc3Rlcl9hZGQoIi91dGlsL2NsZWFudXBfZmQiLCBOVUxMLCBOVUxMLAorIAkJCXRl c3RfY2xlYW51cF9mZCwgTlVMTCk7CisrCXRlc3Rlcl9hZGQoIi91dGlsL3N0cjJ1dGY4IiwgTlVM TCwgTlVMTCwKKysJCQl0ZXN0X3N0cjJ1dGY4LCBOVUxMKTsKKysJdGVzdGVyX2FkZCgiL3V0aWwv c3RyMnV0ZjhfbnVsbCIsIE5VTEwsIE5VTEwsCisrCQkJdGVzdF9zdHIydXRmOF9udWxsLCBOVUxM KTsKKyAKKyAJcmV0dXJuIHRlc3Rlcl9ydW4oKTsKKyB9CistLSAKKzIuNTUuMAorCisKK0Zyb20g OGM4MWFiMTA4YjA5MTU0Yjg4NGIxYjA1NDlkYzljMjNmZmUzZWM2ZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEx1aXogQXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGlu dGVsLmNvbT4KK0RhdGU6IFdlZCwgMTkgQXVnIDIwMjYgMTY6MTg6MzggLTA0MDAKK1N1YmplY3Q6 IFtQQVRDSCAwNy8xMF0gUmVwbGFjZSB0aGUgbmFtZTJ1dGY4IGNvcGllcyB3aXRoIHN0cjJ1dGY4 CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK21vbml0b3IvYXR0LmMsIHBy b2ZpbGVzL2F1ZGlvL21jcC5jLCBwcm9maWxlcy9nYXAvZ2FzLmMgYW5kIHNyYy9laXIuYworZWFj aCBjYXJyaWVkIHRoZWlyIG93biBuYW1lMnV0ZjgoKSwgYW5kIHNyYy9zaGFyZWQvYWQuYyBvcGVu IGNvZGVkIHRoZQorc2FtZSB0aGluZyBpbiBhZF9yZXBsYWNlX25hbWUoKSwgd2l0aCBub25lIG9m IHRoZW0gYWdyZWVpbmcuCisKK1VzZSB0aGUgc2hhcmVkIGhlbHBlciBpbnN0ZWFkLCB3aGljaCBk cm9wcyBhcm91bmQgMTIwIGxpbmVzIGFuZCBnaXZlcworZXZlcnkgY2FsbGVyIHRoZSBzYW1lIGJl aGF2aW91ci4KKworVHdvIHRoaW5ncyBjaGFuZ2UgYXMgYSByZXN1bHQuIFRoZSBtb25pdG9yIHVz ZWQgdG8gcmVwbGFjZSBldmVyeQorbm9uLUFTQ0lJIGJ5dGUgd2l0aCBhIHNwYWNlIGFzIHNvb24g YXMgb25lIGJhZCBieXRlIGFwcGVhcmVkLCBtYW5nbGluZwordGhlIHZhbGlkIHBhcnQgb2YgdGhl IG5hbWUsIGFuZCBub3cgb25seSB0aGUgaWxsLWZvcm1lZCBzZXF1ZW5jZXMgYXJlCityZXBsYWNl ZC4gRXZlcnl0aGluZyBlbHNlIHVzZWQgdG8gdHJ1bmNhdGUgYXQgdGhlIGZpcnN0IGlsbC1mb3Jt ZWQKK3NlcXVlbmNlLCB0aHJvd2luZyBhd2F5IHRoZSByZXN0IG9mIHRoZSBuYW1lLCBhbmQgbm93 IGtlZXBzIGl0LgorCitUaGUgdW5pdC90ZXN0LWVpciBleHBlY3RhdGlvbnMgYXJlIHVwZGF0ZWQg YWNjb3JkaW5nbHksIGFuZCB0aGV5IHNob3cKK3RoZSBpbXByb3ZlbWVudDogdGhlIG5hbWUgdGhh dCB1c2VkIHRvIGJlIHJlcG9ydGVkIGFzICJ0ZXN0IOCkquCksOClgCIgaXMgbm93CityZXBvcnRl ZCBhcyAidGVzdCDgpKrgpLDgpYA8VStGRkZEPuCljeCkt+CkviBpbnZhbGlkIi4KKworc3RyMnV0 ZjgoKSByZXR1cm5zIG1lbW9yeSBmcm9tIG1hbGxvYygpLCBzbyB0aGUgY2FsbGVycyB0aGF0IHVz ZWQKK2dfZnJlZSgpIG5vdyB1c2UgZnJlZSgpLgorCitBc3Npc3RlZC1ieTogQ2xhdWRlOmNsYXVk ZS1vcHVzLTUKKy0tLQorIG1vbml0b3IvYXR0LmMgICAgICAgIHwgNjYgKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwcm9maWxlcy9hdWRpby9tY3AuYyB8IDI0 ICsrLS0tLS0tLS0tLS0tLS0KKyBwcm9maWxlcy9nYXAvZ2FzLmMgICB8IDIwICsrLS0tLS0tLS0t LS0tCisgc3JjL2Vpci5jICAgICAgICAgICAgfCAyMiArKy0tLS0tLS0tLS0tLS0KKyBzcmMvc2hh cmVkL2FkLmMgICAgICB8IDIwICsrKysrKy0tLS0tLS0tCisgdW5pdC90ZXN0LWVpci5jICAgICAg fCAxMSArKysrKy0tLQorIDYgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTIxIGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbW9uaXRvci9hdHQuYyBiL21vbml0b3IvYXR0LmMK K2luZGV4IDc1MDZkYzUyOGU4NS4uNDQ5NjVhMmFhZjNiIDEwMDY0NAorLS0tIGEvbW9uaXRvci9h dHQuYworKysrIGIvbW9uaXRvci9hdHQuYworQEAgLTE1LDcgKzE1LDYgQEAKKyAjZW5kaWYKKyAK KyAjZGVmaW5lIF9HTlVfU09VUkNFCistI2luY2x1ZGUgPGN0eXBlLmg+CisgI2luY2x1ZGUgPHN0 ZGlvLmg+CisgI2luY2x1ZGUgPHN0ZGxpYi5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4KK0BAIC0y MzI1LDQwICsyMzI0LDE1IEBAIHN0YXRpYyB2b2lkIHZvbF9mbGFnX25vdGlmeShjb25zdCBzdHJ1 Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorIAlwcmludF92Y3NfZmxhZyhmcmFtZSk7CisgfQorIAor LXN0YXRpYyBjaGFyICpuYW1lMnV0ZjgoY29uc3QgdWludDhfdCAqbmFtZSwgdWludDE2X3QgbGVu KQorLXsKKy0JY2hhciB1dGY4X25hbWVbSENJX01BWF9OQU1FX0xFTkdUSCArIDJdOworLQlpbnQg aTsKKy0KKy0JaWYgKGdfdXRmOF92YWxpZGF0ZSgoY29uc3QgY2hhciAqKSBuYW1lLCBsZW4sIE5V TEwpKQorLQkJcmV0dXJuIGdfc3RybmR1cCgoY2hhciAqKSBuYW1lLCBsZW4pOworLQorLQlsZW4g PSBNSU4obGVuLCBzaXplb2YodXRmOF9uYW1lKSAtIDEpOworLQorLQltZW1zZXQodXRmOF9uYW1l LCAwLCBzaXplb2YodXRmOF9uYW1lKSk7CistCXN0cm5jcHkodXRmOF9uYW1lLCAoY2hhciAqKSBu YW1lLCBsZW4pOworLQorLQkvKiBBc3N1bWUgQVNDSUksIGFuZCByZXBsYWNlIGFsbCBub24tQVND SUkgd2l0aCBzcGFjZXMgKi8KKy0JZm9yIChpID0gMDsgdXRmOF9uYW1lW2ldICE9ICdcMCc7IGkr KykgeworLQkJaWYgKCFpc2FzY2lpKHV0ZjhfbmFtZVtpXSkpCistCQkJdXRmOF9uYW1lW2ldID0g JyAnOworLQl9CistCistCS8qIFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNl IGNoYXJhY3RlcnMgKi8KKy0JZ19zdHJzdHJpcCh1dGY4X25hbWUpOworLQorLQlyZXR1cm4gZ19z dHJkdXAodXRmOF9uYW1lKTsKKy19CistCisgc3RhdGljIHZvaWQgcHJpbnRfbXBfbmFtZShjb25z dCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorIHsKKyAJY2hhciAqbmFtZTsKKyAKKy0JbmFt ZSA9IG5hbWUydXRmOCgodWludDhfdCAqKWZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisrCW5h bWUgPSBzdHIydXRmOChmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOworIAorIAlwcmludF9maWVs ZCgiICBNZWRpYSBQbGF5ZXIgTmFtZTogJXMiLCBuYW1lKTsKKyAKKy0JZ19mcmVlKG5hbWUpOwor KwlmcmVlKG5hbWUpOworIH0KKyAKKyBzdGF0aWMgdm9pZCBtcF9uYW1lX3JlYWQoY29uc3Qgc3Ry dWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKK0BAIC0yMzg1LDExICsyMzU5LDExIEBAIHN0YXRpYyB2 b2lkIHByaW50X3RyYWNrX3RpdGxlKGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJhbWUpCisg eworIAljaGFyICpuYW1lOworIAorLQluYW1lID0gbmFtZTJ1dGY4KCh1aW50OF90ICopZnJhbWUt PmRhdGEsIGZyYW1lLT5zaXplKTsKKysJbmFtZSA9IHN0cjJ1dGY4KGZyYW1lLT5kYXRhLCBmcmFt ZS0+c2l6ZSk7CisgCisgCXByaW50X2ZpZWxkKCIgIFRyYWNrIFRpdGxlOiAlcyIsIG5hbWUpOwor IAorLQlnX2ZyZWUobmFtZSk7CisrCWZyZWUobmFtZSk7CisgfQorIAorIHN0YXRpYyB2b2lkIHRy YWNrX3RpdGxlX3JlYWQoY29uc3Qgc3RydWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKK0BAIC0yNTIw LDExICsyNDk0LDExIEBAIHN0YXRpYyB2b2lkIHByaW50X2JlYXJlcl9uYW1lKGNvbnN0IHN0cnVj dCBsMmNhcF9mcmFtZSAqZnJhbWUpCisgeworIAljaGFyICpuYW1lOworIAorLQluYW1lID0gbmFt ZTJ1dGY4KCh1aW50OF90ICopZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKysJbmFtZSA9IHN0 cjJ1dGY4KGZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisgCisgCXByaW50X2ZpZWxkKCIgIEJl YXJlciBOYW1lOiAlcyIsIG5hbWUpOworIAorLQlnX2ZyZWUobmFtZSk7CisrCWZyZWUobmFtZSk7 CisgfQorIAorIHN0YXRpYyB2b2lkIGJlYXJlcl9uYW1lX3JlYWQoY29uc3Qgc3RydWN0IGwyY2Fw X2ZyYW1lICpmcmFtZSkKK0BAIC0yNTQxLDExICsyNTE1LDExIEBAIHN0YXRpYyB2b2lkIGJlYXJl cl91Y2lfcmVhZChjb25zdCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorIHsKKyAJY2hhciAq bmFtZTsKKyAKKy0JbmFtZSA9IG5hbWUydXRmOCgodWludDhfdCAqKWZyYW1lLT5kYXRhLCBmcmFt ZS0+c2l6ZSk7CisrCW5hbWUgPSBzdHIydXRmOChmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOwor IAorIAlwcmludF9maWVsZCgiICBCZWFyZXIgVWNpIE5hbWU6ICVzIiwgbmFtZSk7CisgCistCWdf ZnJlZShuYW1lKTsKKysJZnJlZShuYW1lKTsKKyB9CisgCisgc3RhdGljIHZvaWQgcHJpbnRfdGVj aG5vbG9neV9uYW1lKGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJhbWUpCitAQCAtMjYxMiwx MSArMjU4NiwxMSBAQCBzdGF0aWMgdm9pZCBwcmludF91cmlfc2NoZW1lX2xpc3QoY29uc3Qgc3Ry dWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKKyB7CisgCWNoYXIgKm5hbWU7CisgCistCW5hbWUgPSBu YW1lMnV0ZjgoKHVpbnQ4X3QgKilmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOworKwluYW1lID0g c3RyMnV0ZjgoZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKyAKKyAJcHJpbnRfZmllbGQoIiAg VXJpIHNjaGVtZSBOYW1lOiAlcyIsIG5hbWUpOworIAorLQlnX2ZyZWUobmFtZSk7CisrCWZyZWUo bmFtZSk7CisgfQorIAorIHN0YXRpYyB2b2lkIGJlYXJlcl91cmlfc2NoZW1lc19saXN0X3JlYWQo Y29uc3Qgc3RydWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKK0BAIC0yNzI2LDExICsyNzAwLDExIEBA IHN0YXRpYyB2b2lkIHByaW50X2NhbGxfbGlzdChjb25zdCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZy YW1lKQorIAorIAlwcmludF9maWVsZCgiICBjYWxsX2ZsYWc6IDB4JXgiLCBjYWxsX2ZsYWcpOwor IAorLQljYWxsX3VyaSA9IG5hbWUydXRmOCgodWludDhfdCAqKWZyYW1lLT5kYXRhLCBmcmFtZS0+ c2l6ZSk7CisrCWNhbGxfdXJpID0gc3RyMnV0ZjgoZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsK KyAKKyAJcHJpbnRfZmllbGQoIiAgY2FsbF91cmk6ICVzIiwgY2FsbF91cmkpOworIAorLQlnX2Zy ZWUoY2FsbF91cmkpOworKwlmcmVlKGNhbGxfdXJpKTsKKyAKKyBkb25lOgorIAlpZiAoZnJhbWUt PnNpemUpCitAQCAtMjgxNiwxMSArMjc5MCwxMSBAQCBzdGF0aWMgdm9pZCBwcmludF90YXJnZXRf dXJpKGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJhbWUpCisgCisgCXByaW50X2ZpZWxkKCIg IGNhbGxfaWR4OiAleCIsIGNhbGxfaWR4KTsKKyAKKy0JbmFtZSA9IG5hbWUydXRmOCgodWludDhf dCAqKWZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisrCW5hbWUgPSBzdHIydXRmOChmcmFtZS0+ ZGF0YSwgZnJhbWUtPnNpemUpOworIAorIAlwcmludF9maWVsZCgiICBVcmk6ICVzIiwgbmFtZSk7 CisgCistCWdfZnJlZShuYW1lKTsKKysJZnJlZShuYW1lKTsKKyAKKyBkb25lOgorIAlpZiAoZnJh bWUtPnNpemUpCitAQCAtMjkyOCw5ICsyOTAyLDkgQEAgc3RhdGljIHZvaWQgcHJpbnRfY2FsbF9j cChjb25zdCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorIAkJYnJlYWs7CisgCWNhc2UgMHgw NDoKKyAJCXN0ciA9ICJPcmlnaW5hdGUiOworLQkJbmFtZSA9IG5hbWUydXRmOCgodWludDhfdCAq KWZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisrCQluYW1lID0gc3RyMnV0ZjgoZnJhbWUtPmRh dGEsIGZyYW1lLT5zaXplKTsKKyAJCXByaW50X2ZpZWxkKCIgIE9wZXJhdGlvbjogJXMgIFVyaTog JXMiLCBzdHIsIG5hbWUpOworLQkJZ19mcmVlKG5hbWUpOworKwkJZnJlZShuYW1lKTsKKyAJCWJy ZWFrOworIAljYXNlIDB4MDU6CisgCQlzdHIgPSAiSm9pbiI7CitAQCAtMzEyNCwxMSArMzA5OCwx MSBAQCBzdGF0aWMgdm9pZCBwcmludF9pbmNvbV9jYWxsKGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFt ZSAqZnJhbWUpCisgCisgCXByaW50X2ZpZWxkKCIgIENhbGwgSW5kZXg6ICV1IiwgY2FsbF9pZCk7 CisgCistCW5hbWUgPSBuYW1lMnV0ZjgoKHVpbnQ4X3QgKilmcmFtZS0+ZGF0YSwgZnJhbWUtPnNp emUpOworKwluYW1lID0gc3RyMnV0ZjgoZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKyAKKyAJ cHJpbnRfZmllbGQoIiAgY2FsbF9zdHJpbmc6ICVzIiwgbmFtZSk7CisgCistCWdfZnJlZShuYW1l KTsKKysJZnJlZShuYW1lKTsKKyAKKyBkb25lOgorIAlpZiAoZnJhbWUtPnNpemUpCitAQCAtMzE1 NywxMSArMzEzMSwxMSBAQCBzdGF0aWMgdm9pZCBwcmludF9jYWxsX2ZyaWVuZGx5X25hbWUoY29u c3Qgc3RydWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKKyAKKyAJcHJpbnRfZmllbGQoIiAgQ2FsbCBJ bmRleDogJXUiLCBjYWxsX2lkKTsKKyAKKy0JbmFtZSA9IG5hbWUydXRmOCgodWludDhfdCAqKWZy YW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisrCW5hbWUgPSBzdHIydXRmOChmcmFtZS0+ZGF0YSwg ZnJhbWUtPnNpemUpOworIAorIAlwcmludF9maWVsZCgiICBGcmllbmRseSBOYW1lOiAlcyIsIG5h bWUpOworIAorLQlnX2ZyZWUobmFtZSk7CisrCWZyZWUobmFtZSk7CisgCisgZG9uZToKKyAJaWYg KGZyYW1lLT5zaXplKQorZGlmZiAtLWdpdCBhL3Byb2ZpbGVzL2F1ZGlvL21jcC5jIGIvcHJvZmls ZXMvYXVkaW8vbWNwLmMKK2luZGV4IDBjMmUwZGUwYjE1Ni4uOGFkZjgxNGU4ZDczIDEwMDY0NAor LS0tIGEvcHJvZmlsZXMvYXVkaW8vbWNwLmMKKysrKyBiL3Byb2ZpbGVzL2F1ZGlvL21jcC5jCitA QCAtNzMsMjYgKzczLDYgQEAgc3RydWN0IHJlbW90ZV9wbGF5ZXIgeworIAl1aW50OF90IHBsYXlp bmdfb3JkZXI7CisgfTsKKyAKKy1zdGF0aWMgY2hhciAqbmFtZTJ1dGY4KGNvbnN0IHVpbnQ4X3Qg Km5hbWUsIHVpbnQxNl90IGxlbikKKy17CistCWNoYXIgKnV0ZjhfbmFtZTsKKy0KKy0JdXRmOF9u YW1lID0gbWFsbG9jKGxlbiArIDEpOworLQlpZiAoIXV0ZjhfbmFtZSkKKy0JCXJldHVybiBOVUxM OworLQorLQlpZiAobGVuKQorLQkJbWVtY3B5KHV0ZjhfbmFtZSwgbmFtZSwgbGVuKTsKKy0KKy0J dXRmOF9uYW1lW2xlbl0gPSAwOworLQlzdHJ0b3V0ZjgodXRmOF9uYW1lLCBsZW4pOworLQorLQkv KiBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzICovCist CWdfc3Ryc3RyaXAodXRmOF9uYW1lKTsKKy0KKy0JcmV0dXJuIHV0ZjhfbmFtZTsKKy19CistCisg c3RhdGljIGNvbnN0IGNoYXIgKm1jcF9zdGF0dXNfdmFsX3RvX3N0cmluZyh1aW50OF90IHN0YXR1 cykKKyB7CisgCXN3aXRjaCAoc3RhdHVzKSB7CitAQCAtMTE4LDcgKzk4LDcgQEAgc3RhdGljIHZv aWQgcmVtb3RlX21lZGlhX3BsYXllcl9uYW1lKHZvaWQgKmRhdGEsIGNvbnN0IHVpbnQ4X3QgKnZh bHVlLAorIAlzdHJ1Y3QgcmVtb3RlX3BsYXllciAqcmVtb3RlID0gZGF0YTsKKyAJY2hhciAqbmFt ZTsKKyAKKy0JbmFtZSA9IG5hbWUydXRmOCh2YWx1ZSwgbGVuZ3RoKTsKKysJbmFtZSA9IHN0cjJ1 dGY4KHZhbHVlLCBsZW5ndGgpOworIAlpZiAoIW5hbWUpCisgCQlyZXR1cm47CisgCitAQCAtMTQ1 LDcgKzEyNSw3IEBAIHN0YXRpYyB2b2lkIHJlbW90ZV90cmFja190aXRsZSh2b2lkICpkYXRhLCBj b25zdCB1aW50OF90ICp2YWx1ZSwKKyAJY2hhciAqbmFtZTsKKyAJdWludDE2X3QgbGVuOworIAor LQluYW1lID0gbmFtZTJ1dGY4KHZhbHVlLCBsZW5ndGgpOworKwluYW1lID0gc3RyMnV0ZjgodmFs dWUsIGxlbmd0aCk7CisgCWlmICghbmFtZSkKKyAJCXJldHVybjsKKyAKK2RpZmYgLS1naXQgYS9w cm9maWxlcy9nYXAvZ2FzLmMgYi9wcm9maWxlcy9nYXAvZ2FzLmMKK2luZGV4IDBmNDFjOWU2YzJh NS4uNTE4NGQ3NGU4ZjA3IDEwMDY0NAorLS0tIGEvcHJvZmlsZXMvZ2FwL2dhcy5jCisrKysgYi9w cm9maWxlcy9nYXAvZ2FzLmMKK0BAIC02NiwyMiArNjYsNiBAQCBzdGF0aWMgdm9pZCBnYXNfZnJl ZShzdHJ1Y3QgZ2FzICpnYXMpCisgCWdfZnJlZShnYXMpOworIH0KKyAKKy1zdGF0aWMgY2hhciAq bmFtZTJ1dGY4KGNvbnN0IHVpbnQ4X3QgKm5hbWUsIHVpbnQxNl90IGxlbikKKy17CistCWNoYXIg dXRmOF9uYW1lW0hDSV9NQVhfTkFNRV9MRU5HVEggKyAyXTsKKy0KKy0JbGVuID0gTUlOKGxlbiwg c2l6ZW9mKHV0ZjhfbmFtZSkgLSAxKTsKKy0KKy0JbWVtc2V0KHV0ZjhfbmFtZSwgMCwgc2l6ZW9m KHV0ZjhfbmFtZSkpOworLQlzdHJuY3B5KHV0ZjhfbmFtZSwgKGNoYXIgKikgbmFtZSwgbGVuKTsK Ky0Jc3RydG91dGY4KHV0ZjhfbmFtZSwgbGVuKTsKKy0KKy0JLyogUmVtb3ZlIGxlYWRpbmcgYW5k IHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAqLworLQlnX3N0cnN0cmlwKHV0ZjhfbmFt ZSk7CistCistCXJldHVybiBnX3N0cmR1cCh1dGY4X25hbWUpOworLX0KKy0KKyBzdGF0aWMgdm9p ZCByZWFkX2RldmljZV9uYW1lX2NiKGJvb2wgc3VjY2VzcywgdWludDhfdCBhdHRfZWNvZGUsCisg CQkJCQljb25zdCB1aW50OF90ICp2YWx1ZSwgdWludDE2X3QgbGVuZ3RoLAorIAkJCQkJdm9pZCAq dXNlcl9kYXRhKQorQEAgLTk4LDEzICs4MiwxMyBAQCBzdGF0aWMgdm9pZCByZWFkX2RldmljZV9u YW1lX2NiKGJvb2wgc3VjY2VzcywgdWludDhfdCBhdHRfZWNvZGUsCisgCWlmICghbGVuZ3RoKQor IAkJcmV0dXJuOworIAorLQluYW1lID0gbmFtZTJ1dGY4KHZhbHVlLCBsZW5ndGgpOworKwluYW1l ID0gc3RyMnV0ZjgodmFsdWUsIGxlbmd0aCk7CisgCisgCURCRygiR0FQIERldmljZSBOYW1lOiAl cyIsIG5hbWUpOworIAorIAlidGRfZGV2aWNlX2RldmljZV9zZXRfbmFtZShnYXMtPmRldmljZSwg bmFtZSk7CisgCistCWdfZnJlZShuYW1lKTsKKysJZnJlZShuYW1lKTsKKyB9CisgCisgc3RhdGlj IHZvaWQgaGFuZGxlX2RldmljZV9uYW1lKHN0cnVjdCBnYXMgKmdhcywgdWludDE2X3QgdmFsdWVf aGFuZGxlKQorZGlmZiAtLWdpdCBhL3NyYy9laXIuYyBiL3NyYy9laXIuYworaW5kZXggNDQyMWIx NjYyZDY1Li41YzllYmUyYWYzYTMgMTAwNjQ0CistLS0gYS9zcmMvZWlyLmMKKysrKyBiL3NyYy9l aXIuYworQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBlaXJfZGF0YV9mcmVlKHN0cnVjdCBlaXJfZGF0 YSAqZWlyKQorIHsKKyAJcXVldWVfZGVzdHJveShlaXItPnNlcnZpY2VzLCBnX2ZyZWUpOworIAll aXItPnNlcnZpY2VzID0gTlVMTDsKKy0JZ19mcmVlKGVpci0+bmFtZSk7CisrCWZyZWUoZWlyLT5u YW1lKTsKKyAJZWlyLT5uYW1lID0gTlVMTDsKKyAJZnJlZShlaXItPmhhc2gpOworIAllaXItPmhh c2ggPSBOVUxMOworQEAgLTEzMywyMiArMTMzLDYgQEAgc3RhdGljIHZvaWQgZWlyX3BhcnNlX3V1 aWQxMjgoc3RydWN0IGVpcl9kYXRhICplaXIsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgCX0KKyB9 CisgCistc3RhdGljIGNoYXIgKm5hbWUydXRmOChjb25zdCB1aW50OF90ICpuYW1lLCB1aW50OF90 IGxlbikKKy17CistCWNoYXIgdXRmOF9uYW1lW0hDSV9NQVhfTkFNRV9MRU5HVEggKyAyXTsKKy0K Ky0JbGVuID0gTUlOKGxlbiwgSENJX01BWF9OQU1FX0xFTkdUSCk7CistCistCW1lbXNldCh1dGY4 X25hbWUsIDAsIHNpemVvZih1dGY4X25hbWUpKTsKKy0Jc3RybmNweSh1dGY4X25hbWUsIChjaGFy ICopIG5hbWUsIGxlbik7CistCXN0cnRvdXRmOCh1dGY4X25hbWUsIGxlbik7CistCistCS8qIFJl bW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKi8KKy0JZ19z dHJzdHJpcCh1dGY4X25hbWUpOworLQorLQlyZXR1cm4gZ19zdHJkdXAodXRmOF9uYW1lKTsKKy19 CistCisgc3RhdGljIHZvaWQgZWlyX3BhcnNlX21zZChzdHJ1Y3QgZWlyX2RhdGEgKmVpciwgY29u c3QgdWludDhfdCAqZGF0YSwKKyAJCQkJCQkJCXVpbnQ4X3QgbGVuKQorIHsKK0BAIC0zMDEsOSAr Mjg1LDkgQEAgdm9pZCBlaXJfcGFyc2Uoc3RydWN0IGVpcl9kYXRhICplaXIsIGNvbnN0IHVpbnQ4 X3QgKmVpcl9kYXRhLCB1aW50OF90IGVpcl9sZW4pCisgCQkJd2hpbGUgKGRhdGFfbGVuID4gMCAm JiBkYXRhW2RhdGFfbGVuIC0gMV0gPT0gJ1wwJykKKyAJCQkJZGF0YV9sZW4tLTsKKyAKKy0JCQln X2ZyZWUoZWlyLT5uYW1lKTsKKysJCQlmcmVlKGVpci0+bmFtZSk7CisgCistCQkJZWlyLT5uYW1l ID0gbmFtZTJ1dGY4KGRhdGEsIGRhdGFfbGVuKTsKKysJCQllaXItPm5hbWUgPSBzdHIydXRmOChk YXRhLCBkYXRhX2xlbik7CisgCQkJZWlyLT5uYW1lX2NvbXBsZXRlID0gZWlyX2RhdGFbMV0gIT0g RUlSX05BTUVfU0hPUlQ7CisgCQkJYnJlYWs7CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC9h ZC5jIGIvc3JjL3NoYXJlZC9hZC5jCitpbmRleCBlYmVlMDc4NTAwYzYuLjIzNmU3MTk1MDdlNCAx MDA2NDQKKy0tLSBhL3NyYy9zaGFyZWQvYWQuYworKysrIGIvc3JjL3NoYXJlZC9hZC5jCitAQCAt Mjc1LDIyICsyNzUsMTggQEAgc3RhdGljIGJvb2wgYWRfcmVwbGFjZV91dWlkMTI4KHN0cnVjdCBi dF9hZCAqYWQsIHN0cnVjdCBpb3ZlYyAqaW92KQorIAorIHN0YXRpYyBib29sIGFkX3JlcGxhY2Vf bmFtZShzdHJ1Y3QgYnRfYWQgKmFkLCBzdHJ1Y3QgaW92ZWMgKmlvdikKKyB7CistCWNoYXIgdXRm OF9uYW1lW0hDSV9NQVhfTkFNRV9MRU5HVEggKyAyXTsKKy0Jc2l6ZV90IGxlbiA9IE1JTihpb3Yt Pmlvdl9sZW4sIChzaXplX3QpIEhDSV9NQVhfTkFNRV9MRU5HVEgpOworKwljaGFyICp1dGY4X25h bWU7CisrCWJvb2wgcmV0OworIAorLQltZW1zZXQodXRmOF9uYW1lLCAwLCBzaXplb2YodXRmOF9u YW1lKSk7CistCXN0cm5jcHkodXRmOF9uYW1lLCAoY29uc3QgY2hhciAqKWlvdi0+aW92X2Jhc2Us IGxlbik7CistCistCWlmIChzdHJpc3V0ZjgodXRmOF9uYW1lLCBsZW4pKQorLQkJZ290byBkb25l OworKwl1dGY4X25hbWUgPSBzdHIydXRmOChpb3YtPmlvdl9iYXNlLCBpb3YtPmlvdl9sZW4pOwor KwlpZiAoIXV0ZjhfbmFtZSkKKysJCXJldHVybiBmYWxzZTsKKyAKKy0Jc3RydG91dGY4KHV0Zjhf bmFtZSwgbGVuKTsKKysJcmV0ID0gYnRfYWRfYWRkX25hbWUoYWQsIHV0ZjhfbmFtZSk7CisgCist CS8qIFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKi8K Ky0Jc3Ryc3RyaXAodXRmOF9uYW1lKTsKKysJZnJlZSh1dGY4X25hbWUpOworIAorLWRvbmU6Cist CXJldHVybiBidF9hZF9hZGRfbmFtZShhZCwgdXRmOF9uYW1lKTsKKysJcmV0dXJuIHJldDsKKyB9 CisgCisgc3RhdGljIGJvb2wgYWRfcmVwbGFjZV91dWlkMTZfZGF0YShzdHJ1Y3QgYnRfYWQgKmFk LCBzdHJ1Y3QgaW92ZWMgKmlvdikKK2RpZmYgLS1naXQgYS91bml0L3Rlc3QtZWlyLmMgYi91bml0 L3Rlc3QtZWlyLmMKK2luZGV4IDMyNmJjODk5ZTI1MS4uMzgwZmNiYTJmMzhlIDEwMDY0NAorLS0t IGEvdW5pdC90ZXN0LWVpci5jCisrKysgYi91bml0L3Rlc3QtZWlyLmMKK0BAIC00MDcsNyArNDA3 LDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW52YWxpZF91dGY4X25hbWVfZGF0YVtd ID0geworIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdF9kYXRhIGludmFsaWRfdXRmOF9uYW1lX3Rl c3QgPSB7CisgCS5laXJfZGF0YSA9IGludmFsaWRfdXRmOF9uYW1lX2RhdGEsCisgCS5laXJfc2l6 ZSA9IHNpemVvZihpbnZhbGlkX3V0ZjhfbmFtZV9kYXRhKSwKKy0JLm5hbWUgPSAidGVzdCDgpKrg pLDgpYAiLAorKwkvKiBUaGUgdHJ1bmNhdGVkIHNlcXVlbmNlIGlzIHJlcGxhY2VkIGJ5IFUrRkZG RCwgdGhlIHJlc3QgaXMga2VwdCAqLworKwkubmFtZSA9ICJ0ZXN0IOCkquCksOClgCIgIlx4ZWZc eGJmXHhiZCIgIuCljeCkt+CkviBpbnZhbGlkIiwKKyAJLm5hbWVfY29tcGxldGUgPSB0cnVlLAor IAkudHhfcG93ZXIgPSAxMjcsCisgfTsKK0BAIC00MzUsNyArNDM2LDkgQEAgc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgaXNvXzIwMjJfanBfbmFtZV9kYXRhW10gPSB7Cisgc3RhdGljIGNvbnN0 IHN0cnVjdCB0ZXN0X2RhdGEgaXNvXzIwMjJfanBfbmFtZV90ZXN0ID0geworIAkuZWlyX2RhdGEg PSBpc29fMjAyMl9qcF9uYW1lX2RhdGEsCisgCS5laXJfc2l6ZSA9IHNpemVvZihpc29fMjAyMl9q cF9uYW1lX2RhdGEpLAorLQkubmFtZSA9ICJ0ZXN0IFwwMzMkQiIsCisrCS8qIFRoZSA0IEpJUyBi eXRlcyBhcmUgcmVwbGFjZWQgYnkgVStGRkZELCB0aGUgZXNjYXBlcyBhcmUgQVNDSUkgKi8KKysJ Lm5hbWUgPSAidGVzdCBcMDMzJEIiICJceGVmXHhiZlx4YmRceGVmXHhiZlx4YmRceGVmXHhiZlx4 YmRceGVmXHhiZlx4YmQiCisrCQkJCQkJCQkiXDAzMyhCIE9LIiwKKyAJLm5hbWVfY29tcGxldGUg PSB0cnVlLAorIAkudHhfcG93ZXIgPSAxMjcsCisgfTsKK0BAIC00NzUsOCArNDc4LDggQEAgc3Rh dGljIHZvaWQgbWF4X25hbWVfc2V0dXAoY29uc3Qgdm9pZCAqZGF0YSkKKyBzdGF0aWMgdW5zaWdu ZWQgY2hhciBsb25nX25hbWVfZGF0YVsyNTVdOworIHN0YXRpYyBjaGFyIGxvbmdfbmFtZVtzaXpl b2YobG9uZ19uYW1lX2RhdGEpIC0gMiArIDFdOworIAorLS8qIFRoZSBuYW1lIGRvZXMgbm90IGZp dCwgc28gaXQgY29tZXMgYmFjayBjbGFtcGVkIHRvIEhDSV9NQVhfTkFNRV9MRU5HVEggKi8KKy0j ZGVmaW5lIExPTkdfTkFNRV9MRU4JSENJX01BWF9OQU1FX0xFTkdUSAorKy8qIHN0cjJ1dGY4KCkg ZG9lcyBub3QgY2xhbXAsIHNvIHRoZSB3aG9sZSBuYW1lIGlzIGtlcHQgKi8KKysjZGVmaW5lIExP TkdfTkFNRV9MRU4JKHNpemVvZihsb25nX25hbWVfZGF0YSkgLSAyKQorIAorIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdGVzdF9kYXRhIGxvbmdfbmFtZV90ZXN0ID0geworIAkuZWlyX2RhdGEgPSBsb25n X25hbWVfZGF0YSwKKy0tIAorMi41NS4wCisKKworRnJvbSAyYmY4Mjg2YzRlYmU2MjU2YjE1MmMz YWRhYjZlYTBmZWQ4YTgzNGQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTHVpeiBB dWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwuY29tPgorRGF0ZTogV2VkLCAx OSBBdWcgMjAyNiAxNjoyNzowNyAtMDQwMAorU3ViamVjdDogW1BBVENIIDA4LzEwXSBkZXZpY2U6 IEZpeCB0aGUgbmFtZSB0cnVuY2F0aW9uIHNwbGl0dGluZyBVVEYtOAorIHNlcXVlbmNlcworCiti dGRfZGV2aWNlX2RldmljZV9zZXRfbmFtZSgpIGNvcGllcyB0aGUgbmFtZSB3aXRoCisKKwlzdHJu Y3B5KGRldmljZS0+bmFtZSwgbmFtZSwgTUFYX05BTUVfTEVOR1RIKTsKKword2hpY2ggY3V0cyBh dCAyNDggYnl0ZXMgd2l0aG91dCBhbnkgcmVnYXJkIGZvciB3aGVyZSB0aGUgVVRGLTgKK2NoYXJh Y3RlcnMgc3RhcnQgYW5kIGVuZCwgc28gYSBsb25nZXIgbmFtZSBjYW4gYmUgbGVmdCB3aXRoIGEg cGFydGlhbAorc2VxdWVuY2UuIFRoZSByZXN1bHQgaXMgbm8gbG9uZ2VyIHZhbGlkIFVURi04IGFu ZCBELUJ1cyByZWplY3RzIGl0IHdoZW4KK3RoZSBOYW1lIHByb3BlcnR5IGlzIGVtaXR0ZWQuCisK K0EgbmFtZSBtYWRlIG9mIDI0OSBVK0ZGRkQgY2hhcmFjdGVycyBpcyA3NDcgYnl0ZXMgbG9uZyBh bmQgY3V0dGluZyBpdCBhdAorMjQ4IGxlYXZlcyBhIHRyYWlsaW5nICJlZiBiZiIsIHR3byB0aGly ZHMgb2YgYSBjaGFyYWN0ZXIuCisKK1RydW5jYXRlIG9uIGEgY2hhcmFjdGVyIGJvdW5kYXJ5IGlu c3RlYWQuIFRoZSBzYW1lIG5hbWUgbm93IGVuZHMgdXAgMjQ2CitieXRlcyBsb25nIGFuZCBzdGF5 cyB2YWxpZC4KKworVGhpcyBhbHNvIG1lYW5zIGEgbmFtZSB0aGF0IGlzIG5vdCB2YWxpZCBVVEYt OCB0byBiZWdpbiB3aXRoLCBhcyBjYW4gYmUKK2hhZCBmcm9tIHRoZSBuZWFyZCBhbmQgc2l4YXhp cyBwbHVnaW5zLCBpcyBub3cgY3V0IGF0IHRoZSBmaXJzdAoraWxsLWZvcm1lZCBzZXF1ZW5jZSBy YXRoZXIgdGhhbiBwYXNzZWQgb24gYXMgaXMuCisKK0Fzc2lzdGVkLWJ5OiBDbGF1ZGU6Y2xhdWRl LW9wdXMtNQorLS0tCisgc3JjL2RldmljZS5jIHwgMTIgKysrKysrKysrKystCisgMSBmaWxlIGNo YW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3Ny Yy9kZXZpY2UuYyBiL3NyYy9kZXZpY2UuYworaW5kZXggNjVkODRiZTU2Y2E1Li5kZjYwN2Y3MThi ZTEgMTAwNjQ0CistLS0gYS9zcmMvZGV2aWNlLmMKKysrKyBiL3NyYy9kZXZpY2UuYworQEAgLTUx MDMsMTIgKzUxMDMsMjIgQEAgY2hhciAqYnRkX2RldmljZV9nZXRfc3RvcmFnZV9wYXRoKHN0cnVj dCBidGRfZGV2aWNlICpkZXZpY2UsIGNvbnN0IGNoYXIgKm5hbWUpCisgCisgdm9pZCBidGRfZGV2 aWNlX2RldmljZV9zZXRfbmFtZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLCBjb25zdCBjaGFy ICpuYW1lKQorIHsKKysJc2l6ZV90IGxlbjsKKysKKyAJaWYgKHN0cm5jbXAobmFtZSwgZGV2aWNl LT5uYW1lLCBNQVhfTkFNRV9MRU5HVEgpID09IDApCisgCQlyZXR1cm47CisgCisgCURCRygiJXMg JXMiLCBkZXZpY2UtPnBhdGgsIG5hbWUpOworIAorLQlzdHJuY3B5KGRldmljZS0+bmFtZSwgbmFt ZSwgTUFYX05BTUVfTEVOR1RIKTsKKysJLyoKKysJICogVHJ1bmNhdGUgb24gYSBjaGFyYWN0ZXIg Ym91bmRhcnksIHNvIHRoYXQgYSBuYW1lIGxvbmdlciB0aGFuCisrCSAqIE1BWF9OQU1FX0xFTkdU SCBkb2VzIG5vdCBlbmQgdXAgd2l0aCBhIHBhcnRpYWwgc2VxdWVuY2UsIHdoaWNoCisrCSAqIHdv dWxkIG5vIGxvbmdlciBiZSB2YWxpZCBVVEYtOCBhbmQgd291bGQgYmUgcmVqZWN0ZWQgYnkgRC1C dXMuCisrCSAqLworKwlsZW4gPSBzdHJubGVudXRmOChuYW1lLCBNSU4oc3RybGVuKG5hbWUpLCAo c2l6ZV90KSBNQVhfTkFNRV9MRU5HVEgpKTsKKysKKysJbWVtY3B5KGRldmljZS0+bmFtZSwgbmFt ZSwgbGVuKTsKKysJZGV2aWNlLT5uYW1lW2xlbl0gPSAnXDAnOworIAorIAlzdG9yZV9kZXZpY2Vf aW5mbyhkZXZpY2UpOworIAorLS0gCisyLjU1LjAKKworCitGcm9tIGJlZjBmYWEzMTJlZWI4MzM0 NGJiMmJlYWQ1YmJiZDBiNTM4NDE0ZTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBM dWl6IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+CitEYXRlOiBX ZWQsIDE5IEF1ZyAyMDI2IDE2OjI3OjE5IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMDkvMTBdIGRl dmljZTogUmVuYW1lIGJ0ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lIHRvCisgYnRkX2RldmljZV9z ZXRfbmFtZQorCitUaGUgImRldmljZSIgd2FzIGluIHRoZXJlIHR3aWNlLgorCitBc3Npc3RlZC1i eTogQ2xhdWRlOmNsYXVkZS1vcHVzLTUKKy0tLQorIHBsdWdpbnMvbmVhcmQuYyAgICB8IDIgKy0K KyBwbHVnaW5zL3NpeGF4aXMuYyAgfCAyICstCisgcHJvZmlsZXMvZ2FwL2dhcy5jIHwgMiArLQor IHNyYy9hZGFwdGVyLmMgICAgICB8IDQgKystLQorIHNyYy9kZXZpY2UuYyAgICAgICB8IDIgKy0K KyBzcmMvZGV2aWNlLmggICAgICAgfCAyICstCisgNiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL25lYXJkLmMgYi9w bHVnaW5zL25lYXJkLmMKK2luZGV4IGVkZmMxMTUzNzNlZi4uMTYzM2RkNTc2NzQ3IDEwMDY0NAor LS0tIGEvcGx1Z2lucy9uZWFyZC5jCisrKysgYi9wbHVnaW5zL25lYXJkLmMKK0BAIC02MjksNyAr NjI5LDcgQEAgc3RhdGljIHZvaWQgc3RvcmVfcGFyYW1zKHN0cnVjdCBidGRfYWRhcHRlciAqYWRh cHRlciwgc3RydWN0IGJ0ZF9kZXZpY2UgKmRldmljZSwKKyAKKyAJaWYgKHBhcmFtcy0+bmFtZSkg eworIAkJZGV2aWNlX3N0b3JlX2NhY2hlZF9uYW1lKGRldmljZSwgcGFyYW1zLT5uYW1lKTsKKy0J CWJ0ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lKGRldmljZSwgcGFyYW1zLT5uYW1lKTsKKysJCWJ0 ZF9kZXZpY2Vfc2V0X25hbWUoZGV2aWNlLCBwYXJhbXMtPm5hbWUpOworIAl9CisgCisgCWlmIChw YXJhbXMtPnNlcnZpY2VzKQorZGlmZiAtLWdpdCBhL3BsdWdpbnMvc2l4YXhpcy5jIGIvcGx1Z2lu cy9zaXhheGlzLmMKK2luZGV4IGEwNGE3NmQzOTRlYi4uZmMyYjJhOWQwMTU2IDEwMDY0NAorLS0t IGEvcGx1Z2lucy9zaXhheGlzLmMKKysrKyBiL3BsdWdpbnMvc2l4YXhpcy5jCitAQCAtMzYyLDcg KzM2Miw3IEBAIHN0YXRpYyBib29sIHNldHVwX2RldmljZShpbnQgZmQsIGNvbnN0IGNoYXIgKnN5 c2ZzX3BhdGgsCisgCisgCWluZm8oInNpeGF4aXM6IHNldHRpbmcgdXAgbmV3IGRldmljZSIpOwor IAorLQlidGRfZGV2aWNlX2RldmljZV9zZXRfbmFtZShkZXZpY2UsIGNwLT5uYW1lKTsKKysJYnRk X2RldmljZV9zZXRfbmFtZShkZXZpY2UsIGNwLT5uYW1lKTsKKyAJYnRkX2RldmljZV9zZXRfcG5w aWQoZGV2aWNlLCBjcC0+c291cmNlLCBjcC0+dmlkLCBjcC0+cGlkLCBjcC0+dmVyc2lvbik7Cisg CWJ0ZF9kZXZpY2Vfc2V0X3RlbXBvcmFyeShkZXZpY2UsIHRydWUpOworIAorZGlmZiAtLWdpdCBh L3Byb2ZpbGVzL2dhcC9nYXMuYyBiL3Byb2ZpbGVzL2dhcC9nYXMuYworaW5kZXggNTE4NGQ3NGU4 ZjA3Li40OTU3OTllNjQxZDkgMTAwNjQ0CistLS0gYS9wcm9maWxlcy9nYXAvZ2FzLmMKKysrKyBi L3Byb2ZpbGVzL2dhcC9nYXMuYworQEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIHZvaWQgcmVhZF9k ZXZpY2VfbmFtZV9jYihib29sIHN1Y2Nlc3MsIHVpbnQ4X3QgYXR0X2Vjb2RlLAorIAorIAlEQkco IkdBUCBEZXZpY2UgTmFtZTogJXMiLCBuYW1lKTsKKyAKKy0JYnRkX2RldmljZV9kZXZpY2Vfc2V0 X25hbWUoZ2FzLT5kZXZpY2UsIG5hbWUpOworKwlidGRfZGV2aWNlX3NldF9uYW1lKGdhcy0+ZGV2 aWNlLCBuYW1lKTsKKyAKKyAJZnJlZShuYW1lKTsKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL2FkYXB0 ZXIuYyBiL3NyYy9hZGFwdGVyLmMKK2luZGV4IGMyMWIzZTdmYmNjMi4uY2Y1OWRiNGFhNWE5IDEw MDY0NAorLS0tIGEvc3JjL2FkYXB0ZXIuYworKysrIGIvc3JjL2FkYXB0ZXIuYworQEAgLTc2Mjgs NyArNzYyOCw3IEBAIHZvaWQgYnRkX2FkYXB0ZXJfZGV2aWNlX2ZvdW5kKHN0cnVjdCBidGRfYWRh cHRlciAqYWRhcHRlciwKKyAJbmFtZV9rbm93biA9IGRldmljZV9uYW1lX2tub3duKGRldik7Cisg CisgCWlmIChlaXJfZGF0YS5uYW1lICYmIChlaXJfZGF0YS5uYW1lX2NvbXBsZXRlIHx8ICFuYW1l X2tub3duKSkKKy0JCWJ0ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lKGRldiwgZWlyX2RhdGEubmFt ZSk7CisrCQlidGRfZGV2aWNlX3NldF9uYW1lKGRldiwgZWlyX2RhdGEubmFtZSk7CisgCisgCWlm IChlaXJfZGF0YS5jbGFzcyAhPSAwKQorIAkJZGV2aWNlX3NldF9jbGFzcyhkZXYsIGVpcl9kYXRh LmNsYXNzKTsKK0BAIC05ODE0LDcgKzk4MTQsNyBAQCBzdGF0aWMgdm9pZCBjb25uZWN0ZWRfY2Fs bGJhY2sodWludDE2X3QgaW5kZXgsIHVpbnQxNl90IGxlbmd0aCwKKyAKKyAJaWYgKGVpcl9kYXRh Lm5hbWUgJiYgKGVpcl9kYXRhLm5hbWVfY29tcGxldGUgfHwgIW5hbWVfa25vd24pKSB7CisgCQlk ZXZpY2Vfc3RvcmVfY2FjaGVkX25hbWUoZGV2aWNlLCBlaXJfZGF0YS5uYW1lKTsKKy0JCWJ0ZF9k ZXZpY2VfZGV2aWNlX3NldF9uYW1lKGRldmljZSwgZWlyX2RhdGEubmFtZSk7CisrCQlidGRfZGV2 aWNlX3NldF9uYW1lKGRldmljZSwgZWlyX2RhdGEubmFtZSk7CisgCX0KKyAKKyAJaWYgKGVpcl9k YXRhLm1zZF9saXN0KQorZGlmZiAtLWdpdCBhL3NyYy9kZXZpY2UuYyBiL3NyYy9kZXZpY2UuYwor aW5kZXggZGY2MDdmNzE4YmUxLi45NjA5YTE0Zjc4ODMgMTAwNjQ0CistLS0gYS9zcmMvZGV2aWNl LmMKKysrKyBiL3NyYy9kZXZpY2UuYworQEAgLTUxMDEsNyArNTEwMSw3IEBAIGNoYXIgKmJ0ZF9k ZXZpY2VfZ2V0X3N0b3JhZ2VfcGF0aChzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLCBjb25zdCBj aGFyICpuYW1lKQorIAlyZXR1cm4gc3RyZHVwKGZpbGVuYW1lKTsKKyB9CisgCistdm9pZCBidGRf ZGV2aWNlX2RldmljZV9zZXRfbmFtZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLCBjb25zdCBj aGFyICpuYW1lKQorK3ZvaWQgYnRkX2RldmljZV9zZXRfbmFtZShzdHJ1Y3QgYnRkX2RldmljZSAq ZGV2aWNlLCBjb25zdCBjaGFyICpuYW1lKQorIHsKKyAJc2l6ZV90IGxlbjsKKyAKK2RpZmYgLS1n aXQgYS9zcmMvZGV2aWNlLmggYi9zcmMvZGV2aWNlLmgKK2luZGV4IGI4OTBmMjNkNDY0Mi4uNzY4 M2JlODJlZTNmIDEwMDY0NAorLS0tIGEvc3JjL2RldmljZS5oCisrKysgYi9zcmMvZGV2aWNlLmgK K0BAIC0yMyw3ICsyMyw3IEBAIGNoYXIgKmJ0ZF9kZXZpY2VfZ2V0X3N0b3JhZ2VfcGF0aChzdHJ1 Y3QgYnRkX2RldmljZSAqZGV2aWNlLAorIAkJCQljb25zdCBjaGFyICpmaWxlbmFtZSk7CisgCisg Cistdm9pZCBidGRfZGV2aWNlX2RldmljZV9zZXRfbmFtZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2 aWNlLCBjb25zdCBjaGFyICpuYW1lKTsKKyt2b2lkIGJ0ZF9kZXZpY2Vfc2V0X25hbWUoc3RydWN0 IGJ0ZF9kZXZpY2UgKmRldmljZSwgY29uc3QgY2hhciAqbmFtZSk7Cisgdm9pZCBkZXZpY2Vfc3Rv cmVfY2FjaGVkX25hbWUoc3RydWN0IGJ0ZF9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSk7 Cisgdm9pZCBkZXZpY2VfZ2V0X25hbWUoc3RydWN0IGJ0ZF9kZXZpY2UgKmRldmljZSwgY2hhciAq bmFtZSwgc2l6ZV90IGxlbik7CisgYm9vbCBkZXZpY2VfbmFtZV9rbm93bihzdHJ1Y3QgYnRkX2Rl dmljZSAqZGV2aWNlKTsKKy0tIAorMi41NS4wCisKKworRnJvbSBmMGU0MGM1YjNlNmFmNjk3NGM0 NDA3N2NjZDBjZGMwMWEyMTcyZjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTHVp eiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwuY29tPgorRGF0ZTogV2Vk LCAxOSBBdWcgMjAyNiAxNjoyOToxOSAtMDQwMAorU3ViamVjdDogW1BBVENIIDEwLzEwXSB1bml0 L3Rlc3QtdXRpbDogQ292ZXIgc3RydG91dGY4IHdpdGggdGhlIHN0cjJ1dGY4IHRlc3RzCisKK3N0 cnRvdXRmOCgpIGFuZCBzdHIydXRmOCgpIGFyZSB0aGUgdHdvIHdheXMgb2YgZGVhbGluZyB3aXRo IGEgbmFtZSB0aGF0CitpcyBub3QgdmFsaWQgVVRGLTgsIHNvIHJ1biB0aGVtIG92ZXIgdGhlIHNh bWUgaW5wdXRzIGFuZCBrZWVwIHRoZSB0d28KK2V4cGVjdGVkIHJlc3VsdHMgc2lkZSBieSBzaWRl LCB3aGljaCBkb2N1bWVudHMgaG93IHRoZXkgZGlmZmVyOgorc3RydG91dGY4KCkgdHJ1bmNhdGVz IGF0IHRoZSBmaXJzdCBpbGwtZm9ybWVkIHNlcXVlbmNlIGFuZCBsZWF2ZXMgdGhlCit3aGl0ZXNw YWNlIGFsb25lLCBzdHIydXRmOCgpIHJlcGxhY2VzIHRoZSBpbGwtZm9ybWVkIHNlcXVlbmNlcyBh bmQKK3N0cmlwcy4KKworVGhlIGV4cGVjdGVkIHJlc3VsdHMgd2VyZSBjaGVja2VkIGFnYWluc3Qg UHl0aG9uLCB0YWtpbmcgdGhlIGxvbmdlc3QKK3ByZWZpeCB0aGF0IGRlY29kZXMgYXMgc3RyaWN0 IFVURi04LCBvdmVyIGV2ZXJ5IG9uZSwgdHdvIGFuZCB0aHJlZSBieXRlCitzZXF1ZW5jZSwgMTY2 NDY2NTUgb2YgdGhlbSwgd2l0aCBubyBtaXNtYXRjaC4KKworQXNzaXN0ZWQtYnk6IENsYXVkZTpj bGF1ZGUtb3B1cy01CistLS0KKyB1bml0L3Rlc3QtdXRpbC5jIHwgOTQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDY2IGlu c2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdW5pdC90ZXN0LXV0 aWwuYyBiL3VuaXQvdGVzdC11dGlsLmMKK2luZGV4IGYwYjFiYjc5OTRmYi4uZTYwNWQxN2I2YjU2 IDEwMDY0NAorLS0tIGEvdW5pdC90ZXN0LXV0aWwuYworKysrIGIvdW5pdC90ZXN0LXV0aWwuYwor QEAgLTgzLDY1ICs4MywxMDEgQEAgc3RhdGljIHZvaWQgdGVzdF9taW5fbWF4KGNvbnN0IHZvaWQg KmRhdGEpCisgCXRlc3Rlcl90ZXN0X3Bhc3NlZCgpOworIH0KKyAKKy1zdHJ1Y3Qgc3RyMnV0Zjhf ZGF0YSB7Cisrc3RydWN0IHV0ZjhfZGF0YSB7CisgCWNvbnN0IGNoYXIgKmlucHV0OwkvKiBOb3Qg TlVMIHRlcm1pbmF0ZWQsIGxlbiBieXRlcyBhcmUgdXNlZCAqLworIAlzaXplX3QgbGVuOworLQlj b25zdCBjaGFyICpleHBlY3RlZDsKKysJY29uc3QgY2hhciAqc3RyMnV0Zjg7CS8qIElsbC1mb3Jt ZWQgc2VxdWVuY2VzIHJlcGxhY2VkLCBzdHJpcHBlZCAqLworKwljb25zdCBjaGFyICpzdHJ0b3V0 Zjg7CS8qIFRydW5jYXRlZCBhdCB0aGUgZmlyc3QgaWxsLWZvcm1lZCBvbmUgKi8KKyB9OworIAor ICNkZWZpbmUgRkZGRCAiXHhlZlx4YmZceGJkIgkJLyogVStGRkZEIFJFUExBQ0VNRU5UIENIQVJB Q1RFUiAqLworIAorLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RyMnV0ZjhfZGF0YSBzdHIydXRmOF90 ZXN0c1tdID0geworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXRmOF9kYXRhIHV0ZjhfdGVzdHNbXSA9 IHsKKyAJLyogTm90aGluZyB0byBkbyAqLworLQl7ICIiLCAwLCAiIiB9LAorLQl7ICJQaXhlbCA3 IiwgNywgIlBpeGVsIDciIH0sCisrCXsgIiIsIDAsICIiLCAiIiB9LAorKwl7ICJQaXhlbCA3Iiwg NywgIlBpeGVsIDciLCAiUGl4ZWwgNyIgfSwKKyAJLyogV2VsbC1mb3JtZWQgbXVsdGktYnl0ZSBz ZXF1ZW5jZXMgYXJlIGtlcHQgYXMgdGhleSBhcmUgKi8KKy0JeyAiXHhlMlx4ODJceGFjIDUiLCA1 LCAiXHhlMlx4ODJceGFjIDUiIH0sCQkvKiBVKzIwQUMgKi8KKy0JeyAiXHhmMFx4OWZceDk0XHg4 YSIsIDQsICJceGYwXHg5Zlx4OTRceDhhIiB9LAkJLyogVSsxRjUwQSAqLworKwl7ICJceGUyXHg4 Mlx4YWMgNSIsIDUsICJceGUyXHg4Mlx4YWMgNSIsCQkvKiBVKzIwQUMgKi8KKysJCQkJCQkiXHhl Mlx4ODJceGFjIDUiIH0sCisrCXsgIlx4ZjBceDlmXHg5NFx4OGEiLCA0LCAiXHhmMFx4OWZceDk0 XHg4YSIsCS8qIFUrMUY1MEEgKi8KKysJCQkJCQkiXHhmMFx4OWZceDk0XHg4YSIgfSwKKyAJLyog TGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyByZW1vdmVkICovCistCXsgIiAgc3Bh Y2VkICAiLCAxMCwgInNwYWNlZCIgfSwKKy0JeyAiXHRcclxubmFtZVxuXHJcdCIsIDEwLCAibmFt ZSIgfSwKKy0JeyAiICAgIiwgMywgIiIgfSwKKysJeyAiICBzcGFjZWQgICIsIDEwLCAic3BhY2Vk IiwgIiAgc3BhY2VkICAiIH0sCisrCXsgIlx0XHJcbm5hbWVcblxyXHQiLCAxMCwgIm5hbWUiLCAi XHRcclxubmFtZVxuXHJcdCIgfSwKKysJeyAiICAgIiwgMywgIiIsICIgICAiIH0sCisgCS8qIFRo ZSBuYW1lIGlzIG5vdCBOVUwgdGVybWluYXRlZCwgb25seSBsZW4gYnl0ZXMgYXJlIHVzZWQgKi8K Ky0JeyAidHJ1bmNhdGVkIiwgNCwgInRydW4iIH0sCisrCXsgInRydW5jYXRlZCIsIDQsICJ0cnVu IiwgInRydW4iIH0sCisgCS8qIEEgYnl0ZSB0aGF0IGNhbiBuZXZlciBhcHBlYXIgaW4gVVRGLTgg Ki8KKy0JeyAiYWJceGZmIiJjZCIsIDUsICJhYiIgRkZGRCAiY2QiIH0sCisrCXsgImFiXHhmZiIi Y2QiLCA1LCAiYWIiIEZGRkQgImNkIiwgImFiIiB9LAorIAkvKiBBIGNvbnRpbnVhdGlvbiBieXRl IGNhbm5vdCBzdGFydCBhIHNlcXVlbmNlICovCistCXsgImFiXHg4MCIiY2QiLCA1LCAiYWIiIEZG RkQgImNkIiB9LAorKwl7ICJhYlx4ODAiImNkIiwgNSwgImFiIiBGRkZEICJjZCIsICJhYiIgfSwK KyAJLyogT25lIFUrRkZGRCBwZXIgbWF4aW1hbCBzdWJwYXJ0LCBub3QgcGVyIGJ5dGUgKi8KKy0J eyAiYWJceGUyXHg4MiIiY2QiLCA2LCAiYWIiIEZGRkQgImNkIiB9LAorKwl7ICJhYlx4ZTJceDgy IiJjZCIsIDYsICJhYiIgRkZGRCAiY2QiLCAiYWIiIH0sCisgCS8qIEEgc2VxdWVuY2UgY3V0IHNo b3J0IGJ5IGxlbiBpcyBzdGlsbCBvbmUgbWF4aW1hbCBzdWJwYXJ0ICovCistCXsgImFiXHhlMlx4 ODJceGFjIiwgNCwgImFiIiBGRkZEIH0sCisrCXsgImFiXHhlMlx4ODJceGFjIiwgNCwgImFiIiBG RkZELCAiYWIiIH0sCisgCS8qIExhdGluLTEgdGV4dCBpcyBub3QgdmFsaWQgVVRGLTggKi8KKy0J eyAiY2FmXHhlOSIsIDQsICJjYWYiIEZGRkQgfSwKKysJeyAiY2FmXHhlOSIsIDQsICJjYWYiIEZG RkQsICJjYWYiIH0sCisgCS8qIE92ZXJsb25nIGVuY29kaW5ncyBhcmUgcmVqZWN0ZWQsIEMwIGFu ZCBDMSBhcmUgbmV2ZXIgdmFsaWQgKi8KKy0JeyAiXHhjMFx4ODAiLCAyLCBGRkZEIEZGRkQgfSwK Ky0JeyAiXHhjMFx4YWYiLCAyLCBGRkZEIEZGRkQgfSwKKysJeyAiXHhjMFx4ODAiLCAyLCBGRkZE IEZGRkQsICIiIH0sCisrCXsgIlx4YzBceGFmIiwgMiwgRkZGRCBGRkZELCAiIiB9LAorIAkvKiBV VEYtMTYgc3Vycm9nYXRlcyBoYXZlIG5vIFVURi04IGVuY29kaW5nICovCistCXsgIlx4ZWRceGEw XHg4MCIsIDMsIEZGRkQgRkZGRCBGRkZEIH0sCisrCXsgIlx4ZWRceGEwXHg4MCIsIDMsIEZGRkQg RkZGRCBGRkZELCAiIiB9LAorIAkvKiBVKzEwRkZGRiBpcyB0aGUgbGFzdCBjb2RlIHBvaW50LCBG NSB0byBGRiBhcmUgb3V0IG9mIHJhbmdlICovCistCXsgIlx4ZjRceDkwXHg4MFx4ODAiLCA0LCBG RkZEIEZGRkQgRkZGRCBGRkZEIH0sCistCXsgIlx4ZjVceDgwXHg4MFx4ODAiLCA0LCBGRkZEIEZG RkQgRkZGRCBGRkZEIH0sCisrCXsgIlx4ZjRceDkwXHg4MFx4ODAiLCA0LCBGRkZEIEZGRkQgRkZG RCBGRkZELCAiIiB9LAorKwl7ICJceGY1XHg4MFx4ODBceDgwIiwgNCwgRkZGRCBGRkZEIEZGRkQg RkZGRCwgIiIgfSwKKyAJLyogVGhlIGxhc3QgY29kZSBwb2ludCBpdHNlbGYgaXMgZmluZSAqLwor LQl7ICJceGY0XHg4Zlx4YmZceGJmIiwgNCwgIlx4ZjRceDhmXHhiZlx4YmYiIH0sCisrCXsgIlx4 ZjRceDhmXHhiZlx4YmYiLCA0LCAiXHhmNFx4OGZceGJmXHhiZiIsCisrCQkJCQkJIlx4ZjRceDhm XHhiZlx4YmYiIH0sCisgCS8qIFJlcGxhY2VtZW50IGFuZCBzdHJpcHBpbmcgY29tYmluZWQgKi8K Ky0JeyAiIFx4ZmYgIiwgMywgRkZGRCB9LAorKwl7ICIgXHhmZiAiLCAzLCBGRkZELCAiICIgfSwK KyB9OworIAorIHN0YXRpYyB2b2lkIHRlc3Rfc3RyMnV0ZjgoY29uc3Qgdm9pZCAqZGF0YSkKKyB7 CisgCXNpemVfdCBpOworIAorLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHN0cjJ1dGY4X3Rlc3Rz KSAvCistCQkJCXNpemVvZihzdHIydXRmOF90ZXN0c1swXSk7IGkrKykgeworLQkJY29uc3Qgc3Ry dWN0IHN0cjJ1dGY4X2RhdGEgKnRlc3QgPSAmc3RyMnV0ZjhfdGVzdHNbaV07CisrCWZvciAoaSA9 IDA7IGkgPCBzaXplb2YodXRmOF90ZXN0cykgLyBzaXplb2YodXRmOF90ZXN0c1swXSk7IGkrKykg eworKwkJY29uc3Qgc3RydWN0IHV0ZjhfZGF0YSAqdGVzdCA9ICZ1dGY4X3Rlc3RzW2ldOworIAkJ Y2hhciAqc3RyID0gc3RyMnV0ZjgoKGNvbnN0IHVpbnQ4X3QgKikgdGVzdC0+aW5wdXQsCisgCQkJ CQkJCQl0ZXN0LT5sZW4pOworIAorIAkJYXNzZXJ0KHN0cik7CistCQlpZiAoc3RyY21wKHN0ciwg dGVzdC0+ZXhwZWN0ZWQpKSB7CisrCQlpZiAoc3RyY21wKHN0ciwgdGVzdC0+c3RyMnV0ZjgpKSB7 CisgCQkJcHJpbnRmKCJ0ZXN0ICV6dTogZXhwZWN0ZWQgXCIlc1wiLCBnb3QgXCIlc1wiXG4iLCBp LAorLQkJCQkJCQl0ZXN0LT5leHBlY3RlZCwgc3RyKTsKKysJCQkJCQkJdGVzdC0+c3RyMnV0Zjgs IHN0cik7CisrCQkJZnJlZShzdHIpOworKwkJCXRlc3Rlcl90ZXN0X2ZhaWxlZCgpOworKwkJCXJl dHVybjsKKysJCX0KKysKKysJCS8qIFRoZSByZXN1bHQgaXMgYWx3YXlzIHdlbGwtZm9ybWVkIFVU Ri04ICovCisrCQlhc3NlcnQoc3RyaXN1dGY4KHN0ciwgc3RybGVuKHN0cikpKTsKKysKKysJCWZy ZWUoc3RyKTsKKysJfQorKworKwl0ZXN0ZXJfdGVzdF9wYXNzZWQoKTsKKyt9CisrCisrc3RhdGlj IHZvaWQgdGVzdF9zdHJ0b3V0ZjgoY29uc3Qgdm9pZCAqZGF0YSkKKyt7CisrCXNpemVfdCBpOwor KworKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHV0ZjhfdGVzdHMpIC8gc2l6ZW9mKHV0ZjhfdGVz dHNbMF0pOyBpKyspIHsKKysJCWNvbnN0IHN0cnVjdCB1dGY4X2RhdGEgKnRlc3QgPSAmdXRmOF90 ZXN0c1tpXTsKKysJCWNoYXIgKnN0cjsKKysKKysJCS8qIHN0cnRvdXRmOCgpIHdvcmtzIGluIHBs YWNlLCBzbyBpdCBuZWVkcyBhIHdyaXRhYmxlIGNvcHkgKi8KKysJCXN0ciA9IG1hbGxvYyh0ZXN0 LT5sZW4gKyAxKTsKKysJCWFzc2VydChzdHIpOworKwkJbWVtY3B5KHN0ciwgdGVzdC0+aW5wdXQs IHRlc3QtPmxlbik7CisrCQlzdHJbdGVzdC0+bGVuXSA9ICdcMCc7CisrCisrCQlhc3NlcnQoc3Ry dG91dGY4KHN0ciwgdGVzdC0+bGVuKSA9PSBzdHIpOworKworKwkJaWYgKHN0cmNtcChzdHIsIHRl c3QtPnN0cnRvdXRmOCkpIHsKKysJCQlwcmludGYoInRlc3QgJXp1OiBleHBlY3RlZCBcIiVzXCIs IGdvdCBcIiVzXCJcbiIsIGksCisrCQkJCQkJCXRlc3QtPnN0cnRvdXRmOCwgc3RyKTsKKyAJCQlm cmVlKHN0cik7CisgCQkJdGVzdGVyX3Rlc3RfZmFpbGVkKCk7CisgCQkJcmV0dXJuOworQEAgLTE3 OCw2ICsyMTQsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorIAkJCXRlc3Rf c3RyMnV0ZjgsIE5VTEwpOworIAl0ZXN0ZXJfYWRkKCIvdXRpbC9zdHIydXRmOF9udWxsIiwgTlVM TCwgTlVMTCwKKyAJCQl0ZXN0X3N0cjJ1dGY4X251bGwsIE5VTEwpOworKwl0ZXN0ZXJfYWRkKCIv dXRpbC9zdHJ0b3V0ZjgiLCBOVUxMLCBOVUxMLAorKwkJCXRlc3Rfc3RydG91dGY4LCBOVUxMKTsK KyAKKyAJcmV0dXJuIHRlc3Rlcl9ydW4oKTsKKyB9CistLSAKKzIuNTUuMAorCg==