From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=ALL_TRUSTED,DKIM_ADSP_NXDOMAIN, NO_DNS_FOR_FROM,T_SCC_BODY_TEXT_LINE,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 7EE8724AF6 for ; Sat, 16 Mar 2024 23:39:56 +0100 (CET) Content-Type: multipart/mixed; boundary="===============6899542719938128615==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_glibc=3A_update_to_2=2E39=2E?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 16 Mar 2024 23:39:56 +0100 List-Id: Message-Id: <20240316223956.7EE8724AF6@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============6899542719938128615== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIGdsaWJjMi4zOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvNDkxNjMKCmdsaWJjOiB1cGRhdGUgdG8gMi4zOS4KPCEtLSBV bmNvbW1lbnQgcmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBu b3QgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVk IHRoZSBjaGFuZ2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCg0KRGVwZW5kcyBvbjogaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5MTQ2DQpTZWU6 IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzLzQ5MTYy DQoNCk5vIG1ham9yIHBhY2thZ2luZyBjaGFuZ2VzIGluZGljYXRlZCBieSB1cHN0cmVhbToNCmh0 dHBzOi8vc291cmNld2FyZS5vcmcvZ2xpYmMvd2lraS9SZWxlYXNlLzIuMzkNCmh0dHBzOi8vbGlz dHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvaW5mby1nbnUvMjAyNC0wMS9tc2cwMDAxNy5odG1sDQoN CjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0 aGUgW3BhY2thZ2UgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNwYWNrYWdlLXJlcXVpcmVt ZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMg bGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcg YXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQph bmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBs ZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMg bm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0g SSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNI LUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVz IChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAt IGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5MTYzLnBhdGNoIGlz IGF0dGFjaGVk --===============6899542719938128615== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-glibc2.39-49163.patch" RnJvbSA2Mjk1MmQwNDFkMTg2NTU5YzE2MjM4MzdhNWM5YjY0ZGIwNTZlM2IxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgNiBNYXIgMjAyNCAxNzo1OToxMSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIGdsaWJjOiB1cGRh dGUgdG8gMi4zOS4KCkFkZCAtLWVuYWJsZS1vcHRpb24tY2hlY2tpbmcgdG8gY29uZmlndXJlIGZs YWdzIGFuZCByZW1vdmUgdW51c2VkIC0td2l0aC1tYXJjaApmbGFncy4gVGhvc2UgZmxhZ3MgY29t ZSBmcm9tIGdjYyBhbmQgbm90IGdsaWJjLgoKQWxzbywgY29ycmVjdCByb290c2JpbmRpciBpbiBj b25maWdwYXJhbXMgYW5kIHJlbW92ZSBsaWJjX2N2X3Jvb3RzYmluZGlyIHNpbmNlCml0IGdldHMg b3ZlcnJpZGRlbiBieSAubTQgc2NyaXB0cyBpbiBjb25maWd1cmUgYW5kIHJvb3RzYmluZGlyIGlu IGNvbmZpZ3BhcmFtcy4KLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNjAgKystLQogLi4uNGYxMGI1MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5 MzM4LnBhdGNoIHwgMzM1IC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uMWEwMDQ3ZmIyNmE2NWE5YjJh N2I4Y2Q5NzcyNDNmN2QzNTNjLnBhdGNoIHwgMjYyICsrKysrKysrKysrKysrCiAuLi4xMTA1ODUy NTY4YzNlYmM3MTIyMjVhZTc4YjhjOGJhMzFhNzgucGF0Y2ggfCAyOTYgLS0tLS0tLS0tLS0tLS0t LQogLi4uZmMxY2YwOTQ0MDZhMTM4ZTRkMWJjZjk1NTNlNTllZGNmODlkLnBhdGNoIHwgMjUyIC0t LS0tLS0tLS0tLS0KIC4uLjE1OTYyNmI2N2ZlMTFmMzllODNlMjIyY2Y0MzQ4YTM5NjJmMy5wYXRj aCB8ICA4MCArKysrKwogLi4uNWU0ZmRhMWY2ZGFiNGJmNzQ0MjcwNmZlMzAzYmYyODMwMzZjLnBh dGNoIHwgIDM3ICsrCiBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjI0Ni5wYXRjaCAg ICAgfCAxNzggLS0tLS0tLS0tLQogc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTY3Nzku cGF0Y2ggICAgIHwgMTAzIC0tLS0tLQogc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTY3 ODAucGF0Y2ggICAgIHwgIDM4IC0tCiAuLi4wOGRkNzc0YjYxN2Y5OTQxOWJkYzNjZjJhY2U0NTYw Y2QyZDYucGF0Y2ggfCAxOTIgLS0tLS0tLS0tLQogLi4udGUtR0xJQkNfVFVOQUJMRVMtaW4tc2V0 eGlkLWJpbmFyaWVzLnBhdGNoIHwgMTk4IC0tLS0tLS0tLS0tCiBzcmNwa2dzL2dsaWJjL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzMgKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDQy MyBpbnNlcnRpb25zKCspLCAxNjQxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZ2xpYmMvcGF0Y2hlcy8wMGFlNGYxMGI1MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5 MzM4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliYy9wYXRjaGVzLzFiOWMx YTAwNDdmYjI2YTY1YTliMmE3YjhjZDk3NzI0M2Y3ZDM1M2MucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMS01NDJiMTEwNTg1MjU2OGMzZWJjNzEy MjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGli Yy9wYXRjaGVzLzMwNzIzLTItMGRjN2ZjMWNmMDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5 ZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMTJlMTU5 NjI2YjY3ZmUxMWYzOWU4M2UyMjJjZjQzNDhhMzk2MmYzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9nbGliYy9wYXRjaGVzLzYzMjk1ZTRmZGExZjZkYWI0YmY3NDQyNzA2ZmUzMDNi ZjI4MzAzNmMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMv Q1ZFLTIwMjMtNjI0Ni5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0 Y2hlcy9DVkUtMjAyMy02Nzc5LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGli Yy9wYXRjaGVzL0NWRS0yMDIzLTY3ODAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2dsaWJjL3BhdGNoZXMvYjI1NTA4ZGQ3NzRiNjE3Zjk5NDE5YmRjM2NmMmFjZTQ1NjBjZDJkNi5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9jb21taXR0ZWQt MS0yLVByb3BhZ2F0ZS1HTElCQ19UVU5BQkxFUy1pbi1zZXR4aWQtYmluYXJpZXMucGF0Y2gKCmRp ZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkMzI5OGUyMTAw M2RmMi4uMWI1NTRmMjNiY2ZlMTIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29t bW9uL3NobGlicwpAQCAtMTcsNDAgKzE3LDQwIEBACiAjIG9uZSAob3JkZXIgdG9wLT5ib3R0b20p IGlzIHByZWZlcnJlZCBvdmVyIHRoZSBuZXh0IG9uZXMuCiAjCiBsaWJjLnNvIG11c2wtMS4xLjI0 XzcKLWxpYmMuc28uNiBnbGliYy0yLjM4XzEKLWxpYm0uc28uNiBnbGliYy0yLjM4XzEKLWxpYnB0 aHJlYWQuc28uMCBnbGliYy0yLjM4XzEKLWxpYnJ0LnNvLjEgZ2xpYmMtMi4zOF8xCi1saWJkbC5z by4yIGdsaWJjLTIuMzhfMQotbGQtbGludXgteDg2LTY0LnNvLjIgZ2xpYmMtMi4zOF8xIHg4Nl82 NAotbGQtbGludXguc28uMiBnbGliYy0yLjM4XzEgaTY4NgotbGQtbGludXguc28uMyBnbGliYy0y LjM4XzEgYXJtdjV0ZWwKLWxkLWxpbnV4LWFhcmNoNjQuc28uMSBnbGliYy0yLjM4XzEgYWFyY2g2 NAotbGQtbGludXgtcmlzY3Y2NC1scDY0ZC5zby4xIGdsaWJjLTIuMzhfMSByaXNjdjY0Ci1sZDY0 LnNvLjIgZ2xpYmMtMi4zOF8xIHBwYzY0Ci1sZC5zby4xIGdsaWJjLTIuMzhfMSBtaXBzCi1sZC5z by4xIGdsaWJjLTIuMzhfMSBwcGMKLWxkLWxpbnV4LWFybWhmLnNvLjMgZ2xpYmMtMi4zOF8xCi1s aWJyZXNvbHYuc28uMiBnbGliYy0yLjM4XzEKLWxpYmFubC5zby4xIGdsaWJjLTIuMzhfMQotbGli dGhyZWFkX2RiLnNvLjEgZ2xpYmMtMi4zOF8xCi1saWJ1dGlsLnNvLjEgZ2xpYmMtMi4zOF8xCi1s aWJuc2wuc28uMSBnbGliYy0yLjM4XzEKLWxpYm5zc19kYi5zby4yIGdsaWJjLTIuMzhfMQotbGli bnNzX2ZpbGVzLnNvLjIgZ2xpYmMtMi4zOF8xCi1saWJuc3NfY29tcGF0LnNvLjIgZ2xpYmMtMi4z OF8xCi1saWJuc3NfZG5zLnNvLjIgZ2xpYmMtMi4zOF8xCi1saWJuc3NfaGVzaW9kLnNvLjIgZ2xp YmMtMi4zOF8xCi1saWJCcm9rZW5Mb2NhbGUuc28uMSBnbGliYy0yLjM4XzEKK2xpYmMuc28uNiBn bGliYy0yLjM5XzEKK2xpYm0uc28uNiBnbGliYy0yLjM5XzEKK2xpYnB0aHJlYWQuc28uMCBnbGli Yy0yLjM5XzEKK2xpYnJ0LnNvLjEgZ2xpYmMtMi4zOV8xCitsaWJkbC5zby4yIGdsaWJjLTIuMzlf MQorbGQtbGludXgteDg2LTY0LnNvLjIgZ2xpYmMtMi4zOV8xIHg4Nl82NAorbGQtbGludXguc28u MiBnbGliYy0yLjM5XzEgaTY4NgorbGQtbGludXguc28uMyBnbGliYy0yLjM5XzEgYXJtdjV0ZWwK K2xkLWxpbnV4LWFhcmNoNjQuc28uMSBnbGliYy0yLjM5XzEgYWFyY2g2NAorbGQtbGludXgtcmlz Y3Y2NC1scDY0ZC5zby4xIGdsaWJjLTIuMzlfMSByaXNjdjY0CitsZDY0LnNvLjIgZ2xpYmMtMi4z OV8xIHBwYzY0CitsZC5zby4xIGdsaWJjLTIuMzlfMSBtaXBzCitsZC5zby4xIGdsaWJjLTIuMzlf MSBwcGMKK2xkLWxpbnV4LWFybWhmLnNvLjMgZ2xpYmMtMi4zOV8xCitsaWJyZXNvbHYuc28uMiBn bGliYy0yLjM5XzEKK2xpYmFubC5zby4xIGdsaWJjLTIuMzlfMQorbGlidGhyZWFkX2RiLnNvLjEg Z2xpYmMtMi4zOV8xCitsaWJ1dGlsLnNvLjEgZ2xpYmMtMi4zOV8xCitsaWJuc2wuc28uMSBnbGli Yy0yLjM5XzEKK2xpYm5zc19kYi5zby4yIGdsaWJjLTIuMzlfMQorbGlibnNzX2ZpbGVzLnNvLjIg Z2xpYmMtMi4zOV8xCitsaWJuc3NfY29tcGF0LnNvLjIgZ2xpYmMtMi4zOV8xCitsaWJuc3NfZG5z LnNvLjIgZ2xpYmMtMi4zOV8xCitsaWJuc3NfaGVzaW9kLnNvLjIgZ2xpYmMtMi4zOV8xCitsaWJC cm9rZW5Mb2NhbGUuc28uMSBnbGliYy0yLjM5XzEKK2xpYm1lbXVzYWdlLnNvIGdsaWJjLTIuMzlf MQorbGliU2VnRmF1bHQuc28gZ2xpYmMtMi4zOV8xCitsaWJwY3Byb2ZpbGUuc28gZ2xpYmMtMi4z OV8xCitsaWJjaWRuLnNvLjEgZ2xpYmMtMi4zOV8xCitsaWJtdmVjLnNvLjEgZ2xpYmMtMi4zOV8x CiBsaWJjcnlwdC5zby4yIGxpYnhjcnlwdC00LjQuMzZfMQogbGliY3J5cHQuc28uMSBsaWJ4Y3J5 cHQtY29tcGF0LTQuNC4zNl8xCiBsaWJTaW1HZWFyQ29yZS5zby4yMDIwLjMuMTcgc2ltZ2Vhci0y MDIwLjMuMTdfMQogbGliU2ltR2VhclNjZW5lLnNvLjIwMjAuMy4xNyBzaW1nZWFyLTIwMjAuMy4x N18xCi1saWJtZW11c2FnZS5zbyBnbGliYy0yLjM4XzEKLWxpYlNlZ0ZhdWx0LnNvIGdsaWJjLTIu MzhfMQotbGlicGNwcm9maWxlLnNvIGdsaWJjLTIuMzhfMQotbGliY2lkbi5zby4xIGdsaWJjLTIu MzhfMQotbGlibXZlYy5zby4xIGdsaWJjLTIuMzhfMQogbGliY2RkZ21wLnNvLjAgY2RkbGliLTAu OTRtXzEKIGxpYmNkZC5zby4wIGNkZGxpYi0wLjk0bV8xCiBsaWJjb3dzcWwuc28uMCBjb3dzcWwt MS4xNS40XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8wMGFlNGYxMGI1MDRi YzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5MzM4LnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVz LzAwYWU0ZjEwYjUwNGJjNDU2NGU5ZjIyZjAwOTA3MDkzZjFhYjkzMzgucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNTM4NzY3ODA5YjgyLi4wMDAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMDBhZTRmMTBiNTA0YmM0NTY0ZTlmMjJmMDA5MDcwOTNm MWFiOTMzOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzNSArMCwwIEBACi1Gcm9tIDAwYWU0 ZjEwYjUwNGJjNDU2NGU5ZjIyZjAwOTA3MDkzZjFhYjkzMzggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgot RGF0ZTogRnJpLCAxNSBTZXAgMjAyMyAxMzo1MToxMiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBn ZXRhZGRyaW5mbzogRml4IHVzZSBhZnRlciBmcmVlIGluIGdldGNhbm9ubmFtZQotIChDVkUtMjAy My00ODA2KQotCi1XaGVuIGFuIE5TUyBwbHVnaW4gb25seSBpbXBsZW1lbnRzIHRoZSBfZ2V0aG9z dGJ5bmFtZTJfciBhbmQKLV9nZXRjYW5vbm5hbWVfciBjYWxsYmFja3MsIGdldGFkZHJpbmZvIGNv dWxkIHVzZSBtZW1vcnkgdGhhdCB3YXMgZnJlZWQKLWR1cmluZyB0bXBidWYgcmVzaXppbmcsIHRo cm91Z2ggaF9uYW1lIGluIGEgcHJldmlvdXMgcXVlcnkgcmVzcG9uc2UuCi0KLVRoZSBiYWNraW5n IHN0b3JlIGZvciByZXMtPmF0LT5uYW1lIHdoZW4gZG9pbmcgYSBxdWVyeSB3aXRoCi1nZXRob3N0 YnluYW1lM19yIG9yIGdldGhvc3RieW5hbWUyX3IgaXMgdG1wYnVmLCB3aGljaCBpcyByZWFsbG9j YXRlZCBpbgotZ2V0aG9zdHMgZHVyaW5nIHRoZSBxdWVyeS4gIEZvciBBRl9JTkVUNiBsb29rdXAg d2l0aCBBSV9BTEwgfAotQUlfVjRNQVBQRUQsIGdldGhvc3RzIGdldHMgY2FsbGVkIHR3aWNlLCBv bmNlIGZvciBhIHY2IGxvb2t1cCBhbmQgc2Vjb25kCi1mb3IgYSB2NCBsb29rdXAuICBJbiB0aGlz IGNhc2UsIGlmIHRoZSBmaXJzdCBjYWxsIHJlYWxsb2NhdGVzIHRtcGJ1ZgotZW5vdWdoIG51bWJl ciBvZiB0aW1lcywgcmVzdWx0aW5nIGluIGEgbWFsbG9jLCB0aC0+aF9uYW1lICh0aGF0Ci1yZXMt PmF0LT5uYW1lIHJlZmVycyB0bykgZW5kcyB1cCBvbiBhIGhlYXAgYWxsb2NhdGVkIHN0b3JhZ2Ug aW4gdG1wYnVmLgotTm93IGlmIHRoZSBzZWNvbmQgY2FsbCB0byBnZXRob3N0cyBhbHNvIGNhdXNl cyB0aGUgcGx1Z2luIGNhbGxiYWNrIHRvCi1yZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTiwgdG1w YnVmIHdpbGwgZ2V0IGZyZWVkLCByZXN1bHRpbmcgaW4gYSBVQUYKLXJlZmVyZW5jZSBpbiByZXMt PmF0LT5uYW1lLiAgVGhpcyB0aGVuIGdldHMgZGVyZWZlcmVuY2VkIGluIHRoZQotZ2V0Y2Fub25u YW1lX3IgcGx1Z2luIGNhbGwsIHJlc3VsdGluZyBpbiB0aGUgdXNlIGFmdGVyIGZyZWUuCi0KLUZp eCB0aGlzIGJ5IGNvcHlpbmcgaF9uYW1lIG92ZXIgYW5kIGZyZWVpbmcgaXQgYXQgdGhlIGVuZC4g IFRoaXMKLXJlc29sdmVzIEJaICMzMDg0Mywgd2hpY2ggaXMgYXNzaWduZWQgQ1ZFLTIwMjMtNDgw Ni4KLQotU2lnbmVkLW9mZi1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3 YXJlLm9yZz4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDk3M2ZlOTNhNTY3NWM0Mjc5OGIy MTYxYzZmMjljMDFiMGUyNDM5OTQpCi0tLS0KLSBuc3MvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxNSArKysrLQotIG5zcy9uc3NfdGVzdF9nYWlfaHYyX2Nhbm9u bmFtZS5jICAgICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrCi0gbnNzL3RzdC1uc3Mt Z2FpLWh2Mi1jYW5vbm5hbWUuYyAgICAgICAgICAgICAgIHwgNjMgKysrKysrKysrKysrKysrKysr KwotIG5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmggICAgICAgICAgICAgICB8ICAxICsK LSAuLi4vcG9zdGNsZWFuLnJlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMAotIC4u Li90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnNjcmlwdCAgICAgICAgICB8ICAyICsKLSBzeXNk ZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMgICAgICAgICAgICAgICAgICAgfCAyNSArKysrKy0tLQot IDcgZmlsZXMgY2hhbmdlZCwgMTUyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQotIGNy ZWF0ZSBtb2RlIDEwMDY0NCBuc3MvbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUuYwotIGNyZWF0 ZSBtb2RlIDEwMDY0NCBuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5jCi0gY3JlYXRlIG1v ZGUgMTAwNjQ0IG5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmgKLSBjcmVhdGUgbW9kZSAx MDA2NDQgbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC9wb3N0Y2xlYW4ucmVxCi0g Y3JlYXRlIG1vZGUgMTAwNjQ0IG5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnJvb3QvdHN0 LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5zY3JpcHQKLQotZGlmZiAtLWdpdCBhL25zcy9NYWtlZmls ZSBiL25zcy9NYWtlZmlsZQotaW5kZXggMDZmY2RjNDUwZjEuLjhhNTEyNmVjZjM0IDEwMDY0NAot LS0tIGEvbnNzL01ha2VmaWxlCi0rKysgYi9uc3MvTWFrZWZpbGUKLUBAIC04Miw2ICs4Miw3IEBA IHRlc3RzLWNvbnRhaW5lciA6PSBcCi0gICB0c3QtbnNzLXRlc3QzIFwKLSAgIHRzdC1yZWxvYWQx IFwKLSAgIHRzdC1yZWxvYWQyIFwKLSsgIHRzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUgXAotICMg dGVzdHMtY29udGFpbmVyCi0gCi0gIyBUZXN0cyB3aGljaCBuZWVkIGxpYmRsCi1AQCAtMTQ1LDcg KzE0Niw4IEBAIGxpYm5zc19jb21wYXQtaW5oaWJpdC1vCT0gJChmaWx0ZXItb3V0IC5vcywkKG9i amVjdC1zdWZmaXhlcykpCi0gaWZlcSAoJChidWlsZC1zdGF0aWMtbnNzKSx5ZXMpCi0gdGVzdHMt c3RhdGljCQkrPSB0c3QtbnNzLXN0YXRpYwotIGVuZGlmCi0tZXh0cmEtdGVzdC1vYmpzCQkrPSBu c3NfdGVzdDEub3MgbnNzX3Rlc3QyLm9zIG5zc190ZXN0X2Vycm5vLm9zCi0rZXh0cmEtdGVzdC1v YmpzCQkrPSBuc3NfdGVzdDEub3MgbnNzX3Rlc3QyLm9zIG5zc190ZXN0X2Vycm5vLm9zIFwKLSsJ CQkgICBuc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5vcwotIAotIGluY2x1ZGUgLi4vUnVsZXMK LSAKLUBAIC0xODAsMTIgKzE4MiwxNiBAQCBydGxkLXRlc3RzLUxERkxBR1MgKz0gLVdsLC0tZHlu YW1pYy1saXN0PW5zc190ZXN0LnZlcgotIGxpYm9mLW5zc190ZXN0MSA9IGV4dHJhbW9kdWxlcwot IGxpYm9mLW5zc190ZXN0MiA9IGV4dHJhbW9kdWxlcwotIGxpYm9mLW5zc190ZXN0X2Vycm5vID0g ZXh0cmFtb2R1bGVzCi0rbGlib2YtbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUgPSBleHRyYW1v ZHVsZXMKLSAkKG9ianBmeCkvbGlibnNzX3Rlc3QxLnNvOiAkKG9ianBmeCluc3NfdGVzdDEub3Mg JChsaW5rLWxpYmMtZGVwcykKLSAJJChidWlsZC1tb2R1bGUpCi0gJChvYmpwZngpL2xpYm5zc190 ZXN0Mi5zbzogJChvYmpwZngpbnNzX3Rlc3QyLm9zICQobGluay1saWJjLWRlcHMpCi0gCSQoYnVp bGQtbW9kdWxlKQotICQob2JqcGZ4KS9saWJuc3NfdGVzdF9lcnJuby5zbzogJChvYmpwZngpbnNz X3Rlc3RfZXJybm8ub3MgJChsaW5rLWxpYmMtZGVwcykKLSAJJChidWlsZC1tb2R1bGUpCi0rJChv YmpwZngpL2xpYm5zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lLnNvOiBcCi0rICAkKG9ianBmeClu c3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5vcyAkKGxpbmstbGliYy1kZXBzKQotKwkkKGJ1aWxk LW1vZHVsZSkKLSAkKG9ianBmeCluc3NfdGVzdDIub3MgOiBuc3NfdGVzdDEuYwotICMgVXNlIHRo ZSBuc3NfZmlsZXMgc3VmZml4IGZvciB0aGVzZSBvYmplY3RzIGFzIHdlbGwuCi0gJChvYmpwZngp L2xpYm5zc190ZXN0MS5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pOiAkKG9ianBmeCkvbGli bnNzX3Rlc3QxLnNvCi1AQCAtMTk1LDEwICsyMDEsMTQgQEAgJChvYmpwZngpL2xpYm5zc190ZXN0 Mi5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pOiAkKG9ianBmeCkvbGlibnNzX3Rlc3QyLnNv Ci0gJChvYmpwZngpL2xpYm5zc190ZXN0X2Vycm5vLnNvJChsaWJuc3NfZmlsZXMuc28tdmVyc2lv bik6IFwKLSAgICQob2JqcGZ4KS9saWJuc3NfdGVzdF9lcnJuby5zbwotIAkkKG1ha2UtbGluaykK LSskKG9ianBmeCkvbGlibnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUuc28kKGxpYm5zc19maWxl cy5zby12ZXJzaW9uKTogXAotKyAgJChvYmpwZngpL2xpYm5zc190ZXN0X2dhaV9odjJfY2Fub25u YW1lLnNvCi0rCSQobWFrZS1saW5rKQotICQocGF0c3Vic3QgJSwkKG9ianBmeCklLm91dCwkKHRl c3RzKSAkKHRlc3RzLWNvbnRhaW5lcikpIDogXAotIAkkKG9ianBmeCkvbGlibnNzX3Rlc3QxLnNv JChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbikgXAotIAkkKG9ianBmeCkvbGlibnNzX3Rlc3QyLnNv JChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbikgXAotLQkkKG9ianBmeCkvbGlibnNzX3Rlc3RfZXJy bm8uc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9uKQotKwkkKG9ianBmeCkvbGlibnNzX3Rlc3Rf ZXJybm8uc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9uKSBcCi0rCSQob2JqcGZ4KS9saWJuc3Nf dGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pCi0gCi0g aWZlcSAoeWVzLCQoaGF2ZS10aHJlYWQtbGlicmFyeSkpCi0gJChvYmpwZngpdHN0LWNhbmNlbC1n ZXRwd3VpZF9yOiAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKLUBAIC0yMTUsMyArMjI1LDQgQEAg TERGTEFHUy10c3QtbnNzLXRlc3QzID0gLVdsLC0tZGlzYWJsZS1uZXctZHRhZ3MKLSBMREZMQUdT LXRzdC1uc3MtdGVzdDQgPSAtV2wsLS1kaXNhYmxlLW5ldy1kdGFncwotIExERkxBR1MtdHN0LW5z cy10ZXN0NSA9IC1XbCwtLWRpc2FibGUtbmV3LWR0YWdzCi0gTERGTEFHUy10c3QtbnNzLXRlc3Rf ZXJybm8gPSAtV2wsLS1kaXNhYmxlLW5ldy1kdGFncwotK0xERkxBR1MtdHN0LW5zcy10ZXN0X2dh aV9odjJfY2Fub25uYW1lID0gLVdsLC0tZGlzYWJsZS1uZXctZHRhZ3MKLWRpZmYgLS1naXQgYS9u c3MvbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUuYyBiL25zcy9uc3NfdGVzdF9nYWlfaHYyX2Nh bm9ubmFtZS5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAuLjQ0Mzlj ODNjOWY0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9uc3MvbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5h bWUuYwotQEAgLTAsMCArMSw1NiBAQAotKy8qIE5TUyBzZXJ2aWNlIHByb3ZpZGVyIHRoYXQgb25s eSBwcm92aWRlcyBnZXRob3N0YnluYW1lMl9yLgotKyAgIENvcHlyaWdodCBUaGUgR05VIFRvb2xj aGFpbiBBdXRob3JzLgotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgotKwotKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgotKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCi0rICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgPG5zcy5oPgot KyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1ZGUgIm5z cy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmgiCi0rCi0rLyogQ2F0Y2ggbWlzbmFtZWQgYW5k IGZ1bmN0aW9ucy4gICovCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBlcnJvciAiLVdtaXNzaW5n LXByb3RvdHlwZXMiCi0rTlNTX0RFQ0xBUkVfTU9EVUxFX0ZVTkNUSU9OUyAodGVzdF9nYWlfaHYy X2Nhbm9ubmFtZSkKLSsKLStleHRlcm4gZW51bSBuc3Nfc3RhdHVzIF9uc3NfZmlsZXNfZ2V0aG9z dGJ5bmFtZTJfciAoY29uc3QgY2hhciAqLCBpbnQsCi0rCQkJCQkJICAgIHN0cnVjdCBob3N0ZW50 ICosIGNoYXIgKiwKLSsJCQkJCQkgICAgc2l6ZV90LCBpbnQgKiwgaW50ICopOwotKwotK2VudW0g bnNzX3N0YXR1cwotK19uc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZV9nZXRob3N0YnluYW1lMl9y IChjb25zdCBjaGFyICpuYW1lLCBpbnQgYWYsCi0rCQkJCQkgICAgICBzdHJ1Y3QgaG9zdGVudCAq cmVzdWx0LAotKwkJCQkJICAgICAgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAotKwkJCQkJ ICAgICAgaW50ICplcnJub3AsIGludCAqaGVycm5vcCkKLSt7Ci0rICByZXR1cm4gX25zc19maWxl c19nZXRob3N0YnluYW1lMl9yIChuYW1lLCBhZiwgcmVzdWx0LCBidWZmZXIsIGJ1ZmxlbiwgZXJy bm9wLAotKwkJCQkgICAgICBoZXJybm9wKTsKLSt9Ci0rCi0rZW51bSBuc3Nfc3RhdHVzCi0rX25z c190ZXN0X2dhaV9odjJfY2Fub25uYW1lX2dldGNhbm9ubmFtZV9yIChjb25zdCBjaGFyICpuYW1l LCBjaGFyICpidWZmZXIsCi0rCQkJCQkgICAgc2l6ZV90IGJ1ZmxlbiwgY2hhciAqKnJlc3VsdCwK LSsJCQkJCSAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCkKLSt7Ci0rICAvKiBXZSBleHBl Y3QgUVVFUllOQU1FLCB3aGljaCBpcyBhIHNtYWxsIGVub3VnaCBzdHJpbmcgdGhhdCBpdCBzaG91 bGRuJ3QgZmFpbAotKyAgICAgdGhlIHRlc3QuICAqLwotKyAgaWYgKG1lbWNtcCAoUVVFUllOQU1F LCBuYW1lLCBzaXplb2YgKFFVRVJZTkFNRSkpCi0rICAgICAgfHwgYnVmbGVuIDwgc2l6ZW9mIChR VUVSWU5BTUUpKQotKyAgICBhYm9ydCAoKTsKLSsKLSsgIHN0cm5jcHkgKGJ1ZmZlciwgbmFtZSwg YnVmbGVuKTsKLSsgICpyZXN1bHQgPSBidWZmZXI7Ci0rICByZXR1cm4gTlNTX1NUQVRVU19TVUND RVNTOwotK30KLWRpZmYgLS1naXQgYS9uc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5jIGIv bnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAwMDAwLi5kNWYxMGMwN2Q2YQotLS0tIC9kZXYvbnVsbAotKysrIGIvbnNzL3Rz dC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuYwotQEAgLTAsMCArMSw2MyBAQAotKy8qIFRlc3QgTlNT IHF1ZXJ5IHBhdGggZm9yIHBsdWdpbnMgdGhhdCBvbmx5IGltcGxlbWVudCBnZXRob3N0YnluYW1l MgotKyAgICgjMzA4NDMpLgotKyAgIENvcHlyaWdodCBUaGUgR05VIFRvb2xjaGFpbiBBdXRob3Jz LgotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgotKwotKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgotKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKLSsgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgICBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCi0rICAgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgPG5zcy5oPgotKyNpbmNsdWRlIDxu ZXRkYi5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2lu Y2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KLSsjaW5jbHVkZSA8c3VwcG9ydC94c3RkaW8uaD4KLSsj aW5jbHVkZSAibnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuaCIKLSsKLSsjZGVmaW5lIFBS RVBBUkUgZG9fcHJlcGFyZQotKwotK3N0YXRpYyB2b2lkIGRvX3ByZXBhcmUgKGludCBhLCBjaGFy ICoqYXYpCi0rewotKyAgRklMRSAqaG9zdHMgPSB4Zm9wZW4gKCIvZXRjL2hvc3RzIiwgInciKTsK LSsgIGZvciAodW5zaWduZWQgaSA9IDI7IGkgPCAyNTU7IGkrKykKLSsgICAgewotKyAgICAgIGZw cmludGYgKGhvc3RzLCAiZmYwMTo6ZmYwMjpmZjAzOiV1OjJcdHRlc3QuZXhhbXBsZS5jb21cbiIs IGkpOwotKyAgICAgIGZwcmludGYgKGhvc3RzLCAiMTkyLjE2OC4wLiV1XHR0ZXN0LmV4YW1wbGUu Y29tXG4iLCBpKTsKLSsgICAgfQotKyAgeGZjbG9zZSAoaG9zdHMpOwotK30KLSsKLStzdGF0aWMg aW50Ci0rZG9fdGVzdCAodm9pZCkKLSt7Ci0rICBfX25zc19jb25maWd1cmVfbG9va3VwICgiaG9z dHMiLCAidGVzdF9nYWlfaHYyX2Nhbm9ubmFtZSIpOwotKwotKyAgc3RydWN0IGFkZHJpbmZvIGhp bnRzID0ge307Ci0rICBzdHJ1Y3QgYWRkcmluZm8gKnJlc3VsdCA9IE5VTEw7Ci0rCi0rICBoaW50 cy5haV9mYW1pbHkgPSBBRl9JTkVUNjsKLSsgIGhpbnRzLmFpX2ZsYWdzID0gQUlfQUxMIHwgQUlf VjRNQVBQRUQgfCBBSV9DQU5PTk5BTUU7Ci0rCi0rICBpbnQgcmV0ID0gZ2V0YWRkcmluZm8gKFFV RVJZTkFNRSwgTlVMTCwgJmhpbnRzLCAmcmVzdWx0KTsKLSsKLSsgIGlmIChyZXQgIT0gMCkKLSsg ICAgRkFJTF9FWElUMSAoImdldGFkZHJpbmZvIGZhaWxlZDogJXNcbiIsIGdhaV9zdHJlcnJvciAo cmV0KSk7Ci0rCi0rICBURVNUX0NPTVBBUkVfU1RSSU5HIChyZXN1bHQtPmFpX2Nhbm9ubmFtZSwg UVVFUllOQU1FKTsKLSsKLSsgIGZyZWVhZGRyaW5mbyhyZXN1bHQpOwotKyAgcmV0dXJuIDA7Ci0r fQotKwotKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+Ci1kaWZmIC0tZ2l0IGEvbnNz L3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuaCBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25u YW1lLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMC4uMTRmMmE5Y2Iw ODYKLS0tLSAvZGV2L251bGwKLSsrKyBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmgK LUBAIC0wLDAgKzEgQEAKLSsjZGVmaW5lIFFVRVJZTkFNRSAidGVzdC5leGFtcGxlLmNvbSIKLWRp ZmYgLS1naXQgYS9uc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5yb290L3Bvc3RjbGVhbi5y ZXEgYi9uc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5yb290L3Bvc3RjbGVhbi5yZXEKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQKLWRpZmYg LS1naXQgYS9uc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5yb290L3RzdC1uc3MtZ2FpLWh2 Mi1jYW5vbm5hbWUuc2NyaXB0IGIvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC90 c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnNjcmlwdAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAwMDAwLi4zMTg0OGI0YTI4NQotLS0tIC9kZXYvbnVsbAotKysrIGIvbnNzL3Rz dC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnNj cmlwdAotQEAgLTAsMCArMSwyIEBACi0rY3AgJEIvbnNzL2xpYm5zc190ZXN0X2dhaV9odjJfY2Fu b25uYW1lLnNvICRML2xpYm5zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lLnNvLjIKLStzdQotZGlm ZiAtLWdpdCBhL3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYyBiL3N5c2RlcHMvcG9zaXgvZ2V0 YWRkcmluZm8uYwotaW5kZXggMDM1NmI2MjJiZTYuLmIyMjM2YjEwNWMxIDEwMDY0NAotLS0tIGEv c3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jCi0rKysgYi9zeXNkZXBzL3Bvc2l4L2dldGFkZHJp bmZvLmMKLUBAIC0xMjAsNiArMTIwLDcgQEAgc3RydWN0IGdhaWhfcmVzdWx0Ci0gewotICAgc3Ry dWN0IGdhaWhfYWRkcnR1cGxlICphdDsKLSAgIGNoYXIgKmNhbm9uOwotKyAgY2hhciAqaF9uYW1l OwotICAgYm9vbCBmcmVlX2F0OwotICAgYm9vbCBnb3RfaXB2NjsKLSB9OwotQEAgLTE2NSw2ICsx NjYsNyBAQCBnYWloX3Jlc3VsdF9yZXNldCAoc3RydWN0IGdhaWhfcmVzdWx0ICpyZXMpCi0gICBp ZiAocmVzLT5mcmVlX2F0KQotICAgICBmcmVlIChyZXMtPmF0KTsKLSAgIGZyZWUgKHJlcy0+Y2Fu b24pOwotKyAgZnJlZSAocmVzLT5oX25hbWUpOwotICAgbWVtc2V0IChyZXMsIDAsIHNpemVvZiAo KnJlcykpOwotIH0KLSAKLUBAIC0yMDMsOSArMjA1LDggQEAgZ2FpaF9pbmV0X3NlcnYgKGNvbnN0 IGNoYXIgKnNlcnZpY2VuYW1lLCBjb25zdCBzdHJ1Y3QgZ2FpaF90eXBlcHJvdG8gKnRwLAotICAg cmV0dXJuIDA7Ci0gfQotIAotLS8qIENvbnZlcnQgc3RydWN0IGhvc3RlbnQgdG8gYSBsaXN0IG9m IHN0cnVjdCBnYWloX2FkZHJ0dXBsZSBvYmplY3RzLiAgaF9uYW1lCi0tICAgaXMgbm90IGNvcGll ZCwgYW5kIHRoZSBzdHJ1Y3QgaG9zdGVudCBvYmplY3QgbXVzdCBub3QgYmUgZGVhbGxvY2F0ZWQK LS0gICBwcmVtYXR1cmVseS4gIFRoZSBuZXcgYWRkcmVzc2VzIGFyZSBhcHBlbmRlZCB0byB0aGUg dHVwbGUgYXJyYXkgaW4gUkVTLiAgKi8KLSsvKiBDb252ZXJ0IHN0cnVjdCBob3N0ZW50IHRvIGEg bGlzdCBvZiBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgb2JqZWN0cy4gIFRoZSBuZXcKLSsgICBhZGRy ZXNzZXMgYXJlIGFwcGVuZGVkIHRvIHRoZSB0dXBsZSBhcnJheSBpbiBSRVMuICAqLwotIHN0YXRp YyBib29sCi0gY29udmVydF9ob3N0ZW50X3RvX2dhaWhfYWRkcnR1cGxlIChjb25zdCBzdHJ1Y3Qg YWRkcmluZm8gKnJlcSwgaW50IGZhbWlseSwKLSAJCQkJICAgc3RydWN0IGhvc3RlbnQgKmgsIHN0 cnVjdCBnYWloX3Jlc3VsdCAqcmVzKQotQEAgLTIzOCw2ICsyMzksMTUgQEAgY29udmVydF9ob3N0 ZW50X3RvX2dhaWhfYWRkcnR1cGxlIChjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKnJlcSwgaW50IGZh bWlseSwKLSAgIHJlcy0+YXQgPSBhcnJheTsKLSAgIHJlcy0+ZnJlZV9hdCA9IHRydWU7Ci0gCi0r ICAvKiBEdXBsaWNhdGUgaF9uYW1lIGJlY2F1c2UgaXQgbWF5IGdldCByZWNsYWltZWQgd2hlbiB0 aGUgdW5kZXJseWluZyBzdG9yYWdlCi0rICAgICBpcyBmcmVlZC4gICovCi0rICBpZiAocmVzLT5o X25hbWUgPT0gTlVMTCkKLSsgICAgewotKyAgICAgIHJlcy0+aF9uYW1lID0gX19zdHJkdXAgKGgt PmhfbmFtZSk7Ci0rICAgICAgaWYgKHJlcy0+aF9uYW1lID09IE5VTEwpCi0rCXJldHVybiBmYWxz ZTsKLSsgICAgfQotKwotICAgLyogVXBkYXRlIHRoZSBuZXh0IHBvaW50ZXJzIG9uIHJlYWxsb2Nh dGlvbi4gICovCi0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9sZDsgaSsrKQotICAgICBhcnJh eVtpXS5uZXh0ID0gYXJyYXkgKyBpICsgMTsKLUBAIC0yNjIsNyArMjcyLDYgQEAgY29udmVydF9o b3N0ZW50X3RvX2dhaWhfYWRkcnR1cGxlIChjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKnJlcSwgaW50 IGZhbWlseSwKLSAJfQotICAgICAgIGFycmF5W2ldLm5leHQgPSBhcnJheSArIGkgKyAxOwotICAg ICB9Ci0tICBhcnJheVswXS5uYW1lID0gaC0+aF9uYW1lOwotICAgYXJyYXlbY291bnQgLSAxXS5u ZXh0ID0gTlVMTDsKLSAKLSAgIHJldHVybiB0cnVlOwotQEAgLTMyNCwxNSArMzMzLDE1IEBAIGdl dGhvc3RzIChuc3NfZ2V0aG9zdGJ5bmFtZTNfciBmY3QsIGludCBmYW1pbHksIGNvbnN0IGNoYXIg Km5hbWUsCi0gICAgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZS4gIFRoZSByZXR1cm5lZCBzdHJp bmcgaXMgYWxsb2NhdGVkIG9uIHRoZQotICAgIGhlYXA7IHRoZSBjYWxsZXIgaGFzIHRvIGZyZWUg aXQuICAqLwotIHN0YXRpYyBjaGFyICoKLS1nZXRjYW5vbm5hbWUgKG5zc19hY3Rpb25fbGlzdCBu aXAsIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqYXQsIGNvbnN0IGNoYXIgKm5hbWUpCi0rZ2V0Y2Fu b25uYW1lIChuc3NfYWN0aW9uX2xpc3QgbmlwLCBjb25zdCBjaGFyICpobmFtZSwgY29uc3QgY2hh ciAqbmFtZSkKLSB7Ci0gICBuc3NfZ2V0Y2Fub25uYW1lX3IgKmNmY3QgPSBfX25zc19sb29rdXBf ZnVuY3Rpb24gKG5pcCwgImdldGNhbm9ubmFtZV9yIik7Ci0gICBjaGFyICpzID0gKGNoYXIgKikg bmFtZTsKLSAgIGlmIChjZmN0ICE9IE5VTEwpCi0gICAgIHsKLSAgICAgICBjaGFyIGJ1ZlsyNTZd OwotLSAgICAgIGlmIChETF9DQUxMX0ZDVCAoY2ZjdCwgKGF0LT5uYW1lID86IG5hbWUsIGJ1Ziwg c2l6ZW9mIChidWYpLAotLQkJCSAgICAgICZzLCAmZXJybm8sICZoX2Vycm5vKSkgIT0gTlNTX1NU QVRVU19TVUNDRVNTKQotKyAgICAgIGlmIChETF9DQUxMX0ZDVCAoY2ZjdCwgKGhuYW1lID86IG5h bWUsIGJ1Ziwgc2l6ZW9mIChidWYpLCAmcywgJmVycm5vLAotKwkJCSAgICAgICZoX2Vycm5vKSkg IT0gTlNTX1NUQVRVU19TVUNDRVNTKQotIAkvKiBJZiB0aGUgY2Fub25pY2FsIG5hbWUgY2Fubm90 IGJlIGRldGVybWluZWQsIHVzZSB0aGUgcGFzc2VkCi0gCSAgIHN0cmluZy4gICovCi0gCXMgPSAo Y2hhciAqKSBuYW1lOwotQEAgLTc3MSw3ICs3ODAsNyBAQCBnZXRfbnNzX2FkZHJlc3NlcyAoY29u c3QgY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IGFkZHJpbmZvICpyZXEsCi0gCQkgIGlmICgocmVx LT5haV9mbGFncyAmIEFJX0NBTk9OTkFNRSkgIT0gMAotIAkJICAgICAgJiYgcmVzLT5jYW5vbiA9 PSBOVUxMKQotIAkJICAgIHsKLS0JCSAgICAgIGNoYXIgKmNhbm9uYnVmID0gZ2V0Y2Fub25uYW1l IChuaXAsIHJlcy0+YXQsIG5hbWUpOwotKwkJICAgICAgY2hhciAqY2Fub25idWYgPSBnZXRjYW5v bm5hbWUgKG5pcCwgcmVzLT5oX25hbWUsIG5hbWUpOwotIAkJICAgICAgaWYgKGNhbm9uYnVmID09 IE5VTEwpCi0gCQkJewotIAkJCSAgX19yZXNvbHZfY29udGV4dF9wdXQgKHJlc19jdHgpOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbGliYy9wYXRjaGVzLzFiOWMxYTAwNDdmYjI2YTY1YTliMmE3Yjhj ZDk3NzI0M2Y3ZDM1M2MucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMWI5YzFhMDA0N2Zi MjZhNjVhOWIyYTdiOGNkOTc3MjQzZjdkMzUzYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMC4uZjBhNjdiMTkzOWRiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2dsaWJjL3BhdGNoZXMvMWI5YzFhMDA0N2ZiMjZhNjVhOWIyYTdiOGNkOTc3MjQzZjdk MzUzYy5wYXRjaApAQCAtMCwwICsxLDI2MiBAQAorRnJvbSAxYjljMWEwMDQ3ZmIyNmE2NWE5YjJh N2I4Y2Q5NzcyNDNmN2QzNTNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFrdWIg SmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMzEgSmFuIDIwMjQgMTk6MTc6 MjcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIGdjYyBfX2J1aWx0aW5fc3RkY18qIGJ1aWx0 aW5zIGluIHN0ZGJpdC5oIGlmIHBvc3NpYmxlCisKK1RoZSBmb2xsb3dpbmcgcGF0Y2ggdXNlcyB0 aGUgR0NDIDE0IF9fYnVpbHRpbl9zdGRjXyogYnVpbHRpbnMgaW4gc3RkYml0LmgKK2ZvciB0aGUg dHlwZS1nZW5lcmljIG1hY3Jvcywgc28gdGhhdCB3aGVuIGNvbXBpbGVkIHdpdGggR0NDIDE0IG9y IGxhdGVyLAoraXQgc3VwcG9ydHMgbm90IGp1c3QgOC8xNi8zMi82NC1iaXQgdW5zaWduZWQgaW50 ZWdlcnMsIGJ1dCBhbHNvIDEyOC1iaXQKKyhpZiB0YXJnZXQgc3VwcG9ydHMgdGhlbSkgYW5kIHVu c2lnbmVkIF9CaXRJbnQgKGFueSBzdXBwb3J0ZWQgcHJlY2lzaW9uKS4KK0FuZCBzbyB0aGF0IHRo ZSBtYWNyb3MgZG9uJ3QgZXhwYW5kIGFyZ3VtZW50cyBtdWx0aXBsZSB0aW1lcyBhbmQgY2FuIGJl CitldmFsdWF0ZWQgaW4gY29uc3RhbnQgZXhwcmVzc2lvbnMuCisKK1RoZSBuZXcgdGVzdGNhc2Ug aXMgZ2NjJ3MgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1zdGRjLWJpdC0xLmMKK2FkanVz dGVkIHRvIHRlc3Qgc3RkYml0LmggYW5kIHRoZSB0eXBlLWdlbmVyaWMgbWFjcm9zIGluIHRoZXJl IGluc3RlYWQKK29mIHRoZSBidWlsdGlucyBhbmQgYWRqdXN0ZWQgdG8gdXNlIGdsaWJjIHRlc3Qg ZnJhbWV3b3JrIHJhdGhlciB0aGFuCitnY2Mgc3R5bGUgdGVzdHMgd2l0aCBfX2J1aWx0aW5fYWJv cnQgKCkuCisKK1NpZ25lZC1vZmYtYnk6IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+ CitSZXZpZXdlZC1ieTogSm9zZXBoIE15ZXJzIDxqb3NteWVyc0ByZWRoYXQuY29tPgorKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgZGE4OTQ5NjMzN2I5N2U2YTJhYWYxZTgxZDU1Y2Y5OThmNmRi MTA3MCkKKy0tLQorIG1hbnVhbC9zdGRiaXQudGV4aSAgICAgICAgICAgfCAgIDggKy0KKyBzdGRs aWIvTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxICsKKyBzdGRsaWIvc3RkYml0LmggICAgICAg ICAgICAgIHwgIDg0ICsrKy0KKyBzdGRsaWIvdHN0LXN0ZGJpdC1idWlsdGlucy5jIHwgNzc4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCA4NTYg aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHN0ZGxp Yi90c3Qtc3RkYml0LWJ1aWx0aW5zLmMKKworZGlmZiAtLWdpdCBhL21hbnVhbC9zdGRiaXQudGV4 aSBiL21hbnVhbC9zdGRiaXQudGV4aQoraW5kZXggZmU0MWM2NzFkOC4uNmM3NWVkOWEyMCAxMDA2 NDQKKy0tLSBhL21hbnVhbC9zdGRiaXQudGV4aQorKysrIGIvbWFudWFsL3N0ZGJpdC50ZXhpCitA QCAtMzIsNyArMzIsMTMgQEAgYW5kIEBjb2Rle3Vuc2lnbmVkIGxvbmcgbG9uZyBpbnR9LiAgSW4g YWRkaXRpb24sIHRoZXJlIGlzIGEKKyBjb3JyZXNwb25kaW5nIHR5cGUtZ2VuZXJpYyBtYWNybyAo bm90IGxpc3RlZCBiZWxvdyksIG5hbWVkIHRoZSBzYW1lIGFzCisgdGhlIGZ1bmN0aW9ucyBidXQg d2l0aG91dCBhbnkgc3VmZml4IHN1Y2ggYXMgQHNhbXB7X3VjfS4gIFRoZQorIHR5cGUtZ2VuZXJp YyBtYWNybyBjYW4gb25seSBiZSB1c2VkIHdpdGggYW4gYXJndW1lbnQgb2YgYW4gdW5zaWduZWQK Ky1pbnRlZ2VyIHR5cGUgd2l0aCBhIHdpZHRoIG9mIDgsIDE2LCAzMiBvciA2NCBiaXRzLgorK2lu dGVnZXIgdHlwZSB3aXRoIGEgd2lkdGggb2YgOCwgMTYsIDMyIG9yIDY0IGJpdHMsIG9yIHdoZW4g dXNpbmcKKythIGNvbXBpbGVyIHdpdGggc3VwcG9ydCBmb3IKKytAdXJlZntodHRwczovL2djYy5n bnUub3JnL29ubGluZWRvY3MvZ2NjL090aGVyLUJ1aWx0aW5zLmh0bWwsQGNvZGV7X19idWlsdGlu X3N0ZGNfYml0X2NlaWx9fSwKKytldGMuQDosIGJ1aWx0LWluIGZ1bmN0aW9ucyBzdWNoIGFzIEdD QyAxNC4xIG9yIGxhdGVyCisrYW55IHVuc2lnbmVkIGludGVnZXIgdHlwZSB0aG9zZSBidWlsdC1p biBmdW5jdGlvbnMgc3VwcG9ydC4KKytJbiBHQ0MgMTQuMSB0aGF0IGluY2x1ZGVzIHN1cHBvcnQg Zm9yIEBjb2Rle3Vuc2lnbmVkIF9faW50MTI4fSBhbmQKKytAY29kZXt1bnNpZ25lZCBfQml0SW50 KEB2YXJ7bn0pfSBpZiBzdXBwb3J0ZWQgYnkgdGhlIHRhcmdldC4KKyAKKyBAZGVmdHlwZWZ1biB7 dW5zaWduZWQgaW50fSBzdGRjX2xlYWRpbmdfemVyb3NfdWMgKHVuc2lnbmVkIGNoYXIgQHZhcnt4 fSkKKyBAZGVmdHlwZWZ1bngge3Vuc2lnbmVkIGludH0gc3RkY19sZWFkaW5nX3plcm9zX3VzICh1 bnNpZ25lZCBzaG9ydCBAdmFye3h9KQorZGlmZiAtLWdpdCBhL3N0ZGxpYi9zdGRiaXQuaCBiL3N0 ZGxpYi9zdGRiaXQuaAoraW5kZXggZjMzNGViMTc0ZC4uMjgwMTU5MGM2MyAxMDA2NDQKKy0tLSBh L3N0ZGxpYi9zdGRiaXQuaAorKysrIGIvc3RkbGliL3N0ZGJpdC5oCitAQCAtNjQsOSArNjQsMTMg QEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2xlYWRpbmdfemVyb3NfdWwgKHVuc2lnbmVkIGxv bmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2xl YWRpbmdfemVyb3NfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhS T1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfbGVhZGluZ196ZXJvcyh4KQkJ CQlcCisrI2lmIF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2xlYWRpbmdfemVy b3MpCisrIyBkZWZpbmUgc3RkY19sZWFkaW5nX3plcm9zKHgpIChfX2J1aWx0aW5fc3RkY19sZWFk aW5nX3plcm9zICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNfbGVhZGluZ196ZXJvcyh4KQkJ CQlcCisgICAoc3RkY19sZWFkaW5nX3plcm9zX3VsbCAoeCkJCQkJXAorICAgIC0gKHVuc2lnbmVk IGludCkgKDggKiAoc2l6ZW9mICgwVUxMKSAtIHNpemVvZiAoeCkpKSkKKysjZW5kaWYKKyAKKyAj aWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGlu X2NsemxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtMTE2LDkg KzEyMCwxMyBAQCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfbGVhZGluZ19vbmVzX3VsICh1bnNp Z25lZCBsb25nIGludCBfX3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25lZCBpbnQg c3RkY19sZWFkaW5nX29uZXNfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAg IF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfbGVhZGluZ19vbmVz KHgpCQkJCQlcCisrI2lmIF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2xlYWRp bmdfb25lcykKKysjIGRlZmluZSBzdGRjX2xlYWRpbmdfb25lcyh4KSAoX19idWlsdGluX3N0ZGNf bGVhZGluZ19vbmVzICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNfbGVhZGluZ19vbmVzKHgp CQkJCQlcCisgICAoc3RkY19sZWFkaW5nX29uZXNfdWxsICgodW5zaWduZWQgbG9uZyBsb25nIGlu dCkgKHgpCQlcCisgCQkJICA8PCA4ICogKHNpemVvZiAoMFVMTCkgLSBzaXplb2YgKHgpKSkpCisr I2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0 aW4gKF9fYnVpbHRpbl9jbHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGlu dAorQEAgLTE2OCwxMSArMTc2LDE1IEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY190cmFpbGlu Z196ZXJvc191bCAodW5zaWduZWQgbG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRl cm4gdW5zaWduZWQgaW50IHN0ZGNfdHJhaWxpbmdfemVyb3NfdWxsICh1bnNpZ25lZCBsb25nIGxv bmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5l IHN0ZGNfdHJhaWxpbmdfemVyb3MoeCkJCQkJXAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChf X2J1aWx0aW5fc3RkY190cmFpbGluZ196ZXJvcykKKysjIGRlZmluZSBzdGRjX3RyYWlsaW5nX3pl cm9zKHgpIChfX2J1aWx0aW5fc3RkY190cmFpbGluZ196ZXJvcyAoeCkpCisrI2Vsc2UKKysjIGRl ZmluZSBzdGRjX3RyYWlsaW5nX3plcm9zKHgpCQkJCVwKKyAgIChzaXplb2YgKHgpID09IDggPyBz dGRjX3RyYWlsaW5nX3plcm9zX3VsbCAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3Rk Y190cmFpbGluZ196ZXJvc191aSAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSAyID8gc3RkY190 cmFpbGluZ196ZXJvc191cyAoX19wYWNpZnlfdWludDE2ICh4KSkJXAorICAgIDogc3RkY190cmFp bGluZ196ZXJvc191YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19H TlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX2N0emxs KQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtMjIyLDcgKzIzNCwx MSBAQCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfdHJhaWxpbmdfb25lc191bCAodW5zaWduZWQg bG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNf dHJhaWxpbmdfb25lc191bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19U SFJPVyBfX2F0dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY190cmFpbGluZ19vbmVzKHgp IChzdGRjX3RyYWlsaW5nX29uZXNfdWxsICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAo X19idWlsdGluX3N0ZGNfdHJhaWxpbmdfb25lcykKKysjIGRlZmluZSBzdGRjX3RyYWlsaW5nX29u ZXMoeCkgKF9fYnVpbHRpbl9zdGRjX3RyYWlsaW5nX29uZXMgKHgpKQorKyNlbHNlCisrIyBkZWZp bmUgc3RkY190cmFpbGluZ19vbmVzKHgpIChzdGRjX3RyYWlsaW5nX29uZXNfdWxsICh4KSkKKysj ZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRp biAoX19idWlsdGluX2N0emxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50 CitAQCAtMjcyLDExICsyODgsMTUgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X2xl YWRpbmdfemVyb191bCAodW5zaWduZWQgbG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBl eHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvX3VsbCAodW5zaWduZWQg bG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187Cist I2RlZmluZSBzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyh4KQkJCVwKKysjaWYgX19nbGliY19oYXNf YnVpbHRpbiAoX19idWlsdGluX3N0ZGNfZmlyc3RfbGVhZGluZ196ZXJvKQorKyMgZGVmaW5lIHN0 ZGNfZmlyc3RfbGVhZGluZ196ZXJvKHgpIChfX2J1aWx0aW5fc3RkY19maXJzdF9sZWFkaW5nX3pl cm8gKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19maXJzdF9sZWFkaW5nX3plcm8oeCkJCQlc CisgICAoc2l6ZW9mICh4KSA9PSA4ID8gc3RkY19maXJzdF9sZWFkaW5nX3plcm9fdWxsICh4KQlc CisgICAgOiBzaXplb2YgKHgpID09IDQgPyBzdGRjX2ZpcnN0X2xlYWRpbmdfemVyb191aSAoeCkJ XAorICAgIDogc2l6ZW9mICh4KSA9PSAyID8gc3RkY19maXJzdF9sZWFkaW5nX3plcm9fdXMgKF9f cGFjaWZ5X3VpbnQxNiAoeCkpCVwKKyAgICA6IHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvX3VjIChf X3BhY2lmeV91aW50OCAoeCkpKQorKyNlbmRpZgorIAorICNpZiBfX0dOVUNfUFJFUkVRICgzLCA0 KSB8fCBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fY2x6bGwpCisgc3RhdGljIF9fYWx3 YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK0BAIC0zMjYsMTEgKzM0NiwxNSBAQCBleHRlcm4gdW5z aWduZWQgaW50IHN0ZGNfZmlyc3RfbGVhZGluZ19vbmVfdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9f eCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X2xlYWRp bmdfb25lX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9f YXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2ZpcnN0X2xlYWRpbmdfb25lKHgpCQkJ XAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19maXJzdF9sZWFkaW5n X29uZSkKKysjIGRlZmluZSBzdGRjX2ZpcnN0X2xlYWRpbmdfb25lKHgpIChfX2J1aWx0aW5fc3Rk Y19maXJzdF9sZWFkaW5nX29uZSAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2ZpcnN0X2xl YWRpbmdfb25lKHgpCQkJXAorICAgKHNpemVvZiAoeCkgPT0gOCA/IHN0ZGNfZmlyc3RfbGVhZGlu Z19vbmVfdWxsICh4KQlcCisgICAgOiBzaXplb2YgKHgpID09IDQgPyBzdGRjX2ZpcnN0X2xlYWRp bmdfb25lX3VpICh4KQlcCisgICAgOiBzaXplb2YgKHgpID09IDIgPyBzdGRjX2ZpcnN0X2xlYWRp bmdfb25lX3VzIChfX3BhY2lmeV91aW50MTYgKHgpKQlcCisgICAgOiBzdGRjX2ZpcnN0X2xlYWRp bmdfb25lX3VjIChfX3BhY2lmeV91aW50OCAoeCkpKQorKyNlbmRpZgorIAorICNpZiBfX0dOVUNf UFJFUkVRICgzLCA0KSB8fCBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fY2x6bGwpCisg c3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK0BAIC0zODAsMTEgKzQwNCwxNSBA QCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191bCAodW5zaWdu ZWQgbG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0 ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQor ICAgICAgX19USFJPVyBfX2F0dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19maXJzdF90 cmFpbGluZ196ZXJvKHgpCQkJXAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5f c3RkY19maXJzdF90cmFpbGluZ196ZXJvKQorKyMgZGVmaW5lIHN0ZGNfZmlyc3RfdHJhaWxpbmdf emVybyh4KSAoX19idWlsdGluX3N0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoeCkpCisrI2Vsc2UK KysjIGRlZmluZSBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8oeCkJCQlcCisgICAoc2l6ZW9mICh4 KSA9PSA4ID8gc3RkY19maXJzdF90cmFpbGluZ196ZXJvX3VsbCAoeCkJXAorICAgIDogc2l6ZW9m ICh4KSA9PSA0ID8gc3RkY19maXJzdF90cmFpbGluZ196ZXJvX3VpICh4KQlcCisgICAgOiBzaXpl b2YgKHgpID09IDIgPyBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm9fdXMgKF9fcGFjaWZ5X3VpbnQx NiAoeCkpIFwKKyAgICA6IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191YyAoX19wYWNpZnlfdWlu dDggKHgpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGli Y19oYXNfYnVpbHRpbiAoX19idWlsdGluX2N0emxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUg dW5zaWduZWQgaW50CitAQCAtNDM0LDExICs0NjIsMTUgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBz dGRjX2ZpcnN0X3RyYWlsaW5nX29uZV91bCAodW5zaWduZWQgbG9uZyBpbnQgX194KQorIF9fZXh0 ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lX3Vs bCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRl X2NvbnN0X187CistI2RlZmluZSBzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSh4KQkJCVwKKysjaWYg X19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfZmlyc3RfdHJhaWxpbmdfb25lKQor KyMgZGVmaW5lIHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lKHgpIChfX2J1aWx0aW5fc3RkY19maXJz dF90cmFpbGluZ19vbmUgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19maXJzdF90cmFpbGlu Z19vbmUoeCkJCQlcCisgICAoc2l6ZW9mICh4KSA9PSA4ID8gc3RkY19maXJzdF90cmFpbGluZ19v bmVfdWxsICh4KQlcCisgICAgOiBzaXplb2YgKHgpID09IDQgPyBzdGRjX2ZpcnN0X3RyYWlsaW5n X29uZV91aSAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSAyID8gc3RkY19maXJzdF90cmFpbGlu Z19vbmVfdXMgKF9fcGFjaWZ5X3VpbnQxNiAoeCkpCVwKKyAgICA6IHN0ZGNfZmlyc3RfdHJhaWxp bmdfb25lX3VjIChfX3BhY2lmeV91aW50OCAoeCkpKQorKyNlbmRpZgorIAorICNpZiBfX0dOVUNf UFJFUkVRICgzLCA0KSB8fCBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fY3R6bGwpCisg c3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK0BAIC00ODgsOSArNTIwLDEzIEBA IGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19jb3VudF96ZXJvc191bCAodW5zaWduZWQgbG9uZyBp bnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfY291bnRf emVyb3NfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19h dHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfY291bnRfemVyb3MoeCkJCQkJXAorKyNp ZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19jb3VudF96ZXJvcykKKysjIGRl ZmluZSBzdGRjX2NvdW50X3plcm9zKHgpIChfX2J1aWx0aW5fc3RkY19jb3VudF96ZXJvcyAoeCkp CisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2NvdW50X3plcm9zKHgpCQkJCVwKKyAgIChzdGRjX2Nv dW50X3plcm9zX3VsbCAoeCkJCQkJXAorICAgIC0gKHVuc2lnbmVkIGludCkgKDggKiAoc2l6ZW9m ICgwVUxMKSAtIHNpemVvZiAoeCkpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAo MywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3BvcGNvdW50bGwpCisgc3Rh dGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK0BAIC01NDAsNyArNTc2LDExIEBAIGV4 dGVybiB1bnNpZ25lZCBpbnQgc3RkY19jb3VudF9vbmVzX3VsICh1bnNpZ25lZCBsb25nIGludCBf X3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19jb3VudF9vbmVz X3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmli dXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2NvdW50X29uZXMoeCkgKHN0ZGNfY291bnRfb25l c191bGwgKHgpKQorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19jb3Vu dF9vbmVzKQorKyMgZGVmaW5lIHN0ZGNfY291bnRfb25lcyh4KSAoX19idWlsdGluX3N0ZGNfY291 bnRfb25lcyAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2NvdW50X29uZXMoeCkgKHN0ZGNf Y291bnRfb25lc191bGwgKHgpKQorKyNlbmRpZgorIAorICNpZiBfX0dOVUNfUFJFUkVRICgzLCA0 KSB8fCBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fcG9wY291bnRsbCkKKyBzdGF0aWMg X19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAorQEAgLTU5MCwxMCArNjMwLDE0IEBAIGV4dGVy biBib29sIHN0ZGNfaGFzX3NpbmdsZV9iaXRfdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBf X2V4dGVuc2lvbl9fCisgZXh0ZXJuIGJvb2wgc3RkY19oYXNfc2luZ2xlX2JpdF91bGwgKHVuc2ln bmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJPVyBfX2F0dHJpYnV0ZV9jb25zdF9f OworLSNkZWZpbmUgc3RkY19oYXNfc2luZ2xlX2JpdCh4KQkJCQlcCisrI2lmIF9fZ2xpYmNfaGFz X2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2hhc19zaW5nbGVfYml0KQorKyMgZGVmaW5lIHN0ZGNf aGFzX3NpbmdsZV9iaXQoeCkgKF9fYnVpbHRpbl9zdGRjX2hhc19zaW5nbGVfYml0ICh4KSkKKysj ZWxzZQorKyMgZGVmaW5lIHN0ZGNfaGFzX3NpbmdsZV9iaXQoeCkJCQkJXAorICAgKChib29sKSAo c2l6ZW9mICh4KSA8PSBzaXplb2YgKHVuc2lnbmVkIGludCkJCVwKKyAJICAgPyBzdGRjX2hhc19z aW5nbGVfYml0X3VpICh4KQkJCVwKKyAJICAgOiBzdGRjX2hhc19zaW5nbGVfYml0X3VsbCAoeCkp KQorKyNlbmRpZgorIAorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbAorIF9faHNiNjRfaW5s aW5lICh1aW50NjRfdCBfX3gpCitAQCAtNjQxLDcgKzY4NSwxMSBAQCBleHRlcm4gdW5zaWduZWQg aW50IHN0ZGNfYml0X3dpZHRoX3VsICh1bnNpZ25lZCBsb25nIGludCBfX3gpCisgX19leHRlbnNp b25fXworIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19iaXRfd2lkdGhfdWxsICh1bnNpZ25lZCBs b25nIGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0j ZGVmaW5lIHN0ZGNfYml0X3dpZHRoKHgpIChzdGRjX2JpdF93aWR0aF91bGwgKHgpKQorKyNpZiBf X2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19iaXRfd2lkdGgpCisrIyBkZWZpbmUg c3RkY19iaXRfd2lkdGgoeCkgKF9fYnVpbHRpbl9zdGRjX2JpdF93aWR0aCAoeCkpCisrI2Vsc2UK KysjIGRlZmluZSBzdGRjX2JpdF93aWR0aCh4KSAoc3RkY19iaXRfd2lkdGhfdWxsICh4KSkKKysj ZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRp biAoX19idWlsdGluX2NsemxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50 CitAQCAtNjkxLDcgKzczOSwxMSBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQgc3RkY19iaXRf Zmxvb3JfdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJu IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgc3RkY19iaXRfZmxvb3JfdWxsICh1bnNpZ25lZCBsb25n IGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVm aW5lIHN0ZGNfYml0X2Zsb29yKHgpICgoX190eXBlb2YgKHgpKSBzdGRjX2JpdF9mbG9vcl91bGwg KHgpKQorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19iaXRfZmxvb3Ip CisrIyBkZWZpbmUgc3RkY19iaXRfZmxvb3IoeCkgKF9fYnVpbHRpbl9zdGRjX2JpdF9mbG9vciAo eCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2JpdF9mbG9vcih4KSAoKF9fdHlwZW9mICh4KSkg c3RkY19iaXRfZmxvb3JfdWxsICh4KSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAo MywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX2NsemxsKQorIHN0YXRpYyBf X2Fsd2F5c19pbmxpbmUgdWludDY0X3QKK0BAIC03NDMsNyArNzk1LDExIEBAIGV4dGVybiB1bnNp Z25lZCBsb25nIGludCBzdGRjX2JpdF9jZWlsX3VsICh1bnNpZ25lZCBsb25nIGludCBfX3gpCisg X19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHN0ZGNfYml0X2Nl aWxfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRy aWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfYml0X2NlaWwoeCkgKChfX3R5cGVvZiAoeCkp IHN0ZGNfYml0X2NlaWxfdWxsICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWls dGluX3N0ZGNfYml0X2NlaWwpCisrIyBkZWZpbmUgc3RkY19iaXRfY2VpbCh4KSAoX19idWlsdGlu X3N0ZGNfYml0X2NlaWwgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19iaXRfY2VpbCh4KSAo KF9fdHlwZW9mICh4KSkgc3RkY19iaXRfY2VpbF91bGwgKHgpKQorKyNlbmRpZgorIAorICNpZiBf X0dOVUNfUFJFUkVRICgzLCA0KSB8fCBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fY2x6 bGwpCisgc3RhdGljIF9fYWx3YXlzX2lubGluZSB1aW50NjRfdApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbGliYy9wYXRjaGVzLzMwNzIzLTEtNTQyYjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiOGM4 YmEzMWE3OC5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMDcyMy0xLTU0MmIxMTA1ODUy NTY4YzNlYmM3MTIyMjVhZTc4YjhjOGJhMzFhNzgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDU2ZDVkNDdjMDMxYTAzLi4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ds aWJjL3BhdGNoZXMvMzA3MjMtMS01NDJiMTEwNTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMx YTc4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjk2ICswLDAgQEAKLUZyb20gNTQyYjExMDU4 NTI1NjhjM2ViYzcxMjIyNWFlNzhiOGM4YmEzMWE3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDEx IEF1ZyAyMDIzIDExOjE4OjE3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIG1hbGxvYzogRW5hYmxl IG1lcmdpbmcgb2YgcmVtYWluZGVycyBpbiBtZW1hbGlnbiAoYnVnIDMwNzIzKQotCi1QcmV2aW91 c2x5LCBjYWxsaW5nIF9pbnRfZnJlZSBmcm9tIF9pbnRfbWVtYWxpZ24gY291bGQgcHV0IHJlbWFp bmRlcnMKLWludG8gdGhlIHRjYWNoZSBvciBpbnRvIGZhc3RiaW5zLCB3aGVyZSB0aGV5IGFyZSBp bnZpc2libGUgdG8gdGhlCi1sb3ctbGV2ZWwgYWxsb2NhdG9yLiAgVGhpcyByZXN1bHRzIGluIG1p c3NlZCBtZXJnZSBvcHBvcnR1bml0aWVzCi1iZWNhdXNlIG9uY2UgdGhlc2UgZnJlZWQgY2h1bmtz IGJlY29tZSBhdmFpbGFibGUgdG8gdGhlIGxvdy1sZXZlbAotYWxsb2NhdG9yLCBmdXJ0aGVyIG1l bWFsaWduIGFsbG9jYXRpb25zIChldmVuIG9mIHRoZSBzYW1lIHNpemUgYXJlKQotbGlrZWx5IG9i c3RydWN0aW5nIG1lcmdlcy4KLQotRnVydGhlcm1vcmUsIGR1cmluZyBmb3J3YXJkcyBtZXJnaW5n IGluIF9pbnRfbWVtYWxpZ24sIGRvIG5vdAotY29tcGxldGVseSBnaXZlIHVwIHdoZW4gdGhlIHJl bWFpbmRlciBpcyB0b28gc21hbGwgdG8gc2VydmUgYXMgYQotY2h1bmsgb24gaXRzIG93bi4gIFdl IGNhbiBzdGlsbCBnaXZlIGl0IGJhY2sgaWYgaXQgY2FuIGJlIG1lcmdlZAotd2l0aCB0aGUgZm9s bG93aW5nIHVudXNlZCBjaHVuay4gIFRoaXMgbWFrZXMgaXQgbW9yZSBsaWtlbHkgdGhhdAotbWVt YWxpZ24gY2FsbHMgaW4gYSBsb29wIGFjaGlldmUgYSBjb21wYWN0IG1lbW9yeSBsYXlvdXQsCi1p bmRlcGVuZGVudGx5IG9mIGluaXRpYWwgaGVhcCBsYXlvdXQuCi0KLURyb3Agc29tZSB1c2VsZXNz ICh1bnNpZ25lZCBsb25nKSBjYXN0cyBhbG9uZyB0aGUgd2F5LCBhbmQgdHdlYWsKLXRoZSBzdHls ZSB0byBtb3JlIGNsb3NlbHkgbWF0Y2ggR05VIG9uIGNoYW5nZWQgbGluZXMuCi0KLVJldmlld2Vk LWJ5OiBESiBEZWxvcmllIDxkakByZWRoYXQuY29tPgotLS0tCi0gbWFsbG9jL21hbGxvYy5jIHwg MTk3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEg ZmlsZSBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgNzYgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9tYWxsb2MvbWFsbG9jLmMgYi9tYWxsb2MvbWFsbG9jLmMKLWluZGV4IGUyZjFhNjE1 YTQuLjk0OGY5NzU5YWYgMTAwNjQ0Ci0tLS0gYS9tYWxsb2MvbWFsbG9jLmMKLSsrKyBiL21hbGxv Yy9tYWxsb2MuYwotQEAgLTEwODYsNiArMTA4NiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBtYWxsb2Nf Y2h1bmsqIG1jaHVua3B0cjsKLSAKLSBzdGF0aWMgdm9pZCogIF9pbnRfbWFsbG9jKG1zdGF0ZSwg c2l6ZV90KTsKLSBzdGF0aWMgdm9pZCAgICAgX2ludF9mcmVlKG1zdGF0ZSwgbWNodW5rcHRyLCBp bnQpOwotK3N0YXRpYyB2b2lkIF9pbnRfZnJlZV9tZXJnZV9jaHVuayAobXN0YXRlLCBtY2h1bmtw dHIsIElOVEVSTkFMX1NJWkVfVCk7Ci0rc3RhdGljIElOVEVSTkFMX1NJWkVfVCBfaW50X2ZyZWVf Y3JlYXRlX2NodW5rIChtc3RhdGUsCi0rCQkJCQkgICAgICAgbWNodW5rcHRyLCBJTlRFUk5BTF9T SVpFX1QsCi0rCQkJCQkgICAgICAgbWNodW5rcHRyLCBJTlRFUk5BTF9TSVpFX1QpOwotK3N0YXRp YyB2b2lkIF9pbnRfZnJlZV9tYXliZV9jb25zb2xpZGF0ZSAobXN0YXRlLCBJTlRFUk5BTF9TSVpF X1QpOwotIHN0YXRpYyB2b2lkKiAgX2ludF9yZWFsbG9jKG1zdGF0ZSwgbWNodW5rcHRyLCBJTlRF Uk5BTF9TSVpFX1QsCi0gCQkJICAgSU5URVJOQUxfU0laRV9UKTsKLSBzdGF0aWMgdm9pZCogIF9p bnRfbWVtYWxpZ24obXN0YXRlLCBzaXplX3QsIHNpemVfdCk7Ci1AQCAtNDYzNywzMSArNDY0Miw1 MiBAQCBfaW50X2ZyZWUgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIGludCBoYXZlX2xvY2spCi0g ICAgIGlmICghaGF2ZV9sb2NrKQotICAgICAgIF9fbGliY19sb2NrX2xvY2sgKGF2LT5tdXRleCk7 Ci0gCi0tICAgIG5leHRjaHVuayA9IGNodW5rX2F0X29mZnNldChwLCBzaXplKTsKLS0KLS0gICAg LyogTGlnaHR3ZWlnaHQgdGVzdHM6IGNoZWNrIHdoZXRoZXIgdGhlIGJsb2NrIGlzIGFscmVhZHkg dGhlCi0tICAgICAgIHRvcCBibG9jay4gICovCi0tICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChw ID09IGF2LT50b3ApKQotLSAgICAgIG1hbGxvY19wcmludGVyciAoImRvdWJsZSBmcmVlIG9yIGNv cnJ1cHRpb24gKHRvcCkiKTsKLS0gICAgLyogT3Igd2hldGhlciB0aGUgbmV4dCBjaHVuayBpcyBi ZXlvbmQgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIGFyZW5hLiAgKi8KLS0gICAgaWYgKF9fYnVpbHRp bl9leHBlY3QgKGNvbnRpZ3VvdXMgKGF2KQotLQkJCSAgJiYgKGNoYXIgKikgbmV4dGNodW5rCi0t CQkJICA+PSAoKGNoYXIgKikgYXYtPnRvcCArIGNodW5rc2l6ZShhdi0+dG9wKSksIDApKQotLQlt YWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0aW9uIChvdXQpIik7Ci0tICAg IC8qIE9yIHdoZXRoZXIgdGhlIGJsb2NrIGlzIGFjdHVhbGx5IG5vdCBtYXJrZWQgdXNlZC4gICov Ci0tICAgIGlmIChfX2dsaWJjX3VubGlrZWx5ICghcHJldl9pbnVzZShuZXh0Y2h1bmspKSkKLS0g ICAgICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0aW9uICghcHJldiki KTsKLS0KLS0gICAgbmV4dHNpemUgPSBjaHVua3NpemUobmV4dGNodW5rKTsKLS0gICAgaWYgKF9f YnVpbHRpbl9leHBlY3QgKGNodW5rc2l6ZV9ub21hc2sgKG5leHRjaHVuaykgPD0gQ0hVTktfSERS X1NaLCAwKQotLQl8fCBfX2J1aWx0aW5fZXhwZWN0IChuZXh0c2l6ZSA+PSBhdi0+c3lzdGVtX21l bSwgMCkpCi0tICAgICAgbWFsbG9jX3ByaW50ZXJyICgiZnJlZSgpOiBpbnZhbGlkIG5leHQgc2l6 ZSAobm9ybWFsKSIpOwotKyAgICBfaW50X2ZyZWVfbWVyZ2VfY2h1bmsgKGF2LCBwLCBzaXplKTsK LSAKLS0gICAgZnJlZV9wZXJ0dXJiIChjaHVuazJtZW0ocCksIHNpemUgLSBDSFVOS19IRFJfU1op OwotKyAgICBpZiAoIWhhdmVfbG9jaykKLSsgICAgICBfX2xpYmNfbG9ja191bmxvY2sgKGF2LT5t dXRleCk7Ci0rICB9Ci0rICAvKgotKyAgICBJZiB0aGUgY2h1bmsgd2FzIGFsbG9jYXRlZCB2aWEg bW1hcCwgcmVsZWFzZSB2aWEgbXVubWFwKCkuCi0rICAqLwotKwotKyAgZWxzZSB7Ci0rICAgIG11 bm1hcF9jaHVuayAocCk7Ci0rICB9Ci0rfQotKwotKy8qIFRyeSB0byBtZXJnZSBjaHVuayBQIG9m IFNJWkUgYnl0ZXMgd2l0aCBpdHMgbmVpZ2hib3JzLiAgUHV0IHRoZQotKyAgIHJlc3VsdGluZyBj aHVuayBvbiB0aGUgYXBwcm9wcmlhdGUgYmluIGxpc3QuICBQIG11c3Qgbm90IGJlIG9uIGEKLSsg ICBiaW4gbGlzdCB5ZXQsIGFuZCBpdCBjYW4gYmUgaW4gdXNlLiAgKi8KLStzdGF0aWMgdm9pZAot K19pbnRfZnJlZV9tZXJnZV9jaHVuayAobXN0YXRlIGF2LCBtY2h1bmtwdHIgcCwgSU5URVJOQUxf U0laRV9UIHNpemUpCi0rewotKyAgbWNodW5rcHRyIG5leHRjaHVuayA9IGNodW5rX2F0X29mZnNl dChwLCBzaXplKTsKLSsKLSsgIC8qIExpZ2h0d2VpZ2h0IHRlc3RzOiBjaGVjayB3aGV0aGVyIHRo ZSBibG9jayBpcyBhbHJlYWR5IHRoZQotKyAgICAgdG9wIGJsb2NrLiAgKi8KLSsgIGlmIChfX2ds aWJjX3VubGlrZWx5IChwID09IGF2LT50b3ApKQotKyAgICBtYWxsb2NfcHJpbnRlcnIgKCJkb3Vi bGUgZnJlZSBvciBjb3JydXB0aW9uICh0b3ApIik7Ci0rICAvKiBPciB3aGV0aGVyIHRoZSBuZXh0 IGNodW5rIGlzIGJleW9uZCB0aGUgYm91bmRhcmllcyBvZiB0aGUgYXJlbmEuICAqLwotKyAgaWYg KF9fYnVpbHRpbl9leHBlY3QgKGNvbnRpZ3VvdXMgKGF2KQotKwkJCSYmIChjaGFyICopIG5leHRj aHVuawotKwkJCT49ICgoY2hhciAqKSBhdi0+dG9wICsgY2h1bmtzaXplKGF2LT50b3ApKSwgMCkp Ci0rICAgIG1hbGxvY19wcmludGVyciAoImRvdWJsZSBmcmVlIG9yIGNvcnJ1cHRpb24gKG91dCki KTsKLSsgIC8qIE9yIHdoZXRoZXIgdGhlIGJsb2NrIGlzIGFjdHVhbGx5IG5vdCBtYXJrZWQgdXNl ZC4gICovCi0rICBpZiAoX19nbGliY191bmxpa2VseSAoIXByZXZfaW51c2UobmV4dGNodW5rKSkp Ci0rICAgIG1hbGxvY19wcmludGVyciAoImRvdWJsZSBmcmVlIG9yIGNvcnJ1cHRpb24gKCFwcmV2 KSIpOwotKwotKyAgSU5URVJOQUxfU0laRV9UIG5leHRzaXplID0gY2h1bmtzaXplKG5leHRjaHVu ayk7Ci0rICBpZiAoX19idWlsdGluX2V4cGVjdCAoY2h1bmtzaXplX25vbWFzayAobmV4dGNodW5r KSA8PSBDSFVOS19IRFJfU1osIDApCi0rICAgICAgfHwgX19idWlsdGluX2V4cGVjdCAobmV4dHNp emUgPj0gYXYtPnN5c3RlbV9tZW0sIDApKQotKyAgICBtYWxsb2NfcHJpbnRlcnIgKCJmcmVlKCk6 IGludmFsaWQgbmV4dCBzaXplIChub3JtYWwpIik7Ci0rCi0rICBmcmVlX3BlcnR1cmIgKGNodW5r Mm1lbShwKSwgc2l6ZSAtIENIVU5LX0hEUl9TWik7Ci0gCi0tICAgIC8qIGNvbnNvbGlkYXRlIGJh Y2t3YXJkICovCi0tICAgIGlmICghcHJldl9pbnVzZShwKSkgewotLSAgICAgIHByZXZzaXplID0g cHJldl9zaXplIChwKTsKLSsgIC8qIENvbnNvbGlkYXRlIGJhY2t3YXJkLiAgKi8KLSsgIGlmICgh cHJldl9pbnVzZShwKSkKLSsgICAgewotKyAgICAgIElOVEVSTkFMX1NJWkVfVCBwcmV2c2l6ZSA9 IHByZXZfc2l6ZSAocCk7Ci0gICAgICAgc2l6ZSArPSBwcmV2c2l6ZTsKLSAgICAgICBwID0gY2h1 bmtfYXRfb2Zmc2V0KHAsIC0oKGxvbmcpIHByZXZzaXplKSk7Ci0gICAgICAgaWYgKF9fZ2xpYmNf dW5saWtlbHkgKGNodW5rc2l6ZShwKSAhPSBwcmV2c2l6ZSkpCi1AQCAtNDY2OSw5ICs0Njk1LDI1 IEBAIF9pbnRfZnJlZSAobXN0YXRlIGF2LCBtY2h1bmtwdHIgcCwgaW50IGhhdmVfbG9jaykKLSAg ICAgICB1bmxpbmtfY2h1bmsgKGF2LCBwKTsKLSAgICAgfQotIAotLSAgICBpZiAobmV4dGNodW5r ICE9IGF2LT50b3ApIHsKLSsgIC8qIFdyaXRlIHRoZSBjaHVuayBoZWFkZXIsIG1heWJlIGFmdGVy IG1lcmdpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNodW5rLiAgKi8KLSsgIHNpemUgPSBfaW50X2Zy ZWVfY3JlYXRlX2NodW5rIChhdiwgcCwgc2l6ZSwgbmV4dGNodW5rLCBuZXh0c2l6ZSk7Ci0rICBf aW50X2ZyZWVfbWF5YmVfY29uc29saWRhdGUgKGF2LCBzaXplKTsKLSt9Ci0rCi0rLyogQ3JlYXRl IGEgY2h1bmsgYXQgUCBvZiBTSVpFIGJ5dGVzLCB3aXRoIFNJWkUgcG90ZW50aWFsbHkgaW5jcmVh c2VkCi0rICAgdG8gY292ZXIgdGhlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBjaHVuayBORVhUQ0hV Tksgb2YgTkVYVFNJWkUKLSsgICBieXRlcyAoaWYgTkVYVENIVU5LIGlzIHVudXNlZCkuICBUaGUg Y2h1bmsgYXQgUCBpcyBub3QgYWN0dWFsbHkKLSsgICByZWFkIGFuZCBkb2VzIG5vdCBoYXZlIHRv IGJlIGluaXRpYWxpemVkLiAgQWZ0ZXIgY3JlYXRpb24sIGl0IGlzCi0rICAgcGxhY2VkIG9uIHRo ZSBhcHByb3ByaWF0ZSBiaW4gbGlzdC4gIFRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzaXplCi0r ICAgb2YgdGhlIG5ldyBjaHVuay4gICovCi0rc3RhdGljIElOVEVSTkFMX1NJWkVfVAotK19pbnRf ZnJlZV9jcmVhdGVfY2h1bmsgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIElOVEVSTkFMX1NJWkVf VCBzaXplLAotKwkJCW1jaHVua3B0ciBuZXh0Y2h1bmssIElOVEVSTkFMX1NJWkVfVCBuZXh0c2l6 ZSkKLSt7Ci0rICBpZiAobmV4dGNodW5rICE9IGF2LT50b3ApCi0rICAgIHsKLSAgICAgICAvKiBn ZXQgYW5kIGNsZWFyIGludXNlIGJpdCAqLwotLSAgICAgIG5leHRpbnVzZSA9IGludXNlX2JpdF9h dF9vZmZzZXQobmV4dGNodW5rLCBuZXh0c2l6ZSk7Ci0rICAgICAgYm9vbCBuZXh0aW51c2UgPSBp bnVzZV9iaXRfYXRfb2Zmc2V0IChuZXh0Y2h1bmssIG5leHRzaXplKTsKLSAKLSAgICAgICAvKiBj b25zb2xpZGF0ZSBmb3J3YXJkICovCi0gICAgICAgaWYgKCFuZXh0aW51c2UpIHsKLUBAIC00Njg2 LDggKzQ3MjgsOCBAQCBfaW50X2ZyZWUgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIGludCBoYXZl X2xvY2spCi0gCWJlZW4gZ2l2ZW4gb25lIGNoYW5jZSB0byBiZSB1c2VkIGluIG1hbGxvYy4KLSAg ICAgICAqLwotIAotLSAgICAgIGJjayA9IHVuc29ydGVkX2NodW5rcyhhdik7Ci0tICAgICAgZndk ID0gYmNrLT5mZDsKLSsgICAgICBtY2h1bmtwdHIgYmNrID0gdW5zb3J0ZWRfY2h1bmtzIChhdik7 Ci0rICAgICAgbWNodW5rcHRyIGZ3ZCA9IGJjay0+ZmQ7Ci0gICAgICAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKGZ3ZC0+YmsgIT0gYmNrKSkKLSAJbWFsbG9jX3ByaW50ZXJyICgiZnJlZSgpOiBjb3Jy dXB0ZWQgdW5zb3J0ZWQgY2h1bmtzIik7Ci0gICAgICAgcC0+ZmQgPSBmd2Q7Ci1AQCAtNDcwNiw2 MSArNDc0OCw1MiBAQCBfaW50X2ZyZWUgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIGludCBoYXZl X2xvY2spCi0gICAgICAgY2hlY2tfZnJlZV9jaHVuayhhdiwgcCk7Ci0gICAgIH0KLSAKLS0gICAg LyoKLS0gICAgICBJZiB0aGUgY2h1bmsgYm9yZGVycyB0aGUgY3VycmVudCBoaWdoIGVuZCBvZiBt ZW1vcnksCi0tICAgICAgY29uc29saWRhdGUgaW50byB0b3AKLS0gICAgKi8KLS0KLS0gICAgZWxz ZSB7Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICAvKiBJZiB0aGUgY2h1bmsgYm9yZGVycyB0aGUg Y3VycmVudCBoaWdoIGVuZCBvZiBtZW1vcnksCi0rCSBjb25zb2xpZGF0ZSBpbnRvIHRvcC4gICov Ci0gICAgICAgc2l6ZSArPSBuZXh0c2l6ZTsKLSAgICAgICBzZXRfaGVhZChwLCBzaXplIHwgUFJF Vl9JTlVTRSk7Ci0gICAgICAgYXYtPnRvcCA9IHA7Ci0gICAgICAgY2hlY2tfY2h1bmsoYXYsIHAp OwotICAgICB9Ci0gCi0tICAgIC8qCi0tICAgICAgSWYgZnJlZWluZyBhIGxhcmdlIHNwYWNlLCBj b25zb2xpZGF0ZSBwb3NzaWJseS1zdXJyb3VuZGluZwotLSAgICAgIGNodW5rcy4gVGhlbiwgaWYg dGhlIHRvdGFsIHVudXNlZCB0b3Btb3N0IG1lbW9yeSBleGNlZWRzIHRyaW0KLS0gICAgICB0aHJl c2hvbGQsIGFzayBtYWxsb2NfdHJpbSB0byByZWR1Y2UgdG9wLgotLQotLSAgICAgIFVubGVzcyBt YXhfZmFzdCBpcyAwLCB3ZSBkb24ndCBrbm93IGlmIHRoZXJlIGFyZSBmYXN0YmlucwotLSAgICAg IGJvcmRlcmluZyB0b3AsIHNvIHdlIGNhbm5vdCB0ZWxsIGZvciBzdXJlIHdoZXRoZXIgdGhyZXNo b2xkCi0tICAgICAgaGFzIGJlZW4gcmVhY2hlZCB1bmxlc3MgZmFzdGJpbnMgYXJlIGNvbnNvbGlk YXRlZC4gIEJ1dCB3ZQotLSAgICAgIGRvbid0IHdhbnQgdG8gY29uc29saWRhdGUgb24gZWFjaCBm cmVlLiAgQXMgYSBjb21wcm9taXNlLAotLSAgICAgIGNvbnNvbGlkYXRpb24gaXMgcGVyZm9ybWVk IGlmIEZBU1RCSU5fQ09OU09MSURBVElPTl9USFJFU0hPTEQKLS0gICAgICBpcyByZWFjaGVkLgot LSAgICAqLwotKyAgcmV0dXJuIHNpemU7Ci0rfQotIAotLSAgICBpZiAoKHVuc2lnbmVkIGxvbmcp KHNpemUpID49IEZBU1RCSU5fQ09OU09MSURBVElPTl9USFJFU0hPTEQpIHsKLSsvKiBJZiBmcmVl aW5nIGEgbGFyZ2Ugc3BhY2UsIGNvbnNvbGlkYXRlIHBvc3NpYmx5LXN1cnJvdW5kaW5nCi0rICAg Y2h1bmtzLiAgVGhlbiwgaWYgdGhlIHRvdGFsIHVudXNlZCB0b3Btb3N0IG1lbW9yeSBleGNlZWRz IHRyaW0KLSsgICB0aHJlc2hvbGQsIGFzayBtYWxsb2NfdHJpbSB0byByZWR1Y2UgdG9wLiAgKi8K LStzdGF0aWMgdm9pZAotK19pbnRfZnJlZV9tYXliZV9jb25zb2xpZGF0ZSAobXN0YXRlIGF2LCBJ TlRFUk5BTF9TSVpFX1Qgc2l6ZSkKLSt7Ci0rICAvKiBVbmxlc3MgbWF4X2Zhc3QgaXMgMCwgd2Ug ZG9uJ3Qga25vdyBpZiB0aGVyZSBhcmUgZmFzdGJpbnMKLSsgICAgIGJvcmRlcmluZyB0b3AsIHNv IHdlIGNhbm5vdCB0ZWxsIGZvciBzdXJlIHdoZXRoZXIgdGhyZXNob2xkIGhhcwotKyAgICAgYmVl biByZWFjaGVkIHVubGVzcyBmYXN0YmlucyBhcmUgY29uc29saWRhdGVkLiAgQnV0IHdlIGRvbid0 IHdhbnQKLSsgICAgIHRvIGNvbnNvbGlkYXRlIG9uIGVhY2ggZnJlZS4gIEFzIGEgY29tcHJvbWlz ZSwgY29uc29saWRhdGlvbiBpcwotKyAgICAgcGVyZm9ybWVkIGlmIEZBU1RCSU5fQ09OU09MSURB VElPTl9USFJFU0hPTEQgaXMgcmVhY2hlZC4gICovCi0rICBpZiAoc2l6ZSA+PSBGQVNUQklOX0NP TlNPTElEQVRJT05fVEhSRVNIT0xEKQotKyAgICB7Ci0gICAgICAgaWYgKGF0b21pY19sb2FkX3Jl bGF4ZWQgKCZhdi0+aGF2ZV9mYXN0Y2h1bmtzKSkKLSAJbWFsbG9jX2NvbnNvbGlkYXRlKGF2KTsK LSAKLS0gICAgICBpZiAoYXYgPT0gJm1haW5fYXJlbmEpIHsKLSsgICAgICBpZiAoYXYgPT0gJm1h aW5fYXJlbmEpCi0rCXsKLSAjaWZuZGVmIE1PUkVDT1JFX0NBTk5PVF9UUklNCi0tCWlmICgodW5z aWduZWQgbG9uZykoY2h1bmtzaXplKGF2LT50b3ApKSA+PQotLQkgICAgKHVuc2lnbmVkIGxvbmcp KG1wXy50cmltX3RocmVzaG9sZCkpCi0tCSAgc3lzdHJpbShtcF8udG9wX3BhZCwgYXYpOwotKwkg IGlmIChjaHVua3NpemUgKGF2LT50b3ApID49IG1wXy50cmltX3RocmVzaG9sZCkKLSsJICAgIHN5 c3RyaW0gKG1wXy50b3BfcGFkLCBhdik7Ci0gI2VuZGlmCi0tICAgICAgfSBlbHNlIHsKLS0JLyog QWx3YXlzIHRyeSBoZWFwX3RyaW0oKSwgZXZlbiBpZiB0aGUgdG9wIGNodW5rIGlzIG5vdAotLQkg ICBsYXJnZSwgYmVjYXVzZSB0aGUgY29ycmVzcG9uZGluZyBoZWFwIG1pZ2h0IGdvIGF3YXkuICAq LwotLQloZWFwX2luZm8gKmhlYXAgPSBoZWFwX2Zvcl9wdHIodG9wKGF2KSk7Ci0rCX0KLSsgICAg ICBlbHNlCi0rCXsKLSsJICAvKiBBbHdheXMgdHJ5IGhlYXBfdHJpbSwgZXZlbiBpZiB0aGUgdG9w IGNodW5rIGlzIG5vdCBsYXJnZSwKLSsJICAgICBiZWNhdXNlIHRoZSBjb3JyZXNwb25kaW5nIGhl YXAgbWlnaHQgZ28gYXdheS4gICovCi0rCSAgaGVhcF9pbmZvICpoZWFwID0gaGVhcF9mb3JfcHRy ICh0b3AgKGF2KSk7Ci0gCi0tCWFzc2VydChoZWFwLT5hcl9wdHIgPT0gYXYpOwotLQloZWFwX3Ry aW0oaGVhcCwgbXBfLnRvcF9wYWQpOwotLSAgICAgIH0KLSsJICBhc3NlcnQgKGhlYXAtPmFyX3B0 ciA9PSBhdik7Ci0rCSAgaGVhcF90cmltIChoZWFwLCBtcF8udG9wX3BhZCk7Ci0rCX0KLSAgICAg fQotLQotLSAgICBpZiAoIWhhdmVfbG9jaykKLS0gICAgICBfX2xpYmNfbG9ja191bmxvY2sgKGF2 LT5tdXRleCk7Ci0tICB9Ci0tICAvKgotLSAgICBJZiB0aGUgY2h1bmsgd2FzIGFsbG9jYXRlZCB2 aWEgbW1hcCwgcmVsZWFzZSB2aWEgbXVubWFwKCkuCi0tICAqLwotLQotLSAgZWxzZSB7Ci0tICAg IG11bm1hcF9jaHVuayAocCk7Ci0tICB9Ci0gfQotIAotIC8qCi1AQCAtNTIyMSw3ICs1MjU0LDcg QEAgX2ludF9tZW1hbGlnbiAobXN0YXRlIGF2LCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0 ZXMpCi0gICAgICAgICAgICAgICAgIChhdiAhPSAmbWFpbl9hcmVuYSA/IE5PTl9NQUlOX0FSRU5B IDogMCkpOwotICAgICAgIHNldF9pbnVzZV9iaXRfYXRfb2Zmc2V0IChuZXdwLCBuZXdzaXplKTsK LSAgICAgICBzZXRfaGVhZF9zaXplIChwLCBsZWFkc2l6ZSB8IChhdiAhPSAmbWFpbl9hcmVuYSA/ IE5PTl9NQUlOX0FSRU5BIDogMCkpOwotLSAgICAgIF9pbnRfZnJlZSAoYXYsIHAsIDEpOwotKyAg ICAgIF9pbnRfZnJlZV9tZXJnZV9jaHVuayAoYXYsIHAsIGxlYWRzaXplKTsKLSAgICAgICBwID0g bmV3cDsKLSAKLSAgICAgICBhc3NlcnQgKG5ld3NpemUgPj0gbmIgJiYKLUBAIC01MjMyLDE1ICs1 MjY1LDI3IEBAIF9pbnRfbWVtYWxpZ24gKG1zdGF0ZSBhdiwgc2l6ZV90IGFsaWdubWVudCwgc2l6 ZV90IGJ5dGVzKQotICAgaWYgKCFjaHVua19pc19tbWFwcGVkIChwKSkKLSAgICAgewotICAgICAg IHNpemUgPSBjaHVua3NpemUgKHApOwotLSAgICAgIGlmICgodW5zaWduZWQgbG9uZykgKHNpemUp ID4gKHVuc2lnbmVkIGxvbmcpIChuYiArIE1JTlNJWkUpKQotKyAgICAgIG1jaHVua3B0ciBuZXh0 Y2h1bmsgPSBjaHVua19hdF9vZmZzZXQocCwgc2l6ZSk7Ci0rICAgICAgSU5URVJOQUxfU0laRV9U IG5leHRzaXplID0gY2h1bmtzaXplKG5leHRjaHVuayk7Ci0rICAgICAgaWYgKHNpemUgPiBuYikK LSAgICAgICAgIHsKLSAgICAgICAgICAgcmVtYWluZGVyX3NpemUgPSBzaXplIC0gbmI7Ci0tICAg ICAgICAgIHJlbWFpbmRlciA9IGNodW5rX2F0X29mZnNldCAocCwgbmIpOwotLSAgICAgICAgICBz ZXRfaGVhZCAocmVtYWluZGVyLCByZW1haW5kZXJfc2l6ZSB8IFBSRVZfSU5VU0UgfAotLSAgICAg ICAgICAgICAgICAgICAgKGF2ICE9ICZtYWluX2FyZW5hID8gTk9OX01BSU5fQVJFTkEgOiAwKSk7 Ci0tICAgICAgICAgIHNldF9oZWFkX3NpemUgKHAsIG5iKTsKLS0gICAgICAgICAgX2ludF9mcmVl IChhdiwgcmVtYWluZGVyLCAxKTsKLS0gICAgICAgIH0KLSsJICBpZiAocmVtYWluZGVyX3NpemUg Pj0gTUlOU0laRQotKwkgICAgICB8fCBuZXh0Y2h1bmsgPT0gYXYtPnRvcAotKwkgICAgICB8fCAh aW51c2VfYml0X2F0X29mZnNldCAobmV4dGNodW5rLCBuZXh0c2l6ZSkpCi0rCSAgICB7Ci0rCSAg ICAgIC8qIFdlIGNhbiBvbmx5IGdpdmUgYmFjayB0aGUgdGFpbCBpZiBpdCBpcyBsYXJnZXIgdGhh bgotKwkJIE1JTlNJWkUsIG9yIGlmIHRoZSBmb2xsb3dpbmcgY2h1bmsgaXMgdW51c2VkICh0b3AK LSsJCSBjaHVuayBvciB1bnVzZWQgaW4taGVhcCBjaHVuaykuICBPdGhlcndpc2Ugd2Ugd291bGQK LSsJCSBjcmVhdGUgYSBjaHVuayB0aGF0IGlzIHNtYWxsZXIgdGhhbiBNSU5TSVpFLiAgKi8KLSsJ ICAgICAgcmVtYWluZGVyID0gY2h1bmtfYXRfb2Zmc2V0IChwLCBuYik7Ci0rCSAgICAgIHNldF9o ZWFkX3NpemUgKHAsIG5iKTsKLSsJICAgICAgcmVtYWluZGVyX3NpemUgPSBfaW50X2ZyZWVfY3Jl YXRlX2NodW5rIChhdiwgcmVtYWluZGVyLAotKwkJCQkJCSAgICAgICByZW1haW5kZXJfc2l6ZSwK LSsJCQkJCQkgICAgICAgbmV4dGNodW5rLCBuZXh0c2l6ZSk7Ci0rCSAgICAgIF9pbnRfZnJlZV9t YXliZV9jb25zb2xpZGF0ZSAoYXYsIHJlbWFpbmRlcl9zaXplKTsKLSsJICAgIH0KLSsJfQotICAg ICB9Ci0gCi0gICBjaGVja19pbnVzZV9jaHVuayAoYXYsIHApOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbGliYy9wYXRjaGVzLzMwNzIzLTItMGRjN2ZjMWNmMDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5 ZWRjZjg5ZC5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMDcyMy0yLTBkYzdmYzFjZjA5 NDQwNmExMzhlNGQxYmNmOTU1M2U1OWVkY2Y4OWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDQ2MTVjN2IwMzVjYzc1Li4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ds aWJjL3BhdGNoZXMvMzA3MjMtMi0wZGM3ZmMxY2YwOTQ0MDZhMTM4ZTRkMWJjZjk1NTNlNTllZGNm ODlkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUyICswLDAgQEAKLUZyb20gMGRjN2ZjMWNm MDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDEw IEF1ZyAyMDIzIDE5OjM2OjU2ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIG1hbGxvYzogUmVtb3Zl IGJpbiBzY2FubmluZyBmcm9tIG1lbWFsaWduIChidWcgMzA3MjMpCi0KLU9uIHRoZSB0ZXN0IHdv cmtsb2FkIChtcHYgLS1jYWNoZT15ZXMgd2l0aCBWUDkgdmlkZW8gZGVjb2RpbmcpLCB0aGUKLWJp biBzY2FubmluZyBoYXMgYSB2ZXJ5IHBvb3Igc3VjY2VzcyByYXRlIChsZXNzIHRoYW4gMiUpLiAg VGhlIHRjYWNoZQotc2Nhbm5pbmcgaGFzIGFib3V0IDUwJSBzdWNjZXNzIHJhdGUsIHNvIGtlZXAg dGhhdC4KLQotVXBkYXRlIGNvbW1lbnRzIGluIG1hbGxvYy90c3QtbWVtYWxpZ24tMiB0byBpbmRp Y2F0ZSB0aGUgcHVycG9zZQotb2YgdGhlIHRlc3RzLiAgRXZlbiB3aXRoIHRoZSBzY2FubmluZyBy ZW1vdmVkLCB0aGUgYWRkaXRpb25hbAotbWVyZ2luZyBvcHBvcnR1bml0aWVzIHNpbmNlIGNvbW1p dCA1NDJiMTEwNTg1MjU2OGMzZWJjNzEyMjI1YWU3OGIKLSgibWFsbG9jOiBFbmFibGUgbWVyZ2lu ZyBvZiByZW1haW5kZXJzIGluIG1lbWFsaWduIChidWcgMzA3MjMpIikKLWFyZSBzdWZmaWNpZW50 IHRvIHBhc3MgdGhlIGV4aXN0aW5nIGxhcmdlIGJpbnMgdGVzdC4KLQotUmVtb3ZlIGxlZnRvdmVy IHZhcmlhYmxlcyBmcm9tIF9pbnRfZnJlZSBmcm9tIHJlZmFjdG9yaW5nIGluIHRoZQotc2FtZSBj b21taXQuCi0KLVJldmlld2VkLWJ5OiBESiBEZWxvcmllIDxkakByZWRoYXQuY29tPgotLS0tCi0g bWFsbG9jL21hbGxvYy5jICAgICAgICAgfCAxNjkgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIG1hbGxvYy90c3QtbWVtYWxpZ24tMi5jIHwgICA3ICstCi0gMiBmaWxl cyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxNjYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9tYWxsb2MvbWFsbG9jLmMgYi9tYWxsb2MvbWFsbG9jLmMKLWluZGV4IDk0OGY5NzU5YWYu LmQwYmJiZjM3MTAgMTAwNjQ0Ci0tLS0gYS9tYWxsb2MvbWFsbG9jLmMKLSsrKyBiL21hbGxvYy9t YWxsb2MuYwotQEAgLTQ0ODgsMTIgKzQ0ODgsNiBAQCBfaW50X2ZyZWUgKG1zdGF0ZSBhdiwgbWNo dW5rcHRyIHAsIGludCBoYXZlX2xvY2spCi0gewotICAgSU5URVJOQUxfU0laRV9UIHNpemU7ICAg ICAgICAvKiBpdHMgc2l6ZSAqLwotICAgbWZhc3RiaW5wdHIgKmZiOyAgICAgICAgICAgICAvKiBh c3NvY2lhdGVkIGZhc3RiaW4gKi8KLS0gIG1jaHVua3B0ciBuZXh0Y2h1bms7ICAgICAgICAgLyog bmV4dCBjb250aWd1b3VzIGNodW5rICovCi0tICBJTlRFUk5BTF9TSVpFX1QgbmV4dHNpemU7ICAg IC8qIGl0cyBzaXplICovCi0tICBpbnQgbmV4dGludXNlOyAgICAgICAgICAgICAgIC8qIHRydWUg aWYgbmV4dGNodW5rIGlzIHVzZWQgKi8KLS0gIElOVEVSTkFMX1NJWkVfVCBwcmV2c2l6ZTsgICAg Lyogc2l6ZSBvZiBwcmV2aW91cyBjb250aWd1b3VzIGNodW5rICovCi0tICBtY2h1bmtwdHIgYmNr OyAgICAgICAgICAgICAgIC8qIG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLwotLSAgbWNodW5rcHRy IGZ3ZDsgICAgICAgICAgICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLSAKLSAgIHNp emUgPSBjaHVua3NpemUgKHApOwotIAotQEAgLTUwMzIsNDIgKzUwMjYsNiBAQCBfaW50X3JlYWxs b2MgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIG9sZHAsIElOVEVSTkFMX1NJWkVfVCBvbGRzaXplLAot ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBtZW1hbGlnbiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAgKi8KLSAKLS0vKiBSZXR1cm5zIDAgaWYgdGhlIGNodW5rIGlz IG5vdCBhbmQgZG9lcyBub3QgY29udGFpbiB0aGUgcmVxdWVzdGVkCi0tICAgYWxpZ25lZCBzdWIt Y2h1bmssIGVsc2UgcmV0dXJucyB0aGUgYW1vdW50IG9mICJ3YXN0ZSIgZnJvbQotLSAgIHRyaW1t aW5nLiAgTkIgaXMgdGhlICpjaHVuayogYnl0ZSBzaXplLCBub3QgdGhlIHVzZXIgYnl0ZQotLSAg IHNpemUuICAqLwotLXN0YXRpYyBzaXplX3QKLS1jaHVua19va19mb3JfbWVtYWxpZ24gKG1jaHVu a3B0ciBwLCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgbmIpCi0tewotLSAgdm9pZCAqbSA9IGNo dW5rMm1lbSAocCk7Ci0tICBJTlRFUk5BTF9TSVpFX1Qgc2l6ZSA9IGNodW5rc2l6ZSAocCk7Ci0t ICB2b2lkICphbGlnbmVkX20gPSBtOwotLQotLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG1pc2Fs aWduZWRfY2h1bmsgKHApKSkKLS0gICAgbWFsbG9jX3ByaW50ZXJyICgiX2ludF9tZW1hbGlnbigp OiB1bmFsaWduZWQgY2h1bmsgZGV0ZWN0ZWQiKTsKLS0KLS0gIGFsaWduZWRfbSA9IFBUUl9BTElH Tl9VUCAobSwgYWxpZ25tZW50KTsKLS0KLS0gIElOVEVSTkFMX1NJWkVfVCBmcm9udF9leHRyYSA9 IChpbnRwdHJfdCkgYWxpZ25lZF9tIC0gKGludHB0cl90KSBtOwotLQotLSAgLyogV2UgY2FuJ3Qg dHJpbSBvZmYgdGhlIGZyb250IGFzIGl0J3MgdG9vIHNtYWxsLiAgKi8KLS0gIGlmIChmcm9udF9l eHRyYSA+IDAgJiYgZnJvbnRfZXh0cmEgPCBNSU5TSVpFKQotLSAgICByZXR1cm4gMDsKLS0KLS0g IC8qIElmIGl0J3MgYSBwZXJmZWN0IGZpdCwgaXQncyBhbiBleGNlcHRpb24gdG8gdGhlIHJldHVy biB2YWx1ZSBydWxlCi0tICAgICAod2Ugd291bGQgcmV0dXJuIHplcm8gd2FzdGUsIHdoaWNoIGxv b2tzIGxpa2UgIm5vdCB1c2FibGUiKSwgc28KLS0gICAgIGhhbmRsZSBpdCBoZXJlIGJ5IHJldHVy bmluZyBhIHNtYWxsIG5vbi16ZXJvIHZhbHVlIGluc3RlYWQuICAqLwotLSAgaWYgKHNpemUgPT0g bmIgJiYgZnJvbnRfZXh0cmEgPT0gMCkKLS0gICAgcmV0dXJuIDE7Ci0tCi0tICAvKiBJZiB0aGUg YmxvY2sgd2UgbmVlZCBmaXRzIGluIHRoZSBjaHVuaywgY2FsY3VsYXRlIHRvdGFsIHdhc3RlLiAg Ki8KLS0gIGlmIChzaXplID4gbmIgKyBmcm9udF9leHRyYSkKLS0gICAgcmV0dXJuIHNpemUgLSBu YjsKLS0KLS0gIC8qIENhbid0IHVzZSB0aGlzIGNodW5rLiAgKi8KLS0gIHJldHVybiAwOwotLX0K LS0KLSAvKiBCWVRFUyBpcyB1c2VyIHJlcXVlc3RlZCBieXRlcywgbm90IHJlcXVlc3RlZCBjaHVu a3NpemUgYnl0ZXMuICAqLwotIHN0YXRpYyB2b2lkICoKLSBfaW50X21lbWFsaWduIChtc3RhdGUg YXYsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBieXRlcykKLUBAIC01MDgyLDcgKzUwNDAsNiBA QCBfaW50X21lbWFsaWduIChtc3RhdGUgYXYsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBieXRl cykKLSAgIG1jaHVua3B0ciByZW1haW5kZXI7ICAgICAgICAgICAgLyogc3BhcmUgcm9vbSBhdCBl bmQgdG8gc3BsaXQgb2ZmICovCi0gICB1bnNpZ25lZCBsb25nIHJlbWFpbmRlcl9zaXplOyAgIC8q IGl0cyBzaXplICovCi0gICBJTlRFUk5BTF9TSVpFX1Qgc2l6ZTsKLS0gIG1jaHVua3B0ciB2aWN0 aW07Ci0gCi0gICBuYiA9IGNoZWNrZWRfcmVxdWVzdDJzaXplIChieXRlcyk7Ci0gICBpZiAobmIg PT0gMCkKLUBAIC01MTAxLDEyOSArNTA1OCwxMyBAQCBfaW50X21lbWFsaWduIChtc3RhdGUgYXYs IHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBieXRlcykKLSAgICAgIHdlIGRvbid0IGZpbmQgYW55 dGhpbmcgaW4gdGhvc2UgYmlucywgdGhlIGNvbW1vbiBtYWxsb2MgY29kZSB3aWxsCi0gICAgICBz Y2FuIHN0YXJ0aW5nIGF0IDJ4LiAgKi8KLSAKLS0gIC8qIFRoaXMgd2lsbCBiZSBzZXQgaWYgd2Ug Zm91bmQgYSBjYW5kaWRhdGUgY2h1bmsuICAqLwotLSAgdmljdGltID0gTlVMTDsKLS0KLS0gIC8q IEZhc3QgYmlucyBhcmUgc2luZ2x5LWxpbmtlZCwgaGFyZCB0byByZW1vdmUgYSBjaHVuayBmcm9t IHRoZSBtaWRkbGUKLS0gICAgIGFuZCB1bmxpa2VseSB0byBtZWV0IG91ciBhbGlnbm1lbnQgcmVx dWlyZW1lbnRzLiAgV2UgaGF2ZSBub3QgZG9uZQotLSAgICAgYW55IGV4cGVyaW1lbnRhdGlvbiB3 aXRoIHNlYXJjaGluZyBmb3IgYWxpZ25lZCBmYXN0Ymlucy4gICovCi0tCi0tICBpZiAoYXYgIT0g TlVMTCkKLS0gICAgewotLSAgICAgIGludCBmaXJzdF9iaW5faW5kZXg7Ci0tICAgICAgaW50IGZp cnN0X2xhcmdlYmluX2luZGV4OwotLSAgICAgIGludCBsYXN0X2Jpbl9pbmRleDsKLS0KLS0gICAg ICBpZiAoaW5fc21hbGxiaW5fcmFuZ2UgKG5iKSkKLS0JZmlyc3RfYmluX2luZGV4ID0gc21hbGxi aW5faW5kZXggKG5iKTsKLS0gICAgICBlbHNlCi0tCWZpcnN0X2Jpbl9pbmRleCA9IGxhcmdlYmlu X2luZGV4IChuYik7Ci0tCi0tICAgICAgaWYgKGluX3NtYWxsYmluX3JhbmdlIChuYiAqIDIpKQot LQlsYXN0X2Jpbl9pbmRleCA9IHNtYWxsYmluX2luZGV4IChuYiAqIDIpOwotLSAgICAgIGVsc2UK LS0JbGFzdF9iaW5faW5kZXggPSBsYXJnZWJpbl9pbmRleCAobmIgKiAyKTsKLS0KLS0gICAgICBm aXJzdF9sYXJnZWJpbl9pbmRleCA9IGxhcmdlYmluX2luZGV4IChNSU5fTEFSR0VfU0laRSk7Ci0t Ci0tICAgICAgaW50IHZpY3RpbV9pbmRleDsgICAgICAgICAgICAgICAgIC8qIGl0cyBiaW4gaW5k ZXggKi8KLS0KLS0gICAgICBmb3IgKHZpY3RpbV9pbmRleCA9IGZpcnN0X2Jpbl9pbmRleDsKLS0J ICAgdmljdGltX2luZGV4IDwgbGFzdF9iaW5faW5kZXg7Ci0tCSAgIHZpY3RpbV9pbmRleCArKykK LS0JewotLQkgIHZpY3RpbSA9IE5VTEw7Ci0tCi0tCSAgaWYgKHZpY3RpbV9pbmRleCA8IGZpcnN0 X2xhcmdlYmluX2luZGV4KQotLQkgICAgewotLQkgICAgICAvKiBDaGVjayBzbWFsbCBiaW5zLiAg U21hbGwgYmluIGNodW5rcyBhcmUgZG91Ymx5LWxpbmtlZCBkZXNwaXRlCi0tCQkgYmVpbmcgdGhl IHNhbWUgc2l6ZS4gICovCi0tCi0tCSAgICAgIG1jaHVua3B0ciBmd2Q7ICAgICAgICAgICAgICAg ICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0JICAgICAgbWNodW5rcHRyIGJjazsg ICAgICAgICAgICAgICAgICAgIC8qIG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLwotLQotLQkgICAg ICBiY2sgPSBiaW5fYXQgKGF2LCB2aWN0aW1faW5kZXgpOwotLQkgICAgICBmd2QgPSBiY2stPmZk OwotLQkgICAgICB3aGlsZSAoZndkICE9IGJjaykKLS0JCXsKLS0JCSAgaWYgKGNodW5rX29rX2Zv cl9tZW1hbGlnbiAoZndkLCBhbGlnbm1lbnQsIG5iKSA+IDApCi0tCQkgICAgewotLQkJICAgICAg dmljdGltID0gZndkOwotLQotLQkJICAgICAgLyogVW5saW5rIGl0ICovCi0tCQkgICAgICB2aWN0 aW0tPmZkLT5iayA9IHZpY3RpbS0+Yms7Ci0tCQkgICAgICB2aWN0aW0tPmJrLT5mZCA9IHZpY3Rp bS0+ZmQ7Ci0tCQkgICAgICBicmVhazsKLS0JCSAgICB9Ci0tCi0tCQkgIGZ3ZCA9IGZ3ZC0+ZmQ7 Ci0tCQl9Ci0tCSAgICB9Ci0tCSAgZWxzZQotLQkgICAgewotLQkgICAgICAvKiBDaGVjayBsYXJn ZSBiaW5zLiAgKi8KLS0JICAgICAgbWNodW5rcHRyIGZ3ZDsgICAgICAgICAgICAgICAgICAgIC8q IG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLwotLQkgICAgICBtY2h1bmtwdHIgYmNrOyAgICAgICAg ICAgICAgICAgICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCi0tCSAgICAgIG1jaHVua3B0 ciBiZXN0ID0gTlVMTDsKLS0JICAgICAgc2l6ZV90IGJlc3Rfc2l6ZSA9IDA7Ci0tCi0tCSAgICAg IGJjayA9IGJpbl9hdCAoYXYsIHZpY3RpbV9pbmRleCk7Ci0tCSAgICAgIGZ3ZCA9IGJjay0+ZmQ7 Ci0rICAvKiBDYWxsIG1hbGxvYyB3aXRoIHdvcnN0IGNhc2UgcGFkZGluZyB0byBoaXQgYWxpZ25t ZW50LiAqLwotKyAgbSA9IChjaGFyICopIChfaW50X21hbGxvYyAoYXYsIG5iICsgYWxpZ25tZW50 ICsgTUlOU0laRSkpOwotIAotLQkgICAgICB3aGlsZSAoZndkICE9IGJjaykKLS0JCXsKLS0JCSAg aW50IGV4dHJhOwotLQotLQkJICBpZiAoY2h1bmtzaXplIChmd2QpIDwgbmIpCi0tCQkgICAgYnJl YWs7Ci0tCQkgIGV4dHJhID0gY2h1bmtfb2tfZm9yX21lbWFsaWduIChmd2QsIGFsaWdubWVudCwg bmIpOwotLQkJICBpZiAoZXh0cmEgPiAwCi0tCQkgICAgICAmJiAoZXh0cmEgPD0gYmVzdF9zaXpl IHx8IGJlc3QgPT0gTlVMTCkpCi0tCQkgICAgewotLQkJICAgICAgYmVzdCA9IGZ3ZDsKLS0JCSAg ICAgIGJlc3Rfc2l6ZSA9IGV4dHJhOwotLQkJICAgIH0KLSsgIGlmIChtID09IDApCi0rICAgIHJl dHVybiAwOyAgICAgICAgICAgLyogcHJvcGFnYXRlIGZhaWx1cmUgKi8KLSAKLS0JCSAgZndkID0g ZndkLT5mZDsKLS0JCX0KLS0JICAgICAgdmljdGltID0gYmVzdDsKLS0KLS0JICAgICAgaWYgKHZp Y3RpbSAhPSBOVUxMKQotLQkJewotLQkJICB1bmxpbmtfY2h1bmsgKGF2LCB2aWN0aW0pOwotLQkJ ICBicmVhazsKLS0JCX0KLS0JICAgIH0KLS0KLS0JICBpZiAodmljdGltICE9IE5VTEwpCi0tCSAg ICBicmVhazsKLS0JfQotLSAgICB9Ci0tCi0tICAvKiBTdHJhdGVneTogZmluZCBhIHNwb3Qgd2l0 aGluIHRoYXQgY2h1bmsgdGhhdCBtZWV0cyB0aGUgYWxpZ25tZW50Ci0tICAgICByZXF1ZXN0LCBh bmQgdGhlbiBwb3NzaWJseSBmcmVlIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZS4KLS0g ICAgIFRoaXMgc3RyYXRlZ3kgaXMgaW5jcmVkaWJseSBjb3N0bHkgYW5kIGNhbiBsZWFkIHRvIGV4 dGVybmFsCi0tICAgICBmcmFnbWVudGF0aW9uIGlmIGhlYWRlciBhbmQgZm9vdGVyIGNodW5rcyBh cmUgdW51c2VkLiAgKi8KLS0KLS0gIGlmICh2aWN0aW0gIT0gTlVMTCkKLS0gICAgewotLSAgICAg IHAgPSB2aWN0aW07Ci0tICAgICAgbSA9IGNodW5rMm1lbSAocCk7Ci0tICAgICAgc2V0X2ludXNl IChwKTsKLS0gICAgICBpZiAoYXYgIT0gJm1haW5fYXJlbmEpCi0tCXNldF9ub25fbWFpbl9hcmVu YSAocCk7Ci0tICAgIH0KLS0gIGVsc2UKLS0gICAgewotLSAgICAgIC8qIENhbGwgbWFsbG9jIHdp dGggd29yc3QgY2FzZSBwYWRkaW5nIHRvIGhpdCBhbGlnbm1lbnQuICovCi0tCi0tICAgICAgbSA9 IChjaGFyICopIChfaW50X21hbGxvYyAoYXYsIG5iICsgYWxpZ25tZW50ICsgTUlOU0laRSkpOwot LQotLSAgICAgIGlmIChtID09IDApCi0tCXJldHVybiAwOyAgICAgICAgICAgLyogcHJvcGFnYXRl IGZhaWx1cmUgKi8KLS0KLS0gICAgICBwID0gbWVtMmNodW5rIChtKTsKLS0gICAgfQotKyAgcCA9 IG1lbTJjaHVuayAobSk7Ci0gCi0gICBpZiAoKCgodW5zaWduZWQgbG9uZykgKG0pKSAlIGFsaWdu bWVudCkgIT0gMCkgICAvKiBtaXNhbGlnbmVkICovCi0gICAgIHsKLWRpZmYgLS1naXQgYS9tYWxs b2MvdHN0LW1lbWFsaWduLTIuYyBiL21hbGxvYy90c3QtbWVtYWxpZ24tMi5jCi1pbmRleCBmMjI5 MjgzZGJmLi5lY2Q2ZmEyNDllIDEwMDY0NAotLS0tIGEvbWFsbG9jL3RzdC1tZW1hbGlnbi0yLmMK LSsrKyBiL21hbGxvYy90c3QtbWVtYWxpZ24tMi5jCi1AQCAtODYsNyArODYsOCBAQCBkb190ZXN0 ICh2b2lkKQotICAgICAgIFRFU1RfVkVSSUZZICh0Y2FjaGVfYWxsb2NzW2ldLnB0cjEgPT0gdGNh Y2hlX2FsbG9jc1tpXS5wdHIyKTsKLSAgICAgfQotIAotLSAgLyogVGVzdCBmb3Igbm9uLWhlYWQg dGNhY2hlIGhpdHMuICAqLwotKyAgLyogVGVzdCBmb3Igbm9uLWhlYWQgdGNhY2hlIGhpdHMuICBU aGlzIGV4ZXJjaXNlcyB0aGUgbWVtYWxpZ24KLSsgICAgIHNjYW5uaW5nIGNvZGUgdG8gZmluZCBt YXRjaGluZyBhbGxvY2F0aW9ucy4gICovCi0gICBmb3IgKGkgPSAwOyBpIDwgYXJyYXlfbGVuZ3Ro IChwdHIpOyArKyBpKQotICAgICB7Ci0gICAgICAgaWYgKGkgPT0gNCkKLUBAIC0xMTMsNyArMTE0 LDkgQEAgZG9fdGVzdCAodm9pZCkKLSAgIGZyZWUgKHApOwotICAgVEVTVF9WRVJJRlkgKGNvdW50 ID4gMCk7Ci0gCi0tICAvKiBMYXJnZSBiaW5zIHRlc3QuICAqLwotKyAgLyogTGFyZ2UgYmlucyB0 ZXN0LiAgVGhpcyB2ZXJpZmllcyB0aGF0IHRoZSBvdmVyLWFsbG9jYXRlZCBwYXJ0cwotKyAgICAg dGhhdCBtZW1hbGlnbiByZWxlYXNlcyBmb3IgZnV0dXJlIGFsbG9jYXRpb25zIGNhbiBiZSByZXVz ZWQgYnkKLSsgICAgIG1lbWFsaWduIGl0c2VsZiBhdCBsZWFzdCBpbiBzb21lIGNhc2VzLiAgKi8K LSAKLSAgIGZvciAoaSA9IDA7IGkgPCBMTjsgKysgaSkKLSAgICAgewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbGliYy9wYXRjaGVzLzMxMmUxNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNmNDM0OGEzOTYy ZjMucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzEyZTE1OTYyNmI2N2ZlMTFmMzllODNl MjIyY2Y0MzQ4YTM5NjJmMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMC4uOTMwZDFmZDk3MDJjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dsaWJj L3BhdGNoZXMvMzEyZTE1OTYyNmI2N2ZlMTFmMzllODNlMjIyY2Y0MzQ4YTM5NjJmMy5wYXRjaApA QCAtMCwwICsxLDgwIEBACitGcm9tIDMxMmUxNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNmNDM0OGEz OTYyZjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEg PGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogVGh1LCAxIEZlYiAyMDI0IDE0 OjI5OjUzIC0wMzAwCitTdWJqZWN0OiBbUEFUQ0hdIG1pcHM6IEZJeCBjbG9uZTMgaW1wbGVtZW50 YXRpb24gKEJaIDMxMzI1KQorCitGb3IgbzMyIHdlIG5lZWQgdG8gc2V0dXAgYSBtaW5pbWFsIHN0 YWNrIGZyYW1lIHRvIGFsbG93IGNwcmVzdG9yZQorb24gX190aHJlYWRfc3RhcnRfY2xvbmUzICh3 aGljaCBpbnN0cnVjdCB0aGUgbGlua2VyIHRvIHNhdmUgdGhlCitncCBmb3IgUElDKS4gIEFsc28s IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSBieSBrQUJJIHRoYXQgJDggd2lsbCBiZQorcHJlc2VydmVk IGFmdGVyIHN5c2NhbGwgZXhlY3V0aW9uLCBzbyB3ZSBuZWVkIHRvIHNhdmUgaXQgb24gdGhlCitw cm92aWRlZCBzdGFjay4KKworQ2hlY2tlZCBvbiBtaXBzZWwtbGludXgtZ251LgorCitSZXBvcnRl ZC1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK1Rlc3RlZC1ieTogS2hlbSBSYWog PHJhai5raGVtQGdtYWlsLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGJiZDI0OGFj MGQ3NWVmZGVmOGZlNjFlYTY5YjFmYjI1ZmI5NWI2ZTcpCistLS0KKyBzeXNkZXBzL3VuaXgvc3lz di9saW51eC9taXBzL2Nsb25lMy5TIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisg MSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL2Nsb25lMy5TIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvbWlwcy9jbG9uZTMuUworaW5kZXggZTlmZWMyZmE0Ny4uNDgxYjhhZTk2 MyAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvY2xvbmUzLlMKKysr KyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvY2xvbmUzLlMKK0BAIC0zNywxMSArMzcs NiBAQAorIAorIAkudGV4dAorIAkuc2V0CQlub21pcHMxNgorLSNpZiBfTUlQU19TSU0gPT0gX0FC SU8zMgorLSMgZGVmaW5lIEVYVFJBX0xPQ0FMUyAxCistI2Vsc2UKKy0jIGRlZmluZSBFWFRSQV9M T0NBTFMgMAorLSNlbmRpZgorICNkZWZpbmUgRlJBTUVTWiAoKE5BUkdTQVZFKlNaUkVHKStBTFNa KSZBTE1BU0sKKyBHUE9GRj0gRlJBTUVTWi0oMSpTWlJFRykKKyBORVNURUQoX19jbG9uZTMsIFNa UkVHLCBzcCkKK0BAIC02OCw4ICs2MywzMSBAQCBORVNURUQoX19jbG9uZTMsIFNaUkVHLCBzcCkK KyAJYmVxeglhMCwgTChlcnJvcikJLyogTm8gTlVMTCBjbF9hcmdzIHBvaW50ZXIuICAqLworIAli ZXF6CWEyLCBMKGVycm9yKQkvKiBObyBOVUxMIGZ1bmN0aW9uIHBvaW50ZXIuICAqLworIAorKyNp ZiBfTUlQU19TSU0gPT0gX0FCSU8zMgorKwkvKiBCb3RoIHN0YWNrIGFuZCBzdGFja19zaXplIG9u IGNsb25lX2FyZ3MgYXJlIGRlZmluZWQgYXMgdWludDY0X3QsIGFuZAorKwkgICB0aGVyZSBpcyBu byBuZWVkIHRvIGhhbmRsZSB2YWx1ZXMgbGFyZ2VyIHRoYW4gdG8gMzIgYml0cyBmb3IgbzMyLiAg Ki8KKysjIGlmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KKysjICBkZWZpbmUgQ0xfU1RB Q0tQT0lOVEVSX09GRlNFVCAgNDQKKysjICBkZWZpbmUgQ0xfU1RBQ0tTSVpFX09GRlNFVCAgICAg NTIKKysjIGVsc2UKKysjICBkZWZpbmUgQ0xfU1RBQ0tQT0lOVEVSX09GRlNFVCAgNDAKKysjICBk ZWZpbmUgQ0xfU1RBQ0tTSVpFX09GRlNFVCAgICAgNDgKKysjIGVuZGlmCisrCisrCS8qIEZvciBv MzIgd2UgbmVlZCB0byBzZXR1cCBhIG1pbmltYWwgc3RhY2sgZnJhbWUgdG8gYWxsb3cgY3ByZXN0 b3JlCisrCSAgIG9uIF9fdGhyZWFkX3N0YXJ0X2Nsb25lMy4gIEFsc28gdGhlcmUgaXMgbm8gZ3Vh cmFudGVlIGJ5IGtBQkkgdGhhdAorKwkgICAkOCB3aWxsIGJlIHByZXNlcnZlZCBhZnRlciBzeXNj YWxsIGV4ZWN1dGlvbiAoc28gd2UgbmVlZCB0byBzYXZlIGl0CisrCSAgIG9uIHRoZSBwcm92aWRl ZCBzdGFjaykuICAqLworKwlsdwl0MCwgQ0xfU1RBQ0tQT0lOVEVSX09GRlNFVChhMCkJLyogTG9h ZCB0aGUgc3RhY2sgcG9pbnRlci4gICovCisrCWx3CXQxLCBDTF9TVEFDS1NJWkVfT0ZGU0VUKGEw KQkvKiBMb2FkIHRoZSBzdGFja19zaXplLiAgKi8KKysJYWRkaXUJdDEsIC0zMgkJCQkvKiBVcGRh dGUgdGhlIHN0YWNrIHNpemUuICAqLworKwlhZGR1CXQyLCB0MSwgdDAJCQkvKiBDYWxjdWxhdGUg dGhlIHRocmVhZCBzdGFjay4gICovCisrCXN3CWEzLCAwKHQyKQkJCS8qIFNhdmUgYXJndW1lbnQg cG9pbnRlci4gICovCisrCXN3CXQxLCBDTF9TVEFDS1NJWkVfT0ZGU0VUKGEwKQkvKiBTYXZlIHRo ZSBuZXcgc3RhY2sgc2l6ZS4gICovCisrI2Vsc2UKKyAJbW92ZQkkOCwgYTMJCS8qIGEzIGlzIHNl dCB0byAwLzEgZm9yIHN5c2NhbGwgc3VjY2Vzcy9lcnJvcgorIAkJCQkgICB3aGlsZSBhNC8kOCBp cyByZXR1cm5lZCB1bm1vZGlmaWVkLiAgKi8KKysjZW5kaWYKKyAKKyAJLyogRG8gdGhlIHN5c3Rl bSBjYWxsLCB0aGUga2VybmVsIGV4cGVjdHM6CisgCSAgIHYwOiBzeXN0ZW0gY2FsbCBudW1iZXIK K0BAIC0xMjUsNyArMTQzLDExIEBAIEwodGhyZWFkX3N0YXJ0X2Nsb25lMyk6CisgCisgCS8qIFJl c3RvcmUgdGhlIGFyZyBmb3IgdXNlcidzIGZ1bmN0aW9uLiAgKi8KKyAJbW92ZQkJdDksIGEyCQkv KiBGdW5jdGlvbiBwb2ludGVyLiAgKi8KKysjaWYgX01JUFNfU0lNID09IF9BQklPMzIKKysJUFRS X0wJCWEwLCAwKHNwKQorKyNlbHNlCisgCW1vdmUJCWEwLCAkOAkJLyogQXJndW1lbnQgcG9pbnRl ci4gICovCisrI2VuZGlmCisgCisgCS8qIENhbGwgdGhlIHVzZXIncyBmdW5jdGlvbi4gICovCisg CWphbAkJdDkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy82MzI5NWU0ZmRhMWY2 ZGFiNGJmNzQ0MjcwNmZlMzAzYmYyODMwMzZjLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVz LzYzMjk1ZTRmZGExZjZkYWI0YmY3NDQyNzA2ZmUzMDNiZjI4MzAzNmMucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmM5MjQ4NWJhNGQ1NDMxCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzYzMjk1ZTRmZGExZjZkYWI0YmY3NDQy NzA2ZmUzMDNiZjI4MzAzNmMucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA2MzI5NWU0ZmRh MWY2ZGFiNGJmNzQ0MjcwNmZlMzAzYmYyODMwMzZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4K K0RhdGU6IE1vbiwgNSBGZWIgMjAyNCAxNjoxMDoyNCArMDAwMAorU3ViamVjdDogW1BBVENIXSBh cm06IFJlbW92ZSB3cm9uZyBsZHIgZnJvbSBfZGxfc3RhcnRfdXNlciAoQlogMzEzMzkpCisKK1Ro ZSBjb21taXQgNDlkODc3YTgwYjI5ZDMwMDI4ODdiMDg0ZWVjNjY3NmQ5ZjVmZWMxOCAoYXJtOiBS ZW1vdmUKK19kbF9za2lwX2FyZ3MgdXNhZ2UpIHJlbW92ZWQgdGhlIF9TS0lQX0FSR1MgbGl0ZXJh bCwgd2hpY2ggd2FzCitwcmV2aW91c2x5IGxvYWRlciB0byByNCBvbiBsb2FkZXIgX3N0YXJ0LiAg SG93ZXZlciwgdGhlIGNsZWFudXAgZGlkIG5vdAorcmVtb3ZlIHRoZSBmb2xsb3dpbmcgJ2xkciBy NCwgW3NsLCByNF0nIG9uIF9kbF9zdGFydF91c2VyLCB1c2VkIHRvIGNoZWNrCit0byBza2lwIHRo ZSBhcmd1bWVudHMgYWZ0ZXIgbGQgc2VsZi1yZWxvY2F0aW9ucy4KKworSW4gbXkgdGVzdGluZywg dGhlIGtlcm5lbCBpbml0aWFsbHkgc2V0IHI0IHRvIDAsIHdoaWNoIG1ha2VzIHRoZQorbGRyIGlu c3RydWN0aW9uIGp1c3QgcmVhZCB0aGUgX0dMT0JBTF9PRkZTRVRfVEFCTEVfLiAgSG93ZXZlciwg c2luY2UgcjQKK2lzIGEgY2FsbGVlLXNhdmVkIHJlZ2lzdGVyOyBhIGRpZmZlcmVudCBydW50aW1l IG1pZ2h0IG5vdCB6ZXJvCitpbml0aWFsaXplIGl0IGFuZCB0aHVzIHRyaWdnZXIgYW4gaW52YWxp ZCBtZW1vcnkgYWNjZXNzLgorCitDaGVja2VkIG9uIGFybS1saW51eC1nbnUuCisKK1JlcG9ydGVk LWJ5OiBBZHJpYW4gUmF0aXUgPGFkcmlhbi5yYXRpdUBjb2xsYWJvcmEuY29tPgorUmV2aWV3ZWQt Ynk6IFN6YWJvbGNzIE5hZ3kgPHN6YWJvbGNzLm5hZ3lAYXJtLmNvbT4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDFlMjUxMTJkYzBjYjI1MTVkMjdkOGQxNzhiMWVjY2U3NzhhOWQzN2EpCist LS0KKyBzeXNkZXBzL2FybS9kbC1tYWNoaW5lLmggfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy9hcm0vZGwtbWFjaGluZS5oIGIvc3lz ZGVwcy9hcm0vZGwtbWFjaGluZS5oCitpbmRleCBiODU3YmJjODY4Li5kZDFhMGY2YjZlIDEwMDY0 NAorLS0tIGEvc3lzZGVwcy9hcm0vZGwtbWFjaGluZS5oCisrKysgYi9zeXNkZXBzL2FybS9kbC1t YWNoaW5lLmgKK0BAIC0xMzksNyArMTM5LDYgQEAgX3N0YXJ0OlxuXAorIF9kbF9zdGFydF91c2Vy OlxuXAorIAlhZHIJcjYsIC5MX0dFVF9HT1RcblwKKyAJYWRkCXNsLCBzbCwgcjZcblwKKy0JbGRy CXI0LCBbc2wsIHI0XVxuXAorIAlAIHNhdmUgdGhlIGVudHJ5IHBvaW50IGluIGFub3RoZXIgcmVn aXN0ZXJcblwKKyAJbW92CXI2LCByMFxuXAorIAlAIGdldCB0aGUgb3JpZ2luYWwgYXJnIGNvdW50 XG5cCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjI0Ni5wYXRj aCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02MjQ2LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBmYjI0NzllMjIxN2YxZS4uMDAwMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTYyNDYucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxNzggKzAsMCBAQAotRnJvbSAyMzUxNGM3MmI3ODBmM2RhMDk3ZWNmMzNhNzkzYjdiYTlj MjA3MGQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJqdW4gU2hhbmthciA8YXJq dW5AcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMTUgSmFuIDIwMjQgMTc6NDQ6NDMgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gc3lzbG9nOiBGaXggaGVhcCBidWZmZXIgb3ZlcmZsb3cgaW4gX192c3lz bG9nX2ludGVybmFsCi0gKENWRS0yMDIzLTYyNDYpCi0KLV9fdnN5c2xvZ19pbnRlcm5hbCBkaWQg bm90IGhhbmRsZSBhIGNhc2Ugd2hlcmUgcHJpbnRpbmcgYSBTWVNMT0dfSEVBREVSCi1jb250YWlu aW5nIGEgbG9uZyBwcm9ncmFtIG5hbWUgZmFpbGVkIHRvIHVwZGF0ZSB0aGUgcmVxdWlyZWQgYnVm ZmVyCi1zaXplLCBsZWFkaW5nIHRvIHRoZSBhbGxvY2F0aW9uIGFuZCBvdmVyZmxvdyBvZiBhIHRv by1zbWFsbCBidWZmZXIgb24KLXRoZSBoZWFwLiAgVGhpcyBjb21taXQgZml4ZXMgdGhhdC4gIEl0 IGFsc28gYWRkcyBhIG5ldyByZWdyZXNzaW9uIHRlc3QKLXRoYXQgdXNlcyBnbGliYy5tYWxsb2Mu Y2hlY2suCi0KLVJldmlld2VkLWJ5OiBBZGhlbWVydmFsIFphbmVsbGEgIDxhZGhlbWVydmFsLnph bmVsbGFAbGluYXJvLm9yZz4KLVJldmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0By ZWRoYXQuY29tPgotVGVzdGVkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0ByZWRoYXQuY29t PgotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNmJkMGU0ZWZjYzc4ZjNjMDExNWU1ZWE5NzM5 YTE2NDI4MDc0NTBkYSkKLS0tLQotIG1pc2MvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA4ICsrLQotIG1pc2Mvc3lzbG9nLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDUwICsrKysrKysrKysrKystLS0tLS0KLSBtaXNjL3RzdC1zeXNsb2ctbG9u Zy1wcm9nbmFtZS5jICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysKLSAuLi4vcG9z dGNsZWFuLnJlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMAotIDQgZmlsZXMgY2hh bmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAw NjQ0IG1pc2MvdHN0LXN5c2xvZy1sb25nLXByb2duYW1lLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQg bWlzYy90c3Qtc3lzbG9nLWxvbmctcHJvZ25hbWUucm9vdC9wb3N0Y2xlYW4ucmVxCi0KLWRpZmYg LS1naXQgYS9taXNjL01ha2VmaWxlIGIvbWlzYy9NYWtlZmlsZQotaW5kZXggZmUwZDQ5YzFkZTUu LjkwYjMxOTUyYzU5IDEwMDY0NAotLS0tIGEvbWlzYy9NYWtlZmlsZQotKysrIGIvbWlzYy9NYWtl ZmlsZQotQEAgLTI4OSw3ICsyODksMTAgQEAgdGVzdHMtc3BlY2lhbCArPSAkKG9ianBmeCl0c3Qt ZXJyb3IxLW1lbS5vdXQgXAotICAgJChvYmpwZngpdHN0LWFsbG9jYXRlX29uY2UtbWVtLm91dAot IGVuZGlmCi0gCi0tdGVzdHMtY29udGFpbmVyIDo9IHRzdC1zeXNsb2cKLSt0ZXN0cy1jb250YWlu ZXIgOj0gXAotKyAgdHN0LXN5c2xvZyBcCi0rICB0c3Qtc3lzbG9nLWxvbmctcHJvZ25hbWUgXAot KyAgIyB0ZXN0cy1jb250YWluZXIKLSAKLSBDRkxBR1Mtc2VsZWN0LmMgKz0gLWZleGNlcHRpb25z IC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMKLSBDRkxBR1MtdHNlYXJjaC5jICs9ICQodXNl cy1jYWxsYmFja3MpCi1AQCAtMzUxLDYgKzM1NCw5IEBAICQob2JqcGZ4KXRzdC1hbGxvY2F0ZV9v bmNlLW1lbS5vdXQ6ICQob2JqcGZ4KXRzdC1hbGxvY2F0ZV9vbmNlLm91dAotIAkkKGNvbW1vbi1v YmpwZngpbWFsbG9jL210cmFjZSAkKG9ianBmeCl0c3QtYWxsb2NhdGVfb25jZS5tdHJhY2UgPiAk QDsgXAotIAkkKGV2YWx1YXRlLXRlc3QpCi0gCi0rdHN0LXN5c2xvZy1sb25nLXByb2duYW1lLUVO ViA9IEdMSUJDX1RVTkFCTEVTPWdsaWJjLm1hbGxvYy5jaGVjaz0zIFwKLSsJCQkgICAgICAgTERf UFJFTE9BRD1saWJjX21hbGxvY19kZWJ1Zy5zby4wCi0rCi0gJChvYmpwZngpdHN0LXNlbGVjdDog JChsaWJydCkKLSAkKG9ianBmeCl0c3Qtc2VsZWN0LXRpbWU2NDogJChsaWJydCkKLSAkKG9ianBm eCl0c3QtcHNlbGVjdDogJChsaWJydCkKLWRpZmYgLS1naXQgYS9taXNjL3N5c2xvZy5jIGIvbWlz Yy9zeXNsb2cuYwotaW5kZXggMWI4Y2I3MjJjNTEuLjgxNGQyMjRhMWU5IDEwMDY0NAotLS0tIGEv bWlzYy9zeXNsb2cuYwotKysrIGIvbWlzYy9zeXNsb2cuYwotQEAgLTEyNCw4ICsxMjQsOSBAQCBf X3ZzeXNsb2dfaW50ZXJuYWwgKGludCBwcmksIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCwK LSB7Ci0gICAvKiBUcnkgdG8gdXNlIGEgc3RhdGljIGJ1ZmZlciBhcyBhbiBvcHRpbWl6YXRpb24u ICAqLwotICAgY2hhciBidWZzWzEwMjRdOwotLSAgY2hhciAqYnVmID0gTlVMTDsKLS0gIHNpemVf dCBidWZzaXplID0gMDsKLSsgIGNoYXIgKmJ1ZiA9IGJ1ZnM7Ci0rICBzaXplX3QgYnVmc2l6ZTsK LSsKLSAgIGludCBtc2dvZmY7Ci0gICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKLSAKLUBAIC0x NzcsMjkgKzE3OCw1MCBAQCBfX3ZzeXNsb2dfaW50ZXJuYWwgKGludCBwcmksIGNvbnN0IGNoYXIg KmZtdCwgdmFfbGlzdCBhcCwKLSAjZGVmaW5lIFNZU0xPR19IRUFERVJfV0lUSE9VVF9UUyhfX3By aSwgX19tc2dvZmYpICAgICAgICBcCi0gICAiPCVkPjogJW4iLCBfX3ByaSwgX19tc2dvZmYKLSAK LS0gIGludCBsOwotKyAgaW50IGwsIHZsOwotICAgaWYgKGhhc190cykKLSAgICAgbCA9IF9fc25w cmludGYgKGJ1ZnMsIHNpemVvZiBidWZzLAotIAkJICAgIFNZU0xPR19IRUFERVIgKHByaSwgdGlt ZXN0YW1wLCAmbXNnb2ZmLCBwaWQpKTsKLSAgIGVsc2UKLSAgICAgbCA9IF9fc25wcmludGYgKGJ1 ZnMsIHNpemVvZiBidWZzLAotIAkJICAgIFNZU0xPR19IRUFERVJfV0lUSE9VVF9UUyAocHJpLCAm bXNnb2ZmKSk7Ci0rCi0rICBjaGFyICpwb3M7Ci0rICBzaXplX3QgbGVuOwotKwotICAgaWYgKDAg PD0gbCAmJiBsIDwgc2l6ZW9mIGJ1ZnMpCi0gICAgIHsKLS0gICAgICB2YV9saXN0IGFwYzsKLS0g ICAgICB2YV9jb3B5IChhcGMsIGFwKTsKLSsgICAgICAvKiBBdCB0aGlzIHBvaW50LCB0aGVyZSBp cyBzdGlsbCBhIGNoYW5jZSB0aGF0IHdlIGNhbiBwcmludCB0aGUKLSsgICAgICAgICByZW1haW5p bmcgcGFydCBvZiB0aGUgbG9nIGludG8gYnVmcyBhbmQgdXNlIHRoYXQuICAqLwotKyAgICAgIHBv cyA9IGJ1ZnMgKyBsOwotKyAgICAgIGxlbiA9IHNpemVvZiAoYnVmcykgLSBsOwotKyAgICB9Ci0r ICBlbHNlCi0rICAgIHsKLSsgICAgICBidWYgPSBOVUxMOwotKyAgICAgIC8qIFdlIGFscmVhZHkg a25vdyB0aGF0IGJ1ZnMgaXMgdG9vIHNtYWxsIHRvIHVzZSBmb3IgdGhpcyBsb2cgbWVzc2FnZS4K LSsgICAgICAgICBUaGUgbmV4dCB2c25wcmludGYgaW50byBidWZzIGlzIHVzZWQgb25seSB0byBj YWxjdWxhdGUgdGhlIHRvdGFsCi0rICAgICAgICAgcmVxdWlyZWQgYnVmZmVyIGxlbmd0aC4gIFdl IHdpbGwgZGlzY2FyZCBidWZzIGNvbnRlbnRzIGFuZCBhbGxvY2F0ZQotKyAgICAgICAgIGFuIGFw cHJvcHJpYXRlbHkgc2l6ZWQgYnVmZmVyIGxhdGVyIGluc3RlYWQuICAqLwotKyAgICAgIHBvcyA9 IGJ1ZnM7Ci0rICAgICAgbGVuID0gc2l6ZW9mIChidWZzKTsKLSsgICAgfQotIAotLSAgICAgIC8q IFJlc3RvcmUgZXJybm8gZm9yICVtIGZvcm1hdC4gICovCi0tICAgICAgX19zZXRfZXJybm8gKHNh dmVkX2Vycm5vKTsKLSsgIHsKLSsgICAgdmFfbGlzdCBhcGM7Ci0rICAgIHZhX2NvcHkgKGFwYywg YXApOwotIAotLSAgICAgIGludCB2bCA9IF9fdnNucHJpbnRmX2ludGVybmFsIChidWZzICsgbCwg c2l6ZW9mIGJ1ZnMgLSBsLCBmbXQsIGFwYywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbW9kZV9mbGFncyk7Ci0tICAgICAgaWYgKDAgPD0gdmwgJiYgdmwgPCBzaXplb2Yg YnVmcyAtIGwpCi0tICAgICAgICBidWYgPSBidWZzOwotLSAgICAgIGJ1ZnNpemUgPSBsICsgdmw7 Ci0rICAgIC8qIFJlc3RvcmUgZXJybm8gZm9yICVtIGZvcm1hdC4gICovCi0rICAgIF9fc2V0X2Vy cm5vIChzYXZlZF9lcnJubyk7Ci0gCi0tICAgICAgdmFfZW5kIChhcGMpOwotLSAgICB9Ci0rICAg IHZsID0gX192c25wcmludGZfaW50ZXJuYWwgKHBvcywgbGVuLCBmbXQsIGFwYywgbW9kZV9mbGFn cyk7Ci0rCi0rICAgIGlmICghKDAgPD0gdmwgJiYgdmwgPCBsZW4pKQotKyAgICAgIGJ1ZiA9IE5V TEw7Ci0rCi0rICAgIGJ1ZnNpemUgPSBsICsgdmw7Ci0rICAgIHZhX2VuZCAoYXBjKTsKLSsgIH0K LSAKLSAgIGlmIChidWYgPT0gTlVMTCkKLSAgICAgewotZGlmZiAtLWdpdCBhL21pc2MvdHN0LXN5 c2xvZy1sb25nLXByb2duYW1lLmMgYi9taXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5jCi1u ZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAuLjg4ZjM3YThhMDA0Ci0tLS0g L2Rldi9udWxsCi0rKysgYi9taXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5jCi1AQCAtMCww ICsxLDM5IEBACi0rLyogVGVzdCBoZWFwIGJ1ZmZlciBvdmVyZmxvdyBpbiBzeXNsb2cgd2l0aCBs b25nIF9fcHJvZ25hbWUgKENWRS0yMDIzLTYyNDYpCi0rICAgQ29weXJpZ2h0IChDKSAyMDIzIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgotKwotKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgICBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgICB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KLSsKLSsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsg ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKLSsgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCi0rICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2lu Y2x1ZGUgPHN5c2xvZy5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsKLStleHRlcm4gY2hhciAq IF9fcHJvZ25hbWU7Ci0rCi0rc3RhdGljIGludAotK2RvX3Rlc3QgKHZvaWQpCi0rewotKyAgY2hh ciBsb25nX3Byb2duYW1lWzIwNDhdOwotKwotKyAgbWVtc2V0IChsb25nX3Byb2duYW1lLCAnWCcs IHNpemVvZiAobG9uZ19wcm9nbmFtZSkgLSAxKTsKLSsgIGxvbmdfcHJvZ25hbWVbc2l6ZW9mIChs b25nX3Byb2duYW1lKSAtIDFdID0gJ1wwJzsKLSsKLSsgIF9fcHJvZ25hbWUgPSBsb25nX3Byb2du YW1lOwotKwotKyAgc3lzbG9nIChMT0dfSU5GTywgIkhlbGxvLCBXb3JsZCEiKTsKLSsKLSsgIHJl dHVybiAwOwotK30KLSsKLSsjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgotZGlmZiAt LWdpdCBhL21pc2MvdHN0LXN5c2xvZy1sb25nLXByb2duYW1lLnJvb3QvcG9zdGNsZWFuLnJlcSBi L21pc2MvdHN0LXN5c2xvZy1sb25nLXByb2duYW1lLnJvb3QvcG9zdGNsZWFuLnJlcQotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTY3NzkucGF0Y2ggYi9zcmNwa2dzL2ds aWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjc3OS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNWFjYzllMzc1MTAzMmEuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ2xpYmMv cGF0Y2hlcy9DVkUtMjAyMy02Nzc5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAg QEAKLUZyb20gZDAzMzgzMTJhYWNlNWJiZmVmODVlMDMwNTVlMTIxMmRkMGU0OTU3OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyanVuIFNoYW5rYXIgPGFyanVuQHJlZGhhdC5jb20+ Ci1EYXRlOiBNb24sIDE1IEphbiAyMDI0IDE3OjQ0OjQ0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hd IHN5c2xvZzogRml4IGhlYXAgYnVmZmVyIG92ZXJmbG93IGluIF9fdnN5c2xvZ19pbnRlcm5hbAot IChDVkUtMjAyMy02Nzc5KQotCi1fX3ZzeXNsb2dfaW50ZXJuYWwgdXNlZCB0aGUgcmV0dXJuIHZh bHVlIG9mIHNucHJpbnRmL3ZzbnByaW50ZiB0bwotY2FsY3VsYXRlIGJ1ZmZlciBzaXplcyBmb3Ig bWVtb3J5IGFsbG9jYXRpb24uICBJZiB0aGVzZSBmdW5jdGlvbnMgKGZvcgotYW55IHJlYXNvbikg ZmFpbGVkIGFuZCByZXR1cm5lZCAtMSwgdGhlIHJlc3VsdGluZyBidWZmZXIgd291bGQgYmUgdG9v Ci1zbWFsbCB0byBob2xkIG91dHB1dC4gIFRoaXMgY29tbWl0IGZpeGVzIHRoYXQuCi0KLUFsbCBz bnByaW50Zi92c25wcmludGYgY2FsbHMgYXJlIGNoZWNrZWQgZm9yIG5lZ2F0aXZlIHJldHVybiB2 YWx1ZXMgYW5kCi10aGUgZnVuY3Rpb24gc2lsZW50bHkgcmV0dXJucyB1cG9uIGVuY291bnRlcmlu ZyB0aGVtLgotCi1SZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNv bT4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDdlNWEwYzI4NmRhMzMxNTlkNDdkMDEyMjAw N2FhYzAxNmYzZTAyY2QpCi0tLS0KLSBtaXNjL3N5c2xvZy5jIHwgMzkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21pc2Mv c3lzbG9nLmMKLWluZGV4IDgxNGQyMjRhMWUuLjUzNDQwZTQ3YWQgMTAwNjQ0Ci0tLS0gYS9taXNj L3N5c2xvZy5jCi0rKysgYi9taXNjL3N5c2xvZy5jCi1AQCAtMTg1LDExICsxODUsMTMgQEAgX192 c3lzbG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXAsCi0g ICBlbHNlCi0gICAgIGwgPSBfX3NucHJpbnRmIChidWZzLCBzaXplb2YgYnVmcywKLSAJCSAgICBT WVNMT0dfSEVBREVSX1dJVEhPVVRfVFMgKHByaSwgJm1zZ29mZikpOwotKyAgaWYgKGwgPCAwKQot KyAgICBnb3RvIG91dDsKLSAKLSAgIGNoYXIgKnBvczsKLSAgIHNpemVfdCBsZW47Ci0gCi0tICBp ZiAoMCA8PSBsICYmIGwgPCBzaXplb2YgYnVmcykKLSsgIGlmIChsIDwgc2l6ZW9mIGJ1ZnMpCi0g ICAgIHsKLSAgICAgICAvKiBBdCB0aGlzIHBvaW50LCB0aGVyZSBpcyBzdGlsbCBhIGNoYW5jZSB0 aGF0IHdlIGNhbiBwcmludCB0aGUKLSAgICAgICAgICByZW1haW5pbmcgcGFydCBvZiB0aGUgbG9n IGludG8gYnVmcyBhbmQgdXNlIHRoYXQuICAqLwotQEAgLTIxNSwxMiArMjE3LDE1IEBAIF9fdnN5 c2xvZ19pbnRlcm5hbCAoaW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAotICAg ICBfX3NldF9lcnJubyAoc2F2ZWRfZXJybm8pOwotIAotICAgICB2bCA9IF9fdnNucHJpbnRmX2lu dGVybmFsIChwb3MsIGxlbiwgZm10LCBhcGMsIG1vZGVfZmxhZ3MpOwotKyAgICB2YV9lbmQgKGFw Yyk7Ci0rCi0rICAgIGlmICh2bCA8IDApCi0rICAgICAgZ290byBvdXQ7Ci0gCi0tICAgIGlmICgh KDAgPD0gdmwgJiYgdmwgPCBsZW4pKQotKyAgICBpZiAodmwgPj0gbGVuKQotICAgICAgIGJ1ZiA9 IE5VTEw7Ci0gCi0gICAgIGJ1ZnNpemUgPSBsICsgdmw7Ci0tICAgIHZhX2VuZCAoYXBjKTsKLSAg IH0KLSAKLSAgIGlmIChidWYgPT0gTlVMTCkKLUBAIC0yMzEsMjUgKzIzNiwzNyBAQCBfX3ZzeXNs b2dfaW50ZXJuYWwgKGludCBwcmksIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCwKLSAJICAv KiBUZWxsIHRoZSBjYW5jZWxsYXRpb24gaGFuZGxlciB0byBmcmVlIHRoaXMgYnVmZmVyLiAgKi8K LSAJICBjbGFyZy5idWYgPSBidWY7Ci0gCi0rCSAgaW50IGNsOwotIAkgIGlmIChoYXNfdHMpCi0t CSAgICBfX3NucHJpbnRmIChidWYsIGwgKyAxLAotLQkJCVNZU0xPR19IRUFERVIgKHByaSwgdGlt ZXN0YW1wLCAmbXNnb2ZmLCBwaWQpKTsKLSsJICAgIGNsID0gX19zbnByaW50ZiAoYnVmLCBsICsg MSwKLSsJCQkgICAgIFNZU0xPR19IRUFERVIgKHByaSwgdGltZXN0YW1wLCAmbXNnb2ZmLCBwaWQp KTsKLSAJICBlbHNlCi0tCSAgICBfX3NucHJpbnRmIChidWYsIGwgKyAxLAotLQkJCVNZU0xPR19I RUFERVJfV0lUSE9VVF9UUyAocHJpLCAmbXNnb2ZmKSk7Ci0rCSAgICBjbCA9IF9fc25wcmludGYg KGJ1ZiwgbCArIDEsCi0rCQkJICAgICBTWVNMT0dfSEVBREVSX1dJVEhPVVRfVFMgKHByaSwgJm1z Z29mZikpOwotKwkgIGlmIChjbCAhPSBsKQotKwkgICAgZ290byBvdXQ7Ci0gCi0gCSAgdmFfbGlz dCBhcGM7Ci0gCSAgdmFfY29weSAoYXBjLCBhcCk7Ci0tCSAgX192c25wcmludGZfaW50ZXJuYWwg KGJ1ZiArIGwsIGJ1ZnNpemUgLSBsICsgMSwgZm10LCBhcGMsCi0tCQkJCW1vZGVfZmxhZ3MpOwot KwkgIGNsID0gX192c25wcmludGZfaW50ZXJuYWwgKGJ1ZiArIGwsIGJ1ZnNpemUgLSBsICsgMSwg Zm10LCBhcGMsCi0rCQkJCSAgICAgbW9kZV9mbGFncyk7Ci0gCSAgdmFfZW5kIChhcGMpOwotKwot KwkgIGlmIChjbCAhPSB2bCkKLSsJICAgIGdvdG8gb3V0OwotIAl9Ci0gICAgICAgZWxzZQotICAg ICAgICAgewotKyAgICAgICAgICBpbnQgYmw7Ci0gCSAgLyogTm90aGluZyBtdWNoIHRvIGRvIGJ1 dCBlbWl0IGFuIGVycm9yIG1lc3NhZ2UuICAqLwotLSAgICAgICAgICBidWZzaXplID0gX19zbnBy aW50ZiAoYnVmcywgc2l6ZW9mIGJ1ZnMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAib3V0IG9mIG1lbW9yeVslZF0iLCBfX2dldHBpZCAoKSk7Ci0rICAgICAgICAgIGJsID0gX19z bnByaW50ZiAoYnVmcywgc2l6ZW9mIGJ1ZnMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg Im91dCBvZiBtZW1vcnlbJWRdIiwgX19nZXRwaWQgKCkpOwotKyAgICAgICAgICBpZiAoYmwgPCAw IHx8IGJsID49IHNpemVvZiBidWZzKQotKyAgICAgICAgICAgIGdvdG8gb3V0OwotKwotKyAgICAg ICAgICBidWZzaXplID0gYmw7Ci0gICAgICAgICAgIGJ1ZiA9IGJ1ZnM7Ci0rICAgICAgICAgIG1z Z29mZiA9IDA7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xp YmMvcGF0Y2hlcy9DVkUtMjAyMy02NzgwLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzL0NW RS0yMDIzLTY3ODAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2Njk0ZTU1 NDk5MDA1Li4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIw MjMtNjc4MC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLUZyb20gZDM3YzJi MjBhNDc4NzQ2M2QxOTJiMzIwNDFjMzQwNmMyYmQ5MWRlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IEFyanVuIFNoYW5rYXIgPGFyanVuQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDE1 IEphbiAyMDI0IDE3OjQ0OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHN5c2xvZzogRml4IGlu dGVnZXIgb3ZlcmZsb3cgaW4gX192c3lzbG9nX2ludGVybmFsCi0gKENWRS0yMDIzLTY3ODApCi0K LV9fdnN5c2xvZ19pbnRlcm5hbCBjYWxjdWxhdGVkIGEgYnVmZmVyIHNpemUgYnkgYWRkaW5nIHR3 byBpbnRlZ2VycywgYnV0Ci1kaWQgbm90IGZpcnN0IGNoZWNrIGlmIHRoZSBhZGRpdGlvbiB3b3Vs ZCBvdmVyZmxvdy4gIFRoaXMgY29tbWl0IGZpeGVzCi10aGF0LgotCi1SZXZpZXdlZC1ieTogQ2Fy bG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KLVRlc3RlZC1ieTogQ2FybG9zIE8nRG9u ZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGRkZjU0 MmRhOTRjYWY5N2ZmNDNjYzI4NzVjODg3NDk4ODBiNzI1OWIpCi0tLS0KLSBtaXNjL3N5c2xvZy5j IHwgMyArKy0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Ci0KLWRpZmYgLS1naXQgYS9taXNjL3N5c2xvZy5jIGIvbWlzYy9zeXNsb2cuYwotaW5kZXggNTM0 NDBlNDdhZC4uNGFmODdmNTRmZCAxMDA2NDQKLS0tLSBhL21pc2Mvc3lzbG9nLmMKLSsrKyBiL21p c2Mvc3lzbG9nLmMKLUBAIC00MSw2ICs0MSw3IEBAIHN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAo IylzeXNsb2cuYwk4LjQgKEJlcmtlbGV5KSAzLzE4Lzk0IjsKLSAjaW5jbHVkZSA8c3lzL3Vpby5o PgotICNpbmNsdWRlIDxzeXMvdW4uaD4KLSAjaW5jbHVkZSA8c3lzbG9nLmg+Ci0rI2luY2x1ZGUg PGxpbWl0cy5oPgotIAotIHN0YXRpYyBpbnQgTG9nVHlwZSA9IFNPQ0tfREdSQU07CS8qIHR5cGUg b2Ygc29ja2V0IGNvbm5lY3Rpb24gKi8KLSBzdGF0aWMgaW50IExvZ0ZpbGUgPSAtMTsJCS8qIGZk IGZvciBsb2cgKi8KLUBAIC0yMTksNyArMjIwLDcgQEAgX192c3lzbG9nX2ludGVybmFsIChpbnQg cHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXAsCi0gICAgIHZsID0gX192c25wcmludGZf aW50ZXJuYWwgKHBvcywgbGVuLCBmbXQsIGFwYywgbW9kZV9mbGFncyk7Ci0gICAgIHZhX2VuZCAo YXBjKTsKLSAKLS0gICAgaWYgKHZsIDwgMCkKLSsgICAgaWYgKHZsIDwgMCB8fCB2bCA+PSBJTlRf TUFYIC0gbCkKLSAgICAgICBnb3RvIG91dDsKLSAKLSAgICAgaWYgKHZsID49IGxlbikKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9iMjU1MDhkZDc3NGI2MTdmOTk0MTliZGMzY2Yy YWNlNDU2MGNkMmQ2LnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzL2IyNTUwOGRkNzc0YjYx N2Y5OTQxOWJkYzNjZjJhY2U0NTYwY2QyZDYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAzOWQ3ZTlmMDRiYTVmLi4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsaWJj L3BhdGNoZXMvYjI1NTA4ZGQ3NzRiNjE3Zjk5NDE5YmRjM2NmMmFjZTQ1NjBjZDJkNi5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDE5MiArMCwwIEBACi1Gcm9tIGIyNTUwOGRkNzc0YjYxN2Y5OTQx OWJkYzNjZjJhY2U0NTYwY2QyZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBGbG9y aWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgotRGF0ZTogV2VkLCAxMyBTZXAgMjAyMyAx NDoxMDo1NiArMDIwMAotU3ViamVjdDogW1BBVENIXSBDVkUtMjAyMy00NTI3OiBTdGFjayByZWFk IG92ZXJmbG93IHdpdGggbGFyZ2UgVENQIHJlc3BvbnNlcwotIGluIG5vLWFhYWEgbW9kZQotCi1X aXRob3V0IHBhc3NpbmcgYWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBfX3Jlc19jb250ZXh0X3NlYXJj aCBjYW4gb25seQotc3RvcmUgMjA0OCBieXRlcyAod2hhdCBmaXRzIGludG8gZG5zX3BhY2tldF9i dWZmZXIpLiAgSG93ZXZlciwKLXRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSB0b3RhbCBwYWNrZXQg c2l6ZSwgYW5kIHRoZSBzdWJzZXF1ZW50Ci1ETlMgcGFyc2luZyBjb2RlIGluIF9uc3NfZG5zX2dl dGhvc3RieW5hbWU0X3IgcmVhZHMgYmV5b25kIHRoZSBlbmQKLW9mIHRoZSBzdGFjay1hbGxvY2F0 ZWQgYnVmZmVyLgotCi1GaXhlcyBjb21taXQgZjI4MmNkYmU3ZjQzNmM3NTg2NGU1NjQwYTQgKCJy ZXNvbHY6IEltcGxlbWVudCBuby1hYWFhCi1zdHViIHJlc29sdmVyIG9wdGlvbiIpIGFuZCBidWcg MzA4NDIuCi0KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGJkNzdkZDdlNzNlMzUzMDIwM2Jl MWM1MmM4YTI5ZDA4MjcwY2IyNWQpCi0tLS0KLSBORVdTICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgOSArKysKLSByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAgMiArCi0gcmVz b2x2L25zc19kbnMvZG5zLWhvc3QuYyAgICAgfCAgIDIgKy0KLSByZXNvbHYvdHN0LXJlc29sdi1u b2FhYWEtdmMuYyB8IDEyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gNCBm aWxlcyBjaGFuZ2VkLCAxNDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotIGNyZWF0ZSBt b2RlIDEwMDY0NCByZXNvbHYvdHN0LXJlc29sdi1ub2FhYWEtdmMuYwotCi1kaWZmIC0tZ2l0IGEv cmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCi1pbmRleCAwNTRiMWZhMzZjLi4yZjk5 ZWIzODYyIDEwMDY0NAotLS0tIGEvcmVzb2x2L01ha2VmaWxlCi0rKysgYi9yZXNvbHYvTWFrZWZp bGUKLUBAIC0xMDIsNiArMTAyLDcgQEAgdGVzdHMgKz0gXAotICAgdHN0LXJlc29sdi1pbnZhbGlk LWNuYW1lIFwKLSAgIHRzdC1yZXNvbHYtbmV0d29yayBcCi0gICB0c3QtcmVzb2x2LW5vYWFhYSBc Ci0rICB0c3QtcmVzb2x2LW5vYWFhYS12YyBcCi0gICB0c3QtcmVzb2x2LW5vbmRlY2ltYWwgXAot ICAgdHN0LXJlc29sdi1yZXNfaW5pdC1tdWx0aSBcCi0gICB0c3QtcmVzb2x2LXNlYXJjaCBcCi1A QCAtMjkzLDYgKzI5NCw3IEBAICQob2JqcGZ4KXRzdC1yZXNvbHYtcmVzX2luaXQtdGhyZWFkOiAk KG9ianBmeClsaWJyZXNvbHYuc28gXAotICQob2JqcGZ4KXRzdC1yZXNvbHYtaW52YWxpZC1jbmFt ZTogJChvYmpwZngpbGlicmVzb2x2LnNvIFwKLSAgICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQot ICQob2JqcGZ4KXRzdC1yZXNvbHYtbm9hYWFhOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFy ZWQtdGhyZWFkLWxpYnJhcnkpCi0rJChvYmpwZngpdHN0LXJlc29sdi1ub2FhYWEtdmM6ICQob2Jq cGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKLSAkKG9ianBmeCl0c3Qt cmVzb2x2LW5vbmRlY2ltYWw6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQt bGlicmFyeSkKLSAkKG9ianBmeCl0c3QtcmVzb2x2LXF0eXBlczogJChvYmpwZngpbGlicmVzb2x2 LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQotICQob2JqcGZ4KXRzdC1yZXNvbHYtcm90YXRl OiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCi1kaWZmIC0t Z2l0IGEvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyBiL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0 LmMKLWluZGV4IDFkNjBjNTFmNWUuLjVkMGFiMzBkZTYgMTAwNjQ0Ci0tLS0gYS9yZXNvbHYvbnNz X2Rucy9kbnMtaG9zdC5jCi0rKysgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCi1AQCAtNDI3 LDcgKzQyNyw3IEBAIF9uc3NfZG5zX2dldGhvc3RieW5hbWU0X3IgKGNvbnN0IGNoYXIgKm5hbWUs IHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwKLSAgICAgewotICAgICAgIG4gPSBfX3Jlc19j b250ZXh0X3NlYXJjaCAoY3R4LCBuYW1lLCBDX0lOLCBUX0EsCi0gCQkJCWRuc19wYWNrZXRfYnVm ZmVyLCBzaXplb2YgKGRuc19wYWNrZXRfYnVmZmVyKSwKLS0JCQkJTlVMTCwgTlVMTCwgTlVMTCwg TlVMTCwgTlVMTCk7Ci0rCQkJCSZhbHRfZG5zX3BhY2tldF9idWZmZXIsIE5VTEwsIE5VTEwsIE5V TEwsIE5VTEwpOwotICAgICAgIGlmIChuID49IDApCi0gCXN0YXR1cyA9IGdhaWhfZ2V0YW5zd2Vy X25vYWFhYSAoYWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBuLAotIAkJCQkJJmFidWYsIHBhdCwgZXJy bm9wLCBoZXJybm9wLCB0dGxwKTsKLWRpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29sdi1ub2Fh YWEtdmMuYyBiL3Jlc29sdi90c3QtcmVzb2x2LW5vYWFhYS12Yy5jCi1uZXcgZmlsZSBtb2RlIDEw MDY0NAotaW5kZXggMDAwMDAwMDAwMC4uOWY1YWViZDk5ZgotLS0tIC9kZXYvbnVsbAotKysrIGIv cmVzb2x2L3RzdC1yZXNvbHYtbm9hYWFhLXZjLmMKLUBAIC0wLDAgKzEsMTI5IEBACi0rLyogVGVz dCB0aGUgUkVTX05PQUFBQSByZXNvbHZlciBvcHRpb24gd2l0aCBhIGxhcmdlIHJlc3BvbnNlLgot KyAgIENvcHlyaWdodCAoQykgMjAyMi0yMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgotKwotKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgotKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKLSsgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgICBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCi0rICAgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUg PG5ldGRiLmg+Ci0rI2luY2x1ZGUgPHJlc29sdi5oPgotKyNpbmNsdWRlIDxzdGRib29sLmg+Ci0r I2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+Ci0rI2luY2x1 ZGUgPHN1cHBvcnQvY2hlY2tfbnNzLmg+Ci0rI2luY2x1ZGUgPHN1cHBvcnQvcmVzb2x2X3Rlc3Qu aD4KLSsjaW5jbHVkZSA8c3VwcG9ydC9zdXBwb3J0Lmg+Ci0rI2luY2x1ZGUgPHN1cHBvcnQveG1l bXN0cmVhbS5oPgotKwotKy8qIFVzZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgbnVtYmVyIG9mIHF1 ZXJpZXMuICAqLwotK3N0YXRpYyB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgcXVlcmllczsKLSsKLSsv KiBJZiB0cnVlLCBhZGQgYSBsYXJnZSBUWFQgcmVjb3JkIGF0IHRoZSBzdGFydCBvZiB0aGUgYW5z d2VyIHNlY3Rpb24uICAqLwotK3N0YXRpYyB2b2xhdGlsZSBib29sIHN0dWZmX3R4dDsKLSsKLStz dGF0aWMgdm9pZAotK3Jlc3BvbnNlIChjb25zdCBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2NvbnRl eHQgKmN0eCwKLSsgICAgICAgICAgc3RydWN0IHJlc29sdl9yZXNwb25zZV9idWlsZGVyICpiLAot KyAgICAgICAgICBjb25zdCBjaGFyICpxbmFtZSwgdWludDE2X3QgcWNsYXNzLCB1aW50MTZfdCBx dHlwZSkKLSt7Ci0rICAvKiBJZiBub3QgdXNpbmcgVENQLCBqdXN0IGZvcmNlIGl0cyB1c2UuICAq LwotKyAgaWYgKCFjdHgtPnRjcCkKLSsgICAgewotKyAgICAgIHN0cnVjdCByZXNvbHZfcmVzcG9u c2VfZmxhZ3MgZmxhZ3MgPSB7LnRjID0gdHJ1ZX07Ci0rICAgICAgcmVzb2x2X3Jlc3BvbnNlX2lu aXQgKGIsIGZsYWdzKTsKLSsgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX3F1ZXN0aW9uIChiLCBx bmFtZSwgcWNsYXNzLCBxdHlwZSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAvKiBU aGUgdGVzdCBuZWVkcyB0byBzZW5kIGZvdXIgcXVlcmllcywgdGhlIGZpcnN0IHRocmVlIGFyZSB1 c2VkIHRvCi0rICAgICBncm93IHRoZSBOU1MgYnVmZmVyIHZpYSB0aGUgRVJBTkdFIGhhbmRzaGFr ZS4gICovCi0rICArK3F1ZXJpZXM7Ci0rICBURVNUX1ZFUklGWSAocXVlcmllcyA8PSA0KTsKLSsK LSsgIC8qIEFBQUEgcXVlcmllcyBhcmUgc3VwcG9zZWQgdG8gYmUgZGlzYWJsZWQuICAqLwotKyAg VEVTVF9DT01QQVJFIChxdHlwZSwgVF9BKTsKLSsgIFRFU1RfQ09NUEFSRSAocWNsYXNzLCBDX0lO KTsKLSsgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKHFuYW1lLCAiZXhhbXBsZS5jb20iKTsKLSsKLSsg IHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfZmxhZ3MgZmxhZ3MgPSB7fTsKLSsgIHJlc29sdl9yZXNw b25zZV9pbml0IChiLCBmbGFncyk7Ci0rICByZXNvbHZfcmVzcG9uc2VfYWRkX3F1ZXN0aW9uIChi LCBxbmFtZSwgcWNsYXNzLCBxdHlwZSk7Ci0rCi0rICByZXNvbHZfcmVzcG9uc2Vfc2VjdGlvbiAo YiwgbnNfc19hbik7Ci0rCi0rICBpZiAoc3R1ZmZfdHh0KQotKyAgICB7Ci0rICAgICAgcmVzb2x2 X3Jlc3BvbnNlX29wZW5fcmVjb3JkIChiLCBxbmFtZSwgcWNsYXNzLCBUX1RYVCwgNjApOwotKyAg ICAgIGludCB6ZXJvID0gMDsKLSsgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAxNTAwMDsgKytp KQotKyAgICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChiLCAmemVybywgc2l6ZW9mICh6 ZXJvKSk7Ci0rICAgICAgcmVzb2x2X3Jlc3BvbnNlX2Nsb3NlX3JlY29yZCAoYik7Ci0rICAgIH0K LSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgMjAwOyArK2kpCi0rICAgIHsKLSsgICAgICByZXNv bHZfcmVzcG9uc2Vfb3Blbl9yZWNvcmQgKGIsIHFuYW1lLCBxY2xhc3MsIHF0eXBlLCA2MCk7Ci0r ICAgICAgY2hhciBpcHY0WzRdID0gezE5MiwgMCwgMiwgaSArIDF9OwotKyAgICAgIHJlc29sdl9y ZXNwb25zZV9hZGRfZGF0YSAoYiwgJmlwdjQsIHNpemVvZiAoaXB2NCkpOwotKyAgICAgIHJlc29s dl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyBpbnQK LStkb190ZXN0ICh2b2lkKQotK3sKLSsgIHN0cnVjdCByZXNvbHZfdGVzdCAqb2JqID0gcmVzb2x2 X3Rlc3Rfc3RhcnQKLSsgICAgKChzdHJ1Y3QgcmVzb2x2X3JlZGlyZWN0X2NvbmZpZykKLSsgICAg IHsKLSsgICAgICAgLnJlc3BvbnNlX2NhbGxiYWNrID0gcmVzcG9uc2UKLSsgICAgIH0pOwotKwot KyAgX3Jlcy5vcHRpb25zIHw9IFJFU19OT0FBQUE7Ci0rCi0rICBmb3IgKGludCBkb19zdHVmZl90 eHQgPSAwOyBkb19zdHVmZl90eHQgPCAyOyArK2RvX3N0dWZmX3R4dCkKLSsgICAgewotKyAgICAg IHF1ZXJpZXMgPSAwOwotKyAgICAgIHN0dWZmX3R4dCA9IGRvX3N0dWZmX3R4dDsKLSsKLSsgICAg ICBzdHJ1Y3QgYWRkcmluZm8gKmFpID0gTlVMTDsKLSsgICAgICBpbnQgcmV0OwotKyAgICAgIHJl dCA9IGdldGFkZHJpbmZvICgiZXhhbXBsZS5jb20iLCAiODAiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAmKHN0cnVjdCBhZGRyaW5mbykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgIC5haV9mYW1pbHkgPSBBRl9VTlNQRUMsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU0sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgIH0sICZhaSk7Ci0rCi0rICAgICAgY2hhciAqZXhwZWN0ZWRf cmVzdWx0OwotKyAgICAgIHsKLSsgICAgICAgIHN0cnVjdCB4bWVtc3RyZWFtIG1lbTsKLSsgICAg ICAgIHhvcGVuX21lbXN0cmVhbSAoJm1lbSk7Ci0rICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IDIwMDsgKytpKQotKyAgICAgICAgICBmcHJpbnRmIChtZW0ub3V0LCAiYWRkcmVzczogU1RSRUFN L1RDUCAxOTIuMC4yLiVkIDgwXG4iLCBpICsgMSk7Ci0rICAgICAgICB4ZmNsb3NlX21lbXN0cmVh bSAoJm1lbSk7Ci0rICAgICAgICBleHBlY3RlZF9yZXN1bHQgPSBtZW0uYnVmZmVyOwotKyAgICAg IH0KLSsKLSsgICAgICBjaGVja19hZGRyaW5mbyAoImV4YW1wbGUuY29tIiwgYWksIHJldCwgZXhw ZWN0ZWRfcmVzdWx0KTsKLSsKLSsgICAgICBmcmVlIChleHBlY3RlZF9yZXN1bHQpOwotKyAgICAg IGZyZWVhZGRyaW5mbyAoYWkpOwotKyAgICB9Ci0rCi0rICByZXNvbHZfdGVzdF9lbmQgKG9iaik7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0rI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9jb21taXR0ZWQtMS0yLVByb3BhZ2F0 ZS1HTElCQ19UVU5BQkxFUy1pbi1zZXR4aWQtYmluYXJpZXMucGF0Y2ggYi9zcmNwa2dzL2dsaWJj L3BhdGNoZXMvY29tbWl0dGVkLTEtMi1Qcm9wYWdhdGUtR0xJQkNfVFVOQUJMRVMtaW4tc2V0eGlk LWJpbmFyaWVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWRjYmQwMzAw OWJhMS4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL2NvbW1pdHRl ZC0xLTItUHJvcGFnYXRlLUdMSUJDX1RVTkFCTEVTLWluLXNldHhpZC1iaW5hcmllcy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDE5OCArMCwwIEBACi1Gcm9tIDBkNWY5ZWE5N2YxYjM5ZjJhODU1 NzU2MDc4NzcxNjczYTY4NDk3ZTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTaWRk aGVzaCBQb3lhcmVrYXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgotRGF0ZTogVHVlLCAxOSBT ZXAgMjAyMyAxMzoyNTo0MCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBQcm9wYWdhdGUgR0xJQkNf VFVOQUJMRVMgaW4gc2V0eGlkIGJpbmFyaWVzCi0KLUdMSUJDX1RVTkFCTEVTIHNjcnViYmluZyBo YXBwZW5zIGVhcmxpZXIgdGhhbiBlbnZ2YXIgc2NydWJiaW5nIGFuZCBzb21lCi10dW5hYmxlcyBh cmUgcmVxdWlyZWQgdG8gcHJvcGFnYXRlIHBhc3Qgc2V0eGlkIGJvdW5kYXJ5LCBsaWtlIHRoZWly Ci1lbnZfYWxpYXMuICBSZWx5IG9uIHR1bmFibGUgc2NydWJiaW5nIHRvIGNsZWFuIG91dCBHTElC Q19UVU5BQkxFUyBsaWtlCi1iZWZvcmUsIHJlc3RvcmluZyBiZWhhdmlvdXIgaW4gZ2xpYmMgMi4z NyBhbmQgZWFybGllci4KLQotU2lnbmVkLW9mZi1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRk aGVzaEBzb3VyY2V3YXJlLm9yZz4KLVJldmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxv c0ByZWRoYXQuY29tPgotLS0tCi0gc3lzZGVwcy9nZW5lcmljL3Vuc2VjdmFycy5oIHwgMSAtCi0g MSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3N5c2RlcHMvZ2Vu ZXJpYy91bnNlY3ZhcnMuaCBiL3N5c2RlcHMvZ2VuZXJpYy91bnNlY3ZhcnMuaAotaW5kZXggODEz OTdmYjkwYi4uODI3OGM1MGE4NCAxMDA2NDQKLS0tLSBhL3N5c2RlcHMvZ2VuZXJpYy91bnNlY3Zh cnMuaAotKysrIGIvc3lzZGVwcy9nZW5lcmljL3Vuc2VjdmFycy5oCi1AQCAtNCw3ICs0LDYgQEAK LSAjZGVmaW5lIFVOU0VDVVJFX0VOVlZBUlMgXAotICAgIkdDT05WX1BBVEhcMCIJCQkJCQkJICAg ICAgXAotICAgIkdFVENPTkZfRElSXDAiCQkJCQkJCSAgICAgIFwKLS0gICJHTElCQ19UVU5BQkxF U1wwIgkJCQkJCQkgICAgICBcCi0gICAiSE9TVEFMSUFTRVNcMCIJCQkJCQkJICAgICAgXAotICAg IkxEX0FVRElUXDAiCQkJCQkJCQkgICAgICBcCi0gICAiTERfREVCVUdcMCIJCQkJCQkJCSAgICAg IFwKLS0tIAotRnJvbSAxMDU2ZTViNGMzZjJkOTBlZDJiNGE1NWY5NmFkZDI4ZGEyZjRjOGZhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVz aEBzb3VyY2V3YXJlLm9yZz4KLURhdGU6IFR1ZSwgMTkgU2VwIDIwMjMgMTg6Mzk6MzIgLTA0MDAK LVN1YmplY3Q6IFtQQVRDSF0gdHVuYWJsZXM6IFRlcm1pbmF0ZSBpZiBlbmQgb2YgaW5wdXQgaXMg cmVhY2hlZAotIChDVkUtMjAyMy00OTExKQotCi1UaGUgc3RyaW5nIHBhcnNpbmcgcm91dGluZSBt YXkgZW5kIHVwIHdyaXRpbmcgYmV5b25kIGJvdW5kcyBvZiB0dW5lc3RyCi1pZiB0aGUgaW5wdXQg dHVuYWJsZSBzdHJpbmcgaXMgbWFsZm9ybWVkLCBvZiB0aGUgZm9ybSBuYW1lPW5hbWU9dmFsLgot VGhpcyBnZXRzIHByb2Nlc3NlZCB0d2ljZSwgZmlyc3QgYXMgbmFtZT1uYW1lPXZhbCBhbmQgbmV4 dCBhcyBuYW1lPXZhbCwKLXJlc3VsdGluZyBpbiB0dW5lc3RyIGJlaW5nIG5hbWU9bmFtZT12YWw6 bmFtZT12YWwsIHRodXMgb3ZlcmZsb3dpbmcKLXR1bmVzdHIuCi0KLVRlcm1pbmF0ZSB0aGUgcGFy c2luZyBsb29wIGF0IHRoZSBmaXJzdCBpbnN0YW5jZSBpdHNlbGYgc28gdGhhdCB0dW5lc3RyCi1k b2VzIG5vdCBvdmVyZmxvdy4KLQotVGhpcyBhbHNvIGZpeGVzIHVwIHRzdC1lbnYtc2V0dWlkLXR1 bmFibGVzIHRvIGFjdHVhbGx5IGhhbmRsZSBmYWlsdXJlcwotY29ycmVjdCBhbmQgYWRkIG5ldyB0 ZXN0cyB0byB2YWxpZGF0ZSB0aGUgZml4IGZvciB0aGlzIENWRS4KLQotU2lnbmVkLW9mZi1ieTog U2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KLVJldmlld2VkLWJ5 OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0ByZWRoYXQuY29tPgotLS0tCi0gTkVXUyAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNSArKysrKwotIGVsZi9kbC10dW5hYmxlcy5jICAgICAgICAg ICAgIHwgMTcgKysrKysrKysrLS0tLS0tLQotIGVsZi90c3QtZW52LXNldHVpZC10dW5hYmxlcy5j IHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5n ZWQsIDQ0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTkVX UyBiL05FV1MKLWluZGV4IGE5NDY1MGRhNjQuLmNjNGI4MWYwYWMgMTAwNjQ0Ci0tLS0gYS9ORVdT Ci0rKysgYi9ORVdTCi1AQCAtNjQsNiArNjQsMTEgQEAgU2VjdXJpdHkgcmVsYXRlZCBjaGFuZ2Vz OgotICAgYW4gYXBwbGljYXRpb24gY2FsbHMgZ2V0YWRkcmluZm8gZm9yIEFGX0lORVQ2IHdpdGgg QUlfQ0FOT05OQU1FLAotICAgQUlfQUxMIGFuZCBBSV9WNE1BUFBFRCBmbGFncyBzZXQuCi0gCi0r ICBDVkUtMjAyMy00OTExOiBJZiBhIHR1bmFibGUgb2YgdGhlIGZvcm0gTkFNRT1OQU1FPVZBTCBp cyBwYXNzZWQgaW4gdGhlCi0rICBlbnZpcm9ubWVudCBvZiBhIHNldHVpZCBwcm9ncmFtIGFuZCBO QU1FIGlzIHZhbGlkLCBpdCBtYXkgcmVzdWx0IGluIGEKLSsgIGJ1ZmZlciBvdmVyZmxvdywgd2hp Y2ggY291bGQgYmUgZXhwbG9pdGVkIHRvIGFjaGlldmUgZXNjYWxhdGVkCi0rICBwcml2aWxlZ2Vz LiAgVGhpcyBmbGF3IHdhcyBpbnRyb2R1Y2VkIGluIGdsaWJjIDIuMzQuCi0rCi0gVGhlIGZvbGxv d2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKLSAKLSAgIFtUaGUgcmVs ZWFzZSBtYW5hZ2VyIHdpbGwgYWRkIHRoZSBsaXN0IGdlbmVyYXRlZCBieQotZGlmZiAtLWdpdCBh L2VsZi9kbC10dW5hYmxlcy5jIGIvZWxmL2RsLXR1bmFibGVzLmMKLWluZGV4IDYyYjczMzJkOTUu LmNhZTY3ZWZhMGEgMTAwNjQ0Ci0tLS0gYS9lbGYvZGwtdHVuYWJsZXMuYwotKysrIGIvZWxmL2Rs LXR1bmFibGVzLmMKLUBAIC0xODAsMTEgKzE4MCw3IEBAIHBhcnNlX3R1bmFibGVzIChjaGFyICp0 dW5lc3RyLCBjaGFyICp2YWxzdHJpbmcpCi0gICAgICAgLyogSWYgd2UgcmVhY2ggdGhlIGVuZCBv ZiB0aGUgc3RyaW5nIGJlZm9yZSBnZXR0aW5nIGEgdmFsaWQgbmFtZS12YWx1ZQotIAkgcGFpciwg YmFpbCBvdXQuICAqLwotICAgICAgIGlmIChwW2xlbl0gPT0gJ1wwJykKLS0JewotLQkgIGlmIChf X2xpYmNfZW5hYmxlX3NlY3VyZSkKLS0JICAgIHR1bmVzdHJbb2ZmXSA9ICdcMCc7Ci0tCSAgcmV0 dXJuOwotLQl9Ci0rCWJyZWFrOwotIAotICAgICAgIC8qIFdlIGRpZCBub3QgZmluZCBhIHZhbGlk IG5hbWUtdmFsdWUgcGFpciBiZWZvcmUgZW5jb3VudGVyaW5nIHRoZQotIAkgY29sb24uICAqLwot QEAgLTI0NCw5ICsyNDAsMTYgQEAgcGFyc2VfdHVuYWJsZXMgKGNoYXIgKnR1bmVzdHIsIGNoYXIg KnZhbHN0cmluZykKLSAJICAgIH0KLSAJfQotIAotLSAgICAgIGlmIChwW2xlbl0gIT0gJ1wwJykK LS0JcCArPSBsZW4gKyAxOwotKyAgICAgIC8qIFdlIHJlYWNoZWQgdGhlIGVuZCB3aGlsZSBwcm9j ZXNzaW5nIHRoZSB0dW5hYmxlIHN0cmluZy4gICovCi0rICAgICAgaWYgKHBbbGVuXSA9PSAnXDAn KQotKwlicmVhazsKLSsKLSsgICAgICBwICs9IGxlbiArIDE7Ci0gICAgIH0KLSsKLSsgIC8qIFRl cm1pbmF0ZSB0dW5lc3RyIGJlZm9yZSB3ZSBsZWF2ZS4gICovCi0rICBpZiAoX19saWJjX2VuYWJs ZV9zZWN1cmUpCi0rICAgIHR1bmVzdHJbb2ZmXSA9ICdcMCc7Ci0gfQotIAotIC8qIEVuYWJsZSB0 aGUgZ2xpYmMubWFsbG9jLmNoZWNrIHR1bmFibGUgaW4gU0VUVUlEL1NFVEdJRCBwcm9ncmFtcyBv bmx5IHdoZW4KLWRpZmYgLS1naXQgYS9lbGYvdHN0LWVudi1zZXR1aWQtdHVuYWJsZXMuYyBiL2Vs Zi90c3QtZW52LXNldHVpZC10dW5hYmxlcy5jCi1pbmRleCA3ZGZiMGUwNzNhLi5mMGI5MmM5N2U3 IDEwMDY0NAotLS0tIGEvZWxmL3RzdC1lbnYtc2V0dWlkLXR1bmFibGVzLmMKLSsrKyBiL2VsZi90 c3QtZW52LXNldHVpZC10dW5hYmxlcy5jCi1AQCAtNTAsNiArNTAsOCBAQCBjb25zdCBjaGFyICp0 ZXN0c3RyaW5nc1tdID0KLSAgICJnbGliYy5tYWxsb2MucGVydHVyYj0weDgwMDpub3RfdmFsaWQu bWFsbG9jLmNoZWNrPTI6Z2xpYmMubWFsbG9jLm1tYXBfdGhyZXNob2xkPTQwOTYiLAotICAgImds aWJjLm5vdF92YWxpZC5jaGVjaz0yOmdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9sZD00MDk2IiwK LSAgICJub3RfdmFsaWQubWFsbG9jLmNoZWNrPTI6Z2xpYmMubWFsbG9jLm1tYXBfdGhyZXNob2xk PTQwOTYiLAotKyAgImdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9sZD1nbGliYy5tYWxsb2MubW1h cF90aHJlc2hvbGQ9NDA5NiIsCi0rICAiZ2xpYmMubWFsbG9jLmNoZWNrPTIiLAotICAgImdsaWJj Lm1hbGxvYy5nYXJiYWdlPTI6Z2xpYmMubWFvYy5tbWFwX3RocmVzaG9sZD00MDk2OmdsaWJjLm1h bGxvYy5jaGVjaz0yIiwKLSAgICJnbGliYy5tYWxsb2MuY2hlY2s9NDpnbGliYy5tYWxsb2MuZ2Fy YmFnZT0yOmdsaWJjLm1hb2MubW1hcF90aHJlc2hvbGQ9NDA5NiIsCi0gICAiOmdsaWJjLm1hbGxv Yy5nYXJiYWdlPTI6Z2xpYmMubWFsbG9jLmNoZWNrPTEiLAotQEAgLTY4LDYgKzcwLDggQEAgY29u c3QgY2hhciAqcmVzdWx0c3RyaW5nc1tdID0KLSAgICJnbGliYy5tYWxsb2MucGVydHVyYj0weDgw MDpnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9NDA5NiIsCi0gICAiZ2xpYmMubWFsbG9jLm1t YXBfdGhyZXNob2xkPTQwOTYiLAotICAgImdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9sZD00MDk2 IiwKLSsgICJnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9Z2xpYmMubWFsbG9jLm1tYXBfdGhy ZXNob2xkPTQwOTYiLAotKyAgIiIsCi0gICAiIiwKLSAgICIiLAotICAgIiIsCi1AQCAtODEsMTEg Kzg1LDE4IEBAIHRlc3RfY2hpbGQgKGludCBvZmYpCi0gewotICAgY29uc3QgY2hhciAqdmFsID0g Z2V0ZW52ICgiR0xJQkNfVFVOQUJMRVMiKTsKLSAKLSsgIHByaW50ZiAoIiAgICBbJWRdIEdMSUJD X1RVTkFCTEVTIGlzICVzXG4iLCBvZmYsIHZhbCk7Ci0rICBmZmx1c2ggKHN0ZG91dCk7Ci0gICBp ZiAodmFsICE9IE5VTEwgJiYgc3RyY21wICh2YWwsIHJlc3VsdHN0cmluZ3Nbb2ZmXSkgPT0gMCkK LSAgICAgcmV0dXJuIDA7Ci0gCi0gICBpZiAodmFsICE9IE5VTEwpCi0tICAgIHByaW50ZiAoIlsl ZF0gVW5leHBlY3RlZCBHTElCQ19UVU5BQkxFUyBWQUxVRSAlc1xuIiwgb2ZmLCB2YWwpOwotKyAg ICBwcmludGYgKCIgICAgWyVkXSBVbmV4cGVjdGVkIEdMSUJDX1RVTkFCTEVTIFZBTFVFICVzLCBl eHBlY3RlZCAlc1xuIiwKLSsJICAgIG9mZiwgdmFsLCByZXN1bHRzdHJpbmdzW29mZl0pOwotKyAg ZWxzZQotKyAgICBwcmludGYgKCIgICAgWyVkXSBHTElCQ19UVU5BQkxFUyBlbnZpcm9ubWVudCB2 YXJpYWJsZSBhYnNlbnRcbiIsIG9mZik7Ci0rCi0rICBmZmx1c2ggKHN0ZG91dCk7Ci0gCi0gICBy ZXR1cm4gMTsKLSB9Ci1AQCAtMTA2LDIxICsxMTcsMjYgQEAgZG9fdGVzdCAoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQotICAgICAgIGlmIChyZXQgIT0gMCkKLSAJZXhpdCAoMSk7Ci0gCi0tICAgICAg ZXhpdCAoRVhJVF9TVUNDRVNTKTsKLSsgICAgICAvKiBTcGVjaWFsIHJldHVybiBjb2RlIHRvIG1h a2Ugc3VyZSB0aGF0IHRoZSBjaGlsZCBleGVjdXRlZCBhbGwgdGhlIHdheQotKwkgdGhyb3VnaC4g ICovCi0rICAgICAgZXhpdCAoNDIpOwotICAgICB9Ci0gICBlbHNlCi0gICAgIHsKLS0gICAgICBp bnQgcmV0ID0gMDsKLS0KLSAgICAgICAvKiBTcGF3biB0ZXN0cy4gICovCi0gICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBhcnJheV9sZW5ndGggKHRlc3RzdHJpbmdzKTsgaSsrKQotIAl7Ci0gCSAg Y2hhciBidWZbSU5UX0JVRlNJWkVfQk9VTkQgKGludCldOwotIAotLQkgIHByaW50ZiAoIlNwYXdu ZWQgdGVzdCBmb3IgJXMgKCVkKVxuIiwgdGVzdHN0cmluZ3NbaV0sIGkpOwotKwkgIHByaW50ZiAo IlslZF0gU3Bhd25lZCB0ZXN0IGZvciAlc1xuIiwgaSwgdGVzdHN0cmluZ3NbaV0pOwotIAkgIHNu cHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwgIiVkXG4iLCBpKTsKLSsJICBmZmx1c2ggKHN0ZG91 dCk7Ci0gCSAgaWYgKHNldGVudiAoIkdMSUJDX1RVTkFCTEVTIiwgdGVzdHN0cmluZ3NbaV0sIDEp ICE9IDApCi0tCSAgICBleGl0ICgxKTsKLSsJICAgIHsKLSsJICAgICAgcHJpbnRmICgiICAgIFsl ZF0gRmFpbGVkIHRvIHNldCBHTElCQ19UVU5BQkxFUzogJW0iLCBpKTsKLSsJICAgICAgc3VwcG9y dF9yZWNvcmRfZmFpbHVyZSAoKTsKLSsJICAgICAgY29udGludWU7Ci0rCSAgICB9Ci0gCi0gCSAg aW50IHN0YXR1cyA9IHN1cHBvcnRfY2FwdHVyZV9zdWJwcm9ncmFtX3NlbGZfc2dpZCAoYnVmKTsK LSAKLUBAIC0xMjgsOSArMTQ0LDE0IEBAIGRvX3Rlc3QgKGludCBhcmdjLCBjaGFyICoqYXJndikK LSAJICBpZiAoV0VYSVRTVEFUVVMgKHN0YXR1cykgPT0gRVhJVF9VTlNVUFBPUlRFRCkKLSAJICAg IHJldHVybiBFWElUX1VOU1VQUE9SVEVEOwotIAotLQkgIHJldCB8PSBzdGF0dXM7Ci0rCSAgaWYg KFdFWElUU1RBVFVTIChzdGF0dXMpICE9IDQyKQotKwkgICAgewotKwkgICAgICBwcmludGYgKCIg ICAgWyVkXSBjaGlsZCBmYWlsZWQgd2l0aCBzdGF0dXMgJWRcbiIsIGksCi0rCQkgICAgICBXRVhJ VFNUQVRVUyAoc3RhdHVzKSk7Ci0rCSAgICAgIHN1cHBvcnRfcmVjb3JkX2ZhaWx1cmUgKCk7Ci0r CSAgICB9Ci0gCX0KLS0gICAgICByZXR1cm4gcmV0OwotKyAgICAgIHJldHVybiAwOwotICAgICB9 Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2xp YmMvdGVtcGxhdGUKaW5kZXggY2YzMGNkODhkZDYxYTIuLjg3N2UyYzlmZWMyMGM3IDEwMDY0NAot LS0gYS9zcmNwa2dzL2dsaWJjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUK QEAgLTEsMTQgKzEsMTQgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dsaWJjJwogcGtnbmFtZT1n bGliYwotdmVyc2lvbj0yLjM4Ci1yZXZpc2lvbj02Cit2ZXJzaW9uPTIuMzkKK3JldmlzaW9uPTEK IGJvb3RzdHJhcD15ZXMKIHNob3J0X2Rlc2M9IkdOVSBDIGxpYnJhcnkiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIEJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvbGliYyIKIGRpc3RmaWxlcz0iJHtHTlVfU0lURX0vbGliYy9n bGliYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZiODI5OTg5OThiMmIyOTk2NTQ2N2Jj MWI2OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKK2NoZWNrc3VtPWY3N2Jk NDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAyZDNkYzFlMmQ5 MjYKICMgRG8gbm90IHN0cmlwIHRoZXNlIGZpbGVzLCBvYmpjb3B5IGVycm9ycyBvdXQuCiBub3N0 cmlwX2ZpbGVzPSIKIAlYQlM1X0lMUDMyX09GRkJJRwpAQCAtNDgsMTMgKzQ4LDEyIEBAIGNvbmZf ZmlsZXM9IgogCS9ldGMvbGQuc28uY29uZiIKIGlmIFsgIiRDSFJPT1RfUkVBRFkiIF07IHRoZW4K IAlob3N0bWFrZWRlcGVuZHM9ImJpc29uIGdldHRleHQgcGVybCBweXRob24zIHRleGluZm8iCi0J IyBYWFg6IHJlbW92ZSB0aGlzIG9uIHRoZSBuZXh0IHVwZGF0ZQotCSMgZW5zdXJlcyBwYXJ0aWFs IHVwZ3JhZGVzIGRvbid0IGJyZWFrIHRoaW5ncyBsaWtlIFBBTQotCWRlcGVuZHM9ImxpYnhjcnlw dC1jb21wYXQiCiBmaQogbWFrZWRlcGVuZHM9Imtlcm5lbC1saWJjLWhlYWRlcnMiCiBsaWIzMmZp bGVzPSIvdXNyL2xpYi9nY29udi9nY29udi1tb2R1bGVzIgogbGliMzJzeW1saW5rcz0ibGQtbGlu dXguc28uMiIKKyMgZ2xpYmMgMi4zOCBzdG9wcyBwcm92aWRpbmcgbGliY3J5cHQuc28uMQorY29u ZmxpY3RzPSJnbGliYy0zMmJpdDwyLjM4XzEiCiBhcmNocz0ifiotbXVzbCIKIGlmIFsgIiRYQlBT X1RBUkdFVF9MSUJDIiA9IG11c2wgXTsgdGhlbgogCWJyb2tlbj0ibm8gcG9pbnQgaW4gYnVpbGRp bmcgdGhpcyBmb3IgbXVzbCIKQEAgLTY3LDIwICs2NiwxNyBAQCBkb19jb25maWd1cmUoKSB7CiAJ bG9jYWwgX2xpYmRpcj0vdXNyL2xpYiR7WEJQU19UQVJHRVRfV09SRFNJWkV9CiAKIAllY2hvICJz bGliZGlyPSR7X2xpYmRpcn0iID4gY29uZmlncGFybXMKKwllY2hvICJydGxkZGlyPSR7X2xpYmRp cn0iID4+IGNvbmZpZ3Bhcm1zCiAJZWNobyAiYmluZGlyPS91c3IvYmluIiA+PiBjb25maWdwYXJt cwogCWVjaG8gInNiaW5kaXI9L3Vzci9iaW4iID4+IGNvbmZpZ3Bhcm1zCi0JZWNobyAicm9vdHNi aW5kaXI9L3Vzci9zYmluIiA+PiBjb25maWdwYXJtcworCWVjaG8gInJvb3RzYmluZGlyPS91c3Iv YmluIiA+PiBjb25maWdwYXJtcwogCiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJ CSMgQnVpbGQgd2l0aCAtbW5vLXRscy1kaXJlY3Qtc2VnLXJlZnMgdG8gYXZvaWQgcGVyZm9ybWFu Y2UKIAkJIyBwcm9ibGVtcyB3aXRoIFhlbiBvbiB4ODYgMzJiaXQuCiAJCWk2ODYpIGV4cG9ydCBD RkxBR1MrPSIgLW1uby10bHMtZGlyZWN0LXNlZy1yZWZzIjs7Ci0JCSMgRm9yY2UgaGFyZCBmbG9h dCBBQkkuCi0JCSMgVG8gYnVpbGQgZm9yIHNvZnQgZmxvYXQ6IC0td2l0aC1mbG9hdD1zb2Z0IC0t d2l0aG91dC1mcC4KLQkJYXJtdjUqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgtbWFyY2g9YXJt djV0ZSAtLXdpdGhvdXQtZnAgLS13aXRoLWZsb2F0PXNvZnQiOzsKLQkJYXJtdjZsKikgY29uZmln dXJlX2FyZ3MrPSIgLS13aXRoLW1hcmNoPWFybXY2IC0td2l0aC1mcHU9dmZwIC0td2l0aC1mbG9h dD1oYXJkIjs7Ci0JCWFybXY3bCopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1tYXJjaD1hcm12 Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiOzsKLQkJYXJtNjQqKSBjb25m aWd1cmVfYXJncys9IiAtLXdpdGgtbWFyY2g9YXJtdjgtYSI7OworCQkjIEZvcmNlIHNvZnQgZmxv YXQgQUJJIG9uIGFybXY1LgorCQlhcm12NSopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aG91dC1m cCI7OwogCWVzYWMKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgpAQCAtMTAzLDkgKzk5 LDcgQEAgZG9fY29uZmlndXJlKCkgewogCQktLWVuYWJsZS1zdGFjay1wcm90ZWN0b3I9c3Ryb25n IFwKIAkJLS1kaXNhYmxlLXByb2ZpbGUgLS1lbmFibGUta2VybmVsPTMuMi4wIFwKIAkJLS13aXRo b3V0LXNlbGludXggLS13aXRob3V0LWdkIFwKLQkJLS1kaXNhYmxlLXdlcnJvciBcCi0JCWxpYmNf Y3Zfcm9vdHNiaW5kaXI9L3Vzci9iaW4gXAotCQlsaWJjX2N2X3J0bGRkaXI9JHtfbGliZGlyfSBs aWJjX2N2X3NsaWJkaXI9JHtfbGliZGlyfQorCQktLWRpc2FibGUtd2Vycm9yIC0tZW5hYmxlLW9w dGlvbi1jaGVja2luZwogfQogCiBwb3N0X2NvbmZpZ3VyZSgpIHsKQEAgLTEzMyw3ICsxMjcsMTAg QEAgZG9faW5zdGFsbCgpIHsKIAkoIGNkIGJ1aWxkICYmIG1ha2UgaW5zdGFsbF9yb290PSR7REVT VERJUn0gaW5zdGFsbCApCiAKIAkjIFRoZSBDLlVURi04IGxvY2FsZSBzaG91bGQgYWx3YXlzIGJl IGF2YWlsYWJsZQotCWlmIFsgLXogIiR7Q1JPU1NfQlVJTER9IiBdOyB0aGVuCisJIworCSMgVXNl IHRoZSByZWNlbnRseSBjb21waWxlZCBsb2NhbGVkZWYgd2hlbiBjb21waWxpbmcgdG8vZnJvbSB0 aGUgc2FtZQorCSMgYXJjaGl0ZWN0dXJlLCBhbmQgdGhlIGhvc3QgbG9jYWxlZGVmIGJpbmFyeSBv dGhlcndpc2UuCisJaWYgWyAiJHtYQlBTX01BQ0hJTkUlLSp9IiA9ICIke1hCUFNfVEFSR0VUX01B Q0hJTkUlLSp9IiBdOyB0aGVuCiAJCW1ha2UgLUMgbG9jYWxlZGF0YSBERVNURElSPSIke0RFU1RE SVJ9IiBcCiAJCQlvYmpkaXI9Ii4uL2J1aWxkIiBpbnN0YWxsLWZpbGVzLUMuVVRGLTgvVVRGLTgK IAllbGlmIGNvbW1hbmQgLXYgbG9jYWxlZGVmID4vZGV2L251bGwgMj4mMTsgdGhlbgpAQCAtMTg0 LDggKzE4MSw2IEBAIGRvX2luc3RhbGwoKSB7CiAJIyBSZW1vdmUgdHpzZWxlY3QgYW5kIHp7ZHVt cCxpY30sIHByb3ZpZGVkIGJ5IHR6dXRpbHMuCiAJcm0gLWYgJHtERVNURElSfS91c3IvYmluL3R6 c2VsZWN0CiAJcm0gLWYgJHtERVNURElSfS91c3IvYmluL3p7ZHVtcCxpY30KLQotCW12ICR7REVT VERJUn0vdXNyL3NiaW4vKiAke0RFU1RESVJ9L3Vzci9iaW4KIH0KIAogZ2xpYmMtZGV2ZWxfcGFj a2FnZSgpIHsK --===============6899542719938128615==--