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: Dmitry Belyavskiy To: git-commits@fedoraproject.org Subject: [rpms/openssl] f44: Rebase to OpenSSL 3.5.7 Date: Wed, 10 Jun 2026 12:14:39 GMT Message-ID: <178109367900.1.2021041560280170235.rpms-openssl-41f6acd6f478@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: f44 X-Git-Rev: 41f6acd6f478a34d96e47681ac0bdf6b72d580eb QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiBmNDQKQ29tbWl0IDogNDFmNmFjZDZmNDc4YTM0ZDk2ZTQ3NjgxYWMwYmRmNmI3MmQ1ODBl YgpBdXRob3IgOiBEbWl0cnkgQmVseWF2c2tpeSA8ZGJlbHlhdnNAcmVkaGF0LmNvbT4KRGF0ZSAg IDogMjAyNi0wNi0xMFQxNDoxNDowNSswMjowMApTdGF0cyAgOiArOC8tODEyIGluIDExIGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9vcGVuc3NsL2Mv NDFmNmFjZDZmNDc4YTM0ZDk2ZTQ3NjgxYWMwYmRmNmI3MmQ1ODBlYj9icmFuY2g9ZjQ0CgpMb2c6 ClJlYmFzZSB0byBPcGVuU1NMIDMuNS43CgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8u Z2l0aWdub3JlCmluZGV4IGVmYWI2MjIuLjdkY2NkMWUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUK KysrIGIvLmdpdGlnbm9yZQpAQCAtNjksMyArNjksNCBAQCBvcGVuc3NsLTEuMC4wYS11c2EudGFy LmJ6MgogL29wZW5zc2wtMy41LjEudGFyLmd6CiAvb3BlbnNzbC0zLjUuNC50YXIuZ3oKIC9vcGVu c3NsLTMuNS41LnRhci5negorL29wZW5zc2wtMy41LjcudGFyLmd6CgpkaWZmIC0tZ2l0IGEvMDAw Ni1SSC1BZGQtc3VwcG9ydC1mb3ItUFJPRklMRS1TWVNURU0tc3lzdGVtLWRlZmF1bHQtY2lwLnBh dGNoIGIvMDAwNi1SSC1BZGQtc3VwcG9ydC1mb3ItUFJPRklMRS1TWVNURU0tc3lzdGVtLWRlZmF1 bHQtY2lwLnBhdGNoCmluZGV4IGQ1M2M0OWEuLjhkN2NhZTcgMTAwNjQ0Ci0tLSBhLzAwMDYtUkgt QWRkLXN1cHBvcnQtZm9yLVBST0ZJTEUtU1lTVEVNLXN5c3RlbS1kZWZhdWx0LWNpcC5wYXRjaAor KysgYi8wMDA2LVJILUFkZC1zdXBwb3J0LWZvci1QUk9GSUxFLVNZU1RFTS1zeXN0ZW0tZGVmYXVs dC1jaXAucGF0Y2gKQEAgLTMxNyw3ICszMTcsNyBAQCBpbmRleCA5ODc0ZTZiYWQ2Li43NmI2YmVm YmFkIDEwMDY0NAogKyNlbmRpZgogICAgICBBRERfVEVTVCh0ZXN0X2RlZmF1bHRfY2lwaGVybGlz dF9leHBsaWNpdCk7CiAgICAgIEFERF9URVNUKHRlc3RfZGVmYXVsdF9jaXBoZXJsaXN0X2NsZWFy KTsKLSAgICAgQUREX1RFU1QodGVzdF9zdGRuYW1lX2NpcGhlcmxpc3QpOworICNpZm5kZWYgT1BF TlNTTF9OT19UTFMxXzMKIC0tIAogMi41Mi4wCiAKCmRpZmYgLS1naXQgYS8wMDU4LUNWRS0yMDI2 LTI2NzMucGF0Y2ggYi8wMDU4LUNWRS0yMDI2LTI2NzMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDZlZTBhYjUuLjAwMDAwMDAKLS0tIGEvMDA1OC1DVkUtMjAyNi0yNjczLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDI0ICswLDAgQEAKLUZyb20gODU5NzdlMDEzZjMyY2Vi OTZhYTAzNGMwZTc0MWFkZGRjMWEwNWUzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFZpa3RvciBEdWtob3ZuaSA8b3BlbnNzbC11c2Vyc0BkdWtob3ZuaS5vcmc+Ci1EYXRlOiBUdWUs IDE3IEZlYiAyMDI2IDE4OjM3OjA2ICsxMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBncm91cCB0 dXBsZSBoYW5kbGluZyBpbiBERUZBVUxUIGV4cGFuc2lvbgotCi1BbHNvIGZpbmUtdHVuZSBkb2Nz IGFuZCBhZGQgdGVzdHMuCi0KLUZpeGVzOiAjMzAxMDkKLUZpeGVzOiBDVkUtMjAyNi0yNjczCi0K LVJldmlld2VkLWJ5OiBNYXR0IENhc3dlbGwgPG1hdHRAb3BlbnNzbC5mb3VuZGF0aW9uPgotUmV2 aWV3ZWQtYnk6IFBhdWwgRGFsZSA8cGF1bC5kYWxlQG9yYWNsZS5jb20+Ci1SZXZpZXdlZC1ieTog VG9tYXMgTXJheiA8dG9tYXNAb3BlbnNzbC5vcmc+Ci1NZXJnZURhdGU6IEZyaSBNYXIgMTMgMTI6 NDQ6MDYgMjAyNgotKE1lcmdlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3NsL29wZW5z c2wvcHVsbC8zMDExMCkKLS0tLQotCi1kaWZmIC0tZ2l0IGEvZG9jL21hbjMvU1NMX0NUWF9zZXQx X2N1cnZlcy5wb2QgYi9kb2MvbWFuMy9TU0xfQ1RYX3NldDFfY3VydmVzLnBvZAotaW5kZXggMDE3 ZWVmZDMxNzZhOS4uNDcyZDM4NTgzMTVhOSAxMDA3NTUKLS0tLSBhL2RvYy9tYW4zL1NTTF9DVFhf c2V0MV9jdXJ2ZXMucG9kCi0rKysgYi9kb2MvbWFuMy9TU0xfQ1RYX3NldDFfY3VydmVzLnBvZAot QEAgLTQwLDEzICs0MCwxMyBAQCBTU0xfZ2V0MV9jdXJ2ZXMsIFNTTF9nZXRfc2hhcmVkX2N1cnZl LCBTU0xfQ1RYX2dldDBfaW1wbGVtZW50ZWRfZ3JvdXBzCi0gCi0gRm9yIGFsbCBvZiB0aGUgZnVu Y3Rpb25zIGJlbG93IHRoYXQgc2V0IHRoZSBzdXBwb3J0ZWQgZ3JvdXBzIHRoZXJlIG11c3QgYmUg YXQKLSBsZWFzdCBvbmUgZ3JvdXAgaW4gdGhlIGxpc3QuIEEgbnVtYmVyIG9mIHRoZXNlIGZ1bmN0 aW9ucyBpZGVudGlmeSBncm91cHMgdmlhIGEKLS11bmlxdWUgaW50ZWdlciBOSUQgdmFsdWUuIEhv d2V2ZXIsIHN1cHBvcnQgZm9yIHNvbWUgZ3JvdXBzIG1heSBiZSBhZGRlZCBieQotLWV4dGVybmFs IHByb3ZpZGVycy4gSW4gdGhpcyBjYXNlIHRoZXJlIHdpbGwgYmUgbm8gTklEIGFzc2lnbmVkIGZv ciB0aGUgZ3JvdXAuCi0rdW5pcXVlIGludGVnZXIgQjxOSUQ+IHZhbHVlLiBIb3dldmVyLCBzdXBw b3J0IGZvciBzb21lIGdyb3VwcyBtYXkgYmUgYWRkZWQgYnkKLStleHRlcm5hbCBwcm92aWRlcnMu IEluIHRoaXMgY2FzZSB0aGVyZSB3aWxsIGJlIG5vIEI8TklEPiBhc3NpZ25lZCBmb3IgdGhlIGdy b3VwLgotIFdoZW4gc2V0dGluZyBzdWNoIGdyb3VwcyBhcHBsaWNhdGlvbnMgc2hvdWxkIHVzZSB0 aGUgImxpc3QiIGZvcm0gb2YgdGhlc2UKLSBmdW5jdGlvbnMgKGkuZS4gU1NMX0NUWF9zZXQxX2dy b3Vwc19saXN0KCkgYW5kIFNTTF9zZXQxX2dyb3Vwc19saXN0KCkpLgotIAotIFNTTF9DVFhfc2V0 MV9ncm91cHMoKSBzZXRzIHRoZSBzdXBwb3J0ZWQgZ3JvdXBzIGZvciBCPGN0eD4gdG8gQjxnbGlz dGxlbj4KLS1ncm91cHMgaW4gdGhlIGFycmF5IEI8Z2xpc3Q+LiBUaGUgYXJyYXkgY29uc2lzdCBv ZiBhbGwgTklEcyBvZiBzdXBwb3J0ZWQgZ3JvdXBzLgotK2dyb3VwcyBpbiB0aGUgYXJyYXkgQjxn bGlzdD4uIFRoZSBhcnJheSBjb25zaXN0IG9mIGFsbCBCPE5JRHM+IG9mIHN1cHBvcnRlZCBncm91 cHMuCi0gVGhlIHN1cHBvcnRlZCBncm91cHMgZm9yIEI8VExTdjEuMz4gaW5jbHVkZToKLSBCPE5J RF9YOV82Ml9wcmltZTI1NnYxPiwKLSBCPE5JRF9zZWNwMzg0cjE+LAotQEAgLTczLDIwICs3Mywy NyBAQCBCPFNTTF9PUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0U+IGlzIHNldCwgdGhlIG9yZGVy IG9mIHRoZSBlbGVtZW50cyBpbiB0aGUKLSBhcnJheSBkZXRlcm1pbmVzIHRoZSBzZWxlY3RlZCBn cm91cC4gT3RoZXJ3aXNlLCB0aGUgb3JkZXIgaXMgaWdub3JlZCBhbmQgdGhlCi0gY2xpZW50J3Mg b3JkZXIgZGV0ZXJtaW5lcyB0aGUgc2VsZWN0aW9uLgotIAotLUZvciBhIFRMUyAxLjMgc2VydmVy LCB0aGUgZ3JvdXBzIGRldGVybWluZSB0aGUgc2VsZWN0ZWQgZ3JvdXAsIGJ1dAotLXNlbGVjdGlv biBpcyBtb3JlIGNvbXBsZXguIEEgVExTIDEuMyBjbGllbnQgc2VuZHMgYm90aCBhIGdyb3VwIGxp c3QgYXMgd2VsbCBhcyBhCi0tcHJlZGljdGVkIHN1YnNldCBvZiBncm91cHMuIENob29zaW5nIGEg Z3JvdXAgb3V0c2lkZSB0aGUgcHJlZGljdGVkIHN1YnNldCBpbmN1cnMKLS1hbiBleHRyYSByb3Vu ZHRyaXAuIEhvd2V2ZXIsIGluIHNvbWUgc2l0dWF0aW9ucywgdGhlIG1vc3QgcHJlZmVycmVkIGdy b3VwIG1heQotLW5vdCBiZSBwcmVkaWN0ZWQuIE9wZW5TU0wgY29uc2lkZXJzIGFsbCBzdXBwb3J0 ZWQgZ3JvdXBzIGluIEk8Y2xpc3Q+IHRvIGJlIGNvbXBhcmFibGUKLS1pbiBzZWN1cml0eSBhbmQg cHJpb3JpdGl6ZXMgYXZvaWRpbmcgcm91bmR0cmlwcyBhYm92ZSBlaXRoZXIgY2xpZW50IG9yIHNl cnZlcgotLXByZWZlcmVuY2Ugb3JkZXIuIElmIGFuIGFwcGxpY2F0aW9uIHVzZXMgYW4gZXh0ZXJu YWwgcHJvdmlkZXIgdG8gZXh0ZW5kIE9wZW5TU0wKLS13aXRoLCBlLmcuLCBhIHBvc3QtcXVhbnR1 bSBhbGdvcml0aG0sIHRoaXMgYmVoYXZpb3IgbWF5IGFsbG93IGEgbmV0d29yayBhdHRhY2tlcgot LXRvIGRvd25ncmFkZSBjb25uZWN0aW9ucyB0byBhIHdlYWtlciBhbGdvcml0aG0uIEl0IGlzIHRo ZXJlZm9yZSByZWNvbW1lbmRlZAotLXRvIHVzZSBTU0xfQ1RYX3NldDFfZ3JvdXBzX2xpc3QoKSB3 aXRoIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgZ3JvdXAgdHVwbGVzLgotK0ZvciBhIFRMUyAxLjMg c2VydmVyLCB0aGUgZ3JvdXBzIGRldGVybWluZSB0aGUgc2VsZWN0ZWQgZ3JvdXAsIGJ1dCBzZWxl Y3Rpb24gaXMKLSttb3JlIGNvbXBsZXguCi0rQSBUTFMgMS4zIGNsaWVudCBzZW5kcyBib3RoIGEg Z3JvdXAgbGlzdCBhbmQgcHJlZGljdGVkIGtleXNoYXJlcyBmb3IgYSBzdWJzZXQKLStvZiBncm91 cHMuCi0rQSBzZXJ2ZXIgY2hvb3NpbmcgYSBncm91cCBvdXRzaWRlIHRoZSBjbGllbnQncyBwcmVk aWN0ZWQgc3Vic2V0IGluY3VycyBhbiBleHRyYQotK3JvdW5kdHJpcC4KLStIb3dldmVyLCBpbiBz b21lIHNpdHVhdGlvbnMsIHRoZSBtb3N0IHByZWZlcnJlZCBncm91cCBtYXkgbm90IGJlIHByZWRp Y3RlZC4KLSsKLStXaGVuIGdyb3VwcyBhcmUgc3BlY2lmaWVkIHZpYSBTU0xfQ1RYX3NldDFfZ3Jv dXBzKCkgYXMgYSBsaXN0IG9mIEI8TklEPgotK3ZhbHVlcywgT3BlblNTTCBjb25zaWRlcnMgYWxs IHN1cHBvcnRlZCBncm91cHMgaW4gSTxjbGlzdD4gdG8gYmUgY29tcGFyYWJsZSBpbgotK3NlY3Vy aXR5IGFuZCBwcmlvcml0aXNlcyBhdm9pZGluZyByb3VuZHRyaXBzIGFib3ZlIGVpdGhlciBjbGll bnQgb3Igc2VydmVyCi0rcHJlZmVyZW5jZSBvcmRlci4KLStJZiBhbiBhcHBsaWNhdGlvbiB1c2Vz IGFuIGV4dGVybmFsIHByb3ZpZGVyIHRvIGV4dGVuZCBPcGVuU1NMIHdpdGgsIGUuZy4sIGEKLStw b3N0LXF1YW50dW0gYWxnb3JpdGhtLCB0aGlzIGJlaGF2aW9yIG1heSBhbGxvdyBhIG5ldHdvcmsg YXR0YWNrZXIgdG8gZG93bmdyYWRlCi0rY29ubmVjdGlvbnMgdG8gYSB3ZWFrZXIgYWxnb3JpdGht LgotK0l0IGlzIHRoZXJlZm9yZSByZWNvbW1lbmRlZCB0byB1c2UgU1NMX0NUWF9zZXQxX2dyb3Vw c19saXN0KCkgaW5zdGVhZCwgbWFraW5nCi0raXQgcG9zc2libGUgdG8gc3BlY2lmeSBncm91cCB0 dXBsZXMgYXMgZGVzY3JpYmVkIGJlbG93LgotIAotIFNTTF9DVFhfc2V0MV9ncm91cHNfbGlzdCgp IHNldHMgdGhlIHN1cHBvcnRlZCBncm91cHMgZm9yIEI8Y3R4PiB0bwotIHN0cmluZyBJPGxpc3Q+ LiBJbiBjb250cmFzdCB0byBTU0xfQ1RYX3NldDFfZ3JvdXBzKCksIHRoZSBuYW1lcyBvZiB0aGUK LS1ncm91cHMsIHJhdGhlciB0aGFuIHRoZWlyIE5JRHMsIGFyZSB1c2VkLgotK2dyb3VwcywgcmF0 aGVyIHRoYW4gdGhlaXIgQjxOSURzPiwgYXJlIHVzZWQuCi0gCi0gVGhlIGNvbW1hbmRzIGJlbG93 IGxpc3QgdGhlIGF2YWlsYWJsZSBncm91cHMgZm9yIFRMUyAxLjIgYW5kIFRMUyAxLjMsCi0gcmVz cGVjdGl2ZWx5OgotQEAgLTEwMiwzMCArMTA5LDcyIEBAIFRoZSBwcmVmZXJyZWQgZ3JvdXAgbmFt ZXMgYXJlIHRob3NlIGRlZmluZWQgYnkKLSBMPElBTkF8aHR0cHM6Ly93d3cuaWFuYS5vcmcvYXNz aWdubWVudHMvdGxzLXBhcmFtZXRlcnMvdGxzLXBhcmFtZXRlcnMueGh0bWwjdGxzLXBhcmFtZXRl cnMtOD4uCi0gCi0gVGhlIEk8bGlzdD4gY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHNldmVyYWwgZ3Jv dXAgdHVwbGVzIG9mIGNvbXBhcmFibGUgc2VjdXJpdHkKLS1sZXZlbHMsIGFuZCBjYW4gc3BlY2lm eSB3aGljaCBrZXkgc2hhcmVzIHNob3VsZCBiZSBzZW50IGJ5IGEgY2xpZW50LgotLVRoZSBzcGVj aWZpZWQgbGlzdCBlbGVtZW50cyBjYW4gb3B0aW9uYWxseSBiZSBpZ25vcmVkLCBpZiBub3QgaW1w bGVtZW50ZWQKLStsZXZlbHMsIGFuZCBjYW4gc3BlY2lmeSB3aGljaCBwcmVkaWN0ZWQga2V5IHNo YXJlcyBzaG91bGQgYmUgc2VudCBieSBhIGNsaWVudC4KLStHcm91cCB0dXBsZXMgYXJlIHVzZWQg YnkgT3BlblNTTCBUTFMgc2VydmVycyB0byBkZWNpZGUgd2hldGhlciB0byByZXF1ZXN0IGEKLStz dHJvbmdlciBrZXlzaGFyZSB0aGFuIHRob3NlIHByZWRpY3RlZCBieSBzZW5kaW5nIGEgSGVsbG8g UmV0cnkgUmVxdWVzdAotKyhCPEhSUj4pIGV2ZW4gaWYgc29tZSBvZiB0aGUgcHJlZGljdGVkIGdy b3VwcyBhcmUgc3VwcG9ydGVkLgotK09wZW5TU0wgY2xpZW50cyBpZ25vcmUgdHVwbGUgYm91bmRh cmllcywgYW5kIHBheSBhdHRlbmlvbiBvbmx5IHRvIHRoZSBvdmVyYWxsCi0rb3JkZXIgb2YgSTxs aXN0PiBlbGVtZW50cyBhbmQgd2hpY2ggZ3JvdXBzIGFyZSBzZWxlY3RlZCBhcyBwcmVkaWN0ZWQg a2V5c2hhcmVzCi0rYXMgZGVzY3JpYmVkIGJlbG93LgotKwotK1RoZSBzcGVjaWZpZWQgbGlzdCBl bGVtZW50cyBjYW4gb3B0aW9uYWxseSBiZSBpZ25vcmVkIGlmIG5vdCBpbXBsZW1lbnRlZAotIChs aXN0aW5nIHVua25vd24gZ3JvdXBzIG90aGVyd2lzZSByZXN1bHRzIGluIGVycm9yKS4KLS1JdCBp cyBhbHNvIHBvc3NpYmxlIHRvIHNwZWNpZnkgdGhlIGJ1aWx0LWluIGRlZmF1bHQgc2V0IG9mIGdy b3VwcywgYW5kIHRvIGV4cGxpY2l0bHkKLS1yZW1vdmUgYSBncm91cCBmcm9tIHRoYXQgbGlzdC4K LS0KLS1JbiBpdHMgc2ltcGxlc3QgZm9ybSwgdGhlIHN0cmluZyBJPGxpc3Q+IGlzIGp1c3QgYSBj b2xvbiBzZXBhcmF0ZWQgbGlzdAotLW9mIGdyb3VwIG5hbWVzLCBmb3IgZXhhbXBsZSAiUC01MjE6 UC0zODQ6UC0yNTY6WDI1NTE5OmZmZGhlMjA0OCIuIFRoZSBmaXJzdAotLWdyb3VwIGxpc3RlZCB3 aWxsIGFsc28gYmUgdXNlZCBmb3IgdGhlIEI8a2V5X3NoYXJlPiBzZW50IGJ5IGEgY2xpZW50IGlu IGEKLS1UTFN2MS4zIEI8Q2xpZW50SGVsbG8+LiBGb3Igc2VydmVycyBub3RlIHRoZSBkaXNjdXNz aW9uIGFib3ZlLiBUaGUgbGlzdCBzaG91bGQKLS1iZSBpbiBvcmRlciBvZiBwcmVmZXJlbmNlIHdp dGggdGhlIG1vc3QgcHJlZmVycmVkIGdyb3VwIGZpcnN0LgotLQotLUdyb3VwIHR1cGxlcyBvZiBj b21wYXJhYmxlIHNlY3VyaXR5IGFyZSBkZWZpbmVkIGJ5IHNlcGFyYXRpbmcgdGhlbSBmcm9tIGVh Y2gKLS1vdGhlciBieSBhIHR1cGxlIHNlcGFyYXRvciBDPC8+LiBLZXlzaGFyZXMgdG8gYmUgc2Vu dCBieSBhIGNsaWVudCBhcmUgc3BlY2lmaWVkCi0tYnkgcHJlcGVuZGluZyBhIEM8Kj4gdG8gdGhl IGdyb3VwIG5hbWUsIHdoaWxlIGFueSBDPCo+IHdpbGwgYmUgaWdub3JlZCBieSBhCi0tc2VydmVy LiBUaGUgZm9sbG93aW5nIHN0cmluZyBJPGxpc3Q+IGZvciBleGFtcGxlIGRlZmluZXMgdGhyZWUg dHVwbGVzIHdoZW4KLS11c2VkIG9uIHRoZSBzZXJ2ZXItc2lkZSwgYW5kIHRyaWdnZXJzIHRoZSBn ZW5lcmF0aW9uIG9mIHRocmVlIGtleSBzaGFyZXMKLS13aGVuIHVzZWQgb24gdGhlIGNsaWVudC1z aWRlOiBQLTUyMToqUC0yNTYvKlAtMzg0LypYMjU1MTk6UC0zODQ6ZmZkaGUyMDQ4LgotLQotLUlm IGEgZ3JvdXAgbmFtZSBpcyBwcmVjZWRlZCB3aXRoIHRoZSBDPD8+IGNoYXJhY3RlciwgaXQgd2ls bCBiZSBpZ25vcmVkIGlmIGFuCi0taW1wbGVtZW50YXRpb24gaXMgbWlzc2luZy4gSWYgYSBncm91 cCBuYW1lIGlzIHByZWNlZGVkIHdpdGggdGhlIEM8LT4gY2hhcmFjdGVyLCBpdAotLXdpbGwgYmUg cmVtb3ZlZCBmcm9tIHRoZSBsaXN0IG9mIGdyb3VwcyBpZiBwcmVzZW50IChpbmNsdWRpbmcgbm90 IHNlbmRpbmcgYQotLWtleSBzaGFyZSBmb3IgdGhpcyBncm91cCksIGlnbm9yZWQgb3RoZXJ3aXNl LiBUaGUgcHNldWRvIGdyb3VwIG5hbWUKLS1DPERFRkFVTFQ+IGNhbiBiZSB1c2VkIHRvIHNlbGVj dCB0aGUgT3BlblNTTCBidWlsdC1pbiBkZWZhdWx0IGxpc3Qgb2YgZ3JvdXBzLgotK0l0IGlzIGFs c28gcG9zc2libGUgdG8gc3BlY2lmeSB0aGUgYnVpbHQtaW4gZGVmYXVsdCBzZXQgb2YgZ3JvdXBz LCBhbmQgdG8KLStleHBsaWNpdGx5IHJlbW92ZSBhIGdyb3VwIGZyb20gdGhhdCBsaXN0LgotKwot K0luIGl0cyBzaW1wbGVzdCBsZWdhY3kgZm9ybSwgdGhlIHN0cmluZyBJPGxpc3Q+IGlzIGp1c3Qg YSBjb2xvbiBzZXBhcmF0ZWQgbGlzdAotK29mIGdyb3VwIG5hbWVzLCBmb3IgZXhhbXBsZSAiUC01 MjE6UC0zODQ6UC0yNTY6WDI1NTE5OmZmZGhlMjA0OCIuCi0rVGhlIGZpcnN0IGdyb3VwIGxpc3Rl ZCB3aWxsIGluIHRoaXMgY2FzZSBiZSB1c2VkIGFzIHRoZSBzb2xlIHByZWRpY3RlZAotK0I8a2V5 X3NoYXJlPiBzZW50IGJ5IGEgY2xpZW50IGluIGEgVExTdjEuMyBCPENsaWVudEhlbGxvPi4KLStU aGUgbGlzdCBzaG91bGQgYmUgaW4gb3JkZXIgb2YgcHJlZmVyZW5jZSB3aXRoIHRoZSBtb3N0IHBy ZWZlcnJlZCBncm91cCBmaXJzdC4KLSsKLStBIG1vcmUgZXhwcmVzc2l2ZSBzeW50YXggc3VwcG9y dHMgZGVmaW5pdGlvbiBvZiBncm91cCB0dXBsZXMgb2YgY29tcGFyYWJsZQotK3NlY3VyaXR5IGJ5 IHNlcGFyYXRpbmcgdGhlbSBmcm9tIGVhY2ggb3RoZXIgd2l0aCBDPC8+IGNoYXJhY3RlcnMuCi0r Ci0rVGhlIHByZWRpY3RlZCBrZXlzaGFyZXMgdG8gYmUgc2VudCBieSBjbGllbnRzIGNhbiBiZSBl eHBsaWNpdGx5IHNwZWNpZmllZCBieQotK2FkZGluZyBhIEM8Kj4gcHJlZml4IHRvIHRoZSBhc3Nv Y2lhdGVkIGdyb3VwIG5hbWUuCi0rVGhlc2UgQzwqPiBwcmVmaXhlcyBhcmUgaWdub3JlZCBieSBz ZXJ2ZXJzLgotKwotK0lmIGEgZ3JvdXAgbmFtZSBpcyBwcmVmaXhlZCB3aXRoIHRoZSBDPD8+IGNo YXJhY3RlciwgaXQgd2lsbCBiZSBpZ25vcmVkIGlmIGFuCi0raW1wbGVtZW50YXRpb24gaXMgbWlz c2luZy4KLStPdGhlcndpc2UsIGxpc3RpbmcgYW4gdW5rbm93biBncm91cCBuYW1lIHdpbGwgY2F1 c2UgYSBmYWlsdXJlIHRvIHBhcnNlIHRoZQotK0k8bGlzdD4uCi0rTm90ZSB0aGF0IHdoZXRoZXIg YSBncm91cCBpcyBrbm93biBvciBub3QgbWF5IGRlcGVuZCBvbiB0aGUgT3BlblNTTCB2ZXJzaW9u LAotK2hvdyBPcGVuU1NMIHdhcyBjb21waWxlZCBhbmQvb3Igd2hpY2ggcHJvdmlkZXJzIGFyZSBs b2FkZWQuCi0rTWFrZSBzdXJlIHlvdSBoYXZlIHRoZSBjb3JyZWN0IHNwZWxsaW5nIG9mIHRoZSBn cm91cCBuYW1lIGFuZCB3aGVuIGluIGRvdWJ0Ci0rcHJlZml4IGl0IHdpdGggYSBDPD8+IHRvIGhh bmRsZSBjb25maWd1cmF0aW9ucyBpbiB3aGljaCBpdCBtaWdodCBuZXZlcnRoZWxlc3MKLStiZSB1 bmtub3duLgotKwotK0lmIGEgZ3JvdXAgbmFtZSBpcyBwcmVmaXhlZCB3aXRoIHRoZSBDPC0+IGNo YXJhY3RlciwgaXQgd2lsbCBiZSByZW1vdmVkIGZyb20KLSt0aGUgbGlzdCBvZiBncm91cHMgc3Bl Y2lmaWVkIHVwIHRvIHRoYXQgcG9pbnQuCi0rSXQgY2FuIGJlIGFkZGVkIGFnYWluIGlmIHNwZWNp ZmllZCBsYXRlci4KLStSZW1vdmFsIG9mIGdyb3VwcyB0aGF0IGhhdmUgbm90IGJlZW4gaW5jbHVk ZWQgZWFybGllciBpbiB0aGUgbGlzdCBpcyBzaWxlbnRseQotK2lnbm9yZWQuCi0rCi0rVGhlIHBz ZXVkbyBncm91cCBuYW1lIEM8REVGQVVMVD4gY2FuIGJlIHVzZWQgdG8gc2VsZWN0IHRoZSBPcGVu U1NMIGJ1aWx0LWluCi0rZGVmYXVsdCBsaXN0IG9mIGdyb3Vwcy4KLStQcmVwZW5kaW5nIG9uZSBv ciBtb3JlIGdyb3VwcyB0byBDPERFRkFVTFQ+IHVzaW5nIG9ubHkgQzw6PiBzZXBhcmF0b3JzIHBy ZXBlbmRzIHRob3NlCi0rZ3JvdXBzIHRvIHRoZSBidWlsdC1pbiBkZWZhdWx0IGxpc3QncyBmaXJz dCB0dXBsZS4KLStBZGRpdGlvbmFsIHR1cGxlcyBjYW4gYmUgcHJlcGVuZGVkIGJ5IHVzZSBvZiB0 aGUgQzwvPiBzZXBhcmF0b3IuCi0rQXBwZW5kaW5nIGEgc2V0IG9mIGdyb3VwcyB0byBDPERFRkFV TFQ+IHVzaW5nIG9ubHkgQzw6PiBzZXBhcmF0b3JzIGFwcGVuZHMgdGhvc2UKLStncm91cHMgdG8g dGhlIGJ1aWx0LWluIGRlZmF1bHQgbGlzdCdzIGxhc3QgdHVwbGUuCi0rQWRkaXRpb25hbCB0dXBs ZXMgY2FuIGJlIGFwcGVuZGVkIGJ5IHVzZSBvZiB0aGUgQzwvPiBzZXBhcmF0b3IuCi0rCi0rVGhl IEI8REVGQVVMVD4gbGlzdCBzZWxlY3RzIEI8WDI1NTE5TUxLRU03Njg+IGFzIG9uZSBvZiB0aGUg cHJlZGljdGVkIGtleXNoYXJlcy4KLStJbiByYXJlIGNhc2VzIHRoaXMgY2FuIGxlYWQgdG8gZmFp bHVyZXMgb3IgdGltZW91dHMgYmVjYXVzZSB0aGUgcmVzdWx0aW5nCi0rbGFyZ2VyIFRMUyBDbGll bnQgSGVsbG8gbWVzc2FnZSBtYXkgbm8gbG9uZ2VyIGZpdCBpbiBhIHNpbmdsZSBUQ1Agc2VnbWVu dCBhbmQKLStmaXJld2FsbCBzb2Z0d2FyZSBtYXkgZXJyb25lb3VzbHkgZGlzcnVwdCB0aGUgVExT IGhhbmRzaGFrZS4KLStJZiB0aGlzIGlzIGFuIGlzc3VlIG9yIGNvbmNlcm4sIHByZXBlbmRpbmcg Qzw/WDI1NTE5TUxLRU03Njg6PiB3aXRob3V0IGEgQzwqPgotK3ByZWZpeCBsZWFkcyB0byBpdHMg b2NjdXJyZW5jZSBpbiB0aGUgZGVmYXVsdCBsaXN0IHRvIGJlIGlnbm9yZWQgYXMgYSBkdXBsaWNh dGUsCi0rYW5kIGFsb25nIHdpdGggdGhhdCBhbHNvIHRoZSBrZXlzaGFyZSBwcmVkaWN0aW9uLgot K1RoZSBncm91cCB3aWxsIHRoZW4gb25seSBiZSBzZWxlY3RlZCBieSBzZXJ2ZXJzIHRoYXQgc3Bl Y2lmaWNhbGx5IGV4cGVjdCBpdCwKLSthZnRlciBhIEhlbGxvIFJldHJ5IFJlcXVlc3QgKEhSUiku Ci0rU2VydmVycyB0aGF0IHNwZWNpZmljYWxseSBwcmVmZXIgQjxYMjU1MTlNTEtFTTc2OD4sIGFy ZSBtdWNoIGxlc3MgbGlrZWx5IHRvIGJlCi0rZm91bmQgYmVoaW5kIHByb2JsZW1hdGljIGZpcmV3 YWxscy4KLSsKLStUaGUgZm9sbG93aW5nIHN0cmluZyBJPGxpc3Q+IGZvciBleGFtcGxlIGRlZmlu ZXMgdGhyZWUgdHVwbGVzIHdoZW4gdXNlZCBvbiB0aGUKLStzZXJ2ZXItc2lkZSwgYW5kIHRyaWdn ZXJzIHRoZSBnZW5lcmF0aW9uIG9mIHRocmVlIGtleSBzaGFyZXMgd2hlbiB1c2VkIG9uIHRoZQot K2NsaWVudC1zaWRlOiBQLTUyMToqUC0yNTYvKlAtMzg0LypYMjU1MTk6UC0zODQ6ZmZkaGUyMDQ4 LgotIAotIEZvciBhIFRMUyAxLjMgY2xpZW50LCBhbGwgdGhlIGdyb3VwcyBpbiB0aGUgc3RyaW5n IEk8bGlzdD4gYXJlIGFkZGVkIHRvIHRoZQotIHN1cHBvcnRlZCBncm91cHMgZXh0ZW5zaW9uIG9m IGEgQzxDbGllbnRIZWxsbz4sIGluIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZSBsaXN0ZWQs Ci1kaWZmIC0tZ2l0IGEvc3NsL3QxX2xpYi5jIGIvc3NsL3QxX2xpYi5jCi1pbmRleCA1MmRiZGQ5 ZDRhZGViLi40Mjk1M2I1MzBlOGI4IDEwMDY0NAotLS0tIGEvc3NsL3QxX2xpYi5jCi0rKysgYi9z c2wvdDFfbGliLmMKLUBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHN1 aXRlYl9jdXJ2ZXNbXSA9IHsKLSAKLSAvKiBHcm91cCBsaXN0IHN0cmluZyBvZiB0aGUgYnVpbHQt aW4gcHNldWRvIGdyb3VwIERFRkFVTFRfU1VJVEVfQiAqLwotICNkZWZpbmUgU1VJVEVfQl9HUk9V UF9OQU1FICJERUZBVUxUX1NVSVRFX0IiCi0tI2RlZmluZSBTVUlURV9CX0dST1VQX0xJU1QgInNl Y3AyNTZyMTpzZWNwMzg0cjEiLAotKyNkZWZpbmUgU1VJVEVfQl9HUk9VUF9MSVNUICI/c2VjcDI1 NnIxOj9zZWNwMzg0cjEiLAotIAotIHN0cnVjdCBwcm92aWRlcl9jdHhfZGF0YV9zdCB7Ci0gICAg IFNTTF9DVFggKmN0eDsKLUBAIC0xMjQ0LDggKzEyNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCB7Ci0g ICAgIHNpemVfdCBrc2lkY250OyAvKiBOdW1iZXIgb2Yga2V5IHNoYXJlcyAqLwotICAgICB1aW50 MTZfdCAqa3NpZF9hcnI7IC8qIFRoZSBJRHMgb2YgdGhlIGtleSBzaGFyZSBncm91cHMgKGZsYXQg bGlzdCkgKi8KLSAgICAgLyogVmFyaWFibGUgdG8ga2VlcCBzdGF0ZSBiZXR3ZWVuIGV4ZWN1dGlv biBvZiBjYWxsYmFjayBvciBoZWxwZXIgZnVuY3Rpb25zICovCi0tICAgIHNpemVfdCB0dXBsZV9t b2RlOyAvKiBLZWVwcyB0cmFjayB3aGV0aGVyIHR1cGxlX2NiIGNhbGxlZCBmcm9tICd0aGUgdG9w JyBvciBmcm9tIGdpZF9jYiAqLwotLSAgICBpbnQgaWdub3JlX3Vua25vd25fZGVmYXVsdDsgLyog RmxhZyBzdWNoIHRoYXQgdW5rbm93biBncm91cHMgZm9yIERFRkFVTFRbX1hZWl0gYXJlIGlnbm9y ZWQgKi8KLSsgICAgaW50IGlubmVyOyAvKiBBcmUgd2UgZXhwYW5kaW5nIGEgREVGQVVMVCBsaXN0 ICovCi0rICAgIGludCBmaXJzdDsgLyogRmlyc3QgdHVwbGUgb2YgcG9zc2libHkgbmVzdGVkIGV4 cGFuc2lvbj8gKi8KLSB9IGdpZF9jYl9zdDsKLSAKLSAvKiBGb3J3YXJkIGRlY2xhcmF0aW9uIG9m IHR1cGxlIGNhbGxiYWNrIGZ1bmN0aW9uICovCi1AQCAtMTMyMCwxNiArMTMyMCwxNiBAQCBzdGF0 aWMgaW50IGdpZF9jYihjb25zdCBjaGFyICplbGVtLCBpbnQgbGVuLCB2b2lkICphcmcpCi0gICAg ICAgICAgICAgZm9yIChpID0gMDsgaSA8IE9TU0xfTkVMRU0oZGVmYXVsdF9ncm91cF9zdHJpbmdz KTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgIGlmICgoc2l6ZV90KWxlbiA9PSAoc3RybGVuKGRl ZmF1bHRfZ3JvdXBfc3RyaW5nc1tpXS5saXN0X25hbWUpKQotICAgICAgICAgICAgICAgICAgICAg JiYgT1BFTlNTTF9zdHJuY2FzZWNtcChkZWZhdWx0X2dyb3VwX3N0cmluZ3NbaV0ubGlzdF9uYW1l LCBlbGVtLCBsZW4pID09IDApIHsKLSsgICAgICAgICAgICAgICAgICAgIGludCBzYXZlZF9maXJz dDsKLSsKLSAgICAgICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICAgICAgKiBX ZSdyZSBhc2tlZCB0byBpbnNlcnQgYW4gZW50aXJlIGxpc3Qgb2YgZ3JvdXBzIGZyb20gYQotICAg ICAgICAgICAgICAgICAgICAgICogREVGQVVMVFtfWFlaXSAncHNldWRvIGdyb3VwJyB3aGljaCB3 ZSBkbyBieQotICAgICAgICAgICAgICAgICAgICAgICogcmVjdXJzaXZlbHkgY2FsbGluZyB0aGlz IGZ1bmN0aW9uIChpbmRpcmVjdGx5IHZpYQotICAgICAgICAgICAgICAgICAgICAgICogQ09ORl9w YXJzZV9saXN0IGFuZCB0dXBsZV9jYik7IGVzc2VudGlhbGx5LCB3ZSB0cmVhdCBhIERFRkFVTFQK LSAgICAgICAgICAgICAgICAgICAgICAqIGdyb3VwIHN0cmluZyBsaWtlIGEgdHVwbGUgd2hpY2gg aXMgYXBwZW5kZWQgdG8gdGhlIGN1cnJlbnQgdHVwbGUKLS0gICAgICAgICAgICAgICAgICAgICAq IHJhdGhlciB0aGVuIHN0YXJ0aW5nIGEgbmV3IHR1cGxlLiBWYXJpYWJsZSB0dXBsZV9tb2RlIGlz IHRoZSBmbGFnIHdoaWNoCi0tICAgICAgICAgICAgICAgICAgICAgKiBjb250cm9scyBhcHBlbmQg dHVwbGUgdnMgc3RhcnQgbmV3IHR1cGxlLgotKyAgICAgICAgICAgICAgICAgICAgICogcmF0aGVy IHRoZW4gc3RhcnRpbmcgYSBuZXcgdHVwbGUuCi0gICAgICAgICAgICAgICAgICAgICAgKi8KLS0K LSAgICAgICAgICAgICAgICAgICAgIGlmIChpZ25vcmVfdW5rbm93biB8fCByZW1vdmVfZ3JvdXAp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOyAvKiByZW1vdmFsIG9yIGlnbm9y ZSBub3QgYWxsb3dlZCBoZXJlIC0+IHN5bnRheCBlcnJvciAqLwotIAotQEAgLTEzNTAsMTUgKzEz NTAsMTcgQEAgc3RhdGljIGludCBnaWRfY2IoY29uc3QgY2hhciAqZWxlbSwgaW50IGxlbiwgdm9p ZCAqYXJnKQotICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZ3JvdXBfc3RyaW5nc1tp XS5ncm91cF9zdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKGRlZmF1bHRf Z3JvdXBfc3RyaW5nc1tpXS5ncm91cF9zdHJpbmcpKTsKLSAgICAgICAgICAgICAgICAgICAgIHJl c3RvcmVkX2RlZmF1bHRfZ3JvdXBfc3RyaW5nW3N0cmxlbihkZWZhdWx0X2dyb3VwX3N0cmluZ3Nb aV0uZ3JvdXBfc3RyaW5nKSArIHJlc3RvcmVkX3ByZWZpeF9pbmRleF0gPSAnXDAnOwotLSAgICAg ICAgICAgICAgICAgICAgLyogV2UgZXhlY3V0ZSB0aGUgcmVjdXJzaXZlIGNhbGwgKi8KLS0gICAg ICAgICAgICAgICAgICAgIGdhcmctPmlnbm9yZV91bmtub3duX2RlZmF1bHQgPSAxOyAvKiBXZSBp Z25vcmUgdW5rbm93biBncm91cHMgZm9yIERFRkFVTFRfWFlaICovCi0tICAgICAgICAgICAgICAg ICAgICAvKiB3ZSBlbmZvcmNlIGdyb3VwIG1vZGUgKD0gYXBwZW5kIHR1cGxlKSBmb3IgREVGQVVM VF9YWVogZ3JvdXAgbGlzdHMgKi8KLS0gICAgICAgICAgICAgICAgICAgIGdhcmctPnR1cGxlX21v ZGUgPSAwOwotLSAgICAgICAgICAgICAgICAgICAgLyogV2UgdXNlIHRoZSB0dXBsZV9jYiBjYWxs YmFjayB0byBwcm9jZXNzIHRoZSBwc2V1ZG8gZ3JvdXAgdHVwbGUgKi8KLSsgICAgICAgICAgICAg ICAgICAgIC8qCi0rICAgICAgICAgICAgICAgICAgICAgKiBBcHBlbmQgZmlyc3QgdHVwbGUgb2Yg cmVzdWx0IHRvIGN1cnJlbnQgdHVwbGUsIGFuZCBkb24ndAotKyAgICAgICAgICAgICAgICAgICAg ICogdGVybWluYXRlIHRoZSBsYXN0IHR1cGxlIHVudGlsIHdlIHJldHVybiB0byBhIHRvcC1sZXZl bAotKyAgICAgICAgICAgICAgICAgICAgICogdHVwbGVfY2IuCi0rICAgICAgICAgICAgICAgICAg ICAgKi8KLSsgICAgICAgICAgICAgICAgICAgIHNhdmVkX2ZpcnN0ID0gZ2FyZy0+Zmlyc3Q7Ci0r ICAgICAgICAgICAgICAgICAgICBnYXJnLT5pbm5lciA9IGdhcmctPmZpcnN0ID0gMTsKLSAgICAg ICAgICAgICAgICAgICAgIHJldHZhbCA9IENPTkZfcGFyc2VfbGlzdChyZXN0b3JlZF9kZWZhdWx0 X2dyb3VwX3N0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICBUVVBMRV9ERUxJTUlURVJf Q0hBUkFDVEVSLCAxLCB0dXBsZV9jYiwgZ2FyZyk7Ci0tICAgICAgICAgICAgICAgICAgICBnYXJn LT50dXBsZV9tb2RlID0gMTsgLyogbmV4dCBjYWxsIHRvIHR1cGxlX2NiIHdpbGwgYWdhaW4gc3Rh cnQgbmV3IHR1cGxlICovCi0tICAgICAgICAgICAgICAgICAgICBnYXJnLT5pZ25vcmVfdW5rbm93 bl9kZWZhdWx0ID0gMDsgLyogcmVzZXQgdG8gb3JpZ2luYWwgdmFsdWUgKi8KLSsgICAgICAgICAg ICAgICAgICAgIGdhcmctPmlubmVyID0gMDsKLSsgICAgICAgICAgICAgICAgICAgIGdhcmctPmZp cnN0ID0gc2F2ZWRfZmlyc3Q7Ci0gICAgICAgICAgICAgICAgICAgICAvKiBXZSBkb24ndCBuZWVk IHRoZSBcMC10ZXJtaW5hdGVkIHN0cmluZyBhbnltb3JlICovCi0gICAgICAgICAgICAgICAgICAg ICBPUEVOU1NMX2ZyZWUocmVzdG9yZWRfZGVmYXVsdF9ncm91cF9zdHJpbmcpOwotIAotQEAgLTEz NzgsOSArMTM4MCw2IEBAIHN0YXRpYyBpbnQgZ2lkX2NiKGNvbnN0IGNoYXIgKmVsZW0sIGludCBs ZW4sIHZvaWQgKmFyZykKLSAgICAgaWYgKGxlbiA9PSAwKQotICAgICAgICAgcmV0dXJuIC0xOyAv KiBTZWVtcyB3ZSBoYXZlIHByZWZ4ZXMgd2l0aG91dCBhIGdyb3VwIG5hbWUgLT4gc3ludGF4IGVy cm9yICovCi0gCi0tICAgIGlmIChnYXJnLT5pZ25vcmVfdW5rbm93bl9kZWZhdWx0ID09IDEpIC8q IEFsd2F5cyBpZ25vcmUgdW5rbm93biBncm91cHMgZm9yIERFRkFVTFRbX1hZWl0gKi8KLS0gICAg ICAgIGlnbm9yZV91bmtub3duID0gMTsKLS0KLSAgICAgLyogTWVtb3J5IG1hbmFnZW1lbnQgaW4g Y2FzZSBtb3JlIGdyb3VwcyBhcmUgcHJlc2VudCBjb21wYXJlZCB0byBpbml0aWFsIGFsbG9jYXRp b24gKi8KLSAgICAgaWYgKGdhcmctPmdpZGNudCA9PSBnYXJnLT5naWRtYXgpIHsKLSAgICAgICAg IHVpbnQxNl90ICp0bXAgPSBPUEVOU1NMX3JlYWxsb2MoZ2FyZy0+Z2lkX2FyciwKLUBAIC0xNTE0 LDcgKzE1MTMsNyBAQCBzdGF0aWMgaW50IGdpZF9jYihjb25zdCBjaGFyICplbGVtLCBpbnQgbGVu LCB2b2lkICphcmcpCi0gICAgICAgICAvKiBhbmQgdXBkYXRlIHRoZSBib29rIGtlZXBpbmcgZm9y IHRoZSBudW1iZXIgb2YgZ3JvdXBzIGluIGN1cnJlbnQgdHVwbGUgKi8KLSAgICAgICAgIGdhcmct PnR1cGxjbnRfYXJyW2dhcmctPnRwbGNudF0rKzsKLSAKLS0gICAgICAgIC8qIFdlIG1lbW9yaXpl IGlmIG5lZWRlZCB0aGF0IHdlIHdhbnQgdG8gYWRkIGEga2V5IHNoYXJlIGZvciB0aGUgY3VycmVu dCBncm91cCAqLwotKyAgICAgICAgLyogV2Ugd2FudCB0byBhZGQgYSBrZXkgc2hhcmUgZm9yIHRo ZSBjdXJyZW50IGdyb3VwICovCi0gICAgICAgICBpZiAoYWRkX2tleXNoYXJlKQotICAgICAgICAg ICAgIGdhcmctPmtzaWRfYXJyW2dhcmctPmtzaWRjbnQrK10gPSBnaWQ7Ci0gICAgIH0KLUBAIC0x NTIzLDYgKzE1MjIsMzkgQEAgc3RhdGljIGludCBnaWRfY2IoY29uc3QgY2hhciAqZWxlbSwgaW50 IGxlbiwgdm9pZCAqYXJnKQotICAgICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLStzdGF0aWMgaW50 IGdyb3dfdHVwbGVzKGdpZF9jYl9zdCAqZ2FyZykKLSt7Ci0rICAgIHN0YXRpYyBzaXplX3QgbWF4 X3RwbGNudCA9ICh+KHNpemVfdCkwKSAvIHNpemVvZihzaXplX3QpOwotKwotKyAgICAvKiBUaGlz IHVzZXMgT1BFTlNTTF9yZWFsbG9jX2FycmF5KCkgaW4gbmV3ZXIgcmVsZWFzZXMgKi8KLSsgICAg aWYgKGdhcmctPnRwbGNudCA9PSBnYXJnLT50cGxtYXgpIHsKLSsgICAgICAgIHNpemVfdCBuZXdj bnQgPSBnYXJnLT50cGxtYXggKyBHUk9VUExJU1RfSU5DUkVNRU5UOwotKyAgICAgICAgc2l6ZV90 IG5ld3N6ID0gbmV3Y250ICogc2l6ZW9mKHNpemVfdCk7Ci0rICAgICAgICBzaXplX3QgKnRtcDsK LSsKLSsgICAgICAgIGlmIChuZXdzeiA+IG1heF90cGxjbnQKLSsgICAgICAgICAgICB8fCAodG1w ID0gT1BFTlNTTF9yZWFsbG9jKGdhcmctPnR1cGxjbnRfYXJyLCBuZXdzeikpID09IE5VTEwpCi0r ICAgICAgICAgICAgcmV0dXJuIDA7Ci0rCi0rICAgICAgICBnYXJnLT50cGxtYXggPSBuZXdjbnQ7 Ci0rICAgICAgICBnYXJnLT50dXBsY250X2FyciA9IHRtcDsKLSsgICAgfQotKyAgICByZXR1cm4g MTsKLSt9Ci0rCi0rc3RhdGljIGludCBjbG9zZV90dXBsZShnaWRfY2Jfc3QgKmdhcmcpCi0rewot KyAgICBzaXplX3QgZ2lkY250ID0gZ2FyZy0+dHVwbGNudF9hcnJbZ2FyZy0+dHBsY250XTsKLSsK LSsgICAgaWYgKGdpZGNudCA9PSAwKQotKyAgICAgICAgcmV0dXJuIDE7Ci0rICAgIGlmICghZ3Jv d190dXBsZXMoZ2FyZykpCi0rICAgICAgICByZXR1cm4gMDsKLSsKLSsgICAgZ2FyZy0+dHVwbGNu dF9hcnJbKytnYXJnLT50cGxjbnRdID0gMDsKLSsgICAgcmV0dXJuIDE7Ci0rfQotKwotIC8qIEV4 dHJhY3QgYW5kIHByb2Nlc3MgYSB0dXBsZSBvZiBncm91cHMgKi8KLSBzdGF0aWMgaW50IHR1cGxl X2NiKGNvbnN0IGNoYXIgKnR1cGxlLCBpbnQgbGVuLCB2b2lkICphcmcpCi0gewotQEAgLTE1MzYs MTYgKzE1NjgsOSBAQCBzdGF0aWMgaW50IHR1cGxlX2NiKGNvbnN0IGNoYXIgKnR1cGxlLCBpbnQg bGVuLCB2b2lkICphcmcpCi0gICAgICAgICByZXR1cm4gMDsKLSAgICAgfQotIAotLSAgICAvKiBN ZW1vcnkgbWFuYWdlbWVudCBmb3IgdHVwbGVzICovCi0tICAgIGlmIChnYXJnLT50cGxjbnQgPT0g Z2FyZy0+dHBsbWF4KSB7Ci0tICAgICAgICBzaXplX3QgKnRtcCA9IE9QRU5TU0xfcmVhbGxvYyhn YXJnLT50dXBsY250X2FyciwKLS0gICAgICAgICAgICAoZ2FyZy0+dHBsbWF4ICsgR1JPVVBMSVNU X0lOQ1JFTUVOVCkgKiBzaXplb2YoKmdhcmctPnR1cGxjbnRfYXJyKSk7Ci0tCi0tICAgICAgICBp ZiAodG1wID09IE5VTEwpCi0tICAgICAgICAgICAgcmV0dXJuIDA7Ci0tICAgICAgICBnYXJnLT50 cGxtYXggKz0gR1JPVVBMSVNUX0lOQ1JFTUVOVDsKLS0gICAgICAgIGdhcmctPnR1cGxjbnRfYXJy ID0gdG1wOwotLSAgICB9Ci0rICAgIGlmIChnYXJnLT5pbm5lciAmJiAhZ2FyZy0+Zmlyc3QgJiYg IWNsb3NlX3R1cGxlKGdhcmcpKQotKyAgICAgICAgcmV0dXJuIDA7Ci0rICAgIGdhcmctPmZpcnN0 ID0gMDsKLSAKLSAgICAgLyogQ29udmVydCB0byBcMC10ZXJtaW5hdGVkIHN0cmluZyAqLwotICAg ICByZXN0b3JlZF90dXBsZV9zdHJpbmcgPSBPUEVOU1NMX21hbGxvYygobGVuICsgMSAvKiBcMCAq LykgKiBzaXplb2YoY2hhcikpOwotQEAgLTE1NjAsMTUgKzE1ODUsOCBAQCBzdGF0aWMgaW50IHR1 cGxlX2NiKGNvbnN0IGNoYXIgKnR1cGxlLCBpbnQgbGVuLCB2b2lkICphcmcpCi0gICAgIC8qIFdl IGRvbid0IG5lZWQgdGhlIFxvLXRlcm1pbmF0ZWQgc3RyaW5nIGFueW1vcmUgKi8KLSAgICAgT1BF TlNTTF9mcmVlKHJlc3RvcmVkX3R1cGxlX3N0cmluZyk7Ci0gCi0tICAgIGlmIChnYXJnLT50dXBs Y250X2FycltnYXJnLT50cGxjbnRdID4gMCkgeyAvKiBTb21lIHZhbGlkIGdyb3VwcyBhcmUgcHJl c2VudCBpbiBjdXJyZW50IHR1cGxlLi4uICovCi0tICAgICAgICBpZiAoZ2FyZy0+dHVwbGVfbW9k ZSkgewotLSAgICAgICAgICAgIC8qIFdlICdjbG9zZScgdGhlIHR1cGxlICovCi0tICAgICAgICAg ICAgZ2FyZy0+dHBsY250Kys7Ci0tICAgICAgICAgICAgZ2FyZy0+dHVwbGNudF9hcnJbZ2FyZy0+ dHBsY250XSA9IDA7IC8qIE5leHQgdHVwbGUgaXMgaW5pdGlhbGl6ZWQgdG8gYmUgZW1wdHkgKi8K LS0gICAgICAgICAgICBnYXJnLT50dXBsZV9tb2RlID0gMTsgLyogbmV4dCBjYWxsIHdpbGwgc3Rh cnQgYSB0dXBsZSAodW5sZXNzIG92ZXJyaWRkZW4gaW4gZ2lkX2NiKSAqLwotLSAgICAgICAgfQot LSAgICB9Ci0tCi0rICAgIGlmICghZ2FyZy0+aW5uZXIgJiYgIWNsb3NlX3R1cGxlKGdhcmcpKQot KyAgICAgICAgcmV0dXJuIDA7Ci0gICAgIHJldHVybiByZXR2YWw7Ci0gfQotIAotQEAgLTE1OTks OCArMTYxNyw2IEBAIGludCB0bHMxX3NldF9ncm91cHNfbGlzdChTU0xfQ1RYICpjdHgsCi0gICAg IH0KLSAKLSAgICAgbWVtc2V0KCZnY2IsIDAsIHNpemVvZihnY2IpKTsKLS0gICAgZ2NiLnR1cGxl X21vZGUgPSAxOyAvKiBXZSBwcmVwYXJlIHRvIGNvbGxlY3QgdGhlIGZpcnN0IHR1cGxlICovCi0t ICAgIGdjYi5pZ25vcmVfdW5rbm93bl9kZWZhdWx0ID0gMDsKLSAgICAgZ2NiLmdpZG1heCA9IEdS T1VQTElTVF9JTkNSRU1FTlQ7Ci0gICAgIGdjYi50cGxtYXggPSBHUk9VUExJU1RfSU5DUkVNRU5U OwotICAgICBnY2Iua3NpZG1heCA9IEdST1VQTElTVF9JTkNSRU1FTlQ7Ci1kaWZmIC0tZ2l0IGEv dGVzdC90bHMxM2dyb3Vwc2VsZWN0aW9uX3Rlc3QuYyBiL3Rlc3QvdGxzMTNncm91cHNlbGVjdGlv bl90ZXN0LmMKLWluZGV4IDgzNDBhOWZkMmIzYjYuLmJjYWU1ZTcxNTk0NDYgMTAwNjQ0Ci0tLS0g YS90ZXN0L3RsczEzZ3JvdXBzZWxlY3Rpb25fdGVzdC5jCi0rKysgYi90ZXN0L3RsczEzZ3JvdXBz ZWxlY3Rpb25fdGVzdC5jCi1AQCAtNDAsNiArNDAsMTIgQEAgdHlwZWRlZiBlbnVtIFNFUlZFUl9S RVNQT05TRSB7Ci0gICAgIFNIID0gMgotIH0gU0VSVkVSX1JFU1BPTlNFOwotIAotK3N0YXRpYyBj b25zdCBjaGFyICpyZXNwb25zZV9kZXNjW10gPSB7Ci0rICAgICJIUlIiLAotKyAgICAiSU5JVCIs Ci0rICAgICJTSCIsCi0rfTsKLSsKLSBzdGF0aWMgY2hhciAqY2VydCA9IE5VTEw7Ci0gc3RhdGlj IGNoYXIgKnByaXZrZXkgPSBOVUxMOwotIAotQEAgLTMwNyw3ICszMTMsMjMgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB0bHMxM2dyb3Vwc2VsZWN0aW9uX3Rlc3Rfc3QgdGxzMTNncm91cHNlbGVjdGlv bl90ZXN0c1tdID0gewotICAgICB7ICIqYnJhaW5wb29sUDI1NnIxOlgyNTUxOSIsIC8qIHRlc3Qg NDMgKi8KLSAgICAgICAgICJYMjU1MTkiLAotICAgICAgICAgU0VSVkVSX1BSRUZFUkVOQ0UsCi0t ICAgICAgICBORUdPVElBVElPTl9GQUlMVVJFLCBJTklUIH0KLSsgICAgICAgIE5FR09USUFUSU9O X0ZBSUxVUkUsIElOSVQgfSwKLSsKLSsgICAgLyogREVGQVVMVCByZXRhaW5zIHR1cGxlIHN0cnVj dHVyZSAqLwotKyAgICB7ICIqWDI1NTE5OnNlY3AyNTZyMSIsCi0rICAgICAgICAic2VjcDI1NnIx OkRFRkFVTFQiLCAvKiB0ZXN0IDQ0ICovCi0rICAgICAgICBTRVJWRVJfUFJFRkVSRU5DRSwKLSsg ICAgICAgICJzZWNwMjU2cjEiLCBIUlIgfSwKLSsjaWZuZGVmIE9QRU5TU0xfTk9fREgKLSsgICAg eyAiKmZmZGhlMjA0ODpzZWNwMjU2cjEiLAotKyAgICAgICAgIkRFRkFVTFQ6ZmZkaGU0MDk2Iiwg LyogdGVzdCA0NSAqLwotKyAgICAgICAgQ0xJRU5UX1BSRUZFUkVOQ0UsCi0rICAgICAgICAic2Vj cDI1NnIxIiwgSFJSIH0sCi0rICAgIHsgIngyNTUxOTpmZmRoZTIwNDg6KmZmZGhlNDA5NiIsCi0r ICAgICAgICAiREVGQVVMVDpmZmRoZTQwOTYiLCAvKiB0ZXN0IDQ2ICovCi0rICAgICAgICBTRVJW RVJfUFJFRkVSRU5DRSwKLSsgICAgICAgICJ4MjU1MTkiLCBIUlIgfSwKLSsjZW5kaWYKLSB9Owot IAotIHN0YXRpYyB2b2lkIHNlcnZlcl9yZXNwb25zZV9jaGVja19jYihpbnQgd3JpdGVfcCwgaW50 IHZlcnNpb24sCi1AQCAtMzE4LDEwICszNDAsMTIgQEAgc3RhdGljIHZvaWQgc2VydmVyX3Jlc3Bv bnNlX2NoZWNrX2NiKGludCB3cml0ZV9wLCBpbnQgdmVyc2lvbiwKLSAgICAgZW51bSBTRVJWRVJf UkVTUE9OU0UgKnNlcnZlcl9yZXNwb25zZSA9IChlbnVtIFNFUlZFUl9SRVNQT05TRSAqKWFyZzsK LSAgICAgLyogUHJlcGFyZSBjaGVjayBmb3IgSFJSICovCi0gICAgIGNvbnN0IHVpbnQ4X3QgKmlu Y29taW5nX3JhbmRvbSA9ICh1aW50OF90ICopYnVmICsgNjsKLS0gICAgY29uc3QgdWludDhfdCBt YWdpY19IUlJfcmFuZG9tWzMyXSA9IHsgMHhDRiwgMHgyMSwgMHhBRCwgMHg3NCwgMHhFNSwgMHg5 QSwgMHg2MSwgMHgxMSwKLSsgICAgY29uc3QgdWludDhfdCBtYWdpY19IUlJfcmFuZG9tWzMyXSA9 IHsKLSsgICAgICAgIDB4Q0YsIDB4MjEsIDB4QUQsIDB4NzQsIDB4RTUsIDB4OUEsIDB4NjEsIDB4 MTEsCi0gICAgICAgICAweEJFLCAweDFELCAweDhDLCAweDAyLCAweDFFLCAweDY1LCAweEI4LCAw eDkxLAotICAgICAgICAgMHhDMiwgMHhBMiwgMHgxMSwgMHgxNiwgMHg3QSwgMHhCQiwgMHg4Qywg MHg1RSwKLS0gICAgICAgIDB4MDcsIDB4OUUsIDB4MDksIDB4RTIsIDB4QzgsIDB4QTgsIDB4MzMs IDB4OUMgfTsKLSsgICAgICAgIDB4MDcsIDB4OUUsIDB4MDksIDB4RTIsIDB4QzgsIDB4QTgsIDB4 MzMsIDB4OUMKLSsgICAgfTsKLSAKLSAgICAgLyogRGlkIGEgc2VydmVyIGhlbGxvIGFycml2ZT8g Ki8KLSAgICAgaWYgKHdyaXRlX3AgPT0gMCAmJiAvKiBJbmNvbWluZyBkYXRhLi4uICovCi1AQCAt NDUwLDEzICs0NzQsMTYgQEAgc3RhdGljIGludCB0ZXN0X2dyb3VwbmVnb3RpYXRpb24oY29uc3Qg c3RydWN0IHRsczEzZ3JvdXBzZWxlY3Rpb25fdGVzdF9zdCAqY3VycmUKLSAgICAgICAgIGdyb3Vw X25hbWVfY2xpZW50ID0gU1NMX2dyb3VwX3RvX25hbWUoY2xpZW50c3NsLCBuZWdvdGlhdGVkX2dy b3VwX2NsaWVudCk7Ci0gICAgICAgICBpZiAoIVRFU1RfaW50X2VxKG5lZ290aWF0ZWRfZ3JvdXBf Y2xpZW50LCBuZWdvdGlhdGVkX2dyb3VwX3NlcnZlcikpCi0gICAgICAgICAgICAgZ290byBlbmQ7 Ci0tICAgICAgICBpZiAoIVRFU1RfaW50X2VxKChpbnQpY3VycmVudF90ZXN0X3ZlY3Rvci0+ZXhw ZWN0ZWRfc2VydmVyX3Jlc3BvbnNlLCAoaW50KXNlcnZlcl9yZXNwb25zZSkpCi0rICAgICAgICBp ZiAoIVRFU1Rfc3RyX2VxKHJlc3BvbnNlX2Rlc2NbY3VycmVudF90ZXN0X3ZlY3Rvci0+ZXhwZWN0 ZWRfc2VydmVyX3Jlc3BvbnNlXSwKLSsgICAgICAgICAgICAgICAgcmVzcG9uc2VfZGVzY1tzZXJ2 ZXJfcmVzcG9uc2VdKSkKLSAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgIGlmIChURVNU X3N0cl9lcShncm91cF9uYW1lX2NsaWVudCwgY3VycmVudF90ZXN0X3ZlY3Rvci0+ZXhwZWN0ZWRf Z3JvdXApKQotICAgICAgICAgICAgIG9rID0gMTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIFRF U1RfZmFsc2Vfb3JfZW5kKGNyZWF0ZV9zc2xfY29ubmVjdGlvbihzZXJ2ZXJzc2wsIGNsaWVudHNz bCwgU1NMX0VSUk9SX05PTkUpKTsKLS0gICAgICAgIGlmICh0ZXN0X3R5cGUgPT0gVEVTVF9ORUdP VElBVElPTl9GQUlMVVJFICYmICFURVNUX2ludF9lcSgoaW50KWN1cnJlbnRfdGVzdF92ZWN0b3It PmV4cGVjdGVkX3NlcnZlcl9yZXNwb25zZSwgKGludClzZXJ2ZXJfcmVzcG9uc2UpKQotKyAgICAg ICAgaWYgKHRlc3RfdHlwZSA9PSBURVNUX05FR09USUFUSU9OX0ZBSUxVUkUKLSsgICAgICAgICAg ICAmJiAhVEVTVF9zdHJfZXEocmVzcG9uc2VfZGVzY1tjdXJyZW50X3Rlc3RfdmVjdG9yLT5leHBl Y3RlZF9zZXJ2ZXJfcmVzcG9uc2VdLAotKyAgICAgICAgICAgICAgICByZXNwb25zZV9kZXNjW3Nl cnZlcl9yZXNwb25zZV0pKQotICAgICAgICAgICAgIGdvdG8gZW5kOwotICAgICAgICAgb2sgPSAx OwotICAgICB9CgpkaWZmIC0tZ2l0IGEvMDA1OS1DVkUtMjAyNi0yODM4Ny5wYXRjaCBiLzAwNTkt Q1ZFLTIwMjYtMjgzODcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNzA4 MDQuLjAwMDAwMDAKLS0tIGEvMDA1OS1DVkUtMjAyNi0yODM4Ny5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDMzICswLDAgQEAKLUZyb20gNDQ0OTU4ZGVhZjQ1MGFlYTgxOTE3MWY5N2FlNjllYWVk ZWRlNDJjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFsZXhhbmRyIE5lZHZlZGlj a3kgPHNhc2hhbkBvcGVuc3NsLm9yZz4KLURhdGU6IFR1ZSwgMyBNYXIgMjAyNiAxMzoyMzo0NiAr MDEwMAotU3ViamVjdDogW1BBVENIXSBkYW5lX21hdGNoX2NlcnQoKSBzaG91bGQgWDUwOV9mcmVl KCkgb24gLT5tY2VydCBpbnN0ZWFkIG9mCi0gT1BFTlNTTF9mcmVlKCkKLQotRml4ZXM6IDE3MGI3 MzU4MjBhYyAiREFORSBzdXBwb3J0IGZvciBYNTA5X3ZlcmlmeV9jZXJ0KCkiCi0KLVJldmlld2Vk LWJ5OiBFdWdlbmUgU3lyb21pYXRuaWtvdiA8ZXN5ckBvcGVuc3NsLm9yZz4KLVJldmlld2VkLWJ5 OiBUb21hcyBNcmF6IDx0b21hc0BvcGVuc3NsLm9yZz4KLVJldmlld2VkLWJ5OiBQYXVsIERhbGUg PHBhdWwuZGFsZUBvcmFjbGUuY29tPgotUmV2aWV3ZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFu QG9wZW5zc2wub3JnPgotTWVyZ2VEYXRlOiBUaHUgTWFyICA1IDEyOjM3OjE3IDIwMjYKLShNZXJn ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vb3BlbnNzbC9vcGVuc3NsL3B1bGwvMzAyNTApCi0K LShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDhiNWNkNmE2ODJmMGY2ZTdiOGJmNTUxMzcxMzdj NTY3ZDE4OTljNGEpCi0tLS0KLSBjcnlwdG8veDUwOS94NTA5X3ZmeS5jIHwgMiArLQotIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEv Y3J5cHRvL3g1MDkveDUwOV92ZnkuYyBiL2NyeXB0by94NTA5L3g1MDlfdmZ5LmMKLWluZGV4IDhm MWI5ZjU4Y2FjZGIuLjAxY2UxNDk4MmQ2ZTAgMTAwNjQ0Ci0tLS0gYS9jcnlwdG8veDUwOS94NTA5 X3ZmeS5jCi0rKysgYi9jcnlwdG8veDUwOS94NTA5X3ZmeS5jCi1AQCAtMzAxNiw3ICszMDE2LDcg QEAgc3RhdGljIGludCBkYW5lX21hdGNoX2NlcnQoWDUwOV9TVE9SRV9DVFggKmN0eCwgWDUwOSAq Y2VydCwgaW50IGRlcHRoKQotICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICAgICAgIH0KLSAKLS0gICAgICAgICAgICAgICAgT1BFTlNTTF9mcmVlKGRhbmUtPm1jZXJ0KTsK LSsgICAgICAgICAgICAgICAgWDUwOV9mcmVlKGRhbmUtPm1jZXJ0KTsKLSAgICAgICAgICAgICAg ICAgZGFuZS0+bWNlcnQgPSBjZXJ0OwotICAgICAgICAgICAgICAgICBkYW5lLT5tZHB0aCA9IGRl cHRoOwotICAgICAgICAgICAgICAgICBkYW5lLT5tdGxzYSA9IHQ7CgpkaWZmIC0tZ2l0IGEvMDA2 MC1DVkUtMjAyNi0yODM4OC5wYXRjaCBiLzAwNjAtQ1ZFLTIwMjYtMjgzODgucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhOTJhNzAuLjAwMDAwMDAKLS0tIGEvMDA2MC1DVkUt MjAyNi0yODM4OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gZDNh OTAxZThkOWYwMjFmM2U2N2Q2Y2ZiYzEyZTc2ODEyOTg2MjcyNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IERhbmllbCBLdWJlYyA8a3ViZWNAb3BlbnNzbC5vcmc+Ci1EYXRlOiBUdWUs IDE3IE1hciAyMDI2IDExOjExOjIyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBOVUxMIERl cmVmZXJlbmNlIFdoZW4gRGVsdGEgQ1JMIExhY2tzIENSTCBOdW1iZXIKLSBFeHRlbnNpb24KLU1J TUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK LUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRml4ZXMgQ1ZFLTIwMjYtMjgzODgK LQotQ28tYXV0aG9yZWQtYnk6IElnb3IgTW9yZ2Vuc3Rlcm4gPGlnb3IubW9yZ2Vuc3Rlcm5AYWlz bGUuY29tPgotCi1SZXZpZXdlZC1ieTogU2HFoWEgTmVkdsSbZGlja8O9IDxzYXNoYW5Ab3BlbnNz bC5vcmc+Ci1SZXZpZXdlZC1ieTogVG9tYXMgTXJheiA8dG9tYXNAb3BlbnNzbC5mb3VuZGF0aW9u PgotTWVyZ2VEYXRlOiBNb24gQXByICA2IDE5OjI3OjE2IDIwMjYKLShjaGVycnkgcGlja2VkIGZy b20gY29tbWl0IGQ2YWQ4NTk1ZTg2ZGM5NmNhODc3MWYwYTE3MTRiMzE3OTRiZWZhNzUpCi0tLS0K LSBjcnlwdG8veDUwOS94NTA5X3ZmeS5jIHwgMiArKwotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2NyeXB0by94NTA5L3g1MDlfdmZ5LmMgYi9jcnlwdG8v eDUwOS94NTA5X3ZmeS5jCi1pbmRleCAwMWNlMTQ5ODJkNmUwLi5kNTUxNDFlMDE0ZDg0IDEwMDY0 NAotLS0tIGEvY3J5cHRvL3g1MDkveDUwOV92ZnkuYwotKysrIGIvY3J5cHRvL3g1MDkveDUwOV92 ZnkuYwotQEAgLTEzMDgsNiArMTMwOCw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGVsdGFfYmFzZShY NTA5X0NSTCAqZGVsdGEsIFg1MDlfQ1JMICpiYXNlKQotICAgICBpZiAoQVNOMV9JTlRFR0VSX2Nt cChkZWx0YS0+YmFzZV9jcmxfbnVtYmVyLCBiYXNlLT5jcmxfbnVtYmVyKSA+IDApCi0gICAgICAg ICByZXR1cm4gMDsKLSAgICAgLyogRGVsdGEgQ1JMIG51bWJlciBtdXN0IGV4Y2VlZCBmdWxsIENS TCBudW1iZXIgKi8KLSsgICAgaWYgKGRlbHRhLT5jcmxfbnVtYmVyID09IE5VTEwpCi0rICAgICAg ICByZXR1cm4gMDsKLSAgICAgcmV0dXJuIEFTTjFfSU5URUdFUl9jbXAoZGVsdGEtPmNybF9udW1i ZXIsIGJhc2UtPmNybF9udW1iZXIpID4gMDsKLSB9Ci0gCgpkaWZmIC0tZ2l0IGEvMDA2MS1DVkUt MjAyNi0yODM4OS5wYXRjaCBiLzAwNjEtQ1ZFLTIwMjYtMjgzODkucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDQwYmY5MDcuLjAwMDAwMDAKLS0tIGEvMDA2MS1DVkUtMjAyNi0y ODM4OS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi1Gcm9tIDE2Y2VhNDE4 OGUwZWE1NjdkZWI0ZjkzZjg1OTAyMjQ3ZTY3Mzg0ZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkBvcGVuc3NsLm9yZz4KLURhdGU6IE1vbiwgMTYg TWFyIDIwMjYgMTM6NDk6MDcgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IE5VTEwgZGVyZWYg aW4gW2VjXWRoX2Ntc19zZXRfc2hhcmVkX2luZm8KLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rp bmc6IDhiaXQKLQotTXVsdGlwbGUgaW5kZXBlbmRlbnQgcmVwb3J0cyBpbmRpY2F0ZWQgYSBTSUdT RUdWIHdhcyBwb3NzaWJsZSBpbiBDTVMKLXByb2Nlc3Npbmcgd2hlbiBhIGNyYWZ0ZWQgQ01TIEVu dmVsb3BlZERhdGEgbWVzc2FnZSB1c2luZyBBIEtleQotQWdyZWVtZW50IFJlY2lwaWVudCBJbmZv IGZpZWxkLiAgSWYgdGhlCi1LZXlFbmNyeXB0aW9uQWxnb3JpdGhtSWRlbnRpZmllciBvbWl0cyB0 aGUgb3B0aW9uYWwgcGFyYW1ldGVyIGZpZWxkLCB0aGUKLXJlZmVyZW5jZWQgZnVuY3Rpb25zIGFi b3ZlIHdpbGwgYXR0ZW1wdCB0byBkZXJlZmVyZW5jZSB0aGUKLWFsZy0+cGFyYW1ldGVyIGRhdGEg cHJpb3IgdG8gY2hlY2tpbmcgaWYgdGhlIHBhcmFtZXRlciBmaWVsZCBpcyBOVUxMLgotCi1Db25m aXJtZWQgdG8gcmVzb2x2ZSB0aGUgaXNzdWVzIHVzaW5nIHRoZSByZXByb2R1Y2VycyBwcm92aWRl ZCBpbiB0aGUKLXNlY3VyaXR5IHJlcG9ydHMuCi0KLUNvLWF1dGhvcmVkLWJ5OiBUb21hcyBNcmF6 IDx0b21hc0BvcGVuc3NsLmZvdW5kYXRpb24+Ci0KLUZpeGVzIENWRS0yMDI2LTI4Mzg5Ci0KLVJl dmlld2VkLWJ5OiBTYcWhYSBOZWR2xJtkaWNrw70gPHNhc2hhbkBvcGVuc3NsLm9yZz4KLVJldmll d2VkLWJ5OiBOaWtvbGEgUGFqa292c2t5IDxuaWtvbGFwQG9wZW5zc2wub3JnPgotTWVyZ2VEYXRl OiBNb24gQXByICA2IDE5OjA2OjEyIDIwMjYKLS0tLQotIGNyeXB0by9jbXMvY21zX2RoLmMgfCAx MyArKysrKysrKystLS0tCi0gY3J5cHRvL2Ntcy9jbXNfZWMuYyB8IDE0ICsrKysrKysrKystLS0t Ci0gMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvY3J5cHRvL2Ntcy9jbXNfZGguYyBiL2NyeXB0by9jbXMvY21zX2RoLmMKLWlu ZGV4IGFiMzQ1M2QxYzdjMTIuLjQyNDcyOTUyMzY5NzcgMTAwNjQ0Ci0tLS0gYS9jcnlwdG8vY21z L2Ntc19kaC5jCi0rKysgYi9jcnlwdG8vY21zL2Ntc19kaC5jCi1AQCAtODksMTYgKzg5LDIxIEBA IHN0YXRpYyBpbnQgZGhfY21zX3NldF9zaGFyZWRfaW5mbyhFVlBfUEtFWV9DVFggKnBjdHgsIENN U19SZWNpcGllbnRJbmZvICpyaSkKLSAgICAgaW50IGtleWxlbiwgcGxlbjsKLSAgICAgRVZQX0NJ UEhFUiAqa2VrY2lwaGVyID0gTlVMTDsKLSAgICAgRVZQX0NJUEhFUl9DVFggKmtla2N0eDsKLSsg ICAgY29uc3QgQVNOMV9PQkpFQ1QgKmFvaWQ7Ci0rICAgIGNvbnN0IHZvaWQgKnBhcmFtZXRlciA9 IE5VTEw7Ci0rICAgIGludCBwdHlwZSA9IDA7Ci0gICAgIGNoYXIgbmFtZVtPU1NMX01BWF9OQU1F X1NJWkVdOwotIAotICAgICBpZiAoIUNNU19SZWNpcGllbnRJbmZvX2thcmlfZ2V0MF9hbGcocmks ICZhbGcsICZ1a20pKQotICAgICAgICAgZ290byBlcnI7Ci0gCi0rICAgIFg1MDlfQUxHT1JfZ2V0 MCgmYW9pZCwgJnB0eXBlLCAmcGFyYW1ldGVyLCBhbGcpOwotKwotICAgICAvKgotICAgICAgKiBG b3IgREggd2Ugb25seSBoYXZlIG9uZSBPSUQgcGVybWlzc2libGUuIElmIGV2ZXIgYW55IG1vcmUg Z2V0IGRlZmluZWQKLSAgICAgICogd2Ugd2lsbCBuZWVkIHNvbWV0aGluZyBjbGV2ZXJlci4KLSAg ICAgICovCi0tICAgIGlmIChPQkpfb2JqMm5pZChhbGctPmFsZ29yaXRobSkgIT0gTklEX2lkX3Nt aW1lX2FsZ19FU0RIKSB7Ci0rICAgIGlmIChPQkpfb2JqMm5pZChhb2lkKSAhPSBOSURfaWRfc21p bWVfYWxnX0VTREgpIHsKLSAgICAgICAgIEVSUl9yYWlzZShFUlJfTElCX0NNUywgQ01TX1JfS0RG X1BBUkFNRVRFUl9FUlJPUik7Ci0gICAgICAgICBnb3RvIGVycjsKLSAgICAgfQotQEAgLTEwNywx MSArMTEyLDExIEBAIHN0YXRpYyBpbnQgZGhfY21zX3NldF9zaGFyZWRfaW5mbyhFVlBfUEtFWV9D VFggKnBjdHgsIENNU19SZWNpcGllbnRJbmZvICpyaSkKLSAgICAgICAgIHx8IEVWUF9QS0VZX0NU WF9zZXRfZGhfa2RmX21kKHBjdHgsIEVWUF9zaGExKCkpIDw9IDApCi0gICAgICAgICBnb3RvIGVy cjsKLSAKLS0gICAgaWYgKGFsZy0+cGFyYW1ldGVyLT50eXBlICE9IFZfQVNOMV9TRVFVRU5DRSkK LSsgICAgaWYgKHB0eXBlICE9IFZfQVNOMV9TRVFVRU5DRSkKLSAgICAgICAgIGdvdG8gZXJyOwot IAotLSAgICBwID0gYWxnLT5wYXJhbWV0ZXItPnZhbHVlLnNlcXVlbmNlLT5kYXRhOwotLSAgICBw bGVuID0gYWxnLT5wYXJhbWV0ZXItPnZhbHVlLnNlcXVlbmNlLT5sZW5ndGg7Ci0rICAgIHAgPSBB U04xX1NUUklOR19nZXQwX2RhdGEocGFyYW1ldGVyKTsKLSsgICAgcGxlbiA9IEFTTjFfU1RSSU5H X2xlbmd0aChwYXJhbWV0ZXIpOwotICAgICBrZWthbGcgPSBkMmlfWDUwOV9BTEdPUihOVUxMLCAm cCwgcGxlbik7Ci0gICAgIGlmIChrZWthbGcgPT0gTlVMTCkKLSAgICAgICAgIGdvdG8gZXJyOwot ZGlmZiAtLWdpdCBhL2NyeXB0by9jbXMvY21zX2VjLmMgYi9jcnlwdG8vY21zL2Ntc19lYy5jCi1p bmRleCBmZjhhZGFkNjE2Njg2Li5lNjBkMGE3ODZlYzU4IDEwMDY0NAotLS0tIGEvY3J5cHRvL2Nt cy9jbXNfZWMuYwotKysrIGIvY3J5cHRvL2Ntcy9jbXNfZWMuYwotQEAgLTE2NiwyMSArMTY2LDI3 IEBAIHN0YXRpYyBpbnQgZWNkaF9jbXNfc2V0X3NoYXJlZF9pbmZvKEVWUF9QS0VZX0NUWCAqcGN0 eCwgQ01TX1JlY2lwaWVudEluZm8gKnJpKQotICAgICBpbnQgcGxlbiwga2V5bGVuOwotICAgICBF VlBfQ0lQSEVSICprZWtjaXBoZXIgPSBOVUxMOwotICAgICBFVlBfQ0lQSEVSX0NUWCAqa2VrY3R4 OwotKyAgICBjb25zdCBBU04xX09CSkVDVCAqYW9pZCA9IE5VTEw7Ci0rICAgIGludCBwdHlwZSA9 IDA7Ci0rICAgIGNvbnN0IHZvaWQgKnBhcmFtZXRlciA9IE5VTEw7Ci0rCi0gICAgIGNoYXIgbmFt ZVtPU1NMX01BWF9OQU1FX1NJWkVdOwotIAotICAgICBpZiAoIUNNU19SZWNpcGllbnRJbmZvX2th cmlfZ2V0MF9hbGcocmksICZhbGcsICZ1a20pKQotICAgICAgICAgcmV0dXJuIDA7Ci0gCi0tICAg IGlmICghZWNkaF9jbXNfc2V0X2tkZl9wYXJhbShwY3R4LCBPQkpfb2JqMm5pZChhbGctPmFsZ29y aXRobSkpKSB7Ci0rICAgIFg1MDlfQUxHT1JfZ2V0MCgmYW9pZCwgJnB0eXBlLCAmcGFyYW1ldGVy LCBhbGcpOwotKwotKyAgICBpZiAoIWVjZGhfY21zX3NldF9rZGZfcGFyYW0ocGN0eCwgT0JKX29i ajJuaWQoYW9pZCkpKSB7Ci0gICAgICAgICBFUlJfcmFpc2UoRVJSX0xJQl9DTVMsIENNU19SX0tE Rl9QQVJBTUVURVJfRVJST1IpOwotICAgICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLS0gICAg aWYgKGFsZy0+cGFyYW1ldGVyLT50eXBlICE9IFZfQVNOMV9TRVFVRU5DRSkKLSsgICAgaWYgKHB0 eXBlICE9IFZfQVNOMV9TRVFVRU5DRSkKLSAgICAgICAgIHJldHVybiAwOwotIAotLSAgICBwID0g YWxnLT5wYXJhbWV0ZXItPnZhbHVlLnNlcXVlbmNlLT5kYXRhOwotLSAgICBwbGVuID0gYWxnLT5w YXJhbWV0ZXItPnZhbHVlLnNlcXVlbmNlLT5sZW5ndGg7Ci0rICAgIHAgPSBBU04xX1NUUklOR19n ZXQwX2RhdGEocGFyYW1ldGVyKTsKLSsgICAgcGxlbiA9IEFTTjFfU1RSSU5HX2xlbmd0aChwYXJh bWV0ZXIpOwotICAgICBrZWthbGcgPSBkMmlfWDUwOV9BTEdPUihOVUxMLCAmcCwgcGxlbik7Ci0g ICAgIGlmIChrZWthbGcgPT0gTlVMTCkKLSAgICAgICAgIGdvdG8gZXJyOwoKZGlmZiAtLWdpdCBh LzAwNjItQ1ZFLTIwMjYtMjgzOTAucGF0Y2ggYi8wMDYyLUNWRS0yMDI2LTI4MzkwLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTMxMmM4Li4wMDAwMDAwCi0tLSBhLzAwNjIt Q1ZFLTIwMjYtMjgzOTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi1Gcm9t IDJlMzliN2E2OTkzYmU0NDVmZGRiOWZiY2UzMTZmYTc1NmUwMzk3YjYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkBvcGVuc3NsLm9yZz4KLURhdGU6 IFdlZCwgMSBBcHIgMjAyNiAxMDo1Njo0NCArMDIwMAotU3ViamVjdDogW1BBVENIXSBGaXggTlVM TCBkZXJlZiBpbiByc2FfY21zX2RlY3J5cHQKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKLQotVmVyeSBzaW1taWxhciB0byBDVkUtMjAyNi0yODM4OSwgZW5zdXJlIHRoYXQgaWYg d2UgYXJlIG1pc3NpbmcKLXBhcmFtZXRlcnMgaW4gUlNBLU9BRVAgU291cmNlRnVuYyBpbiBDTVMg S2V5VHJhbnNwb3J0UmVjaXBpZW50SW5mbywKLXdlIGRvbid0IHNlZ2ZhdWx0IHdoZW4gZGVjcnlw dGluZy4KLQotQ28tYXV0aG9yZWQtYnk6IFRvbWFzIE1yYXogPHRvbWFzQG9wZW5zc2wuZm91bmRh dGlvbj4KLQotRml4ZXMgQ1ZFLTIwMjYtMjgzOTAKLQotUmV2aWV3ZWQtYnk6IFNhxaFhIE5lZHbE m2RpY2vDvSA8c2FzaGFuQG9wZW5zc2wub3JnPgotUmV2aWV3ZWQtYnk6IE5pa29sYSBQYWprb3Zz a3kgPG5pa29sYXBAb3BlbnNzbC5vcmc+Ci1NZXJnZURhdGU6IE1vbiBBcHIgIDYgMTk6MDY6MTQg MjAyNgotLS0tCi0gY3J5cHRvL2Ntcy9jbXNfcnNhLmMgfCAzMSArKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY3J5cHRvL2Ntcy9jbXNfcnNhLmMgYi9jcnlwdG8vY21z L2Ntc19yc2EuYwotaW5kZXggNmI2NTg0MmNjMTRlYy4uMzRjNzM5YTk4MjVhNCAxMDA2NDQKLS0t LSBhL2NyeXB0by9jbXMvY21zX3JzYS5jCi0rKysgYi9jcnlwdG8vY21zL2Ntc19yc2EuYwotQEAg LTQyLDEwICs0MiwxMyBAQCBzdGF0aWMgaW50IHJzYV9jbXNfZGVjcnlwdChDTVNfUmVjaXBpZW50 SW5mbyAqcmkpCi0gICAgIFg1MDlfQUxHT1IgKmNtc2FsZzsKLSAgICAgaW50IG5pZDsKLSAgICAg aW50IHJ2ID0gLTE7Ci0tICAgIHVuc2lnbmVkIGNoYXIgKmxhYmVsID0gTlVMTDsKLSsgICAgY29u c3QgdW5zaWduZWQgY2hhciAqbGFiZWwgPSBOVUxMOwotICAgICBpbnQgbGFiZWxsZW4gPSAwOwot ICAgICBjb25zdCBFVlBfTUQgKm1nZjFtZCA9IE5VTEwsICptZCA9IE5VTEw7Ci0gICAgIFJTQV9P QUVQX1BBUkFNUyAqb2FlcDsKLSsgICAgY29uc3QgQVNOMV9PQkpFQ1QgKmFvaWQ7Ci0rICAgIGNv bnN0IHZvaWQgKnBhcmFtZXRlciA9IE5VTEw7Ci0rICAgIGludCBwdHlwZSA9IDA7Ci0gCi0gICAg IHBrY3R4ID0gQ01TX1JlY2lwaWVudEluZm9fZ2V0MF9wa2V5X2N0eChyaSk7Ci0gICAgIGlmIChw a2N0eCA9PSBOVUxMKQotQEAgLTc1LDIxICs3OCwxOSBAQCBzdGF0aWMgaW50IHJzYV9jbXNfZGVj cnlwdChDTVNfUmVjaXBpZW50SW5mbyAqcmkpCi0gICAgICAgICBnb3RvIGVycjsKLSAKLSAgICAg aWYgKG9hZXAtPnBTb3VyY2VGdW5jICE9IE5VTEwpIHsKLS0gICAgICAgIFg1MDlfQUxHT1IgKnBs YWIgPSBvYWVwLT5wU291cmNlRnVuYzsKLSsgICAgICAgIFg1MDlfQUxHT1JfZ2V0MCgmYW9pZCwg JnB0eXBlLCAmcGFyYW1ldGVyLCBvYWVwLT5wU291cmNlRnVuYyk7Ci0gCi0tICAgICAgICBpZiAo T0JKX29iajJuaWQocGxhYi0+YWxnb3JpdGhtKSAhPSBOSURfcFNwZWNpZmllZCkgewotKyAgICAg ICAgaWYgKE9CSl9vYmoybmlkKGFvaWQpICE9IE5JRF9wU3BlY2lmaWVkKSB7Ci0gICAgICAgICAg ICAgRVJSX3JhaXNlKEVSUl9MSUJfQ01TLCBDTVNfUl9VTlNVUFBPUlRFRF9MQUJFTF9TT1VSQ0Up OwotICAgICAgICAgICAgIGdvdG8gZXJyOwotICAgICAgICAgfQotLSAgICAgICAgaWYgKHBsYWIt PnBhcmFtZXRlci0+dHlwZSAhPSBWX0FTTjFfT0NURVRfU1RSSU5HKSB7Ci0rICAgICAgICBpZiAo cHR5cGUgIT0gVl9BU04xX09DVEVUX1NUUklORykgewotICAgICAgICAgICAgIEVSUl9yYWlzZShF UlJfTElCX0NNUywgQ01TX1JfSU5WQUxJRF9MQUJFTCk7Ci0gICAgICAgICAgICAgZ290byBlcnI7 Ci0gICAgICAgICB9Ci0gCi0tICAgICAgICBsYWJlbCA9IHBsYWItPnBhcmFtZXRlci0+dmFsdWUu b2N0ZXRfc3RyaW5nLT5kYXRhOwotLSAgICAgICAgLyogU3RvcCBsYWJlbCBiZWluZyBmcmVlZCB3 aGVuIE9BRVAgcGFyYW1ldGVycyBhcmUgZnJlZWQgKi8KLS0gICAgICAgIHBsYWItPnBhcmFtZXRl ci0+dmFsdWUub2N0ZXRfc3RyaW5nLT5kYXRhID0gTlVMTDsKLS0gICAgICAgIGxhYmVsbGVuID0g cGxhYi0+cGFyYW1ldGVyLT52YWx1ZS5vY3RldF9zdHJpbmctPmxlbmd0aDsKLSsgICAgICAgIGxh YmVsID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHBhcmFtZXRlcik7Ci0rICAgICAgICBsYWJlbGxl biA9IEFTTjFfU1RSSU5HX2xlbmd0aChwYXJhbWV0ZXIpOwotICAgICB9Ci0gCi0gICAgIGlmIChF VlBfUEtFWV9DVFhfc2V0X3JzYV9wYWRkaW5nKHBrY3R4LCBSU0FfUEtDUzFfT0FFUF9QQURESU5H KSA8PSAwKQotQEAgLTk4LDEwICs5OSwxNiBAQCBzdGF0aWMgaW50IHJzYV9jbXNfZGVjcnlwdChD TVNfUmVjaXBpZW50SW5mbyAqcmkpCi0gICAgICAgICBnb3RvIGVycjsKLSAgICAgaWYgKEVWUF9Q S0VZX0NUWF9zZXRfcnNhX21nZjFfbWQocGtjdHgsIG1nZjFtZCkgPD0gMCkKLSAgICAgICAgIGdv dG8gZXJyOwotLSAgICBpZiAobGFiZWwgIT0gTlVMTAotLSAgICAgICAgJiYgRVZQX1BLRVlfQ1RY X3NldDBfcnNhX29hZXBfbGFiZWwocGtjdHgsIGxhYmVsLCBsYWJlbGxlbikgPD0gMCkgewotLSAg ICAgICAgT1BFTlNTTF9mcmVlKGxhYmVsKTsKLS0gICAgICAgIGdvdG8gZXJyOwotKyAgICBpZiAo bGFiZWwgIT0gTlVMTCkgewotKyAgICAgICAgdW5zaWduZWQgY2hhciAqZHVwX2xhYmVsID0gT1BF TlNTTF9tZW1kdXAobGFiZWwsIGxhYmVsbGVuKTsKLSsKLSsgICAgICAgIGlmIChkdXBfbGFiZWwg PT0gTlVMTCkKLSsgICAgICAgICAgICBnb3RvIGVycjsKLSsKLSsgICAgICAgIGlmIChFVlBfUEtF WV9DVFhfc2V0MF9yc2Ffb2FlcF9sYWJlbChwa2N0eCwgZHVwX2xhYmVsLCBsYWJlbGxlbikgPD0g MCkgewotKyAgICAgICAgICAgIE9QRU5TU0xfZnJlZShkdXBfbGFiZWwpOwotKyAgICAgICAgICAg IGdvdG8gZXJyOwotKyAgICAgICAgfQotICAgICB9Ci0gICAgIC8qIENhcnJ5IG9uICovCi0gICAg IHJ2ID0gMTsKCmRpZmYgLS1naXQgYS8wMDYzLUNWRS0yMDI2LTMxNzg5LnBhdGNoIGIvMDA2My1D VkUtMjAyNi0zMTc4OS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI0ZDg0 Ni4uMDAwMDAwMAotLS0gYS8wMDYzLUNWRS0yMDI2LTMxNzg5LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDkgKzAsMCBAQAotRnJvbSA5NDViOTM1YWM2NmNjN2YxYTQxZjFiODQ5YzdjMjVhZGI1 MzUxZjQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSWdvciBVc3Rpbm92IDxpZ3Vz NjhAZ21haWwuY29tPgotRGF0ZTogVGh1LCA1IE1hciAyMDI2IDE1OjQ3OjM0ICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIEF2b2lkIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdyBpbiBidWYyaGV4IGNv bnZlcnNpb24KLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRml4ZXMgQ1ZF LTIwMjYtMzE3ODkKLQotUmV2aWV3ZWQtYnk6IFNhxaFhIE5lZHbEm2RpY2vDvSA8c2FzaGFuQG9w ZW5zc2wub3JnPgotUmV2aWV3ZWQtYnk6IFRvbWFzIE1yYXogPHRvbWFzQG9wZW5zc2wuZm91bmRh dGlvbj4KLU1lcmdlRGF0ZTogTW9uIEFwciAgNiAxOTozOToyMyAyMDI2Ci0oY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCAzMjQ0YWE0YjlkNmVhMDIyMGNjMTRmZDk3ZDk1MWM2N2I1MDUyODM3KQot LS0tCi0gY3J5cHRvL29fc3RyLmMgfCAxMyArKysrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQs IDEyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NyeXB0by9v X3N0ci5jIGIvY3J5cHRvL29fc3RyLmMKLWluZGV4IDM1NTQwNjMwYmUyNWYuLjliOWU3NzUxZmRk OWUgMTAwNjQ0Ci0tLS0gYS9jcnlwdG8vb19zdHIuYwotKysrIGIvY3J5cHRvL29fc3RyLmMKLUBA IC0yOTYsNiArMjk2LDExIEBAIHN0YXRpYyBpbnQgYnVmMmhleHN0cl9zZXAoY2hhciAqc3RyLCBz aXplX3Qgc3RyX24sIHNpemVfdCAqc3RybGVuZ3RoLAotICAgICBpbnQgaGFzX3NlcCA9IChzZXAg IT0gQ0hfWkVSTyk7Ci0gICAgIHNpemVfdCBpLCBsZW4gPSBoYXNfc2VwID8gYnVmbGVuICogMyA6 IDEgKyBidWZsZW4gKiAyOwotIAotKyAgICBpZiAoYnVmbGVuID4gKGhhc19zZXAgPyBTSVpFX01B WCAvIDMgOiAoU0laRV9NQVggLSAxKSAvIDIpKSB7Ci0rICAgICAgICBFUlJfcmFpc2UoRVJSX0xJ Ql9DUllQVE8sIENSWVBUT19SX1RPT19NQU5ZX0JZVEVTKTsKLSsgICAgICAgIHJldHVybiAwOwot KyAgICB9Ci0rCi0gICAgIGlmIChsZW4gPT0gMCkKLSAgICAgICAgICsrbGVuOwotICAgICBpZiAo c3RybGVuZ3RoICE9IE5VTEwpCi1AQCAtMzM5LDcgKzM0NCwxMyBAQCBjaGFyICpvc3NsX2J1ZjJo ZXhzdHJfc2VwKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgbG9uZyBidWZsZW4sIGNoYXIgc2Vw KQotICAgICBpZiAoYnVmbGVuID09IDApCi0gICAgICAgICByZXR1cm4gT1BFTlNTTF96YWxsb2Mo MSk7Ci0gCi0tICAgIHRtcF9uID0gKHNlcCAhPSBDSF9aRVJPKSA/IGJ1ZmxlbiAqIDMgOiAxICsg YnVmbGVuICogMjsKLSsgICAgaWYgKChzZXAgIT0gQ0hfWkVSTyAmJiAoc2l6ZV90KWJ1ZmxlbiA+ IFNJWkVfTUFYIC8gMykKLSsgICAgICAgIHx8IChzZXAgPT0gQ0hfWkVSTyAmJiAoc2l6ZV90KWJ1 ZmxlbiA+IChTSVpFX01BWCAtIDEpIC8gMikpIHsKLSsgICAgICAgIEVSUl9yYWlzZShFUlJfTElC X0NSWVBUTywgQ1JZUFRPX1JfVE9PX01BTllfQllURVMpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7 Ci0rICAgIH0KLSsKLSsgICAgdG1wX24gPSAoc2VwICE9IENIX1pFUk8pID8gKHNpemVfdClidWZs ZW4gKiAzIDogMSArIChzaXplX3QpYnVmbGVuICogMjsKLSAgICAgaWYgKCh0bXAgPSBPUEVOU1NM X21hbGxvYyh0bXBfbikpID09IE5VTEwpCi0gICAgICAgICByZXR1cm4gTlVMTDsKLSAKCmRpZmYg LS1naXQgYS8wMDY0LUNWRS0yMDI2LTMxNzkwLnBhdGNoIGIvMDA2NC1DVkUtMjAyNi0zMTc5MC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNlOGFlZC4uMDAwMDAwMAotLS0g YS8wMDY0LUNWRS0yMDI2LTMxNzkwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBA QAotRnJvbSAwMDFlMDFkYjNlOTk2ZTEzZmZjNzIzODZmZTc5ZDAzYTY2ODNiNWFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTmlrb2xhIFBhamtvdnNreSA8bmlrb2xhcEBvcGVuc3Ns Lm9yZz4KLURhdGU6IFRodSwgMTkgTWFyIDIwMjYgMTI6MTY6MDggKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSF0gcnNhX2tlbTogdmFsaWRhdGUgUlNBX3B1YmxpY19lbmNyeXB0KCkgcmVzdWx0IGluIFJT QVNWRQotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1SU0FfcHVibGljX2Vu Y3J5cHQoKSByZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiBvbiBzdWNjZXNzIGFu ZAotLTEgb24gZmFpbHVyZS4gV2l0aCB0aGUgZXhpc3RpbmcgYGlmIChyZXQpYCBjaGVjaywgYSBw cm92aWRlci1zaWRlIFJTQSBLRU0KLWVuY2Fwc3VsYXRpb24gY2FuIGluY29ycmVjdGx5IHN1Y2Nl ZWQgd2hlbiB0aGUgdW5kZXJseWluZyBSU0EgcHVibGljCi1lbmNyeXB0IG9wZXJhdGlvbiBmYWls cy4gSW4gdGhhdCBjYXNlIHRoZSBjb2RlIHJlcG9ydHMgc3VjY2VzcywgcmV0dXJucwotbGVuZ3Ro cyBhcyBpZiBlbmNhcHN1bGF0aW9uIGNvbXBsZXRlZCBub3JtYWxseSwgYW5kIGxlYXZlcyB0aGUg ZnJlc2hseQotZ2VuZXJhdGVkIHNlY3JldCBhdmFpbGFibGUgaW5zdGVhZCBvZiBkaXNjYXJkaW5n IGl0LgotCi1UaWdodGVuIHRoZSBzdWNjZXNzIGNvbmRpdGlvbiBzbyBSU0FTVkUgb25seSBzdWNj ZWVkcyB3aGVuCi1SU0FfcHVibGljX2VuY3J5cHQoKSByZXR1cm5zIGEgcG9zaXRpdmUgdmFsdWUg ZXF1YWwgdG8gdGhlIG1vZHVsdXMtc2l6ZWQKLW91dHB1dCBleHBlY3RlZCBmb3IgUlNBX05PX1BB RERJTkcuIEFueSBvdGhlciByZXR1cm4gdmFsdWUgaXMgdHJlYXRlZCBhcwotZmFpbHVyZSwgYW5k IHRoZSBnZW5lcmF0ZWQgc2VjcmV0IGlzIGNsZWFuc2VkIGJlZm9yZSByZXR1cm5pbmcuCi0KLUZp eGVzIENWRS0yMDI2LTMxNzkwCi1TaWduZWQtb2ZmLWJ5OiBOaWtvbGEgUGFqa292c2t5IDxuaWtv bGFwQG9wZW5zc2wub3JnPgotCi1SZXZpZXdlZC1ieTogU2HFoWEgTmVkdsSbZGlja8O9IDxzYXNo YW5Ab3BlbnNzbC5vcmc+Ci1SZXZpZXdlZC1ieTogVG9tYXMgTXJheiA8dG9tYXNAb3BlbnNzbC5m b3VuZGF0aW9uPgotTWVyZ2VEYXRlOiBNb24gQXByICA2IDE5OjUxOjMwIDIwMjYKLS0tLQotIHBy b3ZpZGVycy9pbXBsZW1lbnRhdGlvbnMva2VtL3JzYV9rZW0uYyB8IDIwICsrKysrKysrKysrLS0t LS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9wcm92aWRlcnMvaW1wbGVtZW50YXRpb25zL2tlbS9yc2Ffa2VtLmMg Yi9wcm92aWRlcnMvaW1wbGVtZW50YXRpb25zL2tlbS9yc2Ffa2VtLmMKLWluZGV4IGY3YmYzNjhh MGRmYzcuLjc0ZGZhZmRkZDllMDYgMTAwNjQ0Ci0tLS0gYS9wcm92aWRlcnMvaW1wbGVtZW50YXRp b25zL2tlbS9yc2Ffa2VtLmMKLSsrKyBiL3Byb3ZpZGVycy9pbXBsZW1lbnRhdGlvbnMva2VtL3Jz YV9rZW0uYwotQEAgLTMxNiwxNyArMzE2LDE5IEBAIHN0YXRpYyBpbnQgcnNhc3ZlX2dlbmVyYXRl KFBST1ZfUlNBX0NUWCAqcHJzYWN0eCwKLSAgICAgICAgIHJldHVybiAwOwotIAotICAgICAvKiBT dGVwKDMpOiBvdXQgPSBSU0FFUCgobixlKSwgeikgKi8KLS0gICAgcmV0ID0gUlNBX3B1YmxpY19l bmNyeXB0KG5sZW4sIHNlY3JldCwgb3V0LCBwcnNhY3R4LT5yc2EsIFJTQV9OT19QQURESU5HKTsK LS0gICAgaWYgKHJldCkgewotLSAgICAgICAgcmV0ID0gMTsKLS0gICAgICAgIGlmIChvdXRsZW4g IT0gTlVMTCkKLS0gICAgICAgICAgICAqb3V0bGVuID0gbmxlbjsKLS0gICAgICAgIGlmIChzZWNy ZXRsZW4gIT0gTlVMTCkKLS0gICAgICAgICAgICAqc2VjcmV0bGVuID0gbmxlbjsKLS0gICAgfSBl bHNlIHsKLSsgICAgcmV0ID0gUlNBX3B1YmxpY19lbmNyeXB0KChpbnQpbmxlbiwgc2VjcmV0LCBv dXQsIHByc2FjdHgtPnJzYSwKLSsgICAgICAgIFJTQV9OT19QQURESU5HKTsKLSsgICAgaWYgKHJl dCA8PSAwIHx8IHJldCAhPSAoaW50KW5sZW4pIHsKLSAgICAgICAgIE9QRU5TU0xfY2xlYW5zZShz ZWNyZXQsIG5sZW4pOwotKyAgICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLS0gICAgcmV0dXJuIHJl dDsKLSsKLSsgICAgaWYgKG91dGxlbiAhPSBOVUxMKQotKyAgICAgICAgKm91dGxlbiA9IG5sZW47 Ci0rICAgIGlmIChzZWNyZXRsZW4gIT0gTlVMTCkKLSsgICAgICAgICpzZWNyZXRsZW4gPSBubGVu OwotKwotKyAgICByZXR1cm4gMTsKLSB9Ci0gCi0gLyoqCgpkaWZmIC0tZ2l0IGEvb3BlbnNzbC5z cGVjIGIvb3BlbnNzbC5zcGVjCmluZGV4IDFjYTEzYTMuLjYyOTM4NDEgMTAwNjQ0Ci0tLSBhL29w ZW5zc2wuc3BlYworKysgYi9vcGVuc3NsLnNwZWMKQEAgLTMzLDggKzMzLDggQEAgcHJpbnQoc3Ry aW5nLnN1YihoYXNoLCAwLCAxNikpCiAKIFN1bW1hcnk6IFV0aWxpdGllcyBmcm9tIHRoZSBnZW5l cmFsIHB1cnBvc2UgY3J5cHRvZ3JhcGh5IGxpYnJhcnkgd2l0aCBUTFMgaW1wbGVtZW50YXRpb24K IE5hbWU6IG9wZW5zc2wKLVZlcnNpb246IDMuNS41Ci1SZWxlYXNlOiAyJXs/ZGlzdH0KK1ZlcnNp b246IDMuNS43CitSZWxlYXNlOiAxJXs/ZGlzdH0KIEVwb2NoOiAxCiBTb3VyY2UwOiBvcGVuc3Ns LSV7dmVyc2lvbn0udGFyLmd6CiBTb3VyY2UxOiBmaXBzLWhtYWNpZnkuc2gKQEAgLTEwMiwxMyAr MTAyLDYgQEAgUGF0Y2gwMDU0OiAwMDU0LVRlbXBvcmFyaWx5LWRpc2FibGUtU0xILURTQS1GSVBT LXNlbGYtdGVzdHMucGF0Y2gKIFBhdGNoMDA1NTogMDA1NS1BZGQtYS1kZWZpbmUtdG8tZGlzYWJs ZS1zeW12ZXItYXR0cmlidXRlcy5wYXRjaAogUGF0Y2gwMDU2OiAwMDU2LUFkZC10YXJnZXRzLXRv LXNraXAtYnVpbGQtb2Ytbm9uLWluc3RhbGxhYmxlLXByb2dyYW0ucGF0Y2gKIFBhdGNoMDA1Nzog MDA1Ny1EaXNhYmxlLVJTQS1QS0NTMS41LUZJUFMtUE9TVC1ub3QtcmVsZXZhbnQtZm9yLVJIRUwu cGF0Y2gKLVBhdGNoMDA1ODogMDA1OC1DVkUtMjAyNi0yNjczLnBhdGNoCi1QYXRjaDAwNTk6IDAw NTktQ1ZFLTIwMjYtMjgzODcucGF0Y2gKLVBhdGNoMDA2MDogMDA2MC1DVkUtMjAyNi0yODM4OC5w YXRjaAotUGF0Y2gwMDYxOiAwMDYxLUNWRS0yMDI2LTI4Mzg5LnBhdGNoCi1QYXRjaDAwNjI6IDAw NjItQ1ZFLTIwMjYtMjgzOTAucGF0Y2gKLVBhdGNoMDA2MzogMDA2My1DVkUtMjAyNi0zMTc4OS5w YXRjaAotUGF0Y2gwMDY0OiAwMDY0LUNWRS0yMDI2LTMxNzkwLnBhdGNoCiAKIExpY2Vuc2U6IEFw YWNoZS0yLjAKIFVSTDogaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8KQEAgLTQ4MSw2ICs0NzQsOSBA QCBsbiAtcyAvZXRjL2NyeXB0by1wb2xpY2llcy9iYWNrLWVuZHMvb3BlbnNzbF9maXBzLmNvbmZp ZyAkUlBNX0JVSUxEX1JPT1Qle19zeXNjbwogJWxkY29uZmlnX3NjcmlwdGxldHMgbGlicwogCiAl Y2hhbmdlbG9nCisqIFdlZCBKdW4gMTAgMjAyNiBEbWl0cnkgQmVseWF2c2tpeSA8ZGJlbHlhdnNA cmVkaGF0LmNvbT4gLSAxOjMuNS43LTEKKy0gUmViYXNlIHRvIE9wZW5TU0wgMy41LjcKKwogKiBN b24gQXByIDIwIDIwMjYgUGF2b2wgxb3DocSNaWsgPHB6YWNpa0ByZWRoYXQuY29tPiAtIDE6My41 LjUtMgogLSBCYWNrcG9ydCBzZWN1cml0eSBwYXRjaGVzIGZyb20gT3BlblNTTCAzLjUuNgogICBS ZXNvbHZlczogQ1ZFLTIwMjYtMjY3MwoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmlu ZGV4IDg1NTFmZTMuLjFmYTM5MmEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpA QCAtMSArMSBAQAotU0hBNTEyIChvcGVuc3NsLTMuNS41LnRhci5neikgPSA3Y2YwZWI5MWJhYzE3 NWY3ZmUwYWRjYWZlZjQ1Nzc5MGQ0M2ZlN2Y5OGUyZDRiZWY2ODFjMmZkNWNhMzY1ZTFmYTViNTYy YzY0NWE2MGFiNjAyMzY1YWRlZGY5ZDkxYzA3NDYyNGVlYTY2ZDNkN2UxNTU2MzlmYzUwZDU4NjFl YworU0hBNTEyIChvcGVuc3NsLTMuNS43LnRhci5neikgPSBkZTUzNTFkMmQ1MzJlMWEzOTA4YTcz OGY3ZDhhYWU0NDhkMzJiYzYwYmRiMjQ4MDhjNTU2YTI0YmMzN2EzZjUzZGFlZGYxMmI1ZDQzMmVl YjhjMjM1ZTE2OTM5ZDg0MmY5MDgzMzJlZGU4YTQ0N2NhMTAzYWQxYzQ5M2M4MjBkNwo=