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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Fix Intel VLA patchset regression: dynamic.exp: p varw filled Date: Thu, 23 Jul 2026 18:32:29 GMT Message-ID: <178483154983.1.16823656286403673456.rpms-gdb-72aed9dc5ed9@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 72aed9dc5ed96eeda145acc6b2c8a88bbd291564 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogNzJhZWQ5ZGM1ZWQ5NmVlZGExNDVhY2M2YjJjOGE4OGJi ZDI5MTU2NApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNi0wOC0yNlQxNzowOTo0NyswMjowMApTdGF0cyAgOiArMjk2Ni8tMjI4 NCBpbiAxMyBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2RiL2MvNzJhZWQ5ZGM1ZWQ5NmVlZGExNDVhY2M2YjJjOGE4OGJiZDI5MTU2ND9icmFuY2g9 Zml4LWR1cC1wYXRjaAoKTG9nOgpGaXggSW50ZWwgVkxBIHBhdGNoc2V0IHJlZ3Jlc3Npb246IGR5 bmFtaWMuZXhwOiBwIHZhcncgZmlsbGVkCgotLS0KZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItdmxh LXRlc3RzLnBhdGNoIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKaW5kZXggN2Y3ZTE4NC4u ZjMwMTgwYSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKKysrIGIvZ2Ri LWFyY2hlci12bGEtdGVzdHMucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKK0luZGV4 OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5 LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wNy0xNiAwMzo0ODo1OS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEv cGFja2VkX2FycmF5LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNjE3Mjg4OSArMDIwMAorLS0t IGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9h cnJheS5leHAJMjAxNi0wOC0wNyAwNDowMDowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2 LTA4LTI1IDE4OjQ0OjQyLjA1ODc4OTA1OCArMDIwMAogQEAgLTU2LDUgKzU2LDExIEBACiAgICAg ICAgICAjIGFyZS4gIE9ic2VydmVkIHdpdGggKEZTRiBHTlUgQWRhIDQuNS4zIDIwMTEwMTI0KS4K ICAgICAgICAgIHhmYWlsICR0ZXN0CkBAIC0xNCwxMCArMTQsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCiArICAg IH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZs YS10eXBlZGVmLWZvby5TCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5 cGVkZWYtZm9vLlMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTg3ODkwNTggKzAyMDAKIEBAIC0wLDAg KzEsNDU1IEBACiArCS5maWxlCSJ4ODZfNjQtdmxhLXR5cGVkZWYuYyIKICsJLnNlY3Rpb24JLmRl YnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKQEAgLTQ3NCwxMCArNDc0LDEwIEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRl Zi1mb28uUwogKwkuc3RyaW5nCSJHTlUgQyA0LjMuMiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03 KSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDQuMy4yIDIwMDgxMTA1IChSZWQgSGF0IDQuMy4yLTcp IgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi1JbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYu YworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2 XzY0LXZsYS10eXBlZGVmLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIwMTYtMDctMTYgMTY6NTM6MzMu NzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA1ODc4OTA1 OCArMDIwMAogQEAgLTAsMCArMSw0NSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC01MjQsMTAgKzUyNCwxMCBAQCBJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVk ZWYuYwogK30KICsKICsjZW5kaWYKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKK0luZGV4OiBnZGItNy4xMS45 MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4 Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAK KysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12 bGEtdHlwZWRlZi5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTg3ODkwNTggKzAyMDAKIEBAIC0w LDAgKzEsNjQgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwpAQCAtNTkzLDEwICs1OTMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAogK2dkYl90ZXN0 ICJ3aGF0aXMgYXJyYXkiICJ0eXBlID0gYXJyYXlfdCIgInNlY29uZDogd2hhdGlzIGFycmF5Igog KwogK2dkYl90ZXN0ICJwdHlwZSBhcnJheSIgInR5cGUgPSBjaGFyIFxcXFs3OFxcXF0iICJzZWNv bmQ6IHB0eXBlIGFycmF5IgotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDct MTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcy ODk3ICswMjAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2FycmF5aWR4LmMJMjAxNi0wOC0wNyAwNDowMDowMS4wMDAwMDAwMDAgKzAyMDAKKysr KyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJ MjAxNi0wOC0yNSAxODo0NDo0Mi4wNTg3ODkwNTggKzAyMDAKIEBAIC0xNyw2ICsxNywxMyBAQAog IAogIGludCBhcnJheVtdID0gezEsIDIsIDMsIDR9OwpAQCAtNjExLDEwICs2MTEsMTAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHgu YwogIGludAogIG1haW4gKHZvaWQpCiAgewotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguZXhwCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wNy0x NiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDgtMDcgMDQ6MDA6MDEu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTk3ODkwNjcgKzAyMDAK IEBAIC00OSw0ICs0OSwxMiBAQAogICAgICAgICAgICJcXHtcXFxbMFxcXF0gPSAxLCBcXFxbMVxc XF0gPSAyLCBcXFxbMlxcXF0gPSAzLCBcXFxbM1xcXF0gPSA0XFx9IiBcCiAgICAgICAgICAgIlBy aW50IGFycmF5IHdpdGggYXJyYXktaW5kZXhlcyBvbiIKQEAgLTYyOSwxMCArNjI5LDEwIEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4 LmV4cAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5vIEdDQykiCiArICAgIH0KICt9Ci1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXIt ZmllbGQtYWRkcmVzcy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQt YWRkcmVzcy5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQt YWRkcmVzcy5jCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDU5Nzg5MDY3ICswMjAwCiBAQCAtMCwwICsx LDIwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTY1NCwxMCArNjU0LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKICtzdHJ1 Y3QgewogKyAgaW50IGZpZWxkOwogK30gc3RhdGljc3RydWN0ID0geyAxIH07Ci1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmll bGQtYWRkcmVzcy5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxk LWFkZHJlc3MuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmll bGQtYWRkcmVzcy5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTk3ODkwNjcgKzAyMDAKIEBAIC0w LDAgKzEsMjYgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwpAQCAtNjg1LDEwICs2ODUsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXgKICsK ICtnZGJfdGVzdCB7c2V0ICR2YXJzdHJ1Y3QgPSBzdGF0aWNzdHJ1Y3R9CiArZ2RiX3Rlc3Qge3Ag JHZhcnN0cnVjdC5maWVsZH0gIiA9IDEiCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYw ODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5jCTIwMTYtMDct MTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA1OTc4 OTA2NyArMDIwMAogQEAgLTAsMCArMSwzMSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03MjEsMTAgKzcyMSwxMCBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwog KyAgZiAocyk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhw CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCTIwMTYtMDgtMjUgMTg6 NDQ6NDIuMDU5Nzg5MDY3ICswMjAwCiBAQCAtMCwwICsxLDM4IEBACiArIyBDb3B5cmlnaHQgMjAx MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC03NjQsMTAgKzc2NCwxMCBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEt ZnJhbWUuZXhwCiArfQogKwogK2dkYl90ZXN0ICJidCBmdWxsIiAiXHJcbiArcyA9IFwiWFxcXFww MDBcIlxyXG4uKiIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMJMjAxNi0wNy0xNiAx Njo1MzozMy43MzcxNzI4OTcgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDU5Nzg5 MDY3ICswMjAwCiBAQCAtMCwwICsxLDMwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTc5OSwxMCArNzk5LDEwIEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5j CiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu ZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCTIwMTYtMDgt MjUgMTg6NDQ6NDIuMDU5Nzg5MDY3ICswMjAwCiBAQCAtMCwwICsxLDEwOSBAQAogKyMgQ29weXJp Z2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC05MTMsMTAgKzkx MywxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtb3ZlcmZsb3cuZXhwCiArZ2RiX3Rlc3QgImJ0IiAiaW4gXFteIFxdKmFib3J0IFxcKC4q IGluIG1haW4gXFwoLioiICJCYWNrdHJhY2UgYWZ0ZXIgYWJvcnQoKSIKICsKICt2ZXJib3NlIC1s b2cgImtiX2ZvdW5kIGluIGJ0IGFmdGVyIGFib3J0KCkgPSBbZXhwciBbbWVtb3J5X3ZfcGFnZXNf Z2V0XSAqICRwYWdlc2l6ZSAvIDEwMjRdIgotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3 Mjg5NyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLmMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTk3ODkwNjcgKzAyMDAKIEBAIC0wLDAgKzEs NTUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgogKwpAQCAtOTczLDEwICs5NzMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKICsgIGZvbyAoNzgpOwogKyAgcmV0dXJuIDA7CiAr fQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAorKysrIGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE2LTA4 LTI1IDE4OjQ0OjQyLjA1OTc4OTA2NyArMDIwMAogQEAgLTAsMCArMSw2MiBAQAogKyMgQ29weXJp Z2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMDQwLDEwICsx MDQwLDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3ZsYS5leHAKICtnZGJfdGVzdCAicCB0ZW1wMSIgIiA9ICcxJyA8cmVwZWF0cyA3OCB0aW1l cz4iICJzZWNvbmQ6IHByaW50IHRlbXAxIgogK2dkYl90ZXN0ICJwIHRlbXAyIiAiID0gJzInIDxy ZXBlYXRzIDc4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDIiCiArZ2RiX3Rlc3QgInAgdGVt cDMiICIgPSAnMycgPHJlcGVhdHMgNDggdGltZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMyIKLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0w Ny0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwkyMDE2LTA4LTI1IDE4 OjQ0OjQyLjA2MDc4OTA3NiArMDIwMAogQEAgLTAsMCArMSwyNDYgQEAKICsvKiBUaGlzIHRlc3Rj YXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTI5MSwxMCArMTI5 MSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKICsJLnN0cmluZwkJImNoYXIiCiArLkx1aW50X3N0cjoK ICsJLnN0cmluZwkJInVuc2lnbmVkIGludCIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCitJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2Ns aXN0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5 MDYgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2ICsw MjAwCiBAQCAtMCwwICsxLDY2IEBACiArIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KICsKQEAgLTEzNjIsMTAgKzEzNjIsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5l eHAKICsKICsjIFRoZSByZWdpc3RlciBjb250YWlucyB1bnByZWRpY3RhYmxlIHZhbHVlIC0gdGhl IGFycmF5IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBlIHJlZ19zdHJpbmciIHt0eXBlID0gY2hhciBc Wy0/WzAtOV0rXF19Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTYt MDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTYtMDgtMjUgMTg6NDQ6 NDIuMDYwNzg5MDc2ICswMjAwCiBAQCAtMCwwICsxLDQyIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBp cyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE0MDksMTAgKzE0MDksMTAg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3RyaXBwZWQuYwogKyAgZnVuYzEgKDEsIDIpOwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBw ZWQuZXhwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMz LjczODE3MjkwNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2 ICswMjAwCiBAQCAtMCwwICsxLDc5IEBACiArIyBDb3B5cmlnaHQgMjAwNiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE0OTMsMTAgKzE0OTMsMTAgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhw CiArZ2RiX3Rlc3QgInN0ZXAiIFwKICsgICAgICAgICAiZnVuYy4qIFxcKC4qXFwpIGF0IC4qIiBc CiArICAgICAgICAgInN0ZXAiCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUworSW5kZXg6 IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0 LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5T CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9j YXRpb24uUwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MDc4OTA3NiArMDIwMAogQEAgLTAsMCArMSw4 MyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIu CiArCkBAIC0xNTgxLDEwICsxNTgxLDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhCiArCiAr CS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5h dG9yICovCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCitJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRh dGEtbG9jYXRpb24uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTYt MDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24u ZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2ICswMjAwCiBAQCAtMCwwICsxLDM3IEBA CiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAg LTE2MjMsMTAgKzE2MjMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2EKICtjbGVhbl9yZXN0 YXJ0ICRiaW5maWxlCiArCiArZ2RiX3Rlc3QgInB0eXBlIHN0cnVjdCBzb21lX3N0cnVjdCIgInR5 cGUgPSBzdHJ1Y3Qgc29tZV9zdHJ1Y3Qge1xbXHJcbiBcdFxdKnZvaWQgZmllbGQ7XFtcclxuIFx0 XF0qfSIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKKysrKyBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5v LXR5cGUuUwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MDc4OTA3NiArMDIwMAogQEAgLTAsMCArMSwx MjEgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgogKwpAQCAtMTc0OSwxMCArMTc0OSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMKICsJLmJ5dGUJ CTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KICsKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3Ig Ki8KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFu Z2Utbm8tdHlwZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKKysrKyBn ZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdl LW5vLXR5cGUuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2ICswMjAwCiBAQCAtMCww ICsxLDM5IEBACiArIyBDb3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KICsKQEAgLTE3OTMsMTAgKzE3OTMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAKICsKICtn ZGJfdGVzdCAicHR5cGUgbm90eXBlX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbMTI5XF19CiArZ2Ri X3Rlc3QgInAgbm90eXBlX3N0cmluZyIgIiA9ICd4JyA8cmVwZWF0cyAxMjkgdGltZXM+IgotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYt c3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAkyMDE2LTA3LTE2IDE2 OjUzOjMzLjczOTE3MjkxNCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2 MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xODQwLDEwICsxODQwLDEwIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0 cmlkZS5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWstaGVyZSIgIi4qYnJl YWstaGVyZS4qIgogK2dkYl90ZXN0ICJwIGM0MHB0KDEpIiAiID0gJzAtaGVsbG8uKiIKICtnZGJf dGVzdCAicCBjNDBwdCgyKSIgIiA9ICcxLWhlbGxvLioiCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCitJbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJp ZGUuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICsw MjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k d2FyZi1zdHJpZGUuZjkwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYxNzg5MDg2ICswMjAwCiBAQCAt MCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICshCkBAIC0xODg1LDExICsxODg1LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAKICsgIHByaW50 ICosIGM0MHB0ICAhIGJyZWFrLWhlcmUKICsKICtlbmQgcHJvZ3JhbSByZXBybwotSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAK K0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5 bmFtaWMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLmV4cAkyMDE2LTA3LTE2IDE3OjE5OjI0LjI1NTIwMjAxMyArMDIw MAotQEAgLTAsMCArMSwxNTEgQEAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTYtMDgtMjUgMTg6NTQ6MjUuOTU3MjU4MDI0 ICswMjAwCitAQCAtMCwwICsxLDE1NCBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTkzNCwxMSArMTkzNCwx MyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLmV4cAogKwogK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2 YXJ4LWluaXQiXQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWluaXQiCi0rZ2Ri X3Rlc3QgInAgdmFyeCIgIlxcJFxbMC05XF0qID0gPG5vdCBhbGxvY2F0ZWQ+IiAicCB2YXJ4IHVu YWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ4IiB7dHlwZSA9IHJlYWxcKGtpbmQ9NFwp IFwoOiw6LDpcKX0gInB0eXBlIHZhcnggdW5hbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInAgdmFyeCgx LDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9 ICJwIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKLStnZGJfdGVzdCAicCB2YXJ4KDEsNSwxNyk9 MSIge25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFwpfSAicCB2 YXJ4KDEsNSwxNyk9MSB1bmFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcp IiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwdHlw ZSB2YXJ4KDEsNSwxNykgdW5hbGxvY2F0ZWQiCisrCisrIyBodHRwOi8vd3d3LmNzLnJwaS5lZHUv fnN6eW1hbnNrL09PRjkwL2J1Z3MuaHRtbCM1CisrIyBEbyBub3Q6IGdkYl90ZXN0ICJwIHZhcngi ICJcXCRcWzAtOVxdKiA9IDxub3QgYWxsb2NhdGVkPiIgInAgdmFyeCB1bmFsbG9jYXRlZCIKKysj IERvIG5vdDogZ2RiX3Rlc3QgInB0eXBlIHZhcngiIHt0eXBlID0gcmVhbFwoa2luZD00XCkgXCg6 LDosOlwpfSAicHR5cGUgdmFyeCB1bmFsbG9jYXRlZCIKKysjIERvIG5vdDogZ2RiX3Rlc3QgInAg dmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2Nh dGVkXCl9ICJwIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKKysjIERvIG5vdDogZ2RiX3Rlc3Qg InAgdmFyeCgxLDUsMTcpPTEiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBh bGxvY2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpPTEgdW5hbGxvY2F0ZWQiCisrIyBEbyBub3Q6IGdk Yl90ZXN0ICJwdHlwZSB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVj dG9yIG5vdCBhbGxvY2F0ZWRcKX0gInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKICsK ICtnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyeC1hbGxvY2F0ZWQiXQog K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWFsbG9jYXRlZCIKQEAgLTE5NTMsOCAr MTk1NSw5IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFyeCgxLCA1LCAxNykiICJcXCRcWzAt OVxdKiA9IDciCiArZ2RiX3Rlc3QgInAgdmFyeCgyLCA2LCAxOCkiICJcXCRcWzAtOVxdKiA9IDgi CiArZ2RiX3Rlc3QgInAgdmFyeCg2LCAxNSwgMjgpIiAiXFwkXFswLTlcXSogPSA5IgotK2dkYl90 ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9IDxub3QgYXNzb2NpYXRlZD4iICJwIHZhcnYgdW5h c3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ2IiB7dHlwZSA9IHJlYWxcKGtpbmQ9NFwp IFwoOiw6LDpcKX0gInB0eXBlIHZhcnYgdW5hc3NvY2lhdGVkIgorKyMgaHR0cDovL3d3dy5jcy5y cGkuZWR1L35zenltYW5zay9PT0Y5MC9idWdzLmh0bWwjNQorKyMgRG8gbm90OiBnZGJfdGVzdCAi cCB2YXJ2IiAiXFwkXFswLTlcXSogPSA8bm90IGFzc29jaWF0ZWQ+IiAicCB2YXJ2IHVuYXNzb2Np YXRlZCIKKysjIERvIG5vdDogZ2RiX3Rlc3QgInB0eXBlIHZhcnYiIHt0eXBlID0gcmVhbFwoa2lu ZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFydiB1bmFzc29jaWF0ZWQiCiArCiArc2V0IHRlc3Qg Im91dHB1dCB2YXJ4IgogK2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKQEAgLTIwNDEs MTAgKzIwNDQsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy5leHAKICtnZGJfdGVzdCAicCB2YXJ0KDMsOCkiICJcXCRcWzAt OVxdKiA9IDkiCiArIyBtYXBzIHRvIGZvbzo6dmFyeSgxLDMpCiArZ2RiX3Rlc3QgInAgdmFydCgy LDkpIiAiXFwkXFswLTlcXSogPSAxMCIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAJ MjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTYtMDgtMjUgMTg6 NDQ6NDIuMDYxNzg5MDg2ICswMjAwCiBAQCAtMCwwICsxLDk4IEBACiArISBDb3B5cmlnaHQgMjAw NyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMTQ0LDEwICsyMTQ3LDEw IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R5bmFtaWMuZjkwCiArICBpZiAoeCAoMSwgMSkgLm5lLiA4IC5vci4geCAoMiwgMikgLm5lLiA5 IC5vci4geCAoMSwgMikgLm5lLiA0KSBjYWxsIGFib3J0CiArICBpZiAoeCAoMywgMSkgLm5lLiAx MCkgY2FsbCBhYm9ydAogK2VuZAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE2LTA3 LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2 MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSw1OSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMjA4LDEwICsyMjExLDEwIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5l eHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyLWZpbmlzaCIKICtnZGJfdGVzdCAi cCBlIiAiXFwkXFswLTlcXSogPSAnZSAgICciICJwIGUgcmUtc2V0IgogK2dkYl90ZXN0ICJwIGYi ICJcXCRcWzAtOVxdKiA9IFxcKFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdm ICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdmMiAgJywgJ2YgICAnLCAnZiAgICcsICdmICAg JywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywg J2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKSIgInAgKmYgcmUtc2V0IgotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5n LmY5MAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3RyaW5nLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCAr MDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v c3RyaW5nLmY5MAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MTc4OTA4NiArMDIwMAogQEAgLTAsMCAr MSwzNyBAQAogKyEgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArIQpAQCAtMjI1MCwxMCArMjI1MywxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiArICBoID0gJ2gnCiArICBjYWxs IGZvbyAoZywgaCkKICtlbmQKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAx Ni0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAkyMDE2LTA4LTI1IDE4OjQ0 OjQyLjA2MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSw3MiBAQAogKyMgQ29weXJpZ2h0IDIwMTEg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMzI3LDEwICsyMzMwLDEwIEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1 YnJhbmdlLmV4cAogK2dkYl91bmxvYWQKICtzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNz aW9uLzk5OTkiCiArZ2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9Ci1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5m OTAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3N1YnJhbmdlLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0 ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdWJyYW5nZS5mOTAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNjE3ODkwODYgKzAyMDAKIEBAIC0w LDAgKzEsMjggQEAKICshIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKyEKQEAgLTIzNjAsMTAgKzIzNjMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCiArICBwdHIgPT4gYQog KyAgd3JpdGUgKCosKikgYSAgICAgICAgICAgICAgICAgISBicmVhay1zdGF0aWMKICtlbmQKLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0 YWxlLXR5cGUuYworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pMi12YXItc3RhbGUtdHlwZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMJMjAxNi0wNy0xNiAxNjo1 MzozMy43MzkxNzI5MTQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MTc4 OTA4NiArMDIwMAogQEAgLTAsMCArMSwyNiBAQAogKy8qIENvcHlyaWdodCAyMDExIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjM5MSwxMCArMjM5NCwxMCBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10 eXBlLmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p Mi12YXItc3RhbGUtdHlwZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAK KysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0 YWxlLXR5cGUuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYyNzg5MDk1ICswMjAwCiBAQCAtMCww ICsxLDU3IEBACiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KICsjCkBAIC0yNDUzLDEwICsyNDU2LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiArbWlfY3JlYXRl X3Zhcm9iaiAidmxhIiAidmxhIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYSIKICsKICttaV9n ZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgIlxcXmRvbmUsY2hhbmdlbGlzdD0uKiIgIi12YXItdXBk YXRlICoiCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20t cmVnaXN0ZXItZnVuYy5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVn aXN0ZXItZnVuYy5jCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYyNzg5MDk1ICswMjAwCiBAQCAtMCww ICsxLDIyIEBACiArLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgogKwpAQCAtMjQ4MCwxMCArMjQ4MywxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiArewogKyAg cmV0dXJuIGFyclswXTsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYworSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJv bS1yZWdpc3Rlci5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCisrKysgZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0 ZXIuYwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mjc4OTA5NSArMDIwMAogQEAgLTAsMCArMSwyOCBA QAogKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAg LTI1MTMsMTAgKzI1MTYsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKICsKICsgIHJldHVybiAwOwogK30K LUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXkt ZnJvbS1yZWdpc3Rlci5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAJ MjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAJMjAxNi0w OC0yNSAxODo0NDo0Mi4wNjI3ODkwOTUgKzAyMDAKIEBAIC0wLDAgKzEsMzMgQEAKICsjIENvcHly aWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTI1NTEsMTAg KzI1NTQsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri Lm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAogKyMgU2VlbiByZWdyZXNzaW9uOgogKyMgQWRk cmVzcyByZXF1ZXN0ZWQgZm9yIGlkZW50aWZpZXIgImFyciIgd2hpY2ggaXMgaW4gcmVnaXN0ZXIg JHJkaQogK2dkYl90ZXN0ICJwIGFyclxbMFxdIiAiXFwkXFswLTlcXSsgPSA0MiIKLUluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAor SW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJh eXMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGFzY2FsL2FycmF5cy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKKysr KyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4 cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mjc4OTA5NSArMDIwMAogQEAgLTAsMCArMSwxMDQgQEAK ICsjIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KyMKQEAgLTI2NjAsMTAgKzI2NjMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCiArfQogK2dkYl90ZXN0ICJwcmludCBE eW5BcnJDaGFyIiAiLiogPSAnYWJjZGVmZ2hpamtsbSciICJQcmludCBkeW5hbWljIGFycmF5IG9m IGNoYXIiCiArCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGFzY2FsL2FycmF5cy5wYXMKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTYtMDctMTYgMTY6NTM6MzMu NzQwMTcyOTIyICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGFzY2FsL2FycmF5cy5wYXMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNjI3ODkwOTUgKzAyMDAK IEBAIC0wLDAgKzEsODIgQEAKICt7CiArIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjc0NywxMCArMjc1MCwxMCBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKICsgIHMg Oj0gJ3Rlc3QnIzAnc3RyaW5nJzsKICsgIHdyaXRlbG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBo ZXJlIH0KICtlbmQuCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvbGli L2dkYi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy4wNjMxNjczMTUgKzAyMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYt MDctMTYgMTY6NTM6MzMuNzQxMTcyOTMwICswMjAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDEuNDI0Nzgz MTQ4ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mzc4OTEwNCArMDIwMAogQEAgLTE3Myw2ICsxNzMs MTEgQEAKICAJICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29udGludWUKQEAgLTI3NjMs MTAgKzI3NjYsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAKICAJLXJlICJEaXNjYXJkIHN5bWJvbCB0YWJsZSBmcm9tIC4qeSBvciBuLiok IiB7CiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCi1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAorSW5kZXg6IGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2Nh bC5leHAJMjAxNi0wNy0xNiAwMzo0ODo1OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDctMTYgMTY6NTM6 MzMuNzQxMTcyOTMwICswMjAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdGVz dHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDgtMDcgMDQ6MDA6MDEuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAky MDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mzc4OTEwNCArMDIwMAogQEAgLTM3LDYgKzM3LDkgQEAKICAg ICAgZ2xvYmFsIHBhc2NhbF9jb21waWxlcl9pc19mcGMKICAgICAgZ2xvYmFsIGdwY19jb21waWxl cgoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0xb2Y2LnBhdGNoIGIvZ2Ri LWZvcnRyYW4tc3RyaWRlLWludGVsLTFvZjYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDIxMDFjZGQuLjAwMDAwMDAKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTFv ZjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MTggKzAsMCBAQAotUkU6IFtwaW5nXSBbUEFU Q0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJp ZGVzCi1odHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAw MDkuaHRtbAotCi1Gcm9tIDk5MzgzNDQ2OWYxZTY0ZTU0NjFlMWUxYmVmOTE3ZmQzODhmZTQyOGUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlz dG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLURhdGU6IFRodSwgMTIgTm92IDIwMTUgMTU6NDU6 NTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzZdIGZvcnRyYW46IGFsbG93IG11bHRpLWRpbWVu c2lvbmFsIHN1YmFycmF5cwotCi1BZGQgYW4gYXJndW1lbnQgY291bnQgZm9yIHN1YnJhbmdlIGV4 cHJlc3Npb25zIGluIEZvcnRyYW4uCi1CYXNlZCBvbiB0aGUgY291bnRlZCB2YWx1ZSBjYWxjdWxh dGUgYSBuZXcgYXJyYXkgd2l0aCB0aGUKLWVsZW1lbnRzIHNwZWNpZmllZCBieSB0aGUgdXNlci4g IEZpcnN0IHBhcnNlIHRoZSB1c2VyIGlucHV0LAotc2Vjb25kbHkgY29weSB0aGUgZGVzaXJlZCBh cnJheSB2YWx1ZXMgaW50byB0aGUgcmV0dXJuCi1hcnJheSwgdGhpcmRseSByZS1jcmVhdGUgdGhl IG5lY2Vzc2FyeSByYW5nZXMgYW5kIGJvdW5kcy4KLQotMXwgIHByb2dyYW0gcHJvZwotMnwgICAg aW50ZWdlciA6OiBhcnkoMTAsNSkgPSAoLyAoaSxpPTEsMTApIChqLCBqPTEsNSkgLykKLTN8ICBl bmQgcHJvZ3JhbSBwcm9nCi0KLShnZGIpIHByaW50IGFyeSgyOjQsMTozKQotb2xkPiBTeW50YXgg ZXJyb3IgaW4gZXhwcmVzc2lvbiBuZWFyICc6MycKLW5ldz4gJDMgPSAoICggMjEsIDMxLCA0MSkg KCAyMiwgMzIsIDQyKSAoIDIzLCAzMywgNDMpICkKLQotMjAxMy0xMS0yNSAgQ2hyaXN0b3BoIFdl aW5tYW5uICA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgotCi0JKiBldmFsLmMgKG11 bHRpX2Y3N19zdWJzY3JpcHQpOiBSZW1vdmUgZnVuY3Rpb24uCi0JKiBldmFsLmMgKGV2YWx1YXRl X3N1YnJhbmdlX2V4cHIpOiBXaGVuIGV2YWx1YXRpbmcKLQlhbiBhcnJheSBvciBzdHJpbmcgZXhw cmVzc2lvbiwgY2FsbAotCXZhbHVlX2Y5MF9zdWJhcnJheS4KLQkqIGV2YWwuYyAodmFsdWVfZjkw X3N1YmFycmF5KTogQWRkIGFyZ3VtZW50IHBhcnNpbmcKLQlhbmQgY29tcHV0ZSByZXN1bHQgYXJy YXkgYmFzZWQgb24gdXNlciBpbnB1dC4KLQkqIGYtZXhwLnk6IEluY3JlbWVudCBhcmd1bWVudCBj b3VudGVyIGZvciBldmVyeSBzdWJyYW5nZQotCWV4cHJlc3Npb24gZW50ZXJlZCBieSB0aGUgdXNl ci4KLQkqIHZhbG9wcy5jICh2YWx1ZV9zbGljZSk6IENhbGwgdmFsdWVfc2xpY2VfMSB3aXRoCi0J YWRkaXRpb25hbCBkZWZhdWx0IGFyZ3VtZW50LgotCSogdmFsb3BzLmMgKHZhbHVlX3NsaWNlXzEp OiBBZGQgZnVuY3Rpb25hbGl0eSB0bwotCWNvcHkgYW5kIHJldHVybiByZXN1bHQgdmFsdWVzIGJh c2VkIG9uIGlucHV0LgotCSogdmFsdWUuaDogQWRkIGZ1bmN0aW9uIGRlZmluaXRpb24uCi0KLQot U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBp bnRlbC5jb20+Ci0tLS0KLSBnZGIvZXZhbC5jICAgfCAzMTQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSBnZGIvZi1leHAueSAgfCAg IDIgKwotIGdkYi92YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0K LSBnZGIvdmFsdWUuaCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdlZCwgMzgwIGluc2VydGlvbnMo KyksIDk3IGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2V2 YWwuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2V2YWwu YwkyMDE2LTA4LTA3IDIyOjA2OjQ1LjI2NjgzNjYxOSArMDIwMAotKysrIGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi9ldmFsLmMJMjAxNi0wOC0wNyAyMjowODoyMS43MDg2ODgyNTkgKzAyMDAKLUBA IC0zOTksMjkgKzM5OSwyNTQgQEAKLSAgIHJldHVybiBpbmRleDsKLSB9Ci0gCi0rLyogRXZhbHVh dGVzIGFueSBvcGVyYXRpb24gb24gRm9ydHJhbiBhcnJheXMgb3Igc3RyaW5ncyB3aXRoIGF0IGxl YXN0Ci0rICAgb25lIHVzZXIgcHJvdmlkZWQgcGFyYW1ldGVyLiAgRXhwZWN0cyB0aGUgaW5wdXQg QVJSQVkgdG8gYmUgZWl0aGVyCi0rICAgYW4gYXJyYXksIG9yIGEgc3RyaW5nLiAgRXZhbHVhdGVz IEVYUCBieSBpbmNyZW1lbnRpbmcgUE9TLCBhbmQKLSsgICB3cml0ZXMgdGhlIGNvbnRlbnQgZnJv bSB0aGUgZWx0IHN0YWNrIGludG8gYSBsb2NhbCBzdHJ1Y3QuICBOQVJHUwotKyAgIHNwZWNpZmll cyBudW1iZXIgb2YgbGl0ZXJhbCBvciByYW5nZSBhcmd1bWVudHMgdGhlIHVzZXIgcHJvdmlkZWQu Ci0rICAgTkFSR1MgbXVzdCBiZSB0aGUgc2FtZSBudW1iZXIgYXMgQVJSQVkgaGFzIGRpbWVuc2lv bnMuICAqLwotKwotIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotLXZhbHVlX2Y5MF9zdWJhcnJheSAo c3RydWN0IHZhbHVlICphcnJheSwKLS0JCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQg KnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQotK3ZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSsJCSAgICBpbnQgKnBvcywgaW50 IG5hcmdzLCBlbnVtIG5vc2lkZSBub3NpZGUpCi0gewotLSAgaW50IHBjID0gKCpwb3MpICsgMTsK LSsgIGludCBpLCBkaW1fY291bnQgPSAwOwotICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQ7Ci0tICBzdHJ1Y3QgdHlwZSAqcmFuZ2UgPSBjaGVja190eXBlZGVmIChUWVBFX0lOREVYX1RZ UEUgKHZhbHVlX3R5cGUgKGFycmF5KSkpOwotLSAgZW51bSByYW5nZV90eXBlIHJhbmdlX3R5cGUK LS0gICAgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5s b25nY29uc3QpOwotLSAKLS0gICpwb3MgKz0gMzsKLSsgIHN0cnVjdCB2YWx1ZSAqbmV3X2FycmF5 ID0gYXJyYXk7Ci0rICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKG5ld19hcnJheSkpOwotKyAgc3RydWN0IHR5cGUgKmVsdF90eXBlOwotKwotKyAg dHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCi0rICB7Ci0rICAgIGVudW0gcmFuZ2VfdHlw ZSBmOTBfcmFuZ2VfdHlwZTsKLSsgICAgTE9OR0VTVCBsb3csIGhpZ2g7Ci0rICB9IHN1YnNjcmlw dF9yYW5nZTsKLSsKLSsgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2luZAotKyAgewotKyAgICBT VUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUuZy4gIihsb3dib3VuZDpoaWdoYm91bmQpIiAgKi8KLSsg ICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFsKSIgICovCi0rICB9IGtpbmQ7 Ci0rCi0rICAvKiBMb2NhbCBzdHJ1Y3QgdG8gaG9sZCB1c2VyIGRhdGEgZm9yIEZvcnRyYW4gc3Vi YXJyYXkgZGltZW5zaW9ucy4gICovCi0rICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlCi0rICB7Ci0r ICAgIC8qIEZvciBldmVyeSBkaW1lbnNpb24sIHdlIGFyZSBlaXRoZXIgd29ya2luZyBvbiBhIHJh bmdlIG9yIGFuIGluZGV4Ci0rICAgICAgIGV4cHJlc3Npb24sIHNvIHdlIHN0b3JlIHRoaXMgaW5m byBzZXBhcmF0ZWx5IGZvciBsYXRlci4gICovCi0rICAgIGVudW0gc3Vic2NyaXB0X2tpbmQga2lu ZDsKLSsKLSsgICAgLyogV2UgYWxzbyBzdG9yZSBlaXRoZXIgdGhlIGxvd2VyIGFuZCB1cHBlciBi b3VuZCBpbmZvLCBvciB0aGUgaW5kZXgKLSsgICAgICAgbnVtYmVyLiAgQmVmb3JlIGV2YWx1YXRp b24gb2YgdGhlIGlucHV0IHZhbHVlcywgd2UgZG8gbm90IGtub3cgaWYgd2UgYXJlCi0rICAgICAg IGFjdHVhbGx5IHdvcmtpbmcgb24gYSByYW5nZSBvZiByYW5nZXMsIG9yIGFuIGluZGV4IGluIGEg cmFuZ2UuICBTbyBhcyBhCi0rICAgICAgIGZpcnN0IHN0ZXAgd2Ugc3RvcmUgYWxsIGlucHV0IGlu IGEgdW5pb24uICBUaGUgYXJyYXkgY2FsY3VsYXRpb24gaXRzZWxmCi0rICAgICAgIGRlYWxzIHdp dGggdGhpcyBsYXRlciBvbi4gICovCi0rICAgIHVuaW9uIGVsZW1lbnRfcmFuZ2UKLSsgICAgewot KyAgICAgIHN1YnNjcmlwdF9yYW5nZSByYW5nZTsKLSsgICAgICBMT05HRVNUIG51bWJlcjsKLSsg ICAgfSBVOwotKyAgfSAqc3Vic2NyaXB0X2FycmF5OwotKwotKyAgLyogQ2hlY2sgaWYgdGhlIG51 bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgbWF0Y2hlcwotKyAgICAgdGhl IG51bWJlciBvZiBkaW1lbnNpb24gb2YgdGhlIGFycmF5LiAgQSBzdHJpbmcgaGFzIG9ubHkgb25l Ci0rICAgICBkaW1lbnNpb24uICAqLwotKyAgaWYgKG5hcmdzICE9IGNhbGNfZjc3X2FycmF5X2Rp bXMgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpKQotKyAgICBlcnJvciAoXygiV3JvbmcgbnVtYmVy IG9mIHN1YnNjcmlwdHMiKSk7Ci0rCi0rICBzdWJzY3JpcHRfYXJyYXkgPSAoc3RydWN0IHN1YnNj cmlwdF9zdG9yZSopIGFsbG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdzKTsK LSsKLSsgIC8qIFBhcnNlIHRoZSB1c2VyIGlucHV0IGludG8gdGhlIFNVQlNDUklQVF9BUlJBWSB0 byBzdG9yZSBpdC4gIFdlIG5lZWQKLSsgICAgIHRvIGV2YWx1YXRlIGl0IGZpcnN0LCBhcyB0aGUg aW5wdXQgaXMgZnJvbSBsZWZ0LXRvLXJpZ2h0LiAgVGhlCi0rICAgICBhcnJheSBpcyBzdG9yZWQg ZnJvbSByaWdodC10by1sZWZ0LiAgU28gd2UgaGF2ZSB0byB1c2UgdGhlIHVzZXIKLSsgICAgIGlu cHV0IGluIHJldmVyc2Ugb3JkZXIuICBMYXRlciBvbiwgd2UgbmVlZCB0aGUgaW5wdXQgaW5mb3Jt YXRpb24gdG8KLSsgICAgIHJlLWNhbGN1bGF0ZSB0aGUgb3V0cHV0IGFycmF5LiAgRm9yIG11bHRp LWRpbWVuc2lvbmFsIGFycmF5cywgd2UKLSsgICAgIGNhbiBiZSBkZWFsaW5nIHdpdGggYW55IHBv c3NpYmxlIGNvbWJpbmF0aW9uIG9mIHJhbmdlcyBhbmQgaW5kaWNlcwotKyAgICAgZm9yIGV2ZXJ5 IGRpbWVuc2lvbi4gICovCi0rICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKLSsgICAgewot KyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtp XTsKLSAKLS0gIGlmIChyYW5nZV90eXBlID09IExPV19CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5 cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBsb3dfYm91bmQgPSBUWVBFX0xPV19CT1VO RCAocmFuZ2UpOwotLSAgZWxzZQotLSAgICBsb3dfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFs dWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwotKyAgICAgIC8qIFRo ZSB1c2VyIGlucHV0IGlzIGEgcmFuZ2UsIHdpdGggb3Igd2l0aG91dCBsb3dlciBhbmQgdXBwZXIg Ym91bmQuCi0rCSBFLmcuOiAicCBhcnJ5KDI6NSkiLCAicCBhcnJ5KCA6NSkiLCAicCBhcnJ5KCA6 ICkiLCBldGMuICAqLwotKyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JB TkdFKQotKwl7Ci0rCSAgaW50IHBjID0gKCpwb3MpICsgMTsKLSsJICBzdWJzY3JpcHRfcmFuZ2Ug KnJhbmdlOwotIAotLSAgaWYgKHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IHJh bmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBoaWdoX2JvdW5kID0gVFlQRV9I SUdIX0JPVU5EIChyYW5nZSk7Ci0tICBlbHNlCi0tICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19s b25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwotKwkg IGluZGV4LT5raW5kID0gU1VCU0NSSVBUX1JBTkdFOwotKwkgIHJhbmdlID0gJmluZGV4LT5VLnJh bmdlOwotKwotKwkgICpwb3MgKz0gMzsKLSsJICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51 bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwot KwotKwkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0aGUg Yml0IGhhcyBiZWVuCi0rCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBmcm9t IHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgotKwkgICAgIHVwcGVyIGJvdW5kLiAgKi8KLSsJICBp ZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQpCi0rCSAgICAg IHx8IHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCSAgICBy YW5nZS0+bG93ID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4 cCwKLSsJCQkJCQkJIHBvcywgbm9zaWRlKSk7Ci0rCSAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5 cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQpCi0rCSAgICAgIHx8IHJhbmdlLT5mOTBfcmFuZ2VfdHlw ZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCSAgICByYW5nZS0+aGlnaCA9IHZhbHVlX2FzX2xv bmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCi0rCQkJCQkJCSAgcG9zLCBub3Np ZGUpKTsKLSsJfQotKyAgICAgIC8qIFVzZXIgaW5wdXQgaXMgYW4gaW5kZXguICBFLmcuOiAicCBh cnJ5KDUpIi4gICovCi0rICAgICAgZWxzZQotKwl7Ci0rCSAgc3RydWN0IHZhbHVlICp2YWw7Ci0r Ci0rCSAgaW5kZXgtPmtpbmQgPSBTVUJTQ1JJUFRfSU5ERVg7Ci0rCi0rCSAgLyogRXZhbHVhdGUg ZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBsZWdhbCBpbnRlZ2VyIGluIEY3Ny4gIFRoaXMK LSsJICAgICBlbnN1cmVzIHRoZSB2YWxpZGl0eSBvZiB0aGUgcHJvdmlkZWQgaW5kZXguICAqLwot KwkgIHZhbCA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRl KTsKLSsJICBpbmRleC0+VS5udW1iZXIgPSB2YWx1ZV9hc19sb25nICh2YWwpOwotKwl9Ci0rCi0r ICAgIH0KLSsKLSsgIC8qIFRyYXZlcnNlIHRoZSBhcnJheSBmcm9tIHJpZ2h0IHRvIGxlZnQgYW5k IGV2YWx1YXRlIGVhY2ggY29ycmVzcG9uZGluZwotKyAgICAgdXNlciBpbnB1dC4gIFZBTFVFX1NV QlNDUklQVCBpcyBjYWxsZWQgZm9yIGV2ZXJ5IGluZGV4LCB1bnRpbCBhIHJhbmdlCi0rICAgICBl eHByZXNzaW9uIGlzIGV2YWx1YXRlZC4gIEFmdGVyIGEgcmFuZ2UgZXhwcmVzc2lvbiBoYXMgYmVl biBldmFsdWF0ZWQsCi0rICAgICBldmVyeSBzdWJzZXF1ZW50IGV4cHJlc3Npb24gaXMgYWxzbyB0 cmVhdGVkIGFzIGEgcmFuZ2UuICAqLwotKyAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGkt LSkKLSsgICAgewotKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNj cmlwdF9hcnJheVtpXTsKLSsgICAgICBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSA9IFRZUEVfSU5E RVhfVFlQRSAoYXJyYXlfdHlwZSk7Ci0rCi0rICAgICAgc3dpdGNoIChpbmRleC0+a2luZCkKLSsJ ewotKwljYXNlIFNVQlNDUklQVF9SQU5HRToKLSsJICB7Ci0rCi0rCSAgICAvKiBXaGVuIHdlIGhp dCB0aGUgZmlyc3QgcmFuZ2Ugc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB3ZSBtdXN0Ci0rCSAgICAg ICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBXZSBzaW1wbHkK LSsJICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMgaG93IG1hbnkgdGlt ZXMgd2UgYXJlCi0rCSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAqLwotKwkgICAgc3Vi c2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKLSsKLSsJICAgIC8qIElmIG5v IGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFrZSB0aGUKLSsJICAg ICAgIGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3VuZC4gICovCi0rCSAg ICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVCkKLSsJCXx8 IChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKSkKLSsJICAgICAg cmFuZ2UtPmxvdyA9IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKTsKLSsKLSsJICAgIGlmICgo cmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCkKLSsJCXx8IChyYW5n ZS0+ZjkwX3JhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKSkKLSsJICAgICAgcmFuZ2Ut PmhpZ2ggPSBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpOwotKwotKwkgICAgLyogQm90aCB1 c2VyIHByb3ZpZGVkIGxvdyBhbmQgaGlnaCBib3VuZCBoYXZlIHRvIGJlIGluc2lkZSB0aGUKLSsJ ICAgICAgIGFycmF5IGJvdW5kcy4gIFRocm93IGFuIGVycm9yIGlmIG5vdC4gICovCi0rCSAgICBp ZiAocmFuZ2UtPmxvdyA8IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQotKwkJfHwgcmFuZ2Ut PmxvdyA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkKLSsJCXx8IHJhbmdlLT5oaWdoIDwg VFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0rCQl8fCByYW5nZS0+aGlnaCA+IFRZUEVfSElH SF9CT1VORCAoaW5kZXhfdHlwZSkpCi0rCSAgICAgIGVycm9yIChfKCJwcm92aWRlZCBib3VuZChz KSBvdXRzaWRlIGFycmF5IGJvdW5kKHMpIikpOwotKwotKwkgICAgLyogRElNX0NPVU5UIGNvdW50 cyBldmVyeSB1c2VyIGFyZ3VtZW50IHRoYXQgaXMgdHJlYXRlZCBhcyBhIHJhbmdlLgotKwkgICAg ICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGV4cHJlc3Npb25zIGxpa2UgJ3ByaW50IGFycmF5KDcs IDg6OSkuCi0rCSAgICAgICBIZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIGxpdGVyYWwsIGJ1 dCBtdXN0IGJlIHRyZWF0ZWQgYXMgYQotKwkgICAgICAgcmFuZ2UgYXJndW1lbnQgdG8gYWxsb3cg dGhlIGNvcnJlY3Qgb3V0cHV0IHJlcHJlc2VudGF0aW9uLiAgKi8KLSsJICAgIGRpbV9jb3VudCsr OwotKwotKwkgICAgbmV3X2FycmF5Ci0rCSAgICAgID0gdmFsdWVfc2xpY2VfMSAobmV3X2FycmF5 LAotKwkJCSAgICAgICBsb25nZXN0X3RvX2ludCAocmFuZ2UtPmxvdyksCi0rCQkJICAgICAgIGxv bmdlc3RfdG9faW50IChyYW5nZS0+aGlnaCAtIHJhbmdlLT5sb3cgKyAxKSwKLSsJCQkgICAgICAg ZGltX2NvdW50KTsKLSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgU1VCU0NSSVBUX0lOREVY OgotKwkgIHsKLSsJICAgIC8qIERJTV9DT1VOVCBvbmx5IHN0YXlzICcwJyB3aGVuIG5vIHJhbmdl IGFyZ3VtZW50IHdhcyBwcm9jZXNzZWQKLSsJICAgICAgIGJlZm9yZSwgc3RhcnRpbmcgZnJvbSB0 aGUgbGFzdCBkaW1lbnNpb24uICBUaGlzIHdheSB3ZSBjYW4KLSsJICAgICAgIHJlZHVjZSB0aGUg bnVtYmVyIG9mIGRpbWVuc2lvbnMgZnJvbSB0aGUgcmVzdWx0IGFycmF5LgotKwkgICAgICAgSG93 ZXZlciwgaWYgYSByYW5nZSBoYXMgYmVlbiBwcm9jZXNzZWQgYmVmb3JlIGFuIGluZGV4LCB3ZQot KwkgICAgICAgdHJlYXQgdGhlIGluZGV4IGxpa2UgYSByYW5nZSB3aXRoIGVxdWFsIGxvdy0gYW5k IGhpZ2ggYm91bmRzCi0rCSAgICAgICB0byBnZXQgdGhlIHZhbHVlIG9mZnNldCByaWdodC4gICov Ci0rCSAgICBpZiAoZGltX2NvdW50ID09IDApCi0rCSAgICAgIG5ld19hcnJheQotKwkgICAgICAg ID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4LT5VLm51bWJlciwK LSsJCQkJCSAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVlX3R5cGUKLSsJCQkJCQkJCSAgKG5l d19hcnJheSkpKTsKLSsJICAgIGVsc2UKLSsJICAgICAgewotKwkJLyogQ2hlY2sgZm9yIHZhbGlk IGluZGV4IGlucHV0LiAgKi8KLSsJCWlmIChpbmRleC0+VS5udW1iZXIgPCBUWVBFX0xPV19CT1VO RCAoaW5kZXhfdHlwZSkKLSsJCSAgICB8fCBpbmRleC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9V TkQgKGluZGV4X3R5cGUpKQotKwkJICBlcnJvciAoXygiZXJyb3Igbm8gc3VjaCB2ZWN0b3IgZWxl bWVudCIpKTsKLSsKLSsJCWRpbV9jb3VudCsrOwotKwkJbmV3X2FycmF5ID0gdmFsdWVfc2xpY2Vf MSAobmV3X2FycmF5LAotKwkJCQkJICAgbG9uZ2VzdF90b19pbnQgKGluZGV4LT5VLm51bWJlciks Ci0rCQkJCQkgICAxLCAvKiBsZW5ndGggaXMgJzEnIGVsZW1lbnQgICovCi0rCQkJCQkgICBkaW1f Y291bnQpOwotKwkgICAgICB9Ci0rCi0rCSAgfQotKwkgIGJyZWFrOwotKwl9Ci0rICAgIH0KLSsK LSsgIC8qIFdpdGggRElNX0NPVU5UID4gMSB3ZSBjdXJyZW50bHkgaGF2ZSBhIG9uZSBkaW1lbnNp b25hbCBhcnJheSwgYnV0IGV4cGVjdAotKyAgICAgYW4gYXJyYXkgb2YgYXJyYXlzLCBkZXBlbmRp bmcgb24gaG93IG1hbnkgcmFuZ2VzIGhhdmUgYmVlbiBwcm92aWRlZCBieQotKyAgICAgdGhlIHVz ZXIuICBTbyB3ZSBuZWVkIHRvIHJlYnVpbGQgdGhlIGFycmF5IGRpbWVuc2lvbnMgZm9yIHByaW50 aW5nIGl0Ci0rICAgICBjb3JyZWN0bHkuCi0rICAgICBTdGFydGluZyBmcm9tIHJpZ2h0IHRvIGxl ZnQgaW4gdGhlIHVzZXIgaW5wdXQsIGFmdGVyIHdlIGhpdCB0aGUgZmlyc3QKLSsgICAgIHJhbmdl IGFyZ3VtZW50IGV2ZXJ5IHN1YnNlcXVlbnQgYXJndW1lbnQgaXMgYWxzbyB0cmVhdGVkIGFzIGEg cmFuZ2UuCi0rICAgICBFLmcuOgotKyAgICAgInAgYXJ5KDMsIDcsIDI6MTUpIiBpbiBGb3J0cmFu IGhhcyBvbmx5IDEgZGltZW5zaW9uLCBidXQgd2UgY2FsY3VsYXRlZCAzCi0rICAgICByYW5nZXMu Ci0rICAgICAicCBhcnkoMywgNzoxMiwgNCkiIGluIEZvcnRyYW4gaGFzIG9ubHkgMSBkaW1lbnNp b24sIGJ1dCB3ZSBjYWxjdWxhdGVkIDIKLSsgICAgIHJhbmdlcy4KLSsgICAgICJwIGFyeSgyOjQs IDUsIDcpIiBpbiBGb3J0cmFuIGhhcyBvbmx5IDEgZGltZW5zaW9uLCBhbmQgd2UgY2FsY3VsYXRl ZCAxCi0rICAgICByYW5nZS4gICovCi0rICBpZiAoZGltX2NvdW50ID4gMSkKLSsgICAgewotKyAg ICAgIHN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7Ci0rCi0rICAgICAgZWx0X3R5cGUgPSBUWVBFX1RB UkdFVF9UWVBFICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKLSsKLSsgICAgICAvKiBFdmVyeSBT VUJTQ1JJUFRfUkFOR0UgaW4gdGhlIHVzZXIgaW5wdXQgc2lnbmlmaWVzIGFuIGFjdHVhbCByYW5n ZSBpbgotKwkgdGhlIG91dHB1dCBhcnJheS4gIFNvIHdlIHRyYXZlcnNlIHRoZSBTVUJTQ1JJUFRf QVJSQVkgYWdhaW4sIGxvb2tpbmcKLSsJIGZvciBhIHJhbmdlIGVudHJ5LiAgV2hlbiB3ZSBmaW5k IG9uZSwgd2UgdXNlIHRoZSByYW5nZSBpbmZvIHRvIGNyZWF0ZQotKwkgYW4gYWRkaXRpb25hbCBy YW5nZV90eXBlIHRvIHNldCB0aGUgY29ycmVjdCBib3VuZHMgYW5kIGRpbWVuc2lvbnMgZm9yCi0r CSB0aGUgb3V0cHV0IGFycmF5LiAgKi8KLSsgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkr KykKLSsJewotKwkgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9h cnJheVtpXTsKLSsKLSsJICBpZiAoaW5kZXgtPmtpbmQgPT0gU1VCU0NSSVBUX1JBTkdFKQotKwkg ICAgewotKwkgICAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSwgKmludGVyaW1fYXJyYXlfdHlw ZTsKLSsKLSsJICAgICAgcmFuZ2VfdHlwZQotKwkJPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUg KE5VTEwsCi0rCQkJCQkgICAgZWx0X3R5cGUsCi0rCQkJCQkgICAgMSwKLSsJCQkJCSAgICBpbmRl eC0+VS5yYW5nZS5oaWdoCi0rCQkJCQkgICAgICAtIGluZGV4LT5VLnJhbmdlLmxvdyArIDEpOwot KwotKwkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwK LSsJCQkJCQkgICAgICBlbHRfdHlwZSwKLSsJCQkJCQkgICAgICByYW5nZV90eXBlKTsKLSsKLSsJ ICAgICAgVFlQRV9DT0RFIChpbnRlcmltX2FycmF5X3R5cGUpCi0rCQk9IFRZUEVfQ09ERSAodmFs dWVfdHlwZSAobmV3X2FycmF5KSk7Ci0gCi0tICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBs b3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSsJICAgICAgdiA9IGFsbG9j YXRlX3ZhbHVlIChpbnRlcmltX2FycmF5X3R5cGUpOwotKwotKwkgICAgICBlbHRfdHlwZSA9IHZh bHVlX3R5cGUgKHYpOwotKwkgICAgfQotKwotKwl9Ci0rICAgICAgdmFsdWVfY29udGVudHNfY29w eSAodiwgMCwgbmV3X2FycmF5LCAwLCBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpKTsKLSsgICAgICBy ZXR1cm4gdjsKLSsgICAgfQotKwotKyAgcmV0dXJuIG5ld19hcnJheTsKLSB9Ci0gCi0gCi1AQCAt MTgxMCwxNCArMjAzNSwxMSBAQAotICAgICAgIHN3aXRjaCAoY29kZSkKLSAJewotIAljYXNlIFRZ UEVfQ09ERV9BUlJBWToKLS0JICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5H RSkKLS0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBub3Np ZGUpOwotLQkgIGVsc2UKLS0JICAgIGdvdG8gbXVsdGlfZjc3X3N1YnNjcmlwdDsKLSsJICByZXR1 cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7Ci0g Ci0gCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAJICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29k ZSA9PSBPUF9SQU5HRSkKLS0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4 cCwgcG9zLCBub3NpZGUpOwotKwkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwg ZXhwLCBwb3MsIDEsIG5vc2lkZSk7Ci0gCSAgZWxzZQotIAkgICAgewotIAkgICAgICBhcmcyID0g ZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotQEAgLTIy MjMsNDkgKzI0NDUsNiBAQAotIAl9Ci0gICAgICAgcmV0dXJuIChhcmcxKTsKLSAKLS0gICAgbXVs dGlfZjc3X3N1YnNjcmlwdDoKLS0gICAgICB7Ci0tCUxPTkdFU1Qgc3Vic2NyaXB0X2FycmF5W01B WF9GT1JUUkFOX0RJTVNdOwotLQlpbnQgbmRpbWVuc2lvbnMgPSAxLCBpOwotLQlzdHJ1Y3QgdmFs dWUgKmFycmF5ID0gYXJnMTsKLS0KLS0JaWYgKG5hcmdzID4gTUFYX0ZPUlRSQU5fRElNUykKLS0J ICBlcnJvciAoXygiVG9vIG1hbnkgc3Vic2NyaXB0cyBmb3IgRjc3ICglZCBNYXgpIiksIE1BWF9G T1JUUkFOX0RJTVMpOwotLQotLQluZGltZW5zaW9ucyA9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHR5 cGUpOwotLQotLQlpZiAobmFyZ3MgIT0gbmRpbWVuc2lvbnMpCi0tCSAgZXJyb3IgKF8oIldyb25n IG51bWJlciBvZiBzdWJzY3JpcHRzIikpOwotLQotLQlnZGJfYXNzZXJ0IChuYXJncyA+IDApOwot LQotLQkvKiBOb3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgYSBsZWdhbCBhcnJheSBzdWJzY3JpcHQg ZXhwcmVzc2lvbiAKLS0JICAgbGV0IHVzIGFjdHVhbGx5IGZpbmQgb3V0IHdoZXJlIHRoaXMgZWxl bWVudCBleGlzdHMgaW4gdGhlIGFycmF5LiAgKi8KLS0KLS0JLyogVGFrZSBhcnJheSBpbmRpY2Vz IGxlZnQgdG8gcmlnaHQuICAqLwotLQlmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKLS0JICB7 Ci0tCSAgICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGlu dGVnZXIgaW4gRjc3LiAgKi8KLS0JICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2Vy Y2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7Ci0tCi0tCSAgICAvKiBGaWxsIGluIHRoZSBzdWJzY3Jp cHQgYXJyYXkuICAqLwotLQotLQkgICAgc3Vic2NyaXB0X2FycmF5W2ldID0gdmFsdWVfYXNfbG9u ZyAoYXJnMik7Ci0tCSAgfQotLQotLQkvKiBJbnRlcm5hbCB0eXBlIG9mIGFycmF5IGlzIGFycmFu Z2VkIHJpZ2h0IHRvIGxlZnQuICAqLwotLQlmb3IgKGkgPSBuYXJnczsgaSA+IDA7IGktLSkKLS0J ICB7Ci0tCSAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFycmF5KSk7Ci0tCSAgICBMT05HRVNUIGluZGV4ID0gc3Vic2NyaXB0X2FycmF5W2kg LSAxXTsKLS0KLS0JICAgIGFycmF5ID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChhcnJheSwg aW5kZXgsCi0tCQkJCQkgICAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKGFycmF5X3R5cGUpKTsKLS0J ICB9Ci0tCi0tCXJldHVybiBhcnJheTsKLS0gICAgICB9Ci0tCi0gICAgIGNhc2UgQklOT1BfTE9H SUNBTF9BTkQ6Ci0gICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAs IHBvcywgbm9zaWRlKTsKLSAgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKLUBAIC0zMTIz LDYgKzMzMDIsOSBAQAotICAgaW50IG5kaW1lbiA9IDE7Ci0gICBzdHJ1Y3QgdHlwZSAqdG1wX3R5 cGU7Ci0gCi0rICBpZiAoVFlQRV9DT0RFIChhcnJheV90eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5H KQotKyAgICByZXR1cm4gMTsKLSsKLSAgIGlmICgoVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBU WVBFX0NPREVfQVJSQVkpKQotICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9y IGEgbm9uLWFycmF5IHR5cGUiKSk7Ci0gCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L2YtZXhwLnkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9m LWV4cC55CTIwMTYtMDgtMDcgMjI6MDY6NDUuMjY2ODM2NjE5ICswMjAwCi0rKysgZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL2YtZXhwLnkJMjAxNi0wOC0wNyAyMjowODoyMS43MDk2ODgyNjggKzAy MDAKLUBAIC0yNTMsNiArMjUzLDggQEAKLSAgICAKLSBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhw ICAgJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IGFyZ2xpc3RfbGVuKys7IH0KLSsJfAlhcmdsaXN0 ICcsJyBzdWJyYW5nZQklcHJlYyBBQk9WRV9DT01NQQotKwkJCXsgYXJnbGlzdF9sZW4rKzsgfQot IAk7Ci0gCi0gLyogVGhlcmUgYXJlIGZvdXIgc29ydHMgb2Ygc3VicmFuZ2UgdHlwZXMgaW4gRjkw LiAgKi8KLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsb3BzLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi92YWxvcHMuYwkyMDE2LTA4LTA3 IDIyOjA2OjQ1LjI2NjgzNjYxOSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92 YWxvcHMuYwkyMDE2LTA4LTA3IDIyOjEzOjIyLjA4MzM0MDc1MCArMDIwMAotQEAgLTM3NzUsNTYg KzM3NzUsMTU0IEBACi0gc3RydWN0IHZhbHVlICoKLSB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVl ICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQotIHsKLSsgIC8qIFBhc3MgdW5hbHRl cmVkIGFyZ3VtZW50cyB0byBWQUxVRV9TTElDRV8xLCBwbHVzIGEgQ0FMTF9DT1VOVCBvZiAnMScg YXMgd2UKLSsgICAgIGFyZSBvbmx5IGNvbnNpZGVyaW5nIHRoZSBoaWdoZXN0IGRpbWVuc2lvbiwg b3Igd2UgYXJlIHdvcmtpbmcgb24gYSBvbmUKLSsgICAgIGRpbWVuc2lvbmFsIGFycmF5LiAgU28g d2UgY2FsbCBWQUxVRV9TTElDRV8xIGV4YWN0bHkgb25jZS4gICovCi0rICByZXR1cm4gdmFsdWVf c2xpY2VfMSAoYXJyYXksIGxvd2JvdW5kLCBsZW5ndGgsIDEpOwotK30KLSsKLSsvKiBWQUxVRV9T TElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRo ZSBudW1iZXIKLSsgICBvZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhw cmVzc2lvbi4KLSsgICBDQUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBj YWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcuCi0rICAgd2UgYXJlIHdvcmtpbmcgb24gdGhl IGN1cnJlbnQgZGltZW5zaW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2FsbGluZwotKyAgIHRo ZSBmdW5jdGlvbiByZXBlYXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtl IGVsZW1lbnRzCi0rICAgZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVkuCi0rICAgV2l0aCBh IENBTExfQ09VTlQgZ3JlYXRlciB0aGFuIDEgd2UgY2FsY3VsYXRlIHRoZSBvZmZzZXRzIGZvciBl dmVyeSBlbGVtZW50Ci0rICAgdGhhdCBzaG91bGQgYmUgaW4gdGhlIHJlc3VsdCBhcnJheS4gIFRo ZW4gd2UgZmV0Y2ggdGhlIGNvbnRlbnRzIGFuZCB0aGVuCi0rICAgY29weSB0aGVtIGludG8gdGhl IHJlc3VsdCBhcnJheS4gIFRoZSByZXN1bHQgYXJyYXkgd2lsbCBoYXZlIG9uZSBkaW1lbnNpb24K LSsgICBsZXNzIHRoYW4gdGhlIGlucHV0IGFycmF5LCBzbyBsYXRlciBvbiB3ZSBuZWVkIHRvIHJl Y3JlYXRlIHRoZSBpbmRpY2VzIGFuZAotKyAgIHJhbmdlcyBpbiB0aGUgY2FsbGluZyBmdW5jdGlv bi4gICovCi0rCi0rc3RydWN0IHZhbHVlICoKLSt2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQotK3sKLSAg IHN0cnVjdCB0eXBlICpzbGljZV9yYW5nZV90eXBlLCAqc2xpY2VfdHlwZSwgKnJhbmdlX3R5cGU7 Ci0tICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7Ci0tICBzdHJ1Y3QgdmFsdWUgKnNs aWNlOwotLSAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGU7Ci0rICBzdHJ1Y3QgdHlwZSAqYXJyYXlf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rICBzdHJ1Y3QgdHlw ZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBl KSk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0X3NpemUsIGVsdF9vZmZzOwotKyAgLyogQVRUUklCVVRF X1VOVVNFRDogVkxBIGJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDE2LTA4L21zZzAwMDk5Lmh0bWwgKi8KLSsgIExPTkdFU1QgZWx0X3N0cmlkZSBBVFRSSUJVVEVf VU5VU0VELCBhcnlfaGlnaF9ib3VuZCwgYXJ5X2xvd19ib3VuZDsKLSsgIHN0cnVjdCB2YWx1ZSAq djsKLSsgIGludCBzbGljZV9yYW5nZV9zaXplLCBpID0gMCwgcm93X2NvdW50ID0gMSwgZWxlbV9j b3VudCA9IDE7Ci0gCi0tICBhcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJyYXkpKTsKLSsgIC8qIENoZWNrIGZvciBsZWdhY3kgY29kZSBpZiB3ZSBhcmUgYWN0dWFsbHkg ZGVhbGluZyB3aXRoIGFuIGFycmF5IG9yCi0rICAgICBzdHJpbmcuICAqLwotICAgaWYgKFRZUEVf Q09ERSAoYXJyYXlfdHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZCi0gICAgICAgJiYgVFlQRV9DT0RF IChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfU1RSSU5HKQotICAgICBlcnJvciAoXygiY2Fubm90 IHRha2Ugc2xpY2Ugb2Ygbm9uLWFycmF5IikpOwotIAotLSAgcmFuZ2VfdHlwZSA9IFRZUEVfSU5E RVhfVFlQRSAoYXJyYXlfdHlwZSk7Ci0tICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2Vf dHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKSA8IDApCi0tICAgIGVycm9yIChfKCJzbGlj ZSBmcm9tIGJhZCBhcnJheSBvciBiaXRzdHJpbmciKSk7Ci0tCi0tICBpZiAobG93Ym91bmQgPCBs b3dlcmJvdW5kIHx8IGxlbmd0aCA8IDAKLS0gICAgICB8fCBsb3dib3VuZCArIGxlbmd0aCAtIDEg PiB1cHBlcmJvdW5kKQotLSAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdlIikpOwotKyAg YXJ5X2xvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5 cGUpKTsKLSsgIGFyeV9oaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChUWVBFX0lOREVYX1RZ UEUgKGFycmF5X3R5cGUpKTsKLSsKLSsgIC8qIFdoZW4gd2UgYXJlIHdvcmtpbmcgb24gYSBtdWx0 aS1kaW1lbnNpb25hbCBhcnJheSwgd2UgbmVlZCB0byBnZXQgdGhlCi0rICAgICBhdHRyaWJ1dGVz IG9mIHRoZSB1bmRlcmx5aW5nIHR5cGUuICAqLwotKyAgaWYgKGNhbGxfY291bnQgPiAxKQotKyAg ICB7Ci0rICAgICAgZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChl bHRfdHlwZSkpOwotKyAgICAgIHJvd19jb3VudCA9IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKQot KwkJICAgIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsg ICAgfQotKwotKyAgZWxlbV9jb3VudCA9IGxlbmd0aDsKLSsgIGVsdF9zaXplID0gVFlQRV9MRU5H VEggKGVsdF90eXBlKTsKLSsgIGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGxvd2JvdW5kIC0g YXJ5X2xvd19ib3VuZCk7Ci0rICBlbHRfc3RyaWRlID0gVFlQRV9MRU5HVEggKFRZUEVfSU5ERVhf VFlQRSAoYXJyYXlfdHlwZSkpOwotKwotKyAgZWx0X29mZnMgKj0gZWx0X3NpemU7Ci0rCi0rICAv KiBDaGVjayBmb3IgdmFsaWQgdXNlciBpbnB1dC4gIEluIGNhc2Ugb2YgRm9ydHJhbiB0aGlzIHdh cyBhbHJlYWR5IGRvbmUKLSsgICAgIGluIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLiAgKi8KLSsgIGlm IChjYWxsX2NvdW50ID09IDEKLSsJJiYgKCFUWVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lTX1VOREVG SU5FRCAoYXJyYXlfdHlwZSkKLSsJICAgICAgJiYgZWx0X29mZnMgPj0gVFlQRV9MRU5HVEggKGFy cmF5X3R5cGUpKSkKLSsgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7Ci0r Ci0rICAvKiBDQUxMX0NPVU5UIGlzIDEgd2hlbiB3ZSBhcmUgZGVhbGluZyBlaXRoZXIgd2l0aCB0 aGUgaGlnaGVzdCBkaW1lbnNpb24KLSsgICAgIG9mIHRoZSBhcnJheSwgb3IgYSBvbmUgZGltZW5z aW9uYWwgYXJyYXkuICBTZXQgUkFOR0VfVFlQRSBhY2NvcmRpbmdseS4KLSsgICAgIEluIGJvdGgg Y2FzZXMgd2UgY2FsY3VsYXRlIGhvdyBtYW55IHJvd3MvZWxlbWVudHMgd2lsbCBiZSBpbiB0aGUg b3V0cHV0Ci0rICAgICBhcnJheSBieSBzZXR0aW5nIHNsaWNlX3JhbmdlX3NpemUuICAqLwotKyAg aWYgKGNhbGxfY291bnQgPT0gMSkKLSsgICAgewotKyAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lO REVYX1RZUEUgKGFycmF5X3R5cGUpOwotKyAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBlbGVtX2Nv dW50OwotKwotKyAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAg Ki8KLSsgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3df Ym91bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQotKwllcnJvciAoXygic2xpY2UgZnJvbSBiYWQg YXJyYXkgb3IgYml0c3RyaW5nIikpOwotKyAgICB9Ci0rICAvKiBXaGVuIENBTExfQ09VTlQgaXMg Z3JlYXRlciB0aGFuIDEsIHdlIGFyZSBkZWFsaW5nIHdpdGggYW4gYXJyYXkgb2YgYXJyYXlzLgot KyAgICAgU28gd2UgbmVlZCB0byBnZXQgdGhlIHR5cGUgYmVsb3cgdGhlIGN1cnJlbnQgb25lIGFu ZCBzZXQgdGhlIFJBTkdFX1RZUEUKLSsgICAgIGFjY29yZGluZ2x5LiAgKi8KLSsgIGVsc2UKLSsg ICAgewotKyAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKFRZUEVfVEFSR0VUX1RZ UEUgKGFycmF5X3R5cGUpKTsKLSsgICAgICBzbGljZV9yYW5nZV9zaXplID0gKGFyeV9sb3dfYm91 bmQgKyByb3dfY291bnQgLSAxKSAqIChlbGVtX2NvdW50KTsKLSsgICAgICBhcnlfbG93X2JvdW5k ID0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpOwotKyAgICB9Ci0gCi0gICAvKiBGSVhNRS10 eXBlLWFsbG9jYXRpb246IG5lZWQgYSB3YXkgdG8gZnJlZSB0aGlzIHR5cGUgd2hlbiB3ZSBhcmUK LS0gICAgIGRvbmUgd2l0aCBpdC4gICovCi0tICBzbGljZV9yYW5nZV90eXBlID0gY3JlYXRlX3N0 YXRpY19yYW5nZV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKLS0JCQkJCSAgICAgICBUWVBF X1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKLS0JCQkJCSAgICAgICBsb3dib3VuZCwKLS0JCQkJ CSAgICAgICBsb3dib3VuZCArIGxlbmd0aCAtIDEpOwotKyAgICAgIGRvbmUgd2l0aCBpdC4gICov Ci0gCi0rICBzbGljZV9yYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxM LCBUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKLSsJCQkJCSAgICAgICBhcnlfbG93X2Jv dW5kLCBzbGljZV9yYW5nZV9zaXplKTsKLSAgIHsKLS0gICAgc3RydWN0IHR5cGUgKmVsZW1lbnRf dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwotLSAgICBMT05HRVNUIG9mZnNl dAotLSAgICAgID0gKGxvd2JvdW5kIC0gbG93ZXJib3VuZCkgKiBUWVBFX0xFTkdUSCAoY2hlY2tf dHlwZWRlZiAoZWxlbWVudF90eXBlKSk7Ci0tCi0tICAgIHNsaWNlX3R5cGUgPSBjcmVhdGVfYXJy YXlfdHlwZSAoKHN0cnVjdCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBlbGVtZW50X3R5cGUsCi0t CQkJCSAgICBzbGljZV9yYW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9 IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7Ci0rICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGU7 Ci0rCi0rICAgIC8qIFdoZW4gQ0FMTF9DT1VOVCBlcXVhbHMgMSB3ZSBjYW4gdXNlIHRoZSBsZWdh Y3kgY29kZSBmb3Igc3ViYXJyYXlzLiAgKi8KLSsgICAgaWYgKGNhbGxfY291bnQgPT0gMSkKLSsg ICAgICB7Ci0rCWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwot IAotLSAgICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkpID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xh enkgKGFycmF5KSkKLS0gICAgICBzbGljZSA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHNsaWNlX3R5 cGUpOwotKwlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVsZW1lbnRfdHlw ZSwgc2xpY2VfcmFuZ2VfdHlwZSk7Ci0rCi0rCVRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBF X0NPREUgKGFycmF5X3R5cGUpOwotKwotKwlpZiAoVkFMVUVfTFZBTCAoYXJyYXkpID09IGx2YWxf bWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKLSsJICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6 eSAoc2xpY2VfdHlwZSk7Ci0rCWVsc2UKLSsJICB7Ci0rCSAgICB2ID0gYWxsb2NhdGVfdmFsdWUg KHNsaWNlX3R5cGUpOwotKwkgICAgdmFsdWVfY29udGVudHNfY29weSAodiwKLSsJCQkJIHZhbHVl X2VtYmVkZGVkX29mZnNldCAodiksCi0rCQkJCSBhcnJheSwKLSsJCQkJIHZhbHVlX2VtYmVkZGVk X29mZnNldCAoYXJyYXkpICsgZWx0X29mZnMsCi0rCQkJCSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9f aW50IChsZW5ndGgpKTsKLSsJICB9Ci0rCi0rICAgICAgfQotKyAgICAvKiBXaGVuIENBTExfQ09V TlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBvbiBhIHJhbmdlIG9mIHJhbmdlcy4K LSsgICAgICAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUgbmV3IGFy cmF5IHdlIHJldHVybi4gICovCi0gICAgIGVsc2UKLSAgICAgICB7Ci0tCXNsaWNlID0gYWxsb2Nh dGVfdmFsdWUgKHNsaWNlX3R5cGUpOwotLQl2YWx1ZV9jb250ZW50c19jb3B5IChzbGljZSwgMCwg YXJyYXksIG9mZnNldCwKLS0JCQkgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIChzbGljZV90eXBlKSk7 Ci0rCUxPTkdFU1QgZHN0X29mZnNldCA9IDA7Ci0rCUxPTkdFU1Qgc3JjX3Jvd19sZW5ndGggPSBU WVBFX0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotKwotKwllbGVtZW50 X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7 Ci0rCXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwgZWxlbWVudF90eXBlLCBz bGljZV9yYW5nZV90eXBlKTsKLSsKLSsJVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09E RSAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotKwotKwl2ID0gYWxsb2NhdGVfdmFs dWUgKHNsaWNlX3R5cGUpOwotKwlmb3IgKGkgPSAwOyBpIDwgbG9uZ2VzdF90b19pbnQgKHJvd19j b3VudCk7IGkrKykKLSsJICB7Ci0rCSAgICAvKiBGZXRjaGVzIHRoZSBjb250ZW50cyBvZiBBUlJB WSBhbmQgY29waWVzIHRoZW0gaW50byBWLiAgKi8KLSsJICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkg KHYsCi0rCQkJCSBkc3Rfb2Zmc2V0LAotKwkJCQkgYXJyYXksCi0rCQkJCSBlbHRfb2ZmcywKLSsJ CQkJIGVsdF9zaXplICogZWxlbV9jb3VudCk7Ci0rCSAgICBlbHRfb2ZmcyArPSBzcmNfcm93X2xl bmd0aDsKLSsJICAgIGRzdF9vZmZzZXQgKz0gZWx0X3NpemUgKiBlbGVtX2NvdW50OwotKwkgIH0K LSAgICAgICB9Ci0gCi0tICAgIHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHNsaWNlLCBh cnJheSk7Ci0tICAgIFZBTFVFX0ZSQU1FX0lEIChzbGljZSkgPSBWQUxVRV9GUkFNRV9JRCAoYXJy YXkpOwotLSAgICBzZXRfdmFsdWVfb2Zmc2V0IChzbGljZSwgdmFsdWVfb2Zmc2V0IChhcnJheSkg KyBvZmZzZXQpOwotKyAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBhcnJheSk7 Ci0rICAgIFZBTFVFX1JFR05VTSAodikgPSBWQUxVRV9SRUdOVU0gKGFycmF5KTsKLSsgICAgVkFM VUVfRlJBTUVfSUQgKHYpID0gVkFMVUVfRlJBTUVfSUQgKGFycmF5KTsKLSsgICAgc2V0X3ZhbHVl X29mZnNldCAodiwgdmFsdWVfb2Zmc2V0IChhcnJheSkgKyBlbHRfb2Zmcyk7Ci0gICB9Ci0gCi0t ICByZXR1cm4gc2xpY2U7Ci0rICByZXR1cm4gdjsKLSB9Ci0gCi0gLyogQ3JlYXRlIGEgdmFsdWUg Zm9yIGEgRk9SVFJBTiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0IG9mIHRoZQotSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWx1ZS5oCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsdWUuaAkyMDE2LTA4LTA3IDIyOjA2OjQ1LjI2 NjgzNjYxOSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWx1ZS5oCTIwMTYt MDgtMDcgMjI6MDg6MjEuNzEwNjg4Mjc2ICswMjAwCi1AQCAtMTA2NCw2ICsxMDY0LDggQEAKLSAK LSBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICosIGludCwg aW50KTsKLSAKLStleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFs dWUgKiwgaW50LCBpbnQsIGludCk7Ci0rCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0 ZXJhbF9jb21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVlICosCi0gCQkJCQkgICAg c3RydWN0IHR5cGUgKik7Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVs LTJvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQxMDBmZS4uMDAwMDAwMAotLS0gYS9nZGItZm9ydHJh bi1zdHJpZGUtaW50ZWwtMm9mNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK LVJFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3Vi YXJyYXlzIHdpdGggc3RyaWRlcwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKLQotRnJvbSA3MzNiM2I2MGJlNWM4ZDIzZmE3ZTQ3NDk4 ZDM1ZTQ3MDE1MjhmM2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hyaXN0b3Bo IFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+Ci1EYXRlOiBGcmksIDEz IE5vdiAyMDE1IDA5OjAwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi82XSBmb3J0cmFuOiBj b21iaW5lIHN1YmFycmF5IGFuZCBzdHJpbmcgY29tcHV0YXRpb24KLQotU3RyaW5ncyB0eXBlcyBh cmUgaGFuZGxlZCBsaWtlIGFycmF5IHR5cGVzIHdpdGggb25seSBvbmUgZGltZW5zaW9uLgotVGhl cmVmb3JlIHRoZSBzYW1lIGFsZ29yaXRobSB0byBjYWxjdWxhdGUgc3Vic2V0cyBpcyB1c2VkLgot Ci0yMDEzLTExLTI2ICBDaHJpc3RvcGggV2Vpbm1hbm4gIDxjaHJpc3RvcGgudC53ZWlubWFubkBp bnRlbC5jb20+Ci0KLQkqIGV2YWwuYyAoZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkKTogQ2FsbAot CXZhbHVlX2Y5MF9zdWJhcnJheSBmb3IgcHJpbnQgZXhwcmVzc2lvbnMgb24gYXJyYXkgYW5kCi0J c3RyaW5nIHR5cGVzLgotCi0KLVNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBXZWlubWFubiA8Y2hy aXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgotLS0tCi0gZ2RiL2V2YWwuYyB8IDEwICstLS0t LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDkgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotaW5kZXggMzU4MTVhNC4uNWMy MGZlZSAxMDA2NDQKLS0tLSBhL2dkYi9ldmFsLmMKLSsrKyBiL2dkYi9ldmFsLmMKLUBAIC0yMDM1 LDE2ICsyMDM1LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCi0gICAgICAgc3dpdGNoIChjb2RlKQotIAl7Ci0gCWNhc2UgVFlQRV9DT0RFX0FS UkFZOgotLQkgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJn cywgbm9zaWRlKTsKLS0KLSAJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkgIGlmIChleHAtPmVs dHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQotLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJh cnJheSAoYXJnMSwgZXhwLCBwb3MsIDEsIG5vc2lkZSk7Ci0tCSAgZWxzZQotLQkgICAgewotLQkg ICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3Np ZGUpOwotLQkgICAgICByZXR1cm4gdmFsdWVfc3Vic2NyaXB0IChhcmcxLCB2YWx1ZV9hc19sb25n IChhcmcyKSk7Ci0tCSAgICB9Ci0rCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwg ZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwotIAotIAljYXNlIFRZUEVfQ09ERV9QVFI6Ci0gCWNh c2UgVFlQRV9DT0RFX0ZVTkM6Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItZm9ydHJh bi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTRkZTdkLi4wMDAwMDAwCi0t LSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzQxICswLDAgQEAKLVJFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGkt ZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKLQotRnJvbSAwNThlZDllNTVk YjcyMjQ0ZmUxYzUzNDZhMTFmYTY3ZWZmNjFkMzE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+ Ci1EYXRlOiBNb24sIDIzIE5vdiAyMDE1IDEwOjMxOjQ0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0gg My82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmllbGQKLQotQ2hhbmdl IEZvcnRyYW4gc3VicmFuZ2UgZW51bSBmb3Igc3VicmFuZ2UgZXhwcmVzc2lvbnMgdG8KLXJlcHJl c2VudCBhIGJpdGZpZWxkIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLiAgQ29uc2VxdWVudGx5Ci1h bHNvIGNoYW5nZSBvY2N1cmVuY2VzIGFuZCBldmFsdWF0aW9uIG9mIHNhaWQgZW51bS4gIFRoZQot YmVoYXZpb3VyIG9mIEdEQiBpcyB1bmNoYW5nZWQuCi0KLTIwMTMtMTEtMjcgIENocmlzdG9waCBX ZWlubWFubiAgPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLQotCSogZXZhbC5jICh2 YWx1ZV9mOTBfc3ViYXJyYXkpOiBDaGFuZ2UgZXZhbHVhdGlvbiBvZiB0aGUKLQlzdWJhcnJheSBi b3VuZGFyaWVzLiAgU2V0IGJvdW5kYXJpZXMgdG8gYmUgZWl0aGVyIHVzZXIKLQlwcm92aWRlZCAo Yml0IGluIHJhbmdlX3R5cGUgd2FzIHNldCksIG9yIHRha2UgdGhlIGRlZmF1bHQKLQl2YWx1ZSBp ZiB0aGUgYm91bmRhcnkgd2FzIG5vdCBwcm92aWRlZCBieSB0aGUgdXNlci4KLQkqIGV4cHByaW50 LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6IEFsdGVyIGJvdW5kYXJ5IGNvbS0KLQlwdXRhdGlv bnMgdG8gdXNlIHVwZGF0ZWQgcmFuZ2VfdHlwZSBlbnVtLgotCSogZXhwcHJpbnQuaCAoZHVtcF9z dWJleHBfYm9keV9zdGFuZGFyZCk6IERpdG8uCi0JKiBleHByZXNzaW9uLmggKHJhbmdlX3R5cGUp OiBDaGFuZ2UgdGhlIGVudW0gdG8gdXNlIGJpdAotCXZhbHVlcyBmb3IgZWFjaCBib3VuZGFyeSwg aWYgc2V0IGJ5IHRoZSB1c2VyLgotCSogZi1leHAueSAoc3VicmFuZ2UpOiBDaGFuZ2UgcnVsZXMg Zm9yIHN1YnJhbmdlIGV4cHJlc3Npb25zCi0JdG8gd3JpdGUgdGhlIHJlbGV2YW50IGJpdCBzZXF1 ZW5jZSBvbnRvIHRoZSBlbHQgc3RhY2suCi0JKiBwYXJzZS5jIChvcGVyYXRvcl9sZW5ndGhfc3Rh bmRhcmQpOiBJbiBjYXNlIG9mIE9QX1JBTkdFCi0JY2hhbmdlIHRoZSBjYWxjdWxhdGlvbiBvZiB0 aGUgbnVtYmVyIG9mCWFyZ3VtZW50cyBvbiB0aGUKLQllbHQgc3RhY2ssIGRlcGVuZGluZyBvbiB0 aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgcHJvdmlkZWQKLQlieSB0aGUgdXNlci4KLQkqIHJ1c3Qt ZXhwLnkgKGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24pOiBNb2RpZnkgY2FsY3VsYS0KLQl0aW9u IG9mIHN1YnNjcmlwdCBlbGVtZW50cyB0byB1c2UgYWx0ZXJlZCByYW5nZV90eXBlLgotCSogcnVz dC1sYW5nLmMgKHJ1c3RfcmFuZ2UpOiBEaXRvLgotCSogcnVzdC1sYW5nLmMgKHJ1c3Rfc3Vic2Ny aXB0KTogRGl0by4KLQotCi1TaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlz dG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLS0tLQotIGdkYi9ldmFsLmMgICAgICAgfCAxNCAr KysrKystLS0tLS0tLQotIGdkYi9leHBwcmludC5jICAgfCAyMCArKysrKysrKy0tLS0tLS0tLS0t LQotIGdkYi9leHByZXNzaW9uLmggfCAxNSArKysrKystLS0tLS0tLS0KLSBnZGIvZi1leHAueSAg ICAgIHwgMTEgKysrKysrLS0tLS0KLSBnZGIvcGFyc2UuYyAgICAgIHwgMjEgKysrKysrKystLS0t LS0tLS0tLS0tCi0gZ2RiL3J1c3QtZXhwLnkgICB8IDEyICsrKy0tLS0tLS0tLQotIGdkYi9ydXN0 LWxhbmcuYyAgfCAxNyArKysrKysrKy0tLS0tLS0tLQotIDcgZmlsZXMgY2hhbmdlZCwgNDUgaW5z ZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIv Z2RiL2V2YWwuYwotaW5kZXggNWMyMGZlZS4uNDRlODYwMCAxMDA2NDQKLS0tLSBhL2dkYi9ldmFs LmMKLSsrKyBiL2dkYi9ldmFsLmMKLUBAIC00ODIsMTIgKzQ4MiwxMiBAQCB2YWx1ZV9mOTBfc3Vi YXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAg LyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFz IGJlZW4KLSAJICAgICBzZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVs dCBzdGFjay4gIFNhbWUgZm9yCi0gCSAgICAgdXBwZXIgYm91bmQuICAqLwotLQkgIGlmICgocmFu Z2UtPmY5MF9yYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCkKLS0JICAgICAgfHwgcmFu Z2UtPmY5MF9yYW5nZV90eXBlID09IE5PTkVfQk9VTkRfREVGQVVMVCkKLSsJICBpZiAoKHJhbmdl LT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0xPV19CT1VORCkKLSsJICAgICAgPT0gU1VCQVJS QVlfTE9XX0JPVU5EKQotIAkgICAgcmFuZ2UtPmxvdyA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRl X3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCi0gCQkJCQkJCSBwb3MsIG5vc2lkZSkpOwotLQkgIGlm ICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IExPV19CT1VORF9ERUZBVUxUKQotLQkgICAgICB8 fCByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQotKwkgIGlmICgo cmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfSElHSF9CT1VORCkKLSsJICAgICAgPT0g U1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAo ZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSAJCQkJCQkJICBwb3MsIG5vc2lkZSkp OwotIAl9Ci1AQCAtNTI4LDEyICs1MjgsMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAotIAkgICAgLyogSWYgbm8g bG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB3ZSB0YWtlIHRoZQotIAkgICAg ICAgZGVmYXVsdCBib3VuZGFyeS4gIFNhbWUgZm9yIHRoZSBoaWdoIGJvdW5kLiAgKi8KLS0JICAg IGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IExPV19CT1VORF9ERUZBVUxUKQotLQkJfHwg KHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpKQotKwkgICAgaWYg KChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IDApCi0gCSAg ICAgIHJhbmdlLT5sb3cgPSBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSk7Ci0gCi0tCSAgICBp ZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQpCi0tCQl8fCAo cmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkpCi0rCSAgICBpZiAo KHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IDApCi0gCSAg ICAgIHJhbmdlLT5oaWdoID0gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKTsKLSAKLSAJICAg IC8qIEJvdGggdXNlciBwcm92aWRlZCBsb3cgYW5kIGhpZ2ggYm91bmQgaGF2ZSB0byBiZSBpbnNp ZGUgdGhlCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYwotaW5k ZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKLS0tLSBhL2dkYi9leHBwcmludC5jCi0rKysgYi9n ZGIvZXhwcHJpbnQuYwotQEAgLTU2OCwxMiArNTY4LDEwIEBAIHByaW50X3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCi0gCSpwb3MgKz0gMjsKLSAKLSAJ ZnB1dHNfZmlsdGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOwotLQlpZiAocmFuZ2VfdHlwZSA9PSBI SUdIX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZB VUxUKQotKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFSUkFZ X0xPV19CT1VORCkKLSAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBSRUNfQUJP VkVfQ09NTUEpOwotIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKLS0JaWYgKHJhbmdl X3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9C T1VORF9ERUZBVUxUKQotKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9 PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQotIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVh bSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0gCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVhbSk7Ci0g CXJldHVybjsKLUBAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRh cmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCi0gCXN3aXRjaCAocmFuZ2VfdHlwZSkKLSAJ ICB7Ci0tCSAgY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6Ci0rCSAgY2FzZSBTVUJBUlJBWV9OT05F X0JPVU5EOgotIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFtKTsKLSAJ ICAgIGJyZWFrOwotLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6Ci0rCSAgY2FzZSBTVUJBUlJB WV9ISUdIX0JPVU5EOgotIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi5FWFAnIiwgc3Ry ZWFtKTsKLSAJICAgIGJyZWFrOwotLQkgIGNhc2UgSElHSF9CT1VORF9ERUZBVUxUOgotKwkgIGNh c2UgU1VCQVJSQVlfTE9XX0JPVU5EOgotIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQ Li4nIiwgc3RyZWFtKTsKLSAJICAgIGJyZWFrOwotLQkgIGNhc2UgTk9ORV9CT1VORF9ERUZBVUxU OgotKwkgIGNhc2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOgot IAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsKLSAJICAg IGJyZWFrOwotIAkgIGRlZmF1bHQ6Ci1AQCAtMTA3MiwxMSArMTA3MCw5IEBAIGR1bXBfc3ViZXhw X2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgICBicmVhazsKLSAJ ICB9Ci0gCi0tCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAotLQkgICAgfHwg cmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCWlmICgocmFuZ2VfdHlwZSAmIFNV QkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQotIAkgIGVsdCA9IGR1bXBf c3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLS0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5E X0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQotKwlp ZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JP VU5EKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgICB9 Ci0gICAgICAgYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHBy ZXNzaW9uLmgKLWluZGV4IDQ5NTJkODQuLjVhNmI3MjAgMTAwNjQ0Ci0tLS0gYS9nZGIvZXhwcmVz c2lvbi5oCi0rKysgYi9nZGIvZXhwcmVzc2lvbi5oCi1AQCAtMTUyLDE3ICsxNTIsMTQgQEAgZXh0 ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwKLSAJCQkJ IHN0cnVjdCB1aV9maWxlICosIGNoYXIgKik7Ci0gZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhw cmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0gCi0tLyog SW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxkIGJlIGVtcHR5LCBp bmRpY2F0aW5nCi0tICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0aGF0IG9mIHRoZSBj b3JyZXNwb25kaW5nIGJvdW5kIG9mIHRoZQotLSAgIGFycmF5IG9yIHN0cmluZy4gIFNvIHdlIGhh dmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKLS0gICBlbnVtZXJhdGlvbiB0eXBlIGlz IHRvIGlkZW50aWZ5IHRoaXMuICAqLwotLSAgIAotKy8qIEluIGFuIE9QX1JBTkdFIGV4cHJlc3Np b24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4KLSsg ICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCi0rCi0gZW51 bSByYW5nZV90eXBlCi0gICB7Ci0tICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIoOikiICAq LwotLSAgICBMT1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8KLS0gICAgSElHSF9C T1VORF9ERUZBVUxULAkJLyogIihsb3c6KSIgICovCi0tICAgIE5PTkVfQk9VTkRfREVGQVVMVAkJ LyogIihsb3c6aGlnaCkiICAqLwotKyAgICBTVUJBUlJBWV9OT05FX0JPVU5EID0gMHgwLAkJLyog IiggOiApIiAgKi8KLSsgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIg ICovCi0rICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAgKi8KLSAg IH07Ci0gCi0gI2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCi1kaWZmIC0tZ2l0 IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggZGMxMzFjMS4uZTJjNTRiNiAxMDA2 NDQKLS0tLSBhL2dkYi9mLWV4cC55Ci0rKysgYi9nZGIvZi1leHAueQotQEAgLTI2MCwyNiArMjYw LDI3IEBAIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9WRV9DT01NQQotIC8q IFRoZXJlIGFyZSBmb3VyIHNvcnRzIG9mIHN1YnJhbmdlIHR5cGVzIGluIEY5MC4gICovCi0gCi0g c3VicmFuZ2U6CWV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0tCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IAotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25n Y3N0IChwc3RhdGUsIE5PTkVfQk9VTkRfREVGQVVMVCk7Ci0rCQkJeyB3cml0ZV9leHBfZWx0X29w Y29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBz dGF0ZSwKLSsJCQkJCQkgU1VCQVJSQVlfTE9XX0JPVU5EIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7 Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSAJOwot IAotIHN1YnJhbmdlOglleHAgJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0tCQkJICB3cml0ZV9leHBfZWx0X2xvbmdj c3QgKHBzdGF0ZSwgSElHSF9CT1VORF9ERUZBVUxUKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfbG9u Z2NzdCAocHN0YXRlLCBTVUJBUlJBWV9MT1dfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9v cGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9Ci0gCTsKLSAKLSBzdWJyYW5nZToJJzonIGV4cAkl cHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIExPV19CT1VORF9E RUZBVUxUKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9I SUdIX0JPVU5EKTsKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsgfQotIAk7Ci0gCi0gc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2Vs dF9sb25nY3N0IChwc3RhdGUsIEJPVEhfQk9VTkRfREVGQVVMVCk7Ci0rCQkJICB3cml0ZV9leHBf ZWx0X2xvbmdjc3QgKHBzdGF0ZSwgMCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9SQU5HRSk7IH0KLSAJOwotIAotZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2Ri L3BhcnNlLmMKLWluZGV4IDJiMDA3MDguLjZkNTRhNzcgMTAwNjQ0Ci0tLS0gYS9nZGIvcGFyc2Uu YwotKysrIGIvZ2RiL3BhcnNlLmMKLUBAIC0xMDA2LDIyICsxMDA2LDE3IEBAIG9wZXJhdG9yX2xl bmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3Ms Ci0gCi0gICAgIGNhc2UgT1BfUkFOR0U6Ci0gICAgICAgb3BsZW4gPSAzOwotKyAgICAgIGFyZ3Mg PSAwOwotICAgICAgIHJhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBlKQotIAlsb25nZXN0X3Rv X2ludCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOwotIAotLSAgICAgIHN3aXRj aCAocmFuZ2VfdHlwZSkKLS0JewotLQljYXNlIExPV19CT1VORF9ERUZBVUxUOgotLQljYXNlIEhJ R0hfQk9VTkRfREVGQVVMVDoKLS0JICBhcmdzID0gMTsKLS0JICBicmVhazsKLS0JY2FzZSBCT1RI X0JPVU5EX0RFRkFVTFQ6Ci0tCSAgYXJncyA9IDA7Ci0tCSAgYnJlYWs7Ci0tCWNhc2UgTk9ORV9C T1VORF9ERUZBVUxUOgotLQkgIGFyZ3MgPSAyOwotLQkgIGJyZWFrOwotLQl9Ci0rICAgICAgLyog SW5jcmVtZW50IHRoZSBhcmd1bWVudCBjb3VudGVyIGZvciBlYWNoIGFyZ3VtZW50Ci0rCSBwcm92 aWRlZCBieSB0aGUgdXNlci4gICovCi0rICAgICAgaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlf TE9XX0JPVU5EKSA9PSBTVUJBUlJBWV9MT1dfQk9VTkQpCi0rCWFyZ3MrKzsKLSsKLSsgICAgICBp ZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JP VU5EKQotKwlhcmdzKys7Ci0gCi0gICAgICAgYnJlYWs7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3J1 c3QtZXhwLnkgYi9nZGIvcnVzdC1leHAueQotaW5kZXggYzFhODYzYy4uNzYwOTI5YjUgMTAwNjQ0 Ci0tLS0gYS9nZGIvcnVzdC1leHAueQotKysrIGIvZ2RiL3J1c3QtZXhwLnkKLUBAIC0yNDE4LDIz ICsyNDE4LDE3IEBAIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKHN0cnVjdCBwYXJzZXJfc3Rh dGUgKnN0YXRlLAotIAotICAgICBjYXNlIE9QX1JBTkdFOgotICAgICAgIHsKLS0JZW51bSByYW5n ZV90eXBlIGtpbmQgPSBCT1RIX0JPVU5EX0RFRkFVTFQ7Ci0rCWVudW0gcmFuZ2VfdHlwZSBraW5k ID0gU1VCQVJSQVlfTk9ORV9CT1VORDsKLSAKLSAJaWYgKG9wZXJhdGlvbi0+bGVmdC5vcCAhPSBO VUxMKQotIAkgIHsKLSAJICAgIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKHN0YXRlLCBvcGVy YXRpb24tPmxlZnQub3AsIHRvcCk7Ci0tCSAgICBraW5kID0gSElHSF9CT1VORF9ERUZBVUxUOwot KwkgICAga2luZCA9IFNVQkFSUkFZX0xPV19CT1VORDsKLSAJICB9Ci0gCWlmIChvcGVyYXRpb24t PnJpZ2h0Lm9wICE9IE5VTEwpCi0gCSAgewotIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lv biAoc3RhdGUsIG9wZXJhdGlvbi0+cmlnaHQub3AsIHRvcCk7Ci0tCSAgICBpZiAoa2luZCA9PSBC T1RIX0JPVU5EX0RFRkFVTFQpCi0tCSAgICAgIGtpbmQgPSBMT1dfQk9VTkRfREVGQVVMVDsKLS0J ICAgIGVsc2UKLS0JICAgICAgewotLQkJZ2RiX2Fzc2VydCAoa2luZCA9PSBISUdIX0JPVU5EX0RF RkFVTFQpOwotLQkJa2luZCA9IE5PTkVfQk9VTkRfREVGQVVMVDsKLS0JICAgICAgfQotKwkgICAg a2luZCA9IChyYW5nZV90eXBlKSAoa2luZCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkgIH0K LSAJd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHN0YXRlLCBPUF9SQU5HRSk7Ci0gCXdyaXRlX2V4cF9l bHRfbG9uZ2NzdCAoc3RhdGUsIGtpbmQpOwotZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBi L2dkYi9ydXN0LWxhbmcuYwotaW5kZXggNWRmOTljZS4uOGQ1M2UzMSAxMDA2NDQKLS0tLSBhL2dk Yi9ydXN0LWxhbmcuYwotKysrIGIvZ2RiL3J1c3QtbGFuZy5jCi1AQCAtMTE4OCw5ICsxMTg4LDkg QEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9z aWRlIG5vc2lkZSkKLSAgIGtpbmQgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAo ZXhwLT5lbHRzWypwb3MgKyAxXS5sb25nY29uc3QpOwotICAgKnBvcyArPSAzOwotIAotLSAgaWYg KGtpbmQgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTk9ORV9CT1VORF9ERUZBVUxU KQotKyAgaWYgKChraW5kICYgU1VCQVJSQVlfTE9XX0JPVU5EKSA9PSBTVUJBUlJBWV9MT1dfQk9V TkQpCi0gICAgIGxvdyA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKTsKLS0gIGlmIChraW5kID09IExPV19CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTk9ORV9C T1VORF9ERUZBVUxUKQotKyAgaWYgKChraW5kICYgU1VCQVJSQVlfSElHSF9CT1VORCkgPT0gU1VC QVJSQVlfSElHSF9CT1VORCkKLSAgICAgaGlnaCA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBF LCBleHAsIHBvcywgbm9zaWRlKTsKLSAKLSAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotQEAg LTEyNzksNyArMTI3OSw3IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCi0gCi0gICAqbG93ID0gMDsKLSAgICpoaWdoID0gMDsKLS0g ICpraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOwotKyAgKmtpbmQgPSBTVUJBUlJBWV9OT05FX0JP VU5EOwotIAotICAgaWYgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMCkKLSAgICAgcmV0dXJuOwot QEAgLTEyODcsMTUgKzEyODcsMTQgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHZhbHVlICpyYW5nZSwKLSAgIGkgPSAwOwotICAgaWYgKHN0cmNtcCAoVFlQ RV9GSUVMRF9OQU1FICh0eXBlLCAwKSwgInN0YXJ0IikgPT0gMCkKLSAgICAgewotLSAgICAgICpr aW5kID0gSElHSF9CT1VORF9ERUZBVUxUOwotKyAgICAgICpraW5kID0gU1VCQVJSQVlfTE9XX0JP VU5EOwotICAgICAgICpsb3cgPSB2YWx1ZV9hc19sb25nICh2YWx1ZV9maWVsZCAocmFuZ2UsIDAp KTsKLSAgICAgICArK2k7Ci0gICAgIH0KLSAgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID4gaQot ICAgICAgICYmIHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSwgImVuZCIpID09IDAp Ci0gICAgIHsKLS0gICAgICAqa2luZCA9ICgqa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQKLS0J ICAgICAgID8gTE9XX0JPVU5EX0RFRkFVTFQgOiBOT05FX0JPVU5EX0RFRkFVTFQpOwotKyAgICAg ICpraW5kID0gKHJhbmdlX3R5cGUpICgqa2luZCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotICAg ICAgICpoaWdoID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCBpKSk7Ci0gICAg IH0KLSB9Ci1AQCAtMTMxMCw3ICsxMzA5LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCi0gICBzdHJ1Y3QgdHlw ZSAqcmhzdHlwZTsKLSAgIExPTkdFU1QgbG93LCBoaWdoX2JvdW5kOwotICAgLyogSW5pdGlhbGl6 ZWQgdG8gYXBwZWFzZSB0aGUgY29tcGlsZXIuICAqLwotLSAgZW51bSByYW5nZV90eXBlIGtpbmQg PSBCT1RIX0JPVU5EX0RFRkFVTFQ7Ci0rICBlbnVtIHJhbmdlX3R5cGUga2luZCA9IFNVQkFSUkFZ X05PTkVfQk9VTkQ7Ci0gICBMT05HRVNUIGhpZ2ggPSAwOwotICAgaW50IHdhbnRfc2xpY2UgPSAw OwotIAotQEAgLTEzNjYsNyArMTM2NSw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAotIAllcnJvciAoXygiQ2Fu bm90IHN1YnNjcmlwdCBub24tYXJyYXkgdHlwZSIpKTsKLSAKLSAgICAgICBpZiAod2FudF9zbGlj ZQotLQkgICYmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IExPV19CT1VO RF9ERUZBVUxUKSkKLSsJICAmJiAoKGtpbmQgJiBTVUJBUlJBWV9MT1dfQk9VTkQpICE9IFNVQkFS UkFZX0xPV19CT1VORCkpCi0gCWxvdyA9IGxvd19ib3VuZDsKLSAgICAgICBpZiAobG93IDwgMCkK LSAJZXJyb3IgKF8oIkluZGV4IGxlc3MgdGhhbiB6ZXJvIikpOwotQEAgLTEzODQsNyArMTM4Myw3 IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51 bSBub3NpZGUgbm9zaWRlLAotIAkgIENPUkVfQUREUiBhZGRyOwotIAkgIHN0cnVjdCB2YWx1ZSAq YWRkcnZhbCwgKnRlbTsKLSAKLS0JICBpZiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwg a2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQpCi0rCSAgaWYgKChraW5kICYgU1VCQVJSQVlfSElH SF9CT1VORCkgIT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIGhpZ2ggPSBoaWdoX2JvdW5k OwotIAkgIGlmIChoaWdoIDwgMCkKLSAJICAgIGVycm9yIChfKCJIaWdoIGluZGV4IGxlc3MgdGhh biB6ZXJvIikpOwotLS0gCi0yLjUuNQotCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRl LWludGVsLTRvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUwOTZlMy4uMDAwMDAwMAotLS0gYS9nZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2NyAr MCwwIEBACi1SRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lv bmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKLWh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2Ri LXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCi0KLUZyb20gMzM4ZTRjODYwYWQyMDU4OTZi NGE5NWM3OWY1NDQ3MGM3OWVlYjM0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENo cmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgotRGF0ZTog V2VkLCAxIEp1biAyMDE2IDE1OjExOjI0ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggNC82XSBmb3J0 cmFuOiBlbmFibGUgcGFyc2luZyBvZiBzdHJpZGUgcGFyYW1ldGVyIGZvciBzdWJyYW5nZXMKLQot QWxsb3cgdGhlIHVzZXIgdG8gcHJvdmlkZSBhIHN0cmlkZSBwYXJhbWV0ZXIgZm9yIEZvcnRyYW4K LXN1YmFycmF5cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50ZWdlciBleGNl cHQKLScwJy4gIFRoZSBkZWZhdWx0IHN0cmlkZSB2YWx1ZSBpcyAnMScuCi0KLTIwMTMtMTEtMjcg IENocmlzdG9waCBXZWlubWFubiAgPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLQot CSogZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBBZGQgZXhwcmVzc2lvbiBldmFsdWF0aW9u Ci0JZm9yIGEgc3RyaWRlIHBhcmFtZXRlciBpbiBhIEZvcnRyYW4gcmFuZ2UgZXhwcmVzc2lvbi4K LQkqIGV4cHJlc3Npb24uaCAocmFuZ2VfdHlwZSk6IEFkZCBmaWVsZCB0byBlbnVtIHRvIHNob3cg d2hlbgotCWEgc3RyaWRlIHZhbHVlIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlci4KLQkqIGYtZXhw Lnk6IEFkZCB5YWNjIHJ1bGVzIGZvciB3cml0aW5nIGluZm8gb24gdGhlIGVsdCBzdGFjawotCXdo ZW4gdGhlIHVzZXIgcHJvdmlkZWQgYSBzdHJpZGUgYXJndW1lbnQuCi0JKiBwYXJzZS5jIChvcGVy YXRvcl9sZW5ndGhfc3RhbmRhcmQpOiBDaGVjayBpZiBhIHN0cmlkZQotCXZhbHVlIHdhcyBwcm92 aWRlZCwgYW5kIGluY3JlbWVudCBhcmd1bWVudCBjb3VudGVyCi0JYWNjb3JkaW5nbHkuCi0KLQot U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBp bnRlbC5jb20+Ci0tLS0KLSBnZGIvZXZhbC5jICAgICAgIHwgMTEgKysrKysrKysrKy0KLSBnZGIv ZXhwcmVzc2lvbi5oIHwgIDcgKysrKystLQotIGdkYi9mLWV4cC55ICAgICAgfCAzMSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCi0gZ2RiL3BhcnNlLmMgICAgICB8ICAzICsrKwotIGdk Yi92YWxvcHMuYyAgICAgfCAgNCArKy0tCi0gNSBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFs LmMKLWluZGV4IDQ0ZTg2MDAuLmI1YWFmMWMgMTAwNjQ0Ci0tLS0gYS9nZGIvZXZhbC5jCi0rKysg Yi9nZGIvZXZhbC5jCi1AQCAtNDE5LDcgKzQxOSw3IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3Ry dWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAgIHR5cGVkZWYgc3Ry dWN0IHN1YnNjcmlwdF9yYW5nZQotICAgewotICAgICBlbnVtIHJhbmdlX3R5cGUgZjkwX3Jhbmdl X3R5cGU7Ci0tICAgIExPTkdFU1QgbG93LCBoaWdoOwotKyAgICBMT05HRVNUIGxvdywgaGlnaCwg c3RyaWRlOwotICAgfSBzdWJzY3JpcHRfcmFuZ2U7Ci0gCi0gICB0eXBlZGVmIGVudW0gc3Vic2Ny aXB0X2tpbmQKLUBAIC00OTAsNiArNDkwLDE1IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0 IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAgPT0gU1VCQVJS QVlfSElHSF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVh dGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSAJCQkJCQkJICBwb3MsIG5vc2lkZSkpOwotKwot KwkgIC8qIEFzc2lnbiB0aGUgdXNlcidzIHN0cmlkZSB2YWx1ZSBpZiBwcm92aWRlZC4gICovCi0r CSAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9TVFJJREUpID09IFNVQkFS UkFZX1NUUklERSkKLSsJICAgIHJhbmdlLT5zdHJpZGUgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0 ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAotKwkJCQkJCQkgICAgIHBvcywgbm9zaWRlKSk7Ci0r Ci0rCSAgLyogQXNzaWduIHRoZSBkZWZhdWx0IHN0cmlkZSB2YWx1ZSAnMScuICAqLwotKwkgIGVs c2UKLSsJICAgIHJhbmdlLT5zdHJpZGUgPSAxOwotIAl9Ci0gICAgICAgLyogVXNlciBpbnB1dCBp cyBhbiBpbmRleC4gIEUuZy46ICJwIGFycnkoNSkiLiAgKi8KLSAgICAgICBlbHNlCi1kaWZmIC0t Z2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKLWluZGV4IDVhNmI3MjAu LjM0Y2E1NGIgMTAwNjQ0Ci0tLS0gYS9nZGIvZXhwcmVzc2lvbi5oCi0rKysgYi9nZGIvZXhwcmVz c2lvbi5oCi1AQCAtMTUzLDEzICsxNTMsMTYgQEAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVz c2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwKLSBleHRlcm4gdm9pZCBkdW1wX3ByZWZpeF9leHBy ZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKLSAKLSAvKiBJ biBhbiBPUF9SQU5HRSBleHByZXNzaW9uLCBlaXRoZXIgYm91bmQgY2FuIGJlIHByb3ZpZGVkIGJ5 IHRoZSB1c2VyLCBvciBub3QuCi0tICAgVGhpcyBlbnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50 aWZ5IHRoaXMuICAqLwotKyAgIEluIGFkZGl0aW9uIHRvIHRoaXMsIHRoZSB1c2VyIGNhbiBhbHNv IHNwZWNpZnkgYSBzdHJpZGUgdmFsdWUgdG8gaW5kaWNhdGVkCi0rICAgb25seSBjZXJ0YWluIGVs ZW1lbnRzIG9mIHRoZSBhcnJheS4gIFRoaXMgZW51bWVyYXRpb24gdHlwZSBpcyB0byBpZGVudGlm eQotKyAgIHRoaXMuICAqLwotIAotIGVudW0gcmFuZ2VfdHlwZQotICAgewotICAgICBTVUJBUlJB WV9OT05FX0JPVU5EID0gMHgwLAkJLyogIiggOiApIiAgKi8KLSAgICAgU1VCQVJSQVlfTE9XX0JP VU5EID0gMHgxLAkJLyogIihsb3c6KSIgICovCi0tICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAw eDIJCS8qICIoOmhpZ2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MiwJCS8q ICIoOmhpZ2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfU1RSSURFID0gMHg0CQkvKiAiKDo6c3RyaWRl KSIgICovCi0gICB9OwotIAotICNlbmRpZiAvKiAhZGVmaW5lZCAoRVhQUkVTU0lPTl9IKSAqLwot ZGlmZiAtLWdpdCBhL2dkYi9mLWV4cC55IGIvZ2RiL2YtZXhwLnkKLWluZGV4IGUyYzU0YjYuLjcx ZjE4MjMgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1leHAueQotKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0y ODAsNyArMjgwLDM2IEBAIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCi0g c3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3Rh dGUsIDApOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX05P TkVfQk9VTkQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OyB9Ci0rCTsKLSsKLSsvKiBFYWNoIHN1YnJhbmdlIHR5cGUgY2FuIGhhdmUgYSBzdHJpZGUgYXJn dW1lbnQuICAqLwotK3N1YnJhbmdlOglleHAgJzonIGV4cCAnOicgZXhwICVwcmVjIEFCT1ZFX0NP TU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJ ICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5ECi0rCQkJ CQkJIHwgU1VCQVJSQVlfSElHSF9CT1VORAotKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0r CQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSsJOwotKwot K3N1YnJhbmdlOglleHAgJzonICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRl X2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRf bG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9MT1dfQk9VTkQKLSsJCQkJCQkgfCBTVUJBUlJBWV9T VFJJREUpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9 Ci0rCTsKLSsKLStzdWJyYW5nZToJJzonIGV4cCAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0r CQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJICB3cml0 ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfSElHSF9CT1VORAotKwkJCQkJCSB8 IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBP UF9SQU5HRSk7IH0KLSsJOwotKwotK3N1YnJhbmdlOgknOicgJzonIGV4cCAlcHJlYyBBQk9WRV9D T01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwotKwkJ CSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX1NUUklERSk7Ci0gCQkJ ICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSAJOwotIAotZGlm ZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKLWluZGV4IDZkNTRhNzcuLjk5MmFm ODcgMTAwNjQ0Ci0tLS0gYS9nZGIvcGFyc2UuYwotKysrIGIvZ2RiL3BhcnNlLmMKLUBAIC0xMDE4 LDYgKzEwMTgsOSBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHBy ZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAotICAgICAgIGlmICgocmFuZ2VfdHlwZSAmIFNVQkFS UkFZX0hJR0hfQk9VTkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCi0gCWFyZ3MrKzsKLSAKLSsg ICAgICBpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9TVFJJREUpID09IFNVQkFSUkFZX1NUUklE RSkKLSsJYXJncysrOwotKwotICAgICAgIGJyZWFrOwotIAotICAgICBkZWZhdWx0OgotZGlmZiAt LWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxvcHMuYwotaW5kZXggODE3YTRjZi4uZmJjN2Rj YiAxMDA2NDQKLS0tLSBhL2dkYi92YWxvcHMuYwotKysrIGIvZ2RiL3ZhbG9wcy5jCi1AQCAtMzgz NCw3ICszODM0LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxv d2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKLSAgIGlmIChjYWxsX2NvdW50ID09 IDEpCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90 eXBlKTsKLS0gICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsKLSsgICAgICBzbGlj ZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAxOwotIAotICAgICAg IC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8KLSAgICAgICBpZiAo Z2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGln aF9ib3VuZCkgPCAwKQotQEAgLTM4NDYsNyArMzg0Niw3IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQp Ci0gICBlbHNlCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChU WVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0tICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9 IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3VudCk7Ci0rICAgICAg c2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3Vu dCkgLSAxOwotICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlw ZSk7Ci0gICAgIH0KLSAKLS0tIAotMi41LjUKLQoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0 cmlkZS1pbnRlbC01b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTVvZjYucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOWE2NjIuLjAwMDAwMDAKLS0tIGEv Z2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTVvZjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz NzAgKzAsMCBAQAotUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1l bnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCi1odHRwczovL3NvdXJjZXdhcmUub3JnL21s L2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAotCi1Gcm9tIDExODkwOThjM2NhY2My ZWU2OTAyMWRlMWE4M2FkMzMyODgyMWQ3NTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLURh dGU6IFdlZCwgMSBKdW4gMjAxNiAxNTowNDowMSArMDIwMAotU3ViamVjdDogW1BBVENIIDUvNl0g Zm9ydHJhbjogY2FsY3VsYXRlIGVsZW1lbnRzIG9mIGEgc3ViYXJyYXkgdXNpbmcgYQotIHByb3Zp ZGVkIHN0cmlkZSB2YWx1ZQotCi1UaGUgc3RyaWRlIHZhbHVlIGNhbiBiZSBhIHBvc2l0aXZlIG9y IG5lZ2F0aXZlIGludGVnZXIsIGJ1dCBtYXkKLW5vdCBiZSB6ZXJvLiAgSWYgbm8gc3RyaWRlIGlz IHByb3ZpZGVkLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUKLTEgdG8gcHJpbnQgYWxsIGVsZW1lbnRz IGluc2lkZSB0aGUgcmFuZ2UuCi0KLTF8IHByb2dyYW0gcHJvZwotMnwgICBpbnRlZ2VyIDo6IGFy eSgxMCkgPSAoLyAoaSwgaT0xLCAxMCkgLykKLTN8IGVuZCBwcm9ncmFtIHByb2cKLQotKGdkYikg cHJpbnQgYXJ5KDE6MTA6MikKLSQzID0gKDEsIDMsIDUsIDcsIDkpCi0KLTIwMTMtMTEtMjcgIENo cmlzdG9waCBXZWlubWFubiAgPGNocmlzdG9waC50LndlaW5tYW5uPgotCi0JKiBldmFsLmMgKHZh bHVlX2Y5MF9zdWJhcnJheSk6IEFkZCByYW5nZSBzaXplIGNhbGN1bGF0aW9uCi0JZm9yIHN0cmlk ZSBiYXNlZCByYW5nZXMsIGFuZCBldmFsdWF0aW9uIG9mIHVzZXIgc3RyaWRlCi0JcGFyYW1ldGVy cy4gIEFkZCBjaGVjayBmb3IgbWF0Y2hpbmcgdXNlciBpbnB1dCB0byBhcnJheQotCWJvdW5kcy4K LQkqIHZhbG9wcy5jICh2YWx1ZV9zbGljZSk6IEFkZCBjYWxsIHBhcmFtZXRlciB3aXRoIGRlZmF1 bHQKLQlzdHJpZGUgdmFsdWUgZm9yIGNhbGxpbmcgdmFsdWVfc2xpY2VfMS4KLQkqIHZhbG9wcy5j ICh2YWx1ZV9zbGljZV8xKTogQWRkIGZ1bmN0aW9uIHBhcmFtZXRlciBmb3IKLQlzdHJpZGUgbGVu Z3RoIGluIHRoZSByZXR1cm4gc3ViYXJyYXkuICBDYWxjdWxhdGUgYXJyYXkKLQllbGVtZW50cyBi YXNlZCBvbiBzdHJpZGUgdmFsdWUuCi0JKiB2YWx1ZS5oOiBBZGQgc3RyaWRlIHBhcmFtZXRlciB0 byBkZWNsYXJhdGlvbiBvZgotCXZhbHVlX3NsaWNlXzEuCi0KLQotU2lnbmVkLW9mZi1ieTogQ2hy aXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+Ci0tLS0KLSBn ZGIvZXZhbC5jICAgfCAxMDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0KLSBnZGIvdmFsb3BzLmMgfCAgODMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCi0gZ2RiL3ZhbHVlLmggIHwgICAyICst Ci0gMyBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotaW5kZXggYjVhYWYxYy4uMWYy N2I2ZiAxMDA2NDQKLS0tLSBhL2dkYi9ldmFsLmMKLSsrKyBiL2dkYi9ldmFsLmMKLUBAIC00Nzcs NyArNDc3LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgIHJhbmdlID0gJmluZGV4LT5VLnJhbmdlOwotIAotIAkg ICpwb3MgKz0gMzsKLS0JICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBl KSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwotKwkgIHJhbmdlLT5m OTBfcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5cGUpIGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0 OwotIAotIAkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0 aGUgYml0IGhhcyBiZWVuCi0gCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBm cm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgotQEAgLTQ5OSw2ICs0OTksMTAgQEAgdmFsdWVf ZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LAotIAkgIC8qIEFzc2lnbiB0aGUgZGVmYXVsdCBzdHJpZGUgdmFsdWUgJzEnLiAgKi8KLSAJICBl bHNlCi0gCSAgICByYW5nZS0+c3RyaWRlID0gMTsKLSsKLSsJICAvKiBDaGVjayB0aGUgcHJvdmlk ZWQgc3RyaWRlIHZhbHVlIGlzIGlsbGVnYWwsIGFrYSAnMCcuICAqLwotKwkgIGlmIChyYW5nZS0+ c3RyaWRlID09IDApCi0rCSAgICBlcnJvciAoXygiU3RyaWRlIG11c3Qgbm90IGJlIDAiKSk7Ci0g CX0KLSAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIu ICAqLwotICAgICAgIGVsc2UKLUBAIC01MTUsMTAgKzUxOSw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAKLSAgICAg fQotIAotLSAgLyogVHJhdmVyc2UgdGhlIGFycmF5IGZyb20gcmlnaHQgdG8gbGVmdCBhbmQgZXZh bHVhdGUgZWFjaCBjb3JyZXNwb25kaW5nCi0tICAgICB1c2VyIGlucHV0LiAgVkFMVUVfU1VCU0NS SVBUIGlzIGNhbGxlZCBmb3IgZXZlcnkgaW5kZXgsIHVudGlsIGEgcmFuZ2UKLS0gICAgIGV4cHJl c3Npb24gaXMgZXZhbHVhdGVkLiAgQWZ0ZXIgYSByYW5nZSBleHByZXNzaW9uIGhhcyBiZWVuIGV2 YWx1YXRlZCwKLS0gICAgIGV2ZXJ5IHN1YnNlcXVlbnQgZXhwcmVzc2lvbiBpcyBhbHNvIHRyZWF0 ZWQgYXMgYSByYW5nZS4gICovCi0rICAvKiBUcmF2ZXJzZSB0aGUgYXJyYXkgZnJvbSByaWdodCB0 byBsZWZ0IGFuZCBzZXQgdGhlIGhpZ2ggYW5kIGxvdyBib3VuZHMKLSsgICAgIGZvciBsYXRlciB1 c2UuICAqLwotICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKLSAgICAgewotICAg ICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsK LUBAIC01NTEsNiArNTUzLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICph cnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJCXx8IHJhbmdlLT5oaWdoID4gVFlQRV9I SUdIX0JPVU5EIChpbmRleF90eXBlKSkKLSAJICAgICAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5k KHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7Ci0gCi0rCSAgICAvKiBGb3IgYSBuZWdhdGl2 ZSBzdHJpZGUgdGhlIGxvd2VyIGJvdW5kYXJ5IG11c3QgYmUgbGFyZ2VyIHRoYW4gdGhlCi0rCSAg ICAgICB1cHBlciBib3VuZGFyeS4KLSsJICAgICAgIEZvciBhIHBvc2l0aXZlIHN0cmlkZSB0aGUg bG93ZXIgYm91bmRhcnkgbXVzdCBiZSBzbWFsbGVyIHRoYW4gdGhlCi0rCSAgICAgICB1cHBlciBi b3VuZGFyeS4gICovCi0rCSAgICBpZiAoKHJhbmdlLT5zdHJpZGUgPCAwICYmIHJhbmdlLT5sb3cg PCByYW5nZS0+aGlnaCkKLSsJCXx8IChyYW5nZS0+c3RyaWRlID4gMCAmJiByYW5nZS0+bG93ID4g cmFuZ2UtPmhpZ2gpKQotKwkgICAgICBlcnJvciAoXygiV3JvbmcgdmFsdWUgcHJvdmlkZWQgZm9y IHN0cmlkZSBhbmQgYm91bmRhcmllcyIpKTsKLSsKLSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNh c2UgU1VCU0NSSVBUX0lOREVYOgotKwkgIGJyZWFrOwotKwotKwl9Ci0rCi0rICAgICAgIGFycmF5 X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKTsKLSsgICAgfQotKwotKyAgLyog UmVzZXQgQVJSQVlfVFlQRSBiZWZvcmUgc2xpY2luZy4qLwotKyAgYXJyYXlfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwotKwotKyAgLyogVHJhdmVyc2UgdGhl IGFycmF5IGZyb20gcmlnaHQgdG8gbGVmdCBhbmQgZXZhbHVhdGUgZWFjaCBjb3JyZXNwb25kaW5n Ci0rICAgICB1c2VyIGlucHV0LiAgVkFMVUVfU1VCU0NSSVBUIGlzIGNhbGxlZCBmb3IgZXZlcnkg aW5kZXgsIHVudGlsIGEgcmFuZ2UKLSsgICAgIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkLiAgQWZ0 ZXIgYSByYW5nZSBleHByZXNzaW9uIGhhcyBiZWVuIGV2YWx1YXRlZCwKLSsgICAgIGV2ZXJ5IHN1 YnNlcXVlbnQgZXhwcmVzc2lvbiBpcyBhbHNvIHRyZWF0ZWQgYXMgYSByYW5nZS4gICovCi0rICBm b3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQotKyAgICB7Ci0rICAgICAgc3RydWN0IHN1 YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOwotKyAgICAgIHN0cnVj dCB0eXBlICppbmRleF90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKLSsKLSsg ICAgICBzd2l0Y2ggKGluZGV4LT5raW5kKQotKwl7Ci0rCWNhc2UgU1VCU0NSSVBUX1JBTkdFOgot KwkgIHsKLSsKLSsJICAgIC8qIFdoZW4gd2UgaGl0IHRoZSBmaXJzdCByYW5nZSBzcGVjaWZpZWQg YnkgdGhlIHVzZXIsIHdlIG11c3QKLSsJICAgICAgIHRyZWF0IGFueSBzdWJzZXF1ZW50IHVzZXIg ZW50cnkgYXMgYSByYW5nZS4gIFdlIHNpbXBseQotKwkgICAgICAgaW5jcmVtZW50IERJTV9DT1VO VCB3aGljaCB0ZWxscyB1cyBob3cgbWFueSB0aW1lcyB3ZSBhcmUKLSsJICAgICAgIGNhbGxpbmcg VkFMVUVfU0xJQ0VfMS4gICovCi0rCSAgICBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlID0gJmluZGV4 LT5VLnJhbmdlOwotKwotIAkgICAgLyogRElNX0NPVU5UIGNvdW50cyBldmVyeSB1c2VyIGFyZ3Vt ZW50IHRoYXQgaXMgdHJlYXRlZCBhcyBhIHJhbmdlLgotIAkgICAgICAgVGhpcyBpcyBuZWNlc3Nh cnkgZm9yIGV4cHJlc3Npb25zIGxpa2UgJ3ByaW50IGFycmF5KDcsIDg6OSkuCi0gCSAgICAgICBI ZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIGxpdGVyYWwsIGJ1dCBtdXN0IGJlIHRyZWF0ZWQg YXMgYQotQEAgLTU1OCwxMCArNjAyLDkgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgICAgZGltX2NvdW50Kys7Ci0g Ci0gCSAgICBuZXdfYXJyYXkKLS0JICAgICAgPSB2YWx1ZV9zbGljZV8xIChuZXdfYXJyYXksCi0t CQkJICAgICAgIGxvbmdlc3RfdG9faW50IChyYW5nZS0+bG93KSwKLS0JCQkgICAgICAgbG9uZ2Vz dF90b19pbnQgKHJhbmdlLT5oaWdoIC0gcmFuZ2UtPmxvdyArIDEpLAotLQkJCSAgICAgICBkaW1f Y291bnQpOwotKwkgICAgICA9IHZhbHVlX3NsaWNlXzEgKG5ld19hcnJheSwgcmFuZ2UtPmxvdywK LSsJCQkgICAgICAgcmFuZ2UtPmhpZ2ggLSByYW5nZS0+bG93ICsgMSwKLSsJCQkgICAgICAgcmFu Z2UtPnN0cmlkZSwgZGltX2NvdW50KTsKLSAJICB9Ci0gCSAgYnJlYWs7Ci0gCi1AQCAtNTgwLDIx ICs2MjMsMzIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkJCQkJCQkJICAobmV3X2FycmF5KSkpOwotIAkgICAgZWxz ZQotIAkgICAgICB7Ci0tCQkvKiBDaGVjayBmb3IgdmFsaWQgaW5kZXggaW5wdXQuICAqLwotKwkJ ZGltX2NvdW50Kys7Ci0rCi0rCQkvKiBXZSBtaWdodCBlbmQgdXAgaGVyZSwgYmVjYXVzZSB3ZSBo YXZlIHRvIHRyZWF0IHRoZSBwcm92aWRlZAotKwkJICAgaW5kZXggbGlrZSBhIHJhbmdlLiBCdXQg bm93IFZBTFVFX1NVQlNDUklQVEVEX1JWQUxVRQotKwkJICAgY2Fubm90IGRvIHRoZSByYW5nZSBj aGVja3MgZm9yIHVzLiBTbyB3ZSBoYXZlIHRvIG1ha2Ugc3VyZQotKwkJICAgb3Vyc2VsdmVzIHRo YXQgdGhlIHVzZXIgcHJvdmlkZWQgaW5kZXggaXMgaW5zaWRlIHRoZQotKwkJICAgYXJyYXkgYm91 bmRzLiAgVGhyb3cgYW4gZXJyb3IgaWYgbm90LiAgKi8KLSAJCWlmIChpbmRleC0+VS5udW1iZXIg PCBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkKLS0JCSAgICB8fCBpbmRleC0+VS5udW1iZXIg PiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotLQkJICBlcnJvciAoXygiZXJyb3Igbm8g c3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsJCSAgICAmJiBpbmRleC0+VS5udW1iZXIgPiBUWVBF X0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotKwkJICBlcnJvciAoXygicHJvdmlkZWQgYm91bmQo cykgb3V0c2lkZSBhcnJheSBib3VuZChzKSIpKTsKLSsKLSsJCWlmIChpbmRleC0+VS5udW1iZXIg PiBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkKLSsJCSAgICAmJiBpbmRleC0+VS5udW1iZXIg PiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotKwkJICBlcnJvciAoXygicHJvdmlkZWQg Ym91bmQocykgb3V0c2lkZSBhcnJheSBib3VuZChzKSIpKTsKLSAKLS0JCWRpbV9jb3VudCsrOwot IAkJbmV3X2FycmF5ID0gdmFsdWVfc2xpY2VfMSAobmV3X2FycmF5LAotLQkJCQkJICAgbG9uZ2Vz dF90b19pbnQgKGluZGV4LT5VLm51bWJlciksCi0tCQkJCQkgICAxLCAvKiBsZW5ndGggaXMgJzEn IGVsZW1lbnQgICovCi0rCQkJCQkgICBpbmRleC0+VS5udW1iZXIsCi0rCQkJCQkgICAxLCAvKiBD T1VOVCBpcyAnMScgZWxlbWVudCAgKi8KLSsJCQkJCSAgIDEsIC8qIFNUUklERSBzZXQgdG8gJzEn ICAqLwotIAkJCQkJICAgZGltX2NvdW50KTsKLSAJICAgICAgfQotIAotIAkgIH0KLSAJICBicmVh azsKLSAJfQotKyAgICAgIGFycmF5X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBl KTsKLSAgICAgfQotIAotICAgLyogV2l0aCBESU1fQ09VTlQgPiAxIHdlIGN1cnJlbnRseSBoYXZl IGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCBidXQgZXhwZWN0Ci1AQCAtNjIwLDcgKzY3NCw5IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKLSAJIHRoZSBvdXRwdXQgYXJyYXkuICBTbyB3ZSB0cmF2ZXJzZSB0aGUgU1VCU0NS SVBUX0FSUkFZIGFnYWluLCBsb29raW5nCi0gCSBmb3IgYSByYW5nZSBlbnRyeS4gIFdoZW4gd2Ug ZmluZCBvbmUsIHdlIHVzZSB0aGUgcmFuZ2UgaW5mbyB0byBjcmVhdGUKLSAJIGFuIGFkZGl0aW9u YWwgcmFuZ2VfdHlwZSB0byBzZXQgdGhlIGNvcnJlY3QgYm91bmRzIGFuZCBkaW1lbnNpb25zIGZv cgotLQkgdGhlIG91dHB1dCBhcnJheS4gICovCi0rCSB0aGUgb3V0cHV0IGFycmF5LiAgSW4gYWRk aXRpb24sIHdlIG1heSBoYXZlIGEgc3RyaWRlIHZhbHVlIHRoYXQgaXMgbm90Ci0rCSAnMScsIGZv cmNpbmcgdXMgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSByYW5nZSwgYWNj b3JkaW5nCi0rCSB0byB0aGUgc3RyaWRlIHZhbHVlLiAgKi8KLSAgICAgICBmb3IgKGkgPSAwOyBp IDwgbmFyZ3M7IGkrKykKLSAJewotIAkgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0g JnN1YnNjcmlwdF9hcnJheVtpXTsKLUBAIC02MjksMTIgKzY4NSwyMCBAQCB2YWx1ZV9mOTBfc3Vi YXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAg ICB7Ci0gCSAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlLCAqaW50ZXJpbV9hcnJheV90eXBl OwotIAotKwkgICAgICBpbnQgbmV3X2xlbmd0aDsKLSsKLSsJICAgICAgLyogVGhlIGxlbmd0aCBv ZiBhIHN1Yi1kaW1lbnNpb24gd2l0aCBhbGwgZWxlbWVudHMgYmV0d2VlbiB0aGUKLSsJCSBib3Vu ZHMgcGx1cyB0aGUgc3RhcnQgZWxlbWVudCBpdHNlbGYuICBJdCBtYXkgYmUgbW9kaWZpZWQgYnkK LSsJCSBhIHVzZXIgcHJvdmlkZWQgc3RyaWRlIHZhbHVlLiAgKi8KLSsJICAgICAgbmV3X2xlbmd0 aCA9IGluZGV4LT5VLnJhbmdlLmhpZ2ggLSBpbmRleC0+VS5yYW5nZS5sb3c7Ci0rCi0rCSAgICAg IG5ld19sZW5ndGggLz0gaW5kZXgtPlUucmFuZ2Uuc3RyaWRlOwotKwotIAkgICAgICByYW5nZV90 eXBlCi0gCQk9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwKLSAJCQkJCSAgICBlbHRf dHlwZSwKLS0JCQkJCSAgICAxLAotLQkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmhpZ2gKLS0JCQkJ CSAgICAgIC0gaW5kZXgtPlUucmFuZ2UubG93ICsgMSk7Ci0rCQkJCQkgICAgaW5kZXgtPlUucmFu Z2UubG93LAotKwkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmxvdyArIG5ld19sZW5ndGgpOwotIAot IAkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwKLSAJ CQkJCQkgICAgICBlbHRfdHlwZSwKLWRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFs b3BzLmMKLWluZGV4IGZiYzdkY2IuLmRlZDhlZmMgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsb3BzLmMK LSsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTM3NjYsMTAgKzM3NjYsMTMgQEAgdmFsdWVfb2ZfdGhp c19zaWxlbnQgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5nKQotIHN0cnVjdCB2YWx1 ZSAqCi0gdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50 IGxlbmd0aCkKLSB7Ci0tICAvKiBQYXNzIHVuYWx0ZXJlZCBhcmd1bWVudHMgdG8gVkFMVUVfU0xJ Q0VfMSwgcGx1cyBhIENBTExfQ09VTlQgb2YgJzEnIGFzIHdlCi0tICAgICBhcmUgb25seSBjb25z aWRlcmluZyB0aGUgaGlnaGVzdCBkaW1lbnNpb24sIG9yIHdlIGFyZSB3b3JraW5nIG9uIGEgb25l Ci0tICAgICBkaW1lbnNpb25hbCBhcnJheS4gIFNvIHdlIGNhbGwgVkFMVUVfU0xJQ0VfMSBleGFj dGx5IG9uY2UuICAqLwotLSAgcmV0dXJuIHZhbHVlX3NsaWNlXzEgKGFycmF5LCBsb3dib3VuZCwg bGVuZ3RoLCAxKTsKLSsgIC8qIFBhc3MgdW5hbHRlcmVkIGFyZ3VtZW50cyB0byBWQUxVRV9TTElD RV8xLCBwbHVzIGEgZGVmYXVsdCBzdHJpZGUKLSsgICAgIHZhbHVlIG9mICcxJywgd2hpY2ggcmV0 dXJucyBldmVyeSBlbGVtZW50IGJldHdlZW4gTE9XQk9VTkQgYW5kCi0rICAgICAoTE9XQk9VTkQg KyBMRU5HVEgpLiAgV2UgYWxzbyBwcm92aWRlIGEgZGVmYXVsdCBDQUxMX0NPVU5UIG9mICcxJwot KyAgICAgYXMgd2UgYXJlIG9ubHkgY29uc2lkZXJpbmcgdGhlIGhpZ2hlc3QgZGltZW5zaW9uLCBv ciB3ZSBhcmUKLSsgICAgIHdvcmtpbmcgb24gYSBvbmUgZGltZW5zaW9uYWwgYXJyYXkuICBTbyB3 ZSBjYWxsIFZBTFVFX1NMSUNFXzEKLSsgICAgIGV4YWN0bHkgb25jZS4gICovCi0rICByZXR1cm4g dmFsdWVfc2xpY2VfMSAoYXJyYXksIGxvd2JvdW5kLCBsZW5ndGgsIDEsIDEpOwotIH0KLSAKLSAv KiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2Fs Y3VsYXRlIHRoZSBudW1iZXIKLUBAIC0zNzg1LDcgKzM3ODgsOCBAQCB2YWx1ZV9zbGljZSAoc3Ry dWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQotICAgIHJhbmdlcyBp biB0aGUgY2FsbGluZyBmdW5jdGlvbi4gICovCi0gCi0gc3RydWN0IHZhbHVlICoKLS12YWx1ZV9z bGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGlu dCBjYWxsX2NvdW50KQotK3ZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCwKLSsJICAgICAgIGludCBzdHJpZGVfbGVuZ3RoLCBpbnQgY2Fs bF9jb3VudCkKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqc2xpY2VfcmFuZ2VfdHlwZSwgKnNsaWNlX3R5 cGUsICpyYW5nZV90eXBlOwotICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotQEAgLTM4MDgsMTQgKzM4MTIsMjQgQEAgdmFsdWVf c2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBp bnQgY2FsbF9jb3VudCkKLSAgICAgIGF0dHJpYnV0ZXMgb2YgdGhlIHVuZGVybHlpbmcgdHlwZS4g ICovCi0gICBpZiAoY2FsbF9jb3VudCA+IDEpCi0gICAgIHsKLSsgICAgICBhcnlfbG93X2JvdW5k ID0gVFlQRV9MT1dfQk9VTkQgKFRZUEVfSU5ERVhfVFlQRSAoZWx0X3R5cGUpKTsKLSsgICAgICBh cnlfaGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAoVFlQRV9JTkRFWF9UWVBFIChlbHRfdHlw ZSkpOwotICAgICAgIGVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAo ZWx0X3R5cGUpKTsKLSAgICAgICByb3dfY291bnQgPSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkK LSAJCSAgICAvIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0g ICAgIH0KLSAKLS0gIGVsZW1fY291bnQgPSBsZW5ndGg7Ci0rICAvKiBXaXRoIGEgc3RyaWRlIG9m ICcxJywgdGhlIG51bWJlciBvZiBlbGVtZW50cyBwZXIgcmVzdWx0IHJvdyBpcyBlcXVhbCB0bwot KyAgICAgdGhlIExFTkdUSCBvZiB0aGUgc3ViYXJyYXkuICBXaXRoIG5vbi1kZWZhdWx0IHN0cmlk ZSB2YWx1ZXMsIHdlIHNraXAKLSsgICAgIGVsZW1lbnRzLCBidXQgaGF2ZSB0byBhZGQgdGhlIHN0 YXJ0IGVsZW1lbnQgdG8gdGhlIHRvdGFsIG51bWJlciBvZgotKyAgICAgZWxlbWVudHMgcGVyIHJv dy4gICovCi0rICBpZiAoc3RyaWRlX2xlbmd0aCA9PSAxKQotKyAgICBlbGVtX2NvdW50ID0gbGVu Z3RoOwotKyAgZWxzZQotKyAgICBlbGVtX2NvdW50ID0gKChsZW5ndGggLSAxKSAvIHN0cmlkZV9s ZW5ndGgpICsgMTsKLSsKLSAgIGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsKLS0g IGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGxvd2JvdW5kIC0gYXJ5X2xvd19ib3VuZCk7Ci0r ICBlbHRfb2ZmcyA9IGxvd2JvdW5kIC0gYXJ5X2xvd19ib3VuZDsKLSAgIGVsdF9zdHJpZGUgPSBU WVBFX0xFTkdUSCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7Ci0gCi0gICBlbHRfb2Zm cyAqPSBlbHRfc2l6ZTsKLUBAIC0zODU4LDggKzM4NzIsOSBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1 Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50 KQotICAgewotICAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlOwotIAotLSAgICAvKiBXaGVu IENBTExfQ09VTlQgZXF1YWxzIDEgd2UgY2FuIHVzZSB0aGUgbGVnYWN5IGNvZGUgZm9yIHN1YmFy cmF5cy4gICovCi0tICAgIGlmIChjYWxsX2NvdW50ID09IDEpCi0rICAgIC8qIFdoZW4gYm90aCBD QUxMX0NPVU5UIGFuZCBTVFJJREVfTEVOR1RIIGVxdWFsIDEsIHdlIGNhbiB1c2UgdGhlIGxlZ2Fj eQotKyAgICAgICBjb2RlIGZvciBzdWJhcnJheXMuICAqLwotKyAgICBpZiAoY2FsbF9jb3VudCA9 PSAxICYmIHN0cmlkZV9sZW5ndGggPT0gMSkKLSAgICAgICB7Ci0gCWVsZW1lbnRfdHlwZSA9IFRZ UEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwotIAotQEAgLTM4ODAsMjkgKzM4OTUsNTMgQEAg dmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVu Z3RoLCBpbnQgY2FsbF9jb3VudCkKLSAJICB9Ci0gCi0gICAgICAgfQotLSAgICAvKiBXaGVuIENB TExfQ09VTlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBvbiBhIHJhbmdlIG9mIHJh bmdlcy4KLS0gICAgICAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUg bmV3IGFycmF5IHdlIHJldHVybi4gICovCi0rICAgIC8qIFdpdGggYSBDQUxMX0NPVU5UIG9yIFNU UklERV9MRU5HVEggYXJlIGdyZWF0ZXIgdGhhbiAxIHdlIGFyZSB3b3JraW5nCi0rICAgICAgIG9u IGEgcmFuZ2Ugb2YgcmFuZ2VzLiAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50 byB0aGUKLSsgICAgICAgbmV3IGFycmF5IHdlIHJldHVybi4gICovCi0gICAgIGVsc2UKLSAgICAg ICB7Ci0rCWludCBqLCBvZmZzX3N0b3JlID0gZWx0X29mZnM7Ci0gCUxPTkdFU1QgZHN0X29mZnNl dCA9IDA7Ci0gCUxPTkdFU1Qgc3JjX3Jvd19sZW5ndGggPSBUWVBFX0xFTkdUSCAoVFlQRV9UQVJH RVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotIAotLQllbGVtZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9U WVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0rCWlmIChjYWxsX2NvdW50ID09 IDEpCi0rCSAgewotKwkgICAgLyogV2hlbiBDQUxMX0NPVU5UIGlzIGVxdWFsIHRvIDEgd2UgYXJl IHdvcmtpbmcgb24gdGhlIGN1cnJlbnQgcmFuZ2UKLSsJICAgICAgIGFuZCB1c2UgdGhlc2UgZWxl bWVudHMgZGlyZWN0bHkuICAqLwotKwkgICAgZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQ RSAoYXJyYXlfdHlwZSk7Ci0rCSAgfQotKwllbHNlCi0rCSAgewotKwkgICAgLyogV29ya2luZyBv biBhbiBhcnJheSBvZiBhcnJheXMsIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50cyBpcyB0aGUgdHlw ZQotKwkgICAgICAgb2YgdGhlIHN1YmFycmF5cycgdHlwZS4gICovCi0rCSAgICBlbGVtZW50X3R5 cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0r CSAgfQotKwotIAlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVsZW1lbnRf dHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7Ci0gCi0tCVRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBU WVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsJIC8qIElmIHdlIGhh dmUgYSBvbmUgZGltZW5zaW9uYWwgYXJyYXksIHdlIGNvcHkgaXRzIFRZUEVfQ09ERS4gIEZvciBh Ci0rCSAgICBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSB3ZSBjb3B5IHRoZSBlbWJlZGRlZCB0eXBl J3MgVFlQRV9DT0RFLiAgKi8KLSsJaWYgKGNhbGxfY291bnQgPT0gMSkKLSsJICBUWVBFX0NPREUg KHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKLSsJZWxzZQotKwkgIFRZUEVf Q09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpKTsKLSAKLSAJdiA9IGFsbG9jYXRlX3ZhbHVlIChzbGljZV90eXBlKTsKLS0JZm9yIChpID0g MDsgaSA8IGxvbmdlc3RfdG9faW50IChyb3dfY291bnQpOyBpKyspCi0rCi0rCS8qIEl0ZXJhdGUg dGhyb3VnaCB0aGUgcm93cyBvZiB0aGUgb3V0ZXIgYXJyYXkgYW5kIHNldCB0aGUgbmV3IG9mZnNl dAotKwkgICBmb3IgZWFjaCByb3cuICAqLwotKwlmb3IgKGkgPSAwOyBpIDwgcm93X2NvdW50OyBp KyspCi0gCSAgewotLQkgICAgLyogRmV0Y2hlcyB0aGUgY29udGVudHMgb2YgQVJSQVkgYW5kIGNv cGllcyB0aGVtIGludG8gVi4gICovCi0tCSAgICB2YWx1ZV9jb250ZW50c19jb3B5ICh2LAotLQkJ CQkgZHN0X29mZnNldCwKLS0JCQkJIGFycmF5LAotLQkJCQkgZWx0X29mZnMsCi0tCQkJCSBlbHRf c2l6ZSAqIGVsZW1fY291bnQpOwotLQkgICAgZWx0X29mZnMgKz0gc3JjX3Jvd19sZW5ndGg7Ci0t CSAgICBkc3Rfb2Zmc2V0ICs9IGVsdF9zaXplICogZWxlbV9jb3VudDsKLSsJICAgIGVsdF9vZmZz ID0gb2Zmc19zdG9yZSArIGkgKiBzcmNfcm93X2xlbmd0aDsKLSsKLSsJICAgIC8qIEl0ZXJhdGUg dGhyb3VnaCB0aGUgZWxlbWVudHMgaW4gZWFjaCByb3cgdG8gY29weSBvbmx5IHRob3NlLiAgKi8K LSsJICAgIGZvciAoaiA9IDE7IGogPD0gZWxlbV9jb3VudDsgaisrKQotKwkgICAgICB7Ci0rCQkv KiBGZXRjaGVzIHRoZSBjb250ZW50cyBvZiBBUlJBWSBhbmQgY29waWVzIHRoZW0gaW50byBWLiAg Ki8KLSsJCXZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIGRzdF9vZmZzZXQsIGFycmF5LCBlbHRfb2Zm cywgZWx0X3NpemUpOwotKwkJZWx0X29mZnMgKz0gZWx0X3NpemUgKiBzdHJpZGVfbGVuZ3RoOwot KwkJZHN0X29mZnNldCArPSBlbHRfc2l6ZTsKLSsJICAgICAgfQotIAkgIH0KLSAgICAgICB9Ci0g Ci1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5kZXggOTU1ODhhZi4u ZTQxNzYzOSAxMDA2NDQKLS0tLSBhL2dkYi92YWx1ZS5oCi0rKysgYi9nZGIvdmFsdWUuaAotQEAg LTEwNTYsNyArMTA1Niw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2Ug KHN0cnVjdCB2YWx1ZSAqKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zbGljZSAo c3RydWN0IHZhbHVlICosIGludCwgaW50KTsKLSAKLS1leHRlcm4gc3RydWN0IHZhbHVlICp2YWx1 ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKiwgaW50LCBpbnQsIGludCk7Ci0rZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICosIGludCwgaW50LCBpbnQsIGlu dCk7Ci0gCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbGV4IChzdHJ1 Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVlICosCi0gCQkJCQkgICAgc3RydWN0IHR5cGUgKik7Ci0t LSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi5w YXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA3NzdiYmM5Li4wMDAwMDAwCi0tLSBhL2dkYi1mb3J0cmFuLXN0cmlk ZS1pbnRlbC02b2Y2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTE4ICswLDAgQEAKLVJFOiBb cGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlz IHdpdGggc3RyaWRlcwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2 LTA3L21zZzAwMDA5Lmh0bWwKLQotRnJvbSA5ODJkNTgyZWU3MzhjYmNmMjUyYmE4ZWFiNTlhOTUx NGVkZGE3NWI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hyaXN0b3BoIFdlaW5t YW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+Ci1EYXRlOiBXZWQsIDQgRGVjIDIw MTMgMTE6NDc6MTUgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzZdIGZvcnRyYW46IHRlc3QgY2Fz ZXMgZm9yIHN1YmFycmF5IHN0cmlkZXMgYW5kIHNsaWNlcwotCi1BZGQgdGVzdCBjYXNlcyBmb3Ig c3ViYXJyYXkgY3JlYXRpb24gd2l0aCByYW5nZSwgbGl0ZXJhbCBhbmQKLXN0cmlkZSB2YWx1ZSBw ZXJtdXRhdGlvbnMgZm9yIG9uZSwgdHdvLCBhbmQgdGhyZWUgZGltZW5zaW9uYWwKLWFycmF5cy4K LQotMjAxMy0xMi0wNCAgQ2hyaXN0b3BoIFdlaW5tYW5uICA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5A aW50ZWwuY29tPgotCi10ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vCi0JKiBzdGF0aWMtYXJyYXlzLmV4 cDogTmV3IHRlc3QuCi0JKiBzdGF0aWMtYXJyYXlzLmY5MDogTmV3IGZpbGUuCi0KLQotU2lnbmVk LW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5j b20+Ci0tLS0KLSBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZXhwIHwg NDIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N0YXRpYy1hcnJheXMuZjkwIHwgIDU1ICsrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDQ3NiBp bnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3RhdGljLWFycmF5cy5leHAKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5MAotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3RhdGljLWFycmF5cy5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAw Li5jYzllY2MwCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3N0YXRpYy1hcnJheXMuZXhwCi1AQCAtMCwwICsxLDQyMSBAQAotKyMgQ29weXJpZ2h0IDIwMTUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgQ29udHJpYnV0ZWQgYnkgSW50 ZWwgQ29ycC4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLSsjCi0rIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIHN0YXRpYy1hcnJheXMu ZjkwCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAkdGVzdGZpbGUuZXhwICR0ZXN0Zmls ZSAkc3JjZmlsZSB7ZGVidWcgZjkwfV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiAh W3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFr cG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAiQlAxIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQlAx IiAiLipCUDEuKiIKLSsKLSsjIFRlc3RzIHN1YmFycmF5cyBvZiBvbmUgZGltZW5zaW9uYWwgYXJy YXlzIHdpdGggc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dkYl90ZXN0ICJwcmludCBhcjEiICJcXCRc WzAtOVxdKyA9IFxcKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDlcXCkiIFwKLSsJCSJwcmludCBh cjEuIgotK2dkYl90ZXN0ICJwcmludCBhcjFcKDQ6N1wpIiAiXFwkXFswLTlcXSsgPSBcXCg0LCA1 LCA2LCA3XFwpIiBcCi0rCQkicHJpbnQgYXIxXCg0OjdcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIx XCg4OlwpIiAiXFwkXFswLTlcXSsgPSBcXCg4LCA5XFwpLioiIFwKLSsJCSJwcmludCBhcjFcKDg6 XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMVwoOjNcKSIgIlxcJFxbMC05XF0rID0gXFwoMSwgMiwg M1xcKS4qIiBcCi0rCQkicHJpbnQgYXIxXCg6M1wpIgotK2dkYl90ZXN0ICJwcmludCBhcjFcKDpc KSIgIlxcJFxbMC05XF0rID0gXFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOVxcKSIgXAotKwkJ InByaW50IGFyMVwoOlwpIgotKwotKyMgQ2hlY2sgYXNzaWdubWVudAotK2dkYl90ZXN0X25vX291 dHB1dCAic2V0IFwkbXlfYXJ5ID0gYXIxXCgzOjhcKSIKLStnZGJfdGVzdCAicHJpbnQgXCRteV9h cnkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDMsIDQsIDUsIDYsIDcsIDhcXCkiIFwKLSsJCSJB c3NpZ25tZW50IG9mIHN1YmFycmF5IHRvIHZhcmlhYmxlIgotK2dkYl90ZXN0X25vX291dHB1dCAi c2V0IGFyMVwoNVwpID0gNDIiCi0rCQlnZGJfdGVzdCAicHJpbnQgYXIxXCgzOjhcKSIgXAotKwkJ IlxcJFxbMC05XF0rID0gXFwoMywgNCwgNDIsIDYsIDcsIDhcXCkiIFwKLSsJCSJwcmludCBhcjFc KDM6OFwpIGFmdGVyIGFzc2lnbm1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IFwkbXlfYXJ5IiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXCgzLCA0LCA1LCA2LCA3LCA4XFwpIiBcCi0rCQkiQXNzaWdubWVu dCBvZiBzdWJhcnJheSB0byB2YXJpYWJsZSBhZnRlciBvcmlnaW5hbCBhcnJheSBjaGFuZ2VkIgot KwotKyMgVGVzdCBmb3Igc3ViYXJyYXlzIG9mIG9uZSBkaW1lbnNpb25hbCBhcnJheXMgd2l0aCBs aXRlcmFscwotKwkJZ2RiX3Rlc3QgInByaW50IGFyMVwoM1wpIiAiXFwkXFswLTlcXSsgPSAzIiBc Ci0rCQkicHJpbnQgYXIxXCgzXCkiCi0rCi0rIyBUZXN0cyBmb3Igc3VicmFuZ2VzIG9mIDIgZGlt ZW5zaW9uYWwgYXJyYXlzIHdpdGggc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dkYl90ZXN0ICJwcmlu dCBhcjJcKDI6MywgMzo0XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyMywgMzNcXCkg XFwoIDI0LCAzNFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjJcKDI6MywgMzo0XCkuIgotK2dkYl90 ZXN0ICJwcmludCBhcjJcKDg6OSw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggODgs IDk4XFwpIFxcKCA4OSwgOTlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIyXCg4OjksODpcKSIKLStn ZGJfdGVzdCAicHJpbnQgYXIyXCg4OjksOjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IDgxLCA5MVxcKSBcXCggODIsIDkyXFwpIFxcKSIgXAotKwkJInByaW50IGFyMlwoODo5LDoyXCki Ci0rCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoODosODo5XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCA4OCwgOThcXCkgXFwoIDg5LCA5OVxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjJcKDg6 LDg6OVwpIgotK2dkYl90ZXN0ICJwcmludCBhcjJcKDg6LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxd KyA9IFxcKFxcKCA4OCwgOThcXCkgXFwoIDg5LCA5OVxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjJc KDg6LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoODosOjJcKSIgXAotKwkJIlxcJFxbMC05 XF0rID0gXFwoXFwoIDgxLCA5MVxcKSBcXCggODIsIDkyXFwpIFxcKSIgXAotKwkJInByaW50IGFy MlwoODosOjJcKSIKLSsKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg6MiwyOjNcKSIgXAotKwkJIlxc JFxbMC05XF0rID0gXFwoXFwoIDEyLCAyMlxcKSBcXCggMTMsIDIzXFwpIFxcKSIgXAotKwkJInBy aW50IGFyMlwoOjIsMjozXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoOjIsODpcKSIgXAotKwkJ IlxcJFxbMC05XF0rID0gXFwoXFwoIDE4LCAyOFxcKSBcXCggMTksIDI5XFwpIFxcKSIgXAotKwkJ InByaW50IGFyMlwoOjIsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg6Miw6MlwpIiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTEsIDIxXFwpIFxcKCAxMiwgMjJcXCkgXFwpIiBcCi0r CQkicHJpbnQgYXIyXCg6Miw6MlwpIgotKwotKyMgVGVzdCBzdWJyYW5nZXMgb2YgMiBkaW1lbnNp b25hbCBhcnJheXMgd2l0aCBsaXRlcmFscyBhbmQgc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dkYl90 ZXN0ICJwcmludCBhcjJcKDcsIDM6NlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCg3MywgNzQs IDc1LCA3NlxcKSIgXAotKwkJInByaW50IGFyMlwoNywgMzo2XCkiCi0rZ2RiX3Rlc3QgInByaW50 IGFyMlwoNyw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCg3OCwgNzlcXCkiIFwKLSsJCSJw cmludCBhcjJcKDcsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg3LDoyXCkiIFwKLSsJCSJc XCRcWzAtOVxdKyA9IFxcKDcxLCA3MlxcKSIgXAotKwkJInByaW50IGFyMlwoNyw6MlwpIgotKwot K2dkYl90ZXN0ICJwcmludCBhcjJcKDc6OCw0XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDc0 LCA4NFxcKSIgXAotKwkJInByaW50IGFyMig3OjgsNFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjJc KDg6LDRcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoODQsIDk0XFwpIiBcCi0rCQkicHJpbnQg YXIyXCg4Oiw0XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoOjIsNFwpIiBcCi0rCQkiXFwkXFsw LTlcXSsgPSBcXCgxNCwgMjRcXCkiIFwKLSsJCSJwcmludCBhcjJcKDoyLDRcKSIKLStnZGJfdGVz dCAicHJpbnQgYXIyXCgzLDRcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gMzQiIFwKLSsJCSJwcmlu dCBhcjJcKDMsNFwpIgotKwotKyMgVGVzdCBzdWJhcnJheXMgb2YgMyBkaW1lbnNpb25hbCBhcnJh eXMgd2l0aCBsaXRlcmFscyBhbmQgc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDI6NCwzOjQsNzo4XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMjM3 LCAzMzcsIDQzN1xcKSBcXCggMjQ3LCAzNDcsIDQ0N1xcKVwKLSsJCSBcXCkgXFwoIFxcKCAyMzgs IDMzOCwgNDM4XFwpIFxcKCAyNDgsIDM0OCwgNDQ4XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBh cjNcKDI6NCwzOjQsNzo4XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDQ6NSw4OlwpIiBc Ci0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDI0OCwgMzQ4XFwpIFxcKCAyNTgsIDM1OFxc KSBcXCkgXFwoXAotKwkJIFxcKCAyNDksIDM0OVxcKSBcXCggMjU5LCAzNTlcXCkgXFwpIFxcKSIg XAotKwkJInByaW50IGFyM1woMjozLDQ6NSw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6 Myw0OjUsOjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyNDEsIDM0MVxcKSBc XCggMjUxLCAzNTFcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjQyLCAzNDJcXCkgXFwoIDI1MiwgMzUy XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw0OjUsOjJcKSIKLSsKLStnZGJfdGVz dCAicHJpbnQgYXIzXCgyOjMsODosNzo4XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBc XCggMjg3LCAzODdcXCkgXFwoIDI5NywgMzk3XFwpIFxcKSBcXChcCi0rCQkgXFwoIDI4OCwgMzg4 XFwpIFxcKCAyOTgsIDM5OFxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyOjMsODosNzo4 XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDg6LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxd KyA9IFxcKFxcKCBcXCggMjg4LCAzODhcXCkgXFwoIDI5OCwgMzk4XFwpIFxcKSBcXChcCi0rCQkg XFwoIDI4OSwgMzg5XFwpIFxcKCAyOTksIDM5OVxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIz XCgyOjMsODosODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjMsODosOjJcKSIgXAotKwkJ IlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyODEsIDM4MVxcKSBcXCggMjkxLCAzOTFcXCkgXFwp IFxcKFwKLSsJCSBcXCggMjgyLCAzODJcXCkgXFwoIDI5MiwgMzkyXFwpIFxcKSBcXCkiIFwKLSsJ CSJwcmludCBhcjNcKDI6Myw4Oiw6MlwpIgotKwotK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6Myw6 Miw3OjhcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMTcsIDMxN1xcKSBcXCgg MjI3LCAzMjdcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjE4LCAzMThcXCkgXFwoIDIyOCwgMzI4XFwp IFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw6Miw3OjhcKSIKLStnZGJfdGVzdCAicHJp bnQgYXIzXCgyOjMsOjIsODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMTgs IDMxOFxcKSBcXCggMjI4LCAzMjhcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjE5LCAzMTlcXCkgXFwo IDIyOSwgMzI5XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw6Miw4OlwpIgotK2dk Yl90ZXN0ICJwcmludCBhcjNcKDI6Myw6Miw6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChc XCggXFwoIDIxMSwgMzExXFwpIFxcKCAyMjEsIDMyMVxcKSBcXCkgXFwoXAotKwkJIFxcKCAyMTIs IDMxMlxcKSBcXCggMjIyLCAzMjJcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMjozLDoy LDoyXCkiCi0rCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woODosMzo0LDc6OFwpIiBcCi0rCQkiXFwk XFswLTlcXSsgPSBcXChcXCggXFwoIDgzNywgOTM3XFwpIFxcKCA4NDcsIDk0N1xcKSBcXCkgXFwo XAotKwkJIFxcKCA4MzgsIDkzOFxcKSBcXCggODQ4LCA5NDhcXCkgXFwpIFxcKSIgXAotKwkJInBy aW50IGFyM1woODosMzo0LDc6OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDQ6NSw4Olwp IiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDg0OCwgOTQ4XFwpIFxcKCA4NTgsIDk1 OFxcKSBcXCkgXFwoXAotKwkJIFxcKCA4NDksIDk0OVxcKSBcXCggODU5LCA5NTlcXCkgXFwpIFxc KSIgXAotKwkJInByaW50IGFyM1woODosNDo1LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1wo ODosNDo1LDoyXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggODQxLCA5NDFcXCkg XFwoIDg1MSwgOTUxXFwpIFxcKSBcXChcCi0rCQkgXFwoIDg0MiwgOTQyXFwpIFxcKCA4NTIsIDk1 MlxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw0OjUsOjJcKSIKLSsKLStnZGJfdGVz dCAicHJpbnQgYXIzXCg4Oiw4Oiw3OjhcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxc KCA4ODcsIDk4N1xcKSBcXCggODk3LCA5OTdcXCkgXFwpIFxcKFwKLSsJCSBcXCggODg4LCA5ODhc XCkgXFwoIDg5OCwgOTk4XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDg6LDc6OFwp IgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDg6LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCBcXCggODg4LCA5ODhcXCkgXFwoIDg5OCwgOTk4XFwpIFxcKSBcXChcCi0rCQkgXFwo IDg4OSwgOTg5XFwpIFxcKCA4OTksIDk5OVxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4 Oiw4Oiw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDg6LDoyXCkiIFwKLSsJCSJcXCRc WzAtOVxdKyA9IFxcKFxcKCBcXCggODgxLCA5ODFcXCkgXFwoIDg5MSwgOTkxXFwpIFxcKSBcXChc Ci0rCQkgXFwoIDg4MiwgOTgyXFwpIFxcKCA4OTIsIDk5MlxcKSBcXCkgXFwpIiBcCi0rCQkicHJp bnQgYXIzXCg4Oiw4Oiw6MlwpIgotKwotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDoyLDc6OFwp IiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDgxNywgOTE3XFwpIFxcKCA4MjcsIDky N1xcKSBcXCkgXFwoXAotKwkJIFxcKCA4MTgsIDkxOFxcKSBcXCggODI4LCA5MjhcXCkgXFwpIFxc KSIgXAotKwkJInByaW50IGFyM1woODosOjIsNzo4XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1wo ODosOjIsODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA4MTgsIDkxOFxcKSBc XCggODI4LCA5MjhcXCkgXFwpIFxcKFwKLSsJCSBcXCggODE5LCA5MTlcXCkgXFwoIDgyOSwgOTI5 XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDoyLDg6XCkiCi0rZ2RiX3Rlc3QgInBy aW50IGFyM1woODosOjIsOjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA4MTEs IDkxMVxcKSBcXCggODIxLCA5MjFcXCkgXFwpIFxcKFwKLSsJCSBcXCggODEyLCA5MTJcXCkgXFwo IDgyMiwgOTIyXFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDoyLDoyXCkiCi0rCi0r Ci0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsMzo0LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsg PSBcXChcXCggXFwoIDEzNywgMjM3XFwpIFxcKCAxNDcsIDI0N1xcKSBcXCkgXFwoXAotKwkJIFxc KCAxMzgsIDIzOFxcKSBcXCggMTQ4LCAyNDhcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyMyBc KDoyLDM6NCw3OjhcKS4iCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsMzo0LDg6XCkiIFwKLSsJ CSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMTM4LCAyMzhcXCkgXFwoIDE0OCwgMjQ4XFwpIFxc KSBcXChcCi0rCQkgXFwoIDEzOSwgMjM5XFwpIFxcKCAxNDksIDI0OVxcKSBcXCkgXFwpIiBcCi0r CQkicHJpbnQgYXIzXCg6MiwzOjQsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6MiwzOjQs OjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxMzEsIDIzMVxcKSBcXCggMTQx LCAyNDFcXCkgXFwpIFxcKFwKLSsJCSBcXCggMTMyLCAyMzJcXCkgXFwoIDE0MiwgMjQyXFwpIFxc KSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDoyLDM6NCw6MlwpIgotKwotK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDoyLDg6LDc6OFwpIiAiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDE4NywgMjg3XFwp IFxcKFwKLSsJCSAxOTcsIDI5N1xcKSBcXCkgXFwoIFxcKCAxODgsIDI4OFxcKSBcXCggMTk4LCAy OThcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woOjIsODosNzo4XCkiCi0rZ2RiX3Rlc3Qg InByaW50IGFyM1woOjIsODosODpcKSIgIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxODgsIDI4 OFxcKSBcXCggMTk4LFwKLSsJCSAyOThcXCkgXFwpIFxcKCBcXCggMTg5LCAyODlcXCkgXFwoIDE5 OSwgMjk5XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDoyLDg6LDg6XCkiCi0rZ2RiX3Rl c3QgInByaW50IGFyM1woOjIsODosOjJcKSIgIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxODEs IDI4MVxcKSBcXCggMTkxLFwKLSsJCSAyOTFcXCkgXFwpIFxcKCBcXCggMTgyLCAyODJcXCkgXFwo IDE5MiwgMjkyXFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDoyLDg6LDoyXCkiCi0rCi0r Z2RiX3Rlc3QgInByaW50IGFyM1woOjIsOjIsNzo4XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxc KFxcKCBcXCggMTE3LCAyMTdcXCkgXFwoIDEyNywgMjI3XFwpIFxcKSBcXChcCi0rCQkgXFwoIDEx OCwgMjE4XFwpIFxcKCAxMjgsIDIyOFxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg6Miw6 Miw3OjhcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw6Miw4OlwpIiBcCi0rCQkiXFwkXFsw LTlcXSsgPSBcXChcXCggXFwoIDExOCwgMjE4XFwpIFxcKCAxMjgsIDIyOFxcKSBcXCkgXFwoXAot KwkJIFxcKCAxMTksIDIxOVxcKSBcXCggMTI5LCAyMjlcXCkgXFwpIFxcKSIgXAotKwkJInByaW50 IGFyM1woOjIsOjIsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw6Miw6MlwpIiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDExMSwgMjExXFwpIFxcKCAxMjEsIDIyMVxcKSBc XCkgXFwoXAotKwkJIFxcKCAxMTIsIDIxMlxcKSBcXCggMTIyLCAyMjJcXCkgXFwpIFxcKSIgXAot KwkJInByaW50IGFyM1woOjIsOjIsOjJcKSIKLSsKLSsjVGVzdHMgZm9yIHN1YmFycmF5cyBvZiAz IGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxpdGVyYWxzIGFuZCBzdWJyYW5nZXMKLStnZGJfdGVz dCAicHJpbnQgYXIzXCgzLDM6NCw3OjhcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDMz NywgMzQ3XFwpIFxcKCAzMzgsIDM0OFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDMsMzo0LDc6 OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsNDo1LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxd KyA9IFxcKFxcKCAzNDgsIDM1OFxcKSBcXCggMzQ5LCAzNTlcXCkgXFwpIiBcCi0rCQkicHJpbnQg YXIzXCgzLDQ6NSw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsNDo1LDoyXCkiIFwKLSsJ CSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAzNDEsIDM1MVxcKSBcXCggMzQyLCAzNTJcXCkgXFwpIiBc Ci0rCQkicHJpbnQgYXIzXCgzLDQ6NSw6MlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsNDo1 LDNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoMzQzLCAzNTNcXCkiIFwKLSsJCSJwcmludCBh cjNcKDMsNDo1LDNcKSIKLSsKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDg6LDc6OFwpIiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjg3LCAyOTdcXCkgXFwoIDI4OCwgMjk4XFwpIFxcKSIg XAotKwkJInByaW50IGFyM1woMiw4Oiw3OjhcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDg6 LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyODgsIDI5OFxcKSBcXCggMjg5LCAy OTlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDg6LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50 IGFyM1woMiw4Oiw6MlwpIlwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyODEsIDI5MVxcKSBc XCggMjgyLCAyOTJcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDg6LDoyXCkiCi0rZ2RiX3Rl c3QgInByaW50IGFyM1woMiw4OiwzXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDI4MywgMjkz XFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDg6LDNcKSIKLSsKLStnZGJfdGVzdCAicHJpbnQgYXIz XCgyLDoyLDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjE3LCAyMjdcXCkgXFwo IDIxOCwgMjI4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMiw6Miw3OjhcKSIKLStnZGJfdGVz dCAicHJpbnQgYXIzXCgyLDoyLDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyMTgs IDIyOFxcKSBcXCggMjE5LCAyMjlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDoyLDg6XCki Ci0rZ2RiX3Rlc3QgInByaW50IGFyM1woMiw6Miw6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBc XChcXCggMjExLCAyMjFcXCkgXFwoIDIxMiwgMjIyXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1wo Miw6Miw6MlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsOjIsM1wpIiBcCi0rCQkiXFwkXFsw LTlcXSsgPSBcXCgyMTMsIDIyM1xcKSIgXAotKwkJInByaW50IGFyM1woMiw6MiwzXCkiCi0rCi0r Z2RiX3Rlc3QgInByaW50IGFyM1woMyw0LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgz NDcsIDM0OFxcKSIgXAotKwkJInByaW50IGFyM1woMyw0LDc6OFwpIgotK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDMsNCw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgzNDgsIDM0OVxcKSIgXAot K2kJCSJwcmludCBhcjNcKDMsNCw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsNCw6Mlwp IiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgzNDEsIDM0MlxcKSIgXAotKwkJInByaW50IGFyM1wo Myw0LDoyXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woNSw2LDdcKSIgXAotKwkJIlxcJFxbMC05 XF0rID0gNTY3IiBcCi0rCQkicHJpbnQgYXIzXCg1LDYsN1wpIgotKwotK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDM6NCw2LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMzY3LCA0Njdc XCkgXFwoIDM2OCwgNDY4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMzo0LDYsNzo4XCkiCi0r Z2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDYsODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwo XFwoIDM2OCwgNDY4XFwpIFxcKCAzNjksIDQ2OVxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDM6 NCw2LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDYsOjJcKSIgXAotKwkJIlxcJFxb MC05XF0rID0gXFwoXFwoIDM2MSwgNDYxXFwpIFxcKCAzNjIsIDQ2MlxcKSBcXCkiIFwKLSsJCSJw cmludCBhcjNcKDM6NCw2LDoyXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDYsNVwpIiBc Ci0rCQkiXFwkXFswLTlcXSsgPSBcXCgzNjUsIDQ2NVxcKSIgXAotKwkJInByaW50IGFyM1woMzo0 LDYsNVwpIgotKwotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDYsNzo4XCkiIFwKLSsJCSJcXCRc WzAtOVxdKyA9IFxcKFxcKCA4NjcsIDk2N1xcKSBcXCggODY4LCA5NjhcXCkgXFwpIiBcCi0rCQki cHJpbnQgYXIzXCg4Oiw2LDc6OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDYsODpcKSIg XAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg2OCwgOTY4XFwpIFxcKCA4NjksIDk2OVxcKSBc XCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDYsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg4 Oiw2LDoyXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4NjEsIDk2MVxcKSBcXCggODYy LCA5NjJcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw2LDoyXCkiCi0rZ2RiX3Rlc3QgInBy aW50IGFyM1woODosNiw1XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDg2NSwgOTY1XFwpIiBc Ci0rCQkicHJpbnQgYXIzXCg4Oiw2LDVcKSIKLSsKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw2 LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTY3LCAyNjdcXCkgXFwoIDE2OCwg MjY4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woOjIsNiw3OjhcKSIKLStnZGJfdGVzdCAicHJp bnQgYXIzXCg6Miw2LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAxNjgsIDI2OFxc KSBcXCggMTY5LCAyNjlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg6Miw2LDg6XCkiCi0rZ2Ri X3Rlc3QgInByaW50IGFyM1woOjIsNiw6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCgg MTYxLCAyNjFcXCkgXFwoIDE2MiwgMjYyXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woOjIsNiw6 MlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDYsNVwpIiBcCi0rCQkiXFwkXFswLTlcXSsg PSBcXCgxNjUsIDI2NVxcKSIgXAotKwkJInByaW50IGFyM1woOjIsNiw1XCkiCi0rCi0rZ2RiX3Rl c3QgInByaW50IGFyM1woMzo0LDU6Niw0XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAz NTQsIDQ1NFxcKSBcXCggMzY0LCA0NjRcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIyXCgzOjQsNTo2 LDRcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw1OjYsNFwpIiBcCi0rCQkiXFwkXFswLTlc XSsgPSBcXChcXCggODU0LCA5NTRcXCkgXFwoIDg2NCwgOTY0XFwpIFxcKSIgXAotKwkJInByaW50 IGFyMlwoODosNTo2LDRcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw1OjYsNFwpIiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTU0LCAyNTRcXCkgXFwoIDE2NCwgMjY0XFwpIFxcKSIg XAotKwkJInByaW50IGFyMlwoOjIsNTo2LDRcKSIKLSsKLSsjIFN0cmlkZSA+IDEKLStnZGJfdGVz dCAicHJpbnQgYXIxXCgyOjY6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgyLCA0LCA2XFwp IiBcCi0rCQkicHJpbnQgYXIxXCgyOjY6MlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjJcKDI6Njoy LDM6NFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjMsIDQzLCA2M1xcKSBcXCggMjQs IDQ0LCA2NFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjJcKDI6NjoyLDM6NFwpIgotK2dkYl90ZXN0 ICJwcmludCBhcjJcKDI6NjoyLDNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoMjMsIDQzLCA2 M1xcKSIgXAotKwkJInByaW50IGFyMlwoMjo2OjIsM1wpIgotK2dkYl90ZXN0ICJwcmludCBhcjNc KDI6NjoyLDM6NToyLDQ6NzozXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMjM0 LCA0MzQsIDYzNFxcKSBcXCggMjU0LCA0NTQsIDY1NFxcKVwKLSsJCSBcXCkgXFwoIFxcKCAyMzcs IDQzNywgNjM3XFwpIFxcKCAyNTcsIDQ1NywgNjU3XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBh cjNcKDI6NjoyLDM6NToyLDQ6NzozXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMjo2OjIsNSw0 Ojc6M1wpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjU0LCA0NTQsIDY1NFxcKSBcXCgg MjU3LCA0NTcsIDY1N1xcKVwKLSsJCSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6NjoyLDUsNDo3 OjNcKSIKLSsKLSsjIFN0cmlkZSA8IDAKLStnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjI6LTJcKSIg XAotKwkJIlxcJFxbMC05XF0rID0gXFwoOCwgNiwgNCwgMlxcKSIgXAotKwkJInByaW50IGFyMVwo ODoyOi0yXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoODoyOi0yLDM6NFwpIiBcCi0rCQkiXFwk XFswLTlcXSsgPSBcXChcXCggODMsIDYzLCA0MywgMjNcXCkgXFwoIDg0LCA2NCwgNDQsIDI0XFwp XAotKwkJIFxcKSIgXAotKwkJInByaW50IGFyMlwoODoyOi0yLDM6NFwpIgotK2dkYl90ZXN0ICJw cmludCBhcjJcKDI6NjoyLDNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoMjMsIDQzLCA2M1xc KSIgXAotKwkJInByaW50IGFyMlwoMjo2OjIsM1wpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6 Myw3OjM6LTQsNDo3OjNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyNzQsIDM3 NFxcKSBcXCggMjM0LCAzMzRcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjc3LCAzNzdcXCkgXFwoIDIz NywgMzM3XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw3OjM6LTQsNDo3OjNcKSIK LStnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjY6Miw1LDc6NDotM1wpIiBcCi0rCQkiXFwkXFswLTlc XSsgPSBcXChcXCggMjU3LCA0NTcsIDY1N1xcKSBcXCggMjU0LCA0NTQsIDY1NFxcKVwKLSsJCSBc XCkiIFwKLSsJCSJwcmludCBhcjNcKDI6NjoyLDUsNzo0Oi0zXCkiCi0rCi0rIyBUZXN0cyB3aXRo IG5lZ2F0aXZlIGFuZCBtaXhlZCBpbmRpY2VzCi0rZ2RiX3Rlc3QgInAgYXI0XCgyOjQsIC0yOjEs IC0xNTotMTRcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyNjEsIDM2MSwgNDYx XFwpIFxcKCAyNzEsIDM3MSwgNDcxXFwpXAotKwkJIFxcKCAyODEsIDM4MSwgNDgxXFwpIFxcKCAy OTEsIDM5MSwgNDkxXFwpIFxcKSBcXCggXFwoIDI2MixcCi0rCQkgMzYyLCA0NjJcXCkgXFwoIDI3 MiwgMzcyLCA0NzJcXCkgXFwoIDI4MiwgMzgyLCA0ODJcXCkgXFwoIDI5MixcCi0rCQkgMzkyLCA0 OTJcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyNCgyOjQsIC0yOjEsIC0xNTotMTQpIgotKwot K2dkYl90ZXN0ICJwIGFyNFwoNywtNjoyOjMsLTdcKSIgXAotKyAgICAgICAgICAgICAgICAiXFwk XFswLTlcXSsgPSBcXCg3MjksIDc1OSwgNzg5XFwpIiBcCi0rICAgICAgICAgICAgICAgICJwcmlu dCBhcjQoNywtNjoyOjMsLTcpIgotKwotK2dkYl90ZXN0ICJwIGFyNFwoOToyOi0yLCAtNjoyOjMs IC02Oi0xNTotM1wpIiBcCi0rICAgICAgICAgICAgICAgICJcXCRcWzAtOVxdKyA9IFxcKFxcKCBc XCggOTMwLCA3MzAsIDUzMCwgMzMwXFwpIFxcKCA5NjAsIDc2MCxcCi0rCQkgNTYwLCAzNjBcXCkg XFwoIDk5MCwgNzkwLCA1OTAsIDM5MFxcKSBcXCkgXFwoIFxcKCA5MjcsIDcyNyxcCi0rCQkgNTI3 LCAzMjdcXCkgXFwoIDk1NywgNzU3LCA1NTcsIDM1N1xcKSBcXCggOTg3LCA3ODcsIDU4NyxcCi0r CQkgMzg3XFwpIFxcKSBcXCggXFwoIDkyNCwgNzI0LCA1MjQsIDMyNFxcKSBcXCggOTU0LCA3NTQs IDU1NCxcCi0rCQkgMzU0XFwpIFxcKCA5ODQsIDc4NCwgNTg0LCAzODRcXCkgXFwpIFxcKCBcXCgg OTIxLCA3MjEsIDUyMSxcCi0rCQkgMzIxXFwpIFxcKCA5NTEsIDc1MSwgNTUxLCAzNTFcXCkgXFwo IDk4MSwgNzgxLCA1ODEsIDM4MVxcKSBcXClcCi0rCQkgXFwpIiBcCi0rICAgICAgICAgICAgICAg ICJwcmludCBhcjQoOToyOi0yLCAtNjoyOjMsIC02Oi0xNTotMykiCi0rCi0rZ2RiX3Rlc3QgInAg YXI0XCg6LDosOlwpIiBcCi0rICAgICAgICAgICAgICAgICJcXCRcWzAtOVxdKyA9IFxcKFxcKCBc XCggMTExLCAyMTEsIDMxMSwgNDExLCA1MTEsIDYxMSwgNzExLFwKLSsJCSA4MTEsIC4qIiBcCi0r ICAgICAgICAgICAgICAgICJwcmludCBhcjQoOiw6LDopIgotKwotKyMgUHJvdm9rZSBlcnJvciBt ZXNzYWdlcyBmb3IgYmFkIHVzZXIgaW5wdXQKLStnZGJfdGVzdCAicHJpbnQgYXIxXCgwOjRcKSIg XAotKwkJInByb3ZpZGVkIGJvdW5kXFwoc1xcKSBvdXRzaWRlIGFycmF5IGJvdW5kXFwoc1xcKSIg XAotKwkJInByaW50IGFyMVwoMDo0XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMVwoODoxMlwpIiBc Ci0rCQkicHJvdmlkZWQgYm91bmRcXChzXFwpIG91dHNpZGUgYXJyYXkgYm91bmRcXChzXFwpIiBc Ci0rCQkicHJpbnQgYXIxXCg4OjEyXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMVwoODoyOlwpIiBc Ci0rCQkiQSBzeW50YXggZXJyb3IgaW4gZXhwcmVzc2lvbiwgbmVhciBgXFwpJy4iIFwKLSsJCSJw cmludCBhcjFcKDg6MjpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjI6MlwpIiBcCi0rCQki V3JvbmcgdmFsdWUgcHJvdmlkZWQgZm9yIHN0cmlkZSBhbmQgYm91bmRhcmllcyIgXAotKwkJInBy aW50IGFyMVwoODoyOjJcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIxXCgyOjg6LTJcKSIgXAotKwkJ Ildyb25nIHZhbHVlIHByb3ZpZGVkIGZvciBzdHJpZGUgYW5kIGJvdW5kYXJpZXMiIFwKLSsJCSJw cmludCBhcjFcKDI6ODotMlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjFcKDI6NzowXCkiIFwKLSsJ CSJTdHJpZGUgbXVzdCBub3QgYmUgMCIgXAotKwkJInByaW50IGFyMVwoMjo3OjBcKSIKLStnZGJf dGVzdCAicHJpbnQgYXIxXCgzOjdcKSA9IDQyIiBcCi0rCQkiSW52YWxpZCBjYXN0LiIgXAotKwkJ IkFzc2lnbm1lbnQgb2YgdmFsdWUgdG8gc3ViYXJyYXkiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RhdGljLWFycmF5cy5mOTAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwLi5mMjJmY2JlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N0YXRpYy1hcnJheXMuZjkwCi1AQCAtMCwwICsxLDU1IEBACi0rISBDb3B5cmlnaHQgMjAx NSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSshCi0rISBDb250cmlidXRlZCBieSBJ bnRlbCBDb3JwLiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgotKyEKLSshIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3Vicm91dGluZSBzdWIKLSsgIGludGVnZXIsIGRp bWVuc2lvbig5KSA6OiBhcjEKLSsgIGludGVnZXIsIGRpbWVuc2lvbig5LDkpIDo6IGFyMgotKyAg aW50ZWdlciwgZGltZW5zaW9uKDksOSw5KSA6OiBhcjMKLSsgIGludGVnZXIsIGRpbWVuc2lvbigx MCwtNzozLCAtMTU6LTUpIDo6IGFyNAotKyAgaW50ZWdlciA6OiBpLGosawotKwotKyAgYXIxID0g MQotKyAgYXIyID0gMQotKyAgYXIzID0gMQotKyAgYXI0ID0gNAotKwotKyAgISBSZXN1bHRpbmcg YXJyYXkgYXIzIGxvb2tzIGxpa2UgKCgoIDExMSwgMTEyLCAxMTMsIDExNCwuLi4pKSkKLSsgIGRv IGkgPSAxLCA5LCAxCi0rICAgIGFyMShpKSA9IGkKLSsgICAgZG8gaiA9IDEsIDksIDEKLSsgICAg ICBhcjIoaSxqKSA9IGkqMTAgKyBqCi0rICAgICAgZG8gayA9IDEsIDksIDEKLSsgICAgICAgIGFy MyhpLGosaykgPSBpKjEwMCArIGoqMTAgKyBrCi0rICAgICAgZW5kIGRvCi0rICAgIGVuZCBkbwot KyAgZW5kIGRvCi0rCi0rICBkbyBpID0gMSwgMTAsIDEKLSsgICAgZG8gaiA9IC03LCAzLCAxCi0r ICAgICAgZG8gayA9IC0xNSwgLTUsIDEKLSsgICAgICAgIGFyNChpLGosaykgPSBpKjEwMCArIChq KzgpKjEwICsgKGsrMTYpCi0rICAgICAgZW5kIGRvCi0rICAgIGVuZCBkbwotKyAgZW5kIGRvCi0r Ci0rICBhcjEoMSkgPSAxMSAgIUJQMQotKyAgcmV0dXJuCi0rZW5kCi0rCi0rcHJvZ3JhbSB0ZXN0 cHJvZwotKyAgY2FsbCBzdWIKLStlbmQKLS0tIAotMi41LjUKLQoKZGlmZiAtLWdpdCBhL2dkYi12 bGEtaW50ZWwtN29mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaAppbmRleCA3MjZj MzQxLi4zMTBjYTYwIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLTdvZjcucGF0Y2gKKysrIGIv Z2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCkBAIC01MiwxMSArNTIsMTEgQEAgQ2hhbmdlLUlkOiBJ N2Q3ZjQ3YzdhNDkwMGE3ZmRiNTExMDIwMzI0NTViNTNkNjBlNjBkNwogIGNyZWF0ZSBtb2RlIDEw MDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAogIGNyZWF0ZSBt b2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAogCi1k aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDY2 NThhMzguLjY3OGRhOGYgMTAwNjQ0Ci0tLS0gYS9nZGIvZHdhcmYycmVhZC5jCi0rKysgYi9nZGIv ZHdhcmYycmVhZC5jCi1AQCAtMTc2NCw3ICsxNzY0LDggQEAgc3RhdGljIHZvaWQgcmVhZF9zaWdu YXR1cmVkX3R5cGUgKHN0cnVjdCBzaWduYXR1cmVkX3R5cGUgKik7CitJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL2R3YXJmMnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkw LjIwMTYwODA3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA4LTI1IDE2OjA4OjE3LjM5Nzcx NDkzNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9kd2FyZjJyZWFkLmMJMjAx Ni0wOC0yNSAxNjowOTo1Ni43MDM1ODA1OTcgKzAyMDAKK0BAIC0xNzY0LDcgKzE3NjQsOCBAQAog IAogIHN0YXRpYyBpbnQgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsCiAgCQkJCSBzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UsCkBAIC02Niw3ICs2Niw3IEBAIGluZGV4IDY2NThhMzguLjY3OGRhOGYgMTAwNjQ0CiAgCiAg LyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCiAgCi1AQCAtMTE0MzcsNyArMTE0Mzgs NyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC0xMTQ0Niw3ICsxMTQ0Nyw3IEBACiAgICAgIHsKICAgICAgICBuZXdvYmot PnN0YXRpY19saW5rCiAgCT0gWE9CTkVXICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzdHJ1 Y3QgZHluYW1pY19wcm9wKTsKQEAgLTc1LDE2ICs3NSwxNiBAQCBpbmRleCA2NjU4YTM4Li42Nzhk YThmIDEwMDY0NAogICAgICB9CiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1i b2xzOwotQEAgLTE0NDk1LDI5ICsxNDQ5Niw5NCBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0NTEyLDI5ICsx NDUxMyw5NCBAQAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNo IChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5 cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogLSAgdW5zaWduZWQg aW50IGxlbmd0aDsKICsgIHVuc2lnbmVkIGludCBsZW5ndGggPSBVSU5UX01BWDsKLSsKKyAKICsg IGluZGV4X3R5cGUgPSBvYmpmaWxlX3R5cGUgKG9iamZpbGUpLT5idWlsdGluX2ludDsKICsgIHJh bmdlX3R5cGUgPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsIGluZGV4X3R5cGUsIDEs IGxlbmd0aCk7Ci0gCisrCiArICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIGlzIGRlZmluZWQs IHRoZSBsZW5ndGggaXMgc3RvcmVkIGluIG1lbW9yeS4gICovCiAgICBhdHRyID0gZHdhcmYyX2F0 dHIgKGRpZSwgRFdfQVRfc3RyaW5nX2xlbmd0aCwgY3UpOwogICAgaWYgKGF0dHIpCkBAIC0xODEs NyArMTgxLDcgQEAgaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKICAgIGNoYXJfdHlwZSA9 IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsK ICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlw ZSk7CiAgCi1AQCAtMTQ4NDcsNyArMTQ5MTMsOCBAQCByZWFkX2Jhc2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0ODY0LDcgKzE0OTMwLDgg QEAKICAKICBzdGF0aWMgaW50CiAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLApAQCAtMTkxLDcgKzE5MSw3IEBA IGluZGV4IDY2NThhMzguLjY3OGRhOGYgMTAwNjQ0CiAgewogICAgc3RydWN0IGR3YXJmMl9wcm9w ZXJ0eV9iYXRvbiAqYmF0b247CiAgICBzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjayA9ICZjdS0+b2Jq ZmlsZS0+b2JqZmlsZV9vYnN0YWNrOwotQEAgLTE0ODU3LDE0ICsxNDkyNCwzMyBAQCBhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9p bmZvICpkaWUsCitAQCAtMTQ4NzQsMTQgKzE0OTQxLDMzIEBACiAgCiAgICBpZiAoYXR0cl9mb3Jt X2lzX2Jsb2NrIChhdHRyKSkKICAgICAgewpAQCAtMjI5LDcgKzIyOSw3IEBAIGluZGV4IDY2NThh MzguLjY3OGRhOGYgMTAwNjQ0CiAgICAgIH0KICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19yZWYg KGF0dHIpKQogICAgICB7Ci1AQCAtMTQ4OTcsOCArMTQ5ODMsMjggQEAgYXR0cl90b19keW5hbWlj X3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGll LAorQEAgLTE0OTE0LDggKzE1MDAwLDI4IEBACiAgCQliYXRvbiA9IFhPQk5FVyAob2JzdGFjaywg c3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+cmVmZXJlbmNlZF90eXBl ID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQliYXRvbi0+bG9jZXhwci5w ZXJfY3UgPSBjdS0+cGVyX2N1OwpAQCAtMjYwLDcgKzI2MCwxNSBAQCBpbmRleCA2NjU4YTM4Li42 NzhkYThmIDEwMDY0NAogIAkJcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwogIAkJcHJvcC0+a2lu ZCA9IFBST1BfTE9DRVhQUjsKICAJCWdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVM TCk7Ci1AQCAtMTUwMDgsMTcgKzE1MTE0LDE3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE1MDI3LDI0ICsxNTEz MywyNCBAQAorIAorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc3RyaWRl LCBjdSk7CisgICBpZiAoYXR0cikKKy0gICAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0 ciwgZGllLCBjdSwgJnN0cmlkZSkpCisrICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0 dHIsIGRpZSwgY3UsICZzdHJpZGUsIE5VTEwsIDApKQorICAgICAgICAgY29tcGxhaW50ICgmc3lt ZmlsZV9jb21wbGFpbnRzLCBfKCJNaXNzaW5nIERXX0FUX2J5dGVfc3RyaWRlICIKKyAgICAgICAg ICAgICAgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAorICAgICAgICAgICAg ICBkaWUtPm9mZnNldC5zZWN0X29mZiwgb2JqZmlsZV9uYW1lIChjdS0+b2JqZmlsZSkpOwogIAog ICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvd2VyX2JvdW5kLCBjdSk7CiAgICBp ZiAoYXR0cikKQEAgLTI4MSw3ICsyODksNyBAQCBpbmRleCA2NjU4YTM4Li42NzhkYThmIDEwMDY0 NAogIAl7CiAgCSAgLyogSWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3Vs YXRpb24gaGVyZS4gICovCiAgCSAgaWYgKGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5r aW5kID09IFBST1BfQ09OU1QpCi1AQCAtMjIzODksNyArMjI0OTUsNyBAQCBzZXRfZGllX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtMjI0MTYsNyArMjI1MjIsNyBAQAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX2FsbG9jYXRlZCwgY3UpOwogICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0 cikpCiAgICAgIHsKQEAgLTI5MCw3ICsyOTgsNyBAQCBpbmRleCA2NjU4YTM4Li42NzhkYThmIDEw MDY0NAogICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQsIHByb3AsIHR5 cGUsIG9iamZpbGUpOwogICAgICB9CiAgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCi1AQCAtMjI0 MDQsNyArMjI1MTAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjI0MzEsNyArMjI1Mzcs NyBAQAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fzc29jaWF0ZWQsIGN1KTsK ICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogICAgICB7CkBAIC0yOTksNyArMzA3 LDcgQEAgaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKICAgICAgICAgIGFkZF9keW5fcHJv cCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CiAgICAgIH0KICAg IGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjQxNyw3ICsyMjUyMyw3IEBAIHNldF9kaWVf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC0yMjQ0NCw3ICsyMjU1MCw3IEBACiAgCiAgICAvKiBSZWFkIERXX0FU X2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CkBAIC0zMDgsMTEgKzMxNiwxMSBAQCBp bmRleCA2NjU4YTM4Li42NzhkYThmIDEwMDY0NAogICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9Q X0RBVEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9iamZpbGUpOwogIAogICAgaWYgKGR3YXJmMl9w ZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQotZGlmZiAtLWdpdCBhL2dkYi9nZGJ0 eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKLWluZGV4IGI1M2U2NDkuLjBhYTkxMTMgMTAwNjQ0Ci0t LS0gYS9nZGIvZ2RidHlwZXMuYwotKysrIGIvZ2RiL2dkYnR5cGVzLmMKLUBAIC0xODQxLDYgKzE4 NDEsNyBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg dG9wX2xldmVsKQorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJ0eXBlcy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2RidHlwZXMuYwky MDE2LTA4LTI1IDE2OjA4OjE3LjM5NzcxNDkzNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYw ODA3L2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDgtMjUgMTY6MDk6MTEuNjIzMTg3NjI2ICswMjAwCitA QCAtMTg1MSw2ICsxODUxLDcgQEAKICAgICAgICB9CiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX0FS UkFZOgpAQCAtMzIwLDcgKzMyOCw3IEBAIGluZGV4IGI1M2U2NDkuLjBhYTkxMTMgMTAwNjQ0CiAg ICAgICAgewogIAlnZGJfYXNzZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09IDEpOwogIAotQEAg LTE5NDUsNyArMTk0Niw4IEBAIHJlc29sdmVfZHluYW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5 cGUsCitAQCAtMTk2NCw3ICsxOTY1LDggQEAKICAgIHN0cnVjdCB0eXBlICphcnlfZGltOwogICAg c3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKICAKQEAgLTMzMCw3ICszMzgsNyBAQCBpbmRleCBi NTNlNjQ5Li4wYWE5MTEzIDEwMDY0NAogIAogICAgdHlwZSA9IGNvcHlfdHlwZSAodHlwZSk7CiAg Ci1AQCAtMTk3MCwxMyArMTk3MiwxNyBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0 eXBlICp0eXBlLAorQEAgLTE5ODksMTMgKzE5OTEsMTcgQEAKICAKICAgIGFyeV9kaW0gPSBjaGVj a190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlwZSkpOwogIApAQCAtMzUxLDcgKzM1 OSw3IEBAIGluZGV4IGI1M2U2NDkuLjBhYTkxMTMgMTAwNjQ0CiAgfQogIAogIC8qIFJlc29sdmUg ZHluYW1pYyBib3VuZHMgb2YgbWVtYmVycyBvZiB0aGUgdW5pb24gVFlQRSB0byBzdGF0aWMKLUBA IC0yMTgxLDYgKzIxODcsNyBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0 IHR5cGUgKnR5cGUsCitAQCAtMjIwMCw2ICsyMjA2LDcgQEAKICAgCSAgYnJlYWs7CiAgCiAgCWNh c2UgVFlQRV9DT0RFX0FSUkFZOgpAQCAtMzU5LDExICszNjcsMTAgQEAgaW5kZXggYjUzZTY0OS4u MGFhOTExMyAxMDA2NDQKICAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5 ICh0eXBlLCBhZGRyX3N0YWNrKTsKICAJICBicmVhazsKICAKLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmluZ3MuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uNDg0ZmRjYgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaW5ncy5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTYtMDgt MjUgMTY6MDk6MTEuNjI0MTg3NjM1ICswMjAwCiBAQCAtMCwwICsxLDEwMyBAQAogKyMgQ29weXJp Z2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC00NjgsMTEgKzQ3 NSwxMCBAQCBpbmRleCAwMDAwMDAwLi40ODRmZGNiCiArCSAgICBwYXNzICR0ZXN0CiArICAgIH0K ICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5m OTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAotbmV3IGZpbGUg bW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjNjMjI3MzUKLS0tLSAvZGV2L251bGwKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpbmdzLmY5MAkyMDE2LTA4LTI1IDE2OjA5OjExLjYyNDE4NzYzNSArMDIwMAogQEAg LTAsMCArMSwzOSBAQAogKyEgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArIQpAQCAtNTEzLDYgKzUxOSwzIEBAIGluZGV4IDAwMDAwMDAuLjNjMjI3MzUKICsg IHZhcl9jaGFyX3AgPT4gbnVsbCgpCiArICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAg ICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCiArZW5kIHByb2dyYW0gdmxhX3N0 cmluZ3MKLS0tIAotMi43LjQKLQoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtYnJhbmNoLWZp eC1zdHJpZGUtMW9mMi5wYXRjaCBiL2dkYi12bGEtaW50ZWwtYnJhbmNoLWZpeC1zdHJpZGUtMW9m Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGM2NjcwCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC1icmFuY2gtZml4LXN0cmlkZS0xb2YyLnBhdGNo CkBAIC0wLDAgKzEsNjQgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDE2LTA4L21zZzAwMjc4Lmh0bWwKK1N1YmplY3Q6IFJlOiBbVjQgMDAvMjFdIEZvcnRyYW4gZHlu YW1pYyBhcnJheSBzdXBwb3J0CisKKworLS1YMWJPSjNLN0RKNVlrQnJUCitDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGlu ZQorCitPbiBUaHUsIDI1IEF1ZyAyMDE2IDE5OjIyOjE3ICswMjAwLCBKYW4gS3JhdG9jaHZpbCB3 cm90ZToKKz4gSSBzZWUgdGhlIHNvdXJjZSBoYW5kbGVzIG5lZ2F0aXZlIHN0aWRlIHNwZWNpYWxs eS4gIFBhcnRpY3VsYXJseSB0aGUgY29tbWVudAorPiBoZXJlIGRvZXMgbm90IGV4cGxhaW4gdGhl IGNvZGUgaXQgY29tbWVudHM6CisKK1dpdGggdGhlIGF0dGFjaGVkIHBhdGNoIGRpc2FibGluZyB0 aGVzZSBjYXNlcyBzdGlsbCB0aGUgc3VwcGxpZWQKK2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMu ZXhwIGFuZCBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cCBQQVNTIChvbiBGZWRvcmEgMjQKK3g4 Nl82NCkuCisKKworSmFuCisKKy0tWDFiT0ozSzdESjVZa0JyVAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZp bGVuYW1lPTEKKworZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMK K2luZGV4IDg4ODAxYWMuLjY5NTgyNWEgMTAwNjQ0CistLS0gYS9nZGIvZ2RidHlwZXMuYworKysr IGIvZ2RiL2dkYnR5cGVzLmMKK0BAIC0yMTk3LDEyICsyMTk3LDE0IEBAIHJlc29sdmVfZHluYW1p Y190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgICAgeworICAgICAgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChyZXNvbHZlZF90eXBlKTsKKyAK KysjaWYgMCAvLyBGZWRvcmE6IGdkYi12bGEtaW50ZWwtYnJhbmNoLWZpeC1zdHJpZGUucGF0Y2gK KyAgICAgICAvKiBBZGp1c3QgdGhlIGRhdGEgbG9jYXRpb24gd2l0aCB0aGUgdmFsdWUgb2YgYnl0 ZSBzdHJpZGUgaWYgc2V0LCB3aGljaAorICAgICAgICAgIGNhbiBkZXNjcmliZSB0aGUgc2VwYXJh dGlvbiBiZXR3ZWVuIHN1Y2Nlc3NpdmUgZWxlbWVudHMgYWxvbmcgdGhlCisgICAgICAgICAgZGlt ZW5zaW9uLiAgKi8KKyAgICAgICBpZiAoVFlQRV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSkgPCAw KQorICAgICAgICAgdmFsdWUgKz0gKFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgLSBUWVBF X0xPV19CT1VORCAocmFuZ2VfdHlwZSkpCisgICAgICAgICAgICAgICAgICAgKiBUWVBFX0JZVEVf U1RSSURFIChyYW5nZV90eXBlKTsKKysjZW5kaWYKKyAKKyAgICAgICBUWVBFX0RBVEFfTE9DQVRJ T05fQUREUiAocmVzb2x2ZWRfdHlwZSkgPSB2YWx1ZTsKKyAgICAgICBUWVBFX0RBVEFfTE9DQVRJ T05fS0lORCAocmVzb2x2ZWRfdHlwZSkgPSBQUk9QX0NPTlNUOworZGlmZiAtLWdpdCBhL2dkYi92 YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKK2luZGV4IDkwOTM5NjkuLmVjYTc5OTIgMTAwNjQ0 CistLS0gYS9nZGIvdmFsYXJpdGguYworKysrIGIvZ2RiL3ZhbGFyaXRoLmMKK0BAIC0xOTksMTIg KzE5OSwxNCBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKQorIAorICAgaWYgKGVsdF9zdHJpZGUgPiAw KQorICAgICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRlOworKyNpZiAwIC8vIEZlZG9yYTogZ2RiLXZs YS1pbnRlbC1icmFuY2gtZml4LXN0cmlkZS5wYXRjaAorICAgZWxzZSBpZiAoZWx0X3N0cmlkZSA8 IDApCisgICAgIHsKKyAgICAgICBpbnQgb2ZmcyA9IChlbHRfb2ZmcyArIDEpICogZWx0X3N0cmlk ZTsKKyAKKyAgICAgICBlbHRfb2ZmcyA9IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSArIG9mZnM7 CisgICAgIH0KKysjZW5kaWYKKyAgIGVsc2UKKyAgICAgZWx0X29mZnMgKj0gZWx0X3NpemU7Cisg CisKKy0tWDFiT0ozSzdESjVZa0JyVC0tCisKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLWJy YW5jaC1maXgtc3RyaWRlLTJvZjIucGF0Y2ggYi9nZGItdmxhLWludGVsLWJyYW5jaC1maXgtc3Ry aWRlLTJvZjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg0MGQw ZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtYnJhbmNoLWZpeC1zdHJpZGUtMm9m Mi5wYXRjaApAQCAtMCwwICsxLDkyOSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTYtMDgvbXNnMDAyNzQuaHRtbAorU3ViamVjdDogUmU6IFtWNCAwMC8yMV0gRm9y dHJhbiBkeW5hbWljIGFycmF5IHN1cHBvcnQKKworCistLVZiSmtuOVl4QnZudUNINUoKK0NvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlv bjogaW5saW5lCisKK09uIFR1ZSwgMjMgQXVnIDIwMTYgMTU6MzQ6MDkgKzAyMDAsIEJlcm5oYXJk IEhlY2tlbCB3cm90ZToKKz4gY3JlYXRlZCBhIGJyYW5jaCB3aXRoIGFsbCBzdHJpZGUgcGF0Y2hl cy4KKwordXNlcnMvYmhlY2tlbC9mb3J0cmFuLXN0cmlkZXMKKzJjMzkyZDQxYTNmMmUzOGRlZWI5 ZGI1YjdhOTNjYTQ1NjgyYmJlM2IKKworPiBJIGRvbid0IHNlZSByZWdyZXNzaW9uIG9uIFJINy4x LCBnY2MgNC44LjMtOQorCitJIHNlZSBhIHJlZ3Jlc3Npb24gZm9yIDMyLWJpdCB0YXJnZXRzICh4 ODZfNjQtbTMyIG9yIG5hdGl2ZSBpNjg2KQorb24gRmVkb3JhIDI0IChnY2MtZ2ZvcnRyYW4tNi4x LjEtMy5mYzI0Lng4Nl82NCkuICBJIGRvIG5vdCBzZWUgdGhlIHJlZ3Jlc3Npb24KK29uIENlbnRP Uy03LjIgKHg4Nl82NC1tMzIpLgorCitwcmludCBwdmxhXk0KK3ZhbHVlIHJlcXVpcmVzIDQyOTQ5 NjcyODggYnl0ZXMsIHdoaWNoIGlzIG1vcmUgdGhhbiBtYXgtdmFsdWUtc2l6ZV5NCisoZ2RiKSBG QUlMOiBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cDogcHJpbnQgc2luZ2xlLWVsZW1lbnQKKwor SSBoYXZlIGF0dGFjaGVkIGEgZml4LgorCitJdCBpcyBiZWNhdXNlOgorICAgIDwxMTU+ICAgRFdf QVRfbG93ZXJfYm91bmQgOiA0IGJ5dGUgYmxvY2s6IDk3IDIzIDEwIDYgICAgICAgIChEV19PUF9w dXNoX29iamVjdF9hZGRyZXNzOyBEV19PUF9wbHVzX3Vjb25zdDogMTY7IERXX09QX2RlcmVmKQor ICAgIDwxMWE+ICAgRFdfQVRfdXBwZXJfYm91bmQgOiA0IGJ5dGUgYmxvY2s6IDk3IDIzIDE0IDYg ICAgICAgIChEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzOyBEV19PUF9wbHVzX3Vjb25zdDogMjA7 IERXX09QX2RlcmVmKQorICAgIDwxMWY+ICAgRFdfQVRfYnl0ZV9zdHJpZGUgOiA2IGJ5dGUgYmxv Y2s6IDk3IDIzIGMgNiAzNCAxZSAgIChEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzOyBEV19PUF9w bHVzX3Vjb25zdDogMTI7IERXX09QX2RlcmVmOyBEV19PUF9saXQ0OyBEV19PUF9tdWwpCisJRFdf QVRfbG93ZXJfYm91bmQgPT0gMQorCURXX0FUX3VwcGVyX2JvdW5kID09IDEKKwlEV19BVF9ieXRl X3N0cmlkZSA9PSAoLTIpICogNCA9PSAtOAorCitJIGFtIG5vdCBzdXJlIGlmIGdmb3J0cmFuIGlz IHJlYWxseSB3cm9uZyBvciBub3QgYnV0IGEgc3RyaWRlIGRvZXMgbm90IG1ha2UKK3NlbnNlIGZv ciBtZSBmb3IgYSBzaW5nbGUgcm93IGFycmF5LgorCitBdHRhY2hpbmcgYWxzbyBnZGIuZm9ydHJh bi92bGEtc3RyaWRlLmY5MCBmcm9tIHlvdXIgYnJhbmNoIGJ1aWx0IHdpdGgKK2djYy1nZm9ydHJh bi02LjEuMS0zLmZjMjQueDg2XzY0IG9uIEZlZG9yYSAyNCB4ODZfNjQgaW4gLW0zMiBtb2RlLgor CitCZXNpZGVzIHRoYXQgSSBzZWUgb24gYWxsIGFyY2hzCisJLUZBSUw6IGdkYi5wYXNjYWwvYXJy YXlzLmV4cDogUHJpbnQgZHluYW1pYyBhcnJheSBvZiBzdHJpbmcKKwkrRkFJTDogZ2RiLnBhc2Nh bC9hcnJheXMuZXhwOiBQcmludCBkeW5hbWljIGFycmF5IG9mIHN0cmluZyAoR0RCIGludGVybmFs IGVycm9yKQorYnV0IHRoYXQgdGVzdGNhc2UgaXMgb25seSBpbiBGZWRvcmEgYW5kIHRoZSBQYXNj YWwgKGZwYykgc3VwcG9ydCBoYXMgYmVlbiBub3QKK3dlbGwgbWFpbnRhaW5lZCBzbyBmYXIgc28g SSBhbSBPSyB3aXRoIHRoYXQuCisKKworVGhhbmtzLAorSmFuCisKKy0tVmJKa245WXhCdm51Q0g1 SgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURp c3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBl cy5jIGIvZ2RiL2dkYnR5cGVzLmMKK2luZGV4IDg4ODAxYWMuLjFmYmY2OWEgMTAwNjQ0CistLS0g YS9nZGIvZ2RidHlwZXMuYworKysrIGIvZ2RiL2dkYnR5cGVzLmMKK0BAIC0xMTAzLDEwICsxMTAz LDEyIEBAIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0 X3R5cGUsCisgICAgICAgaWYgKGhpZ2hfYm91bmQgPCBsb3dfYm91bmQpCisgCVRZUEVfTEVOR1RI IChyZXN1bHRfdHlwZSkgPSAwOworICAgICAgIGVsc2UgaWYgKGJ5dGVfc3RyaWRlID4gMCkKKy0J VFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9IGJ5dGVfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBs b3dfYm91bmQgKyAxKTsKKysJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9IChieXRlX3N0cmlk ZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kKQorKwkJCQkgICAgICsgVFlQRV9MRU5HVEggKGVs ZW1lbnRfdHlwZSkpOworICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQorIAlUWVBFX0xF TkdUSCAocmVzdWx0X3R5cGUpID0KKy0JICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93 X2JvdW5kICsgMSkgKyA3KSAvIDg7CisrCSAgKChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBs b3dfYm91bmQpICsgNykgLyA4CisrCSAgICsgVFlQRV9MRU5HVEggKGVsZW1lbnRfdHlwZSkpOwor ICAgICAgIGVsc2UKKyAJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9CisgCSAgVFlQRV9MRU5H VEggKGVsZW1lbnRfdHlwZSkgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpOworCistLVZi SmtuOVl4QnZudUNINUoKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2Np aQorQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9InZsYS1zdHJpZGUu cyIKKworCS5maWxlCSJ2bGEtc3RyaWRlLmY5MCIKKwkudGV4dAorLkx0ZXh0MDoKKwkuc2VjdGlv bgkucm9kYXRhCisJLmFsaWduIDQKKy5MQzA6CisJLnN0cmluZwkiSW50ZWdlciBvdmVyZmxvdyB3 aGVuIGNhbGN1bGF0aW5nIHRoZSBhbW91bnQgb2YgbWVtb3J5IHRvIGFsbG9jYXRlIgorLkxDMToK Kwkuc3RyaW5nCSJ2bGEiCisJLmFsaWduIDQKKy5MQzI6CisJLnN0cmluZwkiQXR0ZW1wdGluZyB0 byBhbGxvY2F0ZSBhbHJlYWR5IGFsbG9jYXRlZCB2YXJpYWJsZSAnJXMnIgorCS5hbGlnbiA0Cisu TEMzOgorCS5zdHJpbmcJIkF0IGxpbmUgMjAgb2YgZmlsZSBnZGIuZm9ydHJhbi92bGEtc3RyaWRl LmY5MCIKKwkuYWxpZ24gNAorLkxDNDoKKwkuc3RyaW5nCSJBbGxvY2F0aW9uIHdvdWxkIGV4Y2Vl ZCBtZW1vcnkgbGltaXQiCisJLnRleHQKKwkudHlwZQlNQUlOX18sIEBmdW5jdGlvbgorTUFJTl9f OgorLkxGQjA6CisJLmZpbGUgMSAiZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAiCisJIyBnZGIu Zm9ydHJhbi92bGEtc3RyaWRlLmY5MDoxNgorCS5sb2MgMSAxNiAwCisJLmNmaV9zdGFydHByb2MK KyMgQkxPQ0sgMiBzZXE6MAorIyBQUkVEOiBFTlRSWSAoRkFMTFRIUlUpCisJcHVzaGwJJWVicAor CS5jZmlfZGVmX2NmYV9vZmZzZXQgOAorCS5jZmlfb2Zmc2V0IDUsIC04CisJbW92bAklZXNwLCAl ZWJwCisJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIDUKKwlwdXNobAklZWRpCisJcHVzaGwJJWVzaQor CXB1c2hsCSVlYngKKwlzdWJsCSQ2MCwgJWVzcAorCS5jZmlfb2Zmc2V0IDcsIC0xMgorCS5jZmlf b2Zmc2V0IDYsIC0xNgorCS5jZmlfb2Zmc2V0IDMsIC0yMAorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0 cmlkZS5mOTA6MTcKKwkubG9jIDEgMTcgMAorCW1vdmwJJDAsIC03MiglZWJwKQorLkxCQjI6CisJ IyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMAorCS5sb2MgMSAyMCAwCisJbW92bAkkMCwg JWVheAorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMyAoRkFMTFRIUlUpIDQKKwlqZQkuTDIK KyMgQkxPQ0sgMyBzZXE6MQorIyBQUkVEOiAyIChGQUxMVEhSVSkKKwkjIGdkYi5mb3J0cmFuL3Zs YS1zdHJpZGUuZjkwOjIwCisJLmxvYyAxIDIwIDAgaXNfc3RtdCAwIGRpc2NyaW1pbmF0b3IgMQor CXN1YmwJJDEyLCAlZXNwCisJcHVzaGwJJC5MQzAKKyMgU1VDQzoKKwljYWxsCV9nZm9ydHJhbl9y dW50aW1lX2Vycm9yCisjIEJMT0NLIDQgc2VxOjIKKyMgUFJFRDogMgorLkwyOgorCSMgZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5mOTA6MjAKKwkubG9jIDEgMjAgMCBkaXNjcmltaW5hdG9yIDIKKwlt b3ZsCS03MiglZWJwKSwgJWVheAorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogNSAoRkFMTFRI UlUpIDYKKwlqZQkuTDMKKyMgQkxPQ0sgNSBzZXE6MworIyBQUkVEOiA0IChGQUxMVEhSVSkKKwkj IGdkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjIwCisJLmxvYyAxIDIwIDAgZGlzY3JpbWluYXRv ciAzCisJc3VibAkkNCwgJWVzcAorCXB1c2hsCSQuTEMxCisJcHVzaGwJJC5MQzIKKwlwdXNobAkk LkxDMworIyBTVUNDOgorCWNhbGwJX2dmb3J0cmFuX3J1bnRpbWVfZXJyb3JfYXQKKyMgQkxPQ0sg NiBzZXE6NAorIyBQUkVEOiA0CisuTDM6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoy MAorCS5sb2MgMSAyMCAwIGRpc2NyaW1pbmF0b3IgNAorCXN1YmwJJDEyLCAlZXNwCisJcHVzaGwJ JDQwCisJY2FsbAltYWxsb2MKKwlhZGRsCSQxNiwgJWVzcAorCW1vdmwJJWVheCwgLTcyKCVlYnAp CisJbW92bAktNzIoJWVicCksICVlYXgKKwl0ZXN0bAklZWF4LCAlZWF4CisjIFNVQ0M6IDcgKEZB TExUSFJVKSA4CisJam5lCS5MNAorIyBCTE9DSyA3IHNlcTo1CisjIFBSRUQ6IDYgKEZBTExUSFJV KQorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjAKKwkubG9jIDEgMjAgMCBkaXNjcmlt aW5hdG9yIDUKKwlzdWJsCSQxMiwgJWVzcAorCXB1c2hsCSQuTEM0CisjIFNVQ0M6CisJY2FsbAlf Z2ZvcnRyYW5fb3NfZXJyb3IKKyMgQkxPQ0sgOCBzZXE6NgorIyBQUkVEOiA2CisuTDQ6CisJIyBn ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMAorCS5sb2MgMSAyMCAwIGRpc2NyaW1pbmF0b3Ig NgorCW1vdmwJJDI2NSwgLTY0KCVlYnApCisJbW92bAkkMSwgLTU2KCVlYnApCisJbW92bAkkMTAs IC01MiglZWJwKQorCW1vdmwJJDEsIC02MCglZWJwKQorCW1vdmwJJC0xLCAtNjgoJWVicCkKKy5M QkIzOgorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjEKKwkubG9jIDEgMjEgMCBpc19z dG10IDEgZGlzY3JpbWluYXRvciA2CisJbW92bAktNzIoJWVicCksICVlZHgKKwltb3ZsCS02OCgl ZWJwKSwgJWVzaQorCW1vdmwJLTU2KCVlYnApLCAlZWJ4CisuTEJCNDoKKy5MQkI1OgorCW1vdmwJ LTcyKCVlYnApLCAlZWF4CisJdGVzdGwJJWVheCwgJWVheAorCXNldGUJJWFsCisJbW92emJsCSVh bCwgJWVheAorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMTAgOSAoRkFMTFRIUlUpCisJam5l CS5MNQorIyBCTE9DSyA5IHNlcTo3CisjIFBSRUQ6IDggKEZBTExUSFJVKQorCSMgZ2RiLmZvcnRy YW4vdmxhLXN0cmlkZS5mOTA6MjEKKwkubG9jIDEgMjEgMCBpc19zdG10IDAgZGlzY3JpbWluYXRv ciAyCisJbW92bAktNTYoJWVicCksICVlY3gKKwlsZWFsCTkoJWVjeCksICVlZGkKKwltb3ZsCS01 MiglZWJwKSwgJWVjeAorCWNtcGwJJWVjeCwgJWVkaQorIyBTVUNDOiAxMCAoRkFMTFRIUlUpIDE4 CisJamUJLkw2CisjIEJMT0NLIDEwIHNlcTo4CisjIFBSRUQ6IDggOSAoRkFMTFRIUlUpCisuTDU6 CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1p bmF0b3IgMworCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMTEgKEZBTExUSFJVKSAxMgorCWpl CS5MNworIyBCTE9DSyAxMSBzZXE6OQorIyBQUkVEOiAxMCAoRkFMTFRIUlUpCisJIyBnZGIuZm9y dHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3IgNAorCW1v dmwJJDAsICVlYXgKKyMgU1VDQzogMTMgWzEwMC4wJV0gCisJam1wCS5MOAorIyBCTE9DSyAxMiBz ZXE6MTAKKyMgUFJFRDogMTAKKy5MNzoKKwkjIGdkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjIx CisJLmxvYyAxIDIxIDAgZGlzY3JpbWluYXRvciA1CisJbW92bAktNTIoJWVicCksICVlZHgKKwlt b3ZsCS01NiglZWJwKSwgJWVheAorCXN1YmwJJWVheCwgJWVkeAorCW1vdmwJJWVkeCwgJWVheAor CWFkZGwJJDEsICVlYXgKKwltb3ZsCSQwLCAlZWR4CisJdGVzdGwJJWVheCwgJWVheAorIyBTVUND OiAxMyAoRkFMTFRIUlUpCisJY21vdnMJJWVkeCwgJWVheAorIyBCTE9DSyAxMyBzZXE6MTEKKyMg UFJFRDogMTIgKEZBTExUSFJVKSAxMSBbMTAwLjAlXSAKKy5MODoKKwkjIGdkYi5mb3J0cmFuL3Zs YS1zdHJpZGUuZjkwOjIxCisJLmxvYyAxIDIxIDAgZGlzY3JpbWluYXRvciA3CisJY21wbAkkMTAs ICVlYXgKKwlzZXRuZQklYWwKKwltb3Z6YmwJJWFsLCAlZWF4CisJbW92bAkkMSwgLTU2KCVlYnAp CisJbW92bAkkMTAsIC01MiglZWJwKQorCW1vdmwJJDEsIC02MCglZWJwKQorCW1vdmwJLTU2KCVl YnApLCAlZWR4CisJbmVnbAklZWR4CisJbW92bAklZWR4LCAtNjgoJWVicCkKKwltb3ZsCS02OCgl ZWJwKSwgJWVzaQorCW1vdmwJLTU2KCVlYnApLCAlZWJ4CisJbW92bAktNzIoJWVicCksICVlZHgK Kwl0ZXN0bAklZWR4LCAlZWR4CisjIFNVQ0M6IDE0IChGQUxMVEhSVSkgMTUKKwlqbmUJLkw5Cisj IEJMT0NLIDE0IHNlcToxMgorIyBQUkVEOiAxMyAoRkFMTFRIUlUpCisJIyBnZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3IgOAorCXN1YmwJJDEy LCAlZXNwCisJcHVzaGwJJDQwCisJY2FsbAltYWxsb2MKKwlhZGRsCSQxNiwgJWVzcAorCW1vdmwJ JWVheCwgLTcyKCVlYnApCisJbW92bAkkMjY1LCAtNjQoJWVicCkKKyMgU1VDQzogMTcgWzEwMC4w JV0gCisJam1wCS5MMTAKKyMgQkxPQ0sgMTUgc2VxOjEzCisjIFBSRUQ6IDEzCisuTDk6CisJIyBn ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3Ig OQorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMTYgKEZBTExUSFJVKSAxNworCWplCS5MMTAK KyMgQkxPQ0sgMTYgc2VxOjE0CisjIFBSRUQ6IDE1IChGQUxMVEhSVSkKKwkjIGdkYi5mb3J0cmFu L3ZsYS1zdHJpZGUuZjkwOjIxCisJLmxvYyAxIDIxIDAgZGlzY3JpbWluYXRvciAxMQorCW1vdmwJ LTcyKCVlYnApLCAlZWF4CisJc3VibAkkOCwgJWVzcAorCXB1c2hsCSQ0MAorCXB1c2hsCSVlYXgK KwljYWxsCXJlYWxsb2MKKwlhZGRsCSQxNiwgJWVzcAorIyBTVUNDOiAxNyAoRkFMTFRIUlUpCisJ bW92bAklZWF4LCAtNzIoJWVicCkKKyMgQkxPQ0sgMTcgc2VxOjE1CisjIFBSRUQ6IDE2IChGQUxM VEhSVSkgMTUgMTQgWzEwMC4wJV0gCisuTDEwOgorIyBTVUNDOiAxOCAoRkFMTFRIUlUpCisJIyBn ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3Ig MTMKKwltb3ZsCS03MiglZWJwKSwgJWVkeAorIyBCTE9DSyAxOCBzZXE6MTYKKyMgUFJFRDogOSAx NyAoRkFMTFRIUlUpCisuTDY6CisuTEJFNToKKyMgU1VDQzogMTkgKEZBTExUSFJVKQorCSMgZ2Ri LmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjEKKwkubG9jIDEgMjEgMCBkaXNjcmltaW5hdG9yIDE0 CisJbW92bAkkMCwgJWVheAorIyBCTE9DSyAxOSBzZXE6MTcKKyMgUFJFRDogMTggKEZBTExUSFJV KSAyMCBbMTAwLjAlXSAKKy5MMTI6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQor CS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3IgMTcKKwljbXBsCSQ5LCAlZWF4CisjIFNVQ0M6IDIx IDIwIChGQUxMVEhSVSkKKwlqZwkuTDExCisjIEJMT0NLIDIwIHNlcToxOAorIyBQUkVEOiAxOSAo RkFMTFRIUlUpCisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAw IGRpc2NyaW1pbmF0b3IgMTYKKwlsZWFsCSglZWF4LCVlYngpLCAlZWN4CisJbGVhbAkoJWVjeCwl ZXNpKSwgJWVkaQorCW1vdmwJQS4xLjMzNjgoLCVlYXgsNCksICVlY3gKKwltb3ZsCSVlY3gsICgl ZWR4LCVlZGksNCkKKwlhZGRsCSQxLCAlZWF4CisjIFNVQ0M6IDE5IFsxMDAuMCVdIAorCWptcAku TDEyCisjIEJMT0NLIDIxIHNlcToxOQorIyBQUkVEOiAxOQorLkwxMToKKy5MQkU0OgorLkxCRTM6 CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMworCS5sb2MgMSAyMyAwIGlzX3N0bXQg MQorCW1vdmwJJDI2NSwgLTQwKCVlYnApCisJbW92bAkkMSwgLTMyKCVlYnApCisJbW92bAkkMTAs IC0yOCglZWJwKQorCW1vdmwJJC0xLCAtMzYoJWVicCkKKwltb3ZsCS03MiglZWJwKSwgJWVheAor CW1vdmwJLTU2KCVlYnApLCAlZWR4CisJbW92bAkkMTAsICVlY3gKKwlzdWJsCSVlZHgsICVlY3gK Kwltb3ZsCSVlY3gsICVlZHgKKwlzYWxsCSQyLCAlZWR4CisJYWRkbAklZWR4LCAlZWF4CisJbW92 bAklZWF4LCAtNDgoJWVicCkKKwltb3ZsCSQxLCAtNDQoJWVicCkKKy5MQkI2OgorCSMgZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5mOTA6MjQKKwkubG9jIDEgMjQgMAorCW1vdmwJJDI2NSwgLTQwKCVl YnApCisJbW92bAktMzYoJWVicCksICVlYXgKKwltb3ZsCSQxLCAtMzIoJWVicCkKKwltb3ZsCSQx MCwgLTI4KCVlYnApCisJbW92bAklZWF4LCAlZWR4CisJbmVnbAklZWR4CisJbW92bAklZWR4LCAt MzYoJWVicCkKKwltb3ZsCS00OCglZWJwKSwgJWVkeAorCW1vdmwJLTMyKCVlYnApLCAlZWN4CisJ bW92bAkkMTAsICVlYngKKwlzdWJsCSVlY3gsICVlYngKKwltb3ZsCSVlYngsICVlY3gKKwlpbXVs bAklZWF4LCAlZWN4CisJc2FsbAkkMiwgJWVjeAorCWFkZGwJJWVjeCwgJWVkeAorCW1vdmwJJWVk eCwgLTQ4KCVlYnApCisJbW92bAklZWF4LCAtNDQoJWVicCkKKy5MQkU2OgorCSMgZ2RiLmZvcnRy YW4vdmxhLXN0cmlkZS5mOTA6MjUKKwkubG9jIDEgMjUgMAorCW1vdmwJJDI2NSwgLTQwKCVlYnAp CisJbW92bAkkMSwgLTMyKCVlYnApCisJbW92bAkkNSwgLTI4KCVlYnApCisJbW92bAkkMiwgLTM2 KCVlYnApCisJbW92bAktNzIoJWVicCksICVlYXgKKwltb3ZsCS01NiglZWJwKSwgJWVkeAorCW1v dmwJJDEsICVlY3gKKwlzdWJsCSVlZHgsICVlY3gKKwltb3ZsCSVlY3gsICVlZHgKKwlzYWxsCSQy LCAlZWR4CisJYWRkbAklZWR4LCAlZWF4CisJbW92bAklZWF4LCAtNDgoJWVicCkKKwltb3ZsCSQt MiwgLTQ0KCVlYnApCisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyNgorCS5sb2MgMSAy NiAwCisJbW92bAkkMjY1LCAtNDAoJWVicCkKKwltb3ZsCSQxLCAtMzIoJWVicCkKKwltb3ZsCSQx LCAtMjgoJWVicCkKKwltb3ZsCSQtMiwgLTM2KCVlYnApCisJbW92bAktNzIoJWVicCksICVlYXgK Kwltb3ZsCS01NiglZWJwKSwgJWVkeAorCW1vdmwJJDUsICVlY3gKKwlzdWJsCSVlZHgsICVlY3gK Kwltb3ZsCSVlY3gsICVlZHgKKwlzYWxsCSQyLCAlZWR4CisJYWRkbAklZWR4LCAlZWF4CisJbW92 bAklZWF4LCAtNDgoJWVicCkKKwltb3ZsCSQyLCAtNDQoJWVicCkKKwkjIGdkYi5mb3J0cmFuL3Zs YS1zdHJpZGUuZjkwOjI4CisJLmxvYyAxIDI4IDAKKwltb3ZsCSQwLCAtNDgoJWVicCkKKy5MQkUy OgorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjkKKwkubG9jIDEgMjkgMAorCW5vcAor CWxlYWwJLTEyKCVlYnApLCAlZXNwCisJcG9wbAklZWJ4CisJLmNmaV9yZXN0b3JlIDMKKwlwb3Bs CSVlc2kKKwkuY2ZpX3Jlc3RvcmUgNgorCXBvcGwJJWVkaQorCS5jZmlfcmVzdG9yZSA3CisJcG9w bAklZWJwCisJLmNmaV9yZXN0b3JlIDUKKwkuY2ZpX2RlZl9jZmEgNCwgNAorIyBTVUNDOiBFWElU IFsxMDAuMCVdIAorCXJldAorCS5jZmlfZW5kcHJvYworLkxGRTA6CisJLnNpemUJTUFJTl9fLCAu LU1BSU5fXworCS5nbG9ibAltYWluCisJLnR5cGUJbWFpbiwgQGZ1bmN0aW9uCittYWluOgorLkxG QjE6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyOQorCS5sb2MgMSAyOSAwCisJLmNm aV9zdGFydHByb2MKKyMgQkxPQ0sgMiBzZXE6MAorIyBQUkVEOiBFTlRSWSAoRkFMTFRIUlUpCisJ bGVhbAk0KCVlc3ApLCAlZWN4CisJLmNmaV9kZWZfY2ZhIDEsIDAKKwlhbmRsCSQtMTYsICVlc3AK KwlwdXNobAktNCglZWN4KQorCXB1c2hsCSVlYnAKKwkuY2ZpX2VzY2FwZSAweDEwLDB4NSwweDIs MHg3NSwwCisJbW92bAklZXNwLCAlZWJwCisJcHVzaGwJJWVjeAorCS5jZmlfZXNjYXBlIDB4Ziww eDMsMHg3NSwweDdjLDB4NgorCXN1YmwJJDQsICVlc3AKKwltb3ZsCSVlY3gsICVlYXgKKwkjIGdk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjI5CisJLmxvYyAxIDI5IDAKKwlzdWJsCSQ4LCAlZXNw CisJcHVzaGwJNCglZWF4KQorCXB1c2hsCSglZWF4KQorCWNhbGwJX2dmb3J0cmFuX3NldF9hcmdz CisJYWRkbAkkMTYsICVlc3AKKwlzdWJsCSQ4LCAlZXNwCisJcHVzaGwJJG9wdGlvbnMuMy4zMzgy CisJcHVzaGwJJDkKKwljYWxsCV9nZm9ydHJhbl9zZXRfb3B0aW9ucworCWFkZGwJJDE2LCAlZXNw CisJY2FsbAlNQUlOX18KKwltb3ZsCSQwLCAlZWF4CisJbW92bAktNCglZWJwKSwgJWVjeAorCS5j ZmlfZGVmX2NmYSAxLCAwCisJbGVhdmUKKwkuY2ZpX3Jlc3RvcmUgNQorCWxlYWwJLTQoJWVjeCks ICVlc3AKKwkuY2ZpX2RlZl9jZmEgNCwgNAorIyBTVUNDOiBFWElUIFsxMDAuMCVdIAorCXJldAor CS5jZmlfZW5kcHJvYworLkxGRTE6CisJLnNpemUJbWFpbiwgLi1tYWluCisJLnNlY3Rpb24JLnJv ZGF0YQorCS5hbGlnbiAzMgorCS50eXBlCUEuMS4zMzY4LCBAb2JqZWN0CisJLnNpemUJQS4xLjMz NjgsIDQwCitBLjEuMzM2ODoKKwkubG9uZwkxCisJLmxvbmcJMgorCS5sb25nCTMKKwkubG9uZwk0 CisJLmxvbmcJNQorCS5sb25nCTYKKwkubG9uZwk3CisJLmxvbmcJOAorCS5sb25nCTkKKwkubG9u ZwkxMAorCS5hbGlnbiAzMgorCS50eXBlCW9wdGlvbnMuMy4zMzgyLCBAb2JqZWN0CisJLnNpemUJ b3B0aW9ucy4zLjMzODIsIDM2CitvcHRpb25zLjMuMzM4MjoKKwkubG9uZwk2OAorCS5sb25nCTEw MjMKKwkubG9uZwkwCisJLmxvbmcJMAorCS5sb25nCTEKKwkubG9uZwkxCisJLmxvbmcJMAorCS5s b25nCTAKKwkubG9uZwkzMQorCS50ZXh0CisuTGV0ZXh0MDoKKwkuc2VjdGlvbgkuZGVidWdfaW5m bywiIixAcHJvZ2JpdHMKKy5MZGVidWdfaW5mbzA6CisJLmxvbmcJMHgxMjgJIyBMZW5ndGggb2Yg Q29tcGlsYXRpb24gVW5pdCBJbmZvCisJLnZhbHVlCTB4NAkjIERXQVJGIHZlcnNpb24gbnVtYmVy CisJLmxvbmcJLkxkZWJ1Z19hYmJyZXYwCSMgT2Zmc2V0IEludG8gQWJicmV2LiBTZWN0aW9uCisJ LmJ5dGUJMHg0CSMgUG9pbnRlciBTaXplIChpbiBieXRlcykKKwkudWxlYjEyOCAweDEJIyAoRElF ICgweGIpIERXX1RBR19jb21waWxlX3VuaXQpCisJLmxvbmcJLkxBU0Y1CSMgRFdfQVRfcHJvZHVj ZXI6ICJHTlUgRm9ydHJhbjIwMDggNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgLW0z MiAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9aTY4NiAtZyAtZmludHJpbnNpYy1tb2R1bGVzLXBhdGgg L3Vzci9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNi4xLjEvMzIvZmluY2x1ZGUiCisJLmJ5 dGUJMHhlCSMgRFdfQVRfbGFuZ3VhZ2UKKwkuYnl0ZQkweDIJIyBEV19BVF9pZGVudGlmaWVyX2Nh c2UKKwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5m OTAiCisJLmxvbmcJLkxBU0Y3CSMgRFdfQVRfY29tcF9kaXI6ICIvaG9tZS9qa3JhdG9jaC9yZWRo YXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUiCisJLmxvbmcJLkx0ZXh0MAkjIERXX0FUX2xvd19w YworCS5sb25nCS5MZXRleHQwLS5MdGV4dDAJIyBEV19BVF9oaWdoX3BjCisJLmxvbmcJLkxkZWJ1 Z19saW5lMAkjIERXX0FUX3N0bXRfbGlzdAorCS51bGViMTI4IDB4MgkjIChESUUgKDB4MjYpIERX X1RBR19iYXNlX3R5cGUpCisJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisJLmJ5dGUJMHg1 CSMgRFdfQVRfZW5jb2RpbmcKKwkubG9uZwkuTEFTRjIJIyBEV19BVF9uYW1lOiAiaW50ZWdlcihr aW5kPTQpIgorCS51bGViMTI4IDB4MwkjIChESUUgKDB4MmQpIERXX1RBR19jb25zdF90eXBlKQor CS5sb25nCTB4MjYJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHg0CSMgKERJRSAoMHgzMikgRFdf VEFHX3N1YnByb2dyYW0pCisJCQkjIERXX0FUX2V4dGVybmFsCisJLmxvbmcJLkxBU0Y4CSMgRFdf QVRfbmFtZTogIm1haW4iCisJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIuZm9ydHJh bi92bGEtc3RyaWRlLmY5MCkKKwkuYnl0ZQkweDFkCSMgRFdfQVRfZGVjbF9saW5lCisJLmxvbmcJ MHgyNgkjIERXX0FUX3R5cGUKKwkubG9uZwkuTEZCMQkjIERXX0FUX2xvd19wYworCS5sb25nCS5M RkUxLS5MRkIxCSMgRFdfQVRfaGlnaF9wYworCS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jh c2UKKwkuYnl0ZQkweDljCSMgRFdfT1BfY2FsbF9mcmFtZV9jZmEKKwkJCSMgRFdfQVRfR05VX2Fs bF90YWlsX2NhbGxfc2l0ZXMKKwkubG9uZwkweDY5CSMgRFdfQVRfc2libGluZworCS51bGViMTI4 IDB4NQkjIChESUUgKDB4NGIpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorCS5sb25nCS5MQVNG MAkjIERXX0FUX25hbWU6ICJhcmdjIgorCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2Ri LmZvcnRyYW4vdmxhLXN0cmlkZS5mOTApCisJLmJ5dGUJMHgxZAkjIERXX0FUX2RlY2xfbGluZQor CS5sb25nCTB4MmQJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHgyCSMgRFdfQVRfbG9jYXRpb24K KwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKwkuc2xlYjEyOCAwCisJLnVsZWIxMjggMHg1CSMg KERJRSAoMHg1OSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmxvbmcJLkxBU0YxCSMgRFdf QVRfbmFtZTogImFyZ3YiCisJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIuZm9ydHJh bi92bGEtc3RyaWRlLmY5MCkKKwkuYnl0ZQkweDFkCSMgRFdfQVRfZGVjbF9saW5lCisJLmxvbmcJ MHg2OQkjIERXX0FUX3R5cGUKKwkudWxlYjEyOCAweDMJIyBEV19BVF9sb2NhdGlvbgorCS5ieXRl CTB4OTEJIyBEV19PUF9mYnJlZworCS5zbGViMTI4IDQKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJl ZgorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MzIKKwkudWxlYjEyOCAweDYJ IyAoRElFICgweDY5KSBEV19UQUdfcG9pbnRlcl90eXBlKQorCS5ieXRlCTB4NAkjIERXX0FUX2J5 dGVfc2l6ZQorCS5sb25nCTB4NmYJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHgyCSMgKERJRSAo MHg2ZikgRFdfVEFHX2Jhc2VfdHlwZSkKKwkuYnl0ZQkweDEJIyBEV19BVF9ieXRlX3NpemUKKwku Ynl0ZQkweDgJIyBEV19BVF9lbmNvZGluZworCS5sb25nCS5MQVNGMwkjIERXX0FUX25hbWU6ICJj aGFyYWN0ZXIoa2luZD0xKSIKKwkudWxlYjEyOCAweDcJIyAoRElFICgweDc2KSBEV19UQUdfc3Vi cHJvZ3JhbSkKKwkubG9uZwkuTEFTRjkJIyBEV19BVF9uYW1lOiAidmxhX3N0cmlkZSIKKwkuYnl0 ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwKQorCS5i eXRlCTB4MTAJIyBEV19BVF9kZWNsX2xpbmUKKwkJCSMgRFdfQVRfbWFpbl9zdWJwcm9ncmFtCisJ LmJ5dGUJMHgyCSMgRFdfQVRfY2FsbGluZ19jb252ZW50aW9uCisJLmxvbmcJLkxGQjAJIyBEV19B VF9sb3dfcGMKKwkubG9uZwkuTEZFMC0uTEZCMAkjIERXX0FUX2hpZ2hfcGMKKwkudWxlYjEyOCAw eDEJIyBEV19BVF9mcmFtZV9iYXNlCisJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2Zh CisJCQkjIERXX0FUX0dOVV9hbGxfdGFpbF9jYWxsX3NpdGVzCisJLmxvbmcJMHhlNwkjIERXX0FU X3NpYmxpbmcKKwkudWxlYjEyOCAweDgJIyAoRElFICgweDhjKSBEV19UQUdfdmFyaWFibGUpCisJ LmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAo Z2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTApCisJLmJ5dGUJMHgxNQkjIERXX0FUX2RlY2xfbGlu ZQorCS5sb25nCTB4MjYJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHg5CSMgKERJRSAoMHg5NSkg RFdfVEFHX3ZhcmlhYmxlKQorCS5sb25nCS5MQVNGNAkjIERXX0FUX25hbWU6ICJwdmxhIgorCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTApCisJ LmJ5dGUJMHgxMgkjIERXX0FUX2RlY2xfbGluZQorCS5sb25nCTB4ZTcJIyBEV19BVF90eXBlCisJ LnVsZWIxMjggMHgyCSMgRFdfQVRfbG9jYXRpb24KKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcK Kwkuc2xlYjEyOCAtNTYKKwkudWxlYjEyOCAweGEJIyAoRElFICgweGEzKSBEV19UQUdfdmFyaWFi bGUpCisJLmFzY2lpICJ2bGFcMCIJIyBEV19BVF9uYW1lCisJLmJ5dGUJMHgxCSMgRFdfQVRfZGVj bF9maWxlIChnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCkKKwkuYnl0ZQkweDExCSMgRFdfQVRf ZGVjbF9saW5lCisJLmxvbmcJMHgxMGIJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHgzCSMgRFdf QVRfbG9jYXRpb24KKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKwkuc2xlYjEyOCAtODAKKwku dWxlYjEyOCAweGIJIyAoRElFICgweGIyKSBEV19UQUdfbGV4aWNhbF9ibG9jaykKKwkubG9uZwku TEJCMgkjIERXX0FUX2xvd19wYworCS5sb25nCS5MQkUyLS5MQkIyCSMgRFdfQVRfaGlnaF9wYwor CS51bGViMTI4IDB4YwkjIChESUUgKDB4YmIpIERXX1RBR19sZXhpY2FsX2Jsb2NrKQorCS5sb25n CS5MQkIzCSMgRFdfQVRfbG93X3BjCisJLmxvbmcJLkxCRTMtLkxCQjMJIyBEV19BVF9oaWdoX3Bj CisJLmxvbmcJMHhkYwkjIERXX0FUX3NpYmxpbmcKKwkudWxlYjEyOCAweGIJIyAoRElFICgweGM4 KSBEV19UQUdfbGV4aWNhbF9ibG9jaykKKwkubG9uZwkuTEJCNAkjIERXX0FUX2xvd19wYworCS5s b25nCS5MQkU0LS5MQkI0CSMgRFdfQVRfaGlnaF9wYworCS51bGViMTI4IDB4ZAkjIChESUUgKDB4 ZDEpIERXX1RBR19sZXhpY2FsX2Jsb2NrKQorCS5sb25nCS5MQkI1CSMgRFdfQVRfbG93X3BjCisJ LmxvbmcJLkxCRTUtLkxCQjUJIyBEV19BVF9oaWdoX3BjCisJLmJ5dGUJMAkjIGVuZCBvZiBjaGls ZHJlbiBvZiBESUUgMHhjOAorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YmIK KwkudWxlYjEyOCAweGQJIyAoRElFICgweGRjKSBEV19UQUdfbGV4aWNhbF9ibG9jaykKKwkubG9u ZwkuTEJCNgkjIERXX0FUX2xvd19wYworCS5sb25nCS5MQkU2LS5MQkI2CSMgRFdfQVRfaGlnaF9w YworCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YjIKKwkuYnl0ZQkwCSMgZW5k IG9mIGNoaWxkcmVuIG9mIERJRSAweDc2CisJLnVsZWIxMjggMHhlCSMgKERJRSAoMHhlNykgRFdf VEFHX2FycmF5X3R5cGUpCisJLnVsZWIxMjggMHgyCSMgRFdfQVRfZGF0YV9sb2NhdGlvbgorCS5i eXRlCTB4OTcJIyBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzCisJLmJ5dGUJMHg2CSMgRFdfT1Bf ZGVyZWYKKwkudWxlYjEyOCAweDQJIyBEV19BVF9hc3NvY2lhdGVkCisJLmJ5dGUJMHg5NwkjIERX X09QX3B1c2hfb2JqZWN0X2FkZHJlc3MKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS5ieXRl CTB4MzAJIyBEV19PUF9saXQwCisJLmJ5dGUJMHgyZQkjIERXX09QX25lCisJLmxvbmcJMHgyNgkj IERXX0FUX3R5cGUKKwkubG9uZwkweDEwYgkjIERXX0FUX3NpYmxpbmcKKwkudWxlYjEyOCAweGYJ IyAoRElFICgweGY4KSBEV19UQUdfc3VicmFuZ2VfdHlwZSkKKwkudWxlYjEyOCAweDQJIyBEV19B VF9sb3dlcl9ib3VuZAorCS5ieXRlCTB4OTcJIyBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzCisJ LmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0CisJLnVsZWIxMjggMHgxMAorCS5ieXRlCTB4 NgkjIERXX09QX2RlcmVmCisJLnVsZWIxMjggMHg0CSMgRFdfQVRfdXBwZXJfYm91bmQKKwkuYnl0 ZQkweDk3CSMgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcworCS5ieXRlCTB4MjMJIyBEV19PUF9w bHVzX3Vjb25zdAorCS51bGViMTI4IDB4MTQKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS51 bGViMTI4IDB4NgkjIERXX0FUX2J5dGVfc3RyaWRlCisJLmJ5dGUJMHg5NwkjIERXX09QX3B1c2hf b2JqZWN0X2FkZHJlc3MKKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKwkudWxlYjEy OCAweGMKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS5ieXRlCTB4MzQJIyBEV19PUF9saXQ0 CisJLmJ5dGUJMHgxZQkjIERXX09QX211bAorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2Yg RElFIDB4ZTcKKwkudWxlYjEyOCAweDEwCSMgKERJRSAoMHgxMGIpIERXX1RBR19hcnJheV90eXBl KQorCS51bGViMTI4IDB4MgkjIERXX0FUX2RhdGFfbG9jYXRpb24KKwkuYnl0ZQkweDk3CSMgRFdf T1BfcHVzaF9vYmplY3RfYWRkcmVzcworCS5ieXRlCTB4NgkjIERXX09QX2RlcmVmCisJLnVsZWIx MjggMHg0CSMgRFdfQVRfYWxsb2NhdGVkCisJLmJ5dGUJMHg5NwkjIERXX09QX3B1c2hfb2JqZWN0 X2FkZHJlc3MKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS5ieXRlCTB4MzAJIyBEV19PUF9s aXQwCisJLmJ5dGUJMHgyZQkjIERXX09QX25lCisJLmxvbmcJMHgyNgkjIERXX0FUX3R5cGUKKwku dWxlYjEyOCAweGYJIyAoRElFICgweDExOCkgRFdfVEFHX3N1YnJhbmdlX3R5cGUpCisJLnVsZWIx MjggMHg0CSMgRFdfQVRfbG93ZXJfYm91bmQKKwkuYnl0ZQkweDk3CSMgRFdfT1BfcHVzaF9vYmpl Y3RfYWRkcmVzcworCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorCS51bGViMTI4IDB4 MTAKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS51bGViMTI4IDB4NAkjIERXX0FUX3VwcGVy X2JvdW5kCisJLmJ5dGUJMHg5NwkjIERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3MKKwkuYnl0ZQkw eDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKwkudWxlYjEyOCAweDE0CisJLmJ5dGUJMHg2CSMgRFdf T1BfZGVyZWYKKwkudWxlYjEyOCAweDYJIyBEV19BVF9ieXRlX3N0cmlkZQorCS5ieXRlCTB4OTcJ IyBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzCisJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNv bnN0CisJLnVsZWIxMjggMHhjCisJLmJ5dGUJMHg2CSMgRFdfT1BfZGVyZWYKKwkuYnl0ZQkweDM0 CSMgRFdfT1BfbGl0NAorCS5ieXRlCTB4MWUJIyBEV19PUF9tdWwKKwkuYnl0ZQkwCSMgZW5kIG9m IGNoaWxkcmVuIG9mIERJRSAweDEwYgorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElF IDB4YgorCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCisuTGRlYnVnX2FiYnJl djA6CisJLnVsZWIxMjggMHgxCSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4MTEJIyAoVEFH OiBEV19UQUdfY29tcGlsZV91bml0KQorCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworCS51 bGViMTI4IDB4MjUJIyAoRFdfQVRfcHJvZHVjZXIpCisJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1f c3RycCkKKwkudWxlYjEyOCAweDEzCSMgKERXX0FUX2xhbmd1YWdlKQorCS51bGViMTI4IDB4Ygkj IChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4NDIJIyAoRFdfQVRfaWRlbnRpZmllcl9jYXNl KQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4MwkjIChEV19B VF9uYW1lKQorCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisJLnVsZWIxMjggMHgxYgkj IChEV19BVF9jb21wX2RpcikKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorCS51bGVi MTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIp CisJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorCS51bGViMTI4IDB4NgkjIChEV19G T1JNX2RhdGE0KQorCS51bGViMTI4IDB4MTAJIyAoRFdfQVRfc3RtdF9saXN0KQorCS51bGViMTI4 IDB4MTcJIyAoRFdfRk9STV9zZWNfb2Zmc2V0KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIx MjggMHgyCSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4MjQJIyAoVEFHOiBEV19UQUdfYmFz ZV90eXBlKQorCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworCS51bGViMTI4IDB4YgkjIChEV19B VF9ieXRlX3NpemUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVsZWIxMjgg MHgzZQkjIChEV19BVF9lbmNvZGluZykKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkK KwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9z dHJwKQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHgzCSMgKGFiYnJldiBjb2RlKQor CS51bGViMTI4IDB4MjYJIyAoVEFHOiBEV19UQUdfY29uc3RfdHlwZSkKKwkuYnl0ZQkwCSMgRFdf Y2hpbGRyZW5fbm8KKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIxMjggMHgx MwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDQJIyAo YWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQor CS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworCS51bGViMTI4IDB4M2YJIyAoRFdfQVRfZXh0 ZXJuYWwpCisJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwkudWxlYjEy OCAweDMJIyAoRFdfQVRfbmFtZSkKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorCS51 bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorCS51bGViMTI4IDB4YgkjIChEV19GT1JN X2RhdGExKQorCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKwkudWxl YjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19w YykKKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorCS51bGViMTI4IDB4MTIJIyAoRFdf QVRfaGlnaF9wYykKKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKwkudWxlYjEyOCAw eDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJs b2MpCisJLnVsZWIxMjggMHgyMTE2CSMgKERXX0FUX0dOVV9hbGxfdGFpbF9jYWxsX3NpdGVzKQor CS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisJLnVsZWIxMjggMHgxCSMg KERXX0FUX3NpYmxpbmcpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJ MAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDUJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHg1 CSMgKFRBRzogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmJ5dGUJMAkjIERXX2NoaWxkcmVu X25vCisJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHhlCSMgKERXX0ZP Uk1fc3RycCkKKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKwkudWxlYjEyOCAw eGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkK KwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDQ5CSMgKERXX0FU X3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVsZWIxMjggMHgyCSMg KERXX0FUX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorCS5i eXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4 IDB4ZgkjIChUQUc6IERXX1RBR19wb2ludGVyX3R5cGUpCisJLmJ5dGUJMAkjIERXX2NoaWxkcmVu X25vCisJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIxMjgg MHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDcJ IyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFt KQorCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworCS51bGViMTI4IDB4MwkjIChEV19BVF9u YW1lKQorCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisJLnVsZWIxMjggMHgzYQkjIChE V19BVF9kZWNsX2ZpbGUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVsZWIx MjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCisJLnVsZWIxMjggMHg2YQkjIChEV19BVF9tYWluX3N1YnByb2dyYW0pCisJLnVsZWIxMjgg MHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwkudWxlYjEyOCAweDM2CSMgKERXX0FUX2Nh bGxpbmdfY29udmVudGlvbikKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxl YjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRy KQorCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykKKwkudWxlYjEyOCAweDYJIyAoRFdf Rk9STV9kYXRhNCkKKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisJLnVsZWIx MjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHgyMTE2CSMgKERXX0FUX0dO VV9hbGxfdGFpbF9jYWxsX3NpdGVzKQorCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3By ZXNlbnQpCisJLnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisJLnVsZWIxMjggMHgxMwkj IChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDgJIyAoYWJi cmV2IGNvZGUpCisJLnVsZWIxMjggMHgzNAkjIChUQUc6IERXX1RBR192YXJpYWJsZSkKKwkuYnl0 ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKwkudWxl YjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNs X2ZpbGUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVsZWIxMjggMHgzYgkj IChEV19BVF9kZWNsX2xpbmUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVs ZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQorCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0 KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg5CSMgKGFiYnJldiBjb2RlKQorCS51 bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdfdmFyaWFibGUpCisJLmJ5dGUJMAkjIERXX2NoaWxk cmVuX25vCisJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGlu ZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDQ5CSMgKERX X0FUX3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVsZWIxMjggMHgy CSMgKERXX0FUX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQor CS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHhhCSMgKGFiYnJldiBjb2RlKQorCS51bGVi MTI4IDB4MzQJIyAoVEFHOiBEV19UQUdfdmFyaWFibGUpCisJLmJ5dGUJMAkjIERXX2NoaWxkcmVu X25vCisJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjggMHg4CSMgKERXX0ZP Uk1fc3RyaW5nKQorCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5l KQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4NDkJIyAoRFdf QVRfdHlwZSkKKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKwkudWxlYjEyOCAweDIJ IyAoRFdfQVRfbG9jYXRpb24pCisJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisJ LmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGIJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIx MjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxvY2spCisJLmJ5dGUJMHgxCSMgRFdfY2hp bGRyZW5feWVzCisJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCisJLnVsZWIxMjggMHgx CSMgKERXX0ZPUk1fYWRkcikKKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisJLnVs ZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEy OCAweGMJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGlj YWxfYmxvY2spCisJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisJLnVsZWIxMjggMHgxMQkj IChEV19BVF9sb3dfcGMpCisJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKwkudWxlYjEy OCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQp CisJLnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisJLnVsZWIxMjggMHgxMwkjIChEV19G T1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGQJIyAoYWJicmV2IGNv ZGUpCisJLnVsZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxvY2spCisJLmJ5dGUJ MAkjIERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCisJLnVs ZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hf cGMpCisJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCisJLmJ5dGUJMAorCS5ieXRlCTAK KwkudWxlYjEyOCAweGUJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgxCSMgKFRBRzogRFdf VEFHX2FycmF5X3R5cGUpCisJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisJLnVsZWIxMjgg MHg1MAkjIChEV19BVF9kYXRhX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9l eHBybG9jKQorCS51bGViMTI4IDB4NGYJIyAoRFdfQVRfYXNzb2NpYXRlZCkKKwkudWxlYjEyOCAw eDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisJ LnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVsZWIxMjggMHgxCSMgKERXX0FUX3Np YmxpbmcpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRl CTAKKwkudWxlYjEyOCAweGYJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgyMQkjIChUQUc6 IERXX1RBR19zdWJyYW5nZV90eXBlKQorCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworCS51bGVi MTI4IDB4MjIJIyAoRFdfQVRfbG93ZXJfYm91bmQpCisJLnVsZWIxMjggMHgxOAkjIChEV19GT1JN X2V4cHJsb2MpCisJLnVsZWIxMjggMHgyZgkjIChEV19BVF91cHBlcl9ib3VuZCkKKwkudWxlYjEy OCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKKwkudWxlYjEyOCAweDUxCSMgKERXX0FUX2J5dGVf c3RyaWRlKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorCS5ieXRlCTAKKwku Ynl0ZQkwCisJLnVsZWIxMjggMHgxMAkjIChhYmJyZXYgY29kZSkKKwkudWxlYjEyOCAweDEJIyAo VEFHOiBEV19UQUdfYXJyYXlfdHlwZSkKKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKwku dWxlYjEyOCAweDUwCSMgKERXX0FUX2RhdGFfbG9jYXRpb24pCisJLnVsZWIxMjggMHgxOAkjIChE V19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHg0ZQkjIChEV19BVF9hbGxvY2F0ZWQpCisJLnVs ZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHg0OQkjIChEV19BVF90 eXBlKQorCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorCS5ieXRlCTAKKwkuYnl0ZQkw CisJLmJ5dGUJMAorCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBwcm9nYml0cworCS5sb25n CTB4MWMJIyBMZW5ndGggb2YgQWRkcmVzcyBSYW5nZXMgSW5mbworCS52YWx1ZQkweDIJIyBEV0FS RiBWZXJzaW9uCisJLmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNldCBvZiBDb21waWxhdGlvbiBV bml0IEluZm8KKwkuYnl0ZQkweDQJIyBTaXplIG9mIEFkZHJlc3MKKwkuYnl0ZQkwCSMgU2l6ZSBv ZiBTZWdtZW50IERlc2NyaXB0b3IKKwkudmFsdWUJMAkjIFBhZCB0byA4IGJ5dGUgYm91bmRhcnkK KwkudmFsdWUJMAorCS5sb25nCS5MdGV4dDAJIyBBZGRyZXNzCisJLmxvbmcJLkxldGV4dDAtLkx0 ZXh0MAkjIExlbmd0aAorCS5sb25nCTAKKwkubG9uZwkwCisJLnNlY3Rpb24JLmRlYnVnX2xpbmUs IiIsQHByb2diaXRzCisuTGRlYnVnX2xpbmUwOgorCS5zZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixA cHJvZ2JpdHMsMQorLkxBU0Y3OgorCS5zdHJpbmcJIi9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGIt Y2xlYW4vZ2RiL3Rlc3RzdWl0ZSIKKy5MQVNGMzoKKwkuc3RyaW5nCSJjaGFyYWN0ZXIoa2luZD0x KSIKKy5MQVNGMDoKKwkuc3RyaW5nCSJhcmdjIgorLkxBU0Y5OgorCS5zdHJpbmcJInZsYV9zdHJp ZGUiCisuTEFTRjI6CisJLnN0cmluZwkiaW50ZWdlcihraW5kPTQpIgorLkxBU0Y1OgorCS5zdHJp bmcJIkdOVSBGb3J0cmFuMjAwOCA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAtbTMy IC1tdHVuZT1nZW5lcmljIC1tYXJjaD1pNjg2IC1nIC1maW50cmluc2ljLW1vZHVsZXMtcGF0aCAv dXNyL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC82LjEuMS8zMi9maW5jbHVkZSIKKy5MQVNG ODoKKwkuc3RyaW5nCSJtYWluIgorLkxBU0Y0OgorCS5zdHJpbmcJInB2bGEiCisuTEFTRjY6CisJ LnN0cmluZwkiZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAiCisuTEFTRjE6CisJLnN0cmluZwki YXJndiIKKwkuaWRlbnQJIkdDQzogKEdOVSkgNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEt MykiCisJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cworCistLVZiSmtuOVl4 QnZudUNINUotLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1icmFuY2gucGF0Y2ggYi9n ZGItdmxhLWludGVsLWJyYW5jaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5lZTE2ZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC1icmFuY2gucGF0 Y2gKQEAgLTAsMCArMSwxODMyIEBACitnaXQgZGlmZiAtLXN0YXQgLXAgZ2RiL21hc3Rlci4uLmdk Yi91c2Vycy9iaGVja2VsL2ZvcnRyYW4tc3RyaWRlcworMmMzOTJkNDFhM2YyZTM4ZGVlYjlkYjVi N2E5M2NhNDU2ODJiYmUzYgorCisgZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMyArLQorIGdkYi9ldmFsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAzOTEgKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyBnZGIvZXhwcHJpbnQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstCisgZ2RiL2V4cHJlc3Npb24uaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQorIGdkYi9mLWV4cC55ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDIgKystCisgZ2RiL2YtdmFscHJpbnQuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQorIGdkYi9nZGJ0eXBlcy5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKystCisgZ2RiL2dkYnR5cGVzLmggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxOCArKworIGdkYi9wYXJzZS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KKyBnZGIvcnVzdC1leHAueSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDEyICstCisgZ2RiL3J1c3QtbGFuZy5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxNyArLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGlj LWFycmF5cy5leHAgfCA0MjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAgfCAgNTUgKysrKworIGdkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAgICAgfCAgNDQgKysrCisgZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCAgICB8ICAyOSArKworIGdkYi92YWxhcml0 aC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KKyBnZGIvdmFsb3BzLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTk3ICsrKysrKysrKysrLS0KKyBnZGIv dmFsdWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKKyAxOCBmaWxl cyBjaGFuZ2VkLCAxMTk3IGluc2VydGlvbnMoKyksIDE3MyBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCitpbmRleCA2NjU4YTM4 Li5hMWFjNjU5IDEwMDY0NAorLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysrIGIvZ2RiL2R3YXJm MnJlYWQuYworQEAgLTE0OTUyLDcgKzE0OTUyLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBzdHJ1Y3QgdHlwZSAq YmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CisgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsK KyAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CistICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvdywg aGlnaDsKKysgIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93LCBoaWdoLCBzdHJpZGU7CisgICBpbnQg bG93X2RlZmF1bHRfaXNfdmFsaWQ7CisgICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7Cisg ICBjb25zdCBjaGFyICpuYW1lOworQEAgLTE0OTcyLDcgKzE0OTcyLDkgQEAgcmVhZF9zdWJyYW5n ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisg ICBsb3cua2luZCA9IFBST1BfQ09OU1Q7CisgICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOworKyAg c3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOworICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCA9IDA7Cisr ICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSAwOworIAorICAgLyogU2V0IExPV19ERUZBVUxUX0lT X1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIERXQVJGIHZlcnNpb24gYWxsb3cKKyAgICAg IG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5kLiAgKi8KK0BAIC0xNTAwNiw2ICsxNTAwOCwxMyBA QCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKyAgICAgICBicmVhazsKKyAgICAgfQorIAorKyAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7CisrICBpZiAoYXR0cikKKysgICAgaWYgKCFh dHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnN0cmlkZSkpCisrICAgICAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIk1pc3NpbmcgRFdfQVRfYnl0ZV9zdHJp ZGUgIgorKyAgICAgICAgICAgICAgICAgICItIERJRSBhdCAweCV4IFtpbiBtb2R1bGUgJXNdIiks CisrICAgICAgICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2ZmLCBvYmpmaWxlX25hbWUgKGN1LT5v YmpmaWxlKSk7CisrCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG93ZXJfYm91 bmQsIGN1KTsKKyAgIGlmIChhdHRyKQorICAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJmxvdyk7CitAQCAtMTUwODIsNyArMTUwOTEsNyBAQCByZWFkX3N1YnJhbmdlX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgICAm JiAhVFlQRV9VTlNJR05FRCAoYmFzZV90eXBlKSAmJiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5l Z2F0aXZlX21hc2spKQorICAgICBoaWdoLmRhdGEuY29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7 CisgCistICByYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKE5VTEwsIG9yaWdfYmFzZV90 eXBlLCAmbG93LCAmaGlnaCk7CisrICByYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKE5V TEwsIG9yaWdfYmFzZV90eXBlLCAmbG93LCAmaGlnaCwgJnN0cmlkZSk7CisgCisgICBpZiAoaGln aF9ib3VuZF9pc19jb3VudCkKKyAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+Zmxh Z191cHBlcl9ib3VuZF9pc19jb3VudCA9IDE7CitkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dk Yi9ldmFsLmMKK2luZGV4IDAwYTEwN2MuLjkxZDhhMDMgMTAwNjQ0CistLS0gYS9nZGIvZXZhbC5j CisrKysgYi9nZGIvZXZhbC5jCitAQCAtMzk5LDI5ICszOTksMzI1IEBAIGluaXRfYXJyYXlfZWxl bWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAorICAgcmV0 dXJuIGluZGV4OworIH0KKyAKKysvKiBFdmFsdWF0ZXMgYW55IG9wZXJhdGlvbiBvbiBGb3J0cmFu IGFycmF5cyBvciBzdHJpbmdzIHdpdGggYXQgbGVhc3QKKysgICBvbmUgdXNlciBwcm92aWRlZCBw YXJhbWV0ZXIuICBFeHBlY3RzIHRoZSBpbnB1dCBBUlJBWSB0byBiZSBlaXRoZXIKKysgICBhbiBh cnJheSwgb3IgYSBzdHJpbmcuICBFdmFsdWF0ZXMgRVhQIGJ5IGluY3JlbWVudGluZyBQT1MsIGFu ZAorKyAgIHdyaXRlcyB0aGUgY29udGVudCBmcm9tIHRoZSBlbHQgc3RhY2sgaW50byBhIGxvY2Fs IHN0cnVjdC4gIE5BUkdTCisrICAgc3BlY2lmaWVzIG51bWJlciBvZiBsaXRlcmFsIG9yIHJhbmdl IGFyZ3VtZW50cyB0aGUgdXNlciBwcm92aWRlZC4KKysgICBOQVJHUyBtdXN0IGJlIHRoZSBzYW1l IG51bWJlciBhcyBBUlJBWSBoYXMgZGltZW5zaW9ucy4gICovCisrCisgc3RhdGljIHN0cnVjdCB2 YWx1ZSAqCistdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorLQkJICAg IHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUpCisr dmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLAorKwkJICAgIGludCAqcG9zLCBpbnQgbmFyZ3MsIGVudW0gbm9zaWRlIG5vc2lkZSkK KyB7CistICBpbnQgcGMgPSAoKnBvcykgKyAxOworKyAgaW50IGksIGRpbV9jb3VudCA9IDA7Cisg ICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKKy0gIHN0cnVjdCB0eXBlICpyYW5nZSA9 IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7Cist ICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9IChlbnVtIHJhbmdlX3R5cGUpIGxv bmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CistIAorLSAgKnBvcyArPSAz OworLQorLSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlw ZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGxvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5E IChyYW5nZSk7CistICBlbHNlCistICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1 YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CisrICBzdHJ1Y3QgdmFs dWUgKm5ld19hcnJheSA9IGFycmF5OworKyAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKKysgIHN0cnVjdCB0eXBlICplbHRf dHlwZTsKKysKKysgIHR5cGVkZWYgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQorKyAgeworKyAgICBl bnVtIHJhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7CisrICAgIExPTkdFU1QgbG93LCBoaWdoLCBz dHJpZGU7CisrICB9IHN1YnNjcmlwdF9yYW5nZTsKKysKKysgIHR5cGVkZWYgZW51bSBzdWJzY3Jp cHRfa2luZAorKyAgeworKyAgICBTVUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUuZy4gIihsb3dib3Vu ZDpoaWdoYm91bmQpIiAgKi8KKysgICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRl cmFsKSIgICovCisrICB9IGtpbmQ7CisrCisrICAvKiBMb2NhbCBzdHJ1Y3QgdG8gaG9sZCB1c2Vy IGRhdGEgZm9yIEZvcnRyYW4gc3ViYXJyYXkgZGltZW5zaW9ucy4gICovCisrICBzdHJ1Y3Qgc3Vi c2NyaXB0X3N0b3JlCisrICB7CisrICAgIC8qIEZvciBldmVyeSBkaW1lbnNpb24sIHdlIGFyZSBl aXRoZXIgd29ya2luZyBvbiBhIHJhbmdlIG9yIGFuIGluZGV4CisrICAgICAgIGV4cHJlc3Npb24s IHNvIHdlIHN0b3JlIHRoaXMgaW5mbyBzZXBhcmF0ZWx5IGZvciBsYXRlci4gICovCisrICAgIGVu dW0gc3Vic2NyaXB0X2tpbmQga2luZDsKKysKKysgICAgLyogV2UgYWxzbyBzdG9yZSBlaXRoZXIg dGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZCBpbmZvLCBvciB0aGUgaW5kZXgKKysgICAgICAgbnVt YmVyLiAgQmVmb3JlIGV2YWx1YXRpb24gb2YgdGhlIGlucHV0IHZhbHVlcywgd2UgZG8gbm90IGtu b3cgaWYgd2UgYXJlCisrICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24gYSByYW5nZSBvZiByYW5n ZXMsIG9yIGFuIGluZGV4IGluIGEgcmFuZ2UuICBTbyBhcyBhCisrICAgICAgIGZpcnN0IHN0ZXAg d2Ugc3RvcmUgYWxsIGlucHV0IGluIGEgdW5pb24uICBUaGUgYXJyYXkgY2FsY3VsYXRpb24gaXRz ZWxmCisrICAgICAgIGRlYWxzIHdpdGggdGhpcyBsYXRlciBvbi4gICovCisrICAgIHVuaW9uIGVs ZW1lbnRfcmFuZ2UKKysgICAgeworKyAgICAgIHN1YnNjcmlwdF9yYW5nZSByYW5nZTsKKysgICAg ICBMT05HRVNUIG51bWJlcjsKKysgICAgfSBVOworKyAgfSAqc3Vic2NyaXB0X2FycmF5OworKwor KyAgLyogQ2hlY2sgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhlIHVz ZXIgbWF0Y2hlcworKyAgICAgdGhlIG51bWJlciBvZiBkaW1lbnNpb24gb2YgdGhlIGFycmF5LiAg QSBzdHJpbmcgaGFzIG9ubHkgb25lCisrICAgICBkaW1lbnNpb24uICAqLworKyAgaWYgKG5hcmdz ICE9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpKQorKyAgICBl cnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiKSk7CisrCisrICBzdWJzY3JpcHRf YXJyYXkgPSAoc3RydWN0IHN1YnNjcmlwdF9zdG9yZSopIGFsbG9jYSAoc2l6ZW9mICgqc3Vic2Ny aXB0X2FycmF5KSAqIG5hcmdzKTsKKysKKysgIC8qIFBhcnNlIHRoZSB1c2VyIGlucHV0IGludG8g dGhlIFNVQlNDUklQVF9BUlJBWSB0byBzdG9yZSBpdC4gIFdlIG5lZWQKKysgICAgIHRvIGV2YWx1 YXRlIGl0IGZpcnN0LCBhcyB0aGUgaW5wdXQgaXMgZnJvbSBsZWZ0LXRvLXJpZ2h0LiAgVGhlCisr ICAgICBhcnJheSBpcyBzdG9yZWQgZnJvbSByaWdodC10by1sZWZ0LiAgU28gd2UgaGF2ZSB0byB1 c2UgdGhlIHVzZXIKKysgICAgIGlucHV0IGluIHJldmVyc2Ugb3JkZXIuICBMYXRlciBvbiwgd2Ug bmVlZCB0aGUgaW5wdXQgaW5mb3JtYXRpb24gdG8KKysgICAgIHJlLWNhbGN1bGF0ZSB0aGUgb3V0 cHV0IGFycmF5LiAgRm9yIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5cywgd2UKKysgICAgIGNhbiBi ZSBkZWFsaW5nIHdpdGggYW55IHBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mIHJhbmdlcyBhbmQgaW5k aWNlcworKyAgICAgZm9yIGV2ZXJ5IGRpbWVuc2lvbi4gICovCisrICBmb3IgKGkgPSAwOyBpIDwg bmFyZ3M7IGkrKykKKysgICAgeworKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4 ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKKyAKKy0gIGlmIChyYW5nZV90eXBlID09IEhJR0hfQk9V TkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKKy0gICAgaGln aF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2UpOworLSAgZWxzZQorLSAgICBoaWdoX2Jv dW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9z LCBub3NpZGUpKTsKKysgICAgICAvKiBUaGUgdXNlciBpbnB1dCBpcyBhIHJhbmdlLCB3aXRoIG9y IHdpdGhvdXQgbG93ZXIgYW5kIHVwcGVyIGJvdW5kLgorKwkgRS5nLjogInAgYXJyeSgyOjUpIiwg InAgYXJyeSggOjUpIiwgInAgYXJyeSggOiApIiwgZXRjLiAgKi8KKysgICAgICBpZiAoZXhwLT5l bHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKKysJeworKwkgIGludCBwYyA9ICgqcG9zKSAr IDE7CisrCSAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsKKysKKysJICBpbmRleC0+a2luZCA9IFNV QlNDUklQVF9SQU5HRTsKKysJICByYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKKysKKysJICAqcG9z ICs9IDM7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkgZXhw LT5lbHRzW3BjXS5sb25nY29uc3Q7CisrCisrCSAgLyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJv dmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFzIGJlZW4KKysJICAgICBzZXQgYW5kIHdlIGNh biBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVsdCBzdGFjay4gIFNhbWUgZm9yCisrCSAgICAg dXBwZXIgYm91bmQuICAqLworKwkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJS QVlfTE9XX0JPVU5EKQorKwkgICAgICA9PSBTVUJBUlJBWV9MT1dfQk9VTkQpCisrCSAgICByYW5n ZS0+bG93ID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwK KysJCQkJCQkJIHBvcywgbm9zaWRlKSk7CisrCSAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUg JiBTVUJBUlJBWV9ISUdIX0JPVU5EKQorKwkgICAgICA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQor KwkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExf VFlQRSwgZXhwLAorKwkJCQkJCQkgIHBvcywgbm9zaWRlKSk7CisrCisrCSAgLyogQXNzaWduIHRo ZSB1c2VyJ3Mgc3RyaWRlIHZhbHVlIGlmIHByb3ZpZGVkLiAgKi8KKysJICBpZiAoKHJhbmdlLT5m OTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX1NUUklERSkgPT0gU1VCQVJSQVlfU1RSSURFKQorKwkg ICAgcmFuZ2UtPnN0cmlkZSA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9U WVBFLCBleHAsCisrCQkJCQkJCSAgICAgcG9zLCBub3NpZGUpKTsKKysKKysJICAvKiBBc3NpZ24g dGhlIGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCisrCSAgZWxzZQorKwkgICAgcmFuZ2Ut PnN0cmlkZSA9IDE7CisrCisrCSAgLyogQ2hlY2sgdGhlIHByb3ZpZGVkIHN0cmlkZSB2YWx1ZSBp cyBpbGxlZ2FsLCBha2EgJzAnLiAgKi8KKysJICBpZiAocmFuZ2UtPnN0cmlkZSA9PSAwKQorKwkg ICAgZXJyb3IgKF8oIlN0cmlkZSBtdXN0IG5vdCBiZSAwIikpOworKwl9CisrICAgICAgLyogVXNl ciBpbnB1dCBpcyBhbiBpbmRleC4gIEUuZy46ICJwIGFycnkoNSkiLiAgKi8KKysgICAgICBlbHNl CisrCXsKKysJICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKysKKysJICBpbmRleC0+a2luZCA9IFNVQlND UklQVF9JTkRFWDsKKysKKysJICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBi ZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgVGhpcworKwkgICAgIGVuc3VyZXMgdGhlIHZhbGlk aXR5IG9mIHRoZSBwcm92aWRlZCBpbmRleC4gICovCisrCSAgdmFsID0gZXZhbHVhdGVfc3ViZXhw X3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOworKwkgIGluZGV4LT5VLm51bWJlciA9 IHZhbHVlX2FzX2xvbmcgKHZhbCk7CisrCX0KKysKKysgICAgfQorKworKyAgLyogVHJhdmVyc2Ug dGhlIGFycmF5IGZyb20gcmlnaHQgdG8gbGVmdCBhbmQgc2V0IHRoZSBoaWdoIGFuZCBsb3cgYm91 bmRzCisrICAgICBmb3IgbGF0ZXIgdXNlLiAgKi8KKysgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+ PSAwOyBpLS0pCisrICAgIHsKKysgICAgICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlICppbmRleCA9 ICZzdWJzY3JpcHRfYXJyYXlbaV07CisrICAgICAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUgPSBU WVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpOworKworKyAgICAgIHN3aXRjaCAoaW5kZXgtPmtp bmQpCisrCXsKKysJY2FzZSBTVUJTQ1JJUFRfUkFOR0U6CisrCSAgeworKworKwkgICAgLyogV2hl biB3ZSBoaXQgdGhlIGZpcnN0IHJhbmdlIHNwZWNpZmllZCBieSB0aGUgdXNlciwgd2UgbXVzdAor KwkgICAgICAgdHJlYXQgYW55IHN1YnNlcXVlbnQgdXNlciBlbnRyeSBhcyBhIHJhbmdlLiAgV2Ug c2ltcGx5CisrCSAgICAgICBpbmNyZW1lbnQgRElNX0NPVU5UIHdoaWNoIHRlbGxzIHVzIGhvdyBt YW55IHRpbWVzIHdlIGFyZQorKwkgICAgICAgY2FsbGluZyBWQUxVRV9TTElDRV8xLiAgKi8KKysJ ICAgIHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7CisrCisrCSAgICAv KiBJZiBubyBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHdlIHRha2UgdGhl CisrCSAgICAgICBkZWZhdWx0IGJvdW5kYXJ5LiAgU2FtZSBmb3IgdGhlIGhpZ2ggYm91bmQuICAq LworKwkgICAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQp ID09IDApCisrCSAgICAgIHJhbmdlLT5sb3cgPSBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSk7 CisrCisrCSAgICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9V TkQpID09IDApCisrCSAgICAgIHJhbmdlLT5oaWdoID0gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90 eXBlKTsKKysKKysJICAgIC8qIEJvdGggdXNlciBwcm92aWRlZCBsb3cgYW5kIGhpZ2ggYm91bmQg aGF2ZSB0byBiZSBpbnNpZGUgdGhlCisrCSAgICAgICBhcnJheSBib3VuZHMuICBUaHJvdyBhbiBl cnJvciBpZiBub3QuICAqLworKwkgICAgaWYgKHJhbmdlLT5sb3cgPCBUWVBFX0xPV19CT1VORCAo aW5kZXhfdHlwZSkKKysJCXx8IHJhbmdlLT5sb3cgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5 cGUpCisrCQl8fCByYW5nZS0+aGlnaCA8IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQorKwkJ fHwgcmFuZ2UtPmhpZ2ggPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQorKwkgICAgICBl cnJvciAoXygicHJvdmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3VuZChzKSIpKTsKKysK KysJICAgIC8qIEZvciBhIG5lZ2F0aXZlIHN0cmlkZSB0aGUgbG93ZXIgYm91bmRhcnkgbXVzdCBi ZSBsYXJnZXIgdGhhbiB0aGUKKysJICAgICAgIHVwcGVyIGJvdW5kYXJ5LgorKwkgICAgICAgRm9y IGEgcG9zaXRpdmUgc3RyaWRlIHRoZSBsb3dlciBib3VuZGFyeSBtdXN0IGJlIHNtYWxsZXIgdGhh biB0aGUKKysJICAgICAgIHVwcGVyIGJvdW5kYXJ5LiAgKi8KKysJICAgIGlmICgocmFuZ2UtPnN0 cmlkZSA8IDAgJiYgcmFuZ2UtPmxvdyA8IHJhbmdlLT5oaWdoKQorKwkJfHwgKHJhbmdlLT5zdHJp ZGUgPiAwICYmIHJhbmdlLT5sb3cgPiByYW5nZS0+aGlnaCkpCisrCSAgICAgIGVycm9yIChfKCJX cm9uZyB2YWx1ZSBwcm92aWRlZCBmb3Igc3RyaWRlIGFuZCBib3VuZGFyaWVzIikpOworKworKwkg IH0KKysJICBicmVhazsKKysKKysJY2FzZSBTVUJTQ1JJUFRfSU5ERVg6CisrCSAgYnJlYWs7Cisr CisrCX0KKysKKysgICAgICAgYXJyYXlfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpOworKyAgICB9CisrCisrICAvKiBSZXNldCBBUlJBWV9UWVBFIGJlZm9yZSBzbGljaW5nLiov CisrICBhcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7 CisrCisrICAvKiBUcmF2ZXJzZSB0aGUgYXJyYXkgZnJvbSByaWdodCB0byBsZWZ0IGFuZCBldmFs dWF0ZSBlYWNoIGNvcnJlc3BvbmRpbmcKKysgICAgIHVzZXIgaW5wdXQuICBWQUxVRV9TVUJTQ1JJ UFQgaXMgY2FsbGVkIGZvciBldmVyeSBpbmRleCwgdW50aWwgYSByYW5nZQorKyAgICAgZXhwcmVz c2lvbiBpcyBldmFsdWF0ZWQuICBBZnRlciBhIHJhbmdlIGV4cHJlc3Npb24gaGFzIGJlZW4gZXZh bHVhdGVkLAorKyAgICAgZXZlcnkgc3Vic2VxdWVudCBleHByZXNzaW9uIGlzIGFsc28gdHJlYXRl ZCBhcyBhIHJhbmdlLiAgKi8KKysgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+PSAwOyBpLS0pCisr ICAgIHsKKysgICAgICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlICppbmRleCA9ICZzdWJzY3JpcHRf YXJyYXlbaV07CisrICAgICAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUgPSBUWVBFX0lOREVYX1RZ UEUgKGFycmF5X3R5cGUpOworKworKyAgICAgIHN3aXRjaCAoaW5kZXgtPmtpbmQpCisrCXsKKysJ Y2FzZSBTVUJTQ1JJUFRfUkFOR0U6CisrCSAgeworKworKwkgICAgLyogV2hlbiB3ZSBoaXQgdGhl IGZpcnN0IHJhbmdlIHNwZWNpZmllZCBieSB0aGUgdXNlciwgd2UgbXVzdAorKwkgICAgICAgdHJl YXQgYW55IHN1YnNlcXVlbnQgdXNlciBlbnRyeSBhcyBhIHJhbmdlLiAgV2Ugc2ltcGx5CisrCSAg ICAgICBpbmNyZW1lbnQgRElNX0NPVU5UIHdoaWNoIHRlbGxzIHVzIGhvdyBtYW55IHRpbWVzIHdl IGFyZQorKwkgICAgICAgY2FsbGluZyBWQUxVRV9TTElDRV8xLiAgKi8KKysJICAgIHN1YnNjcmlw dF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7CisrCisrCSAgICAvKiBESU1fQ09VTlQg Y291bnRzIGV2ZXJ5IHVzZXIgYXJndW1lbnQgdGhhdCBpcyB0cmVhdGVkIGFzIGEgcmFuZ2UuCisr CSAgICAgICBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZXhwcmVzc2lvbnMgbGlrZSAncHJpbnQgYXJy YXkoNywgODo5KS4KKysJICAgICAgIEhlcmUgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgbGl0ZXJh bCwgYnV0IG11c3QgYmUgdHJlYXRlZCBhcyBhCisrCSAgICAgICByYW5nZSBhcmd1bWVudCB0byBh bGxvdyB0aGUgY29ycmVjdCBvdXRwdXQgcmVwcmVzZW50YXRpb24uICAqLworKwkgICAgZGltX2Nv dW50Kys7CisrCisrCSAgICBuZXdfYXJyYXkKKysJICAgICAgPSB2YWx1ZV9zbGljZV8xIChuZXdf YXJyYXksIHJhbmdlLT5sb3csCisrCQkJICAgICAgIHJhbmdlLT5oaWdoIC0gcmFuZ2UtPmxvdyAr IDEsCisrCQkJICAgICAgIHJhbmdlLT5zdHJpZGUsIGRpbV9jb3VudCk7CisrCSAgfQorKwkgIGJy ZWFrOworKworKwljYXNlIFNVQlNDUklQVF9JTkRFWDoKKysJICB7CisrCSAgICAvKiBESU1fQ09V TlQgb25seSBzdGF5cyAnMCcgd2hlbiBubyByYW5nZSBhcmd1bWVudCB3YXMgcHJvY2Vzc2VkCisr CSAgICAgICBiZWZvcmUsIHN0YXJ0aW5nIGZyb20gdGhlIGxhc3QgZGltZW5zaW9uLiAgVGhpcyB3 YXkgd2UgY2FuCisrCSAgICAgICByZWR1Y2UgdGhlIG51bWJlciBvZiBkaW1lbnNpb25zIGZyb20g dGhlIHJlc3VsdCBhcnJheS4KKysJICAgICAgIEhvd2V2ZXIsIGlmIGEgcmFuZ2UgaGFzIGJlZW4g cHJvY2Vzc2VkIGJlZm9yZSBhbiBpbmRleCwgd2UKKysJICAgICAgIHRyZWF0IHRoZSBpbmRleCBs aWtlIGEgcmFuZ2Ugd2l0aCBlcXVhbCBsb3ctIGFuZCBoaWdoIGJvdW5kcworKwkgICAgICAgdG8g Z2V0IHRoZSB2YWx1ZSBvZmZzZXQgcmlnaHQuICAqLworKwkgICAgaWYgKGRpbV9jb3VudCA9PSAw KQorKwkgICAgICBuZXdfYXJyYXkKKysJICAgICAgICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1 ZSAobmV3X2FycmF5LCBpbmRleC0+VS5udW1iZXIsCisrCQkJCQkgICAgZjc3X2dldF9sb3dlcmJv dW5kICh2YWx1ZV90eXBlCisrCQkJCQkJCQkgIChuZXdfYXJyYXkpKSk7CisrCSAgICBlbHNlCisr CSAgICAgIHsKKysJCWRpbV9jb3VudCsrOworKworKwkJLyogV2UgbWlnaHQgZW5kIHVwIGhlcmUs IGJlY2F1c2Ugd2UgaGF2ZSB0byB0cmVhdCB0aGUgcHJvdmlkZWQKKysJCSAgIGluZGV4IGxpa2Ug YSByYW5nZS4gQnV0IG5vdyBWQUxVRV9TVUJTQ1JJUFRFRF9SVkFMVUUKKysJCSAgIGNhbm5vdCBk byB0aGUgcmFuZ2UgY2hlY2tzIGZvciB1cy4gU28gd2UgaGF2ZSB0byBtYWtlIHN1cmUKKysJCSAg IG91cnNlbHZlcyB0aGF0IHRoZSB1c2VyIHByb3ZpZGVkIGluZGV4IGlzIGluc2lkZSB0aGUKKysJ CSAgIGFycmF5IGJvdW5kcy4gIFRocm93IGFuIGVycm9yIGlmIG5vdC4gICovCisrCQlpZiAoaW5k ZXgtPlUubnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCisrCQkgICAgJiYgaW5k ZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKKysJCSAgZXJyb3Ig KF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CisrCisrCQlp ZiAoaW5kZXgtPlUubnVtYmVyID4gVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCisrCQkgICAg JiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKKysJCSAg ZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7Cisr CisrCQluZXdfYXJyYXkgPSB2YWx1ZV9zbGljZV8xIChuZXdfYXJyYXksCisrCQkJCQkgICBpbmRl eC0+VS5udW1iZXIsCisrCQkJCQkgICAxLCAvKiBDT1VOVCBpcyAnMScgZWxlbWVudCAgKi8KKysJ CQkJCSAgIDEsIC8qIFNUUklERSBzZXQgdG8gJzEnICAqLworKwkJCQkJICAgZGltX2NvdW50KTsK KysJICAgICAgfQorKworKwkgIH0KKysJICBicmVhazsKKysJfQorKyAgICAgIGFycmF5X3R5cGUg PSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKTsKKysgICAgfQorKworKyAgLyogV2l0aCBE SU1fQ09VTlQgPiAxIHdlIGN1cnJlbnRseSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCBi dXQgZXhwZWN0CisrICAgICBhbiBhcnJheSBvZiBhcnJheXMsIGRlcGVuZGluZyBvbiBob3cgbWFu eSByYW5nZXMgaGF2ZSBiZWVuIHByb3ZpZGVkIGJ5CisrICAgICB0aGUgdXNlci4gIFNvIHdlIG5l ZWQgdG8gcmVidWlsZCB0aGUgYXJyYXkgZGltZW5zaW9ucyBmb3IgcHJpbnRpbmcgaXQKKysgICAg IGNvcnJlY3RseS4KKysgICAgIFN0YXJ0aW5nIGZyb20gcmlnaHQgdG8gbGVmdCBpbiB0aGUgdXNl ciBpbnB1dCwgYWZ0ZXIgd2UgaGl0IHRoZSBmaXJzdAorKyAgICAgcmFuZ2UgYXJndW1lbnQgZXZl cnkgc3Vic2VxdWVudCBhcmd1bWVudCBpcyBhbHNvIHRyZWF0ZWQgYXMgYSByYW5nZS4KKysgICAg IEUuZy46CisrICAgICAicCBhcnkoMywgNywgMjoxNSkiIGluIEZvcnRyYW4gaGFzIG9ubHkgMSBk aW1lbnNpb24sIGJ1dCB3ZSBjYWxjdWxhdGVkIDMKKysgICAgIHJhbmdlcy4KKysgICAgICJwIGFy eSgzLCA3OjEyLCA0KSIgaW4gRm9ydHJhbiBoYXMgb25seSAxIGRpbWVuc2lvbiwgYnV0IHdlIGNh bGN1bGF0ZWQgMgorKyAgICAgcmFuZ2VzLgorKyAgICAgInAgYXJ5KDI6NCwgNSwgNykiIGluIEZv cnRyYW4gaGFzIG9ubHkgMSBkaW1lbnNpb24sIGFuZCB3ZSBjYWxjdWxhdGVkIDEKKysgICAgIHJh bmdlLiAgKi8KKysgIGlmIChkaW1fY291bnQgPiAxKQorKyAgICB7CisrICAgICAgc3RydWN0IHZh bHVlICp2ID0gTlVMTDsKKysKKysgICAgICBlbHRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHZh bHVlX3R5cGUgKG5ld19hcnJheSkpOworKworKyAgICAgIC8qIEV2ZXJ5IFNVQlNDUklQVF9SQU5H RSBpbiB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMgYW4gYWN0dWFsIHJhbmdlIGluCisrCSB0aGUg b3V0cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2UgdGhlIFNVQlNDUklQVF9BUlJBWSBhZ2Fpbiwg bG9va2luZworKwkgZm9yIGEgcmFuZ2UgZW50cnkuICBXaGVuIHdlIGZpbmQgb25lLCB3ZSB1c2Ug dGhlIHJhbmdlIGluZm8gdG8gY3JlYXRlCisrCSBhbiBhZGRpdGlvbmFsIHJhbmdlX3R5cGUgdG8g c2V0IHRoZSBjb3JyZWN0IGJvdW5kcyBhbmQgZGltZW5zaW9ucyBmb3IKKysJIHRoZSBvdXRwdXQg YXJyYXkuICBJbiBhZGRpdGlvbiwgd2UgbWF5IGhhdmUgYSBzdHJpZGUgdmFsdWUgdGhhdCBpcyBu b3QKKysJICcxJywgZm9yY2luZyB1cyB0byBhZGp1c3QgdGhlIG51bWJlciBvZiBlbGVtZW50cyBp biBhIHJhbmdlLCBhY2NvcmRpbmcKKysJIHRvIHRoZSBzdHJpZGUgdmFsdWUuICAqLworKyAgICAg IGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorKwl7CisrCSAgc3RydWN0IHN1YnNjcmlwdF9z dG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOworKworKwkgIGlmIChpbmRleC0+a2lu ZCA9PSBTVUJTQ1JJUFRfUkFOR0UpCisrCSAgICB7CisrCSAgICAgIHN0cnVjdCB0eXBlICpyYW5n ZV90eXBlLCAqaW50ZXJpbV9hcnJheV90eXBlOworKworKwkgICAgICBpbnQgbmV3X2xlbmd0aDsK KyAKKy0gIHJldHVybiB2YWx1ZV9zbGljZSAoYXJyYXksIGxvd19ib3VuZCwgaGlnaF9ib3VuZCAt IGxvd19ib3VuZCArIDEpOworKwkgICAgICAvKiBUaGUgbGVuZ3RoIG9mIGEgc3ViLWRpbWVuc2lv biB3aXRoIGFsbCBlbGVtZW50cyBiZXR3ZWVuIHRoZQorKwkJIGJvdW5kcyBwbHVzIHRoZSBzdGFy dCBlbGVtZW50IGl0c2VsZi4gIEl0IG1heSBiZSBtb2RpZmllZCBieQorKwkJIGEgdXNlciBwcm92 aWRlZCBzdHJpZGUgdmFsdWUuICAqLworKwkgICAgICBuZXdfbGVuZ3RoID0gaW5kZXgtPlUucmFu Z2UuaGlnaCAtIGluZGV4LT5VLnJhbmdlLmxvdzsKKysKKysJICAgICAgbmV3X2xlbmd0aCAvPSBp bmRleC0+VS5yYW5nZS5zdHJpZGU7CisrCisrCSAgICAgIHJhbmdlX3R5cGUKKysJCT0gY3JlYXRl X3N0YXRpY19yYW5nZV90eXBlIChOVUxMLAorKwkJCQkJICAgIGVsdF90eXBlLAorKwkJCQkJICAg IGluZGV4LT5VLnJhbmdlLmxvdywKKysJCQkJCSAgICBpbmRleC0+VS5yYW5nZS5sb3cgKyBuZXdf bGVuZ3RoKTsKKysKKysJICAgICAgaW50ZXJpbV9hcnJheV90eXBlID0gY3JlYXRlX2FycmF5X3R5 cGUgKE5VTEwsCisrCQkJCQkJICAgICAgZWx0X3R5cGUsCisrCQkJCQkJICAgICAgcmFuZ2VfdHlw ZSk7CisrCisrCSAgICAgIFRZUEVfQ09ERSAoaW50ZXJpbV9hcnJheV90eXBlKQorKwkJPSBUWVBF X0NPREUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOworKworKwkgICAgICB2ID0gYWxsb2NhdGVf dmFsdWUgKGludGVyaW1fYXJyYXlfdHlwZSk7CisrCisrCSAgICAgIGVsdF90eXBlID0gdmFsdWVf dHlwZSAodik7CisrCSAgICB9CisrCisrCX0KKysgICAgICB2YWx1ZV9jb250ZW50c19jb3B5ICh2 LCAwLCBuZXdfYXJyYXksIDAsIFRZUEVfTEVOR1RIIChlbHRfdHlwZSkpOworKyAgICAgIHJldHVy biB2OworKyAgICB9CisrCisrICByZXR1cm4gbmV3X2FycmF5OworIH0KKyAKKyAKK0BAIC0xODEw LDE5ICsyMTA2LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCisgICAgICAgc3dpdGNoIChjb2RlKQorIAl7CisgCWNhc2UgVFlQRV9DT0RFX0FS UkFZOgorLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQorLQkgICAg cmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7CistCSAg ZWxzZQorLQkgICAgZ290byBtdWx0aV9mNzdfc3Vic2NyaXB0OworLQorIAljYXNlIFRZUEVfQ09E RV9TVFJJTkc6CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCist CSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbm9zaWRlKTsK Ky0JICBlbHNlCistCSAgICB7CistCSAgICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9j b2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7CistCSAgICAgIHJldHVybiB2YWx1ZV9zdWJzY3Jp cHQgKGFyZzEsIHZhbHVlX2FzX2xvbmcgKGFyZzIpKTsKKy0JICAgIH0KKysJICByZXR1cm4gdmFs dWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7CisgCisgCWNh c2UgVFlQRV9DT0RFX1BUUjoKKyAJY2FzZSBUWVBFX0NPREVfRlVOQzoKK0BAIC0yMjIzLDQ5ICsy NTA4LDYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5 cGUsCisgCX0KKyAgICAgICByZXR1cm4gKGFyZzEpOworIAorLSAgICBtdWx0aV9mNzdfc3Vic2Ny aXB0OgorLSAgICAgIHsKKy0JTE9OR0VTVCBzdWJzY3JpcHRfYXJyYXlbTUFYX0ZPUlRSQU5fRElN U107CistCWludCBuZGltZW5zaW9ucyA9IDEsIGk7CistCXN0cnVjdCB2YWx1ZSAqYXJyYXkgPSBh cmcxOworLQorLQlpZiAobmFyZ3MgPiBNQVhfRk9SVFJBTl9ESU1TKQorLQkgIGVycm9yIChfKCJU b28gbWFueSBzdWJzY3JpcHRzIGZvciBGNzcgKCVkIE1heCkiKSwgTUFYX0ZPUlRSQU5fRElNUyk7 CistCistCW5kaW1lbnNpb25zID0gY2FsY19mNzdfYXJyYXlfZGltcyAodHlwZSk7CistCistCWlm IChuYXJncyAhPSBuZGltZW5zaW9ucykKKy0JICBlcnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1 YnNjcmlwdHMiKSk7CistCistCWdkYl9hc3NlcnQgKG5hcmdzID4gMCk7CistCistCS8qIE5vdyB0 aGF0IHdlIGtub3cgd2UgaGF2ZSBhIGxlZ2FsIGFycmF5IHN1YnNjcmlwdCBleHByZXNzaW9uIAor LQkgICBsZXQgdXMgYWN0dWFsbHkgZmluZCBvdXQgd2hlcmUgdGhpcyBlbGVtZW50IGV4aXN0cyBp biB0aGUgYXJyYXkuICAqLworLQorLQkvKiBUYWtlIGFycmF5IGluZGljZXMgbGVmdCB0byByaWdo dC4gICovCistCWZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorLQkgIHsKKy0JICAgIC8qIEV2 YWx1YXRlIGVhY2ggc3Vic2NyaXB0OyBpdCBtdXN0IGJlIGEgbGVnYWwgaW50ZWdlciBpbiBGNzcu ICAqLworLQkgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBv cywgbm9zaWRlKTsKKy0KKy0JICAgIC8qIEZpbGwgaW4gdGhlIHN1YnNjcmlwdCBhcnJheS4gICov CistCistCSAgICBzdWJzY3JpcHRfYXJyYXlbaV0gPSB2YWx1ZV9hc19sb25nIChhcmcyKTsKKy0J ICB9CistCistCS8qIEludGVybmFsIHR5cGUgb2YgYXJyYXkgaXMgYXJyYW5nZWQgcmlnaHQgdG8g bGVmdC4gICovCistCWZvciAoaSA9IG5hcmdzOyBpID4gMDsgaS0tKQorLQkgIHsKKy0JICAgIHN0 cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkp KTsKKy0JICAgIExPTkdFU1QgaW5kZXggPSBzdWJzY3JpcHRfYXJyYXlbaSAtIDFdOworLQorLQkg ICAgYXJyYXkgPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBpbmRleCwKKy0JCQkJ CSAgICAgIGY3N19nZXRfbG93ZXJib3VuZCAoYXJyYXlfdHlwZSkpOworLQkgIH0KKy0KKy0JcmV0 dXJuIGFycmF5OworLSAgICAgIH0KKy0KKyAgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoKKyAg ICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUp OworICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQorQEAgLTMxMjMsNiArMzM2NSw5IEBA IGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90eXBlKQorICAgaW50IG5k aW1lbiA9IDE7CisgICBzdHJ1Y3QgdHlwZSAqdG1wX3R5cGU7CisgCisrICBpZiAoVFlQRV9DT0RF IChhcnJheV90eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKQorKyAgICByZXR1cm4gMTsKKysKKyAg IGlmICgoVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQorICAgICBl cnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7Cisg CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYworaW5kZXggYzM3 ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKKy0tLSBhL2dkYi9leHBwcmludC5jCisrKysgYi9nZGIvZXhw cHJpbnQuYworQEAgLTU2OCwxMiArNTY4LDEwIEBAIHByaW50X3N1YmV4cF9zdGFuZGFyZCAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCisgCSpwb3MgKz0gMjsKKyAKKyAJZnB1dHNf ZmlsdGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JP VU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQor KwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFSUkFZX0xPV19C T1VORCkKKyAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBSRUNfQUJPVkVfQ09N TUEpOworIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKKy0JaWYgKHJhbmdlX3R5cGUg PT0gTE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9E RUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJB UlJBWV9ISUdIX0JPVU5EKQorIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJF Q19BQk9WRV9DT01NQSk7CisgCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVhbSk7CisgCXJldHVy bjsKK0BAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0 cnVjdCBleHByZXNzaW9uICpleHAsCisgCisgCXN3aXRjaCAocmFuZ2VfdHlwZSkKKyAJICB7Cist CSAgY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9OT05FX0JPVU5E OgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFtKTsKKyAJICAgIGJy ZWFrOworLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9ISUdI X0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi5FWFAnIiwgc3RyZWFtKTsK KyAJICAgIGJyZWFrOworLQkgIGNhc2UgSElHSF9CT1VORF9ERUZBVUxUOgorKwkgIGNhc2UgU1VC QVJSQVlfTE9XX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi4nIiwg c3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTk9ORV9CT1VORF9ERUZBVUxUOgorKwkg IGNhc2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOgorIAkgICAg ZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFr OworIAkgIGRlZmF1bHQ6CitAQCAtMTA3MiwxMSArMTA3MCw5IEBAIGR1bXBfc3ViZXhwX2JvZHlf c3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCSAgICBicmVhazsKKyAJICB9Cisg CistCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorLQkgICAgfHwgcmFuZ2Vf dHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlwZSAmIFNVQkFSUkFZ X0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBfc3ViZXhw IChleHAsIHN0cmVhbSwgZWx0KTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFV TFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJh bmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQor IAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKyAgICAgICB9CisgICAg ICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9u LmgKK2luZGV4IDQ5NTJkODQuLjM0Y2E1NGIgMTAwNjQ0CistLS0gYS9nZGIvZXhwcmVzc2lvbi5o CisrKysgYi9nZGIvZXhwcmVzc2lvbi5oCitAQCAtMTUyLDE3ICsxNTIsMTcgQEAgZXh0ZXJuIHZv aWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwKKyAJCQkJIHN0cnVj dCB1aV9maWxlICosIGNoYXIgKik7CisgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lv biAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CisgCistLyogSW4gYW4g T1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxkIGJlIGVtcHR5LCBpbmRpY2F0 aW5nCistICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0aGF0IG9mIHRoZSBjb3JyZXNw b25kaW5nIGJvdW5kIG9mIHRoZQorLSAgIGFycmF5IG9yIHN0cmluZy4gIFNvIHdlIGhhdmUgZm91 ciBzb3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKKy0gICBlbnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlk ZW50aWZ5IHRoaXMuICAqLworLSAgIAorKy8qIEluIGFuIE9QX1JBTkdFIGV4cHJlc3Npb24sIGVp dGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4KKysgICBJbiBh ZGRpdGlvbiB0byB0aGlzLCB0aGUgdXNlciBjYW4gYWxzbyBzcGVjaWZ5IGEgc3RyaWRlIHZhbHVl IHRvIGluZGljYXRlZAorKyAgIG9ubHkgY2VydGFpbiBlbGVtZW50cyBvZiB0aGUgYXJyYXkuICBU aGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkKKysgICB0aGlzLiAgKi8KKysKKyBl bnVtIHJhbmdlX3R5cGUKKyAgIHsKKy0gICAgQk9USF9CT1VORF9ERUZBVUxULAkJLyogIig6KSIg ICovCistICAgIExPV19CT1VORF9ERUZBVUxULAkJLyogIig6aGlnaCkiICAqLworLSAgICBISUdI X0JPVU5EX0RFRkFVTFQsCQkvKiAiKGxvdzopIiAgKi8KKy0gICAgTk9ORV9CT1VORF9ERUZBVUxU CQkvKiAiKGxvdzpoaWdoKSIgICovCisrICAgIFNVQkFSUkFZX05PTkVfQk9VTkQgPSAweDAsCQkv KiAiKCA6ICkiICAqLworKyAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzop IiAgKi8KKysgICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MiwJCS8qICIoOmhpZ2gpIiAgKi8K KysgICAgU1VCQVJSQVlfU1RSSURFID0gMHg0CQkvKiAiKDo6c3RyaWRlKSIgICovCisgICB9Owor IAorICNlbmRpZiAvKiAhZGVmaW5lZCAoRVhQUkVTU0lPTl9IKSAqLworZGlmZiAtLWdpdCBhL2dk Yi9mLWV4cC55IGIvZ2RiL2YtZXhwLnkKK2luZGV4IGUzMTQ4YTMuLjcxZjE4MjMgMTAwNjQ0Cist LS0gYS9nZGIvZi1leHAueQorKysrIGIvZ2RiL2YtZXhwLnkKK0BAIC0yNTMsMzEgKzI1Myw2MyBA QCBhcmdsaXN0IDoJc3VicmFuZ2UKKyAgICAKKyBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAg JXByZWMgQUJPVkVfQ09NTUEKKyAJCQl7IGFyZ2xpc3RfbGVuKys7IH0KKysJfAlhcmdsaXN0ICcs JyBzdWJyYW5nZQklcHJlYyBBQk9WRV9DT01NQQorKwkJCXsgYXJnbGlzdF9sZW4rKzsgfQorIAk7 CisgCisgLyogVGhlcmUgYXJlIGZvdXIgc29ydHMgb2Ygc3VicmFuZ2UgdHlwZXMgaW4gRjkwLiAg Ki8KKyAKKyBzdWJyYW5nZToJZXhwICc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKKy0JCQl7IHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgCistCQkJICB3cml0ZV9leHBf ZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTk9ORV9CT1VORF9ERUZBVUxUKTsKKysJCQl7IHdyaXRlX2V4 cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKKysJCQkgIHdyaXRlX2V4cF9lbHRfbG9u Z2NzdCAocHN0YXRlLAorKwkJCQkJCSBTVUJBUlJBWV9MT1dfQk9VTkQgfCBTVUJBUlJBWV9ISUdI X0JPVU5EKTsKKyAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsg fQorIAk7CisgCisgc3VicmFuZ2U6CWV4cCAnOicJJXByZWMgQUJPVkVfQ09NTUEKKyAJCQl7IHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKKy0JCQkgIHdyaXRlX2V4cF9l bHRfbG9uZ2NzdCAocHN0YXRlLCBISUdIX0JPVU5EX0RFRkFVTFQpOworKwkJCSAgd3JpdGVfZXhw X2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORCk7CisgCQkJICB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KKyAJOworIAorIHN1YnJhbmdlOgkn OicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCisgCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9SQU5HRSk7CistCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTE9X X0JPVU5EX0RFRkFVTFQpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNV QkFSUkFZX0hJR0hfQk9VTkQpOworIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwg T1BfUkFOR0UpOyB9CisgCTsKKyAKKyBzdWJyYW5nZToJJzonCSVwcmVjIEFCT1ZFX0NPTU1BCisg CQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CistCQkJICB3cml0 ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgQk9USF9CT1VORF9ERUZBVUxUKTsKKysJCQkgIHdy aXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9OT05FX0JPVU5EKTsKKysJCQkg IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQorKwk7CisrCisrLyog RWFjaCBzdWJyYW5nZSB0eXBlIGNhbiBoYXZlIGEgc3RyaWRlIGFyZ3VtZW50LiAgKi8KKytzdWJy YW5nZToJZXhwICc6JyBleHAgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQorKwkJCXsgd3JpdGVf ZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9s b25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAorKwkJCQkJCSB8IFNVQkFSUkFZX0hJ R0hfQk9VTkQKKysJCQkJCQkgfCBTVUJBUlJBWV9TVFJJREUpOworKwkJCSAgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisrCTsKKysKKytzdWJyYW5nZToJZXhwICc6 JyAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCisrCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9SQU5HRSk7CisrCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwg U1VCQVJSQVlfTE9XX0JPVU5ECisrCQkJCQkJIHwgU1VCQVJSQVlfU1RSSURFKTsKKysJCQkgIHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQorKwk7CisrCisrc3VicmFu Z2U6CSc6JyBleHAgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQorKwkJCXsgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0 IChwc3RhdGUsIFNVQkFSUkFZX0hJR0hfQk9VTkQKKysJCQkJCQkgfCBTVUJBUlJBWV9TVFJJREUp OworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisrCTsK KysKKytzdWJyYW5nZToJJzonICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKKysJCQl7IHdyaXRl X2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKKysJCQkgIHdyaXRlX2V4cF9lbHRf bG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9TVFJJREUpOworIAkJCSAgd3JpdGVfZXhwX2VsdF9v cGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisgCTsKKyAKK2RpZmYgLS1naXQgYS9nZGIvZi12 YWxwcmludC5jIGIvZ2RiL2YtdmFscHJpbnQuYworaW5kZXggMDgyMTVlMi4uZTZlY2E2YSAxMDA2 NDQKKy0tLSBhL2dkYi9mLXZhbHByaW50LmMKKysrKyBiL2dkYi9mLXZhbHByaW50LmMKK0BAIC0x MjEsOCArMTIxLDE0IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lv bnMsIHN0cnVjdCB0eXBlICp0eXBlLAorIAorICAgaWYgKG5zcyAhPSBuZGltZW5zaW9ucykKKyAg ICAgeworLSAgICAgIHNpemVfdCBkaW1fc2l6ZSA9IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9U WVBFICh0eXBlKSk7CisrICAgICAgc2l6ZV90IGRpbV9zaXplOworICAgICAgIHNpemVfdCBvZmZz ID0gMDsKKysgICAgICBMT05HRVNUIGJ5dGVfc3RyaWRlID0gYWJzIChUWVBFX0JZVEVfU1RSSURF IChyYW5nZV90eXBlKSk7CisrCisrICAgICAgaWYgKGJ5dGVfc3RyaWRlKQorKyAgICAgICAgZGlt X3NpemUgPSBieXRlX3N0cmlkZTsKKysgICAgICBlbHNlCisrICAgICAgICBkaW1fc2l6ZSA9IFRZ UEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7CisgCisgICAgICAgZm9yIChpID0g bG93ZXJib3VuZDsKKyAJICAgKGkgPCB1cHBlcmJvdW5kICsgMSAmJiAoKmVsdHMpIDwgb3B0aW9u cy0+cHJpbnRfbWF4KTsKK2RpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBl cy5jCitpbmRleCBlYzVjMTdhLi44ODgwMWFjIDEwMDY0NAorLS0tIGEvZ2RiL2dkYnR5cGVzLmMK KysrKyBiL2dkYi9nZGJ0eXBlcy5jCitAQCAtODM2LDcgKzgzNiw4IEBAIGFsbG9jYXRlX3N0dWJf bWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyBzdHJ1Y3QgdHlwZSAqCisgY3JlYXRlX3Jhbmdl X3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUs CisgCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQsCistCQkgICBjb25z dCBzdHJ1Y3QgZHluYW1pY19wcm9wICpoaWdoX2JvdW5kKQorKwkJICAgY29uc3Qgc3RydWN0IGR5 bmFtaWNfcHJvcCAqaGlnaF9ib3VuZCwKKysJCSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3Ag KnN0cmlkZSkKKyB7CisgICBpZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKKyAgICAgcmVzdWx0X3R5 cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOworQEAgLTg1MSw2ICs4NTIsNyBAQCBj cmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAq aW5kZXhfdHlwZSwKKyAgICAgVFlQRV9aQUxMT0MgKHJlc3VsdF90eXBlLCBzaXplb2YgKHN0cnVj dCByYW5nZV9ib3VuZHMpKTsKKyAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5sb3cg PSAqbG93X2JvdW5kOworICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmhpZ2ggPSAq aGlnaF9ib3VuZDsKKysgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5zdHJpZGUgPSAq c3RyaWRlOworIAorICAgaWYgKGxvd19ib3VuZC0+a2luZCA9PSBQUk9QX0NPTlNUICYmIGxvd19i b3VuZC0+ZGF0YS5jb25zdF92YWwgPj0gMCkKKyAgICAgVFlQRV9VTlNJR05FRCAocmVzdWx0X3R5 cGUpID0gMTsKK0BAIC04NzksNyArODgxLDcgQEAgc3RydWN0IHR5cGUgKgorIGNyZWF0ZV9zdGF0 aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5k ZXhfdHlwZSwKKyAJCQkgIExPTkdFU1QgbG93X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCisg eworLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2g7CisrICBzdHJ1Y3QgZHluYW1pY19w cm9wIGxvdywgaGlnaCwgc3RyaWRlOworIAorICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOworICAg bG93LmRhdGEuY29uc3RfdmFsID0gbG93X2JvdW5kOworQEAgLTg4Nyw3ICs4ODksMTEgQEAgY3Jl YXRlX3N0YXRpY19yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0 eXBlICppbmRleF90eXBlLAorICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsKKyAgIGhpZ2guZGF0 YS5jb25zdF92YWwgPSBoaWdoX2JvdW5kOworIAorLSAgcmVzdWx0X3R5cGUgPSBjcmVhdGVfcmFu Z2VfdHlwZSAocmVzdWx0X3R5cGUsIGluZGV4X3R5cGUsICZsb3csICZoaWdoKTsKKysgIHN0cmlk ZS5raW5kID0gUFJPUF9DT05TVDsKKysgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IDA7CisrCisr ICByZXN1bHRfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChyZXN1bHRfdHlwZSwgaW5kZXhfdHlw ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb3csICZoaWdoLCAmc3Ry aWRlKTsKKyAKKyAgIHJldHVybiByZXN1bHRfdHlwZTsKKyB9CitAQCAtMTA4NCwxNiArMTA5MCwy MCBAQCBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90 eXBlLAorICAgICAgICYmICghdHlwZV9ub3RfYXNzb2NpYXRlZCAocmVzdWx0X3R5cGUpCisgCSAg JiYgIXR5cGVfbm90X2FsbG9jYXRlZCAocmVzdWx0X3R5cGUpKSkKKyAgICAgeworLSAgICAgIExP TkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworKyAgICAgIExPTkdFU1QgbG93X2JvdW5kLCBo aWdoX2JvdW5kLCBieXRlX3N0cmlkZTsKKyAKKyAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5k cyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKKyAJbG93X2JvdW5k ID0gaGlnaF9ib3VuZCA9IDA7CisgICAgICAgZWxlbWVudF90eXBlID0gY2hlY2tfdHlwZWRlZiAo ZWxlbWVudF90eXBlKTsKKysgICAgICBieXRlX3N0cmlkZSA9IGFicyAoVFlQRV9CWVRFX1NUUklE RSAocmFuZ2VfdHlwZSkpOworKworICAgICAgIC8qIEJlIGNhcmVmdWwgd2hlbiBzZXR0aW5nIHRo ZSBhcnJheSBsZW5ndGguICBBZGEgYXJyYXlzIGNhbiBiZQorIAkgZW1wdHkgYXJyYXlzIHdpdGgg dGhlIGhpZ2hfYm91bmQgYmVpbmcgc21hbGxlciB0aGFuIHRoZSBsb3dfYm91bmQuCisgCSBJbiBz dWNoIGNhc2VzLCB0aGUgYXJyYXkgbGVuZ3RoIHNob3VsZCBiZSB6ZXJvLiAgKi8KKyAgICAgICBp ZiAoaGlnaF9ib3VuZCA8IGxvd19ib3VuZCkKKyAJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9 IDA7CisrICAgICAgZWxzZSBpZiAoYnl0ZV9zdHJpZGUgPiAwKQorKwlUWVBFX0xFTkdUSCAocmVz dWx0X3R5cGUpID0gYnl0ZV9zdHJpZGUgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpOwor ICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQorIAlUWVBFX0xFTkdUSCAocmVzdWx0X3R5 cGUpID0KKyAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsgMSkgKyA3 KSAvIDg7CitAQCAtMTg4OCw3ICsxODk4LDggQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1 Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUsCisgICBDT1JFX0FERFIgdmFsdWU7CisgICBzdHJ1Y3Qg dHlwZSAqc3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7CisgICBjb25zdCBz dHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOworLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7CisrICBjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmJh dG9uOworKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIHN0cmlk ZTsKKyAKKyAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5cGUpID09IFRZUEVf Q09ERV9SQU5HRSk7CisgCitAQCAtMTkxOSwxMyArMTkzMCwyMSBAQCByZXNvbHZlX2R5bmFtaWNf cmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKKyAgICAgICBoaWdoX2JvdW5kLmtp bmQgPSBQUk9QX1VOREVGSU5FRDsKKyAgICAgICBoaWdoX2JvdW5kLmRhdGEuY29uc3RfdmFsID0g MDsKKyAgICAgfQorKyAgCisrICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5 cGUpLT5zdHJpZGU7CisrICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxM LCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorKyAgICB7CisrICAgICAgc3RyaWRlLmtpbmQgPSBQUk9Q X0NPTlNUOworKyAgICAgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVlOworKyAgICB9Cisg CisgICBzdGF0aWNfdGFyZ2V0X3R5cGUKKyAgICAgPSByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRl cm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHluX3JhbmdlX3R5cGUpLAorIAkJCQkgICAgIGFkZHJf c3RhY2ssIDApOworICAgc3RhdGljX3JhbmdlX3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAoY29w eV90eXBlIChkeW5fcmFuZ2VfdHlwZSksCisgCQkJCQkgc3RhdGljX3RhcmdldF90eXBlLAorLQkJ CQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKTsKKysJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9i b3VuZCwgJnN0cmlkZSk7CisrCisgICBUWVBFX1JBTkdFX0RBVEEgKHN0YXRpY19yYW5nZV90eXBl KS0+ZmxhZ19ib3VuZF9ldmFsdWF0ZWQgPSAxOworICAgcmV0dXJuIHN0YXRpY19yYW5nZV90eXBl OworIH0KK0BAIC0yMTc2LDggKzIxOTUsMTggQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJu YWwgKHN0cnVjdCB0eXBlICp0eXBlLAorICAgaWYgKHByb3AgIT0gTlVMTAorICAgICAgICYmIGR3 YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFjaywgJnZhbHVlKSkK KyAgICAgeworLSAgICAgIFRZUEVfRFlOX1BST1BfQUREUiAocHJvcCkgPSB2YWx1ZTsKKy0gICAg ICBUWVBFX0RZTl9QUk9QX0tJTkQgKHByb3ApID0gUFJPUF9DT05TVDsKKysgICAgICBzdHJ1Y3Qg dHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAocmVzb2x2ZWRfdHlwZSk7CisrCisr ICAgICAgLyogQWRqdXN0IHRoZSBkYXRhIGxvY2F0aW9uIHdpdGggdGhlIHZhbHVlIG9mIGJ5dGUg c3RyaWRlIGlmIHNldCwgd2hpY2gKKysgICAgICAgICBjYW4gZGVzY3JpYmUgdGhlIHNlcGFyYXRp b24gYmV0d2VlbiBzdWNjZXNzaXZlIGVsZW1lbnRzIGFsb25nIHRoZQorKyAgICAgICAgIGRpbWVu c2lvbi4gICovCisrICAgICAgaWYgKFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpIDwgMCkK KysgICAgICAgIHZhbHVlICs9IChUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpIC0gVFlQRV9M T1dfQk9VTkQgKHJhbmdlX3R5cGUpKQorKyAgICAgICAgICAgICAgICAgICogVFlQRV9CWVRFX1NU UklERSAocmFuZ2VfdHlwZSk7CisrCisrICAgICAgVFlQRV9EQVRBX0xPQ0FUSU9OX0FERFIgKHJl c29sdmVkX3R5cGUpID0gdmFsdWU7CisrICAgICAgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHJl c29sdmVkX3R5cGUpID0gUFJPUF9DT05TVDsKKysKKyAgICAgfQorIAorICAgcmV0dXJuIHJlc29s dmVkX3R5cGU7CitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAor aW5kZXggMmRkYTA3NC4uOTcyMjdjOSAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0eXBlcy5oCisrKysg Yi9nZGIvZ2RidHlwZXMuaAorQEAgLTU3Nyw2ICs1NzcsMTAgQEAgc3RydWN0IHJhbmdlX2JvdW5k cworIAorICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOworIAorKyAgLyogKiBTdHJpZGUgb2Yg cmFuZ2UuICAqLworKworKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7CisrCisgICAvKiBU cnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBp biB0aGUKKyAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBi b3VuZCBpcyBjb21wdXRlZC4gICovCisgCitAQCAtNzQwLDYgKzc0NCw3IEBAIHN0cnVjdCBtYWlu X3R5cGUKKyAKKyAgICAgc3RydWN0IHJhbmdlX2JvdW5kcyAqYm91bmRzOworIAorKworICAgfSBm bGRzX2JuZHM7CisgCisgICAvKiAqIFNsb3QgdG8gcG9pbnQgdG8gYWRkaXRpb25hbCBsYW5ndWFn ZS1zcGVjaWZpYyBmaWVsZHMgb2YgdGhpcworQEAgLTEyNTUsNiArMTI2MCwxNSBAQCBleHRlcm4g dm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKKyAgIFRZUEVfUkFO R0VfREFUQShyYW5nZV90eXBlKS0+aGlnaC5raW5kCisgI2RlZmluZSBUWVBFX0xPV19CT1VORF9L SU5EKHJhbmdlX3R5cGUpIFwKKyAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+bG93Lmtp bmQKKysjZGVmaW5lIFRZUEVfQllURV9TVFJJREUocmFuZ2VfdHlwZSkgXAorKyAgVFlQRV9SQU5H RV9EQVRBKHJhbmdlX3R5cGUpLT5zdHJpZGUuZGF0YS5jb25zdF92YWwKKysjZGVmaW5lIFRZUEVf QllURV9TVFJJREVfQkxPQ0socmFuZ2VfdHlwZSkgXAorKyAgVFlQRV9SQU5HRV9EQVRBKHJhbmdl X3R5cGUpLT5zdHJpZGUuZGF0YS5sb2NleHByCisrI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFX0xP Q0xJU1QocmFuZ2VfdHlwZSkgXAorKyAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5zdHJp ZGUuZGF0YS5sb2NsaXN0CisrI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFX0tJTkQocmFuZ2VfdHlw ZSkgXAorKyAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5zdHJpZGUua2luZAorKworIAor IC8qIFByb3BlcnR5IGFjY2Vzc29ycyBmb3IgdGhlIHR5cGUgZGF0YSBsb2NhdGlvbi4gICovCisg I2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT04odGhpc3R5cGUpIFwKK0BAIC0xMjg5LDYgKzEzMDMs OSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsK KyAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUp KQorICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRFRklORUQoYXJyYXl0eXBl KSBcCisgICAgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5 cGUpKQorKyNkZWZpbmUgVFlQRV9BUlJBWV9TVFJJREVfSVNfVU5ERUZJTkVEKGFycmF5dHlwZSkg XAorKyAgIChUWVBFX0JZVEVfU1RSSURFKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKSA9PSAw KQorKworIAorICNkZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9WQUxVRShhcnJheXR5cGUp IFwKKyAgICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBlKSkpKQor QEAgLTE3ODMsNiArMTgwMCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5 cGVfd2l0aF9zdHJpZGUKKyAKKyBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9yYW5nZV90eXBl IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAorIAkJCQkgICAgICAgY29uc3Qgc3RydWN0 IGR5bmFtaWNfcHJvcCAqLAorKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAq LAorIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqKTsKKyAKKyBleHRlcm4g c3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlw ZSAqLAorZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKK2luZGV4IDJiMDA3 MDguLjk5MmFmODcgMTAwNjQ0CistLS0gYS9nZGIvcGFyc2UuYworKysrIGIvZ2RiL3BhcnNlLmMK K0BAIC0xMDA2LDIyICsxMDA2LDIwIEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qg c3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCisgCisgICAgIGNhc2UgT1BfUkFO R0U6CisgICAgICAgb3BsZW4gPSAzOworKyAgICAgIGFyZ3MgPSAwOworICAgICAgIHJhbmdlX3R5 cGUgPSAoZW51bSByYW5nZV90eXBlKQorIAlsb25nZXN0X3RvX2ludCAoZXhwci0+ZWx0c1tlbmRw b3MgLSAyXS5sb25nY29uc3QpOworIAorLSAgICAgIHN3aXRjaCAocmFuZ2VfdHlwZSkKKy0Jewor LQljYXNlIExPV19CT1VORF9ERUZBVUxUOgorLQljYXNlIEhJR0hfQk9VTkRfREVGQVVMVDoKKy0J ICBhcmdzID0gMTsKKy0JICBicmVhazsKKy0JY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6CistCSAg YXJncyA9IDA7CistCSAgYnJlYWs7CistCWNhc2UgTk9ORV9CT1VORF9ERUZBVUxUOgorLQkgIGFy Z3MgPSAyOworLQkgIGJyZWFrOworLQl9CisrICAgICAgLyogSW5jcmVtZW50IHRoZSBhcmd1bWVu dCBjb3VudGVyIGZvciBlYWNoIGFyZ3VtZW50CisrCSBwcm92aWRlZCBieSB0aGUgdXNlci4gICov CisrICAgICAgaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlfTE9XX0JPVU5EKSA9PSBTVUJBUlJB WV9MT1dfQk9VTkQpCisrCWFyZ3MrKzsKKysKKysgICAgICBpZiAoKHJhbmdlX3R5cGUgJiBTVUJB UlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorKwlhcmdzKys7CisrCisr ICAgICAgaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlfU1RSSURFKSA9PSBTVUJBUlJBWV9TVFJJ REUpCisrCWFyZ3MrKzsKKyAKKyAgICAgICBicmVhazsKKyAKK2RpZmYgLS1naXQgYS9nZGIvcnVz dC1leHAueSBiL2dkYi9ydXN0LWV4cC55CitpbmRleCBhZWI2MDU4Li5iMWI5NjMzIDEwMDY0NAor LS0tIGEvZ2RiL3J1c3QtZXhwLnkKKysrKyBiL2dkYi9ydXN0LWV4cC55CitAQCAtMjQyOSwyMyAr MjQyOSwxNyBAQCBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdHJ1Y3QgcGFyc2VyX3N0YXRl ICpzdGF0ZSwKKyAKKyAgICAgY2FzZSBPUF9SQU5HRToKKyAgICAgICB7CistCWVudW0gcmFuZ2Vf dHlwZSBraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOworKwllbnVtIHJhbmdlX3R5cGUga2luZCA9 IFNVQkFSUkFZX05PTkVfQk9VTkQ7CisgCisgCWlmIChvcGVyYXRpb24tPmxlZnQub3AgIT0gTlVM TCkKKyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0 aW9uLT5sZWZ0Lm9wLCB0b3ApOworLQkgICAga2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKKysJ ICAgIGtpbmQgPSBTVUJBUlJBWV9MT1dfQk9VTkQ7CisgCSAgfQorIAlpZiAob3BlcmF0aW9uLT5y aWdodC5vcCAhPSBOVUxMKQorIAkgIHsKKyAJICAgIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24g KHN0YXRlLCBvcGVyYXRpb24tPnJpZ2h0Lm9wLCB0b3ApOworLQkgICAgaWYgKGtpbmQgPT0gQk9U SF9CT1VORF9ERUZBVUxUKQorLQkgICAgICBraW5kID0gTE9XX0JPVU5EX0RFRkFVTFQ7CistCSAg ICBlbHNlCistCSAgICAgIHsKKy0JCWdkYl9hc3NlcnQgKGtpbmQgPT0gSElHSF9CT1VORF9ERUZB VUxUKTsKKy0JCWtpbmQgPSBOT05FX0JPVU5EX0RFRkFVTFQ7CistCSAgICAgIH0KKysJICAgIGtp bmQgPSAocmFuZ2VfdHlwZSkgKGtpbmQgfCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKKyAJICB9Cisg CXdyaXRlX2V4cF9lbHRfb3Bjb2RlIChzdGF0ZSwgT1BfUkFOR0UpOworIAl3cml0ZV9leHBfZWx0 X2xvbmdjc3QgKHN0YXRlLCBraW5kKTsKK2RpZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9n ZGIvcnVzdC1sYW5nLmMKK2luZGV4IDE3YjIwYzYuLjI5NTAwMmYgMTAwNjQ0CistLS0gYS9nZGIv cnVzdC1sYW5nLmMKKysrKyBiL2dkYi9ydXN0LWxhbmcuYworQEAgLTEyNDEsOSArMTI0MSw5IEBA IHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUpCisgICBraW5kID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4 cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsKKyAgICpwb3MgKz0gMzsKKyAKKy0gIGlmIChr aW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IE5PTkVfQk9VTkRfREVGQVVMVCkK KysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5E KQorICAgICBsb3cgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lk ZSk7CistICBpZiAoa2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IE5PTkVfQk9V TkRfREVGQVVMVCkKKysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IFNVQkFS UkFZX0hJR0hfQk9VTkQpCisgICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwg ZXhwLCBwb3MsIG5vc2lkZSk7CisgCisgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKK0BAIC0x MzMyLDcgKzEzMzIsNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgdmFsdWUgKnJhbmdlLAorIAorICAgKmxvdyA9IDA7CisgICAqaGlnaCA9IDA7CistICAq a2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgICpraW5kID0gU1VCQVJSQVlfTk9ORV9CT1VO RDsKKyAKKyAgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09IDApCisgICAgIHJldHVybjsKK0BA IC0xMzQwLDE1ICsxMzQwLDE0IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCisgICBpID0gMDsKKyAgIGlmIChzdHJjbXAgKFRZUEVf RklFTERfTkFNRSAodHlwZSwgMCksICJzdGFydCIpID09IDApCisgICAgIHsKKy0gICAgICAqa2lu ZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKKysgICAgICAqa2luZCA9IFNVQkFSUkFZX0xPV19CT1VO RDsKKyAgICAgICAqbG93ID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCAwKSk7 CisgICAgICAgKytpOworICAgICB9CisgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA+IGkKKyAg ICAgICAmJiBzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSksICJlbmQiKSA9PSAwKQor ICAgICB7CistICAgICAgKmtpbmQgPSAoKmtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUCistCSAg ICAgICA/IExPV19CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxUKTsKKysgICAgICAq a2luZCA9IChyYW5nZV90eXBlKSAoKmtpbmQgfCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKKyAgICAg ICAqaGlnaCA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwgaSkpOworICAgICB9 CisgfQorQEAgLTEzNjMsNyArMTM2Miw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAorICAgc3RydWN0IHR5cGUg KnJoc3R5cGU7CisgICBMT05HRVNUIGxvdywgaGlnaF9ib3VuZDsKKyAgIC8qIEluaXRpYWxpemVk IHRvIGFwcGVhc2UgdGhlIGNvbXBpbGVyLiAgKi8KKy0gIGVudW0gcmFuZ2VfdHlwZSBraW5kID0g Qk9USF9CT1VORF9ERUZBVUxUOworKyAgZW51bSByYW5nZV90eXBlIGtpbmQgPSBTVUJBUlJBWV9O T05FX0JPVU5EOworICAgTE9OR0VTVCBoaWdoID0gMDsKKyAgIGludCB3YW50X3NsaWNlID0gMDsK KyAKK0BAIC0xNDI1LDcgKzE0MjQsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Np b24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAJZXJyb3IgKF8oIkNhbm5v dCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CisgCisgICAgICAgaWYgKHdhbnRfc2xpY2UK Ky0JICAmJiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBMT1dfQk9VTkRf REVGQVVMVCkpCisrCSAgJiYgKChraW5kICYgU1VCQVJSQVlfTE9XX0JPVU5EKSAhPSBTVUJBUlJB WV9MT1dfQk9VTkQpKQorIAlsb3cgPSBsb3dfYm91bmQ7CisgICAgICAgaWYgKGxvdyA8IDApCisg CWVycm9yIChfKCJJbmRleCBsZXNzIHRoYW4gemVybyIpKTsKK0BAIC0xNDQzLDcgKzE0NDIsNyBA QCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0g bm9zaWRlIG5vc2lkZSwKKyAJICBDT1JFX0FERFIgYWRkcjsKKyAJICBzdHJ1Y3QgdmFsdWUgKmFk ZHJ2YWwsICp0ZW07CisgCistCSAgaWYgKGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUIHx8IGtp bmQgPT0gSElHSF9CT1VORF9ERUZBVUxUKQorKwkgIGlmICgoa2luZCAmIFNVQkFSUkFZX0hJR0hf Qk9VTkQpICE9IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgCSAgICBoaWdoID0gaGlnaF9ib3VuZDsK KyAJICBpZiAoaGlnaCA8IDApCisgCSAgICBlcnJvciAoXygiSGlnaCBpbmRleCBsZXNzIHRoYW4g emVybyIpKTsKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1h cnJheXMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmV4cAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmNjOWVjYzAKKy0tLSAvZGV2L251 bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5leHAKK0BA IC0wLDAgKzEsNDIxIEBACisrIyBDb3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysjCisrIyBDb250cmlidXRlZCBieSBJbnRlbCBDb3JwLiA8Y2hyaXN0b3BoLnQu d2Vpbm1hbm5AaW50ZWwuY29tPgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisr Cisrc3RhbmRhcmRfdGVzdGZpbGUgc3RhdGljLWFycmF5cy5mOTAKKysKKytpZiB7IFtwcmVwYXJl X2Zvcl90ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1ZyBmOTB9 XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsK KysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCisrICAgIGNv bnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCUDEi XQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCUDEiICIuKkJQMS4qIgorKworKyMgVGVz dHMgc3ViYXJyYXlzIG9mIG9uZSBkaW1lbnNpb25hbCBhcnJheXMgd2l0aCBzdWJyYW5nZSB2YXJp YXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyMSIgIlxcJFxbMC05XF0rID0gXFwoMSwgMiwgMywg NCwgNSwgNiwgNywgOCwgOVxcKSIgXAorKwkJInByaW50IGFyMS4iCisrZ2RiX3Rlc3QgInByaW50 IGFyMVwoNDo3XCkiICJcXCRcWzAtOVxdKyA9IFxcKDQsIDUsIDYsIDdcXCkiIFwKKysJCSJwcmlu dCBhcjFcKDQ6N1wpIgorK2dkYl90ZXN0ICJwcmludCBhcjFcKDg6XCkiICJcXCRcWzAtOVxdKyA9 IFxcKDgsIDlcXCkuKiIgXAorKwkJInByaW50IGFyMVwoODpcKSIKKytnZGJfdGVzdCAicHJpbnQg YXIxXCg6M1wpIiAiXFwkXFswLTlcXSsgPSBcXCgxLCAyLCAzXFwpLioiIFwKKysJCSJwcmludCBh cjFcKDozXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMVwoOlwpIiAiXFwkXFswLTlcXSsgPSBcXCgx LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XFwpIiBcCisrCQkicHJpbnQgYXIxXCg6XCkiCisrCisr IyBDaGVjayBhc3NpZ25tZW50CisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgXCRteV9hcnkgPSBh cjFcKDM6OFwpIgorK2dkYl90ZXN0ICJwcmludCBcJG15X2FyeSIgXAorKwkJIlxcJFxbMC05XF0r ID0gXFwoMywgNCwgNSwgNiwgNywgOFxcKSIgXAorKwkJIkFzc2lnbm1lbnQgb2Ygc3ViYXJyYXkg dG8gdmFyaWFibGUiCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgYXIxXCg1XCkgPSA0MiIKKysJ CWdkYl90ZXN0ICJwcmludCBhcjFcKDM6OFwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXCgzLCA0 LCA0MiwgNiwgNywgOFxcKSIgXAorKwkJInByaW50IGFyMVwoMzo4XCkgYWZ0ZXIgYXNzaWdubWVu dCIKKytnZGJfdGVzdCAicHJpbnQgXCRteV9hcnkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDMs IDQsIDUsIDYsIDcsIDhcXCkiIFwKKysJCSJBc3NpZ25tZW50IG9mIHN1YmFycmF5IHRvIHZhcmlh YmxlIGFmdGVyIG9yaWdpbmFsIGFycmF5IGNoYW5nZWQiCisrCisrIyBUZXN0IGZvciBzdWJhcnJh eXMgb2Ygb25lIGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxpdGVyYWxzCisrCQlnZGJfdGVzdCAi cHJpbnQgYXIxXCgzXCkiICJcXCRcWzAtOVxdKyA9IDMiIFwKKysJCSJwcmludCBhcjFcKDNcKSIK KysKKysjIFRlc3RzIGZvciBzdWJyYW5nZXMgb2YgMiBkaW1lbnNpb25hbCBhcnJheXMgd2l0aCBz dWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoMjozLCAzOjRcKSIgXAor KwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDIzLCAzM1xcKSBcXCggMjQsIDM0XFwpIFxcKSIgXAor KwkJInByaW50IGFyMlwoMjozLCAzOjRcKS4iCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoODo5LDg6 XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4OCwgOThcXCkgXFwoIDg5LCA5OVxcKSBc XCkiIFwKKysJCSJwcmludCBhcjJcKDg6OSw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjJcKDg6 OSw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggODEsIDkxXFwpIFxcKCA4MiwgOTJc XCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg4OjksOjJcKSIKKysKKytnZGJfdGVzdCAicHJpbnQg YXIyXCg4Oiw4OjlcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg4LCA5OFxcKSBcXCgg ODksIDk5XFwpIFxcKSIgXAorKwkJInByaW50IGFyMlwoODosODo5XCkiCisrZ2RiX3Rlc3QgInBy aW50IGFyMlwoODosODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg4LCA5OFxcKSBc XCggODksIDk5XFwpIFxcKSIgXAorKwkJInByaW50IGFyMlwoODosODpcKSIKKytnZGJfdGVzdCAi cHJpbnQgYXIyXCg4Oiw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggODEsIDkxXFwp IFxcKCA4MiwgOTJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg4Oiw6MlwpIgorKworK2dkYl90 ZXN0ICJwcmludCBhcjJcKDoyLDI6M1wpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTIs IDIyXFwpIFxcKCAxMywgMjNcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg6MiwyOjNcKSIKKytn ZGJfdGVzdCAicHJpbnQgYXIyXCg6Miw4OlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCgg MTgsIDI4XFwpIFxcKCAxOSwgMjlcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg6Miw4OlwpIgor K2dkYl90ZXN0ICJwcmludCBhcjJcKDoyLDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCAxMSwgMjFcXCkgXFwoIDEyLCAyMlxcKSBcXCkiIFwKKysJCSJwcmludCBhcjJcKDoyLDoyXCki CisrCisrIyBUZXN0IHN1YnJhbmdlcyBvZiAyIGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxpdGVy YWxzIGFuZCBzdWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoNywgMzo2 XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDczLCA3NCwgNzUsIDc2XFwpIiBcCisrCQkicHJp bnQgYXIyXCg3LCAzOjZcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIyXCg3LDg6XCkiIFwKKysJCSJc XCRcWzAtOVxdKyA9IFxcKDc4LCA3OVxcKSIgXAorKwkJInByaW50IGFyMlwoNyw4OlwpIgorK2dk Yl90ZXN0ICJwcmludCBhcjJcKDcsOjJcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoNzEsIDcy XFwpIiBcCisrCQkicHJpbnQgYXIyXCg3LDoyXCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyMlwo Nzo4LDRcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoNzQsIDg0XFwpIiBcCisrCQkicHJpbnQg YXIyKDc6OCw0XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoODosNFwpIiBcCisrCQkiXFwkXFsw LTlcXSsgPSBcXCg4NCwgOTRcXCkiIFwKKysJCSJwcmludCBhcjJcKDg6LDRcKSIKKytnZGJfdGVz dCAicHJpbnQgYXIyXCg6Miw0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDE0LCAyNFxcKSIg XAorKwkJInByaW50IGFyMlwoOjIsNFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjJcKDMsNFwpIiBc CisrCQkiXFwkXFswLTlcXSsgPSAzNCIgXAorKwkJInByaW50IGFyMlwoMyw0XCkiCisrCisrIyBU ZXN0IHN1YmFycmF5cyBvZiAzIGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxpdGVyYWxzIGFuZCBz dWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjo0LDM6NCw3OjhcKSIg XAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMzcsIDMzNywgNDM3XFwpIFxcKCAyNDcs IDM0NywgNDQ3XFwpXAorKwkJIFxcKSBcXCggXFwoIDIzOCwgMzM4LCA0MzhcXCkgXFwoIDI0OCwg MzQ4LCA0NDhcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjo0LDM6NCw3OjhcKSIKKytn ZGJfdGVzdCAicHJpbnQgYXIzXCgyOjMsNDo1LDg6XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxc KFxcKCBcXCggMjQ4LCAzNDhcXCkgXFwoIDI1OCwgMzU4XFwpIFxcKSBcXChcCisrCQkgXFwoIDI0 OSwgMzQ5XFwpIFxcKCAyNTksIDM1OVxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyOjMs NDo1LDg6XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDQ6NSw6MlwpIiBcCisrCQkiXFwk XFswLTlcXSsgPSBcXChcXCggXFwoIDI0MSwgMzQxXFwpIFxcKCAyNTEsIDM1MVxcKSBcXCkgXFwo XAorKwkJIFxcKCAyNDIsIDM0MlxcKSBcXCggMjUyLCAzNTJcXCkgXFwpIFxcKSIgXAorKwkJInBy aW50IGFyM1woMjozLDQ6NSw6MlwpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6Myw4Oiw3 OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyODcsIDM4N1xcKSBcXCggMjk3 LCAzOTdcXCkgXFwpIFxcKFwKKysJCSBcXCggMjg4LCAzODhcXCkgXFwoIDI5OCwgMzk4XFwpIFxc KSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDI6Myw4Oiw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQg YXIzXCgyOjMsODosODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyODgsIDM4 OFxcKSBcXCggMjk4LCAzOThcXCkgXFwpIFxcKFwKKysJCSBcXCggMjg5LCAzODlcXCkgXFwoIDI5 OSwgMzk5XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDI6Myw4Oiw4OlwpIgorK2dkYl90 ZXN0ICJwcmludCBhcjNcKDI6Myw4Oiw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCgg XFwoIDI4MSwgMzgxXFwpIFxcKCAyOTEsIDM5MVxcKSBcXCkgXFwoXAorKwkJIFxcKCAyODIsIDM4 MlxcKSBcXCggMjkyLCAzOTJcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjozLDg6LDoy XCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDoyLDc6OFwpIiBcCisrCQkiXFwkXFsw LTlcXSsgPSBcXChcXCggXFwoIDIxNywgMzE3XFwpIFxcKCAyMjcsIDMyN1xcKSBcXCkgXFwoXAor KwkJIFxcKCAyMTgsIDMxOFxcKSBcXCggMjI4LCAzMjhcXCkgXFwpIFxcKSIgXAorKwkJInByaW50 IGFyM1woMjozLDoyLDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6Myw6Miw4OlwpIiBc CisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDIxOCwgMzE4XFwpIFxcKCAyMjgsIDMyOFxc KSBcXCkgXFwoXAorKwkJIFxcKCAyMTksIDMxOVxcKSBcXCggMjI5LCAzMjlcXCkgXFwpIFxcKSIg XAorKwkJInByaW50IGFyM1woMjozLDoyLDg6XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjoz LDoyLDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMjExLCAzMTFcXCkgXFwo IDIyMSwgMzIxXFwpIFxcKSBcXChcCisrCQkgXFwoIDIxMiwgMzEyXFwpIFxcKCAyMjIsIDMyMlxc KSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyOjMsOjIsOjJcKSIKKysKKytnZGJfdGVzdCAi cHJpbnQgYXIzXCg4OiwzOjQsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCgg ODM3LCA5MzdcXCkgXFwoIDg0NywgOTQ3XFwpIFxcKSBcXChcCisrCQkgXFwoIDgzOCwgOTM4XFwp IFxcKCA4NDgsIDk0OFxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg4OiwzOjQsNzo4XCki CisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosNDo1LDg6XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCBcXCggODQ4LCA5NDhcXCkgXFwoIDg1OCwgOTU4XFwpIFxcKSBcXChcCisrCQkgXFwo IDg0OSwgOTQ5XFwpIFxcKCA4NTksIDk1OVxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg4 Oiw0OjUsODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw0OjUsOjJcKSIgXAorKwkJIlxc JFxbMC05XF0rID0gXFwoXFwoIFxcKCA4NDEsIDk0MVxcKSBcXCggODUxLCA5NTFcXCkgXFwpIFxc KFwKKysJCSBcXCggODQyLCA5NDJcXCkgXFwoIDg1MiwgOTUyXFwpIFxcKSBcXCkiIFwKKysJCSJw cmludCBhcjNcKDg6LDQ6NSw6MlwpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDg6LDc6 OFwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDg4NywgOTg3XFwpIFxcKCA4OTcs IDk5N1xcKSBcXCkgXFwoXAorKwkJIFxcKCA4ODgsIDk4OFxcKSBcXCggODk4LCA5OThcXCkgXFwp IFxcKSIgXAorKwkJInByaW50IGFyM1woODosODosNzo4XCkiCisrZ2RiX3Rlc3QgInByaW50IGFy M1woODosODosODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA4ODgsIDk4OFxc KSBcXCggODk4LCA5OThcXCkgXFwpIFxcKFwKKysJCSBcXCggODg5LCA5ODlcXCkgXFwoIDg5OSwg OTk5XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDg6LDg6XCkiCisrZ2RiX3Rlc3Qg InByaW50IGFyM1woODosODosOjJcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA4 ODEsIDk4MVxcKSBcXCggODkxLCA5OTFcXCkgXFwpIFxcKFwKKysJCSBcXCggODgyLCA5ODJcXCkg XFwoIDg5MiwgOTkyXFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDg6LDoyXCkiCisr CisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosOjIsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCBcXCggODE3LCA5MTdcXCkgXFwoIDgyNywgOTI3XFwpIFxcKSBcXChcCisrCQkgXFwo IDgxOCwgOTE4XFwpIFxcKCA4MjgsIDkyOFxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg4 Oiw6Miw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw6Miw4OlwpIiBcCisrCQkiXFwk XFswLTlcXSsgPSBcXChcXCggXFwoIDgxOCwgOTE4XFwpIFxcKCA4MjgsIDkyOFxcKSBcXCkgXFwo XAorKwkJIFxcKCA4MTksIDkxOVxcKSBcXCggODI5LCA5MjlcXCkgXFwpIFxcKSIgXAorKwkJInBy aW50IGFyM1woODosOjIsODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw6Miw6MlwpIiBc CisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDgxMSwgOTExXFwpIFxcKCA4MjEsIDkyMVxc KSBcXCkgXFwoXAorKwkJIFxcKCA4MTIsIDkxMlxcKSBcXCggODIyLCA5MjJcXCkgXFwpIFxcKSIg XAorKwkJInByaW50IGFyM1woODosOjIsOjJcKSIKKysKKysKKytnZGJfdGVzdCAicHJpbnQgYXIz XCg6MiwzOjQsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMTM3LCAyMzdc XCkgXFwoIDE0NywgMjQ3XFwpIFxcKSBcXChcCisrCQkgXFwoIDEzOCwgMjM4XFwpIFxcKCAxNDgs IDI0OFxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzIFwoOjIsMzo0LDc6OFwpLiIKKytnZGJf dGVzdCAicHJpbnQgYXIzXCg6MiwzOjQsODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IFxcKCAxMzgsIDIzOFxcKSBcXCggMTQ4LCAyNDhcXCkgXFwpIFxcKFwKKysJCSBcXCggMTM5LCAy MzlcXCkgXFwoIDE0OSwgMjQ5XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDoyLDM6NCw4 OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDM6NCw6MlwpIiBcCisrCQkiXFwkXFswLTlc XSsgPSBcXChcXCggXFwoIDEzMSwgMjMxXFwpIFxcKCAxNDEsIDI0MVxcKSBcXCkgXFwoXAorKwkJ IFxcKCAxMzIsIDIzMlxcKSBcXCggMTQyLCAyNDJcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFy M1woOjIsMzo0LDoyXCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsODosNzo4XCkiICJc XCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMTg3LCAyODdcXCkgXFwoXAorKwkJIDE5NywgMjk3XFwp IFxcKSBcXCggXFwoIDE4OCwgMjg4XFwpIFxcKCAxOTgsIDI5OFxcKSBcXCkgXFwpIiBcCisrCQki cHJpbnQgYXIzXCg6Miw4Oiw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw4Oiw4Olwp IiAiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDE4OCwgMjg4XFwpIFxcKCAxOTgsXAorKwkJIDI5 OFxcKSBcXCkgXFwoIFxcKCAxODksIDI4OVxcKSBcXCggMTk5LCAyOTlcXCkgXFwpIFxcKSIgXAor KwkJInByaW50IGFyM1woOjIsODosODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw4Oiw6 MlwpIiAiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDE4MSwgMjgxXFwpIFxcKCAxOTEsXAorKwkJ IDI5MVxcKSBcXCkgXFwoIFxcKCAxODIsIDI4MlxcKSBcXCggMTkyLCAyOTJcXCkgXFwpIFxcKSIg XAorKwkJInByaW50IGFyM1woOjIsODosOjJcKSIKKysKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg6 Miw6Miw3OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxMTcsIDIxN1xcKSBc XCggMTI3LCAyMjdcXCkgXFwpIFxcKFwKKysJCSBcXCggMTE4LCAyMThcXCkgXFwoIDEyOCwgMjI4 XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDoyLDoyLDc6OFwpIgorK2dkYl90ZXN0ICJw cmludCBhcjNcKDoyLDoyLDg6XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMTE4 LCAyMThcXCkgXFwoIDEyOCwgMjI4XFwpIFxcKSBcXChcCisrCQkgXFwoIDExOSwgMjE5XFwpIFxc KCAxMjksIDIyOVxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw6Miw4OlwpIgorK2dk Yl90ZXN0ICJwcmludCBhcjNcKDoyLDoyLDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCBcXCggMTExLCAyMTFcXCkgXFwoIDEyMSwgMjIxXFwpIFxcKSBcXChcCisrCQkgXFwoIDExMiwg MjEyXFwpIFxcKCAxMjIsIDIyMlxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw6Miw6 MlwpIgorKworKyNUZXN0cyBmb3Igc3ViYXJyYXlzIG9mIDMgZGltZW5zaW9uYWwgYXJyYXlzIHdp dGggbGl0ZXJhbHMgYW5kIHN1YnJhbmdlcworK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsMzo0LDc6 OFwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMzM3LCAzNDdcXCkgXFwoIDMzOCwgMzQ4 XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMywzOjQsNzo4XCkiCisrZ2RiX3Rlc3QgInByaW50 IGFyM1woMyw0OjUsODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDM0OCwgMzU4XFwp IFxcKCAzNDksIDM1OVxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDMsNDo1LDg6XCkiCisrZ2Ri X3Rlc3QgInByaW50IGFyM1woMyw0OjUsOjJcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IDM0MSwgMzUxXFwpIFxcKCAzNDIsIDM1MlxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDMsNDo1 LDoyXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0OjUsM1wpIiBcCisrCQkiXFwkXFswLTlc XSsgPSBcXCgzNDMsIDM1M1xcKSIgXAorKwkJInByaW50IGFyM1woMyw0OjUsM1wpIgorKworK2dk Yl90ZXN0ICJwcmludCBhcjNcKDIsODosNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCAyODcsIDI5N1xcKSBcXCggMjg4LCAyOThcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyLDg6 LDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsODosODpcKSIgXAorKwkJIlxcJFxbMC05 XF0rID0gXFwoXFwoIDI4OCwgMjk4XFwpIFxcKCAyODksIDI5OVxcKSBcXCkiIFwKKysJCSJwcmlu dCBhcjNcKDIsODosODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDg6LDoyXCkiXAorKwkJ IlxcJFxbMC05XF0rID0gXFwoXFwoIDI4MSwgMjkxXFwpIFxcKCAyODIsIDI5MlxcKSBcXCkiIFwK KysJCSJwcmludCBhcjNcKDIsODosOjJcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDg6LDNc KSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoMjgzLCAyOTNcXCkiIFwKKysJCSJwcmludCBhcjNc KDIsODosM1wpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsOjIsNzo4XCkiIFwKKysJCSJc XCRcWzAtOVxdKyA9IFxcKFxcKCAyMTcsIDIyN1xcKSBcXCggMjE4LCAyMjhcXCkgXFwpIiBcCisr CQkicHJpbnQgYXIzXCgyLDoyLDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsOjIsODpc KSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDIxOCwgMjI4XFwpIFxcKCAyMTksIDIyOVxc KSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDIsOjIsODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIz XCgyLDoyLDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyMTEsIDIyMVxcKSBcXCgg MjEyLCAyMjJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyLDoyLDoyXCkiCisrZ2RiX3Rlc3Qg InByaW50IGFyM1woMiw6MiwzXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDIxMywgMjIzXFwp IiBcCisrCQkicHJpbnQgYXIzXCgyLDoyLDNcKSIKKysKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgz LDQsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDM0NywgMzQ4XFwpIiBcCisrCQkicHJp bnQgYXIzXCgzLDQsNzo4XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0LDg6XCkiIFwKKysJ CSJcXCRcWzAtOVxdKyA9IFxcKDM0OCwgMzQ5XFwpIiBcCisraQkJInByaW50IGFyM1woMyw0LDg6 XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0LDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9 IFxcKDM0MSwgMzQyXFwpIiBcCisrCQkicHJpbnQgYXIzXCgzLDQsOjJcKSIKKytnZGJfdGVzdCAi cHJpbnQgYXIzXCg1LDYsN1wpIiBcCisrCQkiXFwkXFswLTlcXSsgPSA1NjciIFwKKysJCSJwcmlu dCBhcjNcKDUsNiw3XCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDYsNzo4XCkiIFwK KysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAzNjcsIDQ2N1xcKSBcXCggMzY4LCA0NjhcXCkgXFwp IiBcCisrCQkicHJpbnQgYXIzXCgzOjQsNiw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgz OjQsNiw4OlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMzY4LCA0NjhcXCkgXFwoIDM2 OSwgNDY5XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMzo0LDYsODpcKSIKKytnZGJfdGVzdCAi cHJpbnQgYXIzXCgzOjQsNiw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMzYxLCA0 NjFcXCkgXFwoIDM2MiwgNDYyXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMzo0LDYsOjJcKSIK KytnZGJfdGVzdCAicHJpbnQgYXIzXCgzOjQsNiw1XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxc KDM2NSwgNDY1XFwpIiBcCisrCQkicHJpbnQgYXIzXCgzOjQsNiw1XCkiCisrCisrZ2RiX3Rlc3Qg InByaW50IGFyM1woODosNiw3OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg2Nywg OTY3XFwpIFxcKCA4NjgsIDk2OFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDYsNzo4XCki CisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosNiw4OlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBc XChcXCggODY4LCA5NjhcXCkgXFwoIDg2OSwgOTY5XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1wo ODosNiw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDYsOjJcKSIgXAorKwkJIlxcJFxb MC05XF0rID0gXFwoXFwoIDg2MSwgOTYxXFwpIFxcKCA4NjIsIDk2MlxcKSBcXCkiIFwKKysJCSJw cmludCBhcjNcKDg6LDYsOjJcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw2LDVcKSIgXAor KwkJIlxcJFxbMC05XF0rID0gXFwoODY1LCA5NjVcXCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDYs NVwpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDYsNzo4XCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCAxNjcsIDI2N1xcKSBcXCggMTY4LCAyNjhcXCkgXFwpIiBcCisrCQkicHJp bnQgYXIzXCg6Miw2LDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDYsODpcKSIgXAor KwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDE2OCwgMjY4XFwpIFxcKCAxNjksIDI2OVxcKSBcXCki IFwKKysJCSJwcmludCBhcjNcKDoyLDYsODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw2 LDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAxNjEsIDI2MVxcKSBcXCggMTYyLCAy NjJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw2LDoyXCkiCisrZ2RiX3Rlc3QgInByaW50 IGFyM1woOjIsNiw1XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDE2NSwgMjY1XFwpIiBcCisr CQkicHJpbnQgYXIzXCg6Miw2LDVcKSIKKysKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgzOjQsNTo2 LDRcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDM1NCwgNDU0XFwpIFxcKCAzNjQsIDQ2 NFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjJcKDM6NCw1OjYsNFwpIgorK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDg6LDU6Niw0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4NTQsIDk1NFxc KSBcXCggODY0LCA5NjRcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg4Oiw1OjYsNFwpIgorK2dk Yl90ZXN0ICJwcmludCBhcjNcKDoyLDU6Niw0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCAxNTQsIDI1NFxcKSBcXCggMTY0LCAyNjRcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg6Miw1 OjYsNFwpIgorKworKyMgU3RyaWRlID4gMQorK2dkYl90ZXN0ICJwcmludCBhcjFcKDI6NjoyXCki IFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDIsIDQsIDZcXCkiIFwKKysJCSJwcmludCBhcjFcKDI6 NjoyXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoMjo2OjIsMzo0XCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCAyMywgNDMsIDYzXFwpIFxcKCAyNCwgNDQsIDY0XFwpIFxcKSIgXAorKwkJ InByaW50IGFyMlwoMjo2OjIsMzo0XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoMjo2OjIsM1wp IiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXCgyMywgNDMsIDYzXFwpIiBcCisrCQkicHJpbnQgYXIy XCgyOjY6MiwzXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjo2OjIsMzo1OjIsNDo3OjNcKSIg XAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMzQsIDQzNCwgNjM0XFwpIFxcKCAyNTQs IDQ1NCwgNjU0XFwpXAorKwkJIFxcKSBcXCggXFwoIDIzNywgNDM3LCA2MzdcXCkgXFwoIDI1Nywg NDU3LCA2NTdcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjo2OjIsMzo1OjIsNDo3OjNc KSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjY6Miw1LDQ6NzozXCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCAyNTQsIDQ1NCwgNjU0XFwpIFxcKCAyNTcsIDQ1NywgNjU3XFwpXAorKwkJ IFxcKSIgXAorKwkJInByaW50IGFyM1woMjo2OjIsNSw0Ojc6M1wpIgorKworKyMgU3RyaWRlIDwg MAorK2dkYl90ZXN0ICJwcmludCBhcjFcKDg6MjotMlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBc XCg4LCA2LCA0LCAyXFwpIiBcCisrCQkicHJpbnQgYXIxXCg4OjI6LTJcKSIKKytnZGJfdGVzdCAi cHJpbnQgYXIyXCg4OjI6LTIsMzo0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4Mywg NjMsIDQzLCAyM1xcKSBcXCggODQsIDY0LCA0NCwgMjRcXClcCisrCQkgXFwpIiBcCisrCQkicHJp bnQgYXIyXCg4OjI6LTIsMzo0XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoMjo2OjIsM1wpIiBc CisrCQkiXFwkXFswLTlcXSsgPSBcXCgyMywgNDMsIDYzXFwpIiBcCisrCQkicHJpbnQgYXIyXCgy OjY6MiwzXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDc6MzotNCw0Ojc6M1wpIiBcCisr CQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDI3NCwgMzc0XFwpIFxcKCAyMzQsIDMzNFxcKSBc XCkgXFwoXAorKwkJIFxcKCAyNzcsIDM3N1xcKSBcXCggMjM3LCAzMzdcXCkgXFwpIFxcKSIgXAor KwkJInByaW50IGFyM1woMjozLDc6MzotNCw0Ojc6M1wpIgorK2dkYl90ZXN0ICJwcmludCBhcjNc KDI6NjoyLDUsNzo0Oi0zXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyNTcsIDQ1Nywg NjU3XFwpIFxcKCAyNTQsIDQ1NCwgNjU0XFwpXAorKwkJIFxcKSIgXAorKwkJInByaW50IGFyM1wo Mjo2OjIsNSw3OjQ6LTNcKSIKKysKKysjIFRlc3RzIHdpdGggbmVnYXRpdmUgYW5kIG1peGVkIGlu ZGljZXMKKytnZGJfdGVzdCAicCBhcjRcKDI6NCwgLTI6MSwgLTE1Oi0xNFwpIiBcCisrCQkiXFwk XFswLTlcXSsgPSBcXChcXCggXFwoIDI2MSwgMzYxLCA0NjFcXCkgXFwoIDI3MSwgMzcxLCA0NzFc XClcCisrCQkgXFwoIDI4MSwgMzgxLCA0ODFcXCkgXFwoIDI5MSwgMzkxLCA0OTFcXCkgXFwpIFxc KCBcXCggMjYyLFwKKysJCSAzNjIsIDQ2MlxcKSBcXCggMjcyLCAzNzIsIDQ3MlxcKSBcXCggMjgy LCAzODIsIDQ4MlxcKSBcXCggMjkyLFwKKysJCSAzOTIsIDQ5MlxcKSBcXCkgXFwpIiBcCisrCQki cHJpbnQgYXI0KDI6NCwgLTI6MSwgLTE1Oi0xNCkiCisrCisrZ2RiX3Rlc3QgInAgYXI0XCg3LC02 OjI6MywtN1wpIiBcCisrICAgICAgICAgICAgICAgICJcXCRcWzAtOVxdKyA9IFxcKDcyOSwgNzU5 LCA3ODlcXCkiIFwKKysgICAgICAgICAgICAgICAgInByaW50IGFyNCg3LC02OjI6MywtNykiCisr CisrZ2RiX3Rlc3QgInAgYXI0XCg5OjI6LTIsIC02OjI6MywgLTY6LTE1Oi0zXCkiIFwKKysgICAg ICAgICAgICAgICAgIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA5MzAsIDczMCwgNTMwLCAzMzBc XCkgXFwoIDk2MCwgNzYwLFwKKysJCSA1NjAsIDM2MFxcKSBcXCggOTkwLCA3OTAsIDU5MCwgMzkw XFwpIFxcKSBcXCggXFwoIDkyNywgNzI3LFwKKysJCSA1MjcsIDMyN1xcKSBcXCggOTU3LCA3NTcs IDU1NywgMzU3XFwpIFxcKCA5ODcsIDc4NywgNTg3LFwKKysJCSAzODdcXCkgXFwpIFxcKCBcXCgg OTI0LCA3MjQsIDUyNCwgMzI0XFwpIFxcKCA5NTQsIDc1NCwgNTU0LFwKKysJCSAzNTRcXCkgXFwo IDk4NCwgNzg0LCA1ODQsIDM4NFxcKSBcXCkgXFwoIFxcKCA5MjEsIDcyMSwgNTIxLFwKKysJCSAz MjFcXCkgXFwoIDk1MSwgNzUxLCA1NTEsIDM1MVxcKSBcXCggOTgxLCA3ODEsIDU4MSwgMzgxXFwp IFxcKVwKKysJCSBcXCkiIFwKKysgICAgICAgICAgICAgICAgInByaW50IGFyNCg5OjI6LTIsIC02 OjI6MywgLTY6LTE1Oi0zKSIKKysKKytnZGJfdGVzdCAicCBhcjRcKDosOiw6XCkiIFwKKysgICAg ICAgICAgICAgICAgIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxMTEsIDIxMSwgMzExLCA0MTEs IDUxMSwgNjExLCA3MTEsXAorKwkJIDgxMSwgLioiIFwKKysgICAgICAgICAgICAgICAgInByaW50 IGFyNCg6LDosOikiCisrCisrIyBQcm92b2tlIGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgdXNlciBp bnB1dAorK2dkYl90ZXN0ICJwcmludCBhcjFcKDA6NFwpIiBcCisrCQkicHJvdmlkZWQgYm91bmRc XChzXFwpIG91dHNpZGUgYXJyYXkgYm91bmRcXChzXFwpIiBcCisrCQkicHJpbnQgYXIxXCgwOjRc KSIKKytnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjEyXCkiIFwKKysJCSJwcm92aWRlZCBib3VuZFxc KHNcXCkgb3V0c2lkZSBhcnJheSBib3VuZFxcKHNcXCkiIFwKKysJCSJwcmludCBhcjFcKDg6MTJc KSIKKytnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjI6XCkiIFwKKysJCSJBIHN5bnRheCBlcnJvciBp biBleHByZXNzaW9uLCBuZWFyIGBcXCknLiIgXAorKwkJInByaW50IGFyMVwoODoyOlwpIgorK2dk Yl90ZXN0ICJwcmludCBhcjFcKDg6MjoyXCkiIFwKKysJCSJXcm9uZyB2YWx1ZSBwcm92aWRlZCBm b3Igc3RyaWRlIGFuZCBib3VuZGFyaWVzIiBcCisrCQkicHJpbnQgYXIxXCg4OjI6MlwpIgorK2dk Yl90ZXN0ICJwcmludCBhcjFcKDI6ODotMlwpIiBcCisrCQkiV3JvbmcgdmFsdWUgcHJvdmlkZWQg Zm9yIHN0cmlkZSBhbmQgYm91bmRhcmllcyIgXAorKwkJInByaW50IGFyMVwoMjo4Oi0yXCkiCisr Z2RiX3Rlc3QgInByaW50IGFyMVwoMjo3OjBcKSIgXAorKwkJIlN0cmlkZSBtdXN0IG5vdCBiZSAw IiBcCisrCQkicHJpbnQgYXIxXCgyOjc6MFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjFcKDM6N1wp ID0gNDIiIFwKKysJCSJJbnZhbGlkIGNhc3QuIiBcCisrCQkiQXNzaWdubWVudCBvZiB2YWx1ZSB0 byBzdWJhcnJheSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRp Yy1hcnJheXMuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5 MAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmYyMmZjYmUKKy0tLSAvZGV2 L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAK K0BAIC0wLDAgKzEsNTUgQEAKKyshIENvcHlyaWdodCAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEludGVsIENvcnAuIDxjaHJpc3RvcGgu dC53ZWlubWFubkBpbnRlbC5jb20+CisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysh CisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KysKKytzdWJyb3V0aW5lIHN1YgorKyAgaW50ZWdlciwgZGltZW5zaW9uKDkpIDo6IGFyMQorKyAg aW50ZWdlciwgZGltZW5zaW9uKDksOSkgOjogYXIyCisrICBpbnRlZ2VyLCBkaW1lbnNpb24oOSw5 LDkpIDo6IGFyMworKyAgaW50ZWdlciwgZGltZW5zaW9uKDEwLC03OjMsIC0xNTotNSkgOjogYXI0 CisrICBpbnRlZ2VyIDo6IGksaixrCisrCisrICBhcjEgPSAxCisrICBhcjIgPSAxCisrICBhcjMg PSAxCisrICBhcjQgPSA0CisrCisrICAhIFJlc3VsdGluZyBhcnJheSBhcjMgbG9va3MgbGlrZSAo KCggMTExLCAxMTIsIDExMywgMTE0LC4uLikpKQorKyAgZG8gaSA9IDEsIDksIDEKKysgICAgYXIx KGkpID0gaQorKyAgICBkbyBqID0gMSwgOSwgMQorKyAgICAgIGFyMihpLGopID0gaSoxMCArIGoK KysgICAgICBkbyBrID0gMSwgOSwgMQorKyAgICAgICAgYXIzKGksaixrKSA9IGkqMTAwICsgaiox MCArIGsKKysgICAgICBlbmQgZG8KKysgICAgZW5kIGRvCisrICBlbmQgZG8KKysKKysgIGRvIGkg PSAxLCAxMCwgMQorKyAgICBkbyBqID0gLTcsIDMsIDEKKysgICAgICBkbyBrID0gLTE1LCAtNSwg MQorKyAgICAgICAgYXI0KGksaixrKSA9IGkqMTAwICsgKGorOCkqMTAgKyAoaysxNikKKysgICAg ICBlbmQgZG8KKysgICAgZW5kIGRvCisrICBlbmQgZG8KKysKKysgIGFyMSgxKSA9IDExICAhQlAx CisrICByZXR1cm4KKytlbmQKKysKKytwcm9ncmFtIHRlc3Rwcm9nCisrICBjYWxsIHN1YgorK2Vu ZAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZGNmMTVlNQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAorQEAgLTAsMCArMSw0NCBAQAor KyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgor KworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9 ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAt MQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRu J3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCisr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInJlLXJldmVyc2UtZWxlbWVudHMiCisrZ2RiX3Rl c3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwp IiBcCisrICAicHJpbnQgcmUtcmV2ZXJzZS1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZs YSgxKSIgIiA9IDEiICJwcmludCBmaXJzdCByZS1yZXZlcnNlLWVsZW1lbnQiCisrZ2RiX3Rlc3Qg InByaW50IHB2bGEoMTApIiAiID0gMTAiICJwcmludCBsYXN0IHJlLXJldmVyc2UtZWxlbWVudCIK KysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAib2RkLWVsZW1lbnRzIl0K KytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAib2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJw cmludCBwdmxhIiAiID0gXFxcKDEsIDMsIDUsIDcsIDlcXFwpIiAicHJpbnQgb2RkLWVsZW1lbnRz IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IG9kZC1lbGVt ZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDUpIiAiID0gOSIgInByaW50IGxhc3Qgb2RkLWVs ZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1l bGVtZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCisr Z2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVu dCIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVs ZW1lbnQiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRl LmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lYjAyNzRjCistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCitAQCAtMCwwICsxLDI5 IEBACisrISBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysh CisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrISAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEgCisrISBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KyEgCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3JhbSB2bGFfc3RyaWRl CisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikKKysgIGludGVnZXIs IHBvaW50ZXIgOjogcHZsYSAoOikKKysKKysgIGFsbG9jYXRlKHZsYSgxMCkpCisrICB2bGEgPSAo LyAoSSwgSSA9IDEsMTApIC8pCisrCisrICBwdmxhID0+IHZsYSgxMDoxOi0xKQorKyAgcHZsYSA9 PiBwdmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVs ZW1lbnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMKKysKKysgIHB2 bGEgPT4gbnVsbCgpICAgICAgICAhIHNpbmdsZS1lbGVtZW50CisrZW5kIHByb2dyYW0gdmxhX3N0 cmlkZQorZGlmZiAtLWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKK2luZGV4 IGRlNmZjZmQuLjkwOTM5NjkgMTAwNjQ0CistLS0gYS9nZGIvdmFsYXJpdGguYworKysrIGIvZ2Ri L3ZhbGFyaXRoLmMKK0BAIC0xOTMsOSArMTkzLDIxIEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1 ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2VyYm91bmQpCisg ICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy cmF5KSk7CisgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RB UkdFVF9UWVBFIChhcnJheV90eXBlKSk7CisgICBVTE9OR0VTVCBlbHRfc2l6ZSA9IHR5cGVfbGVu Z3RoX3VuaXRzIChlbHRfdHlwZSk7CistICBVTE9OR0VTVCBlbHRfb2ZmcyA9IGVsdF9zaXplICog KGluZGV4IC0gbG93ZXJib3VuZCk7CisrICBVTE9OR0VTVCBlbHRfb2ZmcyA9IGluZGV4IC0gbG93 ZXJib3VuZDsKKysgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVf SU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOworICAgc3RydWN0IHZhbHVlICp2OworIAorKyAgaWYg KGVsdF9zdHJpZGUgPiAwKQorKyAgICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRlOworKyAgZWxzZSBp ZiAoZWx0X3N0cmlkZSA8IDApCisrICAgIHsKKysgICAgICBpbnQgb2ZmcyA9IChlbHRfb2ZmcyAr IDEpICogZWx0X3N0cmlkZTsKKysKKysgICAgICBlbHRfb2ZmcyA9IFRZUEVfTEVOR1RIIChhcnJh eV90eXBlKSArIG9mZnM7CisrICAgIH0KKysgIGVsc2UKKysgICAgZWx0X29mZnMgKj0gZWx0X3Np emU7CisrCisgICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kIHx8ICghVFlQRV9BUlJBWV9VUFBFUl9C T1VORF9JU19VTkRFRklORUQgKGFycmF5X3R5cGUpCisgCQkJICAgICAmJiBlbHRfb2ZmcyA+PSB0 eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpKQorICAgICB7CitkaWZmIC0tZ2l0IGEvZ2Ri L3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCitpbmRleCA0MDM5MmU4Li4yNGZmYWNiIDEwMDY0NAor LS0tIGEvZ2RiL3ZhbG9wcy5jCisrKysgYi9nZGIvdmFsb3BzLmMKK0BAIC0zNzc1LDU2ICszNzc1 LDE5MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4g KmxhbmcpCisgc3RydWN0IHZhbHVlICoKKyB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJh eSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQorIHsKKysgIC8qIFBhc3MgdW5hbHRlcmVkIGFy Z3VtZW50cyB0byBWQUxVRV9TTElDRV8xLCBwbHVzIGEgZGVmYXVsdCBzdHJpZGUKKysgICAgIHZh bHVlIG9mICcxJywgd2hpY2ggcmV0dXJucyBldmVyeSBlbGVtZW50IGJldHdlZW4gTE9XQk9VTkQg YW5kCisrICAgICAoTE9XQk9VTkQgKyBMRU5HVEgpLiAgV2UgYWxzbyBwcm92aWRlIGEgZGVmYXVs dCBDQUxMX0NPVU5UIG9mICcxJworKyAgICAgYXMgd2UgYXJlIG9ubHkgY29uc2lkZXJpbmcgdGhl IGhpZ2hlc3QgZGltZW5zaW9uLCBvciB3ZSBhcmUKKysgICAgIHdvcmtpbmcgb24gYSBvbmUgZGlt ZW5zaW9uYWwgYXJyYXkuICBTbyB3ZSBjYWxsIFZBTFVFX1NMSUNFXzEKKysgICAgIGV4YWN0bHkg b25jZS4gICovCisrICByZXR1cm4gdmFsdWVfc2xpY2VfMSAoYXJyYXksIGxvd2JvdW5kLCBsZW5n dGgsIDEsIDEpOworK30KKysKKysvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBh cnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIKKysgICBvZiBlbGVtZW50cyBh cyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbi4KKysgICBDQUxMX0NPVU5UIGlz IHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBl LmcuCisrICAgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJlbnQgZGltZW5zaW9uIG9mIEFSUkFZ LCBvciBpZiB3ZSBhcmUgY2FsbGluZworKyAgIHRoZSBmdW5jdGlvbiByZXBlYXRlZGx5LiAgSW4g dGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtlIGVsZW1lbnRzCisrICAgZnJvbSB0aGUgVEFS R0VUX1RZUEUgb2YgQVJSQVkuCisrICAgV2l0aCBhIENBTExfQ09VTlQgZ3JlYXRlciB0aGFuIDEg d2UgY2FsY3VsYXRlIHRoZSBvZmZzZXRzIGZvciBldmVyeSBlbGVtZW50CisrICAgdGhhdCBzaG91 bGQgYmUgaW4gdGhlIHJlc3VsdCBhcnJheS4gIFRoZW4gd2UgZmV0Y2ggdGhlIGNvbnRlbnRzIGFu ZCB0aGVuCisrICAgY29weSB0aGVtIGludG8gdGhlIHJlc3VsdCBhcnJheS4gIFRoZSByZXN1bHQg YXJyYXkgd2lsbCBoYXZlIG9uZSBkaW1lbnNpb24KKysgICBsZXNzIHRoYW4gdGhlIGlucHV0IGFy cmF5LCBzbyBsYXRlciBvbiB3ZSBuZWVkIHRvIHJlY3JlYXRlIHRoZSBpbmRpY2VzIGFuZAorKyAg IHJhbmdlcyBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbi4gICovCisrCisrc3RydWN0IHZhbHVlICoK Kyt2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBs ZW5ndGgsCisrCSAgICAgICBpbnQgc3RyaWRlX2xlbmd0aCwgaW50IGNhbGxfY291bnQpCisrewor ICAgc3RydWN0IHR5cGUgKnNsaWNlX3JhbmdlX3R5cGUsICpzbGljZV90eXBlLCAqcmFuZ2VfdHlw ZTsKKy0gIExPTkdFU1QgbG93ZXJib3VuZCwgdXBwZXJib3VuZDsKKy0gIHN0cnVjdCB2YWx1ZSAq c2xpY2U7CistICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZTsKKysgIHN0cnVjdCB0eXBlICphcnJh eV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKKysgIHN0cnVjdCB0 eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpKTsKKysgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSwgZWx0X29mZnM7CisrICBMT05HRVNUIGFy eV9oaWdoX2JvdW5kLCBhcnlfbG93X2JvdW5kOworKyAgc3RydWN0IHZhbHVlICp2OworKyAgaW50 IHNsaWNlX3JhbmdlX3NpemUsIGkgPSAwLCByb3dfY291bnQgPSAxLCBlbGVtX2NvdW50ID0gMTsK KyAKKy0gIGFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwor KyAgLyogQ2hlY2sgZm9yIGxlZ2FjeSBjb2RlIGlmIHdlIGFyZSBhY3R1YWxseSBkZWFsaW5nIHdp dGggYW4gYXJyYXkgb3IKKysgICAgIHN0cmluZy4gICovCisgICBpZiAoVFlQRV9DT0RFIChhcnJh eV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkKKyAgICAgICAmJiBUWVBFX0NPREUgKGFycmF5X3R5 cGUpICE9IFRZUEVfQ09ERV9TVFJJTkcpCisgICAgIGVycm9yIChfKCJjYW5ub3QgdGFrZSBzbGlj ZSBvZiBub24tYXJyYXkiKSk7CisgCistICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChh cnJheV90eXBlKTsKKy0gIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93 ZXJib3VuZCwgJnVwcGVyYm91bmQpIDwgMCkKKy0gICAgZXJyb3IgKF8oInNsaWNlIGZyb20gYmFk IGFycmF5IG9yIGJpdHN0cmluZyIpKTsKKysgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VO RCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7CisrICBhcnlfaGlnaF9ib3VuZCA9IFRZ UEVfSElHSF9CT1VORCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7CisrCisrICAvKiBX aGVuIHdlIGFyZSB3b3JraW5nIG9uIGEgbXVsdGktZGltZW5zaW9uYWwgYXJyYXksIHdlIG5lZWQg dG8gZ2V0IHRoZQorKyAgICAgYXR0cmlidXRlcyBvZiB0aGUgdW5kZXJseWluZyB0eXBlLiAgKi8K KysgIGlmIChjYWxsX2NvdW50ID4gMSkKKysgICAgeworKyAgICAgIGFyeV9sb3dfYm91bmQgPSBU WVBFX0xPV19CT1VORCAoVFlQRV9JTkRFWF9UWVBFIChlbHRfdHlwZSkpOworKyAgICAgIGFyeV9o aWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChUWVBFX0lOREVYX1RZUEUgKGVsdF90eXBlKSk7 CisrICAgICAgZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRf dHlwZSkpOworKyAgICAgIHJvd19jb3VudCA9IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKQorKwkJ ICAgIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKKysgICAg fQorKworKyAgLyogV2l0aCBhIHN0cmlkZSBvZiAnMScsIHRoZSBudW1iZXIgb2YgZWxlbWVudHMg cGVyIHJlc3VsdCByb3cgaXMgZXF1YWwgdG8KKysgICAgIHRoZSBMRU5HVEggb2YgdGhlIHN1YmFy cmF5LiAgV2l0aCBub24tZGVmYXVsdCBzdHJpZGUgdmFsdWVzLCB3ZSBza2lwCisrICAgICBlbGVt ZW50cywgYnV0IGhhdmUgdG8gYWRkIHRoZSBzdGFydCBlbGVtZW50IHRvIHRoZSB0b3RhbCBudW1i ZXIgb2YKKysgICAgIGVsZW1lbnRzIHBlciByb3cuICAqLworKyAgaWYgKHN0cmlkZV9sZW5ndGgg PT0gMSkKKysgICAgZWxlbV9jb3VudCA9IGxlbmd0aDsKKysgIGVsc2UKKysgICAgZWxlbV9jb3Vu dCA9ICgobGVuZ3RoIC0gMSkgLyBzdHJpZGVfbGVuZ3RoKSArIDE7CisrCisrICBlbHRfc2l6ZSA9 IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CisrICBlbHRfb2ZmcyA9IGxvd2JvdW5kIC0gYXJ5X2xv d19ib3VuZDsKKyAKKy0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwgMAor LSAgICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCistICAgIGVycm9y IChfKCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CisrICBlbHRfb2ZmcyAqPSBlbHRfc2l6ZTsKKysK KysgIC8qIENoZWNrIGZvciB2YWxpZCB1c2VyIGlucHV0LiAgSW4gY2FzZSBvZiBGb3J0cmFuIHRo aXMgd2FzIGFscmVhZHkgZG9uZQorKyAgICAgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24uICAqLwor KyAgaWYgKGNhbGxfY291bnQgPT0gMQorKwkmJiAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNf VU5ERUZJTkVEIChhcnJheV90eXBlKQorKwkgICAgICAmJiBlbHRfb2ZmcyA+PSBUWVBFX0xFTkdU SCAoYXJyYXlfdHlwZSkpKQorKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIp KTsKKysKKysgIC8qIENBTExfQ09VTlQgaXMgMSB3aGVuIHdlIGFyZSBkZWFsaW5nIGVpdGhlciB3 aXRoIHRoZSBoaWdoZXN0IGRpbWVuc2lvbgorKyAgICAgb2YgdGhlIGFycmF5LCBvciBhIG9uZSBk aW1lbnNpb25hbCBhcnJheS4gIFNldCBSQU5HRV9UWVBFIGFjY29yZGluZ2x5LgorKyAgICAgSW4g Ym90aCBjYXNlcyB3ZSBjYWxjdWxhdGUgaG93IG1hbnkgcm93cy9lbGVtZW50cyB3aWxsIGJlIGlu IHRoZSBvdXRwdXQKKysgICAgIGFycmF5IGJ5IHNldHRpbmcgc2xpY2VfcmFuZ2Vfc2l6ZS4gICov CisrICBpZiAoY2FsbF9jb3VudCA9PSAxKQorKyAgICB7CisrICAgICAgcmFuZ2VfdHlwZSA9IFRZ UEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSk7CisrICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFy eV9sb3dfYm91bmQgKyBlbGVtX2NvdW50IC0gMTsKKysKKysgICAgICAvKiBDaGVjayBpZiB0aGUg YXJyYXkgYm91bmRzIGFyZSB2YWxpZC4gICovCisrICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3Vu ZHMgKHJhbmdlX3R5cGUsICZhcnlfbG93X2JvdW5kLCAmYXJ5X2hpZ2hfYm91bmQpIDwgMCkKKysJ ZXJyb3IgKF8oInNsaWNlIGZyb20gYmFkIGFycmF5IG9yIGJpdHN0cmluZyIpKTsKKysgICAgfQor KyAgLyogV2hlbiBDQUxMX0NPVU5UIGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZSBhcmUgZGVhbGluZyB3 aXRoIGFuIGFycmF5IG9mIGFycmF5cy4KKysgICAgIFNvIHdlIG5lZWQgdG8gZ2V0IHRoZSB0eXBl IGJlbG93IHRoZSBjdXJyZW50IG9uZSBhbmQgc2V0IHRoZSBSQU5HRV9UWVBFCisrICAgICBhY2Nv cmRpbmdseS4gICovCisrICBlbHNlCisrICAgIHsKKysgICAgICByYW5nZV90eXBlID0gVFlQRV9J TkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CisrICAgICAgc2xpY2Vf cmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3VudCkgLSAx OworKyAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlwZSk7Cisr ICAgIH0KKyAKKyAgIC8qIEZJWE1FLXR5cGUtYWxsb2NhdGlvbjogbmVlZCBhIHdheSB0byBmcmVl IHRoaXMgdHlwZSB3aGVuIHdlIGFyZQorLSAgICAgZG9uZSB3aXRoIGl0LiAgKi8KKy0gIHNsaWNl X3JhbmdlX3R5cGUgPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKChzdHJ1Y3QgdHlwZSAqKSBO VUxMLAorLQkJCQkJICAgICAgIFRZUEVfVEFSR0VUX1RZUEUgKHJhbmdlX3R5cGUpLAorLQkJCQkJ ICAgICAgIGxvd2JvdW5kLAorLQkJCQkJICAgICAgIGxvd2JvdW5kICsgbGVuZ3RoIC0gMSk7Cisr ICAgICAgZG9uZSB3aXRoIGl0LiAgKi8KKyAKKysgIHNsaWNlX3JhbmdlX3R5cGUgPSBjcmVhdGVf c3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsIFRZUEVfVEFSR0VUX1RZUEUgKHJhbmdlX3R5cGUpLAor KwkJCQkJICAgICAgIGFyeV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3NpemUpOworICAgeworLSAg ICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlw ZSk7CistICAgIExPTkdFU1Qgb2Zmc2V0CistICAgICAgPSAobG93Ym91bmQgLSBsb3dlcmJvdW5k KSAqIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKysgICAgc3Ry dWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKKysKKysgICAgLyogV2hlbiBib3RoIENBTExfQ09VTlQg YW5kIFNUUklERV9MRU5HVEggZXF1YWwgMSwgd2UgY2FuIHVzZSB0aGUgbGVnYWN5CisrICAgICAg IGNvZGUgZm9yIHN1YmFycmF5cy4gICovCisrICAgIGlmIChjYWxsX2NvdW50ID09IDEgJiYgc3Ry aWRlX2xlbmd0aCA9PSAxKQorKyAgICAgIHsKKysJZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRf VFlQRSAoYXJyYXlfdHlwZSk7CisrCisrCXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAo TlVMTCwgZWxlbWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsKKyAKKy0gICAgc2xpY2VfdHlw ZSA9IGNyZWF0ZV9hcnJheV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKKy0JCQkJICAgIGVs ZW1lbnRfdHlwZSwKKy0JCQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOworLSAgICBUWVBFX0NPREUg KHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKKysJVFlQRV9DT0RFIChzbGlj ZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CisgCistICAgIGlmIChWQUxVRV9MVkFM IChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQorLSAgICAgIHNs aWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CisrCWlmIChWQUxVRV9MVkFM IChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQorKwkgIHYgPSBh bGxvY2F0ZV92YWx1ZV9sYXp5IChzbGljZV90eXBlKTsKKysJZWxzZQorKwkgIHsKKysJICAgIHYg PSBhbGxvY2F0ZV92YWx1ZSAoc2xpY2VfdHlwZSk7CisrCSAgICB2YWx1ZV9jb250ZW50c19jb3B5 ICh2LAorKwkJCQkgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKKysJCQkJIGFycmF5LAorKwkJ CQkgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcnJheSkgKyBlbHRfb2ZmcywKKysJCQkJIGVsdF9z aXplICogbG9uZ2VzdF90b19pbnQgKGxlbmd0aCkpOworKwkgIH0KKysKKysgICAgICB9CisrICAg IC8qIFdpdGggYSBDQUxMX0NPVU5UIG9yIFNUUklERV9MRU5HVEggYXJlIGdyZWF0ZXIgdGhhbiAx IHdlIGFyZSB3b3JraW5nCisrICAgICAgIG9uIGEgcmFuZ2Ugb2YgcmFuZ2VzLiAgU28gd2UgY29w eSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUKKysgICAgICAgbmV3IGFycmF5IHdlIHJl dHVybi4gICovCisgICAgIGVsc2UKKyAgICAgICB7CistCXNsaWNlID0gYWxsb2NhdGVfdmFsdWUg KHNsaWNlX3R5cGUpOworLQl2YWx1ZV9jb250ZW50c19jb3B5IChzbGljZSwgMCwgYXJyYXksIG9m ZnNldCwKKy0JCQkgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIChzbGljZV90eXBlKSk7CisrCWludCBq LCBvZmZzX3N0b3JlID0gZWx0X29mZnM7CisrCUxPTkdFU1QgZHN0X29mZnNldCA9IDA7CisrCUxP TkdFU1Qgc3JjX3Jvd19sZW5ndGggPSBUWVBFX0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoYXJy YXlfdHlwZSkpOworKworKwlpZiAoY2FsbF9jb3VudCA9PSAxKQorKwkgIHsKKysJICAgIC8qIFdo ZW4gQ0FMTF9DT1VOVCBpcyBlcXVhbCB0byAxIHdlIGFyZSB3b3JraW5nIG9uIHRoZSBjdXJyZW50 IHJhbmdlCisrCSAgICAgICBhbmQgdXNlIHRoZXNlIGVsZW1lbnRzIGRpcmVjdGx5LiAgKi8KKysJ ICAgIGVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOworKwkgIH0K KysJZWxzZQorKwkgIHsKKysJICAgIC8qIFdvcmtpbmcgb24gYW4gYXJyYXkgb2YgYXJyYXlzLCB0 aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaXMgdGhlIHR5cGUKKysJICAgICAgIG9mIHRoZSBzdWJh cnJheXMnIHR5cGUuICAqLworKwkgICAgZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAo VFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOworKwkgIH0KKysKKysJc2xpY2VfdHlwZSA9 IGNyZWF0ZV9hcnJheV90eXBlIChOVUxMLCBlbGVtZW50X3R5cGUsIHNsaWNlX3JhbmdlX3R5cGUp OworKworKwkgLyogSWYgd2UgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJheSwgd2UgY29weSBp dHMgVFlQRV9DT0RFLiAgRm9yIGEKKysJICAgIG11bHRpIGRpbWVuc2lvbmFsIGFycmF5IHdlIGNv cHkgdGhlIGVtYmVkZGVkIHR5cGUncyBUWVBFX0NPREUuICAqLworKwlpZiAoY2FsbF9jb3VudCA9 PSAxKQorKwkgIFRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUgKGFycmF5X3R5cGUp OworKwllbHNlCisrCSAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoVFlQRV9U QVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOworKworKwl2ID0gYWxsb2NhdGVfdmFsdWUgKHNsaWNl X3R5cGUpOworKworKwkvKiBJdGVyYXRlIHRocm91Z2ggdGhlIHJvd3Mgb2YgdGhlIG91dGVyIGFy cmF5IGFuZCBzZXQgdGhlIG5ldyBvZmZzZXQKKysJICAgZm9yIGVhY2ggcm93LiAgKi8KKysJZm9y IChpID0gMDsgaSA8IHJvd19jb3VudDsgaSsrKQorKwkgIHsKKysJICAgIGVsdF9vZmZzID0gb2Zm c19zdG9yZSArIGkgKiBzcmNfcm93X2xlbmd0aDsKKysKKysJICAgIC8qIEl0ZXJhdGUgdGhyb3Vn aCB0aGUgZWxlbWVudHMgaW4gZWFjaCByb3cgdG8gY29weSBvbmx5IHRob3NlLiAgKi8KKysJICAg IGZvciAoaiA9IDE7IGogPD0gZWxlbV9jb3VudDsgaisrKQorKwkgICAgICB7CisrCQkvKiBGZXRj aGVzIHRoZSBjb250ZW50cyBvZiBBUlJBWSBhbmQgY29waWVzIHRoZW0gaW50byBWLiAgKi8KKysJ CXZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIGRzdF9vZmZzZXQsIGFycmF5LCBlbHRfb2ZmcywgZWx0 X3NpemUpOworKwkJZWx0X29mZnMgKz0gZWx0X3NpemUgKiBzdHJpZGVfbGVuZ3RoOworKwkJZHN0 X29mZnNldCArPSBlbHRfc2l6ZTsKKysJICAgICAgfQorKwkgIH0KKyAgICAgICB9CisgCistICAg IHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHNsaWNlLCBhcnJheSk7CistICAgIFZBTFVF X0ZSQU1FX0lEIChzbGljZSkgPSBWQUxVRV9GUkFNRV9JRCAoYXJyYXkpOworLSAgICBzZXRfdmFs dWVfb2Zmc2V0IChzbGljZSwgdmFsdWVfb2Zmc2V0IChhcnJheSkgKyBvZmZzZXQpOworKyAgICBz ZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBhcnJheSk7CisrICAgIFZBTFVFX1JFR05V TSAodikgPSBWQUxVRV9SRUdOVU0gKGFycmF5KTsKKysgICAgVkFMVUVfRlJBTUVfSUQgKHYpID0g VkFMVUVfRlJBTUVfSUQgKGFycmF5KTsKKysgICAgc2V0X3ZhbHVlX29mZnNldCAodiwgdmFsdWVf b2Zmc2V0IChhcnJheSkgKyBlbHRfb2Zmcyk7CisgICB9CisgCistICByZXR1cm4gc2xpY2U7Cisr ICByZXR1cm4gdjsKKyB9CisgCisgLyogQ3JlYXRlIGEgdmFsdWUgZm9yIGEgRk9SVFJBTiBjb21w bGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0IG9mIHRoZQorZGlmZiAtLWdpdCBhL2dkYi92YWx1 ZS5oIGIvZ2RiL3ZhbHVlLmgKK2luZGV4IDBiNDE3YjQuLjljMzc3MTMgMTAwNjQ0CistLS0gYS9n ZGIvdmFsdWUuaAorKysrIGIvZ2RiL3ZhbHVlLmgKK0BAIC0xMDU3LDYgKzEwNTcsOCBAQCBleHRl cm4gc3RydWN0IHZhbHVlICp2YXJ5aW5nX3RvX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKik7CisgCisg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGlu dCk7CisgCisrZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVl ICosIGludCwgaW50LCBpbnQsIGludCk7CisrCisgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVf bGl0ZXJhbF9jb21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVlICosCisgCQkJCQkg ICAgc3RydWN0IHR5cGUgKik7CisgCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC10ZXN0cy5w YXRjaCBiL2dkYi12bGEtaW50ZWwtdGVzdHMucGF0Y2gKaW5kZXggZmM4YWI1Yi4uYmJiYTNjNyAx MDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRjaAorKysgYi9nZGItdmxhLWludGVs LXRlc3RzLnBhdGNoCkBAIC0xNDAsOTAgKzE0MCw2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAogKwogKyAgcmV0ID0g LlRSVUUuICAgICAgICAgICAgICAgICEgZnVuYzItcmV0dXJuZWQKICtlbmQgcHJvZ3JhbSB2bGFf ZnVuYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXN0cmlkZS5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0 NjM3Njg2ICswMTAwCi1AQCAtMCwwICsxLDQ0IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r IwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u Ci0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVz dGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1 ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJ Tl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlO X18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJyZS1yZXZlcnNlLWVsZW1lbnRzIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAicmUtcmV2ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgx LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcXCkiIFwKLSsgICJwcmludCByZS1yZXZlcnNl LWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0 IHJlLXJldmVyc2UtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxMCkiICIgPSAxMCIg InByaW50IGxhc3QgcmUtcmV2ZXJzZS1lbGVtZW50IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMiXQotK2dkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMywg NSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEo MSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2 bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVudCIKLSsKLStnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAic2luZ2xlLWVsZW1lbnQiXQotK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9 IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmludCBwdmxh KDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaWRlLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCAr MSwzMCBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Ci0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3 cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl IFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsKLStwcm9n cmFtIHZsYV9zdHJpZGUKLSsgIGludGVnZXIsIHRhcmdldCwgYWxsb2NhdGFibGUgOjogdmxhICg6 KQotKyAgaW50ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQotKwotKyAgYWxsb2NhdGUodmxhKDEw KSkKLSsgIHZsYSA9ICgvIChJLCBJID0gMSwxMCkgLykKLSsKLSsgIHB2bGEgPT4gdmxhKDEwOjE6 LTEpCi0rICBwdmxhID0+IHB2bGEoMTA6MTotMSkKLSsgIHB2bGEgPT4gdmxhKDE6MTA6MikgICAh IHJlLXJldmVyc2UtZWxlbWVudHMKLSsgIHB2bGEgPT4gdmxhKDU6NDotMikgICAhIG9kZC1lbGVt ZW50cwotKwotKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKLStlbmQg cHJvZ3JhbSB2bGFfc3RyaWRlCiBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5nc29sZC5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKCmRpZmYgLS1naXQgYS9n ZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDE5ZDZhNjMuLjg1NzE1MDAgMTAwNjQ0Ci0tLSBhL2dk Yi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0yNyw3ICsyNyw3IEBAIFZlcnNpb246IDcuMTEuOTAu MjAxNjA4MDcKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2Vy dmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9m IGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhl IHRlc3RpbmcuCi1SZWxlYXNlOiA2JXs/ZGlzdH0KK1JlbGVhc2U6IDclez9kaXN0fQogCiBMaWNl bnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BM djIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJs aWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC01MjAs MTIgKzUyMCw5IEBAIFBhdGNoODQ4OiBnZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gK IFBhdGNoODUyOiBnZGItZ25hdC1kd2FyZi1jcmFzaC0zb2YzLnBhdGNoCiAKICMgVkxBIChGb3J0 cmFuIGR5bmFtaWMgYXJyYXlzKSBmcm9tIEludGVsICsgYXJjaGVyLWphbmtyYXRvY2h2aWwtdmxh IHRlc3RzLgotUGF0Y2gxMDU4OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaAot UGF0Y2gxMDU5OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5wYXRjaAotUGF0Y2gxMDYw OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaAotUGF0Y2gxMDYxOiBnZGItZm9y dHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAotUGF0Y2gxMDYyOiBnZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtNW9mNi5wYXRjaAotUGF0Y2gxMDYzOiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwt Nm9mNi5wYXRjaAorUGF0Y2gxMDU4OiBnZGItdmxhLWludGVsLWJyYW5jaC5wYXRjaAorUGF0Y2gx MDU5OiBnZGItdmxhLWludGVsLWJyYW5jaC1maXgtc3RyaWRlLTFvZjIucGF0Y2gKK1BhdGNoMTA2 MDogZ2RiLXZsYS1pbnRlbC1icmFuY2gtZml4LXN0cmlkZS0yb2YyLnBhdGNoCiBQYXRjaDExMzI6 IGdkYi12bGEtaW50ZWwtMW9mNy5wYXRjaAogUGF0Y2gxMTMzOiBnZGItdmxhLWludGVsLTJvZjcu cGF0Y2gKIFBhdGNoMTEzNDogZ2RiLXZsYS1pbnRlbC0zb2Y3LnBhdGNoCkBAIC03OTAsOSArNzg3 LDYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDEwNTggLXAxCiAl cGF0Y2gxMDU5IC1wMQogJXBhdGNoMTA2MCAtcDEKLSVwYXRjaDEwNjEgLXAxCi0lcGF0Y2gxMDYy IC1wMQotJXBhdGNoMTA2MyAtcDEKICVwYXRjaDExMzIgLXAxCiAlcGF0Y2gxMTMzIC1wMQogJXBh dGNoMTEzNCAtcDEKQEAgLTE0NjksNiArMTQ2Myw5IEBAIHRoZW4KIGZpCiAKICVjaGFuZ2Vsb2cK KyogRnJpIEF1ZyAyNiAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPiAtIDcuMTEuOTAuMjAxNjA4MDctNy5mYzI1CistIEZpeCBJbnRlbCBWTEEgcGF0Y2hzZXQg cmVncmVzc2lvbjogZHluYW1pYy5leHA6IHAgdmFydyBmaWxsZWQKKwogKiBUdWUgQXVnIDIzIDIw MTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS45MC4y MDE2MDgwNy02LmZjMjUKIC0gTWVyZ2UgRmVkb3JhIHBhY2thZ2luZyBjaGFuZ2VzIGZyb20gRmVk b3JhIDI0IGdkYi03LjExLjEtODMuZmMyNDoKIAo=