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: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/opensips] f43: OpenSIPS ver. 3.6.7 Date: Wed, 24 Jun 2026 17:40:30 GMT Message-ID: <178232283001.1.5437227634558947751.rpms-opensips-51715504dc47@fedoraproject.org> List-ID: X-Git-Repo: rpms/opensips X-Git-Branch: f43 X-Git-Rev: 51715504dc4735be585c393af6ec55f45693aba6 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnNpcHMKICAgICAgICAgICAgQnJhbmNoIDogZjQzCiAgICAgICAgICAg IENvbW1pdCA6IDUxNzE1NTA0ZGM0NzM1YmU1ODVjMzkzYWY2ZWM1NWY0NTY5M2FiYTYKICAgICAg ICAgICAgQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAyNi0wNi0yNFQxOTowMTo0NCswMjowMAogICAgICAgICAgICBTdGF0 cyAgOiArNzAwLy0yMjg2IGluIDI2IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9vcGVuc2lwcy9jLzUxNzE1NTA0ZGM0NzM1YmU1 ODVjMzkzYWY2ZWM1NWY0NTY5M2FiYTY/YnJhbmNoPWY0MwoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBPcGVuU0lQUyB2ZXIuIDMuNi43CgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgoKLS0tCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDAxLUNv bnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2ggYi9vcGVuc2lwcy0wMDAxLUNv bnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2gKaW5kZXggOTFhMWY0OC4uNmJj NmVjOCAxMDA2NDQKLS0tIGEvb3BlbnNpcHMtMDAwMS1Db25zaXN0ZW50bHktdXNlLXJ0cHByb3h5 LXN3aXRjaGVzLnBhdGNoCisrKyBiL29wZW5zaXBzLTAwMDEtQ29uc2lzdGVudGx5LXVzZS1ydHBw cm94eS1zd2l0Y2hlcy5wYXRjaApAQCAtNiw3ICs2LDcgQEAgU3ViamVjdDogW1BBVENIXSBDb25z aXN0ZW50bHkgdXNlIHJ0cHByb3h5IHN3aXRjaGVzCiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1l bmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgogCiBkaWZmIC0tZ2l0IGEvbW9kdWxlcy9ydHBwcm94 eS9kb2MvcnRwcHJveHlfYWRtaW4ueG1sIGIvbW9kdWxlcy9ydHBwcm94eS9kb2MvcnRwcHJveHlf YWRtaW4ueG1sCi1pbmRleCAyYWU0YzliMmIuLmMxN2I3N2QwNSAxMDA2NDQKK2luZGV4IDJhZTRj OWIyYjAuLmMxN2I3N2QwNWYgMTAwNjQ0CiAtLS0gYS9tb2R1bGVzL3J0cHByb3h5L2RvYy9ydHBw cm94eV9hZG1pbi54bWwKICsrKyBiL21vZHVsZXMvcnRwcHJveHkvZG9jL3J0cHByb3h5X2FkbWlu LnhtbAogQEAgLTYzNyw3ICs2MzcsNyBAQCBtb2RwYXJhbSgicnRwcHJveHkiLCAiZ2VuZXJhdGVk X3NkcF9tZWRpYV9pcCIsICIxMC4wLjAuMSIpCkBAIC0xOSw3ICsxOSw3IEBAIGluZGV4IDJhZTRj OWIyYi4uYzE3Yjc3ZDA1IDEwMDY0NAogIAkJCQk8L3BhcmE+PC9saXN0aXRlbT4KICAJCQkJPGxp c3RpdGVtPjxwYXJhPgogZGlmZiAtLWdpdCBhL21vZHVsZXMvcnRwcHJveHkvcnRwcHJveHkuYyBi L21vZHVsZXMvcnRwcHJveHkvcnRwcHJveHkuYwotaW5kZXggOGYxNjgyMjA3Li5iOTk2NzlkZjgg MTAwNjQ0CitpbmRleCBkNmU2NjVlMzhjLi42MmJjMDk4ZmVhIDEwMDY0NAogLS0tIGEvbW9kdWxl cy9ydHBwcm94eS9ydHBwcm94eS5jCiArKysgYi9tb2R1bGVzL3J0cHByb3h5L3J0cHByb3h5LmMK IEBAIC0zNjk2LDggKzM2OTYsNiBAQCBzdGF0aWMgaW50IHJ0cHByb3h5X29mZmVyX2Fuc3dlcihz dHJ1Y3Qgc2lwX21zZyAqbXNnLCBzdHJ1Y3QgcnRwcF9hcmdzICphcmdzLAoKZGlmZiAtLWdpdCBh L29wZW5zaXBzLTAwMDItQ2xlYW51cC1PcmFjbGUtcy1tYWtlZmlsZXMucGF0Y2ggYi9vcGVuc2lw cy0wMDAyLUNsZWFudXAtT3JhY2xlLXMtbWFrZWZpbGVzLnBhdGNoCmluZGV4IDQyNDQwOWMuLmVl ZjlmMWMgMTAwNjQ0Ci0tLSBhL29wZW5zaXBzLTAwMDItQ2xlYW51cC1PcmFjbGUtcy1tYWtlZmls ZXMucGF0Y2gKKysrIGIvb3BlbnNpcHMtMDAwMi1DbGVhbnVwLU9yYWNsZS1zLW1ha2VmaWxlcy5w YXRjaApAQCAtNiw3ICs2LDcgQEAgU3ViamVjdDogW1BBVENIXSBDbGVhbnVwIE9yYWNsZSdzIG1h a2VmaWxlcwogU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KIAogZGlmZiAtLWdpdCBhL21vZHVsZXMvZGJfb3JhY2xlL01ha2VmaWxlIGIvbW9kdWxlcy9k Yl9vcmFjbGUvTWFrZWZpbGUKLWluZGV4IDAwZDJkNDEyZS4uMzA1OTJmZGYyIDEwMDY0NAoraW5k ZXggMDBkMmQ0MTJlMC4uMzA1OTJmZGYyYyAxMDA2NDQKIC0tLSBhL21vZHVsZXMvZGJfb3JhY2xl L01ha2VmaWxlCiArKysgYi9tb2R1bGVzL2RiX29yYWNsZS9NYWtlZmlsZQogQEAgLTQsNzYgKzQs OCBAQCBpbmNsdWRlIC4uLy4uL01ha2VmaWxlLmRlZnMKQEAgLTg5LDcgKzg5LDcgQEAgaW5kZXgg MDBkMmQ0MTJlLi4zMDU5MmZkZjIgMTAwNjQ0CiAgaW5jbHVkZSAuLi8uLi9NYWtlZmlsZS5tb2R1 bGVzCiAgCiBkaWZmIC0tZ2l0IGEvdXRpbHMvZGJfb3JhY2xlL01ha2VmaWxlIGIvdXRpbHMvZGJf b3JhY2xlL01ha2VmaWxlCi1pbmRleCBhZWFjY2Q3MTAuLjM5NzcyN2M4ZSAxMDA2NDQKK2luZGV4 IGFlYWNjZDcxMDYuLjM5NzcyN2M4ZTcgMTAwNjQ0CiAtLS0gYS91dGlscy9kYl9vcmFjbGUvTWFr ZWZpbGUKICsrKyBiL3V0aWxzL2RiX29yYWNsZS9NYWtlZmlsZQogQEAgLTksNzIgKzksOCBAQCBO QU1FPW9wZW5zaXBzX29yYXNlbAoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMDMtZGJfb3JhLW51 bGwtdGVybWluYXRpbmctc3RyaW5nLWlzLW1vcmUtc2FmZWx5LW1vc3QtbS5wYXRjaCBiL29wZW5z aXBzLTAwMDMtZGJfb3JhLW51bGwtdGVybWluYXRpbmctc3RyaW5nLWlzLW1vcmUtc2FmZWx5LW1v c3QtbS5wYXRjaAppbmRleCA5MjkyM2U2Li42ZWRkODdjIDEwMDY0NAotLS0gYS9vcGVuc2lwcy0w MDAzLWRiX29yYS1udWxsLXRlcm1pbmF0aW5nLXN0cmluZy1pcy1tb3JlLXNhZmVseS1tb3N0LW0u cGF0Y2gKKysrIGIvb3BlbnNpcHMtMDAwMy1kYl9vcmEtbnVsbC10ZXJtaW5hdGluZy1zdHJpbmct aXMtbW9yZS1zYWZlbHktbW9zdC1tLnBhdGNoCkBAIC02LDcgKzYsNyBAQCBTdWJqZWN0OiBbUEFU Q0hdIGRiX29yYTogbnVsbC10ZXJtaW5hdGluZyBzdHJpbmcgaXMgbW9yZSBzYWZlbHksIG1vc3Qg bW9kdWxlcwogCiAKIGRpZmYgLS1naXQgYS9tb2R1bGVzL2RiX29yYWNsZS9yZXMuYyBiL21vZHVs ZXMvZGJfb3JhY2xlL3Jlcy5jCi1pbmRleCA5NzA5OWI0YTAuLjJjZWQwYjNiNSAxMDA2NDQKK2lu ZGV4IDk3MDk5YjRhMDguLjJjZWQwYjNiNWMgMTAwNjQ0CiAtLS0gYS9tb2R1bGVzL2RiX29yYWNs ZS9yZXMuYwogKysrIGIvbW9kdWxlcy9kYl9vcmFjbGUvcmVzLmMKIEBAIC0yMTYsNyArMjE2LDcg QEAgc2V0X2ZsdDoKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDA0LVJldHVybi1hY3R1YWwtcGF5 bG9hZC1JRC1pbi1jYXNlLW9mLWEtZHluYW1pYy1wYXlsb2EucGF0Y2ggYi9vcGVuc2lwcy0wMDA0 LVJldHVybi1hY3R1YWwtcGF5bG9hZC1JRC1pbi1jYXNlLW9mLWEtZHluYW1pYy1wYXlsb2EucGF0 Y2gKaW5kZXggMjQ2OWFmZi4uM2U5ZjlhNCAxMDA2NDQKLS0tIGEvb3BlbnNpcHMtMDAwNC1SZXR1 cm4tYWN0dWFsLXBheWxvYWQtSUQtaW4tY2FzZS1vZi1hLWR5bmFtaWMtcGF5bG9hLnBhdGNoCisr KyBiL29wZW5zaXBzLTAwMDQtUmV0dXJuLWFjdHVhbC1wYXlsb2FkLUlELWluLWNhc2Utb2YtYS1k eW5hbWljLXBheWxvYS5wYXRjaApAQCAtNiw3ICs2LDcgQEAgU3ViamVjdDogW1BBVENIXSBSZXR1 cm4gYWN0dWFsIHBheWxvYWQgSUQgaW4gY2FzZSBvZiBhIGR5bmFtaWMgcGF5bG9hZAogU2lnbmVk LW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KIAogZGlmZiAtLWdp dCBhL21vZHVsZXMvc2lwbXNnb3BzL2NvZGVjcy5jIGIvbW9kdWxlcy9zaXBtc2dvcHMvY29kZWNz LmMKLWluZGV4IGI1YTZhN2E2Yi4uYWY3NGU5MjdlIDEwMDY0NAoraW5kZXggYjVhNmE3YTZiZC4u YWY3NGU5MjdlNiAxMDA2NDQKIC0tLSBhL21vZHVsZXMvc2lwbXNnb3BzL2NvZGVjcy5jCiArKysg Yi9tb2R1bGVzL3NpcG1zZ29wcy9jb2RlY3MuYwogQEAgLTI4LDYgKzI4LDcgQEAKCmRpZmYgLS1n aXQgYS9vcGVuc2lwcy0wMDA1LUZpeC1yYWJiaXRtcS1jLWRlcHJlY2F0ZWQtaGVhZGVyLXdhcm5p bmdzLnBhdGNoIGIvb3BlbnNpcHMtMDAwNS1GaXgtcmFiYml0bXEtYy1kZXByZWNhdGVkLWhlYWRl ci13YXJuaW5ncy5wYXRjaAppbmRleCA2YjhhMzRkLi5iN2JmNDkwIDEwMDY0NAotLS0gYS9vcGVu c2lwcy0wMDA1LUZpeC1yYWJiaXRtcS1jLWRlcHJlY2F0ZWQtaGVhZGVyLXdhcm5pbmdzLnBhdGNo CisrKyBiL29wZW5zaXBzLTAwMDUtRml4LXJhYmJpdG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2Fy bmluZ3MucGF0Y2gKQEAgLTg5LDcgKzg5LDcgQEAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5r b3YgPGxlbWVua292QGdtYWlsLmNvbT4KIEFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykg PGh0dHBzOi8vY2xhdWRlLmFpPgogCiBkaWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRt cS9SRUFETUUgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL1JFQURNRQotaW5kZXggNjk4ZmJmNjNk Li43Zjc0MmQ4MzMgMTAwNjQ0CitpbmRleCA4YWQyNGJmODU2Li4zNTk5ODVmYzJhIDEwMDY0NAog LS0tIGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9SRUFETUUKICsrKyBiL21vZHVsZXMvZXZlbnRf cmFiYml0bXEvUkVBRE1FCiBAQCAtMTMwLDcgKzEzMCw3IEBAIENoYXB0ZXIgMS4gQWRtaW4gR3Vp ZGUKQEAgLTEwMiw3ICsxMDIsNyBAQCBpbmRleCA2OThmYmY2M2QuLjdmNzQyZDgzMyAxMDA2NDQK ICAxLjUuIEV4cG9ydGVkIFBhcmFtZXRlcnMKICAKIGRpZmYgLS1naXQgYS9tb2R1bGVzL2V2ZW50 X3JhYmJpdG1xL2RvYy9ldmVudF9yYWJiaXRtcV9hZG1pbi54bWwgYi9tb2R1bGVzL2V2ZW50X3Jh YmJpdG1xL2RvYy9ldmVudF9yYWJiaXRtcV9hZG1pbi54bWwKLWluZGV4IDQzODk2NzU0MS4uNmQ0 NjE5Y2U1IDEwMDY0NAoraW5kZXggNDM4OTY3NTQxNy4uNmQ0NjE5Y2U1MSAxMDA2NDQKIC0tLSBh L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZG9jL2V2ZW50X3JhYmJpdG1xX2FkbWluLnhtbAogKysr IGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRtaW4ueG1sCiBA QCAtMTMxLDcgKzEzMSw3IEBACkBAIC0xMTUsNyArMTE1LDcgQEAgaW5kZXggNDM4OTY3NTQxLi42 ZDQ2MTljZTUgMTAwNjQ0CiAgCQkJPC9saXN0aXRlbT4KICAJCQk8L2l0ZW1pemVkbGlzdD4KIGRp ZmYgLS1naXQgYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMgYi9tb2R1 bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMKLWluZGV4IDYxOWVlNzUwYy4uMTQz ZjM4MWYwIDEwMDY0NAoraW5kZXggY2FjNTM5NjRlZi4uMzAyOGJkOTZkZSAxMDA2NDQKIC0tLSBh L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuYwogKysrIGIvbW9kdWxlcy9l dmVudF9yYWJiaXRtcS9ldmVudF9yYWJiaXRtcS5jCiBAQCAtNTAsOSArNTAsNyBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGhlYXJ0YmVhdCA9IDA7CkBAIC0xNjQsNyArMTY0LDcgQEAgaW5kZXggNjE5 ZWU3NTBjLi4xNDNmMzgxZjAgMTAwNjQ0CiAgCiAgCXJldHVybiAwOwogZGlmZiAtLWdpdCBhL21v ZHVsZXMvZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuaCBiL21vZHVsZXMvZXZlbnRfcmFi Yml0bXEvZXZlbnRfcmFiYml0bXEuaAotaW5kZXggNWIxMTU4ZTE2Li5iMjdjMmFkNjQgMTAwNjQ0 CitpbmRleCA1YjExNThlMTZmLi5iMjdjMmFkNjRkIDEwMDY0NAogLS0tIGEvbW9kdWxlcy9ldmVu dF9yYWJiaXRtcS9ldmVudF9yYWJiaXRtcS5oCiArKysgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1x L2V2ZW50X3JhYmJpdG1xLmgKIEBAIC0yNywxMyArMjcsMTAgQEAKQEAgLTE4Niw3ICsxODYsNyBA QCBpbmRleCA1YjExNThlMTYuLmIyN2MyYWQ2NCAxMDA2NDQKICAjaW5jbHVkZSAiLi4vdGxzX21n bS9hcGkuaCIKICAjaW5jbHVkZSAicm1xX3NlcnZlcnMuaCIKIGRpZmYgLS1naXQgYS9tb2R1bGVz L2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmMgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3Jt cV9zZXJ2ZXJzLmMKLWluZGV4IGQ5MjBlNTk5ZC4uZDFmNmExOWFiIDEwMDY0NAoraW5kZXggZDky MGU1OTlkMS4uZDFmNmExOWFiNCAxMDA2NDQKIC0tLSBhL21vZHVsZXMvZXZlbnRfcmFiYml0bXEv cm1xX3NlcnZlcnMuYwogKysrIGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5j CiBAQCAtMzMsNjEgKzMzLDcgQEAKQEAgLTM1NSw3ICszNTUsNyBAQCBpbmRleCBkOTIwZTU5OWQu LmQxZjZhMTlhYiAxMDA2NDQKICAKICBpbnQgcm1xX2Jhc2ljX3NlcnZlcl9wdWJsaXNoKHJtcV9j b25uZWN0aW9uX3QgKmNvbm4sIGludCBtYXhfZnJhbWVzLAogZGlmZiAtLWdpdCBhL21vZHVsZXMv ZXZlbnRfcmFiYml0bXEvcm1xX3NlcnZlcnMuaCBiL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvcm1x X3NlcnZlcnMuaAotaW5kZXggYTcwMGQ4MDA0Li4wZDg1M2Y4ZjIgMTAwNjQ0CitpbmRleCBhNzAw ZDgwMDQ5Li4wZDg1M2Y4ZjJiIDEwMDY0NAogLS0tIGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9y bXFfc2VydmVycy5oCiArKysgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmgK IEBAIC00MCw3ICs0MCw3IEBACkBAIC00MTAsNyArNDEwLDcgQEAgaW5kZXggYTcwMGQ4MDA0Li4w ZDg1M2Y4ZjIgMTAwNjQ0CiAgCWludCBoZWFydGJlYXQ7CiAgCXN0ciB0bHNfZG9tX25hbWU7CiBk aWZmIC0tZ2l0IGEvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9SRUFETUUgYi9tb2R1bGVzL3Jh YmJpdG1xX2NvbnN1bWVyL1JFQURNRQotaW5kZXggYWVkM2JmNDlmLi42Yzc2MGQ1NTQgMTAwNjQ0 CitpbmRleCBhZWQzYmY0OWZiLi42Yzc2MGQ1NTQ3IDEwMDY0NAogLS0tIGEvbW9kdWxlcy9yYWJi aXRtcV9jb25zdW1lci9SRUFETUUKICsrKyBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvUkVB RE1FCiBAQCAtNzIsOCArNzIsOCBAQCBDaGFwdGVyIDEuIEFkbWluIEd1aWRlCkBAIC00MjUsNyAr NDI1LDcgQEAgaW5kZXggYWVkM2JmNDlmLi42Yzc2MGQ1NTQgMTAwNjQ0CiAgMS4zLiBFeHBvcnRl ZCBQYXJhbWV0ZXJzCiAgCiBkaWZmIC0tZ2l0IGEvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9k b2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sIGIvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1l ci9kb2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sCi1pbmRleCBhOGRhM2NiMmEuLjg1NmVk NzM5NSAxMDA2NDQKK2luZGV4IGE4ZGEzY2IyYTcuLjg1NmVkNzM5NTQgMTAwNjQ0CiAtLS0gYS9t b2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL2RvYy9yYWJiaXRtcV9jb25zdW1lcl9hZG1pbi54bWwK ICsrKyBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2Fk bWluLnhtbAogQEAgLTUwLDcgKzUwLDcgQEAKQEAgLTQzOCw3ICs0MzgsNyBAQCBpbmRleCBhOGRh M2NiMmEuLjg1NmVkNzM5NSAxMDA2NDQKICAJCTwvcGFyYT4KICAJPC9zZWN0aW9uPgogZGlmZiAt LWdpdCBhL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvcmFiYml0bXFfY29uc3VtZXIuYyBiL21v ZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvcmFiYml0bXFfY29uc3VtZXIuYwotaW5kZXggNjQ2MmY1 NzA4Li5jNmNmMjQxN2QgMTAwNjQ0CitpbmRleCA2NDYyZjU3MDhjLi5jNmNmMjQxN2RiIDEwMDY0 NAogLS0tIGEvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9yYWJiaXRtcV9jb25zdW1lci5jCiAr KysgYi9tb2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL3JhYmJpdG1xX2NvbnN1bWVyLmMKIEBAIC05 Niw3ICs5Niw5IEBAIHN0YXRpYyBpbnQgbW9kX2luaXQodm9pZCkKQEAgLTQ1Miw3ICs0NTIsNyBA QCBpbmRleCA2NDYyZjU3MDguLmM2Y2YyNDE3ZCAxMDA2NDQKICAKICAJcmV0dXJuIDA7CiBkaWZm IC0tZ2l0IGEvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9ybXFfY29ubmVjdGlvbi5oIGIvbW9k dWxlcy9yYWJiaXRtcV9jb25zdW1lci9ybXFfY29ubmVjdGlvbi5oCi1pbmRleCA4YWVhNDg3MTAu LmEzNGEwZGViNSAxMDA2NDQKK2luZGV4IDhhZWE0ODcxMGEuLmEzNGEwZGViNTEgMTAwNjQ0CiAt LS0gYS9tb2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL3JtcV9jb25uZWN0aW9uLmgKICsrKyBiL21v ZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvcm1xX2Nvbm5lY3Rpb24uaAogQEAgLTIyLDkgKzIyLDkg QEAKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDA2LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxl LXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2ggYi9vcGVuc2lwcy0wMDA2LUZpeC11bmlu aXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gKaW5kZXgg Yzk1Y2ZmZC4uYTUzMmJmMCAxMDA2NDQKLS0tIGEvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFs aXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoCisrKyBiL29wZW5z aXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQtdmFyaWFibGUtd2FybmluZ3MtaW4tU1FMLUFQSS1m dW5jdC5wYXRjaApAQCAtNTQsNyArNTQsNyBAQCBTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgogQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8 aHR0cHM6Ly9jbGF1ZGUuYWk+CiAKIGRpZmYgLS1naXQgYS9tb2R1bGVzL3NxbG9wcy9zcWxvcHNf ZGIuYyBiL21vZHVsZXMvc3Fsb3BzL3NxbG9wc19kYi5jCi1pbmRleCA1ZGU3YjU1OTkuLmNmMzY0 NTkzZiAxMDA2NDQKK2luZGV4IDVkZTdiNTU5OTUuLmNmMzY0NTkzZjggMTAwNjQ0CiAtLS0gYS9t b2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIuYwogKysrIGIvbW9kdWxlcy9zcWxvcHMvc3Fsb3BzX2Ri LmMKIEBAIC03MTMsNyArNzEzLDcgQEAgaW50IHNxbF9hcGlfc2VsZWN0KHN0cnVjdCBkYl91cmwg KnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgY0pTT04gKkpjb2xzLAoKZGlmZiAtLWdpdCBhL29w ZW5zaXBzLTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5pbmdzLWluLUhUVFAtYW5kLUZy ZWVTV0lUQy5wYXRjaCBiL29wZW5zaXBzLTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5p bmdzLWluLUhUVFAtYW5kLUZyZWVTV0lUQy5wYXRjaAppbmRleCAwN2RiNzgzLi4xZWVkNTNkIDEw MDY0NAotLS0gYS9vcGVuc2lwcy0wMDA3LUZpeC1jb25zdC1jb3JyZWN0bmVzcy13YXJuaW5ncy1p bi1IVFRQLWFuZC1GcmVlU1dJVEMucGF0Y2gKKysrIGIvb3BlbnNpcHMtMDAwNy1GaXgtY29uc3Qt Y29ycmVjdG5lc3Mtd2FybmluZ3MtaW4tSFRUUC1hbmQtRnJlZVNXSVRDLnBhdGNoCkBAIC05Niw3 ICs5Niw3IEBAIFNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5j b20+CiBBc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4K IAogZGlmZiAtLWdpdCBhL21vZHVsZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2VzbF9ldmVudC5jIGIv bW9kdWxlcy9mcmVlc3dpdGNoL2VzbC9zcmMvZXNsX2V2ZW50LmMKLWluZGV4IGExMmI2ZDYzNy4u ZjYyNDk3Mzg4IDEwMDY0NAoraW5kZXggYTEyYjZkNjM3Yi4uZjYyNDk3Mzg4NCAxMDA2NDQKIC0t LSBhL21vZHVsZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2VzbF9ldmVudC5jCiArKysgYi9tb2R1bGVz L2ZyZWVzd2l0Y2gvZXNsL3NyYy9lc2xfZXZlbnQuYwogQEAgLTQyNSw3ICs0MjUsNyBAQCBzdGF0 aWMgZXNsX3N0YXR1c190IGVzbF9ldmVudF9iYXNlX2FkZF9oZWFkZXIoZXNsX2V2ZW50X3QgKmV2 ZW50LCBlc2xfc3RhY2tfdCBzdApAQCAtMTA5LDEwICsxMDksMTAgQEAgaW5kZXggYTEyYjZkNjM3 Li5mNjI0OTczODggMTAwNjQ0CiAgCQlpbmRleCA9IGF0b2koaW5kZXhfcHRyKTsKICAJCXJlYWxf aGVhZGVyX25hbWUgPSBEVVAoaGVhZGVyX25hbWUpOwogZGlmZiAtLWdpdCBhL21vZHVsZXMvaHR0 cGQvaHR0cGRfcHJvYy5jIGIvbW9kdWxlcy9odHRwZC9odHRwZF9wcm9jLmMKLWluZGV4IDBkNGI0 M2YyMC4uM2EzZmQ4YjA3IDEwMDY0NAoraW5kZXggNzA4ZTAwYjQwZC4uMjY0NmYwNDE0NyAxMDA2 NDQKIC0tLSBhL21vZHVsZXMvaHR0cGQvaHR0cGRfcHJvYy5jCiArKysgYi9tb2R1bGVzL2h0dHBk L2h0dHBkX3Byb2MuYwotQEAgLTMyMSw3ICszMjEsNyBAQCBNSERfUkVUIGdldENvbm5lY3Rpb25I ZWFkZXIodm9pZCAqY2xzLCBlbnVtIE1IRF9WYWx1ZUtpbmQga2luZCwKK0BAIC0zMjYsNyArMzI2 LDcgQEAgTUhEX1JFVCBnZXRDb25uZWN0aW9uSGVhZGVyKHZvaWQgKmNscywgZW51bSBNSERfVmFs dWVLaW5kIGtpbmQsCiAgCXN0cnVjdCBwb3N0X3JlcXVlc3QgKnByID0gKHN0cnVjdCBwb3N0X3Jl cXVlc3QqKWNsczsKICAJc3RyIGNvbnRlbnRfbGVuZ3RoOwogIAl1bnNpZ25lZCBpbnQgbGVuOwpA QCAtMTIxLDcgKzEyMSw3IEBAIGluZGV4IDBkNGI0M2YyMC4uM2EzZmQ4YjA3IDEwMDY0NAogIAog IAlpZiAoY2xzID09IE5VTEwpIHsKICAJCUxNX0VSUigiVW5hYmxlIHRvIHN0b3JlIHJldHVybiBk YXRhXG4iKTsKLUBAIC0zNDUsMjQgKzM0NSwyNCBAQCBNSERfUkVUIGdldENvbm5lY3Rpb25IZWFk ZXIodm9pZCAqY2xzLCBlbnVtIE1IRF9WYWx1ZUtpbmQga2luZCwKK0BAIC0zNTAsMjQgKzM1MCwy NCBAQCBNSERfUkVUIGdldENvbm5lY3Rpb25IZWFkZXIodm9pZCAqY2xzLCBlbnVtIE1IRF9WYWx1 ZUtpbmQga2luZCwKICAJaWYgKHN0cmNhc2VjbXAoIkNvbnRlbnQtVHlwZSIsIGtleSkgPT0gMCkg ewogIAkJTE1fREJHKCJDb250ZW50LVR5cGU9JXNcbiIsIHZhbHVlKTsKICAJCS8qIGV4dHJhY3Qg b25seSB0aGUgbWltZSAqLwoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMDgtRml4LXVuaW5pdGlh bGl6ZWQtdmFfbGlzdC13YXJuaW5nLW9uLXBwYzY0bGUtYW5kLWk2OC5wYXRjaCBiL29wZW5zaXBz LTAwMDgtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13YXJuaW5nLW9uLXBwYzY0bGUtYW5kLWk2 OC5wYXRjaAppbmRleCA4ZTk5NWRmLi42YzlkNjI4IDEwMDY0NAotLS0gYS9vcGVuc2lwcy0wMDA4 LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0 Y2gKKysrIGIvb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmct b24tcHBjNjRsZS1hbmQtaTY4LnBhdGNoCkBAIC04MywxMCArODMsMTAgQEAgU2lnbmVkLW9mZi1i eTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KIEFzc2lzdGVkLWJ5OiBDbGF1 ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgogCiBkaWZmIC0tZ2l0IGEvbW9kdWxl cy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYyBiL21vZHVsZXMvY2FjaGVkYl9y ZWRpcy9jYWNoZWRiX3JlZGlzX2RiYXNlLmMKLWluZGV4IDM4OTU3ZTRhOS4uYjM0ZThkYTgzIDEw MDY0NAoraW5kZXggNWVmOTJjNmE1YS4uNWM2YTljNzJkMyAxMDA2NDQKIC0tLSBhL21vZHVsZXMv Y2FjaGVkYl9yZWRpcy9jYWNoZWRiX3JlZGlzX2RiYXNlLmMKICsrKyBiL21vZHVsZXMvY2FjaGVk Yl9yZWRpcy9jYWNoZWRiX3JlZGlzX2RiYXNlLmMKLUBAIC02NTQsOSArNjU0LDkgQEAgc3RhdGlj IGludCByZWRpc19ydW5fY29tbWFuZChjYWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVkaXNSZXBs eSAqKnJwbCwKK0BAIC02NjAsOSArNjYwLDkgQEAgc3RhdGljIGludCByZWRpc19ydW5fY29tbWFu ZChjYWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVkaXNSZXBseSAqKnJwbCwKICBzdGF0aWMgaW50 IHJlZGlzX3J1bl9jb21tYW5kX2FyZ3YoY2FjaGVkYl9jb24gKmNvbm5lY3Rpb24sIHJlZGlzUmVw bHkgKipycGwsCiAgICAgICAgICAgICAgICBzdHIgKmtleSwgaW50IGFyZ2MsIGNvbnN0IGNoYXIg Kiphcmd2LCBjb25zdCBzaXplX3QgKmFyZ3ZsZW4pCiAgewoKZGlmZiAtLWdpdCBhL29wZW5zaXBz LTAwMDktRml4LWZvcm1hdC1zcGVjaWZpZXItd2FybmluZ3Mtb24tMzItYml0LWFyY2hpdGVjdHVy ZS5wYXRjaCBiL29wZW5zaXBzLTAwMDktRml4LWZvcm1hdC1zcGVjaWZpZXItd2FybmluZ3Mtb24t MzItYml0LWFyY2hpdGVjdHVyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg YzUzOGY1Yy4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0wMDA5LUZpeC1mb3JtYXQtc3BlY2lmaWVy LXdhcm5pbmdzLW9uLTMyLWJpdC1hcmNoaXRlY3R1cmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw4OSArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5r b3ZAZ21haWwuY29tPgotRGF0ZTogRnJpLCAyNiBEZWMgMjAyNSAxNzo0OToyMSArMDEwMAotU3Vi amVjdDogW1BBVENIXSBGaXggZm9ybWF0IHNwZWNpZmllciB3YXJuaW5ncyBvbiAzMi1iaXQgYXJj aGl0ZWN0dXJlcyAoaTY4NikKLQotRHVyaW5nIGNvbXBpbGF0aW9uIG9uIGk2ODYgKDMyLWJpdCkg YXJjaGl0ZWN0dXJlIHdpdGggR0NDIDE1LCBmb3JtYXQKLXNwZWNpZmllciB3YXJuaW5ncyBhcHBl YXIgZHVlIHRvIHR5cGUgc2l6ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIDMyLWJpdAotYW5kIDY0LWJp dCBwbGF0Zm9ybXMuCi0KLWBgYAotc2VydmVyLmM6IEluIGZ1bmN0aW9uICdvbl9mcmFtZV9yZWN2 X2NhbGxiYWNrJzoKLXdhcm5pbmc6IGZvcm1hdCAnJWxkJyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5 cGUgJ2xvbmcgaW50JywgYnV0IGFyZ3VtZW50IDE0Ci1oYXMgdHlwZSAnc2l6ZV90JyB7YWthICd1 bnNpZ25lZCBpbnQnfSBbLVdmb3JtYXQ9XQotICA2MzggfCAgTE1fREJHKCJoMiBoZWFkZXIgWyVk XSwgJXAgJWxkXG4iLCBmcmFtZS0+aGQudHlwZSwgZnJhbWUtPmhlYWRlcnMubnZhLCBmcmFtZS0+ aGVhZGVycy5udmxlbik7Ci0KLWRtX2ltcGwuYzogSW4gZnVuY3Rpb24gJ2RtX2F2cHMyanNvbic6 Ci13YXJuaW5nOiBmb3JtYXQgJyVsZCcgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGlu dCcsIGJ1dCBhcmd1bWVudCAxNQotaGFzIHR5cGUgJ2ludDY0X3QnIHtha2EgJ2xvbmcgbG9uZyBp bnQnfSBbLVdmb3JtYXQ9XQotICA0ODQgfCAgTE1fREJHKCIlMmQuIGdvdCBpbnQ2NCAgIEFWUCAl cyAoJXUpLCB2YWx1ZTogJWxkXG4iLCBpLCBkbV9hdnAuYXZwX25hbWUsIGgtPmF2cF9jb2RlLCBo LT5hdnBfdmFsdWUtPmk2NCk7Ci0KLXdhcm5pbmc6IGZvcm1hdCAnJWx1JyBleHBlY3RzIGFyZ3Vt ZW50IG9mIHR5cGUgJ2xvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDE1Ci1oYXMgdHlw ZSAndWludDY0X3QnIHtha2EgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnfSBbLVdmb3JtYXQ9XQot ICA0OTQgfCAgTE1fREJHKCIlMmQuIGdvdCB1aW50NjQgIEFWUCAlcyAoJXUpLCB2YWx1ZTogJWx1 XG4iLCBpLCBkbV9hdnAuYXZwX25hbWUsIGgtPmF2cF9jb2RlLCBoLT5hdnBfdmFsdWUtPnU2NCk7 Ci1gYGAKLQotVHlwZSBzaXplcyBkaWZmZXIgYmV0d2VlbiAzMi1iaXQgYW5kIDY0LWJpdCBhcmNo aXRlY3R1cmVzOgotCi0qKk9uIHg4Nl82NCAoNjQtYml0KToqKgotLSBgc2l6ZV90YCA9IGB1bnNp Z25lZCBsb25nYCAoOCBieXRlcykKLS0gYGludDY0X3RgID0gYGxvbmcgaW50YCAoOCBieXRlcykK LQotKipPbiBpNjg2ICgzMi1iaXQpOioqCi0tIGBzaXplX3RgID0gYHVuc2lnbmVkIGludGAgKDQg Ynl0ZXMpCi0tIGBpbnQ2NF90YCA9IGBsb25nIGxvbmcgaW50YCAoOCBieXRlcykKLS0gYHVpbnQ2 NF90YCA9IGB1bnNpZ25lZCBsb25nIGxvbmcgaW50YCAoOCBieXRlcykKLQotVXNlIHBvcnRhYmxl IEM5OSBmb3JtYXQgc3BlY2lmaWVycyB0aGF0IHdvcmsgY29ycmVjdGx5IG9uIGFsbAotYXJjaGl0 ZWN0dXJlczoKLQotLSBgJXp1YCBmb3IgYHNpemVfdGAgKG1vZHVsZXMvaHR0cDJkL3NlcnZlci5j IGxpbmUgNjM4KQotLSBgJSIgUFJJZDY0YCBmb3IgYGludDY0X3RgIChtb2R1bGVzL2FhYV9kaWFt ZXRlci9kbV9pbXBsLmMgbGluZSA0ODQpCi0tIGAlIiBQUkl1NjRgIGZvciBgdWludDY0X3RgICht b2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMgbGluZSA0OTQpCi0KLVNpZ25lZC1vZmYtYnk6 IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1Bc3Npc3RlZC1ieTogQ2xhdWRl IChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KLQotZGlmZiAtLWdpdCBhL21vZHVsZXMv YWFhX2RpYW1ldGVyL2RtX2ltcGwuYyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYwot aW5kZXggNWJhNjk3NzY3Li45MjcyNjE4OTkgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9kaWFt ZXRlci9kbV9pbXBsLmMKLSsrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYwotQEAg LTIwLDYgKzIwLDcgQEAKLSAKLSAjaW5jbHVkZSA8ZnJlZURpYW1ldGVyL2V4dGVuc2lvbi5oPgot ICNpbmNsdWRlIDxzeXMvZXZlbnRmZC5oPgotKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgotIAotICNp bmNsdWRlICIuLi8uLi91dC5oIgotICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5oIgotQEAgLTQ4 MSw3ICs0ODIsNyBAQCBzdGF0aWMgaW50IGRtX2F2cHMyanNvbih2b2lkICpyb290LCBjSlNPTiAq YXZwcykKLSAJCQlicmVhazsKLSAKLSAJCWNhc2UgQVZQX1RZUEVfSU5URUdFUjY0OgotLQkJCUxN X0RCRygiJTJkLiBnb3QgaW50NjQgICBBVlAgJXMgKCV1KSwgdmFsdWU6ICVsZFxuIiwgaSwgZG1f YXZwLmF2cF9uYW1lLCBoLT5hdnBfY29kZSwgaC0+YXZwX3ZhbHVlLT5pNjQpOwotKwkJCUxNX0RC RygiJTJkLiBnb3QgaW50NjQgICBBVlAgJXMgKCV1KSwgdmFsdWU6ICUiIFBSSWQ2NCAiXG4iLCBp LCBkbV9hdnAuYXZwX25hbWUsIGgtPmF2cF9jb2RlLCBoLT5hdnBfdmFsdWUtPmk2NCk7Ci0gCQkJ bnVtX3ZhbCA9IChkb3VibGUpaC0+YXZwX3ZhbHVlLT5pNjQ7Ci0gCQkJYnJlYWs7Ci0gCi1AQCAt NDkxLDcgKzQ5Miw3IEBAIHN0YXRpYyBpbnQgZG1fYXZwczJqc29uKHZvaWQgKnJvb3QsIGNKU09O ICphdnBzKQotIAkJCWJyZWFrOwotIAotIAkJY2FzZSBBVlBfVFlQRV9VTlNJR05FRDY0OgotLQkJ CUxNX0RCRygiJTJkLiBnb3QgdWludDY0ICBBVlAgJXMgKCV1KSwgdmFsdWU6ICVsdVxuIiwgaSwg ZG1fYXZwLmF2cF9uYW1lLCBoLT5hdnBfY29kZSwgaC0+YXZwX3ZhbHVlLT51NjQpOwotKwkJCUxN X0RCRygiJTJkLiBnb3QgdWludDY0ICBBVlAgJXMgKCV1KSwgdmFsdWU6ICUiIFBSSXU2NCAiXG4i LCBpLCBkbV9hdnAuYXZwX25hbWUsIGgtPmF2cF9jb2RlLCBoLT5hdnBfdmFsdWUtPnU2NCk7Ci0g CQkJbnVtX3ZhbCA9IChkb3VibGUpaC0+YXZwX3ZhbHVlLT51NjQ7Ci0gCQkJYnJlYWs7Ci0gCi1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9odHRwMmQvc2VydmVyLmMgYi9tb2R1bGVzL2h0dHAyZC9zZXJ2 ZXIuYwotaW5kZXggMDE1NGUxZTg1Li44NzA3Mjg2MjggMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2h0 dHAyZC9zZXJ2ZXIuYwotKysrIGIvbW9kdWxlcy9odHRwMmQvc2VydmVyLmMKLUBAIC02MzUsNyAr NjM1LDcgQEAgc3RhdGljIGludCBvbl9mcmFtZV9yZWN2X2NhbGxiYWNrKG5naHR0cDJfc2Vzc2lv biAqc2Vzc2lvbiwKLSAJc3dpdGNoIChmcmFtZS0+aGQudHlwZSkgewotIAljYXNlIE5HSFRUUDJf REFUQToKLSAJY2FzZSBOR0hUVFAyX0hFQURFUlM6Ci0tCQlMTV9EQkcoImgyIGhlYWRlciBbJWRd LCAlcCAlbGRcbiIsIGZyYW1lLT5oZC50eXBlLCBmcmFtZS0+aGVhZGVycy5udmEsIGZyYW1lLT5o ZWFkZXJzLm52bGVuKTsKLSsJCUxNX0RCRygiaDIgaGVhZGVyIFslZF0sICVwICV6dVxuIiwgZnJh bWUtPmhkLnR5cGUsIGZyYW1lLT5oZWFkZXJzLm52YSwgZnJhbWUtPmhlYWRlcnMubnZsZW4pOwot IAkJLyogQ2hlY2sgdGhhdCB0aGUgY2xpZW50IHJlcXVlc3QgaGFzIGZpbmlzaGVkICovCi0gCQlp ZiAoZnJhbWUtPmhkLmZsYWdzICYgTkdIVFRQMl9GTEFHX0VORF9TVFJFQU0pIHsKLSAJCQlzdHJl YW1fZGF0YSA9CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwOS1GaXgtcG9pbnRlci10cnVuY2F0 aW9uLXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVjdHVyLnBhdGNoIGIvb3BlbnNpcHMtMDAwOS1G aXgtcG9pbnRlci10cnVuY2F0aW9uLXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVjdHVyLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NmE4MDIKLS0tIC9kZXYvbnVs bAorKysgYi9vcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0z Mi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKQEAgLTAsMCArMSwyOTEgQEAKK0Zyb20gMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI2 IERlYyAyMDI1IDIxOjA4OjAwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBwb2ludGVyIHRy dW5jYXRpb24gd2FybmluZyBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJlcyBpbgorIGFhYV9kaWFtZXRl cgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitEdXJpbmcgY29tcGlsYXRp b24gb24gaTY4NiAoMzItYml0KSBhcmNoaXRlY3R1cmUgd2l0aCBHQ0MgMTUsIGEgcG9pbnRlcgor dHJ1bmNhdGlvbiB3YXJuaW5nIGFwcGVhcnM6CisKK2BgYAorYWFhX2RpYW1ldGVyLmM6IEluIGZ1 bmN0aW9uICdkbV9zZW5kX2Fuc3dlcic6CithYWFfZGlhbWV0ZXIuYzo0MjM6NzM6IHdhcm5pbmc6 IGNhc3QgdG8gcG9pbnRlciBmcm9tIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUgWy1XaW50LXRv LXBvaW50ZXItY2FzdF0KKyAgNDIzIHwgIGRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwg QUFBX0NVU1RPTV9SUEwsIGFwcGlkLCBjbWRjb2RlLCAodm9pZCAqKWZkX3JlcSk7CitgYGAKKwor VGhlIGBkbV9tZXNzYWdlYCBzdHJ1Y3Qgc3RvcmVzIGEgcG9pbnRlciB0byBhIEZyZWVEaWFtZXRl ciBtZXNzYWdlCitzdHJ1Y3R1cmUgaW4gdGhlIGBmZF9yZXFgIGZpZWxkLCBidXQgdGhlIHR5cGUg aXMgbWlzbWF0Y2hlZCBhY3Jvc3MKK2RpZmZlcmVudCBjb2RlIHBhdGhzOgorCisxLiBJbiBgYWFh X2RpYW1ldGVyLmNgLCBhIHBvaW50ZXIgaXMgc2VyaWFsaXplZCBhcyBgdWludDY0X3RgICg4IGJ5 dGVzKQorMi4gSXQncyB0aGVuIGNhc3QgdG8gYHZvaWQgKmAgYW5kIHBhc3NlZCB0byBgX2RtX2Ny ZWF0ZV9tZXNzYWdlKClgCiszLiBPbiAqKmk2ODYqKiwgYHZvaWQgKmAgaXMgb25seSA0IGJ5dGVz LCBjYXVzaW5nICoqdHJ1bmNhdGlvbioqIG9mIHRoZQorICAgdXBwZXIgMzIgYml0cworNC4gSW4g YGRtX3BlZXIuY2AsIGl0J3MgY2FzdCBiYWNrIHRvIGBzdHJ1Y3QgbXNnICpgIGZvciB1c2UKKwor KipPbiB4ODZfNjQgKDY0LWJpdCk6KioKKworLSBgdWludDY0X3RgID0gOCBieXRlcworLSBgdm9p ZCAqYCA9IDggYnl0ZXMKKy0gTm8gdHJ1bmNhdGlvbiwgd29ya3MgZmluZQorCisqKk9uIGk2ODYg KDMyLWJpdCk6KioKKworLSBgdWludDY0X3RgID0gOCBieXRlcworLSBgdm9pZCAqYCA9IDQgYnl0 ZXMKKy0gKipUcnVuY2F0aW9uIG9jY3VycyoqLCBsb3NpbmcgdXBwZXIgMzIgYml0cyBvZiB0aGUg cG9pbnRlciEKKworQ2hhbmdlIGBmZF9yZXFgIGZyb20gYHZvaWQgKmAgdG8gYHVpbnRwdHJfdGAg dGhyb3VnaG91dCB0aGUgY29kZWJhc2UuCisKK2B1aW50cHRyX3RgIGlzOgorCistICoqUG9ydGFi bGUqKjogU2l6ZWQgY29ycmVjdGx5IGZvciBwb2ludGVycyBvbiBhbnkgYXJjaGl0ZWN0dXJlICg0 CisgIGJ5dGVzIG9uIDMyLWJpdCwgOCBieXRlcyBvbiA2NC1iaXQpCistICoqU3RhbmRhcmQqKjog RGVmaW5lZCBpbiBDOTkgYDxzdGRpbnQuaD5gCistICoqU2VtYW50aWMqKjogRXhwbGljaXRseSBk ZXNpZ25lZCBmb3Igc3RvcmluZyBwb2ludGVyIHZhbHVlcyBhcworICBpbnRlZ2VycworLSAqKlNh ZmUqKjogR3VhcmFudGVlZCBieSBDOTkgdG8gcHJlc2VydmUgcG9pbnRlciB2YWx1ZXMgZHVyaW5n CisgIHJvdW5kLXRyaXAgY29udmVyc2lvbnMKKworKioxLiBTdHJ1Y3QgZGVmaW5pdGlvbiAoYG1v ZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuaGAgbGluZSA5Myk6KioKKworYGBgYworc3RydWN0 IGRtX21lc3NhZ2UgeworICAgIC8vIENoYW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxOworICAgIHVp bnRwdHJfdCBmZF9yZXE7CisgICAgLy8gLi4uCit9OworYGBgCisKKyoqMi4gRnVuY3Rpb24gc2ln bmF0dXJlIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oYCB+bGluZSAxNjUpOioqCisK K2BgYGMKK2FhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBt c2dfdHlwZSwKKyAgICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUs IHVpbnRwdHJfdCBmZF9yZXEpOworICAgIC8vIENoYW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxCitg YGAKKworKiozLiBGdW5jdGlvbiBkZWZpbml0aW9uIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1f aW1wbC5jYCBsaW5lIDE2OTUpOioqCisKK2BgYGMKK2FhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21l c3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKKyAgICB1bnNpZ25lZCBpbnQgYXBwX2lk LCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9tc2cpCisgICAgLy8gQ2hhbmdl ZCBmcm9tOiB2b2lkICpmZF9tc2cKK2BgYAorCisqKjQuIENhbGwgc2l0ZXMgLSBwb2ludGVyIHRv IHVpbnRwdHJfdDoqKgorCitgYGBjCisvLyBhYWFfZGlhbWV0ZXIuYyBsaW5lIDQyMyAtIHJlbW92 ZSB2b2lkKiBjYXN0OgorZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9N X1JQTCwgYXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7CisKKy8vIGRtX2ltcGwuYyAtIGFkZCBleHBs aWNpdCBjYXN0cyB3aGVuIHN0b3JpbmcgcG9pbnRlcnM6CitkbS5mZF9yZXEgPSAodWludHB0cl90 KXJlcTsKK2RtLT5mZF9yZXEgPSAodWludHB0cl90KWZkX21zZzsKK2BgYAorCisqKjUuIENhbGwg c2l0ZXMgd2l0aCBOVUxMIC0gdXNlIDAgaW5zdGVhZDoqKgorCitTaW5jZSBgdWludHB0cl90YCBp cyBhbiBpbnRlZ2VyIHR5cGUgKG5vdCBhIHBvaW50ZXIgdHlwZSksIHdlIHVzZSBgMGAKK2luc3Rl YWQgb2YgYE5VTExgIHRvIHJlcHJlc2VudCAibm8gcG9pbnRlciI6CisKK2BgYGMKKy8vIE11bHRp cGxlIGxvY2F0aW9ucyBpbiBhYWFfZGlhbWV0ZXIuYywgZG1faW1wbC5jOgorZG1zZyA9IF9kbV9j cmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAw KTsKKy8vIENoYW5nZWQgZnJvbTogLi4uLCBOVUxMKTsKK2BgYAorCisqKk5vdGU6KiogSW4gQywg YE5VTExgIGlzIHR5cGljYWxseSBgKCh2b2lkICopMClgIC0gYSBwb2ludGVyIHR5cGUuIFdoZW4K K3Bhc3NpbmcgdG8gYW4gaW50ZWdlciBwYXJhbWV0ZXIgbGlrZSBgdWludHB0cl90YCwgd2UgdXNl IHRoZSBpbnRlZ2VyIGAwYAorZGlyZWN0bHkgdG8gYXZvaWQgaW1wbGljaXQgcG9pbnRlci10by1p bnRlZ2VyIGNvbnZlcnNpb24gd2FybmluZ3MuCisKKyoqNi4gVXNhZ2Ugc2l0ZSAtIHVpbnRwdHJf dCB0byBwb2ludGVyIChgZG1fcGVlci5jYCk6KioKKworYGBgYworLy8gQ2hhbmdlZCBmcm9tOiBz dHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKWRtLT5mZF9yZXE7CitzdHJ1Y3QgbXNnICph bnMgPSAoc3RydWN0IG1zZyAqKSh1aW50cHRyX3QpZG0tPmZkX3JlcTsKK2BgYAorCitUaGUgZG91 YmxlIGNhc3QgYChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2YWx1ZWAgaXMgcmVxdWlyZWQgYnkg Qzk5IGZvcgorZ3VhcmFudGVlZCBjb3JyZWN0bmVzczoKKworMS4gKipDOTkgZ3VhcmFudGVlcyoq IHRoYXQgYW55IHBvaW50ZXIgY2FuIGJlIGNvbnZlcnRlZCB0byBgdWludHB0cl90YCBhbmQgYmFj aworMi4gRGlyZWN0IGBpbnRlZ2VyIOKGkiBwb2ludGVyYCBjb252ZXJzaW9uIGlzICoqaW1wbGVt ZW50YXRpb24tZGVmaW5lZCoqIGJlaGF2aW9yCiszLiBUaGUgcHJvcGVyIGNvbnZlcnNpb24gcGF0 aCBpczogYHBvaW50ZXIg4oaSIHVpbnRwdHJfdCDihpIgcG9pbnRlcmAKKworV2hpbGUgYSBzaW5n bGUgY2FzdCBmcm9tIGB1aW50cHRyX3RgIHRvIHBvaW50ZXIgb2Z0ZW4gd29ya3MgaW4gcHJhY3Rp Y2UsCit0aGUgZG91YmxlIGNhc3QgZXhwbGljaXRseSBmb2xsb3dzIHRoZSBDOTkgc3RhbmRhcmQn cyBndWFyYW50ZWVkCitjb252ZXJzaW9uIHBhdGgsIGVuc3VyaW5nIHRoZSBjb2RlIGlzIHN0cmlj dGx5IGNvbmZvcm1hbnQgYW5kIHdvbid0CitjYXVzZSBpc3N1ZXMgd2l0aCBzdHJpY3QgYWxpYXNp bmcgcnVsZXMgb3IgZnV0dXJlIGNvbXBpbGVyCitvcHRpbWl6YXRpb25zLgorCitUaGUgcGF0dGVy biBpczoKKy0gKipQb2ludGVyIOKGkiB1aW50cHRyX3QqKjogYCh1aW50cHRyX3QpcG9pbnRlcmAK Ky0gKip1aW50cHRyX3Qg4oaSIFBvaW50ZXIqKjogYChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2 YWx1ZWAKKy0gKipOdWxsIHZhbHVlKio6IGAwYCAobm90IGBOVUxMYCwgc2luY2UgYHVpbnRwdHJf dGAgaXMgYW4gaW50ZWdlciB0eXBlKQorCitUaGlzIGZpeCBlbnN1cmVzIHBvaW50ZXJzIGFyZSBj b3JyZWN0bHkgcHJlc2VydmVkIG9uIGFsbCBhcmNoaXRlY3R1cmVzCit3aXRob3V0IHRydW5jYXRp b24uCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+ CitBc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KKwor ZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2FhYV9kaWFtZXRlci5jIGIvbW9kdWxl cy9hYWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMKK2luZGV4IDQxMGE0Y2IxMjIuLjQzODJhZjdh Y2QgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9hYWFfZGlhbWV0ZXIuYworKysr IGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMKK0BAIC0xOSw2ICsxOSw3IEBA CisgICovCisgCisgI2luY2x1ZGUgPGZyZWVEaWFtZXRlci9leHRlbnNpb24uaD4KKysjaW5jbHVk ZSA8c3RkaW50Lmg+CisgCisgI2luY2x1ZGUgIi4uLy4uL3NyX21vZHVsZS5oIgorICNpbmNsdWRl ICIuLi8uLi9saWIvbGlzdC5oIgorQEAgLTMwOCw3ICszMDksNyBAQCBzdGF0aWMgaW50IGRtX3Nl bmRfcmVxdWVzdChzdHJ1Y3Qgc2lwX21zZyAqbXNnLCBpbnQgKmFwcF9pZCwgaW50ICpjbWRfY29k ZSwKKyAJCWdvdG8gZXJyb3I7CisgCX0KKyAKKy0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShO VUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCBOVUxMKTsKKysJZG1zZyA9 IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9j b2RlLCAwKTsKKyAJaWYgKCFkbXNnKSB7CisgCQlMTV9FUlIoIm9vbVxuIik7CisgCQlnb3RvIGVy cm9yOworQEAgLTQyMSw3ICs0MjIsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfYW5zd2VyKHN0cnVj dCBzaXBfbXNnICptc2csIHN0ciAqYXZwX2pzb24sIGludCAqaXNfZXJyb3IpCisgCQlyZXZlcnNl X2hleDJpbnQ2NChyZXMucnMucywgcmVzLnJzLmxlbiwgMSwgJmZkX3JlcSk7CisgCX0KKyAKKy0J ZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNt ZGNvZGUsICh2b2lkICopZmRfcmVxKTsKKysJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxM LCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7CisgCWlmICghZG1zZykg eworIAkJTE1fRVJSKCJvb21cbiIpOworIAkJZ290byBlcnJvcjsKK0BAIC01ODEsNyArNTgyLDcg QEAgc3RhdGljIGludCBkbV9zZW5kX3JlcXVlc3RfYXN5bmMoc3RydWN0IHNpcF9tc2cgKm1zZywg YXN5bmNfY3R4ICpjdHgsCisgCQlnb3RvIGVycm9yOworIAl9CisgCistCWRtc2cgPSBfZG1fY3Jl YXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICphcHBfaWQsICpjbWRfY29kZSwgTlVM TCk7CisrCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICph cHBfaWQsICpjbWRfY29kZSwgMCk7CisgCWlmICghZG1zZykgeworIAkJTE1fRVJSKCJvb21cbiIp OworIAkJZ290byBlcnJvcjsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9p bXBsLmMgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMKK2luZGV4IDE2MDhlYzI3NmMu LjM5MzQ4M2ZkMjEgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMK KysrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYworQEAgLTIxLDYgKzIxLDcgQEAK KyAjaW5jbHVkZSA8ZnJlZURpYW1ldGVyL2V4dGVuc2lvbi5oPgorICNpbmNsdWRlIDxzeXMvZXZl bnRmZC5oPgorICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAK KyAjaW5jbHVkZSAiLi4vLi4vdXQuaCIKKyAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKK0BA IC02MDEsNyArNjAyLDcgQEAgc3RhdGljIGludCBkbV9yZWNlaXZlX3JlcShzdHJ1Y3QgbXNnICoq X3JlcSwgc3RydWN0IGF2cCAqIGF2cCwgc3RydWN0IHNlc3Npb24gKgorIAorIAkJbWVtc2V0KCZk bSwgMCwgc2l6ZW9mIGRtKTsKKyAKKy0JCWRtLmZkX3JlcSA9IHJlcTsKKysJCWRtLmZkX3JlcSA9 ICh1aW50cHRyX3QpcmVxOworIAkJZG0uYXBwX2lkID0gaGRyLT5tc2dfYXBwbDsKKyAJCWRtLmNt ZF9jb2RlID0gaGRyLT5tc2dfY29kZTsKKyAJCWRtLmVycm9yX2JpdCA9IDE7CitAQCAtMTc1NCw3 ICsxNzU1LDcgQEAgaW50IGRtX2FwaV9maW5kX2NtZChkaWFtZXRlcl9jb25uICpjb25uLCBpbnQg Y21kX2NvZGUpCisgfQorIAorIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nv bm4gKl8sIGludCBtc2dfdHlwZSwKKy0gICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2ln bmVkIGludCBjbWRfY29kZSwgdm9pZCAqZmRfbXNnKQorKyAgICAgICAgdW5zaWduZWQgaW50IGFw cF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB1aW50cHRyX3QgZmRfbXNnKQorIHsKKyAJYWFh X21lc3NhZ2UgKm07CisgCXN0cnVjdCBkbV9tZXNzYWdlICpkbTsKK0BAIC0xNzgxLDcgKzE3ODIs NyBAQCBhYWFfbWVzc2FnZSAqX2RtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNn X3R5cGUsCisgCWRtLT5hbSA9IG07CisgCWRtLT5hcHBfaWQgPSBhcHBfaWQ7CisgCWRtLT5jbWRf Y29kZSA9IGNtZF9jb2RlOworLQlkbS0+ZmRfcmVxID0gZmRfbXNnOworKwlkbS0+ZmRfcmVxID0g KHVpbnRwdHJfdClmZF9tc2c7CisgCisgCXJldHVybiBtOworIH0KK0BAIC0xNzg5LDcgKzE3OTAs NyBAQCBhYWFfbWVzc2FnZSAqX2RtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNn X3R5cGUsCisgCisgYWFhX21lc3NhZ2UgKmRtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBp bnQgbXNnX3R5cGUpCisgeworLQlyZXR1cm4gX2RtX2NyZWF0ZV9tZXNzYWdlKF8sIG1zZ190eXBl LCAwLCAwLCBOVUxMKTsKKysJcmV0dXJuIF9kbV9jcmVhdGVfbWVzc2FnZShfLCBtc2dfdHlwZSwg MCwgMCwgMCk7CisgfQorIAorIAorQEAgLTIxNDQsNyArMjE0NSw3IEBAIGludCBkbV9hcGlfc2Vu ZF9yZXEoZGlhbWV0ZXJfY29ubiAqY29ubiwgaW50IGFwcF9pZCwgaW50IGNtZF9jb2RlLCBjSlNP TiAqcmVxLCBkCisgCQlyZXR1cm4gLTI7CisgCX0KKyAKKy0JZG1zZyA9IF9kbV9jcmVhdGVfbWVz c2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgTlVMTCk7CisrCWRt c2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwgY21k X2NvZGUsIDApOworIAlpZiAoIWRtc2cpIHsKKyAJCUxNX0VSUigib29tXG4iKTsKKyAJCXJldHVy biAtMTsKK0BAIC0yMTgxLDcgKzIxODIsNyBAQCBpbnQgZG1fYXBpX3NlbmRfcmVxX2FzeW5jKGRp YW1ldGVyX2Nvbm4gKmNvbm4sIGludCBhcHBfaWQsIGludCBjbWRfY29kZSwgY0pTT04gKgorIAkJ cmV0dXJuIC0yOworIAl9CisgCistCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFB X0NVU1RPTV9SRVEsIGFwcF9pZCwgY21kX2NvZGUsIE5VTEwpOworKwlkbXNnID0gX2RtX2NyZWF0 ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCBhcHBfaWQsIGNtZF9jb2RlLCAwKTsKKyAJ aWYgKCFkbXNnKSB7CisgCQlMTV9FUlIoIm9vbVxuIik7CisgCQlyZXR1cm4gLTE7CitkaWZmIC0t Z2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oIGIvbW9kdWxlcy9hYWFfZGlhbWV0 ZXIvZG1faW1wbC5oCitpbmRleCBiMjVjZDc3ZjE5Li41MmUzZjIzZGE1IDEwMDY0NAorLS0tIGEv bW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oCisrKysgYi9tb2R1bGVzL2FhYV9kaWFtZXRl ci9kbV9pbXBsLmgKK0BAIC0yNCw2ICsyNCw3IEBACisgI2luY2x1ZGUgIi4uLy4uL2FhYS9hYWEu aCIKKyAjaW5jbHVkZSAiLi4vLi4vbWVtL3NobV9tZW0uaCIKKyAjaW5jbHVkZSAiZGlhbWV0ZXJf YXBpLmgiCisrI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNkZWZpbmUgX19GRF9DSEVDSyhfX2Nh bGxfXywgX19yZXRva19fLCBfX3JldHZhbF9fKSBcCisgCWRvIHsgXAorQEAgLTkxLDcgKzkyLDcg QEAgc3RydWN0IF9kbV9kaWN0IHsKKyBzdHJ1Y3QgZG1fbWVzc2FnZSB7CisgCWFhYV9tZXNzYWdl ICphbTsgLyogYmFjay1yZWZlcmVuY2UsIHVzZWZ1bCBkdXJpbmcgY2xlYW51cCAqLworIAorLQl2 b2lkICpmZF9yZXE7CisrCXVpbnRwdHJfdCBmZF9yZXE7CisgCXVuc2lnbmVkIGludCBhcHBfaWQ7 ICAgLyogdGhlc2UgdHdvIGFyZSB1c2VkIHdoZW4gc2VuZGluZyAqLworIAl1bnNpZ25lZCBpbnQg Y21kX2NvZGU7IC8qIGN1c3RvbSBEaWFtZXRlciByZXF1ZXN0cyAqLworIAlpbnQgZXJyb3JfYml0 OworQEAgLTE4Miw3ICsxODMsNyBAQCBpbnQgZG1fcmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpOwor IGludCBkbV9maW5kKGFhYV9jb25uICpfLCBhYWFfbWFwICptYXAsIGludCBvcCk7CisgYWFhX21l c3NhZ2UgKmRtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUpOworIGFh YV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwK Ky0gICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdm9p ZCAqZmRfcmVxKTsKKysgICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBj bWRfY29kZSwgdWludHB0cl90IGZkX3JlcSk7CisgaW50IGRtX2F2cF9hZGQoYWFhX2Nvbm4gKl8s IGFhYV9tZXNzYWdlICptc2csIGFhYV9tYXAgKmF2cCwgdm9pZCAqdmFsLAorICAgICAgICAgICAg ICAgIGludCB2YWxfbGVuZ3RoLCBpbnQgdmVuZG9yKTsKKyBpbnQgZG1fYnVpbGRfYXZwcyhzdHJ1 Y3QgbGlzdF9oZWFkICpzdWJhdnBzLCBjSlNPTiAqYXJyYXkpOworZGlmZiAtLWdpdCBhL21vZHVs ZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIu YworaW5kZXggOWRiZmQxZDZjOS4uMDZiMTdhODg0NSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvYWFh X2RpYW1ldGVyL2RtX3BlZXIuYworKysrIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5j CitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlICIuLi8uLi9zcl9tb2R1bGUuaCIKKyAjaW5j bHVkZSAiLi4vLi4vbG9ja2luZy5oIgorICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5oIgorKyNp bmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5jbHVkZSAiZG1faW1wbC5oIgorICNpbmNsdWRlICJk bV9wZWVyLmgiCitAQCAtNTExLDcgKzUxMiw3IEBAIHN0YXRpYyBpbnQgZG1fc2VuZF9jdXN0b21f cmVxKHN0cnVjdCBkbV9tZXNzYWdlICptc2cpCisgCisgaW50IGRtX3NlbmRfY3VzdG9tX3JwbChz dHJ1Y3QgZG1fbWVzc2FnZSAqZG0pCisgeworLQlzdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1z ZyAqKWRtLT5mZF9yZXE7CisrCXN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopKHVpbnRw dHJfdClkbS0+ZmRfcmVxOworIAlpbnQgcmMsIGZsYWdzID0gMDsKKyAKKyAJaWYgKCFkbV9zZXJ2 ZXJfYXV0b3JlcGx5X2Vycm9yICYmIGRtX3JlbW92ZV91bnJlcGxpZWRfcmVxKGFucykgIT0gMCkg ewoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13 YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaCBiL29wZW5zaXBzLTAwMTAtRml4LUM5MC1z dHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjg5ZTRlCi0tLSAvZGV2L251bGwKKysrIGIv b3BlbnNpcHMtMDAxMC1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBz dGF0cy1tb2R1LnBhdGNoCkBAIC0wLDAgKzEsMzgxIEBACitGcm9tIDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQ ZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorRGF0ZTogU2F0LCAzMSBKYW4gMjAy NiAxNToxMToyMCArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXggQzkwLXN0eWxlIGRlY2xhcmF0 aW9uIHdhcm5pbmdzIGluIHNubXBzdGF0cyBtb2R1bGUKKworQnVpbGQgZmFpbHMgd2l0aCBgLVdl cnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRgIChlbmZvcmNlZCBieQorbmV0LXNubXAg cGtnLWNvbmZpZykgZHVlIHRvIHZhcmlhYmxlcyBkZWNsYXJlZCBhZnRlciBleGVjdXRhYmxlCitz dGF0ZW1lbnRzOgorCitgYGAKK29wZW5zZXJPYmplY3RzLmM6NjE5Ojk6IGVycm9yOiBJU08gQzkw IGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9u LWFmdGVyLXN0YXRlbWVudF0KKyAgNjE5IHwgICAgICAgICBpbnQgbmV3X3RocmVzaG9sZCA9IChp bnQpKGxvbmcpKGludCAqKXZhbDsKKworb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYzoyNDQ6MTc6 IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vy cm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgMjQ0IHwgICAgICAgICAgICAgICAg IGNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOworCitvcGVu c2VyU0lQQ29tbW9uT2JqZWN0cy5jOjQ3NTo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVk IGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1l bnRdCisgIDQ3NSB8ICAgICAgICAgY2hhciAqc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOwor CitvcGVuc2VyU0lQQ29udGFjdFRhYmxlLmM6MjY2Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMg bWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0 YXRlbWVudF0KKyAgMjY2IHwgICAgICAgICBzdGF0aWMgY2hhciAqZGVmYXVsdFVzZXIgPSAiRGVm YXVsdFVzZXIiOworCitvcGVuc2VyU0lQQ29udGFjdFRhYmxlLmM6MzYxOjk6IGVycm9yOiBJU08g QzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0 aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgMzYxIHwgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xp c3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKK2BgYAorCitUaGUgbmV0LXNubXAgbGlicmFy eSdzIHBrZy1jb25maWcgYWRkcworYC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50 YCB0byBDRkxBR1MsIGVuZm9yY2luZyBDOTAtc3R5bGUKK2RlY2xhcmF0aW9uIG9yZGVyaW5nIChh bGwgZGVjbGFyYXRpb25zIGJlZm9yZSBzdGF0ZW1lbnRzKS4KKworV2hpbGUgT3BlblNJUFMgYWRo ZXJlcyB0byB0aGUgQzk5IHN0YW5kYXJkICh3aGljaCBhbGxvd3MgbWl4ZWQKK2RlY2xhcmF0aW9u cyBhbmQgY29kZSksIHRoZSBuZXQtc25tcCBsaWJyYXJ5IGNvdWxkIHJlcXVpcmUgQzkwLXN0eWxl CitkZWNsYXJhdGlvbnMgZm9yIG1vZHVsZXMgdGhhdCBsaW5rIGFnYWluc3QgaXQuIEZvbGxvd2lu ZyB0aGlzIHN0eWxlCitkb2Vzbid0IGh1cnQgQzk5IGNvbXBhdGliaWxpdHkgYW5kIGltcHJvdmVz IGNvZGUgcG9ydGFiaWxpdHkuYAorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPgorQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6 Ly9jbGF1ZGUuYWk+CisKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2Jq ZWN0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlck9iamVjdHMuYworaW5kZXggMTgwYjYy ZGRhNy4uOTA5ZGI0YzgwYiAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJP YmplY3RzLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKK0BAIC02 MDUsNiArNjA1LDggQEAgaW50IGhhbmRsZV9vcGVuc2VyRGlhbG9nTGltaXRNYWpvckFsYXJtKG5l dHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCisgc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhy ZXNob2xkKG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCisgCWludCAq bmV3VmFsKQorIHsKKysJaW50IG5ld190aHJlc2hvbGQ7CisrCisgCWlmICh2YWw9PTApIHsKKyAJ CUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYSBudWxsIHZhbHVlIVxuIiwgdmFyU3RyKTsKKyAJCXJl dHVybiAtMTsKK0BAIC02MTYsNyArNjE4LDcgQEAgc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhy ZXNob2xkKG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCisgCQlyZXR1 cm4gLTE7CisgCX0KKyAKKy0JaW50IG5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2 YWw7CisrCW5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7CisgCisgCWlmIChu ZXdfdGhyZXNob2xkIDwgLTEpIHsKKyAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYW4gaW52YWxp ZCB0aHJlc2hvbGQ9JWQhXG4iLAorZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBDb21tb25PYmplY3RzLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9u T2JqZWN0cy5jCitpbmRleCBlMzdhYjZlZjJhLi5mMmRkYmE1YTdhIDEwMDY0NAorLS0tIGEvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYworKysrIGIvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYworQEAgLTIyNSw2ICsyMjUsOCBAQCBp bnQgaGFuZGxlX29wZW5zZXJTSVBTZXJ2aWNlU3RhcnRUaW1lKG5ldHNubXBfbWliX2hhbmRsZXIg KmhhbmRsZXIsCisgCisgCWludCBlbGFwc2VkVGltZSA9IDA7CisgCWNoYXIgYnVmZmVyW1NOTVBH RVRfTUFYX0JVRkZFUl07CisrCWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uID0gTlVMTDsKKysJY2hh ciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IE5VTEw7CisgCisgCUZJTEUgKnRoZUZpbGUgPSBmb3Bl bihTTk1QR0VUX1RFTVBfRklMRSwgInIiKTsKKyAKK0BAIC0yNDEsOCArMjQzLDggQEAgaW50IGhh bmRsZV9vcGVuc2VyU0lQU2VydmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5k bGVyLAorIAorIAkJLyogRmluZCB0aGUgcG9zaXRpb25zIG9mICcoJyBhbmQgJyknIHNvIHdlIGNh biBleHRyYWN0IG91dCB0aGUKKyAJCSAqIHRpbWV0aWNrcyB2YWx1ZS4gKi8KKy0JCWNoYXIgKm9w ZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOworLQkJY2hhciAqY2xvc2Vk QnJhY2VQb3NpdGlvbiA9IHN0cmNocihidWZmZXIsICcpJyk7CisrCQlvcGVuQnJhY2VQb3NpdGlv biAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKKysJCWNsb3NlZEJyYWNlUG9zaXRpb24gPSBzdHJj aHIoYnVmZmVyLCAnKScpOworIAorIAkJLyogTWFrZSBzdXJlIHRoYXQgYm90aCB0aGUgJygnIGFu ZCAnKScgZXhpc3QgaW4gdGhlIGZpbGUsIGFuZAorIAkJICogdGhhdCAnKCcgb2NjdXJzIGVhcmxp ZXIgdGhhbiB0aGUgJyknLiAgSWYgYWxsIHRoZXNlCitAQCAtNDY0LDYgKzQ2Niw3IEBAIGludCBo YW5kbGVfb3BlbnNlclNJUE90aGVyd2lzZURpc2NhcmRlZE1zZ3MobmV0c25tcF9taWJfaGFuZGxl ciAqaGFuZGxlciwKKyAgKi8KKyBpbnQgaGFuZGxlU2lwRW50aXR5VHlwZSggbW9kcGFyYW1fdCB0 eXBlLCB2b2lkKiB2YWwpCisgeworKwljaGFyICpzdHJFbnRpdHlUeXBlID0gTlVMTDsKKyAKKyAJ LyogQnkgZGVmYXVsdCB3ZSBzdGFydCBvZmYgYXMgIm90aGVyIi4gKi8KKyAJc3RhdGljIGNoYXIg Zmlyc3RUaW1lID0gMTsKK0BAIC00NzIsNyArNDc1LDcgQEAgaW50IGhhbmRsZVNpcEVudGl0eVR5 cGUoIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCogdmFsKQorIAkJcmV0dXJuIC0xOworIAl9CisgCist CWNoYXIgKnN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZhbDsKKysJc3RyRW50aXR5VHlwZSA9IChj aGFyICopdmFsOworIAorIAkvKiBUaGlzIGlzIG91ciBmaXJzdCB0aW1lIHRocm91Z2ggdGhpcyBm dW5jdGlvbiwgc28gd2UgbmVlZCB0byBjaGFuZ2UKKyAJICogb3BlbnNlckVudGl0eVR5cGUgZnJv bSBpdHMgZGVmYXVsdCB0byAwLCBhbGxvd2luZyBvdXIgYml0bWFza3MgYmVsb3cKK2RpZmYgLS1n aXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMgYi9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMKK2luZGV4IDdlZGMxMjEwY2UuLjAz NTg4MDI5YzggMTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFj dFRhYmxlLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250YWN0VGFibGUu YworQEAgLTI2MSwxMCArMjYxLDEwIEBAIHZvaWQgZGVsZXRlQ29udGFjdFJvdyhpbnQgdXNlcklu ZGV4LCBpbnQgY29udGFjdEluZGV4KQorICAqLworIHZvaWQgaW5pdF9vcGVuc2VyU0lQQ29udGFj dFRhYmxlKHZvaWQpCisgeworLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBDb250YWN0VGFi bGUoKTsKKy0KKyAJc3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKKyAK KysJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKCk7CisrCisgCWNyZWF0 ZUNvbnRhY3RSb3coMSwgMSwgZGVmYXVsdFVzZXIsIE5VTEwpOworIH0KKyAKK0BAIC0zNTQsMTQg KzM1NCwxNiBAQCBpbnQgb3BlbnNlclNJUENvbnRhY3RUYWJsZV9nZXRfdmFsdWUoCisgCWNoYXIg ICAgICAgKnJldHJpZXZlZEV4cGlyeTsKKyAJc3RydWN0IHRtICB0aW1lVmFsdWU7CisgCisrCW5l dHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gTlVMTDsKKysJb3BlbnNlclNJUENvbnRhY3RUYWJs ZV9jb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKKysKKyAJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3 ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisgCSAqIGNhc2Ug c29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0 YS4gKi8KKyAJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRzbm1wX3Zhcmlh YmxlX2xpc3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKKysJdmFyID0gcmVxdWVzdC0+cmVx dWVzdHZiOworIAorLQlvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKmNvbnRleHQgPQor LQkJKG9wZW5zZXJTSVBDb250YWN0VGFibGVfY29udGV4dCAqKWl0ZW07CisrCWNvbnRleHQgPSAo b3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICopaXRlbTsKKyAKKyAJc3dpdGNoKHRhYmxl X2luZm8tPmNvbG51bSkKKyAJeworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBQb3J0VGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUu YworaW5kZXggYTEwNzU4MjczYS4uM2EwM2I3MmIyMSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25t cHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3Bl bnNlclNJUFBvcnRUYWJsZS5jCitAQCAtMTA0LDE5ICsxMDQsMTcgQEAgb3BlbnNlclNJUFBvcnRU YWJsZV9jb250ZXh0ICpnZXRSb3coaW50IGlwVHlwZSwgdW5zaWduZWQgaW50ICppcEFkZHJlc3Mp CisgeworIAlpbnQgbGVuZ3RoT2ZPSUQ7CisgCW9pZCAqY3VycmVudE9JREluZGV4ID0gY3JlYXRl SW5kZXgoaXBUeXBlLCBpcEFkZHJlc3MsICZsZW5ndGhPZk9JRCk7CisrCW5ldHNubXBfaW5kZXgg dGhlSW5kZXg7CisrCW9wZW5zZXJTSVBQb3J0VGFibGVfY29udGV4dCAqcm93VG9SZXR1cm4gPSBO VUxMOworIAorIAlpZiAoY3VycmVudE9JREluZGV4ID09IE5VTEwpCisgCXsKKyAJCXJldHVybiBO VUxMOworIAl9CisgCistCW5ldHNubXBfaW5kZXggdGhlSW5kZXg7CistCisgCXRoZUluZGV4Lm9p ZHMgPSBjdXJyZW50T0lESW5kZXg7CisgCXRoZUluZGV4LmxlbiAgPSBsZW5ndGhPZk9JRDsKKyAK Ky0Jb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpyb3dUb1JldHVybjsKKy0KKyAJLyogTGV0 cyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYW4gZXhpc3Rpbmcgcm93LiAqLworIAlyb3dUb1Jl dHVybiA9IENPTlRBSU5FUl9GSU5EKGNiLmNvbnRhaW5lciwgJnRoZUluZGV4KTsKKyAKK0BAIC0y MTgsOCArMjE2LDYgQEAgdm9pZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKKyB7Cisg CWludCBjdXJTTk1QSW5kZXggPSAwOworIAorLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQ b3J0VGFibGUoKTsKKy0KKyAJdW5zaWduZWQgaW50ICpVRFBMaXN0ID0gTlVMTDsKKyAJdW5zaWdu ZWQgaW50ICpUQ1BMaXN0ID0gTlVMTDsKKyAJdW5zaWduZWQgaW50ICpUTFNMaXN0ID0gTlVMTDsK K0BAIC0yMjgsNiArMjI0LDggQEAgdm9pZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkK KyAJaW50IG51bVRDUFNvY2tldHM7CisgCWludCBudW1UTFNTb2NrZXRzOworIAorKwlpbml0aWFs aXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKKysKKyAJLyogUmV0cmlldmUgdGhlIGxp c3Qgb2YgdGhlIG51bWJlciBvZiBVRFAgYW5kIFRDUCBzb2NrZXRzLiAqLworIAludW1VRFBTb2Nr ZXRzID0gZ2V0X3NvY2tldF9saXN0X2Zyb21fcHJvdG8oJlVEUExpc3QsIFBST1RPX1VEUCk7Cisg CW51bVRDUFNvY2tldHMgPSBnZXRfc29ja2V0X2xpc3RfZnJvbV9wcm90bygmVENQTGlzdCwgUFJP VE9fVENQKTsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNl ckxvb2t1cFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1 cFRhYmxlLmMKK2luZGV4IDMyNGRmNjE4ZmQuLmE1NGI1ODM3NTIgMTAwNjQ0CistLS0gYS9tb2R1 bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKKysrKyBiL21vZHVs ZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGUuYworQEAgLTUxNCwyMyAr NTE0LDIwIEBAIHZvaWQgb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRfcmVzZXJ2ZTIo IG5ldHNubXBfcmVxdWVzdF9ncm91cCAqcmcgKQorICAqLworIHZvaWQgb3BlbnNlclNJUFJlZ1Vz ZXJMb29rdXBUYWJsZV9zZXRfYWN0aW9uKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJnICkKKyB7 CistCS8qIEZpcnN0IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnBy b2Nlc3MgYnVmZmVyLCBpbgorLQkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2Fu dCB0byByZXR1cm4gdGhlIGZyZXNoZXN0IGRhdGEuICovCistCWNvbnN1bWVJbnRlcnByb2Nlc3NC dWZmZXIoKTsKKy0KKyAJYW9yVG9JbmRleFN0cnVjdF90ICpoYXNoUmVjb3JkOworLQorIAluZXRz bm1wX3ZhcmlhYmxlX2xpc3QgKnZhcjsKKysJbmV0c25tcF9yZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1 cnJlbnQ7CisrCWludCByb3dfZXJyID0gMDsKKysJb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJs ZV9jb250ZXh0ICpyb3dfY3R4ID0gTlVMTDsKKysJb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJs ZV9jb250ZXh0ICp1bmRvX2N0eCA9IE5VTEw7CisgCistCW9wZW5zZXJTSVBSZWdVc2VyTG9va3Vw VGFibGVfY29udGV4dCAqcm93X2N0eCA9CistCQkob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJs ZV9jb250ZXh0ICopcmctPmV4aXN0aW5nX3JvdzsKKy0KKy0Jb3BlbnNlclNJUFJlZ1VzZXJMb29r dXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0eCA9CistCQkob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBU YWJsZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsKKysJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3 ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisrCSAqIGNhc2Ug c29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0 YS4gKi8KKysJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRzbm1wX3JlcXVl c3RfZ3JvdXBfaXRlbSAqY3VycmVudDsKKysJcm93X2N0eCA9IChvcGVuc2VyU0lQUmVnVXNlckxv b2t1cFRhYmxlX2NvbnRleHQgKilyZy0+ZXhpc3Rpbmdfcm93OworIAorLQlpbnQJCQlyb3dfZXJy ID0gMDsKKysJdW5kb19jdHggPSAob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0 ICopcmctPnVuZG9faW5mbzsKKyAKKyAJLyogQ29weSB0aGUgYWN0dWFsIGRhdGEgdG8gdGhlIHJv dy4gKi8KKyAJZm9yKCBjdXJyZW50ID0gcmctPmxpc3Q7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJy ZW50LT5uZXh0ICkgeworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBS ZWdVc2VyVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUu YworaW5kZXggNDNiMTRjZGViNy4uOWNmMDI5ZGY5ZCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25t cHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMv b3BlbnNlclNJUFJlZ1VzZXJUYWJsZS5jCitAQCAtMjI1LDE1ICsyMjUsMTQgQEAgdm9pZCB1cGRh dGVVc2VyKGNoYXIgKnVzZXJOYW1lKQorICAqIFJldHVybnM6IFRoZSByb3dzIHVzZXJJbmRleCBv biBzdWNjZXNzLCBhbmQgMCBvdGhlcndpc2UuICovCisgaW50IGNyZWF0ZVJlZ1VzZXJSb3coY2hh ciAqc3RyaW5nVG9SZWdpc3RlcikKKyB7CistCWludCBzdGF0aWMgaW5kZXggPSAwOworLQorLQlp bmRleCsrOworLQorIAlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKnRoZVJvdzsKKy0K KyAJb2lkICAqT0lESW5kZXg7CisgCWludCAgc3RyaW5nTGVuZ3RoOworIAorKwlpbnQgc3RhdGlj IGluZGV4ID0gMDsKKysKKysJaW5kZXgrKzsKKysKKyAJdGhlUm93ID0gU05NUF9NQUxMT0NfVFlQ RURFRihvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQpOworIAorIAlpZiAodGhlUm93ID09 IE5VTEwpIHsKK0BAIC0yODAsMTIgKzI3OSwxMiBAQCBpbnQgY3JlYXRlUmVnVXNlclJvdyhjaGFy ICpzdHJpbmdUb1JlZ2lzdGVyKQorIC8qIEluaXRpYWxpemVzIHRoZSBvcGVuc2VyU0lQUmVnVXNl clRhYmxlIG1vZHVsZS4gICovCisgdm9pZCBpbml0X29wZW5zZXJTSVBSZWdVc2VyVGFibGUodm9p ZCkKKyB7CistCS8qIFJlZ2lzdGVyIHRoaXMgdGFibGUgd2l0aCB0aGUgbWFzdGVyIGFnZW50ICov CistCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSgpOworLQorIAkvKiBX ZSBuZWVkIHRvIGNyZWF0ZSBhIGRlZmF1bHQgcm93LCBzbyBjcmVhdGUgRGVmYXVsdFVzZXIgKi8K KyAJc3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKKyAKKysJLyogUmVn aXN0ZXIgdGhpcyB0YWJsZSB3aXRoIHRoZSBtYXN0ZXIgYWdlbnQgKi8KKysJaW5pdGlhbGl6ZV90 YWJsZV9vcGVuc2VyU0lQUmVnVXNlclRhYmxlKCk7CisrCisgCWNyZWF0ZVJlZ1VzZXJSb3coZGVm YXVsdFVzZXIpOworIH0KKyAKK0BAIC0zNTAsMTQgKzM0OSwxNiBAQCBpbnQgb3BlbnNlclNJUFJl Z1VzZXJUYWJsZV9nZXRfdmFsdWUoCisgCQluZXRzbm1wX2luZGV4ICppdGVtLAorIAkJbmV0c25t cF90YWJsZV9yZXF1ZXN0X2luZm8gKnRhYmxlX2luZm8gKQorIHsKKysJbmV0c25tcF92YXJpYWJs ZV9saXN0ICp2YXIgPSBOVUxMOworKwlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKmNv bnRleHQgPSBOVUxMOworKworIAkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29u c3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KKyAJICogY2FzZSBzb21ldGhpbmcgaGFz IGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAqLworIAljb25z dW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7CisgCistCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFy ID0gcmVxdWVzdC0+cmVxdWVzdHZiOworKwl2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7CisgCist CW9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqY29udGV4dCA9CistCQkob3BlbnNlclNJ UFJlZ1VzZXJUYWJsZV9jb250ZXh0ICopaXRlbTsKKysJY29udGV4dCA9IChvcGVuc2VyU0lQUmVn VXNlclRhYmxlX2NvbnRleHQgKilpdGVtOworIAorIAlzd2l0Y2godGFibGVfaW5mby0+Y29sbnVt KQorIAl7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0Nv ZGVzVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxl LmMKK2luZGV4IDJiMzk2YzY5ODUuLjc5ZjNhMTI5YTMgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3Nu bXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jCisrKysgYi9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jCitAQCAtMzEwLDYgKzMxMCw3IEBAIGlu dCBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9jYW5fZGVsZXRlKAorIG9wZW5zZXJTSVBTdGF0 dXNDb2Rlc1RhYmxlX2NvbnRleHQgKgorIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0 ZV9yb3coIG5ldHNubXBfaW5kZXgqIGhkcikKKyB7CisrCWludCBjb2RlSW5kZXg7CisgCXN0YXRf dmFyICppbl9zdGF0dXNfY29kZTsKKyAJc3RhdF92YXIgKm91dF9zdGF0dXNfY29kZTsKKyAKK0BA IC0zMzcsNyArMzM4LDcgQEAgb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY3JlYXRlX3Jvdygg bmV0c25tcF9pbmRleCogaGRyKQorIAkvKiBSZXRyaWV2ZSB0aGUgaW5kZXggZm9yIHRoZSBzdGF0 dXMgY29kZSwgYW5kIHRoZW4gYXNzaWduIHRoZSBzdGFydGluZworIAkgKiB2YWx1ZXMuICBUaGUg c3RhcnRpbmcgdmFsdWVzIHdpbGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgZGVsdGFzIGR1cmluZwor IAkgKiB0aGUgbmV4dCBzbm1wZ2V0L3NubXB3YWxrL3NubXB0YWJsZS9ldGMuICovCistCWludCBj b2RlSW5kZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0dXNDb2RlVmFsdWU7CisrCWNvZGVJbmRleCA9 IGN0eC0+b3BlbnNlclNJUFN0YXR1c0NvZGVWYWx1ZTsKKyAKKyAJY3R4LT5zdGFydGluZ0luU3Rh dHVzQ29kZVZhbHVlICA9IDA7CisgCWN0eC0+c3RhcnRpbmdPdXRTdGF0dXNDb2RlVmFsdWUgPSAw OworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jIGIvbW9kdWxlcy9z bm1wc3RhdHMvc25tcHN0YXRzLmMKK2luZGV4IDk1YmMxYzFmM2IuLjU3NWMwZDEwNjggMTAwNjQ0 CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMuYworKysrIGIvbW9kdWxlcy9zbm1w c3RhdHMvc25tcHN0YXRzLmMKK0BAIC0zNDYsNyArMzQ2LDEyIEBAIHN0YXRpYyB2b2lkIHNpZ2No bGRfaGFuZGxlcihpbnQgc2lnbmFsKQorICAqLworIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1l X2NoaWxkKHZvaWQpCisgeworKwlwaWRfdCByZXN1bHRfcGlkOworKwlpbnQgc25tcGdldF9mZDsK KysJaW50IGxvY2FsX3BhdGhfdG9fc25tcGdldF9sZW5ndGg7CisrCWludCBzbm1wZ2V0X2JpbmFy eV9uYW1lX2xlbmd0aDsKKyAJc3RydWN0IHNpZ2FjdGlvbiBuZXdfc2lnY2hsZF9oYW5kbGVyOwor KwljaGFyICphcmdzWzZdOworIAorIAljaGFyICpsb2NhbF9wYXRoX3RvX3NubXBnZXQgPSAiL3Vz ci9iaW4vIjsKKyAJY2hhciAqc25tcGdldF9iaW5hcnlfbmFtZSAgID0gIi9zbm1wZ2V0IjsKK0BA IC0zNjIsNyArMzY3LDcgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkK KyAJbmV3X3NpZ2NobGRfaGFuZGxlci5zYV9oYW5kbGVyID0gc2lnY2hsZF9oYW5kbGVyOworIAlz aWdhY3Rpb24oU0lHQ0hMRCwgJm5ld19zaWdjaGxkX2hhbmRsZXIsICZvbGRfc2lnY2hsZF9oYW5k bGVyKTsKKyAKKy0JcGlkX3QgcmVzdWx0X3BpZCA9IGZvcmsoKTsKKysJcmVzdWx0X3BpZCA9IGZv cmsoKTsKKyAKKyAJaWYgKHJlc3VsdF9waWQgPCAwKSB7CisgCQlMTV9FUlIoImZhaWxlZCB0byBu b3Qgc3Bhd24gYW4gYWdlbnQgdG8gY2hlY2sgc3lzVXBUaW1lXG4iKTsKK0BAIC0zODAsNyArMzg1 LDcgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyAKKyAJLyogSWYg d2UgYXJlIGhlcmUsIHRoZW4gd2UgYXJlIHRoZSBjaGlsZCBwcm9jZXNzLiAgTGV0cyBzZXQgdXAg dGhlIGZpbGUKKyAJICogZGVzY3JpcHRvcnMgc28gd2UgY2FuIGNhcHR1cmUgdGhlIG91dHB1dCBv ZiBzbm1wZ2V0LiAqLworLQlpbnQgc25tcGdldF9mZCA9CisrCXNubXBnZXRfZmQgPQorIAkJb3Bl bihTTk1QR0VUX1RFTVBfRklMRSwgT19DUkVBVHxPX1RSVU5DfE9fUkRXUiwKKyAJCQkJU19JUlVT UnxTX0lXVVNSfFNfSVJHUlB8U19JUk9USCk7CisgCitAQCAtNDAxLDggKzQwNiwxMiBAQCBzdGF0 aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQorIAkJCQkiICBEZWZhdWx0aW5nIHRv ICVzXG4iLAlzbm1wX2NvbW11bml0eV9zdHJpbmcpOworIAl9CisgCistCWNoYXIgKmFyZ3NbXSA9 IHsiLU92IiwgIi1jIiwgIHNubXBfY29tbXVuaXR5X3N0cmluZywgImxvY2FsaG9zdCIsCistCQlT WVNVUFRJTUVfT0lELCAoY2hhciAqKSAwfTsKKysJYXJnc1swXSA9ICItT3YiOworKwlhcmdzWzFd ID0gIi1jIjsKKysJYXJnc1syXSA9IHNubXBfY29tbXVuaXR5X3N0cmluZzsKKysJYXJnc1szXSA9 ICJsb2NhbGhvc3QiOworKwlhcmdzWzRdID0gU1lTVVBUSU1FX09JRDsKKysJYXJnc1s1XSA9IChj aGFyICopMDsKKyAKKyAJLyogTWFrZSBzdXJlIHdlIGhhdmUgYSBwYXRoIHRvIHNubXBnZXQsIHNv IHdlIGNhbiByZXRyaWV2ZSB0aGUKKyAJICogc3lzVXBUaW1lLiAqLworQEAgLTQxNiw4ICs0MjUs OCBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQorIAkJbG9jYWxfcGF0 aF90b19zbm1wZ2V0ID0gc25tcGdldF9wYXRoOworIAl9CisgCistCWludCBsb2NhbF9wYXRoX3Rv X3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7CistCWludCBz bm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aCAgID0gc3RybGVuKHNubXBnZXRfYmluYXJ5X25hbWUp OworKwlsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2FsX3BhdGhfdG9f c25tcGdldCk7CisrCXNubXBnZXRfYmluYXJ5X25hbWVfbGVuZ3RoICAgPSBzdHJsZW4oc25tcGdl dF9iaW5hcnlfbmFtZSk7CisgCisgCS8qIEFsbG9jYXRlIGVub3VnaCBtZW1vcnkgdG8gaG9sZCB0 aGUgcGF0aCwgdGhlIGJpbmFyeSBuYW1lLCBhbmQgdGhlCisgCSAqIG51bGwgY2hhcmFjdGVyLiAg V2UgZG9uJ3QgdXNlIHBrZ19tZW1vcnkgaGVyZS4gKi8KK2RpZmYgLS1naXQgYS9tb2R1bGVzL3Nu bXBzdGF0cy91dGlsaXRpZXMuYyBiL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCitpbmRl eCBkZmMwOTc4Yjc0Li4yZjdlZDlhMzA3IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMv dXRpbGl0aWVzLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCitAQCAtNzIs MTMgKzcyLDEzIEBAIGludCBzdHJpbmdIYW5kbGVyU2FuaXR5Q2hlY2soIG1vZHBhcmFtX3QgdHlw ZSwgdm9pZCAqdmFsLCBjaGFyICpwYXJhbWV0ZXJOYW1lKQorIGludCBnZXRfc3RhdGlzdGljKGNo YXIgKnN0YXROYW1lKQorIHsKKyAJaW50IHJlc3VsdCA9IDA7CistCisrCXN0YXRfdmFyICp0aGVW YXIgPSBOVUxMOworIAlzdHIgdGhlU3RyOworIAorIAl0aGVTdHIucyAgID0gc3RhdE5hbWU7Cisg CXRoZVN0ci5sZW4gPSBzdHJsZW4oc3RhdE5hbWUpOworIAorLQlzdGF0X3ZhciAqdGhlVmFyID0g Z2V0X3N0YXQoJnRoZVN0cik7CisrCXRoZVZhciA9IGdldF9zdGF0KCZ0aGVTdHIpOworIAorIAlp ZiAodGhlVmFyPT0wKSB7CisgCQlMTV9JTkZPKCJmYWlsZWQgdG8gcmV0cmlldmUgc3RhdGlzdGlj cyBmb3IgJXNcbiIsIHN0YXROYW1lKTsKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDEwLUZpeC1w b2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2ggYi9v cGVuc2lwcy0wMDEwLUZpeC1wb2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJj aGl0ZWN0dXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5YjBkYTUuLjAw MDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAxMC1GaXgtcG9pbnRlci10cnVuY2F0aW9uLXdhcm5pbmct b24tMzItYml0LWFyY2hpdGVjdHVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkxICswLDAg QEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5j b20+Ci1EYXRlOiBGcmksIDI2IERlYyAyMDI1IDIxOjA4OjAwICswMTAwCi1TdWJqZWN0OiBbUEFU Q0hdIEZpeCBwb2ludGVyIHRydW5jYXRpb24gd2FybmluZyBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJl cyBpbgotIGFhYV9kaWFtZXRlcgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAot Ci1EdXJpbmcgY29tcGlsYXRpb24gb24gaTY4NiAoMzItYml0KSBhcmNoaXRlY3R1cmUgd2l0aCBH Q0MgMTUsIGEgcG9pbnRlcgotdHJ1bmNhdGlvbiB3YXJuaW5nIGFwcGVhcnM6Ci0KLWBgYAotYWFh X2RpYW1ldGVyLmM6IEluIGZ1bmN0aW9uICdkbV9zZW5kX2Fuc3dlcic6Ci1hYWFfZGlhbWV0ZXIu Yzo0MjM6NzM6IHdhcm5pbmc6IGNhc3QgdG8gcG9pbnRlciBmcm9tIGludGVnZXIgb2YgZGlmZmVy ZW50IHNpemUgWy1XaW50LXRvLXBvaW50ZXItY2FzdF0KLSAgNDIzIHwgIGRtc2cgPSBfZG1fY3Jl YXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SUEwsIGFwcGlkLCBjbWRjb2RlLCAodm9pZCAq KWZkX3JlcSk7Ci1gYGAKLQotVGhlIGBkbV9tZXNzYWdlYCBzdHJ1Y3Qgc3RvcmVzIGEgcG9pbnRl ciB0byBhIEZyZWVEaWFtZXRlciBtZXNzYWdlCi1zdHJ1Y3R1cmUgaW4gdGhlIGBmZF9yZXFgIGZp ZWxkLCBidXQgdGhlIHR5cGUgaXMgbWlzbWF0Y2hlZCBhY3Jvc3MKLWRpZmZlcmVudCBjb2RlIHBh dGhzOgotCi0xLiBJbiBgYWFhX2RpYW1ldGVyLmNgLCBhIHBvaW50ZXIgaXMgc2VyaWFsaXplZCBh cyBgdWludDY0X3RgICg4IGJ5dGVzKQotMi4gSXQncyB0aGVuIGNhc3QgdG8gYHZvaWQgKmAgYW5k IHBhc3NlZCB0byBgX2RtX2NyZWF0ZV9tZXNzYWdlKClgCi0zLiBPbiAqKmk2ODYqKiwgYHZvaWQg KmAgaXMgb25seSA0IGJ5dGVzLCBjYXVzaW5nICoqdHJ1bmNhdGlvbioqIG9mIHRoZQotICAgdXBw ZXIgMzIgYml0cwotNC4gSW4gYGRtX3BlZXIuY2AsIGl0J3MgY2FzdCBiYWNrIHRvIGBzdHJ1Y3Qg bXNnICpgIGZvciB1c2UKLQotKipPbiB4ODZfNjQgKDY0LWJpdCk6KioKLQotLSBgdWludDY0X3Rg ID0gOCBieXRlcwotLSBgdm9pZCAqYCA9IDggYnl0ZXMKLS0gTm8gdHJ1bmNhdGlvbiwgd29ya3Mg ZmluZQotCi0qKk9uIGk2ODYgKDMyLWJpdCk6KioKLQotLSBgdWludDY0X3RgID0gOCBieXRlcwot LSBgdm9pZCAqYCA9IDQgYnl0ZXMKLS0gKipUcnVuY2F0aW9uIG9jY3VycyoqLCBsb3NpbmcgdXBw ZXIgMzIgYml0cyBvZiB0aGUgcG9pbnRlciEKLQotQ2hhbmdlIGBmZF9yZXFgIGZyb20gYHZvaWQg KmAgdG8gYHVpbnRwdHJfdGAgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuCi0KLWB1aW50cHRyX3Rg IGlzOgotCi0tICoqUG9ydGFibGUqKjogU2l6ZWQgY29ycmVjdGx5IGZvciBwb2ludGVycyBvbiBh bnkgYXJjaGl0ZWN0dXJlICg0Ci0gIGJ5dGVzIG9uIDMyLWJpdCwgOCBieXRlcyBvbiA2NC1iaXQp Ci0tICoqU3RhbmRhcmQqKjogRGVmaW5lZCBpbiBDOTkgYDxzdGRpbnQuaD5gCi0tICoqU2VtYW50 aWMqKjogRXhwbGljaXRseSBkZXNpZ25lZCBmb3Igc3RvcmluZyBwb2ludGVyIHZhbHVlcyBhcwot ICBpbnRlZ2VycwotLSAqKlNhZmUqKjogR3VhcmFudGVlZCBieSBDOTkgdG8gcHJlc2VydmUgcG9p bnRlciB2YWx1ZXMgZHVyaW5nCi0gIHJvdW5kLXRyaXAgY29udmVyc2lvbnMKLQotKioxLiBTdHJ1 Y3QgZGVmaW5pdGlvbiAoYG1vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuaGAgbGluZSA5Myk6 KioKLQotYGBgYwotc3RydWN0IGRtX21lc3NhZ2UgewotICAgIC8vIENoYW5nZWQgZnJvbTogdm9p ZCAqZmRfcmVxOwotICAgIHVpbnRwdHJfdCBmZF9yZXE7Ci0gICAgLy8gLi4uCi19OwotYGBgCi0K LSoqMi4gRnVuY3Rpb24gc2lnbmF0dXJlIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5o YCB+bGluZSAxNjUpOioqCi0KLWBgYGMKLWFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2Uo YWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAgICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNp Z25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9yZXEpOwotICAgIC8vIENoYW5nZWQgZnJv bTogdm9pZCAqZmRfcmVxCi1gYGAKLQotKiozLiBGdW5jdGlvbiBkZWZpbml0aW9uIChgbW9kdWxl cy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jYCBsaW5lIDE2OTUpOioqCi0KLWBgYGMKLWFhYV9tZXNz YWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAgICB1 bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9t c2cpCi0gICAgLy8gQ2hhbmdlZCBmcm9tOiB2b2lkICpmZF9tc2cKLWBgYAotCi0qKjQuIENhbGwg c2l0ZXMgLSBwb2ludGVyIHRvIHVpbnRwdHJfdDoqKgotCi1gYGBjCi0vLyBhYWFfZGlhbWV0ZXIu YyBsaW5lIDQyMyAtIHJlbW92ZSB2b2lkKiBjYXN0OgotZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2Fn ZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7Ci0KLS8vIGRt X2ltcGwuYyAtIGFkZCBleHBsaWNpdCBjYXN0cyB3aGVuIHN0b3JpbmcgcG9pbnRlcnM6Ci1kbS5m ZF9yZXEgPSAodWludHB0cl90KXJlcTsKLWRtLT5mZF9yZXEgPSAodWludHB0cl90KWZkX21zZzsK LWBgYAotCi0qKjUuIENhbGwgc2l0ZXMgd2l0aCBOVUxMIC0gdXNlIDAgaW5zdGVhZDoqKgotCi1T aW5jZSBgdWludHB0cl90YCBpcyBhbiBpbnRlZ2VyIHR5cGUgKG5vdCBhIHBvaW50ZXIgdHlwZSks IHdlIHVzZSBgMGAKLWluc3RlYWQgb2YgYE5VTExgIHRvIHJlcHJlc2VudCAibm8gcG9pbnRlciI6 Ci0KLWBgYGMKLS8vIE11bHRpcGxlIGxvY2F0aW9ucyBpbiBhYWFfZGlhbWV0ZXIuYywgZG1faW1w bC5jOgotZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFw cF9pZCwgKmNtZF9jb2RlLCAwKTsKLS8vIENoYW5nZWQgZnJvbTogLi4uLCBOVUxMKTsKLWBgYAot Ci0qKk5vdGU6KiogSW4gQywgYE5VTExgIGlzIHR5cGljYWxseSBgKCh2b2lkICopMClgIC0gYSBw b2ludGVyIHR5cGUuIFdoZW4KLXBhc3NpbmcgdG8gYW4gaW50ZWdlciBwYXJhbWV0ZXIgbGlrZSBg dWludHB0cl90YCwgd2UgdXNlIHRoZSBpbnRlZ2VyIGAwYAotZGlyZWN0bHkgdG8gYXZvaWQgaW1w bGljaXQgcG9pbnRlci10by1pbnRlZ2VyIGNvbnZlcnNpb24gd2FybmluZ3MuCi0KLSoqNi4gVXNh Z2Ugc2l0ZSAtIHVpbnRwdHJfdCB0byBwb2ludGVyIChgZG1fcGVlci5jYCk6KioKLQotYGBgYwot Ly8gQ2hhbmdlZCBmcm9tOiBzdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKWRtLT5mZF9y ZXE7Ci1zdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKSh1aW50cHRyX3QpZG0tPmZkX3Jl cTsKLWBgYAotCi1UaGUgZG91YmxlIGNhc3QgYChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2YWx1 ZWAgaXMgcmVxdWlyZWQgYnkgQzk5IGZvcgotZ3VhcmFudGVlZCBjb3JyZWN0bmVzczoKLQotMS4g KipDOTkgZ3VhcmFudGVlcyoqIHRoYXQgYW55IHBvaW50ZXIgY2FuIGJlIGNvbnZlcnRlZCB0byBg dWludHB0cl90YCBhbmQgYmFjawotMi4gRGlyZWN0IGBpbnRlZ2VyIOKGkiBwb2ludGVyYCBjb252 ZXJzaW9uIGlzICoqaW1wbGVtZW50YXRpb24tZGVmaW5lZCoqIGJlaGF2aW9yCi0zLiBUaGUgcHJv cGVyIGNvbnZlcnNpb24gcGF0aCBpczogYHBvaW50ZXIg4oaSIHVpbnRwdHJfdCDihpIgcG9pbnRl cmAKLQotV2hpbGUgYSBzaW5nbGUgY2FzdCBmcm9tIGB1aW50cHRyX3RgIHRvIHBvaW50ZXIgb2Z0 ZW4gd29ya3MgaW4gcHJhY3RpY2UsCi10aGUgZG91YmxlIGNhc3QgZXhwbGljaXRseSBmb2xsb3dz IHRoZSBDOTkgc3RhbmRhcmQncyBndWFyYW50ZWVkCi1jb252ZXJzaW9uIHBhdGgsIGVuc3VyaW5n IHRoZSBjb2RlIGlzIHN0cmljdGx5IGNvbmZvcm1hbnQgYW5kIHdvbid0Ci1jYXVzZSBpc3N1ZXMg d2l0aCBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgb3IgZnV0dXJlIGNvbXBpbGVyCi1vcHRpbWl6YXRp b25zLgotCi1UaGUgcGF0dGVybiBpczoKLS0gKipQb2ludGVyIOKGkiB1aW50cHRyX3QqKjogYCh1 aW50cHRyX3QpcG9pbnRlcmAKLS0gKip1aW50cHRyX3Qg4oaSIFBvaW50ZXIqKjogYChzdHJ1Y3Qg bXNnICopKHVpbnRwdHJfdCl2YWx1ZWAKLS0gKipOdWxsIHZhbHVlKio6IGAwYCAobm90IGBOVUxM YCwgc2luY2UgYHVpbnRwdHJfdGAgaXMgYW4gaW50ZWdlciB0eXBlKQotCi1UaGlzIGZpeCBlbnN1 cmVzIHBvaW50ZXJzIGFyZSBjb3JyZWN0bHkgcHJlc2VydmVkIG9uIGFsbCBhcmNoaXRlY3R1cmVz Ci13aXRob3V0IHRydW5jYXRpb24uCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxs ZW1lbmtvdkBnbWFpbC5jb20+Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRw czovL2NsYXVkZS5haT4KLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2FhYV9k aWFtZXRlci5jIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMKLWluZGV4IGNh MDcwOWM1Ny4uMGQ2YmZkZDcwIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFh X2RpYW1ldGVyLmMKLSsrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2FhYV9kaWFtZXRlci5jCi1A QCAtMTksNiArMTksNyBAQAotICAqLwotIAotICNpbmNsdWRlIDxmcmVlRGlhbWV0ZXIvZXh0ZW5z aW9uLmg+Ci0rI2luY2x1ZGUgPHN0ZGludC5oPgotIAotICNpbmNsdWRlICIuLi8uLi9zcl9tb2R1 bGUuaCIKLSAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLUBAIC0zMDgsNyArMzA5LDcgQEAg c3RhdGljIGludCBkbV9zZW5kX3JlcXVlc3Qoc3RydWN0IHNpcF9tc2cgKm1zZywgaW50ICphcHBf aWQsIGludCAqY21kX2NvZGUsCi0gCQlnb3RvIGVycm9yOwotIAl9Ci0gCi0tCWRtc2cgPSBfZG1f Y3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICphcHBfaWQsICpjbWRfY29kZSwg TlVMTCk7Ci0rCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEs ICphcHBfaWQsICpjbWRfY29kZSwgMCk7Ci0gCWlmICghZG1zZykgewotIAkJTE1fRVJSKCJvb21c biIpOwotIAkJZ290byBlcnJvcjsKLUBAIC00MjEsNyArNDIyLDcgQEAgc3RhdGljIGludCBkbV9z ZW5kX2Fuc3dlcihzdHJ1Y3Qgc2lwX21zZyAqbXNnLCBzdHIgKmF2cF9qc29uLCBpbnQgKmlzX2Vy cm9yKQotIAkJcmV2ZXJzZV9oZXgyaW50NjQocmVzLnJzLnMsIHJlcy5ycy5sZW4sIDEsICZmZF9y ZXEpOwotIAl9Ci0gCi0tCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RP TV9SUEwsIGFwcGlkLCBjbWRjb2RlLCAodm9pZCAqKWZkX3JlcSk7Ci0rCWRtc2cgPSBfZG1fY3Jl YXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SUEwsIGFwcGlkLCBjbWRjb2RlLCBmZF9yZXEp OwotIAlpZiAoIWRtc2cpIHsKLSAJCUxNX0VSUigib29tXG4iKTsKLSAJCWdvdG8gZXJyb3I7Ci1A QCAtNTcyLDcgKzU3Myw3IEBAIHN0YXRpYyBpbnQgZG1fc2VuZF9yZXF1ZXN0X2FzeW5jKHN0cnVj dCBzaXBfbXNnICptc2csIGFzeW5jX2N0eCAqY3R4LAotIAkJZ290byBlcnJvcjsKLSAJfQotIAot LQlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCAqYXBwX2lk LCAqY21kX2NvZGUsIE5VTEwpOwotKwlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFB QV9DVVNUT01fUkVRLCAqYXBwX2lkLCAqY21kX2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJ CUxNX0VSUigib29tXG4iKTsKLSAJCWdvdG8gZXJyb3I7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9h YWFfZGlhbWV0ZXIvZG1faW1wbC5jIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jCi1p bmRleCA5MjcyNjE4OTkuLjAxMjA3MjM3NiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvYWFhX2RpYW1l dGVyL2RtX2ltcGwuYwotKysrIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jCi1AQCAt MjEsNiArMjEsNyBAQAotICNpbmNsdWRlIDxmcmVlRGlhbWV0ZXIvZXh0ZW5zaW9uLmg+Ci0gI2lu Y2x1ZGUgPHN5cy9ldmVudGZkLmg+Ci0gI2luY2x1ZGUgPGludHR5cGVzLmg+Ci0rI2luY2x1ZGUg PHN0ZGludC5oPgotIAotICNpbmNsdWRlICIuLi8uLi91dC5oIgotICNpbmNsdWRlICIuLi8uLi9s aWIvbGlzdC5oIgotQEAgLTU5Miw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IGRtX3JlY2VpdmVfcmVx KHN0cnVjdCBtc2cgKipfcmVxLCBzdHJ1Y3QgYXZwICogYXZwLCBzdHJ1Y3Qgc2Vzc2lvbiAqCi0g Ci0gCQltZW1zZXQoJmRtLCAwLCBzaXplb2YgZG0pOwotIAotLQkJZG0uZmRfcmVxID0gcmVxOwot KwkJZG0uZmRfcmVxID0gKHVpbnRwdHJfdClyZXE7Ci0gCQlkbS5hcHBfaWQgPSBoZHItPm1zZ19h cHBsOwotIAkJZG0uY21kX2NvZGUgPSBoZHItPm1zZ19jb2RlOwotIAkJZG0uZXJyb3JfYml0ID0g MTsKLUBAIC0xNjk0LDcgKzE2OTUsNyBAQCBpbnQgZG1fYXBpX2ZpbmRfY21kKGRpYW1ldGVyX2Nv bm4gKmNvbm4sIGludCBjbWRfY29kZSkKLSB9Ci0gCi0gYWFhX21lc3NhZ2UgKl9kbV9jcmVhdGVf bWVzc2FnZShhYWFfY29ubiAqXywgaW50IG1zZ190eXBlLAotLSAgICAgICAgdW5zaWduZWQgaW50 IGFwcF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB2b2lkICpmZF9tc2cpCi0rICAgICAgICB1 bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9t c2cpCi0gewotIAlhYWFfbWVzc2FnZSAqbTsKLSAJc3RydWN0IGRtX21lc3NhZ2UgKmRtOwotQEAg LTE3MjEsNyArMTcyMiw3IEBAIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nv bm4gKl8sIGludCBtc2dfdHlwZSwKLSAJZG0tPmFtID0gbTsKLSAJZG0tPmFwcF9pZCA9IGFwcF9p ZDsKLSAJZG0tPmNtZF9jb2RlID0gY21kX2NvZGU7Ci0tCWRtLT5mZF9yZXEgPSBmZF9tc2c7Ci0r CWRtLT5mZF9yZXEgPSAodWludHB0cl90KWZkX21zZzsKLSAKLSAJcmV0dXJuIG07Ci0gfQotQEAg LTE3MjksNyArMTczMCw3IEBAIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nv bm4gKl8sIGludCBtc2dfdHlwZSwKLSAKLSBhYWFfbWVzc2FnZSAqZG1fY3JlYXRlX21lc3NhZ2Uo YWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSkKLSB7Ci0tCXJldHVybiBfZG1fY3JlYXRlX21lc3Nh Z2UoXywgbXNnX3R5cGUsIDAsIDAsIE5VTEwpOwotKwlyZXR1cm4gX2RtX2NyZWF0ZV9tZXNzYWdl KF8sIG1zZ190eXBlLCAwLCAwLCAwKTsKLSB9Ci0gCi0gCi1AQCAtMjA4Miw3ICsyMDgzLDcgQEAg aW50IGRtX2FwaV9zZW5kX3JlcShkaWFtZXRlcl9jb25uICpjb25uLCBpbnQgYXBwX2lkLCBpbnQg Y21kX2NvZGUsIGNKU09OICpyZXEsIGQKLSAJCXJldHVybiAtMjsKLSAJfQotIAotLQlkbXNnID0g X2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCBhcHBfaWQsIGNtZF9jb2Rl LCBOVUxMKTsKLSsJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JF USwgYXBwX2lkLCBjbWRfY29kZSwgMCk7Ci0gCWlmICghZG1zZykgewotIAkJTE1fRVJSKCJvb21c biIpOwotIAkJcmV0dXJuIC0xOwotQEAgLTIxMTksNyArMjEyMCw3IEBAIGludCBkbV9hcGlfc2Vu ZF9yZXFfYXN5bmMoZGlhbWV0ZXJfY29ubiAqY29ubiwgaW50IGFwcF9pZCwgaW50IGNtZF9jb2Rl LCBjSlNPTiAqCi0gCQlyZXR1cm4gLTI7Ci0gCX0KLSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVz c2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgTlVMTCk7Ci0rCWRt c2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwgY21k X2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJCUxNX0VSUigib29tXG4iKTsKLSAJCXJldHVy biAtMTsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmggYi9tb2R1 bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKLWluZGV4IDJkZTI1ZDVmYS4uNjM2N2RmYTVkIDEw MDY0NAotLS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oCi0rKysgYi9tb2R1bGVz L2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKLUBAIC0yMyw2ICsyMyw3IEBACi0gCi0gI2luY2x1ZGUg Ii4uLy4uL2FhYS9hYWEuaCIKLSAjaW5jbHVkZSAiZGlhbWV0ZXJfYXBpLmgiCi0rI2luY2x1ZGUg PHN0ZGludC5oPgotIAotICNkZWZpbmUgX19GRF9DSEVDSyhfX2NhbGxfXywgX19yZXRva19fLCBf X3JldHZhbF9fKSBcCi0gCWRvIHsgXAotQEAgLTkwLDcgKzkxLDcgQEAgc3RydWN0IF9kbV9kaWN0 IHsKLSBzdHJ1Y3QgZG1fbWVzc2FnZSB7Ci0gCWFhYV9tZXNzYWdlICphbTsgLyogYmFjay1yZWZl cmVuY2UsIHVzZWZ1bCBkdXJpbmcgY2xlYW51cCAqLwotIAotLQl2b2lkICpmZF9yZXE7Ci0rCXVp bnRwdHJfdCBmZF9yZXE7Ci0gCXVuc2lnbmVkIGludCBhcHBfaWQ7ICAgLyogdGhlc2UgdHdvIGFy ZSB1c2VkIHdoZW4gc2VuZGluZyAqLwotIAl1bnNpZ25lZCBpbnQgY21kX2NvZGU7IC8qIGN1c3Rv bSBEaWFtZXRlciByZXF1ZXN0cyAqLwotIAlpbnQgZXJyb3JfYml0OwotQEAgLTE2Myw3ICsxNjQs NyBAQCBpbnQgZG1fcmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpOwotIGludCBkbV9maW5kKGFhYV9j b25uICpfLCBhYWFfbWFwICptYXAsIGludCBvcCk7Ci0gYWFhX21lc3NhZ2UgKmRtX2NyZWF0ZV9t ZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUpOwotIGFhYV9tZXNzYWdlICpfZG1fY3Jl YXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLS0gICAgICAgIHVuc2lnbmVk IGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdm9pZCAqZmRfcmVxKTsKLSsgICAg ICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdWludHB0cl90 IGZkX3JlcSk7Ci0gaW50IGRtX2F2cF9hZGQoYWFhX2Nvbm4gKl8sIGFhYV9tZXNzYWdlICptc2cs IGFhYV9tYXAgKmF2cCwgdm9pZCAqdmFsLAotICAgICAgICAgICAgICAgIGludCB2YWxfbGVuZ3Ro LCBpbnQgdmVuZG9yKTsKLSBpbnQgZG1fYnVpbGRfYXZwcyhzdHJ1Y3QgbGlzdF9oZWFkICpzdWJh dnBzLCBjSlNPTiAqYXJyYXkpOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2Rt X3BlZXIuYyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYwotaW5kZXggOWRiZmQxZDZj Li4wNmIxN2E4ODQgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9wZWVyLmMK LSsrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYwotQEAgLTI0LDYgKzI0LDcgQEAK LSAjaW5jbHVkZSAiLi4vLi4vc3JfbW9kdWxlLmgiCi0gI2luY2x1ZGUgIi4uLy4uL2xvY2tpbmcu aCIKLSAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLSsjaW5jbHVkZSA8c3RkaW50Lmg+Ci0g Ci0gI2luY2x1ZGUgImRtX2ltcGwuaCIKLSAjaW5jbHVkZSAiZG1fcGVlci5oIgotQEAgLTUxMSw3 ICs1MTIsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfY3VzdG9tX3JlcShzdHJ1Y3QgZG1fbWVzc2Fn ZSAqbXNnKQotIAotIGludCBkbV9zZW5kX2N1c3RvbV9ycGwoc3RydWN0IGRtX21lc3NhZ2UgKmRt KQotIHsKLS0Jc3RydWN0IG1zZyAqYW5zID0gKHN0cnVjdCBtc2cgKilkbS0+ZmRfcmVxOwotKwlz dHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKSh1aW50cHRyX3QpZG0tPmZkX3JlcTsKLSAJ aW50IHJjLCBmbGFncyA9IDA7Ci0gCi0gCWlmICghZG1fc2VydmVyX2F1dG9yZXBseV9lcnJvciAm JiBkbV9yZW1vdmVfdW5yZXBsaWVkX3JlcShhbnMpICE9IDApIHsKCmRpZmYgLS1naXQgYS9vcGVu c2lwcy0wMDExLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRz LW1vZHUucGF0Y2ggYi9vcGVuc2lwcy0wMDExLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2Fy bmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGU2MDQ3YTYuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAxMS1GaXgtQzkwLXN0eWxlLWRl Y2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzgxICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxs ZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDMxIEphbiAyMDI2IDE1OjExOjIwICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBDOTAtc3R5bGUgZGVjbGFyYXRpb24gd2FybmluZ3MgaW4g c25tcHN0YXRzIG1vZHVsZQotCi1CdWlsZCBmYWlscyB3aXRoIGAtV2Vycm9yPWRlY2xhcmF0aW9u LWFmdGVyLXN0YXRlbWVudGAgKGVuZm9yY2VkIGJ5Ci1uZXQtc25tcCBwa2ctY29uZmlnKSBkdWUg dG8gdmFyaWFibGVzIGRlY2xhcmVkIGFmdGVyIGV4ZWN1dGFibGUKLXN0YXRlbWVudHM6Ci0KLWBg YAotb3BlbnNlck9iamVjdHMuYzo2MTk6OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBk ZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50 XQotICA2MTkgfCAgICAgICAgIGludCBuZXdfdGhyZXNob2xkID0gKGludCkobG9uZykoaW50ICop dmFsOwotCi1vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jOjI0NDoxNzogZXJyb3I6IElTTyBDOTAg Zm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24t YWZ0ZXItc3RhdGVtZW50XQotICAyNDQgfCAgICAgICAgICAgICAgICAgY2hhciAqb3BlbkJyYWNl UG9zaXRpb24gICA9IHN0cmNocihidWZmZXIsICcoJyk7Ci0KLW9wZW5zZXJTSVBDb21tb25PYmpl Y3RzLmM6NDc1Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFu ZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KLSAgNDc1IHwgICAg ICAgICBjaGFyICpzdHJFbnRpdHlUeXBlID0gKGNoYXIgKil2YWw7Ci0KLW9wZW5zZXJTSVBDb250 YWN0VGFibGUuYzoyNjY6OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlv bnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQotICAyNjYg fCAgICAgICAgIHN0YXRpYyBjaGFyICpkZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNlciI7Ci0KLW9w ZW5zZXJTSVBDb250YWN0VGFibGUuYzozNjE6OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhl ZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVt ZW50XQotICAzNjEgfCAgICAgICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVz dC0+cmVxdWVzdHZiOwotYGBgCi0KLVRoZSBuZXQtc25tcCBsaWJyYXJ5J3MgcGtnLWNvbmZpZyBh ZGRzCi1gLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRgIHRvIENGTEFHUywgZW5m b3JjaW5nIEM5MC1zdHlsZQotZGVjbGFyYXRpb24gb3JkZXJpbmcgKGFsbCBkZWNsYXJhdGlvbnMg YmVmb3JlIHN0YXRlbWVudHMpLgotCi1XaGlsZSBPcGVuU0lQUyBhZGhlcmVzIHRvIHRoZSBDOTkg c3RhbmRhcmQgKHdoaWNoIGFsbG93cyBtaXhlZAotZGVjbGFyYXRpb25zIGFuZCBjb2RlKSwgdGhl IG5ldC1zbm1wIGxpYnJhcnkgY291bGQgcmVxdWlyZSBDOTAtc3R5bGUKLWRlY2xhcmF0aW9ucyBm b3IgbW9kdWxlcyB0aGF0IGxpbmsgYWdhaW5zdCBpdC4gRm9sbG93aW5nIHRoaXMgc3R5bGUKLWRv ZXNuJ3QgaHVydCBDOTkgY29tcGF0aWJpbGl0eSBhbmQgaW1wcm92ZXMgY29kZSBwb3J0YWJpbGl0 eS5gCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+ Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KLQot ZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMgYi9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jCi1pbmRleCAxODBiNjJkZGEuLjkwOWRiNGM4MCAx MDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKLSsrKyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKLUBAIC02MDUsNiArNjA1LDggQEAgaW50 IGhhbmRsZV9vcGVuc2VyRGlhbG9nTGltaXRNYWpvckFsYXJtKG5ldHNubXBfbWliX2hhbmRsZXIg KmhhbmRsZXIsCi0gc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3Qg dHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCi0gCWludCAqbmV3VmFsKQotIHsKLSsJaW50 IG5ld190aHJlc2hvbGQ7Ci0rCi0gCWlmICh2YWw9PTApIHsKLSAJCUxNX0VSUigiJXMgY2FsbGVk IHdpdGggYSBudWxsIHZhbHVlIVxuIiwgdmFyU3RyKTsKLSAJCXJldHVybiAtMTsKLUBAIC02MTYs NyArNjE4LDcgQEAgc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3Qg dHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0J aW50IG5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0rCW5ld190aHJlc2hv bGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0gCi0gCWlmIChuZXdfdGhyZXNob2xkIDwgLTEp IHsKLSAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYW4gaW52YWxpZCB0aHJlc2hvbGQ9JWQhXG4i LAotZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3Rz LmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jCi1pbmRleCBl MzdhYjZlZjIuLmYyZGRiYTVhNyAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBDb21tb25PYmplY3RzLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBD b21tb25PYmplY3RzLmMKLUBAIC0yMjUsNiArMjI1LDggQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQ U2VydmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotIAotIAlpbnQg ZWxhcHNlZFRpbWUgPSAwOwotIAljaGFyIGJ1ZmZlcltTTk1QR0VUX01BWF9CVUZGRVJdOwotKwlj aGFyICpvcGVuQnJhY2VQb3NpdGlvbiA9IE5VTEw7Ci0rCWNoYXIgKmNsb3NlZEJyYWNlUG9zaXRp b24gPSBOVUxMOwotIAotIAlGSUxFICp0aGVGaWxlID0gZm9wZW4oU05NUEdFVF9URU1QX0ZJTEUs ICJyIik7Ci0gCi1AQCAtMjQxLDggKzI0Myw4IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUFNlcnZp Y2VTdGFydFRpbWUobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKLSAKLSAJCS8qIEZpbmQg dGhlIHBvc2l0aW9ucyBvZiAnKCcgYW5kICcpJyBzbyB3ZSBjYW4gZXh0cmFjdCBvdXQgdGhlCi0g CQkgKiB0aW1ldGlja3MgdmFsdWUuICovCi0tCQljaGFyICpvcGVuQnJhY2VQb3NpdGlvbiAgID0g c3RyY2hyKGJ1ZmZlciwgJygnKTsKLS0JCWNoYXIgKmNsb3NlZEJyYWNlUG9zaXRpb24gPSBzdHJj aHIoYnVmZmVyLCAnKScpOwotKwkJb3BlbkJyYWNlUG9zaXRpb24gICA9IHN0cmNocihidWZmZXIs ICcoJyk7Ci0rCQljbG9zZWRCcmFjZVBvc2l0aW9uID0gc3RyY2hyKGJ1ZmZlciwgJyknKTsKLSAK LSAJCS8qIE1ha2Ugc3VyZSB0aGF0IGJvdGggdGhlICcoJyBhbmQgJyknIGV4aXN0IGluIHRoZSBm aWxlLCBhbmQKLSAJCSAqIHRoYXQgJygnIG9jY3VycyBlYXJsaWVyIHRoYW4gdGhlICcpJy4gIElm IGFsbCB0aGVzZQotQEAgLTQ2NCw2ICs0NjYsNyBAQCBpbnQgaGFuZGxlX29wZW5zZXJTSVBPdGhl cndpc2VEaXNjYXJkZWRNc2dzKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gICovCi0g aW50IGhhbmRsZVNpcEVudGl0eVR5cGUoIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCogdmFsKQotIHsK LSsJY2hhciAqc3RyRW50aXR5VHlwZSA9IE5VTEw7Ci0gCi0gCS8qIEJ5IGRlZmF1bHQgd2Ugc3Rh cnQgb2ZmIGFzICJvdGhlciIuICovCi0gCXN0YXRpYyBjaGFyIGZpcnN0VGltZSA9IDE7Ci1AQCAt NDcyLDcgKzQ3NSw3IEBAIGludCBoYW5kbGVTaXBFbnRpdHlUeXBlKCBtb2RwYXJhbV90IHR5cGUs IHZvaWQqIHZhbCkKLSAJCXJldHVybiAtMTsKLSAJfQotIAotLQljaGFyICpzdHJFbnRpdHlUeXBl ID0gKGNoYXIgKil2YWw7Ci0rCXN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZhbDsKLSAKLSAJLyog VGhpcyBpcyBvdXIgZmlyc3QgdGltZSB0aHJvdWdoIHRoaXMgZnVuY3Rpb24sIHNvIHdlIG5lZWQg dG8gY2hhbmdlCi0gCSAqIG9wZW5zZXJFbnRpdHlUeXBlIGZyb20gaXRzIGRlZmF1bHQgdG8gMCwg YWxsb3dpbmcgb3VyIGJpdG1hc2tzIGJlbG93Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3Rh dHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UENvbnRhY3RUYWJsZS5jCi1pbmRleCA3ZWRjMTIxMGMuLjAzNTg4MDI5YyAxMDA2NDQKLS0tLSBh L21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250YWN0VGFibGUuYwotKysrIGIvbW9kdWxl cy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jCi1AQCAtMjYxLDEwICsyNjEsMTAg QEAgdm9pZCBkZWxldGVDb250YWN0Um93KGludCB1c2VySW5kZXgsIGludCBjb250YWN0SW5kZXgp Ci0gICovCi0gdm9pZCBpbml0X29wZW5zZXJTSVBDb250YWN0VGFibGUodm9pZCkKLSB7Ci0tCWlu aXRpYWxpemVfdGFibGVfb3BlbnNlclNJUENvbnRhY3RUYWJsZSgpOwotLQotIAlzdGF0aWMgY2hh ciAqZGVmYXVsdFVzZXIgPSAiRGVmYXVsdFVzZXIiOwotIAotKwlpbml0aWFsaXplX3RhYmxlX29w ZW5zZXJTSVBDb250YWN0VGFibGUoKTsKLSsKLSAJY3JlYXRlQ29udGFjdFJvdygxLCAxLCBkZWZh dWx0VXNlciwgTlVMTCk7Ci0gfQotIAotQEAgLTM1NCwxNCArMzU0LDE2IEBAIGludCBvcGVuc2Vy U0lQQ29udGFjdFRhYmxlX2dldF92YWx1ZSgKLSAJY2hhciAgICAgICAqcmV0cmlldmVkRXhwaXJ5 OwotIAlzdHJ1Y3QgdG0gIHRpbWVWYWx1ZTsKLSAKLSsJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2 YXIgPSBOVUxMOwotKwlvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKmNvbnRleHQgPSBO VUxMOwotKwotIAkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUg aW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KLSAJICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQu IFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAqLwotIAljb25zdW1lSW50ZXJw cm9jZXNzQnVmZmVyKCk7Ci0gCi0tCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVz dC0+cmVxdWVzdHZiOwotKwl2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7Ci0gCi0tCW9wZW5zZXJT SVBDb250YWN0VGFibGVfY29udGV4dCAqY29udGV4dCA9Ci0tCQkob3BlbnNlclNJUENvbnRhY3RU YWJsZV9jb250ZXh0ICopaXRlbTsKLSsJY29udGV4dCA9IChvcGVuc2VyU0lQQ29udGFjdFRhYmxl X2NvbnRleHQgKilpdGVtOwotIAotIAlzd2l0Y2godGFibGVfaW5mby0+Y29sbnVtKQotIAl7Ci1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jIGIvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jCi1pbmRleCBhMTA3NTgyNzMuLjNh MDNiNzJiMiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFi bGUuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jCi1AQCAt MTA0LDE5ICsxMDQsMTcgQEAgb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpnZXRSb3coaW50 IGlwVHlwZSwgdW5zaWduZWQgaW50ICppcEFkZHJlc3MpCi0gewotIAlpbnQgbGVuZ3RoT2ZPSUQ7 Ci0gCW9pZCAqY3VycmVudE9JREluZGV4ID0gY3JlYXRlSW5kZXgoaXBUeXBlLCBpcEFkZHJlc3Ms ICZsZW5ndGhPZk9JRCk7Ci0rCW5ldHNubXBfaW5kZXggdGhlSW5kZXg7Ci0rCW9wZW5zZXJTSVBQ b3J0VGFibGVfY29udGV4dCAqcm93VG9SZXR1cm4gPSBOVUxMOwotIAotIAlpZiAoY3VycmVudE9J REluZGV4ID09IE5VTEwpCi0gCXsKLSAJCXJldHVybiBOVUxMOwotIAl9Ci0gCi0tCW5ldHNubXBf aW5kZXggdGhlSW5kZXg7Ci0tCi0gCXRoZUluZGV4Lm9pZHMgPSBjdXJyZW50T0lESW5kZXg7Ci0g CXRoZUluZGV4LmxlbiAgPSBsZW5ndGhPZk9JRDsKLSAKLS0Jb3BlbnNlclNJUFBvcnRUYWJsZV9j b250ZXh0ICpyb3dUb1JldHVybjsKLS0KLSAJLyogTGV0cyBjaGVjayB0byBzZWUgaWYgdGhlcmUg aXMgYW4gZXhpc3Rpbmcgcm93LiAqLwotIAlyb3dUb1JldHVybiA9IENPTlRBSU5FUl9GSU5EKGNi LmNvbnRhaW5lciwgJnRoZUluZGV4KTsKLSAKLUBAIC0yMTgsOCArMjE2LDYgQEAgdm9pZCBpbml0 X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKLSB7Ci0gCWludCBjdXJTTk1QSW5kZXggPSAwOwot IAotLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKLS0KLSAJdW5zaWdu ZWQgaW50ICpVRFBMaXN0ID0gTlVMTDsKLSAJdW5zaWduZWQgaW50ICpUQ1BMaXN0ID0gTlVMTDsK LSAJdW5zaWduZWQgaW50ICpUTFNMaXN0ID0gTlVMTDsKLUBAIC0yMjgsNiArMjI0LDggQEAgdm9p ZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKLSAJaW50IG51bVRDUFNvY2tldHM7Ci0g CWludCBudW1UTFNTb2NrZXRzOwotIAotKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQb3J0 VGFibGUoKTsKLSsKLSAJLyogUmV0cmlldmUgdGhlIGxpc3Qgb2YgdGhlIG51bWJlciBvZiBVRFAg YW5kIFRDUCBzb2NrZXRzLiAqLwotIAludW1VRFBTb2NrZXRzID0gZ2V0X3NvY2tldF9saXN0X2Zy b21fcHJvdG8oJlVEUExpc3QsIFBST1RPX1VEUCk7Ci0gCW51bVRDUFNvY2tldHMgPSBnZXRfc29j a2V0X2xpc3RfZnJvbV9wcm90bygmVENQTGlzdCwgUFJPVE9fVENQKTsKLWRpZmYgLS1naXQgYS9t b2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMgYi9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKLWluZGV4IDMyNGRmNjE4 Zi4uYTU0YjU4Mzc1IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJl Z1VzZXJMb29rdXBUYWJsZS5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVn VXNlckxvb2t1cFRhYmxlLmMKLUBAIC01MTQsMjMgKzUxNCwyMCBAQCB2b2lkIG9wZW5zZXJTSVBS ZWdVc2VyTG9va3VwVGFibGVfc2V0X3Jlc2VydmUyKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJn ICkKLSAgKi8KLSB2b2lkIG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfc2V0X2FjdGlvbigg bmV0c25tcF9yZXF1ZXN0X2dyb3VwICpyZyApCi0gewotLQkvKiBGaXJzdCB0aGluZ3MgZmlyc3Qs IHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KLS0JICogY2Fz ZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBk YXRhLiAqLwotLQljb25zdW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7Ci0tCi0gCWFvclRvSW5kZXhT dHJ1Y3RfdCAqaGFzaFJlY29yZDsKLS0KLSAJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXI7Ci0r CW5ldHNubXBfcmVxdWVzdF9ncm91cF9pdGVtICpjdXJyZW50OwotKwlpbnQgcm93X2VyciA9IDA7 Ci0rCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqcm93X2N0eCA9IE5VTEw7 Ci0rCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqdW5kb19jdHggPSBOVUxM OwotIAotLQlvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKnJvd19jdHggPQot LQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT5leGlzdGluZ19y b3c7Ci0tCi0tCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqdW5kb19jdHgg PQotLQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT51bmRvX2lu Zm87Ci0rCS8qIEZpcnN0IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRl cnByb2Nlc3MgYnVmZmVyLCBpbgotKwkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ug d2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0IGRhdGEuICovCi0rCWNvbnN1bWVJbnRlcnByb2Nl c3NCdWZmZXIoKTsKLSAKLS0JbmV0c25tcF9yZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7Ci0r CXJvd19jdHggPSAob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4 aXN0aW5nX3JvdzsKLSAKLS0JaW50CQkJcm93X2VyciA9IDA7Ci0rCXVuZG9fY3R4ID0gKG9wZW5z ZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT51bmRvX2luZm87Ci0gCi0gCS8q IENvcHkgdGhlIGFjdHVhbCBkYXRhIHRvIHRoZSByb3cuICovCi0gCWZvciggY3VycmVudCA9IHJn LT5saXN0OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dCApIHsKLWRpZmYgLS1naXQg YS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMgYi9tb2R1bGVzL3Nu bXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMKLWluZGV4IDQzYjE0Y2RlYi4uOWNmMDI5 ZGY5IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJUYWJs ZS5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMKLUBA IC0yMjUsMTUgKzIyNSwxNCBAQCB2b2lkIHVwZGF0ZVVzZXIoY2hhciAqdXNlck5hbWUpCi0gICog UmV0dXJuczogVGhlIHJvd3MgdXNlckluZGV4IG9uIHN1Y2Nlc3MsIGFuZCAwIG90aGVyd2lzZS4g Ki8KLSBpbnQgY3JlYXRlUmVnVXNlclJvdyhjaGFyICpzdHJpbmdUb1JlZ2lzdGVyKQotIHsKLS0J aW50IHN0YXRpYyBpbmRleCA9IDA7Ci0tCi0tCWluZGV4Kys7Ci0tCi0gCW9wZW5zZXJTSVBSZWdV c2VyVGFibGVfY29udGV4dCAqdGhlUm93OwotLQotIAlvaWQgICpPSURJbmRleDsKLSAJaW50ICBz dHJpbmdMZW5ndGg7Ci0gCi0rCWludCBzdGF0aWMgaW5kZXggPSAwOwotKwotKwlpbmRleCsrOwot KwotIAl0aGVSb3cgPSBTTk1QX01BTExPQ19UWVBFREVGKG9wZW5zZXJTSVBSZWdVc2VyVGFibGVf Y29udGV4dCk7Ci0gCi0gCWlmICh0aGVSb3cgPT0gTlVMTCkgewotQEAgLTI4MCwxMiArMjc5LDEy IEBAIGludCBjcmVhdGVSZWdVc2VyUm93KGNoYXIgKnN0cmluZ1RvUmVnaXN0ZXIpCi0gLyogSW5p dGlhbGl6ZXMgdGhlIG9wZW5zZXJTSVBSZWdVc2VyVGFibGUgbW9kdWxlLiAgKi8KLSB2b2lkIGlu aXRfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSh2b2lkKQotIHsKLS0JLyogUmVnaXN0ZXIgdGhpcyB0 YWJsZSB3aXRoIHRoZSBtYXN0ZXIgYWdlbnQgKi8KLS0JaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2Vy U0lQUmVnVXNlclRhYmxlKCk7Ci0tCi0gCS8qIFdlIG5lZWQgdG8gY3JlYXRlIGEgZGVmYXVsdCBy b3csIHNvIGNyZWF0ZSBEZWZhdWx0VXNlciAqLwotIAlzdGF0aWMgY2hhciAqZGVmYXVsdFVzZXIg PSAiRGVmYXVsdFVzZXIiOwotIAotKwkvKiBSZWdpc3RlciB0aGlzIHRhYmxlIHdpdGggdGhlIG1h c3RlciBhZ2VudCAqLwotKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBSZWdVc2VyVGFibGUo KTsKLSsKLSAJY3JlYXRlUmVnVXNlclJvdyhkZWZhdWx0VXNlcik7Ci0gfQotIAotQEAgLTM1MCwx NCArMzQ5LDE2IEBAIGludCBvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2dldF92YWx1ZSgKLSAJCW5l dHNubXBfaW5kZXggKml0ZW0sCi0gCQluZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mbyAqdGFibGVf aW5mbyApCi0gewotKwluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IE5VTEw7Ci0rCW9wZW5z ZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqY29udGV4dCA9IE5VTEw7Ci0rCi0gCS8qIEZpcnN0 IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVy LCBpbgotIAkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4g dGhlIGZyZXNoZXN0IGRhdGEuICovCi0gCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKLSAK LS0JbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7Ci0rCXZh ciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKLSAKLS0Jb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250 ZXh0ICpjb250ZXh0ID0KLS0JCShvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKilpdGVt OwotKwljb250ZXh0ID0gKG9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqKWl0ZW07Ci0g Ci0gCXN3aXRjaCh0YWJsZV9pbmZvLT5jb2xudW0pCi0gCXsKLWRpZmYgLS1naXQgYS9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3Rh dHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYwotaW5kZXggMmIzOTZjNjk4Li43OWYzYTEy OWEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNU YWJsZS5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJs ZS5jCi1AQCAtMzEwLDYgKzMxMCw3IEBAIGludCBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9j YW5fZGVsZXRlKAotIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NvbnRleHQgKgotIG9wZW5z ZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0ZV9yb3coIG5ldHNubXBfaW5kZXgqIGhkcikKLSB7 Ci0rCWludCBjb2RlSW5kZXg7Ci0gCXN0YXRfdmFyICppbl9zdGF0dXNfY29kZTsKLSAJc3RhdF92 YXIgKm91dF9zdGF0dXNfY29kZTsKLSAKLUBAIC0zMzcsNyArMzM4LDcgQEAgb3BlbnNlclNJUFN0 YXR1c0NvZGVzVGFibGVfY3JlYXRlX3JvdyggbmV0c25tcF9pbmRleCogaGRyKQotIAkvKiBSZXRy aWV2ZSB0aGUgaW5kZXggZm9yIHRoZSBzdGF0dXMgY29kZSwgYW5kIHRoZW4gYXNzaWduIHRoZSBz dGFydGluZwotIAkgKiB2YWx1ZXMuICBUaGUgc3RhcnRpbmcgdmFsdWVzIHdpbGwgYmUgdXNlZCB0 byBjYWxjdWxhdGUgZGVsdGFzIGR1cmluZwotIAkgKiB0aGUgbmV4dCBzbm1wZ2V0L3NubXB3YWxr L3NubXB0YWJsZS9ldGMuICovCi0tCWludCBjb2RlSW5kZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0 dXNDb2RlVmFsdWU7Ci0rCWNvZGVJbmRleCA9IGN0eC0+b3BlbnNlclNJUFN0YXR1c0NvZGVWYWx1 ZTsKLSAKLSAJY3R4LT5zdGFydGluZ0luU3RhdHVzQ29kZVZhbHVlICA9IDA7Ci0gCWN0eC0+c3Rh cnRpbmdPdXRTdGF0dXNDb2RlVmFsdWUgPSAwOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0 YXRzL3NubXBzdGF0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKLWluZGV4IDk1 YmMxYzFmMy4uNTc1YzBkMTA2IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0 YXRzLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCi1AQCAtMzQ2LDcgKzM0 NiwxMiBAQCBzdGF0aWMgdm9pZCBzaWdjaGxkX2hhbmRsZXIoaW50IHNpZ25hbCkKLSAgKi8KLSBz dGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQotIHsKLSsJcGlkX3QgcmVzdWx0 X3BpZDsKLSsJaW50IHNubXBnZXRfZmQ7Ci0rCWludCBsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVu Z3RoOwotKwlpbnQgc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGg7Ci0gCXN0cnVjdCBzaWdhY3Rp b24gbmV3X3NpZ2NobGRfaGFuZGxlcjsKLSsJY2hhciAqYXJnc1s2XTsKLSAKLSAJY2hhciAqbG9j YWxfcGF0aF90b19zbm1wZ2V0ID0gIi91c3IvYmluLyI7Ci0gCWNoYXIgKnNubXBnZXRfYmluYXJ5 X25hbWUgICA9ICIvc25tcGdldCI7Ci1AQCAtMzYyLDcgKzM2Nyw3IEBAIHN0YXRpYyBpbnQgc3Bh d25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCi0gCW5ld19zaWdjaGxkX2hhbmRsZXIuc2FfaGFuZGxl ciA9IHNpZ2NobGRfaGFuZGxlcjsKLSAJc2lnYWN0aW9uKFNJR0NITEQsICZuZXdfc2lnY2hsZF9o YW5kbGVyLCAmb2xkX3NpZ2NobGRfaGFuZGxlcik7Ci0gCi0tCXBpZF90IHJlc3VsdF9waWQgPSBm b3JrKCk7Ci0rCXJlc3VsdF9waWQgPSBmb3JrKCk7Ci0gCi0gCWlmIChyZXN1bHRfcGlkIDwgMCkg ewotIAkJTE1fRVJSKCJmYWlsZWQgdG8gbm90IHNwYXduIGFuIGFnZW50IHRvIGNoZWNrIHN5c1Vw VGltZVxuIik7Ci1AQCAtMzgwLDcgKzM4NSw3IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1l X2NoaWxkKHZvaWQpCi0gCi0gCS8qIElmIHdlIGFyZSBoZXJlLCB0aGVuIHdlIGFyZSB0aGUgY2hp bGQgcHJvY2Vzcy4gIExldHMgc2V0IHVwIHRoZSBmaWxlCi0gCSAqIGRlc2NyaXB0b3JzIHNvIHdl IGNhbiBjYXB0dXJlIHRoZSBvdXRwdXQgb2Ygc25tcGdldC4gKi8KLS0JaW50IHNubXBnZXRfZmQg PQotKwlzbm1wZ2V0X2ZkID0KLSAJCW9wZW4oU05NUEdFVF9URU1QX0ZJTEUsIE9fQ1JFQVR8T19U UlVOQ3xPX1JEV1IsCi0gCQkJCVNfSVJVU1J8U19JV1VTUnxTX0lSR1JQfFNfSVJPVEgpOwotIAot QEAgLTQwMSw4ICs0MDYsMTIgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9p ZCkKLSAJCQkJIiAgRGVmYXVsdGluZyB0byAlc1xuIiwJc25tcF9jb21tdW5pdHlfc3RyaW5nKTsK LSAJfQotIAotLQljaGFyICphcmdzW10gPSB7Ii1PdiIsICItYyIsICBzbm1wX2NvbW11bml0eV9z dHJpbmcsICJsb2NhbGhvc3QiLAotLQkJU1lTVVBUSU1FX09JRCwgKGNoYXIgKikgMH07Ci0rCWFy Z3NbMF0gPSAiLU92IjsKLSsJYXJnc1sxXSA9ICItYyI7Ci0rCWFyZ3NbMl0gPSBzbm1wX2NvbW11 bml0eV9zdHJpbmc7Ci0rCWFyZ3NbM10gPSAibG9jYWxob3N0IjsKLSsJYXJnc1s0XSA9IFNZU1VQ VElNRV9PSUQ7Ci0rCWFyZ3NbNV0gPSAoY2hhciAqKTA7Ci0gCi0gCS8qIE1ha2Ugc3VyZSB3ZSBo YXZlIGEgcGF0aCB0byBzbm1wZ2V0LCBzbyB3ZSBjYW4gcmV0cmlldmUgdGhlCi0gCSAqIHN5c1Vw VGltZS4gKi8KLUBAIC00MTYsOCArNDI1LDggQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVf Y2hpbGQodm9pZCkKLSAJCWxvY2FsX3BhdGhfdG9fc25tcGdldCA9IHNubXBnZXRfcGF0aDsKLSAJ fQotIAotLQlpbnQgbG9jYWxfcGF0aF90b19zbm1wZ2V0X2xlbmd0aCA9IHN0cmxlbihsb2NhbF9w YXRoX3RvX3NubXBnZXQpOwotLQlpbnQgc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGggICA9IHN0 cmxlbihzbm1wZ2V0X2JpbmFyeV9uYW1lKTsKLSsJbG9jYWxfcGF0aF90b19zbm1wZ2V0X2xlbmd0 aCA9IHN0cmxlbihsb2NhbF9wYXRoX3RvX3NubXBnZXQpOwotKwlzbm1wZ2V0X2JpbmFyeV9uYW1l X2xlbmd0aCAgID0gc3RybGVuKHNubXBnZXRfYmluYXJ5X25hbWUpOwotIAotIAkvKiBBbGxvY2F0 ZSBlbm91Z2ggbWVtb3J5IHRvIGhvbGQgdGhlIHBhdGgsIHRoZSBiaW5hcnkgbmFtZSwgYW5kIHRo ZQotIAkgKiBudWxsIGNoYXJhY3Rlci4gIFdlIGRvbid0IHVzZSBwa2dfbWVtb3J5IGhlcmUuICov Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMgYi9tb2R1bGVzL3Nu bXBzdGF0cy91dGlsaXRpZXMuYwotaW5kZXggZGZjMDk3OGI3Li4yZjdlZDlhMzAgMTAwNjQ0Ci0t LS0gYS9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYwotKysrIGIvbW9kdWxlcy9zbm1wc3Rh dHMvdXRpbGl0aWVzLmMKLUBAIC03MiwxMyArNzIsMTMgQEAgaW50IHN0cmluZ0hhbmRsZXJTYW5p dHlDaGVjayggbW9kcGFyYW1fdCB0eXBlLCB2b2lkICp2YWwsIGNoYXIgKnBhcmFtZXRlck5hbWUp Ci0gaW50IGdldF9zdGF0aXN0aWMoY2hhciAqc3RhdE5hbWUpCi0gewotIAlpbnQgcmVzdWx0ID0g MDsKLS0KLSsJc3RhdF92YXIgKnRoZVZhciA9IE5VTEw7Ci0gCXN0ciB0aGVTdHI7Ci0gCi0gCXRo ZVN0ci5zICAgPSBzdGF0TmFtZTsKLSAJdGhlU3RyLmxlbiA9IHN0cmxlbihzdGF0TmFtZSk7Ci0g Ci0tCXN0YXRfdmFyICp0aGVWYXIgPSBnZXRfc3RhdCgmdGhlU3RyKTsKLSsJdGhlVmFyID0gZ2V0 X3N0YXQoJnRoZVN0cik7Ci0gCi0gCWlmICh0aGVWYXI9PTApIHsKLSAJCUxNX0lORk8oImZhaWxl ZCB0byByZXRyaWV2ZSBzdGF0aXN0aWNzIGZvciAlc1xuIiwgc3RhdE5hbWUpOwoKZGlmZiAtLWdp dCBhL29wZW5zaXBzLTAwMTItc3VwcG9ydC1mb3ItbGlibW9uZ2MtbGliYnNvbi12ZXJzaW9uLTIu cGF0Y2ggYi9vcGVuc2lwcy0wMDEyLXN1cHBvcnQtZm9yLWxpYm1vbmdjLWxpYmJzb24tdmVyc2lv bi0yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjE2NWM2Li4wMDAwMDAw Ci0tLSBhL29wZW5zaXBzLTAwMTItc3VwcG9ydC1mb3ItbGlibW9uZ2MtbGliYnNvbi12ZXJzaW9u LTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBSZW1pIENvbGxldCA8cmVtaUByZW1pcmVwby5uZXQ+Ci1EYXRlOiBUaHUsIDE5IEZlYiAy MDI2IDEyOjQ2OjI4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHN1cHBvcnQgZm9yIGxpYm1vbmdj L2xpYmJzb24gdmVyc2lvbiAyCi0KLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY2FjaGVkYl9tb25n b2RiL01ha2VmaWxlIGIvbW9kdWxlcy9jYWNoZWRiX21vbmdvZGIvTWFrZWZpbGUKLWluZGV4IGNk MWFhZmMwYi4uZTM2MTUwNWEzIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jYWNoZWRiX21vbmdvZGIv TWFrZWZpbGUKLSsrKyBiL21vZHVsZXMvY2FjaGVkYl9tb25nb2RiL01ha2VmaWxlCi1AQCAtMTAs NyArMTAsOSBAQCBOQU1FPWNhY2hlZGJfbW9uZ29kYi5zbwotIGluY2x1ZGUgLi4vLi4vbGliL2pz b24vTWFrZWZpbGUuanNvbgotIGlmZXEgKCQoQ1JPU1NfQ09NUElMRSksKQotIE1PTkdPQ19CVUlM REVSIDo9ICQoc2hlbGwgXAotLQlpZiBwa2ctY29uZmlnIC0tZXhpc3RzIGxpYm1vbmdvYy0xLjA7 IHRoZW4gXAotKwlpZiBwa2ctY29uZmlnIC0tZXhpc3RzIG1vbmdvYzI7IHRoZW4gXAotKwkJZWNo byAncGtnLWNvbmZpZyBtb25nb2MyJzsgXAotKwllbGlmIHBrZy1jb25maWcgLS1leGlzdHMgbGli bW9uZ29jLTEuMDsgdGhlbiBcCi0gCQllY2hvICdwa2ctY29uZmlnIGxpYm1vbmdvYy0xLjAnOyBc Ci0gCWZpKQotIGVuZGlmCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jYWNoZWRiX21vbmdvZGIvY2Fj aGVkYl9tb25nb2RiX2RiYXNlLmggYi9tb2R1bGVzL2NhY2hlZGJfbW9uZ29kYi9jYWNoZWRiX21v bmdvZGJfZGJhc2UuaAotaW5kZXggY2JlNDg1NTU2Li4wZWFmNzY2NjcgMTAwNjQ0Ci0tLS0gYS9t b2R1bGVzL2NhY2hlZGJfbW9uZ29kYi9jYWNoZWRiX21vbmdvZGJfZGJhc2UuaAotKysrIGIvbW9k dWxlcy9jYWNoZWRiX21vbmdvZGIvY2FjaGVkYl9tb25nb2RiX2RiYXNlLmgKLUBAIC0yNyw4ICsy Nyw4IEBACi0gCi0gI2RlZmluZSBNT05HT19IQVZFX1NURElOVCAxCi0gCi0tI2luY2x1ZGUgPG1v bmdvYy5oPgotLSNpbmNsdWRlIDxic29uLmg+Ci0rI2luY2x1ZGUgPG1vbmdvYy9tb25nb2MuaD4K LSsjaW5jbHVkZSA8YnNvbi9ic29uLmg+Ci0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotZGlm ZiAtLWdpdCBhL21vZHVsZXMvY2FjaGVkYl9tb25nb2RiL2NhY2hlZGJfbW9uZ29kYl9qc29uLmgg Yi9tb2R1bGVzL2NhY2hlZGJfbW9uZ29kYi9jYWNoZWRiX21vbmdvZGJfanNvbi5oCi1pbmRleCBm M2JjYmQ5YmIuLjg1YmJiYWI4ZCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY2FjaGVkYl9tb25nb2Ri L2NhY2hlZGJfbW9uZ29kYl9qc29uLmgKLSsrKyBiL21vZHVsZXMvY2FjaGVkYl9tb25nb2RiL2Nh Y2hlZGJfbW9uZ29kYl9qc29uLmgKLUBAIC0yMyw3ICsyMyw3IEBACi0gCi0gI2luY2x1ZGUgImNh Y2hlZGJfbW9uZ29kYl9kYmFzZS5oIgotIAotLSNpbmNsdWRlIDxic29uLmg+Ci0rI2luY2x1ZGUg PGJzb24vYnNvbi5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSBpbnQganNvbl90b19ic29u KGNoYXIgKmpzb24sYnNvbl90ICpiYik7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAxMy1yZXF1 aXJlLWxpYnBjcmUyLnBhdGNoIGIvb3BlbnNpcHMtMDAxMy1yZXF1aXJlLWxpYnBjcmUyLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmNiN2YwLi4wMDAwMDAwCi0tLSBhL29w ZW5zaXBzLTAwMTMtcmVxdWlyZS1saWJwY3JlMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3 MCArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGV2ZSBBeXJlIDxzdGV2ZW4uYXlyZUBk dWJiZXIubmV0PgotRGF0ZTogV2VkLCAxNyBTZXAgMjAyNSAxOToyMDo0NyArMDEwMAotU3ViamVj dDogW1BBVENIXSByZXF1aXJlIGxpYnBjcmUyCi0KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDFjYjE2ZTA4MmU5YmExY2Q2M2YwNDk5NmVlY2Q3NTYzMjY4MmRmN2MpCi0KLWRpZmYgLS1naXQg YS8ubGd0bS55bWwgYi8ubGd0bS55bWwKLWluZGV4IDdkNTg0Yzc3Mi4uNjQyMzU5NjZmIDEwMDY0 NAotLS0tIGEvLmxndG0ueW1sCi0rKysgYi8ubGd0bS55bWwKLUBAIC0yMiw3ICsyMiw3IEBAIGV4 dHJhY3Rpb246Ci0gICAgICAgICAtIGxpYmxkYXAyLWRldgotICAgICAgICAgLSBsaWJjdXJsNC1n bnV0bHMtZGV2Ci0gICAgICAgICAtIGxpYmdlb2lwLWRldgotLSAgICAgICAgLSBsaWJwY3JlMy1k ZXYKLSsgICAgICAgIC0gbGlicGNyZTItZGV2Ci0gICAgICAgICAtIGxpYm1lbWNhY2hlZC1kZXYK LSAgICAgICAgIC0gbGlibWljcm9odHRwZC1kZXYKLSAgICAgICAgIC0gbGlicmFiYml0bXEtZGV2 Ci1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUuY29uZi50ZW1wbGF0ZSBiL01ha2VmaWxlLmNvbmYudGVt cGxhdGUKLWluZGV4IGVkN2JjMjU3YS4uYTBjOGFhOWFlIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUu Y29uZi50ZW1wbGF0ZQotKysrIGIvTWFrZWZpbGUuY29uZi50ZW1wbGF0ZQotQEAgLTE5LDEzICsx OSwxMyBAQAotICNkYl9wb3N0Z3Jlcz0gUHJvdmlkZXMgUG9zdGdyZXMgY29ubmVjdGl2aXR5IGZv ciBPcGVuU0lQUyB8IFBvc3RncmVTUUwgbGlicmFyeSBhbmQgZGV2ZWxvcG1lbnQgbGlicmFyeSAt IHR5cGljYWxseSBsaWJwcTUgYW5kIGxpYnBxLWRldgotICNkYl9zcWxpdGU9IFByb3ZpZGVzIFNR TGl0ZSBjb25uZWN0aXZpdHkgZm9yIE9wZW5TSVBTIHwgU1FMaXRlIGxpYnJhcnkgYW5kIGRldmVs b3BtZW50IGxpYnJhcnkgLSB0eXBpY2FsbHkgbGlic3FsaXRlMyBhbmQgbGlic3FsaXRlMy1kZXYK LSAjZGJfdW5peG9kYmM9IEFsbG93cyB0byB1c2UgdGhlIHVuaXhvZGJjIHBhY2thZ2Ugd2l0aCBP cGVuU0lQUyB8IE9EQkMgbGlicmFyeSBhbmQgT0RCQyBkZXZlbG9wbWVudCBsaWJyYXJ5Ci0tI2Rp YWxwbGFuPSBJbXBsZW1lbnRzIGdlbmVyaWMgc3RyaW5nIHRyYW5zbGF0aW9ucyBiYXNlZCBvbiBt YXRjaGluZyBhbmQgcmVwbGFjZW1lbnQgcnVsZXMgfCBQQ1JFIGRldmVsb3BtZW50IGxpYnJhcnks IHR5cGljYWxseSBsaWJwY3JlLWRldgotKyNkaWFscGxhbj0gSW1wbGVtZW50cyBnZW5lcmljIHN0 cmluZyB0cmFuc2xhdGlvbnMgYmFzZWQgb24gbWF0Y2hpbmcgYW5kIHJlcGxhY2VtZW50IHJ1bGVz IHwgUENSRSBkZXZlbG9wbWVudCBsaWJyYXJ5LCB0eXBpY2FsbHkgbGlicGNyZTItZGV2Ci0gI2Vt ZXJnZW5jeT0gUHJvdmlkZXMgZW1lcmdlbmN5IGNhbGwgdHJlYXRtZW50IGZvciBPcGVuU0lQUyB8 IENVUkwgZGV2IGxpYnJhcnkgLSB0eXBpY2FsbHkgbGliY3VybDQtb3BlbnNzbC1kZXYKLSAjZXZl bnRfcmFiYml0bXE9IFByb3ZpZGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhIFJhYmJpdE1RIGNs aWVudCBmb3IgdGhlIEV2ZW50IEludGVyZmFjZSB8IFJhYmJpdE1RIGRldmVsb3BtZW50IGxpYnJh cnksIGxpYnJhYmJpdG1xLWRldgotICNldmVudF9zcXM9IFByb3ZpZGVzIHRoZSBpbXBsZW1lbnRh dGlvbiBvZiBhIEFtYXpvbiBTUVMgY2xpZW50IGZvciB0aGUgRXZlbnQgSW50ZXJmYWNlIHwgQVdT IFNESyBDKyssIGF3cy1zZGstY3BwCi0gI2V2ZW50X2thZmthPSBQcm92aWRlcyB0aGUgaW1wbGVt ZW50YXRpb24gb2YgYW4gQXBhY2hlIEthZmthIHByb2R1Y2VyIGZvciB0aGUgRXZlbnQgSW50ZXJm YWNlIHwgS2Fma2EgZGV2ZWxvcG1lbnQgbGlicmFyeSwgbGlicmRrYWZrYS1kZXYKLSAjaDM1MD0g RW5hYmxlcyBhY2Nlc3MgdG8gU0lQIGFjY291bnQgZGF0YSBzdG9yZWQgaW4gYW4gTERBUCBbUkZD NDUxMF0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgSC4zNTAgY29tbU9iamVjdHMgfCBPcGVuTERBUCBs aWJyYXJ5ICYgZGV2ZWxvcG1lbnQgZmlsZXMsIHR5cGljYWxseSBsaWJsZGFwIGFuZCBsaWJsZGFw LWRldgotLSNyZWdleD0gT2ZmZXJzIG1hdGNoaW5nIG9wZXJhdGlvbnMgYWdhaW5zdCByZWd1bGFy IGV4cHJlc3Npb25zIHVzaW5nIHRoZSBwb3dlcmZ1bCBQQ1JFIGxpYnJhcnkuIHwgRGV2ZWxvcG1l bnQgbGlicmFyeSBmb3IgUENSRSwgdHlwaWNhbGx5IGxpYnBjcmUtZGV2Ci0rI3JlZ2V4PSBPZmZl cnMgbWF0Y2hpbmcgb3BlcmF0aW9ucyBhZ2FpbnN0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNpbmcg dGhlIHBvd2VyZnVsIFBDUkUgbGlicmFyeS4gfCBEZXZlbG9wbWVudCBsaWJyYXJ5IGZvciBQQ1JF LCB0eXBpY2FsbHkgbGlicGNyZTItZGV2Ci0gI2lkZW50aXR5PSBBZGRzIHN1cHBvcnQgZm9yIFNJ UCBJZGVudGl0eSAoc2VlIFJGQyA0NDc0KS4gfCBTU0wgbGlicmFyeSwgdHlwaWNhbGx5IGxpYnNz bAotICNqYWJiZXI9IEludGVncmF0ZXMgWE9ERSBYTUwgcGFyc2VyIGZvciBwYXJzaW5nIEphYmJl ciBtZXNzYWdlcyB8IEV4cGF0IGxpYnJhcnkuCi0gI2pzb249IEludHJvZHVjZXMgYSBuZXcgdHlw ZSBvZiB2YXJpYWJsZSB0aGF0IHByb3ZpZGVzIGJvdGggc2VyaWFsaXphdGlvbiBhbmQgZGUtc2Vy aWFsaXphdGlvbiBmcm9tIEpTT04gZm9ybWF0LiB8IEpTT04gbGlicmFyeSwgbGlianNvbgotZGlm ZiAtLWdpdCBhL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uaCBiL21vZHVsZXMvZGlhbHBsYW4v ZGlhbHBsYW4uaAotaW5kZXggOTU0MzU5YTdhLi5jNGFmOTQzNWYgMTAwNjQ0Ci0tLS0gYS9tb2R1 bGVzL2RpYWxwbGFuL2RpYWxwbGFuLmgKLSsrKyBiL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4u aAotQEAgLTMxLDcgKzMxLDggQEAKLSAKLSAjaW5jbHVkZSAiLi4vLi4vZGIvZGIuaCIKLSAjaW5j bHVkZSAiLi4vLi4vcmUuaCIKLS0jaW5jbHVkZSA8cGNyZS5oPgotKyNkZWZpbmUgUENSRTJfQ09E RV9VTklUX1dJRFRIIDgKLSsjaW5jbHVkZSA8cGNyZTIuaD4KLSAKLSAjZGVmaW5lIFJFR0VYX09Q CTEKLSAjZGVmaW5lIEVRVUFMX09QCTAKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3JlZ2V4L3JlZ2V4 X21vZC5jIGIvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYwotaW5kZXggNTlkNWE2NzI0Li5kMWE5 MTQ0OWMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3JlZ2V4L3JlZ2V4X21vZC5jCi0rKysgYi9tb2R1 bGVzL3JlZ2V4L3JlZ2V4X21vZC5jCi1AQCAtMjQsNiArMjQsNyBAQAotICAqICAyMDA5LTAxLTE0 ICBpbml0aWFsIHZlcnNpb24gKEnDsWFraSBCYXogQ2FzdGlsbG8pCi0gICogIDIwMjMtMDgtMTIg IGV4cG9ydCBwY3Jlc19tYXRjaCB0byBNSSAoRmFiaWVuIEF1bmF5KQotICAqICAyMDIzLTA4LTEy ICBleHBvcnQgcGNyZXNfbWF0Y2hfZ3JvdXAgdG8gTUkgKEZhYmllbiBBdW5heSkKLSsgKiAgMjAy NS0wOS0xNyAgc3dpdGNoIHRvIGxpYnBjcmUyIChTdGV2ZW4gQXlyZSkKLSAgKi8KLSAKLSAKLUBA IC0zOSw3ICs0MCw4IEBACi0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpbmNsdWRlIDxzdHJpbmcu aD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS0jaW5jbHVkZSA8cGNyZS5oPgotKyNkZWZpbmUg UENSRTJfQ09ERV9VTklUX1dJRFRIIDgKLSsjaW5jbHVkZSA8cGNyZTIuaD4KLSAjaW5jbHVkZSAi Li4vLi4vc3JfbW9kdWxlLmgiCi0gI2luY2x1ZGUgIi4uLy4uL2RwcmludC5oIgotICNpbmNsdWRl ICIuLi8uLi9wdC5oIgotZGlmZiAtLWdpdCBhL3BhY2thZ2luZy9hcmNoL01ha2VmaWxlLmNvbmYu dGVtcGxhdGUgYi9wYWNrYWdpbmcvYXJjaC9NYWtlZmlsZS5jb25mLnRlbXBsYXRlCi1pbmRleCAy N2E3YmE4YWQuLmYwZGMyNTdiMyAxMDA2NDQKLS0tLSBhL3BhY2thZ2luZy9hcmNoL01ha2VmaWxl LmNvbmYudGVtcGxhdGUKLSsrKyBiL3BhY2thZ2luZy9hcmNoL01ha2VmaWxlLmNvbmYudGVtcGxh dGUKLUBAIC0xNywxMSArMTcsMTEgQEAKLSAjZGJfcG9zdGdyZXM9IFByb3ZpZGVzIFBvc3RncmVz IGNvbm5lY3Rpdml0eSBmb3IgT3BlblNJUFMgfCBQb3N0Z3JlU1FMIGxpYnJhcnkgYW5kIGRldmVs b3BtZW50IGxpYnJhcnkgLSB0aXBpY2FsbHkgbGlicHE1IGFuZCBsaWJwcS1kZXYKLSAjZGJfc3Fs aXRlPSBQcm92aWRlcyBTUUxpdGUgY29ubmVjdGl2aXR5IGZvciBPcGVuU0lQUyB8IFNRTGl0ZSBs aWJyYXJ5IGFuZCBkZXZlbG9wbWVudCBsaWJyYXJ5IC0gdGlwaWNhbGx5IGxpYnNxbGl0ZTMgYW5k IGxpYnNxbGl0ZTMtZGV2Ci0gI2RiX3VuaXhvZGJjPSBBbGxvd3MgdG8gdXNlIHRoZSB1bml4b2Ri YyBwYWNrYWdlIHdpdGggT3BlblNJUFMgfCBPREJDIGxpYnJhcnkgYW5kIE9EQkMgZGV2ZWxvcG1l bnQgbGlicmFyeQotLSNkaWFscGxhbj0gSW1wbGVtZW50cyBnZW5lcmljIHN0cmluZyB0cmFuc2xh dGlvbnMgYmFzZWQgb24gbWF0Y2hpbmcgYW5kIHJlcGxhY2VtZW50IHJ1bGVzIHwgUENSRSBkZXZl bG9wbWVudCBsaWJyYXJ5LCB0aXBpY2FsbHkgbGlicGNyZS1kZXYKLSsjZGlhbHBsYW49IEltcGxl bWVudHMgZ2VuZXJpYyBzdHJpbmcgdHJhbnNsYXRpb25zIGJhc2VkIG9uIG1hdGNoaW5nIGFuZCBy ZXBsYWNlbWVudCBydWxlcyB8IFBDUkUgZGV2ZWxvcG1lbnQgbGlicmFyeSwgdGlwaWNhbGx5IGxp YnBjcmUyLWRldgotICNlbWVyZ2VuY3k9IFByb3ZpZGVzIGVtZXJnZW5jeSBjYWxsIHRyZWF0bWVu dCBmb3IgT3BlblNJUFMgfCBDVVJMIGRldiBsaWJyYXJ5IC0gdGlwaWNhbGx5IGxpYmN1cmw0LW9w ZW5zc2wtZGV2Ci0gI2V2ZW50X3JhYmJpdG1xPSBQcm92aWRlcyB0aGUgaW1wbGVtZW50YXRpb24g b2YgYSBSYWJiaXRNUSBjbGllbnQgZm9yIHRoZSBFdmVudCBJbnRlcmZhY2UgfCBSYWJiaXRNUSBk ZXZlbG9wbWVudCBsaWJyYXJ5LCBsaWJyYWJiaXRtcS1kZXYKLSAjaDM1MD0gRW5hYmxlcyBhY2Nl c3MgdG8gU0lQIGFjY291bnQgZGF0YSBzdG9yZWQgaW4gYW4gTERBUCBbUkZDNDUxMF0gZGlyZWN0 b3J5IGNvbnRhaW5pbmcgSC4zNTAgY29tbU9iamVjdHMgfCBPcGVuTERBUCBsaWJyYXJ5ICYgZGV2 ZWxvcG1lbnQgZmlsZXMsIHRpcGljYWxseSBsaWJsZGFwIGFuZCBsaWJsZGFwLWRldgotLSNyZWdl eD0gT2ZmZXJzIG1hdGNoaW5nIG9wZXJhdGlvbnMgYWdhaW5zdCByZWd1bGFyIGV4cHJlc3Npb25z IHVzaW5nIHRoZSBwb3dlcmZ1bCBQQ1JFIGxpYnJhcnkuIHwgRGV2ZWxvcG1lbnQgbGlicmFyeSBm b3IgUENSRSwgdGlwaWNhbGx5IGxpYnBjcmUtZGV2Ci0rI3JlZ2V4PSBPZmZlcnMgbWF0Y2hpbmcg b3BlcmF0aW9ucyBhZ2FpbnN0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNpbmcgdGhlIHBvd2VyZnVs IFBDUkUgbGlicmFyeS4gfCBEZXZlbG9wbWVudCBsaWJyYXJ5IGZvciBQQ1JFLCB0aXBpY2FsbHkg bGlicGNyZTItZGV2Ci0gI2lkZW50aXR5PSBBZGRzIHN1cHBvcnQgZm9yIFNJUCBJZGVudGl0eSAo c2VlIFJGQyA0NDc0KS4gfCBTU0wgbGlicmFyeSwgdGlwaWNhbGx5IGxpYnNzbAotICNqYWJiZXI9 IEludGVncmF0ZXMgWE9ERSBYTUwgcGFyc2VyIGZvciBwYXJzaW5nIEphYmJlciBtZXNzYWdlcyB8 IEV4cGF0IGxpYnJhcnkuCi0gI2pzb249IEludHJvZHVjZXMgYSBuZXcgdHlwZSBvZiB2YXJpYWJs ZSB0aGF0IHByb3ZpZGVzIGJvdGggc2VyaWFsaXphdGlvbiBhbmQgZGUtc2VyaWFsaXphdGlvbiBm cm9tIEpTT04gZm9ybWF0LiB8IEpTT04gbGlicmFyeSwgbGlianNvbgotZGlmZiAtLWdpdCBhL3Bh Y2thZ2luZy9hcmNoL1BLR0JVSUxELmdpdCBiL3BhY2thZ2luZy9hcmNoL1BLR0JVSUxELmdpdAot aW5kZXggYWQzMzg3NDYwLi44ODI0OTFiZTkgMTAwNjQ0Ci0tLS0gYS9wYWNrYWdpbmcvYXJjaC9Q S0dCVUlMRC5naXQKLSsrKyBiL3BhY2thZ2luZy9hcmNoL1BLR0JVSUxELmdpdAotQEAgLTEyOCw3 ICsxMjgsNyBAQCBwYWNrYWdlX29wZW5zaXBzLWdpdCgpIHsKLSAJCSdtb25nby1jLWRyaXZlcjog Qy1JbnRlcmZhY2UgZm9yIE1vbmdvLURCIHN1cHBvcnQnCi0gCQknbmV0LXNubXA6IFNOTVAgc3Vw cG9ydCcKLSAJCSdvc3B0b29sa2l0OiBPU1AgVG9vbGtpdCBzdXBwb3J0JwotLQkJJ3BjcmU6IFBl cmwgUmVndWxhci1FeHByZXNzaW9uIHN1cHBvcnQnCi0rCQkncGNyZTI6IFBlcmwgUmVndWxhci1F eHByZXNzaW9uIHN1cHBvcnQnCi0gCQkncGVybDogUGVybCBzdXBwb3J0JwotIAkJJ3Bvc3RncmVz cWwtbGliczogUG9zdGdyZVNRTC1EQiBzdXBwb3J0JwotIAkJJ3B5dGhvbjI6IFB5dGhvbiB2MiBz dXBwb3J0JwotZGlmZiAtLWdpdCBhL3BhY2thZ2luZy9kZWJpYW4vY29udHJvbCBiL3BhY2thZ2lu Zy9kZWJpYW4vY29udHJvbAotaW5kZXggNTZhN2I1NTg3Li4xNDFmODE1ZjYgMTAwNjQ0Ci0tLS0g YS9wYWNrYWdpbmcvZGViaWFuL2NvbnRyb2wKLSsrKyBiL3BhY2thZ2luZy9kZWJpYW4vY29udHJv bAotQEAgLTI5LDcgKzI5LDcgQEAgQnVpbGQtRGVwZW5kczogYmlzb24sCi0gICAgICAgICAgICAg ICAgbGliYnNvbi1kZXYgfCBiYXNlLWZpbGVzLAotICAgICAgICAgICAgICAgIGxpYm1vbmdvYy1k ZXYgfCBiYXNlLWZpbGVzLAotICAgICAgICAgICAgICAgIGxpYm5jdXJzZXM1LWRldiwKLS0gICAg ICAgICAgICAgICBsaWJwY3JlMy1kZXYsCi0rICAgICAgICAgICAgICAgbGlicGNyZTItZGV2LAot ICAgICAgICAgICAgICAgIGxpYnBlcmwtZGV2LAotICAgICAgICAgICAgICAgIGxpYnBxLWRldiwK LSAgICAgICAgICAgICAgICBsaWJyYWJiaXRtcS1kZXYsCi1kaWZmIC0tZ2l0IGEvcGFja2FnaW5n L3JlZGhhdF9mZWRvcmEvb3BlbnNpcHMuc3BlYyBiL3BhY2thZ2luZy9yZWRoYXRfZmVkb3JhL29w ZW5zaXBzLnNwZWMKLWluZGV4IDZhYjY4NmM1OC4uNTEzNWEzODNmIDEwMDY0NAotLS0tIGEvcGFj a2FnaW5nL3JlZGhhdF9mZWRvcmEvb3BlbnNpcHMuc3BlYwotKysrIGIvcGFja2FnaW5nL3JlZGhh dF9mZWRvcmEvb3BlbnNpcHMuc3BlYwotQEAgLTc5LDcgKzc5LDcgQEAgQnVpbGRSZXF1aXJlczog IG9wZW5sZGFwLWRldmVsCi0gQnVpbGRSZXF1aXJlczogIGN1cmwtZGV2ZWwKLSAjIEJ1aWxkUmVx dWlyZXM6ICBHZW9JUC1kZXZlbAotIEJ1aWxkUmVxdWlyZXM6ICBsaWJtYXhtaW5kZGItZGV2ZWwK LS1CdWlsZFJlcXVpcmVzOiAgcGNyZS1kZXZlbAotK0J1aWxkUmVxdWlyZXM6ICBwY3JlMi1kZXZl bAotICVpZiAwJXs/X3dpdGhfcHl0aG9uMzoxfQotIEJ1aWxkUmVxdWlyZXM6ICBweXRob24zLWRl dmVsCi0gJWVsc2UKLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvc29sYXJpcy9yZWdleC1wcmVpbnN0 YWxsIGIvcGFja2FnaW5nL3NvbGFyaXMvcmVnZXgtcHJlaW5zdGFsbAotaW5kZXggMzhkOTRjNjFm Li43OWNhNmRhMTQgMTAwNjQ0Ci0tLS0gYS9wYWNrYWdpbmcvc29sYXJpcy9yZWdleC1wcmVpbnN0 YWxsCi0rKysgYi9wYWNrYWdpbmcvc29sYXJpcy9yZWdleC1wcmVpbnN0YWxsCi1AQCAtMiw3ICsy LDcgQEAKLSAjIFNjcmlwdCBmb3IgY2hlY2tpbmcgcHJlcmVxdWlzaXRlcyBmb3IgT3BlblNJUFMt eG1scnBjCi0gCi0gQkFTRT0iT3BlblNJUFMtYmFzZSIKLS1MSUJQQ1JFPSJsaWJwY3JlLnNvIgot K0xJQlBDUkU9ImxpYnBjcmUyLnNvIgotIFRNUExJU1Q9Ii90bXAvLm9wZW5zaXBzcGNyZSIKLSAK LSBwa2dpbmZvIHwgZ3JlcCAtaSAkQkFTRSA+IC9kZXYvbnVsbAotZGlmZiAtLWdpdCBhL3Njcmlw dHMvYnVpbGQvYXB0X3JlcXVpcmVtZW50cy50eHQgYi9zY3JpcHRzL2J1aWxkL2FwdF9yZXF1aXJl bWVudHMudHh0Ci1pbmRleCBmMDk0YjczZTMuLmY5NWJkMjJmMyAxMDA2NDQKLS0tLSBhL3Njcmlw dHMvYnVpbGQvYXB0X3JlcXVpcmVtZW50cy50eHQKLSsrKyBiL3NjcmlwdHMvYnVpbGQvYXB0X3Jl cXVpcmVtZW50cy50eHQKLUBAIC0xMyw5ICsxMyw4IEBAIGxpYm1heG1pbmRkYi1kZXYKLSBsaWJt ZW1jYWNoZWQtZGV2Ci0gbGlibWljcm9odHRwZC1kZXYKLSBsaWJtbmwtZGV2Ci0tbGlibXlzcWxj bGllbnQtZGV2Ci0gbGlibmN1cnNlczUtZGV2Ci0tbGlicGNyZTMtZGV2Ci0rbGlicGNyZTItZGV2 Ci0gbGlicGVybC1kZXYKLSBsaWJwcS1kZXYKLSBsaWJyYWJiaXRtcS1kZXYKLUBAIC0yNyw3ICsy Niw3IEBAIGxpYnhtbDItZGV2Ci0gbWFrZQotIG9kYmNpbnN0Ci0gcGF0Y2gKLS1weXRob24tZGV2 Ci0rcHl0aG9uMy1kZXYKLSB1bml4b2RiYwotIHVuaXhvZGJjLWRldgotIHV1aWQtZGV2CgpkaWZm IC0tZ2l0IGEvb3BlbnNpcHMtMDAxNC11cGRhdGUtZGlhbHBsYW4tbW9kdWxlLWZvci1wY3JlMi5w YXRjaCBiL29wZW5zaXBzLTAwMTQtdXBkYXRlLWRpYWxwbGFuLW1vZHVsZS1mb3ItcGNyZTIucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlMWUyMDYuLjAwMDAwMDAKLS0tIGEv b3BlbnNpcHMtMDAxNC11cGRhdGUtZGlhbHBsYW4tbW9kdWxlLWZvci1wY3JlMi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGV2ZSBB eXJlIDxzdGV2ZW4uYXlyZUBkdWJiZXIubmV0PgotRGF0ZTogVGh1LCAxOCBTZXAgMjAyNSAxNTo0 Nzo1OCArMDEwMAotU3ViamVjdDogW1BBVENIXSB1cGRhdGUgZGlhbHBsYW4gbW9kdWxlIGZvciBw Y3JlMgotCi0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjNThlM2FmMGNjN2I0NGNlYjMwNGFj MWI2ZDJjOGI0NWZlY2E0YjViKQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9kaWFscGxhbi9NYWtl ZmlsZSBiL21vZHVsZXMvZGlhbHBsYW4vTWFrZWZpbGUKLWluZGV4IGE3YzZhMGE5MS4uYzRiMzU3 MjBhIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9kaWFscGxhbi9NYWtlZmlsZQotKysrIGIvbW9kdWxl cy9kaWFscGxhbi9NYWtlZmlsZQotQEAgLTksMTEgKzksMTEgQEAgTkFNRT1kaWFscGxhbi5zbwot ICMgQ1JPU1NfQ09NUElMRT10cnVlCi0gCi0gaWZlcSAoJChDUk9TU19DT01QSUxFKSwpCi0tUENS RV9CVUlMREVSIDo9ICQoc2hlbGwgXAotLQlpZiB3aGljaCBwY3JlLWNvbmZpZyA+L2Rldi9udWxs IDI+L2Rldi9udWxsOyB0aGVuIFwKLS0JCWVjaG8gJ3BjcmUtY29uZmlnJzsgXAotLQllbGlmIHBr Zy1jb25maWcgLS1leGlzdHMgbGliY3JlOyB0aGVuIFwKLS0JCWVjaG8gJ3BrZy1jb25maWcgbGli cGNyZSc7IFwKLStQQ1JFX0JVSUxERVIgPSAkKHNoZWxsIFwKLSsJaWYgd2hpY2ggcGNyZTItY29u ZmlnID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4gXAotKwkJZWNobyAncGNyZTItY29uZmln JzsgXAotKwllbGlmIHBrZy1jb25maWcgLS1leGlzdHMgbGlicGNyZTItODsgdGhlbiBcCi0rCQll Y2hvICdwa2ctY29uZmlnIGxpYnBjcmUyLTgnOyBcCi0gCWZpKQotIGVuZGlmCi0gCi1AQCAtMjEs MTAgKzIxLDEwIEBAIGlmZXEgKCQoUENSRV9CVUlMREVSKSwpCi0gCURFRlMgKz0gLUkkKFNZU0JB U0UpL2luY2x1ZGUgXAotIAkJCS1JJChMT0NBTEJBU0UpL2luY2x1ZGUKLSAJTElCUyArPSAtTCQo U1lTQkFTRSkvbGliIFwKLS0JCQktTCQoTE9DQUxCQVNFKS9saWIgLWxwY3JlCi0rCQkJLUwkKExP Q0FMQkFTRSkvbGliIC1scGNyZTItOAotIGVsc2UKLSAJREVGUyArPSAkKHNoZWxsICQoUENSRV9C VUlMREVSKSAtLWNmbGFncykKLS0JTElCUyArPSAkKHNoZWxsICQoUENSRV9CVUlMREVSKSAtLWxp YnMpCi0rCUxJQlMgKz0gJChzaGVsbCAkKFBDUkVfQlVJTERFUikgLS1saWJzOCkKLSBlbmRpZgot IAotIGluY2x1ZGUgLi4vLi4vTWFrZWZpbGUubW9kdWxlcwotZGlmZiAtLWdpdCBhL21vZHVsZXMv ZGlhbHBsYW4vUkVBRE1FIGIvbW9kdWxlcy9kaWFscGxhbi9SRUFETUUKLWluZGV4IGZlNzIwZWRl OS4uM2NmODRmMDJlIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9kaWFscGxhbi9SRUFETUUKLSsrKyBi L21vZHVsZXMvZGlhbHBsYW4vUkVBRE1FCi1AQCAtMjQzLDcgKzI0Myw3IEBAIENoYXB0ZXIgMS4g QWRtaW4gR3VpZGUKLSAKLSAgICBUaGUgZm9sbG93aW5nIGxpYnJhcmllcyBvciBhcHBsaWNhdGlv bnMgbXVzdCBiZSBpbnN0YWxsZWQKLSAgICBiZWZvcmUgcnVubmluZyBPcGVuU0lQUyB3aXRoIHRo aXMgbW9kdWxlIGxvYWRlZDoKLS0gICAgICogbGlicGNyZS1kZXYgLSB0aGUgZGV2ZWxvcG1lbnQg bGlicmFyaWVzIG9mIFBDUkUuCi0rICAgICAqIGxpYnBjcmUyLWRldiAtIHRoZSBkZXZlbG9wbWVu dCBsaWJyYXJpZXMgb2YgUENSRS4KLSAKLSAxLjYuIEV4cG9ydGVkIFBhcmFtZXRlcnMKLSAKLWRp ZmYgLS1naXQgYS9tb2R1bGVzL2RpYWxwbGFuL2RpYWxwbGFuLmMgYi9tb2R1bGVzL2RpYWxwbGFu L2RpYWxwbGFuLmMKLWluZGV4IDQ1NGY5YTZjYS4uM2IzN2UzZTU5IDEwMDY0NAotLS0tIGEvbW9k dWxlcy9kaWFscGxhbi9kaWFscGxhbi5jCi0rKysgYi9tb2R1bGVzL2RpYWxwbGFuL2RpYWxwbGFu LmMKLUBAIC04NjksNTEgKzg2OSw2MSBAQCBzdGF0aWMgbWlfcmVzcG9uc2VfdCAqbWlfdHJhbnNs YXRlMyhjb25zdCBtaV9wYXJhbXNfdCAqcGFyYW1zLAotIH0KLSAKLSAKLS12b2lkICogd3JhcF9z aG1fbWFsbG9jKHNpemVfdCBzaXplKQotK3ZvaWQgKiB3cmFwX3NobV9tYWxsb2MoUENSRTJfU0la RSBzaXplLCB2b2lkICogbWVtb3J5X2RhdGEpCi0gewotKwlVTlVTRUQobWVtb3J5X2RhdGEpOwot IAlyZXR1cm4gc2htX21hbGxvYyhzaXplKTsKLSB9Ci0gCi0tdm9pZCAgd3JhcF9zaG1fZnJlZSh2 b2lkICogcCApCi0rdm9pZCB3cmFwX3NobV9mcmVlKHZvaWQgKiBwLCB2b2lkICogbWVtb3J5X2Rh dGEpCi0gewotKwlVTlVTRUQobWVtb3J5X2RhdGEpOwotIAlzaG1fZnJlZShwKTsKLSB9Ci0gCi0t Ci0tcGNyZSAqIHdyYXBfcGNyZV9jb21waWxlKGNoYXIgKiAgcGF0dGVybiwgaW50IGZsYWdzKQot K3BjcmUyX2NvZGUgKiB3cmFwX3BjcmVfY29tcGlsZShjaGFyICogIHBhdHRlcm4sIGludCBmbGFn cykKLSB7Ci0tCQlwY3JlICogcmV0IDsKLS0JCWZ1bmNfbWFsbG9jIG9sZF9tYWxsb2MgOwotLQkJ ZnVuY19mcmVlIG9sZF9mcmVlOwotLQkJY29uc3QgY2hhciAqIGVycm9yOwotLQkJaW50IGVycm9m ZnNldDsKLS0JCWludCBwY3JlX2ZsYWdzID0gMDsKLS0KLS0KLS0JCW9sZF9tYWxsb2MgPSBwY3Jl X21hbGxvYzsKLS0JCW9sZF9mcmVlID0gcGNyZV9mcmVlOwotLQotLQkJcGNyZV9tYWxsb2MgPSB3 cmFwX3NobV9tYWxsb2M7Ci0tCQlwY3JlX2ZyZWUgPSB3cmFwX3NobV9mcmVlOwotLQotLQkJaWYg KGZsYWdzICYgRFBfQ0FTRV9JTlNFTlNJVElWRSkKLS0JCQlwY3JlX2ZsYWdzIHw9IFBDUkVfQ0FT RUxFU1M7Ci0tCi0tCQlyZXQgPSBwY3JlX2NvbXBpbGUoCi0tCQkJCXBhdHRlcm4sCQkJLyogdGhl IHBhdHRlcm4gKi8KLS0JCQkJcGNyZV9mbGFncywJCQkvKiBkZWZhdWx0IG9wdGlvbnMgKi8KLS0J CQkJJmVycm9yLAkJCQkvKiBmb3IgZXJyb3IgbWVzc2FnZSAqLwotLQkJCQkmZXJyb2Zmc2V0LAkJ CS8qIGZvciBlcnJvciBvZmZzZXQgKi8KLS0JCQkJTlVMTCk7Ci0tCi0tCQlwY3JlX21hbGxvYyA9 IG9sZF9tYWxsb2M7Ci0tCQlwY3JlX2ZyZWUgPSBvbGRfZnJlZTsKLS0KLS0JCXJldHVybiByZXQ7 Ci0rCXBjcmUyX2dlbmVyYWxfY29udGV4dCAqZ2NvbnRleHQ7Ci0rCXBjcmUyX2NvbXBpbGVfY29u dGV4dCAqY2NvbnRleHQ7Ci0rCXBjcmUyX2NvZGUgKiByZXQgOwotKwlpbnQgZXJyb3I7Ci0rCVBD UkUyX1NJWkUgZXJyb2Zmc2V0OwotKwlpbnQgcGNyZV9mbGFncyA9IDA7Ci0rCi0rCS8vIFRPRE8g Z2VuZXJhdGUgb25jZSBwZXIgd29ya2VyCi0rCWdjb250ZXh0ID0gcGNyZTJfZ2VuZXJhbF9jb250 ZXh0X2NyZWF0ZSh3cmFwX3NobV9tYWxsb2MsIHdyYXBfc2htX2ZyZWUsIE5VTEwpOwotKwlpZiAo IWdjb250ZXh0KSB7Ci0rCQlMTV9FUlIoIlVuYWJsZSB0byBjcmVhdGUgcGNyZSBnZW5lcmFsIGNv bnRleHRcbiIpOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJLy8gVE9ETyBnZW5lcmF0ZSBv bmNlIHBlciB3b3JrZXIKLSsJY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRl KGdjb250ZXh0KTsKLSsJaWYgKCFjY29udGV4dCkgewotKwkJTE1fRVJSKCJVbmFibGUgdG8gY3Jl YXRlIHBjcmUgY29tcGlsZSBjb250ZXh0XG4iKTsKLSsJCXBjcmUyX2dlbmVyYWxfY29udGV4dF9m cmVlKGdjb250ZXh0KTsKLSsJCXJldHVybiBOVUxMOwotKwl9Ci0rCi0rCWlmIChmbGFncyAmIERQ X0NBU0VfSU5TRU5TSVRJVkUpCi0rCQlwY3JlX2ZsYWdzIHw9IFBDUkUyX0NBU0VMRVNTOwotKwot KwlyZXQgPSBwY3JlMl9jb21waWxlKAotKwkJCShQQ1JFMl9TUFRSKXBhdHRlcm4sCQkvKiB0aGUg cGF0dGVybiAqLwotKwkJCVBDUkUyX1pFUk9fVEVSTUlOQVRFRCwKLSsJCQlwY3JlX2ZsYWdzLAkJ CS8qIGRlZmF1bHQgb3B0aW9ucyAqLwotKwkJCSZlcnJvciwJCQkJLyogZm9yIGVycm9yIG1lc3Nh Z2UgKi8KLSsJCQkmZXJyb2Zmc2V0LAkJCS8qIGZvciBlcnJvciBvZmZzZXQgKi8KLSsJCQljY29u dGV4dCk7ICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbXBpbGUgY29udGV4dCwgdG8gYWxsb2Nh dGUgbWVtb3J5IGluIHNobSAqLwotKwotKwlwY3JlMl9jb21waWxlX2NvbnRleHRfZnJlZShjY29u dGV4dCk7Ci0rCXBjcmUyX2dlbmVyYWxfY29udGV4dF9mcmVlKGdjb250ZXh0KTsKLSsKLSsJcmV0 dXJuIHJldDsKLSB9Ci0gCi0tdm9pZCB3cmFwX3BjcmVfZnJlZSggcGNyZSogcmUpCi0rdm9pZCB3 cmFwX3BjcmVfZnJlZSggcGNyZTJfY29kZSogcmUpCi0gewotKwkvLyBUT0RPIHBjcmUyX2NvZGVf ZnJlZQotIAlzaG1fZnJlZShyZSk7Ci0tCi0gfQotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGlhbHBs YW4vZGlhbHBsYW4uaCBiL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uaAotaW5kZXggYzRhZjk0 MzVmLi5kNzk4YWU0YTcgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2RpYWxwbGFuL2RpYWxwbGFuLmgK LSsrKyBiL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uaAotQEAgLTQ5LDcgKzQ5LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgZHBsX25vZGV7Ci0gCWludCBtYXRjaG9wOwotIAlpbnQgbWF0Y2hfZmxhZ3M7 Ci0gCXN0ciBtYXRjaF9leHAsIHN1YnN0X2V4cCwgcmVwbF9leHA7IC8qa2VlcGluZyB0aGUgb3Jp Z2luYWwgc3RyaW5ncyovCi0tCXBjcmUgKiBtYXRjaF9jb21wLCAqIHN1YnN0X2NvbXA7IC8qY29t cGlsZWQgcGF0dGVybnMqLwotKwlwY3JlMl9jb2RlICogbWF0Y2hfY29tcCwgKiBzdWJzdF9jb21w OyAvKmNvbXBpbGVkIHBhdHRlcm5zKi8KLSAJc3RydWN0IHN1YnN0X2V4cHIgKiByZXBsX2NvbXA7 Ci0gCXN0ciBhdHRyczsKLSAJc3RyIHRpbWVyZWM7Ci1AQCAtMTIyLDE5ICsxMjIsMTEgQEAgc3Ry dWN0IHN1YnN0X2V4cHIqIHJlcGxfZXhwX3BhcnNlKHN0ciBzdWJzdCk7Ci0gdm9pZCByZXBsX2V4 cHJfZnJlZShzdHJ1Y3Qgc3Vic3RfZXhwciAqc2UpOwotIGludCB0cmFuc2xhdGUoc3RydWN0IHNp cF9tc2cgKm1zZywgc3RyIHVzZXJfbmFtZSwgc3RyKiByZXBsX3VzZXIsIGRwbF9pZF9wIGlkcCwg c3RyICopOwotIGludCBydWxlX3RyYW5zbGF0ZShzdHJ1Y3Qgc2lwX21zZyAqbXNnLCBzdHIgLCBk cGxfbm9kZV90ICogcnVsZSwgIHN0ciAqKTsKLS1pbnQgdGVzdF9tYXRjaChzdHIgc3RyaW5nLCBw Y3JlICogZXhwLCBpbnQgKiBvdXQsIGludCBvdXRfbWF4KTsKLStpbnQgdGVzdF9tYXRjaChzdHIg c3RyaW5nLCBwY3JlMl9jb2RlICogZXhwLCBpbnQgKiBvdXQsIGludCBvdXRfbWF4KTsKLSAKLSAK LS10eXBlZGVmIHZvaWQgKiAoKmZ1bmNfbWFsbG9jKShzaXplX3QgKTsKLS10eXBlZGVmIHZvaWQg ICgqZnVuY19mcmVlKSh2b2lkICogKTsKLS0KLS12b2lkICogd3JhcF9zaG1fbWFsbG9jKHNpemVf dCBzaXplKTsKLS12b2lkICB3cmFwX3NobV9mcmVlKHZvaWQgKik7Ci0tCi0tCi0tcGNyZSAqIHdy YXBfcGNyZV9jb21waWxlKGNoYXIgKiAgcGF0dGVybiwgaW50IGZsYWdzKTsKLS12b2lkIHdyYXBf cGNyZV9mcmVlKCBwY3JlKik7Ci0tCi0rcGNyZTJfY29kZSAqIHdyYXBfcGNyZV9jb21waWxlKGNo YXIgKiAgcGF0dGVybiwgaW50IGZsYWdzKTsKLSt2b2lkIHdyYXBfcGNyZV9mcmVlKCBwY3JlMl9j b2RlKik7Ci0gCi0gZXh0ZXJuIHJ3X2xvY2tfdCAqcmVmX2xvY2s7Ci0gZXh0ZXJuIHN0ciBkcF9k Zl9wYXJ0OwotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGlhbHBsYW4vZHBfZGIuYyBiL21vZHVsZXMv ZGlhbHBsYW4vZHBfZGIuYwotaW5kZXggZTg4NjgyYTVmLi5jYWNhYzMwMTggMTAwNjQ0Ci0tLS0g YS9tb2R1bGVzL2RpYWxwbGFuL2RwX2RiLmMKLSsrKyBiL21vZHVsZXMvZGlhbHBsYW4vZHBfZGIu YwotQEAgLTQ2NywxMiArNDY3LDEyIEBAIGludCBzdHJfdG9fc2htKHN0ciBzcmMsIHN0ciAqIGRl c3QpCi0gZHBsX25vZGVfdCAqIGJ1aWxkX3J1bGUoZGJfdmFsX3QgKiB2YWx1ZXMpCi0gewotIAl0 bXJlY19leHByICpwYXJzZWRfdGltZXJlYzsKLS0JcGNyZSAqIG1hdGNoX2NvbXAsICpzdWJzdF9j b21wOwotKwlwY3JlMl9jb2RlICogbWF0Y2hfY29tcCwgKnN1YnN0X2NvbXA7Ci0gCXN0cnVjdCBz dWJzdF9leHByICogcmVwbF9jb21wOwotIAlkcGxfbm9kZV90ICogbmV3X3J1bGU7Ci0gCXN0ciBt YXRjaF9leHAsIHN1YnN0X2V4cCwgcmVwbF9leHAsIGF0dHJzLCB0aW1lcmVjOwotIAlpbnQgbWF0 Y2hvcDsKLS0JaW50IG5hbWVjb3VudDsKLSsJdWludDMyX3QgbmFtZWNvdW50OwotIAotIAltYXRj aG9wID0gVkFMX0lOVCh2YWx1ZXMrMik7Ci0gCi1AQCAtNTI0LDEwICs1MjQsOSBAQCBkcGxfbm9k ZV90ICogYnVpbGRfcnVsZShkYl92YWxfdCAqIHZhbHVlcykKLSAJCX0KLSAJfQotIAotLQlwY3Jl X2Z1bGxpbmZvKAotKwlwY3JlMl9wYXR0ZXJuX2luZm8oCi0gCQlzdWJzdF9jb21wLCAvKiB0aGUg Y29tcGlsZWQgcGF0dGVybiAqLwotLQkJTlVMTCwgLyogbm8gZXh0cmEgZGF0YSAtIHdlIGRpZG4n dCBzdHVkeSB0aGUgcGF0dGVybiAqLwotLQkJUENSRV9JTkZPX0NBUFRVUkVDT1VOVCwgLyogbnVt YmVyIG9mIG5hbWVkIHN1YnN0cmluZ3MgKi8KLSsJCVBDUkUyX0lORk9fQ0FQVFVSRUNPVU5ULCAv KiBudW1iZXIgb2YgbmFtZWQgc3Vic3RyaW5ncyAqLwotIAkJJm5hbWVjb3VudCk7IC8qIHdoZXJl IHRvIHB1dCB0aGUgYW5zd2VyICovCi0gCi0gCUxNX0RCRygicmVmZXJlbmNlczolZCAsIG1heDol ZFxuIixuYW1lY291bnQsCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9kaWFscGxhbi9kcF9yZXBsLmMg Yi9tb2R1bGVzL2RpYWxwbGFuL2RwX3JlcGwuYwotaW5kZXggNmZmOTRkZDAzLi40MzE3YjMzNGQg MTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2RpYWxwbGFuL2RwX3JlcGwuYwotKysrIGIvbW9kdWxlcy9k aWFscGxhbi9kcF9yZXBsLmMKLUBAIC0xMTAsMTEgKzExMCwxMSBAQCBpbnQgcnVsZV90cmFuc2xh dGUoc3RydWN0IHNpcF9tc2cgKm1zZywgc3RyIHN0cmluZywgZHBsX25vZGVfdCAqIHJ1bGUsCi0g ewotIAlpbnQgcmVwbF9uYiwgb2Zmc2V0LCBtYXRjaF9uYjsKLSAJc3RydWN0IHJlcGxhY2Vfd2l0 aCB0b2tlbjsKLS0JcGNyZSAqIHN1YnN0X2NvbXA7Ci0rCXBjcmUyX2NvZGUgKiBzdWJzdF9jb21w OwotIAlzdHJ1Y3Qgc3Vic3RfZXhwciAqIHJlcGxfY29tcDsKLSAJcHZfdmFsdWVfdCBzdjsKLSAJ c3RyKiB1cmk7Ci0tCWludCBjYXB0dXJlY291bnQ7Ci0rCXVpbnQzMl90IGNhcHR1cmVjb3VudDsK LSAJY2hhciAqbWF0Y2hfYmVnaW47Ci0gCWludCBtYXRjaF9sZW47Ci0gCi1AQCAtMTMzLDExICsx MzMsMTAgQEAgaW50IHJ1bGVfdHJhbnNsYXRlKHN0cnVjdCBzaXBfbXNnICptc2csIHN0ciBzdHJp bmcsIGRwbF9ub2RlX3QgKiBydWxlLAotIAotIAlpZihzdWJzdF9jb21wKXsKLSAKLS0JCXBjcmVf ZnVsbGluZm8oCi0tCQlzdWJzdF9jb21wLCAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcGls ZWQgcGF0dGVybiAqLwotLQkJTlVMTCwgICAgICAgICAgICAgICAgIC8qIG5vIGV4dHJhIGRhdGEg LSB3ZSBkaWRuJ3Qgc3R1ZHkgdGhlIHBhdHRlcm4gKi8KLS0JCVBDUkVfSU5GT19DQVBUVVJFQ09V TlQgLCAgLyogbnVtYmVyIG9mIG5hbWVkIHN1YnN0cmluZ3MgKi8KLS0JCSZjYXB0dXJlY291bnQp OyAgICAgICAgICAvKiB3aGVyZSB0byBwdXQgdGhlIGFuc3dlciAqLwotKwkJcGNyZTJfcGF0dGVy bl9pbmZvKAotKwkJCXN1YnN0X2NvbXAsICAgICAgICAgICAgICAvKiB0aGUgY29tcGlsZWQgcGF0 dGVybiAqLwotKwkJCVBDUkUyX0lORk9fQ0FQVFVSRUNPVU5ULCAvKiBudW1iZXIgb2YgbmFtZWQg c3Vic3RyaW5ncyAqLwotKwkJCSZjYXB0dXJlY291bnQpOyAgICAgICAgICAvKiB3aGVyZSB0byBw dXQgdGhlIGFuc3dlciAqLwotIAotIAotIAkJLypqdXN0IGluIGNhc2Ugc29tZXRoaW5nIHdlbnQg d3JvbmcgYXQgbG9hZCB0aW1lKi8KLUBAIC0zOTcsMTEgKzM5NiwxMyBAQCBpbnQgdHJhbnNsYXRl KHN0cnVjdCBzaXBfbXNnICptc2csIHN0ciBpbnB1dCwgc3RyICogb3V0cHV0LCBkcGxfaWRfcCBp ZHAsIHN0ciAqCi0gfQotIAotIAotLWludCB0ZXN0X21hdGNoKHN0ciBzdHJpbmcsIHBjcmUgKiBl eHAsIGludCAqIG91dCwgaW50IG91dF9tYXgpCi0raW50IHRlc3RfbWF0Y2goc3RyIHN0cmluZywg cGNyZTJfY29kZSAqIGV4cCwgaW50ICogb3V0LCBpbnQgb3V0X21heCkKLSB7Ci0gCWludCBpLCBy ZXN1bHRfY291bnQ7Ci0gCWNoYXIgKnN1YnN0cmluZ19zdGFydDsKLSAJaW50IHN1YnN0cmluZ19s ZW5ndGg7Ci0rCXBjcmUyX21hdGNoX2RhdGEgKm1hdGNoX2RhdGE7Ci0rCVBDUkUyX1NJWkUgKm92 ZWN0b3I7Ci0gCVVOVVNFRChzdWJzdHJpbmdfc3RhcnQpOwotIAlVTlVTRUQoc3Vic3RyaW5nX2xl bmd0aCk7Ci0gCi1AQCAtNDEwLDM0ICs0MTEsNTAgQEAgaW50IHRlc3RfbWF0Y2goc3RyIHN0cmlu ZywgcGNyZSAqIGV4cCwgaW50ICogb3V0LCBpbnQgb3V0X21heCkKLSAJCXJldHVybiAtMTsKLSAJ fQotIAotLQlyZXN1bHRfY291bnQgPSBwY3JlX2V4ZWMoCi0tCQkJCQkJCWV4cCwgLyogdGhlIGNv bXBpbGVkIHBhdHRlcm4gKi8KLS0JCQkJCQkJTlVMTCwgLyogbm8gZXh0cmEgZGF0YSAtIHdlIGRp ZG4ndCBzdHVkeSB0aGUgcGF0dGVybiAqLwotLQkJCQkJCQlzdHJpbmcucywgLyogdGhlIHN1Ympl Y3Qgc3RyaW5nICovCi0tCQkJCQkJCXN0cmluZy5sZW4sIC8qIHRoZSBsZW5ndGggb2YgdGhlIHN1 YmplY3QgKi8KLS0JCQkJCQkJMCwgLyogc3RhcnQgYXQgb2Zmc2V0IDAgaW4gdGhlIHN1YmplY3Qg Ki8KLS0JCQkJCQkJMCwgLyogZGVmYXVsdCBvcHRpb25zICovCi0tCQkJCQkJCW91dCwgLyogb3V0 cHV0IHZlY3RvciBmb3Igc3Vic3RyaW5nIGluZm9ybWF0aW9uICovCi0tCQkJCQkJCW91dF9tYXgp OyAvKiBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIG91dHB1dCB2ZWN0b3IgKi8KLS0KLS0JaWYo IHJlc3VsdF9jb3VudCA8IDAgKQotLQkJcmV0dXJuIHJlc3VsdF9jb3VudDsKLSsJbWF0Y2hfZGF0 YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybihleHAsIE5VTEwpOwotKwlp ZiAoIW1hdGNoX2RhdGEpIHsKLSsJCUxNX0VSUigiZmFpbGVkIHRvIGFsbG9jYXRlIG1hdGNoIGRh dGFcbiIpOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0gCi0tCWlmKCByZXN1bHRfY291bnQgPT0gMCkK LSsJcmVzdWx0X2NvdW50ID0gcGNyZTJfbWF0Y2goCi0rCQlleHAsIC8qIHRoZSBjb21waWxlZCBw YXR0ZXJuICovCi0rCQkoUENSRTJfU1BUUilzdHJpbmcucywgLyogdGhlIHN1YmplY3Qgc3RyaW5n ICovCi0rCQkoUENSRTJfU0laRSlzdHJpbmcubGVuLCAvKiB0aGUgbGVuZ3RoIG9mIHRoZSBzdWJq ZWN0ICovCi0rCQkwLCAvKiBzdGFydCBhdCBvZmZzZXQgMCBpbiB0aGUgc3ViamVjdCAqLwotKwkJ MCwgLyogZGVmYXVsdCBvcHRpb25zICovCi0rCQltYXRjaF9kYXRhLCAvKiBtYXRjaCBkYXRhIGJs b2NrICovCi0rCQlOVUxMKTsgLyogbWF0Y2ggY29udGV4dCAqLwotKwotKwlpZiAocmVzdWx0X2Nv dW50IDwgMCkKLSAJewotLQkJTE1fRVJSKCJOb3QgZW5vdWdoIHNwYWNlIGZvciBtYXRoaW5nXG4i KTsKLSsJCXBjcmUyX21hdGNoX2RhdGFfZnJlZShtYXRjaF9kYXRhKTsKLSAJCXJldHVybiByZXN1 bHRfY291bnQ7Ci0gCX0KLSAKLSsJaWYgKHJlc3VsdF9jb3VudCA9PSAwKQotKwl7Ci0rCQlMTV9F UlIoIk5vdCBlbm91Z2ggc3BhY2UgZm9yIG1hdGNoaW5nXG4iKTsKLSsJCXBjcmUyX21hdGNoX2Rh dGFfZnJlZShtYXRjaF9kYXRhKTsKLSsJCXJldHVybiByZXN1bHRfY291bnQ7Ci0rCX0KLSAKLSsJ b3ZlY3RvciA9IHBjcmUyX2dldF9vdmVjdG9yX3BvaW50ZXIobWF0Y2hfZGF0YSk7Ci0gCWZvciAo aSA9IDA7IGkgPCByZXN1bHRfY291bnQ7IGkrKykKLSAJewotKwkJLy8gYXZvaWQgYnVmZmVyIG92 ZXJmbG93Ci0rCQlpZiAoaSA+PSBvdXRfbWF4KQotKwkJCWJyZWFrOwotKwotKwkJLy8gb3ZlY3Rv ciBpcyBmcmVlZCBieSBwY3JlMl9tYXRjaF9kYXRhX2ZyZWUsIGNvcHkgb2Zmc2V0cyB0byBvdXRb XQotKwkJb3V0W2ldID0gb3ZlY3RvcltpXTsKLSsKLSAJCXN1YnN0cmluZ19zdGFydCA9IHN0cmlu Zy5zICsgb3V0WzIgKiBpXTsKLSAJCXN1YnN0cmluZ19sZW5ndGggPSBvdXRbMiAqIGkgKyAxXSAt IG91dFsyICogaV07Ci0gCQlMTV9EQkcoInRlc3RfbWF0Y2g6WyVkXSAlLipzXG4iLGksIHN1YnN0 cmluZ19sZW5ndGgsIHN1YnN0cmluZ19zdGFydCk7Ci0gCX0KLSAKLS0KLSsJcGNyZTJfbWF0Y2hf ZGF0YV9mcmVlKG1hdGNoX2RhdGEpOwotIAlyZXR1cm4gcmVzdWx0X2NvdW50OwotIH0KLSAKCmRp ZmYgLS1naXQgYS9vcGVuc2lwcy0wMDE1LWNyZWF0ZS1wY3JlMi1jb21waWxlLWNvbnRleHQtb25j ZS1pbnN0ZWFkLW9mLWZvci1lYWMucGF0Y2ggYi9vcGVuc2lwcy0wMDE1LWNyZWF0ZS1wY3JlMi1j b21waWxlLWNvbnRleHQtb25jZS1pbnN0ZWFkLW9mLWZvci1lYWMucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDlmMmRkYWIuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAxNS1j cmVhdGUtcGNyZTItY29tcGlsZS1jb250ZXh0LW9uY2UtaW5zdGVhZC1vZi1mb3ItZWFjLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0 ZXZlIEF5cmUgPHN0ZXZlbi5heXJlQGR1YmJlci5uZXQ+Ci1EYXRlOiBUaHUsIDE4IFNlcCAyMDI1 IDE1OjU0OjAyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNyZWF0ZSBwY3JlMiBjb21waWxlIGNv bnRleHQgb25jZSBpbnN0ZWFkIG9mIGZvciBlYWNoIGNvbXBpbGUKLQotKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgNjA4MmI0M2ZhOGI0NGNiZmVhN2RlOGFmYjM4OTk4MzU0YjU0ZDFmYikKLQot ZGlmZiAtLWdpdCBhL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uYyBiL21vZHVsZXMvZGlhbHBs YW4vZGlhbHBsYW4uYwotaW5kZXggM2IzN2UzZTU5Li44YmM3Y2ZiZWMgMTAwNjQ0Ci0tLS0gYS9t b2R1bGVzL2RpYWxwbGFuL2RpYWxwbGFuLmMKLSsrKyBiL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBs YW4uYwotQEAgLTg2LDYgKzg2LDEyIEBAIHN0YXRpYyBzdHIgZGF0YWJhc2VfdXJsID0ge05VTEws IDB9OwotIAotIHZvaWQgKmRwX3NyZyA9IE5VTEw7Ci0gCi0rcGNyZTJfZ2VuZXJhbF9jb250ZXh0 ICpkcF9nY29udGV4dCA9IE5VTEw7Ci0rcGNyZTJfY29tcGlsZV9jb250ZXh0ICpkcF9jY29udGV4 dCA9IE5VTEw7Ci0rCi0rdm9pZCAqIHdyYXBfc2htX21hbGxvYyhQQ1JFMl9TSVpFIHNpemUsIHZv aWQgKiBtZW1vcnlfZGF0YSk7Ci0rdm9pZCB3cmFwX3NobV9mcmVlKHZvaWQgKiBwLCB2b2lkICog bWVtb3J5X2RhdGEpOwotKwotIAotIHN0YXRpYyBjb25zdCBwYXJhbV9leHBvcnRfdCBtb2RfcGFy YW1zW109ewotIAl7ICJwYXJ0aXRpb24iLAkJU1RSX1BBUkFNfFVTRV9GVU5DX1BBUkFNLAotQEAg LTM5OCw2ICs0MDQsMTggQEAgc3RhdGljIGludCBtb2RfaW5pdCh2b2lkKQotIAkJcmV0dXJuIC0x OwotIAl9Ci0gCi0rCWRwX2djb250ZXh0ID0gcGNyZTJfZ2VuZXJhbF9jb250ZXh0X2NyZWF0ZSh3 cmFwX3NobV9tYWxsb2MsIHdyYXBfc2htX2ZyZWUsIE5VTEwpOwotKwlpZiAoIWRwX2djb250ZXh0 KSB7Ci0rCQlMTV9FUlIoIlVuYWJsZSB0byBjcmVhdGUgcGNyZSBnZW5lcmFsIGNvbnRleHRcbiIp OwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCi0rCWRwX2Njb250ZXh0ID0gcGNyZTJfY29tcGlsZV9j b250ZXh0X2NyZWF0ZShkcF9nY29udGV4dCk7Ci0rCWlmICghZHBfY2NvbnRleHQpIHsKLSsJCUxN X0VSUigiVW5hYmxlIHRvIGNyZWF0ZSBwY3JlIGNvbXBpbGUgY29udGV4dFxuIik7Ci0rCQlyZXR1 cm4gLTE7Ci0rCX0KLSsKLSAJcmV0dXJuIDA7Ci0gfQotIAotQEAgLTQ1Miw2ICs0NzAsMTggQEAg c3RhdGljIHZvaWQgbW9kX2Rlc3Ryb3kodm9pZCkKLSAJfQotIAotIAlkZXN0cm95X2RhdGEoKTsK LSsKLSsJaWYgKGRwX2Njb250ZXh0KQotKwl7Ci0rCQlwY3JlMl9jb21waWxlX2NvbnRleHRfZnJl ZShkcF9jY29udGV4dCk7Ci0rCQlkcF9jY29udGV4dCA9IE5VTEw7Ci0rCX0KLSsKLSsJaWYgKGRw X2djb250ZXh0KQotKwl7Ci0rCQlwY3JlMl9nZW5lcmFsX2NvbnRleHRfZnJlZShkcF9nY29udGV4 dCk7Ci0rCQlkcF9nY29udGV4dCA9IE5VTEw7Ci0rCX0KLSB9Ci0gCi0gCi1AQCAtODgzLDI4ICs5 MTMsMTEgQEAgdm9pZCB3cmFwX3NobV9mcmVlKHZvaWQgKiBwLCB2b2lkICogbWVtb3J5X2RhdGEp Ci0gCi0gcGNyZTJfY29kZSAqIHdyYXBfcGNyZV9jb21waWxlKGNoYXIgKiAgcGF0dGVybiwgaW50 IGZsYWdzKQotIHsKLS0JcGNyZTJfZ2VuZXJhbF9jb250ZXh0ICpnY29udGV4dDsKLS0JcGNyZTJf Y29tcGlsZV9jb250ZXh0ICpjY29udGV4dDsKLSAJcGNyZTJfY29kZSAqIHJldCA7Ci0gCWludCBl cnJvcjsKLSAJUENSRTJfU0laRSBlcnJvZmZzZXQ7Ci0gCWludCBwY3JlX2ZsYWdzID0gMDsKLSAK LS0JLy8gVE9ETyBnZW5lcmF0ZSBvbmNlIHBlciB3b3JrZXIKLS0JZ2NvbnRleHQgPSBwY3JlMl9n ZW5lcmFsX2NvbnRleHRfY3JlYXRlKHdyYXBfc2htX21hbGxvYywgd3JhcF9zaG1fZnJlZSwgTlVM TCk7Ci0tCWlmICghZ2NvbnRleHQpIHsKLS0JCUxNX0VSUigiVW5hYmxlIHRvIGNyZWF0ZSBwY3Jl IGdlbmVyYWwgY29udGV4dFxuIik7Ci0tCQlyZXR1cm4gTlVMTDsKLS0JfQotLQotLQkvLyBUT0RP IGdlbmVyYXRlIG9uY2UgcGVyIHdvcmtlcgotLQljY29udGV4dCA9IHBjcmUyX2NvbXBpbGVfY29u dGV4dF9jcmVhdGUoZ2NvbnRleHQpOwotLQlpZiAoIWNjb250ZXh0KSB7Ci0tCQlMTV9FUlIoIlVu YWJsZSB0byBjcmVhdGUgcGNyZSBjb21waWxlIGNvbnRleHRcbiIpOwotLQkJcGNyZTJfZ2VuZXJh bF9jb250ZXh0X2ZyZWUoZ2NvbnRleHQpOwotLQkJcmV0dXJuIE5VTEw7Ci0tCX0KLS0KLSAJaWYg KGZsYWdzICYgRFBfQ0FTRV9JTlNFTlNJVElWRSkKLSAJCXBjcmVfZmxhZ3MgfD0gUENSRTJfQ0FT RUxFU1M7Ci0gCi1AQCAtOTE0LDE2ICs5MjcsMTQgQEAgcGNyZTJfY29kZSAqIHdyYXBfcGNyZV9j b21waWxlKGNoYXIgKiAgcGF0dGVybiwgaW50IGZsYWdzKQotIAkJCXBjcmVfZmxhZ3MsCQkJLyog ZGVmYXVsdCBvcHRpb25zICovCi0gCQkJJmVycm9yLAkJCQkvKiBmb3IgZXJyb3IgbWVzc2FnZSAq LwotIAkJCSZlcnJvZmZzZXQsCQkJLyogZm9yIGVycm9yIG9mZnNldCAqLwotLQkJCWNjb250ZXh0 KTsgICAgICAgICAgICAgICAgICAgICAgLyogY29tcGlsZSBjb250ZXh0LCB0byBhbGxvY2F0ZSBt ZW1vcnkgaW4gc2htICovCi0tCi0tCXBjcmUyX2NvbXBpbGVfY29udGV4dF9mcmVlKGNjb250ZXh0 KTsKLS0JcGNyZTJfZ2VuZXJhbF9jb250ZXh0X2ZyZWUoZ2NvbnRleHQpOwotKwkJCWRwX2Njb250 ZXh0KTsgICAgICAgICAgICAgICAgICAgICAgLyogY29tcGlsZSBjb250ZXh0LCB0byBhbGxvY2F0 ZSBtZW1vcnkgaW4gc2htICovCi0gCi0gCXJldHVybiByZXQ7Ci0gfQotIAotIHZvaWQgd3JhcF9w Y3JlX2ZyZWUoIHBjcmUyX2NvZGUqIHJlKQotIHsKLS0JLy8gVE9ETyBwY3JlMl9jb2RlX2ZyZWUK LSsJLy8gKm5vdCogcGNyZTJfY29kZV9mcmVlCi0rCS8vIHNobV9mcmVlIGlzIHVzZWQgYmVjYXVz ZSBwY3JlMl9nZW5lcmFsX2NvbnRleHRfY3JlYXRlIG92ZXJyaWRlcyBtYWxsb2Mgd2l0aCB3cmFw X3NobV9tYWxsb2MKLSAJc2htX2ZyZWUocmUpOwotIH0KCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0w MDE2LU1ha2VmaWxlLXR3ZWFrcy10by1hdm9pZC1zaGVsbC0uLWV4cGFuc2lvbnMtZnJvbS1mYWku cGF0Y2ggYi9vcGVuc2lwcy0wMDE2LU1ha2VmaWxlLXR3ZWFrcy10by1hdm9pZC1zaGVsbC0uLWV4 cGFuc2lvbnMtZnJvbS1mYWkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMw NDRjNGIuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAxNi1NYWtlZmlsZS10d2Vha3MtdG8tYXZv aWQtc2hlbGwtLi1leHBhbnNpb25zLWZyb20tZmFpLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NDEgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2VuIFJpY2UgPGtyaWNlQHNpcG5hdmln YXRvci5jb20+Ci1EYXRlOiBUaHUsIDExIFNlcCAyMDI1IDEwOjU3OjM5IC0wNDAwCi1TdWJqZWN0 OiBbUEFUQ0hdIE1ha2VmaWxlIHR3ZWFrcyB0byBhdm9pZCAkKHNoZWxsIC4uLikgZXhwYW5zaW9u cyBmcm9tIGZhaWxpbmcKLQotRml4ZXMgIzM3MTcKLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgYTNhZTQ5OGQ4NzI2ODk0NzUzNDgzNzM4ZTgwMWRmYzBlNjNlM2JhOSkKLQotZGlmZiAtLWdp dCBhL21vZHVsZXMvZGlhbHBsYW4vTWFrZWZpbGUgYi9tb2R1bGVzL2RpYWxwbGFuL01ha2VmaWxl Ci1pbmRleCBjNGIzNTcyMGEuLjUwNWJkOTU0MCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvZGlhbHBs YW4vTWFrZWZpbGUKLSsrKyBiL21vZHVsZXMvZGlhbHBsYW4vTWFrZWZpbGUKLUBAIC05LDcgKzks NyBAQCBOQU1FPWRpYWxwbGFuLnNvCi0gIyBDUk9TU19DT01QSUxFPXRydWUKLSAKLSBpZmVxICgk KENST1NTX0NPTVBJTEUpLCkKLS1QQ1JFX0JVSUxERVIgPSAkKHNoZWxsIFwKLStQQ1JFX0JVSUxE RVIgOj0gJChzaGVsbCBcCi0gCWlmIHdoaWNoIHBjcmUyLWNvbmZpZyA+L2Rldi9udWxsIDI+L2Rl di9udWxsOyB0aGVuIFwKLSAJCWVjaG8gJ3BjcmUyLWNvbmZpZyc7IFwKLSAJZWxpZiBwa2ctY29u ZmlnIC0tZXhpc3RzIGxpYnBjcmUyLTg7IHRoZW4gXAotZGlmZiAtLWdpdCBhL21vZHVsZXMvcmVn ZXgvTWFrZWZpbGUgYi9tb2R1bGVzL3JlZ2V4L01ha2VmaWxlCi1pbmRleCA3OWExNTA4MzkuLjQ5 NmMwNDM4ZSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvcmVnZXgvTWFrZWZpbGUKLSsrKyBiL21vZHVs ZXMvcmVnZXgvTWFrZWZpbGUKLUBAIC0xMCwxMCArMTAsMTAgQEAgTkFNRT1yZWdleC5zbwotIAot IGlmZXEgKCQoQ1JPU1NfQ09NUElMRSksKQotIFBDUkVfQlVJTERFUiA6PSAkKHNoZWxsIFwKLS0J aWYgd2hpY2ggcGNyZS1jb25maWcgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbiBcCi0tCQll Y2hvICdwY3JlLWNvbmZpZyc7IFwKLS0JZWxpZiBwa2ctY29uZmlnIC0tZXhpc3RzIGxpYmNyZTsg dGhlbiBcCi0tCQllY2hvICdwa2ctY29uZmlnIGxpYnBjcmUnOyBcCi0rCWlmIHdoaWNoIHBjcmUy LWNvbmZpZyA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuIFwKLSsJCWVjaG8gJ3BjcmUyLWNv bmZpZyc7IFwKLSsJZWxpZiBwa2ctY29uZmlnIC0tZXhpc3RzIGxpYnBjcmUyLTg7IHRoZW4gXAot KwkJZWNobyAncGtnLWNvbmZpZyBsaWJwY3JlMi04JzsgXAotIAlmaSkKLSBlbmRpZgotIAoKZGlm ZiAtLWdpdCBhL29wZW5zaXBzLTAwMTctZGlhbHBsYW4tZml4LWNvcHlpbmctc3Vic3Qtcy1vdXQt dmVjdG9yLnBhdGNoIGIvb3BlbnNpcHMtMDAxNy1kaWFscGxhbi1maXgtY29weWluZy1zdWJzdC1z LW91dC12ZWN0b3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4NDA2ZmMu LjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAxNy1kaWFscGxhbi1maXgtY29weWluZy1zdWJzdC1z LW91dC12ZWN0b3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi1Gcm9tIDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBSYXp2YW4gQ3JhaW5lYSA8cmF6dmFuQG9wZW5zaXBzLm9yZz4KLURhdGU6 IFR1ZSwgMiBEZWMgMjAyNSAxNTo0MDoxNSArMDIwMAotU3ViamVjdDogW1BBVENIXSBkaWFscGxh bjogZml4IGNvcHlpbmcgc3Vic3QncyBvdXQgdmVjdG9yCi0KLShjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IDMwODI1ZTRlMDgwOWExYTYxZjA2Y2VjOTY0NTg5YzgyNTY0NWI2MmIpCi0KLWRpZmYg LS1naXQgYS9tb2R1bGVzL2RpYWxwbGFuL2RwX3JlcGwuYyBiL21vZHVsZXMvZGlhbHBsYW4vZHBf cmVwbC5jCi1pbmRleCA0MzE3YjMzNGQuLjA3NjQxNDhhOSAxMDA2NDQKLS0tLSBhL21vZHVsZXMv ZGlhbHBsYW4vZHBfcmVwbC5jCi0rKysgYi9tb2R1bGVzL2RpYWxwbGFuL2RwX3JlcGwuYwotQEAg LTQ0MCwyMSArNDQwLDIxIEBAIGludCB0ZXN0X21hdGNoKHN0ciBzdHJpbmcsIHBjcmUyX2NvZGUg KiBleHAsIGludCAqIG91dCwgaW50IG91dF9tYXgpCi0gCX0KLSAKLSAJb3ZlY3RvciA9IHBjcmUy X2dldF9vdmVjdG9yX3BvaW50ZXIobWF0Y2hfZGF0YSk7Ci0tCWZvciAoaSA9IDA7IGkgPCByZXN1 bHRfY291bnQ7IGkrKykKLS0JewotLQkJLy8gYXZvaWQgYnVmZmVyIG92ZXJmbG93Ci0tCQlpZiAo aSA+PSBvdXRfbWF4KQotLQkJCWJyZWFrOwotKwlpZiAoMiAqIHJlc3VsdF9jb3VudCA+PSBvdXRf bWF4KQotKwkJcmVzdWx0X2NvdW50ID0gb3V0X21heCAvIDI7Ci0gCi0tCQkvLyBvdmVjdG9yIGlz IGZyZWVkIGJ5IHBjcmUyX21hdGNoX2RhdGFfZnJlZSwgY29weSBvZmZzZXRzIHRvIG91dFtdCi0r CS8vIG92ZWN0b3IgaXMgZnJlZWQgYnkgcGNyZTJfbWF0Y2hfZGF0YV9mcmVlLCBjb3B5IG9mZnNl dHMgdG8gb3V0W10KLSsJZm9yIChpID0gMDsgaSA8IHJlc3VsdF9jb3VudCAqIDI7IGkrKykKLSAJ CW91dFtpXSA9IG92ZWN0b3JbaV07Ci0rCXBjcmUyX21hdGNoX2RhdGFfZnJlZShtYXRjaF9kYXRh KTsKLSAKLSsJZm9yIChpID0gMDsgaSA8IHJlc3VsdF9jb3VudDsgaSsrKQotKwl7Ci0gCQlzdWJz dHJpbmdfc3RhcnQgPSBzdHJpbmcucyArIG91dFsyICogaV07Ci0gCQlzdWJzdHJpbmdfbGVuZ3Ro ID0gb3V0WzIgKiBpICsgMV0gLSBvdXRbMiAqIGldOwotIAkJTE1fREJHKCJ0ZXN0X21hdGNoOlsl ZF0gJS4qc1xuIixpLCBzdWJzdHJpbmdfbGVuZ3RoLCBzdWJzdHJpbmdfc3RhcnQpOwotIAl9Ci0g Ci0tCXBjcmUyX21hdGNoX2RhdGFfZnJlZShtYXRjaF9kYXRhKTsKLSAJcmV0dXJuIHJlc3VsdF9j b3VudDsKLSB9Ci0gCgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAxOC1kaWFscGxhbi1tYWtlLW1v ZHVsZS13b3JrLXdpdGgtYm90aC1wY3JlMi1hbmQtcGNyZTMtLnBhdGNoIGIvb3BlbnNpcHMtMDAx OC1kaWFscGxhbi1tYWtlLW1vZHVsZS13b3JrLXdpdGgtYm90aC1wY3JlMi1hbmQtcGNyZTMtLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjE0MjRmLi4wMDAwMDAwCi0tLSBh L29wZW5zaXBzLTAwMTgtZGlhbHBsYW4tbWFrZS1tb2R1bGUtd29yay13aXRoLWJvdGgtcGNyZTIt YW5kLXBjcmUzLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0OSArMCwwIEBACi1Gcm9tIDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBSYXp2YW4gQ3JhaW5lYSA8cmF6dmFuQG9wZW5zaXBzLm9yZz4KLURhdGU6 IFRodSwgNCBEZWMgMjAyNSAxOToyNzowNyArMDIwMAotU3ViamVjdDogW1BBVENIXSBkaWFscGxh bjogbWFrZSBtb2R1bGUgd29yayB3aXRoIGJvdGggcGNyZTIgYW5kIHBjcmUzIGxpYnMKLQotKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNjc0ODNhNWEyN2NlNjU2ZWFmOTQwOWY3NzEwY2Y2Nzc5 OGU3MGFhYykKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGlhbHBsYW4vTWFrZWZpbGUgYi9tb2R1 bGVzL2RpYWxwbGFuL01ha2VmaWxlCi1pbmRleCA1MDViZDk1NDAuLmE5MzdkMzI4NSAxMDA2NDQK LS0tLSBhL21vZHVsZXMvZGlhbHBsYW4vTWFrZWZpbGUKLSsrKyBiL21vZHVsZXMvZGlhbHBsYW4v TWFrZWZpbGUKLUBAIC04LDEyICs4LDE2IEBAIE5BTUU9ZGlhbHBsYW4uc28KLSAjIHRoZSBhdXRv ZGV0ZWN0aW9uCi0gIyBDUk9TU19DT01QSUxFPXRydWUKLSAKLStQQ1JFX0xJQiA/PSBwY3JlMi04 Ci0rUENSRV9WRVJTSU9OID89ICQod29yZCAxLCQoc3Vic3QgLSwgLCAkKFBDUkVfTElCKSkpCi0r UENSRV9DT05GSUcgPz0gJChQQ1JFX1ZFUlNJT04pLWNvbmZpZwotKwotIGlmZXEgKCQoQ1JPU1Nf Q09NUElMRSksKQotIFBDUkVfQlVJTERFUiA6PSAkKHNoZWxsIFwKLS0JaWYgd2hpY2ggcGNyZTIt Y29uZmlnID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4gXAotLQkJZWNobyAncGNyZTItY29u ZmlnJzsgXAotLQllbGlmIHBrZy1jb25maWcgLS1leGlzdHMgbGlicGNyZTItODsgdGhlbiBcCi0t CQllY2hvICdwa2ctY29uZmlnIGxpYnBjcmUyLTgnOyBcCi0rCWlmIHdoaWNoICQoUENSRV9DT05G SUcpID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4gXAotKwkJZWNobyAnJChQQ1JFX0NPTkZJ RyknOyBcCi0rCWVsaWYgcGtnLWNvbmZpZyAtLWV4aXN0cyBsaWIkKFBDUkVfTElCKTsgdGhlbiBc Ci0rCQllY2hvICdwa2ctY29uZmlnIGxpYiQoUENSRV9MSUIpJzsgXAotIAlmaSkKLSBlbmRpZgot IAotQEAgLTIxLDEwICsyNSwxMiBAQCBpZmVxICgkKFBDUkVfQlVJTERFUiksKQotIAlERUZTICs9 IC1JJChTWVNCQVNFKS9pbmNsdWRlIFwKLSAJCQktSSQoTE9DQUxCQVNFKS9pbmNsdWRlCi0gCUxJ QlMgKz0gLUwkKFNZU0JBU0UpL2xpYiBcCi0tCQkJLUwkKExPQ0FMQkFTRSkvbGliIC1scGNyZTIt OAotKwkJCS1MJChMT0NBTEJBU0UpL2xpYiAtbCQoUENSRV9MSUIpCi0gZWxzZQotIAlERUZTICs9 ICQoc2hlbGwgJChQQ1JFX0JVSUxERVIpIC0tY2ZsYWdzKQotLQlMSUJTICs9ICQoc2hlbGwgJChQ Q1JFX0JVSUxERVIpIC0tbGliczgpCi0rCUxJQlMgKz0gJChzaGVsbCAkKFBDUkVfQlVJTERFUikg LS1saWJzIDI+L2Rldi9udWxsKSBcCi0rCQkJJChzaGVsbCAkKFBDUkVfQlVJTERFUikgLS1saWJz JCh3b3JkIDIsJChzdWJzdCAtLCAsJChQQ1JFX0xJQikpKSAyPi9kZXYvbnVsbCkKLSBlbmRpZgot K0RFRlMgKz0gLUQkKHNoZWxsIGVjaG8gJChQQ1JFX1ZFUlNJT04pIHwgdHIgJ2EteicgJ0EtWicp X0xJQgotIAotIGluY2x1ZGUgLi4vLi4vTWFrZWZpbGUubW9kdWxlcwotZGlmZiAtLWdpdCBhL21v ZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uYyBiL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uYwot aW5kZXggOGJjN2NmYmVjLi5kNjJhZDgwZTkgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2RpYWxwbGFu L2RpYWxwbGFuLmMKLSsrKyBiL21vZHVsZXMvZGlhbHBsYW4vZGlhbHBsYW4uYwotQEAgLTg2LDEy ICs4NiwzMiBAQCBzdGF0aWMgc3RyIGRhdGFiYXNlX3VybCA9IHtOVUxMLCAwfTsKLSAKLSB2b2lk ICpkcF9zcmcgPSBOVUxMOwotIAotKyNpZmRlZiBQQ1JFMl9MSUIKLSBwY3JlMl9nZW5lcmFsX2Nv bnRleHQgKmRwX2djb250ZXh0ID0gTlVMTDsKLSBwY3JlMl9jb21waWxlX2NvbnRleHQgKmRwX2Nj b250ZXh0ID0gTlVMTDsKLSAKLS12b2lkICogd3JhcF9zaG1fbWFsbG9jKFBDUkUyX1NJWkUgc2l6 ZSwgdm9pZCAqIG1lbW9yeV9kYXRhKTsKLS12b2lkIHdyYXBfc2htX2ZyZWUodm9pZCAqIHAsIHZv aWQgKiBtZW1vcnlfZGF0YSk7Ci0rdm9pZCAqIHdyYXBfc2htX21hbGxvYyhQQ1JFMl9TSVpFIHNp emUsIHZvaWQgKiBtZW1vcnlfZGF0YSkKLSt7Ci0rCVVOVVNFRChtZW1vcnlfZGF0YSk7Ci0rCXJl dHVybiBzaG1fbWFsbG9jKHNpemUpOwotK30KLSsKLSt2b2lkICB3cmFwX3NobV9mcmVlKHZvaWQg KiBwLCB2b2lkICogbWVtb3J5X2RhdGEpCi0rewotKwlVTlVTRUQobWVtb3J5X2RhdGEpOwotKwlz aG1fZnJlZShwKTsKLSt9Ci0rI2Vsc2UKLSt2b2lkICogd3JhcF9zaG1fbWFsbG9jKHNpemVfdCBz aXplKQotK3sKLSsJcmV0dXJuIHNobV9tYWxsb2Moc2l6ZSk7Ci0rfQotIAotK3ZvaWQgIHdyYXBf c2htX2ZyZWUodm9pZCAqIHAgKQotK3sKLSsJc2htX2ZyZWUocCk7Ci0rfQotKyNlbmRpZgotIAot IHN0YXRpYyBjb25zdCBwYXJhbV9leHBvcnRfdCBtb2RfcGFyYW1zW109ewotIAl7ICJwYXJ0aXRp b24iLAkJU1RSX1BBUkFNfFVTRV9GVU5DX1BBUkFNLAotQEAgLTQwNCw2ICs0MjQsNyBAQCBzdGF0 aWMgaW50IG1vZF9pbml0KHZvaWQpCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLSsjaWZkZWYgUENS RTJfTElCCi0gCWRwX2djb250ZXh0ID0gcGNyZTJfZ2VuZXJhbF9jb250ZXh0X2NyZWF0ZSh3cmFw X3NobV9tYWxsb2MsIHdyYXBfc2htX2ZyZWUsIE5VTEwpOwotIAlpZiAoIWRwX2djb250ZXh0KSB7 Ci0gCQlMTV9FUlIoIlVuYWJsZSB0byBjcmVhdGUgcGNyZSBnZW5lcmFsIGNvbnRleHRcbiIpOwot QEAgLTQxNSw2ICs0MzYsOCBAQCBzdGF0aWMgaW50IG1vZF9pbml0KHZvaWQpCi0gCQlMTV9FUlIo IlVuYWJsZSB0byBjcmVhdGUgcGNyZSBjb21waWxlIGNvbnRleHRcbiIpOwotIAkJcmV0dXJuIC0x OwotIAl9Ci0rI2VuZGlmCi0rCi0gCi0gCXJldHVybiAwOwotIH0KLUBAIC00NzAsNyArNDkzLDcg QEAgc3RhdGljIHZvaWQgbW9kX2Rlc3Ryb3kodm9pZCkKLSAJfQotIAotIAlkZXN0cm95X2RhdGEo KTsKLS0KLSsjaWZkZWYgUENSRTJfTElCCi0gCWlmIChkcF9jY29udGV4dCkKLSAJewotIAkJcGNy ZTJfY29tcGlsZV9jb250ZXh0X2ZyZWUoZHBfY2NvbnRleHQpOwotQEAgLTQ4Miw2ICs1MDUsNyBA QCBzdGF0aWMgdm9pZCBtb2RfZGVzdHJveSh2b2lkKQotIAkJcGNyZTJfZ2VuZXJhbF9jb250ZXh0 X2ZyZWUoZHBfZ2NvbnRleHQpOwotIAkJZHBfZ2NvbnRleHQgPSBOVUxMOwotIAl9Ci0rI2VuZGlm Ci0gfQotIAotIAotQEAgLTg5OSwyNSArOTIzLDIxIEBAIHN0YXRpYyBtaV9yZXNwb25zZV90ICpt aV90cmFuc2xhdGUzKGNvbnN0IG1pX3BhcmFtc190ICpwYXJhbXMsCi0gfQotIAotIAotLXZvaWQg KiB3cmFwX3NobV9tYWxsb2MoUENSRTJfU0laRSBzaXplLCB2b2lkICogbWVtb3J5X2RhdGEpCi0t ewotLQlVTlVTRUQobWVtb3J5X2RhdGEpOwotLQlyZXR1cm4gc2htX21hbGxvYyhzaXplKTsKLS19 Ci0tCi0tdm9pZCB3cmFwX3NobV9mcmVlKHZvaWQgKiBwLCB2b2lkICogbWVtb3J5X2RhdGEpCi0t ewotLQlVTlVTRUQobWVtb3J5X2RhdGEpOwotLQlzaG1fZnJlZShwKTsKLS19Ci0tCi0gcGNyZTJf Y29kZSAqIHdyYXBfcGNyZV9jb21waWxlKGNoYXIgKiAgcGF0dGVybiwgaW50IGZsYWdzKQotIHsK LSAJcGNyZTJfY29kZSAqIHJldCA7Ci0tCWludCBlcnJvcjsKLSsJUENSRTJfRVJSIGVycm9yOwot IAlQQ1JFMl9TSVpFIGVycm9mZnNldDsKLSAJaW50IHBjcmVfZmxhZ3MgPSAwOwotIAotKyNpZm5k ZWYgUENSRTJfTElCCi0rCXZvaWQgKigqb2xkX21hbGxvYykoc2l6ZV90KSA9IHBjcmVfbWFsbG9j OwotKwl2b2lkICAoKm9sZF9mcmVlKSh2b2lkICopID0gcGNyZV9mcmVlOwotKwotKwlwY3JlX21h bGxvYyA9IHdyYXBfc2htX21hbGxvYzsKLSsJcGNyZV9mcmVlID0gd3JhcF9zaG1fZnJlZTsKLSsj ZW5kaWYKLSsKLSAJaWYgKGZsYWdzICYgRFBfQ0FTRV9JTlNFTlNJVElWRSkKLSAJCXBjcmVfZmxh Z3MgfD0gUENSRTJfQ0FTRUxFU1M7Ci0gCi1AQCAtOTI5LDYgKzk0OSwxMSBAQCBwY3JlMl9jb2Rl ICogd3JhcF9wY3JlX2NvbXBpbGUoY2hhciAqICBwYXR0ZXJuLCBpbnQgZmxhZ3MpCi0gCQkJJmVy cm9mZnNldCwJCQkvKiBmb3IgZXJyb3Igb2Zmc2V0ICovCi0gCQkJZHBfY2NvbnRleHQpOyAgICAg ICAgICAgICAgICAgICAgICAvKiBjb21waWxlIGNvbnRleHQsIHRvIGFsbG9jYXRlIG1lbW9yeSBp biBzaG0gKi8KLSAKLSsjaWZuZGVmIFBDUkUyX0xJQgotKwlwY3JlX21hbGxvYyA9IG9sZF9tYWxs b2M7Ci0rCXBjcmVfZnJlZSA9IG9sZF9mcmVlOwotKyNlbmRpZgotKwotIAlyZXR1cm4gcmV0Owot IH0KLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2RpYWxwbGFuL2RpYWxwbGFuLmggYi9tb2R1bGVz L2RpYWxwbGFuL2RpYWxwbGFuLmgKLWluZGV4IGQ3OThhZTRhNy4uN2QxNTc4ZTc5IDEwMDY0NAot LS0tIGEvbW9kdWxlcy9kaWFscGxhbi9kaWFscGxhbi5oCi0rKysgYi9tb2R1bGVzL2RpYWxwbGFu L2RpYWxwbGFuLmgKLUBAIC0zMSw4ICszMSwyNSBAQAotIAotICNpbmNsdWRlICIuLi8uLi9kYi9k Yi5oIgotICNpbmNsdWRlICIuLi8uLi9yZS5oIgotKwotKyNpZmRlZiBQQ1JFMl9MSUIKLSAjZGVm aW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4Ci0rI2RlZmluZSBQQ1JFMl9FUlIgaW50Ci0gI2lu Y2x1ZGUgPHBjcmUyLmg+Ci0rI2Vsc2UKLSsvKiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwot KyNkZWZpbmUgcGNyZTJfY29kZSBwY3JlCi0rI2RlZmluZSBQQ1JFMl9DQVNFTEVTUyBQQ1JFX0NB U0VMRVNTCi0rI2RlZmluZSBQQ1JFMl9TSVpFIGludAotKyNkZWZpbmUgUENSRTJfRVJSIGNvbnN0 IGNoYXIgKgotKyNkZWZpbmUgcGNyZTJfcGF0dGVybl9pbmZvKHN1YnN0X2NvbXAsIGZsYWcsIHJl dCkgXAotKwlwY3JlX2Z1bGxpbmZvKHN1YnN0X2NvbXAsIE5VTEwsIFBDUkVfSU5GT19DQVBUVVJF Q09VTlQsIHJldCk7Ci0rI2RlZmluZSBQQ1JFMl9TUFRSIGNoYXIgKgotKyNkZWZpbmUgcGNyZTJf Y29tcGlsZShwYXR0ZXJuLCBfLCBmbGFncywgZXJyb3IsIGVycm9mZnNldCwgY3R4KSBcCi0rCXBj cmVfY29tcGlsZShwYXR0ZXJuLCBmbGFncywgZXJyb3IsIGVycm9mZnNldCwgTlVMTCkKLSsjaW5j bHVkZSA8cGNyZS5oPgotKyNlbmRpZgotKwotIAotICNkZWZpbmUgUkVHRVhfT1AJMQotICNkZWZp bmUgRVFVQUxfT1AJMAotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGlhbHBsYW4vZHBfcmVwbC5jIGIv bW9kdWxlcy9kaWFscGxhbi9kcF9yZXBsLmMKLWluZGV4IDA3NjQxNDhhOS4uYzZiOTdjMjNlIDEw MDY0NAotLS0tIGEvbW9kdWxlcy9kaWFscGxhbi9kcF9yZXBsLmMKLSsrKyBiL21vZHVsZXMvZGlh bHBsYW4vZHBfcmVwbC5jCi1AQCAtNDAxLDE2ICs0MDEsMzYgQEAgaW50IHRlc3RfbWF0Y2goc3Ry IHN0cmluZywgcGNyZTJfY29kZSAqIGV4cCwgaW50ICogb3V0LCBpbnQgb3V0X21heCkKLSAJaW50 IGksIHJlc3VsdF9jb3VudDsKLSAJY2hhciAqc3Vic3RyaW5nX3N0YXJ0OwotIAlpbnQgc3Vic3Ry aW5nX2xlbmd0aDsKLSsjaWZkZWYgUENSRTJfTElCCi0gCXBjcmUyX21hdGNoX2RhdGEgKm1hdGNo X2RhdGE7Ci0gCVBDUkUyX1NJWkUgKm92ZWN0b3I7Ci0tCVVOVVNFRChzdWJzdHJpbmdfc3RhcnQp OwotLQlVTlVTRUQoc3Vic3RyaW5nX2xlbmd0aCk7Ci0rI2VuZGlmCi0gCi0gCWlmKCFleHApewot IAkJTE1fRVJSKCJpbnZhbGlkIGNvbXBpbGVkIGV4cHJlc3Npb25cbiIpOwotIAkJcmV0dXJuIC0x OwotIAl9Ci0gCi0rI2lmbmRlZiBQQ1JFMl9MSUIKLSsJcmVzdWx0X2NvdW50ID0gcGNyZV9leGVj KAotKwkJCQkJCQlleHAsIC8qIHRoZSBjb21waWxlZCBwYXR0ZXJuICovCi0rCQkJCQkJCU5VTEws IC8qIG5vIGV4dHJhIGRhdGEgLSB3ZSBkaWRuJ3Qgc3R1ZHkgdGhlIHBhdHRlcm4gKi8KLSsJCQkJ CQkJc3RyaW5nLnMsIC8qIHRoZSBzdWJqZWN0IHN0cmluZyAqLwotKwkJCQkJCQlzdHJpbmcubGVu LCAvKiB0aGUgbGVuZ3RoIG9mIHRoZSBzdWJqZWN0ICovCi0rCQkJCQkJCTAsIC8qIHN0YXJ0IGF0 IG9mZnNldCAwIGluIHRoZSBzdWJqZWN0ICovCi0rCQkJCQkJCTAsIC8qIGRlZmF1bHQgb3B0aW9u cyAqLwotKwkJCQkJCQlvdXQsIC8qIG91dHB1dCB2ZWN0b3IgZm9yIHN1YnN0cmluZyBpbmZvcm1h dGlvbiAqLwotKwkJCQkJCQlvdXRfbWF4KTsgLyogbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBv dXRwdXQgdmVjdG9yICovCi0rCi0rCWlmKCByZXN1bHRfY291bnQgPCAwICkKLSsJCXJldHVybiBy ZXN1bHRfY291bnQ7Ci0rCi0rCWlmKCByZXN1bHRfY291bnQgPT0gMCkKLSsJewotKwkJTE1fRVJS KCJOb3QgZW5vdWdoIHNwYWNlIGZvciBtYXRoaW5nXG4iKTsKLSsJCXJldHVybiByZXN1bHRfY291 bnQ7Ci0rCX0KLSsjZWxzZQotIAltYXRjaF9kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVf ZnJvbV9wYXR0ZXJuKGV4cCwgTlVMTCk7Ci0gCWlmICghbWF0Y2hfZGF0YSkgewotIAkJTE1fRVJS KCJmYWlsZWQgdG8gYWxsb2NhdGUgbWF0Y2ggZGF0YVxuIik7Ci1AQCAtNDQ3LDYgKzQ2Nyw4IEBA IGludCB0ZXN0X21hdGNoKHN0ciBzdHJpbmcsIHBjcmUyX2NvZGUgKiBleHAsIGludCAqIG91dCwg aW50IG91dF9tYXgpCi0gCWZvciAoaSA9IDA7IGkgPCByZXN1bHRfY291bnQgKiAyOyBpKyspCi0g CQlvdXRbaV0gPSBvdmVjdG9yW2ldOwotIAlwY3JlMl9tYXRjaF9kYXRhX2ZyZWUobWF0Y2hfZGF0 YSk7Ci0rI2VuZGlmCi0rCi0gCi0gCWZvciAoaSA9IDA7IGkgPCByZXN1bHRfY291bnQ7IGkrKykK LSAJewoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMTktdXBkYXRlLXJlZ2V4LW1vZHVsZS1mb3It cGNyZTIucGF0Y2ggYi9vcGVuc2lwcy0wMDE5LXVwZGF0ZS1yZWdleC1tb2R1bGUtZm9yLXBjcmUy LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjdkNjFlLi4wMDAwMDAwCi0t LSBhL29wZW5zaXBzLTAwMTktdXBkYXRlLXJlZ2V4LW1vZHVsZS1mb3ItcGNyZTIucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyNjQgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RldmUg QXlyZSA8c3RldmVuLmF5cmVAZHViYmVyLm5ldD4KLURhdGU6IFdlZCwgMTcgU2VwIDIwMjUgMjI6 MTE6MjUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gdXBkYXRlIHJlZ2V4IG1vZHVsZSBmb3IgcGNy ZTIKLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgM2NjMjhkMTY2YjVhM2Q3ZGIyY2QyZDk0 NDQwNjQ4MGU1YTE0NzRmNSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvcmVnZXgvTWFrZWZpbGUg Yi9tb2R1bGVzL3JlZ2V4L01ha2VmaWxlCi1pbmRleCA0OTZjMDQzOGUuLmI0YzJkZmUwNyAxMDA2 NDQKLS0tLSBhL21vZHVsZXMvcmVnZXgvTWFrZWZpbGUKLSsrKyBiL21vZHVsZXMvcmVnZXgvTWFr ZWZpbGUKLUBAIC0yMSwxMCArMjEsMTAgQEAgaWZlcSAoJChQQ1JFX0JVSUxERVIpLCkKLSAJREVG UyArPSAtSSQoU1lTQkFTRSkvaW5jbHVkZSBcCi0gCQkJLUkkKExPQ0FMQkFTRSkvaW5jbHVkZQot IAlMSUJTICs9IC1MJChTWVNCQVNFKS9saWIgXAotLQkJCS1MJChMT0NBTEJBU0UpL2xpYiAtbHBj cmUKLSsJCQktTCQoTE9DQUxCQVNFKS9saWIgLWxwY3JlMi04Ci0gZWxzZQotIAlERUZTICs9ICQo c2hlbGwgJChQQ1JFX0JVSUxERVIpIC0tY2ZsYWdzKQotLQlMSUJTICs9ICQoc2hlbGwgJChQQ1JF X0JVSUxERVIpIC0tbGlicykKLSsJTElCUyArPSAkKHNoZWxsICQoUENSRV9CVUlMREVSKSAtLWxp YnM4KQotIGVuZGlmCi0gCi0gaW5jbHVkZSAuLi8uLi9NYWtlZmlsZS5tb2R1bGVzCi1kaWZmIC0t Z2l0IGEvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYyBiL21vZHVsZXMvcmVnZXgvcmVnZXhfbW9k LmMKLWluZGV4IGQxYTkxNDQ5Yy4uOTMxMWQyYjkzIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9yZWdl eC9yZWdleF9tb2QuYwotKysrIGIvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYwotQEAgLTU4LDYg KzU4LDggQEAKLSAjZGVmaW5lIE1BWF9HUk9VUFMgMjAgICAgICAgICAgICAvKiE8IE1heCBudW1i ZXIgb2YgZ3JvdXBzICovCi0gI2RlZmluZSBHUk9VUF9NQVhfU0laRSA4MTkyICAgICAgLyohPCBN YXggc2l6ZSBvZiBhIGdyb3VwICovCi0gCi0rI2RlZmluZSBFUlJPUl9CVUZfU0laRSAxMDAKLSsK LSAKLSAvKgotICAqIExvY2tpbmcgdmFyaWFibGVzCi1AQCAtODAsOCArODIsOCBAQCBzdGF0aWMg aW50IHBjcmVfZXh0ZW5kZWQgICAgICAgICA9IDA7Ci0gLyoKLSAgKiBNb2R1bGUgaW50ZXJuYWwg cGFyYW1ldGVyIHZhcmlhYmxlcwotICAqLwotLXN0YXRpYyBwY3JlICoqcGNyZXM7Ci0tc3RhdGlj IHBjcmUgKioqcGNyZXNfYWRkcjsKLStzdGF0aWMgcGNyZTJfY29kZSAqKnBjcmVzOwotK3N0YXRp YyBwY3JlMl9jb2RlICoqKnBjcmVzX2FkZHI7Ci0gc3RhdGljIGludCAqbnVtX3BjcmVzOwotIHN0 YXRpYyBpbnQgcGNyZV9vcHRpb25zID0gMHgwMDAwMDAwMDsKLSAKLUBAIC0yMjEsMjQgKzIyMywy NCBAQCBzdGF0aWMgaW50IG1vZF9pbml0KHZvaWQpCi0gCQkvKiBQQ1JFIG9wdGlvbnMgKi8KLSAJ CWlmIChwY3JlX2Nhc2VsZXNzICE9IDApIHsKLSAJCQlMTV9EQkcoIlBDUkUgQ0FTRUxFU1MgZW5h YmxlZFxuIik7Ci0tCQkJcGNyZV9vcHRpb25zID0gcGNyZV9vcHRpb25zIHwgUENSRV9DQVNFTEVT UzsKLSsJCQlwY3JlX29wdGlvbnMgPSBwY3JlX29wdGlvbnMgfCBQQ1JFMl9DQVNFTEVTUzsKLSAJ CX0KLSAJCWlmIChwY3JlX211bHRpbGluZSAhPSAwKSB7Ci0gCQkJTE1fREJHKCJQQ1JFIE1VTFRJ TElORSBlbmFibGVkXG4iKTsKLS0JCQlwY3JlX29wdGlvbnMgPSBwY3JlX29wdGlvbnMgfCBQQ1JF X01VTFRJTElORTsKLSsJCQlwY3JlX29wdGlvbnMgPSBwY3JlX29wdGlvbnMgfCBQQ1JFMl9NVUxU SUxJTkU7Ci0gCQl9Ci0gCQlpZiAocGNyZV9kb3RhbGwgIT0gMCkgewotIAkJCUxNX0RCRygiUENS RSBET1RBTEwgZW5hYmxlZFxuIik7Ci0tCQkJcGNyZV9vcHRpb25zID0gcGNyZV9vcHRpb25zIHwg UENSRV9ET1RBTEw7Ci0rCQkJcGNyZV9vcHRpb25zID0gcGNyZV9vcHRpb25zIHwgUENSRTJfRE9U QUxMOwotIAkJfQotIAkJaWYgKHBjcmVfZXh0ZW5kZWQgIT0gMCkgewotIAkJCUxNX0RCRygiUENS RSBFWFRFTkRFRCBlbmFibGVkXG4iKTsKLS0JCQlwY3JlX29wdGlvbnMgPSBwY3JlX29wdGlvbnMg fCBQQ1JFX0VYVEVOREVEOwotKwkJCXBjcmVfb3B0aW9ucyA9IHBjcmVfb3B0aW9ucyB8IFBDUkUy X0VYVEVOREVEOwotIAkJfQotIAkJTE1fREJHKCJQQ1JFIG9wdGlvbnM6ICVpXG4iLCBwY3JlX29w dGlvbnMpOwotIAotIAkJLyogUG9pbnRlciB0byBwY3JlcyAqLwotLQkJaWYgKChwY3Jlc19hZGRy ID0gc2htX21hbGxvYyhzaXplb2YocGNyZSAqKikpKSA9PSAwKSB7Ci0rCQlpZiAoKHBjcmVzX2Fk ZHIgPSBzaG1fbWFsbG9jKHNpemVvZihwY3JlMl9jb2RlICoqKSkpID09IDApIHsKLSAJCQlMTV9F UlIoIm5vIG1lbW9yeSBmb3IgcGNyZXNfYWRkclxuIik7Ci0gCQkJZ290byBlcnI7Ci0gCQl9Ci1A QCAtMjc5LDEzICsyODEsMTQgQEAgc3RhdGljIGludCBsb2FkX3BjcmVzKGludCBhY3Rpb24pCi0g CUZJTEUgKmY7Ci0gCWNoYXIgbGluZVtGSUxFX01BWF9MSU5FXTsKLSAJY2hhciAqKnBhdHRlcm5z ID0gTlVMTDsKLS0JcGNyZSAqcGNyZV90bXAgPSBOVUxMOwotLQlpbnQgcGNyZV9zaXplOwotKwlw Y3JlMl9jb2RlICpwY3JlX3RtcCA9IE5VTEw7Ci0rCXNpemVfdCBwY3JlX3NpemU7Ci0gCWludCBw Y3JlX3JjOwotLQljb25zdCBjaGFyICpwY3JlX2Vycm9yOwotLQlpbnQgcGNyZV9lcnJvZmZzZXQ7 Ci0rCWludCBwY3JlX2Vycm9yOwotKwlQQ1JFMl9VQ0hBUiBwY3JlX2Vycm9yX3N0cltFUlJPUl9C VUZfU0laRV07Ci0rCVBDUkUyX1NJWkUgcGNyZV9lcnJvZmZzZXQ7Ci0gCWludCBudW1fcGNyZXNf dG1wID0gMDsKLS0JcGNyZSAqKnBjcmVzX3RtcCA9IE5VTEw7Ci0rCXBjcmUyX2NvZGUgKipwY3Jl c190bXAgPSBOVUxMOwotIAotIAkvKiBHZXQgdGhlIGxvY2sgKi8KLSAJbG9ja19nZXQocmVsb2Fk X2xvY2spOwotQEAgLTQyMCw3ICs0MjMsNyBAQCBzdGF0aWMgaW50IGxvYWRfcGNyZXMoaW50IGFj dGlvbikKLSAJfQotIAotIAkvKiBUZW1wb3JhbCBwb2ludGVyIG9mIHBjcmVzICovCi0tCWlmICgo cGNyZXNfdG1wID0gcGtnX21hbGxvYyhzaXplb2YocGNyZSAqKSAqIG51bV9wY3Jlc190bXApKSA9 PSAwKSB7Ci0rCWlmICgocGNyZXNfdG1wID0gcGtnX21hbGxvYyhzaXplb2YocGNyZTJfY29kZSAq KSAqIG51bV9wY3Jlc190bXApKSA9PSAwKSB7Ci0gCQlMTV9FUlIoIm5vIG1vcmUgbWVtb3J5IGZv ciBwY3Jlc190bXBcbiIpOwotIAkJZ290byBlcnI7Ci0gCX0KLUBAIC00MzEsMTQgKzQzNCwxNSBA QCBzdGF0aWMgaW50IGxvYWRfcGNyZXMoaW50IGFjdGlvbikKLSAJLyogQ29tcGlsZSB0aGUgcGF0 dGVycyAqLwotIAlmb3IgKGk9MDsgaTxudW1fcGNyZXNfdG1wOyBpKyspIHsKLSAKLS0JCXBjcmVf dG1wID0gcGNyZV9jb21waWxlKHBhdHRlcm5zW2ldLCBwY3JlX29wdGlvbnMsICZwY3JlX2Vycm9y LCAmcGNyZV9lcnJvZmZzZXQsIE5VTEwpOwotKwkJcGNyZV90bXAgPSBwY3JlMl9jb21waWxlKChQ Q1JFMl9TUFRSKXBhdHRlcm5zW2ldLCBQQ1JFMl9aRVJPX1RFUk1JTkFURUQsIHBjcmVfb3B0aW9u cywgJnBjcmVfZXJyb3IsICZwY3JlX2Vycm9mZnNldCwgTlVMTCk7Ci0gCQlpZiAocGNyZV90bXAg PT0gTlVMTCkgewotLQkJCUxNX0VSUigicGNyZV90bXAgY29tcGlsYXRpb24gb2YgJyVzJyBmYWls ZWQgYXQgb2Zmc2V0ICVkOiAlc1xuIiwgcGF0dGVybnNbaV0sIHBjcmVfZXJyb2Zmc2V0LCBwY3Jl X2Vycm9yKTsKLSsgICAgICAgICAgICAgICAgCXBjcmUyX2dldF9lcnJvcl9tZXNzYWdlKHBjcmVf ZXJyb3IsIHBjcmVfZXJyb3Jfc3RyLCBzaXplb2YocGNyZV9lcnJvcl9zdHIpKTsKLSsJCQlMTV9F UlIoInBjcmVfdG1wIGNvbXBpbGF0aW9uIG9mICclcycgZmFpbGVkIGF0IG9mZnNldCAlbGQ6ICVz XG4iLCBwYXR0ZXJuc1tpXSwgcGNyZV9lcnJvZmZzZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSAJCQln b3RvIGVycjsKLSAJCX0KLS0JCXBjcmVfcmMgPSBwY3JlX2Z1bGxpbmZvKHBjcmVfdG1wLCBOVUxM LCBQQ1JFX0lORk9fU0laRSwgJnBjcmVfc2l6ZSk7Ci0rCQlwY3JlX3JjID0gcGNyZTJfcGF0dGVy bl9pbmZvKHBjcmVfdG1wLCBQQ1JFMl9JTkZPX1NJWkUsICZwY3JlX3NpemUpOwotIAkJaWYgKHBj cmVfcmMpIHsKLS0JCQlwcmludGYoInBjcmVfZnVsbGluZm8gb24gY29tcGlsZWQgcGF0dGVyblsl aV0geWllbGRlZCBlcnJvcjogJWRcbiIsIGksIHBjcmVfcmMpOwotKwkJCXByaW50ZigicGNyZTJf cGF0dGVybl9pbmZvIG9uIGNvbXBpbGVkIHBhdHRlcm5bJWldIHlpZWxkZWQgZXJyb3I6ICVkXG4i LCBpLCBwY3JlX3JjKTsKLSAJCQlnb3RvIGVycjsKLSAJCX0KLSAKLUBAIC00NDgsNyArNDUyLDcg QEAgc3RhdGljIGludCBsb2FkX3BjcmVzKGludCBhY3Rpb24pCi0gCQl9Ci0gCi0gCQltZW1jcHko cGNyZXNfdG1wW2ldLCBwY3JlX3RtcCwgcGNyZV9zaXplKTsKLS0JCXBjcmVfZnJlZShwY3JlX3Rt cCk7Ci0rCQlwY3JlMl9jb2RlX2ZyZWUocGNyZV90bXApOwotIAkJcGtnX2ZyZWUocGF0dGVybnNb aV0pOwotIAl9Ci0gCi1AQCAtNDYxLDcgKzQ2NSw3IEBAIHN0YXRpYyBpbnQgbG9hZF9wY3Jlcyhp bnQgYWN0aW9uKQotIAkJfQotIAkJc2htX2ZyZWUocGNyZXMpOwotIAl9Ci0tCWlmICgocGNyZXMg PSBzaG1fbWFsbG9jKHNpemVvZihwY3JlICopICogbnVtX3BjcmVzX3RtcCkpID09IDApIHsKLSsJ aWYgKChwY3JlcyA9IHNobV9tYWxsb2Moc2l6ZW9mKHBjcmUyX2NvZGUgKikgKiBudW1fcGNyZXNf dG1wKSkgPT0gMCkgewotIAkJTE1fRVJSKCJubyBtb3JlIG1lbW9yeSBmb3IgcGNyZXNcbiIpOwot IAkJZ290byBlcnI7Ci0gCX0KLUBAIC00NjksNyArNDczLDcgQEAgc3RhdGljIGludCBsb2FkX3Bj cmVzKGludCBhY3Rpb24pCi0gCQlwY3Jlc1tpXSA9IE5VTEw7Ci0gCX0KLSAJZm9yIChpPTA7IGk8 bnVtX3BjcmVzX3RtcDsgaSsrKSB7Ci0tCQlwY3JlX3JjID0gcGNyZV9mdWxsaW5mbyhwY3Jlc190 bXBbaV0sIE5VTEwsIFBDUkVfSU5GT19TSVpFLCAmcGNyZV9zaXplKTsKLSsJCXBjcmVfcmMgPSBw Y3JlMl9wYXR0ZXJuX2luZm8ocGNyZXNfdG1wW2ldLCBQQ1JFMl9JTkZPX1NJWkUsICZwY3JlX3Np emUpOwotIAkJaWYgKChwY3Jlc1tpXSA9IHNobV9tYWxsb2MocGNyZV9zaXplKSkgPT0gMCkgewot IAkJCUxNX0VSUigibm8gbW9yZSBtZW1vcnkgZm9yIHBjcmVzWyVpXVxuIiwgaSk7Ci0gCQkJZ290 byBlcnI7Ci1AQCAtNTU1LDQ4ICs1NTksNTQgQEAgc3RhdGljIHZvaWQgZnJlZV9zaGFyZWRfbWVt b3J5KHZvaWQpCi0gLyohIFxicmllZiBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXJndW1lbnQgbWF0Y2hl cyB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhcmFtZXRlciAqLwotIHN0YXRpYyBpbnQgd19wY3Jl X21hdGNoKHN0cnVjdCBzaXBfbXNnKiBfbXNnLCBzdHIqIHN0cmluZywgc3RyKiBfcmVnZXhfcykK LSB7Ci0tCXBjcmUgKnBjcmVfcmUgPSBOVUxMOwotKwlwY3JlMl9jb2RlICpwY3JlX3JlID0gTlVM TDsKLSAJaW50IHBjcmVfcmM7Ci0tCWNvbnN0IGNoYXIgKnBjcmVfZXJyb3I7Ci0tCWludCBwY3Jl X2Vycm9mZnNldDsKLSsJaW50IHBjcmVfZXJyb3I7Ci0rCVBDUkUyX1VDSEFSIHBjcmVfZXJyb3Jf c3RyW0VSUk9SX0JVRl9TSVpFXTsKLSsJUENSRTJfU0laRSBwY3JlX2Vycm9mZnNldDsKLSsJcGNy ZTJfbWF0Y2hfZGF0YSAqbWF0Y2hfZGF0YTsKLSAJc3RyIHJlZ2V4OwotIAotIAlpZiAocGtnX250 X3N0cl9kdXAoJnJlZ2V4LCBfcmVnZXhfcykgPCAwKQotIAkJcmV0dXJuIC0xOwotIAotLQlwY3Jl X3JlID0gcGNyZV9jb21waWxlKHJlZ2V4LnMsIHBjcmVfb3B0aW9ucywgJnBjcmVfZXJyb3IsICZw Y3JlX2Vycm9mZnNldCwgTlVMTCk7Ci0rCXBjcmVfcmUgPSBwY3JlMl9jb21waWxlKChQQ1JFMl9T UFRSKXJlZ2V4LnMsIFBDUkUyX1pFUk9fVEVSTUlOQVRFRCwgcGNyZV9vcHRpb25zLCAmcGNyZV9l cnJvciwgJnBjcmVfZXJyb2Zmc2V0LCBOVUxMKTsKLSAJaWYgKHBjcmVfcmUgPT0gTlVMTCkgewot LQkJTE1fRVJSKCJwY3JlX3JlIGNvbXBpbGF0aW9uIG9mICclcycgZmFpbGVkIGF0IG9mZnNldCAl ZDogJXNcbiIsIHJlZ2V4LnMsIHBjcmVfZXJyb2Zmc2V0LCBwY3JlX2Vycm9yKTsKLSsgICAgICAg ICAgICAgICAgcGNyZTJfZ2V0X2Vycm9yX21lc3NhZ2UocGNyZV9lcnJvciwgcGNyZV9lcnJvcl9z dHIsIHNpemVvZihwY3JlX2Vycm9yX3N0cikpOwotKwkJTE1fRVJSKCJwY3JlX3JlIGNvbXBpbGF0 aW9uIG9mICclcycgZmFpbGVkIGF0IG9mZnNldCAlbGQ6ICVzXG4iLCByZWdleC5zLCBwY3JlX2Vy cm9mZnNldCwgcGNyZV9lcnJvcl9zdHIpOwotIAkJcGtnX2ZyZWUocmVnZXgucyk7Ci0gCQlyZXR1 cm4gLTQ7Ci0gCX0KLSAKLS0JcGNyZV9yYyA9IHBjcmVfZXhlYygKLSsJbWF0Y2hfZGF0YSA9IHBj cmUyX21hdGNoX2RhdGFfY3JlYXRlKDAsIE5VTEwpOyAvLyBubyBjYXB0dXJlcyBuZWVkZWQKLSsK LSsJcGNyZV9yYyA9IHBjcmUyX21hdGNoKAotIAkJcGNyZV9yZSwgICAgICAgICAgICAgICAgICAg IC8qIHRoZSBjb21waWxlZCBwYXR0ZXJuICovCi0tCQlOVUxMLCAgICAgICAgICAgICAgICAgICAg ICAgLyogbm8gZXh0cmEgZGF0YSAtIHdlIGRpZG4ndCBzdHVkeSB0aGUgcGF0dGVybiAqLwotLQkJ c3RyaW5nLT5zLCAgICAgICAgICAgICAgICAgICAvKiB0aGUgbWF0Y2hpbmcgc3RyaW5nICovCi0t CQkoaW50KShzdHJpbmctPmxlbiksICAgICAgICAgIC8qIHRoZSBsZW5ndGggb2YgdGhlIHN1Ympl Y3QgKi8KLSsJCShQQ1JFMl9TUFRSKXN0cmluZy0+cywgICAgICAgICAgICAgICAgICAvKiB0aGUg bWF0Y2hpbmcgc3RyaW5nICovCi0rCQkoUENSRTJfU0laRSkoc3RyaW5nLT5sZW4pLCAgLyogdGhl IGxlbmd0aCBvZiB0aGUgc3ViamVjdCAqLwotIAkJMCwgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIHN0YXJ0IGF0IG9mZnNldCAwIGluIHRoZSBzdHJpbmcgKi8KLSAJCTAsICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi8KLS0JCU5VTEwsICAgICAgICAgICAg ICAgICAgICAgICAvKiBvdXRwdXQgdmVjdG9yIGZvciBzdWJzdHJpbmcgaW5mb3JtYXRpb24gKi8K LS0JCTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgZWxlbWVudHMgaW4g dGhlIG91dHB1dCB2ZWN0b3IgKi8KLSsJCW1hdGNoX2RhdGEsICAgICAgICAgICAgICAgICAvKiBt YXRjaCBkYXRhIGJsb2NrICovCi0rCQlOVUxMKTsgICAgICAgICAgICAgICAgICAgICAgLyogbWF0 Y2ggY29udGV4dCAqLwotKwotKwlwY3JlMl9tYXRjaF9kYXRhX2ZyZWUobWF0Y2hfZGF0YSk7Ci0g Ci0gCS8qIE1hdGNoaW5nIGZhaWxlZDogaGFuZGxlIGVycm9yIGNhc2VzICovCi0gCWlmIChwY3Jl X3JjIDwgMCkgewotIAkJc3dpdGNoKHBjcmVfcmMpIHsKLS0JCQljYXNlIFBDUkVfRVJST1JfTk9N QVRDSDoKLSsJCQljYXNlIFBDUkUyX0VSUk9SX05PTUFUQ0g6Ci0gCQkJCUxNX0RCRygiJyVzJyBk b2Vzbid0IG1hdGNoICclcydcbiIsIHN0cmluZy0+cywgcmVnZXgucyk7Ci0gCQkJCWJyZWFrOwot IAkJCWRlZmF1bHQ6Ci0gCQkJCUxNX0RCRygibWF0Y2hpbmcgZXJyb3IgJyVkJ1xuIiwgcGNyZV9y Yyk7Ci0gCQkJCWJyZWFrOwotIAkJfQotLQkJcGNyZV9mcmVlKHBjcmVfcmUpOwotKwkJcGNyZTJf Y29kZV9mcmVlKHBjcmVfcmUpOwotIAkJcGtnX2ZyZWUocmVnZXgucyk7Ci0gCQlyZXR1cm4gLTE7 Ci0gCX0KLSAKLS0JcGNyZV9mcmVlKHBjcmVfcmUpOwotKwlwY3JlMl9jb2RlX2ZyZWUocGNyZV9y ZSk7Ci0gCXBrZ19mcmVlKHJlZ2V4LnMpOwotIAlMTV9EQkcoIiclcycgbWF0Y2hlcyAnJXMnXG4i LCBzdHJpbmctPnMsIHJlZ2V4LnMpOwotIAlyZXR1cm4gMTsKLUBAIC02MDgsNiArNjE4LDcgQEAg c3RhdGljIGludCB3X3BjcmVfbWF0Y2hfZ3JvdXAoc3RydWN0IHNpcF9tc2cqIF9tc2csIHN0ciog c3RyaW5nLCBpbnQqIF9udW1fcGNyZSkKLSB7Ci0gCWludCBudW1fcGNyZTsKLSAJaW50IHBjcmVf cmM7Ci0rCXBjcmUyX21hdGNoX2RhdGEgKm1hdGNoX2RhdGE7Ci0gCi0gCS8qIENoZWNrIGlmIGdy b3VwIG1hdGNoaW5nIGZlYXR1cmUgaXMgZW5hYmxlZCAqLwotIAlpZiAoZmlsZSA9PSBOVUxMKSB7 Ci1AQCAtNjI3LDIyICs2MzgsMjUgQEAgc3RhdGljIGludCB3X3BjcmVfbWF0Y2hfZ3JvdXAoc3Ry dWN0IHNpcF9tc2cqIF9tc2csIHN0ciogc3RyaW5nLCBpbnQqIF9udW1fcGNyZSkKLSAKLSAJbG9j a19nZXQocmVsb2FkX2xvY2spOwotIAotLQlwY3JlX3JjID0gcGNyZV9leGVjKAotKwltYXRjaF9k YXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGUoMCwgTlVMTCk7IC8vIG5vIGNhcHR1cmVzIG5l ZWRlZAotKwotKwlwY3JlX3JjID0gcGNyZTJfbWF0Y2goCi0gCQkoKnBjcmVzX2FkZHIpW251bV9w Y3JlXSwgICAgLyogdGhlIGNvbXBpbGVkIHBhdHRlcm4gKi8KLS0JCU5VTEwsICAgICAgICAgICAg ICAgICAgICAgICAvKiBubyBleHRyYSBkYXRhIC0gd2UgZGlkbid0IHN0dWR5IHRoZSBwYXR0ZXJu ICovCi0tCQlzdHJpbmctPnMsICAgICAgICAgICAgICAgICAgIC8qIHRoZSBtYXRjaGluZyBzdHJp bmcgKi8KLS0JCShpbnQpKHN0cmluZy0+bGVuKSwgICAgICAgICAgLyogdGhlIGxlbmd0aCBvZiB0 aGUgc3ViamVjdCAqLwotKwkJKFBDUkUyX1NQVFIpc3RyaW5nLT5zLCAgICAgICAgICAgICAgICAg IC8qIHRoZSBtYXRjaGluZyBzdHJpbmcgKi8KLSsJCShQQ1JFMl9TSVpFKShzdHJpbmctPmxlbiks ICAvKiB0aGUgbGVuZ3RoIG9mIHRoZSBzdWJqZWN0ICovCi0gCQkwLCAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogc3RhcnQgYXQgb2Zmc2V0IDAgaW4gdGhlIHN0cmluZyAqLwotIAkJMCwgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqLwotLQkJTlVMTCwgICAg ICAgICAgICAgICAgICAgICAgIC8qIG91dHB1dCB2ZWN0b3IgZm9yIHN1YnN0cmluZyBpbmZvcm1h dGlvbiAqLwotLQkJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBlbGVt ZW50cyBpbiB0aGUgb3V0cHV0IHZlY3RvciAqLwotKwkJbWF0Y2hfZGF0YSwgICAgICAgICAgICAg ICAgIC8qIG1hdGNoIGRhdGEgYmxvY2sgKi8KLSsJCTApOyAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBtYXRjaCBjb250ZXh0ICovCi0rCi0rCXBjcmUyX21hdGNoX2RhdGFfZnJlZShtYXRjaF9k YXRhKTsKLSAKLSAJbG9ja19yZWxlYXNlKHJlbG9hZF9sb2NrKTsKLSAKLSAJLyogTWF0Y2hpbmcg ZmFpbGVkOiBoYW5kbGUgZXJyb3IgY2FzZXMgKi8KLSAJaWYgKHBjcmVfcmMgPCAwKSB7Ci0gCQlz d2l0Y2gocGNyZV9yYykgewotLQkJCWNhc2UgUENSRV9FUlJPUl9OT01BVENIOgotKwkJCWNhc2Ug UENSRTJfRVJST1JfTk9NQVRDSDoKLSAJCQkJTE1fREJHKCInJXMnIGRvZXNuJ3QgbWF0Y2ggcGNy ZXNbJWldXG4iLCBzdHJpbmctPnMsIG51bV9wY3JlKTsKLSAJCQkJYnJlYWs7Ci0gCQkJZGVmYXVs dDoKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDIwLXJlZ2V4LWFsbG93LXBjcmUzLWxpYnJhcnku cGF0Y2ggYi9vcGVuc2lwcy0wMDIwLXJlZ2V4LWFsbG93LXBjcmUzLWxpYnJhcnkucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMWEzNzcuLjAwMDAwMDAKLS0tIGEvb3BlbnNp cHMtMDAyMC1yZWdleC1hbGxvdy1wY3JlMy1saWJyYXJ5LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNDYgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmF6dmFuIENyYWluZWEgPHJhenZh bkBvcGVuc2lwcy5vcmc+Ci1EYXRlOiBXZWQsIDExIEZlYiAyMDI2IDE2OjE1OjExICswMjAwCi1T dWJqZWN0OiBbUEFUQ0hdIHJlZ2V4OiBhbGxvdyBwY3JlMyBsaWJyYXJ5Ci0KLQotZGlmZiAtLWdp dCBhL21vZHVsZXMvcmVnZXgvTWFrZWZpbGUgYi9tb2R1bGVzL3JlZ2V4L01ha2VmaWxlCi1pbmRl eCBiNGMyZGZlMDcuLmQwOWFhMjQ1YiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvcmVnZXgvTWFrZWZp bGUKLSsrKyBiL21vZHVsZXMvcmVnZXgvTWFrZWZpbGUKLUBAIC04LDEyICs4LDE2IEBAIE5BTUU9 cmVnZXguc28KLSAjIHRoZSBhdXRvZGV0ZWN0aW9uCi0gIyBDUk9TU19DT01QSUxFPXRydWUKLSAK LStQQ1JFX0xJQiA/PSBwY3JlMi04Ci0rUENSRV9WRVJTSU9OID89ICQod29yZCAxLCQoc3Vic3Qg LSwgLCAkKFBDUkVfTElCKSkpCi0rUENSRV9DT05GSUcgPz0gJChQQ1JFX1ZFUlNJT04pLWNvbmZp ZwotKwotIGlmZXEgKCQoQ1JPU1NfQ09NUElMRSksKQotIFBDUkVfQlVJTERFUiA6PSAkKHNoZWxs IFwKLS0JaWYgd2hpY2ggcGNyZTItY29uZmlnID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4g XAotLQkJZWNobyAncGNyZTItY29uZmlnJzsgXAotLQllbGlmIHBrZy1jb25maWcgLS1leGlzdHMg bGlicGNyZTItODsgdGhlbiBcCi0tCQllY2hvICdwa2ctY29uZmlnIGxpYnBjcmUyLTgnOyBcCi0r CWlmIHdoaWNoICQoUENSRV9DT05GSUcpID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4gXAot KwkJZWNobyAnJChQQ1JFX0NPTkZJRyknOyBcCi0rCWVsaWYgcGtnLWNvbmZpZyAtLWV4aXN0cyBs aWIkKFBDUkVfTElCKTsgdGhlbiBcCi0rCQllY2hvICdwa2ctY29uZmlnIGxpYiQoUENSRV9MSUIp JzsgXAotIAlmaSkKLSBlbmRpZgotIAotQEAgLTIxLDEwICsyNSwxMiBAQCBpZmVxICgkKFBDUkVf QlVJTERFUiksKQotIAlERUZTICs9IC1JJChTWVNCQVNFKS9pbmNsdWRlIFwKLSAJCQktSSQoTE9D QUxCQVNFKS9pbmNsdWRlCi0gCUxJQlMgKz0gLUwkKFNZU0JBU0UpL2xpYiBcCi0tCQkJLUwkKExP Q0FMQkFTRSkvbGliIC1scGNyZTItOAotKwkJCS1MJChMT0NBTEJBU0UpL2xpYiAtbCQoUENSRV9M SUIpCi0gZWxzZQotIAlERUZTICs9ICQoc2hlbGwgJChQQ1JFX0JVSUxERVIpIC0tY2ZsYWdzKQot LQlMSUJTICs9ICQoc2hlbGwgJChQQ1JFX0JVSUxERVIpIC0tbGliczgpCi0rCUxJQlMgKz0gJChz aGVsbCAkKFBDUkVfQlVJTERFUikgLS1saWJzIDI+L2Rldi9udWxsKSBcCi0rCQkJJChzaGVsbCAk KFBDUkVfQlVJTERFUikgLS1saWJzJCh3b3JkIDIsJChzdWJzdCAtLCAsJChQQ1JFX0xJQikpKSAy Pi9kZXYvbnVsbCkKLSBlbmRpZgotK0RFRlMgKz0gLUQkKHNoZWxsIGVjaG8gJChQQ1JFX1ZFUlNJ T04pIHwgdHIgJ2EteicgJ0EtWicpX0xJQgotIAotIGluY2x1ZGUgLi4vLi4vTWFrZWZpbGUubW9k dWxlcwoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMjEtcmVnZXgtbWFrZS1tb2R1bGUtd29yay13 aXRoLWJvdGgtcGNyZTItYW5kLXBjcmUzLW5vdC5wYXRjaCBiL29wZW5zaXBzLTAwMjEtcmVnZXgt bWFrZS1tb2R1bGUtd29yay13aXRoLWJvdGgtcGNyZTItYW5kLXBjcmUzLW5vdC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZjNmQ2MC4uMDAwMDAwMAotLS0gYS9vcGVuc2lw cy0wMDIxLXJlZ2V4LW1ha2UtbW9kdWxlLXdvcmstd2l0aC1ib3RoLXBjcmUyLWFuZC1wY3JlMy1u b3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogUmF6dmFuIENyYWluZWEgPHJhenZhbkBvcGVuc2lwcy5vcmc+Ci1EYXRlOiBUaHUsIDE5 IEZlYiAyMDI2IDExOjM0OjAyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJlZ2V4OiBtYWtlIG1v ZHVsZSB3b3JrIHdpdGggYm90aCBwY3JlMiBhbmQgcGNyZTMsIG5vdCBqdXN0Ci0gY29tcGlsZQot Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiYmMxYTc1ZDViYTI1YzBmMjZhZmNkMjA4YjBm NWM3ZTFmZmZkM2I3KQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYyBi L21vZHVsZXMvcmVnZXgvcmVnZXhfbW9kLmMKLWluZGV4IDkzMTFkMmI5My4uNjczNGZiOGJmIDEw MDY0NAotLS0tIGEvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYwotKysrIGIvbW9kdWxlcy9yZWdl eC9yZWdleF9tb2QuYwotQEAgLTQwLDggKzQwLDM2IEBACi0gI2luY2x1ZGUgPHN0ZGxpYi5oPgot ICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSsjaWZkZWYgUENS RTJfTElCCi0gI2RlZmluZSBQQ1JFMl9DT0RFX1VOSVRfV0lEVEggOAotKyNkZWZpbmUgUENSRTJf RVJSIGludAotICNpbmNsdWRlIDxwY3JlMi5oPgotKyNlbHNlCi0rI2RlZmluZSBwY3JlMl9jb2Rl IHBjcmUKLSsjZGVmaW5lIFBDUkUyX1NJWkUgaW50Ci0rI2RlZmluZSBQQ1JFMl9FUlIgY29uc3Qg Y2hhciAqCi0rI2RlZmluZSBQQ1JFMl9DQVNFTEVTUyBQQ1JFX0NBU0VMRVNTCi0rI2RlZmluZSBQ Q1JFMl9NVUxUSUxJTkUgUENSRV9NVUxUSUxJTkUKLSsjZGVmaW5lIFBDUkUyX0RPVEFMTCBQQ1JF X0RPVEFMTAotKyNkZWZpbmUgUENSRTJfRVhURU5ERUQgUENSRV9FWFRFTkRFRAotKyNkZWZpbmUg UENSRTJfRVJST1JfTk9NQVRDSCBQQ1JFX0VSUk9SX05PTUFUQ0gKLSsjZGVmaW5lIFBDUkUyX1VD SEFSIHVuc2lnbmVkIGNoYXIKLSsjZGVmaW5lIFBDUkUyX1NQVFIgY2hhciAqCi0rI2RlZmluZSBw Y3JlMl9wYXR0ZXJuX2luZm8oc3Vic3RfY29tcCwgZmxhZywgcmV0KSBcCi0rCXBjcmVfZnVsbGlu Zm8oc3Vic3RfY29tcCwgTlVMTCwgUENSRV9JTkZPX0NBUFRVUkVDT1VOVCwgcmV0KTsKLSsjZGVm aW5lIHBjcmUyX2NvbXBpbGUocGF0dGVybiwgXywgZmxhZ3MsIGVycm9yLCBlcnJvZmZzZXQsIGN0 eCkgXAotKwlwY3JlX2NvbXBpbGUocGF0dGVybiwgZmxhZ3MsIGVycm9yLCBlcnJvZmZzZXQsIE5V TEwpCi0rI2RlZmluZSBwY3JlMl9jb2RlX2ZyZWUgcGNyZV9mcmVlCi0rI2RlZmluZSBwY3JlMl9n ZXRfZXJyb3JfbWVzc2FnZShlcnJvciwgZXJyb3Jfc3RyLCBlcnJvcl9zdHJfbGVuKSBcCi0rCWRv IHsgXAotKwkJaW50IF9sZW4gPSBzdHJsZW4oZXJyb3IpOyBcCi0rCQlpZiAoX2xlbiA+IGVycm9y X3N0cl9sZW4gLSAxKSBcCi0rCQkJX2xlbiA9IGVycm9yX3N0cl9sZW4gLSAxOyBcCi0rCQltZW1j cHkoZXJyb3Jfc3RyLCBlcnJvciwgX2xlbik7IFwKLSsJCWVycm9yX3N0cltfbGVuXSA9ICdcMCc7 IFwKLSsJfSB3aGlsZSAoMCkKLSsjaW5jbHVkZSA8cGNyZS5oPgotKyNlbmRpZgotICNpbmNsdWRl ICIuLi8uLi9zcl9tb2R1bGUuaCIKLSAjaW5jbHVkZSAiLi4vLi4vZHByaW50LmgiCi0gI2luY2x1 ZGUgIi4uLy4uL3B0LmgiCi1AQCAtMjg0LDcgKzMxMiw3IEBAIHN0YXRpYyBpbnQgbG9hZF9wY3Jl cyhpbnQgYWN0aW9uKQotIAlwY3JlMl9jb2RlICpwY3JlX3RtcCA9IE5VTEw7Ci0gCXNpemVfdCBw Y3JlX3NpemU7Ci0gCWludCBwY3JlX3JjOwotLQlpbnQgcGNyZV9lcnJvcjsKLSsJUENSRTJfRVJS IHBjcmVfZXJyb3I7Ci0gCVBDUkUyX1VDSEFSIHBjcmVfZXJyb3Jfc3RyW0VSUk9SX0JVRl9TSVpF XTsKLSAJUENSRTJfU0laRSBwY3JlX2Vycm9mZnNldDsKLSAJaW50IG51bV9wY3Jlc190bXAgPSAw OwotQEAgLTQzNyw3ICs0NjUsNyBAQCBzdGF0aWMgaW50IGxvYWRfcGNyZXMoaW50IGFjdGlvbikK LSAJCXBjcmVfdG1wID0gcGNyZTJfY29tcGlsZSgoUENSRTJfU1BUUilwYXR0ZXJuc1tpXSwgUENS RTJfWkVST19URVJNSU5BVEVELCBwY3JlX29wdGlvbnMsICZwY3JlX2Vycm9yLCAmcGNyZV9lcnJv ZmZzZXQsIE5VTEwpOwotIAkJaWYgKHBjcmVfdG1wID09IE5VTEwpIHsKLSAgICAgICAgICAgICAg ICAgCXBjcmUyX2dldF9lcnJvcl9tZXNzYWdlKHBjcmVfZXJyb3IsIHBjcmVfZXJyb3Jfc3RyLCBz aXplb2YocGNyZV9lcnJvcl9zdHIpKTsKLS0JCQlMTV9FUlIoInBjcmVfdG1wIGNvbXBpbGF0aW9u IG9mICclcycgZmFpbGVkIGF0IG9mZnNldCAlbGQ6ICVzXG4iLCBwYXR0ZXJuc1tpXSwgcGNyZV9l cnJvZmZzZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSsJCQlMTV9FUlIoInBjcmVfdG1wIGNvbXBpbGF0 aW9uIG9mICclcycgZmFpbGVkIGF0IG9mZnNldCAlenU6ICVzXG4iLCBwYXR0ZXJuc1tpXSwgKGxv bmcpcGNyZV9lcnJvZmZzZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSAJCQlnb3RvIGVycjsKLSAJCX0K LSAJCXBjcmVfcmMgPSBwY3JlMl9wYXR0ZXJuX2luZm8ocGNyZV90bXAsIFBDUkUyX0lORk9fU0la RSwgJnBjcmVfc2l6ZSk7Ci1AQCAtNTYxLDEwICs1ODksMTIgQEAgc3RhdGljIGludCB3X3BjcmVf bWF0Y2goc3RydWN0IHNpcF9tc2cqIF9tc2csIHN0ciogc3RyaW5nLCBzdHIqIF9yZWdleF9zKQot IHsKLSAJcGNyZTJfY29kZSAqcGNyZV9yZSA9IE5VTEw7Ci0gCWludCBwY3JlX3JjOwotLQlpbnQg cGNyZV9lcnJvcjsKLSsJUENSRTJfRVJSIHBjcmVfZXJyb3I7Ci0gCVBDUkUyX1VDSEFSIHBjcmVf ZXJyb3Jfc3RyW0VSUk9SX0JVRl9TSVpFXTsKLSAJUENSRTJfU0laRSBwY3JlX2Vycm9mZnNldDsK LSsjaWZkZWYgUENSRTJfTElCCi0gCXBjcmUyX21hdGNoX2RhdGEgKm1hdGNoX2RhdGE7Ci0rI2Vu ZGlmCi0gCXN0ciByZWdleDsKLSAKLSAJaWYgKHBrZ19udF9zdHJfZHVwKCZyZWdleCwgX3JlZ2V4 X3MpIDwgMCkKLUBAIC01NzMsMTEgKzYwMywyMiBAQCBzdGF0aWMgaW50IHdfcGNyZV9tYXRjaChz dHJ1Y3Qgc2lwX21zZyogX21zZywgc3RyKiBzdHJpbmcsIHN0ciogX3JlZ2V4X3MpCi0gCXBjcmVf cmUgPSBwY3JlMl9jb21waWxlKChQQ1JFMl9TUFRSKXJlZ2V4LnMsIFBDUkUyX1pFUk9fVEVSTUlO QVRFRCwgcGNyZV9vcHRpb25zLCAmcGNyZV9lcnJvciwgJnBjcmVfZXJyb2Zmc2V0LCBOVUxMKTsK LSAJaWYgKHBjcmVfcmUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICBwY3JlMl9nZXRfZXJy b3JfbWVzc2FnZShwY3JlX2Vycm9yLCBwY3JlX2Vycm9yX3N0ciwgc2l6ZW9mKHBjcmVfZXJyb3Jf c3RyKSk7Ci0tCQlMTV9FUlIoInBjcmVfcmUgY29tcGlsYXRpb24gb2YgJyVzJyBmYWlsZWQgYXQg b2Zmc2V0ICVsZDogJXNcbiIsIHJlZ2V4LnMsIHBjcmVfZXJyb2Zmc2V0LCBwY3JlX2Vycm9yX3N0 cik7Ci0rCQlMTV9FUlIoInBjcmVfcmUgY29tcGlsYXRpb24gb2YgJyVzJyBmYWlsZWQgYXQgb2Zm c2V0ICV6dTogJXNcbiIsIHJlZ2V4LnMsIChsb25nKXBjcmVfZXJyb2Zmc2V0LCBwY3JlX2Vycm9y X3N0cik7Ci0gCQlwa2dfZnJlZShyZWdleC5zKTsKLSAJCXJldHVybiAtNDsKLSAJfQotIAotKyNp Zm5kZWYgUENSRTJfTElCCi0rCXBjcmVfcmMgPSBwY3JlX2V4ZWMoCi0rCQkJcGNyZV9yZSwgLyog dGhlIGNvbXBpbGVkIHBhdHRlcm4gKi8KLSsJCQlOVUxMLCAvKiBubyBleHRyYSBkYXRhIC0gd2Ug ZGlkbid0IHN0dWR5IHRoZSBwYXR0ZXJuICovCi0rCQkJc3RyaW5nLT5zLCAvKiB0aGUgc3ViamVj dCBzdHJpbmcgKi8KLSsJCQlzdHJpbmctPmxlbiwgLyogdGhlIGxlbmd0aCBvZiB0aGUgc3ViamVj dCAqLwotKwkJCTAsIC8qIHN0YXJ0IGF0IG9mZnNldCAwIGluIHRoZSBzdWJqZWN0ICovCi0rCQkJ MCwgLyogZGVmYXVsdCBvcHRpb25zICovCi0rCQkJTlVMTCwgLyogb3V0cHV0IHZlY3RvciBmb3Ig c3Vic3RyaW5nIGluZm9ybWF0aW9uICovCi0rCQkJMCk7IC8qIG51bWJlciBvZiBlbGVtZW50cyBp biB0aGUgb3V0cHV0IHZlY3RvciAqLwotKyNlbHNlCi0gCW1hdGNoX2RhdGEgPSBwY3JlMl9tYXRj aF9kYXRhX2NyZWF0ZSgwLCBOVUxMKTsgLy8gbm8gY2FwdHVyZXMgbmVlZGVkCi0gCi0gCXBjcmVf cmMgPSBwY3JlMl9tYXRjaCgKLUBAIC01OTAsNiArNjMxLDcgQEAgc3RhdGljIGludCB3X3BjcmVf bWF0Y2goc3RydWN0IHNpcF9tc2cqIF9tc2csIHN0ciogc3RyaW5nLCBzdHIqIF9yZWdleF9zKQot IAkJTlVMTCk7ICAgICAgICAgICAgICAgICAgICAgIC8qIG1hdGNoIGNvbnRleHQgKi8KLSAKLSAJ cGNyZTJfbWF0Y2hfZGF0YV9mcmVlKG1hdGNoX2RhdGEpOwotKyNlbmRpZgotIAotIAkvKiBNYXRj aGluZyBmYWlsZWQ6IGhhbmRsZSBlcnJvciBjYXNlcyAqLwotIAlpZiAocGNyZV9yYyA8IDApIHsK LUBAIC02MTgsNyArNjYwLDkgQEAgc3RhdGljIGludCB3X3BjcmVfbWF0Y2hfZ3JvdXAoc3RydWN0 IHNpcF9tc2cqIF9tc2csIHN0ciogc3RyaW5nLCBpbnQqIF9udW1fcGNyZSkKLSB7Ci0gCWludCBu dW1fcGNyZTsKLSAJaW50IHBjcmVfcmM7Ci0rI2lmZGVmIFBDUkUyX0xJQgotIAlwY3JlMl9tYXRj aF9kYXRhICptYXRjaF9kYXRhOwotKyNlbmRpZgotIAotIAkvKiBDaGVjayBpZiBncm91cCBtYXRj aGluZyBmZWF0dXJlIGlzIGVuYWJsZWQgKi8KLSAJaWYgKGZpbGUgPT0gTlVMTCkgewotQEAgLTYz OCw2ICs2ODIsMTcgQEAgc3RhdGljIGludCB3X3BjcmVfbWF0Y2hfZ3JvdXAoc3RydWN0IHNpcF9t c2cqIF9tc2csIHN0ciogc3RyaW5nLCBpbnQqIF9udW1fcGNyZSkKLSAKLSAJbG9ja19nZXQocmVs b2FkX2xvY2spOwotIAotKyNpZm5kZWYgUENSRTJfTElCCi0rCXBjcmVfcmMgPSBwY3JlX2V4ZWMo Ci0rCQkJKCpwY3Jlc19hZGRyKVtudW1fcGNyZV0sIC8qIHRoZSBjb21waWxlZCBwYXR0ZXJuICov Ci0rCQkJTlVMTCwgLyogbm8gZXh0cmEgZGF0YSAtIHdlIGRpZG4ndCBzdHVkeSB0aGUgcGF0dGVy biAqLwotKwkJCXN0cmluZy0+cywgLyogdGhlIHN1YmplY3Qgc3RyaW5nICovCi0rCQkJc3RyaW5n LT5sZW4sIC8qIHRoZSBsZW5ndGggb2YgdGhlIHN1YmplY3QgKi8KLSsJCQkwLCAvKiBzdGFydCBh dCBvZmZzZXQgMCBpbiB0aGUgc3ViamVjdCAqLwotKwkJCTAsIC8qIGRlZmF1bHQgb3B0aW9ucyAq LwotKwkJCU5VTEwsIC8qIG91dHB1dCB2ZWN0b3IgZm9yIHN1YnN0cmluZyBpbmZvcm1hdGlvbiAq LwotKwkJCTApOyAvKiBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIG91dHB1dCB2ZWN0b3IgKi8K LSsjZWxzZQotIAltYXRjaF9kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGUoMCwgTlVMTCk7 IC8vIG5vIGNhcHR1cmVzIG5lZWRlZAotIAotIAlwY3JlX3JjID0gcGNyZTJfbWF0Y2goCi1AQCAt NjUwLDYgKzcwNSw3IEBAIHN0YXRpYyBpbnQgd19wY3JlX21hdGNoX2dyb3VwKHN0cnVjdCBzaXBf bXNnKiBfbXNnLCBzdHIqIHN0cmluZywgaW50KiBfbnVtX3BjcmUpCi0gCQkwKTsgICAgICAgICAg ICAgICAgICAgICAgICAgLyogbWF0Y2ggY29udGV4dCAqLwotIAotIAlwY3JlMl9tYXRjaF9kYXRh X2ZyZWUobWF0Y2hfZGF0YSk7Ci0rI2VuZGlmCi0gCi0gCWxvY2tfcmVsZWFzZShyZWxvYWRfbG9j ayk7Ci0gCgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAyMi1yZWdleC1maXgtYnJva2VuLW1lcmdl LnBhdGNoIGIvb3BlbnNpcHMtMDAyMi1yZWdleC1maXgtYnJva2VuLW1lcmdlLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGEzZWZkLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBz LTAwMjItcmVnZXgtZml4LWJyb2tlbi1tZXJnZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5 ICswLDAgQEAKLUZyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJhenZhbiBDcmFpbmVhIDxyYXp2YW5Ab3Bl bnNpcHMub3JnPgotRGF0ZTogVGh1LCAxOSBGZWIgMjAyNiAxMjozNzoyNiArMDIwMAotU3ViamVj dDogW1BBVENIXSByZWdleDogZml4IGJyb2tlbiBtZXJnZQotCi0oY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCBiMGMxYmNhZmEyODQ5NzdlNTNmYzZiMmFjNmM2NTkzNjVmODg0MDRjKQotCi1kaWZm IC0tZ2l0IGEvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYyBiL21vZHVsZXMvcmVnZXgvcmVnZXhf bW9kLmMKLWluZGV4IDY3MzRmYjhiZi4uMWFjNDkyYjI1IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9y ZWdleC9yZWdleF9tb2QuYwotKysrIGIvbW9kdWxlcy9yZWdleC9yZWdleF9tb2QuYwotQEAgLTQ2 NSw3ICs0NjUsNyBAQCBzdGF0aWMgaW50IGxvYWRfcGNyZXMoaW50IGFjdGlvbikKLSAJCXBjcmVf dG1wID0gcGNyZTJfY29tcGlsZSgoUENSRTJfU1BUUilwYXR0ZXJuc1tpXSwgUENSRTJfWkVST19U RVJNSU5BVEVELCBwY3JlX29wdGlvbnMsICZwY3JlX2Vycm9yLCAmcGNyZV9lcnJvZmZzZXQsIE5V TEwpOwotIAkJaWYgKHBjcmVfdG1wID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgCXBjcmUy X2dldF9lcnJvcl9tZXNzYWdlKHBjcmVfZXJyb3IsIHBjcmVfZXJyb3Jfc3RyLCBzaXplb2YocGNy ZV9lcnJvcl9zdHIpKTsKLS0JCQlMTV9FUlIoInBjcmVfdG1wIGNvbXBpbGF0aW9uIG9mICclcycg ZmFpbGVkIGF0IG9mZnNldCAlenU6ICVzXG4iLCBwYXR0ZXJuc1tpXSwgKGxvbmcpcGNyZV9lcnJv ZmZzZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSsJCQlMTV9FUlIoInBjcmVfdG1wIGNvbXBpbGF0aW9u IG9mICclcycgZmFpbGVkIGF0IG9mZnNldCAlbHU6ICVzXG4iLCBwYXR0ZXJuc1tpXSwgKHVuc2ln bmVkIGxvbmcpcGNyZV9lcnJvZmZzZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSAJCQlnb3RvIGVycjsK LSAJCX0KLSAJCXBjcmVfcmMgPSBwY3JlMl9wYXR0ZXJuX2luZm8ocGNyZV90bXAsIFBDUkUyX0lO Rk9fU0laRSwgJnBjcmVfc2l6ZSk7Ci1AQCAtNjAzLDcgKzYwMyw3IEBAIHN0YXRpYyBpbnQgd19w Y3JlX21hdGNoKHN0cnVjdCBzaXBfbXNnKiBfbXNnLCBzdHIqIHN0cmluZywgc3RyKiBfcmVnZXhf cykKLSAJcGNyZV9yZSA9IHBjcmUyX2NvbXBpbGUoKFBDUkUyX1NQVFIpcmVnZXgucywgUENSRTJf WkVST19URVJNSU5BVEVELCBwY3JlX29wdGlvbnMsICZwY3JlX2Vycm9yLCAmcGNyZV9lcnJvZmZz ZXQsIE5VTEwpOwotIAlpZiAocGNyZV9yZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgIHBj cmUyX2dldF9lcnJvcl9tZXNzYWdlKHBjcmVfZXJyb3IsIHBjcmVfZXJyb3Jfc3RyLCBzaXplb2Yo cGNyZV9lcnJvcl9zdHIpKTsKLS0JCUxNX0VSUigicGNyZV9yZSBjb21waWxhdGlvbiBvZiAnJXMn IGZhaWxlZCBhdCBvZmZzZXQgJXp1OiAlc1xuIiwgcmVnZXgucywgKGxvbmcpcGNyZV9lcnJvZmZz ZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSsJCUxNX0VSUigicGNyZV9yZSBjb21waWxhdGlvbiBvZiAn JXMnIGZhaWxlZCBhdCBvZmZzZXQgJWx1OiAlc1xuIiwgcmVnZXgucywgKHVuc2lnbmVkIGxvbmcp cGNyZV9lcnJvZmZzZXQsIHBjcmVfZXJyb3Jfc3RyKTsKLSAJCXBrZ19mcmVlKHJlZ2V4LnMpOwot IAkJcmV0dXJuIC00OwotIAl9CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMuc3BlYyBiL29wZW5zaXBz LnNwZWMKaW5kZXggNzRlMTA1Yi4uN2U4Njk3ZSAxMDA2NDQKLS0tIGEvb3BlbnNpcHMuc3BlYwor KysgYi9vcGVuc2lwcy5zcGVjCkBAIC0xLDEwICsxLDEwIEBACi0lZ2xvYmFsIGdpdF9jb21taXQg MjM2N2RlYjhlMmM0MDhhMmQzOGU5MGQ4MGI1YTk1ODBkYmRmZjk1OQorJWdsb2JhbCBnaXRfY29t bWl0IGVhZWU0OGUyOGUzMWUwOWQ2NWY3MzViNDc4ZDljYTU3ZGM3Y2NjZWQKIAogJWdsb2JhbCBF WENMVURFX01PRFVMRVMgY2FjaGVkYl9jYXNzYW5kcmEgY2FjaGVkYl9keW5hbW9kYiAleyE/X3dp dGhfb3JhY2xlOmRiX29yYWNsZX0gZXZlbnRfc3FzIGV4YW1wbGUgbGF1bmNoX2RhcmtseSBvc3Ag cnRwLmlvIHNuZ3RjIHRsc193b2xmc3NsCiAKIFN1bW1hcnk6ICBPcGVuIFNvdXJjZSBTSVAgU2Vy dmVyCiBOYW1lOiAgICAgb3BlbnNpcHMKLVZlcnNpb246ICAzLjYuNAorVmVyc2lvbjogIDMuNi43 CiBSZWxlYXNlOiAgJWF1dG9yZWxlYXNlCiBMaWNlbnNlOiAgR1BMLTIuMC1vci1sYXRlcgogU291 cmNlMDogIGh0dHBzOi8vZ2l0aHViLmNvbS8le25hbWV9LyV7bmFtZX0vYXJjaGl2ZS8le3ZlcnNp b259LyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKQEAgLTE4LDIwICsxOCw4IEBAIFBhdGNoOiBv cGVuc2lwcy0wMDA1LUZpeC1yYWJiaXRtcS1jLWRlcHJlY2F0ZWQtaGVhZGVyLXdhcm5pbmdzLnBh dGNoCiBQYXRjaDogb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YXJpYWJsZS13YXJu aW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoCiBQYXRjaDogb3BlbnNpcHMtMDAwNy1GaXgtY29u c3QtY29ycmVjdG5lc3Mtd2FybmluZ3MtaW4tSFRUUC1hbmQtRnJlZVNXSVRDLnBhdGNoCiBQYXRj aDogb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24tcHBj NjRsZS1hbmQtaTY4LnBhdGNoCi1QYXRjaDogb3BlbnNpcHMtMDAwOS1GaXgtZm9ybWF0LXNwZWNp Zmllci13YXJuaW5ncy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXJlLnBhdGNoCi1QYXRjaDogb3BlbnNp cHMtMDAxMC1GaXgtcG9pbnRlci10cnVuY2F0aW9uLXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVj dHVyLnBhdGNoCi1QYXRjaDogb3BlbnNpcHMtMDAxMS1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9u LXdhcm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCi1QYXRjaDogb3BlbnNpcHMtMDAxMi1z dXBwb3J0LWZvci1saWJtb25nYy1saWJic29uLXZlcnNpb24tMi5wYXRjaAotUGF0Y2g6IG9wZW5z aXBzLTAwMTMtcmVxdWlyZS1saWJwY3JlMi5wYXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAwMTQtdXBk YXRlLWRpYWxwbGFuLW1vZHVsZS1mb3ItcGNyZTIucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDE1 LWNyZWF0ZS1wY3JlMi1jb21waWxlLWNvbnRleHQtb25jZS1pbnN0ZWFkLW9mLWZvci1lYWMucGF0 Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDE2LU1ha2VmaWxlLXR3ZWFrcy10by1hdm9pZC1zaGVsbC0u LWV4cGFuc2lvbnMtZnJvbS1mYWkucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDE3LWRpYWxwbGFu LWZpeC1jb3B5aW5nLXN1YnN0LXMtb3V0LXZlY3Rvci5wYXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAw MTgtZGlhbHBsYW4tbWFrZS1tb2R1bGUtd29yay13aXRoLWJvdGgtcGNyZTItYW5kLXBjcmUzLS5w YXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAwMTktdXBkYXRlLXJlZ2V4LW1vZHVsZS1mb3ItcGNyZTIu cGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDIwLXJlZ2V4LWFsbG93LXBjcmUzLWxpYnJhcnkucGF0 Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDIxLXJlZ2V4LW1ha2UtbW9kdWxlLXdvcmstd2l0aC1ib3Ro LXBjcmUyLWFuZC1wY3JlMy1ub3QucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDIyLXJlZ2V4LWZp eC1icm9rZW4tbWVyZ2UucGF0Y2gKK1BhdGNoOiBvcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRy dW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKK1BhdGNoOiBvcGVu c2lwcy0wMDEwLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRz LW1vZHUucGF0Y2gKIAogVVJMOiAgICAgIGh0dHBzOi8vb3BlbnNpcHMub3JnCiAKCmRpZmYgLS1n aXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAxMTU1YjdhLi41Zjg3OGMzIDEwMDY0NAotLS0g YS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLVNIQTUxMiAob3BlbnNpcHMtMy42 LjQudGFyLmd6KSA9IDBhYWNkYmIzZjMyMWM3MWYwYTA3MjNjZDdmZDQ4MzdlNjU3ZTEyMjgyMjRl M2VlNjIzN2JlZWM1YzU2MzllNDliMGRhNWJjMDQ0NDkyOWYzNDY1NzAzZWFmZGI3NmI3MjQ0M2Rj NDYxMDU3MTViNTZhZDdiZWNhYWVhMTBmNjZkCitTSEE1MTIgKG9wZW5zaXBzLTMuNi43LnRhci5n eikgPSAxNzUwYjFiNzZiNTQ5YTI0NDJiOGEyN2Q0YTliMTBhNzlmZjY3MGQxZjdhNzA3NWQ0NzFm Y2MwNTBkNDdiMzllYTliNzhkODU0NWFjM2I0MTMyYjM2MTFiMmM0MTE1ODA0MzYzOTM4MjlmYjQ1 MTMwYzc5MTVmM2JjYzc5NGYzYgo=