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] gdb-17.2-rebase-f44: Fix Intel VLA patchset regression: dynamic.exp: p varw filled Date: Sat, 27 Jun 2026 23:57:48 GMT Message-ID: <178260466818.1.12595193301920339870.rpms-gdb-72aed9dc5ed9@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 72aed9dc5ed96eeda145acc6b2c8a88bbd291564 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogNzJhZWQ5ZGM1ZWQ5NmVlZGExNDVhY2M2YjJj OGE4OGJiZDI5MTU2NApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNi0wOC0yNlQxNzowOTo0NyswMjowMApTdGF0cyAgOiArMjk2 Ni8tMjI4NCBpbiAxMyBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvZ2RiL2MvNzJhZWQ5ZGM1ZWQ5NmVlZGExNDVhY2M2YjJjOGE4OGJiZDI5MTU2ND9i cmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpGaXggSW50ZWwgVkxBIHBhdGNoc2V0IHJl Z3Jlc3Npb246IGR5bmFtaWMuZXhwOiBwIHZhcncgZmlsbGVkCgotLS0KZGlmZiAtLWdpdCBhL2dk Yi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKaW5k ZXggN2Y3ZTE4NC4uZjMwMTgwYSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0 Y2gKKysrIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJh eS5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEv cGFja2VkX2FycmF5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wNy0xNiAwMzo0 ODo1OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNjE3Mjg4 OSArMDIwMAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu YWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wOC0wNyAwNDowMDowMS4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2Fy cmF5LmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA1ODc4OTA1OCArMDIwMAogQEAgLTU2LDUgKzU2 LDExIEBACiAgICAgICAgICAjIGFyZS4gIE9ic2VydmVkIHdpdGggKEZTRiBHTlUgQWRhIDQuNS4z IDIwMTEwMTI0KS4KICAgICAgICAgIHhmYWlsICR0ZXN0CkBAIC0xNCwxMCArMTQsMTAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJy YXkuZXhwCiArICAgIH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKK0luZGV4OiBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1m b28uUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3 ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94 ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTg3ODkwNTggKzAy MDAKIEBAIC0wLDAgKzEsNDU1IEBACiArCS5maWxlCSJ4ODZfNjQtdmxhLXR5cGVkZWYuYyIKICsJ LnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKQEAgLTQ3NCwxMCArNDc0LDEwIEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82 NC12bGEtdHlwZWRlZi1mb28uUwogKwkuc3RyaW5nCSJHTlUgQyA0LjMuMiAyMDA4MTEwNSAoUmVk IEhhdCA0LjMuMi03KSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDQuMy4yIDIwMDgxMTA1IChSZWQg SGF0IDQuMy4yLTcpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi1J bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXR5cGVkZWYuYworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIwMTYtMDct MTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwkyMDE2LTA4LTI1IDE4OjQ0 OjQyLjA1ODc4OTA1OCArMDIwMAogQEAgLTAsMCArMSw0NSBAQAogKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC01MjQsMTAgKzUyNCwxMCBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXR5cGVkZWYuYwogK30KICsKICsjZW5kaWYKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKK0luZGV4 OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEt dHlwZWRlZi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43Mzcx NzI4OTcgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTg3ODkwNTgg KzAyMDAKIEBAIC0wLDAgKzEsNjQgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNTkzLDEwICs1OTMsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4 cAogK2dkYl90ZXN0ICJ3aGF0aXMgYXJyYXkiICJ0eXBlID0gYXJyYXlfdCIgInNlY29uZDogd2hh dGlzIGFycmF5IgogKwogK2dkYl90ZXN0ICJwdHlwZSBhcnJheSIgInR5cGUgPSBjaGFyIFxcXFs3 OFxcXF0iICJzZWNvbmQ6IHB0eXBlIGFycmF5IgotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlk eC5jCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMTY6 NTM6MzMuNzM3MTcyODk3ICswMjAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNi0wOC0wNyAwNDowMDowMS4wMDAwMDAw MDAgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2FycmF5aWR4LmMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTg3ODkwNTggKzAyMDAKIEBAIC0xNyw2 ICsxNywxMyBAQAogIAogIGludCBhcnJheVtdID0gezEsIDIsIDMsIDR9OwpAQCAtNjExLDEwICs2 MTEsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvYXJyYXlpZHguYwogIGludAogIG1haW4gKHZvaWQpCiAgewotSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCitJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5l eHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKKy0tLSBnZGItNy4xMS45MC4y MDE2MDgwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDgt MDcgMDQ6MDA6MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTk3 ODkwNjcgKzAyMDAKIEBAIC00OSw0ICs0OSwxMiBAQAogICAgICAgICAgICJcXHtcXFxbMFxcXF0g PSAxLCBcXFxbMVxcXF0gPSAyLCBcXFxbMlxcXF0gPSAzLCBcXFxbM1xcXF0gPSA0XFx9IiBcCiAg ICAgICAgICAgIlByaW50IGFycmF5IHdpdGggYXJyYXktaW5kZXhlcyBvbiIKQEAgLTYyOSwxMCAr NjI5LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmV4cAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5vIEdDQykiCiArICAgIH0K ICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9p bnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5h bC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAw CisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5h bC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDU5Nzg5MDY3ICswMjAw CiBAQCAtMCwwICsxLDIwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhl IEdOVSBkZWJ1Z2dlci4KICsKQEAgLTY1NCwxMCArNjU0LDEwIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRy ZXNzLmMKICtzdHJ1Y3QgewogKyAgaW50IGZpZWxkOwogK30gc3RhdGljc3RydWN0ID0geyAxIH07 Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJu YWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICsw MjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTk3ODkwNjcg KzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNjg1LDEwICs2ODUsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFk ZHJlc3MuZXgKICsKICtnZGJfdGVzdCB7c2V0ICR2YXJzdHJ1Y3QgPSBzdGF0aWNzdHJ1Y3R9CiAr Z2RiX3Rlc3Qge3AgJHZhcnN0cnVjdC5maWVsZH0gIiA9IDEiCi1JbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYworSW5kZXg6IGdkYi03 LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFt ZS5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwkyMDE2LTA4LTI1IDE4 OjQ0OjQyLjA1OTc4OTA2NyArMDIwMAogQEAgLTAsMCArMSwzMSBAQAogKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03MjEsMTAgKzcyMSwx MCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtZnJhbWUuYwogKyAgZiAocyk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtZnJhbWUuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysgZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCTIw MTYtMDgtMjUgMTg6NDQ6NDIuMDU5Nzg5MDY3ICswMjAwCiBAQCAtMCwwICsxLDM4IEBACiArIyBD b3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC03NjQs MTAgKzc2NCwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92bGEtZnJhbWUuZXhwCiArfQogKwogK2dkYl90ZXN0ICJidCBmdWxsIiAiXHJcbiAr cyA9IFwiWFxcXFwwMDBcIlxyXG4uKiIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMJ MjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCTIwMTYtMDgtMjUgMTg6 NDQ6NDIuMDU5Nzg5MDY3ICswMjAwCiBAQCAtMCwwICsxLDMwIEBACiArLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTc5OSwxMCArNzk5LDEw IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zs YS1vdmVyZmxvdy5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtb3ZlcmZsb3cuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu ZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDU5Nzg5MDY3ICswMjAwCiBAQCAtMCwwICsxLDEwOSBA QAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC05MTMsMTAgKzkxMywxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiArZ2RiX3Rlc3QgImJ0IiAiaW4gXFteIFxd KmFib3J0IFxcKC4qIGluIG1haW4gXFwoLioiICJCYWNrdHJhY2UgYWZ0ZXIgYWJvcnQoKSIKICsK ICt2ZXJib3NlIC1sb2cgImtiX2ZvdW5kIGluIGJ0IGFmdGVyIGFib3J0KCkgPSBbZXhwciBbbWVt b3J5X3ZfcGFnZXNfZ2V0XSAqICRwYWdlc2l6ZSAvIDEwMjRdIgotSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4xMS45 MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYwkyMDE2LTA3LTE2IDE2 OjUzOjMzLjczNzE3Mjg5NyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLmMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNTk3ODkwNjcgKzAyMDAK IEBAIC0wLDAgKzEsNTUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgogKwpAQCAtOTczLDEwICs5NzMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKICsgIGZvbyAoNzgpOwogKyAg cmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvdmxhLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiAr MDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA1OTc4OTA2NyArMDIwMAogQEAgLTAsMCArMSw2MiBA QAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xMDQwLDEwICsxMDQwLDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKICtnZGJfdGVzdCAicCB0ZW1wMSIgIiA9ICcxJyA8cmVw ZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAxIgogK2dkYl90ZXN0ICJwIHRlbXAy IiAiID0gJzInIDxyZXBlYXRzIDc4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDIiCiArZ2Ri X3Rlc3QgInAgdGVtcDMiICIgPSAnMycgPHJlcGVhdHMgNDggdGltZXM+IiAic2Vjb25kOiBwcmlu dCB0ZW1wMyIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2Ns aXN0LlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKKysrKyBnZGItNy4xMS45 MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwky MDE2LTA4LTI1IDE4OjQ0OjQyLjA2MDc4OTA3NiArMDIwMAogQEAgLTAsMCArMSwyNDYgQEAKICsv KiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAt MTI5MSwxMCArMTI5MSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKICsJLnN0cmluZwkJImNoYXIiCiAr Lkx1aW50X3N0cjoKICsJLnN0cmluZwkJInVuc2lnbmVkIGludCIKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhw CitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1ib3VuZC1sb2NsaXN0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNi0wNy0xNiAxNjo1 MzozMy43MzgxNzI5MDYgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIu MDYwNzg5MDc2ICswMjAwCiBAQCAtMCwwICsxLDY2IEBACiArIyBDb3B5cmlnaHQgMjAxMCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEzNjIsMTAgKzEzNjIsMTAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91 bmQtbG9jbGlzdC5leHAKICsKICsjIFRoZSByZWdpc3RlciBjb250YWlucyB1bnByZWRpY3RhYmxl IHZhbHVlIC0gdGhlIGFycmF5IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBlIHJlZ19zdHJpbmciIHt0 eXBlID0gY2hhciBcWy0/WzAtOV0rXF19Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCitJbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJp cHBlZC5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCisrKysgZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTYt MDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2ICswMjAwCiBAQCAtMCwwICsxLDQyIEBACiArLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE0MDks MTAgKzE0MDksMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogKyAgZnVuYzEgKDEsIDIpOwogKyAgcmV0dXJuIDA7 CiArfQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RyaXBwZWQuZXhwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2LTA3 LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6 NDIuMDYwNzg5MDc2ICswMjAwCiBAQCAtMCwwICsxLDc5IEBACiArIyBDb3B5cmlnaHQgMjAwNiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE0OTMsMTAgKzE0OTMsMTAgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3RyaXBwZWQuZXhwCiArZ2RiX3Rlc3QgInN0ZXAiIFwKICsgICAgICAgICAiZnVuYy4qIFxcKC4q XFwpIGF0IC4qIiBcCiArICAgICAgICAgInN0ZXAiCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRp b24uUworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0 YS1sb2NhdGlvbi5TCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCisrKysgZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uUwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MDc4OTA3NiArMDIwMAog QEAgLTAsMCArMSw4MyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCiArCkBAIC0xNTgxLDEwICsxNTgxLDEwIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0 YS1sb2NhCiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCS5ieXRlCQkweDAJ CQkvKiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCitJbmRl eDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1 Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRp b24uZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCisrKysgZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRh dGEtbG9jYXRpb24uZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2ICswMjAwCiBAQCAt MCwwICsxLDM3IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTE2MjMsMTAgKzE2MjMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2EK ICtjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCiArCiArZ2RiX3Rlc3QgInB0eXBlIHN0cnVjdCBzb21l X3N0cnVjdCIgInR5cGUgPSBzdHJ1Y3Qgc29tZV9zdHJ1Y3Qge1xbXHJcbiBcdFxdKnZvaWQgZmll bGQ7XFtcclxuIFx0XF0qfSIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUworSW5kZXg6IGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5T CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAy MDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXN1YnJhbmdlLW5vLXR5cGUuUwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MDc4OTA3NiArMDIwMAog QEAgLTAsMCArMSwxMjEgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgogKwpAQCAtMTc0OSwxMCArMTc0OSwxMCBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBl LlMKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KICsKICsJLmJ5dGUJCTB4MAkJCS8q IFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYg KzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYwNzg5MDc2ICsw MjAwCiBAQCAtMCwwICsxLDM5IEBACiArIyBDb3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KICsKQEAgLTE3OTMsMTAgKzE3OTMsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlw ZS5leHAKICsKICtnZGJfdGVzdCAicHR5cGUgbm90eXBlX3N0cmluZyIge3R5cGUgPSBjaGFyIFxb MTI5XF19CiArZ2RiX3Rlc3QgInAgbm90eXBlX3N0cmluZyIgIiA9ICd4JyA8cmVwZWF0cyAxMjkg dGltZXM+IgotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vZHdhcmYtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAky MDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYw ODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAkyMDE2LTA4LTI1 IDE4OjQ0OjQyLjA2MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgQ29weXJpZ2h0 IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xODQwLDEwICsxODQw LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R3YXJmLXN0cmlkZS5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWst aGVyZSIgIi4qYnJlYWstaGVyZS4qIgogK2dkYl90ZXN0ICJwIGM0MHB0KDEpIiAiID0gJzAtaGVs bG8uKiIKICtnZGJfdGVzdCAicCBjNDBwdCgyKSIgIiA9ICcxLWhlbGxvLioiCi1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUu ZjkwCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9kd2FyZi1zdHJpZGUuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMu NzM5MTcyOTE0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYxNzg5MDg2 ICswMjAwCiBAQCAtMCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xODg1LDExICsxODg1LDExIEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5m OTAKICsgIHByaW50ICosIGM0MHB0ICAhIGJyZWFrLWhlcmUKICsKICtlbmQgcHJvZ3JhbSByZXBy bwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAkyMDE2LTA3LTE2IDE3OjE5OjI0LjI1 NTIwMjAxMyArMDIwMAotQEAgLTAsMCArMSwxNTEgQEAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTYtMDgtMjUgMTg6NTQ6 MjUuOTU3MjU4MDI0ICswMjAwCitAQCAtMCwwICsxLDE1NCBAQAogKyMgQ29weXJpZ2h0IDIwMDcg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCiArIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTkz NCwxMSArMTkzNCwxMyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogKwogK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2YXJ4LWluaXQiXQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4 LWluaXQiCi0rZ2RiX3Rlc3QgInAgdmFyeCIgIlxcJFxbMC05XF0qID0gPG5vdCBhbGxvY2F0ZWQ+ IiAicCB2YXJ4IHVuYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ4IiB7dHlwZSA9IHJl YWxcKGtpbmQ9NFwpIFwoOiw6LDpcKX0gInB0eXBlIHZhcnggdW5hbGxvY2F0ZWQiCi0rZ2RiX3Rl c3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3Qg YWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKLStnZGJfdGVzdCAicCB2 YXJ4KDEsNSwxNyk9MSIge25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFsbG9j YXRlZFwpfSAicCB2YXJ4KDEsNSwxNyk9MSB1bmFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUg dmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2Nh dGVkXCl9ICJwdHlwZSB2YXJ4KDEsNSwxNykgdW5hbGxvY2F0ZWQiCisrCisrIyBodHRwOi8vd3d3 LmNzLnJwaS5lZHUvfnN6eW1hbnNrL09PRjkwL2J1Z3MuaHRtbCM1CisrIyBEbyBub3Q6IGdkYl90 ZXN0ICJwIHZhcngiICJcXCRcWzAtOVxdKiA9IDxub3QgYWxsb2NhdGVkPiIgInAgdmFyeCB1bmFs bG9jYXRlZCIKKysjIERvIG5vdDogZ2RiX3Rlc3QgInB0eXBlIHZhcngiIHt0eXBlID0gcmVhbFwo a2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFyeCB1bmFsbG9jYXRlZCIKKysjIERvIG5vdDog Z2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3Rv ciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKKysjIERvIG5v dDogZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpPTEiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwo dmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpPTEgdW5hbGxvY2F0ZWQiCisr IyBEbyBub3Q6IGdkYl90ZXN0ICJwdHlwZSB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBl bGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInB0eXBlIHZhcngoMSw1LDE3KSB1bmFs bG9jYXRlZCIKICsKICtnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyeC1h bGxvY2F0ZWQiXQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWFsbG9jYXRlZCIK QEAgLTE5NTMsOCArMTk1NSw5IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFyeCgxLCA1LCAx NykiICJcXCRcWzAtOVxdKiA9IDciCiArZ2RiX3Rlc3QgInAgdmFyeCgyLCA2LCAxOCkiICJcXCRc WzAtOVxdKiA9IDgiCiArZ2RiX3Rlc3QgInAgdmFyeCg2LCAxNSwgMjgpIiAiXFwkXFswLTlcXSog PSA5IgotK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9IDxub3QgYXNzb2NpYXRlZD4i ICJwIHZhcnYgdW5hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ2IiB7dHlwZSA9IHJl YWxcKGtpbmQ9NFwpIFwoOiw6LDpcKX0gInB0eXBlIHZhcnYgdW5hc3NvY2lhdGVkIgorKyMgaHR0 cDovL3d3dy5jcy5ycGkuZWR1L35zenltYW5zay9PT0Y5MC9idWdzLmh0bWwjNQorKyMgRG8gbm90 OiBnZGJfdGVzdCAicCB2YXJ2IiAiXFwkXFswLTlcXSogPSA8bm90IGFzc29jaWF0ZWQ+IiAicCB2 YXJ2IHVuYXNzb2NpYXRlZCIKKysjIERvIG5vdDogZ2RiX3Rlc3QgInB0eXBlIHZhcnYiIHt0eXBl ID0gcmVhbFwoa2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFydiB1bmFzc29jaWF0ZWQiCiAr CiArc2V0IHRlc3QgIm91dHB1dCB2YXJ4IgogK2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0 IHsKQEAgLTIwNDEsMTAgKzIwNDQsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKICtnZGJfdGVzdCAicCB2YXJ0KDMs OCkiICJcXCRcWzAtOVxdKiA9IDkiCiArIyBtYXBzIHRvIGZvbzo6dmFyeSgxLDMpCiArZ2RiX3Rl c3QgInAgdmFydCgyLDkpIiAiXFwkXFswLTlcXSogPSAxMCIKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCitJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy5mOTAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKKysrKyBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIw MTYtMDgtMjUgMTg6NDQ6NDIuMDYxNzg5MDg2ICswMjAwCiBAQCAtMCwwICsxLDk4IEBACiArISBD b3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMTQ0 LDEwICsyMTQ3LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCiArICBpZiAoeCAoMSwgMSkgLm5lLiA4IC5vci4geCAo MiwgMikgLm5lLiA5IC5vci4geCAoMSwgMikgLm5lLiA0KSBjYWxsIGFib3J0CiArICBpZiAoeCAo MywgMSkgLm5lLiAxMCkgY2FsbCBhYm9ydAogK2VuZAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAorSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5n LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAorKysrIGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE2LTA4LTI1 IDE4OjQ0OjQyLjA2MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSw1OSBAQAogKyMgQ29weXJpZ2h0 IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMjA4LDEwICsyMjEx LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N0cmluZy5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyLWZpbmlzaCIK ICtnZGJfdGVzdCAicCBlIiAiXFwkXFswLTlcXSogPSAnZSAgICciICJwIGUgcmUtc2V0IgogK2dk Yl90ZXN0ICJwIGYiICJcXCRcWzAtOVxdKiA9IFxcKFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAn LCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdmMiAgJywgJ2YgICAnLCAn ZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCggJ2YgICAnLCAnZiAg ICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKSIgInAgKmYg cmUtc2V0IgotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RyaW5nLmY5MAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMz LjczOTE3MjkxNCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vc3RyaW5nLmY5MAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2MTc4OTA4NiArMDIw MAogQEAgLTAsMCArMSwzNyBAQAogKyEgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArIQpAQCAtMjI1MCwxMCArMjI1MywxMCBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiArICBoID0g J2gnCiArICBjYWxsIGZvbyAoZywgaCkKICtlbmQKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAorSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJy YW5nZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKKysrKyBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAkyMDE2 LTA4LTI1IDE4OjQ0OjQyLjA2MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSw3MiBAQAogKyMgQ29w eXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMzI3LDEw ICsyMzMwLDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3N1YnJhbmdlLmV4cAogK2dkYl91bmxvYWQKICtzZXR1cF9rZmFpbCAiKi0qLSoi ICJ2bGFyZWdyZXNzaW9uLzk5OTkiCiArZ2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIz XCl9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdWJyYW5nZS5mOTAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCTIwMTYtMDctMTYgMTY6NTM6 MzMuNzM5MTcyOTE0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNjE3ODkwODYg KzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICshIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTIzNjAsMTAgKzIzNjMsMTAgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCiAr ICBwdHIgPT4gYQogKyAgd3JpdGUgKCosKikgYSAgICAgICAgICAgICAgICAgISBicmVhay1zdGF0 aWMKICtlbmQKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taTItdmFyLXN0YWxlLXR5cGUuYworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMJMjAx Ni0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwkyMDE2LTA4LTI1IDE4 OjQ0OjQyLjA2MTc4OTA4NiArMDIwMAogQEAgLTAsMCArMSwyNiBAQAogKy8qIENvcHlyaWdodCAy MDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjM5MSwxMCArMjM5NCwx MCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWky LXZhci1zdGFsZS10eXBlLmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1z dGFsZS10eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43Mzkx NzI5MTQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYyNzg5MDk1ICsw MjAwCiBAQCAtMCwwICsxLDU3IEBACiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KICsjCkBAIC0yNDUzLDEwICsyNDU2LDEwIEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhw CiArbWlfY3JlYXRlX3Zhcm9iaiAidmxhIiAidmxhIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZs YSIKICsKICttaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgIlxcXmRvbmUsY2hhbmdlbGlzdD0u KiIgIi12YXItdXBkYXRlICoiCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCitJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVu Yy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0 ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2Fy cmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCTIwMTYtMDgtMjUgMTg6NDQ6NDIuMDYyNzg5MDk1ICsw MjAwCiBAQCAtMCwwICsxLDIyIEBACiArLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgogKwpAQCAtMjQ4MCwxMCArMjQ4MywxMCBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVu Yy5jCiArewogKyAgcmV0dXJuIGFyclswXTsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYworSW5kZXg6IGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lz dGVyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIyICsw MjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5 LWZyb20tcmVnaXN0ZXIuYwkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mjc4OTA5NSArMDIwMAogQEAg LTAsMCArMSwyOCBAQAogKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KICsKQEAgLTI1MTMsMTAgKzI1MTYsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKICsKICsgIHJl dHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1y ZWdpc3Rlci5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKKysrKyBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rl ci5leHAJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNjI3ODkwOTUgKzAyMDAKIEBAIC0wLDAgKzEsMzMg QEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMK QEAgLTI1NTEsMTAgKzI1NTQsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAogKyMgU2VlbiByZWdyZXNz aW9uOgogKyMgQWRkcmVzcyByZXF1ZXN0ZWQgZm9yIGlkZW50aWZpZXIgImFyciIgd2hpY2ggaXMg aW4gcmVnaXN0ZXIgJHJkaQogK2dkYl90ZXN0ICJwIGFyclxbMFxdIiAiXFwkXFswLTlcXSsgPSA0 MiIKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwv YXJyYXlzLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2Ri LnBhc2NhbC9hcnJheXMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5 MjIgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNj YWwvYXJyYXlzLmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mjc4OTA5NSArMDIwMAogQEAgLTAs MCArMSwxMDQgQEAKICsjIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKyMKQEAgLTI2NjAsMTAgKzI2NjMsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCiArfQogK2dkYl90 ZXN0ICJwcmludCBEeW5BcnJDaGFyIiAiLiogPSAnYWJjZGVmZ2hpamtsbSciICJQcmludCBkeW5h bWljIGFycmF5IG9mIGNoYXIiCiArCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTYtMDct MTYgMTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMJMjAxNi0wOC0yNSAxODo0NDo0Mi4wNjI3 ODkwOTUgKzAyMDAKIEBAIC0wLDAgKzEsODIgQEAKICt7CiArIENvcHlyaWdodCAyMDA4LCAyMDA5 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjc0NywxMCArMjc1MCwxMCBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5 cy5wYXMKICsgIHMgOj0gJ3Rlc3QnIzAnc3RyaW5nJzsKICsgIHdyaXRlbG4ocyk7IHsgc2V0IGJy ZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy4wNjMx NjczMTUgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQxMTcyOTMwICswMjAwCistLS0gZ2RiLTcuMTEu OTAuMjAxNjA4MDcub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDgtMjUgMTg6 NDQ6NDEuNDI0NzgzMTQ4ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mzc4OTEwNCArMDIwMAogQEAg LTE3Myw2ICsxNzMsMTEgQEAKICAJICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29udGlu dWUKQEAgLTI3NjMsMTAgKzI3NjYsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICAJLXJlICJEaXNjYXJkIHN5bWJvbCB0YWJsZSBmcm9t IC4qeSBvciBuLiokIiB7CiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhwX2NvbnRpbnVl Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4 cAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3Vp dGUvbGliL3Bhc2NhbC5leHAJMjAxNi0wNy0xNiAwMzo0ODo1OS4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYt MDctMTYgMTY6NTM6MzMuNzQxMTcyOTMwICswMjAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDgtMDcgMDQ6MDA6MDEuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9saWIv cGFzY2FsLmV4cAkyMDE2LTA4LTI1IDE4OjQ0OjQyLjA2Mzc4OTEwNCArMDIwMAogQEAgLTM3LDYg KzM3LDkgQEAKICAgICAgZ2xvYmFsIHBhc2NhbF9jb21waWxlcl9pc19mcGMKICAgICAgZ2xvYmFs IGdwY19jb21waWxlcgoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0xb2Y2 LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTFvZjYucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDIxMDFjZGQuLjAwMDAwMDAKLS0tIGEvZ2RiLWZvcnRyYW4tc3Ry aWRlLWludGVsLTFvZjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MTggKzAsMCBAQAotUkU6 IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJh eXMgd2l0aCBzdHJpZGVzCi1odHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIw MTYtMDcvbXNnMDAwMDkuaHRtbAotCi1Gcm9tIDk5MzgzNDQ2OWYxZTY0ZTU0NjFlMWUxYmVmOTE3 ZmQzODhmZTQyOGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaHJpc3RvcGggV2Vp bm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLURhdGU6IFRodSwgMTIgTm92 IDIwMTUgMTU6NDU6NTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzZdIGZvcnRyYW46IGFsbG93 IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cwotCi1BZGQgYW4gYXJndW1lbnQgY291bnQgZm9y IHN1YnJhbmdlIGV4cHJlc3Npb25zIGluIEZvcnRyYW4uCi1CYXNlZCBvbiB0aGUgY291bnRlZCB2 YWx1ZSBjYWxjdWxhdGUgYSBuZXcgYXJyYXkgd2l0aCB0aGUKLWVsZW1lbnRzIHNwZWNpZmllZCBi eSB0aGUgdXNlci4gIEZpcnN0IHBhcnNlIHRoZSB1c2VyIGlucHV0LAotc2Vjb25kbHkgY29weSB0 aGUgZGVzaXJlZCBhcnJheSB2YWx1ZXMgaW50byB0aGUgcmV0dXJuCi1hcnJheSwgdGhpcmRseSBy ZS1jcmVhdGUgdGhlIG5lY2Vzc2FyeSByYW5nZXMgYW5kIGJvdW5kcy4KLQotMXwgIHByb2dyYW0g cHJvZwotMnwgICAgaW50ZWdlciA6OiBhcnkoMTAsNSkgPSAoLyAoaSxpPTEsMTApIChqLCBqPTEs NSkgLykKLTN8ICBlbmQgcHJvZ3JhbSBwcm9nCi0KLShnZGIpIHByaW50IGFyeSgyOjQsMTozKQot b2xkPiBTeW50YXggZXJyb3IgaW4gZXhwcmVzc2lvbiBuZWFyICc6MycKLW5ldz4gJDMgPSAoICgg MjEsIDMxLCA0MSkgKCAyMiwgMzIsIDQyKSAoIDIzLCAzMywgNDMpICkKLQotMjAxMy0xMS0yNSAg Q2hyaXN0b3BoIFdlaW5tYW5uICA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgotCi0J KiBldmFsLmMgKG11bHRpX2Y3N19zdWJzY3JpcHQpOiBSZW1vdmUgZnVuY3Rpb24uCi0JKiBldmFs LmMgKGV2YWx1YXRlX3N1YnJhbmdlX2V4cHIpOiBXaGVuIGV2YWx1YXRpbmcKLQlhbiBhcnJheSBv ciBzdHJpbmcgZXhwcmVzc2lvbiwgY2FsbAotCXZhbHVlX2Y5MF9zdWJhcnJheS4KLQkqIGV2YWwu YyAodmFsdWVfZjkwX3N1YmFycmF5KTogQWRkIGFyZ3VtZW50IHBhcnNpbmcKLQlhbmQgY29tcHV0 ZSByZXN1bHQgYXJyYXkgYmFzZWQgb24gdXNlciBpbnB1dC4KLQkqIGYtZXhwLnk6IEluY3JlbWVu dCBhcmd1bWVudCBjb3VudGVyIGZvciBldmVyeSBzdWJyYW5nZQotCWV4cHJlc3Npb24gZW50ZXJl ZCBieSB0aGUgdXNlci4KLQkqIHZhbG9wcy5jICh2YWx1ZV9zbGljZSk6IENhbGwgdmFsdWVfc2xp Y2VfMSB3aXRoCi0JYWRkaXRpb25hbCBkZWZhdWx0IGFyZ3VtZW50LgotCSogdmFsb3BzLmMgKHZh bHVlX3NsaWNlXzEpOiBBZGQgZnVuY3Rpb25hbGl0eSB0bwotCWNvcHkgYW5kIHJldHVybiByZXN1 bHQgdmFsdWVzIGJhc2VkIG9uIGlucHV0LgotCSogdmFsdWUuaDogQWRkIGZ1bmN0aW9uIGRlZmlu aXRpb24uCi0KLQotU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgu dC53ZWlubWFubkBpbnRlbC5jb20+Ci0tLS0KLSBnZGIvZXZhbC5jICAgfCAzMTQgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSBnZGIv Zi1leHAueSAgfCAgIDIgKwotIGdkYi92YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0KLSBnZGIvdmFsdWUuaCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdlZCwgMzgw IGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL2V2YWwuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9y aWcvZ2RiL2V2YWwuYwkyMDE2LTA4LTA3IDIyOjA2OjQ1LjI2NjgzNjYxOSArMDIwMAotKysrIGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi9ldmFsLmMJMjAxNi0wOC0wNyAyMjowODoyMS43MDg2ODgy NTkgKzAyMDAKLUBAIC0zOTksMjkgKzM5OSwyNTQgQEAKLSAgIHJldHVybiBpbmRleDsKLSB9Ci0g Ci0rLyogRXZhbHVhdGVzIGFueSBvcGVyYXRpb24gb24gRm9ydHJhbiBhcnJheXMgb3Igc3RyaW5n cyB3aXRoIGF0IGxlYXN0Ci0rICAgb25lIHVzZXIgcHJvdmlkZWQgcGFyYW1ldGVyLiAgRXhwZWN0 cyB0aGUgaW5wdXQgQVJSQVkgdG8gYmUgZWl0aGVyCi0rICAgYW4gYXJyYXksIG9yIGEgc3RyaW5n LiAgRXZhbHVhdGVzIEVYUCBieSBpbmNyZW1lbnRpbmcgUE9TLCBhbmQKLSsgICB3cml0ZXMgdGhl IGNvbnRlbnQgZnJvbSB0aGUgZWx0IHN0YWNrIGludG8gYSBsb2NhbCBzdHJ1Y3QuICBOQVJHUwot KyAgIHNwZWNpZmllcyBudW1iZXIgb2YgbGl0ZXJhbCBvciByYW5nZSBhcmd1bWVudHMgdGhlIHVz ZXIgcHJvdmlkZWQuCi0rICAgTkFSR1MgbXVzdCBiZSB0aGUgc2FtZSBudW1iZXIgYXMgQVJSQVkg aGFzIGRpbWVuc2lvbnMuICAqLwotKwotIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotLXZhbHVlX2Y5 MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwKLS0JCSAgICBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQotK3ZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSsJCSAgICBp bnQgKnBvcywgaW50IG5hcmdzLCBlbnVtIG5vc2lkZSBub3NpZGUpCi0gewotLSAgaW50IHBjID0g KCpwb3MpICsgMTsKLSsgIGludCBpLCBkaW1fY291bnQgPSAwOwotICAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7Ci0tICBzdHJ1Y3QgdHlwZSAqcmFuZ2UgPSBjaGVja190eXBlZGVmIChU WVBFX0lOREVYX1RZUEUgKHZhbHVlX3R5cGUgKGFycmF5KSkpOwotLSAgZW51bSByYW5nZV90eXBl IHJhbmdlX3R5cGUKLS0gICAgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhw LT5lbHRzW3BjXS5sb25nY29uc3QpOwotLSAKLS0gICpwb3MgKz0gMzsKLSsgIHN0cnVjdCB2YWx1 ZSAqbmV3X2FycmF5ID0gYXJyYXk7Ci0rICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwotKyAgc3RydWN0IHR5cGUgKmVsdF90 eXBlOwotKwotKyAgdHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCi0rICB7Ci0rICAgIGVu dW0gcmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsKLSsgICAgTE9OR0VTVCBsb3csIGhpZ2g7Ci0r ICB9IHN1YnNjcmlwdF9yYW5nZTsKLSsKLSsgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2luZAot KyAgewotKyAgICBTVUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUuZy4gIihsb3dib3VuZDpoaWdoYm91 bmQpIiAgKi8KLSsgICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFsKSIgICov Ci0rICB9IGtpbmQ7Ci0rCi0rICAvKiBMb2NhbCBzdHJ1Y3QgdG8gaG9sZCB1c2VyIGRhdGEgZm9y IEZvcnRyYW4gc3ViYXJyYXkgZGltZW5zaW9ucy4gICovCi0rICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0 b3JlCi0rICB7Ci0rICAgIC8qIEZvciBldmVyeSBkaW1lbnNpb24sIHdlIGFyZSBlaXRoZXIgd29y a2luZyBvbiBhIHJhbmdlIG9yIGFuIGluZGV4Ci0rICAgICAgIGV4cHJlc3Npb24sIHNvIHdlIHN0 b3JlIHRoaXMgaW5mbyBzZXBhcmF0ZWx5IGZvciBsYXRlci4gICovCi0rICAgIGVudW0gc3Vic2Ny aXB0X2tpbmQga2luZDsKLSsKLSsgICAgLyogV2UgYWxzbyBzdG9yZSBlaXRoZXIgdGhlIGxvd2Vy IGFuZCB1cHBlciBib3VuZCBpbmZvLCBvciB0aGUgaW5kZXgKLSsgICAgICAgbnVtYmVyLiAgQmVm b3JlIGV2YWx1YXRpb24gb2YgdGhlIGlucHV0IHZhbHVlcywgd2UgZG8gbm90IGtub3cgaWYgd2Ug YXJlCi0rICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24gYSByYW5nZSBvZiByYW5nZXMsIG9yIGFu IGluZGV4IGluIGEgcmFuZ2UuICBTbyBhcyBhCi0rICAgICAgIGZpcnN0IHN0ZXAgd2Ugc3RvcmUg YWxsIGlucHV0IGluIGEgdW5pb24uICBUaGUgYXJyYXkgY2FsY3VsYXRpb24gaXRzZWxmCi0rICAg ICAgIGRlYWxzIHdpdGggdGhpcyBsYXRlciBvbi4gICovCi0rICAgIHVuaW9uIGVsZW1lbnRfcmFu Z2UKLSsgICAgewotKyAgICAgIHN1YnNjcmlwdF9yYW5nZSByYW5nZTsKLSsgICAgICBMT05HRVNU IG51bWJlcjsKLSsgICAgfSBVOwotKyAgfSAqc3Vic2NyaXB0X2FycmF5OwotKwotKyAgLyogQ2hl Y2sgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgbWF0Y2hl cwotKyAgICAgdGhlIG51bWJlciBvZiBkaW1lbnNpb24gb2YgdGhlIGFycmF5LiAgQSBzdHJpbmcg aGFzIG9ubHkgb25lCi0rICAgICBkaW1lbnNpb24uICAqLwotKyAgaWYgKG5hcmdzICE9IGNhbGNf Zjc3X2FycmF5X2RpbXMgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpKQotKyAgICBlcnJvciAoXygi V3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiKSk7Ci0rCi0rICBzdWJzY3JpcHRfYXJyYXkgPSAo c3RydWN0IHN1YnNjcmlwdF9zdG9yZSopIGFsbG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2FycmF5 KSAqIG5hcmdzKTsKLSsKLSsgIC8qIFBhcnNlIHRoZSB1c2VyIGlucHV0IGludG8gdGhlIFNVQlND UklQVF9BUlJBWSB0byBzdG9yZSBpdC4gIFdlIG5lZWQKLSsgICAgIHRvIGV2YWx1YXRlIGl0IGZp cnN0LCBhcyB0aGUgaW5wdXQgaXMgZnJvbSBsZWZ0LXRvLXJpZ2h0LiAgVGhlCi0rICAgICBhcnJh eSBpcyBzdG9yZWQgZnJvbSByaWdodC10by1sZWZ0LiAgU28gd2UgaGF2ZSB0byB1c2UgdGhlIHVz ZXIKLSsgICAgIGlucHV0IGluIHJldmVyc2Ugb3JkZXIuICBMYXRlciBvbiwgd2UgbmVlZCB0aGUg aW5wdXQgaW5mb3JtYXRpb24gdG8KLSsgICAgIHJlLWNhbGN1bGF0ZSB0aGUgb3V0cHV0IGFycmF5 LiAgRm9yIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5cywgd2UKLSsgICAgIGNhbiBiZSBkZWFsaW5n IHdpdGggYW55IHBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mIHJhbmdlcyBhbmQgaW5kaWNlcwotKyAg ICAgZm9yIGV2ZXJ5IGRpbWVuc2lvbi4gICovCi0rICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkr KykKLSsgICAgewotKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNj cmlwdF9hcnJheVtpXTsKLSAKLS0gIGlmIChyYW5nZV90eXBlID09IExPV19CT1VORF9ERUZBVUxU IHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBsb3dfYm91bmQgPSBU WVBFX0xPV19CT1VORCAocmFuZ2UpOwotLSAgZWxzZQotLSAgICBsb3dfYm91bmQgPSB2YWx1ZV9h c19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwot KyAgICAgIC8qIFRoZSB1c2VyIGlucHV0IGlzIGEgcmFuZ2UsIHdpdGggb3Igd2l0aG91dCBsb3dl ciBhbmQgdXBwZXIgYm91bmQuCi0rCSBFLmcuOiAicCBhcnJ5KDI6NSkiLCAicCBhcnJ5KCA6NSki LCAicCBhcnJ5KCA6ICkiLCBldGMuICAqLwotKyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bj b2RlID09IE9QX1JBTkdFKQotKwl7Ci0rCSAgaW50IHBjID0gKCpwb3MpICsgMTsKLSsJICBzdWJz Y3JpcHRfcmFuZ2UgKnJhbmdlOwotIAotLSAgaWYgKHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9E RUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBoaWdoX2Jv dW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7Ci0tICBlbHNlCi0tICAgIGhpZ2hfYm91bmQg PSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5v c2lkZSkpOwotKwkgIGluZGV4LT5raW5kID0gU1VCU0NSSVBUX1JBTkdFOwotKwkgIHJhbmdlID0g JmluZGV4LT5VLnJhbmdlOwotKwotKwkgICpwb3MgKz0gMzsKLSsJICByYW5nZS0+ZjkwX3Jhbmdl X3R5cGUgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5s b25nY29uc3QpOwotKwotKwkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRo ZSB1c2VyLCB0aGUgYml0IGhhcyBiZWVuCi0rCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRo ZSB2YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgotKwkgICAgIHVwcGVyIGJvdW5k LiAgKi8KLSsJICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFV TFQpCi0rCSAgICAgIHx8IHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFV TFQpCi0rCSAgICByYW5nZS0+bG93ID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChO VUxMX1RZUEUsIGV4cCwKLSsJCQkJCQkJIHBvcywgbm9zaWRlKSk7Ci0rCSAgaWYgKChyYW5nZS0+ ZjkwX3JhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQpCi0rCSAgICAgIHx8IHJhbmdlLT5m OTBfcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCSAgICByYW5nZS0+aGlnaCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCi0rCQkJCQkJ CSAgcG9zLCBub3NpZGUpKTsKLSsJfQotKyAgICAgIC8qIFVzZXIgaW5wdXQgaXMgYW4gaW5kZXgu ICBFLmcuOiAicCBhcnJ5KDUpIi4gICovCi0rICAgICAgZWxzZQotKwl7Ci0rCSAgc3RydWN0IHZh bHVlICp2YWw7Ci0rCi0rCSAgaW5kZXgtPmtpbmQgPSBTVUJTQ1JJUFRfSU5ERVg7Ci0rCi0rCSAg LyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBsZWdhbCBpbnRlZ2VyIGlu IEY3Ny4gIFRoaXMKLSsJICAgICBlbnN1cmVzIHRoZSB2YWxpZGl0eSBvZiB0aGUgcHJvdmlkZWQg aW5kZXguICAqLwotKwkgIHZhbCA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAs IHBvcywgbm9zaWRlKTsKLSsJICBpbmRleC0+VS5udW1iZXIgPSB2YWx1ZV9hc19sb25nICh2YWwp OwotKwl9Ci0rCi0rICAgIH0KLSsKLSsgIC8qIFRyYXZlcnNlIHRoZSBhcnJheSBmcm9tIHJpZ2h0 IHRvIGxlZnQgYW5kIGV2YWx1YXRlIGVhY2ggY29ycmVzcG9uZGluZwotKyAgICAgdXNlciBpbnB1 dC4gIFZBTFVFX1NVQlNDUklQVCBpcyBjYWxsZWQgZm9yIGV2ZXJ5IGluZGV4LCB1bnRpbCBhIHJh bmdlCi0rICAgICBleHByZXNzaW9uIGlzIGV2YWx1YXRlZC4gIEFmdGVyIGEgcmFuZ2UgZXhwcmVz c2lvbiBoYXMgYmVlbiBldmFsdWF0ZWQsCi0rICAgICBldmVyeSBzdWJzZXF1ZW50IGV4cHJlc3Np b24gaXMgYWxzbyB0cmVhdGVkIGFzIGEgcmFuZ2UuICAqLwotKyAgZm9yIChpID0gbmFyZ3MgLSAx OyBpID49IDA7IGktLSkKLSsgICAgewotKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmlu ZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKLSsgICAgICBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlw ZSA9IFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSk7Ci0rCi0rICAgICAgc3dpdGNoIChpbmRl eC0+a2luZCkKLSsJewotKwljYXNlIFNVQlNDUklQVF9SQU5HRToKLSsJICB7Ci0rCi0rCSAgICAv KiBXaGVuIHdlIGhpdCB0aGUgZmlyc3QgcmFuZ2Ugc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB3ZSBt dXN0Ci0rCSAgICAgICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2Uu ICBXZSBzaW1wbHkKLSsJICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMg aG93IG1hbnkgdGltZXMgd2UgYXJlCi0rCSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAq LwotKwkgICAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKLSsKLSsJ ICAgIC8qIElmIG5vIGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFr ZSB0aGUKLSsJICAgICAgIGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3Vu ZC4gICovCi0rCSAgICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVG QVVMVCkKLSsJCXx8IChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxU KSkKLSsJICAgICAgcmFuZ2UtPmxvdyA9IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKTsKLSsK LSsJICAgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCkK LSsJCXx8IChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKSkKLSsJ ICAgICAgcmFuZ2UtPmhpZ2ggPSBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpOwotKwotKwkg ICAgLyogQm90aCB1c2VyIHByb3ZpZGVkIGxvdyBhbmQgaGlnaCBib3VuZCBoYXZlIHRvIGJlIGlu c2lkZSB0aGUKLSsJICAgICAgIGFycmF5IGJvdW5kcy4gIFRocm93IGFuIGVycm9yIGlmIG5vdC4g ICovCi0rCSAgICBpZiAocmFuZ2UtPmxvdyA8IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQot KwkJfHwgcmFuZ2UtPmxvdyA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkKLSsJCXx8IHJh bmdlLT5oaWdoIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0rCQl8fCByYW5nZS0+aGln aCA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCi0rCSAgICAgIGVycm9yIChfKCJwcm92 aWRlZCBib3VuZChzKSBvdXRzaWRlIGFycmF5IGJvdW5kKHMpIikpOwotKwotKwkgICAgLyogRElN X0NPVU5UIGNvdW50cyBldmVyeSB1c2VyIGFyZ3VtZW50IHRoYXQgaXMgdHJlYXRlZCBhcyBhIHJh bmdlLgotKwkgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGV4cHJlc3Npb25zIGxpa2UgJ3By aW50IGFycmF5KDcsIDg6OSkuCi0rCSAgICAgICBIZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBh IGxpdGVyYWwsIGJ1dCBtdXN0IGJlIHRyZWF0ZWQgYXMgYQotKwkgICAgICAgcmFuZ2UgYXJndW1l bnQgdG8gYWxsb3cgdGhlIGNvcnJlY3Qgb3V0cHV0IHJlcHJlc2VudGF0aW9uLiAgKi8KLSsJICAg IGRpbV9jb3VudCsrOwotKwotKwkgICAgbmV3X2FycmF5Ci0rCSAgICAgID0gdmFsdWVfc2xpY2Vf MSAobmV3X2FycmF5LAotKwkJCSAgICAgICBsb25nZXN0X3RvX2ludCAocmFuZ2UtPmxvdyksCi0r CQkJICAgICAgIGxvbmdlc3RfdG9faW50IChyYW5nZS0+aGlnaCAtIHJhbmdlLT5sb3cgKyAxKSwK LSsJCQkgICAgICAgZGltX2NvdW50KTsKLSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgU1VC U0NSSVBUX0lOREVYOgotKwkgIHsKLSsJICAgIC8qIERJTV9DT1VOVCBvbmx5IHN0YXlzICcwJyB3 aGVuIG5vIHJhbmdlIGFyZ3VtZW50IHdhcyBwcm9jZXNzZWQKLSsJICAgICAgIGJlZm9yZSwgc3Rh cnRpbmcgZnJvbSB0aGUgbGFzdCBkaW1lbnNpb24uICBUaGlzIHdheSB3ZSBjYW4KLSsJICAgICAg IHJlZHVjZSB0aGUgbnVtYmVyIG9mIGRpbWVuc2lvbnMgZnJvbSB0aGUgcmVzdWx0IGFycmF5Lgot KwkgICAgICAgSG93ZXZlciwgaWYgYSByYW5nZSBoYXMgYmVlbiBwcm9jZXNzZWQgYmVmb3JlIGFu IGluZGV4LCB3ZQotKwkgICAgICAgdHJlYXQgdGhlIGluZGV4IGxpa2UgYSByYW5nZSB3aXRoIGVx dWFsIGxvdy0gYW5kIGhpZ2ggYm91bmRzCi0rCSAgICAgICB0byBnZXQgdGhlIHZhbHVlIG9mZnNl dCByaWdodC4gICovCi0rCSAgICBpZiAoZGltX2NvdW50ID09IDApCi0rCSAgICAgIG5ld19hcnJh eQotKwkgICAgICAgID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4 LT5VLm51bWJlciwKLSsJCQkJCSAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVlX3R5cGUKLSsJ CQkJCQkJCSAgKG5ld19hcnJheSkpKTsKLSsJICAgIGVsc2UKLSsJICAgICAgewotKwkJLyogQ2hl Y2sgZm9yIHZhbGlkIGluZGV4IGlucHV0LiAgKi8KLSsJCWlmIChpbmRleC0+VS5udW1iZXIgPCBU WVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkKLSsJCSAgICB8fCBpbmRleC0+VS5udW1iZXIgPiBU WVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotKwkJICBlcnJvciAoXygiZXJyb3Igbm8gc3Vj aCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsKLSsJCWRpbV9jb3VudCsrOwotKwkJbmV3X2FycmF5ID0g dmFsdWVfc2xpY2VfMSAobmV3X2FycmF5LAotKwkJCQkJICAgbG9uZ2VzdF90b19pbnQgKGluZGV4 LT5VLm51bWJlciksCi0rCQkJCQkgICAxLCAvKiBsZW5ndGggaXMgJzEnIGVsZW1lbnQgICovCi0r CQkJCQkgICBkaW1fY291bnQpOwotKwkgICAgICB9Ci0rCi0rCSAgfQotKwkgIGJyZWFrOwotKwl9 Ci0rICAgIH0KLSsKLSsgIC8qIFdpdGggRElNX0NPVU5UID4gMSB3ZSBjdXJyZW50bHkgaGF2ZSBh IG9uZSBkaW1lbnNpb25hbCBhcnJheSwgYnV0IGV4cGVjdAotKyAgICAgYW4gYXJyYXkgb2YgYXJy YXlzLCBkZXBlbmRpbmcgb24gaG93IG1hbnkgcmFuZ2VzIGhhdmUgYmVlbiBwcm92aWRlZCBieQot KyAgICAgdGhlIHVzZXIuICBTbyB3ZSBuZWVkIHRvIHJlYnVpbGQgdGhlIGFycmF5IGRpbWVuc2lv bnMgZm9yIHByaW50aW5nIGl0Ci0rICAgICBjb3JyZWN0bHkuCi0rICAgICBTdGFydGluZyBmcm9t IHJpZ2h0IHRvIGxlZnQgaW4gdGhlIHVzZXIgaW5wdXQsIGFmdGVyIHdlIGhpdCB0aGUgZmlyc3QK LSsgICAgIHJhbmdlIGFyZ3VtZW50IGV2ZXJ5IHN1YnNlcXVlbnQgYXJndW1lbnQgaXMgYWxzbyB0 cmVhdGVkIGFzIGEgcmFuZ2UuCi0rICAgICBFLmcuOgotKyAgICAgInAgYXJ5KDMsIDcsIDI6MTUp IiBpbiBGb3J0cmFuIGhhcyBvbmx5IDEgZGltZW5zaW9uLCBidXQgd2UgY2FsY3VsYXRlZCAzCi0r ICAgICByYW5nZXMuCi0rICAgICAicCBhcnkoMywgNzoxMiwgNCkiIGluIEZvcnRyYW4gaGFzIG9u bHkgMSBkaW1lbnNpb24sIGJ1dCB3ZSBjYWxjdWxhdGVkIDIKLSsgICAgIHJhbmdlcy4KLSsgICAg ICJwIGFyeSgyOjQsIDUsIDcpIiBpbiBGb3J0cmFuIGhhcyBvbmx5IDEgZGltZW5zaW9uLCBhbmQg d2UgY2FsY3VsYXRlZCAxCi0rICAgICByYW5nZS4gICovCi0rICBpZiAoZGltX2NvdW50ID4gMSkK LSsgICAgewotKyAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7Ci0rCi0rICAgICAgZWx0X3R5 cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKLSsKLSsgICAg ICAvKiBFdmVyeSBTVUJTQ1JJUFRfUkFOR0UgaW4gdGhlIHVzZXIgaW5wdXQgc2lnbmlmaWVzIGFu IGFjdHVhbCByYW5nZSBpbgotKwkgdGhlIG91dHB1dCBhcnJheS4gIFNvIHdlIHRyYXZlcnNlIHRo ZSBTVUJTQ1JJUFRfQVJSQVkgYWdhaW4sIGxvb2tpbmcKLSsJIGZvciBhIHJhbmdlIGVudHJ5LiAg V2hlbiB3ZSBmaW5kIG9uZSwgd2UgdXNlIHRoZSByYW5nZSBpbmZvIHRvIGNyZWF0ZQotKwkgYW4g YWRkaXRpb25hbCByYW5nZV90eXBlIHRvIHNldCB0aGUgY29ycmVjdCBib3VuZHMgYW5kIGRpbWVu c2lvbnMgZm9yCi0rCSB0aGUgb3V0cHV0IGFycmF5LiAgKi8KLSsgICAgICBmb3IgKGkgPSAwOyBp IDwgbmFyZ3M7IGkrKykKLSsJewotKwkgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0g JnN1YnNjcmlwdF9hcnJheVtpXTsKLSsKLSsJICBpZiAoaW5kZXgtPmtpbmQgPT0gU1VCU0NSSVBU X1JBTkdFKQotKwkgICAgewotKwkgICAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSwgKmludGVy aW1fYXJyYXlfdHlwZTsKLSsKLSsJICAgICAgcmFuZ2VfdHlwZQotKwkJPSBjcmVhdGVfc3RhdGlj X3JhbmdlX3R5cGUgKE5VTEwsCi0rCQkJCQkgICAgZWx0X3R5cGUsCi0rCQkJCQkgICAgMSwKLSsJ CQkJCSAgICBpbmRleC0+VS5yYW5nZS5oaWdoCi0rCQkJCQkgICAgICAtIGluZGV4LT5VLnJhbmdl LmxvdyArIDEpOwotKwotKwkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlf dHlwZSAoTlVMTCwKLSsJCQkJCQkgICAgICBlbHRfdHlwZSwKLSsJCQkJCQkgICAgICByYW5nZV90 eXBlKTsKLSsKLSsJICAgICAgVFlQRV9DT0RFIChpbnRlcmltX2FycmF5X3R5cGUpCi0rCQk9IFRZ UEVfQ09ERSAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7Ci0gCi0tICByZXR1cm4gdmFsdWVfc2xp Y2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSsJICAg ICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChpbnRlcmltX2FycmF5X3R5cGUpOwotKwotKwkgICAgICBl bHRfdHlwZSA9IHZhbHVlX3R5cGUgKHYpOwotKwkgICAgfQotKwotKwl9Ci0rICAgICAgdmFsdWVf Y29udGVudHNfY29weSAodiwgMCwgbmV3X2FycmF5LCAwLCBUWVBFX0xFTkdUSCAoZWx0X3R5cGUp KTsKLSsgICAgICByZXR1cm4gdjsKLSsgICAgfQotKwotKyAgcmV0dXJuIG5ld19hcnJheTsKLSB9 Ci0gCi0gCi1AQCAtMTgxMCwxNCArMjAzNSwxMSBAQAotICAgICAgIHN3aXRjaCAoY29kZSkKLSAJ ewotIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKLS0JICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29k ZSA9PSBPUF9SQU5HRSkKLS0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4 cCwgcG9zLCBub3NpZGUpOwotLQkgIGVsc2UKLS0JICAgIGdvdG8gbXVsdGlfZjc3X3N1YnNjcmlw dDsKLSsJICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3Ms IG5vc2lkZSk7Ci0gCi0gCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAJICBpZiAoZXhwLT5lbHRz Wypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKLS0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJy YXkgKGFyZzEsIGV4cCwgcG9zLCBub3NpZGUpOwotKwkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJh cnJheSAoYXJnMSwgZXhwLCBwb3MsIDEsIG5vc2lkZSk7Ci0gCSAgZWxzZQotIAkgICAgewotIAkg ICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3Np ZGUpOwotQEAgLTIyMjMsNDkgKzI0NDUsNiBAQAotIAl9Ci0gICAgICAgcmV0dXJuIChhcmcxKTsK LSAKLS0gICAgbXVsdGlfZjc3X3N1YnNjcmlwdDoKLS0gICAgICB7Ci0tCUxPTkdFU1Qgc3Vic2Ny aXB0X2FycmF5W01BWF9GT1JUUkFOX0RJTVNdOwotLQlpbnQgbmRpbWVuc2lvbnMgPSAxLCBpOwot LQlzdHJ1Y3QgdmFsdWUgKmFycmF5ID0gYXJnMTsKLS0KLS0JaWYgKG5hcmdzID4gTUFYX0ZPUlRS QU5fRElNUykKLS0JICBlcnJvciAoXygiVG9vIG1hbnkgc3Vic2NyaXB0cyBmb3IgRjc3ICglZCBN YXgpIiksIE1BWF9GT1JUUkFOX0RJTVMpOwotLQotLQluZGltZW5zaW9ucyA9IGNhbGNfZjc3X2Fy cmF5X2RpbXMgKHR5cGUpOwotLQotLQlpZiAobmFyZ3MgIT0gbmRpbWVuc2lvbnMpCi0tCSAgZXJy b3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIikpOwotLQotLQlnZGJfYXNzZXJ0IChu YXJncyA+IDApOwotLQotLQkvKiBOb3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgYSBsZWdhbCBhcnJh eSBzdWJzY3JpcHQgZXhwcmVzc2lvbiAKLS0JICAgbGV0IHVzIGFjdHVhbGx5IGZpbmQgb3V0IHdo ZXJlIHRoaXMgZWxlbWVudCBleGlzdHMgaW4gdGhlIGFycmF5LiAgKi8KLS0KLS0JLyogVGFrZSBh cnJheSBpbmRpY2VzIGxlZnQgdG8gcmlnaHQuICAqLwotLQlmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7 IGkrKykKLS0JICB7Ci0tCSAgICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBi ZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgKi8KLS0JICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJl eHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7Ci0tCi0tCSAgICAvKiBGaWxsIGlu IHRoZSBzdWJzY3JpcHQgYXJyYXkuICAqLwotLQotLQkgICAgc3Vic2NyaXB0X2FycmF5W2ldID0g dmFsdWVfYXNfbG9uZyAoYXJnMik7Ci0tCSAgfQotLQotLQkvKiBJbnRlcm5hbCB0eXBlIG9mIGFy cmF5IGlzIGFycmFuZ2VkIHJpZ2h0IHRvIGxlZnQuICAqLwotLQlmb3IgKGkgPSBuYXJnczsgaSA+ IDA7IGktLSkKLS0JICB7Ci0tCSAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0tCSAgICBMT05HRVNUIGluZGV4ID0gc3Vic2Ny aXB0X2FycmF5W2kgLSAxXTsKLS0KLS0JICAgIGFycmF5ID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZh bHVlIChhcnJheSwgaW5kZXgsCi0tCQkJCQkgICAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKGFycmF5 X3R5cGUpKTsKLS0JICB9Ci0tCi0tCXJldHVybiBhcnJheTsKLS0gICAgICB9Ci0tCi0gICAgIGNh c2UgQklOT1BfTE9HSUNBTF9BTkQ6Ci0gICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVM TF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKLSAgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJ UCkKLUBAIC0zMTIzLDYgKzMzMDIsOSBAQAotICAgaW50IG5kaW1lbiA9IDE7Ci0gICBzdHJ1Y3Qg dHlwZSAqdG1wX3R5cGU7Ci0gCi0rICBpZiAoVFlQRV9DT0RFIChhcnJheV90eXBlKSA9PSBUWVBF X0NPREVfU1RSSU5HKQotKyAgICByZXR1cm4gMTsKLSsKLSAgIGlmICgoVFlQRV9DT0RFIChhcnJh eV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQotICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRp bWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7Ci0gCi1JbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL2YtZXhwLnkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgw Ny5vcmlnL2dkYi9mLWV4cC55CTIwMTYtMDgtMDcgMjI6MDY6NDUuMjY2ODM2NjE5ICswMjAwCi0r KysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2YtZXhwLnkJMjAxNi0wOC0wNyAyMjowODoyMS43 MDk2ODgyNjggKzAyMDAKLUBAIC0yNTMsNiArMjUzLDggQEAKLSAgICAKLSBhcmdsaXN0CToJYXJn bGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IGFyZ2xpc3RfbGVuKys7IH0K LSsJfAlhcmdsaXN0ICcsJyBzdWJyYW5nZQklcHJlYyBBQk9WRV9DT01NQQotKwkJCXsgYXJnbGlz dF9sZW4rKzsgfQotIAk7Ci0gCi0gLyogVGhlcmUgYXJlIGZvdXIgc29ydHMgb2Ygc3VicmFuZ2Ug dHlwZXMgaW4gRjkwLiAgKi8KLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsb3Bz LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi92YWxvcHMu YwkyMDE2LTA4LTA3IDIyOjA2OjQ1LjI2NjgzNjYxOSArMDIwMAotKysrIGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi92YWxvcHMuYwkyMDE2LTA4LTA3IDIyOjEzOjIyLjA4MzM0MDc1MCArMDIwMAot QEAgLTM3NzUsNTYgKzM3NzUsMTU0IEBACi0gc3RydWN0IHZhbHVlICoKLSB2YWx1ZV9zbGljZSAo c3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQotIHsKLSsgIC8q IFBhc3MgdW5hbHRlcmVkIGFyZ3VtZW50cyB0byBWQUxVRV9TTElDRV8xLCBwbHVzIGEgQ0FMTF9D T1VOVCBvZiAnMScgYXMgd2UKLSsgICAgIGFyZSBvbmx5IGNvbnNpZGVyaW5nIHRoZSBoaWdoZXN0 IGRpbWVuc2lvbiwgb3Igd2UgYXJlIHdvcmtpbmcgb24gYSBvbmUKLSsgICAgIGRpbWVuc2lvbmFs IGFycmF5LiAgU28gd2UgY2FsbCBWQUxVRV9TTElDRV8xIGV4YWN0bHkgb25jZS4gICovCi0rICBy ZXR1cm4gdmFsdWVfc2xpY2VfMSAoYXJyYXksIGxvd2JvdW5kLCBsZW5ndGgsIDEpOwotK30KLSsK LSsvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8g Y2FsY3VsYXRlIHRoZSBudW1iZXIKLSsgICBvZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBz dWJzY3JpcHQgZXhwcmVzc2lvbi4KLSsgICBDQUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5l IGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcuCi0rICAgd2UgYXJlIHdv cmtpbmcgb24gdGhlIGN1cnJlbnQgZGltZW5zaW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2Fs bGluZwotKyAgIHRoZSBmdW5jdGlvbiByZXBlYXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2Ug bmVlZCB0byB0YWtlIGVsZW1lbnRzCi0rICAgZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVku Ci0rICAgV2l0aCBhIENBTExfQ09VTlQgZ3JlYXRlciB0aGFuIDEgd2UgY2FsY3VsYXRlIHRoZSBv ZmZzZXRzIGZvciBldmVyeSBlbGVtZW50Ci0rICAgdGhhdCBzaG91bGQgYmUgaW4gdGhlIHJlc3Vs dCBhcnJheS4gIFRoZW4gd2UgZmV0Y2ggdGhlIGNvbnRlbnRzIGFuZCB0aGVuCi0rICAgY29weSB0 aGVtIGludG8gdGhlIHJlc3VsdCBhcnJheS4gIFRoZSByZXN1bHQgYXJyYXkgd2lsbCBoYXZlIG9u ZSBkaW1lbnNpb24KLSsgICBsZXNzIHRoYW4gdGhlIGlucHV0IGFycmF5LCBzbyBsYXRlciBvbiB3 ZSBuZWVkIHRvIHJlY3JlYXRlIHRoZSBpbmRpY2VzIGFuZAotKyAgIHJhbmdlcyBpbiB0aGUgY2Fs bGluZyBmdW5jdGlvbi4gICovCi0rCi0rc3RydWN0IHZhbHVlICoKLSt2YWx1ZV9zbGljZV8xIChz dHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2Nv dW50KQotK3sKLSAgIHN0cnVjdCB0eXBlICpzbGljZV9yYW5nZV90eXBlLCAqc2xpY2VfdHlwZSwg KnJhbmdlX3R5cGU7Ci0tICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7Ci0tICBzdHJ1 Y3QgdmFsdWUgKnNsaWNlOwotLSAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGU7Ci0rICBzdHJ1Y3Qg dHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0r ICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBF IChhcnJheV90eXBlKSk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0X3NpemUsIGVsdF9vZmZzOwotKyAg LyogQVRUUklCVVRFX1VOVVNFRDogVkxBIGJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE2LTA4L21zZzAwMDk5Lmh0bWwgKi8KLSsgIExPTkdFU1QgZWx0X3N0cmlk ZSBBVFRSSUJVVEVfVU5VU0VELCBhcnlfaGlnaF9ib3VuZCwgYXJ5X2xvd19ib3VuZDsKLSsgIHN0 cnVjdCB2YWx1ZSAqdjsKLSsgIGludCBzbGljZV9yYW5nZV9zaXplLCBpID0gMCwgcm93X2NvdW50 ID0gMSwgZWxlbV9jb3VudCA9IDE7Ci0gCi0tICBhcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJyYXkpKTsKLSsgIC8qIENoZWNrIGZvciBsZWdhY3kgY29kZSBpZiB3ZSBh cmUgYWN0dWFsbHkgZGVhbGluZyB3aXRoIGFuIGFycmF5IG9yCi0rICAgICBzdHJpbmcuICAqLwot ICAgaWYgKFRZUEVfQ09ERSAoYXJyYXlfdHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZCi0gICAgICAg JiYgVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfU1RSSU5HKQotICAgICBlcnJv ciAoXygiY2Fubm90IHRha2Ugc2xpY2Ugb2Ygbm9uLWFycmF5IikpOwotIAotLSAgcmFuZ2VfdHlw ZSA9IFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSk7Ci0tICBpZiAoZ2V0X2Rpc2NyZXRlX2Jv dW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKSA8IDApCi0tICAgIGVy cm9yIChfKCJzbGljZSBmcm9tIGJhZCBhcnJheSBvciBiaXRzdHJpbmciKSk7Ci0tCi0tICBpZiAo bG93Ym91bmQgPCBsb3dlcmJvdW5kIHx8IGxlbmd0aCA8IDAKLS0gICAgICB8fCBsb3dib3VuZCAr IGxlbmd0aCAtIDEgPiB1cHBlcmJvdW5kKQotLSAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJh bmdlIikpOwotKyAgYXJ5X2xvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChUWVBFX0lOREVYX1RZ UEUgKGFycmF5X3R5cGUpKTsKLSsgIGFyeV9oaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChU WVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsKLSsgIC8qIFdoZW4gd2UgYXJlIHdvcmtp bmcgb24gYSBtdWx0aS1kaW1lbnNpb25hbCBhcnJheSwgd2UgbmVlZCB0byBnZXQgdGhlCi0rICAg ICBhdHRyaWJ1dGVzIG9mIHRoZSB1bmRlcmx5aW5nIHR5cGUuICAqLwotKyAgaWYgKGNhbGxfY291 bnQgPiAxKQotKyAgICB7Ci0rICAgICAgZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RB UkdFVF9UWVBFIChlbHRfdHlwZSkpOwotKyAgICAgIHJvd19jb3VudCA9IFRZUEVfTEVOR1RIIChh cnJheV90eXBlKQotKwkJICAgIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5 X3R5cGUpKTsKLSsgICAgfQotKwotKyAgZWxlbV9jb3VudCA9IGxlbmd0aDsKLSsgIGVsdF9zaXpl ID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsKLSsgIGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQg KGxvd2JvdW5kIC0gYXJ5X2xvd19ib3VuZCk7Ci0rICBlbHRfc3RyaWRlID0gVFlQRV9MRU5HVEgg KFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwotKwotKyAgZWx0X29mZnMgKj0gZWx0X3Np emU7Ci0rCi0rICAvKiBDaGVjayBmb3IgdmFsaWQgdXNlciBpbnB1dC4gIEluIGNhc2Ugb2YgRm9y dHJhbiB0aGlzIHdhcyBhbHJlYWR5IGRvbmUKLSsgICAgIGluIHRoZSBjYWxsaW5nIGZ1bmN0aW9u LiAgKi8KLSsgIGlmIChjYWxsX2NvdW50ID09IDEKLSsJJiYgKCFUWVBFX0FSUkFZX1VQUEVSX0JP VU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKLSsJICAgICAgJiYgZWx0X29mZnMgPj0gVFlQ RV9MRU5HVEggKGFycmF5X3R5cGUpKSkKLSsgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQiKSk7Ci0rCi0rICAvKiBDQUxMX0NPVU5UIGlzIDEgd2hlbiB3ZSBhcmUgZGVhbGluZyBl aXRoZXIgd2l0aCB0aGUgaGlnaGVzdCBkaW1lbnNpb24KLSsgICAgIG9mIHRoZSBhcnJheSwgb3Ig YSBvbmUgZGltZW5zaW9uYWwgYXJyYXkuICBTZXQgUkFOR0VfVFlQRSBhY2NvcmRpbmdseS4KLSsg ICAgIEluIGJvdGggY2FzZXMgd2UgY2FsY3VsYXRlIGhvdyBtYW55IHJvd3MvZWxlbWVudHMgd2ls bCBiZSBpbiB0aGUgb3V0cHV0Ci0rICAgICBhcnJheSBieSBzZXR0aW5nIHNsaWNlX3JhbmdlX3Np emUuICAqLwotKyAgaWYgKGNhbGxfY291bnQgPT0gMSkKLSsgICAgewotKyAgICAgIHJhbmdlX3R5 cGUgPSBUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpOwotKyAgICAgIHNsaWNlX3JhbmdlX3Np emUgPSBlbGVtX2NvdW50OwotKwotKyAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMg YXJlIHZhbGlkLiAgKi8KLSsgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlw ZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQotKwllcnJvciAoXygic2xp Y2UgZnJvbSBiYWQgYXJyYXkgb3IgYml0c3RyaW5nIikpOwotKyAgICB9Ci0rICAvKiBXaGVuIENB TExfQ09VTlQgaXMgZ3JlYXRlciB0aGFuIDEsIHdlIGFyZSBkZWFsaW5nIHdpdGggYW4gYXJyYXkg b2YgYXJyYXlzLgotKyAgICAgU28gd2UgbmVlZCB0byBnZXQgdGhlIHR5cGUgYmVsb3cgdGhlIGN1 cnJlbnQgb25lIGFuZCBzZXQgdGhlIFJBTkdFX1RZUEUKLSsgICAgIGFjY29yZGluZ2x5LiAgKi8K LSsgIGVsc2UKLSsgICAgewotKyAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKFRZ UEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsgICAgICBzbGljZV9yYW5nZV9zaXplID0g KGFyeV9sb3dfYm91bmQgKyByb3dfY291bnQgLSAxKSAqIChlbGVtX2NvdW50KTsKLSsgICAgICBh cnlfbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpOwotKyAgICB9Ci0gCi0g ICAvKiBGSVhNRS10eXBlLWFsbG9jYXRpb246IG5lZWQgYSB3YXkgdG8gZnJlZSB0aGlzIHR5cGUg d2hlbiB3ZSBhcmUKLS0gICAgIGRvbmUgd2l0aCBpdC4gICovCi0tICBzbGljZV9yYW5nZV90eXBl ID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKLS0JCQkJ CSAgICAgICBUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKLS0JCQkJCSAgICAgICBsb3di b3VuZCwKLS0JCQkJCSAgICAgICBsb3dib3VuZCArIGxlbmd0aCAtIDEpOwotKyAgICAgIGRvbmUg d2l0aCBpdC4gICovCi0gCi0rICBzbGljZV9yYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5n ZV90eXBlIChOVUxMLCBUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKLSsJCQkJCSAgICAg ICBhcnlfbG93X2JvdW5kLCBzbGljZV9yYW5nZV9zaXplKTsKLSAgIHsKLS0gICAgc3RydWN0IHR5 cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwotLSAgICBM T05HRVNUIG9mZnNldAotLSAgICAgID0gKGxvd2JvdW5kIC0gbG93ZXJib3VuZCkgKiBUWVBFX0xF TkdUSCAoY2hlY2tfdHlwZWRlZiAoZWxlbWVudF90eXBlKSk7Ci0tCi0tICAgIHNsaWNlX3R5cGUg PSBjcmVhdGVfYXJyYXlfdHlwZSAoKHN0cnVjdCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBlbGVt ZW50X3R5cGUsCi0tCQkJCSAgICBzbGljZV9yYW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RFIChz bGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7Ci0rICAgIHN0cnVjdCB0eXBlICpl bGVtZW50X3R5cGU7Ci0rCi0rICAgIC8qIFdoZW4gQ0FMTF9DT1VOVCBlcXVhbHMgMSB3ZSBjYW4g dXNlIHRoZSBsZWdhY3kgY29kZSBmb3Igc3ViYXJyYXlzLiAgKi8KLSsgICAgaWYgKGNhbGxfY291 bnQgPT0gMSkKLSsgICAgICB7Ci0rCWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFy cmF5X3R5cGUpOwotIAotLSAgICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkpID09IGx2YWxfbWVtb3J5 ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKLS0gICAgICBzbGljZSA9IGFsbG9jYXRlX3ZhbHVlX2xh enkgKHNsaWNlX3R5cGUpOwotKwlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEws IGVsZW1lbnRfdHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7Ci0rCi0rCVRZUEVfQ09ERSAoc2xpY2Vf dHlwZSkgPSBUWVBFX0NPREUgKGFycmF5X3R5cGUpOwotKwotKwlpZiAoVkFMVUVfTFZBTCAoYXJy YXkpID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKLSsJICB2ID0gYWxsb2Nh dGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7Ci0rCWVsc2UKLSsJICB7Ci0rCSAgICB2ID0gYWxs b2NhdGVfdmFsdWUgKHNsaWNlX3R5cGUpOwotKwkgICAgdmFsdWVfY29udGVudHNfY29weSAodiwK LSsJCQkJIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodiksCi0rCQkJCSBhcnJheSwKLSsJCQkJIHZh bHVlX2VtYmVkZGVkX29mZnNldCAoYXJyYXkpICsgZWx0X29mZnMsCi0rCQkJCSBlbHRfc2l6ZSAq IGxvbmdlc3RfdG9faW50IChsZW5ndGgpKTsKLSsJICB9Ci0rCi0rICAgICAgfQotKyAgICAvKiBX aGVuIENBTExfQ09VTlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBvbiBhIHJhbmdl IG9mIHJhbmdlcy4KLSsgICAgICAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50 byB0aGUgbmV3IGFycmF5IHdlIHJldHVybi4gICovCi0gICAgIGVsc2UKLSAgICAgICB7Ci0tCXNs aWNlID0gYWxsb2NhdGVfdmFsdWUgKHNsaWNlX3R5cGUpOwotLQl2YWx1ZV9jb250ZW50c19jb3B5 IChzbGljZSwgMCwgYXJyYXksIG9mZnNldCwKLS0JCQkgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIChz bGljZV90eXBlKSk7Ci0rCUxPTkdFU1QgZHN0X29mZnNldCA9IDA7Ci0rCUxPTkdFU1Qgc3JjX3Jv d19sZW5ndGggPSBUWVBFX0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwot KwotKwllbGVtZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChh cnJheV90eXBlKSk7Ci0rCXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwgZWxl bWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsKLSsKLSsJVFlQRV9DT0RFIChzbGljZV90eXBl KSA9IFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotKwotKwl2ID0g YWxsb2NhdGVfdmFsdWUgKHNsaWNlX3R5cGUpOwotKwlmb3IgKGkgPSAwOyBpIDwgbG9uZ2VzdF90 b19pbnQgKHJvd19jb3VudCk7IGkrKykKLSsJICB7Ci0rCSAgICAvKiBGZXRjaGVzIHRoZSBjb250 ZW50cyBvZiBBUlJBWSBhbmQgY29waWVzIHRoZW0gaW50byBWLiAgKi8KLSsJICAgIHZhbHVlX2Nv bnRlbnRzX2NvcHkgKHYsCi0rCQkJCSBkc3Rfb2Zmc2V0LAotKwkJCQkgYXJyYXksCi0rCQkJCSBl bHRfb2ZmcywKLSsJCQkJIGVsdF9zaXplICogZWxlbV9jb3VudCk7Ci0rCSAgICBlbHRfb2ZmcyAr PSBzcmNfcm93X2xlbmd0aDsKLSsJICAgIGRzdF9vZmZzZXQgKz0gZWx0X3NpemUgKiBlbGVtX2Nv dW50OwotKwkgIH0KLSAgICAgICB9Ci0gCi0tICAgIHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRp b24gKHNsaWNlLCBhcnJheSk7Ci0tICAgIFZBTFVFX0ZSQU1FX0lEIChzbGljZSkgPSBWQUxVRV9G UkFNRV9JRCAoYXJyYXkpOwotLSAgICBzZXRfdmFsdWVfb2Zmc2V0IChzbGljZSwgdmFsdWVfb2Zm c2V0IChhcnJheSkgKyBvZmZzZXQpOwotKyAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9u ICh2LCBhcnJheSk7Ci0rICAgIFZBTFVFX1JFR05VTSAodikgPSBWQUxVRV9SRUdOVU0gKGFycmF5 KTsKLSsgICAgVkFMVUVfRlJBTUVfSUQgKHYpID0gVkFMVUVfRlJBTUVfSUQgKGFycmF5KTsKLSsg ICAgc2V0X3ZhbHVlX29mZnNldCAodiwgdmFsdWVfb2Zmc2V0IChhcnJheSkgKyBlbHRfb2Zmcyk7 Ci0gICB9Ci0gCi0tICByZXR1cm4gc2xpY2U7Ci0rICByZXR1cm4gdjsKLSB9Ci0gCi0gLyogQ3Jl YXRlIGEgdmFsdWUgZm9yIGEgRk9SVFJBTiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0 IG9mIHRoZQotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWx1ZS5oCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsdWUuaAkyMDE2LTA4LTA3 IDIyOjA2OjQ1LjI2NjgzNjYxOSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92 YWx1ZS5oCTIwMTYtMDgtMDcgMjI6MDg6MjEuNzEwNjg4Mjc2ICswMjAwCi1AQCAtMTA2NCw2ICsx MDY0LDggQEAKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zbGljZSAoc3RydWN0IHZh bHVlICosIGludCwgaW50KTsKLSAKLStleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zbGljZV8x IChzdHJ1Y3QgdmFsdWUgKiwgaW50LCBpbnQsIGludCk7Ci0rCi0gZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVlICos Ci0gCQkJCQkgICAgc3RydWN0IHR5cGUgKik7Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTJvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQxMDBmZS4uMDAwMDAwMAotLS0g YS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDQ4ICswLDAgQEAKLVJFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGlt ZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKLQotRnJvbSA3MzNiM2I2MGJlNWM4 ZDIzZmE3ZTQ3NDk4ZDM1ZTQ3MDE1MjhmM2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+Ci1E YXRlOiBGcmksIDEzIE5vdiAyMDE1IDA5OjAwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi82 XSBmb3J0cmFuOiBjb21iaW5lIHN1YmFycmF5IGFuZCBzdHJpbmcgY29tcHV0YXRpb24KLQotU3Ry aW5ncyB0eXBlcyBhcmUgaGFuZGxlZCBsaWtlIGFycmF5IHR5cGVzIHdpdGggb25seSBvbmUgZGlt ZW5zaW9uLgotVGhlcmVmb3JlIHRoZSBzYW1lIGFsZ29yaXRobSB0byBjYWxjdWxhdGUgc3Vic2V0 cyBpcyB1c2VkLgotCi0yMDEzLTExLTI2ICBDaHJpc3RvcGggV2Vpbm1hbm4gIDxjaHJpc3RvcGgu dC53ZWlubWFubkBpbnRlbC5jb20+Ci0KLQkqIGV2YWwuYyAoZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkKTogQ2FsbAotCXZhbHVlX2Y5MF9zdWJhcnJheSBmb3IgcHJpbnQgZXhwcmVzc2lvbnMgb24g YXJyYXkgYW5kCi0Jc3RyaW5nIHR5cGVzLgotCi0KLVNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBX ZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgotLS0tCi0gZ2RiL2V2YWwu YyB8IDEwICstLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDkgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotaW5kZXgg MzU4MTVhNC4uNWMyMGZlZSAxMDA2NDQKLS0tLSBhL2dkYi9ldmFsLmMKLSsrKyBiL2dkYi9ldmFs LmMKLUBAIC0yMDM1LDE2ICsyMDM1LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCi0gICAgICAgc3dpdGNoIChjb2RlKQotIAl7Ci0gCWNhc2Ug VFlQRV9DT0RFX0FSUkFZOgotLQkgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4 cCwgcG9zLCBuYXJncywgbm9zaWRlKTsKLS0KLSAJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkg IGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQotLQkgICAgcmV0dXJuIHZh bHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIDEsIG5vc2lkZSk7Ci0tCSAgZWxzZQot LQkgICAgewotLQkgICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4 cCwgcG9zLCBub3NpZGUpOwotLQkgICAgICByZXR1cm4gdmFsdWVfc3Vic2NyaXB0IChhcmcxLCB2 YWx1ZV9hc19sb25nIChhcmcyKSk7Ci0tCSAgICB9Ci0rCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJh cnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwotIAotIAljYXNlIFRZUEVfQ09E RV9QVFI6Ci0gCWNhc2UgVFlQRV9DT0RFX0ZVTkM6Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQg YS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlk ZS1pbnRlbC0zb2Y2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTRkZTdk Li4wMDAwMDAwCi0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzQxICswLDAgQEAKLVJFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9y dHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcwotaHR0cHM6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKLQotRnJv bSAwNThlZDllNTVkYjcyMjQ0ZmUxYzUzNDZhMTFmYTY3ZWZmNjFkMzE4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFu bkBpbnRlbC5jb20+Ci1EYXRlOiBNb24sIDIzIE5vdiAyMDE1IDEwOjMxOjQ0ICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0ggMy82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmll bGQKLQotQ2hhbmdlIEZvcnRyYW4gc3VicmFuZ2UgZW51bSBmb3Igc3VicmFuZ2UgZXhwcmVzc2lv bnMgdG8KLXJlcHJlc2VudCBhIGJpdGZpZWxkIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLiAgQ29u c2VxdWVudGx5Ci1hbHNvIGNoYW5nZSBvY2N1cmVuY2VzIGFuZCBldmFsdWF0aW9uIG9mIHNhaWQg ZW51bS4gIFRoZQotYmVoYXZpb3VyIG9mIEdEQiBpcyB1bmNoYW5nZWQuCi0KLTIwMTMtMTEtMjcg IENocmlzdG9waCBXZWlubWFubiAgPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLQot CSogZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBDaGFuZ2UgZXZhbHVhdGlvbiBvZiB0aGUK LQlzdWJhcnJheSBib3VuZGFyaWVzLiAgU2V0IGJvdW5kYXJpZXMgdG8gYmUgZWl0aGVyIHVzZXIK LQlwcm92aWRlZCAoYml0IGluIHJhbmdlX3R5cGUgd2FzIHNldCksIG9yIHRha2UgdGhlIGRlZmF1 bHQKLQl2YWx1ZSBpZiB0aGUgYm91bmRhcnkgd2FzIG5vdCBwcm92aWRlZCBieSB0aGUgdXNlci4K LQkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6IEFsdGVyIGJvdW5kYXJ5IGNv bS0KLQlwdXRhdGlvbnMgdG8gdXNlIHVwZGF0ZWQgcmFuZ2VfdHlwZSBlbnVtLgotCSogZXhwcHJp bnQuaCAoZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCk6IERpdG8uCi0JKiBleHByZXNzaW9uLmgg KHJhbmdlX3R5cGUpOiBDaGFuZ2UgdGhlIGVudW0gdG8gdXNlIGJpdAotCXZhbHVlcyBmb3IgZWFj aCBib3VuZGFyeSwgaWYgc2V0IGJ5IHRoZSB1c2VyLgotCSogZi1leHAueSAoc3VicmFuZ2UpOiBD aGFuZ2UgcnVsZXMgZm9yIHN1YnJhbmdlIGV4cHJlc3Npb25zCi0JdG8gd3JpdGUgdGhlIHJlbGV2 YW50IGJpdCBzZXF1ZW5jZSBvbnRvIHRoZSBlbHQgc3RhY2suCi0JKiBwYXJzZS5jIChvcGVyYXRv cl9sZW5ndGhfc3RhbmRhcmQpOiBJbiBjYXNlIG9mIE9QX1JBTkdFCi0JY2hhbmdlIHRoZSBjYWxj dWxhdGlvbiBvZiB0aGUgbnVtYmVyIG9mCWFyZ3VtZW50cyBvbiB0aGUKLQllbHQgc3RhY2ssIGRl cGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgcHJvdmlkZWQKLQlieSB0aGUgdXNl ci4KLQkqIHJ1c3QtZXhwLnkgKGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24pOiBNb2RpZnkgY2Fs Y3VsYS0KLQl0aW9uIG9mIHN1YnNjcmlwdCBlbGVtZW50cyB0byB1c2UgYWx0ZXJlZCByYW5nZV90 eXBlLgotCSogcnVzdC1sYW5nLmMgKHJ1c3RfcmFuZ2UpOiBEaXRvLgotCSogcnVzdC1sYW5nLmMg KHJ1c3Rfc3Vic2NyaXB0KTogRGl0by4KLQotCi1TaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vp bm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLS0tLQotIGdkYi9ldmFsLmMg ICAgICAgfCAxNCArKysrKystLS0tLS0tLQotIGdkYi9leHBwcmludC5jICAgfCAyMCArKysrKysr Ky0tLS0tLS0tLS0tLQotIGdkYi9leHByZXNzaW9uLmggfCAxNSArKysrKystLS0tLS0tLS0KLSBn ZGIvZi1leHAueSAgICAgIHwgMTEgKysrKysrLS0tLS0KLSBnZGIvcGFyc2UuYyAgICAgIHwgMjEg KysrKysrKystLS0tLS0tLS0tLS0tCi0gZ2RiL3J1c3QtZXhwLnkgICB8IDEyICsrKy0tLS0tLS0t LQotIGdkYi9ydXN0LWxhbmcuYyAgfCAxNyArKysrKysrKy0tLS0tLS0tLQotIDcgZmlsZXMgY2hh bmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9n ZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotaW5kZXggNWMyMGZlZS4uNDRlODYwMCAxMDA2NDQKLS0t LSBhL2dkYi9ldmFsLmMKLSsrKyBiL2dkYi9ldmFsLmMKLUBAIC00ODIsMTIgKzQ4MiwxMiBAQCB2 YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9u ICpleHAsCi0gCSAgLyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIs IHRoZSBiaXQgaGFzIGJlZW4KLSAJICAgICBzZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVl IGZyb20gdGhlIGVsdCBzdGFjay4gIFNhbWUgZm9yCi0gCSAgICAgdXBwZXIgYm91bmQuICAqLwot LQkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCkKLS0J ICAgICAgfHwgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IE5PTkVfQk9VTkRfREVGQVVMVCkKLSsJ ICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0xPV19CT1VORCkKLSsJICAg ICAgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQotIAkgICAgcmFuZ2UtPmxvdyA9IHZhbHVlX2FzX2xv bmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCi0gCQkJCQkJCSBwb3MsIG5vc2lk ZSkpOwotLQkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IExPV19CT1VORF9ERUZBVUxU KQotLQkgICAgICB8fCByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxU KQotKwkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfSElHSF9CT1VORCkK LSsJICAgICAgPT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0gdmFs dWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSAJCQkJCQkJICBw b3MsIG5vc2lkZSkpOwotIAl9Ci1AQCAtNTI4LDEyICs1MjgsMTAgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAotIAkg ICAgLyogSWYgbm8gbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB3ZSB0YWtl IHRoZQotIAkgICAgICAgZGVmYXVsdCBib3VuZGFyeS4gIFNhbWUgZm9yIHRoZSBoaWdoIGJvdW5k LiAgKi8KLS0JICAgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IExPV19CT1VORF9ERUZB VUxUKQotLQkJfHwgKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQp KQotKwkgICAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQp ID09IDApCi0gCSAgICAgIHJhbmdlLT5sb3cgPSBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSk7 Ci0gCi0tCSAgICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFV TFQpCi0tCQl8fCAocmFuZ2UtPmY5MF9yYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkp Ci0rCSAgICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9VTkQp ID09IDApCi0gCSAgICAgIHJhbmdlLT5oaWdoID0gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBl KTsKLSAKLSAJICAgIC8qIEJvdGggdXNlciBwcm92aWRlZCBsb3cgYW5kIGhpZ2ggYm91bmQgaGF2 ZSB0byBiZSBpbnNpZGUgdGhlCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhw cHJpbnQuYwotaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKLS0tLSBhL2dkYi9leHBwcmlu dC5jCi0rKysgYi9nZGIvZXhwcHJpbnQuYwotQEAgLTU2OCwxMiArNTY4LDEwIEBAIHByaW50X3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCi0gCSpwb3Mg Kz0gMjsKLSAKLSAJZnB1dHNfZmlsdGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOwotLQlpZiAocmFu Z2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9O RV9CT1VORF9ERUZBVUxUKQotKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQp ID09IFNVQkFSUkFZX0xPV19CT1VORCkKLSAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJl YW0sIFBSRUNfQUJPVkVfQ09NTUEpOwotIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsK LS0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5 cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQotKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9I SUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQotIAkgIHByaW50X3N1YmV4cCAoZXhw LCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0gCWZwdXRzX2ZpbHRlcmVkICgiKSIs IHN0cmVhbSk7Ci0gCXJldHVybjsKLUBAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhw X2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCi0gCXN3aXRjaCAocmFu Z2VfdHlwZSkKLSAJICB7Ci0tCSAgY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6Ci0rCSAgY2FzZSBT VUJBUlJBWV9OT05FX0JPVU5EOgotIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwg c3RyZWFtKTsKLSAJICAgIGJyZWFrOwotLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6Ci0rCSAg Y2FzZSBTVUJBUlJBWV9ISUdIX0JPVU5EOgotIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAn Li5FWFAnIiwgc3RyZWFtKTsKLSAJICAgIGJyZWFrOwotLQkgIGNhc2UgSElHSF9CT1VORF9ERUZB VUxUOgotKwkgIGNhc2UgU1VCQVJSQVlfTE9XX0JPVU5EOgotIAkgICAgZnB1dHNfZmlsdGVyZWQg KCJSYW5nZSAnRVhQLi4nIiwgc3RyZWFtKTsKLSAJICAgIGJyZWFrOwotLQkgIGNhc2UgTk9ORV9C T1VORF9ERUZBVUxUOgotKwkgIGNhc2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJ R0hfQk9VTkQpOgotIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAnIiwgc3Ry ZWFtKTsKLSAJICAgIGJyZWFrOwotIAkgIGRlZmF1bHQ6Ci1AQCAtMTA3MiwxMSArMTA3MCw5IEBA IGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAg ICBicmVhazsKLSAJICB9Ci0gCi0tCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVM VAotLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCWlmICgocmFu Z2VfdHlwZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQotIAkg IGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLS0JaWYgKHJhbmdlX3R5cGUg PT0gTE9XX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9E RUZBVUxUKQotKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJB UlJBWV9ISUdIX0JPVU5EKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0 KTsKLSAgICAgICB9Ci0gICAgICAgYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24u aCBiL2dkYi9leHByZXNzaW9uLmgKLWluZGV4IDQ5NTJkODQuLjVhNmI3MjAgMTAwNjQ0Ci0tLS0g YS9nZGIvZXhwcmVzc2lvbi5oCi0rKysgYi9nZGIvZXhwcmVzc2lvbi5oCi1AQCAtMTUyLDE3ICsx NTIsMTQgQEAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Np b24gKiwKLSAJCQkJIHN0cnVjdCB1aV9maWxlICosIGNoYXIgKik7Ci0gZXh0ZXJuIHZvaWQgZHVt cF9wcmVmaXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUg Kik7Ci0gCi0tLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxk IGJlIGVtcHR5LCBpbmRpY2F0aW5nCi0tICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0 aGF0IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJvdW5kIG9mIHRoZQotLSAgIGFycmF5IG9yIHN0cmlu Zy4gIFNvIHdlIGhhdmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKLS0gICBlbnVtZXJh dGlvbiB0eXBlIGlzIHRvIGlkZW50aWZ5IHRoaXMuICAqLwotLSAgIAotKy8qIEluIGFuIE9QX1JB TkdFIGV4cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIs IG9yIG5vdC4KLSsgICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4g ICovCi0rCi0gZW51bSByYW5nZV90eXBlCi0gICB7Ci0tICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJ CS8qICIoOikiICAqLwotLSAgICBMT1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8K LS0gICAgSElHSF9CT1VORF9ERUZBVUxULAkJLyogIihsb3c6KSIgICovCi0tICAgIE5PTkVfQk9V TkRfREVGQVVMVAkJLyogIihsb3c6aGlnaCkiICAqLwotKyAgICBTVUJBUlJBWV9OT05FX0JPVU5E ID0gMHgwLAkJLyogIiggOiApIiAgKi8KLSsgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJ LyogIihsb3c6KSIgICovCi0rICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhp Z2gpIiAgKi8KLSAgIH07Ci0gCi0gI2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9OX0gpICov Ci1kaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggZGMxMzFjMS4u ZTJjNTRiNiAxMDA2NDQKLS0tLSBhL2dkYi9mLWV4cC55Ci0rKysgYi9nZGIvZi1leHAueQotQEAg LTI2MCwyNiArMjYwLDI3IEBAIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9W RV9DT01NQQotIC8qIFRoZXJlIGFyZSBmb3VyIHNvcnRzIG9mIHN1YnJhbmdlIHR5cGVzIGluIEY5 MC4gICovCi0gCi0gc3VicmFuZ2U6CWV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0tCQkJ eyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IAotLQkJCSAgd3JpdGVf ZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIE5PTkVfQk9VTkRfREVGQVVMVCk7Ci0rCQkJeyB3cml0 ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0 X2xvbmdjc3QgKHBzdGF0ZSwKLSsJCQkJCQkgU1VCQVJSQVlfTE9XX0JPVU5EIHwgU1VCQVJSQVlf SElHSF9CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5H RSk7IH0KLSAJOwotIAotIHN1YnJhbmdlOglleHAgJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJ eyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0tCQkJICB3cml0ZV9l eHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgSElHSF9CT1VORF9ERUZBVUxUKTsKLSsJCQkgIHdyaXRl X2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9MT1dfQk9VTkQpOwotIAkJCSAgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9Ci0gCTsKLSAKLSBzdWJyYW5n ZToJJzonIGV4cAklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs IExPV19CT1VORF9ERUZBVUxUKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRl LCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3Rh dGUsIE9QX1JBTkdFKTsgfQotIAk7Ci0gCi0gc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01N QQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwotLQkJCSAg d3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIEJPVEhfQk9VTkRfREVGQVVMVCk7Ci0rCQkJ ICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgMCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0 X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSAJOwotIAotZGlmZiAtLWdpdCBhL2dkYi9w YXJzZS5jIGIvZ2RiL3BhcnNlLmMKLWluZGV4IDJiMDA3MDguLjZkNTRhNzcgMTAwNjQ0Ci0tLS0g YS9nZGIvcGFyc2UuYwotKysrIGIvZ2RiL3BhcnNlLmMKLUBAIC0xMDA2LDIyICsxMDA2LDE3IEBA IG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIs IGludCBlbmRwb3MsCi0gCi0gICAgIGNhc2UgT1BfUkFOR0U6Ci0gICAgICAgb3BsZW4gPSAzOwot KyAgICAgIGFyZ3MgPSAwOwotICAgICAgIHJhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBlKQot IAlsb25nZXN0X3RvX2ludCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOwotIAot LSAgICAgIHN3aXRjaCAocmFuZ2VfdHlwZSkKLS0JewotLQljYXNlIExPV19CT1VORF9ERUZBVUxU OgotLQljYXNlIEhJR0hfQk9VTkRfREVGQVVMVDoKLS0JICBhcmdzID0gMTsKLS0JICBicmVhazsK LS0JY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgYXJncyA9IDA7Ci0tCSAgYnJlYWs7Ci0t CWNhc2UgTk9ORV9CT1VORF9ERUZBVUxUOgotLQkgIGFyZ3MgPSAyOwotLQkgIGJyZWFrOwotLQl9 Ci0rICAgICAgLyogSW5jcmVtZW50IHRoZSBhcmd1bWVudCBjb3VudGVyIGZvciBlYWNoIGFyZ3Vt ZW50Ci0rCSBwcm92aWRlZCBieSB0aGUgdXNlci4gICovCi0rICAgICAgaWYgKChyYW5nZV90eXBl ICYgU1VCQVJSQVlfTE9XX0JPVU5EKSA9PSBTVUJBUlJBWV9MT1dfQk9VTkQpCi0rCWFyZ3MrKzsK LSsKLSsgICAgICBpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJB UlJBWV9ISUdIX0JPVU5EKQotKwlhcmdzKys7Ci0gCi0gICAgICAgYnJlYWs7Ci0gCi1kaWZmIC0t Z2l0IGEvZ2RiL3J1c3QtZXhwLnkgYi9nZGIvcnVzdC1leHAueQotaW5kZXggYzFhODYzYy4uNzYw OTI5YjUgMTAwNjQ0Ci0tLS0gYS9nZGIvcnVzdC1leHAueQotKysrIGIvZ2RiL3J1c3QtZXhwLnkK LUBAIC0yNDE4LDIzICsyNDE4LDE3IEBAIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKHN0cnVj dCBwYXJzZXJfc3RhdGUgKnN0YXRlLAotIAotICAgICBjYXNlIE9QX1JBTkdFOgotICAgICAgIHsK LS0JZW51bSByYW5nZV90eXBlIGtpbmQgPSBCT1RIX0JPVU5EX0RFRkFVTFQ7Ci0rCWVudW0gcmFu Z2VfdHlwZSBraW5kID0gU1VCQVJSQVlfTk9ORV9CT1VORDsKLSAKLSAJaWYgKG9wZXJhdGlvbi0+ bGVmdC5vcCAhPSBOVUxMKQotIAkgIHsKLSAJICAgIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24g KHN0YXRlLCBvcGVyYXRpb24tPmxlZnQub3AsIHRvcCk7Ci0tCSAgICBraW5kID0gSElHSF9CT1VO RF9ERUZBVUxUOwotKwkgICAga2luZCA9IFNVQkFSUkFZX0xPV19CT1VORDsKLSAJICB9Ci0gCWlm IChvcGVyYXRpb24tPnJpZ2h0Lm9wICE9IE5VTEwpCi0gCSAgewotIAkgICAgY29udmVydF9hc3Rf dG9fZXhwcmVzc2lvbiAoc3RhdGUsIG9wZXJhdGlvbi0+cmlnaHQub3AsIHRvcCk7Ci0tCSAgICBp ZiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCi0tCSAgICAgIGtpbmQgPSBMT1dfQk9VTkRf REVGQVVMVDsKLS0JICAgIGVsc2UKLS0JICAgICAgewotLQkJZ2RiX2Fzc2VydCAoa2luZCA9PSBI SUdIX0JPVU5EX0RFRkFVTFQpOwotLQkJa2luZCA9IE5PTkVfQk9VTkRfREVGQVVMVDsKLS0JICAg ICAgfQotKwkgICAga2luZCA9IChyYW5nZV90eXBlKSAoa2luZCB8IFNVQkFSUkFZX0hJR0hfQk9V TkQpOwotIAkgIH0KLSAJd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHN0YXRlLCBPUF9SQU5HRSk7Ci0g CXdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAoc3RhdGUsIGtpbmQpOwotZGlmZiAtLWdpdCBhL2dkYi9y dXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwotaW5kZXggNWRmOTljZS4uOGQ1M2UzMSAxMDA2 NDQKLS0tLSBhL2dkYi9ydXN0LWxhbmcuYwotKysrIGIvZ2RiL3J1c3QtbGFuZy5jCi1AQCAtMTE4 OCw5ICsxMTg4LDkgQEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpw b3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSAgIGtpbmQgPSAoZW51bSByYW5nZV90eXBlKSBsb25n ZXN0X3RvX2ludCAoZXhwLT5lbHRzWypwb3MgKyAxXS5sb25nY29uc3QpOwotICAgKnBvcyArPSAz OwotIAotLSAgaWYgKGtpbmQgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTk9ORV9C T1VORF9ERUZBVUxUKQotKyAgaWYgKChraW5kICYgU1VCQVJSQVlfTE9XX0JPVU5EKSA9PSBTVUJB UlJBWV9MT1dfQk9VTkQpCi0gICAgIGxvdyA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKTsKLS0gIGlmIChraW5kID09IExPV19CT1VORF9ERUZBVUxUIHx8IGtp bmQgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQotKyAgaWYgKChraW5kICYgU1VCQVJSQVlfSElHSF9C T1VORCkgPT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAgICAgaGlnaCA9IGV2YWx1YXRlX3N1YmV4 cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKLSAKLSAgIGlmIChub3NpZGUgPT0gRVZB TF9TS0lQKQotQEAgLTEyNzksNyArMTI3OSw3IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCi0gCi0gICAqbG93ID0gMDsKLSAgICpo aWdoID0gMDsKLS0gICpraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOwotKyAgKmtpbmQgPSBTVUJB UlJBWV9OT05FX0JPVU5EOwotIAotICAgaWYgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMCkKLSAg ICAgcmV0dXJuOwotQEAgLTEyODcsMTUgKzEyODcsMTQgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICpyYW5nZSwKLSAgIGkgPSAwOwotICAgaWYg KHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCAwKSwgInN0YXJ0IikgPT0gMCkKLSAgICAg ewotLSAgICAgICpraW5kID0gSElHSF9CT1VORF9ERUZBVUxUOwotKyAgICAgICpraW5kID0gU1VC QVJSQVlfTE9XX0JPVU5EOwotICAgICAgICpsb3cgPSB2YWx1ZV9hc19sb25nICh2YWx1ZV9maWVs ZCAocmFuZ2UsIDApKTsKLSAgICAgICArK2k7Ci0gICAgIH0KLSAgIGlmIChUWVBFX05GSUVMRFMg KHR5cGUpID4gaQotICAgICAgICYmIHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSwg ImVuZCIpID09IDApCi0gICAgIHsKLS0gICAgICAqa2luZCA9ICgqa2luZCA9PSBCT1RIX0JPVU5E X0RFRkFVTFQKLS0JICAgICAgID8gTE9XX0JPVU5EX0RFRkFVTFQgOiBOT05FX0JPVU5EX0RFRkFV TFQpOwotKyAgICAgICpraW5kID0gKHJhbmdlX3R5cGUpICgqa2luZCB8IFNVQkFSUkFZX0hJR0hf Qk9VTkQpOwotICAgICAgICpoaWdoID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdl LCBpKSk7Ci0gICAgIH0KLSB9Ci1AQCAtMTMxMCw3ICsxMzA5LDcgQEAgcnVzdF9zdWJzY3JpcHQg KHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCi0g ICBzdHJ1Y3QgdHlwZSAqcmhzdHlwZTsKLSAgIExPTkdFU1QgbG93LCBoaWdoX2JvdW5kOwotICAg LyogSW5pdGlhbGl6ZWQgdG8gYXBwZWFzZSB0aGUgY29tcGlsZXIuICAqLwotLSAgZW51bSByYW5n ZV90eXBlIGtpbmQgPSBCT1RIX0JPVU5EX0RFRkFVTFQ7Ci0rICBlbnVtIHJhbmdlX3R5cGUga2lu ZCA9IFNVQkFSUkFZX05PTkVfQk9VTkQ7Ci0gICBMT05HRVNUIGhpZ2ggPSAwOwotICAgaW50IHdh bnRfc2xpY2UgPSAwOwotIAotQEAgLTEzNjYsNyArMTM2NSw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAotIAll cnJvciAoXygiQ2Fubm90IHN1YnNjcmlwdCBub24tYXJyYXkgdHlwZSIpKTsKLSAKLSAgICAgICBp ZiAod2FudF9zbGljZQotLQkgICYmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCB8fCBraW5k ID09IExPV19CT1VORF9ERUZBVUxUKSkKLSsJICAmJiAoKGtpbmQgJiBTVUJBUlJBWV9MT1dfQk9V TkQpICE9IFNVQkFSUkFZX0xPV19CT1VORCkpCi0gCWxvdyA9IGxvd19ib3VuZDsKLSAgICAgICBp ZiAobG93IDwgMCkKLSAJZXJyb3IgKF8oIkluZGV4IGxlc3MgdGhhbiB6ZXJvIikpOwotQEAgLTEz ODQsNyArMTM4Myw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBp bnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAotIAkgIENPUkVfQUREUiBhZGRyOwotIAkgIHN0 cnVjdCB2YWx1ZSAqYWRkcnZhbCwgKnRlbTsKLSAKLS0JICBpZiAoa2luZCA9PSBCT1RIX0JPVU5E X0RFRkFVTFQgfHwga2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQpCi0rCSAgaWYgKChraW5kICYg U1VCQVJSQVlfSElHSF9CT1VORCkgIT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIGhpZ2gg PSBoaWdoX2JvdW5kOwotIAkgIGlmIChoaWdoIDwgMCkKLSAJICAgIGVycm9yIChfKCJIaWdoIGlu ZGV4IGxlc3MgdGhhbiB6ZXJvIikpOwotLS0gCi0yLjUuNQotCgpkaWZmIC0tZ2l0IGEvZ2RiLWZv cnRyYW4tc3RyaWRlLWludGVsLTRvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwt NG9mNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUwOTZlMy4uMDAwMDAw MAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDE2NyArMCwwIEBACi1SRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11 bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKLWh0dHBzOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCi0KLUZyb20gMzM4ZTRj ODYwYWQyMDU4OTZiNGE5NWM3OWY1NDQ3MGM3OWVlYjM0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwu Y29tPgotRGF0ZTogV2VkLCAxIEp1biAyMDE2IDE1OjExOjI0ICswMjAwCi1TdWJqZWN0OiBbUEFU Q0ggNC82XSBmb3J0cmFuOiBlbmFibGUgcGFyc2luZyBvZiBzdHJpZGUgcGFyYW1ldGVyIGZvciBz dWJyYW5nZXMKLQotQWxsb3cgdGhlIHVzZXIgdG8gcHJvdmlkZSBhIHN0cmlkZSBwYXJhbWV0ZXIg Zm9yIEZvcnRyYW4KLXN1YmFycmF5cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkg aW50ZWdlciBleGNlcHQKLScwJy4gIFRoZSBkZWZhdWx0IHN0cmlkZSB2YWx1ZSBpcyAnMScuCi0K LTIwMTMtMTEtMjcgIENocmlzdG9waCBXZWlubWFubiAgPGNocmlzdG9waC50LndlaW5tYW5uQGlu dGVsLmNvbT4KLQotCSogZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBBZGQgZXhwcmVzc2lv biBldmFsdWF0aW9uCi0JZm9yIGEgc3RyaWRlIHBhcmFtZXRlciBpbiBhIEZvcnRyYW4gcmFuZ2Ug ZXhwcmVzc2lvbi4KLQkqIGV4cHJlc3Npb24uaCAocmFuZ2VfdHlwZSk6IEFkZCBmaWVsZCB0byBl bnVtIHRvIHNob3cgd2hlbgotCWEgc3RyaWRlIHZhbHVlIHdhcyBwcm92aWRlZCBieSB0aGUgdXNl ci4KLQkqIGYtZXhwLnk6IEFkZCB5YWNjIHJ1bGVzIGZvciB3cml0aW5nIGluZm8gb24gdGhlIGVs dCBzdGFjawotCXdoZW4gdGhlIHVzZXIgcHJvdmlkZWQgYSBzdHJpZGUgYXJndW1lbnQuCi0JKiBw YXJzZS5jIChvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQpOiBDaGVjayBpZiBhIHN0cmlkZQotCXZh bHVlIHdhcyBwcm92aWRlZCwgYW5kIGluY3JlbWVudCBhcmd1bWVudCBjb3VudGVyCi0JYWNjb3Jk aW5nbHkuCi0KLQotU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgu dC53ZWlubWFubkBpbnRlbC5jb20+Ci0tLS0KLSBnZGIvZXZhbC5jICAgICAgIHwgMTEgKysrKysr KysrKy0KLSBnZGIvZXhwcmVzc2lvbi5oIHwgIDcgKysrKystLQotIGdkYi9mLWV4cC55ICAgICAg fCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCi0gZ2RiL3BhcnNlLmMgICAgICB8 ICAzICsrKwotIGdkYi92YWxvcHMuYyAgICAgfCAgNCArKy0tCi0gNSBmaWxlcyBjaGFuZ2VkLCA1 MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2RiL2V2YWwu YyBiL2dkYi9ldmFsLmMKLWluZGV4IDQ0ZTg2MDAuLmI1YWFmMWMgMTAwNjQ0Ci0tLS0gYS9nZGIv ZXZhbC5jCi0rKysgYi9nZGIvZXZhbC5jCi1AQCAtNDE5LDcgKzQxOSw3IEBAIHZhbHVlX2Y5MF9z dWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAg IHR5cGVkZWYgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQotICAgewotICAgICBlbnVtIHJhbmdlX3R5 cGUgZjkwX3JhbmdlX3R5cGU7Ci0tICAgIExPTkdFU1QgbG93LCBoaWdoOwotKyAgICBMT05HRVNU IGxvdywgaGlnaCwgc3RyaWRlOwotICAgfSBzdWJzY3JpcHRfcmFuZ2U7Ci0gCi0gICB0eXBlZGVm IGVudW0gc3Vic2NyaXB0X2tpbmQKLUBAIC00OTAsNiArNDkwLDE1IEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAg ICAgPT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNf bG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSAJCQkJCQkJICBwb3MsIG5v c2lkZSkpOwotKwotKwkgIC8qIEFzc2lnbiB0aGUgdXNlcidzIHN0cmlkZSB2YWx1ZSBpZiBwcm92 aWRlZC4gICovCi0rCSAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9TVFJJ REUpID09IFNVQkFSUkFZX1NUUklERSkKLSsJICAgIHJhbmdlLT5zdHJpZGUgPSB2YWx1ZV9hc19s b25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAotKwkJCQkJCQkgICAgIHBvcywg bm9zaWRlKSk7Ci0rCi0rCSAgLyogQXNzaWduIHRoZSBkZWZhdWx0IHN0cmlkZSB2YWx1ZSAnMScu ICAqLwotKwkgIGVsc2UKLSsJICAgIHJhbmdlLT5zdHJpZGUgPSAxOwotIAl9Ci0gICAgICAgLyog VXNlciBpbnB1dCBpcyBhbiBpbmRleC4gIEUuZy46ICJwIGFycnkoNSkiLiAgKi8KLSAgICAgICBl bHNlCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKLWlu ZGV4IDVhNmI3MjAuLjM0Y2E1NGIgMTAwNjQ0Ci0tLS0gYS9nZGIvZXhwcmVzc2lvbi5oCi0rKysg Yi9nZGIvZXhwcmVzc2lvbi5oCi1AQCAtMTUzLDEzICsxNTMsMTYgQEAgZXh0ZXJuIHZvaWQgZHVt cF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwKLSBleHRlcm4gdm9pZCBkdW1w X3ByZWZpeF9leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAq KTsKLSAKLSAvKiBJbiBhbiBPUF9SQU5HRSBleHByZXNzaW9uLCBlaXRoZXIgYm91bmQgY2FuIGJl IHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCBvciBub3QuCi0tICAgVGhpcyBlbnVtZXJhdGlvbiB0eXBl IGlzIHRvIGlkZW50aWZ5IHRoaXMuICAqLwotKyAgIEluIGFkZGl0aW9uIHRvIHRoaXMsIHRoZSB1 c2VyIGNhbiBhbHNvIHNwZWNpZnkgYSBzdHJpZGUgdmFsdWUgdG8gaW5kaWNhdGVkCi0rICAgb25s eSBjZXJ0YWluIGVsZW1lbnRzIG9mIHRoZSBhcnJheS4gIFRoaXMgZW51bWVyYXRpb24gdHlwZSBp cyB0byBpZGVudGlmeQotKyAgIHRoaXMuICAqLwotIAotIGVudW0gcmFuZ2VfdHlwZQotICAgewot ICAgICBTVUJBUlJBWV9OT05FX0JPVU5EID0gMHgwLAkJLyogIiggOiApIiAgKi8KLSAgICAgU1VC QVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgICovCi0tICAgIFNVQkFSUkFZX0hJ R0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfSElHSF9CT1VO RCA9IDB4MiwJCS8qICIoOmhpZ2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfU1RSSURFID0gMHg0CQkv KiAiKDo6c3RyaWRlKSIgICovCi0gICB9OwotIAotICNlbmRpZiAvKiAhZGVmaW5lZCAoRVhQUkVT U0lPTl9IKSAqLwotZGlmZiAtLWdpdCBhL2dkYi9mLWV4cC55IGIvZ2RiL2YtZXhwLnkKLWluZGV4 IGUyYzU0YjYuLjcxZjE4MjMgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1leHAueQotKysrIGIvZ2RiL2Yt ZXhwLnkKLUBAIC0yODAsNyArMjgwLDM2IEBAIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZF X0NPTU1BCi0gCi0gc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVf ZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9s b25nY3N0IChwc3RhdGUsIDApOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs IFNVQkFSUkFZX05PTkVfQk9VTkQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOyB9Ci0rCTsKLSsKLSsvKiBFYWNoIHN1YnJhbmdlIHR5cGUgY2FuIGhhdmUg YSBzdHJpZGUgYXJndW1lbnQuICAqLwotK3N1YnJhbmdlOglleHAgJzonIGV4cCAnOicgZXhwICVw cmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9S QU5HRSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9X X0JPVU5ECi0rCQkJCQkJIHwgU1VCQVJSQVlfSElHSF9CT1VORAotKwkJCQkJCSB8IFNVQkFSUkFZ X1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 IH0KLSsJOwotKwotK3N1YnJhbmdlOglleHAgJzonICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEK LSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKLSsJCQkgIHdy aXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9MT1dfQk9VTkQKLSsJCQkJCQkg fCBTVUJBUlJBWV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwg T1BfUkFOR0UpOyB9Ci0rCTsKLSsKLStzdWJyYW5nZToJJzonIGV4cCAnOicgZXhwICVwcmVjIEFC T1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfSElHSF9CT1VO RAotKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSsJOwotKwotK3N1YnJhbmdlOgknOicgJzonIGV4cCAl cHJlYyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX1NU UklERSk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0K LSAJOwotIAotZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKLWluZGV4IDZk NTRhNzcuLjk5MmFmODcgMTAwNjQ0Ci0tLS0gYS9nZGIvcGFyc2UuYwotKysrIGIvZ2RiL3BhcnNl LmMKLUBAIC0xMDE4LDYgKzEwMTgsOSBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0 IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAotICAgICAgIGlmICgocmFuZ2Vf dHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCi0gCWFy Z3MrKzsKLSAKLSsgICAgICBpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9TVFJJREUpID09IFNV QkFSUkFZX1NUUklERSkKLSsJYXJncysrOwotKwotICAgICAgIGJyZWFrOwotIAotICAgICBkZWZh dWx0OgotZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxvcHMuYwotaW5kZXggODE3 YTRjZi4uZmJjN2RjYiAxMDA2NDQKLS0tLSBhL2dkYi92YWxvcHMuYwotKysrIGIvZ2RiL3ZhbG9w cy5jCi1AQCAtMzgzNCw3ICszODM0LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICph cnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKLSAgIGlmIChj YWxsX2NvdW50ID09IDEpCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9U WVBFIChhcnJheV90eXBlKTsKLS0gICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsK LSsgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAx OwotIAotICAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8K LSAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91 bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQotQEAgLTM4NDYsNyArMzg0Niw3IEBAIHZhbHVlX3Ns aWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50 IGNhbGxfY291bnQpCi0gICBlbHNlCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9J TkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0tICAgICAgc2xpY2Vf cmFuZ2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3Vu dCk7Ci0rICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50 ICogZWxlbV9jb3VudCkgLSAxOwotICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VO RCAocmFuZ2VfdHlwZSk7Ci0gICAgIH0KLSAKLS0tIAotMi41LjUKLQoKZGlmZiAtLWdpdCBhL2dk Yi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWlu dGVsLTVvZjYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiOWE2NjIuLjAw MDAwMDAKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTVvZjYucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzNzAgKzAsMCBAQAotUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFu OiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCi1odHRwczovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAotCi1Gcm9tIDEx ODkwOThjM2NhY2MyZWU2OTAyMWRlMWE4M2FkMzMyODgyMWQ3NTUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGlu dGVsLmNvbT4KLURhdGU6IFdlZCwgMSBKdW4gMjAxNiAxNTowNDowMSArMDIwMAotU3ViamVjdDog W1BBVENIIDUvNl0gZm9ydHJhbjogY2FsY3VsYXRlIGVsZW1lbnRzIG9mIGEgc3ViYXJyYXkgdXNp bmcgYQotIHByb3ZpZGVkIHN0cmlkZSB2YWx1ZQotCi1UaGUgc3RyaWRlIHZhbHVlIGNhbiBiZSBh IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIsIGJ1dCBtYXkKLW5vdCBiZSB6ZXJvLiAgSWYg bm8gc3RyaWRlIGlzIHByb3ZpZGVkLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUKLTEgdG8gcHJpbnQg YWxsIGVsZW1lbnRzIGluc2lkZSB0aGUgcmFuZ2UuCi0KLTF8IHByb2dyYW0gcHJvZwotMnwgICBp bnRlZ2VyIDo6IGFyeSgxMCkgPSAoLyAoaSwgaT0xLCAxMCkgLykKLTN8IGVuZCBwcm9ncmFtIHBy b2cKLQotKGdkYikgcHJpbnQgYXJ5KDE6MTA6MikKLSQzID0gKDEsIDMsIDUsIDcsIDkpCi0KLTIw MTMtMTEtMjcgIENocmlzdG9waCBXZWlubWFubiAgPGNocmlzdG9waC50LndlaW5tYW5uPgotCi0J KiBldmFsLmMgKHZhbHVlX2Y5MF9zdWJhcnJheSk6IEFkZCByYW5nZSBzaXplIGNhbGN1bGF0aW9u Ci0JZm9yIHN0cmlkZSBiYXNlZCByYW5nZXMsIGFuZCBldmFsdWF0aW9uIG9mIHVzZXIgc3RyaWRl Ci0JcGFyYW1ldGVycy4gIEFkZCBjaGVjayBmb3IgbWF0Y2hpbmcgdXNlciBpbnB1dCB0byBhcnJh eQotCWJvdW5kcy4KLQkqIHZhbG9wcy5jICh2YWx1ZV9zbGljZSk6IEFkZCBjYWxsIHBhcmFtZXRl ciB3aXRoIGRlZmF1bHQKLQlzdHJpZGUgdmFsdWUgZm9yIGNhbGxpbmcgdmFsdWVfc2xpY2VfMS4K LQkqIHZhbG9wcy5jICh2YWx1ZV9zbGljZV8xKTogQWRkIGZ1bmN0aW9uIHBhcmFtZXRlciBmb3IK LQlzdHJpZGUgbGVuZ3RoIGluIHRoZSByZXR1cm4gc3ViYXJyYXkuICBDYWxjdWxhdGUgYXJyYXkK LQllbGVtZW50cyBiYXNlZCBvbiBzdHJpZGUgdmFsdWUuCi0JKiB2YWx1ZS5oOiBBZGQgc3RyaWRl IHBhcmFtZXRlciB0byBkZWNsYXJhdGlvbiBvZgotCXZhbHVlX3NsaWNlXzEuCi0KLQotU2lnbmVk LW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5j b20+Ci0tLS0KLSBnZGIvZXZhbC5jICAgfCAxMDIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSBnZGIvdmFsb3BzLmMgfCAgODMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCi0gZ2RiL3ZhbHVl LmggIHwgICAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNDIgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotaW5kZXgg YjVhYWYxYy4uMWYyN2I2ZiAxMDA2NDQKLS0tLSBhL2dkYi9ldmFsLmMKLSsrKyBiL2dkYi9ldmFs LmMKLUBAIC00NzcsNyArNDc3LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgIHJhbmdlID0gJmluZGV4LT5VLnJh bmdlOwotIAotIAkgICpwb3MgKz0gMzsKLS0JICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51 bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwot KwkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5cGUpIGV4cC0+ZWx0c1tw Y10ubG9uZ2NvbnN0OwotIAotIAkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5 IHRoZSB1c2VyLCB0aGUgYml0IGhhcyBiZWVuCi0gCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWdu IHRoZSB2YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgotQEAgLTQ5OSw2ICs0OTks MTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLAotIAkgIC8qIEFzc2lnbiB0aGUgZGVmYXVsdCBzdHJpZGUgdmFsdWUgJzEn LiAgKi8KLSAJICBlbHNlCi0gCSAgICByYW5nZS0+c3RyaWRlID0gMTsKLSsKLSsJICAvKiBDaGVj ayB0aGUgcHJvdmlkZWQgc3RyaWRlIHZhbHVlIGlzIGlsbGVnYWwsIGFrYSAnMCcuICAqLwotKwkg IGlmIChyYW5nZS0+c3RyaWRlID09IDApCi0rCSAgICBlcnJvciAoXygiU3RyaWRlIG11c3Qgbm90 IGJlIDAiKSk7Ci0gCX0KLSAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjog InAgYXJyeSg1KSIuICAqLwotICAgICAgIGVsc2UKLUBAIC01MTUsMTAgKzUxOSw4IEBAIHZhbHVl X2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwKLSAKLSAgICAgfQotIAotLSAgLyogVHJhdmVyc2UgdGhlIGFycmF5IGZyb20gcmlnaHQgdG8g bGVmdCBhbmQgZXZhbHVhdGUgZWFjaCBjb3JyZXNwb25kaW5nCi0tICAgICB1c2VyIGlucHV0LiAg VkFMVUVfU1VCU0NSSVBUIGlzIGNhbGxlZCBmb3IgZXZlcnkgaW5kZXgsIHVudGlsIGEgcmFuZ2UK LS0gICAgIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkLiAgQWZ0ZXIgYSByYW5nZSBleHByZXNzaW9u IGhhcyBiZWVuIGV2YWx1YXRlZCwKLS0gICAgIGV2ZXJ5IHN1YnNlcXVlbnQgZXhwcmVzc2lvbiBp cyBhbHNvIHRyZWF0ZWQgYXMgYSByYW5nZS4gICovCi0rICAvKiBUcmF2ZXJzZSB0aGUgYXJyYXkg ZnJvbSByaWdodCB0byBsZWZ0IGFuZCBzZXQgdGhlIGhpZ2ggYW5kIGxvdyBib3VuZHMKLSsgICAg IGZvciBsYXRlciB1c2UuICAqLwotICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkK LSAgICAgewotICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlw dF9hcnJheVtpXTsKLUBAIC01NTEsNiArNTUzLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3Ry dWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJCXx8IHJhbmdlLT5o aWdoID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKLSAJICAgICAgZXJyb3IgKF8oInBy b3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7Ci0gCi0rCSAgICAvKiBG b3IgYSBuZWdhdGl2ZSBzdHJpZGUgdGhlIGxvd2VyIGJvdW5kYXJ5IG11c3QgYmUgbGFyZ2VyIHRo YW4gdGhlCi0rCSAgICAgICB1cHBlciBib3VuZGFyeS4KLSsJICAgICAgIEZvciBhIHBvc2l0aXZl IHN0cmlkZSB0aGUgbG93ZXIgYm91bmRhcnkgbXVzdCBiZSBzbWFsbGVyIHRoYW4gdGhlCi0rCSAg ICAgICB1cHBlciBib3VuZGFyeS4gICovCi0rCSAgICBpZiAoKHJhbmdlLT5zdHJpZGUgPCAwICYm IHJhbmdlLT5sb3cgPCByYW5nZS0+aGlnaCkKLSsJCXx8IChyYW5nZS0+c3RyaWRlID4gMCAmJiBy YW5nZS0+bG93ID4gcmFuZ2UtPmhpZ2gpKQotKwkgICAgICBlcnJvciAoXygiV3JvbmcgdmFsdWUg cHJvdmlkZWQgZm9yIHN0cmlkZSBhbmQgYm91bmRhcmllcyIpKTsKLSsKLSsJICB9Ci0rCSAgYnJl YWs7Ci0rCi0rCWNhc2UgU1VCU0NSSVBUX0lOREVYOgotKwkgIGJyZWFrOwotKwotKwl9Ci0rCi0r ICAgICAgIGFycmF5X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKTsKLSsgICAg fQotKwotKyAgLyogUmVzZXQgQVJSQVlfVFlQRSBiZWZvcmUgc2xpY2luZy4qLwotKyAgYXJyYXlf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwotKwotKyAgLyog VHJhdmVyc2UgdGhlIGFycmF5IGZyb20gcmlnaHQgdG8gbGVmdCBhbmQgZXZhbHVhdGUgZWFjaCBj b3JyZXNwb25kaW5nCi0rICAgICB1c2VyIGlucHV0LiAgVkFMVUVfU1VCU0NSSVBUIGlzIGNhbGxl ZCBmb3IgZXZlcnkgaW5kZXgsIHVudGlsIGEgcmFuZ2UKLSsgICAgIGV4cHJlc3Npb24gaXMgZXZh bHVhdGVkLiAgQWZ0ZXIgYSByYW5nZSBleHByZXNzaW9uIGhhcyBiZWVuIGV2YWx1YXRlZCwKLSsg ICAgIGV2ZXJ5IHN1YnNlcXVlbnQgZXhwcmVzc2lvbiBpcyBhbHNvIHRyZWF0ZWQgYXMgYSByYW5n ZS4gICovCi0rICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQotKyAgICB7Ci0rICAg ICAgc3RydWN0IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOwot KyAgICAgIHN0cnVjdCB0eXBlICppbmRleF90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90 eXBlKTsKLSsKLSsgICAgICBzd2l0Y2ggKGluZGV4LT5raW5kKQotKwl7Ci0rCWNhc2UgU1VCU0NS SVBUX1JBTkdFOgotKwkgIHsKLSsKLSsJICAgIC8qIFdoZW4gd2UgaGl0IHRoZSBmaXJzdCByYW5n ZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHdlIG11c3QKLSsJICAgICAgIHRyZWF0IGFueSBzdWJz ZXF1ZW50IHVzZXIgZW50cnkgYXMgYSByYW5nZS4gIFdlIHNpbXBseQotKwkgICAgICAgaW5jcmVt ZW50IERJTV9DT1VOVCB3aGljaCB0ZWxscyB1cyBob3cgbWFueSB0aW1lcyB3ZSBhcmUKLSsJICAg ICAgIGNhbGxpbmcgVkFMVUVfU0xJQ0VfMS4gICovCi0rCSAgICBzdWJzY3JpcHRfcmFuZ2UgKnJh bmdlID0gJmluZGV4LT5VLnJhbmdlOwotKwotIAkgICAgLyogRElNX0NPVU5UIGNvdW50cyBldmVy eSB1c2VyIGFyZ3VtZW50IHRoYXQgaXMgdHJlYXRlZCBhcyBhIHJhbmdlLgotIAkgICAgICAgVGhp cyBpcyBuZWNlc3NhcnkgZm9yIGV4cHJlc3Npb25zIGxpa2UgJ3ByaW50IGFycmF5KDcsIDg6OSku Ci0gCSAgICAgICBIZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIGxpdGVyYWwsIGJ1dCBtdXN0 IGJlIHRyZWF0ZWQgYXMgYQotQEAgLTU1OCwxMCArNjAyLDkgQEAgdmFsdWVfZjkwX3N1YmFycmF5 IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgICAgZGlt X2NvdW50Kys7Ci0gCi0gCSAgICBuZXdfYXJyYXkKLS0JICAgICAgPSB2YWx1ZV9zbGljZV8xIChu ZXdfYXJyYXksCi0tCQkJICAgICAgIGxvbmdlc3RfdG9faW50IChyYW5nZS0+bG93KSwKLS0JCQkg ICAgICAgbG9uZ2VzdF90b19pbnQgKHJhbmdlLT5oaWdoIC0gcmFuZ2UtPmxvdyArIDEpLAotLQkJ CSAgICAgICBkaW1fY291bnQpOwotKwkgICAgICA9IHZhbHVlX3NsaWNlXzEgKG5ld19hcnJheSwg cmFuZ2UtPmxvdywKLSsJCQkgICAgICAgcmFuZ2UtPmhpZ2ggLSByYW5nZS0+bG93ICsgMSwKLSsJ CQkgICAgICAgcmFuZ2UtPnN0cmlkZSwgZGltX2NvdW50KTsKLSAJICB9Ci0gCSAgYnJlYWs7Ci0g Ci1AQCAtNTgwLDIxICs2MjMsMzIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkJCQkJCQkJICAobmV3X2FycmF5KSkp OwotIAkgICAgZWxzZQotIAkgICAgICB7Ci0tCQkvKiBDaGVjayBmb3IgdmFsaWQgaW5kZXggaW5w dXQuICAqLwotKwkJZGltX2NvdW50Kys7Ci0rCi0rCQkvKiBXZSBtaWdodCBlbmQgdXAgaGVyZSwg YmVjYXVzZSB3ZSBoYXZlIHRvIHRyZWF0IHRoZSBwcm92aWRlZAotKwkJICAgaW5kZXggbGlrZSBh IHJhbmdlLiBCdXQgbm93IFZBTFVFX1NVQlNDUklQVEVEX1JWQUxVRQotKwkJICAgY2Fubm90IGRv IHRoZSByYW5nZSBjaGVja3MgZm9yIHVzLiBTbyB3ZSBoYXZlIHRvIG1ha2Ugc3VyZQotKwkJICAg b3Vyc2VsdmVzIHRoYXQgdGhlIHVzZXIgcHJvdmlkZWQgaW5kZXggaXMgaW5zaWRlIHRoZQotKwkJ ICAgYXJyYXkgYm91bmRzLiAgVGhyb3cgYW4gZXJyb3IgaWYgbm90LiAgKi8KLSAJCWlmIChpbmRl eC0+VS5udW1iZXIgPCBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkKLS0JCSAgICB8fCBpbmRl eC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotLQkJICBlcnJvciAo XygiZXJyb3Igbm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsJCSAgICAmJiBpbmRleC0+VS5u dW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotKwkJICBlcnJvciAoXygicHJv dmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3VuZChzKSIpKTsKLSsKLSsJCWlmIChpbmRl eC0+VS5udW1iZXIgPiBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkKLSsJCSAgICAmJiBpbmRl eC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQotKwkJICBlcnJvciAo XygicHJvdmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3VuZChzKSIpKTsKLSAKLS0JCWRp bV9jb3VudCsrOwotIAkJbmV3X2FycmF5ID0gdmFsdWVfc2xpY2VfMSAobmV3X2FycmF5LAotLQkJ CQkJICAgbG9uZ2VzdF90b19pbnQgKGluZGV4LT5VLm51bWJlciksCi0tCQkJCQkgICAxLCAvKiBs ZW5ndGggaXMgJzEnIGVsZW1lbnQgICovCi0rCQkJCQkgICBpbmRleC0+VS5udW1iZXIsCi0rCQkJ CQkgICAxLCAvKiBDT1VOVCBpcyAnMScgZWxlbWVudCAgKi8KLSsJCQkJCSAgIDEsIC8qIFNUUklE RSBzZXQgdG8gJzEnICAqLwotIAkJCQkJICAgZGltX2NvdW50KTsKLSAJICAgICAgfQotIAotIAkg IH0KLSAJICBicmVhazsKLSAJfQotKyAgICAgIGFycmF5X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBF IChhcnJheV90eXBlKTsKLSAgICAgfQotIAotICAgLyogV2l0aCBESU1fQ09VTlQgPiAxIHdlIGN1 cnJlbnRseSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCBidXQgZXhwZWN0Ci1AQCAtNjIw LDcgKzY3NCw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJIHRoZSBvdXRwdXQgYXJyYXkuICBTbyB3ZSB0cmF2ZXJz ZSB0aGUgU1VCU0NSSVBUX0FSUkFZIGFnYWluLCBsb29raW5nCi0gCSBmb3IgYSByYW5nZSBlbnRy eS4gIFdoZW4gd2UgZmluZCBvbmUsIHdlIHVzZSB0aGUgcmFuZ2UgaW5mbyB0byBjcmVhdGUKLSAJ IGFuIGFkZGl0aW9uYWwgcmFuZ2VfdHlwZSB0byBzZXQgdGhlIGNvcnJlY3QgYm91bmRzIGFuZCBk aW1lbnNpb25zIGZvcgotLQkgdGhlIG91dHB1dCBhcnJheS4gICovCi0rCSB0aGUgb3V0cHV0IGFy cmF5LiAgSW4gYWRkaXRpb24sIHdlIG1heSBoYXZlIGEgc3RyaWRlIHZhbHVlIHRoYXQgaXMgbm90 Ci0rCSAnMScsIGZvcmNpbmcgdXMgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4g YSByYW5nZSwgYWNjb3JkaW5nCi0rCSB0byB0aGUgc3RyaWRlIHZhbHVlLiAgKi8KLSAgICAgICBm b3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKLSAJewotIAkgIHN0cnVjdCBzdWJzY3JpcHRfc3Rv cmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKLUBAIC02MjksMTIgKzY4NSwyMCBAQCB2 YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9u ICpleHAsCi0gCSAgICB7Ci0gCSAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlLCAqaW50ZXJp bV9hcnJheV90eXBlOwotIAotKwkgICAgICBpbnQgbmV3X2xlbmd0aDsKLSsKLSsJICAgICAgLyog VGhlIGxlbmd0aCBvZiBhIHN1Yi1kaW1lbnNpb24gd2l0aCBhbGwgZWxlbWVudHMgYmV0d2VlbiB0 aGUKLSsJCSBib3VuZHMgcGx1cyB0aGUgc3RhcnQgZWxlbWVudCBpdHNlbGYuICBJdCBtYXkgYmUg bW9kaWZpZWQgYnkKLSsJCSBhIHVzZXIgcHJvdmlkZWQgc3RyaWRlIHZhbHVlLiAgKi8KLSsJICAg ICAgbmV3X2xlbmd0aCA9IGluZGV4LT5VLnJhbmdlLmhpZ2ggLSBpbmRleC0+VS5yYW5nZS5sb3c7 Ci0rCi0rCSAgICAgIG5ld19sZW5ndGggLz0gaW5kZXgtPlUucmFuZ2Uuc3RyaWRlOwotKwotIAkg ICAgICByYW5nZV90eXBlCi0gCQk9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwKLSAJ CQkJCSAgICBlbHRfdHlwZSwKLS0JCQkJCSAgICAxLAotLQkJCQkJICAgIGluZGV4LT5VLnJhbmdl LmhpZ2gKLS0JCQkJCSAgICAgIC0gaW5kZXgtPlUucmFuZ2UubG93ICsgMSk7Ci0rCQkJCQkgICAg aW5kZXgtPlUucmFuZ2UubG93LAotKwkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmxvdyArIG5ld19s ZW5ndGgpOwotIAotIAkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlw ZSAoTlVMTCwKLSAJCQkJCQkgICAgICBlbHRfdHlwZSwKLWRpZmYgLS1naXQgYS9nZGIvdmFsb3Bz LmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IGZiYzdkY2IuLmRlZDhlZmMgMTAwNjQ0Ci0tLS0gYS9n ZGIvdmFsb3BzLmMKLSsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTM3NjYsMTAgKzM3NjYsMTMgQEAg dmFsdWVfb2ZfdGhpc19zaWxlbnQgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5nKQot IHN0cnVjdCB2YWx1ZSAqCi0gdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCkKLSB7Ci0tICAvKiBQYXNzIHVuYWx0ZXJlZCBhcmd1bWVudHMg dG8gVkFMVUVfU0xJQ0VfMSwgcGx1cyBhIENBTExfQ09VTlQgb2YgJzEnIGFzIHdlCi0tICAgICBh cmUgb25seSBjb25zaWRlcmluZyB0aGUgaGlnaGVzdCBkaW1lbnNpb24sIG9yIHdlIGFyZSB3b3Jr aW5nIG9uIGEgb25lCi0tICAgICBkaW1lbnNpb25hbCBhcnJheS4gIFNvIHdlIGNhbGwgVkFMVUVf U0xJQ0VfMSBleGFjdGx5IG9uY2UuICAqLwotLSAgcmV0dXJuIHZhbHVlX3NsaWNlXzEgKGFycmF5 LCBsb3dib3VuZCwgbGVuZ3RoLCAxKTsKLSsgIC8qIFBhc3MgdW5hbHRlcmVkIGFyZ3VtZW50cyB0 byBWQUxVRV9TTElDRV8xLCBwbHVzIGEgZGVmYXVsdCBzdHJpZGUKLSsgICAgIHZhbHVlIG9mICcx Jywgd2hpY2ggcmV0dXJucyBldmVyeSBlbGVtZW50IGJldHdlZW4gTE9XQk9VTkQgYW5kCi0rICAg ICAoTE9XQk9VTkQgKyBMRU5HVEgpLiAgV2UgYWxzbyBwcm92aWRlIGEgZGVmYXVsdCBDQUxMX0NP VU5UIG9mICcxJwotKyAgICAgYXMgd2UgYXJlIG9ubHkgY29uc2lkZXJpbmcgdGhlIGhpZ2hlc3Qg ZGltZW5zaW9uLCBvciB3ZSBhcmUKLSsgICAgIHdvcmtpbmcgb24gYSBvbmUgZGltZW5zaW9uYWwg YXJyYXkuICBTbyB3ZSBjYWxsIFZBTFVFX1NMSUNFXzEKLSsgICAgIGV4YWN0bHkgb25jZS4gICov Ci0rICByZXR1cm4gdmFsdWVfc2xpY2VfMSAoYXJyYXksIGxvd2JvdW5kLCBsZW5ndGgsIDEsIDEp OwotIH0KLSAKLSAvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1l bnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIKLUBAIC0zNzg1LDcgKzM3ODgsOCBAQCB2YWx1 ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQot ICAgIHJhbmdlcyBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbi4gICovCi0gCi0gc3RydWN0IHZhbHVl ICoKLS12YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGlu dCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQotK3ZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwKLSsJICAgICAgIGludCBzdHJpZGVfbGVu Z3RoLCBpbnQgY2FsbF9jb3VudCkKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqc2xpY2VfcmFuZ2VfdHlw ZSwgKnNsaWNlX3R5cGUsICpyYW5nZV90eXBlOwotICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUg PSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotQEAgLTM4MDgsMTQgKzM4MTIs MjQgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBp bnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKLSAgICAgIGF0dHJpYnV0ZXMgb2YgdGhlIHVuZGVy bHlpbmcgdHlwZS4gICovCi0gICBpZiAoY2FsbF9jb3VudCA+IDEpCi0gICAgIHsKLSsgICAgICBh cnlfbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKFRZUEVfSU5ERVhfVFlQRSAoZWx0X3R5cGUp KTsKLSsgICAgICBhcnlfaGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAoVFlQRV9JTkRFWF9U WVBFIChlbHRfdHlwZSkpOwotICAgICAgIGVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9U QVJHRVRfVFlQRSAoZWx0X3R5cGUpKTsKLSAgICAgICByb3dfY291bnQgPSBUWVBFX0xFTkdUSCAo YXJyYXlfdHlwZSkKLSAJCSAgICAvIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChhcnJh eV90eXBlKSk7Ci0gICAgIH0KLSAKLS0gIGVsZW1fY291bnQgPSBsZW5ndGg7Ci0rICAvKiBXaXRo IGEgc3RyaWRlIG9mICcxJywgdGhlIG51bWJlciBvZiBlbGVtZW50cyBwZXIgcmVzdWx0IHJvdyBp cyBlcXVhbCB0bwotKyAgICAgdGhlIExFTkdUSCBvZiB0aGUgc3ViYXJyYXkuICBXaXRoIG5vbi1k ZWZhdWx0IHN0cmlkZSB2YWx1ZXMsIHdlIHNraXAKLSsgICAgIGVsZW1lbnRzLCBidXQgaGF2ZSB0 byBhZGQgdGhlIHN0YXJ0IGVsZW1lbnQgdG8gdGhlIHRvdGFsIG51bWJlciBvZgotKyAgICAgZWxl bWVudHMgcGVyIHJvdy4gICovCi0rICBpZiAoc3RyaWRlX2xlbmd0aCA9PSAxKQotKyAgICBlbGVt X2NvdW50ID0gbGVuZ3RoOwotKyAgZWxzZQotKyAgICBlbGVtX2NvdW50ID0gKChsZW5ndGggLSAx KSAvIHN0cmlkZV9sZW5ndGgpICsgMTsKLSsKLSAgIGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVs dF90eXBlKTsKLS0gIGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGxvd2JvdW5kIC0gYXJ5X2xv d19ib3VuZCk7Ci0rICBlbHRfb2ZmcyA9IGxvd2JvdW5kIC0gYXJ5X2xvd19ib3VuZDsKLSAgIGVs dF9zdHJpZGUgPSBUWVBFX0xFTkdUSCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7Ci0g Ci0gICBlbHRfb2ZmcyAqPSBlbHRfc2l6ZTsKLUBAIC0zODU4LDggKzM4NzIsOSBAQCB2YWx1ZV9z bGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGlu dCBjYWxsX2NvdW50KQotICAgewotICAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlOwotIAot LSAgICAvKiBXaGVuIENBTExfQ09VTlQgZXF1YWxzIDEgd2UgY2FuIHVzZSB0aGUgbGVnYWN5IGNv ZGUgZm9yIHN1YmFycmF5cy4gICovCi0tICAgIGlmIChjYWxsX2NvdW50ID09IDEpCi0rICAgIC8q IFdoZW4gYm90aCBDQUxMX0NPVU5UIGFuZCBTVFJJREVfTEVOR1RIIGVxdWFsIDEsIHdlIGNhbiB1 c2UgdGhlIGxlZ2FjeQotKyAgICAgICBjb2RlIGZvciBzdWJhcnJheXMuICAqLwotKyAgICBpZiAo Y2FsbF9jb3VudCA9PSAxICYmIHN0cmlkZV9sZW5ndGggPT0gMSkKLSAgICAgICB7Ci0gCWVsZW1l bnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwotIAotQEAgLTM4ODAsMjkg KzM4OTUsNTMgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2Jv dW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKLSAJICB9Ci0gCi0gICAgICAgfQotLSAg ICAvKiBXaGVuIENBTExfQ09VTlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBvbiBh IHJhbmdlIG9mIHJhbmdlcy4KLS0gICAgICAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVu dHMgaW50byB0aGUgbmV3IGFycmF5IHdlIHJldHVybi4gICovCi0rICAgIC8qIFdpdGggYSBDQUxM X0NPVU5UIG9yIFNUUklERV9MRU5HVEggYXJlIGdyZWF0ZXIgdGhhbiAxIHdlIGFyZSB3b3JraW5n Ci0rICAgICAgIG9uIGEgcmFuZ2Ugb2YgcmFuZ2VzLiAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQg ZWxlbWVudHMgaW50byB0aGUKLSsgICAgICAgbmV3IGFycmF5IHdlIHJldHVybi4gICovCi0gICAg IGVsc2UKLSAgICAgICB7Ci0rCWludCBqLCBvZmZzX3N0b3JlID0gZWx0X29mZnM7Ci0gCUxPTkdF U1QgZHN0X29mZnNldCA9IDA7Ci0gCUxPTkdFU1Qgc3JjX3Jvd19sZW5ndGggPSBUWVBFX0xFTkdU SCAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotIAotLQllbGVtZW50X3R5cGUgPSBU WVBFX1RBUkdFVF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0rCWlmIChj YWxsX2NvdW50ID09IDEpCi0rCSAgewotKwkgICAgLyogV2hlbiBDQUxMX0NPVU5UIGlzIGVxdWFs IHRvIDEgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJlbnQgcmFuZ2UKLSsJICAgICAgIGFuZCB1 c2UgdGhlc2UgZWxlbWVudHMgZGlyZWN0bHkuICAqLwotKwkgICAgZWxlbWVudF90eXBlID0gVFlQ RV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7Ci0rCSAgfQotKwllbHNlCi0rCSAgewotKwkgICAg LyogV29ya2luZyBvbiBhbiBhcnJheSBvZiBhcnJheXMsIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50 cyBpcyB0aGUgdHlwZQotKwkgICAgICAgb2YgdGhlIHN1YmFycmF5cycgdHlwZS4gICovCi0rCSAg ICBlbGVtZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJh eV90eXBlKSk7Ci0rCSAgfQotKwotIAlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5V TEwsIGVsZW1lbnRfdHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7Ci0gCi0tCVRZUEVfQ09ERSAoc2xp Y2VfdHlwZSkgPSBUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsJ IC8qIElmIHdlIGhhdmUgYSBvbmUgZGltZW5zaW9uYWwgYXJyYXksIHdlIGNvcHkgaXRzIFRZUEVf Q09ERS4gIEZvciBhCi0rCSAgICBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSB3ZSBjb3B5IHRoZSBl bWJlZGRlZCB0eXBlJ3MgVFlQRV9DT0RFLiAgKi8KLSsJaWYgKGNhbGxfY291bnQgPT0gMSkKLSsJ ICBUWVBFX0NPREUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKLSsJZWxz ZQotKwkgIFRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZ UEUgKGFycmF5X3R5cGUpKTsKLSAKLSAJdiA9IGFsbG9jYXRlX3ZhbHVlIChzbGljZV90eXBlKTsK LS0JZm9yIChpID0gMDsgaSA8IGxvbmdlc3RfdG9faW50IChyb3dfY291bnQpOyBpKyspCi0rCi0r CS8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgcm93cyBvZiB0aGUgb3V0ZXIgYXJyYXkgYW5kIHNldCB0 aGUgbmV3IG9mZnNldAotKwkgICBmb3IgZWFjaCByb3cuICAqLwotKwlmb3IgKGkgPSAwOyBpIDwg cm93X2NvdW50OyBpKyspCi0gCSAgewotLQkgICAgLyogRmV0Y2hlcyB0aGUgY29udGVudHMgb2Yg QVJSQVkgYW5kIGNvcGllcyB0aGVtIGludG8gVi4gICovCi0tCSAgICB2YWx1ZV9jb250ZW50c19j b3B5ICh2LAotLQkJCQkgZHN0X29mZnNldCwKLS0JCQkJIGFycmF5LAotLQkJCQkgZWx0X29mZnMs Ci0tCQkJCSBlbHRfc2l6ZSAqIGVsZW1fY291bnQpOwotLQkgICAgZWx0X29mZnMgKz0gc3JjX3Jv d19sZW5ndGg7Ci0tCSAgICBkc3Rfb2Zmc2V0ICs9IGVsdF9zaXplICogZWxlbV9jb3VudDsKLSsJ ICAgIGVsdF9vZmZzID0gb2Zmc19zdG9yZSArIGkgKiBzcmNfcm93X2xlbmd0aDsKLSsKLSsJICAg IC8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZWxlbWVudHMgaW4gZWFjaCByb3cgdG8gY29weSBvbmx5 IHRob3NlLiAgKi8KLSsJICAgIGZvciAoaiA9IDE7IGogPD0gZWxlbV9jb3VudDsgaisrKQotKwkg ICAgICB7Ci0rCQkvKiBGZXRjaGVzIHRoZSBjb250ZW50cyBvZiBBUlJBWSBhbmQgY29waWVzIHRo ZW0gaW50byBWLiAgKi8KLSsJCXZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIGRzdF9vZmZzZXQsIGFy cmF5LCBlbHRfb2ZmcywgZWx0X3NpemUpOwotKwkJZWx0X29mZnMgKz0gZWx0X3NpemUgKiBzdHJp ZGVfbGVuZ3RoOwotKwkJZHN0X29mZnNldCArPSBlbHRfc2l6ZTsKLSsJICAgICAgfQotIAkgIH0K LSAgICAgICB9Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5k ZXggOTU1ODhhZi4uZTQxNzYzOSAxMDA2NDQKLS0tLSBhL2dkYi92YWx1ZS5oCi0rKysgYi9nZGIv dmFsdWUuaAotQEAgLTEwNTYsNyArMTA1Niw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlp bmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICosIGludCwgaW50KTsKLSAKLS1leHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKiwgaW50LCBpbnQsIGludCk7Ci0r ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICosIGludCwg aW50LCBpbnQsIGludCk7Ci0gCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9j b21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVlICosCi0gCQkJCQkgICAgc3RydWN0 IHR5cGUgKik7Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtNm9mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzdiYmM5Li4wMDAwMDAwCi0tLSBhL2dkYi1m b3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTE4ICsw LDAgQEAKLVJFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9u YWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKLQotRnJvbSA5ODJkNTgyZWU3MzhjYmNmMjUy YmE4ZWFiNTlhOTUxNGVkZGE3NWI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hy aXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+Ci1EYXRlOiBX ZWQsIDQgRGVjIDIwMTMgMTE6NDc6MTUgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzZdIGZvcnRy YW46IHRlc3QgY2FzZXMgZm9yIHN1YmFycmF5IHN0cmlkZXMgYW5kIHNsaWNlcwotCi1BZGQgdGVz dCBjYXNlcyBmb3Igc3ViYXJyYXkgY3JlYXRpb24gd2l0aCByYW5nZSwgbGl0ZXJhbCBhbmQKLXN0 cmlkZSB2YWx1ZSBwZXJtdXRhdGlvbnMgZm9yIG9uZSwgdHdvLCBhbmQgdGhyZWUgZGltZW5zaW9u YWwKLWFycmF5cy4KLQotMjAxMy0xMi0wNCAgQ2hyaXN0b3BoIFdlaW5tYW5uICA8Y2hyaXN0b3Bo LnQud2Vpbm1hbm5AaW50ZWwuY29tPgotCi10ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vCi0JKiBzdGF0 aWMtYXJyYXlzLmV4cDogTmV3IHRlc3QuCi0JKiBzdGF0aWMtYXJyYXlzLmY5MDogTmV3IGZpbGUu Ci0KLQotU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlu bWFubkBpbnRlbC5jb20+Ci0tLS0KLSBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1h cnJheXMuZXhwIHwgNDIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBnZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZjkwIHwgIDU1ICsrKysKLSAyIGZpbGVzIGNo YW5nZWQsIDQ3NiBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5leHAKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5MAotCi1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1p bmRleCAwMDAwMDAwLi5jYzllY2MwCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZXhwCi1AQCAtMCwwICsxLDQyMSBAQAotKyMgQ29w eXJpZ2h0IDIwMTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgQ29udHJp YnV0ZWQgYnkgSW50ZWwgQ29ycC4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KLSsj Ci0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIHN0 YXRpYy1hcnJheXMuZjkwCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAkdGVzdGZpbGUu ZXhwICR0ZXN0ZmlsZSAkc3JjZmlsZSB7ZGVidWcgZjkwfV0gfSB7Ci0rICAgIHJldHVybiAtMQot K30KLSsKLStpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3Qg cnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQlAxIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiQlAxIiAiLipCUDEuKiIKLSsKLSsjIFRlc3RzIHN1YmFycmF5cyBvZiBvbmUgZGlt ZW5zaW9uYWwgYXJyYXlzIHdpdGggc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dkYl90ZXN0ICJwcmlu dCBhcjEiICJcXCRcWzAtOVxdKyA9IFxcKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDlcXCkiIFwK LSsJCSJwcmludCBhcjEuIgotK2dkYl90ZXN0ICJwcmludCBhcjFcKDQ6N1wpIiAiXFwkXFswLTlc XSsgPSBcXCg0LCA1LCA2LCA3XFwpIiBcCi0rCQkicHJpbnQgYXIxXCg0OjdcKSIKLStnZGJfdGVz dCAicHJpbnQgYXIxXCg4OlwpIiAiXFwkXFswLTlcXSsgPSBcXCg4LCA5XFwpLioiIFwKLSsJCSJw cmludCBhcjFcKDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMVwoOjNcKSIgIlxcJFxbMC05XF0r ID0gXFwoMSwgMiwgM1xcKS4qIiBcCi0rCQkicHJpbnQgYXIxXCg6M1wpIgotK2dkYl90ZXN0ICJw cmludCBhcjFcKDpcKSIgIlxcJFxbMC05XF0rID0gXFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwg OVxcKSIgXAotKwkJInByaW50IGFyMVwoOlwpIgotKwotKyMgQ2hlY2sgYXNzaWdubWVudAotK2dk Yl90ZXN0X25vX291dHB1dCAic2V0IFwkbXlfYXJ5ID0gYXIxXCgzOjhcKSIKLStnZGJfdGVzdCAi cHJpbnQgXCRteV9hcnkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDMsIDQsIDUsIDYsIDcsIDhc XCkiIFwKLSsJCSJBc3NpZ25tZW50IG9mIHN1YmFycmF5IHRvIHZhcmlhYmxlIgotK2dkYl90ZXN0 X25vX291dHB1dCAic2V0IGFyMVwoNVwpID0gNDIiCi0rCQlnZGJfdGVzdCAicHJpbnQgYXIxXCgz OjhcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoMywgNCwgNDIsIDYsIDcsIDhcXCkiIFwKLSsJ CSJwcmludCBhcjFcKDM6OFwpIGFmdGVyIGFzc2lnbm1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IFwk bXlfYXJ5IiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgzLCA0LCA1LCA2LCA3LCA4XFwpIiBcCi0r CQkiQXNzaWdubWVudCBvZiBzdWJhcnJheSB0byB2YXJpYWJsZSBhZnRlciBvcmlnaW5hbCBhcnJh eSBjaGFuZ2VkIgotKwotKyMgVGVzdCBmb3Igc3ViYXJyYXlzIG9mIG9uZSBkaW1lbnNpb25hbCBh cnJheXMgd2l0aCBsaXRlcmFscwotKwkJZ2RiX3Rlc3QgInByaW50IGFyMVwoM1wpIiAiXFwkXFsw LTlcXSsgPSAzIiBcCi0rCQkicHJpbnQgYXIxXCgzXCkiCi0rCi0rIyBUZXN0cyBmb3Igc3VicmFu Z2VzIG9mIDIgZGltZW5zaW9uYWwgYXJyYXlzIHdpdGggc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dk Yl90ZXN0ICJwcmludCBhcjJcKDI6MywgMzo0XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCAyMywgMzNcXCkgXFwoIDI0LCAzNFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjJcKDI6MywgMzo0 XCkuIgotK2dkYl90ZXN0ICJwcmludCBhcjJcKDg6OSw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsg PSBcXChcXCggODgsIDk4XFwpIFxcKCA4OSwgOTlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIyXCg4 OjksODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg4OjksOjJcKSIgXAotKwkJIlxcJFxbMC05 XF0rID0gXFwoXFwoIDgxLCA5MVxcKSBcXCggODIsIDkyXFwpIFxcKSIgXAotKwkJInByaW50IGFy MlwoODo5LDoyXCkiCi0rCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoODosODo5XCkiIFwKLSsJCSJc XCRcWzAtOVxdKyA9IFxcKFxcKCA4OCwgOThcXCkgXFwoIDg5LCA5OVxcKSBcXCkiIFwKLSsJCSJw cmludCBhcjJcKDg6LDg6OVwpIgotK2dkYl90ZXN0ICJwcmludCBhcjJcKDg6LDg6XCkiIFwKLSsJ CSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4OCwgOThcXCkgXFwoIDg5LCA5OVxcKSBcXCkiIFwKLSsJ CSJwcmludCBhcjJcKDg6LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoODosOjJcKSIgXAot KwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDgxLCA5MVxcKSBcXCggODIsIDkyXFwpIFxcKSIgXAot KwkJInByaW50IGFyMlwoODosOjJcKSIKLSsKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg6MiwyOjNc KSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDEyLCAyMlxcKSBcXCggMTMsIDIzXFwpIFxc KSIgXAotKwkJInByaW50IGFyMlwoOjIsMjozXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoOjIs ODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDE4LCAyOFxcKSBcXCggMTksIDI5XFwp IFxcKSIgXAotKwkJInByaW50IGFyMlwoOjIsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg6 Miw6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTEsIDIxXFwpIFxcKCAxMiwgMjJc XCkgXFwpIiBcCi0rCQkicHJpbnQgYXIyXCg6Miw6MlwpIgotKwotKyMgVGVzdCBzdWJyYW5nZXMg b2YgMiBkaW1lbnNpb25hbCBhcnJheXMgd2l0aCBsaXRlcmFscyBhbmQgc3VicmFuZ2UgdmFyaWF0 aW9ucwotK2dkYl90ZXN0ICJwcmludCBhcjJcKDcsIDM6NlwpIiBcCi0rCQkiXFwkXFswLTlcXSsg PSBcXCg3MywgNzQsIDc1LCA3NlxcKSIgXAotKwkJInByaW50IGFyMlwoNywgMzo2XCkiCi0rZ2Ri X3Rlc3QgInByaW50IGFyMlwoNyw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCg3OCwgNzlc XCkiIFwKLSsJCSJwcmludCBhcjJcKDcsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIyXCg3LDoy XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDcxLCA3MlxcKSIgXAotKwkJInByaW50IGFyMlwo Nyw6MlwpIgotKwotK2dkYl90ZXN0ICJwcmludCBhcjJcKDc6OCw0XCkiIFwKLSsJCSJcXCRcWzAt OVxdKyA9IFxcKDc0LCA4NFxcKSIgXAotKwkJInByaW50IGFyMig3OjgsNFwpIgotK2dkYl90ZXN0 ICJwcmludCBhcjJcKDg6LDRcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoODQsIDk0XFwpIiBc Ci0rCQkicHJpbnQgYXIyXCg4Oiw0XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoOjIsNFwpIiBc Ci0rCQkiXFwkXFswLTlcXSsgPSBcXCgxNCwgMjRcXCkiIFwKLSsJCSJwcmludCBhcjJcKDoyLDRc KSIKLStnZGJfdGVzdCAicHJpbnQgYXIyXCgzLDRcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gMzQi IFwKLSsJCSJwcmludCBhcjJcKDMsNFwpIgotKwotKyMgVGVzdCBzdWJhcnJheXMgb2YgMyBkaW1l bnNpb25hbCBhcnJheXMgd2l0aCBsaXRlcmFscyBhbmQgc3VicmFuZ2UgdmFyaWF0aW9ucwotK2dk Yl90ZXN0ICJwcmludCBhcjNcKDI6NCwzOjQsNzo4XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxc KFxcKCBcXCggMjM3LCAzMzcsIDQzN1xcKSBcXCggMjQ3LCAzNDcsIDQ0N1xcKVwKLSsJCSBcXCkg XFwoIFxcKCAyMzgsIDMzOCwgNDM4XFwpIFxcKCAyNDgsIDM0OCwgNDQ4XFwpIFxcKSBcXCkiIFwK LSsJCSJwcmludCBhcjNcKDI6NCwzOjQsNzo4XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMjoz LDQ6NSw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDI0OCwgMzQ4XFwpIFxc KCAyNTgsIDM1OFxcKSBcXCkgXFwoXAotKwkJIFxcKCAyNDksIDM0OVxcKSBcXCggMjU5LCAzNTlc XCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMjozLDQ6NSw4OlwpIgotK2dkYl90ZXN0ICJw cmludCBhcjNcKDI6Myw0OjUsOjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAy NDEsIDM0MVxcKSBcXCggMjUxLCAzNTFcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjQyLCAzNDJcXCkg XFwoIDI1MiwgMzUyXFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw0OjUsOjJcKSIK LSsKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjMsODosNzo4XCkiIFwKLSsJCSJcXCRcWzAtOVxd KyA9IFxcKFxcKCBcXCggMjg3LCAzODdcXCkgXFwoIDI5NywgMzk3XFwpIFxcKSBcXChcCi0rCQkg XFwoIDI4OCwgMzg4XFwpIFxcKCAyOTgsIDM5OFxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIz XCgyOjMsODosNzo4XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDg6LDg6XCkiIFwKLSsJ CSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMjg4LCAzODhcXCkgXFwoIDI5OCwgMzk4XFwpIFxc KSBcXChcCi0rCQkgXFwoIDI4OSwgMzg5XFwpIFxcKCAyOTksIDM5OVxcKSBcXCkgXFwpIiBcCi0r CQkicHJpbnQgYXIzXCgyOjMsODosODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjMsODos OjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyODEsIDM4MVxcKSBcXCggMjkx LCAzOTFcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjgyLCAzODJcXCkgXFwoIDI5MiwgMzkyXFwpIFxc KSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw4Oiw6MlwpIgotKwotK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDI6Myw6Miw3OjhcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMTcs IDMxN1xcKSBcXCggMjI3LCAzMjdcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjE4LCAzMThcXCkgXFwo IDIyOCwgMzI4XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw6Miw3OjhcKSIKLStn ZGJfdGVzdCAicHJpbnQgYXIzXCgyOjMsOjIsODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwo XFwoIFxcKCAyMTgsIDMxOFxcKSBcXCggMjI4LCAzMjhcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjE5 LCAzMTlcXCkgXFwoIDIyOSwgMzI5XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw6 Miw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6Myw6Miw6MlwpIiBcCi0rCQkiXFwkXFsw LTlcXSsgPSBcXChcXCggXFwoIDIxMSwgMzExXFwpIFxcKCAyMjEsIDMyMVxcKSBcXCkgXFwoXAot KwkJIFxcKCAyMTIsIDMxMlxcKSBcXCggMjIyLCAzMjJcXCkgXFwpIFxcKSIgXAotKwkJInByaW50 IGFyM1woMjozLDoyLDoyXCkiCi0rCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woODosMzo0LDc6OFwp IiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDgzNywgOTM3XFwpIFxcKCA4NDcsIDk0 N1xcKSBcXCkgXFwoXAotKwkJIFxcKCA4MzgsIDkzOFxcKSBcXCggODQ4LCA5NDhcXCkgXFwpIFxc KSIgXAotKwkJInByaW50IGFyM1woODosMzo0LDc6OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNc KDg6LDQ6NSw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDg0OCwgOTQ4XFwp IFxcKCA4NTgsIDk1OFxcKSBcXCkgXFwoXAotKwkJIFxcKCA4NDksIDk0OVxcKSBcXCggODU5LCA5 NTlcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woODosNDo1LDg6XCkiCi0rZ2RiX3Rlc3Qg InByaW50IGFyM1woODosNDo1LDoyXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCgg ODQxLCA5NDFcXCkgXFwoIDg1MSwgOTUxXFwpIFxcKSBcXChcCi0rCQkgXFwoIDg0MiwgOTQyXFwp IFxcKCA4NTIsIDk1MlxcKSBcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw0OjUsOjJcKSIK LSsKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw4Oiw3OjhcKSIgXAotKwkJIlxcJFxbMC05XF0r ID0gXFwoXFwoIFxcKCA4ODcsIDk4N1xcKSBcXCggODk3LCA5OTdcXCkgXFwpIFxcKFwKLSsJCSBc XCggODg4LCA5ODhcXCkgXFwoIDg5OCwgOTk4XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNc KDg6LDg6LDc6OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDg6LDg6XCkiIFwKLSsJCSJc XCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggODg4LCA5ODhcXCkgXFwoIDg5OCwgOTk4XFwpIFxcKSBc XChcCi0rCQkgXFwoIDg4OSwgOTg5XFwpIFxcKCA4OTksIDk5OVxcKSBcXCkgXFwpIiBcCi0rCQki cHJpbnQgYXIzXCg4Oiw4Oiw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDg6LDoyXCki IFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggODgxLCA5ODFcXCkgXFwoIDg5MSwgOTkx XFwpIFxcKSBcXChcCi0rCQkgXFwoIDg4MiwgOTgyXFwpIFxcKCA4OTIsIDk5MlxcKSBcXCkgXFwp IiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw4Oiw6MlwpIgotKwotK2dkYl90ZXN0ICJwcmludCBhcjNc KDg6LDoyLDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDgxNywgOTE3XFwp IFxcKCA4MjcsIDkyN1xcKSBcXCkgXFwoXAotKwkJIFxcKCA4MTgsIDkxOFxcKSBcXCggODI4LCA5 MjhcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woODosOjIsNzo4XCkiCi0rZ2RiX3Rlc3Qg InByaW50IGFyM1woODosOjIsODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA4 MTgsIDkxOFxcKSBcXCggODI4LCA5MjhcXCkgXFwpIFxcKFwKLSsJCSBcXCggODE5LCA5MTlcXCkg XFwoIDgyOSwgOTI5XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDoyLDg6XCkiCi0r Z2RiX3Rlc3QgInByaW50IGFyM1woODosOjIsOjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwo XFwoIFxcKCA4MTEsIDkxMVxcKSBcXCggODIxLCA5MjFcXCkgXFwpIFxcKFwKLSsJCSBcXCggODEy LCA5MTJcXCkgXFwoIDgyMiwgOTIyXFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDoy LDoyXCkiCi0rCi0rCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsMzo0LDc6OFwpIiBcCi0rCQki XFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDEzNywgMjM3XFwpIFxcKCAxNDcsIDI0N1xcKSBcXCkg XFwoXAotKwkJIFxcKCAxMzgsIDIzOFxcKSBcXCggMTQ4LCAyNDhcXCkgXFwpIFxcKSIgXAotKwkJ InByaW50IGFyMyBcKDoyLDM6NCw3OjhcKS4iCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsMzo0 LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMTM4LCAyMzhcXCkgXFwoIDE0 OCwgMjQ4XFwpIFxcKSBcXChcCi0rCQkgXFwoIDEzOSwgMjM5XFwpIFxcKCAxNDksIDI0OVxcKSBc XCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg6MiwzOjQsODpcKSIKLStnZGJfdGVzdCAicHJpbnQg YXIzXCg6MiwzOjQsOjJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxMzEsIDIz MVxcKSBcXCggMTQxLCAyNDFcXCkgXFwpIFxcKFwKLSsJCSBcXCggMTMyLCAyMzJcXCkgXFwoIDE0 MiwgMjQyXFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDoyLDM6NCw6MlwpIgotKwotK2dk Yl90ZXN0ICJwcmludCBhcjNcKDoyLDg6LDc6OFwpIiAiXFwkXFswLTlcXSsgPSBcXChcXCggXFwo IDE4NywgMjg3XFwpIFxcKFwKLSsJCSAxOTcsIDI5N1xcKSBcXCkgXFwoIFxcKCAxODgsIDI4OFxc KSBcXCggMTk4LCAyOThcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woOjIsODosNzo4XCki Ci0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsODosODpcKSIgIlxcJFxbMC05XF0rID0gXFwoXFwo IFxcKCAxODgsIDI4OFxcKSBcXCggMTk4LFwKLSsJCSAyOThcXCkgXFwpIFxcKCBcXCggMTg5LCAy ODlcXCkgXFwoIDE5OSwgMjk5XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDoyLDg6LDg6 XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsODosOjJcKSIgIlxcJFxbMC05XF0rID0gXFwo XFwoIFxcKCAxODEsIDI4MVxcKSBcXCggMTkxLFwKLSsJCSAyOTFcXCkgXFwpIFxcKCBcXCggMTgy LCAyODJcXCkgXFwoIDE5MiwgMjkyXFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDoyLDg6 LDoyXCkiCi0rCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsOjIsNzo4XCkiIFwKLSsJCSJcXCRc WzAtOVxdKyA9IFxcKFxcKCBcXCggMTE3LCAyMTdcXCkgXFwoIDEyNywgMjI3XFwpIFxcKSBcXChc Ci0rCQkgXFwoIDExOCwgMjE4XFwpIFxcKCAxMjgsIDIyOFxcKSBcXCkgXFwpIiBcCi0rCQkicHJp bnQgYXIzXCg6Miw6Miw3OjhcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw6Miw4OlwpIiBc Ci0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDExOCwgMjE4XFwpIFxcKCAxMjgsIDIyOFxc KSBcXCkgXFwoXAotKwkJIFxcKCAxMTksIDIxOVxcKSBcXCggMTI5LCAyMjlcXCkgXFwpIFxcKSIg XAotKwkJInByaW50IGFyM1woOjIsOjIsODpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw6 Miw6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDExMSwgMjExXFwpIFxcKCAx MjEsIDIyMVxcKSBcXCkgXFwoXAotKwkJIFxcKCAxMTIsIDIxMlxcKSBcXCggMTIyLCAyMjJcXCkg XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woOjIsOjIsOjJcKSIKLSsKLSsjVGVzdHMgZm9yIHN1 YmFycmF5cyBvZiAzIGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxpdGVyYWxzIGFuZCBzdWJyYW5n ZXMKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgzLDM6NCw3OjhcKSIgXAotKwkJIlxcJFxbMC05XF0r ID0gXFwoXFwoIDMzNywgMzQ3XFwpIFxcKCAzMzgsIDM0OFxcKSBcXCkiIFwKLSsJCSJwcmludCBh cjNcKDMsMzo0LDc6OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsNDo1LDg6XCkiIFwKLSsJ CSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAzNDgsIDM1OFxcKSBcXCggMzQ5LCAzNTlcXCkgXFwpIiBc Ci0rCQkicHJpbnQgYXIzXCgzLDQ6NSw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDMsNDo1 LDoyXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAzNDEsIDM1MVxcKSBcXCggMzQyLCAz NTJcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgzLDQ6NSw6MlwpIgotK2dkYl90ZXN0ICJwcmlu dCBhcjNcKDMsNDo1LDNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoMzQzLCAzNTNcXCkiIFwK LSsJCSJwcmludCBhcjNcKDMsNDo1LDNcKSIKLSsKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDg6 LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjg3LCAyOTdcXCkgXFwoIDI4OCwg Mjk4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMiw4Oiw3OjhcKSIKLStnZGJfdGVzdCAicHJp bnQgYXIzXCgyLDg6LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyODgsIDI5OFxc KSBcXCggMjg5LCAyOTlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDg6LDg6XCkiCi0rZ2Ri X3Rlc3QgInByaW50IGFyM1woMiw4Oiw6MlwpIlwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAy ODEsIDI5MVxcKSBcXCggMjgyLCAyOTJcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDg6LDoy XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMiw4OiwzXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9 IFxcKDI4MywgMjkzXFwpIiBcCi0rCQkicHJpbnQgYXIzXCgyLDg6LDNcKSIKLSsKLStnZGJfdGVz dCAicHJpbnQgYXIzXCgyLDoyLDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjE3 LCAyMjdcXCkgXFwoIDIxOCwgMjI4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMiw6Miw3Ojhc KSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDoyLDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCAyMTgsIDIyOFxcKSBcXCggMjE5LCAyMjlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIz XCgyLDoyLDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMiw6Miw6MlwpIiBcCi0rCQkiXFwk XFswLTlcXSsgPSBcXChcXCggMjExLCAyMjFcXCkgXFwoIDIxMiwgMjIyXFwpIFxcKSIgXAotKwkJ InByaW50IGFyM1woMiw6Miw6MlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsOjIsM1wpIiBc Ci0rCQkiXFwkXFswLTlcXSsgPSBcXCgyMTMsIDIyM1xcKSIgXAotKwkJInByaW50IGFyM1woMiw6 MiwzXCkiCi0rCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0LDc6OFwpIiBcCi0rCQkiXFwkXFsw LTlcXSsgPSBcXCgzNDcsIDM0OFxcKSIgXAotKwkJInByaW50IGFyM1woMyw0LDc6OFwpIgotK2dk Yl90ZXN0ICJwcmludCBhcjNcKDMsNCw4OlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgzNDgs IDM0OVxcKSIgXAotK2kJCSJwcmludCBhcjNcKDMsNCw4OlwpIgotK2dkYl90ZXN0ICJwcmludCBh cjNcKDMsNCw6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgzNDEsIDM0MlxcKSIgXAotKwkJ InByaW50IGFyM1woMyw0LDoyXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woNSw2LDdcKSIgXAot KwkJIlxcJFxbMC05XF0rID0gNTY3IiBcCi0rCQkicHJpbnQgYXIzXCg1LDYsN1wpIgotKwotK2dk Yl90ZXN0ICJwcmludCBhcjNcKDM6NCw2LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChc XCggMzY3LCA0NjdcXCkgXFwoIDM2OCwgNDY4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woMzo0 LDYsNzo4XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDYsODpcKSIgXAotKwkJIlxcJFxb MC05XF0rID0gXFwoXFwoIDM2OCwgNDY4XFwpIFxcKCAzNjksIDQ2OVxcKSBcXCkiIFwKLSsJCSJw cmludCBhcjNcKDM6NCw2LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDYsOjJcKSIg XAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDM2MSwgNDYxXFwpIFxcKCAzNjIsIDQ2MlxcKSBc XCkiIFwKLSsJCSJwcmludCBhcjNcKDM6NCw2LDoyXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1wo Mzo0LDYsNVwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXCgzNjUsIDQ2NVxcKSIgXAotKwkJInBy aW50IGFyM1woMzo0LDYsNVwpIgotKwotK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDYsNzo4XCki IFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4NjcsIDk2N1xcKSBcXCggODY4LCA5NjhcXCkg XFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw2LDc6OFwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNc KDg6LDYsODpcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg2OCwgOTY4XFwpIFxcKCA4 NjksIDk2OVxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDg6LDYsODpcKSIKLStnZGJfdGVzdCAi cHJpbnQgYXIzXCg4Oiw2LDoyXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4NjEsIDk2 MVxcKSBcXCggODYyLCA5NjJcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw2LDoyXCkiCi0r Z2RiX3Rlc3QgInByaW50IGFyM1woODosNiw1XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKDg2 NSwgOTY1XFwpIiBcCi0rCQkicHJpbnQgYXIzXCg4Oiw2LDVcKSIKLSsKLStnZGJfdGVzdCAicHJp bnQgYXIzXCg6Miw2LDc6OFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTY3LCAyNjdc XCkgXFwoIDE2OCwgMjY4XFwpIFxcKSIgXAotKwkJInByaW50IGFyM1woOjIsNiw3OjhcKSIKLStn ZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw2LDg6XCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCAxNjgsIDI2OFxcKSBcXCggMTY5LCAyNjlcXCkgXFwpIiBcCi0rCQkicHJpbnQgYXIzXCg6Miw2 LDg6XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woOjIsNiw6MlwpIiBcCi0rCQkiXFwkXFswLTlc XSsgPSBcXChcXCggMTYxLCAyNjFcXCkgXFwoIDE2MiwgMjYyXFwpIFxcKSIgXAotKwkJInByaW50 IGFyM1woOjIsNiw6MlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDYsNVwpIiBcCi0rCQki XFwkXFswLTlcXSsgPSBcXCgxNjUsIDI2NVxcKSIgXAotKwkJInByaW50IGFyM1woOjIsNiw1XCki Ci0rCi0rZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0LDU6Niw0XCkiIFwKLSsJCSJcXCRcWzAtOVxd KyA9IFxcKFxcKCAzNTQsIDQ1NFxcKSBcXCggMzY0LCA0NjRcXCkgXFwpIiBcCi0rCQkicHJpbnQg YXIyXCgzOjQsNTo2LDRcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw1OjYsNFwpIiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXChcXCggODU0LCA5NTRcXCkgXFwoIDg2NCwgOTY0XFwpIFxcKSIg XAotKwkJInByaW50IGFyMlwoODosNTo2LDRcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCg6Miw1 OjYsNFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMTU0LCAyNTRcXCkgXFwoIDE2NCwg MjY0XFwpIFxcKSIgXAotKwkJInByaW50IGFyMlwoOjIsNTo2LDRcKSIKLSsKLSsjIFN0cmlkZSA+ IDEKLStnZGJfdGVzdCAicHJpbnQgYXIxXCgyOjY6MlwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBc XCgyLCA0LCA2XFwpIiBcCi0rCQkicHJpbnQgYXIxXCgyOjY6MlwpIgotK2dkYl90ZXN0ICJwcmlu dCBhcjJcKDI6NjoyLDM6NFwpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjMsIDQzLCA2 M1xcKSBcXCggMjQsIDQ0LCA2NFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjJcKDI6NjoyLDM6NFwp IgotK2dkYl90ZXN0ICJwcmludCBhcjJcKDI6NjoyLDNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0g XFwoMjMsIDQzLCA2M1xcKSIgXAotKwkJInByaW50IGFyMlwoMjo2OjIsM1wpIgotK2dkYl90ZXN0 ICJwcmludCBhcjNcKDI6NjoyLDM6NToyLDQ6NzozXCkiIFwKLSsJCSJcXCRcWzAtOVxdKyA9IFxc KFxcKCBcXCggMjM0LCA0MzQsIDYzNFxcKSBcXCggMjU0LCA0NTQsIDY1NFxcKVwKLSsJCSBcXCkg XFwoIFxcKCAyMzcsIDQzNywgNjM3XFwpIFxcKCAyNTcsIDQ1NywgNjU3XFwpIFxcKSBcXCkiIFwK LSsJCSJwcmludCBhcjNcKDI6NjoyLDM6NToyLDQ6NzozXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFy M1woMjo2OjIsNSw0Ojc6M1wpIiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjU0LCA0NTQs IDY1NFxcKSBcXCggMjU3LCA0NTcsIDY1N1xcKVwKLSsJCSBcXCkiIFwKLSsJCSJwcmludCBhcjNc KDI6NjoyLDUsNDo3OjNcKSIKLSsKLSsjIFN0cmlkZSA8IDAKLStnZGJfdGVzdCAicHJpbnQgYXIx XCg4OjI6LTJcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoOCwgNiwgNCwgMlxcKSIgXAotKwkJ InByaW50IGFyMVwoODoyOi0yXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFyMlwoODoyOi0yLDM6NFwp IiBcCi0rCQkiXFwkXFswLTlcXSsgPSBcXChcXCggODMsIDYzLCA0MywgMjNcXCkgXFwoIDg0LCA2 NCwgNDQsIDI0XFwpXAotKwkJIFxcKSIgXAotKwkJInByaW50IGFyMlwoODoyOi0yLDM6NFwpIgot K2dkYl90ZXN0ICJwcmludCBhcjJcKDI6NjoyLDNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwo MjMsIDQzLCA2M1xcKSIgXAotKwkJInByaW50IGFyMlwoMjo2OjIsM1wpIgotK2dkYl90ZXN0ICJw cmludCBhcjNcKDI6Myw3OjM6LTQsNDo3OjNcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IFxcKCAyNzQsIDM3NFxcKSBcXCggMjM0LCAzMzRcXCkgXFwpIFxcKFwKLSsJCSBcXCggMjc3LCAz NzdcXCkgXFwoIDIzNywgMzM3XFwpIFxcKSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6Myw3OjM6 LTQsNDo3OjNcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjY6Miw1LDc6NDotM1wpIiBcCi0r CQkiXFwkXFswLTlcXSsgPSBcXChcXCggMjU3LCA0NTcsIDY1N1xcKSBcXCggMjU0LCA0NTQsIDY1 NFxcKVwKLSsJCSBcXCkiIFwKLSsJCSJwcmludCBhcjNcKDI6NjoyLDUsNzo0Oi0zXCkiCi0rCi0r IyBUZXN0cyB3aXRoIG5lZ2F0aXZlIGFuZCBtaXhlZCBpbmRpY2VzCi0rZ2RiX3Rlc3QgInAgYXI0 XCgyOjQsIC0yOjEsIC0xNTotMTRcKSIgXAotKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAy NjEsIDM2MSwgNDYxXFwpIFxcKCAyNzEsIDM3MSwgNDcxXFwpXAotKwkJIFxcKCAyODEsIDM4MSwg NDgxXFwpIFxcKCAyOTEsIDM5MSwgNDkxXFwpIFxcKSBcXCggXFwoIDI2MixcCi0rCQkgMzYyLCA0 NjJcXCkgXFwoIDI3MiwgMzcyLCA0NzJcXCkgXFwoIDI4MiwgMzgyLCA0ODJcXCkgXFwoIDI5Mixc Ci0rCQkgMzkyLCA0OTJcXCkgXFwpIFxcKSIgXAotKwkJInByaW50IGFyNCgyOjQsIC0yOjEsIC0x NTotMTQpIgotKwotK2dkYl90ZXN0ICJwIGFyNFwoNywtNjoyOjMsLTdcKSIgXAotKyAgICAgICAg ICAgICAgICAiXFwkXFswLTlcXSsgPSBcXCg3MjksIDc1OSwgNzg5XFwpIiBcCi0rICAgICAgICAg ICAgICAgICJwcmludCBhcjQoNywtNjoyOjMsLTcpIgotKwotK2dkYl90ZXN0ICJwIGFyNFwoOToy Oi0yLCAtNjoyOjMsIC02Oi0xNTotM1wpIiBcCi0rICAgICAgICAgICAgICAgICJcXCRcWzAtOVxd KyA9IFxcKFxcKCBcXCggOTMwLCA3MzAsIDUzMCwgMzMwXFwpIFxcKCA5NjAsIDc2MCxcCi0rCQkg NTYwLCAzNjBcXCkgXFwoIDk5MCwgNzkwLCA1OTAsIDM5MFxcKSBcXCkgXFwoIFxcKCA5MjcsIDcy NyxcCi0rCQkgNTI3LCAzMjdcXCkgXFwoIDk1NywgNzU3LCA1NTcsIDM1N1xcKSBcXCggOTg3LCA3 ODcsIDU4NyxcCi0rCQkgMzg3XFwpIFxcKSBcXCggXFwoIDkyNCwgNzI0LCA1MjQsIDMyNFxcKSBc XCggOTU0LCA3NTQsIDU1NCxcCi0rCQkgMzU0XFwpIFxcKCA5ODQsIDc4NCwgNTg0LCAzODRcXCkg XFwpIFxcKCBcXCggOTIxLCA3MjEsIDUyMSxcCi0rCQkgMzIxXFwpIFxcKCA5NTEsIDc1MSwgNTUx LCAzNTFcXCkgXFwoIDk4MSwgNzgxLCA1ODEsIDM4MVxcKSBcXClcCi0rCQkgXFwpIiBcCi0rICAg ICAgICAgICAgICAgICJwcmludCBhcjQoOToyOi0yLCAtNjoyOjMsIC02Oi0xNTotMykiCi0rCi0r Z2RiX3Rlc3QgInAgYXI0XCg6LDosOlwpIiBcCi0rICAgICAgICAgICAgICAgICJcXCRcWzAtOVxd KyA9IFxcKFxcKCBcXCggMTExLCAyMTEsIDMxMSwgNDExLCA1MTEsIDYxMSwgNzExLFwKLSsJCSA4 MTEsIC4qIiBcCi0rICAgICAgICAgICAgICAgICJwcmludCBhcjQoOiw6LDopIgotKwotKyMgUHJv dm9rZSBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHVzZXIgaW5wdXQKLStnZGJfdGVzdCAicHJpbnQg YXIxXCgwOjRcKSIgXAotKwkJInByb3ZpZGVkIGJvdW5kXFwoc1xcKSBvdXRzaWRlIGFycmF5IGJv dW5kXFwoc1xcKSIgXAotKwkJInByaW50IGFyMVwoMDo0XCkiCi0rZ2RiX3Rlc3QgInByaW50IGFy MVwoODoxMlwpIiBcCi0rCQkicHJvdmlkZWQgYm91bmRcXChzXFwpIG91dHNpZGUgYXJyYXkgYm91 bmRcXChzXFwpIiBcCi0rCQkicHJpbnQgYXIxXCg4OjEyXCkiCi0rZ2RiX3Rlc3QgInByaW50IGFy MVwoODoyOlwpIiBcCi0rCQkiQSBzeW50YXggZXJyb3IgaW4gZXhwcmVzc2lvbiwgbmVhciBgXFwp Jy4iIFwKLSsJCSJwcmludCBhcjFcKDg6MjpcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjI6 MlwpIiBcCi0rCQkiV3JvbmcgdmFsdWUgcHJvdmlkZWQgZm9yIHN0cmlkZSBhbmQgYm91bmRhcmll cyIgXAotKwkJInByaW50IGFyMVwoODoyOjJcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIxXCgyOjg6 LTJcKSIgXAotKwkJIldyb25nIHZhbHVlIHByb3ZpZGVkIGZvciBzdHJpZGUgYW5kIGJvdW5kYXJp ZXMiIFwKLSsJCSJwcmludCBhcjFcKDI6ODotMlwpIgotK2dkYl90ZXN0ICJwcmludCBhcjFcKDI6 NzowXCkiIFwKLSsJCSJTdHJpZGUgbXVzdCBub3QgYmUgMCIgXAotKwkJInByaW50IGFyMVwoMjo3 OjBcKSIKLStnZGJfdGVzdCAicHJpbnQgYXIxXCgzOjdcKSA9IDQyIiBcCi0rCQkiSW52YWxpZCBj YXN0LiIgXAotKwkJIkFzc2lnbm1lbnQgb2YgdmFsdWUgdG8gc3ViYXJyYXkiCi1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5MCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi5mMjJmY2JlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZjkwCi1AQCAtMCwwICsxLDU1IEBACi0rISBD b3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSshCi0rISBDb250 cmlidXRlZCBieSBJbnRlbCBDb3JwLiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgot KyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot KyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3Vicm91dGluZSBzdWIKLSsg IGludGVnZXIsIGRpbWVuc2lvbig5KSA6OiBhcjEKLSsgIGludGVnZXIsIGRpbWVuc2lvbig5LDkp IDo6IGFyMgotKyAgaW50ZWdlciwgZGltZW5zaW9uKDksOSw5KSA6OiBhcjMKLSsgIGludGVnZXIs IGRpbWVuc2lvbigxMCwtNzozLCAtMTU6LTUpIDo6IGFyNAotKyAgaW50ZWdlciA6OiBpLGosawot KwotKyAgYXIxID0gMQotKyAgYXIyID0gMQotKyAgYXIzID0gMQotKyAgYXI0ID0gNAotKwotKyAg ISBSZXN1bHRpbmcgYXJyYXkgYXIzIGxvb2tzIGxpa2UgKCgoIDExMSwgMTEyLCAxMTMsIDExNCwu Li4pKSkKLSsgIGRvIGkgPSAxLCA5LCAxCi0rICAgIGFyMShpKSA9IGkKLSsgICAgZG8gaiA9IDEs IDksIDEKLSsgICAgICBhcjIoaSxqKSA9IGkqMTAgKyBqCi0rICAgICAgZG8gayA9IDEsIDksIDEK LSsgICAgICAgIGFyMyhpLGosaykgPSBpKjEwMCArIGoqMTAgKyBrCi0rICAgICAgZW5kIGRvCi0r ICAgIGVuZCBkbwotKyAgZW5kIGRvCi0rCi0rICBkbyBpID0gMSwgMTAsIDEKLSsgICAgZG8gaiA9 IC03LCAzLCAxCi0rICAgICAgZG8gayA9IC0xNSwgLTUsIDEKLSsgICAgICAgIGFyNChpLGosaykg PSBpKjEwMCArIChqKzgpKjEwICsgKGsrMTYpCi0rICAgICAgZW5kIGRvCi0rICAgIGVuZCBkbwot KyAgZW5kIGRvCi0rCi0rICBhcjEoMSkgPSAxMSAgIUJQMQotKyAgcmV0dXJuCi0rZW5kCi0rCi0r cHJvZ3JhbSB0ZXN0cHJvZwotKyAgY2FsbCBzdWIKLStlbmQKLS0tIAotMi41LjUKLQoKZGlmZiAt LWdpdCBhL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtN29mNy5wYXRj aAppbmRleCA3MjZjMzQxLi4zMTBjYTYwIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLTdvZjcu cGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCkBAIC01MiwxMSArNTIsMTEgQEAg Q2hhbmdlLUlkOiBJN2Q3ZjQ3YzdhNDkwMGE3ZmRiNTExMDIwMzI0NTViNTNkNjBlNjBkNwogIGNy ZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4 cAogIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp bmdzLmY5MAogCi1kaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFk LmMKLWluZGV4IDY2NThhMzguLjY3OGRhOGYgMTAwNjQ0Ci0tLS0gYS9nZGIvZHdhcmYycmVhZC5j Ci0rKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMTc2NCw3ICsxNzY0LDggQEAgc3RhdGljIHZv aWQgcmVhZF9zaWduYXR1cmVkX3R5cGUgKHN0cnVjdCBzaWduYXR1cmVkX3R5cGUgKik7CitJbmRl eDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2R3YXJmMnJlYWQuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA4LTI1IDE2 OjA4OjE3LjM5NzcxNDkzNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9kd2Fy ZjJyZWFkLmMJMjAxNi0wOC0yNSAxNjowOTo1Ni43MDM1ODA1OTcgKzAyMDAKK0BAIC0xNzY0LDcg KzE3NjQsOCBAQAogIAogIHN0YXRpYyBpbnQgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCiAgCQkJCSBzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UsCkBAIC02Niw3ICs2Niw3IEBAIGluZGV4IDY2NThhMzguLjY3OGRhOGYg MTAwNjQ0CiAgCiAgLyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCiAgCi1AQCAtMTE0 MzcsNyArMTE0MzgsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTQ0Niw3ICsxMTQ0Nyw3IEBACiAgICAgIHsKICAg ICAgICBuZXdvYmotPnN0YXRpY19saW5rCiAgCT0gWE9CTkVXICgmb2JqZmlsZS0+b2JqZmlsZV9v YnN0YWNrLCBzdHJ1Y3QgZHluYW1pY19wcm9wKTsKQEAgLTc1LDE2ICs3NSwxNiBAQCBpbmRleCA2 NjU4YTM4Li42NzhkYThmIDEwMDY0NAogICAgICB9CiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9 ICZsb2NhbF9zeW1ib2xzOwotQEAgLTE0NDk1LDI5ICsxNDQ5Niw5NCBAQCByZWFkX3RhZ19zdHJp bmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTE0NTEyLDI5ICsxNDUxMyw5NCBAQAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRf b2JqZmlsZV9hcmNoIChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlw ZSwgKmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwog LSAgdW5zaWduZWQgaW50IGxlbmd0aDsKICsgIHVuc2lnbmVkIGludCBsZW5ndGggPSBVSU5UX01B WDsKLSsKKyAKICsgIGluZGV4X3R5cGUgPSBvYmpmaWxlX3R5cGUgKG9iamZpbGUpLT5idWlsdGlu X2ludDsKICsgIHJhbmdlX3R5cGUgPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsIGlu ZGV4X3R5cGUsIDEsIGxlbmd0aCk7Ci0gCisrCiArICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3Ro IGlzIGRlZmluZWQsIHRoZSBsZW5ndGggaXMgc3RvcmVkIGluIG1lbW9yeS4gICovCiAgICBhdHRy ID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfc3RyaW5nX2xlbmd0aCwgY3UpOwogICAgaWYgKGF0 dHIpCkBAIC0xODEsNyArMTgxLDcgQEAgaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKICAg IGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZu LCBnZGJhcmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlw ZSwgcmFuZ2VfdHlwZSk7CiAgCi1AQCAtMTQ4NDcsNyArMTQ5MTMsOCBAQCByZWFkX2Jhc2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0ODY0 LDcgKzE0OTMwLDggQEAKICAKICBzdGF0aWMgaW50CiAgYXR0cl90b19keW5hbWljX3Byb3AgKGNv bnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLApAQCAtMTkx LDcgKzE5MSw3IEBAIGluZGV4IDY2NThhMzguLjY3OGRhOGYgMTAwNjQ0CiAgewogICAgc3RydWN0 IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0b247CiAgICBzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFj ayA9ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrOwotQEAgLTE0ODU3LDE0ICsxNDkyNCwz MyBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwg c3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtMTQ4NzQsMTQgKzE0OTQxLDMzIEBACiAgCiAgICBp ZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICAgICAgewpAQCAtMjI5LDcgKzIyOSw3IEBA IGluZGV4IDY2NThhMzguLjY3OGRhOGYgMTAwNjQ0CiAgICAgIH0KICAgIGVsc2UgaWYgKGF0dHJf Zm9ybV9pc19yZWYgKGF0dHIpKQogICAgICB7Ci1AQCAtMTQ4OTcsOCArMTQ5ODMsMjggQEAgYXR0 cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBk aWVfaW5mbyAqZGllLAorQEAgLTE0OTE0LDggKzE1MDAwLDI4IEBACiAgCQliYXRvbiA9IFhPQk5F VyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+cmVm ZXJlbmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQliYXRv bi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwpAQCAtMjYwLDcgKzI2MCwxNSBAQCBpbmRl eCA2NjU4YTM4Li42NzhkYThmIDEwMDY0NAogIAkJcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwog IAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAJCWdkYl9hc3NlcnQgKHByb3AtPmRhdGEu YmF0b24gIT0gTlVMTCk7Ci1AQCAtMTUwMDgsMTcgKzE1MTE0LDE3IEBAIHJlYWRfc3VicmFuZ2Vf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE1 MDI3LDI0ICsxNTEzMywyNCBAQAorIAorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2J5dGVfc3RyaWRlLCBjdSk7CisgICBpZiAoYXR0cikKKy0gICAgaWYgKCFhdHRyX3RvX2R5bmFt aWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnN0cmlkZSkpCisrICAgIGlmICghYXR0cl90b19keW5h bWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZzdHJpZGUsIE5VTEwsIDApKQorICAgICAgICAgY29t cGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJNaXNzaW5nIERXX0FUX2J5dGVfc3RyaWRl ICIKKyAgICAgICAgICAgICAgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAor ICAgICAgICAgICAgICBkaWUtPm9mZnNldC5zZWN0X29mZiwgb2JqZmlsZV9uYW1lIChjdS0+b2Jq ZmlsZSkpOwogIAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvd2VyX2JvdW5k LCBjdSk7CiAgICBpZiAoYXR0cikKQEAgLTI4MSw3ICsyODksNyBAQCBpbmRleCA2NjU4YTM4Li42 NzhkYThmIDEwMDY0NAogIAl7CiAgCSAgLyogSWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0aGUg ZmluYWwgY2FsY3VsYXRpb24gaGVyZS4gICovCiAgCSAgaWYgKGxvdy5raW5kID09IFBST1BfQ09O U1QgJiYgaGlnaC5raW5kID09IFBST1BfQ09OU1QpCi1AQCAtMjIzODksNyArMjI0OTUsNyBAQCBz ZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjI0MTYsNyArMjI1MjIsNyBAQAogICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2FsbG9jYXRlZCwgY3UpOwogICAgaWYgKGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikpCiAgICAgIHsKQEAgLTI5MCw3ICsyOTgsNyBAQCBpbmRleCA2NjU4YTM4 Li42NzhkYThmIDEwMDY0NAogICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FU RUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOwogICAgICB9CiAgICBlbHNlIGlmIChhdHRyICE9IE5V TEwpCi1AQCAtMjI0MDQsNyArMjI1MTAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjI0 MzEsNyArMjI1MzcsNyBAQAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fzc29j aWF0ZWQsIGN1KTsKICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogICAgICB7CkBA IC0yOTksNyArMzA3LDcgQEAgaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKICAgICAgICAg IGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7 CiAgICAgIH0KICAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjQxNyw3ICsyMjUyMyw3 IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0yMjQ0NCw3ICsyMjU1MCw3IEBACiAgCiAgICAv KiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CkBAIC0zMDgsMTEg KzMxNiwxMSBAQCBpbmRleCA2NjU4YTM4Li42NzhkYThmIDEwMDY0NAogICAgICBhZGRfZHluX3By b3AgKERZTl9QUk9QX0RBVEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9iamZpbGUpOwogIAogICAg aWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQotZGlmZiAtLWdp dCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKLWluZGV4IGI1M2U2NDkuLjBhYTkx MTMgMTAwNjQ0Ci0tLS0gYS9nZGIvZ2RidHlwZXMuYwotKysrIGIvZ2RiL2dkYnR5cGVzLmMKLUBA IC0xODQxLDYgKzE4NDEsNyBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBl ICp0eXBlLCBpbnQgdG9wX2xldmVsKQorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9n ZGJ0eXBlcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIv Z2RidHlwZXMuYwkyMDE2LTA4LTI1IDE2OjA4OjE3LjM5NzcxNDkzNiArMDIwMAorKysrIGdkYi03 LjExLjkwLjIwMTYwODA3L2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDgtMjUgMTY6MDk6MTEuNjIzMTg3 NjI2ICswMjAwCitAQCAtMTg1MSw2ICsxODUxLDcgQEAKICAgICAgICB9CiAgCiAgICAgIGNhc2Ug VFlQRV9DT0RFX0FSUkFZOgpAQCAtMzIwLDcgKzMyOCw3IEBAIGluZGV4IGI1M2U2NDkuLjBhYTkx MTMgMTAwNjQ0CiAgICAgICAgewogIAlnZGJfYXNzZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09 IDEpOwogIAotQEAgLTE5NDUsNyArMTk0Niw4IEBAIHJlc29sdmVfZHluYW1pY19hcnJheSAoc3Ry dWN0IHR5cGUgKnR5cGUsCitAQCAtMTk2NCw3ICsxOTY1LDggQEAKICAgIHN0cnVjdCB0eXBlICph cnlfZGltOwogICAgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKICAKQEAgLTMzMCw3ICszMzgs NyBAQCBpbmRleCBiNTNlNjQ5Li4wYWE5MTEzIDEwMDY0NAogIAogICAgdHlwZSA9IGNvcHlfdHlw ZSAodHlwZSk7CiAgCi1AQCAtMTk3MCwxMyArMTk3MiwxNyBAQCByZXNvbHZlX2R5bmFtaWNfYXJy YXkgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTE5ODksMTMgKzE5OTEsMTcgQEAKICAKICAgIGFy eV9kaW0gPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlwZSkpOwogIApA QCAtMzUxLDcgKzM1OSw3IEBAIGluZGV4IGI1M2U2NDkuLjBhYTkxMTMgMTAwNjQ0CiAgfQogIAog IC8qIFJlc29sdmUgZHluYW1pYyBib3VuZHMgb2YgbWVtYmVycyBvZiB0aGUgdW5pb24gVFlQRSB0 byBzdGF0aWMKLUBAIC0yMTgxLDYgKzIxODcsNyBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRl cm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMjIwMCw2ICsyMjA2LDcgQEAKICAgCSAgYnJl YWs7CiAgCiAgCWNhc2UgVFlQRV9DT0RFX0FSUkFZOgpAQCAtMzU5LDExICszNjcsMTAgQEAgaW5k ZXggYjUzZTY0OS4uMGFhOTExMyAxMDA2NDQKICAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9k eW5hbWljX2FycmF5ICh0eXBlLCBhZGRyX3N0YWNrKTsKICAJICBicmVhazsKICAKLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMC4uNDg0ZmRjYgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZXhwCTIwMTYtMDgtMjUgMTY6MDk6MTEuNjI0MTg3NjM1ICswMjAwCiBAQCAtMCwwICsxLDEwMyBA QAogKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC00NjgsMTEgKzQ3NSwxMCBAQCBpbmRleCAwMDAwMDAwLi40ODRmZGNiCiArCSAgICBwYXNzICR0 ZXN0CiArICAgIH0KICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaW5ncy5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5 MAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjNjMjI3MzUKLS0tLSAvZGV2 L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaW5ncy5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE2LTA4LTI1IDE2OjA5OjExLjYyNDE4NzYz NSArMDIwMAogQEAgLTAsMCArMSwzOSBAQAogKyEgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtNTEzLDYgKzUxOSwzIEBAIGluZGV4IDAwMDAwMDAu LjNjMjI3MzUKICsgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCiArICBsID0gYXNzb2NpYXRlZCh2YXJf Y2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCiArZW5kIHBy b2dyYW0gdmxhX3N0cmluZ3MKLS0tIAotMi43LjQKLQoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50 ZWwtYnJhbmNoLWZpeC1zdHJpZGUtMW9mMi5wYXRjaCBiL2dkYi12bGEtaW50ZWwtYnJhbmNoLWZp eC1zdHJpZGUtMW9mMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m NGM2NjcwCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC1icmFuY2gtZml4LXN0cmlk ZS0xb2YyLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE2LTA4L21zZzAwMjc4Lmh0bWwKK1N1YmplY3Q6IFJlOiBbVjQgMDAvMjFd IEZvcnRyYW4gZHluYW1pYyBhcnJheSBzdXBwb3J0CisKKworLS1YMWJPSjNLN0RKNVlrQnJUCitD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9z aXRpb246IGlubGluZQorCitPbiBUaHUsIDI1IEF1ZyAyMDE2IDE5OjIyOjE3ICswMjAwLCBKYW4g S3JhdG9jaHZpbCB3cm90ZToKKz4gSSBzZWUgdGhlIHNvdXJjZSBoYW5kbGVzIG5lZ2F0aXZlIHN0 aWRlIHNwZWNpYWxseS4gIFBhcnRpY3VsYXJseSB0aGUgY29tbWVudAorPiBoZXJlIGRvZXMgbm90 IGV4cGxhaW4gdGhlIGNvZGUgaXQgY29tbWVudHM6CisKK1dpdGggdGhlIGF0dGFjaGVkIHBhdGNo IGRpc2FibGluZyB0aGVzZSBjYXNlcyBzdGlsbCB0aGUgc3VwcGxpZWQKK2dkYi5mb3J0cmFuL3N0 YXRpYy1hcnJheXMuZXhwIGFuZCBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cCBQQVNTIChvbiBG ZWRvcmEgMjQKK3g4Nl82NCkuCisKKworSmFuCisKKy0tWDFiT0ozSzdESjVZa0JyVAorQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9u OiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2Ri L2dkYnR5cGVzLmMKK2luZGV4IDg4ODAxYWMuLjY5NTgyNWEgMTAwNjQ0CistLS0gYS9nZGIvZ2Ri dHlwZXMuYworKysrIGIvZ2RiL2dkYnR5cGVzLmMKK0BAIC0yMTk3LDEyICsyMTk3LDE0IEBAIHJl c29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgICAgewor ICAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChyZXNvbHZl ZF90eXBlKTsKKyAKKysjaWYgMCAvLyBGZWRvcmE6IGdkYi12bGEtaW50ZWwtYnJhbmNoLWZpeC1z dHJpZGUucGF0Y2gKKyAgICAgICAvKiBBZGp1c3QgdGhlIGRhdGEgbG9jYXRpb24gd2l0aCB0aGUg dmFsdWUgb2YgYnl0ZSBzdHJpZGUgaWYgc2V0LCB3aGljaAorICAgICAgICAgIGNhbiBkZXNjcmli ZSB0aGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHN1Y2Nlc3NpdmUgZWxlbWVudHMgYWxvbmcgdGhlCisg ICAgICAgICAgZGltZW5zaW9uLiAgKi8KKyAgICAgICBpZiAoVFlQRV9CWVRFX1NUUklERSAocmFu Z2VfdHlwZSkgPCAwKQorICAgICAgICAgdmFsdWUgKz0gKFRZUEVfSElHSF9CT1VORCAocmFuZ2Vf dHlwZSkgLSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlwZSkpCisgICAgICAgICAgICAgICAgICAg KiBUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBlKTsKKysjZW5kaWYKKyAKKyAgICAgICBUWVBF X0RBVEFfTE9DQVRJT05fQUREUiAocmVzb2x2ZWRfdHlwZSkgPSB2YWx1ZTsKKyAgICAgICBUWVBF X0RBVEFfTE9DQVRJT05fS0lORCAocmVzb2x2ZWRfdHlwZSkgPSBQUk9QX0NPTlNUOworZGlmZiAt LWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKK2luZGV4IDkwOTM5NjkuLmVj YTc5OTIgMTAwNjQ0CistLS0gYS9nZGIvdmFsYXJpdGguYworKysrIGIvZ2RiL3ZhbGFyaXRoLmMK K0BAIC0xOTksMTIgKzE5OSwxNCBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2 YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKQorIAorICAgaWYgKGVs dF9zdHJpZGUgPiAwKQorICAgICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRlOworKyNpZiAwIC8vIEZl ZG9yYTogZ2RiLXZsYS1pbnRlbC1icmFuY2gtZml4LXN0cmlkZS5wYXRjaAorICAgZWxzZSBpZiAo ZWx0X3N0cmlkZSA8IDApCisgICAgIHsKKyAgICAgICBpbnQgb2ZmcyA9IChlbHRfb2ZmcyArIDEp ICogZWx0X3N0cmlkZTsKKyAKKyAgICAgICBlbHRfb2ZmcyA9IFRZUEVfTEVOR1RIIChhcnJheV90 eXBlKSArIG9mZnM7CisgICAgIH0KKysjZW5kaWYKKyAgIGVsc2UKKyAgICAgZWx0X29mZnMgKj0g ZWx0X3NpemU7CisgCisKKy0tWDFiT0ozSzdESjVZa0JyVC0tCisKCmRpZmYgLS1naXQgYS9nZGIt dmxhLWludGVsLWJyYW5jaC1maXgtc3RyaWRlLTJvZjIucGF0Y2ggYi9nZGItdmxhLWludGVsLWJy YW5jaC1maXgtc3RyaWRlLTJvZjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOTg0MGQwZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtYnJhbmNoLWZp eC1zdHJpZGUtMm9mMi5wYXRjaApAQCAtMCwwICsxLDkyOSBAQAoraHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDgvbXNnMDAyNzQuaHRtbAorU3ViamVjdDogUmU6IFtW NCAwMC8yMV0gRm9ydHJhbiBkeW5hbWljIGFycmF5IHN1cHBvcnQKKworCistLVZiSmtuOVl4QnZu dUNINUoKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVu dC1EaXNwb3NpdGlvbjogaW5saW5lCisKK09uIFR1ZSwgMjMgQXVnIDIwMTYgMTU6MzQ6MDkgKzAy MDAsIEJlcm5oYXJkIEhlY2tlbCB3cm90ZToKKz4gY3JlYXRlZCBhIGJyYW5jaCB3aXRoIGFsbCBz dHJpZGUgcGF0Y2hlcy4KKwordXNlcnMvYmhlY2tlbC9mb3J0cmFuLXN0cmlkZXMKKzJjMzkyZDQx YTNmMmUzOGRlZWI5ZGI1YjdhOTNjYTQ1NjgyYmJlM2IKKworPiBJIGRvbid0IHNlZSByZWdyZXNz aW9uIG9uIFJINy4xLCBnY2MgNC44LjMtOQorCitJIHNlZSBhIHJlZ3Jlc3Npb24gZm9yIDMyLWJp dCB0YXJnZXRzICh4ODZfNjQtbTMyIG9yIG5hdGl2ZSBpNjg2KQorb24gRmVkb3JhIDI0IChnY2Mt Z2ZvcnRyYW4tNi4xLjEtMy5mYzI0Lng4Nl82NCkuICBJIGRvIG5vdCBzZWUgdGhlIHJlZ3Jlc3Np b24KK29uIENlbnRPUy03LjIgKHg4Nl82NC1tMzIpLgorCitwcmludCBwdmxhXk0KK3ZhbHVlIHJl cXVpcmVzIDQyOTQ5NjcyODggYnl0ZXMsIHdoaWNoIGlzIG1vcmUgdGhhbiBtYXgtdmFsdWUtc2l6 ZV5NCisoZ2RiKSBGQUlMOiBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cDogcHJpbnQgc2luZ2xl LWVsZW1lbnQKKworSSBoYXZlIGF0dGFjaGVkIGEgZml4LgorCitJdCBpcyBiZWNhdXNlOgorICAg IDwxMTU+ICAgRFdfQVRfbG93ZXJfYm91bmQgOiA0IGJ5dGUgYmxvY2s6IDk3IDIzIDEwIDYgICAg ICAgIChEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzOyBEV19PUF9wbHVzX3Vjb25zdDogMTY7IERX X09QX2RlcmVmKQorICAgIDwxMWE+ICAgRFdfQVRfdXBwZXJfYm91bmQgOiA0IGJ5dGUgYmxvY2s6 IDk3IDIzIDE0IDYgICAgICAgIChEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzOyBEV19PUF9wbHVz X3Vjb25zdDogMjA7IERXX09QX2RlcmVmKQorICAgIDwxMWY+ICAgRFdfQVRfYnl0ZV9zdHJpZGUg OiA2IGJ5dGUgYmxvY2s6IDk3IDIzIGMgNiAzNCAxZSAgIChEV19PUF9wdXNoX29iamVjdF9hZGRy ZXNzOyBEV19PUF9wbHVzX3Vjb25zdDogMTI7IERXX09QX2RlcmVmOyBEV19PUF9saXQ0OyBEV19P UF9tdWwpCisJRFdfQVRfbG93ZXJfYm91bmQgPT0gMQorCURXX0FUX3VwcGVyX2JvdW5kID09IDEK KwlEV19BVF9ieXRlX3N0cmlkZSA9PSAoLTIpICogNCA9PSAtOAorCitJIGFtIG5vdCBzdXJlIGlm IGdmb3J0cmFuIGlzIHJlYWxseSB3cm9uZyBvciBub3QgYnV0IGEgc3RyaWRlIGRvZXMgbm90IG1h a2UKK3NlbnNlIGZvciBtZSBmb3IgYSBzaW5nbGUgcm93IGFycmF5LgorCitBdHRhY2hpbmcgYWxz byBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCBmcm9tIHlvdXIgYnJhbmNoIGJ1aWx0IHdpdGgK K2djYy1nZm9ydHJhbi02LjEuMS0zLmZjMjQueDg2XzY0IG9uIEZlZG9yYSAyNCB4ODZfNjQgaW4g LW0zMiBtb2RlLgorCitCZXNpZGVzIHRoYXQgSSBzZWUgb24gYWxsIGFyY2hzCisJLUZBSUw6IGdk Yi5wYXNjYWwvYXJyYXlzLmV4cDogUHJpbnQgZHluYW1pYyBhcnJheSBvZiBzdHJpbmcKKwkrRkFJ TDogZ2RiLnBhc2NhbC9hcnJheXMuZXhwOiBQcmludCBkeW5hbWljIGFycmF5IG9mIHN0cmluZyAo R0RCIGludGVybmFsIGVycm9yKQorYnV0IHRoYXQgdGVzdGNhc2UgaXMgb25seSBpbiBGZWRvcmEg YW5kIHRoZSBQYXNjYWwgKGZwYykgc3VwcG9ydCBoYXMgYmVlbiBub3QKK3dlbGwgbWFpbnRhaW5l ZCBzbyBmYXIgc28gSSBhbSBPSyB3aXRoIHRoYXQuCisKKworVGhhbmtzLAorSmFuCisKKy0tVmJK a245WXhCdm51Q0g1SgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lp CitDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZGlmZiAtLWdpdCBh L2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKK2luZGV4IDg4ODAxYWMuLjFmYmY2OWEg MTAwNjQ0CistLS0gYS9nZGIvZ2RidHlwZXMuYworKysrIGIvZ2RiL2dkYnR5cGVzLmMKK0BAIC0x MTAzLDEwICsxMTAzLDEyIEBAIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlIChzdHJ1Y3Qg dHlwZSAqcmVzdWx0X3R5cGUsCisgICAgICAgaWYgKGhpZ2hfYm91bmQgPCBsb3dfYm91bmQpCisg CVRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPSAwOworICAgICAgIGVsc2UgaWYgKGJ5dGVfc3Ry aWRlID4gMCkKKy0JVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9IGJ5dGVfc3RyaWRlICogKGhp Z2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKKysJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9 IChieXRlX3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kKQorKwkJCQkgICAgICsgVFlQ RV9MRU5HVEggKGVsZW1lbnRfdHlwZSkpOworICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAw KQorIAlUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID0KKy0JICAoYml0X3N0cmlkZSAqIChoaWdo X2JvdW5kIC0gbG93X2JvdW5kICsgMSkgKyA3KSAvIDg7CisrCSAgKChiaXRfc3RyaWRlICogKGhp Z2hfYm91bmQgLSBsb3dfYm91bmQpICsgNykgLyA4CisrCSAgICsgVFlQRV9MRU5HVEggKGVsZW1l bnRfdHlwZSkpOworICAgICAgIGVsc2UKKyAJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9Cisg CSAgVFlQRV9MRU5HVEggKGVsZW1lbnRfdHlwZSkgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCAr IDEpOworCistLVZiSmtuOVl4QnZudUNINUoKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9 InZsYS1zdHJpZGUucyIKKworCS5maWxlCSJ2bGEtc3RyaWRlLmY5MCIKKwkudGV4dAorLkx0ZXh0 MDoKKwkuc2VjdGlvbgkucm9kYXRhCisJLmFsaWduIDQKKy5MQzA6CisJLnN0cmluZwkiSW50ZWdl ciBvdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIHRoZSBhbW91bnQgb2YgbWVtb3J5IHRvIGFsbG9j YXRlIgorLkxDMToKKwkuc3RyaW5nCSJ2bGEiCisJLmFsaWduIDQKKy5MQzI6CisJLnN0cmluZwki QXR0ZW1wdGluZyB0byBhbGxvY2F0ZSBhbHJlYWR5IGFsbG9jYXRlZCB2YXJpYWJsZSAnJXMnIgor CS5hbGlnbiA0CisuTEMzOgorCS5zdHJpbmcJIkF0IGxpbmUgMjAgb2YgZmlsZSBnZGIuZm9ydHJh bi92bGEtc3RyaWRlLmY5MCIKKwkuYWxpZ24gNAorLkxDNDoKKwkuc3RyaW5nCSJBbGxvY2F0aW9u IHdvdWxkIGV4Y2VlZCBtZW1vcnkgbGltaXQiCisJLnRleHQKKwkudHlwZQlNQUlOX18sIEBmdW5j dGlvbgorTUFJTl9fOgorLkxGQjA6CisJLmZpbGUgMSAiZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5m OTAiCisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoxNgorCS5sb2MgMSAxNiAwCisJLmNm aV9zdGFydHByb2MKKyMgQkxPQ0sgMiBzZXE6MAorIyBQUkVEOiBFTlRSWSAoRkFMTFRIUlUpCisJ cHVzaGwJJWVicAorCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAorCS5jZmlfb2Zmc2V0IDUsIC04CisJ bW92bAklZXNwLCAlZWJwCisJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIDUKKwlwdXNobAklZWRpCisJ cHVzaGwJJWVzaQorCXB1c2hsCSVlYngKKwlzdWJsCSQ2MCwgJWVzcAorCS5jZmlfb2Zmc2V0IDcs IC0xMgorCS5jZmlfb2Zmc2V0IDYsIC0xNgorCS5jZmlfb2Zmc2V0IDMsIC0yMAorCSMgZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5mOTA6MTcKKwkubG9jIDEgMTcgMAorCW1vdmwJJDAsIC03MiglZWJw KQorLkxCQjI6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMAorCS5sb2MgMSAyMCAw CisJbW92bAkkMCwgJWVheAorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMyAoRkFMTFRIUlUp IDQKKwlqZQkuTDIKKyMgQkxPQ0sgMyBzZXE6MQorIyBQUkVEOiAyIChGQUxMVEhSVSkKKwkjIGdk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjIwCisJLmxvYyAxIDIwIDAgaXNfc3RtdCAwIGRpc2Ny aW1pbmF0b3IgMQorCXN1YmwJJDEyLCAlZXNwCisJcHVzaGwJJC5MQzAKKyMgU1VDQzoKKwljYWxs CV9nZm9ydHJhbl9ydW50aW1lX2Vycm9yCisjIEJMT0NLIDQgc2VxOjIKKyMgUFJFRDogMgorLkwy OgorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjAKKwkubG9jIDEgMjAgMCBkaXNjcmlt aW5hdG9yIDIKKwltb3ZsCS03MiglZWJwKSwgJWVheAorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VD QzogNSAoRkFMTFRIUlUpIDYKKwlqZQkuTDMKKyMgQkxPQ0sgNSBzZXE6MworIyBQUkVEOiA0IChG QUxMVEhSVSkKKwkjIGdkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjIwCisJLmxvYyAxIDIwIDAg ZGlzY3JpbWluYXRvciAzCisJc3VibAkkNCwgJWVzcAorCXB1c2hsCSQuTEMxCisJcHVzaGwJJC5M QzIKKwlwdXNobAkkLkxDMworIyBTVUNDOgorCWNhbGwJX2dmb3J0cmFuX3J1bnRpbWVfZXJyb3Jf YXQKKyMgQkxPQ0sgNiBzZXE6NAorIyBQUkVEOiA0CisuTDM6CisJIyBnZGIuZm9ydHJhbi92bGEt c3RyaWRlLmY5MDoyMAorCS5sb2MgMSAyMCAwIGRpc2NyaW1pbmF0b3IgNAorCXN1YmwJJDEyLCAl ZXNwCisJcHVzaGwJJDQwCisJY2FsbAltYWxsb2MKKwlhZGRsCSQxNiwgJWVzcAorCW1vdmwJJWVh eCwgLTcyKCVlYnApCisJbW92bAktNzIoJWVicCksICVlYXgKKwl0ZXN0bAklZWF4LCAlZWF4Cisj IFNVQ0M6IDcgKEZBTExUSFJVKSA4CisJam5lCS5MNAorIyBCTE9DSyA3IHNlcTo1CisjIFBSRUQ6 IDYgKEZBTExUSFJVKQorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjAKKwkubG9jIDEg MjAgMCBkaXNjcmltaW5hdG9yIDUKKwlzdWJsCSQxMiwgJWVzcAorCXB1c2hsCSQuTEM0CisjIFNV Q0M6CisJY2FsbAlfZ2ZvcnRyYW5fb3NfZXJyb3IKKyMgQkxPQ0sgOCBzZXE6NgorIyBQUkVEOiA2 CisuTDQ6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMAorCS5sb2MgMSAyMCAwIGRp c2NyaW1pbmF0b3IgNgorCW1vdmwJJDI2NSwgLTY0KCVlYnApCisJbW92bAkkMSwgLTU2KCVlYnAp CisJbW92bAkkMTAsIC01MiglZWJwKQorCW1vdmwJJDEsIC02MCglZWJwKQorCW1vdmwJJC0xLCAt NjgoJWVicCkKKy5MQkIzOgorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjEKKwkubG9j IDEgMjEgMCBpc19zdG10IDEgZGlzY3JpbWluYXRvciA2CisJbW92bAktNzIoJWVicCksICVlZHgK Kwltb3ZsCS02OCglZWJwKSwgJWVzaQorCW1vdmwJLTU2KCVlYnApLCAlZWJ4CisuTEJCNDoKKy5M QkI1OgorCW1vdmwJLTcyKCVlYnApLCAlZWF4CisJdGVzdGwJJWVheCwgJWVheAorCXNldGUJJWFs CisJbW92emJsCSVhbCwgJWVheAorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMTAgOSAoRkFM TFRIUlUpCisJam5lCS5MNQorIyBCTE9DSyA5IHNlcTo3CisjIFBSRUQ6IDggKEZBTExUSFJVKQor CSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjEKKwkubG9jIDEgMjEgMCBpc19zdG10IDAg ZGlzY3JpbWluYXRvciAyCisJbW92bAktNTYoJWVicCksICVlY3gKKwlsZWFsCTkoJWVjeCksICVl ZGkKKwltb3ZsCS01MiglZWJwKSwgJWVjeAorCWNtcGwJJWVjeCwgJWVkaQorIyBTVUNDOiAxMCAo RkFMTFRIUlUpIDE4CisJamUJLkw2CisjIEJMT0NLIDEwIHNlcTo4CisjIFBSRUQ6IDggOSAoRkFM TFRIUlUpCisuTDU6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAy MSAwIGRpc2NyaW1pbmF0b3IgMworCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMTEgKEZBTExU SFJVKSAxMgorCWplCS5MNworIyBCTE9DSyAxMSBzZXE6OQorIyBQUkVEOiAxMCAoRkFMTFRIUlUp CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1p bmF0b3IgNAorCW1vdmwJJDAsICVlYXgKKyMgU1VDQzogMTMgWzEwMC4wJV0gCisJam1wCS5MOAor IyBCTE9DSyAxMiBzZXE6MTAKKyMgUFJFRDogMTAKKy5MNzoKKwkjIGdkYi5mb3J0cmFuL3ZsYS1z dHJpZGUuZjkwOjIxCisJLmxvYyAxIDIxIDAgZGlzY3JpbWluYXRvciA1CisJbW92bAktNTIoJWVi cCksICVlZHgKKwltb3ZsCS01NiglZWJwKSwgJWVheAorCXN1YmwJJWVheCwgJWVkeAorCW1vdmwJ JWVkeCwgJWVheAorCWFkZGwJJDEsICVlYXgKKwltb3ZsCSQwLCAlZWR4CisJdGVzdGwJJWVheCwg JWVheAorIyBTVUNDOiAxMyAoRkFMTFRIUlUpCisJY21vdnMJJWVkeCwgJWVheAorIyBCTE9DSyAx MyBzZXE6MTEKKyMgUFJFRDogMTIgKEZBTExUSFJVKSAxMSBbMTAwLjAlXSAKKy5MODoKKwkjIGdk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjIxCisJLmxvYyAxIDIxIDAgZGlzY3JpbWluYXRvciA3 CisJY21wbAkkMTAsICVlYXgKKwlzZXRuZQklYWwKKwltb3Z6YmwJJWFsLCAlZWF4CisJbW92bAkk MSwgLTU2KCVlYnApCisJbW92bAkkMTAsIC01MiglZWJwKQorCW1vdmwJJDEsIC02MCglZWJwKQor CW1vdmwJLTU2KCVlYnApLCAlZWR4CisJbmVnbAklZWR4CisJbW92bAklZWR4LCAtNjgoJWVicCkK Kwltb3ZsCS02OCglZWJwKSwgJWVzaQorCW1vdmwJLTU2KCVlYnApLCAlZWJ4CisJbW92bAktNzIo JWVicCksICVlZHgKKwl0ZXN0bAklZWR4LCAlZWR4CisjIFNVQ0M6IDE0IChGQUxMVEhSVSkgMTUK KwlqbmUJLkw5CisjIEJMT0NLIDE0IHNlcToxMgorIyBQUkVEOiAxMyAoRkFMTFRIUlUpCisJIyBn ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3Ig OAorCXN1YmwJJDEyLCAlZXNwCisJcHVzaGwJJDQwCisJY2FsbAltYWxsb2MKKwlhZGRsCSQxNiwg JWVzcAorCW1vdmwJJWVheCwgLTcyKCVlYnApCisJbW92bAkkMjY1LCAtNjQoJWVicCkKKyMgU1VD QzogMTcgWzEwMC4wJV0gCisJam1wCS5MMTAKKyMgQkxPQ0sgMTUgc2VxOjEzCisjIFBSRUQ6IDEz CisuTDk6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRp c2NyaW1pbmF0b3IgOQorCXRlc3RsCSVlYXgsICVlYXgKKyMgU1VDQzogMTYgKEZBTExUSFJVKSAx NworCWplCS5MMTAKKyMgQkxPQ0sgMTYgc2VxOjE0CisjIFBSRUQ6IDE1IChGQUxMVEhSVSkKKwkj IGdkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjIxCisJLmxvYyAxIDIxIDAgZGlzY3JpbWluYXRv ciAxMQorCW1vdmwJLTcyKCVlYnApLCAlZWF4CisJc3VibAkkOCwgJWVzcAorCXB1c2hsCSQ0MAor CXB1c2hsCSVlYXgKKwljYWxsCXJlYWxsb2MKKwlhZGRsCSQxNiwgJWVzcAorIyBTVUNDOiAxNyAo RkFMTFRIUlUpCisJbW92bAklZWF4LCAtNzIoJWVicCkKKyMgQkxPQ0sgMTcgc2VxOjE1CisjIFBS RUQ6IDE2IChGQUxMVEhSVSkgMTUgMTQgWzEwMC4wJV0gCisuTDEwOgorIyBTVUNDOiAxOCAoRkFM TFRIUlUpCisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRp c2NyaW1pbmF0b3IgMTMKKwltb3ZsCS03MiglZWJwKSwgJWVkeAorIyBCTE9DSyAxOCBzZXE6MTYK KyMgUFJFRDogOSAxNyAoRkFMTFRIUlUpCisuTDY6CisuTEJFNToKKyMgU1VDQzogMTkgKEZBTExU SFJVKQorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjEKKwkubG9jIDEgMjEgMCBkaXNj cmltaW5hdG9yIDE0CisJbW92bAkkMCwgJWVheAorIyBCTE9DSyAxOSBzZXE6MTcKKyMgUFJFRDog MTggKEZBTExUSFJVKSAyMCBbMTAwLjAlXSAKKy5MMTI6CisJIyBnZGIuZm9ydHJhbi92bGEtc3Ry aWRlLmY5MDoyMQorCS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3IgMTcKKwljbXBsCSQ5LCAlZWF4 CisjIFNVQ0M6IDIxIDIwIChGQUxMVEhSVSkKKwlqZwkuTDExCisjIEJMT0NLIDIwIHNlcToxOAor IyBQUkVEOiAxOSAoRkFMTFRIUlUpCisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMQor CS5sb2MgMSAyMSAwIGRpc2NyaW1pbmF0b3IgMTYKKwlsZWFsCSglZWF4LCVlYngpLCAlZWN4CisJ bGVhbAkoJWVjeCwlZXNpKSwgJWVkaQorCW1vdmwJQS4xLjMzNjgoLCVlYXgsNCksICVlY3gKKwlt b3ZsCSVlY3gsICglZWR4LCVlZGksNCkKKwlhZGRsCSQxLCAlZWF4CisjIFNVQ0M6IDE5IFsxMDAu MCVdIAorCWptcAkuTDEyCisjIEJMT0NLIDIxIHNlcToxOQorIyBQUkVEOiAxOQorLkwxMToKKy5M QkU0OgorLkxCRTM6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyMworCS5sb2MgMSAy MyAwIGlzX3N0bXQgMQorCW1vdmwJJDI2NSwgLTQwKCVlYnApCisJbW92bAkkMSwgLTMyKCVlYnAp CisJbW92bAkkMTAsIC0yOCglZWJwKQorCW1vdmwJJC0xLCAtMzYoJWVicCkKKwltb3ZsCS03Migl ZWJwKSwgJWVheAorCW1vdmwJLTU2KCVlYnApLCAlZWR4CisJbW92bAkkMTAsICVlY3gKKwlzdWJs CSVlZHgsICVlY3gKKwltb3ZsCSVlY3gsICVlZHgKKwlzYWxsCSQyLCAlZWR4CisJYWRkbAklZWR4 LCAlZWF4CisJbW92bAklZWF4LCAtNDgoJWVicCkKKwltb3ZsCSQxLCAtNDQoJWVicCkKKy5MQkI2 OgorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjQKKwkubG9jIDEgMjQgMAorCW1vdmwJ JDI2NSwgLTQwKCVlYnApCisJbW92bAktMzYoJWVicCksICVlYXgKKwltb3ZsCSQxLCAtMzIoJWVi cCkKKwltb3ZsCSQxMCwgLTI4KCVlYnApCisJbW92bAklZWF4LCAlZWR4CisJbmVnbAklZWR4CisJ bW92bAklZWR4LCAtMzYoJWVicCkKKwltb3ZsCS00OCglZWJwKSwgJWVkeAorCW1vdmwJLTMyKCVl YnApLCAlZWN4CisJbW92bAkkMTAsICVlYngKKwlzdWJsCSVlY3gsICVlYngKKwltb3ZsCSVlYngs ICVlY3gKKwlpbXVsbAklZWF4LCAlZWN4CisJc2FsbAkkMiwgJWVjeAorCWFkZGwJJWVjeCwgJWVk eAorCW1vdmwJJWVkeCwgLTQ4KCVlYnApCisJbW92bAklZWF4LCAtNDQoJWVicCkKKy5MQkU2Ogor CSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjUKKwkubG9jIDEgMjUgMAorCW1vdmwJJDI2 NSwgLTQwKCVlYnApCisJbW92bAkkMSwgLTMyKCVlYnApCisJbW92bAkkNSwgLTI4KCVlYnApCisJ bW92bAkkMiwgLTM2KCVlYnApCisJbW92bAktNzIoJWVicCksICVlYXgKKwltb3ZsCS01NiglZWJw KSwgJWVkeAorCW1vdmwJJDEsICVlY3gKKwlzdWJsCSVlZHgsICVlY3gKKwltb3ZsCSVlY3gsICVl ZHgKKwlzYWxsCSQyLCAlZWR4CisJYWRkbAklZWR4LCAlZWF4CisJbW92bAklZWF4LCAtNDgoJWVi cCkKKwltb3ZsCSQtMiwgLTQ0KCVlYnApCisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoy NgorCS5sb2MgMSAyNiAwCisJbW92bAkkMjY1LCAtNDAoJWVicCkKKwltb3ZsCSQxLCAtMzIoJWVi cCkKKwltb3ZsCSQxLCAtMjgoJWVicCkKKwltb3ZsCSQtMiwgLTM2KCVlYnApCisJbW92bAktNzIo JWVicCksICVlYXgKKwltb3ZsCS01NiglZWJwKSwgJWVkeAorCW1vdmwJJDUsICVlY3gKKwlzdWJs CSVlZHgsICVlY3gKKwltb3ZsCSVlY3gsICVlZHgKKwlzYWxsCSQyLCAlZWR4CisJYWRkbAklZWR4 LCAlZWF4CisJbW92bAklZWF4LCAtNDgoJWVicCkKKwltb3ZsCSQyLCAtNDQoJWVicCkKKwkjIGdk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjI4CisJLmxvYyAxIDI4IDAKKwltb3ZsCSQwLCAtNDgo JWVicCkKKy5MQkUyOgorCSMgZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTA6MjkKKwkubG9jIDEg MjkgMAorCW5vcAorCWxlYWwJLTEyKCVlYnApLCAlZXNwCisJcG9wbAklZWJ4CisJLmNmaV9yZXN0 b3JlIDMKKwlwb3BsCSVlc2kKKwkuY2ZpX3Jlc3RvcmUgNgorCXBvcGwJJWVkaQorCS5jZmlfcmVz dG9yZSA3CisJcG9wbAklZWJwCisJLmNmaV9yZXN0b3JlIDUKKwkuY2ZpX2RlZl9jZmEgNCwgNAor IyBTVUNDOiBFWElUIFsxMDAuMCVdIAorCXJldAorCS5jZmlfZW5kcHJvYworLkxGRTA6CisJLnNp emUJTUFJTl9fLCAuLU1BSU5fXworCS5nbG9ibAltYWluCisJLnR5cGUJbWFpbiwgQGZ1bmN0aW9u CittYWluOgorLkxGQjE6CisJIyBnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MDoyOQorCS5sb2Mg MSAyOSAwCisJLmNmaV9zdGFydHByb2MKKyMgQkxPQ0sgMiBzZXE6MAorIyBQUkVEOiBFTlRSWSAo RkFMTFRIUlUpCisJbGVhbAk0KCVlc3ApLCAlZWN4CisJLmNmaV9kZWZfY2ZhIDEsIDAKKwlhbmRs CSQtMTYsICVlc3AKKwlwdXNobAktNCglZWN4KQorCXB1c2hsCSVlYnAKKwkuY2ZpX2VzY2FwZSAw eDEwLDB4NSwweDIsMHg3NSwwCisJbW92bAklZXNwLCAlZWJwCisJcHVzaGwJJWVjeAorCS5jZmlf ZXNjYXBlIDB4ZiwweDMsMHg3NSwweDdjLDB4NgorCXN1YmwJJDQsICVlc3AKKwltb3ZsCSVlY3gs ICVlYXgKKwkjIGdkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwOjI5CisJLmxvYyAxIDI5IDAKKwlz dWJsCSQ4LCAlZXNwCisJcHVzaGwJNCglZWF4KQorCXB1c2hsCSglZWF4KQorCWNhbGwJX2dmb3J0 cmFuX3NldF9hcmdzCisJYWRkbAkkMTYsICVlc3AKKwlzdWJsCSQ4LCAlZXNwCisJcHVzaGwJJG9w dGlvbnMuMy4zMzgyCisJcHVzaGwJJDkKKwljYWxsCV9nZm9ydHJhbl9zZXRfb3B0aW9ucworCWFk ZGwJJDE2LCAlZXNwCisJY2FsbAlNQUlOX18KKwltb3ZsCSQwLCAlZWF4CisJbW92bAktNCglZWJw KSwgJWVjeAorCS5jZmlfZGVmX2NmYSAxLCAwCisJbGVhdmUKKwkuY2ZpX3Jlc3RvcmUgNQorCWxl YWwJLTQoJWVjeCksICVlc3AKKwkuY2ZpX2RlZl9jZmEgNCwgNAorIyBTVUNDOiBFWElUIFsxMDAu MCVdIAorCXJldAorCS5jZmlfZW5kcHJvYworLkxGRTE6CisJLnNpemUJbWFpbiwgLi1tYWluCisJ LnNlY3Rpb24JLnJvZGF0YQorCS5hbGlnbiAzMgorCS50eXBlCUEuMS4zMzY4LCBAb2JqZWN0CisJ LnNpemUJQS4xLjMzNjgsIDQwCitBLjEuMzM2ODoKKwkubG9uZwkxCisJLmxvbmcJMgorCS5sb25n CTMKKwkubG9uZwk0CisJLmxvbmcJNQorCS5sb25nCTYKKwkubG9uZwk3CisJLmxvbmcJOAorCS5s b25nCTkKKwkubG9uZwkxMAorCS5hbGlnbiAzMgorCS50eXBlCW9wdGlvbnMuMy4zMzgyLCBAb2Jq ZWN0CisJLnNpemUJb3B0aW9ucy4zLjMzODIsIDM2CitvcHRpb25zLjMuMzM4MjoKKwkubG9uZwk2 OAorCS5sb25nCTEwMjMKKwkubG9uZwkwCisJLmxvbmcJMAorCS5sb25nCTEKKwkubG9uZwkxCisJ LmxvbmcJMAorCS5sb25nCTAKKwkubG9uZwkzMQorCS50ZXh0CisuTGV0ZXh0MDoKKwkuc2VjdGlv bgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKKy5MZGVidWdfaW5mbzA6CisJLmxvbmcJMHgxMjgJ IyBMZW5ndGggb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCisJLnZhbHVlCTB4NAkjIERXQVJGIHZl cnNpb24gbnVtYmVyCisJLmxvbmcJLkxkZWJ1Z19hYmJyZXYwCSMgT2Zmc2V0IEludG8gQWJicmV2 LiBTZWN0aW9uCisJLmJ5dGUJMHg0CSMgUG9pbnRlciBTaXplIChpbiBieXRlcykKKwkudWxlYjEy OCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21waWxlX3VuaXQpCisJLmxvbmcJLkxBU0Y1CSMg RFdfQVRfcHJvZHVjZXI6ICJHTlUgRm9ydHJhbjIwMDggNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQg Ni4xLjEtMykgLW0zMiAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9aTY4NiAtZyAtZmludHJpbnNpYy1t b2R1bGVzLXBhdGggL3Vzci9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNi4xLjEvMzIvZmlu Y2x1ZGUiCisJLmJ5dGUJMHhlCSMgRFdfQVRfbGFuZ3VhZ2UKKwkuYnl0ZQkweDIJIyBEV19BVF9p ZGVudGlmaWVyX2Nhc2UKKwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiZ2RiLmZvcnRyYW4v dmxhLXN0cmlkZS5mOTAiCisJLmxvbmcJLkxBU0Y3CSMgRFdfQVRfY29tcF9kaXI6ICIvaG9tZS9q a3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUiCisJLmxvbmcJLkx0ZXh0MAkj IERXX0FUX2xvd19wYworCS5sb25nCS5MZXRleHQwLS5MdGV4dDAJIyBEV19BVF9oaWdoX3BjCisJ LmxvbmcJLkxkZWJ1Z19saW5lMAkjIERXX0FUX3N0bXRfbGlzdAorCS51bGViMTI4IDB4MgkjIChE SUUgKDB4MjYpIERXX1RBR19iYXNlX3R5cGUpCisJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXpl CisJLmJ5dGUJMHg1CSMgRFdfQVRfZW5jb2RpbmcKKwkubG9uZwkuTEFTRjIJIyBEV19BVF9uYW1l OiAiaW50ZWdlcihraW5kPTQpIgorCS51bGViMTI4IDB4MwkjIChESUUgKDB4MmQpIERXX1RBR19j b25zdF90eXBlKQorCS5sb25nCTB4MjYJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHg0CSMgKERJ RSAoMHgzMikgRFdfVEFHX3N1YnByb2dyYW0pCisJCQkjIERXX0FUX2V4dGVybmFsCisJLmxvbmcJ LkxBU0Y4CSMgRFdfQVRfbmFtZTogIm1haW4iCisJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl IChnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCkKKwkuYnl0ZQkweDFkCSMgRFdfQVRfZGVjbF9s aW5lCisJLmxvbmcJMHgyNgkjIERXX0FUX3R5cGUKKwkubG9uZwkuTEZCMQkjIERXX0FUX2xvd19w YworCS5sb25nCS5MRkUxLS5MRkIxCSMgRFdfQVRfaGlnaF9wYworCS51bGViMTI4IDB4MQkjIERX X0FUX2ZyYW1lX2Jhc2UKKwkuYnl0ZQkweDljCSMgRFdfT1BfY2FsbF9mcmFtZV9jZmEKKwkJCSMg RFdfQVRfR05VX2FsbF90YWlsX2NhbGxfc2l0ZXMKKwkubG9uZwkweDY5CSMgRFdfQVRfc2libGlu ZworCS51bGViMTI4IDB4NQkjIChESUUgKDB4NGIpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQor CS5sb25nCS5MQVNGMAkjIERXX0FUX25hbWU6ICJhcmdjIgorCS5ieXRlCTB4MQkjIERXX0FUX2Rl Y2xfZmlsZSAoZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTApCisJLmJ5dGUJMHgxZAkjIERXX0FU X2RlY2xfbGluZQorCS5sb25nCTB4MmQJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHgyCSMgRFdf QVRfbG9jYXRpb24KKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKwkuc2xlYjEyOCAwCisJLnVs ZWIxMjggMHg1CSMgKERJRSAoMHg1OSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmxvbmcJ LkxBU0YxCSMgRFdfQVRfbmFtZTogImFyZ3YiCisJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl IChnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCkKKwkuYnl0ZQkweDFkCSMgRFdfQVRfZGVjbF9s aW5lCisJLmxvbmcJMHg2OQkjIERXX0FUX3R5cGUKKwkudWxlYjEyOCAweDMJIyBEV19BVF9sb2Nh dGlvbgorCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworCS5zbGViMTI4IDQKKwkuYnl0ZQkweDYJ IyBEV19PUF9kZXJlZgorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MzIKKwku dWxlYjEyOCAweDYJIyAoRElFICgweDY5KSBEV19UQUdfcG9pbnRlcl90eXBlKQorCS5ieXRlCTB4 NAkjIERXX0FUX2J5dGVfc2l6ZQorCS5sb25nCTB4NmYJIyBEV19BVF90eXBlCisJLnVsZWIxMjgg MHgyCSMgKERJRSAoMHg2ZikgRFdfVEFHX2Jhc2VfdHlwZSkKKwkuYnl0ZQkweDEJIyBEV19BVF9i eXRlX3NpemUKKwkuYnl0ZQkweDgJIyBEV19BVF9lbmNvZGluZworCS5sb25nCS5MQVNGMwkjIERX X0FUX25hbWU6ICJjaGFyYWN0ZXIoa2luZD0xKSIKKwkudWxlYjEyOCAweDcJIyAoRElFICgweDc2 KSBEV19UQUdfc3VicHJvZ3JhbSkKKwkubG9uZwkuTEFTRjkJIyBEV19BVF9uYW1lOiAidmxhX3N0 cmlkZSIKKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL3ZsYS1zdHJp ZGUuZjkwKQorCS5ieXRlCTB4MTAJIyBEV19BVF9kZWNsX2xpbmUKKwkJCSMgRFdfQVRfbWFpbl9z dWJwcm9ncmFtCisJLmJ5dGUJMHgyCSMgRFdfQVRfY2FsbGluZ19jb252ZW50aW9uCisJLmxvbmcJ LkxGQjAJIyBEV19BVF9sb3dfcGMKKwkubG9uZwkuTEZFMC0uTEZCMAkjIERXX0FUX2hpZ2hfcGMK KwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCisJLmJ5dGUJMHg5YwkjIERXX09QX2Nh bGxfZnJhbWVfY2ZhCisJCQkjIERXX0FUX0dOVV9hbGxfdGFpbF9jYWxsX3NpdGVzCisJLmxvbmcJ MHhlNwkjIERXX0FUX3NpYmxpbmcKKwkudWxlYjEyOCAweDgJIyAoRElFICgweDhjKSBEV19UQUdf dmFyaWFibGUpCisJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfZmlsZSAoZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTApCisJLmJ5dGUJMHgxNQkjIERX X0FUX2RlY2xfbGluZQorCS5sb25nCTB4MjYJIyBEV19BVF90eXBlCisJLnVsZWIxMjggMHg5CSMg KERJRSAoMHg5NSkgRFdfVEFHX3ZhcmlhYmxlKQorCS5sb25nCS5MQVNGNAkjIERXX0FUX25hbWU6 ICJwdmxhIgorCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmZvcnRyYW4vdmxhLXN0 cmlkZS5mOTApCisJLmJ5dGUJMHgxMgkjIERXX0FUX2RlY2xfbGluZQorCS5sb25nCTB4ZTcJIyBE V19BVF90eXBlCisJLnVsZWIxMjggMHgyCSMgRFdfQVRfbG9jYXRpb24KKwkuYnl0ZQkweDkxCSMg RFdfT1BfZmJyZWcKKwkuc2xlYjEyOCAtNTYKKwkudWxlYjEyOCAweGEJIyAoRElFICgweGEzKSBE V19UQUdfdmFyaWFibGUpCisJLmFzY2lpICJ2bGFcMCIJIyBEV19BVF9uYW1lCisJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlIChnZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCkKKwkuYnl0ZQkw eDExCSMgRFdfQVRfZGVjbF9saW5lCisJLmxvbmcJMHgxMGIJIyBEV19BVF90eXBlCisJLnVsZWIx MjggMHgzCSMgRFdfQVRfbG9jYXRpb24KKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKwkuc2xl YjEyOCAtODAKKwkudWxlYjEyOCAweGIJIyAoRElFICgweGIyKSBEV19UQUdfbGV4aWNhbF9ibG9j aykKKwkubG9uZwkuTEJCMgkjIERXX0FUX2xvd19wYworCS5sb25nCS5MQkUyLS5MQkIyCSMgRFdf QVRfaGlnaF9wYworCS51bGViMTI4IDB4YwkjIChESUUgKDB4YmIpIERXX1RBR19sZXhpY2FsX2Js b2NrKQorCS5sb25nCS5MQkIzCSMgRFdfQVRfbG93X3BjCisJLmxvbmcJLkxCRTMtLkxCQjMJIyBE V19BVF9oaWdoX3BjCisJLmxvbmcJMHhkYwkjIERXX0FUX3NpYmxpbmcKKwkudWxlYjEyOCAweGIJ IyAoRElFICgweGM4KSBEV19UQUdfbGV4aWNhbF9ibG9jaykKKwkubG9uZwkuTEJCNAkjIERXX0FU X2xvd19wYworCS5sb25nCS5MQkU0LS5MQkI0CSMgRFdfQVRfaGlnaF9wYworCS51bGViMTI4IDB4 ZAkjIChESUUgKDB4ZDEpIERXX1RBR19sZXhpY2FsX2Jsb2NrKQorCS5sb25nCS5MQkI1CSMgRFdf QVRfbG93X3BjCisJLmxvbmcJLkxCRTUtLkxCQjUJIyBEV19BVF9oaWdoX3BjCisJLmJ5dGUJMAkj IGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhjOAorCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4g b2YgRElFIDB4YmIKKwkudWxlYjEyOCAweGQJIyAoRElFICgweGRjKSBEV19UQUdfbGV4aWNhbF9i bG9jaykKKwkubG9uZwkuTEJCNgkjIERXX0FUX2xvd19wYworCS5sb25nCS5MQkU2LS5MQkI2CSMg RFdfQVRfaGlnaF9wYworCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YjIKKwku Ynl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDc2CisJLnVsZWIxMjggMHhlCSMgKERJ RSAoMHhlNykgRFdfVEFHX2FycmF5X3R5cGUpCisJLnVsZWIxMjggMHgyCSMgRFdfQVRfZGF0YV9s b2NhdGlvbgorCS5ieXRlCTB4OTcJIyBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzCisJLmJ5dGUJ MHg2CSMgRFdfT1BfZGVyZWYKKwkudWxlYjEyOCAweDQJIyBEV19BVF9hc3NvY2lhdGVkCisJLmJ5 dGUJMHg5NwkjIERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3MKKwkuYnl0ZQkweDYJIyBEV19PUF9k ZXJlZgorCS5ieXRlCTB4MzAJIyBEV19PUF9saXQwCisJLmJ5dGUJMHgyZQkjIERXX09QX25lCisJ LmxvbmcJMHgyNgkjIERXX0FUX3R5cGUKKwkubG9uZwkweDEwYgkjIERXX0FUX3NpYmxpbmcKKwku dWxlYjEyOCAweGYJIyAoRElFICgweGY4KSBEV19UQUdfc3VicmFuZ2VfdHlwZSkKKwkudWxlYjEy OCAweDQJIyBEV19BVF9sb3dlcl9ib3VuZAorCS5ieXRlCTB4OTcJIyBEV19PUF9wdXNoX29iamVj dF9hZGRyZXNzCisJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0CisJLnVsZWIxMjggMHgx MAorCS5ieXRlCTB4NgkjIERXX09QX2RlcmVmCisJLnVsZWIxMjggMHg0CSMgRFdfQVRfdXBwZXJf Ym91bmQKKwkuYnl0ZQkweDk3CSMgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcworCS5ieXRlCTB4 MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorCS51bGViMTI4IDB4MTQKKwkuYnl0ZQkweDYJIyBEV19P UF9kZXJlZgorCS51bGViMTI4IDB4NgkjIERXX0FUX2J5dGVfc3RyaWRlCisJLmJ5dGUJMHg5Nwkj IERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3MKKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29u c3QKKwkudWxlYjEyOCAweGMKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS5ieXRlCTB4MzQJ IyBEV19PUF9saXQ0CisJLmJ5dGUJMHgxZQkjIERXX09QX211bAorCS5ieXRlCTAJIyBlbmQgb2Yg Y2hpbGRyZW4gb2YgRElFIDB4ZTcKKwkudWxlYjEyOCAweDEwCSMgKERJRSAoMHgxMGIpIERXX1RB R19hcnJheV90eXBlKQorCS51bGViMTI4IDB4MgkjIERXX0FUX2RhdGFfbG9jYXRpb24KKwkuYnl0 ZQkweDk3CSMgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcworCS5ieXRlCTB4NgkjIERXX09QX2Rl cmVmCisJLnVsZWIxMjggMHg0CSMgRFdfQVRfYWxsb2NhdGVkCisJLmJ5dGUJMHg5NwkjIERXX09Q X3B1c2hfb2JqZWN0X2FkZHJlc3MKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS5ieXRlCTB4 MzAJIyBEV19PUF9saXQwCisJLmJ5dGUJMHgyZQkjIERXX09QX25lCisJLmxvbmcJMHgyNgkjIERX X0FUX3R5cGUKKwkudWxlYjEyOCAweGYJIyAoRElFICgweDExOCkgRFdfVEFHX3N1YnJhbmdlX3R5 cGUpCisJLnVsZWIxMjggMHg0CSMgRFdfQVRfbG93ZXJfYm91bmQKKwkuYnl0ZQkweDk3CSMgRFdf T1BfcHVzaF9vYmplY3RfYWRkcmVzcworCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAor CS51bGViMTI4IDB4MTAKKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorCS51bGViMTI4IDB4NAkj IERXX0FUX3VwcGVyX2JvdW5kCisJLmJ5dGUJMHg5NwkjIERXX09QX3B1c2hfb2JqZWN0X2FkZHJl c3MKKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKwkudWxlYjEyOCAweDE0CisJLmJ5 dGUJMHg2CSMgRFdfT1BfZGVyZWYKKwkudWxlYjEyOCAweDYJIyBEV19BVF9ieXRlX3N0cmlkZQor CS5ieXRlCTB4OTcJIyBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzCisJLmJ5dGUJMHgyMwkjIERX X09QX3BsdXNfdWNvbnN0CisJLnVsZWIxMjggMHhjCisJLmJ5dGUJMHg2CSMgRFdfT1BfZGVyZWYK KwkuYnl0ZQkweDM0CSMgRFdfT1BfbGl0NAorCS5ieXRlCTB4MWUJIyBEV19PUF9tdWwKKwkuYnl0 ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDEwYgorCS5ieXRlCTAJIyBlbmQgb2YgY2hp bGRyZW4gb2YgRElFIDB4YgorCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCisu TGRlYnVnX2FiYnJldjA6CisJLnVsZWIxMjggMHgxCSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4 IDB4MTEJIyAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KQorCS5ieXRlCTB4MQkjIERXX2NoaWxk cmVuX3llcworCS51bGViMTI4IDB4MjUJIyAoRFdfQVRfcHJvZHVjZXIpCisJLnVsZWIxMjggMHhl CSMgKERXX0ZPUk1fc3RycCkKKwkudWxlYjEyOCAweDEzCSMgKERXX0FUX2xhbmd1YWdlKQorCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4NDIJIyAoRFdfQVRfaWRl bnRpZmllcl9jYXNlKQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4 IDB4MwkjIChEV19BVF9uYW1lKQorCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisJLnVs ZWIxMjggMHgxYgkjIChEV19BVF9jb21wX2RpcikKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9z dHJwKQorCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorCS51bGViMTI4IDB4MQkjIChE V19GT1JNX2FkZHIpCisJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorCS51bGViMTI4 IDB4NgkjIChEV19GT1JNX2RhdGE0KQorCS51bGViMTI4IDB4MTAJIyAoRFdfQVRfc3RtdF9saXN0 KQorCS51bGViMTI4IDB4MTcJIyAoRFdfRk9STV9zZWNfb2Zmc2V0KQorCS5ieXRlCTAKKwkuYnl0 ZQkwCisJLnVsZWIxMjggMHgyCSMgKGFiYnJldiBjb2RlKQorCS51bGViMTI4IDB4MjQJIyAoVEFH OiBEV19UQUdfYmFzZV90eXBlKQorCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworCS51bGViMTI4 IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEp CisJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKwkudWxlYjEyOCAweGUJ IyAoRFdfRk9STV9zdHJwKQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHgzCSMgKGFi YnJldiBjb2RlKQorCS51bGViMTI4IDB4MjYJIyAoVEFHOiBEV19UQUdfY29uc3RfdHlwZSkKKwku Ynl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisJ LnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxl YjEyOCAweDQJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19z dWJwcm9ncmFtKQorCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworCS51bGViMTI4IDB4M2YJ IyAoRFdfQVRfZXh0ZXJuYWwpCisJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2Vu dCkKKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKwkudWxlYjEyOCAweGUJIyAoRFdfRk9S TV9zdHJwKQorCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQor CS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4NDkJIyAoRFdfQVRf dHlwZSkKKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKwkudWxlYjEyOCAweDExCSMg KERXX0FUX2xvd19wYykKKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorCS51bGViMTI4 IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykKKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkK KwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisJLnVsZWIxMjggMHgxOAkjIChE V19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHgyMTE2CSMgKERXX0FUX0dOVV9hbGxfdGFpbF9j YWxsX3NpdGVzKQorCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisJLnVs ZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDUJIyAoYWJicmV2IGNvZGUpCisJ LnVsZWIxMjggMHg1CSMgKFRBRzogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisJLmJ5dGUJMAkj IERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjgg MHhlCSMgKERXX0ZPUk1fc3RycCkKKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkK KwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDNiCSMgKERXX0FU X2RlY2xfbGluZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAw eDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVs ZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9l eHBybG9jKQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2Rl KQorCS51bGViMTI4IDB4ZgkjIChUQUc6IERXX1RBR19wb2ludGVyX3R5cGUpCisJLmJ5dGUJMAkj IERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKKwkudWxl YjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUp CisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwku dWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RB R19zdWJwcm9ncmFtKQorCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworCS51bGViMTI4IDB4 MwkjIChEV19BVF9uYW1lKQorCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisJLnVsZWIx MjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCisJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisJLnVsZWIxMjggMHhiCSMg KERXX0ZPUk1fZGF0YTEpCisJLnVsZWIxMjggMHg2YQkjIChEV19BVF9tYWluX3N1YnByb2dyYW0p CisJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKwkudWxlYjEyOCAweDM2 CSMgKERXX0FUX2NhbGxpbmdfY29udmVudGlvbikKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKwkudWxlYjEyOCAweDEJIyAo RFdfRk9STV9hZGRyKQorCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykKKwkudWxlYjEy OCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jh c2UpCisJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHgyMTE2 CSMgKERXX0FUX0dOVV9hbGxfdGFpbF9jYWxsX3NpdGVzKQorCS51bGViMTI4IDB4MTkJIyAoRFdf Rk9STV9mbGFnX3ByZXNlbnQpCisJLnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisJLnVs ZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEy OCAweDgJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgzNAkjIChUQUc6IERXX1RBR192YXJp YWJsZSkKKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKwkudWxlYjEyOCAweDMJIyAoRFdfQVRf bmFtZSkKKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisJLnVsZWIxMjggMHgzYQkj IChEV19BVF9kZWNsX2ZpbGUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisJLnVs ZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1f ZGF0YTEpCisJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQorCS51bGViMTI4IDB4MTMJIyAo RFdfRk9STV9yZWY0KQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg5CSMgKGFiYnJl diBjb2RlKQorCS51bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdfdmFyaWFibGUpCisJLmJ5dGUJ MAkjIERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIx MjggMHhlCSMgKERXX0ZPUk1fc3RycCkKKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmls ZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEyOCAweDNiCSMgKERX X0FUX2RlY2xfbGluZSkKKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKwkudWxlYjEy OCAweDQ5CSMgKERXX0FUX3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJ LnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9S TV9leHBybG9jKQorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHhhCSMgKGFiYnJldiBj b2RlKQorCS51bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdfdmFyaWFibGUpCisJLmJ5dGUJMAkj IERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisJLnVsZWIxMjgg MHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxl KQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4IDB4M2IJIyAoRFdf QVRfZGVjbF9saW5lKQorCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorCS51bGViMTI4 IDB4NDkJIyAoRFdfQVRfdHlwZSkKKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKwku dWxlYjEyOCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCisJLnVsZWIxMjggMHgxOAkjIChEV19GT1JN X2V4cHJsb2MpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGIJIyAoYWJicmV2IGNv ZGUpCisJLnVsZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxvY2spCisJLmJ5dGUJ MHgxCSMgRFdfY2hpbGRyZW5feWVzCisJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCisJ LnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hp Z2hfcGMpCisJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCisJLmJ5dGUJMAorCS5ieXRl CTAKKwkudWxlYjEyOCAweGMJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHhiCSMgKFRBRzog RFdfVEFHX2xleGljYWxfYmxvY2spCisJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisJLnVs ZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCisJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRk cikKKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisJLnVsZWIxMjggMHg2CSMgKERX X0ZPUk1fZGF0YTQpCisJLnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisJLnVsZWIxMjgg MHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGQJ IyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxv Y2spCisJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisJLnVsZWIxMjggMHgxMQkjIChEV19BVF9s b3dfcGMpCisJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKwkudWxlYjEyOCAweDEyCSMg KERXX0FUX2hpZ2hfcGMpCisJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCisJLmJ5dGUJ MAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGUJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjggMHgx CSMgKFRBRzogRFdfVEFHX2FycmF5X3R5cGUpCisJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVz CisJLnVsZWIxMjggMHg1MAkjIChEV19BVF9kYXRhX2xvY2F0aW9uKQorCS51bGViMTI4IDB4MTgJ IyAoRFdfRk9STV9leHBybG9jKQorCS51bGViMTI4IDB4NGYJIyAoRFdfQVRfYXNzb2NpYXRlZCkK KwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKKwkudWxlYjEyOCAweDQ5CSMgKERX X0FUX3R5cGUpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLnVsZWIxMjggMHgx CSMgKERXX0FUX3NpYmxpbmcpCisJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisJLmJ5 dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGYJIyAoYWJicmV2IGNvZGUpCisJLnVsZWIxMjgg MHgyMQkjIChUQUc6IERXX1RBR19zdWJyYW5nZV90eXBlKQorCS5ieXRlCTAJIyBEV19jaGlsZHJl bl9ubworCS51bGViMTI4IDB4MjIJIyAoRFdfQVRfbG93ZXJfYm91bmQpCisJLnVsZWIxMjggMHgx OAkjIChEV19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHgyZgkjIChEV19BVF91cHBlcl9ib3Vu ZCkKKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKKwkudWxlYjEyOCAweDUxCSMg KERXX0FUX2J5dGVfc3RyaWRlKQorCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQor CS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHgxMAkjIChhYmJyZXYgY29kZSkKKwkudWxl YjEyOCAweDEJIyAoVEFHOiBEV19UQUdfYXJyYXlfdHlwZSkKKwkuYnl0ZQkweDEJIyBEV19jaGls ZHJlbl95ZXMKKwkudWxlYjEyOCAweDUwCSMgKERXX0FUX2RhdGFfbG9jYXRpb24pCisJLnVsZWIx MjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHg0ZQkjIChEV19BVF9hbGxv Y2F0ZWQpCisJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisJLnVsZWIxMjggMHg0 OQkjIChEV19BVF90eXBlKQorCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorCS5ieXRl CTAKKwkuYnl0ZQkwCisJLmJ5dGUJMAorCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBwcm9n Yml0cworCS5sb25nCTB4MWMJIyBMZW5ndGggb2YgQWRkcmVzcyBSYW5nZXMgSW5mbworCS52YWx1 ZQkweDIJIyBEV0FSRiBWZXJzaW9uCisJLmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNldCBvZiBD b21waWxhdGlvbiBVbml0IEluZm8KKwkuYnl0ZQkweDQJIyBTaXplIG9mIEFkZHJlc3MKKwkuYnl0 ZQkwCSMgU2l6ZSBvZiBTZWdtZW50IERlc2NyaXB0b3IKKwkudmFsdWUJMAkjIFBhZCB0byA4IGJ5 dGUgYm91bmRhcnkKKwkudmFsdWUJMAorCS5sb25nCS5MdGV4dDAJIyBBZGRyZXNzCisJLmxvbmcJ LkxldGV4dDAtLkx0ZXh0MAkjIExlbmd0aAorCS5sb25nCTAKKwkubG9uZwkwCisJLnNlY3Rpb24J LmRlYnVnX2xpbmUsIiIsQHByb2diaXRzCisuTGRlYnVnX2xpbmUwOgorCS5zZWN0aW9uCS5kZWJ1 Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQorLkxBU0Y3OgorCS5zdHJpbmcJIi9ob21lL2prcmF0b2No L3JlZGhhdC9nZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZSIKKy5MQVNGMzoKKwkuc3RyaW5nCSJjaGFy YWN0ZXIoa2luZD0xKSIKKy5MQVNGMDoKKwkuc3RyaW5nCSJhcmdjIgorLkxBU0Y5OgorCS5zdHJp bmcJInZsYV9zdHJpZGUiCisuTEFTRjI6CisJLnN0cmluZwkiaW50ZWdlcihraW5kPTQpIgorLkxB U0Y1OgorCS5zdHJpbmcJIkdOVSBGb3J0cmFuMjAwOCA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2 LjEuMS0zKSAtbTMyIC1tdHVuZT1nZW5lcmljIC1tYXJjaD1pNjg2IC1nIC1maW50cmluc2ljLW1v ZHVsZXMtcGF0aCAvdXNyL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC82LjEuMS8zMi9maW5j bHVkZSIKKy5MQVNGODoKKwkuc3RyaW5nCSJtYWluIgorLkxBU0Y0OgorCS5zdHJpbmcJInB2bGEi CisuTEFTRjY6CisJLnN0cmluZwkiZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAiCisuTEFTRjE6 CisJLnN0cmluZwkiYXJndiIKKwkuaWRlbnQJIkdDQzogKEdOVSkgNi4xLjEgMjAxNjA2MjEgKFJl ZCBIYXQgNi4xLjEtMykiCisJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwor CistLVZiSmtuOVl4QnZudUNINUotLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1icmFu Y2gucGF0Y2ggYi9nZGItdmxhLWludGVsLWJyYW5jaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5lZTE2ZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRl bC1icmFuY2gucGF0Y2gKQEAgLTAsMCArMSwxODMyIEBACitnaXQgZGlmZiAtLXN0YXQgLXAgZ2Ri L21hc3Rlci4uLmdkYi91c2Vycy9iaGVja2VsL2ZvcnRyYW4tc3RyaWRlcworMmMzOTJkNDFhM2Yy ZTM4ZGVlYjlkYjViN2E5M2NhNDU2ODJiYmUzYgorCisgZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxMyArLQorIGdkYi9ldmFsLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAzOTEgKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyBnZGIv ZXhwcHJpbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstCisgZ2RiL2V4 cHJlc3Npb24uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQorIGdkYi9mLWV4 cC55ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDIgKystCisgZ2RiL2YtdmFs cHJpbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQorIGdkYi9nZGJ0eXBl cy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKystCisgZ2RiL2dkYnR5cGVz LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArKworIGdkYi9wYXJzZS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KKyBnZGIvcnVzdC1leHAueSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCisgZ2RiL3J1c3QtbGFuZy5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RhdGljLWFycmF5cy5leHAgfCA0MjEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAgfCAgNTUgKysr KworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAgICAgfCAgNDQgKysr CisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MCAgICB8ICAyOSArKwor IGdkYi92YWxhcml0aC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KKyBn ZGIvdmFsb3BzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTk3ICsrKysrKysr KysrLS0KKyBnZGIvdmFsdWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICsKKyAxOCBmaWxlcyBjaGFuZ2VkLCAxMTk3IGluc2VydGlvbnMoKyksIDE3MyBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCitp bmRleCA2NjU4YTM4Li5hMWFjNjU5IDEwMDY0NAorLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysr IGIvZ2RiL2R3YXJmMnJlYWQuYworQEAgLTE0OTUyLDcgKzE0OTUyLDcgQEAgcmVhZF9zdWJyYW5n ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBz dHJ1Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CisgICBzdHJ1Y3QgdHlwZSAq cmFuZ2VfdHlwZTsKKyAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CistICBzdHJ1Y3QgZHluYW1p Y19wcm9wIGxvdywgaGlnaDsKKysgIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93LCBoaWdoLCBzdHJp ZGU7CisgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CisgICBpbnQgaGlnaF9ib3VuZF9pc19j b3VudCA9IDA7CisgICBjb25zdCBjaGFyICpuYW1lOworQEAgLTE0OTcyLDcgKzE0OTcyLDkgQEAg cmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCisgCisgICBsb3cua2luZCA9IFBST1BfQ09OU1Q7CisgICBoaWdoLmtpbmQgPSBQUk9Q X0NPTlNUOworKyAgc3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOworICAgaGlnaC5kYXRhLmNvbnN0 X3ZhbCA9IDA7CisrICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSAwOworIAorICAgLyogU2V0IExP V19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIERXQVJGIHZlcnNpb24g YWxsb3cKKyAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5kLiAgKi8KK0BAIC0xNTAwNiw2 ICsxNTAwOCwxMyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgICBicmVhazsKKyAgICAgfQorIAorKyAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7CisrICBpZiAoYXR0cikK KysgICAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnN0cmlkZSkp CisrICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIk1pc3NpbmcgRFdf QVRfYnl0ZV9zdHJpZGUgIgorKyAgICAgICAgICAgICAgICAgICItIERJRSBhdCAweCV4IFtpbiBt b2R1bGUgJXNdIiksCisrICAgICAgICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2ZmLCBvYmpmaWxl X25hbWUgKGN1LT5vYmpmaWxlKSk7CisrCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfbG93ZXJfYm91bmQsIGN1KTsKKyAgIGlmIChhdHRyKQorICAgICBhdHRyX3RvX2R5bmFtaWNf cHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdyk7CitAQCAtMTUwODIsNyArMTUwOTEsNyBAQCByZWFk X3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKKyAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAoYmFzZV90eXBlKSAmJiAoaGlnaC5kYXRhLmNv bnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQorICAgICBoaWdoLmRhdGEuY29uc3RfdmFsIHw9IG5l Z2F0aXZlX21hc2s7CisgCistICByYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKE5VTEws IG9yaWdfYmFzZV90eXBlLCAmbG93LCAmaGlnaCk7CisrICByYW5nZV90eXBlID0gY3JlYXRlX3Jh bmdlX3R5cGUgKE5VTEwsIG9yaWdfYmFzZV90eXBlLCAmbG93LCAmaGlnaCwgJnN0cmlkZSk7Cisg CisgICBpZiAoaGlnaF9ib3VuZF9pc19jb3VudCkKKyAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+ZmxhZ191cHBlcl9ib3VuZF9pc19jb3VudCA9IDE7CitkaWZmIC0tZ2l0IGEvZ2Ri L2V2YWwuYyBiL2dkYi9ldmFsLmMKK2luZGV4IDAwYTEwN2MuLjkxZDhhMDMgMTAwNjQ0CistLS0g YS9nZGIvZXZhbC5jCisrKysgYi9nZGIvZXZhbC5jCitAQCAtMzk5LDI5ICszOTksMzI1IEBAIGlu aXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVt ZW50LAorICAgcmV0dXJuIGluZGV4OworIH0KKyAKKysvKiBFdmFsdWF0ZXMgYW55IG9wZXJhdGlv biBvbiBGb3J0cmFuIGFycmF5cyBvciBzdHJpbmdzIHdpdGggYXQgbGVhc3QKKysgICBvbmUgdXNl ciBwcm92aWRlZCBwYXJhbWV0ZXIuICBFeHBlY3RzIHRoZSBpbnB1dCBBUlJBWSB0byBiZSBlaXRo ZXIKKysgICBhbiBhcnJheSwgb3IgYSBzdHJpbmcuICBFdmFsdWF0ZXMgRVhQIGJ5IGluY3JlbWVu dGluZyBQT1MsIGFuZAorKyAgIHdyaXRlcyB0aGUgY29udGVudCBmcm9tIHRoZSBlbHQgc3RhY2sg aW50byBhIGxvY2FsIHN0cnVjdC4gIE5BUkdTCisrICAgc3BlY2lmaWVzIG51bWJlciBvZiBsaXRl cmFsIG9yIHJhbmdlIGFyZ3VtZW50cyB0aGUgdXNlciBwcm92aWRlZC4KKysgICBOQVJHUyBtdXN0 IGJlIHRoZSBzYW1lIG51bWJlciBhcyBBUlJBWSBoYXMgZGltZW5zaW9ucy4gICovCisrCisgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCistdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFy cmF5LAorLQkJICAgIHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUpCisrdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAorKwkJICAgIGludCAqcG9zLCBpbnQgbmFyZ3MsIGVudW0gbm9z aWRlIG5vc2lkZSkKKyB7CistICBpbnQgcGMgPSAoKnBvcykgKyAxOworKyAgaW50IGksIGRpbV9j b3VudCA9IDA7CisgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKKy0gIHN0cnVjdCB0 eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAo YXJyYXkpKSk7CistICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9IChlbnVtIHJh bmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CistIAor LSAgKnBvcyArPSAzOworLQorLSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQg fHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGxvd19ib3VuZCA9IFRZ UEVfTE9XX0JPVU5EIChyYW5nZSk7CistICBlbHNlCistICAgIGxvd19ib3VuZCA9IHZhbHVlX2Fz X2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7Cisr ICBzdHJ1Y3QgdmFsdWUgKm5ld19hcnJheSA9IGFycmF5OworKyAgc3RydWN0IHR5cGUgKmFycmF5 X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKKysgIHN0cnVj dCB0eXBlICplbHRfdHlwZTsKKysKKysgIHR5cGVkZWYgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQor KyAgeworKyAgICBlbnVtIHJhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7CisrICAgIExPTkdFU1Qg bG93LCBoaWdoLCBzdHJpZGU7CisrICB9IHN1YnNjcmlwdF9yYW5nZTsKKysKKysgIHR5cGVkZWYg ZW51bSBzdWJzY3JpcHRfa2luZAorKyAgeworKyAgICBTVUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUu Zy4gIihsb3dib3VuZDpoaWdoYm91bmQpIiAgKi8KKysgICAgU1VCU0NSSVBUX0lOREVYICAgIC8q IGUuZy4gIihsaXRlcmFsKSIgICovCisrICB9IGtpbmQ7CisrCisrICAvKiBMb2NhbCBzdHJ1Y3Qg dG8gaG9sZCB1c2VyIGRhdGEgZm9yIEZvcnRyYW4gc3ViYXJyYXkgZGltZW5zaW9ucy4gICovCisr ICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlCisrICB7CisrICAgIC8qIEZvciBldmVyeSBkaW1lbnNp b24sIHdlIGFyZSBlaXRoZXIgd29ya2luZyBvbiBhIHJhbmdlIG9yIGFuIGluZGV4CisrICAgICAg IGV4cHJlc3Npb24sIHNvIHdlIHN0b3JlIHRoaXMgaW5mbyBzZXBhcmF0ZWx5IGZvciBsYXRlci4g ICovCisrICAgIGVudW0gc3Vic2NyaXB0X2tpbmQga2luZDsKKysKKysgICAgLyogV2UgYWxzbyBz dG9yZSBlaXRoZXIgdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZCBpbmZvLCBvciB0aGUgaW5kZXgK KysgICAgICAgbnVtYmVyLiAgQmVmb3JlIGV2YWx1YXRpb24gb2YgdGhlIGlucHV0IHZhbHVlcywg d2UgZG8gbm90IGtub3cgaWYgd2UgYXJlCisrICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24gYSBy YW5nZSBvZiByYW5nZXMsIG9yIGFuIGluZGV4IGluIGEgcmFuZ2UuICBTbyBhcyBhCisrICAgICAg IGZpcnN0IHN0ZXAgd2Ugc3RvcmUgYWxsIGlucHV0IGluIGEgdW5pb24uICBUaGUgYXJyYXkgY2Fs Y3VsYXRpb24gaXRzZWxmCisrICAgICAgIGRlYWxzIHdpdGggdGhpcyBsYXRlciBvbi4gICovCisr ICAgIHVuaW9uIGVsZW1lbnRfcmFuZ2UKKysgICAgeworKyAgICAgIHN1YnNjcmlwdF9yYW5nZSBy YW5nZTsKKysgICAgICBMT05HRVNUIG51bWJlcjsKKysgICAgfSBVOworKyAgfSAqc3Vic2NyaXB0 X2FycmF5OworKworKyAgLyogQ2hlY2sgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlk ZWQgYnkgdGhlIHVzZXIgbWF0Y2hlcworKyAgICAgdGhlIG51bWJlciBvZiBkaW1lbnNpb24gb2Yg dGhlIGFycmF5LiAgQSBzdHJpbmcgaGFzIG9ubHkgb25lCisrICAgICBkaW1lbnNpb24uICAqLwor KyAgaWYgKG5hcmdzICE9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHZhbHVlX3R5cGUgKG5ld19hcnJh eSkpKQorKyAgICBlcnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiKSk7CisrCisr ICBzdWJzY3JpcHRfYXJyYXkgPSAoc3RydWN0IHN1YnNjcmlwdF9zdG9yZSopIGFsbG9jYSAoc2l6 ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdzKTsKKysKKysgIC8qIFBhcnNlIHRoZSB1c2Vy IGlucHV0IGludG8gdGhlIFNVQlNDUklQVF9BUlJBWSB0byBzdG9yZSBpdC4gIFdlIG5lZWQKKysg ICAgIHRvIGV2YWx1YXRlIGl0IGZpcnN0LCBhcyB0aGUgaW5wdXQgaXMgZnJvbSBsZWZ0LXRvLXJp Z2h0LiAgVGhlCisrICAgICBhcnJheSBpcyBzdG9yZWQgZnJvbSByaWdodC10by1sZWZ0LiAgU28g d2UgaGF2ZSB0byB1c2UgdGhlIHVzZXIKKysgICAgIGlucHV0IGluIHJldmVyc2Ugb3JkZXIuICBM YXRlciBvbiwgd2UgbmVlZCB0aGUgaW5wdXQgaW5mb3JtYXRpb24gdG8KKysgICAgIHJlLWNhbGN1 bGF0ZSB0aGUgb3V0cHV0IGFycmF5LiAgRm9yIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5cywgd2UK KysgICAgIGNhbiBiZSBkZWFsaW5nIHdpdGggYW55IHBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mIHJh bmdlcyBhbmQgaW5kaWNlcworKyAgICAgZm9yIGV2ZXJ5IGRpbWVuc2lvbi4gICovCisrICBmb3Ig KGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKKysgICAgeworKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRf c3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKKyAKKy0gIGlmIChyYW5nZV90eXBl ID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVM VCkKKy0gICAgaGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2UpOworLSAgZWxzZQor LSAgICBoaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZ UEUsIGV4cCwgcG9zLCBub3NpZGUpKTsKKysgICAgICAvKiBUaGUgdXNlciBpbnB1dCBpcyBhIHJh bmdlLCB3aXRoIG9yIHdpdGhvdXQgbG93ZXIgYW5kIHVwcGVyIGJvdW5kLgorKwkgRS5nLjogInAg YXJyeSgyOjUpIiwgInAgYXJyeSggOjUpIiwgInAgYXJyeSggOiApIiwgZXRjLiAgKi8KKysgICAg ICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKKysJeworKwkgIGludCBw YyA9ICgqcG9zKSArIDE7CisrCSAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsKKysKKysJICBpbmRl eC0+a2luZCA9IFNVQlNDUklQVF9SQU5HRTsKKysJICByYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsK KysKKysJICAqcG9zICs9IDM7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFu Z2VfdHlwZSkgZXhwLT5lbHRzW3BjXS5sb25nY29uc3Q7CisrCisrCSAgLyogSWYgYSBsb3dlciBi b3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFzIGJlZW4KKysJICAgICBz ZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVsdCBzdGFjay4gIFNhbWUg Zm9yCisrCSAgICAgdXBwZXIgYm91bmQuICAqLworKwkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90 eXBlICYgU1VCQVJSQVlfTE9XX0JPVU5EKQorKwkgICAgICA9PSBTVUJBUlJBWV9MT1dfQk9VTkQp CisrCSAgICByYW5nZS0+bG93ID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxM X1RZUEUsIGV4cCwKKysJCQkJCQkJIHBvcywgbm9zaWRlKSk7CisrCSAgaWYgKChyYW5nZS0+Zjkw X3JhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKQorKwkgICAgICA9PSBTVUJBUlJBWV9I SUdIX0JPVU5EKQorKwkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9z dWJleHAgKE5VTExfVFlQRSwgZXhwLAorKwkJCQkJCQkgIHBvcywgbm9zaWRlKSk7CisrCisrCSAg LyogQXNzaWduIHRoZSB1c2VyJ3Mgc3RyaWRlIHZhbHVlIGlmIHByb3ZpZGVkLiAgKi8KKysJICBp ZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFSUkFZX1NUUklERSkgPT0gU1VCQVJSQVlf U1RSSURFKQorKwkgICAgcmFuZ2UtPnN0cmlkZSA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1 YmV4cCAoTlVMTF9UWVBFLCBleHAsCisrCQkJCQkJCSAgICAgcG9zLCBub3NpZGUpKTsKKysKKysJ ICAvKiBBc3NpZ24gdGhlIGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCisrCSAgZWxzZQor KwkgICAgcmFuZ2UtPnN0cmlkZSA9IDE7CisrCisrCSAgLyogQ2hlY2sgdGhlIHByb3ZpZGVkIHN0 cmlkZSB2YWx1ZSBpcyBpbGxlZ2FsLCBha2EgJzAnLiAgKi8KKysJICBpZiAocmFuZ2UtPnN0cmlk ZSA9PSAwKQorKwkgICAgZXJyb3IgKF8oIlN0cmlkZSBtdXN0IG5vdCBiZSAwIikpOworKwl9Cisr ICAgICAgLyogVXNlciBpbnB1dCBpcyBhbiBpbmRleC4gIEUuZy46ICJwIGFycnkoNSkiLiAgKi8K KysgICAgICBlbHNlCisrCXsKKysJICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKysKKysJICBpbmRleC0+ a2luZCA9IFNVQlNDUklQVF9JTkRFWDsKKysKKysJICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlw dDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgVGhpcworKwkgICAgIGVuc3Vy ZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBwcm92aWRlZCBpbmRleC4gICovCisrCSAgdmFsID0gZXZh bHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOworKwkgIGluZGV4 LT5VLm51bWJlciA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7CisrCX0KKysKKysgICAgfQorKworKyAg LyogVHJhdmVyc2UgdGhlIGFycmF5IGZyb20gcmlnaHQgdG8gbGVmdCBhbmQgc2V0IHRoZSBoaWdo IGFuZCBsb3cgYm91bmRzCisrICAgICBmb3IgbGF0ZXIgdXNlLiAgKi8KKysgIGZvciAoaSA9IG5h cmdzIC0gMTsgaSA+PSAwOyBpLS0pCisrICAgIHsKKysgICAgICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0 b3JlICppbmRleCA9ICZzdWJzY3JpcHRfYXJyYXlbaV07CisrICAgICAgc3RydWN0IHR5cGUgKmlu ZGV4X3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpOworKworKyAgICAgIHN3aXRj aCAoaW5kZXgtPmtpbmQpCisrCXsKKysJY2FzZSBTVUJTQ1JJUFRfUkFOR0U6CisrCSAgeworKwor KwkgICAgLyogV2hlbiB3ZSBoaXQgdGhlIGZpcnN0IHJhbmdlIHNwZWNpZmllZCBieSB0aGUgdXNl ciwgd2UgbXVzdAorKwkgICAgICAgdHJlYXQgYW55IHN1YnNlcXVlbnQgdXNlciBlbnRyeSBhcyBh IHJhbmdlLiAgV2Ugc2ltcGx5CisrCSAgICAgICBpbmNyZW1lbnQgRElNX0NPVU5UIHdoaWNoIHRl bGxzIHVzIGhvdyBtYW55IHRpbWVzIHdlIGFyZQorKwkgICAgICAgY2FsbGluZyBWQUxVRV9TTElD RV8xLiAgKi8KKysJICAgIHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7 CisrCisrCSAgICAvKiBJZiBubyBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIs IHdlIHRha2UgdGhlCisrCSAgICAgICBkZWZhdWx0IGJvdW5kYXJ5LiAgU2FtZSBmb3IgdGhlIGhp Z2ggYm91bmQuICAqLworKwkgICAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUgJiBTVUJBUlJB WV9MT1dfQk9VTkQpID09IDApCisrCSAgICAgIHJhbmdlLT5sb3cgPSBUWVBFX0xPV19CT1VORCAo aW5kZXhfdHlwZSk7CisrCisrCSAgICBpZiAoKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSAmIFNVQkFS UkFZX0hJR0hfQk9VTkQpID09IDApCisrCSAgICAgIHJhbmdlLT5oaWdoID0gVFlQRV9ISUdIX0JP VU5EIChpbmRleF90eXBlKTsKKysKKysJICAgIC8qIEJvdGggdXNlciBwcm92aWRlZCBsb3cgYW5k IGhpZ2ggYm91bmQgaGF2ZSB0byBiZSBpbnNpZGUgdGhlCisrCSAgICAgICBhcnJheSBib3VuZHMu ICBUaHJvdyBhbiBlcnJvciBpZiBub3QuICAqLworKwkgICAgaWYgKHJhbmdlLT5sb3cgPCBUWVBF X0xPV19CT1VORCAoaW5kZXhfdHlwZSkKKysJCXx8IHJhbmdlLT5sb3cgPiBUWVBFX0hJR0hfQk9V TkQgKGluZGV4X3R5cGUpCisrCQl8fCByYW5nZS0+aGlnaCA8IFRZUEVfTE9XX0JPVU5EIChpbmRl eF90eXBlKQorKwkJfHwgcmFuZ2UtPmhpZ2ggPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUp KQorKwkgICAgICBlcnJvciAoXygicHJvdmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3Vu ZChzKSIpKTsKKysKKysJICAgIC8qIEZvciBhIG5lZ2F0aXZlIHN0cmlkZSB0aGUgbG93ZXIgYm91 bmRhcnkgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUKKysJICAgICAgIHVwcGVyIGJvdW5kYXJ5Lgor KwkgICAgICAgRm9yIGEgcG9zaXRpdmUgc3RyaWRlIHRoZSBsb3dlciBib3VuZGFyeSBtdXN0IGJl IHNtYWxsZXIgdGhhbiB0aGUKKysJICAgICAgIHVwcGVyIGJvdW5kYXJ5LiAgKi8KKysJICAgIGlm ICgocmFuZ2UtPnN0cmlkZSA8IDAgJiYgcmFuZ2UtPmxvdyA8IHJhbmdlLT5oaWdoKQorKwkJfHwg KHJhbmdlLT5zdHJpZGUgPiAwICYmIHJhbmdlLT5sb3cgPiByYW5nZS0+aGlnaCkpCisrCSAgICAg IGVycm9yIChfKCJXcm9uZyB2YWx1ZSBwcm92aWRlZCBmb3Igc3RyaWRlIGFuZCBib3VuZGFyaWVz IikpOworKworKwkgIH0KKysJICBicmVhazsKKysKKysJY2FzZSBTVUJTQ1JJUFRfSU5ERVg6Cisr CSAgYnJlYWs7CisrCisrCX0KKysKKysgICAgICAgYXJyYXlfdHlwZSA9IFRZUEVfVEFSR0VUX1RZ UEUgKGFycmF5X3R5cGUpOworKyAgICB9CisrCisrICAvKiBSZXNldCBBUlJBWV9UWVBFIGJlZm9y ZSBzbGljaW5nLiovCisrICBhcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo bmV3X2FycmF5KSk7CisrCisrICAvKiBUcmF2ZXJzZSB0aGUgYXJyYXkgZnJvbSByaWdodCB0byBs ZWZ0IGFuZCBldmFsdWF0ZSBlYWNoIGNvcnJlc3BvbmRpbmcKKysgICAgIHVzZXIgaW5wdXQuICBW QUxVRV9TVUJTQ1JJUFQgaXMgY2FsbGVkIGZvciBldmVyeSBpbmRleCwgdW50aWwgYSByYW5nZQor KyAgICAgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQuICBBZnRlciBhIHJhbmdlIGV4cHJlc3Npb24g aGFzIGJlZW4gZXZhbHVhdGVkLAorKyAgICAgZXZlcnkgc3Vic2VxdWVudCBleHByZXNzaW9uIGlz IGFsc28gdHJlYXRlZCBhcyBhIHJhbmdlLiAgKi8KKysgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+ PSAwOyBpLS0pCisrICAgIHsKKysgICAgICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlICppbmRleCA9 ICZzdWJzY3JpcHRfYXJyYXlbaV07CisrICAgICAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUgPSBU WVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpOworKworKyAgICAgIHN3aXRjaCAoaW5kZXgtPmtp bmQpCisrCXsKKysJY2FzZSBTVUJTQ1JJUFRfUkFOR0U6CisrCSAgeworKworKwkgICAgLyogV2hl biB3ZSBoaXQgdGhlIGZpcnN0IHJhbmdlIHNwZWNpZmllZCBieSB0aGUgdXNlciwgd2UgbXVzdAor KwkgICAgICAgdHJlYXQgYW55IHN1YnNlcXVlbnQgdXNlciBlbnRyeSBhcyBhIHJhbmdlLiAgV2Ug c2ltcGx5CisrCSAgICAgICBpbmNyZW1lbnQgRElNX0NPVU5UIHdoaWNoIHRlbGxzIHVzIGhvdyBt YW55IHRpbWVzIHdlIGFyZQorKwkgICAgICAgY2FsbGluZyBWQUxVRV9TTElDRV8xLiAgKi8KKysJ ICAgIHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7CisrCisrCSAgICAv KiBESU1fQ09VTlQgY291bnRzIGV2ZXJ5IHVzZXIgYXJndW1lbnQgdGhhdCBpcyB0cmVhdGVkIGFz IGEgcmFuZ2UuCisrCSAgICAgICBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgZXhwcmVzc2lvbnMgbGlr ZSAncHJpbnQgYXJyYXkoNywgODo5KS4KKysJICAgICAgIEhlcmUgdGhlIGZpcnN0IGFyZ3VtZW50 IGlzIGEgbGl0ZXJhbCwgYnV0IG11c3QgYmUgdHJlYXRlZCBhcyBhCisrCSAgICAgICByYW5nZSBh cmd1bWVudCB0byBhbGxvdyB0aGUgY29ycmVjdCBvdXRwdXQgcmVwcmVzZW50YXRpb24uICAqLwor KwkgICAgZGltX2NvdW50Kys7CisrCisrCSAgICBuZXdfYXJyYXkKKysJICAgICAgPSB2YWx1ZV9z bGljZV8xIChuZXdfYXJyYXksIHJhbmdlLT5sb3csCisrCQkJICAgICAgIHJhbmdlLT5oaWdoIC0g cmFuZ2UtPmxvdyArIDEsCisrCQkJICAgICAgIHJhbmdlLT5zdHJpZGUsIGRpbV9jb3VudCk7Cisr CSAgfQorKwkgIGJyZWFrOworKworKwljYXNlIFNVQlNDUklQVF9JTkRFWDoKKysJICB7CisrCSAg ICAvKiBESU1fQ09VTlQgb25seSBzdGF5cyAnMCcgd2hlbiBubyByYW5nZSBhcmd1bWVudCB3YXMg cHJvY2Vzc2VkCisrCSAgICAgICBiZWZvcmUsIHN0YXJ0aW5nIGZyb20gdGhlIGxhc3QgZGltZW5z aW9uLiAgVGhpcyB3YXkgd2UgY2FuCisrCSAgICAgICByZWR1Y2UgdGhlIG51bWJlciBvZiBkaW1l bnNpb25zIGZyb20gdGhlIHJlc3VsdCBhcnJheS4KKysJICAgICAgIEhvd2V2ZXIsIGlmIGEgcmFu Z2UgaGFzIGJlZW4gcHJvY2Vzc2VkIGJlZm9yZSBhbiBpbmRleCwgd2UKKysJICAgICAgIHRyZWF0 IHRoZSBpbmRleCBsaWtlIGEgcmFuZ2Ugd2l0aCBlcXVhbCBsb3ctIGFuZCBoaWdoIGJvdW5kcwor KwkgICAgICAgdG8gZ2V0IHRoZSB2YWx1ZSBvZmZzZXQgcmlnaHQuICAqLworKwkgICAgaWYgKGRp bV9jb3VudCA9PSAwKQorKwkgICAgICBuZXdfYXJyYXkKKysJICAgICAgICA9IHZhbHVlX3N1YnNj cmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRleC0+VS5udW1iZXIsCisrCQkJCQkgICAgZjc3 X2dldF9sb3dlcmJvdW5kICh2YWx1ZV90eXBlCisrCQkJCQkJCQkgIChuZXdfYXJyYXkpKSk7Cisr CSAgICBlbHNlCisrCSAgICAgIHsKKysJCWRpbV9jb3VudCsrOworKworKwkJLyogV2UgbWlnaHQg ZW5kIHVwIGhlcmUsIGJlY2F1c2Ugd2UgaGF2ZSB0byB0cmVhdCB0aGUgcHJvdmlkZWQKKysJCSAg IGluZGV4IGxpa2UgYSByYW5nZS4gQnV0IG5vdyBWQUxVRV9TVUJTQ1JJUFRFRF9SVkFMVUUKKysJ CSAgIGNhbm5vdCBkbyB0aGUgcmFuZ2UgY2hlY2tzIGZvciB1cy4gU28gd2UgaGF2ZSB0byBtYWtl IHN1cmUKKysJCSAgIG91cnNlbHZlcyB0aGF0IHRoZSB1c2VyIHByb3ZpZGVkIGluZGV4IGlzIGlu c2lkZSB0aGUKKysJCSAgIGFycmF5IGJvdW5kcy4gIFRocm93IGFuIGVycm9yIGlmIG5vdC4gICov CisrCQlpZiAoaW5kZXgtPlUubnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCisr CQkgICAgJiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkK KysJCSAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocyki KSk7CisrCisrCQlpZiAoaW5kZXgtPlUubnVtYmVyID4gVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5 cGUpCisrCQkgICAgJiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90 eXBlKSkKKysJCSAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91 bmQocykiKSk7CisrCisrCQluZXdfYXJyYXkgPSB2YWx1ZV9zbGljZV8xIChuZXdfYXJyYXksCisr CQkJCQkgICBpbmRleC0+VS5udW1iZXIsCisrCQkJCQkgICAxLCAvKiBDT1VOVCBpcyAnMScgZWxl bWVudCAgKi8KKysJCQkJCSAgIDEsIC8qIFNUUklERSBzZXQgdG8gJzEnICAqLworKwkJCQkJICAg ZGltX2NvdW50KTsKKysJICAgICAgfQorKworKwkgIH0KKysJICBicmVhazsKKysJfQorKyAgICAg IGFycmF5X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKTsKKysgICAgfQorKwor KyAgLyogV2l0aCBESU1fQ09VTlQgPiAxIHdlIGN1cnJlbnRseSBoYXZlIGEgb25lIGRpbWVuc2lv bmFsIGFycmF5LCBidXQgZXhwZWN0CisrICAgICBhbiBhcnJheSBvZiBhcnJheXMsIGRlcGVuZGlu ZyBvbiBob3cgbWFueSByYW5nZXMgaGF2ZSBiZWVuIHByb3ZpZGVkIGJ5CisrICAgICB0aGUgdXNl ci4gIFNvIHdlIG5lZWQgdG8gcmVidWlsZCB0aGUgYXJyYXkgZGltZW5zaW9ucyBmb3IgcHJpbnRp bmcgaXQKKysgICAgIGNvcnJlY3RseS4KKysgICAgIFN0YXJ0aW5nIGZyb20gcmlnaHQgdG8gbGVm dCBpbiB0aGUgdXNlciBpbnB1dCwgYWZ0ZXIgd2UgaGl0IHRoZSBmaXJzdAorKyAgICAgcmFuZ2Ug YXJndW1lbnQgZXZlcnkgc3Vic2VxdWVudCBhcmd1bWVudCBpcyBhbHNvIHRyZWF0ZWQgYXMgYSBy YW5nZS4KKysgICAgIEUuZy46CisrICAgICAicCBhcnkoMywgNywgMjoxNSkiIGluIEZvcnRyYW4g aGFzIG9ubHkgMSBkaW1lbnNpb24sIGJ1dCB3ZSBjYWxjdWxhdGVkIDMKKysgICAgIHJhbmdlcy4K KysgICAgICJwIGFyeSgzLCA3OjEyLCA0KSIgaW4gRm9ydHJhbiBoYXMgb25seSAxIGRpbWVuc2lv biwgYnV0IHdlIGNhbGN1bGF0ZWQgMgorKyAgICAgcmFuZ2VzLgorKyAgICAgInAgYXJ5KDI6NCwg NSwgNykiIGluIEZvcnRyYW4gaGFzIG9ubHkgMSBkaW1lbnNpb24sIGFuZCB3ZSBjYWxjdWxhdGVk IDEKKysgICAgIHJhbmdlLiAgKi8KKysgIGlmIChkaW1fY291bnQgPiAxKQorKyAgICB7CisrICAg ICAgc3RydWN0IHZhbHVlICp2ID0gTlVMTDsKKysKKysgICAgICBlbHRfdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOworKworKyAgICAgIC8qIEV2ZXJ5IFNV QlNDUklQVF9SQU5HRSBpbiB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMgYW4gYWN0dWFsIHJhbmdl IGluCisrCSB0aGUgb3V0cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2UgdGhlIFNVQlNDUklQVF9B UlJBWSBhZ2FpbiwgbG9va2luZworKwkgZm9yIGEgcmFuZ2UgZW50cnkuICBXaGVuIHdlIGZpbmQg b25lLCB3ZSB1c2UgdGhlIHJhbmdlIGluZm8gdG8gY3JlYXRlCisrCSBhbiBhZGRpdGlvbmFsIHJh bmdlX3R5cGUgdG8gc2V0IHRoZSBjb3JyZWN0IGJvdW5kcyBhbmQgZGltZW5zaW9ucyBmb3IKKysJ IHRoZSBvdXRwdXQgYXJyYXkuICBJbiBhZGRpdGlvbiwgd2UgbWF5IGhhdmUgYSBzdHJpZGUgdmFs dWUgdGhhdCBpcyBub3QKKysJICcxJywgZm9yY2luZyB1cyB0byBhZGp1c3QgdGhlIG51bWJlciBv ZiBlbGVtZW50cyBpbiBhIHJhbmdlLCBhY2NvcmRpbmcKKysJIHRvIHRoZSBzdHJpZGUgdmFsdWUu ICAqLworKyAgICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorKwl7CisrCSAgc3RydWN0 IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOworKworKwkgIGlm IChpbmRleC0+a2luZCA9PSBTVUJTQ1JJUFRfUkFOR0UpCisrCSAgICB7CisrCSAgICAgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlLCAqaW50ZXJpbV9hcnJheV90eXBlOworKworKwkgICAgICBpbnQg bmV3X2xlbmd0aDsKKyAKKy0gIHJldHVybiB2YWx1ZV9zbGljZSAoYXJyYXksIGxvd19ib3VuZCwg aGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpOworKwkgICAgICAvKiBUaGUgbGVuZ3RoIG9mIGEg c3ViLWRpbWVuc2lvbiB3aXRoIGFsbCBlbGVtZW50cyBiZXR3ZWVuIHRoZQorKwkJIGJvdW5kcyBw bHVzIHRoZSBzdGFydCBlbGVtZW50IGl0c2VsZi4gIEl0IG1heSBiZSBtb2RpZmllZCBieQorKwkJ IGEgdXNlciBwcm92aWRlZCBzdHJpZGUgdmFsdWUuICAqLworKwkgICAgICBuZXdfbGVuZ3RoID0g aW5kZXgtPlUucmFuZ2UuaGlnaCAtIGluZGV4LT5VLnJhbmdlLmxvdzsKKysKKysJICAgICAgbmV3 X2xlbmd0aCAvPSBpbmRleC0+VS5yYW5nZS5zdHJpZGU7CisrCisrCSAgICAgIHJhbmdlX3R5cGUK KysJCT0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLAorKwkJCQkJICAgIGVsdF90eXBl LAorKwkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmxvdywKKysJCQkJCSAgICBpbmRleC0+VS5yYW5n ZS5sb3cgKyBuZXdfbGVuZ3RoKTsKKysKKysJICAgICAgaW50ZXJpbV9hcnJheV90eXBlID0gY3Jl YXRlX2FycmF5X3R5cGUgKE5VTEwsCisrCQkJCQkJICAgICAgZWx0X3R5cGUsCisrCQkJCQkJICAg ICAgcmFuZ2VfdHlwZSk7CisrCisrCSAgICAgIFRZUEVfQ09ERSAoaW50ZXJpbV9hcnJheV90eXBl KQorKwkJPSBUWVBFX0NPREUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOworKworKwkgICAgICB2 ID0gYWxsb2NhdGVfdmFsdWUgKGludGVyaW1fYXJyYXlfdHlwZSk7CisrCisrCSAgICAgIGVsdF90 eXBlID0gdmFsdWVfdHlwZSAodik7CisrCSAgICB9CisrCisrCX0KKysgICAgICB2YWx1ZV9jb250 ZW50c19jb3B5ICh2LCAwLCBuZXdfYXJyYXksIDAsIFRZUEVfTEVOR1RIIChlbHRfdHlwZSkpOwor KyAgICAgIHJldHVybiB2OworKyAgICB9CisrCisrICByZXR1cm4gbmV3X2FycmF5OworIH0KKyAK KyAKK0BAIC0xODEwLDE5ICsyMTA2LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgICAgICAgc3dpdGNoIChjb2RlKQorIAl7CisgCWNhc2Ug VFlQRV9DT0RFX0FSUkFZOgorLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JB TkdFKQorLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5v c2lkZSk7CistCSAgZWxzZQorLQkgICAgZ290byBtdWx0aV9mNzdfc3Vic2NyaXB0OworLQorIAlj YXNlIFRZUEVfQ09ERV9TVFJJTkc6CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0g T1BfUkFOR0UpCistCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBv cywgbm9zaWRlKTsKKy0JICBlbHNlCistCSAgICB7CistCSAgICAgIGFyZzIgPSBldmFsdWF0ZV9z dWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7CistCSAgICAgIHJldHVybiB2 YWx1ZV9zdWJzY3JpcHQgKGFyZzEsIHZhbHVlX2FzX2xvbmcgKGFyZzIpKTsKKy0JICAgIH0KKysJ ICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lk ZSk7CisgCisgCWNhc2UgVFlQRV9DT0RFX1BUUjoKKyAJY2FzZSBUWVBFX0NPREVfRlVOQzoKK0BA IC0yMjIzLDQ5ICsyNTA4LDYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlw ZSAqZXhwZWN0X3R5cGUsCisgCX0KKyAgICAgICByZXR1cm4gKGFyZzEpOworIAorLSAgICBtdWx0 aV9mNzdfc3Vic2NyaXB0OgorLSAgICAgIHsKKy0JTE9OR0VTVCBzdWJzY3JpcHRfYXJyYXlbTUFY X0ZPUlRSQU5fRElNU107CistCWludCBuZGltZW5zaW9ucyA9IDEsIGk7CistCXN0cnVjdCB2YWx1 ZSAqYXJyYXkgPSBhcmcxOworLQorLQlpZiAobmFyZ3MgPiBNQVhfRk9SVFJBTl9ESU1TKQorLQkg IGVycm9yIChfKCJUb28gbWFueSBzdWJzY3JpcHRzIGZvciBGNzcgKCVkIE1heCkiKSwgTUFYX0ZP UlRSQU5fRElNUyk7CistCistCW5kaW1lbnNpb25zID0gY2FsY19mNzdfYXJyYXlfZGltcyAodHlw ZSk7CistCistCWlmIChuYXJncyAhPSBuZGltZW5zaW9ucykKKy0JICBlcnJvciAoXygiV3Jvbmcg bnVtYmVyIG9mIHN1YnNjcmlwdHMiKSk7CistCistCWdkYl9hc3NlcnQgKG5hcmdzID4gMCk7Cist CistCS8qIE5vdyB0aGF0IHdlIGtub3cgd2UgaGF2ZSBhIGxlZ2FsIGFycmF5IHN1YnNjcmlwdCBl eHByZXNzaW9uIAorLQkgICBsZXQgdXMgYWN0dWFsbHkgZmluZCBvdXQgd2hlcmUgdGhpcyBlbGVt ZW50IGV4aXN0cyBpbiB0aGUgYXJyYXkuICAqLworLQorLQkvKiBUYWtlIGFycmF5IGluZGljZXMg bGVmdCB0byByaWdodC4gICovCistCWZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorLQkgIHsK Ky0JICAgIC8qIEV2YWx1YXRlIGVhY2ggc3Vic2NyaXB0OyBpdCBtdXN0IGJlIGEgbGVnYWwgaW50 ZWdlciBpbiBGNzcuICAqLworLQkgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJj aW9uIChleHAsIHBvcywgbm9zaWRlKTsKKy0KKy0JICAgIC8qIEZpbGwgaW4gdGhlIHN1YnNjcmlw dCBhcnJheS4gICovCistCistCSAgICBzdWJzY3JpcHRfYXJyYXlbaV0gPSB2YWx1ZV9hc19sb25n IChhcmcyKTsKKy0JICB9CistCistCS8qIEludGVybmFsIHR5cGUgb2YgYXJyYXkgaXMgYXJyYW5n ZWQgcmlnaHQgdG8gbGVmdC4gICovCistCWZvciAoaSA9IG5hcmdzOyBpID4gMDsgaS0tKQorLQkg IHsKKy0JICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYXJyYXkpKTsKKy0JICAgIExPTkdFU1QgaW5kZXggPSBzdWJzY3JpcHRfYXJyYXlbaSAt IDFdOworLQorLQkgICAgYXJyYXkgPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBp bmRleCwKKy0JCQkJCSAgICAgIGY3N19nZXRfbG93ZXJib3VuZCAoYXJyYXlfdHlwZSkpOworLQkg IH0KKy0KKy0JcmV0dXJuIGFycmF5OworLSAgICAgIH0KKy0KKyAgICAgY2FzZSBCSU5PUF9MT0dJ Q0FMX0FORDoKKyAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwg cG9zLCBub3NpZGUpOworICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQorQEAgLTMxMjMs NiArMzM2NSw5IEBAIGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90eXBl KQorICAgaW50IG5kaW1lbiA9IDE7CisgICBzdHJ1Y3QgdHlwZSAqdG1wX3R5cGU7CisgCisrICBp ZiAoVFlQRV9DT0RFIChhcnJheV90eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKQorKyAgICByZXR1 cm4gMTsKKysKKyAgIGlmICgoVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfQVJS QVkpKQorICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5 IHR5cGUiKSk7CisgCitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQu YworaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKKy0tLSBhL2dkYi9leHBwcmludC5jCisr KysgYi9nZGIvZXhwcHJpbnQuYworQEAgLTU2OCwxMiArNTY4LDEwIEBAIHByaW50X3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCisgCSpwb3MgKz0gMjsK KyAKKyAJZnB1dHNfZmlsdGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlw ZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VO RF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNV QkFSUkFZX0xPV19CT1VORCkKKyAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBS RUNfQUJPVkVfQ09NTUEpOworIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKKy0JaWYg KHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0g Tk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JP VU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3Ms IHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7CisgCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVh bSk7CisgCXJldHVybjsKK0BAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlf c3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCisgCXN3aXRjaCAocmFuZ2VfdHlw ZSkKKyAJICB7CistCSAgY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJB WV9OT05FX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFt KTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBT VUJBUlJBWV9ISUdIX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi5FWFAn Iiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgSElHSF9CT1VORF9ERUZBVUxUOgor KwkgIGNhc2UgU1VCQVJSQVlfTE9XX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5n ZSAnRVhQLi4nIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTk9ORV9CT1VORF9E RUZBVUxUOgorKwkgIGNhc2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9V TkQpOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsK KyAJICAgIGJyZWFrOworIAkgIGRlZmF1bHQ6CitAQCAtMTA3MiwxMSArMTA3MCw5IEBAIGR1bXBf c3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCSAgICBicmVh azsKKyAJICB9CisgCistCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorLQkg ICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlw ZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQorIAkgIGVsdCA9 IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9X X0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxU KQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9I SUdIX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKyAg ICAgICB9CisgICAgICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dk Yi9leHByZXNzaW9uLmgKK2luZGV4IDQ5NTJkODQuLjM0Y2E1NGIgMTAwNjQ0CistLS0gYS9nZGIv ZXhwcmVzc2lvbi5oCisrKysgYi9nZGIvZXhwcmVzc2lvbi5oCitAQCAtMTUyLDE3ICsxNTIsMTcg QEAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwK KyAJCQkJIHN0cnVjdCB1aV9maWxlICosIGNoYXIgKik7CisgZXh0ZXJuIHZvaWQgZHVtcF9wcmVm aXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Cisg CistLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxkIGJlIGVt cHR5LCBpbmRpY2F0aW5nCistICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0aGF0IG9m IHRoZSBjb3JyZXNwb25kaW5nIGJvdW5kIG9mIHRoZQorLSAgIGFycmF5IG9yIHN0cmluZy4gIFNv IHdlIGhhdmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKKy0gICBlbnVtZXJhdGlvbiB0 eXBlIGlzIHRvIGlkZW50aWZ5IHRoaXMuICAqLworLSAgIAorKy8qIEluIGFuIE9QX1JBTkdFIGV4 cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5v dC4KKysgICBJbiBhZGRpdGlvbiB0byB0aGlzLCB0aGUgdXNlciBjYW4gYWxzbyBzcGVjaWZ5IGEg c3RyaWRlIHZhbHVlIHRvIGluZGljYXRlZAorKyAgIG9ubHkgY2VydGFpbiBlbGVtZW50cyBvZiB0 aGUgYXJyYXkuICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkKKysgICB0aGlz LiAgKi8KKysKKyBlbnVtIHJhbmdlX3R5cGUKKyAgIHsKKy0gICAgQk9USF9CT1VORF9ERUZBVUxU LAkJLyogIig6KSIgICovCistICAgIExPV19CT1VORF9ERUZBVUxULAkJLyogIig6aGlnaCkiICAq LworLSAgICBISUdIX0JPVU5EX0RFRkFVTFQsCQkvKiAiKGxvdzopIiAgKi8KKy0gICAgTk9ORV9C T1VORF9ERUZBVUxUCQkvKiAiKGxvdzpoaWdoKSIgICovCisrICAgIFNVQkFSUkFZX05PTkVfQk9V TkQgPSAweDAsCQkvKiAiKCA6ICkiICAqLworKyAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEs CQkvKiAiKGxvdzopIiAgKi8KKysgICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MiwJCS8qICIo OmhpZ2gpIiAgKi8KKysgICAgU1VCQVJSQVlfU1RSSURFID0gMHg0CQkvKiAiKDo6c3RyaWRlKSIg ICovCisgICB9OworIAorICNlbmRpZiAvKiAhZGVmaW5lZCAoRVhQUkVTU0lPTl9IKSAqLworZGlm ZiAtLWdpdCBhL2dkYi9mLWV4cC55IGIvZ2RiL2YtZXhwLnkKK2luZGV4IGUzMTQ4YTMuLjcxZjE4 MjMgMTAwNjQ0CistLS0gYS9nZGIvZi1leHAueQorKysrIGIvZ2RiL2YtZXhwLnkKK0BAIC0yNTMs MzEgKzI1Myw2MyBAQCBhcmdsaXN0IDoJc3VicmFuZ2UKKyAgICAKKyBhcmdsaXN0CToJYXJnbGlz dCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKKyAJCQl7IGFyZ2xpc3RfbGVuKys7IH0KKysJ fAlhcmdsaXN0ICcsJyBzdWJyYW5nZQklcHJlYyBBQk9WRV9DT01NQQorKwkJCXsgYXJnbGlzdF9s ZW4rKzsgfQorIAk7CisgCisgLyogVGhlcmUgYXJlIGZvdXIgc29ydHMgb2Ygc3VicmFuZ2UgdHlw ZXMgaW4gRjkwLiAgKi8KKyAKKyBzdWJyYW5nZToJZXhwICc6JyBleHAJJXByZWMgQUJPVkVfQ09N TUEKKy0JCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgCistCQkJ ICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTk9ORV9CT1VORF9ERUZBVUxUKTsKKysJ CQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKKysJCQkgIHdyaXRl X2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLAorKwkJCQkJCSBTVUJBUlJBWV9MT1dfQk9VTkQgfCBT VUJBUlJBWV9ISUdIX0JPVU5EKTsKKyAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUs IE9QX1JBTkdFKTsgfQorIAk7CisgCisgc3VicmFuZ2U6CWV4cCAnOicJJXByZWMgQUJPVkVfQ09N TUEKKyAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKKy0JCQkg IHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBISUdIX0JPVU5EX0RFRkFVTFQpOworKwkJ CSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORCk7Cisg CQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KKyAJOworIAor IHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCisgCQkJeyB3cml0ZV9leHBfZWx0 X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CistCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3Qg KHBzdGF0ZSwgTE9XX0JPVU5EX0RFRkFVTFQpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0 IChwc3RhdGUsIFNVQkFSUkFZX0hJR0hfQk9VTkQpOworIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisgCTsKKyAKKyBzdWJyYW5nZToJJzonCSVwcmVjIEFC T1ZFX0NPTU1BCisgCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 CistCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgQk9USF9CT1VORF9ERUZBVUxU KTsKKysJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9OT05FX0JP VU5EKTsKKysJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQor Kwk7CisrCisrLyogRWFjaCBzdWJyYW5nZSB0eXBlIGNhbiBoYXZlIGEgc3RyaWRlIGFyZ3VtZW50 LiAgKi8KKytzdWJyYW5nZToJZXhwICc6JyBleHAgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQor KwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOworKwkJCSAgd3Jp dGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAorKwkJCQkJCSB8 IFNVQkFSUkFZX0hJR0hfQk9VTkQKKysJCQkJCQkgfCBTVUJBUlJBWV9TVFJJREUpOworKwkJCSAg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisrCTsKKysKKytzdWJy YW5nZToJZXhwICc6JyAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCisrCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CisrCQkJICB3cml0ZV9leHBfZWx0X2xvbmdj c3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5ECisrCQkJCQkJIHwgU1VCQVJSQVlfU1RSSURF KTsKKysJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQorKwk7 CisrCisrc3VicmFuZ2U6CSc6JyBleHAgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQorKwkJCXsg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOworKwkJCSAgd3JpdGVfZXhw X2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0hJR0hfQk9VTkQKKysJCQkJCQkgfCBTVUJB UlJBWV9TVFJJREUpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFO R0UpOyB9CisrCTsKKysKKytzdWJyYW5nZToJJzonICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEK KysJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKKysJCQkgIHdy aXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9TVFJJREUpOworIAkJCSAgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisgCTsKKyAKK2RpZmYgLS1n aXQgYS9nZGIvZi12YWxwcmludC5jIGIvZ2RiL2YtdmFscHJpbnQuYworaW5kZXggMDgyMTVlMi4u ZTZlY2E2YSAxMDA2NDQKKy0tLSBhL2dkYi9mLXZhbHByaW50LmMKKysrKyBiL2dkYi9mLXZhbHBy aW50LmMKK0BAIC0xMjEsOCArMTIxLDE0IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBp bnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBlICp0eXBlLAorIAorICAgaWYgKG5zcyAhPSBuZGlt ZW5zaW9ucykKKyAgICAgeworLSAgICAgIHNpemVfdCBkaW1fc2l6ZSA9IFRZUEVfTEVOR1RIIChU WVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7CisrICAgICAgc2l6ZV90IGRpbV9zaXplOworICAgICAg IHNpemVfdCBvZmZzID0gMDsKKysgICAgICBMT05HRVNUIGJ5dGVfc3RyaWRlID0gYWJzIChUWVBF X0JZVEVfU1RSSURFIChyYW5nZV90eXBlKSk7CisrCisrICAgICAgaWYgKGJ5dGVfc3RyaWRlKQor KyAgICAgICAgZGltX3NpemUgPSBieXRlX3N0cmlkZTsKKysgICAgICBlbHNlCisrICAgICAgICBk aW1fc2l6ZSA9IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7CisgCisgICAg ICAgZm9yIChpID0gbG93ZXJib3VuZDsKKyAJICAgKGkgPCB1cHBlcmJvdW5kICsgMSAmJiAoKmVs dHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKK2RpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBi L2dkYi9nZGJ0eXBlcy5jCitpbmRleCBlYzVjMTdhLi44ODgwMWFjIDEwMDY0NAorLS0tIGEvZ2Ri L2dkYnR5cGVzLmMKKysrKyBiL2dkYi9nZGJ0eXBlcy5jCitAQCAtODM2LDcgKzgzNiw4IEBAIGFs bG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyBzdHJ1Y3QgdHlwZSAqCisg Y3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUg KmluZGV4X3R5cGUsCisgCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQs CistCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpoaWdoX2JvdW5kKQorKwkJICAgY29u c3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqaGlnaF9ib3VuZCwKKysJCSAgIGNvbnN0IHN0cnVjdCBk eW5hbWljX3Byb3AgKnN0cmlkZSkKKyB7CisgICBpZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKKyAg ICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOworQEAgLTg1MSw2 ICs4NTIsNyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBz dHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKKyAgICAgVFlQRV9aQUxMT0MgKHJlc3VsdF90eXBlLCBz aXplb2YgKHN0cnVjdCByYW5nZV9ib3VuZHMpKTsKKyAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0 X3R5cGUpLT5sb3cgPSAqbG93X2JvdW5kOworICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlw ZSktPmhpZ2ggPSAqaGlnaF9ib3VuZDsKKysgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUp LT5zdHJpZGUgPSAqc3RyaWRlOworIAorICAgaWYgKGxvd19ib3VuZC0+a2luZCA9PSBQUk9QX0NP TlNUICYmIGxvd19ib3VuZC0+ZGF0YS5jb25zdF92YWwgPj0gMCkKKyAgICAgVFlQRV9VTlNJR05F RCAocmVzdWx0X3R5cGUpID0gMTsKK0BAIC04NzksNyArODgxLDcgQEAgc3RydWN0IHR5cGUgKgor IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1 Y3QgdHlwZSAqaW5kZXhfdHlwZSwKKyAJCQkgIExPTkdFU1QgbG93X2JvdW5kLCBMT05HRVNUIGhp Z2hfYm91bmQpCisgeworLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2g7CisrICBzdHJ1 Y3QgZHluYW1pY19wcm9wIGxvdywgaGlnaCwgc3RyaWRlOworIAorICAgbG93LmtpbmQgPSBQUk9Q X0NPTlNUOworICAgbG93LmRhdGEuY29uc3RfdmFsID0gbG93X2JvdW5kOworQEAgLTg4Nyw3ICs4 ODksMTEgQEAgY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5 cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAorICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsK KyAgIGhpZ2guZGF0YS5jb25zdF92YWwgPSBoaWdoX2JvdW5kOworIAorLSAgcmVzdWx0X3R5cGUg PSBjcmVhdGVfcmFuZ2VfdHlwZSAocmVzdWx0X3R5cGUsIGluZGV4X3R5cGUsICZsb3csICZoaWdo KTsKKysgIHN0cmlkZS5raW5kID0gUFJPUF9DT05TVDsKKysgIHN0cmlkZS5kYXRhLmNvbnN0X3Zh bCA9IDA7CisrCisrICByZXN1bHRfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChyZXN1bHRfdHlw ZSwgaW5kZXhfdHlwZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb3cs ICZoaWdoLCAmc3RyaWRlKTsKKyAKKyAgIHJldHVybiByZXN1bHRfdHlwZTsKKyB9CitAQCAtMTA4 NCwxNiArMTA5MCwyMCBAQCBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAoc3RydWN0IHR5 cGUgKnJlc3VsdF90eXBlLAorICAgICAgICYmICghdHlwZV9ub3RfYXNzb2NpYXRlZCAocmVzdWx0 X3R5cGUpCisgCSAgJiYgIXR5cGVfbm90X2FsbG9jYXRlZCAocmVzdWx0X3R5cGUpKSkKKyAgICAg eworLSAgICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworKyAgICAgIExPTkdFU1Qg bG93X2JvdW5kLCBoaWdoX2JvdW5kLCBieXRlX3N0cmlkZTsKKyAKKyAgICAgICBpZiAoZ2V0X2Rp c2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkK KyAJbG93X2JvdW5kID0gaGlnaF9ib3VuZCA9IDA7CisgICAgICAgZWxlbWVudF90eXBlID0gY2hl Y2tfdHlwZWRlZiAoZWxlbWVudF90eXBlKTsKKysgICAgICBieXRlX3N0cmlkZSA9IGFicyAoVFlQ RV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSkpOworKworICAgICAgIC8qIEJlIGNhcmVmdWwgd2hl biBzZXR0aW5nIHRoZSBhcnJheSBsZW5ndGguICBBZGEgYXJyYXlzIGNhbiBiZQorIAkgZW1wdHkg YXJyYXlzIHdpdGggdGhlIGhpZ2hfYm91bmQgYmVpbmcgc21hbGxlciB0aGFuIHRoZSBsb3dfYm91 bmQuCisgCSBJbiBzdWNoIGNhc2VzLCB0aGUgYXJyYXkgbGVuZ3RoIHNob3VsZCBiZSB6ZXJvLiAg Ki8KKyAgICAgICBpZiAoaGlnaF9ib3VuZCA8IGxvd19ib3VuZCkKKyAJVFlQRV9MRU5HVEggKHJl c3VsdF90eXBlKSA9IDA7CisrICAgICAgZWxzZSBpZiAoYnl0ZV9zdHJpZGUgPiAwKQorKwlUWVBF X0xFTkdUSCAocmVzdWx0X3R5cGUpID0gYnl0ZV9zdHJpZGUgKiAoaGlnaF9ib3VuZCAtIGxvd19i b3VuZCArIDEpOworICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQorIAlUWVBFX0xFTkdU SCAocmVzdWx0X3R5cGUpID0KKyAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2Jv dW5kICsgMSkgKyA3KSAvIDg7CitAQCAtMTg4OCw3ICsxODk4LDggQEAgcmVzb2x2ZV9keW5hbWlj X3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUsCisgICBDT1JFX0FERFIgdmFsdWU7 CisgICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7 CisgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOworLSAgc3RydWN0IGR5bmFtaWNf cHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CisrICBjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4 cHJfYmF0b24gKmJhdG9uOworKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91bmQsIGhpZ2hf Ym91bmQsIHN0cmlkZTsKKyAKKyAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5 cGUpID09IFRZUEVfQ09ERV9SQU5HRSk7CisgCitAQCAtMTkxOSwxMyArMTkzMCwyMSBAQCByZXNv bHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKKyAgICAgICBo aWdoX2JvdW5kLmtpbmQgPSBQUk9QX1VOREVGSU5FRDsKKyAgICAgICBoaWdoX2JvdW5kLmRhdGEu Y29uc3RfdmFsID0gMDsKKyAgICAgfQorKyAgCisrICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAo ZHluX3JhbmdlX3R5cGUpLT5zdHJpZGU7CisrICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorKyAgICB7CisrICAgICAgc3RyaWRl LmtpbmQgPSBQUk9QX0NPTlNUOworKyAgICAgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVl OworKyAgICB9CisgCisgICBzdGF0aWNfdGFyZ2V0X3R5cGUKKyAgICAgPSByZXNvbHZlX2R5bmFt aWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHluX3JhbmdlX3R5cGUpLAorIAkJ CQkgICAgIGFkZHJfc3RhY2ssIDApOworICAgc3RhdGljX3JhbmdlX3R5cGUgPSBjcmVhdGVfcmFu Z2VfdHlwZSAoY29weV90eXBlIChkeW5fcmFuZ2VfdHlwZSksCisgCQkJCQkgc3RhdGljX3Rhcmdl dF90eXBlLAorLQkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKTsKKysJCQkJCSAmbG93X2Jv dW5kLCAmaGlnaF9ib3VuZCwgJnN0cmlkZSk7CisrCisgICBUWVBFX1JBTkdFX0RBVEEgKHN0YXRp Y19yYW5nZV90eXBlKS0+ZmxhZ19ib3VuZF9ldmFsdWF0ZWQgPSAxOworICAgcmV0dXJuIHN0YXRp Y19yYW5nZV90eXBlOworIH0KK0BAIC0yMTc2LDggKzIxOTUsMTggQEAgcmVzb2x2ZV9keW5hbWlj X3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAorICAgaWYgKHByb3AgIT0gTlVMTAor ICAgICAgICYmIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFj aywgJnZhbHVlKSkKKyAgICAgeworLSAgICAgIFRZUEVfRFlOX1BST1BfQUREUiAocHJvcCkgPSB2 YWx1ZTsKKy0gICAgICBUWVBFX0RZTl9QUk9QX0tJTkQgKHByb3ApID0gUFJPUF9DT05TVDsKKysg ICAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAocmVzb2x2ZWRf dHlwZSk7CisrCisrICAgICAgLyogQWRqdXN0IHRoZSBkYXRhIGxvY2F0aW9uIHdpdGggdGhlIHZh bHVlIG9mIGJ5dGUgc3RyaWRlIGlmIHNldCwgd2hpY2gKKysgICAgICAgICBjYW4gZGVzY3JpYmUg dGhlIHNlcGFyYXRpb24gYmV0d2VlbiBzdWNjZXNzaXZlIGVsZW1lbnRzIGFsb25nIHRoZQorKyAg ICAgICAgIGRpbWVuc2lvbi4gICovCisrICAgICAgaWYgKFRZUEVfQllURV9TVFJJREUgKHJhbmdl X3R5cGUpIDwgMCkKKysgICAgICAgIHZhbHVlICs9IChUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5 cGUpIC0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpKQorKyAgICAgICAgICAgICAgICAgICog VFlQRV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSk7CisrCisrICAgICAgVFlQRV9EQVRBX0xPQ0FU SU9OX0FERFIgKHJlc29sdmVkX3R5cGUpID0gdmFsdWU7CisrICAgICAgVFlQRV9EQVRBX0xPQ0FU SU9OX0tJTkQgKHJlc29sdmVkX3R5cGUpID0gUFJPUF9DT05TVDsKKysKKyAgICAgfQorIAorICAg cmV0dXJuIHJlc29sdmVkX3R5cGU7CitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIv Z2RidHlwZXMuaAoraW5kZXggMmRkYTA3NC4uOTcyMjdjOSAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0 eXBlcy5oCisrKysgYi9nZGIvZ2RidHlwZXMuaAorQEAgLTU3Nyw2ICs1NzcsMTAgQEAgc3RydWN0 IHJhbmdlX2JvdW5kcworIAorICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOworIAorKyAgLyog KiBTdHJpZGUgb2YgcmFuZ2UuICAqLworKworKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7 CisrCisgICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBv ZiBlbGVtZW50cyBpbiB0aGUKKyAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBm aW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCisgCitAQCAtNzQwLDYgKzc0NCw3IEBA IHN0cnVjdCBtYWluX3R5cGUKKyAKKyAgICAgc3RydWN0IHJhbmdlX2JvdW5kcyAqYm91bmRzOwor IAorKworICAgfSBmbGRzX2JuZHM7CisgCisgICAvKiAqIFNsb3QgdG8gcG9pbnQgdG8gYWRkaXRp b25hbCBsYW5ndWFnZS1zcGVjaWZpYyBmaWVsZHMgb2YgdGhpcworQEAgLTEyNTUsNiArMTI2MCwx NSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsK KyAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+aGlnaC5raW5kCisgI2RlZmluZSBUWVBF X0xPV19CT1VORF9LSU5EKHJhbmdlX3R5cGUpIFwKKyAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90 eXBlKS0+bG93LmtpbmQKKysjZGVmaW5lIFRZUEVfQllURV9TVFJJREUocmFuZ2VfdHlwZSkgXAor KyAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5zdHJpZGUuZGF0YS5jb25zdF92YWwKKysj ZGVmaW5lIFRZUEVfQllURV9TVFJJREVfQkxPQ0socmFuZ2VfdHlwZSkgXAorKyAgVFlQRV9SQU5H RV9EQVRBKHJhbmdlX3R5cGUpLT5zdHJpZGUuZGF0YS5sb2NleHByCisrI2RlZmluZSBUWVBFX0JZ VEVfU1RSSURFX0xPQ0xJU1QocmFuZ2VfdHlwZSkgXAorKyAgVFlQRV9SQU5HRV9EQVRBKHJhbmdl X3R5cGUpLT5zdHJpZGUuZGF0YS5sb2NsaXN0CisrI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFX0tJ TkQocmFuZ2VfdHlwZSkgXAorKyAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5zdHJpZGUu a2luZAorKworIAorIC8qIFByb3BlcnR5IGFjY2Vzc29ycyBmb3IgdGhlIHR5cGUgZGF0YSBsb2Nh dGlvbi4gICovCisgI2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT04odGhpc3R5cGUpIFwKK0BAIC0x Mjg5LDYgKzEzMDMsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1 Y3QgdHlwZSAqKTsKKyAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQ RShhcnJheXR5cGUpKQorICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRFRklO RUQoYXJyYXl0eXBlKSBcCisgICAgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhf VFlQRShhcnJheXR5cGUpKQorKyNkZWZpbmUgVFlQRV9BUlJBWV9TVFJJREVfSVNfVU5ERUZJTkVE KGFycmF5dHlwZSkgXAorKyAgIChUWVBFX0JZVEVfU1RSSURFKFRZUEVfSU5ERVhfVFlQRShhcnJh eXR5cGUpKSA9PSAwKQorKworIAorICNkZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9WQUxV RShhcnJheXR5cGUpIFwKKyAgICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgoYXJy YXl0eXBlKSkpKQorQEAgLTE3ODMsNiArMTgwMCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3Jl YXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUKKyAKKyBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0 ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAorIAkJCQkgICAgICAg Y29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqLAorKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5 bmFtaWNfcHJvcCAqLAorIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqKTsK KyAKKyBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAq LCBzdHJ1Y3QgdHlwZSAqLAorZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMK K2luZGV4IDJiMDA3MDguLjk5MmFmODcgMTAwNjQ0CistLS0gYS9nZGIvcGFyc2UuYworKysrIGIv Z2RiL3BhcnNlLmMKK0BAIC0xMDA2LDIyICsxMDA2LDIwIEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFu ZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCisgCisgICAg IGNhc2UgT1BfUkFOR0U6CisgICAgICAgb3BsZW4gPSAzOworKyAgICAgIGFyZ3MgPSAwOworICAg ICAgIHJhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBlKQorIAlsb25nZXN0X3RvX2ludCAoZXhw ci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOworIAorLSAgICAgIHN3aXRjaCAocmFuZ2Vf dHlwZSkKKy0JeworLQljYXNlIExPV19CT1VORF9ERUZBVUxUOgorLQljYXNlIEhJR0hfQk9VTkRf REVGQVVMVDoKKy0JICBhcmdzID0gMTsKKy0JICBicmVhazsKKy0JY2FzZSBCT1RIX0JPVU5EX0RF RkFVTFQ6CistCSAgYXJncyA9IDA7CistCSAgYnJlYWs7CistCWNhc2UgTk9ORV9CT1VORF9ERUZB VUxUOgorLQkgIGFyZ3MgPSAyOworLQkgIGJyZWFrOworLQl9CisrICAgICAgLyogSW5jcmVtZW50 IHRoZSBhcmd1bWVudCBjb3VudGVyIGZvciBlYWNoIGFyZ3VtZW50CisrCSBwcm92aWRlZCBieSB0 aGUgdXNlci4gICovCisrICAgICAgaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlfTE9XX0JPVU5E KSA9PSBTVUJBUlJBWV9MT1dfQk9VTkQpCisrCWFyZ3MrKzsKKysKKysgICAgICBpZiAoKHJhbmdl X3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorKwlh cmdzKys7CisrCisrICAgICAgaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlfU1RSSURFKSA9PSBT VUJBUlJBWV9TVFJJREUpCisrCWFyZ3MrKzsKKyAKKyAgICAgICBicmVhazsKKyAKK2RpZmYgLS1n aXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9ydXN0LWV4cC55CitpbmRleCBhZWI2MDU4Li5iMWI5 NjMzIDEwMDY0NAorLS0tIGEvZ2RiL3J1c3QtZXhwLnkKKysrKyBiL2dkYi9ydXN0LWV4cC55CitA QCAtMjQyOSwyMyArMjQyOSwxNyBAQCBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdHJ1Y3Qg cGFyc2VyX3N0YXRlICpzdGF0ZSwKKyAKKyAgICAgY2FzZSBPUF9SQU5HRToKKyAgICAgICB7Cist CWVudW0gcmFuZ2VfdHlwZSBraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOworKwllbnVtIHJhbmdl X3R5cGUga2luZCA9IFNVQkFSUkFZX05PTkVfQk9VTkQ7CisgCisgCWlmIChvcGVyYXRpb24tPmxl ZnQub3AgIT0gTlVMTCkKKyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChz dGF0ZSwgb3BlcmF0aW9uLT5sZWZ0Lm9wLCB0b3ApOworLQkgICAga2luZCA9IEhJR0hfQk9VTkRf REVGQVVMVDsKKysJICAgIGtpbmQgPSBTVUJBUlJBWV9MT1dfQk9VTkQ7CisgCSAgfQorIAlpZiAo b3BlcmF0aW9uLT5yaWdodC5vcCAhPSBOVUxMKQorIAkgIHsKKyAJICAgIGNvbnZlcnRfYXN0X3Rv X2V4cHJlc3Npb24gKHN0YXRlLCBvcGVyYXRpb24tPnJpZ2h0Lm9wLCB0b3ApOworLQkgICAgaWYg KGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorLQkgICAgICBraW5kID0gTE9XX0JPVU5EX0RF RkFVTFQ7CistCSAgICBlbHNlCistCSAgICAgIHsKKy0JCWdkYl9hc3NlcnQgKGtpbmQgPT0gSElH SF9CT1VORF9ERUZBVUxUKTsKKy0JCWtpbmQgPSBOT05FX0JPVU5EX0RFRkFVTFQ7CistCSAgICAg IH0KKysJICAgIGtpbmQgPSAocmFuZ2VfdHlwZSkgKGtpbmQgfCBTVUJBUlJBWV9ISUdIX0JPVU5E KTsKKyAJICB9CisgCXdyaXRlX2V4cF9lbHRfb3Bjb2RlIChzdGF0ZSwgT1BfUkFOR0UpOworIAl3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKHN0YXRlLCBraW5kKTsKK2RpZmYgLS1naXQgYS9nZGIvcnVz dC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMKK2luZGV4IDE3YjIwYzYuLjI5NTAwMmYgMTAwNjQ0 CistLS0gYS9nZGIvcnVzdC1sYW5nLmMKKysrKyBiL2dkYi9ydXN0LWxhbmcuYworQEAgLTEyNDEs OSArMTI0MSw5IEBAIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LCBlbnVtIG5vc2lkZSBub3NpZGUpCisgICBraW5kID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2Vz dF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsKKyAgICpwb3MgKz0gMzsK KyAKKy0gIGlmIChraW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IE5PTkVfQk9V TkRfREVGQVVMVCkKKysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJS QVlfTE9XX0JPVU5EKQorICAgICBsb3cgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhw LCBwb3MsIG5vc2lkZSk7CistICBpZiAoa2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCBraW5k ID09IE5PTkVfQk9VTkRfREVGQVVMVCkKKysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0hJR0hfQk9V TkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAg KE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSk7CisgCisgICBpZiAobm9zaWRlID09IEVWQUxf U0tJUCkKK0BAIC0xMzMyLDcgKzEzMzIsNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorIAorICAgKmxvdyA9IDA7CisgICAqaGln aCA9IDA7CistICAqa2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgICpraW5kID0gU1VCQVJS QVlfTk9ORV9CT1VORDsKKyAKKyAgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09IDApCisgICAg IHJldHVybjsKK0BAIC0xMzQwLDE1ICsxMzQwLDE0IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCisgICBpID0gMDsKKyAgIGlmIChz dHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgMCksICJzdGFydCIpID09IDApCisgICAgIHsK Ky0gICAgICAqa2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKKysgICAgICAqa2luZCA9IFNVQkFS UkFZX0xPV19CT1VORDsKKyAgICAgICAqbG93ID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQg KHJhbmdlLCAwKSk7CisgICAgICAgKytpOworICAgICB9CisgICBpZiAoVFlQRV9ORklFTERTICh0 eXBlKSA+IGkKKyAgICAgICAmJiBzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSksICJl bmQiKSA9PSAwKQorICAgICB7CistICAgICAgKmtpbmQgPSAoKmtpbmQgPT0gQk9USF9CT1VORF9E RUZBVUxUCistCSAgICAgICA/IExPV19CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxU KTsKKysgICAgICAqa2luZCA9IChyYW5nZV90eXBlKSAoKmtpbmQgfCBTVUJBUlJBWV9ISUdIX0JP VU5EKTsKKyAgICAgICAqaGlnaCA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwg aSkpOworICAgICB9CisgfQorQEAgLTEzNjMsNyArMTM2Miw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAorICAg c3RydWN0IHR5cGUgKnJoc3R5cGU7CisgICBMT05HRVNUIGxvdywgaGlnaF9ib3VuZDsKKyAgIC8q IEluaXRpYWxpemVkIHRvIGFwcGVhc2UgdGhlIGNvbXBpbGVyLiAgKi8KKy0gIGVudW0gcmFuZ2Vf dHlwZSBraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOworKyAgZW51bSByYW5nZV90eXBlIGtpbmQg PSBTVUJBUlJBWV9OT05FX0JPVU5EOworICAgTE9OR0VTVCBoaWdoID0gMDsKKyAgIGludCB3YW50 X3NsaWNlID0gMDsKKyAKK0BAIC0xNDI1LDcgKzE0MjQsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAJZXJy b3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CisgCisgICAgICAgaWYg KHdhbnRfc2xpY2UKKy0JICAmJiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9 PSBMT1dfQk9VTkRfREVGQVVMVCkpCisrCSAgJiYgKChraW5kICYgU1VCQVJSQVlfTE9XX0JPVU5E KSAhPSBTVUJBUlJBWV9MT1dfQk9VTkQpKQorIAlsb3cgPSBsb3dfYm91bmQ7CisgICAgICAgaWYg KGxvdyA8IDApCisgCWVycm9yIChfKCJJbmRleCBsZXNzIHRoYW4gemVybyIpKTsKK0BAIC0xNDQz LDcgKzE0NDIsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50 ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAJICBDT1JFX0FERFIgYWRkcjsKKyAJICBzdHJ1 Y3QgdmFsdWUgKmFkZHJ2YWwsICp0ZW07CisgCistCSAgaWYgKGtpbmQgPT0gQk9USF9CT1VORF9E RUZBVUxUIHx8IGtpbmQgPT0gSElHSF9CT1VORF9ERUZBVUxUKQorKwkgIGlmICgoa2luZCAmIFNV QkFSUkFZX0hJR0hfQk9VTkQpICE9IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgCSAgICBoaWdoID0g aGlnaF9ib3VuZDsKKyAJICBpZiAoaGlnaCA8IDApCisgCSAgICBlcnJvciAoXygiSGlnaCBpbmRl eCBsZXNzIHRoYW4gemVybyIpKTsKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N0YXRpYy1hcnJheXMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMt YXJyYXlzLmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmNjOWVjYzAK Ky0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFy cmF5cy5leHAKK0BAIC0wLDAgKzEsNDIxIEBACisrIyBDb3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBDb250cmlidXRlZCBieSBJbnRlbCBDb3JwLiA8 Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgc3RhdGljLWFycmF5cy5mOTAKKysKKytp ZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxl IHtkZWJ1ZyBmOTB9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG8gTUFJ Tl9fXSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlO X18iCisrICAgIGNvbnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJCUDEiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCUDEiICIuKkJQMS4q IgorKworKyMgVGVzdHMgc3ViYXJyYXlzIG9mIG9uZSBkaW1lbnNpb25hbCBhcnJheXMgd2l0aCBz dWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyMSIgIlxcJFxbMC05XF0rID0g XFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOVxcKSIgXAorKwkJInByaW50IGFyMS4iCisrZ2Ri X3Rlc3QgInByaW50IGFyMVwoNDo3XCkiICJcXCRcWzAtOVxdKyA9IFxcKDQsIDUsIDYsIDdcXCki IFwKKysJCSJwcmludCBhcjFcKDQ6N1wpIgorK2dkYl90ZXN0ICJwcmludCBhcjFcKDg6XCkiICJc XCRcWzAtOVxdKyA9IFxcKDgsIDlcXCkuKiIgXAorKwkJInByaW50IGFyMVwoODpcKSIKKytnZGJf dGVzdCAicHJpbnQgYXIxXCg6M1wpIiAiXFwkXFswLTlcXSsgPSBcXCgxLCAyLCAzXFwpLioiIFwK KysJCSJwcmludCBhcjFcKDozXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMVwoOlwpIiAiXFwkXFsw LTlcXSsgPSBcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XFwpIiBcCisrCQkicHJpbnQgYXIx XCg6XCkiCisrCisrIyBDaGVjayBhc3NpZ25tZW50CisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQg XCRteV9hcnkgPSBhcjFcKDM6OFwpIgorK2dkYl90ZXN0ICJwcmludCBcJG15X2FyeSIgXAorKwkJ IlxcJFxbMC05XF0rID0gXFwoMywgNCwgNSwgNiwgNywgOFxcKSIgXAorKwkJIkFzc2lnbm1lbnQg b2Ygc3ViYXJyYXkgdG8gdmFyaWFibGUiCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgYXIxXCg1 XCkgPSA0MiIKKysJCWdkYl90ZXN0ICJwcmludCBhcjFcKDM6OFwpIiBcCisrCQkiXFwkXFswLTlc XSsgPSBcXCgzLCA0LCA0MiwgNiwgNywgOFxcKSIgXAorKwkJInByaW50IGFyMVwoMzo4XCkgYWZ0 ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJpbnQgXCRteV9hcnkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKDMsIDQsIDUsIDYsIDcsIDhcXCkiIFwKKysJCSJBc3NpZ25tZW50IG9mIHN1YmFy cmF5IHRvIHZhcmlhYmxlIGFmdGVyIG9yaWdpbmFsIGFycmF5IGNoYW5nZWQiCisrCisrIyBUZXN0 IGZvciBzdWJhcnJheXMgb2Ygb25lIGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxpdGVyYWxzCisr CQlnZGJfdGVzdCAicHJpbnQgYXIxXCgzXCkiICJcXCRcWzAtOVxdKyA9IDMiIFwKKysJCSJwcmlu dCBhcjFcKDNcKSIKKysKKysjIFRlc3RzIGZvciBzdWJyYW5nZXMgb2YgMiBkaW1lbnNpb25hbCBh cnJheXMgd2l0aCBzdWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoMjoz LCAzOjRcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDIzLCAzM1xcKSBcXCggMjQsIDM0 XFwpIFxcKSIgXAorKwkJInByaW50IGFyMlwoMjozLCAzOjRcKS4iCisrZ2RiX3Rlc3QgInByaW50 IGFyMlwoODo5LDg6XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCA4OCwgOThcXCkgXFwo IDg5LCA5OVxcKSBcXCkiIFwKKysJCSJwcmludCBhcjJcKDg6OSw4OlwpIgorK2dkYl90ZXN0ICJw cmludCBhcjJcKDg6OSw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggODEsIDkxXFwp IFxcKCA4MiwgOTJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg4OjksOjJcKSIKKysKKytnZGJf dGVzdCAicHJpbnQgYXIyXCg4Oiw4OjlcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg4 LCA5OFxcKSBcXCggODksIDk5XFwpIFxcKSIgXAorKwkJInByaW50IGFyMlwoODosODo5XCkiCisr Z2RiX3Rlc3QgInByaW50IGFyMlwoODosODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IDg4LCA5OFxcKSBcXCggODksIDk5XFwpIFxcKSIgXAorKwkJInByaW50IGFyMlwoODosODpcKSIK KytnZGJfdGVzdCAicHJpbnQgYXIyXCg4Oiw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChc XCggODEsIDkxXFwpIFxcKCA4MiwgOTJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg4Oiw6Mlwp IgorKworK2dkYl90ZXN0ICJwcmludCBhcjJcKDoyLDI6M1wpIiBcCisrCQkiXFwkXFswLTlcXSsg PSBcXChcXCggMTIsIDIyXFwpIFxcKCAxMywgMjNcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg6 MiwyOjNcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIyXCg6Miw4OlwpIiBcCisrCQkiXFwkXFswLTlc XSsgPSBcXChcXCggMTgsIDI4XFwpIFxcKCAxOSwgMjlcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIy XCg6Miw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjJcKDoyLDoyXCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCAxMSwgMjFcXCkgXFwoIDEyLCAyMlxcKSBcXCkiIFwKKysJCSJwcmludCBh cjJcKDoyLDoyXCkiCisrCisrIyBUZXN0IHN1YnJhbmdlcyBvZiAyIGRpbWVuc2lvbmFsIGFycmF5 cyB3aXRoIGxpdGVyYWxzIGFuZCBzdWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50 IGFyMlwoNywgMzo2XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDczLCA3NCwgNzUsIDc2XFwp IiBcCisrCQkicHJpbnQgYXIyXCg3LCAzOjZcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIyXCg3LDg6 XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDc4LCA3OVxcKSIgXAorKwkJInByaW50IGFyMlwo Nyw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjJcKDcsOjJcKSIgXAorKwkJIlxcJFxbMC05XF0r ID0gXFwoNzEsIDcyXFwpIiBcCisrCQkicHJpbnQgYXIyXCg3LDoyXCkiCisrCisrZ2RiX3Rlc3Qg InByaW50IGFyMlwoNzo4LDRcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoNzQsIDg0XFwpIiBc CisrCQkicHJpbnQgYXIyKDc6OCw0XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoODosNFwpIiBc CisrCQkiXFwkXFswLTlcXSsgPSBcXCg4NCwgOTRcXCkiIFwKKysJCSJwcmludCBhcjJcKDg6LDRc KSIKKytnZGJfdGVzdCAicHJpbnQgYXIyXCg6Miw0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxc KDE0LCAyNFxcKSIgXAorKwkJInByaW50IGFyMlwoOjIsNFwpIgorK2dkYl90ZXN0ICJwcmludCBh cjJcKDMsNFwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSAzNCIgXAorKwkJInByaW50IGFyMlwoMyw0 XCkiCisrCisrIyBUZXN0IHN1YmFycmF5cyBvZiAzIGRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGxp dGVyYWxzIGFuZCBzdWJyYW5nZSB2YXJpYXRpb25zCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjo0 LDM6NCw3OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMzcsIDMzNywgNDM3 XFwpIFxcKCAyNDcsIDM0NywgNDQ3XFwpXAorKwkJIFxcKSBcXCggXFwoIDIzOCwgMzM4LCA0Mzhc XCkgXFwoIDI0OCwgMzQ4LCA0NDhcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjo0LDM6 NCw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjMsNDo1LDg6XCkiIFwKKysJCSJcXCRc WzAtOVxdKyA9IFxcKFxcKCBcXCggMjQ4LCAzNDhcXCkgXFwoIDI1OCwgMzU4XFwpIFxcKSBcXChc CisrCQkgXFwoIDI0OSwgMzQ5XFwpIFxcKCAyNTksIDM1OVxcKSBcXCkgXFwpIiBcCisrCQkicHJp bnQgYXIzXCgyOjMsNDo1LDg6XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDQ6NSw6Mlwp IiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDI0MSwgMzQxXFwpIFxcKCAyNTEsIDM1 MVxcKSBcXCkgXFwoXAorKwkJIFxcKCAyNDIsIDM0MlxcKSBcXCggMjUyLCAzNTJcXCkgXFwpIFxc KSIgXAorKwkJInByaW50IGFyM1woMjozLDQ6NSw6MlwpIgorKworK2dkYl90ZXN0ICJwcmludCBh cjNcKDI6Myw4Oiw3OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyODcsIDM4 N1xcKSBcXCggMjk3LCAzOTdcXCkgXFwpIFxcKFwKKysJCSBcXCggMjg4LCAzODhcXCkgXFwoIDI5 OCwgMzk4XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDI6Myw4Oiw3OjhcKSIKKytnZGJf dGVzdCAicHJpbnQgYXIzXCgyOjMsODosODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IFxcKCAyODgsIDM4OFxcKSBcXCggMjk4LCAzOThcXCkgXFwpIFxcKFwKKysJCSBcXCggMjg5LCAz ODlcXCkgXFwoIDI5OSwgMzk5XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDI6Myw4Oiw4 OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6Myw4Oiw6MlwpIiBcCisrCQkiXFwkXFswLTlc XSsgPSBcXChcXCggXFwoIDI4MSwgMzgxXFwpIFxcKCAyOTEsIDM5MVxcKSBcXCkgXFwoXAorKwkJ IFxcKCAyODIsIDM4MlxcKSBcXCggMjkyLCAzOTJcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFy M1woMjozLDg6LDoyXCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDoyLDc6OFwpIiBc CisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDIxNywgMzE3XFwpIFxcKCAyMjcsIDMyN1xc KSBcXCkgXFwoXAorKwkJIFxcKCAyMTgsIDMxOFxcKSBcXCggMjI4LCAzMjhcXCkgXFwpIFxcKSIg XAorKwkJInByaW50IGFyM1woMjozLDoyLDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDI6 Myw6Miw4OlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDIxOCwgMzE4XFwpIFxc KCAyMjgsIDMyOFxcKSBcXCkgXFwoXAorKwkJIFxcKCAyMTksIDMxOVxcKSBcXCggMjI5LCAzMjlc XCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjozLDoyLDg6XCkiCisrZ2RiX3Rlc3QgInBy aW50IGFyM1woMjozLDoyLDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMjEx LCAzMTFcXCkgXFwoIDIyMSwgMzIxXFwpIFxcKSBcXChcCisrCQkgXFwoIDIxMiwgMzEyXFwpIFxc KCAyMjIsIDMyMlxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyOjMsOjIsOjJcKSIKKysK KytnZGJfdGVzdCAicHJpbnQgYXIzXCg4OiwzOjQsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCBcXCggODM3LCA5MzdcXCkgXFwoIDg0NywgOTQ3XFwpIFxcKSBcXChcCisrCQkgXFwo IDgzOCwgOTM4XFwpIFxcKCA4NDgsIDk0OFxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg4 OiwzOjQsNzo4XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosNDo1LDg6XCkiIFwKKysJCSJc XCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggODQ4LCA5NDhcXCkgXFwoIDg1OCwgOTU4XFwpIFxcKSBc XChcCisrCQkgXFwoIDg0OSwgOTQ5XFwpIFxcKCA4NTksIDk1OVxcKSBcXCkgXFwpIiBcCisrCQki cHJpbnQgYXIzXCg4Oiw0OjUsODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw0OjUsOjJc KSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA4NDEsIDk0MVxcKSBcXCggODUxLCA5 NTFcXCkgXFwpIFxcKFwKKysJCSBcXCggODQyLCA5NDJcXCkgXFwoIDg1MiwgOTUyXFwpIFxcKSBc XCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDQ6NSw6MlwpIgorKworK2dkYl90ZXN0ICJwcmludCBh cjNcKDg6LDg6LDc6OFwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDg4NywgOTg3 XFwpIFxcKCA4OTcsIDk5N1xcKSBcXCkgXFwoXAorKwkJIFxcKCA4ODgsIDk4OFxcKSBcXCggODk4 LCA5OThcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woODosODosNzo4XCkiCisrZ2RiX3Rl c3QgInByaW50IGFyM1woODosODosODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxc KCA4ODgsIDk4OFxcKSBcXCggODk4LCA5OThcXCkgXFwpIFxcKFwKKysJCSBcXCggODg5LCA5ODlc XCkgXFwoIDg5OSwgOTk5XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDg6LDg6XCki CisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosODosOjJcKSIgXAorKwkJIlxcJFxbMC05XF0rID0g XFwoXFwoIFxcKCA4ODEsIDk4MVxcKSBcXCggODkxLCA5OTFcXCkgXFwpIFxcKFwKKysJCSBcXCgg ODgyLCA5ODJcXCkgXFwoIDg5MiwgOTkyXFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDg6 LDg6LDoyXCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosOjIsNzo4XCkiIFwKKysJCSJc XCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggODE3LCA5MTdcXCkgXFwoIDgyNywgOTI3XFwpIFxcKSBc XChcCisrCQkgXFwoIDgxOCwgOTE4XFwpIFxcKCA4MjgsIDkyOFxcKSBcXCkgXFwpIiBcCisrCQki cHJpbnQgYXIzXCg4Oiw6Miw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4Oiw6Miw4Olwp IiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDgxOCwgOTE4XFwpIFxcKCA4MjgsIDky OFxcKSBcXCkgXFwoXAorKwkJIFxcKCA4MTksIDkxOVxcKSBcXCggODI5LCA5MjlcXCkgXFwpIFxc KSIgXAorKwkJInByaW50IGFyM1woODosOjIsODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4 Oiw6Miw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDgxMSwgOTExXFwpIFxc KCA4MjEsIDkyMVxcKSBcXCkgXFwoXAorKwkJIFxcKCA4MTIsIDkxMlxcKSBcXCggODIyLCA5MjJc XCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woODosOjIsOjJcKSIKKysKKysKKytnZGJfdGVz dCAicHJpbnQgYXIzXCg6MiwzOjQsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCBc XCggMTM3LCAyMzdcXCkgXFwoIDE0NywgMjQ3XFwpIFxcKSBcXChcCisrCQkgXFwoIDEzOCwgMjM4 XFwpIFxcKCAxNDgsIDI0OFxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzIFwoOjIsMzo0LDc6 OFwpLiIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg6MiwzOjQsODpcKSIgXAorKwkJIlxcJFxbMC05 XF0rID0gXFwoXFwoIFxcKCAxMzgsIDIzOFxcKSBcXCggMTQ4LCAyNDhcXCkgXFwpIFxcKFwKKysJ CSBcXCggMTM5LCAyMzlcXCkgXFwoIDE0OSwgMjQ5XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBh cjNcKDoyLDM6NCw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDM6NCw6MlwpIiBcCisr CQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDEzMSwgMjMxXFwpIFxcKCAxNDEsIDI0MVxcKSBc XCkgXFwoXAorKwkJIFxcKCAxMzIsIDIzMlxcKSBcXCggMTQyLCAyNDJcXCkgXFwpIFxcKSIgXAor KwkJInByaW50IGFyM1woOjIsMzo0LDoyXCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woOjIs ODosNzo4XCkiICJcXCRcWzAtOVxdKyA9IFxcKFxcKCBcXCggMTg3LCAyODdcXCkgXFwoXAorKwkJ IDE5NywgMjk3XFwpIFxcKSBcXCggXFwoIDE4OCwgMjg4XFwpIFxcKCAxOTgsIDI5OFxcKSBcXCkg XFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw4Oiw3OjhcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIz XCg6Miw4Oiw4OlwpIiAiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDE4OCwgMjg4XFwpIFxcKCAx OTgsXAorKwkJIDI5OFxcKSBcXCkgXFwoIFxcKCAxODksIDI4OVxcKSBcXCggMTk5LCAyOTlcXCkg XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woOjIsODosODpcKSIKKytnZGJfdGVzdCAicHJpbnQg YXIzXCg6Miw4Oiw6MlwpIiAiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDE4MSwgMjgxXFwpIFxc KCAxOTEsXAorKwkJIDI5MVxcKSBcXCkgXFwoIFxcKCAxODIsIDI4MlxcKSBcXCggMTkyLCAyOTJc XCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woOjIsODosOjJcKSIKKysKKytnZGJfdGVzdCAi cHJpbnQgYXIzXCg6Miw6Miw3OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAx MTcsIDIxN1xcKSBcXCggMTI3LCAyMjdcXCkgXFwpIFxcKFwKKysJCSBcXCggMTE4LCAyMThcXCkg XFwoIDEyOCwgMjI4XFwpIFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDoyLDoyLDc6OFwpIgor K2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDoyLDg6XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxc KFxcKCBcXCggMTE4LCAyMThcXCkgXFwoIDEyOCwgMjI4XFwpIFxcKSBcXChcCisrCQkgXFwoIDEx OSwgMjE5XFwpIFxcKCAxMjksIDIyOVxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw6 Miw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDoyLDoyXCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCBcXCggMTExLCAyMTFcXCkgXFwoIDEyMSwgMjIxXFwpIFxcKSBcXChcCisr CQkgXFwoIDExMiwgMjEyXFwpIFxcKCAxMjIsIDIyMlxcKSBcXCkgXFwpIiBcCisrCQkicHJpbnQg YXIzXCg6Miw6Miw6MlwpIgorKworKyNUZXN0cyBmb3Igc3ViYXJyYXlzIG9mIDMgZGltZW5zaW9u YWwgYXJyYXlzIHdpdGggbGl0ZXJhbHMgYW5kIHN1YnJhbmdlcworK2dkYl90ZXN0ICJwcmludCBh cjNcKDMsMzo0LDc6OFwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMzM3LCAzNDdcXCkg XFwoIDMzOCwgMzQ4XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMywzOjQsNzo4XCkiCisrZ2Ri X3Rlc3QgInByaW50IGFyM1woMyw0OjUsODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwo IDM0OCwgMzU4XFwpIFxcKCAzNDksIDM1OVxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDMsNDo1 LDg6XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0OjUsOjJcKSIgXAorKwkJIlxcJFxbMC05 XF0rID0gXFwoXFwoIDM0MSwgMzUxXFwpIFxcKCAzNDIsIDM1MlxcKSBcXCkiIFwKKysJCSJwcmlu dCBhcjNcKDMsNDo1LDoyXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0OjUsM1wpIiBcCisr CQkiXFwkXFswLTlcXSsgPSBcXCgzNDMsIDM1M1xcKSIgXAorKwkJInByaW50IGFyM1woMyw0OjUs M1wpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsODosNzo4XCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCAyODcsIDI5N1xcKSBcXCggMjg4LCAyOThcXCkgXFwpIiBcCisrCQkicHJp bnQgYXIzXCgyLDg6LDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsODosODpcKSIgXAor KwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDI4OCwgMjk4XFwpIFxcKCAyODksIDI5OVxcKSBcXCki IFwKKysJCSJwcmludCBhcjNcKDIsODosODpcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgyLDg6 LDoyXCkiXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDI4MSwgMjkxXFwpIFxcKCAyODIsIDI5 MlxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDIsODosOjJcKSIKKytnZGJfdGVzdCAicHJpbnQg YXIzXCgyLDg6LDNcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoMjgzLCAyOTNcXCkiIFwKKysJ CSJwcmludCBhcjNcKDIsODosM1wpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDIsOjIsNzo4 XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyMTcsIDIyN1xcKSBcXCggMjE4LCAyMjhc XCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyLDoyLDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBh cjNcKDIsOjIsODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDIxOCwgMjI4XFwpIFxc KCAyMTksIDIyOVxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDIsOjIsODpcKSIKKytnZGJfdGVz dCAicHJpbnQgYXIzXCgyLDoyLDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyMTEs IDIyMVxcKSBcXCggMjEyLCAyMjJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyLDoyLDoyXCki CisrZ2RiX3Rlc3QgInByaW50IGFyM1woMiw6MiwzXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxc KDIxMywgMjIzXFwpIiBcCisrCQkicHJpbnQgYXIzXCgyLDoyLDNcKSIKKysKKytnZGJfdGVzdCAi cHJpbnQgYXIzXCgzLDQsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDM0NywgMzQ4XFwp IiBcCisrCQkicHJpbnQgYXIzXCgzLDQsNzo4XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0 LDg6XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDM0OCwgMzQ5XFwpIiBcCisraQkJInByaW50 IGFyM1woMyw0LDg6XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMyw0LDoyXCkiIFwKKysJCSJc XCRcWzAtOVxdKyA9IFxcKDM0MSwgMzQyXFwpIiBcCisrCQkicHJpbnQgYXIzXCgzLDQsOjJcKSIK KytnZGJfdGVzdCAicHJpbnQgYXIzXCg1LDYsN1wpIiBcCisrCQkiXFwkXFswLTlcXSsgPSA1Njci IFwKKysJCSJwcmludCBhcjNcKDUsNiw3XCkiCisrCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMzo0 LDYsNzo4XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAzNjcsIDQ2N1xcKSBcXCggMzY4 LCA0NjhcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCgzOjQsNiw3OjhcKSIKKytnZGJfdGVzdCAi cHJpbnQgYXIzXCgzOjQsNiw4OlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggMzY4LCA0 NjhcXCkgXFwoIDM2OSwgNDY5XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMzo0LDYsODpcKSIK KytnZGJfdGVzdCAicHJpbnQgYXIzXCgzOjQsNiw6MlwpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBc XChcXCggMzYxLCA0NjFcXCkgXFwoIDM2MiwgNDYyXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1wo Mzo0LDYsOjJcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgzOjQsNiw1XCkiIFwKKysJCSJcXCRc WzAtOVxdKyA9IFxcKDM2NSwgNDY1XFwpIiBcCisrCQkicHJpbnQgYXIzXCgzOjQsNiw1XCkiCisr CisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosNiw3OjhcKSIgXAorKwkJIlxcJFxbMC05XF0rID0g XFwoXFwoIDg2NywgOTY3XFwpIFxcKCA4NjgsIDk2OFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNc KDg6LDYsNzo4XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woODosNiw4OlwpIiBcCisrCQkiXFwk XFswLTlcXSsgPSBcXChcXCggODY4LCA5NjhcXCkgXFwoIDg2OSwgOTY5XFwpIFxcKSIgXAorKwkJ InByaW50IGFyM1woODosNiw4OlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDg6LDYsOjJcKSIg XAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDg2MSwgOTYxXFwpIFxcKCA4NjIsIDk2MlxcKSBc XCkiIFwKKysJCSJwcmludCBhcjNcKDg6LDYsOjJcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCg4 Oiw2LDVcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoODY1LCA5NjVcXCkiIFwKKysJCSJwcmlu dCBhcjNcKDg6LDYsNVwpIgorKworK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDYsNzo4XCkiIFwK KysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAxNjcsIDI2N1xcKSBcXCggMTY4LCAyNjhcXCkgXFwp IiBcCisrCQkicHJpbnQgYXIzXCg6Miw2LDc6OFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDoy LDYsODpcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDE2OCwgMjY4XFwpIFxcKCAxNjks IDI2OVxcKSBcXCkiIFwKKysJCSJwcmludCBhcjNcKDoyLDYsODpcKSIKKytnZGJfdGVzdCAicHJp bnQgYXIzXCg6Miw2LDoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAxNjEsIDI2MVxc KSBcXCggMTYyLCAyNjJcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw2LDoyXCkiCisrZ2Ri X3Rlc3QgInByaW50IGFyM1woOjIsNiw1XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDE2NSwg MjY1XFwpIiBcCisrCQkicHJpbnQgYXIzXCg6Miw2LDVcKSIKKysKKytnZGJfdGVzdCAicHJpbnQg YXIzXCgzOjQsNTo2LDRcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIDM1NCwgNDU0XFwp IFxcKCAzNjQsIDQ2NFxcKSBcXCkiIFwKKysJCSJwcmludCBhcjJcKDM6NCw1OjYsNFwpIgorK2dk Yl90ZXN0ICJwcmludCBhcjNcKDg6LDU6Niw0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCA4NTQsIDk1NFxcKSBcXCggODY0LCA5NjRcXCkgXFwpIiBcCisrCQkicHJpbnQgYXIyXCg4Oiw1 OjYsNFwpIgorK2dkYl90ZXN0ICJwcmludCBhcjNcKDoyLDU6Niw0XCkiIFwKKysJCSJcXCRcWzAt OVxdKyA9IFxcKFxcKCAxNTQsIDI1NFxcKSBcXCggMTY0LCAyNjRcXCkgXFwpIiBcCisrCQkicHJp bnQgYXIyXCg6Miw1OjYsNFwpIgorKworKyMgU3RyaWRlID4gMQorK2dkYl90ZXN0ICJwcmludCBh cjFcKDI6NjoyXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKDIsIDQsIDZcXCkiIFwKKysJCSJw cmludCBhcjFcKDI6NjoyXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwoMjo2OjIsMzo0XCkiIFwK KysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyMywgNDMsIDYzXFwpIFxcKCAyNCwgNDQsIDY0XFwp IFxcKSIgXAorKwkJInByaW50IGFyMlwoMjo2OjIsMzo0XCkiCisrZ2RiX3Rlc3QgInByaW50IGFy MlwoMjo2OjIsM1wpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXCgyMywgNDMsIDYzXFwpIiBcCisr CQkicHJpbnQgYXIyXCgyOjY6MiwzXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjo2OjIsMzo1 OjIsNDo3OjNcKSIgXAorKwkJIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAyMzQsIDQzNCwgNjM0 XFwpIFxcKCAyNTQsIDQ1NCwgNjU0XFwpXAorKwkJIFxcKSBcXCggXFwoIDIzNywgNDM3LCA2Mzdc XCkgXFwoIDI1NywgNDU3LCA2NTdcXCkgXFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjo2OjIs Mzo1OjIsNDo3OjNcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIzXCgyOjY6Miw1LDQ6NzozXCkiIFwK KysJCSJcXCRcWzAtOVxdKyA9IFxcKFxcKCAyNTQsIDQ1NCwgNjU0XFwpIFxcKCAyNTcsIDQ1Nywg NjU3XFwpXAorKwkJIFxcKSIgXAorKwkJInByaW50IGFyM1woMjo2OjIsNSw0Ojc6M1wpIgorKwor KyMgU3RyaWRlIDwgMAorK2dkYl90ZXN0ICJwcmludCBhcjFcKDg6MjotMlwpIiBcCisrCQkiXFwk XFswLTlcXSsgPSBcXCg4LCA2LCA0LCAyXFwpIiBcCisrCQkicHJpbnQgYXIxXCg4OjI6LTJcKSIK KytnZGJfdGVzdCAicHJpbnQgYXIyXCg4OjI6LTIsMzo0XCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9 IFxcKFxcKCA4MywgNjMsIDQzLCAyM1xcKSBcXCggODQsIDY0LCA0NCwgMjRcXClcCisrCQkgXFwp IiBcCisrCQkicHJpbnQgYXIyXCg4OjI6LTIsMzo0XCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMlwo Mjo2OjIsM1wpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXCgyMywgNDMsIDYzXFwpIiBcCisrCQki cHJpbnQgYXIyXCgyOjY6MiwzXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyM1woMjozLDc6MzotNCw0 Ojc6M1wpIiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDI3NCwgMzc0XFwpIFxcKCAy MzQsIDMzNFxcKSBcXCkgXFwoXAorKwkJIFxcKCAyNzcsIDM3N1xcKSBcXCggMjM3LCAzMzdcXCkg XFwpIFxcKSIgXAorKwkJInByaW50IGFyM1woMjozLDc6MzotNCw0Ojc6M1wpIgorK2dkYl90ZXN0 ICJwcmludCBhcjNcKDI6NjoyLDUsNzo0Oi0zXCkiIFwKKysJCSJcXCRcWzAtOVxdKyA9IFxcKFxc KCAyNTcsIDQ1NywgNjU3XFwpIFxcKCAyNTQsIDQ1NCwgNjU0XFwpXAorKwkJIFxcKSIgXAorKwkJ InByaW50IGFyM1woMjo2OjIsNSw3OjQ6LTNcKSIKKysKKysjIFRlc3RzIHdpdGggbmVnYXRpdmUg YW5kIG1peGVkIGluZGljZXMKKytnZGJfdGVzdCAicCBhcjRcKDI6NCwgLTI6MSwgLTE1Oi0xNFwp IiBcCisrCQkiXFwkXFswLTlcXSsgPSBcXChcXCggXFwoIDI2MSwgMzYxLCA0NjFcXCkgXFwoIDI3 MSwgMzcxLCA0NzFcXClcCisrCQkgXFwoIDI4MSwgMzgxLCA0ODFcXCkgXFwoIDI5MSwgMzkxLCA0 OTFcXCkgXFwpIFxcKCBcXCggMjYyLFwKKysJCSAzNjIsIDQ2MlxcKSBcXCggMjcyLCAzNzIsIDQ3 MlxcKSBcXCggMjgyLCAzODIsIDQ4MlxcKSBcXCggMjkyLFwKKysJCSAzOTIsIDQ5MlxcKSBcXCkg XFwpIiBcCisrCQkicHJpbnQgYXI0KDI6NCwgLTI6MSwgLTE1Oi0xNCkiCisrCisrZ2RiX3Rlc3Qg InAgYXI0XCg3LC02OjI6MywtN1wpIiBcCisrICAgICAgICAgICAgICAgICJcXCRcWzAtOVxdKyA9 IFxcKDcyOSwgNzU5LCA3ODlcXCkiIFwKKysgICAgICAgICAgICAgICAgInByaW50IGFyNCg3LC02 OjI6MywtNykiCisrCisrZ2RiX3Rlc3QgInAgYXI0XCg5OjI6LTIsIC02OjI6MywgLTY6LTE1Oi0z XCkiIFwKKysgICAgICAgICAgICAgICAgIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCA5MzAsIDcz MCwgNTMwLCAzMzBcXCkgXFwoIDk2MCwgNzYwLFwKKysJCSA1NjAsIDM2MFxcKSBcXCggOTkwLCA3 OTAsIDU5MCwgMzkwXFwpIFxcKSBcXCggXFwoIDkyNywgNzI3LFwKKysJCSA1MjcsIDMyN1xcKSBc XCggOTU3LCA3NTcsIDU1NywgMzU3XFwpIFxcKCA5ODcsIDc4NywgNTg3LFwKKysJCSAzODdcXCkg XFwpIFxcKCBcXCggOTI0LCA3MjQsIDUyNCwgMzI0XFwpIFxcKCA5NTQsIDc1NCwgNTU0LFwKKysJ CSAzNTRcXCkgXFwoIDk4NCwgNzg0LCA1ODQsIDM4NFxcKSBcXCkgXFwoIFxcKCA5MjEsIDcyMSwg NTIxLFwKKysJCSAzMjFcXCkgXFwoIDk1MSwgNzUxLCA1NTEsIDM1MVxcKSBcXCggOTgxLCA3ODEs IDU4MSwgMzgxXFwpIFxcKVwKKysJCSBcXCkiIFwKKysgICAgICAgICAgICAgICAgInByaW50IGFy NCg5OjI6LTIsIC02OjI6MywgLTY6LTE1Oi0zKSIKKysKKytnZGJfdGVzdCAicCBhcjRcKDosOiw6 XCkiIFwKKysgICAgICAgICAgICAgICAgIlxcJFxbMC05XF0rID0gXFwoXFwoIFxcKCAxMTEsIDIx MSwgMzExLCA0MTEsIDUxMSwgNjExLCA3MTEsXAorKwkJIDgxMSwgLioiIFwKKysgICAgICAgICAg ICAgICAgInByaW50IGFyNCg6LDosOikiCisrCisrIyBQcm92b2tlIGVycm9yIG1lc3NhZ2VzIGZv ciBiYWQgdXNlciBpbnB1dAorK2dkYl90ZXN0ICJwcmludCBhcjFcKDA6NFwpIiBcCisrCQkicHJv dmlkZWQgYm91bmRcXChzXFwpIG91dHNpZGUgYXJyYXkgYm91bmRcXChzXFwpIiBcCisrCQkicHJp bnQgYXIxXCgwOjRcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjEyXCkiIFwKKysJCSJwcm92 aWRlZCBib3VuZFxcKHNcXCkgb3V0c2lkZSBhcnJheSBib3VuZFxcKHNcXCkiIFwKKysJCSJwcmlu dCBhcjFcKDg6MTJcKSIKKytnZGJfdGVzdCAicHJpbnQgYXIxXCg4OjI6XCkiIFwKKysJCSJBIHN5 bnRheCBlcnJvciBpbiBleHByZXNzaW9uLCBuZWFyIGBcXCknLiIgXAorKwkJInByaW50IGFyMVwo ODoyOlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjFcKDg6MjoyXCkiIFwKKysJCSJXcm9uZyB2YWx1 ZSBwcm92aWRlZCBmb3Igc3RyaWRlIGFuZCBib3VuZGFyaWVzIiBcCisrCQkicHJpbnQgYXIxXCg4 OjI6MlwpIgorK2dkYl90ZXN0ICJwcmludCBhcjFcKDI6ODotMlwpIiBcCisrCQkiV3JvbmcgdmFs dWUgcHJvdmlkZWQgZm9yIHN0cmlkZSBhbmQgYm91bmRhcmllcyIgXAorKwkJInByaW50IGFyMVwo Mjo4Oi0yXCkiCisrZ2RiX3Rlc3QgInByaW50IGFyMVwoMjo3OjBcKSIgXAorKwkJIlN0cmlkZSBt dXN0IG5vdCBiZSAwIiBcCisrCQkicHJpbnQgYXIxXCgyOjc6MFwpIgorK2dkYl90ZXN0ICJwcmlu dCBhcjFcKDM6N1wpID0gNDIiIFwKKysJCSJJbnZhbGlkIGNhc3QuIiBcCisrCQkiQXNzaWdubWVu dCBvZiB2YWx1ZSB0byBzdWJhcnJheSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N0YXRpYy1hcnJheXMuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0 aWMtYXJyYXlzLmY5MAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmYyMmZj YmUKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGlj LWFycmF5cy5mOTAKK0BAIC0wLDAgKzEsNTUgQEAKKyshIENvcHlyaWdodCAyMDE1IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEludGVsIENvcnAu IDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CisrIQorKyEgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysh IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKysKKytzdWJyb3V0aW5lIHN1YgorKyAgaW50ZWdlciwgZGltZW5zaW9uKDkp IDo6IGFyMQorKyAgaW50ZWdlciwgZGltZW5zaW9uKDksOSkgOjogYXIyCisrICBpbnRlZ2VyLCBk aW1lbnNpb24oOSw5LDkpIDo6IGFyMworKyAgaW50ZWdlciwgZGltZW5zaW9uKDEwLC03OjMsIC0x NTotNSkgOjogYXI0CisrICBpbnRlZ2VyIDo6IGksaixrCisrCisrICBhcjEgPSAxCisrICBhcjIg PSAxCisrICBhcjMgPSAxCisrICBhcjQgPSA0CisrCisrICAhIFJlc3VsdGluZyBhcnJheSBhcjMg bG9va3MgbGlrZSAoKCggMTExLCAxMTIsIDExMywgMTE0LC4uLikpKQorKyAgZG8gaSA9IDEsIDks IDEKKysgICAgYXIxKGkpID0gaQorKyAgICBkbyBqID0gMSwgOSwgMQorKyAgICAgIGFyMihpLGop ID0gaSoxMCArIGoKKysgICAgICBkbyBrID0gMSwgOSwgMQorKyAgICAgICAgYXIzKGksaixrKSA9 IGkqMTAwICsgaioxMCArIGsKKysgICAgICBlbmQgZG8KKysgICAgZW5kIGRvCisrICBlbmQgZG8K KysKKysgIGRvIGkgPSAxLCAxMCwgMQorKyAgICBkbyBqID0gLTcsIDMsIDEKKysgICAgICBkbyBr ID0gLTE1LCAtNSwgMQorKyAgICAgICAgYXI0KGksaixrKSA9IGkqMTAwICsgKGorOCkqMTAgKyAo aysxNikKKysgICAgICBlbmQgZG8KKysgICAgZW5kIGRvCisrICBlbmQgZG8KKysKKysgIGFyMSgx KSA9IDExICAhQlAxCisrICByZXR1cm4KKytlbmQKKysKKytwcm9ncmFtIHRlc3Rwcm9nCisrICBj YWxsIHN1YgorK2VuZAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmlkZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZGNmMTVlNQorLS0tIC9kZXYvbnVs bAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAorQEAgLTAs MCArMSw0NCBAQAorKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3Rm aWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhw ICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Cisr ICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBl cnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQor K30KKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAicmUtcmV2ZXJzZS1l bGVtZW50cyJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInJlLXJldmVyc2UtZWxlbWVu dHMiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMiwgMywgNCwgNSwgNiwgNywg OCwgOSwgMTBcXFwpIiBcCisrICAicHJpbnQgcmUtcmV2ZXJzZS1lbGVtZW50cyIKKytnZGJfdGVz dCAicHJpbnQgcHZsYSgxKSIgIiA9IDEiICJwcmludCBmaXJzdCByZS1yZXZlcnNlLWVsZW1lbnQi CisrZ2RiX3Rlc3QgInByaW50IHB2bGEoMTApIiAiID0gMTAiICJwcmludCBsYXN0IHJlLXJldmVy c2UtZWxlbWVudCIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAib2Rk LWVsZW1lbnRzIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAib2RkLWVsZW1lbnRzIgor K2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxcKDEsIDMsIDUsIDcsIDlcXFwpIiAicHJpbnQg b2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZp cnN0IG9kZC1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDUpIiAiID0gOSIgInByaW50 IGxhc3Qgb2RkLWVsZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgInNpbmdsZS1lbGVtZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2luZ2xl LWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmludCBz aW5nbGUtZWxlbWVudCIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmludCBv bmUgc2luZ2xlLWVsZW1lbnQiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaWRlLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5m OTAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lYjAyNzRjCistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCitA QCAtMCwwICsxLDI5IEBACisrISBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisrISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEgCisrISBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyEgCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3Jh bSB2bGFfc3RyaWRlCisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikK KysgIGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAoOikKKysKKysgIGFsbG9jYXRlKHZsYSgxMCkp CisrICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8pCisrCisrICBwdmxhID0+IHZsYSgxMDoxOi0x KQorKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISBy ZS1yZXZlcnNlLWVsZW1lbnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVu dHMKKysKKysgIHB2bGEgPT4gbnVsbCgpICAgICAgICAhIHNpbmdsZS1lbGVtZW50CisrZW5kIHBy b2dyYW0gdmxhX3N0cmlkZQorZGlmZiAtLWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFy aXRoLmMKK2luZGV4IGRlNmZjZmQuLjkwOTM5NjkgMTAwNjQ0CistLS0gYS9nZGIvdmFsYXJpdGgu YworKysrIGIvZ2RiL3ZhbGFyaXRoLmMKK0BAIC0xOTMsOSArMTkzLDIxIEBAIHZhbHVlX3N1YnNj cmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxv d2VyYm91bmQpCisgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKGFycmF5KSk7CisgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBl ZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CisgICBVTE9OR0VTVCBlbHRfc2l6 ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7CistICBVTE9OR0VTVCBlbHRfb2ZmcyA9 IGVsdF9zaXplICogKGluZGV4IC0gbG93ZXJib3VuZCk7CisrICBVTE9OR0VTVCBlbHRfb2ZmcyA9 IGluZGV4IC0gbG93ZXJib3VuZDsKKysgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9T VFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOworICAgc3RydWN0IHZhbHVlICp2 OworIAorKyAgaWYgKGVsdF9zdHJpZGUgPiAwKQorKyAgICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRl OworKyAgZWxzZSBpZiAoZWx0X3N0cmlkZSA8IDApCisrICAgIHsKKysgICAgICBpbnQgb2ZmcyA9 IChlbHRfb2ZmcyArIDEpICogZWx0X3N0cmlkZTsKKysKKysgICAgICBlbHRfb2ZmcyA9IFRZUEVf TEVOR1RIIChhcnJheV90eXBlKSArIG9mZnM7CisrICAgIH0KKysgIGVsc2UKKysgICAgZWx0X29m ZnMgKj0gZWx0X3NpemU7CisrCisgICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kIHx8ICghVFlQRV9B UlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKGFycmF5X3R5cGUpCisgCQkJICAgICAmJiBl bHRfb2ZmcyA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpKQorICAgICB7CitkaWZm IC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCitpbmRleCA0MDM5MmU4Li4yNGZm YWNiIDEwMDY0NAorLS0tIGEvZ2RiL3ZhbG9wcy5jCisrKysgYi9nZGIvdmFsb3BzLmMKK0BAIC0z Nzc1LDU2ICszNzc1LDE5MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxh bmd1YWdlX2RlZm4gKmxhbmcpCisgc3RydWN0IHZhbHVlICoKKyB2YWx1ZV9zbGljZSAoc3RydWN0 IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQorIHsKKysgIC8qIFBhc3Mg dW5hbHRlcmVkIGFyZ3VtZW50cyB0byBWQUxVRV9TTElDRV8xLCBwbHVzIGEgZGVmYXVsdCBzdHJp ZGUKKysgICAgIHZhbHVlIG9mICcxJywgd2hpY2ggcmV0dXJucyBldmVyeSBlbGVtZW50IGJldHdl ZW4gTE9XQk9VTkQgYW5kCisrICAgICAoTE9XQk9VTkQgKyBMRU5HVEgpLiAgV2UgYWxzbyBwcm92 aWRlIGEgZGVmYXVsdCBDQUxMX0NPVU5UIG9mICcxJworKyAgICAgYXMgd2UgYXJlIG9ubHkgY29u c2lkZXJpbmcgdGhlIGhpZ2hlc3QgZGltZW5zaW9uLCBvciB3ZSBhcmUKKysgICAgIHdvcmtpbmcg b24gYSBvbmUgZGltZW5zaW9uYWwgYXJyYXkuICBTbyB3ZSBjYWxsIFZBTFVFX1NMSUNFXzEKKysg ICAgIGV4YWN0bHkgb25jZS4gICovCisrICByZXR1cm4gdmFsdWVfc2xpY2VfMSAoYXJyYXksIGxv d2JvdW5kLCBsZW5ndGgsIDEsIDEpOworK30KKysKKysvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxl ZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIKKysgICBv ZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbi4KKysgICBD QUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5j dGlvbiBvbmNlLCBlLmcuCisrICAgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJlbnQgZGltZW5z aW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2FsbGluZworKyAgIHRoZSBmdW5jdGlvbiByZXBl YXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtlIGVsZW1lbnRzCisrICAg ZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVkuCisrICAgV2l0aCBhIENBTExfQ09VTlQgZ3Jl YXRlciB0aGFuIDEgd2UgY2FsY3VsYXRlIHRoZSBvZmZzZXRzIGZvciBldmVyeSBlbGVtZW50Cisr ICAgdGhhdCBzaG91bGQgYmUgaW4gdGhlIHJlc3VsdCBhcnJheS4gIFRoZW4gd2UgZmV0Y2ggdGhl IGNvbnRlbnRzIGFuZCB0aGVuCisrICAgY29weSB0aGVtIGludG8gdGhlIHJlc3VsdCBhcnJheS4g IFRoZSByZXN1bHQgYXJyYXkgd2lsbCBoYXZlIG9uZSBkaW1lbnNpb24KKysgICBsZXNzIHRoYW4g dGhlIGlucHV0IGFycmF5LCBzbyBsYXRlciBvbiB3ZSBuZWVkIHRvIHJlY3JlYXRlIHRoZSBpbmRp Y2VzIGFuZAorKyAgIHJhbmdlcyBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbi4gICovCisrCisrc3Ry dWN0IHZhbHVlICoKKyt2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93 Ym91bmQsIGludCBsZW5ndGgsCisrCSAgICAgICBpbnQgc3RyaWRlX2xlbmd0aCwgaW50IGNhbGxf Y291bnQpCisreworICAgc3RydWN0IHR5cGUgKnNsaWNlX3JhbmdlX3R5cGUsICpzbGljZV90eXBl LCAqcmFuZ2VfdHlwZTsKKy0gIExPTkdFU1QgbG93ZXJib3VuZCwgdXBwZXJib3VuZDsKKy0gIHN0 cnVjdCB2YWx1ZSAqc2xpY2U7CistICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZTsKKysgIHN0cnVj dCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsK KysgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZ UEUgKGFycmF5X3R5cGUpKTsKKysgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSwgZWx0X29mZnM7Cisr ICBMT05HRVNUIGFyeV9oaWdoX2JvdW5kLCBhcnlfbG93X2JvdW5kOworKyAgc3RydWN0IHZhbHVl ICp2OworKyAgaW50IHNsaWNlX3JhbmdlX3NpemUsIGkgPSAwLCByb3dfY291bnQgPSAxLCBlbGVt X2NvdW50ID0gMTsKKyAKKy0gIGFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBl IChhcnJheSkpOworKyAgLyogQ2hlY2sgZm9yIGxlZ2FjeSBjb2RlIGlmIHdlIGFyZSBhY3R1YWxs eSBkZWFsaW5nIHdpdGggYW4gYXJyYXkgb3IKKysgICAgIHN0cmluZy4gICovCisgICBpZiAoVFlQ RV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkKKyAgICAgICAmJiBUWVBFX0NP REUgKGFycmF5X3R5cGUpICE9IFRZUEVfQ09ERV9TVFJJTkcpCisgICAgIGVycm9yIChfKCJjYW5u b3QgdGFrZSBzbGljZSBvZiBub24tYXJyYXkiKSk7CisgCistICByYW5nZV90eXBlID0gVFlQRV9J TkRFWF9UWVBFIChhcnJheV90eXBlKTsKKy0gIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5n ZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpIDwgMCkKKy0gICAgZXJyb3IgKF8oInNs aWNlIGZyb20gYmFkIGFycmF5IG9yIGJpdHN0cmluZyIpKTsKKysgIGFyeV9sb3dfYm91bmQgPSBU WVBFX0xPV19CT1VORCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7CisrICBhcnlfaGln aF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7 CisrCisrICAvKiBXaGVuIHdlIGFyZSB3b3JraW5nIG9uIGEgbXVsdGktZGltZW5zaW9uYWwgYXJy YXksIHdlIG5lZWQgdG8gZ2V0IHRoZQorKyAgICAgYXR0cmlidXRlcyBvZiB0aGUgdW5kZXJseWlu ZyB0eXBlLiAgKi8KKysgIGlmIChjYWxsX2NvdW50ID4gMSkKKysgICAgeworKyAgICAgIGFyeV9s b3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAoVFlQRV9JTkRFWF9UWVBFIChlbHRfdHlwZSkpOwor KyAgICAgIGFyeV9oaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChUWVBFX0lOREVYX1RZUEUg KGVsdF90eXBlKSk7CisrICAgICAgZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdF VF9UWVBFIChlbHRfdHlwZSkpOworKyAgICAgIHJvd19jb3VudCA9IFRZUEVfTEVOR1RIIChhcnJh eV90eXBlKQorKwkJICAgIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpKTsKKysgICAgfQorKworKyAgLyogV2l0aCBhIHN0cmlkZSBvZiAnMScsIHRoZSBudW1iZXIg b2YgZWxlbWVudHMgcGVyIHJlc3VsdCByb3cgaXMgZXF1YWwgdG8KKysgICAgIHRoZSBMRU5HVEgg b2YgdGhlIHN1YmFycmF5LiAgV2l0aCBub24tZGVmYXVsdCBzdHJpZGUgdmFsdWVzLCB3ZSBza2lw CisrICAgICBlbGVtZW50cywgYnV0IGhhdmUgdG8gYWRkIHRoZSBzdGFydCBlbGVtZW50IHRvIHRo ZSB0b3RhbCBudW1iZXIgb2YKKysgICAgIGVsZW1lbnRzIHBlciByb3cuICAqLworKyAgaWYgKHN0 cmlkZV9sZW5ndGggPT0gMSkKKysgICAgZWxlbV9jb3VudCA9IGxlbmd0aDsKKysgIGVsc2UKKysg ICAgZWxlbV9jb3VudCA9ICgobGVuZ3RoIC0gMSkgLyBzdHJpZGVfbGVuZ3RoKSArIDE7CisrCisr ICBlbHRfc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CisrICBlbHRfb2ZmcyA9IGxvd2Jv dW5kIC0gYXJ5X2xvd19ib3VuZDsKKyAKKy0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQgfHwg bGVuZ3RoIDwgMAorLSAgICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQp CistICAgIGVycm9yIChfKCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CisrICBlbHRfb2ZmcyAqPSBl bHRfc2l6ZTsKKysKKysgIC8qIENoZWNrIGZvciB2YWxpZCB1c2VyIGlucHV0LiAgSW4gY2FzZSBv ZiBGb3J0cmFuIHRoaXMgd2FzIGFscmVhZHkgZG9uZQorKyAgICAgaW4gdGhlIGNhbGxpbmcgZnVu Y3Rpb24uICAqLworKyAgaWYgKGNhbGxfY291bnQgPT0gMQorKwkmJiAoIVRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQorKwkgICAgICAmJiBlbHRfb2ZmcyA+ PSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkpKQorKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCIpKTsKKysKKysgIC8qIENBTExfQ09VTlQgaXMgMSB3aGVuIHdlIGFyZSBkZWFs aW5nIGVpdGhlciB3aXRoIHRoZSBoaWdoZXN0IGRpbWVuc2lvbgorKyAgICAgb2YgdGhlIGFycmF5 LCBvciBhIG9uZSBkaW1lbnNpb25hbCBhcnJheS4gIFNldCBSQU5HRV9UWVBFIGFjY29yZGluZ2x5 LgorKyAgICAgSW4gYm90aCBjYXNlcyB3ZSBjYWxjdWxhdGUgaG93IG1hbnkgcm93cy9lbGVtZW50 cyB3aWxsIGJlIGluIHRoZSBvdXRwdXQKKysgICAgIGFycmF5IGJ5IHNldHRpbmcgc2xpY2VfcmFu Z2Vfc2l6ZS4gICovCisrICBpZiAoY2FsbF9jb3VudCA9PSAxKQorKyAgICB7CisrICAgICAgcmFu Z2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSk7CisrICAgICAgc2xpY2VfcmFu Z2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyBlbGVtX2NvdW50IC0gMTsKKysKKysgICAgICAvKiBD aGVjayBpZiB0aGUgYXJyYXkgYm91bmRzIGFyZSB2YWxpZC4gICovCisrICAgICAgaWYgKGdldF9k aXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZhcnlfbG93X2JvdW5kLCAmYXJ5X2hpZ2hfYm91 bmQpIDwgMCkKKysJZXJyb3IgKF8oInNsaWNlIGZyb20gYmFkIGFycmF5IG9yIGJpdHN0cmluZyIp KTsKKysgICAgfQorKyAgLyogV2hlbiBDQUxMX0NPVU5UIGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZSBh cmUgZGVhbGluZyB3aXRoIGFuIGFycmF5IG9mIGFycmF5cy4KKysgICAgIFNvIHdlIG5lZWQgdG8g Z2V0IHRoZSB0eXBlIGJlbG93IHRoZSBjdXJyZW50IG9uZSBhbmQgc2V0IHRoZSBSQU5HRV9UWVBF CisrICAgICBhY2NvcmRpbmdseS4gICovCisrICBlbHNlCisrICAgIHsKKysgICAgICByYW5nZV90 eXBlID0gVFlQRV9JTkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Cisr ICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxl bV9jb3VudCkgLSAxOworKyAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFu Z2VfdHlwZSk7CisrICAgIH0KKyAKKyAgIC8qIEZJWE1FLXR5cGUtYWxsb2NhdGlvbjogbmVlZCBh IHdheSB0byBmcmVlIHRoaXMgdHlwZSB3aGVuIHdlIGFyZQorLSAgICAgZG9uZSB3aXRoIGl0LiAg Ki8KKy0gIHNsaWNlX3JhbmdlX3R5cGUgPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKChzdHJ1 Y3QgdHlwZSAqKSBOVUxMLAorLQkJCQkJICAgICAgIFRZUEVfVEFSR0VUX1RZUEUgKHJhbmdlX3R5 cGUpLAorLQkJCQkJICAgICAgIGxvd2JvdW5kLAorLQkJCQkJICAgICAgIGxvd2JvdW5kICsgbGVu Z3RoIC0gMSk7CisrICAgICAgZG9uZSB3aXRoIGl0LiAgKi8KKyAKKysgIHNsaWNlX3JhbmdlX3R5 cGUgPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsIFRZUEVfVEFSR0VUX1RZUEUgKHJh bmdlX3R5cGUpLAorKwkJCQkJICAgICAgIGFyeV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3NpemUp OworICAgeworLSAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQ RSAoYXJyYXlfdHlwZSk7CistICAgIExPTkdFU1Qgb2Zmc2V0CistICAgICAgPSAobG93Ym91bmQg LSBsb3dlcmJvdW5kKSAqIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUp KTsKKysgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKKysKKysgICAgLyogV2hlbiBib3Ro IENBTExfQ09VTlQgYW5kIFNUUklERV9MRU5HVEggZXF1YWwgMSwgd2UgY2FuIHVzZSB0aGUgbGVn YWN5CisrICAgICAgIGNvZGUgZm9yIHN1YmFycmF5cy4gICovCisrICAgIGlmIChjYWxsX2NvdW50 ID09IDEgJiYgc3RyaWRlX2xlbmd0aCA9PSAxKQorKyAgICAgIHsKKysJZWxlbWVudF90eXBlID0g VFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CisrCisrCXNsaWNlX3R5cGUgPSBjcmVhdGVf YXJyYXlfdHlwZSAoTlVMTCwgZWxlbWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsKKyAKKy0g ICAgc2xpY2VfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwK Ky0JCQkJICAgIGVsZW1lbnRfdHlwZSwKKy0JCQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOworLSAg ICBUWVBFX0NPREUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKKysJVFlQ RV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CisgCistICAgIGlm IChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkp KQorLSAgICAgIHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CisrCWlm IChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkp KQorKwkgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzbGljZV90eXBlKTsKKysJZWxzZQorKwkg IHsKKysJICAgIHYgPSBhbGxvY2F0ZV92YWx1ZSAoc2xpY2VfdHlwZSk7CisrCSAgICB2YWx1ZV9j b250ZW50c19jb3B5ICh2LAorKwkJCQkgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKKysJCQkJ IGFycmF5LAorKwkJCQkgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcnJheSkgKyBlbHRfb2ZmcywK KysJCQkJIGVsdF9zaXplICogbG9uZ2VzdF90b19pbnQgKGxlbmd0aCkpOworKwkgIH0KKysKKysg ICAgICB9CisrICAgIC8qIFdpdGggYSBDQUxMX0NPVU5UIG9yIFNUUklERV9MRU5HVEggYXJlIGdy ZWF0ZXIgdGhhbiAxIHdlIGFyZSB3b3JraW5nCisrICAgICAgIG9uIGEgcmFuZ2Ugb2YgcmFuZ2Vz LiAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUKKysgICAgICAgbmV3 IGFycmF5IHdlIHJldHVybi4gICovCisgICAgIGVsc2UKKyAgICAgICB7CistCXNsaWNlID0gYWxs b2NhdGVfdmFsdWUgKHNsaWNlX3R5cGUpOworLQl2YWx1ZV9jb250ZW50c19jb3B5IChzbGljZSwg MCwgYXJyYXksIG9mZnNldCwKKy0JCQkgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIChzbGljZV90eXBl KSk7CisrCWludCBqLCBvZmZzX3N0b3JlID0gZWx0X29mZnM7CisrCUxPTkdFU1QgZHN0X29mZnNl dCA9IDA7CisrCUxPTkdFU1Qgc3JjX3Jvd19sZW5ndGggPSBUWVBFX0xFTkdUSCAoVFlQRV9UQVJH RVRfVFlQRSAoYXJyYXlfdHlwZSkpOworKworKwlpZiAoY2FsbF9jb3VudCA9PSAxKQorKwkgIHsK KysJICAgIC8qIFdoZW4gQ0FMTF9DT1VOVCBpcyBlcXVhbCB0byAxIHdlIGFyZSB3b3JraW5nIG9u IHRoZSBjdXJyZW50IHJhbmdlCisrCSAgICAgICBhbmQgdXNlIHRoZXNlIGVsZW1lbnRzIGRpcmVj dGx5LiAgKi8KKysJICAgIGVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpOworKwkgIH0KKysJZWxzZQorKwkgIHsKKysJICAgIC8qIFdvcmtpbmcgb24gYW4gYXJyYXkg b2YgYXJyYXlzLCB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaXMgdGhlIHR5cGUKKysJICAgICAg IG9mIHRoZSBzdWJhcnJheXMnIHR5cGUuICAqLworKwkgICAgZWxlbWVudF90eXBlID0gVFlQRV9U QVJHRVRfVFlQRSAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOworKwkgIH0KKysKKysJ c2xpY2VfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlIChOVUxMLCBlbGVtZW50X3R5cGUsIHNsaWNl X3JhbmdlX3R5cGUpOworKworKwkgLyogSWYgd2UgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJh eSwgd2UgY29weSBpdHMgVFlQRV9DT0RFLiAgRm9yIGEKKysJICAgIG11bHRpIGRpbWVuc2lvbmFs IGFycmF5IHdlIGNvcHkgdGhlIGVtYmVkZGVkIHR5cGUncyBUWVBFX0NPREUuICAqLworKwlpZiAo Y2FsbF9jb3VudCA9PSAxKQorKwkgIFRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUg KGFycmF5X3R5cGUpOworKwllbHNlCisrCSAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVf Q09ERSAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOworKworKwl2ID0gYWxsb2NhdGVf dmFsdWUgKHNsaWNlX3R5cGUpOworKworKwkvKiBJdGVyYXRlIHRocm91Z2ggdGhlIHJvd3Mgb2Yg dGhlIG91dGVyIGFycmF5IGFuZCBzZXQgdGhlIG5ldyBvZmZzZXQKKysJICAgZm9yIGVhY2ggcm93 LiAgKi8KKysJZm9yIChpID0gMDsgaSA8IHJvd19jb3VudDsgaSsrKQorKwkgIHsKKysJICAgIGVs dF9vZmZzID0gb2Zmc19zdG9yZSArIGkgKiBzcmNfcm93X2xlbmd0aDsKKysKKysJICAgIC8qIEl0 ZXJhdGUgdGhyb3VnaCB0aGUgZWxlbWVudHMgaW4gZWFjaCByb3cgdG8gY29weSBvbmx5IHRob3Nl LiAgKi8KKysJICAgIGZvciAoaiA9IDE7IGogPD0gZWxlbV9jb3VudDsgaisrKQorKwkgICAgICB7 CisrCQkvKiBGZXRjaGVzIHRoZSBjb250ZW50cyBvZiBBUlJBWSBhbmQgY29waWVzIHRoZW0gaW50 byBWLiAgKi8KKysJCXZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIGRzdF9vZmZzZXQsIGFycmF5LCBl bHRfb2ZmcywgZWx0X3NpemUpOworKwkJZWx0X29mZnMgKz0gZWx0X3NpemUgKiBzdHJpZGVfbGVu Z3RoOworKwkJZHN0X29mZnNldCArPSBlbHRfc2l6ZTsKKysJICAgICAgfQorKwkgIH0KKyAgICAg ICB9CisgCistICAgIHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHNsaWNlLCBhcnJheSk7 CistICAgIFZBTFVFX0ZSQU1FX0lEIChzbGljZSkgPSBWQUxVRV9GUkFNRV9JRCAoYXJyYXkpOwor LSAgICBzZXRfdmFsdWVfb2Zmc2V0IChzbGljZSwgdmFsdWVfb2Zmc2V0IChhcnJheSkgKyBvZmZz ZXQpOworKyAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBhcnJheSk7CisrICAg IFZBTFVFX1JFR05VTSAodikgPSBWQUxVRV9SRUdOVU0gKGFycmF5KTsKKysgICAgVkFMVUVfRlJB TUVfSUQgKHYpID0gVkFMVUVfRlJBTUVfSUQgKGFycmF5KTsKKysgICAgc2V0X3ZhbHVlX29mZnNl dCAodiwgdmFsdWVfb2Zmc2V0IChhcnJheSkgKyBlbHRfb2Zmcyk7CisgICB9CisgCistICByZXR1 cm4gc2xpY2U7CisrICByZXR1cm4gdjsKKyB9CisgCisgLyogQ3JlYXRlIGEgdmFsdWUgZm9yIGEg Rk9SVFJBTiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0IG9mIHRoZQorZGlmZiAtLWdp dCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKK2luZGV4IDBiNDE3YjQuLjljMzc3MTMgMTAw NjQ0CistLS0gYS9nZGIvdmFsdWUuaAorKysrIGIvZ2RiL3ZhbHVlLmgKK0BAIC0xMDU3LDYgKzEw NTcsOCBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YXJ5aW5nX3RvX3NsaWNlIChzdHJ1Y3QgdmFs dWUgKik7CisgCisgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1 ZSAqLCBpbnQsIGludCk7CisgCisrZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2VfMSAo c3RydWN0IHZhbHVlICosIGludCwgaW50LCBpbnQsIGludCk7CisrCisgZXh0ZXJuIHN0cnVjdCB2 YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVl ICosCisgCQkJCQkgICAgc3RydWN0IHR5cGUgKik7CisgCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1p bnRlbC10ZXN0cy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtdGVzdHMucGF0Y2gKaW5kZXggZmM4YWI1 Yi4uYmJiYTNjNyAxMDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRjaAorKysgYi9n ZGItdmxhLWludGVsLXRlc3RzLnBhdGNoCkBAIC0xNDAsOTAgKzE0MCw2IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAog KwogKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAgICAgICEgZnVuYzItcmV0dXJuZWQKICtlbmQg cHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTYtMDEtMDgg MTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCi1AQCAtMCwwICsxLDQ0IEBACi0rIyBDb3B5cmlnaHQg MjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0r IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJl cGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBc Ci0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lm ICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJl YWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNlLWVsZW1lbnRzIl0KLStnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZs YSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcXCkiIFwKLSsgICJwcmlu dCByZS1yZXZlcnNlLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIg InByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgx MCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2ZXJzZS1lbGVtZW50IgotKwotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMiXQotK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIg PSBcXFwoMSwgMywgNSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3Qg InByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQiCi0rZ2RiX3Rl c3QgInByaW50IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVudCIKLSsKLStn ZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAic2luZ2xlLWVsZW1lbnQiXQotK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKLStnZGJfdGVzdCAicHJp bnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50IgotK2dkYl90ZXN0 ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp ZGUuZjkwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEw MAotQEAgLTAsMCArMSwzMCBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl LCBvcgotKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5j LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT QS4KLSsKLStwcm9ncmFtIHZsYV9zdHJpZGUKLSsgIGludGVnZXIsIHRhcmdldCwgYWxsb2NhdGFi bGUgOjogdmxhICg6KQotKyAgaW50ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQotKwotKyAgYWxs b2NhdGUodmxhKDEwKSkKLSsgIHZsYSA9ICgvIChJLCBJID0gMSwxMCkgLykKLSsKLSsgIHB2bGEg PT4gdmxhKDEwOjE6LTEpCi0rICBwdmxhID0+IHB2bGEoMTA6MTotMSkKLSsgIHB2bGEgPT4gdmxh KDE6MTA6MikgICAhIHJlLXJldmVyc2UtZWxlbWVudHMKLSsgIHB2bGEgPT4gdmxhKDU6NDotMikg ICAhIG9kZC1lbGVtZW50cwotKwotKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVs ZW1lbnQKLStlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCiBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5nc29sZC5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKCmRp ZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDE5ZDZhNjMuLjg1NzE1MDAgMTAw NjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0yNyw3ICsyNyw3IEBAIFZlcnNp b246IDcuMTEuOTAuMjAxNjA4MDcKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBs ZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBu b3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0 aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA2JXs/ZGlzdH0KK1JlbGVhc2U6IDclez9k aXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQ THYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQg QlNEIGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdn ZXJzCkBAIC01MjAsMTIgKzUyMCw5IEBAIFBhdGNoODQ4OiBnZGItZHRzLXJoZWw2LXB5dGhvbi1j b21wYXQucGF0Y2gKIFBhdGNoODUyOiBnZGItZ25hdC1kd2FyZi1jcmFzaC0zb2YzLnBhdGNoCiAK ICMgVkxBIChGb3J0cmFuIGR5bmFtaWMgYXJyYXlzKSBmcm9tIEludGVsICsgYXJjaGVyLWphbmty YXRvY2h2aWwtdmxhIHRlc3RzLgotUGF0Y2gxMDU4OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwt MW9mNi5wYXRjaAotUGF0Y2gxMDU5OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5wYXRj aAotUGF0Y2gxMDYwOiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaAotUGF0Y2gx MDYxOiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAotUGF0Y2gxMDYyOiBnZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtNW9mNi5wYXRjaAotUGF0Y2gxMDYzOiBnZGItZm9ydHJhbi1z dHJpZGUtaW50ZWwtNm9mNi5wYXRjaAorUGF0Y2gxMDU4OiBnZGItdmxhLWludGVsLWJyYW5jaC5w YXRjaAorUGF0Y2gxMDU5OiBnZGItdmxhLWludGVsLWJyYW5jaC1maXgtc3RyaWRlLTFvZjIucGF0 Y2gKK1BhdGNoMTA2MDogZ2RiLXZsYS1pbnRlbC1icmFuY2gtZml4LXN0cmlkZS0yb2YyLnBhdGNo CiBQYXRjaDExMzI6IGdkYi12bGEtaW50ZWwtMW9mNy5wYXRjaAogUGF0Y2gxMTMzOiBnZGItdmxh LWludGVsLTJvZjcucGF0Y2gKIFBhdGNoMTEzNDogZ2RiLXZsYS1pbnRlbC0zb2Y3LnBhdGNoCkBA IC03OTAsOSArNzg3LDYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRj aDEwNTggLXAxCiAlcGF0Y2gxMDU5IC1wMQogJXBhdGNoMTA2MCAtcDEKLSVwYXRjaDEwNjEgLXAx Ci0lcGF0Y2gxMDYyIC1wMQotJXBhdGNoMTA2MyAtcDEKICVwYXRjaDExMzIgLXAxCiAlcGF0Y2gx MTMzIC1wMQogJXBhdGNoMTEzNCAtcDEKQEAgLTE0NjksNiArMTQ2Myw5IEBAIHRoZW4KIGZpCiAK ICVjaGFuZ2Vsb2cKKyogRnJpIEF1ZyAyNiAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPiAtIDcuMTEuOTAuMjAxNjA4MDctNy5mYzI1CistIEZpeCBJbnRlbCBW TEEgcGF0Y2hzZXQgcmVncmVzc2lvbjogZHluYW1pYy5leHA6IHAgdmFydyBmaWxsZWQKKwogKiBU dWUgQXVnIDIzIDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ IC0gNy4xMS45MC4yMDE2MDgwNy02LmZjMjUKIC0gTWVyZ2UgRmVkb3JhIHBhY2thZ2luZyBjaGFu Z2VzIGZyb20gRmVkb3JhIDI0IGdkYi03LjExLjEtODMuZmMyNDoKIAo=