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: Benjamin A. Beasley To: git-commits@fedoraproject.org Subject: [rpms/usd] rawhide: Backport upstream patch for Python 3.15 Date: Sat, 19 Sep 2026 21:07:40 GMT Message-ID: <178985206011.1.1376886843229292398.rpms-usd-3dd9abd675ec@fedoraproject.org> List-ID: X-Git-Repo: rpms/usd X-Git-Branch: rawhide X-Git-Rev: 3dd9abd675ec3cc0f8e15fb6f66f93868aa26568 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvdXNkCkJyYW5jaCA6 IHJhd2hpZGUKQ29tbWl0IDogM2RkOWFiZDY3NWVjM2NjMGY4ZTE1ZmI2ZjY2ZjkzODY4YWEyNjU2 OApBdXRob3IgOiBCZW5qYW1pbiBBLiBCZWFzbGV5IDxjb2RlQG11c2ljaW5teWJyYWluLm5ldD4K RGF0ZSAgIDogMjAyNi0wOS0xOVQwODowMToyMyswMTowMApTdGF0cyAgOiArNDAyLy0xMTcgaW4g MyBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvdXNk L2MvM2RkOWFiZDY3NWVjM2NjMGY4ZTE1ZmI2ZjY2ZjkzODY4YWEyNjU2OD9icmFuY2g9cmF3aGlk ZQoKTG9nOgpCYWNrcG9ydCB1cHN0cmVhbSBwYXRjaCBmb3IgUHl0aG9uIDMuMTUKCi0tLQpkaWZm IC0tZ2l0IGEvMDAwMS1SZXBsYWNlLVB5V2Vha3JlZl9HZXRPYmplY3Qtd2l0aC1QeVdlYWtyZWZf R2V0UmVmLnBhdGNoIGIvMDAwMS1SZXBsYWNlLVB5V2Vha3JlZl9HZXRPYmplY3Qtd2l0aC1QeVdl YWtyZWZfR2V0UmVmLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2RiYWIz Li4wMDAwMDAwCi0tLSBhLzAwMDEtUmVwbGFjZS1QeVdlYWtyZWZfR2V0T2JqZWN0LXdpdGgtUHlX ZWFrcmVmX0dldFJlZi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi1Gcm9t IGYzZTk2MDBkYjYwODZlODM0YzA1MDNjZGFmMzBiNWJhN2VkNTNjZWIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBBbm9ueW1vdXMgQ293YXJkIDxub2JvZHlAcmVkaGF0LmNvbT4KLURh dGU6IFN1biwgMjYgSnVsIDIwMjYgMTY6MTM6MTggKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVw bGFjZSBQeVdlYWtyZWZfR2V0T2JqZWN0IHdpdGggUHlXZWFrcmVmX0dldFJlZgotCi1QeVdlYWty ZWZfR2V0T2JqZWN0IHdhcyByZW1vdmVkIGluIFB5dGhvbiAzLjE1LiBSZXBsYWNlIGFsbCBmb3Vy IGNhbGwKLXNpdGVzIHdpdGggUHlXZWFrcmVmX0dldFJlZiwgd2hpY2ggcmV0dXJucyBhIHN0cm9u ZyByZWZlcmVuY2UgaW5zdGVhZAotb2YgYSBib3Jyb3dlZCBvbmUsIGFuZCBhZGp1c3QgcmVmZXJl bmNlIGNvdW50aW5nIGFjY29yZGluZ2x5LgotCi1JbiBUZl9QeUlkSGFuZGxlOjpQdHIoKSwgcmV0 dXJuIFB5X05vbmUgd2hlbiB0aGUgcmVmZXJlbnQgaXMgZGVhZCB0bwotbWF0Y2ggdGhlIG9yaWdp bmFsIGJlaGF2aW91ciAocHJldmlvdXNseSByZXR1cm5lZCBOVUxMIGVycm9uZW91c2x5KS4KLQot SW4gVGZfUHlXZWFrT2JqZWN0OjpHZXRPYmplY3QoKSwgZXhwbGljaXRseSByZXR1cm4gYSBQeXRo b24gTm9uZSBvYmplY3QKLW9uIGZhaWx1cmUsIG1hdGNoaW5nIHRoZSBvcmlnaW5hbCBzZW1hbnRp Y3MgZXhhY3RseS4KLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9QaXhhckFuaW1hdGlvblN0 dWRpb3MvT3BlblVTRC9pc3N1ZXMvMzk2NgotCi1Bc3Npc3RlZC1ieTogQ2xhdWRlIE9wdXMgNC42 Ci1SZXZpZXdlZC1ieTogT3BlblVTRCBNYWludGFpbmVycyA8dXNkLW1haW50YWluZXJzQGZlZG9y YXByb2plY3Qub3JnPgotLS0tCi0gcHhyL2Jhc2UvdGYvcHlGdW5jdGlvbi5oICAgICB8IDEzICsr KysrKysrKy0tLS0KLSBweHIvYmFzZS90Zi9weUlkZW50aXR5LmNwcCAgIHwgMTAgKysrKysrKysr LQotIHB4ci9iYXNlL3RmL3B5V2Vha09iamVjdC5jcHAgfCAxMiArKysrKysrKystLS0KLSAzIGZp bGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9weHIvYmFzZS90Zi9weUZ1bmN0aW9uLmggYi9weHIvYmFzZS90Zi9weUZ1bmN0aW9uLmgK LWluZGV4IDg1YWY5NDNiMi4uZjc3YjViNzFiIDEwMDY0NAotLS0tIGEvcHhyL2Jhc2UvdGYvcHlG dW5jdGlvbi5oCi0rKysgYi9weHIvYmFzZS90Zi9weUZ1bmN0aW9uLmgKLUBAIC00OSwxMSArNDks MTMgQEAgc3RydWN0IFRmUHlGdW5jdGlvbkZyb21QeXRob248UmV0IChBcmdzLi4uKT4KLSAgICAg ICAgICAgICB1c2luZyBuYW1lc3BhY2UgcHhyX2Jvb3N0OjpweXRob247Ci0gICAgICAgICAgICAg Ly8gQXR0ZW1wdCB0byBnZXQgdGhlIHJlZmVyZW5jZWQgY2FsbGFibGUgb2JqZWN0LgotICAgICAg ICAgICAgIFRmUHlMb2NrIGxvY2s7Ci0tICAgICAgICAgICAgb2JqZWN0IGNhbGxhYmxlKGhhbmRs ZTw+KGJvcnJvd2VkKFB5V2Vha3JlZl9HZXRPYmplY3Qod2Vhay5wdHIoKSkpKSk7Ci0tICAgICAg ICAgICAgaWYgKFRmUHlJc05vbmUoY2FsbGFibGUpKSB7Ci0rICAgICAgICAgICAgUHlPYmplY3Qg KnJhd0NhbGxhYmxlID0gTlVMTDsKLSsgICAgICAgICAgICBpZiAoUHlXZWFrcmVmX0dldFJlZih3 ZWFrLnB0cigpLCAmcmF3Q2FsbGFibGUpIDw9IDApIHsKLSAgICAgICAgICAgICAgICAgVEZfV0FS TigiVHJpZWQgdG8gY2FsbCBhbiBleHBpcmVkIHB5dGhvbiBjYWxsYmFjayIpOwotICAgICAgICAg ICAgICAgICByZXR1cm4gUmV0KCk7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAgICAgIC8vIFB5 V2Vha3JlZl9HZXRSZWYgcmV0dXJucyBhIHN0cm9uZyByZWZlcmVuY2U7IGhhbmRsZTw+IHN0ZWFs cyBpdC4KLSsgICAgICAgICAgICBvYmplY3QgY2FsbGFibGV7aGFuZGxlPD4ocmF3Q2FsbGFibGUp fTsKLSAgICAgICAgICAgICByZXR1cm4gVGZQeUNhbGw8UmV0PihjYWxsYWJsZSkoYXJncy4uLik7 Ci0gICAgICAgICB9Ci0gICAgIH07Ci1AQCAtNjgsMTIgKzcwLDE1IEBAIHN0cnVjdCBUZlB5RnVu Y3Rpb25Gcm9tUHl0aG9uPFJldCAoQXJncy4uLik+Ci0gICAgICAgICAgICAgLy8gQXR0ZW1wdCB0 byBnZXQgdGhlIHJlZmVyZW5jZWQgc2VsZiBwYXJhbWV0ZXIsIHRoZW4gYnVpbGQgYSBuZXcKLSAg ICAgICAgICAgICAvLyBpbnN0YW5jZSBtZXRob2QgYW5kIGNhbGwgaXQuCi0gICAgICAgICAgICAg VGZQeUxvY2sgbG9jazsKLS0gICAgICAgICAgICBQeU9iamVjdCAqc2VsZiA9IFB5V2Vha3JlZl9H ZXRPYmplY3Qod2Vha1NlbGYucHRyKCkpOwotLSAgICAgICAgICAgIGlmIChzZWxmID09IFB5X05v bmUpIHsKLSsgICAgICAgICAgICBQeU9iamVjdCAqc2VsZiA9IE5VTEw7Ci0rICAgICAgICAgICAg aWYgKFB5V2Vha3JlZl9HZXRSZWYod2Vha1NlbGYucHRyKCksICZzZWxmKSA8PSAwKSB7Ci0gICAg ICAgICAgICAgICAgIFRGX1dBUk4oIlRyaWVkIHRvIGNhbGwgYSBtZXRob2Qgb24gYW4gZXhwaXJl ZCBweXRob24gaW5zdGFuY2UiKTsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIFJldCgpOwotICAg ICAgICAgICAgIH0KLSsgICAgICAgICAgICAvLyBQeVdlYWtyZWZfR2V0UmVmIHJldHVybnMgYSBz dHJvbmcgcmVmZXJlbmNlIHRvIHNlbGY7IFB5TWV0aG9kX05ldwotKyAgICAgICAgICAgIC8vIHRh a2VzIGl0cyBvd24gcmVmZXJlbmNlLCBzbyByZWxlYXNlIG91cnMgYWZ0ZXJ3YXJkLgotICAgICAg ICAgICAgIG9iamVjdCBtZXRob2QoaGFuZGxlPD4oUHlNZXRob2RfTmV3KGZ1bmMucHRyKCksIHNl bGYpKSk7Ci0rICAgICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwotICAgICAgICAgICAgIHJldHVy biBUZlB5Q2FsbDxSZXQ+KG1ldGhvZCkoYXJncy4uLik7Ci0gICAgICAgICB9Ci0gICAgIH07Ci1k aWZmIC0tZ2l0IGEvcHhyL2Jhc2UvdGYvcHlJZGVudGl0eS5jcHAgYi9weHIvYmFzZS90Zi9weUlk ZW50aXR5LmNwcAotaW5kZXggNTM4OWQ4ZjI1Li4wNmI3ZjliMGMgMTAwNjQ0Ci0tLS0gYS9weHIv YmFzZS90Zi9weUlkZW50aXR5LmNwcAotKysrIGIvcHhyL2Jhc2UvdGYvcHlJZGVudGl0eS5jcHAK LUBAIC0xMzYsNyArMTM2LDE1IEBAIFB5T2JqZWN0ICoKLSBUZl9QeUlkSGFuZGxlOjpQdHIoKSBj b25zdCB7Ci0gICAgIGlmIChfd2Vha1JlZikgewotICAgICAgICAgVGZQeUxvY2sgbG9jazsKLS0g ICAgICAgIHJldHVybiBQeVdlYWtyZWZfR2V0T2JqZWN0KF93ZWFrUmVmKTsKLSsgICAgICAgIFB5 T2JqZWN0ICpvYmogPSBOVUxMOwotKyAgICAgICAgaWYgKFB5V2Vha3JlZl9HZXRSZWYoX3dlYWtS ZWYsICZvYmopID4gMCkgewotKyAgICAgICAgICAgIC8vIFJldHVybiBhIGJvcnJvd2VkLXN0eWxl IHJlZmVyZW5jZTogZGVjcmVtZW50IHNvIHRoZSBjYWxsZXIKLSsgICAgICAgICAgICAvLyBkb2Vz IG5vdCBuZWVkIHRvIHJlbGVhc2UuIFNhZmUgYmVjYXVzZSB0aGUgR0lMIGlzIGhlbGQgYnkKLSsg ICAgICAgICAgICAvLyBhbGwgY2FsbGVycy4KLSsgICAgICAgICAgICBQeV9ERUNSRUYob2JqKTsK LSsgICAgICAgICAgICByZXR1cm4gb2JqOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIFB5 X05vbmU7ICAgLy8gZGVhZCByZWZlcmVudCDihpIgbWF0Y2ggb3JpZ2luYWwgYmVoYXZpb3VyCi0g ICAgIH0KLSAgICAgcmV0dXJuIDA7Ci0gfQotZGlmZiAtLWdpdCBhL3B4ci9iYXNlL3RmL3B5V2Vh a09iamVjdC5jcHAgYi9weHIvYmFzZS90Zi9weVdlYWtPYmplY3QuY3BwCi1pbmRleCA4Y2ZkZGM3 MjkuLmVjZGQ3ZjcwNSAxMDA2NDQKLS0tLSBhL3B4ci9iYXNlL3RmL3B5V2Vha09iamVjdC5jcHAK LSsrKyBiL3B4ci9iYXNlL3RmL3B5V2Vha09iamVjdC5jcHAKLUBAIC0xMTUsOSArMTE1LDE1IEBA IFRmX1B5V2Vha09iamVjdDo6R2V0T3JDcmVhdGUocHhyX2Jvb3N0OjpweXRob246Om9iamVjdCBj b25zdCAmb2JqKQotIHB4cl9ib29zdDo6cHl0aG9uOjpvYmplY3QKLSBUZl9QeVdlYWtPYmplY3Q6 OkdldE9iamVjdCgpIGNvbnN0Ci0gewotLSAgICByZXR1cm4gcHhyX2Jvb3N0OjpweXRob246Om9i amVjdAotLSAgICAgICAgKHB4cl9ib29zdDo6cHl0aG9uOjpoYW5kbGU8PgotLSAgICAgICAgIChw eHJfYm9vc3Q6OnB5dGhvbjo6Ym9ycm93ZWQoUHlXZWFrcmVmX0dldE9iamVjdChfd2Vha1JlZi5n ZXQoKSkpKSk7Ci0rICAgIFB5T2JqZWN0ICpvYmogPSBOVUxMOwotKyAgICBpZiAoUHlXZWFrcmVm X0dldFJlZihfd2Vha1JlZi5nZXQoKSwgJm9iaikgPiAwKSB7Ci0rICAgICAgICAvLyBQeVdlYWty ZWZfR2V0UmVmIHJldHVybnMgYSBzdHJvbmcgcmVmZXJlbmNlOyBoYW5kbGU8PiBzdGVhbHMgaXQu Ci0rICAgICAgICByZXR1cm4gcHhyX2Jvb3N0OjpweXRob246Om9iamVjdCgKLSsgICAgICAgICAg ICBweHJfYm9vc3Q6OnB5dGhvbjo6aGFuZGxlPD4ob2JqKSk7Ci0rICAgIH0KLSsgICAgLy8gRGVh ZCByZWZlcmVudDogcmV0dXJuIFB5X05vbmUgZXhwbGljaXRseSwgYXMgdGhlIG9yaWdpbmFsIGRp ZC4KLSsgICAgcmV0dXJuIHB4cl9ib29zdDo6cHl0aG9uOjpvYmplY3QoCi0rICAgICAgICBweHJf Ym9vc3Q6OnB5dGhvbjo6aGFuZGxlPD4ocHhyX2Jvb3N0OjpweXRob246OmJvcnJvd2VkKFB5X05v bmUpKSk7Ci0gfQotIAotIHZvaWQKLS0tIAotMi41NS4wCi0KCmRpZmYgLS1naXQgYS9jZDNiOWM5 ZjAzMWZkZmFjZTM0MjNmZjdhODk5OTVkYWRmNGI3M2FhLnBhdGNoIGIvY2QzYjljOWYwMzFmZGZh Y2UzNDIzZmY3YTg5OTk1ZGFkZjRiNzNhYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hYWRlNzI4Ci0tLSAvZGV2L251bGwKKysrIGIvY2QzYjljOWYwMzFmZGZhY2Uz NDIzZmY3YTg5OTk1ZGFkZjRiNzNhYS5wYXRjaApAQCAtMCwwICsxLDM4NyBAQAorRnJvbSBjZDNi OWM5ZjAzMWZkZmFjZTM0MjNmZjdhODk5OTVkYWRmNGI3M2FhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogZ2l0YW1vaHIgPGdpdGFtb2hyQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4K K0RhdGU6IFRodSwgMTcgU2VwIDIwMjYgMTU6MDQ6MzcgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0g dGY6IFB5dGhvbiAzLjEzIHNpbXVsdGFuZW91c2x5IGRlcHJlY2F0ZXMgUHlXZWFrcmVmX0dldE9i amVjdAorIGFuZCBpbnRyb2R1Y2VzIGl0cyByZXBsYWNlbWVudCBQeVdlYWtyZWZfR2V0UmVmLiAg UHlXZWFrcmVmX0dldE9iamVjdCB3aWxsIGJlCisgcmVtb3ZlZCBpbiBQeXRob24gMy4xNS4gIEFk ZCBhIFRmX1B5V2Vha3JlZkdldFJlZiBzaGltIHRvIHB5VXRpbHMuaCB0aGF0CisgY2FsbHMgUHlX ZWFrUmVmX0dldFJlZiBkaXJlY3RseSBvbiA+PTMuMTMsIGFuZCBtaW1pY3MgaXRzIGJlaGF2aW9y IG9uIDwzLjEzLiAKKyBQb3J0IHB4cidzIFB5V2Vha3JlZl9HZXRPYmplY3QgY2FsbGVycyB0byB1 c2UgVGZfUHlXZWFrcmVmR2V0UmVmLgorCitGaXhlcyAjMzk2NgorCisoSW50ZXJuYWwgY2hhbmdl OiAyNDI4MzU2KQorLS0tCisgcHhyL2Jhc2UvdGYvcHlGdW5jdGlvbi5oICAgICB8ICAxMiArKy0t CisgcHhyL2Jhc2UvdGYvcHlJZGVudGl0eS5jcHAgICB8IDEwMyArKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQorIHB4ci9iYXNlL3RmL3B5VXRpbHMuaCAgICAgICAgfCAgNDIgKysr KysrKysrKysrKysKKyBweHIvYmFzZS90Zi9weVdlYWtPYmplY3QuY3BwIHwgIDI0ICsrKysrLS0t CisgcHhyL2Jhc2UvdGYvcHlXZWFrT2JqZWN0LmggICB8ICAgOCArKy0KKyA1IGZpbGVzIGNoYW5n ZWQsIDEzNSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3B4 ci9iYXNlL3RmL3B5RnVuY3Rpb24uaCBiL3B4ci9iYXNlL3RmL3B5RnVuY3Rpb24uaAoraW5kZXgg ODVhZjk0M2IyYzMuLjY2ZmM3Y2I4NzY4IDEwMDY0NAorLS0tIGEvcHhyL2Jhc2UvdGYvcHlGdW5j dGlvbi5oCisrKysgYi9weHIvYmFzZS90Zi9weUZ1bmN0aW9uLmgKK0BAIC00OSwxMSArNDksMTIg QEAgc3RydWN0IFRmUHlGdW5jdGlvbkZyb21QeXRob248UmV0IChBcmdzLi4uKT4KKyAgICAgICAg ICAgICB1c2luZyBuYW1lc3BhY2UgcHhyX2Jvb3N0OjpweXRob247CisgICAgICAgICAgICAgLy8g QXR0ZW1wdCB0byBnZXQgdGhlIHJlZmVyZW5jZWQgY2FsbGFibGUgb2JqZWN0LgorICAgICAgICAg ICAgIFRmUHlMb2NrIGxvY2s7CistICAgICAgICAgICAgb2JqZWN0IGNhbGxhYmxlKGhhbmRsZTw+ KGJvcnJvd2VkKFB5V2Vha3JlZl9HZXRPYmplY3Qod2Vhay5wdHIoKSkpKSk7CistICAgICAgICAg ICAgaWYgKFRmUHlJc05vbmUoY2FsbGFibGUpKSB7CisrICAgICAgICAgICAgUHlPYmplY3QgKmNh bGxhYmxlUHRyOworKyAgICAgICAgICAgIGlmIChUZl9QeVdlYWtyZWZHZXRSZWYod2Vhay5wdHIo KSwgJmNhbGxhYmxlUHRyKSAhPSAxKSB7CisgICAgICAgICAgICAgICAgIFRGX1dBUk4oIlRyaWVk IHRvIGNhbGwgYW4gZXhwaXJlZCBweXRob24gY2FsbGJhY2siKTsKKyAgICAgICAgICAgICAgICAg cmV0dXJuIFJldCgpOworICAgICAgICAgICAgIH0KKysgICAgICAgICAgICBvYmplY3QgY2FsbGFi bGUgeyBoYW5kbGU8PiB7IGNhbGxhYmxlUHRyIH0gfTsKKyAgICAgICAgICAgICByZXR1cm4gVGZQ eUNhbGw8UmV0PihjYWxsYWJsZSkoYXJncy4uLik7CisgICAgICAgICB9CisgICAgIH07CitAQCAt NjgsMTIgKzY5LDEzIEBAIHN0cnVjdCBUZlB5RnVuY3Rpb25Gcm9tUHl0aG9uPFJldCAoQXJncy4u Lik+CisgICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBnZXQgdGhlIHJlZmVyZW5jZWQgc2VsZiBw YXJhbWV0ZXIsIHRoZW4gYnVpbGQgYSBuZXcKKyAgICAgICAgICAgICAvLyBpbnN0YW5jZSBtZXRo b2QgYW5kIGNhbGwgaXQuCisgICAgICAgICAgICAgVGZQeUxvY2sgbG9jazsKKy0gICAgICAgICAg ICBQeU9iamVjdCAqc2VsZiA9IFB5V2Vha3JlZl9HZXRPYmplY3Qod2Vha1NlbGYucHRyKCkpOwor LSAgICAgICAgICAgIGlmIChzZWxmID09IFB5X05vbmUpIHsKKysgICAgICAgICAgICBQeU9iamVj dCAqc2VsZlB0cjsKKysgICAgICAgICAgICBpZiAoVGZfUHlXZWFrcmVmR2V0UmVmKHdlYWtTZWxm LnB0cigpLCAmc2VsZlB0cikgIT0gMSkgeworICAgICAgICAgICAgICAgICBURl9XQVJOKCJUcmll ZCB0byBjYWxsIGEgbWV0aG9kIG9uIGFuIGV4cGlyZWQgcHl0aG9uIGluc3RhbmNlIik7CisgICAg ICAgICAgICAgICAgIHJldHVybiBSZXQoKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAg b2JqZWN0IG1ldGhvZChoYW5kbGU8PihQeU1ldGhvZF9OZXcoZnVuYy5wdHIoKSwgc2VsZikpKTsK KysgICAgICAgICAgICBvYmplY3Qgc2VsZiB7IGhhbmRsZTw+IHsgc2VsZlB0ciB9IH07CisrICAg ICAgICAgICAgb2JqZWN0IG1ldGhvZCB7IGhhbmRsZTw+IHsgUHlNZXRob2RfTmV3KGZ1bmMucHRy KCksIHNlbGYucHRyKCkpIH0gfTsKKyAgICAgICAgICAgICByZXR1cm4gVGZQeUNhbGw8UmV0Piht ZXRob2QpKGFyZ3MuLi4pOworICAgICAgICAgfQorICAgICB9OworZGlmZiAtLWdpdCBhL3B4ci9i YXNlL3RmL3B5SWRlbnRpdHkuY3BwIGIvcHhyL2Jhc2UvdGYvcHlJZGVudGl0eS5jcHAKK2luZGV4 IDUzODlkOGYyNWUyLi43M2RiN2U4MmYzNiAxMDA2NDQKKy0tLSBhL3B4ci9iYXNlL3RmL3B5SWRl bnRpdHkuY3BwCisrKysgYi9weHIvYmFzZS90Zi9weUlkZW50aXR5LmNwcAorQEAgLTEwLDYgKzEw LDcgQEAKKyAjaW5jbHVkZSAicHhyL2Jhc2UvdGYvaGFzaC5oIgorICNpbmNsdWRlICJweHIvYmFz ZS90Zi9tYWxsb2NUYWcuaCIKKyAjaW5jbHVkZSAicHhyL2Jhc2UvdGYvcHlJZGVudGl0eS5oIgor KyNpbmNsdWRlICJweHIvYmFzZS90Zi9weVV0aWxzLmgiCisgI2luY2x1ZGUgInB4ci9iYXNlL3Rm L3N0YXRpY0RhdGEuaCIKKyAjaW5jbHVkZSAicHhyL2Jhc2UvdGYvc3RhY2tUcmFjZS5oIgorIAor QEAgLTMwLDcgKzMxLDcgQEAgVGZfUHlPd25lcnNoaXBQdHJNYXA6Ol9DYWNoZVR5cGUgVGZfUHlP d25lcnNoaXBQdHJNYXA6Ol9jYWNoZTsKKyBzdHJ1Y3QgVGZfUHlJZEhhbmRsZSB7CisgCisgICAg IFRGX01BTExPQ19UQUdfTkVXKCJUZiIsICJUZl9QeUlkSGFuZGxlIik7CistICAgIAorKworICAg ICBUZl9QeUlkSGFuZGxlKCk7CisgICAgIGV4cGxpY2l0IFRmX1B5SWRIYW5kbGUoUHlPYmplY3Qg Km9iaik7CisgICAgIFRmX1B5SWRIYW5kbGUoVGZfUHlJZEhhbmRsZSBjb25zdCAmb3RoZXIpOwor QEAgLTM5LDIwICs0MCwyOSBAQCBzdHJ1Y3QgVGZfUHlJZEhhbmRsZSB7CisgICAgIHZvaWQgQ2xl YW5VcCgpOworICAgICB2b2lkIFJlbGVhc2UoKSBjb25zdDsKKyAgICAgdm9pZCBBY3F1aXJlKCkg Y29uc3Q7CistICAgIFB5T2JqZWN0ICpQdHIoKSBjb25zdDsKKy0gICAgbXV0YWJsZSBib29sIF9p c0FjcXVpcmVkOworKworKyAgICAvLyBSZXR1cm4gYSBuZXcgcmVmZXJlbmNlIHRvIHRoZSByZWZl cmVudCwgb3IgbnVsbCBpZiBpdCBoYXMgZXhwaXJlZC4KKysgICAgUHlPYmplY3QgKkdldFJlZigp IGNvbnN0OworKworKyAgICAvLyBSZXR1cm4gdGhlIHJlZmVyZW50IHdpdGhvdXQgb3duaW5nIGEg cmVmZXJlbmNlIHRvIGl0LCBvciBudWxsIGlmIGl0IGhhcworKyAgICAvLyBleHBpcmVkLiAgT25s eSB2YWxpZCBmb3IgY29tcGFyaXNvbiBhbmQgZGlhZ25vc3RpY3M7IHRoZSByZXN1bHQgbWF5Cisr ICAgIC8vIGV4cGlyZSBhcyBzb29uIGFzIHRoZSBjYWxsZXIgZHJvcHMgdGhlIEdJTC4KKysgICAg UHlPYmplY3QgKlBlZWtQdHIoKSBjb25zdDsKKysKKysgICAgLy8gVGhlIHJlZmVyZW5jZSBhY3F1 aXJlZCBieSBBY3F1aXJlKCksIG9yIG51bGwgd2hlbiBub3QgYWNxdWlyZWQuCisrICAgIG11dGFi bGUgUHlPYmplY3QgKl9hY3F1aXJlZDsKKyAgICAgUHlPYmplY3QgKl93ZWFrUmVmOworIH07Cisg CisgCisgCisgVGZfUHlJZEhhbmRsZTo6VGZfUHlJZEhhbmRsZSgpIDoKKy0gICAgX2lzQWNxdWly ZWQoZmFsc2UpLCBfd2Vha1JlZigwKQorKyAgICBfYWNxdWlyZWQobnVsbHB0ciksIF93ZWFrUmVm KG51bGxwdHIpCisgeworIH0KKyAKKyBUZl9QeUlkSGFuZGxlOjpUZl9QeUlkSGFuZGxlKFB5T2Jq ZWN0ICpvYmopIDoKKy0gICAgX2lzQWNxdWlyZWQoZmFsc2UpLCBfd2Vha1JlZigwKQorKyAgICBf YWNxdWlyZWQobnVsbHB0ciksIF93ZWFrUmVmKG51bGxwdHIpCisgeworICAgICBUZlB5TG9jayBs b2NrOworICAgICBfd2Vha1JlZiA9IFB5V2Vha3JlZl9OZXdSZWYob2JqLCAwKTsKK0BAIC02MCw3 ICs3MCw3IEBAIFRmX1B5SWRIYW5kbGU6OlRmX1B5SWRIYW5kbGUoUHlPYmplY3QgKm9iaikgOgor IH0KKyAKKyBUZl9QeUlkSGFuZGxlOjpUZl9QeUlkSGFuZGxlKFRmX1B5SWRIYW5kbGUgY29uc3Qg Jm90aGVyKSA6CistICAgIF9pc0FjcXVpcmVkKGZhbHNlKSwgX3dlYWtSZWYoMCkKKysgICAgX2Fj cXVpcmVkKG51bGxwdHIpLCBfd2Vha1JlZihudWxscHRyKQorIHsKKyAgICAgKnRoaXMgPSBvdGhl cjsKKyB9CitAQCAtNzMsOCArODMsOSBAQCBUZl9QeUlkSGFuZGxlOjpvcGVyYXRvcj0oVGZfUHlJ ZEhhbmRsZSBjb25zdCAmb3RoZXIpCisgICAgICAgICBfd2Vha1JlZiA9IG90aGVyLl93ZWFrUmVm OworICAgICAgICAgVGZQeUxvY2sgbG9jazsKKyAgICAgICAgIFB5X0lOQ1JFRihfd2Vha1JlZik7 CistICAgICAgICBpZiAob3RoZXIuX2lzQWNxdWlyZWQpCisrICAgICAgICBpZiAob3RoZXIuX2Fj cXVpcmVkKSB7CisgICAgICAgICAgICAgQWNxdWlyZSgpOworKyAgICAgICAgfQorICAgICB9Cisg ICAgIHJldHVybiAqdGhpczsKKyB9CitAQCAtODQsNDUgKzk1LDM2IEBAIFRmX1B5SWRIYW5kbGU6 On5UZl9QeUlkSGFuZGxlKCkgeworIH0KKyAKKyB2b2lkIFRmX1B5SWRIYW5kbGU6OkNsZWFuVXAo KSB7CistICAgIGlmIChfaXNBY3F1aXJlZCkKKysgICAgaWYgKF9hY3F1aXJlZCkgeworICAgICAg ICAgUmVsZWFzZSgpOworKyAgICB9CisgICAgIFRmUHlMb2NrIGxvY2s7CistICAgIFB5X1hERUNS RUYoX3dlYWtSZWYpOworKyAgICBQeV9DTEVBUihfd2Vha1JlZik7CisgfQorIAorIHZvaWQgVGZf UHlJZEhhbmRsZTo6UmVsZWFzZSgpIGNvbnN0IHsKKy0gICAgaWYgKF93ZWFrUmVmICYmICFfaXNB Y3F1aXJlZCkgeworKyAgICBpZiAoX3dlYWtSZWYgJiYgIV9hY3F1aXJlZCkgeworICAgICAgICAg Ly8gQ09ERV9DT1ZFUkFHRV9PRkYgQ2FuIG9ubHkgZ2V0IGhlcmUgaWYgdGhlcmUncyBhIGJ1Zy4K KyAgICAgICAgIFRGX0NPRElOR19FUlJPUigiUmVsZWFzaW5nIHdoaWxlIG5vdCBhY3F1aXJlZCEi KTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgICAgIC8vIENPREVfQ09WRVJBR0VfT04KKy0gICAg fSAgICAgICAgICAgIAorLSAgICBpZiAoUHlPYmplY3QgKnB0ciA9IFB0cigpKSB7CistICAgICAg ICBfaXNBY3F1aXJlZCA9IGZhbHNlOworLSAgICAgICAgVGZQeUxvY2sgbG9jazsKKy0gICAgICAg IFB5X0RFQ1JFRihwdHIpOworLSAgICB9IGVsc2UgeworLSAgICAgICAgLy8gQ09ERV9DT1ZFUkFH RV9PRkYgQ2FuIG9ubHkgZ2V0IGhlcmUgaWYgdGhlcmUncyBhIGJ1Zy4KKy0gICAgICAgIFRGX0NP RElOR19FUlJPUigiQWNxdWlyaW5nIFB5dGhvbiBpZGVudGl0eSB3aXRoICIKKy0gICAgICAgICAg ICAgICAgICAgICAgICAiZXhwaXJlZCBQeXRob24gb2JqZWN0ISIpOworLSAgICAgICAgVGZMb2dT dGFja1RyYWNlKCJBY3F1aXJpbmcgUHl0aG9uIGlkZW50aXR5IHdpdGggIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICJleHBpcmVkIFB5dGhvbiBvYmplY3QhIik7CistICAgICAgICAvLyBDT0RF X0NPVkVSQUdFX09OCisgICAgIH0KKysgICAgLy8gSG9sZGluZyB0aGUgYWNxdWlyZWQgcmVmZXJl bmNlIGtlZXBzIHRoZSByZWZlcmVudCBhbGl2ZSwgc28gdGhlcmUgaXMgbm8KKysgICAgLy8gbmVl ZCB0byBjb25zdWx0IHRoZSB3ZWFrIHJlZmVyZW5jZSB0byBmaW5kIGl0LgorKyAgICBUZlB5TG9j ayBsb2NrOworKyAgICBQeV9DTEVBUihfYWNxdWlyZWQpOworIH0KKyAKKyB2b2lkIFRmX1B5SWRI YW5kbGU6OkFjcXVpcmUoKSBjb25zdCB7CistICAgIGlmIChfaXNBY3F1aXJlZCkgeworKyAgICBp ZiAoX2FjcXVpcmVkKSB7CisgICAgICAgICAvLyBDT0RFX0NPVkVSQUdFX09GRiBDYW4gb25seSBn ZXQgaGVyZSBpZiB0aGVyZSdzIGEgYnVnLgorICAgICAgICAgVEZfQ09ESU5HX0VSUk9SKCJBY3F1 aXJpbmcgd2hpbGUgYWxyZWFkeSBhY3F1aXJlZCEiKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAg ICAgIC8vIENPREVfQ09WRVJBR0VfT04KKyAgICAgfQorLSAgICBpZiAoUHlPYmplY3QgKnB0ciA9 IFB0cigpKSB7CistICAgICAgICBfaXNBY3F1aXJlZCA9IHRydWU7CistICAgICAgICBUZlB5TG9j ayBsb2NrOworLSAgICAgICAgUHlfSU5DUkVGKHB0cik7CistICAgIH0gZWxzZSB7CisrICAgIFRm UHlMb2NrIGxvY2s7CisrICAgIC8vIFRoZSByZWZlcmVuY2UgcmV0dXJuZWQgaGVyZSBiZWNvbWVz IHRoZSBhY3F1aXJlZCByZWZlcmVuY2UuCisrICAgIGlmICghKF9hY3F1aXJlZCA9IEdldFJlZigp KSkgeworICAgICAgICAgLy8gQ09ERV9DT1ZFUkFHRV9PRkYgQ2FuIG9ubHkgZ2V0IGhlcmUgaWYg dGhlcmUncyBhIGJ1Zy4KKyAgICAgICAgIFRGX0NPRElOR19FUlJPUigiQWNxdWlyaW5nIFB5dGhv biBpZGVudGl0eSB3aXRoIGV4cGlyZWQgUHl0aG9uICIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAib2JqZWN0ISIpOworQEAgLTEzMywxMiArMTM1LDMwIEBAIHZvaWQgVGZfUHlJZEhhbmRsZTo6 QWNxdWlyZSgpIGNvbnN0IHsKKyB9CisgCisgUHlPYmplY3QgKgorLVRmX1B5SWRIYW5kbGU6OlB0 cigpIGNvbnN0IHsKKy0gICAgaWYgKF93ZWFrUmVmKSB7CistICAgICAgICBUZlB5TG9jayBsb2Nr OworLSAgICAgICAgcmV0dXJuIFB5V2Vha3JlZl9HZXRPYmplY3QoX3dlYWtSZWYpOworK1RmX1B5 SWRIYW5kbGU6OkdldFJlZigpIGNvbnN0IHsKKysgICAgaWYgKCFfd2Vha1JlZikgeworKyAgICAg ICAgcmV0dXJuIG51bGxwdHI7CisgICAgIH0KKy0gICAgcmV0dXJuIDA7CisrICAgIFRmUHlMb2Nr IGxvY2s7CisrICAgIFB5T2JqZWN0ICpvYmo7CisrICAgIGlmIChUZl9QeVdlYWtyZWZHZXRSZWYo X3dlYWtSZWYsICZvYmopIDwgMCkgeworKyAgICAgICAgLy8gQ09ERV9DT1ZFUkFHRV9PRkYgX3dl YWtSZWYgYWx3YXlzIGNvbWVzIGZyb20gUHlXZWFrcmVmX05ld1JlZiwgc28KKysgICAgICAgIC8v IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGlmIHRoZXJlJ3MgYSBidWcuICBOb3RlIHRoYXQgb2JqIGlz IHVuc3BlY2lmaWVkCisrICAgICAgICAvLyBvbiB0aGlzIHBhdGggYW5kIG11c3Qgbm90IGJlIHJl YWQuCisrICAgICAgICBURl9DT0RJTkdfRVJST1IoIkV4cGVjdGVkIGEgUHl0aG9uIHdlYWsgcmVm ZXJlbmNlIik7CisrICAgICAgICBQeUVycl9DbGVhcigpOworKyAgICAgICAgcmV0dXJuIG51bGxw dHI7CisrICAgICAgICAvLyBDT0RFX0NPVkVSQUdFX09OCisrICAgIH0KKysgICAgcmV0dXJuIG9i ajsKKyt9CisrCisrUHlPYmplY3QgKgorK1RmX1B5SWRIYW5kbGU6OlBlZWtQdHIoKSBjb25zdCB7 CisrICAgIFRmUHlMb2NrIGxvY2s7CisrICAgIFB5T2JqZWN0ICpvYmogPSBHZXRSZWYoKTsKKysg ICAgUHlfWERFQ1JFRihvYmopOworKyAgICByZXR1cm4gb2JqOworIH0KKyAKKyAKK0BAIC0yNDMs MTYgKzI2MywyMSBAQCB2b2lkIFRmX1B5SWRlbnRpdHlIZWxwZXI6OlNldCh2b2lkIGNvbnN0ICpr ZXksIFB5T2JqZWN0ICpvYmopIHsKKyAgICAgX0lkZW50aXR5TWFwJiBfaWRlbnRpdHlNYXAgPSBf R2V0SWRlbnRpdHlNYXAoKTsKKyAgICAgX0lkZW50aXR5TWFwOjppdGVyYXRvciBpID0gX2lkZW50 aXR5TWFwLmZpbmQoa2V5KTsKKyAKKy0gICAgaWYgKGkgPT0gX2lkZW50aXR5TWFwLmVuZCgpKSB7 IAorKyAgICBpZiAoaSA9PSBfaWRlbnRpdHlNYXAuZW5kKCkpIHsKKyAgICAgICAgIF9pZGVudGl0 eU1hcFtrZXldID0gVGZfUHlJZEhhbmRsZShvYmopOworICAgICAgICAgX1JlY29yZEVzdGFibGlz aGVkSWRlbnRpdHlTdGFjayhrZXkpOworLSAgICB9IGVsc2UgaWYgKGktPnNlY29uZC5QdHIoKSAh PSBvYmopIHsKKysgICAgfSBlbHNlIGlmIChpLT5zZWNvbmQuUGVla1B0cigpICE9IG9iaikgewor ICAgICAgICAgLy8gQ09ERV9DT1ZFUkFHRV9PRkYgQ2FuIG9ubHkgZ2V0IGhlcmUgaWYgdGhlcmUn cyBhIGJ1Zy4KKysgICAgICAgIC8vIEhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGV4aXN0aW5nIG9i amVjdCB3aGlsZSB3ZSByZXBvcnQgb24gaXQsIHNpbmNlCisrICAgICAgICAvLyBfR2V0VHlwZU5h bWUgY2FsbHMgYmFjayBpbnRvIFB5dGhvbi4KKysgICAgICAgIHB4cl9ib29zdDo6cHl0aG9uOjpo YW5kbGU8PiBleGlzdGluZyB7CisrICAgICAgICAgICAgcHhyX2Jvb3N0OjpweXRob246OmFsbG93 X251bGwoaS0+c2Vjb25kLkdldFJlZigpKSB9OworICAgICAgICAgVEZfQ09ESU5HX0VSUk9SKCJN dWx0aXBsZSBQeXRob24gb2JqZWN0cyBmb3IgQysrIG9iamVjdCAlcDogIgorICAgICAgICAgICAg ICAgICAgICAgICAgICIoRXhpc3RpbmcgcHl0aG9uIG9iamVjdCBpZCAlcCB3aXRoIHR5cGUgJXMs ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAibmV3IHB5dGhvbiBvYmplY3QgaWQgJXAgd2l0 aCB0eXBlICVzKSIsCistICAgICAgICAgICAgICAgICAgICAgICAga2V5LCBpLT5zZWNvbmQuUHRy KCksCistICAgICAgICAgICAgICAgICAgICAgICAgX0dldFR5cGVOYW1lKGktPnNlY29uZC5QdHIo KSkuY19zdHIoKSwKKysgICAgICAgICAgICAgICAgICAgICAgICBrZXksIGV4aXN0aW5nLmdldCgp LAorKyAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nID8gX0dldFR5cGVOYW1lKGV4aXN0 aW5nLmdldCgpKS5jX3N0cigpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAi ZXhwaXJlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLCBfR2V0VHlwZU5hbWUob2Jq KS5jX3N0cigpKTsKKyAgICAgICAgIF9Jc3N1ZU11bHRpcGxlSWRlbnRpdHlFcnJvclN0YWNrcyhr ZXkpOworICAgICAgICAgaS0+c2Vjb25kID0gVGZfUHlJZEhhbmRsZShvYmopOworQEAgLTI3NCw4 ICsyOTksOCBAQCBQeU9iamVjdCAqVGZfUHlJZGVudGl0eUhlbHBlcjo6R2V0KHZvaWQgY29uc3Qg KmtleSkgeworICAgICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAKKy0gICAgLy8gdXNlIHB4cl9i b29zdDo6cHl0aG9uOjp4aW5jcmVmIGhlcmUsIGJlY2F1c2UgaXQgcmV0dXJucyB0aGUgaW5jcmVm ZWQgcHRyLgorLSAgICByZXR1cm4gcHhyX2Jvb3N0OjpweXRob246OnhpbmNyZWYoaS0+c2Vjb25k LlB0cigpKTsKKysgICAgLy8gUmV0dXJucyBhIG5ldyByZWZlcmVuY2UsIG9yIG51bGwgaWYgdGhl IFB5dGhvbiBvYmplY3QgaGFzIGV4cGlyZWQuCisrICAgIHJldHVybiBpLT5zZWNvbmQuR2V0UmVm KCk7CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3B4ci9iYXNlL3RmL3B5VXRpbHMuaCBiL3B4ci9i YXNlL3RmL3B5VXRpbHMuaAoraW5kZXggNTFjMThlM2NiN2MuLmM3NTFlYjU5OTY0IDEwMDY0NAor LS0tIGEvcHhyL2Jhc2UvdGYvcHlVdGlscy5oCisrKysgYi9weHIvYmFzZS90Zi9weVV0aWxzLmgK K0BAIC0xMTcsNiArMTE3LDQ4IEBAIFRGX0FQSSBib29sIFRmUHlJc05vbmUocHhyX2Jvb3N0Ojpw eXRob246Om9iamVjdCBjb25zdCAmb2JqKTsKKyAvLy8gUmV0dXJuIHRydWUgaWZmIFxhIG9iaiBp cyBOb25lLgorIFRGX0FQSSBib29sIFRmUHlJc05vbmUocHhyX2Jvb3N0OjpweXRob246OmhhbmRs ZTw+IGNvbnN0ICZvYmopOworIAorKy8vLyBHZXQgYSBzdHJvbmcgcmVmZXJlbmNlIHRvIHRoZSBv YmplY3QgcmVmZXJyZWQgdG8gYnkgdGhlIHdlYWsgcmVmZXJlbmNlCisrLy8vIFxhIHJlZi4KKysv Ly8KKysvLy8gVGhpcyBiZWhhdmVzIGV4YWN0bHkgbGlrZSBQeVdlYWtyZWZfR2V0UmVmLCB3aGlj aCB3YXMgYWRkZWQgaW4gUHl0aG9uIDMuMTM6CisrLy8vIG9uIHN1Y2Nlc3MsIHN0b3JlIGEgbmV3 IHN0cm9uZyByZWZlcmVuY2UgdG8gdGhlIHJlZmVyZW50IGluIFxwICpwb2JqIGFuZAorKy8vLyBy ZXR1cm4gMTsgaWYgdGhlIHJlZmVyZW5jZSBpcyBkZWFkLCBzdG9yZSBudWxsIGluIFxwICpwb2Jq IGFuZCByZXR1cm4gMDsgb24KKysvLy8gZXJyb3IsIHJhaXNlIGFuIGV4Y2VwdGlvbiBhbmQgcmV0 dXJuIC0xLiAgQ2FsbGVycyBtdXN0IGhvbGQgdGhlIEdJTC4KKysvLy8KKysvLy8gQXMgd2l0aCBQ eVdlYWtyZWZfR2V0UmVmLCBccCAqcG9iaiBpcyB1bnNwZWNpZmllZCB3aGVuIHRoaXMgcmV0dXJu cyAtMS4KKysvLy8gQ2FsbGVycyBtdXN0IGNvbnN1bHQgdGhlIHJldHVybiB2YWx1ZSBhbmQgbXVz dCBub3QgaW5zcGVjdCBccCAqcG9iaiB1bmxlc3MKKysvLy8gaXQgcmV0dXJuZWQgMSBvciAwLgor Ky8vLworKy8vLyBQeVdlYWtyZWZfR2V0UmVmIHN1cGVyc2VkZXMgUHlXZWFrcmVmX0dldE9iamVj dCwgd2hpY2ggaXMgZGVwcmVjYXRlZCBpbiAzLjEzCisrLy8vIGFuZCBzbGF0ZWQgZm9yIHJlbW92 YWwgaW4gMy4xNS4gIFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgdG8gcHJvdmlkZQorKy8vLyBQ eVdlYWtyZWZfR2V0UmVmIG9uIFB5dGhvbiB2ZXJzaW9ucyBiZWZvcmUgMy4xMy4gIE9uY2UgdGhl IG1pbmltdW0gc3VwcG9ydGVkCisrLy8vIFB5dGhvbiBpcyAzLjEzLCBldmVyeSBjYWxsIGNhbiBi ZSByZXBsYWNlZCB3aXRoIGEgZGlyZWN0IGNhbGwgdG8KKysvLy8gUHlXZWFrcmVmX0dldFJlZiBh bmQgdGhpcyBmdW5jdGlvbiBkZWxldGVkLgorK2lubGluZSBpbnQKKytUZl9QeVdlYWtyZWZHZXRS ZWYoUHlPYmplY3QgKnJlZiwgUHlPYmplY3QgKipwb2JqKQorK3sKKysjaWYgUFlfVkVSU0lPTl9I RVggPj0gMHgwMzBEMDAwMAorKyAgICByZXR1cm4gUHlXZWFrcmVmX0dldFJlZihyZWYsIHBvYmop OworKyNlbHNlCisrICAgIFB5T2JqZWN0ICpvYmogPSBQeVdlYWtyZWZfR2V0T2JqZWN0KHJlZik7 CisrICAgIGlmICghb2JqKSB7CisrICAgICAgICAvLyBOb3QgYSB3ZWFrIHJlZmVyZW5jZTsgUHlX ZWFrcmVmX0dldE9iamVjdCBoYXMgc2V0IGFuIGV4Y2VwdGlvbi4KKysgICAgICAgIC8vIExlYXZl ICpwb2JqIGFsb25lOiBQeVdlYWtyZWZfR2V0UmVmIGRvZXMgbm90IHNwZWNpZnkgaXRzIHZhbHVl IG9uCisrICAgICAgICAvLyBlcnJvciwgc28gbmVpdGhlciBkbyB3ZS4KKysgICAgICAgIHJldHVy biAtMTsKKysgICAgfQorKyAgICBpZiAob2JqID09IFB5X05vbmUpIHsKKysgICAgICAgIC8vIFRo ZSByZWZlcmVudCBoYXMgZXhwaXJlZC4gIE5vbmUgaXRzZWxmIGlzIG5vdCB3ZWFrLXJlZmVyZW5j ZWFibGUsIHNvCisrICAgICAgICAvLyB0aGlzIGNhbm5vdCBiZSBhIGxpdmUgcmVmZXJlbnQuCisr ICAgICAgICAqcG9iaiA9IG51bGxwdHI7CisrICAgICAgICByZXR1cm4gMDsKKysgICAgfQorKyAg ICBQeV9JTkNSRUYob2JqKTsKKysgICAgKnBvYmogPSBvYmo7CisrICAgIHJldHVybiAxOworKyNl bmRpZgorK30KKysKKyAvLyBIZWxwZXIgZm9yIFxjIFRmUHlPYmplY3QoKS4KKyBURl9BUEkgdm9p ZCBUZl9QeU9iamVjdEVycm9yKGJvb2wgcHJpbnRFcnJvcik7CisgCitkaWZmIC0tZ2l0IGEvcHhy L2Jhc2UvdGYvcHlXZWFrT2JqZWN0LmNwcCBiL3B4ci9iYXNlL3RmL3B5V2Vha09iamVjdC5jcHAK K2luZGV4IDhjZmRkYzcyOTU2Li44NGEyNWE1MmQxNiAxMDA2NDQKKy0tLSBhL3B4ci9iYXNlL3Rm L3B5V2Vha09iamVjdC5jcHAKKysrKyBiL3B4ci9iYXNlL3RmL3B5V2Vha09iamVjdC5jcHAKK0BA IC0xMTUsMzIgKzExNSwzOCBAQCBUZl9QeVdlYWtPYmplY3Q6OkdldE9yQ3JlYXRlKHB4cl9ib29z dDo6cHl0aG9uOjpvYmplY3QgY29uc3QgJm9iaikKKyBweHJfYm9vc3Q6OnB5dGhvbjo6b2JqZWN0 CisgVGZfUHlXZWFrT2JqZWN0OjpHZXRPYmplY3QoKSBjb25zdAorIHsKKy0gICAgcmV0dXJuIHB4 cl9ib29zdDo6cHl0aG9uOjpvYmplY3QKKy0gICAgICAgIChweHJfYm9vc3Q6OnB5dGhvbjo6aGFu ZGxlPD4KKy0gICAgICAgICAocHhyX2Jvb3N0OjpweXRob246OmJvcnJvd2VkKFB5V2Vha3JlZl9H ZXRPYmplY3QoX3dlYWtSZWYuZ2V0KCkpKSkpOworKyAgICBQeU9iamVjdCAqb2JqOworKyAgICBp ZiAoVGZfUHlXZWFrcmVmR2V0UmVmKF93ZWFrUmVmLmdldCgpLCAmb2JqKSAhPSAxKSB7CisrICAg ICAgICAvLyBUaGUgcmVmZXJlbnQgaGFzIGV4cGlyZWQ7IHJlcG9ydCBpdCBhcyBOb25lLgorKyAg ICAgICAgcmV0dXJuIHB4cl9ib29zdDo6cHl0aG9uOjpvYmplY3QoKTsKKysgICAgfQorKyAgICBy ZXR1cm4gcHhyX2Jvb3N0OjpweXRob246Om9iamVjdChweHJfYm9vc3Q6OnB5dGhvbjo6aGFuZGxl PD4ob2JqKSk7CisgfQorIAorIHZvaWQKKyBUZl9QeVdlYWtPYmplY3Q6OkRlbGV0ZSgpCisgewor LSAgICBUZl9QeVdlYWtPYmplY3RSZWdpc3RyeTo6R2V0SW5zdGFuY2UoKS5SZW1vdmUoR2V0T2Jq ZWN0KCkucHRyKCkpOworKyAgICAvLyBVc2UgdGhlIGNhY2hlZCBrZXkgcmF0aGVyIHRoYW4gR2V0 T2JqZWN0KCk6IG91ciB3ZWFrIHJlZmVyZW5jZSBoYXMKKysgICAgLy8gYWxyZWFkeSBiZWVuIGNs ZWFyZWQgYnkgdGhlIHRpbWUgdGhpcyBjYWxsYmFjayBydW5zLgorKyAgICBUZl9QeVdlYWtPYmpl Y3RSZWdpc3RyeTo6R2V0SW5zdGFuY2UoKS5SZW1vdmUoX3JlZk9iaktleSk7CisgICAgIGRlbGV0 ZSB0aGlzOworIH0KKy0gICAgCisrCisgVGZfUHlXZWFrT2JqZWN0OjpUZl9QeVdlYWtPYmplY3Qo cHhyX2Jvb3N0OjpweXRob246Om9iamVjdCBjb25zdCAmb2JqKQorICAgICA6IF93ZWFrUmVmKAor ICAgICAgICAgUHlXZWFrcmVmX05ld1JlZigKKyAgICAgICAgICAgICBvYmoucHRyKCksIHB4cl9i b29zdDo6cHl0aG9uOjoKKyAgICAgICAgICAgICBvYmplY3QoVGZfUHlXZWFrT2JqZWN0RGVsZXRl cihUZkNyZWF0ZVdlYWtQdHIodGhpcykpKS5wdHIoKSkpCisrICAgICwgX3JlZk9iaktleShvYmou cHRyKCkpCisgeworICAgICBUZl9QeVdlYWtPYmplY3RQdHIgc2VsZih0aGlzKTsKKy0gICAgCisr CisgICAgIC8vIFNldCBvdXIgcHl0aG9uIGlkZW50aXR5LCBidXQgcmVsZWFzZSBpdCBpbW1lZGlh dGVseSwgc2luY2Ugd2UgYXJlIGEgd2VhaworICAgICAvLyByZWZlcmVuY2UgYW5kIHdpbGwgZXhw aXJlIGFzIHNvb24gYXMgdGhlIHB5dGhvbiBvYmplY3QgZG9lcy4KKy0gICAgVGZfUHlSZWxlYXNl UHl0aG9uSWRlbnRpdHkoc2VsZiwgR2V0T2JqZWN0KCkucHRyKCkpOworLSAgICAKKysgICAgVGZf UHlSZWxlYXNlUHl0aG9uSWRlbnRpdHkoc2VsZiwgX3JlZk9iaktleSk7CisrCisgICAgIC8vIElu c3RhbGwgdXMgaW4gdGhlIHJlZ2lzdHJ5LgorLSAgICBUZl9QeVdlYWtPYmplY3RSZWdpc3RyeTo6 R2V0SW5zdGFuY2UoKS5JbnNlcnQoR2V0T2JqZWN0KCkucHRyKCksIHNlbGYpOworKyAgICBUZl9Q eVdlYWtPYmplY3RSZWdpc3RyeTo6R2V0SW5zdGFuY2UoKS5JbnNlcnQoX3JlZk9iaktleSwgc2Vs Zik7CisgfQorIAorIFBYUl9OQU1FU1BBQ0VfQ0xPU0VfU0NPUEUKK2RpZmYgLS1naXQgYS9weHIv YmFzZS90Zi9weVdlYWtPYmplY3QuaCBiL3B4ci9iYXNlL3RmL3B5V2Vha09iamVjdC5oCitpbmRl eCAyODM4ODc3MjFjMi4uNGZlMmYyNjc1ZmIgMTAwNjQ0CistLS0gYS9weHIvYmFzZS90Zi9weVdl YWtPYmplY3QuaAorKysrIGIvcHhyL2Jhc2UvdGYvcHlXZWFrT2JqZWN0LmgKK0BAIC0zOCw4ICsz OCwxNCBAQCBzdHJ1Y3QgVGZfUHlXZWFrT2JqZWN0IDogcHVibGljIFRmV2Vha0Jhc2UKKyAgICAg CisgcHJpdmF0ZToKKyAgICAgZXhwbGljaXQgVGZfUHlXZWFrT2JqZWN0KHB4cl9ib29zdDo6cHl0 aG9uOjpvYmplY3QgY29uc3QgJm9iaik7CistICAgIAorKworICAgICBweHJfYm9vc3Q6OnB5dGhv bjo6aGFuZGxlPD4gX3dlYWtSZWY7CisrCisrICAgIC8vIFRoZSBhZGRyZXNzIG9mIHRoZSByZWZl cmVudCwgY2FjaGVkIGF0IGNvbnN0cnVjdGlvbiBmb3IgdXNlIGFzIHRoZQorKyAgICAvLyByZWdp c3RyeSBrZXkuICBBIHdlYWsgcmVmZXJlbmNlIGlzIGNsZWFyZWQgYmVmb3JlIGl0cyBjYWxsYmFj ayBydW5zLCBzbworKyAgICAvLyB0aGUgcmVmZXJlbnQgY2Fubm90IGJlIHJlY292ZXJlZCBmcm9t IF93ZWFrUmVmIGJ5IHRoZSB0aW1lIERlbGV0ZSgpIHJ1bnMuCisrICAgIC8vIFVzZWQgb25seSBh cyBhIGtleTsgbmV2ZXIgZGVyZWZlcmVuY2VkLgorKyAgICBQeU9iamVjdCAqX3JlZk9iaktleTsK KyB9OworIAorIFBYUl9OQU1FU1BBQ0VfQ0xPU0VfU0NPUEUKCmRpZmYgLS1naXQgYS91c2Quc3Bl YyBiL3VzZC5zcGVjCmluZGV4IGY1MDVlYTMuLjk0YmU1ZWMgMTAwNjQ0Ci0tLSBhL3VzZC5zcGVj CisrKyBiL3VzZC5zcGVjCkBAIC0xNDgsMTMgKzE0OCwyMSBAQCBQYXRjaDogICAgICAgICAgMDAw Ni1Eb3duc3RyZWFtLW9ubHktdXNlLXRoZS1zeXN0ZW0tbGliYXZpZi5wYXRjaAogIyBodHRwczov L2dpdGh1Yi5jb20vUGl4YXJBbmltYXRpb25TdHVkaW9zL09wZW5VU0QvcHVsbC8zOTAzCiBQYXRj aDogICAgICAgICAgJXtmb3JnZXVybH0vcHVsbC8zOTAzLnBhdGNoCiAKLSMgUmVwbGFjZSBQeVdl YWtyZWZfR2V0T2JqZWN0IHdpdGggUHlXZWFrcmVmX0dldFJlZgotIyBGaXhlcyBSSEJaIzI0MzM4 ODEuIFRoaXMgcGF0Y2ggaXMgTExNLWdlbmVyYXRlZCBhbmQgbmVlZHMgZXhwZXJ0IGh1bWFuCi0j IHJldmlldywgYnV0IGl0IGF0IGxlYXN0IGJ1aWxkcy4gU2VlIGRpc2N1c3Npb24gaW4KLSMgaHR0 cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0yNDMzODgxLgotIyBNZW50 aW9uZWQgdXBzdHJlYW0gaW4KLSMgaHR0cHM6Ly9naXRodWIuY29tL1BpeGFyQW5pbWF0aW9uU3R1 ZGlvcy9PcGVuVVNEL2lzc3Vlcy8zOTY2I2lzc3VlY29tbWVudC01MTI4NTQyOTEzLgotUGF0Y2g6 ICAgICAgICAgIDAwMDEtUmVwbGFjZS1QeVdlYWtyZWZfR2V0T2JqZWN0LXdpdGgtUHlXZWFrcmVm X0dldFJlZi5wYXRjaAorIyB0ZjogUHl0aG9uIDMuMTMgc2ltdWx0YW5lb3VzbHkgZGVwcmVjYXRl cyBQeVdlYWtyZWZfR2V0T2JqZWN0IGFuZCBpbnRyb2R1Y2VzCisjIGl0cyByZXBsYWNlbWVudCBQ eVdlYWtyZWZfR2V0UmVmLiAgUHlXZWFrcmVmX0dldE9iamVjdCB3aWxsIGJlIHJlbW92ZWQgaW4K KyMgUHl0aG9uIDMuMTUuICBBZGQgYSBUZl9QeVdlYWtyZWZHZXRSZWYgc2hpbSB0byBweVV0aWxz LmggdGhhdCBjYWxscworIyBQeVdlYWtSZWZfR2V0UmVmIGRpcmVjdGx5IG9uID49My4xMywgYW5k IG1pbWljcyBpdHMgYmVoYXZpb3Igb24gPDMuMTMuICBQb3J0CisjIHB4cidzIFB5V2Vha3JlZl9H ZXRPYmplY3QgY2FsbGVycyB0byB1c2UgVGZfUHlXZWFrcmVmR2V0UmVmLgorIworIyBodHRwczov L2dpdGh1Yi5jb20vUGl4YXJBbmltYXRpb25TdHVkaW9zL09wZW5VU0QvY29tbWl0L2NkM2I5Yzlm MDMxZmRmYWNlMzQyM2ZmN2E4OTk5NWRhZGY0YjczYWEKKyMKKyMgRml4ZXM6CisjCisjIFB5V2Vh a3JlZl9HZXRPYmplY3QgcmVtb3ZlZCBpbiBQeXRob24gMy4xNQorIyBodHRwczovL2dpdGh1Yi5j b20vUGl4YXJBbmltYXRpb25TdHVkaW9zL09wZW5VU0QvaXNzdWVzLzM5NjYKKyMKKyMgRml4ZXMg UkhCWiMyNDMzODgxLgorUGF0Y2g6ICAgICAgICAgICV7Zm9yZ2V1cmx9L2NvbW1pdC9jZDNiOWM5 ZjAzMWZkZmFjZTM0MjNmZjdhODk5OTVkYWRmNGI3M2FhLnBhdGNoCiAKICMgQmFzZQogQnVpbGRS ZXF1aXJlczogIGdjYy1jKysK