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=0.7 required=5.0 tests=ALL_TRUSTED, 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 9000C2571E for ; Wed, 31 Jan 2024 21:36:23 +0100 (CET) Content-Type: multipart/mixed; boundary="===============0128975734591007282==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIG11c2wgMS4y?= To: ml@inbox.vuxu.org From: dkwo Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 31 Jan 2024 21:36:23 +0100 List-Id: Message-Id: <20240131203623.9000C2571E@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============0128975734591007282== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZGt3byBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZGt3by92 b2lkLXBhY2thZ2VzIG11c2wKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzQzMTA2CgptdXNsIDEuMgpbY2kgc2tpcF0NCg0KLSBJIHRlc3RlZCB0aGUgY2hh bmdlcyBpbiB0aGlzIFBSOiB5ZXMNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5h dGl2ZSBhcmNoaXRlY3R1cmUsICh4ODZfNjQtbXVzbCkNCi0ga2VlcGluZyB0aGUgbGFyZ2UtZmls ZSBwYXRjaCwgZm9yIG5vdw0KLSByZXF1aXJlcyBjaGFuZ2VzIHRvIHhicHMsIGFsb25nIHRoZSBs aW5lcyBvZiBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC94YnBzL3B1bGwvMzMxIChvciBz b21lIG90aGVyIHNvbHV0aW9uKQ0KLSByZW1vdmUgY29uZmlndXJlIGFyZyBmb3IgMjAzOCBpbiBj b3JldXRpbHMgZm9yIGFybTMyCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDMxMDYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============0128975734591007282== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-musl-43106.patch" RnJvbSAyOWIwOTdkNzc2YzI1OGYwYmZkNmYyYWYyZGIyYTcyNWIwMmFmZDkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRh dGU6IFRodSwgMTMgTWF5IDIwMjEgMTM6NTE6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10g bXVzbDogdXBkYXRlIHRvIDEuMi40CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxv Y2FycmF5LnBhdGNoICAgIHwgIDQyIC0tLS0KIC4uLi9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFS R0VGSUxFLnBhdGNoICAgICB8ICAyNiArKysKIC4uLmlzdF91bmxpbmtfaW5fcHRocmVhZF9leGl0 X2FmdGVyX2FsbC5wYXRjaCB8ICA1NiAtLS0tLQogLi4uaHJlYWRzX21pbnVzXzFfYXNfcmVsYXhl ZF9hdG9taWNfZm9yLnBhdGNoIHwgIDc4IC0tLS0tLS0KIC4uLm93bl9zaXplX29mX3NvbWVfbGli Y19zdHJ1Y3RfbWVtYmVycy5wYXRjaCB8ICAzMCAtLS0KIC4uLnBwaW5nX2Zvcl9wcm9jZXNzZXNf dGhhdF9yZXR1cm5fdG9fcy5wYXRjaCB8IDEwMiAtLS0tLS0tLQogLi4uODhhOWRhNWU3YjI5MjVk ZGExN2EyZDY4MjBkZGRmMWZiMjg3LnBhdGNoIHwgMTM5IC0tLS0tLS0tLS0tCiAuLi4wOThhODg1 ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2ggfCAxMTMgLS0tLS0tLS0tCiBzcmNw a2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRjaCAgICAgfCAgNjQgLS0tLS0KIHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2ggICAgICB8ICAzNyAtLS0KIHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1xc29ydF9yLnBhdGNoICAgICAgICB8IDIwMSAtLS0tLS0t LS0tLS0tLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtcmxpbWl0LXJ0dGltZS5wYXRjaCAg fCAgMjQgLS0KIC4uLmQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaCB8 ICA3NCAtLS0tLS0KIC4uLnJsaW1pdC1taXNiZWhhdmlvci1hbmQtaGFuZy1pbi12Zm9yay5wYXRj aCB8ICA0OSAtLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9lcG9sbF9jcC5wYXRjaCAgICAgICAg ICAgfCAgMjggLS0tCiAuLi54LW9vYi1yZWFkLXByb2Nlc3NpbmctdGltZS16b25lLWRhdGEucGF0 Y2ggfCAgODAgLS0tLS0tLQogLi4uL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0xLnBh dGNoICAgIHwgIDU2IC0tLS0tCiAuLi4vbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTIu cGF0Y2ggICAgfCAgNDggLS0tLQogLi4uL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0z LnBhdGNoICAgIHwgIDI4IC0tLQogLi4uc29uLW9mLWRpZ2l0LXNlcXVlbmNlLXdpdGgtbm9uLnBh dGNoLnBhdGNoIHwgIDM4IC0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoICAg ICAgICAgICAgIHwgIDQ5IC0tLS0KIC4uLnRseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFk bGluay5wYXRjaCB8IDIxOSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVz L2lzYXNjaWkucGF0Y2ggICAgICAgICAgICB8ICAyMSAtLQogc3JjcGtncy9tdXNsL3BhdGNoZXMv bW9fbG9va3VwLnBhdGNoICAgICAgICAgIHwgIDE5IC0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9w cGMtcHRfcmVncy5wYXRjaCAgICAgICAgfCAgMzggLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9w cGM2NC1mcHJlZ3NldF90LnBhdGNoICAgfCAgMzEgLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9w cGNsZS5wYXRjaCAgICAgICAgICAgICAgfCAgMjQgLS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3Jp c2N2NjQtdWNvbnRleHQucGF0Y2ggICB8ICAyOSAtLS0KIC4uLmluX3JlYWRsaW5rX3N5c2NhbGxf d2l0aF96ZXJvX2J1ZmZlci5wYXRjaCB8ICA1OSAtLS0tLQogc3JjcGtncy9tdXNsL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiAzMSBmaWxlcyBjaGFuZ2VkLCAzMCBp bnNlcnRpb25zKCspLCAxNzgxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFSR0VGSUxFLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9s aXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMl9kb25fdF91c2VfbGliY190aHJlYWRzX21p bnVzXzFfYXNfcmVsYXhlZF9hdG9taWNfZm9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGliY19zdHJ1Y3Rf bWVtYmVycy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzAw MDRfcmVzdG9yZV9sb2NrX3NraXBwaW5nX2Zvcl9wcm9jZXNzZXNfdGhhdF9yZXR1cm5fdG9fcy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzk4ZTY4OGE5ZGE1 ZTdiMjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL211c2wvcGF0Y2hlcy85OWQ1MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRk MTc4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvQ1ZFLTIw MjAtMjg5MjgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9h YXJjaDY0LWZyZWdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNo ZXMvYWRkLXFzb3J0X3IucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0 Y2hlcy9hZGQtcmxpbWl0LXJ0dGltZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvYXZvaWQtc2V0LWlkLXNl dHJsaW1pdC1taXNiZWhhdmlvci1hbmQtaGFuZy1pbi12Zm9yay5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xsX2NwLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LW9vYi1yZWFkLXByb2Nlc3NpbmctdGltZS16 b25lLWRhdGEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9m aXgtcGktbXV0ZXgtY29uZC0xLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNs L3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTMucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtc3RydmVyc2NtcC1jb21wYXJpc29uLW9m LWRpZ2l0LXNlcXVlbmNlLXdpdGgtbm9uLnBhdGNoLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9tdXNsL3BhdGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVjdGx5X2luc3RlYWRfb2Zf dXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9t dXNsL3BhdGNoZXMvaXNhc2NpaS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVz bC9wYXRjaGVzL21vX2xvb2t1cC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVz bC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9t dXNsL3BhdGNoZXMvcHBjNjQtZnByZWdzZXRfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tdXNsL3BhdGNoZXMvcmlzY3Y2NC11Y29udGV4dC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3dvcmtfYXJvdW5kX2xpbnV4X2J1Z19pbl9yZWFkbGlua19z eXNjYWxsX3dpdGhfemVyb19idWZmZXIucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCA3MWYxNzI3NDBlNWM2Li40NGJiOGU5ZmM3YjE1IDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTE2LDcgKzE2LDcg QEAKICMgUExFQVNFIE5PVEU6IHdoZW4gbXVsdGlwbGUgcGFja2FnZXMgcHJvdmlkZSB0aGUgc2Ft ZSBTT05BTUUsIHRoZSBmaXJzdAogIyBvbmUgKG9yZGVyIHRvcC0+Ym90dG9tKSBpcyBwcmVmZXJy ZWQgb3ZlciB0aGUgbmV4dCBvbmVzLgogIwotbGliYy5zbyBtdXNsLTEuMS4yNF83CitsaWJjLnNv IG11c2wtMS4yLjRfMQogbGliYy5zby42IGdsaWJjLTIuMzhfMQogbGlibS5zby42IGdsaWJjLTIu MzhfMQogbGlicHRocmVhZC5zby4wIGdsaWJjLTIuMzhfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9t dXNsL3BhdGNoZXMvMDAtcmVhbGxvY2FycmF5LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMv MDAtcmVhbGxvY2FycmF5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZmFh YjMzMGU4OWFkLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwLXJl YWxsb2NhcnJheS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLUZyb20gODIx MDgzYWM3YjU0ZWFhMDQwZDVhOGRkYzY3YzYyMDZhMTc1ZTBjYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IEFyaWFkbmUgQ29uaWxsIDxhcmlhZG5lQGRlcmVmZXJlbmNlZC5vcmc+Ci1E YXRlOiBTYXQsIDEgQXVnIDIwMjAgMDg6MjY6MzUgLTA2MDAKLVN1YmplY3Q6IFtQQVRDSF0gaW1w bGVtZW50IHJlYWxsb2NhcnJheQotCi1yZWFsbG9jYXJyYXkgaXMgYW4gZXh0ZW5zaW9uIGludHJv ZHVjZWQgYnkgT3BlbkJTRCwgd2hpY2ggaW50cm9kdWNlcwotY2FsbG9jIG92ZXJmbG93IGNoZWNr aW5nIHRvIHJlYWxsb2MuCi0KLWdsaWJjIDIuMjggaW50cm9kdWNlZCBzdXBwb3J0IGZvciB0aGlz IGZ1bmN0aW9uIGJlaGluZCBfR05VX1NPVVJDRSwKLXdoaWxlIGdsaWJjIDIuMjkgYWxsb3dzIGl0 cyB1c2FnZSBpbiBfREVGQVVMVF9TT1VSQ0UuCi0KLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0ZGxp Yi5oIGIvaW5jbHVkZS9zdGRsaWIuaAotaW5kZXggMTk0YzIwMzMuLmI1NGEwNTFmIDEwMDY0NAot LS0tIGEvaW5jbHVkZS9zdGRsaWIuaAotKysrIGIvaW5jbHVkZS9zdGRsaWIuaAotQEAgLTE0NSw2 ICsxNDUsNyBAQCBpbnQgZ2V0bG9hZGF2Zyhkb3VibGUgKiwgaW50KTsKLSBpbnQgY2xlYXJlbnYo dm9pZCk7Ci0gI2RlZmluZSBXQ09SRURVTVAocykgKChzKSAmIDB4ODApCi0gI2RlZmluZSBXSUZD T05USU5VRUQocykgKChzKSA9PSAweGZmZmYpCi0rdm9pZCAqcmVhbGxvY2FycmF5ICh2b2lkICos IHNpemVfdCwgc2l6ZV90KTsKLSAjZW5kaWYKLSAKLSAjaWZkZWYgX0dOVV9TT1VSQ0UKLWRpZmYg LS1naXQgYS9zcmMvbWFsbG9jL3JlYWxsb2NhcnJheS5jIGIvc3JjL21hbGxvYy9yZWFsbG9jYXJy YXkuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwLi40YTZlYmU0NgotLS0t IC9kZXYvbnVsbAotKysrIGIvc3JjL21hbGxvYy9yZWFsbG9jYXJyYXkuYwotQEAgLTAsMCArMSwx MyBAQAotKyNkZWZpbmUgX0JTRF9TT1VSQ0UKLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaW5jbHVk ZSA8c3RkbGliLmg+Ci0rCi0rdm9pZCAqcmVhbGxvY2FycmF5KHZvaWQgKnB0ciwgc2l6ZV90IG0s IHNpemVfdCBuKQotK3sKLSsJaWYgKG4gJiYgbSA+IC0xIC8gbikgewotKwkJZXJybm8gPSBFTk9N RU07Ci0rCQlyZXR1cm4gMDsKLSsJfQotKwotKwlyZXR1cm4gcmVhbGxvYyhwdHIsIG0gKiBuKTsK LSt9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxLXJlbW92ZS1PX0xBUkdF RklMRS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFSR0VGSUxF LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjFjYTM2MjYz NjkxYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxLXJlbW92 ZS1PX0xBUkdFRklMRS5wYXRjaApAQCAtMCwwICsxLDI2IEBACitGcm9tIDdkNTU0ZDBjNzg2ZjU0 MzFhZDMwMzVhMzI4ODE1ODkwYTk1YTI5NzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiA9P1VURi04P3E/PUMzPTg5cmljbz0yME5vZ3VlaXJhPz0gPGVyaWNvbnJAZGlzcm9vdC5vcmc+ CitEYXRlOiBXZWQsIDEyIE1heSAyMDIxIDE3OjM5OjIwIC0wMzAwCitTdWJqZWN0OiBbUEFUQ0hd IHJlbW92ZSBPX0xBUkdFRklMRQorCit1c2VmdWwgaGFjayB0byBidWlsZCAxLjIuMiBtdXNsIGZv ciB4ODZfNjQgYW5kIG5vdCBoYXZlIHRvIHJlYnVpbGQKK2ZpcmVmb3guCistLS0KKyBhcmNoL2dl bmVyaWMvYml0cy9mY250bC5oIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9nZW5lcmljL2JpdHMvZmNudGwu aCBiL2FyY2gvZ2VuZXJpYy9iaXRzL2ZjbnRsLmgKK2luZGV4IDczMGE5OGNmLi5jMmZkMTc2MCAx MDA2NDQKKy0tLSBhL2FyY2gvZ2VuZXJpYy9iaXRzL2ZjbnRsLmgKKysrKyBiL2FyY2gvZ2VuZXJp Yy9iaXRzL2ZjbnRsLmgKK0BAIC0xMyw3ICsxMyw3IEBACisgCisgI2RlZmluZSBPX0FTWU5DICAg ICAgMDIwMDAwCisgI2RlZmluZSBPX0RJUkVDVCAgICAgMDQwMDAwCistI2RlZmluZSBPX0xBUkdF RklMRSAwMTAwMDAwCisrI2RlZmluZSBPX0xBUkdFRklMRSAwCisgI2RlZmluZSBPX05PQVRJTUUg IDAxMDAwMDAwCisgI2RlZmluZSBPX1BBVEggICAgMDEwMDAwMDAwCisgI2RlZmluZSBPX1RNUEZJ TEUgMDIwMjAwMDAwCistLSAKKzIuMzEuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNo ZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9saXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJf YWxsLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9saXN0 X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3YzFhNTViYzg1ZTMwLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzLzAwMDFfcmVvcmRlcl90aHJlYWRfbGlzdF91bmxpbmtfaW5fcHRocmVhZF9l eGl0X2FmdGVyX2FsbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLT5Gcm9t IDRkNWFhMjBhOTRhMmQzZmFlM2U2OTI4OWRjMjNlY2FmYmQwYzE2YzQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBG cmksIDIyIE1heSAyMDIwIDE3OjM1OjE0IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMS80XSByZW9y ZGVyIHRocmVhZCBsaXN0IHVubGluayBpbiBwdGhyZWFkX2V4aXQgYWZ0ZXIgYWxsCi0gbG9ja3MK LQotc2luY2UgdGhlIGJhY2tlbmQgZm9yIExPQ0soKSBza2lwcyBsb2NraW5nIGlmIHNpbmdsZS10 aHJlYWRlZCwgaXQncwotdW5zYWZlIHRvIG1ha2UgdGhlIHByb2Nlc3MgYXBwZWFyIHNpbmdsZS10 aHJlYWRlZCBiZWZvcmUgdGhlIGxhc3QgdXNlCi1vZiBsb2NrLgotCi10aGlzIGZpeGVzIHBvdGVu dGlhbCB1bnN5bmNocm9uaXplZCBhY2Nlc3MgdG8gYSBsaW5rZWQgbGlzdCB2aWEKLV9fZGxfdGhy ZWFkX2NsZWFudXAuCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMgfCAxOSArKysr KysrKysrKy0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMgYi9z cmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMKLWluZGV4IDVmNDkxMDkyLi42YTNiMGMyMSAxMDA2 NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwotKysrIGIvc3JjL3RocmVhZC9w dGhyZWFkX2NyZWF0ZS5jCi1AQCAtOTAsMTQgKzkwLDcgQEAgX05vcmV0dXJuIHZvaWQgX19wdGhy ZWFkX2V4aXQodm9pZCAqcmVzdWx0KQotIAkJZXhpdCgwKTsKLSAJfQotIAotLQkvKiBBdCB0aGlz IHBvaW50IHdlIGFyZSBjb21taXR0ZWQgdG8gdGhyZWFkIHRlcm1pbmF0aW9uLiBVbmxpbmsKLS0J ICogdGhlIHRocmVhZCBmcm9tIHRoZSBsaXN0LiBUaGlzIGNoYW5nZSB3aWxsIG5vdCBiZSB2aXNp YmxlCi0tCSAqIHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB3aGljaCBvbmx5IGhhcHBlbnMg YWZ0ZXIgU1lTX2V4aXQKLS0JICogaGFzIGJlZW4gY2FsbGVkLCB2aWEgdGhlIGV4aXQgZnV0ZXgg YWRkcmVzcyBwb2ludGluZyBhdCB0aGUgbG9jay4gKi8KLS0JbGliYy50aHJlYWRzX21pbnVzXzEt LTsKLS0Jc2VsZi0+bmV4dC0+cHJldiA9IHNlbGYtPnByZXY7Ci0tCXNlbGYtPnByZXYtPm5leHQg PSBzZWxmLT5uZXh0OwotLQlzZWxmLT5wcmV2ID0gc2VsZi0+bmV4dCA9IHNlbGY7Ci0rCS8qIEF0 IHRoaXMgcG9pbnQgd2UgYXJlIGNvbW1pdHRlZCB0byB0aHJlYWQgdGVybWluYXRpb24uICovCi0g Ci0gCS8qIFByb2Nlc3Mgcm9idXN0IGxpc3QgaW4gdXNlcnNwYWNlIHRvIGhhbmRsZSBub24tcHNo YXJlZCBtdXRleGVzCi0gCSAqIGFuZCB0aGUgZGV0YWNoZWQgdGhyZWFkIGNhc2Ugd2hlcmUgdGhl IHJvYnVzdCBsaXN0IGhlYWQgd2lsbAotQEAgLTEyMSw2ICsxMTQsMTYgQEAgX05vcmV0dXJuIHZv aWQgX19wdGhyZWFkX2V4aXQodm9pZCAqcmVzdWx0KQotIAlfX2RvX29ycGhhbmVkX3N0ZGlvX2xv Y2tzKCk7Ci0gCV9fZGxfdGhyZWFkX2NsZWFudXAoKTsKLSAKLSsJLyogTGFzdCwgdW5saW5rIHRo cmVhZCBmcm9tIHRoZSBsaXN0LiBUaGlzIGNoYW5nZSB3aWxsIG5vdCBiZSB2aXNpYmxlCi0rCSAq IHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB3aGljaCBvbmx5IGhhcHBlbnMgYWZ0ZXIgU1lT X2V4aXQKLSsJICogaGFzIGJlZW4gY2FsbGVkLCB2aWEgdGhlIGV4aXQgZnV0ZXggYWRkcmVzcyBw b2ludGluZyBhdCB0aGUgbG9jay4KLSsJICogVGhpcyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIgYW55 IHBvc3NpYmxlIGNhbGxzIHRvIExPQ0soKSB0aGF0IG1pZ2h0Ci0rCSAqIHNraXAgbG9ja2luZyBp ZiBsaWJjLnRocmVhZHNfbWludXNfMSBpcyB6ZXJvLiAqLwotKwlsaWJjLnRocmVhZHNfbWludXNf MS0tOwotKwlzZWxmLT5uZXh0LT5wcmV2ID0gc2VsZi0+cHJldjsKLSsJc2VsZi0+cHJldi0+bmV4 dCA9IHNlbGYtPm5leHQ7Ci0rCXNlbGYtPnByZXYgPSBzZWxmLT5uZXh0ID0gc2VsZjsKLSsKLSAJ LyogVGhpcyBhdG9taWMgcG90ZW50aWFsbHkgY29tcGV0ZXMgd2l0aCBhIGNvbmN1cnJlbnQgcHRo cmVhZF9kZXRhY2gKLSAJICogY2FsbDsgdGhlIGxvc2VyIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVl aW5nIHRocmVhZCByZXNvdXJjZXMuICovCi0gCWludCBzdGF0ZSA9IGFfY2FzKCZzZWxmLT5kZXRh Y2hfc3RhdGUsIERUX0pPSU5BQkxFLCBEVF9FWElUSU5HKTsKLS0tIAotMi4yMS4wCi0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDJfZG9uX3RfdXNlX2xpYmNfdGhyZWFkc19t aW51c18xX2FzX3JlbGF4ZWRfYXRvbWljX2Zvci5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVz LzAwMDJfZG9uX3RfdXNlX2xpYmNfdGhyZWFkc19taW51c18xX2FzX3JlbGF4ZWRfYXRvbWljX2Zv ci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA2MDc2MmU5OWE2Mi4uMDAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3VzZV9saWJj X3RocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3IucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw3OCArMCwwIEBACi0+RnJvbSBlMDFiNTkzOWIzOGFlYTVlY2JlNDE2NzA2NDMxOTk4 MjU4NzRiMjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRh bGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogVGh1LCAyMSBNYXkgMjAyMCAyMzozMjo0NSAtMDQwMAot U3ViamVjdDogW1BBVENIIDIvNF0gZG9uJ3QgdXNlIGxpYmMudGhyZWFkc19taW51c18xIGFzIHJl bGF4ZWQgYXRvbWljIGZvcgotIHNraXBwaW5nIGxvY2tzCi0KLWFmdGVyIGFsbCBidXQgdGhlIGxh c3QgdGhyZWFkIGV4aXRzLCB0aGUgbmV4dCB0aHJlYWQgdG8gb2JzZXJ2ZQotbGliYy50aHJlYWRz X21pbnVzXzE9PTAgYW5kIGNvbmNsdWRlIHRoYXQgaXQgY2FuIHNraXAgbG9ja2luZyBmYWlscyB0 bwotc3luY2hyb25pemUgd2l0aCBhbnkgY2hhbmdlcyB0byBtZW1vcnkgdGhhdCB3ZXJlIG1hZGUg YnkgdGhlCi1sYXN0LWV4aXRpbmcgdGhyZWFkLiB0aGlzIGNhbiBwcm9kdWNlIGRhdGEgcmFjZXMu Ci0KLW9uIHNvbWUgYXJjaHMsIGF0IGxlYXN0IHg4NiwgbWVtb3J5IHN5bmNocm9uaXphdGlvbiBp cyB1bmxpa2VseSB0byBiZQotYSBwcm9ibGVtOyBob3dldmVyLCB3aXRoIHRoZSBpbmxpbmUgbG9j a3MgaW4gbWFsbG9jLCBza2lwcGluZyB0aGUgbG9jawotYWxzbyBlbGltaW5hdGVkIHRoZSBjb21w aWxlciBiYXJyaWVyLCBhbmQgY2F1c2VkIGNvZGUgdGhhdCBuZWVkZWQgdG8KLXJlLWNoZWNrIGNo dW5rIGluLXVzZSBiaXRzIGFmdGVyIG9idGFpbmluZyB0aGUgbG9jayB0byByZXVzZSBhIHN0YWxl Ci12YWx1ZSwgcG9zc2libHkgZnJvbSBiZWZvcmUgdGhlIHByb2Nlc3MgYmVjYW1lIHNpbmdsZS10 aHJlYWRlZC4gdGhpcwotaW4gdHVybiBwcm9kdWNlZCBjb3JydXB0aW9uIG9mIHRoZSBoZWFwIHN0 YXRlLgotCi1zb21lIHVzZXMgb2YgbGliYy50aHJlYWRzX21pbnVzXzEgcmVtYWluLCBlc3BlY2lh bGx5IGZvciBhbGxvY2F0aW9uIG9mCi1uZXcgVExTIGluIHRoZSBkeW5hbWljIGxpbmtlcjsgb3Ro ZXJ3aXNlLCBpdCBjb3VsZCBiZSByZW1vdmVkCi1lbnRpcmVseS4gaXQncyBtYWRlIG5vbi12b2xh dGlsZSB0byByZWZsZWN0IHRoYXQgdGhlIHJlbWFpbmluZwotYWNjZXNzZXMgYXJlIG9ubHkgbWFk ZSB1bmRlciBsb2NrIG9uIHRoZSB0aHJlYWQgbGlzdC4KLQotaW5zdGVhZCBvZiBsaWJjLnRocmVh ZHNfbWludXNfMSwgbGliYy50aHJlYWRlZCBpcyBub3cgdXNlZCBmb3IKLXNraXBwaW5nIGxvY2tz LiB0aGUgZGlmZmVyZW5jZSBpcyB0aGF0IGxpYmMudGhyZWFkZWQgaXMgcGVybWFuZW50bHkKLXRy dWUgb25jZSBhbiBhZGRpdGlvbmFsIHRocmVhZCBoYXMgYmVlbiBjcmVhdGVkLiB0aGlzIHdpbGwg cHJvZHVjZQotc29tZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGluIHByb2Nlc3NlcyB0aGF0IGFy ZSBtb3N0bHkKLXNpbmdsZS10aHJlYWRlZCBidXQgb2NjYXNpb25hbGx5IGNyZWF0aW5nIHRocmVh ZHMuIGluIHRoZSBmdXR1cmUgaXQKLW1heSBiZSBwb3NzaWJsZSB0byBicmluZyBiYWNrIHRoZSBm dWxsIGxvY2stc2tpcHBpbmcsIGJ1dCBtb3JlIGNhcmUKLW5lZWRzIHRvIGJlIHRha2VuIHRvIHBy b2R1Y2UgYSBzYWZlIGRlc2lnbi4KLS0tLQotIHNyYy9pbnRlcm5hbC9saWJjLmggfCAyICstCi0g c3JjL21hbGxvYy9tYWxsb2MuYyB8IDIgKy0KLSBzcmMvdGhyZWFkL19fbG9jay5jIHwgMiArLQot IDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvc3JjL2ludGVybmFsL2xpYmMuaCBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLWluZGV4 IGFjOTdkYzdlLi5jMDYxNDg1MiAxMDA2NDQKLS0tLSBhL3NyYy9pbnRlcm5hbC9saWJjLmgKLSsr KyBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLUBAIC0yMSw3ICsyMSw3IEBAIHN0cnVjdCBfX2xpYmMg ewotIAlpbnQgY2FuX2RvX3RocmVhZHM7Ci0gCWludCB0aHJlYWRlZDsKLSAJaW50IHNlY3VyZTsK LS0Jdm9sYXRpbGUgaW50IHRocmVhZHNfbWludXNfMTsKLSsJaW50IHRocmVhZHNfbWludXNfMTsK LSAJc2l6ZV90ICphdXh2OwotIAlzdHJ1Y3QgdGxzX21vZHVsZSAqdGxzX2hlYWQ7Ci0gCXNpemVf dCB0bHNfc2l6ZSwgdGxzX2FsaWduLCB0bHNfY250OwotZGlmZiAtLWdpdCBhL3NyYy9tYWxsb2Mv bWFsbG9jLmMgYi9zcmMvbWFsbG9jL21hbGxvYy5jCi1pbmRleCA5Njk4MjU5Ni4uMjU1M2E2MmUg MTAwNjQ0Ci0tLS0gYS9zcmMvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9zcmMvbWFsbG9jL21hbGxv Yy5jCi1AQCAtMjYsNyArMjYsNyBAQCBpbnQgX19tYWxsb2NfcmVwbGFjZWQ7Ci0gCi0gc3RhdGlj IGlubGluZSB2b2lkIGxvY2sodm9sYXRpbGUgaW50ICpsaykKLSB7Ci0tCWlmIChsaWJjLnRocmVh ZHNfbWludXNfMSkKLSsJaWYgKGxpYmMudGhyZWFkZWQpCi0gCQl3aGlsZShhX3N3YXAobGssIDEp KSBfX3dhaXQobGssIGxrKzEsIDEsIDEpOwotIH0KLSAKLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFk L19fbG9jay5jIGIvc3JjL3RocmVhZC9fX2xvY2suYwotaW5kZXggNDU1NTdjODguLjViOWIxNDRl IDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9fX2xvY2suYwotKysrIGIvc3JjL3RocmVhZC9fX2xv Y2suYwotQEAgLTE4LDcgKzE4LDcgQEAKLSAKLSB2b2lkIF9fbG9jayh2b2xhdGlsZSBpbnQgKmwp Ci0gewotLQlpZiAoIWxpYmMudGhyZWFkc19taW51c18xKSByZXR1cm47Ci0rCWlmICghbGliYy50 aHJlYWRlZCkgcmV0dXJuOwotIAkvKiBmYXN0IHBhdGg6IElOVF9NSU4gZm9yIHRoZSBsb2NrLCAr MSBmb3IgdGhlIGNvbmdlc3Rpb24gKi8KLSAJaW50IGN1cnJlbnQgPSBhX2NhcyhsLCAwLCBJTlRf TUlOICsgMSk7Ci0gCWlmICghY3VycmVudCkgcmV0dXJuOwotLS0gCi0yLjIxLjAKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGli Y19zdHJ1Y3RfbWVtYmVycy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDNfY3V0X2Rv d25fc2l6ZV9vZl9zb21lX2xpYmNfc3RydWN0X21lbWJlcnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDU0MGM1ZDk1MDE5NTcuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGliY19zdHJ1Y3RfbWVt YmVycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLT5Gcm9tIGYxMjg4OGU5 ZWI5ZWVkNjBjYzI2NmI4OTlkY2FmZWNiNDc1Mjk2NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBGcmksIDIyIE1h eSAyMDIwIDE3OjI1OjM4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMy80XSBjdXQgZG93biBzaXpl IG9mIHNvbWUgbGliYyBzdHJ1Y3QgbWVtYmVycwotCi10aGVzZSBhcmUgYWxsIGZsYWdzIHRoYXQg Y2FuIGJlIHNpbmdsZS1ieXRlIHZhbHVlcy4KLS0tLQotIHNyYy9pbnRlcm5hbC9saWJjLmggfCA2 ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9zcmMvaW50ZXJuYWwvbGliYy5oIGIvc3JjL2ludGVybmFsL2xpYmMu aAotaW5kZXggYzA2MTQ4NTIuLmQ0N2Y1OGUwIDEwMDY0NAotLS0tIGEvc3JjL2ludGVybmFsL2xp YmMuaAotKysrIGIvc3JjL2ludGVybmFsL2xpYmMuaAotQEAgLTE4LDkgKzE4LDkgQEAgc3RydWN0 IHRsc19tb2R1bGUgewotIH07Ci0gCi0gc3RydWN0IF9fbGliYyB7Ci0tCWludCBjYW5fZG9fdGhy ZWFkczsKLS0JaW50IHRocmVhZGVkOwotLQlpbnQgc2VjdXJlOwotKwljaGFyIGNhbl9kb190aHJl YWRzOwotKwljaGFyIHRocmVhZGVkOwotKwljaGFyIHNlY3VyZTsKLSAJaW50IHRocmVhZHNfbWlu dXNfMTsKLSAJc2l6ZV90ICphdXh2OwotIAlzdHJ1Y3QgdGxzX21vZHVsZSAqdGxzX2hlYWQ7Ci0t LSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDA0X3Jlc3Rv cmVfbG9ja19za2lwcGluZ19mb3JfcHJvY2Vzc2VzX3RoYXRfcmV0dXJuX3RvX3MucGF0Y2ggYi9z cmNwa2dzL211c2wvcGF0Y2hlcy8wMDA0X3Jlc3RvcmVfbG9ja19za2lwcGluZ19mb3JfcHJvY2Vz c2VzX3RoYXRfcmV0dXJuX3RvX3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGU3MDNjMWY0MDNjNTkuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMv MDAwNF9yZXN0b3JlX2xvY2tfc2tpcHBpbmdfZm9yX3Byb2Nlc3Nlc190aGF0X3JldHVybl90b19z LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLT5Gcm9tIDhkODFiYThjMGJj NmZlMzExMzZjYjE1YzljODJlZjRjMjQ5NjUwNDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBGcmksIDIyIE1heSAy MDIwIDE3OjQ1OjQ3IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggNC80XSByZXN0b3JlIGxvY2stc2tp cHBpbmcgZm9yIHByb2Nlc3NlcyB0aGF0IHJldHVybiB0bwotIHNpbmdsZS10aHJlYWRlZCBzdGF0 ZQotCi10aGUgZGVzaWduIHVzZWQgaGVyZSByZWxpZXMgb24gdGhlIGJhcnJpZXIgcHJvdmlkZWQg YnkgdGhlIGZpcnN0IGxvY2sKLW9wZXJhdGlvbiBhZnRlciB0aGUgcHJvY2VzcyByZXR1cm5zIHRv IHNpbmdsZS10aHJlYWRlZCBzdGF0ZSB0bwotc3luY2hyb25pemUgd2l0aCBhY3Rpb25zIGJ5IHRo ZSBsYXN0IHRocmVhZCB0aGF0IGV4aXRlZC4gYnkgc3RvcmluZwotdGhlIGludGVudCB0byBjaGFu Z2UgbW9kZXMgaW4gdGhlIHNhbWUgb2JqZWN0IHVzZWQgdG8gZGV0ZWN0IHdoZXRoZXIKLWxvY2tp bmcgaXMgbmVlZGVkLCBpdCdzIHBvc3NpYmxlIHRvIGF2b2lkIGFuIGV4dHJhIChwb3NzaWJseSBj b3N0bHkpCi1tZW1vcnkgbG9hZCBhZnRlciB0aGUgbG9jayBpcyB0YWtlbi4KLS0tLQotIHNyYy9p bnRlcm5hbC9saWJjLmggICAgICAgICB8IDEgKwotIHNyYy9tYWxsb2MvbWFsbG9jLmMgICAgICAg ICB8IDUgKysrKy0KLSBzcmMvdGhyZWFkL19fbG9jay5jICAgICAgICAgfCA0ICsrKy0KLSBzcmMv dGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMgfCA4ICsrKystLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ludGVy bmFsL2xpYmMuaCBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLWluZGV4IGQ0N2Y1OGUwLi42MTliYmE4 NiAxMDA2NDQKLS0tLSBhL3NyYy9pbnRlcm5hbC9saWJjLmgKLSsrKyBiL3NyYy9pbnRlcm5hbC9s aWJjLmgKLUBAIC0yMSw2ICsyMSw3IEBAIHN0cnVjdCBfX2xpYmMgewotIAljaGFyIGNhbl9kb190 aHJlYWRzOwotIAljaGFyIHRocmVhZGVkOwotIAljaGFyIHNlY3VyZTsKLSsJdm9sYXRpbGUgc2ln bmVkIGNoYXIgbmVlZF9sb2NrczsKLSAJaW50IHRocmVhZHNfbWludXNfMTsKLSAJc2l6ZV90ICph dXh2OwotIAlzdHJ1Y3QgdGxzX21vZHVsZSAqdGxzX2hlYWQ7Ci1kaWZmIC0tZ2l0IGEvc3JjL21h bGxvYy9tYWxsb2MuYyBiL3NyYy9tYWxsb2MvbWFsbG9jLmMKLWluZGV4IDI1NTNhNjJlLi5hODAz ZDRjOSAxMDA2NDQKLS0tLSBhL3NyYy9tYWxsb2MvbWFsbG9jLmMKLSsrKyBiL3NyYy9tYWxsb2Mv bWFsbG9jLmMKLUBAIC0yNiw4ICsyNiwxMSBAQCBpbnQgX19tYWxsb2NfcmVwbGFjZWQ7Ci0gCi0g c3RhdGljIGlubGluZSB2b2lkIGxvY2sodm9sYXRpbGUgaW50ICpsaykKLSB7Ci0tCWlmIChsaWJj LnRocmVhZGVkKQotKwlpbnQgbmVlZF9sb2NrcyA9IGxpYmMubmVlZF9sb2NrczsKLSsJaWYgKG5l ZWRfbG9ja3MpIHsKLSAJCXdoaWxlKGFfc3dhcChsaywgMSkpIF9fd2FpdChsaywgbGsrMSwgMSwg MSk7Ci0rCQlpZiAobmVlZF9sb2NrcyA8IDApIGxpYmMubmVlZF9sb2NrcyA9IDA7Ci0rCX0KLSB9 Ci0gCi0gc3RhdGljIGlubGluZSB2b2lkIHVubG9jayh2b2xhdGlsZSBpbnQgKmxrKQotZGlmZiAt LWdpdCBhL3NyYy90aHJlYWQvX19sb2NrLmMgYi9zcmMvdGhyZWFkL19fbG9jay5jCi1pbmRleCA1 YjliMTQ0ZS4uNjBlZWNlNDkgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL19fbG9jay5jCi0rKysg Yi9zcmMvdGhyZWFkL19fbG9jay5jCi1AQCAtMTgsOSArMTgsMTEgQEAKLSAKLSB2b2lkIF9fbG9j ayh2b2xhdGlsZSBpbnQgKmwpCi0gewotLQlpZiAoIWxpYmMudGhyZWFkZWQpIHJldHVybjsKLSsJ aW50IG5lZWRfbG9ja3MgPSBsaWJjLm5lZWRfbG9ja3M7Ci0rCWlmICghbmVlZF9sb2NrcykgcmV0 dXJuOwotIAkvKiBmYXN0IHBhdGg6IElOVF9NSU4gZm9yIHRoZSBsb2NrLCArMSBmb3IgdGhlIGNv bmdlc3Rpb24gKi8KLSAJaW50IGN1cnJlbnQgPSBhX2NhcyhsLCAwLCBJTlRfTUlOICsgMSk7Ci0r CWlmIChuZWVkX2xvY2tzIDwgMCkgbGliYy5uZWVkX2xvY2tzID0gMDsKLSAJaWYgKCFjdXJyZW50 KSByZXR1cm47Ci0gCS8qIEEgZmlyc3Qgc3BpbiBsb29wLCBmb3IgbWVkaXVtIGNvbmdlc3Rpb24u ICovCi0gCWZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDsgKytpKSB7Ci1kaWZmIC0tZ2l0IGEv c3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5j Ci1pbmRleCA2YTNiMGMyMS4uNmJkZmI0NGYgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0aHJl YWRfY3JlYXRlLmMKLSsrKyBiL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwotQEAgLTExOCw4 ICsxMTgsOCBAQCBfTm9yZXR1cm4gdm9pZCBfX3B0aHJlYWRfZXhpdCh2b2lkICpyZXN1bHQpCi0g CSAqIHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB3aGljaCBvbmx5IGhhcHBlbnMgYWZ0ZXIg U1lTX2V4aXQKLSAJICogaGFzIGJlZW4gY2FsbGVkLCB2aWEgdGhlIGV4aXQgZnV0ZXggYWRkcmVz cyBwb2ludGluZyBhdCB0aGUgbG9jay4KLSAJICogVGhpcyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIg YW55IHBvc3NpYmxlIGNhbGxzIHRvIExPQ0soKSB0aGF0IG1pZ2h0Ci0tCSAqIHNraXAgbG9ja2lu ZyBpZiBsaWJjLnRocmVhZHNfbWludXNfMSBpcyB6ZXJvLiAqLwotLQlsaWJjLnRocmVhZHNfbWlu dXNfMS0tOwotKwkgKiBza2lwIGxvY2tpbmcgaWYgcHJvY2VzcyBhcHBlYXJzIHNpbmdsZS10aHJl YWRlZC4gKi8KLSsJaWYgKCEtLWxpYmMudGhyZWFkc19taW51c18xKSBsaWJjLm5lZWRfbG9ja3Mg PSAtMTsKLSAJc2VsZi0+bmV4dC0+cHJldiA9IHNlbGYtPnByZXY7Ci0gCXNlbGYtPnByZXYtPm5l eHQgPSBzZWxmLT5uZXh0OwotIAlzZWxmLT5wcmV2ID0gc2VsZi0+bmV4dCA9IHNlbGY7Ci1AQCAt MzM5LDcgKzMzOSw3IEBAIGludCBfX3B0aHJlYWRfY3JlYXRlKHB0aHJlYWRfdCAqcmVzdHJpY3Qg cmVzLCBjb25zdCBwdGhyZWFkX2F0dHJfdCAqcmVzdHJpY3QgYXR0Ci0gCQl+KDFVTDw8KChTSUdD QU5DRUwtMSklKDgqc2l6ZW9mKGxvbmcpKSkpOwotIAotIAlfX3RsX2xvY2soKTsKLS0JbGliYy50 aHJlYWRzX21pbnVzXzErKzsKLSsJaWYgKCFsaWJjLnRocmVhZHNfbWludXNfMSsrKSBsaWJjLm5l ZWRfbG9ja3MgPSAxOwotIAlyZXQgPSBfX2Nsb25lKChjMTEgPyBzdGFydF9jMTEgOiBzdGFydCks IHN0YWNrLCBmbGFncywgYXJncywgJm5ldy0+dGlkLCBUUF9BREoobmV3KSwgJl9fdGhyZWFkX2xp c3RfbG9jayk7Ci0gCi0gCS8qIEFsbCBjbG9uZSBmYWlsdXJlcyB0cmFuc2xhdGUgdG8gRUFHQUlO LiBJZiBleHBsaWNpdCBzY2hlZHVsaW5nCi1AQCAtMzYzLDcgKzM2Myw3IEBAIGludCBfX3B0aHJl YWRfY3JlYXRlKHB0aHJlYWRfdCAqcmVzdHJpY3QgcmVzLCBjb25zdCBwdGhyZWFkX2F0dHJfdCAq cmVzdHJpY3QgYXR0Ci0gCQluZXctPm5leHQtPnByZXYgPSBuZXc7Ci0gCQluZXctPnByZXYtPm5l eHQgPSBuZXc7Ci0gCX0gZWxzZSB7Ci0tCQlsaWJjLnRocmVhZHNfbWludXNfMS0tOwotKwkJaWYg KCEtLWxpYmMudGhyZWFkc19taW51c18xKSBsaWJjLm5lZWRfbG9ja3MgPSAwOwotIAl9Ci0gCV9f dGxfdW5sb2NrKCk7Ci0gCV9fcmVzdG9yZV9zaWdzKCZzZXQpOwotLS0gCi0yLjIxLjAKLQotCmRp ZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy85OGU2ODhhOWRhNWU3YjI5MjVkZGExN2Ey ZDY4MjBkZGRmMWZiMjg3LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvOThlNjg4YTlkYTVl N2IyOTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4Ny5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYThiZmE2NmQ2YzQ3ZC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wv cGF0Y2hlcy85OGU2ODhhOWRhNWU3YjI5MjVkZGExN2EyZDY4MjBkZGRmMWZiMjg3LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAKLUZyb20gOThlNjg4YTlkYTVlN2IyOTI1ZGRh MTdhMmQ2ODIwZGRkZjFmYjI4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IElzbWFl bCBMdWNlbm8gPGlzbWFlbEBpb2Rldi5jby51az4KLURhdGU6IFN1biwgMTUgQXVnIDIwMjEgMTc6 NTE6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gZGVmaW5lIE5VTEwgYXMgbnVsbHB0ciB3aGVu IHVzZWQgaW4gQysrMTEgb3IgbGF0ZXIKLQotVGhpcyBzaG91bGQgYmUgc2FmZXIgZm9yIGNhc3Rp bmcgYW5kIG1vcmUgY29tcGF0aWJsZSB3aXRoIGV4aXN0aW5nIGNvZGUKLWJhc2VzIHRoYXQgd3Jv bmdseSBhc3N1bWUgaXQgbXVzdCBiZSBkZWZpbmVkIGFzIGEgcG9pbnRlci4KLS0tLQotIGluY2x1 ZGUvbG9jYWxlLmggfCA0ICsrKy0KLSBpbmNsdWRlL3N0ZGRlZi5oIHwgNCArKystCi0gaW5jbHVk ZS9zdGRpby5oICB8IDQgKysrLQotIGluY2x1ZGUvc3RkbGliLmggfCA0ICsrKy0KLSBpbmNsdWRl L3N0cmluZy5oIHwgNCArKystCi0gaW5jbHVkZS90aW1lLmggICB8IDQgKysrLQotIGluY2x1ZGUv dW5pc3RkLmggfCA0ICsrKy0KLSBpbmNsdWRlL3djaGFyLmggIHwgNCArKystCi0gOCBmaWxlcyBj aGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv aW5jbHVkZS9sb2NhbGUuaCBiL2luY2x1ZGUvbG9jYWxlLmgKLWluZGV4IGNlMzg0MzgxYy4uMTEx MDZmZWE4IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9sb2NhbGUuaAotKysrIGIvaW5jbHVkZS9sb2Nh bGUuaAotQEAgLTcsNyArNyw5IEBAIGV4dGVybiAiQyIgewotIAotICNpbmNsdWRlIDxmZWF0dXJl cy5oPgotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNM Ci0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNk ZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1n aXQgYS9pbmNsdWRlL3N0ZGRlZi5oIGIvaW5jbHVkZS9zdGRkZWYuaAotaW5kZXggYmQ3NTM4NTM1 Li5mMjViODYzOTYgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N0ZGRlZi5oCi0rKysgYi9pbmNsdWRl L3N0ZGRlZi5oCi1AQCAtMSw3ICsxLDkgQEAKLSAjaWZuZGVmIF9TVERERUZfSAotICNkZWZpbmUg X1NURERFRl9ICi0gCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0rI2lmIF9fY3BsdXNwbHVzID49IDIw MTEwM0wKLSsjZGVmaW5lIE5VTEwgbnVsbHB0cgotKyNlbGlmIGRlZmluZWQoX19jcGx1c3BsdXMp Ci0gI2RlZmluZSBOVUxMIDBMCi0gI2Vsc2UKLSAjZGVmaW5lIE5VTEwgKCh2b2lkKikwKQotZGlm ZiAtLWdpdCBhL2luY2x1ZGUvc3RkaW8uaCBiL2luY2x1ZGUvc3RkaW8uaAotaW5kZXggMzYwNDE5 OGMzLi5kMWVkMDFmMDMgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N0ZGlvLmgKLSsrKyBiL2luY2x1 ZGUvc3RkaW8uaAotQEAgLTI1LDcgKzI1LDkgQEAgZXh0ZXJuICJDIiB7Ci0gCi0gI2luY2x1ZGUg PGJpdHMvYWxsdHlwZXMuaD4KLSAKLS0jaWZkZWYgX19jcGx1c3BsdXMKLSsjaWYgX19jcGx1c3Bs dXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0rI2VsaWYgZGVmaW5lZChfX2Nw bHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNkZWZpbmUgTlVMTCAoKHZvaWQq KTApCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKLWlu ZGV4IDdhZjg2ZTNiYy4uYjUwN2NhMzNiIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdGRsaWIuaAot KysrIGIvaW5jbHVkZS9zdGRsaWIuaAotQEAgLTcsNyArNyw5IEBAIGV4dGVybiAiQyIgewotIAot ICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2Nw bHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVk KF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgo dm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0cmluZy5oIGIvaW5jbHVkZS9zdHJpbmcu aAotaW5kZXggNzk1YTJhYmNkLi40M2FkMDk0MmUgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N0cmlu Zy5oCi0rKysgYi9pbmNsdWRlL3N0cmluZy5oCi1AQCAtNyw3ICs3LDkgQEAgZXh0ZXJuICJDIiB7 Ci0gCi0gI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0gCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0rI2lm IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5VTEwgbnVsbHB0cgotKyNlbGlmIGRl ZmluZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBMCi0gI2Vsc2UKLSAjZGVmaW5lIE5V TEwgKCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvdGltZS5oIGIvaW5jbHVkZS90aW1l LmgKLWluZGV4IDU0OTRkZjE4My4uM2Q5NDgzNzIwIDEwMDY0NAotLS0tIGEvaW5jbHVkZS90aW1l LmgKLSsrKyBiL2luY2x1ZGUvdGltZS5oCi1AQCAtNyw3ICs3LDkgQEAgZXh0ZXJuICJDIiB7Ci0g Ci0gI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0gCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0rI2lmIF9f Y3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5VTEwgbnVsbHB0cgotKyNlbGlmIGRlZmlu ZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBMCi0gI2Vsc2UKLSAjZGVmaW5lIE5VTEwg KCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvdW5pc3RkLmggYi9pbmNsdWRlL3VuaXN0 ZC5oCi1pbmRleCAxMzA2NDAyNjAuLmVlMmRiZThhZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvdW5p c3RkLmgKLSsrKyBiL2luY2x1ZGUvdW5pc3RkLmgKLUBAIC0xNSw3ICsxNSw5IEBAIGV4dGVybiAi QyIgewotICNkZWZpbmUgU0VFS19DVVIgMQotICNkZWZpbmUgU0VFS19FTkQgMgotIAotLSNpZmRl ZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxM IG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAot ICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3dj aGFyLmggYi9pbmNsdWRlL3djaGFyLmgKLWluZGV4IDg4ZWI1NWIxOC4uZWQ1ZDc3NGRmIDEwMDY0 NAotLS0tIGEvaW5jbHVkZS93Y2hhci5oCi0rKysgYi9pbmNsdWRlL3djaGFyLmgKLUBAIC0zOCw3 ICszOCw5IEBAIGV4dGVybiAiQyIgewotICNkZWZpbmUgV0NIQVJfTUlOICgtMS0weDdmZmZmZmZm K0wnXDAnKQotICNlbmRpZgotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1 cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9fY3Bs dXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9pZCop MCkKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvOTlkNTA5OGE4ODVmZWFlM2Fl OGMzMmI0MDczNTBkOGNhODVkZDE3OC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5ZDUw OThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDRlMDNhZDE2MDdjZTkuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9tdXNsL3BhdGNoZXMvOTlkNTA5OGE4ODVmZWFlM2FlOGMzMmI0MDczNTBkOGNhODVkZDE3OC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi1Gcm9tIDk5ZDUwOThhODg1ZmVh ZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBKdWxpZW4gUmFtc2VpZXIgPGoucmFtc2VpZXJAZ21haWwuY29tPgotRGF0ZTogU3VuLCAxOCBP Y3QgMjAyMCAxMjoxNTowNiAtMDQwMAotU3ViamVjdDogdXBkYXRlIGNyeXB0X2Jsb3dmaXNoIHRv IHN1cHBvcnQgJDJiJCBwcmVmaXgKLQotTWVyZ2UgY2hhbmdlcyBmcm9tIFNvbGFyIERlc2lnbmVy J3MgY3J5cHRfYmxvd2Zpc2ggdjEuMy4gVGhpcyBtYWtlcwotY3J5cHRfYmxvd2Zpc2ggZnVsbHkg Y29tcGF0aWJsZSB3aXRoIE9wZW5CU0QncyBiY3J5cHQgYnkgYWRkaW5nCi1zdXBwb3J0IGZvciB0 aGUgJDJiJCBwcmVmaXggKHdoaWNoIGJlaGF2ZXMgdGhlIHNhbWUgYXMKLWNyeXB0X2Jsb3dmaXNo J3MgJDJ5JCkuCi0tLS0KLSBzcmMvY3J5cHQvY3J5cHRfYmxvd2Zpc2guYyB8IDM4ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDIzIGluc2Vy dGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi0obGltaXRlZCB0byAnc3JjL2NyeXB0L2NyeXB0 X2Jsb3dmaXNoLmMnKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMg Yi9zcmMvY3J5cHQvY3J5cHRfYmxvd2Zpc2guYwotaW5kZXggZDNmNzk4NTEuLmQ3MjI2MDdiIDEw MDY0NAotLS0tIGEvc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMKLSsrKyBiL3NyYy9jcnlwdC9j cnlwdF9ibG93ZmlzaC5jCi1AQCAtMTUsNyArMTUsNyBAQAotICAqIE5vIGNvcHlyaWdodCBpcyBj bGFpbWVkLCBhbmQgdGhlIHNvZnR3YXJlIGlzIGhlcmVieSBwbGFjZWQgaW4gdGhlIHB1YmxpYwot ICAqIGRvbWFpbi4gIEluIGNhc2UgdGhpcyBhdHRlbXB0IHRvIGRpc2NsYWltIGNvcHlyaWdodCBh bmQgcGxhY2UgdGhlIHNvZnR3YXJlCi0gICogaW4gdGhlIHB1YmxpYyBkb21haW4gaXMgZGVlbWVk IG51bGwgYW5kIHZvaWQsIHRoZW4gdGhlIHNvZnR3YXJlIGlzCi0tICogQ29weXJpZ2h0IChjKSAx OTk4LTIwMTIgU29sYXIgRGVzaWduZXIgYW5kIGl0IGlzIGhlcmVieSByZWxlYXNlZCB0byB0aGUK LSsgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAxNCBTb2xhciBEZXNpZ25lciBhbmQgaXQgaXMgaGVy ZWJ5IHJlbGVhc2VkIHRvIHRoZQotICAqIGdlbmVyYWwgcHVibGljIHVuZGVyIHRoZSBmb2xsb3dp bmcgdGVybXM6Ci0gICoKLSAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLUBAIC0zMSwxMiArMzEsMTIgQEAKLSAgKiB5 b3UgcGxhY2UgdGhpcyBjb2RlIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB5b3UgbWFrZSB1bmRlciBh IGxpY2Vuc2UKLSAgKiBvZiB5b3VyIGNob2ljZS4KLSAgKgotLSAqIFRoaXMgaW1wbGVtZW50YXRp b24gaXMgbW9zdGx5IGNvbXBhdGlibGUgd2l0aCBPcGVuQlNEJ3MgYmNyeXB0LmMgKHByZWZpeAot LSAqICIkMmEkIikgYnkgTmllbHMgUHJvdm9zIDxwcm92b3MgYXQgY2l0aS51bWljaC5lZHU+LCBh bmQgdXNlcyBzb21lIG9mIGhpcwotLSAqIGlkZWFzLiAgVGhlIHBhc3N3b3JkIGhhc2hpbmcgYWxn b3JpdGhtIHdhcyBkZXNpZ25lZCBieSBEYXZpZCBNYXppZXJlcwotLSAqIDxkbSBhdCBsY3MubWl0 LmVkdT4uICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbGV2ZWwgb2YgY29tcGF0aWJpbGl0 eSwKLS0gKiBwbGVhc2UgcmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIEJGX3NldF9rZXkoKSBiZWxv dyBhbmQgdG8gdGhlIGluY2x1ZGVkCi0tICogY3J5cHQoMykgbWFuIHBhZ2UuCi0rICogVGhpcyBp bXBsZW1lbnRhdGlvbiBpcyBmdWxseSBjb21wYXRpYmxlIHdpdGggT3BlbkJTRCdzIGJjcnlwdC5j IGZvciBwcmVmaXgKLSsgKiAiJDJiJCIsIG9yaWdpbmFsbHkgYnkgTmllbHMgUHJvdm9zIDxwcm92 b3MgYXQgY2l0aS51bWljaC5lZHU+LCBhbmQgaXQgdXNlcwotKyAqIHNvbWUgb2YgaGlzIGlkZWFz LiAgVGhlIHBhc3N3b3JkIGhhc2hpbmcgYWxnb3JpdGhtIHdhcyBkZXNpZ25lZCBieSBEYXZpZAot KyAqIE1hemllcmVzIDxkbSBhdCBsY3MubWl0LmVkdT4uICBGb3IgaW5mb3JtYXRpb24gb24gdGhl IGxldmVsIG9mCi0rICogY29tcGF0aWJpbGl0eSBmb3IgYmNyeXB0IGhhc2ggcHJlZml4ZXMgb3Ro ZXIgdGhhbiAiJDJiJCIsIHBsZWFzZSByZWZlciB0bwotKyAqIHRoZSBjb21tZW50cyBpbiBCRl9z ZXRfa2V5KCkgYmVsb3cgYW5kIHRvIHRoZSBpbmNsdWRlZCBjcnlwdCgzKSBtYW4gcGFnZS4KLSAg KgotICAqIFRoZXJlJ3MgYSBwYXBlciBvbiB0aGUgYWxnb3JpdGhtIHRoYXQgZXhwbGFpbnMgaXRz IGRlc2lnbiBkZWNpc2lvbnM6Ci0gICoKLUBAIC01MzMsNiArNTMzLDcgQEAgc3RhdGljIHZvaWQg QkZfc2V0X2tleShjb25zdCBjaGFyICprZXksIEJGX2tleSBleHBhbmRlZCwgQkZfa2V5IGluaXRp YWwsCi0gICogVmFsaWQgY29tYmluYXRpb25zIG9mIHNldHRpbmdzIGFyZToKLSAgKgotICAqIFBy ZWZpeCAiJDJhJCI6IGJ1ZyA9IDAsIHNhZmV0eSA9IDB4MTAwMDAKLSsgKiBQcmVmaXggIiQyYiQi OiBidWcgPSAwLCBzYWZldHkgPSAwCi0gICogUHJlZml4ICIkMngkIjogYnVnID0gMSwgc2FmZXR5 ID0gMAotICAqIFByZWZpeCAiJDJ5JCI6IGJ1ZyA9IDAsIHNhZmV0eSA9IDAKLSAgKi8KLUBAIC01 OTYsMTIgKzU5NywxNCBAQCBzdGF0aWMgdm9pZCBCRl9zZXRfa2V5KGNvbnN0IGNoYXIgKmtleSwg QkZfa2V5IGV4cGFuZGVkLCBCRl9rZXkgaW5pdGlhbCwKLSAJaW5pdGlhbFswXSBePSBzaWduOwot IH0KLSAKLStzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBmbGFnc19ieV9zdWJ0eXBlWzI2XSA9 IHsKLSsJMiwgNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSsJMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgNCwgMAotK307Ci0rCi0gc3RhdGljIGNoYXIgKkJGX2Ny eXB0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqc2V0dGluZywKLSAJY2hhciAqb3V0cHV0 LCBCRl93b3JkIG1pbikKLSB7Ci0tCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGZsYWdzX2J5 X3N1YnR5cGVbMjZdID0KLS0JCXsyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LAotLQkJMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgNCwgMH07Ci0gCXN0cnVjdCB7 Ci0gCQlCRl9jdHggY3R4OwotIAkJQkZfa2V5IGV4cGFuZGVkX2tleTsKLUBAIC03NDYsOSArNzQ5 LDExIEBAIGNoYXIgKl9fY3J5cHRfYmxvd2Zpc2goY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFy ICpzZXR0aW5nLCBjaGFyICpvdXRwdXQpCi0gewotIAljb25zdCBjaGFyICp0ZXN0X2tleSA9ICI4 YiBceGQwXHhjMVx4ZDJceGNmXHhjY1x4ZDgiOwotIAljb25zdCBjaGFyICp0ZXN0X3NldHRpbmcg PSAiJDJhJDAwJGFiY2RlZmdoaWprbG1ub3BxcnN0dXUiOwotLQlzdGF0aWMgY29uc3QgY2hhciB0 ZXN0X2hhc2hbMl1bMzRdID0KLS0JCXsiVlVyUG1YRDZxL25WU1NwN3BORGhDUjkwNzFJZklSZVww XHg1NSIsIC8qICQyeCQgKi8KLS0JCSJpMUQ3MDl2ZmFtdWxpbWxHY3EwcXEzVXZ1VWFzdkVhXDBc eDU1In07IC8qICQyYSQsICQyeSQgKi8KLSsJc3RhdGljIGNvbnN0IGNoYXIgdGVzdF9oYXNoZXNb Ml1bMzRdID0gewotKwkJImkxRDcwOXZmYW11bGltbEdjcTBxcTNVdnVVYXN2RWFcMFx4NTUiLCAv KiAnYScsICdiJywgJ3knICovCi0rCQkiVlVyUG1YRDZxL25WU1NwN3BORGhDUjkwNzFJZklSZVww XHg1NSIsIC8qICd4JyAqLwotKwl9OwotKwljb25zdCBjaGFyICp0ZXN0X2hhc2ggPSB0ZXN0X2hh c2hlc1swXTsKLSAJY2hhciAqcmV0dmFsOwotIAljb25zdCBjaGFyICpwOwotIAlpbnQgb2s7Ci1A QCAtNzY4LDggKzc3MywxMSBAQCBjaGFyICpfX2NyeXB0X2Jsb3dmaXNoKGNvbnN0IGNoYXIgKmtl eSwgY29uc3QgY2hhciAqc2V0dGluZywgY2hhciAqb3V0cHV0KQotICAqIGRldGVjdGVkIGJ5IHRo ZSBzZWxmLXRlc3QuCi0gICovCi0gCW1lbWNweShidWYucywgdGVzdF9zZXR0aW5nLCBzaXplb2Yo YnVmLnMpKTsKLS0JaWYgKHJldHZhbCkKLSsJaWYgKHJldHZhbCkgewotKwkJdW5zaWduZWQgaW50 IGZsYWdzID0gZmxhZ3NfYnlfc3VidHlwZVtzZXR0aW5nWzJdIC0gJ2EnXTsKLSsJCXRlc3RfaGFz aCA9IHRlc3RfaGFzaGVzW2ZsYWdzICYgMV07Ci0gCQlidWYuc1syXSA9IHNldHRpbmdbMl07Ci0r CX0KLSAJbWVtc2V0KGJ1Zi5vLCAweDU1LCBzaXplb2YoYnVmLm8pKTsKLSAJYnVmLm9bc2l6ZW9m KGJ1Zi5vKSAtIDFdID0gMDsKLSAJcCA9IEJGX2NyeXB0KHRlc3Rfa2V5LCBidWYucywgYnVmLm8s IDEpOwotQEAgLTc3Nyw3ICs3ODUsNyBAQCBjaGFyICpfX2NyeXB0X2Jsb3dmaXNoKGNvbnN0IGNo YXIgKmtleSwgY29uc3QgY2hhciAqc2V0dGluZywgY2hhciAqb3V0cHV0KQotIAlvayA9IChwID09 IGJ1Zi5vICYmCi0gCSAgICAhbWVtY21wKHAsIGJ1Zi5zLCA3ICsgMjIpICYmCi0gCSAgICAhbWVt Y21wKHAgKyAoNyArIDIyKSwKLS0JICAgIHRlc3RfaGFzaFtidWYuc1syXSAmIDFdLAotKwkgICAg dGVzdF9oYXNoLAotIAkgICAgMzEgKyAxICsgMSArIDEpKTsKLSAKLSAJewotLS0gCi1jZ2l0IHYx LjIuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5w YXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL0NWRS0yMDIwLTI4OTI4LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2ZmM2I0ZWUwOGYwLi4wMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvbXVzbC9wYXRjaGVzL0NWRS0yMDIwLTI4OTI4LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNjQgKzAsMCBAQAotLS0tIGEvc3JjL211bHRpYnl0ZS93Y3NucnRvbWJzLmMKLSsrKyBi L3NyYy9tdWx0aWJ5dGUvd2NzbnJ0b21icy5jCi1AQCAtMSw0MSArMSwzMyBAQAotICNpbmNsdWRl IDx3Y2hhci5oPgotKyNpbmNsdWRlIDxsaW1pdHMuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0g Ci0gc2l6ZV90IHdjc25ydG9tYnMoY2hhciAqcmVzdHJpY3QgZHN0LCBjb25zdCB3Y2hhcl90ICoq cmVzdHJpY3Qgd2NzLCBzaXplX3Qgd24sIHNpemVfdCBuLCBtYnN0YXRlX3QgKnJlc3RyaWN0IHN0 KQotIHsKLS0Jc2l6ZV90IGwsIGNudD0wLCBuMjsKLS0JY2hhciAqcywgYnVmWzI1Nl07Ci0gCWNv bnN0IHdjaGFyX3QgKndzID0gKndjczsKLS0JY29uc3Qgd2NoYXJfdCAqdG1wX3dzOwotLQotLQlp ZiAoIWRzdCkgcyA9IGJ1ZiwgbiA9IHNpemVvZiBidWY7Ci0tCWVsc2UgcyA9IGRzdDsKLS0KLS0J d2hpbGUgKCB3cyAmJiBuICYmICggKG4yPXduKT49biB8fCBuMj4zMiApICkgewotLQkJaWYgKG4y Pj1uKSBuMj1uOwotLQkJdG1wX3dzID0gd3M7Ci0tCQlsID0gd2NzcnRvbWJzKHMsICZ3cywgbjIs IDApOwotLQkJaWYgKCEobCsxKSkgewotLQkJCWNudCA9IGw7Ci0tCQkJbiA9IDA7Ci0rCXNpemVf dCBjbnQgPSAwOwotKwlpZiAoIWRzdCkgbj0wOwotKwl3aGlsZSAod3MgJiYgd24pIHsKLSsJCWNo YXIgdG1wW01CX0xFTl9NQVhdOwotKwkJc2l6ZV90IGwgPSB3Y3J0b21iKG48TUJfTEVOX01BWCA/ IHRtcCA6IGRzdCwgKndzLCAwKTsKLSsJCWlmIChsPT0tMSkgewotKwkJCWNudCA9IC0xOwotIAkJ CWJyZWFrOwotIAkJfQotLQkJaWYgKHMgIT0gYnVmKSB7Ci0tCQkJcyArPSBsOwotKwkJaWYgKGRz dCkgewotKwkJCWlmIChuPE1CX0xFTl9NQVgpIHsKLSsJCQkJaWYgKGw+bikgYnJlYWs7Ci0rCQkJ CW1lbWNweShkc3QsIHRtcCwgbCk7Ci0rCQkJfQotKwkJCWRzdCArPSBsOwotIAkJCW4gLT0gbDsK LSAJCX0KLS0JCXduID0gd3MgPyB3biAtICh3cyAtIHRtcF93cykgOiAwOwotLQkJY250ICs9IGw7 Ci0tCX0KLS0JaWYgKHdzKSB3aGlsZSAobiAmJiB3bikgewotLQkJbCA9IHdjcnRvbWIocywgKndz LCAwKTsKLS0JCWlmICgobCsxKTw9MSkgewotLQkJCWlmICghbCkgd3MgPSAwOwotLQkJCWVsc2Ug Y250ID0gbDsKLSsJCWlmICghKndzKSB7Ci0rCQkJd3MgPSAwOwotIAkJCWJyZWFrOwotIAkJfQot LQkJd3MrKzsgd24tLTsKLS0JCS8qIHNhZmUgLSB0aGlzIGxvb3AgcnVucyBmZXdlciB0aGFuIHNp emVvZihidWYpIHRpbWVzICovCi0tCQlzKz1sOyBuLT1sOwotKwkJd3MrKzsKLSsJCXduLS07Ci0g CQljbnQgKz0gbDsKLSAJfQotIAlpZiAoZHN0KSAqd2NzID0gd3M7Ci0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0 Y2hlcy9hYXJjaDY0LWZyZWdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MjRlZWQxMWE4ZTUzLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Fh cmNoNjQtZnJlZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Vc2UgdHlw ZXMgY29tcGF0aWJsZSB3aXRoIGdsaWJjL2tlcm5lbCBoZWFkZXJzLgotCi1kaWZmIC0tZ2l0IGEv YXJjaC9hYXJjaDY0L2JpdHMvc2lnbmFsLmggYi9hcmNoL2FhcmNoNjQvYml0cy9zaWduYWwuaAot aW5kZXggYjcxMjYxZjUuLjUwOThjNzM0IDEwMDY0NAotLS0tIGEvYXJjaC9hYXJjaDY0L2JpdHMv c2lnbmFsLmgKLSsrKyBiL2FyY2gvYWFyY2g2NC9iaXRzL3NpZ25hbC5oCi1AQCAtMTEsNyArMTEs NyBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZ3JlZ190OwotIHR5cGVkZWYgdW5zaWduZWQgbG9u ZyBncmVnc2V0X3RbMzRdOwotIAotIHR5cGVkZWYgc3RydWN0IHsKLS0JbG9uZyBkb3VibGUgdnJl Z3NbMzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0gCXVuc2lnbmVkIGludCBmcHNyOwot IAl1bnNpZ25lZCBpbnQgZnBjcjsKLSB9IGZwcmVnc2V0X3Q7Ci1AQCAtMzQsNyArMzQsNyBAQCBz dHJ1Y3QgZnBzaW1kX2NvbnRleHQgewotIAlzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7Ci0gCXVu c2lnbmVkIGludCBmcHNyOwotIAl1bnNpZ25lZCBpbnQgZnBjcjsKLS0JbG9uZyBkb3VibGUgdnJl Z3NbMzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0gfTsKLSBzdHJ1Y3QgZXNyX2NvbnRl eHQgewotIAlzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7Ci1kaWZmIC0tZ2l0IGEvYXJjaC9hYXJj aDY0L2JpdHMvdXNlci5oIGIvYXJjaC9hYXJjaDY0L2JpdHMvdXNlci5oCi1pbmRleCBkMTJjZGY3 Zi4uOGExMDAyYWEgMTAwNjQ0Ci0tLS0gYS9hcmNoL2FhcmNoNjQvYml0cy91c2VyLmgKLSsrKyBi L2FyY2gvYWFyY2g2NC9iaXRzL3VzZXIuaAotQEAgLTYsNyArNiw3IEBAIHN0cnVjdCB1c2VyX3Jl Z3Nfc3RydWN0IHsKLSB9OwotIAotIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgewotLQlsb25n IGRvdWJsZSB2cmVnc1szMl07Ci0rCV9fdWludDEyOF90IHZyZWdzWzMyXTsKLSAJdW5zaWduZWQg aW50IGZwc3I7Ci0gCXVuc2lnbmVkIGludCBmcGNyOwotIH07CmRpZmYgLS1naXQgYS9zcmNwa2dz L211c2wvcGF0Y2hlcy9hZGQtcXNvcnRfci5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Fk ZC1xc29ydF9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDg1NDk2YWZi NjlmLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1xc29ydF9y LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLUZyb20gYjc2ZjM3ZmQ1NjI1 ZDAzODE0MWI1MjE4NDk1NmZiNGI3ODM4ZTlhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206ID0/VVRGLTg/cT89QzM9ODlyaWNvPTIwTm9ndWVpcmE/PSA8ZXJpY29uckBkaXNyb290Lm9y Zz4KLURhdGU6IFR1ZSwgOSBNYXIgMjAyMSAxODowMjoxMyAtMDMwMAotU3ViamVjdDogW1BBVENI XSBhZGQgcXNvcnRfciBhbmQgbWFrZSBxc29ydCBhIHdyYXBwZXIgYXJvdW5kIGl0Ci0KLXdlIG1h a2UgcXNvcnQgYSB3cmFwcGVyIGJ5IHByb3ZpZGluZyBhIHdyYXBwZXJfY21wIGZ1bmN0aW9uIHRo YXQgdXNlcwotdGhlIGV4dHJhIGFyZ3VtZW50IGFzIGEgZnVuY3Rpb24gcG9pbnRlci4gc2hvdWxk IGJlIG9wdGltaXplZCB0byBhIHRhaWwKLWNhbGwgb24gbW9zdCBhcmNoaXRlY3R1cmVzLCBhcyBs b25nIGFzIGl0J3MgYnVpbHQgd2l0aAotLWZvbWl0LWZyYW1lLXBvaW50ZXIsIHNvIHRoZSBwZXJm b3JtYW5jZSBpbXBhY3Qgc2hvdWxkIGJlIG1pbmltYWwuCi0KLXRvIGtlZXAgdGhlIGdpdCBoaXN0 b3J5IGNsZWFuLCBmb3Igbm93IHFzb3J0X3IgaXMgaW1wbGVtZW50ZWQgaW4gcXNvcnQuYwotYW5k IHFzb3J0IGlzIGltcGxlbWVudGVkIGluIHFzb3J0X25yLmMuICBxc29ydC5jIGFsc28gcmVjZWl2 ZWQgYSBmZXcKLXRyaXZpYWwgY2xlYW51cHMsIGluY2x1ZGluZyByZXBsYWNpbmcgKCpjbXApKCkg Y2FsbHMgd2l0aCBjbXAoKS4KLXFzb3J0X25yLmMgY29udGFpbnMgb25seSB3cmFwcGVyX2NtcCBh bmQgcXNvcnQgYXMgYSBxc29ydF9yIHdyYXBwZXIKLWl0c2VsZi4KLS0tLQotIGluY2x1ZGUvc3Rk bGliLmggICAgICB8ICAxICsKLSBzcmMvaW5jbHVkZS9zdGRsaWIuaCAgfCAgMSArCi0gc3JjL3N0 ZGxpYi9xc29ydC5jICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LQotIHNyYy9zdGRsaWIvcXNvcnRfbnIuYyB8IDE0ICsrKysrKysrKysrKysrCi0gNCBmaWxlcyBj aGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3N0ZGxpYi9xc29ydF9uci5jCi0KLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0ZGxp Yi5oIGIvaW5jbHVkZS9zdGRsaWIuaAotaW5kZXggYjU0YTA1MWZlLi43YWY4NmUzYmMgMTAwNjQ0 Ci0tLS0gYS9pbmNsdWRlL3N0ZGxpYi5oCi0rKysgYi9pbmNsdWRlL3N0ZGxpYi5oCi1AQCAtMTQ2 LDYgKzE0Niw3IEBAIGludCBjbGVhcmVudih2b2lkKTsKLSAjZGVmaW5lIFdDT1JFRFVNUChzKSAo KHMpICYgMHg4MCkKLSAjZGVmaW5lIFdJRkNPTlRJTlVFRChzKSAoKHMpID09IDB4ZmZmZikKLSB2 b2lkICpyZWFsbG9jYXJyYXkgKHZvaWQgKiwgc2l6ZV90LCBzaXplX3QpOwotK3ZvaWQgcXNvcnRf ciAodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZv aWQgKiwgdm9pZCAqKSwgdm9pZCAqKTsKLSAjZW5kaWYKLSAKLSAjaWZkZWYgX0dOVV9TT1VSQ0UK LWRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdGRsaWIuaCBiL3NyYy9pbmNsdWRlL3N0ZGxpYi5o Ci1pbmRleCBlOWRhMjAxNTguLjgxMmIwNGRlMiAxMDA2NDQKLS0tLSBhL3NyYy9pbmNsdWRlL3N0 ZGxpYi5oCi0rKysgYi9zcmMvaW5jbHVkZS9zdGRsaWIuaAotQEAgLTgsNiArOCw3IEBAIGhpZGRl biB2b2lkIF9fZW52X3JtX2FkZChjaGFyICosIGNoYXIgKik7Ci0gaGlkZGVuIGludCBfX21rb3N0 ZW1wcyhjaGFyICosIGludCwgaW50KTsKLSBoaWRkZW4gaW50IF9fcHRzbmFtZV9yKGludCwgY2hh ciAqLCBzaXplX3QpOwotIGhpZGRlbiBjaGFyICpfX3JhbmRuYW1lKGNoYXIgKik7Ci0raGlkZGVu IHZvaWQgX19xc29ydF9yICh2b2lkICosIHNpemVfdCwgc2l6ZV90LCBpbnQgKCopKGNvbnN0IHZv aWQgKiwgY29uc3Qgdm9pZCAqLCB2b2lkICopLCB2b2lkICopOwotIAotIGhpZGRlbiB2b2lkICpf X2xpYmNfbWFsbG9jKHNpemVfdCk7Ci0gaGlkZGVuIHZvaWQgKl9fbGliY19tYWxsb2NfaW1wbChz aXplX3QpOwotZGlmZiAtLWdpdCBhL3NyYy9zdGRsaWIvcXNvcnQuYyBiL3NyYy9zdGRsaWIvcXNv cnQuYwotaW5kZXggZGE1OGZkMzE3Li4zMTRkZGMyOWQgMTAwNjQ0Ci0tLS0gYS9zcmMvc3RkbGli L3Fzb3J0LmMKLSsrKyBiL3NyYy9zdGRsaWIvcXNvcnQuYwotQEAgLTI0LDYgKzI0LDcgQEAKLSAv KiBTbW9vdGhzb3J0LCBhbiBhZGFwdGl2ZSB2YXJpYW50IG9mIEhlYXBzb3J0LiAgTWVtb3J5IHVz YWdlOiBPKDEpLgotICAgIFJ1biB0aW1lOiBXb3JzdCBjYXNlIE8obiBsb2cgbiksIGNsb3NlIHRv IE8obikgaW4gdGhlIG1vc3RseS1zb3J0ZWQgY2FzZS4gKi8KLSAKLSsjZGVmaW5lIF9CU0RfU09V UkNFCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVk ZSA8c3RyaW5nLmg+Ci1AQCAtMzEsNyArMzIsNyBAQAotICNpbmNsdWRlICJhdG9taWMuaCIKLSAj ZGVmaW5lIG50eih4KSBhX2N0el9sKCh4KSkKLSAKLS10eXBlZGVmIGludCAoKmNtcGZ1bikoY29u c3Qgdm9pZCAqLCBjb25zdCB2b2lkICopOwotK3R5cGVkZWYgaW50ICgqY21wZnVuKShjb25zdCB2 b2lkICosIGNvbnN0IHZvaWQgKiwgdm9pZCAqKTsKLSAKLSBzdGF0aWMgaW5saW5lIGludCBwbnR6 KHNpemVfdCBwWzJdKSB7Ci0gCWludCByID0gbnR6KHBbMF0gLSAxKTsKLUBAIC04OCw3ICs4OSw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzaHIoc2l6ZV90IHBbMl0sIGludCBuKQotIAlwWzFdID4+ PSBuOwotIH0KLSAKLS1zdGF0aWMgdm9pZCBzaWZ0KHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVf dCB3aWR0aCwgY21wZnVuIGNtcCwgaW50IHBzaGlmdCwgc2l6ZV90IGxwW10pCi0rc3RhdGljIHZv aWQgc2lmdCh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHZv aWQgKmFyZywgaW50IHBzaGlmdCwgc2l6ZV90IGxwW10pCi0gewotIAl1bnNpZ25lZCBjaGFyICpy dCwgKmxmOwotIAl1bnNpZ25lZCBjaGFyICphclsxNCAqIHNpemVvZihzaXplX3QpICsgMV07Ci1A QCAtOTksMTAgKzEwMCwxMCBAQCBzdGF0aWMgdm9pZCBzaWZ0KHVuc2lnbmVkIGNoYXIgKmhlYWQs IHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgaW50IHBzaGlmdCwgc2l6ZQotIAkJcnQgPSBoZWFk IC0gd2lkdGg7Ci0gCQlsZiA9IGhlYWQgLSB3aWR0aCAtIGxwW3BzaGlmdCAtIDJdOwotIAotLQkJ aWYoKCpjbXApKGFyWzBdLCBsZikgPj0gMCAmJiAoKmNtcCkoYXJbMF0sIHJ0KSA+PSAwKSB7Ci0r CQlpZihjbXAoYXJbMF0sIGxmLCBhcmcpID49IDAgJiYgY21wKGFyWzBdLCBydCwgYXJnKSA+PSAw KSB7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0tCQlpZigoKmNtcCkobGYsIHJ0KSA+PSAwKSB7Ci0rCQlp ZihjbXAobGYsIHJ0LCBhcmcpID49IDApIHsKLSAJCQlhcltpKytdID0gbGY7Ci0gCQkJaGVhZCA9 IGxmOwotIAkJCXBzaGlmdCAtPSAxOwotQEAgLTExNSw3ICsxMTYsNyBAQCBzdGF0aWMgdm9pZCBz aWZ0KHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgaW50IHBz aGlmdCwgc2l6ZQotIAljeWNsZSh3aWR0aCwgYXIsIGkpOwotIH0KLSAKLS1zdGF0aWMgdm9pZCB0 cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgc2l6 ZV90IHBwWzJdLCBpbnQgcHNoaWZ0LCBpbnQgdHJ1c3R5LCBzaXplX3QgbHBbXSkKLStzdGF0aWMg dm9pZCB0cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNt cCwgdm9pZCAqYXJnLCBzaXplX3QgcHBbMl0sIGludCBwc2hpZnQsIGludCB0cnVzdHksIHNpemVf dCBscFtdKQotIHsKLSAJdW5zaWduZWQgY2hhciAqc3RlcHNvbiwKLSAJICAgICAgICAgICAgICAq cnQsICpsZjsKLUBAIC0xMzAsMTMgKzEzMSwxMyBAQCBzdGF0aWMgdm9pZCB0cmlua2xlKHVuc2ln bmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgc2l6ZV90IHBwWzJdLAot IAlhclswXSA9IGhlYWQ7Ci0gCXdoaWxlKHBbMF0gIT0gMSB8fCBwWzFdICE9IDApIHsKLSAJCXN0 ZXBzb24gPSBoZWFkIC0gbHBbcHNoaWZ0XTsKLS0JCWlmKCgqY21wKShzdGVwc29uLCBhclswXSkg PD0gMCkgewotKwkJaWYoY21wKHN0ZXBzb24sIGFyWzBdLCBhcmcpIDw9IDApIHsKLSAJCQlicmVh azsKLSAJCX0KLSAJCWlmKCF0cnVzdHkgJiYgcHNoaWZ0ID4gMSkgewotIAkJCXJ0ID0gaGVhZCAt IHdpZHRoOwotIAkJCWxmID0gaGVhZCAtIHdpZHRoIC0gbHBbcHNoaWZ0IC0gMl07Ci0tCQkJaWYo KCpjbXApKHJ0LCBzdGVwc29uKSA+PSAwIHx8ICgqY21wKShsZiwgc3RlcHNvbikgPj0gMCkgewot KwkJCWlmKGNtcChydCwgc3RlcHNvbiwgYXJnKSA+PSAwIHx8IGNtcChsZiwgc3RlcHNvbiwgYXJn KSA+PSAwKSB7Ci0gCQkJCWJyZWFrOwotIAkJCX0KLSAJCX0KLUBAIC0xNTAsMTEgKzE1MSwxMSBA QCBzdGF0aWMgdm9pZCB0cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwg Y21wZnVuIGNtcCwgc2l6ZV90IHBwWzJdLAotIAl9Ci0gCWlmKCF0cnVzdHkpIHsKLSAJCWN5Y2xl KHdpZHRoLCBhciwgaSk7Ci0tCQlzaWZ0KGhlYWQsIHdpZHRoLCBjbXAsIHBzaGlmdCwgbHApOwot KwkJc2lmdChoZWFkLCB3aWR0aCwgY21wLCBhcmcsIHBzaGlmdCwgbHApOwotIAl9Ci0gfQotIAot LXZvaWQgcXNvcnQodm9pZCAqYmFzZSwgc2l6ZV90IG5lbCwgc2l6ZV90IHdpZHRoLCBjbXBmdW4g Y21wKQotK3ZvaWQgX19xc29ydF9yKHZvaWQgKmJhc2UsIHNpemVfdCBuZWwsIHNpemVfdCB3aWR0 aCwgY21wZnVuIGNtcCwgdm9pZCAqYXJnKQotIHsKLSAJc2l6ZV90IGxwWzEyKnNpemVvZihzaXpl X3QpXTsKLSAJc2l6ZV90IGksIHNpemUgPSB3aWR0aCAqIG5lbDsKLUBAIC0xNzMsMTYgKzE3NCwx NiBAQCB2b2lkIHFzb3J0KHZvaWQgKmJhc2UsIHNpemVfdCBuZWwsIHNpemVfdCB3aWR0aCwgY21w ZnVuIGNtcCkKLSAKLSAJd2hpbGUoaGVhZCA8IGhpZ2gpIHsKLSAJCWlmKChwWzBdICYgMykgPT0g MykgewotLQkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgcHNoaWZ0LCBscCk7Ci0rCQkJc2lmdCho ZWFkLCB3aWR0aCwgY21wLCBhcmcsIHBzaGlmdCwgbHApOwotIAkJCXNocihwLCAyKTsKLSAJCQlw c2hpZnQgKz0gMjsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYobHBbcHNoaWZ0IC0gMV0gPj0gaGlnaCAt IGhlYWQpIHsKLS0JCQkJdHJpbmtsZShoZWFkLCB3aWR0aCwgY21wLCBwLCBwc2hpZnQsIDAsIGxw KTsKLSsJCQkJdHJpbmtsZShoZWFkLCB3aWR0aCwgY21wLCBhcmcsIHAsIHBzaGlmdCwgMCwgbHAp OwotIAkJCX0gZWxzZSB7Ci0tCQkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgcHNoaWZ0LCBscCk7 Ci0rCQkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgYXJnLCBwc2hpZnQsIGxwKTsKLSAJCQl9Ci0t CQkJCi0rCi0gCQkJaWYocHNoaWZ0ID09IDEpIHsKLSAJCQkJc2hsKHAsIDEpOwotIAkJCQlwc2hp ZnQgPSAwOwotQEAgLTE5MSwxMiArMTkyLDEyIEBAIHZvaWQgcXNvcnQodm9pZCAqYmFzZSwgc2l6 ZV90IG5lbCwgc2l6ZV90IHdpZHRoLCBjbXBmdW4gY21wKQotIAkJCQlwc2hpZnQgPSAxOwotIAkJ CX0KLSAJCX0KLS0JCQotKwotIAkJcFswXSB8PSAxOwotIAkJaGVhZCArPSB3aWR0aDsKLSAJfQot IAotLQl0cmlua2xlKGhlYWQsIHdpZHRoLCBjbXAsIHAsIHBzaGlmdCwgMCwgbHApOwotKwl0cmlu a2xlKGhlYWQsIHdpZHRoLCBjbXAsIGFyZywgcCwgcHNoaWZ0LCAwLCBscCk7Ci0gCi0gCXdoaWxl KHBzaGlmdCAhPSAxIHx8IHBbMF0gIT0gMSB8fCBwWzFdICE9IDApIHsKLSAJCWlmKHBzaGlmdCA8 PSAxKSB7Ci1AQCAtMjA4LDExICsyMDksMTMgQEAgdm9pZCBxc29ydCh2b2lkICpiYXNlLCBzaXpl X3QgbmVsLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXApCi0gCQkJcHNoaWZ0IC09IDI7Ci0gCQkJ cFswXSBePSA3OwotIAkJCXNocihwLCAxKTsKLS0JCQl0cmlua2xlKGhlYWQgLSBscFtwc2hpZnRd IC0gd2lkdGgsIHdpZHRoLCBjbXAsIHAsIHBzaGlmdCArIDEsIDEsIGxwKTsKLSsJCQl0cmlua2xl KGhlYWQgLSBscFtwc2hpZnRdIC0gd2lkdGgsIHdpZHRoLCBjbXAsIGFyZywgcCwgcHNoaWZ0ICsg MSwgMSwgbHApOwotIAkJCXNobChwLCAxKTsKLSAJCQlwWzBdIHw9IDE7Ci0tCQkJdHJpbmtsZSho ZWFkIC0gd2lkdGgsIHdpZHRoLCBjbXAsIHAsIHBzaGlmdCwgMSwgbHApOwotKwkJCXRyaW5rbGUo aGVhZCAtIHdpZHRoLCB3aWR0aCwgY21wLCBhcmcsIHAsIHBzaGlmdCwgMSwgbHApOwotIAkJfQot IAkJaGVhZCAtPSB3aWR0aDsKLSAJfQotIH0KLSsKLSt3ZWFrX2FsaWFzKF9fcXNvcnRfciwgcXNv cnRfcik7Ci1kaWZmIC0tZ2l0IGEvc3JjL3N0ZGxpYi9xc29ydF9uci5jIGIvc3JjL3N0ZGxpYi9x c29ydF9uci5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5lZmU3Y2Nl Y2QKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9zdGRsaWIvcXNvcnRfbnIuYwotQEAgLTAsMCAr MSwxNCBAQAotKyNkZWZpbmUgX0JTRF9TT1VSQ0UKLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0r dHlwZWRlZiBpbnQgKCpjbXBmdW4pKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKLSsKLStz dGF0aWMgaW50IHdyYXBwZXJfY21wKGNvbnN0IHZvaWQgKnYxLCBjb25zdCB2b2lkICp2Miwgdm9p ZCAqY21wKQotK3sKLSsJcmV0dXJuICgoY21wZnVuKWNtcCkodjEsIHYyKTsKLSt9Ci0rCi0rdm9p ZCBxc29ydCh2b2lkICpiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAp Ci0rewotKwlfX3Fzb3J0X3IoYmFzZSwgbmVsLCB3aWR0aCwgd3JhcHBlcl9jbXAsIGNtcCk7Ci0r fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXJsaW1pdC1ydHRpbWUucGF0 Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtcmxpbWl0LXJ0dGltZS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZhZmE2YjY2NTIxYS4uMDAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtcmxpbWl0LXJ0dGltZS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI0ICswLDAgQEAKLUZyb20gMjUwN2U3ZjUzMTJlNzk2MjBmNjMzNzkzNWQwYTZj OTA0NWNjYmEwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExlYWggTmV1a2lyY2hl biA8bGVhaEB2dXh1Lm9yZz4KLURhdGU6IFNhdCwgMTEgSmFuIDIwMjAgMjA6MTY6NTkgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSF0gZGVmaW5lIFJMSU1JVF9SVFRJTUUsIGJ1bXAgUkxJTUlUX05MSU1J VFMKLQotVGhpcyBtYWNybyBleGlzdHMgc2luY2UgTGludXggMi42LjI1IGFuZCBpcyBkZWZpbmVk IGluIGdsaWJjIHNpbmNlIDIwMTEuCi0tLS0KLSBpbmNsdWRlL3N5cy9yZXNvdXJjZS5oIHwgMyAr Ky0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRp ZmYgLS1naXQgYS9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIGIvaW5jbHVkZS9zeXMvcmVzb3VyY2Uu aAotaW5kZXggZTBjODZhZTMzLi4zMDY4MzI4ZDAgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N5cy9y ZXNvdXJjZS5oCi0rKysgYi9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oCi1AQCAtOTAsNyArOTAsOCBA QCBpbnQgcHJsaW1pdChwaWRfdCwgaW50LCBjb25zdCBzdHJ1Y3QgcmxpbWl0ICosIHN0cnVjdCBy bGltaXQgKik7Ci0gI2RlZmluZSBSTElNSVRfTVNHUVVFVUUgMTIKLSAjZGVmaW5lIFJMSU1JVF9O SUNFICAgIDEzCi0gI2RlZmluZSBSTElNSVRfUlRQUklPICAxNAotLSNkZWZpbmUgUkxJTUlUX05M SU1JVFMgMTUKLSsjZGVmaW5lIFJMSU1JVF9SVFRJTUUgIDE1Ci0rI2RlZmluZSBSTElNSVRfTkxJ TUlUUyAxNgotIAotICNkZWZpbmUgUkxJTV9OTElNSVRTIFJMSU1JVF9OTElNSVRTCi0gCmRpZmYg LS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFE X0lELXRpbWVycy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1T SUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlMjBkZmY1YmEwZDQ1Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVz L2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNzQgKzAsMCBAQAotRnJvbSA3YzcxNzkyZTg3NjkxNDUxZjJhNmI3NjM0OGU4M2Fk MTg4OWYxZGNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFtZXMgWSBLbmlnaHQg PGp5a25pZ2h0QGdvb2dsZS5jb20+Ci1EYXRlOiBTdW4sIDMwIEp1biAyMDE5IDIxOjU1OjIwIC0w NDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkZCBzdXBwb3J0IGZvciBTSUdFVl9USFJFQURfSUQgdGlt ZXJzCi0KLVRoaXMgaXMgbGlrZSBTSUdFVl9TSUdOQUwsIGJ1dCB0YXJnZXRlZCB0byBhIHBhcnRp Y3VsYXIgdGhyZWFkJ3MKLXRpZCwgcmF0aGVyIHRoYW4gdGhlIHByb2Nlc3MuCi0tLS0KLSBpbmNs dWRlL3NpZ25hbC5oICAgICAgICB8IDE2ICsrKysrKysrKysrKystLS0KLSBzcmMvdGltZS90aW1l cl9jcmVhdGUuYyB8ICA4ICsrKysrKy0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zaWduYWwuaCBiL2lu Y2x1ZGUvc2lnbmFsLmgKLWluZGV4IGZiZGY2NjdiMi4uOWVkOTI5ZTRmIDEwMDY0NAotLS0tIGEv aW5jbHVkZS9zaWduYWwuaAotKysrIGIvaW5jbHVkZS9zaWduYWwuaAotQEAgLTE4MCwxNCArMTgw LDI0IEBAIHN0cnVjdCBzaWdldmVudCB7Ci0gCXVuaW9uIHNpZ3ZhbCBzaWdldl92YWx1ZTsKLSAJ aW50IHNpZ2V2X3NpZ25vOwotIAlpbnQgc2lnZXZfbm90aWZ5OwotLQl2b2lkICgqc2lnZXZfbm90 aWZ5X2Z1bmN0aW9uKSh1bmlvbiBzaWd2YWwpOwotLQlwdGhyZWFkX2F0dHJfdCAqc2lnZXZfbm90 aWZ5X2F0dHJpYnV0ZXM7Ci0tCWNoYXIgX19wYWRbNTYtMypzaXplb2YobG9uZyldOwotKwl1bmlv biB7Ci0rCQljaGFyIF9fcGFkWzY0IC0gMipzaXplb2YoaW50KSAtIHNpemVvZih1bmlvbiBzaWd2 YWwpXTsKLSsJCXBpZF90IHNpZ2V2X25vdGlmeV90aHJlYWRfaWQ7Ci0rCQlzdHJ1Y3QgewotKwkJ CXZvaWQgKCpzaWdldl9ub3RpZnlfZnVuY3Rpb24pKHVuaW9uIHNpZ3ZhbCk7Ci0rCQkJcHRocmVh ZF9hdHRyX3QgKnNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzOwotKwkJfSBfX3Nldl90aHJlYWQ7Ci0r CX0gX19zZXZfZmllbGRzOwotIH07Ci0gCi0rI2RlZmluZSBzaWdldl9ub3RpZnlfdGhyZWFkX2lk IF9fc2V2X2ZpZWxkcy5zaWdldl9ub3RpZnlfdGhyZWFkX2lkCi0rI2RlZmluZSBzaWdldl9ub3Rp ZnlfZnVuY3Rpb24gX19zZXZfZmllbGRzLl9fc2V2X3RocmVhZC5zaWdldl9ub3RpZnlfZnVuY3Rp b24KLSsjZGVmaW5lIHNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzIF9fc2V2X2ZpZWxkcy5fX3Nldl90 aHJlYWQuc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMKLSsKLSAjZGVmaW5lIFNJR0VWX1NJR05BTCAw Ci0gI2RlZmluZSBTSUdFVl9OT05FIDEKLSAjZGVmaW5lIFNJR0VWX1RIUkVBRCAyCi0rI2RlZmlu ZSBTSUdFVl9USFJFQURfSUQgNAotIAotIGludCBfX2xpYmNfY3VycmVudF9zaWdydG1pbih2b2lk KTsKLSBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtYXgodm9pZCk7Ci1kaWZmIC0tZ2l0IGEvc3Jj L3RpbWUvdGltZXJfY3JlYXRlLmMgYi9zcmMvdGltZS90aW1lcl9jcmVhdGUuYwotaW5kZXggNWRk ZmRhMjc4Li40YmVmMjM5MDUgMTAwNjQ0Ci0tLS0gYS9zcmMvdGltZS90aW1lcl9jcmVhdGUuYwot KysrIGIvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKLUBAIC03MSwxMSArNzEsMTUgQEAgaW50IHRp bWVyX2NyZWF0ZShjbG9ja2lkX3QgY2xrLCBzdHJ1Y3Qgc2lnZXZlbnQgKnJlc3RyaWN0IGV2cCwg dGltZXJfdCAqcmVzdHJpY3QKLSAJc3dpdGNoIChldnAgPyBldnAtPnNpZ2V2X25vdGlmeSA6IFNJ R0VWX1NJR05BTCkgewotIAljYXNlIFNJR0VWX05PTkU6Ci0gCWNhc2UgU0lHRVZfU0lHTkFMOgot KwljYXNlIFNJR0VWX1RIUkVBRF9JRDoKLSAJCWlmIChldnApIHsKLSAJCQlrc2V2LnNpZ2V2X3Zh bHVlID0gZXZwLT5zaWdldl92YWx1ZTsKLSAJCQlrc2V2LnNpZ2V2X3NpZ25vID0gZXZwLT5zaWdl dl9zaWdubzsKLSAJCQlrc2V2LnNpZ2V2X25vdGlmeSA9IGV2cC0+c2lnZXZfbm90aWZ5OwotLQkJ CWtzZXYuc2lnZXZfdGlkID0gMDsKLSsJCQlpZiAoZXZwLT5zaWdldl9ub3RpZnkgPT0gU0lHRVZf VEhSRUFEX0lEKQotKwkJCQlrc2V2LnNpZ2V2X3RpZCA9IGV2cC0+c2lnZXZfbm90aWZ5X3RocmVh ZF9pZDsKLSsJCQllbHNlCi0rCQkJCWtzZXYuc2lnZXZfdGlkID0gMDsKLSAJCQlrc2V2cCA9ICZr c2V2OwotIAkJfQotIAkJaWYgKHN5c2NhbGwoU1lTX3RpbWVyX2NyZWF0ZSwgY2xrLCBrc2V2cCwg JnRpbWVyaWQpIDwgMCkKLUBAIC0xMDcsNyArMTExLDcgQEAgaW50IHRpbWVyX2NyZWF0ZShjbG9j a2lkX3QgY2xrLCBzdHJ1Y3Qgc2lnZXZlbnQgKnJlc3RyaWN0IGV2cCwgdGltZXJfdCAqcmVzdHJp Y3QKLSAKLSAJCWtzZXYuc2lnZXZfdmFsdWUuc2l2YWxfcHRyID0gMDsKLSAJCWtzZXYuc2lnZXZf c2lnbm8gPSBTSUdUSU1FUjsKLS0JCWtzZXYuc2lnZXZfbm90aWZ5ID0gNDsgLyogU0lHRVZfVEhS RUFEX0lEICovCi0rCQlrc2V2LnNpZ2V2X25vdGlmeSA9IFNJR0VWX1RIUkVBRF9JRDsKLSAJCWtz ZXYuc2lnZXZfdGlkID0gdGQtPnRpZDsKLSAJCWlmIChzeXNjYWxsKFNZU190aW1lcl9jcmVhdGUs IGNsaywgJmtzZXYsICZ0aW1lcmlkKSA8IDApCi0gCQkJdGltZXJpZCA9IC0xOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYXZvaWQtc2V0LWlkLXNldHJsaW1pdC1taXNiZWhhdmlv ci1hbmQtaGFuZy1pbi12Zm9yay5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2F2b2lkLXNl dC1pZC1zZXRybGltaXQtbWlzYmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxZjIzNmIzYTZjZDEuLjAwMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYXZvaWQtc2V0LWlkLXNldHJsaW1pdC1taXNiZWhhdmlv ci1hbmQtaGFuZy1pbi12Zm9yay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK LUZyb20gYTVhZmYxOTcyYzllMzk4MTU2NjQxNGIwOWEyOGUzMzFjY2QyYmU1ZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURh dGU6IFRodSwgMTcgU2VwIDIwMjAgMTU6MDk6NDYgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAyMzcv NTEzXSBhdm9pZCBzZXQqaWQvc2V0cmxpbWl0IG1pc2JlaGF2aW9yIGFuZCBoYW5nIGluCi0gdmZv cmtlZC9jbG9uZWQgY2hpbGQKLQotdGFraW5nIHRoZSBkZXByZWNhdGVkL2Ryb3BwZWQgdmZvcmsg c3BlYyBzdHJpY3RseSwgZG9pbmcgcHJldHR5IG11Y2gKLWFueXRoaW5nIGJ1dCBleGVjdmUgaW4g dGhlIGNoaWxkIGlzIHdyb25nIGFuZCB1bmRlZmluZWQuIGhvd2V2ZXIsCi10aGVzZSBhcmUgY29t bW9ubHkgbmVlZGVkIG9wZXJhdGlvbnMgdG8gc2V0dXAgdGhlIGNoaWxkIHN0YXRlIGJlZm9yZQot ZXhlYywgYW5kIGhpc3RvcmljYWwgaW1wbGVtZW50YXRpb25zIHRvbGVyYXRlZCB0aGVtLgotCi1m b3Igc2luZ2xlLXRocmVhZGVkIHBhcmVudHMsIHRoZXNlIG9wZXJhdGlvbnMgYWxyZWFkeSB3b3Jr ZWQgYXMKLWV4cGVjdGVkIGluIHRoZSB2Zm9ya2VkIGNoaWxkLiBob3dldmVyLCBkdWUgdG8gdGhl IG5lZWQgZm9yIF9fc3luY2NhbGwKLXRvIHN5bmNocm9uaXplIGlkL3Jlc291cmNlIGxpbWl0IGNo YW5nZXMgYW1vbmcgYWxsIHRocmVhZHMsIGNhbGxpbmcKLXRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUg dmZvcmtlZCBjaGlsZCBvZiBhIG11bHRpdGhyZWFkZWQgcGFyZW50IGNhdXNlZAotYSBtaXNkaXJl Y3RlZCBicm9hZGNhc3Qgc2lnbmFsaW5nIG9mIGFsbCB0aHJlYWRzIGluIHRoZSBwYXJlbnQuIHRo ZXNlCi1zaWduYWxzIGNvdWxkIGtpbGwgdGhlIHBhcmVudCBlbnRpcmVseSBpZiB0aGUgc3luY2Nh bGwgc2lnbmFsIGhhbmRsZXIKLWhhZCBuZXZlciBiZWVuIGluc3RhbGxlZCBpbiB0aGUgcGFyZW50 LCBvciBjb3VsZCBiZSBpZ25vcmVkIGlmIGl0IGhhZCwKLW9yIGNvdWxkIHNpZ25hbC9raWxsIG9u ZSBvciBtb3JlIHV0dGVybHkgd3JvbmcgcHJvY2Vzc2VzIGlmIHRoZSBwYXJlbnQKLWFscmVhZHkg dGVybWluYXRlZCAoZHVlIHRvIHZmb3JrIHNlbWFudGljcywgb25seSBwb3NzaWJsZSB2aWEgZmF0 YWwKLXNpZ25hbCkgYW5kIHRoZSBwYXJlbnQgdGlkcyB3ZXJlIHJlY3ljbGVkLiBpbiBhbnkgY2Fz ZSwgdGhlIGV4cGVjdGVkCi1udW1iZXIgb2Ygc2VtYXBob3JlIHBvc3RzIHdvdWxkIG5ldmVyIGhh cHBlbiwgc28gdGhlIGNoaWxkIHdvdWxkCi1wZXJtYW5lbnRseSBoYW5nICh3aXRoIGFsbCBzaWdu YWxzIGJsb2NrZWQpIHdhaXRpbmcgZm9yIHRoZW0uCi0KLXRvIG1pdGlnYXRlIHRoaXMsIGFuZCBh bHNvIG1ha2UgdGhlIG5vcm1hbCB1c2FnZSBjYXNlIHdvcmsgYXMKLWludGVuZGVkLCB0cmVhdCB0 aGUgY29uZGl0aW9uIHdoZXJlIHRoZSBjYWxsZXIncyBhY3R1YWwgdGlkIGRvZXMgbm90Ci1tYXRj aCB0aGUgdGlkIGluIGl0cyB0aHJlYWQgc3RydWN0dXJlIGFzIHNpbmdsZS10aHJlYWRlZCwgYW5k IGJ5cGFzcwotdGhlIGVudGlyZSBzeW5jY2FsbCBicm9hZGNhc3Qgb3BlcmF0aW9uLgotLS0tCi0g c3JjL3RocmVhZC9zeW5jY2FsbC5jIHwgMyArKy0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL3N5bmNjYWxs LmMgYi9zcmMvdGhyZWFkL3N5bmNjYWxsLmMKLWluZGV4IDY0OGE2YWQ0Li5kNThjODUxZiAxMDA2 NDQKLS0tLSBhL3NyYy90aHJlYWQvc3luY2NhbGwuYwotKysrIGIvc3JjL3RocmVhZC9zeW5jY2Fs bC5jCi1AQCAtNjMsNyArNjMsOCBAQCB2b2lkIF9fc3luY2NhbGwodm9pZCAoKmZ1bmMpKHZvaWQg KiksIHZvaWQgKmN0eCkKLSAJc2VtX2luaXQoJnRhcmdldF9zZW0sIDAsIDApOwotIAlzZW1faW5p dCgmY2FsbGVyX3NlbSwgMCwgMCk7Ci0gCi0tCWlmICghbGliYy50aHJlYWRzX21pbnVzXzEpIGdv dG8gc2luZ2xlX3RocmVhZGVkOwotKwlpZiAoIWxpYmMudGhyZWFkc19taW51c18xIHx8IF9fc3lz Y2FsbChTWVNfZ2V0dGlkKSAhPSBzZWxmLT50aWQpCi0rCQlnb3RvIHNpbmdsZV90aHJlYWRlZDsK LSAKLSAJY2FsbGJhY2sgPSBmdW5jOwotIAljb250ZXh0ID0gY3R4OwotLS0gCi0yLjQxLjAKLQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZXBvbGxfY3AucGF0Y2ggYi9zcmNwa2dz L211c2wvcGF0Y2hlcy9lcG9sbF9jcC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggOTJmNDc1NTFhZDhlYi4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hl cy9lcG9sbF9jcC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gMmMw MGY5NWMxYWM3ZGQ1MGY1M2Q5ZTM2MTg0N2ViZDI1MTNjOGRhMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IFNhdCwg MyBBcHIgMjAyMSAyMToxNjo0MSAtMDQwMAotU3ViamVjdDogW1BBVENIXSBtYWtlIGVwb2xsX1tw XXdhaXQgYSBjYW5jZWxsYXRpb24gcG9pbnQKLQotdGhpcyBpcyBhIExpbnV4LXNwZWNpZmljIGZ1 bmN0aW9uIGFuZCBub3QgY292ZXJlZCBieSBQT1NJWCdzCi1yZXF1aXJlbWVudHMgZm9yIHdoaWNo IGludGVyZmFjZXMgYXJlIGNhbmNlbGxhdGlvbiBwb2ludHMsIGJ1dCBnbGliYwotbWFrZXMgaXQg b25lIGFuZCBleGlzdGluZyBzb2Z0d2FyZSByZWxpZXMgb24gaXQgYmVpbmcgb25lLgotCi1hdCBz b21lIHBvaW50IGEgcmV2aWV3IGZvciBzaW1pbGFyIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBt YWRlCi1jYW5jZWxsYXRpb24gcG9pbnRzIHNob3VsZCBiZSBkb25lLgotCi1kaWZmIC0tZ2l0IHNy Yy9saW51eC9lcG9sbC5jIHNyYy9saW51eC9lcG9sbC5jCi1pbmRleCBkZWZmNWIxMC4uOTNiYWE4 MTQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGludXgvZXBvbGwuYwotKysrIGIvc3JjL2xpbnV4L2Vwb2xs LmMKLUBAIC0yNCw5ICsyNCw5IEBAIGludCBlcG9sbF9jdGwoaW50IGZkLCBpbnQgb3AsIGludCBm ZDIsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXYpCi0gCi0gaW50IGVwb2xsX3B3YWl0KGludCBmZCwg c3RydWN0IGVwb2xsX2V2ZW50ICpldiwgaW50IGNudCwgaW50IHRvLCBjb25zdCBzaWdzZXRfdCAq c2lncykKLSB7Ci0tCWludCByID0gX19zeXNjYWxsKFNZU19lcG9sbF9wd2FpdCwgZmQsIGV2LCBj bnQsIHRvLCBzaWdzLCBfTlNJRy84KTsKLSsJaW50IHIgPSBfX3N5c2NhbGxfY3AoU1lTX2Vwb2xs X3B3YWl0LCBmZCwgZXYsIGNudCwgdG8sIHNpZ3MsIF9OU0lHLzgpOwotICNpZmRlZiBTWVNfZXBv bGxfd2FpdAotLQlpZiAocj09LUVOT1NZUyAmJiAhc2lncykgciA9IF9fc3lzY2FsbChTWVNfZXBv bGxfd2FpdCwgZmQsIGV2LCBjbnQsIHRvKTsKLSsJaWYgKHI9PS1FTk9TWVMgJiYgIXNpZ3MpIHIg PSBfX3N5c2NhbGxfY3AoU1lTX2Vwb2xsX3dhaXQsIGZkLCBldiwgY250LCB0byk7Ci0gI2VuZGlm Ci0gCXJldHVybiBfX3N5c2NhbGxfcmV0KHIpOwotIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzL2ZpeC1vb2ItcmVhZC1wcm9jZXNzaW5nLXRpbWUtem9uZS1kYXRhLnBhdGNoIGIv c3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LW9vYi1yZWFkLXByb2Nlc3NpbmctdGltZS16b25lLWRh dGEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1N2NiZDc0NDZkOWIuLjAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LW9vYi1yZWFkLXByb2Nl c3NpbmctdGltZS16b25lLWRhdGEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBA Ci1Gcm9tIDNiN2I0MTU1NTcwYjRiOTA1NDQ2NTc4NWJlMjk5MmM5MmNiN2Q3YjEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1E YXRlOiBXZWQsIDkgRmViIDIwMjIgMTc6NDg6NDMgLTA1MDAKLVN1YmplY3Q6IGZpeCBvdXQtb2Yt Ym91bmQgcmVhZCBwcm9jZXNzaW5nIHRpbWUgem9uZSBkYXRhIHdpdGggZGlzdGFudC1wYXN0Ci0g ZGF0ZXMKLQotdGhpcyBidWcgZ29lcyBiYWNrIHRvIGNvbW1pdCAxY2M4MWY1Y2IwZGYyYjY2YTc5 NWZmMGMyNmQ3YmJjNGQxNmUxM2M2Ci13aGVyZSB6b25laW5mbyBmaWxlIHN1cHBvcnQgd2FzIGZp cnN0IGFkZGVkLiBpbiBzY2FuX3RyYW5zLCB3aGljaAotc2VhcmNoZXMgZm9yIHRoZSBhcHByb3By aWF0ZSBsb2NhbCB0aW1lL2RzdCBydWxlIGluIGVmZmVjdCBhdCBhIGdpdmVuCi10aW1lLCB0aW1l cyBwcmlvciB0byB0aGUgc2Vjb25kIHRyYW5zaXRpb24gdGltZSBjYXVzZWQgdGhlIC0xIHNsb3Qg b2YKLXRoZSBpbmRleCB0byBiZSByZWFkIHRvIGRldGVybWluZSB0aGUgcHJldmlvdXMgcnVsZSBp biBlZmZlY3QuIHRoaXMKLW1lbW9yeSB3YXMgYWx3YXlzIHZhbGlkIChwYXJ0IG9mIGFub3RoZXIg em9uZWluZm8gdGFibGUgaW4gdGhlIG1hcHBlZAotZmlsZSkgYnV0IHRoZSBieXRlIHZhbHVlIHJl YWQgd2FzIHRoZW4gdXNlZCB0byBpbmRleCBhbm90aGVyIHRhYmxlLAotcG9zc2libHkgZ29pbmcg b3V0c2lkZSB0aGUgYm91bmRzIG9mIHRoZSBtbWFwLiBtb3N0IG9mIHRoZSB0aW1lLCB0aGUKLXJl c3VsdCB3YXMgbGltaXRlZCB0byBtaXNpbnRlcnByZXRhdGlvbiBvZiB0aGUgcnVsZSBpbiBlZmZl Y3QgYXQgdGhhdAotdGltZSAocHJlLTE5MDBzKSwgYnV0IGl0IGNvdWxkIHByb2R1Y2UgYSBjcmFz aCBpZiBhZGphY2VudCBtZW1vcnkgd2FzCi1ub3QgcmVhZGFibGUuCi0KLXRoZSByb290IGNhdXNl IG9mIHRoZSBwcm9ibGVtLCBob3dldmVyLCB3YXMgdGhhdCB0aGUgbG9naWMgZm9yIHRoaXMKLWNv ZGUgcGF0aCB3YXMgYWxsIHdyb25nLiBhcyBkb2N1bWVudGVkIGluIHRoZSBjb21tZW50LCB0aW1l cyBiZWZvcmUKLXRoZSBmaXJzdCB0cmFuc2l0aW9uIHNob3VsZCBiZSB0cmVhdGVkIGFzIHVzaW5n IHRoZSBsb3dlc3QtbnVtYmVyZWQKLW5vbi1kc3QgcnVsZSwgb3IgcnVsZSAwIGlmIG5vIG5vbi1k c3QgcnVsZXMgZXhpc3QuIGlmIHRoZSBhcmd1bWVudCBpcwotaW4gdW5pdHMgb2YgbG9jYWwgdGlt ZSwgaG93ZXZlciwgdGhlIHJ1bGUgcHJpb3IgdG8gdGhlIGZpcnN0Ci10cmFuc2l0aW9uIGlzIG5l ZWRlZCB0byBkZXRlcm1pbmUgaWYgaXQgZmFsbHMgYmVmb3JlIG9yIGFmdGVyIGl0LCBhbmQKLXRo YXQncyB3aGVyZSB0aGUgLTEgaW5kZXggd2FzIHdyb25nbHkgdXNlZC4KLQotaW5zdGVhZCwgdXNl IHRoZSBkb2N1bWVudGVkIGxvZ2ljIHRvIGZpbmQgb3V0IHdoYXQgcnVsZSB3b3VsZCBiZSBpbgot ZWZmZWN0IGJlZm9yZSB0aGUgZmlyc3QgdHJhbnNpdGlvbiwgYW5kIGFwcGx5IGl0IGFzIHRoZSBv ZmZzZXQgaWYgdGhlCi1hcmd1bWVudCB3YXMgZ2l2ZW4gaW4gbG9jYWwgdGltZS4KLQotdGhlIG5l dyBjb2RlIGhhcyBub3QgYmVlbiBoZWF2aWx5IHRlc3RlZCwgYnV0IG5vIGxvbmdlciBwZXJmb3Jt cwotcG90ZW50aWFsbHkgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgYW5kIHN1Y2Nlc3NmdWxseSBo YW5kbGVzIHRoZSAxODgzCi10cmFuc2l0aW9uIGZyb20gbG9jYWwgbWVhbiB0aW1lIHRvIGNlbnRy YWwgc3RhbmRhcmQgdGltZSBpbiB0aGUgdGVzdAotY2FzZSB0aGUgZXJyb3Igd2FzIHJlcG9ydGVk IGZvci4KLS0tLQotIHNyYy90aW1lL19fdHouYyB8IDI2ICsrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvc3JjL3RpbWUvX190ei5jIGIvc3JjL3RpbWUvX190ei5jCi1pbmRleCAz ZTJmY2RjYi4uYzM0YjNlYjcgMTAwNjQ0Ci0tLS0gYS9zcmMvdGltZS9fX3R6LmMKLSsrKyBiL3Ny Yy90aW1lL19fdHouYwotQEAgLTI5MywyMiArMjkzLDIwIEBAIHN0YXRpYyBzaXplX3Qgc2Nhbl90 cmFucyhsb25nIGxvbmcgdCwgaW50IGxvY2FsLCBzaXplX3QgKmFsdCkKLSAJbiA9IChpbmRleC10 cmFucyk+PnNjYWxlOwotIAlpZiAoYSA9PSBuLTEpIHJldHVybiAtMTsKLSAJaWYgKGEgPT0gMCkg ewotLQkJeCA9IHppX3JlYWQzMih0cmFucyArIChhPDxzY2FsZSkpOwotLQkJaWYgKHNjYWxlID09 IDMpIHggPSB4PDwzMiB8IHppX3JlYWQzMih0cmFucyArIChhPDxzY2FsZSkgKyA0KTsKLSsJCXgg PSB6aV9yZWFkMzIodHJhbnMpOwotKwkJaWYgKHNjYWxlID09IDMpIHggPSB4PDwzMiB8IHppX3Jl YWQzMih0cmFucyArIDQpOwotIAkJZWxzZSB4ID0gKGludDMyX3QpeDsKLS0JCWlmIChsb2NhbCkg b2ZmID0gKGludDMyX3QpemlfcmVhZDMyKHR5cGVzICsgNiAqIGluZGV4W2EtMV0pOwotKwkJLyog RmluZCB0aGUgbG93ZXN0IG5vbi1EU1QgdHlwZSwgb3IgMCBpZiBub25lLiAqLwotKwkJc2l6ZV90 IGogPSAwOwotKwkJZm9yIChzaXplX3QgaT1hYmJyZXZzLXR5cGVzOyBpOyBpLT02KSB7Ci0rCQkJ aWYgKCF0eXBlc1tpLTYrNF0pIGogPSBpLTY7Ci0rCQl9Ci0rCQlpZiAobG9jYWwpIG9mZiA9IChp bnQzMl90KXppX3JlYWQzMih0eXBlcyArIGopOwotKwkJLyogSWYgdCBpcyBiZWZvcmUgZmlyc3Qg dHJhbnNpdGlvbiwgdXNlIHRoZSBhYm92ZS1mb3VuZCB0eXBlCi0rCQkgKiBhbmQgdGhlIGluZGV4 LXplcm8gKGFmdGVyIHRyYW5zaXRpb24pIHR5cGUgYXMgdGhlIGFsdC4gKi8KLSAJCWlmICh0IC0g b2ZmIDwgKGludDY0X3QpeCkgewotLQkJCWZvciAoYT0wOyBhPChhYmJyZXZzLXR5cGVzKS82OyBh KyspIHsKLS0JCQkJaWYgKHR5cGVzWzYqYSs0XSAhPSB0eXBlc1s0XSkgYnJlYWs7Ci0tCQkJfQot LQkJCWlmIChhID09IChhYmJyZXZzLXR5cGVzKS82KSBhID0gMDsKLS0JCQlpZiAodHlwZXNbNiph KzRdKSB7Ci0tCQkJCSphbHQgPSBhOwotLQkJCQlyZXR1cm4gMDsKLS0JCQl9IGVsc2UgewotLQkJ CQkqYWx0ID0gMDsKLS0JCQkJcmV0dXJuIGE7Ci0tCQkJfQotKwkJCWlmIChhbHQpICphbHQgPSBp bmRleFswXTsKLSsJCQlyZXR1cm4gai82OwotIAkJfQotIAl9Ci0gCi0tLSAKLWNnaXQgdjEuMi4x Ci0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEu cGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0xLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOWFmNzJiMGM1ZjkxLi4wMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDJkMGJiZTZjNzg4OTM4ZDEzMzI2MDlj MDE0ZWVlYmMxZGZmOTY2YWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZl bGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24sIDI2IE9jdCAyMDIwIDE1OjU2OjI1 IC0wNDAwCi1TdWJqZWN0OiBmaXggcHRocmVhZF9jb25kX3dhaXQgcGFpcmVkIHdpdGggd2l0aCBw cmlvcml0eS1pbmhlcml0YW5jZSBtdXRleAotCi1wdGhyZWFkX2NvbmRfd2FpdCBhcnJhbmdlZCBm b3IgcmVxdWV1ZWQgd2FpdGVycyB0byB3YWtlIHdoZW4gdGhlIG11dGV4Ci1pcyB1bmxvY2tlZCBi eSB0ZW1wb3JhcmlseSBhZGp1c3RpbmcgdGhlIG11dGV4J3Mgd2FpdGVyIGNvdW50LiBjb21taXQK LTU0Y2E2Nzc5ODNkNDc1MjliYWI4NzUyMzE1YWMxYTJiNDk4ODg4NzAgYnJva2UgdGhpcyB3aGVu IGludHJvZHVjaW5nCi1QSSBtdXRleGVzIGJ5IHJlcHVycG9zaW5nIHRoZSB3YWl0ZXIgY291bnQg ZmllbGQgb2YgdGhlIG11dGV4Ci1zdHJ1Y3R1cmUuIHNpbmNlIHRoZW4sIGZvciBQSSBtdXRleGVz LCB0aGUgd2FpdGVyIGNvdW50IGFkanVzdG1lbnQgd2FzCi1taXNpbnRlcnByZXRlZCBieSB0aGUg bXV0ZXggbG9ja2luZyBjb2RlIGFzIGluZGljYXRpbmcgdGhhdCB0aGUgbXV0ZXgKLWlzIG5vbiBh IG5vbi1yZWNvdmVyYWJsZSBzdGF0ZS4KLQotaXQgd291bGQgYmUgcG9zc2libGUgdG8gc3BlY2lh bC1jYXNlIFBJIG11dGV4ZXMgaGVyZSwgYnV0IGluc3RlYWQganVzdAotZHJvcCBhbGwgYWRqdXN0 bWVudCBvZiB0aGUgd2FpdGVycyBjb3VudCwgYW5kIGluc3RlYWQgdXNlIHRoZSBsb2NrCi13b3Jk IHdhaXRlcnMgYml0IGZvciBhbGwgbXV0ZXggdHlwZXMuIHNpbmNlIHRoZSBtdXRleCBpcyBlaXRo ZXIgaGVsZAotYnkgdGhlIGNhbGxlciBvciBpbiB1bnJlY292ZXJhYmxlIHN0YXRlIGF0IHRoZSB0 aW1lIHRoZSBiaXQgaXMgc2V0LCBpdAotd2lsbCBuZWNlc3NhcmlseSBzdGlsbCBiZSBzZXQgYXQg dGhlIHRpbWUgb2YgYW55IHN1YnNlcXVlbnQgdmFsaWQKLXVubG9jayBvcGVyYXRpb24sIGFuZCB0 aGlzIHdpbGwgcHJvZHVjZSB0aGUgZGVzaXJlZCBlZmZlY3Qgb2Ygd2FraW5nCi10aGUgbmV4dCB3 YWl0ZXIuCi0KLWlmIHdhaXRlciBjb3VudHMgYXJlIGVudGlyZWx5IGRyb3BwZWQgYXQgc29tZSBw b2ludCBpbiB0aGUgZnV0dXJlIHRoaXMKLWNvZGUgc2hvdWxkIHN0aWxsIHdvcmsgd2l0aG91dCBt b2RpZmljYXRpb24uCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyB8 IDExICsrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKLQotKGxpbWl0ZWQgdG8gJ3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2Fp dC5jJykKLQotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5j IGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLWluZGV4IGQxNTAxMjQwLi5m NWYzN2FmMSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5j Ci0rKysgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotQEAgLTE0NiwxNCAr MTQ2LDEzIEBAIHJlbG9jazoKLSAKLSAJaWYgKG9sZHN0YXRlID09IFdBSVRJTkcpIGdvdG8gZG9u ZTsKLSAKLS0JaWYgKCFub2RlLm5leHQpIGFfaW5jKCZtLT5fbV93YWl0ZXJzKTsKLS0KLSAJLyog VW5sb2NrIHRoZSBiYXJyaWVyIHRoYXQncyBob2xkaW5nIGJhY2sgdGhlIG5leHQgd2FpdGVyLCBh bmQKLSAJICogZWl0aGVyIHdha2UgaXQgb3IgcmVxdWV1ZSBpdCB0byB0aGUgbXV0ZXguICovCi0t CWlmIChub2RlLnByZXYpCi0tCQl1bmxvY2tfcmVxdWV1ZSgmbm9kZS5wcmV2LT5iYXJyaWVyLCAm bS0+X21fbG9jaywgbS0+X21fdHlwZSAmIDEyOCk7Ci0tCWVsc2UKLS0JCWFfZGVjKCZtLT5fbV93 YWl0ZXJzKTsKLSsJaWYgKG5vZGUucHJldikgewotKwkJaW50IHZhbCA9IG0tPl9tX2xvY2s7Ci0r CQlpZiAodmFsPjApIGFfY2FzKCZtLT5fbV9sb2NrLCB2YWwsIHZhbHwweDgwMDAwMDAwKTsKLSsJ CXVubG9ja19yZXF1ZXVlKCZub2RlLnByZXYtPmJhcnJpZXIsICZtLT5fbV9sb2NrLCBtLT5fbV90 eXBlICYgKDh8MTI4KSk7Ci0rCX0KLSAKLSAJLyogU2luY2UgYSBzaWduYWwgd2FzIGNvbnN1bWVk LCBjYW5jZWxsYXRpb24gaXMgbm90IHBlcm1pdHRlZC4gKi8KLSAJaWYgKGUgPT0gRUNBTkNFTEVE KSBlID0gMDsKLS0tIAotY2dpdCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3Bh dGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMi5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Zp eC1waS1tdXRleC1jb25kLTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIz NTZlMzhiNjFmODMuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4 LXBpLW11dGV4LWNvbmQtMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUZy b20gMjdiMmZjOWQ2ZGI5NTYzNTk3MjdhNjZjMjYyZjFlNjk5OTU2NjBhYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6 IEZyaSwgMzAgT2N0IDIwMjAgMTE6MjE6MDYgLTA0MDAKLVN1YmplY3Q6IGZpeCBtaXNzaW5nLXdh a2UgcmVncmVzc2lvbiBpbiBwdGhyZWFkX2NvbmRfd2FpdAotCi10aGUgcmVhc29uaW5nIGluIGNv bW1pdCAyZDBiYmU2Yzc4ODkzOGQxMzMyNjA5YzAxNGVlZWJjMWRmZjk2NmFjIHdhcwotbm90IGVu dGlyZWx5IGNvcnJlY3QuIHdoaWxlIGl0J3MgdHJ1ZSB0aGF0IHNldHRpbmcgdGhlIHdhaXRlcnMg ZmxhZwotZW5zdXJlcyB0aGF0IHRoZSBuZXh0IHVubG9jayB3aWxsIHBlcmZvcm0gYSB3YWtlLCBp dCdzIHBvc3NpYmxlIHRoYXQKLXRoZSB3YWtlIGlzIGNvbnN1bWVkIGJ5IGEgbXV0ZXggd2FpdGVy IHRoYXQgaGFzIG5vIHJlbGF0aW9uc2hpcCB3aXRoCi10aGUgY29uZHZhciB3YWl0IHF1ZXVlIGJl aW5nIHByb2Nlc3NlZCwgd2hpY2ggdGhlbiB0YWtlcyB0aGUgbXV0ZXguCi13aGVuIHRoYXQgdGhy ZWFkIHN1YnNlcXVlbnRseSB1bmxvY2tzLCBpdCBzZWVzIG5vIHdhaXRlcnMsIGFuZCBsZWF2ZXMK LXRoZSByZXN0IG9mIHRoZSBjb25kdmFyIHF1ZXVlIHN0dWNrLgotCi1icmluZyBiYWNrIHRoZSB3 YWl0ZXIgY291bnQgYWRqdXN0bWVudCwgYnV0IHNraXAgaXQgZm9yIFBJIG11dGV4ZXMsCi1mb3Ig d2hpY2ggYSBzdWNjZXNzZnVsIGxvY2stYWZ0ZXItd2FpdGluZyBhbHdheXMgc2V0cyB0aGUgd2Fp dGVycyBiaXQuCi1pZiBmdXR1cmUgY2hhbmdlcyBhcmUgbWFkZSB0byBicmluZyB0aGlzIHNhbWUg d2FpdGVycy1iaXQgY29udHJhY3QgdG8KLWFsbCBsb2NrIHR5cGVzLCB0aGlzIGNhbiBiZSByZXZl cnRlZC4KLS0tLQotIHNyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jIHwgNSArKysr KwotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKLQotKGxpbWl0ZWQgdG8gJ3NyYy90 aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jJykKLQotZGlmZiAtLWdpdCBhL3NyYy90aHJl YWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGlt ZWR3YWl0LmMKLWluZGV4IGY1ZjM3YWYxLi5hMGNkNDkwNCAxMDA2NDQKLS0tLSBhL3NyYy90aHJl YWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi0rKysgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY29u ZF90aW1lZHdhaXQuYwotQEAgLTE0NiwxMiArMTQ2LDE3IEBAIHJlbG9jazoKLSAKLSAJaWYgKG9s ZHN0YXRlID09IFdBSVRJTkcpIGdvdG8gZG9uZTsKLSAKLSsJaWYgKCFub2RlLm5leHQgJiYgISht LT5fbV90eXBlICYgOCkpCi0rCQlhX2luYygmbS0+X21fd2FpdGVycyk7Ci0rCi0gCS8qIFVubG9j ayB0aGUgYmFycmllciB0aGF0J3MgaG9sZGluZyBiYWNrIHRoZSBuZXh0IHdhaXRlciwgYW5kCi0g CSAqIGVpdGhlciB3YWtlIGl0IG9yIHJlcXVldWUgaXQgdG8gdGhlIG11dGV4LiAqLwotIAlpZiAo bm9kZS5wcmV2KSB7Ci0gCQlpbnQgdmFsID0gbS0+X21fbG9jazsKLSAJCWlmICh2YWw+MCkgYV9j YXMoJm0tPl9tX2xvY2ssIHZhbCwgdmFsfDB4ODAwMDAwMDApOwotIAkJdW5sb2NrX3JlcXVldWUo Jm5vZGUucHJldi0+YmFycmllciwgJm0tPl9tX2xvY2ssIG0tPl9tX3R5cGUgJiAoOHwxMjgpKTsK LSsJfSBlbHNlIGlmICghIShtLT5fbV90eXBlICYgOCkpIHsKLSsJCWFfZGVjKCZtLT5fbV93YWl0 ZXJzKTsJCQotIAl9Ci0gCi0gCS8qIFNpbmNlIGEgc2lnbmFsIHdhcyBjb25zdW1lZCwgY2FuY2Vs bGF0aW9uIGlzIG5vdCBwZXJtaXR0ZWQuICovCi0tLSAKLWNnaXQgdjEuMi4xCi0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTMucGF0Y2ggYi9zcmNw a2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAyY2M5NDNmMjZmNmE2Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTMucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyOCArMCwwIEBACi1Gcm9tIGQ5MWE2Y2Y2ZTM2OWE3OTU4N2M1NjY1ZmNlOTYzNWU1NjM0 Y2EyMDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFz QGFlcmlmYWwuY3g+Ci1EYXRlOiBGcmksIDMwIE9jdCAyMDIwIDE2OjUwOjA4IC0wNDAwCi1TdWJq ZWN0OiBmaXggZXJyb25lb3VzIHB0aHJlYWRfY29uZF93YWl0IG11dGV4IHdhaXRlciBjb3VudCBs b2dpYyBkdWUgdG8gdHlwbwotCi1pbnRyb2R1Y2VkIGluIGNvbW1pdCAyN2IyZmM5ZDZkYjk1NjM1 OTcyN2E2NmMyNjJmMWU2OTk5NTY2MGFhLgotLS0tCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRf dGltZWR3YWl0LmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCi0KLShsaW1pdGVkIHRvICdzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdh aXQuYycpCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQu YyBiL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi1pbmRleCBhMGNkNDkwNC4u NmI3NjE0NTUgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQu YwotKysrIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLUBAIC0xNTUsNyAr MTU1LDcgQEAgcmVsb2NrOgotIAkJaW50IHZhbCA9IG0tPl9tX2xvY2s7Ci0gCQlpZiAodmFsPjAp IGFfY2FzKCZtLT5fbV9sb2NrLCB2YWwsIHZhbHwweDgwMDAwMDAwKTsKLSAJCXVubG9ja19yZXF1 ZXVlKCZub2RlLnByZXYtPmJhcnJpZXIsICZtLT5fbV9sb2NrLCBtLT5fbV90eXBlICYgKDh8MTI4 KSk7Ci0tCX0gZWxzZSBpZiAoISEobS0+X21fdHlwZSAmIDgpKSB7Ci0rCX0gZWxzZSBpZiAoISht LT5fbV90eXBlICYgOCkpIHsKLSAJCWFfZGVjKCZtLT5fbV93YWl0ZXJzKTsJCQotIAl9Ci0gCi0t LSAKLWNnaXQgdjEuMi4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1z dHJ2ZXJzY21wLWNvbXBhcmlzb24tb2YtZGlnaXQtc2VxdWVuY2Utd2l0aC1ub24ucGF0Y2gucGF0 Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtc3RydmVyc2NtcC1jb21wYXJpc29uLW9mLWRp Z2l0LXNlcXVlbmNlLXdpdGgtbm9uLnBhdGNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlMGYwYjhiZmZmZmM5Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9w YXRjaGVzL2ZpeC1zdHJ2ZXJzY21wLWNvbXBhcmlzb24tb2YtZGlnaXQtc2VxdWVuY2Utd2l0aC1u b24ucGF0Y2gucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIGI1MGVi OGMzNmMyMGY5NjdiZDBlZDcwYzBiMGRiMzhhNDUwODg2YmEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24sIDcg Tm92IDIwMjIgMjI6MTc6NTUgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4IHN0cnZlcnNjbXAg Y29tcGFyaXNvbiBvZiBkaWdpdCBzZXF1ZW5jZSB3aXRoIG5vbi1kaWdpdHMKLQotdGhlIHJ1bGUg dGhhdCBsb25nZXN0IGRpZ2l0IHNlcXVlbmNlIG5vdCBiZWdpbm5pbmcgd2l0aCBhIHplcm8gaXMK LWdyZWF0ZXIgb25seSBhcHBsaWVzIHdoZW4gYm90aCBzZXF1ZW5jZXMgYmVpbmcgY29tcGFyZWQg YXJlCi1ub24tZGVnZW5lcmF0ZS4gdGhpcyBpcyBzcGVsbGVkIG91dCBleHBsaWNpdGx5IGluIHRo ZSBtYW4gcGFnZSwgd2hpY2gKLW1heSBiZSBkZWVtZWQgYXV0aG9yaXRhdGl2ZSBmb3IgdGhpcyBu b25zdGFuZGFyZCBmdW5jdGlvbjogIklmIG9uZSBvcgotYm90aCBvZiB0aGVzZSBpcyBlbXB0eSwg dGhlbiByZXR1cm4gd2hhdCBzdHJjbXAoMykgd291bGQgaGF2ZQotcmV0dXJuZWQuLi4iCi0KLXdl IHdlcmUgd3JvbmdseSB0cmVhdGluZyBhbnkgc2VxdWVuY2Ugb2YgZGlnaXRzIG5vdCBiZWdpbm5p bmcgd2l0aCBhCi16ZXJvIGFzIGdyZWF0ZXIgdGhhbiBhIG5vbi1kaWdpdCBpbiB0aGUgb3RoZXIg c3RyaW5nLgotLS0tCi0gc3JjL3N0cmluZy9zdHJ2ZXJzY21wLmMgfCA2ICsrKy0tLQotIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9zcmMvc3RyaW5nL3N0cnZlcnNjbXAuYyBiL3NyYy9zdHJpbmcvc3RydmVyc2NtcC5jCi1pbmRl eCA0ZGFmMjc2ZC4uMTZjMWRhMjIgMTAwNjQ0Ci0tLS0gYS9zcmMvc3RyaW5nL3N0cnZlcnNjbXAu YwotKysrIGIvc3JjL3N0cmluZy9zdHJ2ZXJzY21wLmMKLUBAIC0xOCw5ICsxOCw5IEBAIGludCBz dHJ2ZXJzY21wKGNvbnN0IGNoYXIgKmwwLCBjb25zdCBjaGFyICpyMCkKLSAJCWVsc2UgaWYgKGMh PScwJykgej0wOwotIAl9Ci0gCi0tCWlmIChsW2RwXSE9JzAnICYmIHJbZHBdIT0nMCcpIHsKLS0J CS8qIElmIHdlJ3JlIG5vdCBsb29raW5nIGF0IGEgZGlnaXQgc2VxdWVuY2UgdGhhdCBiZWdhbgot LQkJICogd2l0aCBhIHplcm8sIGxvbmdlc3QgZGlnaXQgc3RyaW5nIGlzIGdyZWF0ZXIuICovCi0r CWlmIChsW2RwXS0nMSc8OVUgJiYgcltkcF0tJzEnPDlVKSB7Ci0rCQkvKiBJZiB3ZSdyZSBsb29r aW5nIGF0IG5vbi1kZWdlbmVyYXRlIGRpZ2l0IHNlcXVlbmNlcyBzdGFydGluZwotKwkJICogd2l0 aCBub256ZXJvIGRpZ2l0cywgbG9uZ2VzdCBkaWdpdCBzdHJpbmcgaXMgZ3JlYXRlci4gKi8KLSAJ CWZvciAoaj1pOyBpc2RpZ2l0KGxbal0pOyBqKyspCi0gCQkJaWYgKCFpc2RpZ2l0KHJbal0pKSBy ZXR1cm4gMTsKLSAJCWlmIChpc2RpZ2l0KHJbal0pKSByZXR1cm4gLTE7Ci0tLSAKLTIuNDEuMAot CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9nZXR0aWQucGF0Y2ggYi9zcmNwa2dz L211c2wvcGF0Y2hlcy9nZXR0aWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGJiOGJmNTkwNWI4ODAuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMv Z2V0dGlkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotRnJvbSBkNDljZjA3 NTQxYmI1NGE1YWM3YWVjMWZlZWM4NTE0ZGIzM2RiOGVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogTW9uLCAxNyBB dWcgMjAyMCAyMDoxMjo1MyAtMDQwMAotU3ViamVjdDogW1BBVENIXSBhZGQgZ2V0dGlkIGZ1bmN0 aW9uCi0KLXRoaXMgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIGFkZGl0aW9uIG9mIG90aGVyIGludGVy ZmFjZXMgdGhhdCB1c2UKLWtlcm5lbCB0aWRzLCBpbmNsdWRpbmcgZnV0ZXggYW5kIFNJR0VWX1RI UkVBRF9JRC4KLQotdGhlcmUgaXMgc29tZSBhbWJpZ3VpdHkgYXMgdG8gd2hldGhlciB0aGUgc2Vt YW50aWMgcmV0dXJuIHR5cGUgc2hvdWxkCi1iZSBpbnQgb3IgcGlkX3QuIGVpdGhlciB3YXksIGZ1 dGV4IEFQSSBpbXBvc2VzIGEgY29udHJhY3QgdGhhdCB0aGUKLXZhbHVlcyBmaXQgaW4gaW50IChl eGNsdWRpbmcgc29tZSB1cHBlciByZXNlcnZlZCBiaXRzKS4gZ2xpYmMgdXNlZAotcGlkX3QsIHNv IGluIHRoZSBpbnRlcmVzdCBvZiBub3QgaGF2aW5nIGdyYXR1aXRvdXMgbWlzbWF0Y2ggKHRoZQot dW5kZXJseWluZyB0eXBlcyBhcmUgdGhlIHNhbWUgYW55d2F5KSwgcGlkX3QgaXMgdXNlZCBoZXJl IGFzIHdlbGwuCi0KLXdoaWxlIGNvbmNlcHR1YWxseSB0aGlzIGlzIGEgc3lzY2FsbCwgdGhlIGNv cHkgc3RvcmVkIGluIHRoZSB0aHJlYWQKLXN0cnVjdHVyZSBpcyBhbHdheXMgdmFsaWQgaW4gYWxs IGNvbnRleHRzIHdoZXJlIGl0J3MgdmFsaWQgdG8gY2FsbAotbGliYyBmdW5jdGlvbnMsIHNvIGl0 J3MgdXNlZCB0byBhdm9pZCB0aGUgc3lzY2FsbC4KLS0tLQotIGluY2x1ZGUvdW5pc3RkLmggICB8 IDEgKwotIHNyYy9saW51eC9nZXR0aWQuYyB8IDggKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGludXgvZ2V0dGlkLmMK LQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvdW5pc3RkLmggYi9pbmNsdWRlL3VuaXN0ZC5oCi1pbmRl eCA3YmNiZmY5NDMuLjA3NTg0YTIzZSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvdW5pc3RkLmgKLSsr KyBiL2luY2x1ZGUvdW5pc3RkLmgKLUBAIC0xOTAsNiArMTkwLDcgQEAgaW50IHN5bmNmcyhpbnQp OwotIGludCBldWlkYWNjZXNzKGNvbnN0IGNoYXIgKiwgaW50KTsKLSBpbnQgZWFjY2Vzcyhjb25z dCBjaGFyICosIGludCk7Ci0gc3NpemVfdCBjb3B5X2ZpbGVfcmFuZ2UoaW50LCBvZmZfdCAqLCBp bnQsIG9mZl90ICosIHNpemVfdCwgdW5zaWduZWQpOwotK3BpZF90IGdldHRpZCh2b2lkKTsKLSAj ZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfTEFSR0VGSUxFNjRfU09VUkNFKSB8fCBkZWZpbmVkKF9H TlVfU09VUkNFKQotZGlmZiAtLWdpdCBhL3NyYy9saW51eC9nZXR0aWQuYyBiL3NyYy9saW51eC9n ZXR0aWQuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uNzA3NjcxMzdl Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvbGludXgvZ2V0dGlkLmMKLUBAIC0wLDAgKzEsOCBA QAotKyNkZWZpbmUgX0dOVV9TT1VSQ0UKLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rI2luY2x1ZGUg InB0aHJlYWRfaW1wbC5oIgotKwotK3BpZF90IGdldHRpZCh2b2lkKQotK3sKLSsJcmV0dXJuIF9f cHRocmVhZF9zZWxmKCktPnRpZDsKLSt9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hl cy9pbXBsZW1lbnRfcmVhbHBhdGhfZGlyZWN0bHlfaW5zdGVhZF9vZl91c2luZ19wcm9jZnNfcmVh ZGxpbmsucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9pbXBsZW1lbnRfcmVhbHBhdGhfZGly ZWN0bHlfaW5zdGVhZF9vZl91c2luZ19wcm9jZnNfcmVhZGxpbmsucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDU2OWExZjUyYzdjZDkuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVjdGx5X2luc3RlYWRfb2Zf dXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjE5ICswLDAg QEAKLUZyb20gMjlmZjc1OTlhNDQ4MjMyZjI1Mjc4NDFjMjM2MjY0M2QyNDZjZWUzNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4K LURhdGU6IE1vbiwgMzAgTm92IDIwMjAgMTI6MTQ6NDcgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0g aW1wbGVtZW50IHJlYWxwYXRoIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgcHJvY2ZzIHJlYWRs aW5rCi0KLWluYWJpbGl0eSB0byB1c2UgcmVhbHBhdGggaW4gY2hyb290L2NvbnRhaW5lciB3aXRo b3V0IHByb2NmcyBhY2Nlc3MKLWFuZCBhdCBlYXJseSBib290IHByaW9yIHRvIG1vdW50IG9mIC9w cm9jIGhhcyBiZWVuIGFuIG9uZ29pbmcgaXNzdWUsCi1hbmQgaXQgdHVybnMgb3V0IHJlYWxwYXRo IHdhcyBvbmUgb2YgdGhlIGxhc3QgcmVtYWluaW5nIGludGVyZmFjZXMKLXRoYXQgbmVlZGVkIHBy b2NmcyBmb3IgaXRzIGNvcmUgZnVuY3Rpb25hbGl0eS4gZHVyaW5nIGludmVzdGlnYXRpb24KLXdo aWxlIHJlaW1wbGVtZW50aW5nLCBpdCB3YXMgZGV0ZXJtaW5lZCB0aGF0IHRoZXJlIHdlcmUgYWxz byBzZXJpb3VzCi1wcm9ibGVtcyB3aXRoIHRoZSBwcm9jZnMtYmFzZWQgaW1wbGVtZW50YXRpb24u IG1vc3Qgc2VyaW91c2x5IGl0IHdhcwotdW5zYWZlIG9uIHByZS1PX1BBVEgga2VybmVscywgYW5k IHVubGlrZSBvdGhlciBwbGFjZXMgd2hlcmUgT19QQVRIIHdhcwotdXNlZCwgdGhlIHVuc2FmZXR5 IHdhcyBoYXJkIG9yIGltcG9zc2libGUgdG8gZml4IGJlY2F1c2UgT19OT0ZPTExPVwotY2FuJ3Qg YmUgdXNlZCAoc2luY2UgdGhlIHdob2xlIHB1cnBvc2Ugd2FzIHRvIGZvbGxvdyBzeW1saW5rcyku Ci0KLXRoZSBuZXcgaW1wbGVtZW50YXRpb24gaXMgYSBkaXJlY3Qgb25lLCBwZXJmb3JtaW5nIHJl YWRsaW5rIG9uIGVhY2gKLXBhdGggY29tcG9uZW50IHRvIHJlc29sdmUgaXQuIGFuIGV4cGxpY2l0 IHN0YWNrLCBhcyBvcHBvc2VkIHRvCi1yZWN1cnNpb24sIGlzIHVzZWQgdG8gcmVwcmVzZW50IHRo ZSByZW1haW5pbmcgY29tcG9uZW50cyB0byBiZQotcHJvY2Vzc2VkLiB0aGUgc3RhY2sgc3RhcnRz IG91dCBob2xkaW5nIGp1c3QgdGhlIGlucHV0IHN0cmluZywgYW5kCi1yZWFkaW5nIGEgbGluayBw dXNoZXMgdGhlIGxpbmsgY29udGVudHMgb250byB0aGUgc3RhY2suCi0KLXVubGlrZSBtYW55IG90 aGVyIGltcGxlbWVudGF0aW9ucywgdGhpcyBvbmUgZG9lcyBub3QgY2FsbCBnZXRjd2QKLWluaXRp YWxseSBmb3IgcmVsYXRpdmUgcGF0aG5hbWVzLiBpbnN0ZWFkIGl0IGFjY3VtdWxhdGVzIGluaXRp YWwgLi4KLWNvbXBvbmVudHMgdG8gYmUgYXBwbGllZCB0byB0aGUgd29ya2luZyBkaXJlY3Rvcnkg aWYgdGhlIHJlc3VsdCBpcwotc3RpbGwgYSByZWxhdGl2ZSBwYXRoLiB0aGlzIGF2b2lkcyBjYWxs aW5nIGdldGN3ZCAod2hpY2ggbWF5IGZhaWwpIGF0Ci1hbGwgd2hlbiBzeW1saW5rIHRyYXZlcnNh bCB3aWxsIGV2ZW50dWFsbHkgeWllbGQgYW4gYWJzb2x1dGUgcGF0aC4gaXQKLWFsc28gZG9lc24n dCB1c2UgYW55IGZvcm0gb2Ygc3RhdCBvcGVyYXRpb247IGluc3RlYWQgaXQgYXJyYW5nZXMgZm9y Ci1yZWFkbGluayB0byB0ZWxsIGl0IHdoZW4gYSBub24tZGlyZWN0b3J5IGlzIHVzZWQgaW4gYSBj b250ZXh0IHdoZXJlIGEKLWRpcmVjdG9yeSBpcyBuZWVkZWQuIHRoaXMgbWluaW1pemVzIHRoZSBu dW1iZXIgb2Ygc3lzY2FsbHMgbmVlZGVkLAotYXZvaWRzIGFjY2Vzc2luZyBpbm9kZXMgd2hlbiB0 aGUgZGlyZWN0b3J5IHRhYmxlIHN1ZmZpY2VzLCBhbmQgcmVkdWNlcwotdGhlIGFtb3VudCBvZiBj b2RlIHB1bGxlZCBpbiBmb3Igc3RhdGljIGxpbmtpbmcuCi0tLS0KLSBzcmMvbWlzYy9yZWFscGF0 aC5jIHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCi0g MSBmaWxlIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NyYy9taXNjL3JlYWxwYXRoLmMgYi9zcmMvbWlzYy9yZWFscGF0aC5jCi1pbmRl eCBkMjcwOGU1OWQuLmRiOGI3NGRjOCAxMDA2NDQKLS0tLSBhL3NyYy9taXNjL3JlYWxwYXRoLmMK LSsrKyBiL3NyYy9taXNjL3JlYWxwYXRoLmMKLUBAIC0xLDQzICsxLDE1NiBAQAotICNpbmNsdWRl IDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8bGltaXRzLmg+Ci0tI2luY2x1ZGUgPHN5cy9zdGF0Lmg+ Ci0tI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gI2luY2x1ZGUgPHVu aXN0ZC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLS0jaW5jbHVkZSAic3lzY2FsbC5oIgotKwot K3N0YXRpYyBzaXplX3Qgc2xhc2hfbGVuKGNvbnN0IGNoYXIgKnMpCi0rewotKwljb25zdCBjaGFy ICpzMCA9IHM7Ci0rCXdoaWxlICgqcyA9PSAnLycpIHMrKzsKLSsJcmV0dXJuIHMtczA7Ci0rfQot IAotIGNoYXIgKnJlYWxwYXRoKGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZpbGVuYW1lLCBjaGFyICpy ZXN0cmljdCByZXNvbHZlZCkKLSB7Ci0tCWludCBmZDsKLS0Jc3NpemVfdCByOwotLQlzdHJ1Y3Qg c3RhdCBzdDEsIHN0MjsKLS0JY2hhciBidWZbMTUrMypzaXplb2YoaW50KV07Ci0tCWNoYXIgdG1w W1BBVEhfTUFYXTsKLSsJY2hhciBzdGFja1tQQVRIX01BWCsxXTsKLSsJY2hhciBvdXRwdXRbUEFU SF9NQVhdOwotKwlzaXplX3QgcCwgcSwgbCwgbDAsIGNudD0wLCBudXA9MDsKLSsJaW50IGNoZWNr X2Rpcj0wOwotIAotIAlpZiAoIWZpbGVuYW1lKSB7Ci0gCQllcnJubyA9IEVJTlZBTDsKLSAJCXJl dHVybiAwOwotIAl9Ci0rCWwgPSBzdHJubGVuKGZpbGVuYW1lLCBzaXplb2Ygc3RhY2spOwotKwlp ZiAoIWwpIHsKLSsJCWVycm5vID0gRU5PRU5UOwotKwkJcmV0dXJuIDA7Ci0rCX0KLSsJaWYgKGwg Pj0gUEFUSF9NQVgpIGdvdG8gdG9vbG9uZzsKLSsJcCA9IHNpemVvZiBzdGFjayAtIGwgLSAxOwot KwlxID0gMDsKLSsJbWVtY3B5KHN0YWNrK3AsIGZpbGVuYW1lLCBsKzEpOwotKwotKwkvKiBNYWlu IGxvb3AuIEVhY2ggaXRlcmF0aW9uIHBvcHMgdGhlIG5leHQgcGFydCBmcm9tIHN0YWNrIG9mCi0r CSAqIHJlbWFpbmluZyBwYXRoIGNvbXBvbmVudHMgYW5kIGNvbnN1bWVzIGFueSBzbGFzaGVzIHRo YXQgZm9sbG93LgotKwkgKiBJZiBub3QgYSBsaW5rLCBpdCdzIG1vdmVkIHRvIG91dHB1dDsgaWYg YSBsaW5rLCBjb250ZW50cyBhcmUKLSsJICogcHVzaGVkIHRvIHRoZSBzdGFjay4gKi8KLStyZXN0 YXJ0OgotKwlmb3IgKDsgOyBwKz1zbGFzaF9sZW4oc3RhY2srcCkpIHsKLSsJCS8qIElmIHN0YWNr IHN0YXJ0cyB3aXRoIC8sIHRoZSB3aG9sZSBjb21wb25lbnQgaXMgLyBvciAvLwotKwkJICogYW5k IHRoZSBvdXRwdXQgc3RhdGUgbXVzdCBiZSByZXNldC4gKi8KLSsJCWlmIChzdGFja1twXSA9PSAn LycpIHsKLSsJCQljaGVja19kaXI9MDsKLSsJCQludXA9MDsKLSsJCQlxPTA7Ci0rCQkJb3V0cHV0 W3ErK10gPSAnLyc7Ci0rCQkJcCsrOwotKwkJCS8qIEluaXRpYWwgLy8gaXMgc3BlY2lhbC4gKi8K LSsJCQlpZiAoc3RhY2tbcF0gPT0gJy8nICYmIHN0YWNrW3ArMV0gIT0gJy8nKQotKwkJCQlvdXRw dXRbcSsrXSA9ICcvJzsKLSsJCQljb250aW51ZTsKLSsJCX0KLSsKLSsJCWNoYXIgKnogPSBfX3N0 cmNocm51bChzdGFjaytwLCAnLycpOwotKwkJbDAgPSBsID0gei0oc3RhY2srcCk7Ci0gCi0tCWZk ID0gc3lzX29wZW4oZmlsZW5hbWUsIE9fUEFUSHxPX05PTkJMT0NLfE9fQ0xPRVhFQyk7Ci0tCWlm IChmZCA8IDApIHJldHVybiAwOwotLQlfX3Byb2NmZG5hbWUoYnVmLCBmZCk7Ci0rCQlpZiAoIWwg JiYgIWNoZWNrX2RpcikgYnJlYWs7Ci0gCi0tCXIgPSByZWFkbGluayhidWYsIHRtcCwgc2l6ZW9m IHRtcCAtIDEpOwotLQlpZiAociA8IDApIGdvdG8gZXJyOwotLQl0bXBbcl0gPSAwOwotKwkJLyog U2tpcCBhbnkgLiBjb21wb25lbnQgYnV0IHByZXNlcnZlIGNoZWNrX2RpciBzdGF0dXMuICovCi0r CQlpZiAobD09MSAmJiBzdGFja1twXT09Jy4nKSB7Ci0rCQkJcCArPSBsOwotKwkJCWNvbnRpbnVl OwotKwkJfQotIAotLQlmc3RhdChmZCwgJnN0MSk7Ci0tCXIgPSBzdGF0KHRtcCwgJnN0Mik7Ci0t CWlmIChyPDAgfHwgc3QxLnN0X2RldiAhPSBzdDIuc3RfZGV2IHx8IHN0MS5zdF9pbm8gIT0gc3Qy LnN0X2lubykgewotLQkJaWYgKCFyKSBlcnJubyA9IEVMT09QOwotLQkJZ290byBlcnI7Ci0rCQkv KiBDb3B5IG5leHQgY29tcG9uZW50IG9udG8gb3V0cHV0IGF0IGxlYXN0IHRlbXBvcmFyaWx5LCB0 bwotKwkJICogY2FsbCByZWFkbGluaywgYnV0IHdhaXQgdG8gYWR2YW5jZSBvdXRwdXQgcG9zaXRp b24gdW50aWwKLSsJCSAqIGRldGVybWluaW5nIGl0J3Mgbm90IGEgbGluay4gKi8KLSsJCWlmIChx ICYmIG91dHB1dFtxLTFdICE9ICcvJykgewotKwkJCWlmICghcCkgZ290byB0b29sb25nOwotKwkJ CXN0YWNrWy0tcF0gPSAnLyc7Ci0rCQkJbCsrOwotKwkJfQotKwkJaWYgKHErbCA+PSBQQVRIX01B WCkgZ290byB0b29sb25nOwotKwkJbWVtY3B5KG91dHB1dCtxLCBzdGFjaytwLCBsKTsKLSsJCW91 dHB1dFtxK2xdID0gMDsKLSsJCXAgKz0gbDsKLSsKLSsJCWludCB1cCA9IDA7Ci0rCQlpZiAobDA9 PTIgJiYgc3RhY2tbcC0yXT09Jy4nICYmIHN0YWNrW3AtMV09PScuJykgewotKwkJCXVwID0gMTsK LSsJCQkvKiBBbnkgbm9uLS4uIHBhdGggY29tcG9uZW50cyB3ZSBjb3VsZCBjYW5jZWwgc3RhcnQK LSsJCQkgKiBhZnRlciBudXAgcmVwZXRpdGlvbnMgb2YgdGhlIDMtYnl0ZSBzdHJpbmcgIi4uLyI7 Ci0rCQkJICogaWYgdGhlcmUgYXJlIG5vbmUsIGFjY3VtdWxhdGUgLi4gY29tcG9uZW50cyB0bwot KwkJCSAqIGxhdGVyIGFwcGx5IHRvIGN3ZCwgaWYgbmVlZGVkLiAqLwotKwkJCWlmIChxIDw9IDMq bnVwKSB7Ci0rCQkJCW51cCsrOwotKwkJCQlxICs9IGw7Ci0rCQkJCWNvbnRpbnVlOwotKwkJCX0K LSsJCQkvKiBXaGVuIHByZXZpb3VzIGNvbXBvbmVudHMgYXJlIGFscmVhZHkga25vd24gdG8gYmUK LSsJCQkgKiBkaXJlY3RvcmllcywgcHJvY2Vzc2luZyAuLiBjYW4gc2tpcCByZWFkbGluay4gKi8K LSsJCQlpZiAoIWNoZWNrX2RpcikgZ290byBza2lwX3JlYWRsaW5rOwotKwkJfQotKwkJc3NpemVf dCBrID0gcmVhZGxpbmsob3V0cHV0LCBzdGFjaywgcCk7Ci0rCQlpZiAoaz09cCkgZ290byB0b29s b25nOwotKwkJaWYgKCFrKSB7Ci0rCQkJZXJybm8gPSBFTk9FTlQ7Ci0rCQkJcmV0dXJuIDA7Ci0r CQl9Ci0rCQlpZiAoazwwKSB7Ci0rCQkJaWYgKGVycm5vICE9IEVJTlZBTCkgcmV0dXJuIDA7Ci0r c2tpcF9yZWFkbGluazoKLSsJCQljaGVja19kaXIgPSAwOwotKwkJCWlmICh1cCkgewotKwkJCQl3 aGlsZShxICYmIG91dHB1dFtxLTFdIT0nLycpIHEtLTsKLSsJCQkJaWYgKHE+MSAmJiAocT4yIHx8 IG91dHB1dFswXSE9Jy8nKSkgcS0tOwotKwkJCQljb250aW51ZTsKLSsJCQl9Ci0rCQkJaWYgKGww KSBxICs9IGw7Ci0rCQkJY2hlY2tfZGlyID0gc3RhY2tbcF07Ci0rCQkJY29udGludWU7Ci0rCQl9 Ci0rCQlpZiAoKytjbnQgPT0gU1lNTE9PUF9NQVgpIHsKLSsJCQllcnJubyA9IEVMT09QOwotKwkJ CXJldHVybiAwOwotKwkJfQotKwotKwkJLyogSWYgbGluayBjb250ZW50cyBlbmQgaW4gLywgc3Ry aXAgYW55IHNsYXNoZXMgYWxyZWFkeSBvbgotKwkJICogc3RhY2sgdG8gYXZvaWQgLy0+Ly8gb3Ig Ly8tPi8vLyBvciBzcHVyaW91cyB0b29sb25nLiAqLwotKwkJaWYgKHN0YWNrW2stMV09PScvJykg d2hpbGUgKHN0YWNrW3BdPT0nLycpIHArKzsKLSsJCXAgLT0gazsKLSsJCW1lbW1vdmUoc3RhY2sr cCwgc3RhY2ssIGspOwotKwotKwkJLyogU2tpcCB0aGUgc3RhY2sgYWR2YW5jZW1lbnQgaW4gY2Fz ZSB3ZSBoYXZlIGEgbmV3Ci0rCQkgKiBhYnNvbHV0ZSBiYXNlIHBhdGguICovCi0rCQlnb3RvIHJl c3RhcnQ7Ci0gCX0KLSAKLS0JX19zeXNjYWxsKFNZU19jbG9zZSwgZmQpOwotLQlyZXR1cm4gcmVz b2x2ZWQgPyBzdHJjcHkocmVzb2x2ZWQsIHRtcCkgOiBzdHJkdXAodG1wKTsKLS1lcnI6Ci0tCV9f c3lzY2FsbChTWVNfY2xvc2UsIGZkKTsKLSsgCW91dHB1dFtxXSA9IDA7Ci0rCi0rCWlmIChvdXRw dXRbMF0gIT0gJy8nKSB7Ci0rCQlpZiAoIWdldGN3ZChzdGFjaywgc2l6ZW9mIHN0YWNrKSkgcmV0 dXJuIDA7Ci0rCQlsID0gc3RybGVuKHN0YWNrKTsKLSsJCS8qIENhbmNlbCBhbnkgaW5pdGlhbCAu LiBjb21wb25lbnRzLiAqLwotKwkJcCA9IDA7Ci0rCQl3aGlsZSAobnVwLS0pIHsKLSsJCQl3aGls ZShsPjEgJiYgc3RhY2tbbC0xXSE9Jy8nKSBsLS07Ci0rCQkJaWYgKGw+MSkgbC0tOwotKwkJCXAg Kz0gMjsKLSsJCQlpZiAocDxxKSBwKys7Ci0rCQl9Ci0rCQlpZiAocS1wICYmIHN0YWNrW2wtMV0h PScvJykgc3RhY2tbbCsrXSA9ICcvJzsKLSsJCWlmIChsICsgKHEtcCkgKyAxID49IFBBVEhfTUFY KSBnb3RvIHRvb2xvbmc7Ci0rCQltZW1tb3ZlKG91dHB1dCArIGwsIG91dHB1dCArIHAsIHEgLSBw ICsgMSk7Ci0rCQltZW1jcHkob3V0cHV0LCBzdGFjaywgbCk7Ci0rCQlxID0gbCArIHEtcDsKLSsJ fQotKwotKwlpZiAocmVzb2x2ZWQpIHJldHVybiBtZW1jcHkocmVzb2x2ZWQsIG91dHB1dCwgcSsx KTsKLSsJZWxzZSByZXR1cm4gc3RyZHVwKG91dHB1dCk7Ci0rCi0rdG9vbG9uZzoKLSsJZXJybm8g PSBFTkFNRVRPT0xPTkc7Ci0gCXJldHVybiAwOwotIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzL2lzYXNjaWkucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9pc2FzY2lpLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzE5ZDJlZTE4OGZhLi4wMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2lzYXNjaWkucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9tIGU0OGU5OWMxMTIyNDZmYjU4MDU5NjQwNDA3NDQ0 NWNiMjVkNzg1OGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/PUMz PTg5cmljbz0yMFJvbGltPz0gPGVyaWNvbnJAZGlzcm9vdC5vcmc+Ci1EYXRlOiBNb24sIDQgSmFu IDIwMjEgMjI6NDg6MzQgLTAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gc3VwcHJlc3MgaXNhc2NpaSgp IG1hY3JvIGZvciBDKysKLQotYW5hbG9nb3VzIHRvIGNvbW1pdCBhNjA0NTdjODRhNGI1OWFiNTY0 ZDdmNGFiYjY2MGE3MDI4M2JhOThkLgotCi1kaWZmIC0tZ2l0IGluY2x1ZGUvY3R5cGUuaCBpbmNs dWRlL2N0eXBlLmgKLWluZGV4IDc5MzY1MzZmLi4zMmJjZWY0ZCAxMDA2NDQKLS0tLSBhL2luY2x1 ZGUvY3R5cGUuaAotKysrIGIvaW5jbHVkZS9jdHlwZS5oCi1AQCAtNjQsNyArNjQsOSBAQCBpbnQg ICBpc2FzY2lpKGludCk7Ci0gaW50ICAgdG9hc2NpaShpbnQpOwotICNkZWZpbmUgX3RvbG93ZXIo YSkgKChhKXwweDIwKQotICNkZWZpbmUgX3RvdXBwZXIoYSkgKChhKSYweDVmKQotKyNpZm5kZWYg X19jcGx1c3BsdXMKLSAjZGVmaW5lIGlzYXNjaWkoYSkgKDAgPyBpc2FzY2lpKGEpIDogKHVuc2ln bmVkKShhKSA8IDEyOCkKLSsjZW5kaWYKLSAKLSAjZW5kaWYKLSAKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL21vX2xvb2t1cC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL21v X2xvb2t1cC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU4NmUzM2M5Yzcw MC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9tb19sb29rdXAucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1EbyBub3QgY3Jhc2ggd2l0aCBhIE5V TEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGRjbmdldHRleHQoKQotaXMgY2FsbGVkIHdpdGgg TlVMTCBtc2dpZFsxMl0gYXJndW1lbnRzLgotCi1GaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzLzEyMDQyCi1hbmQgcHJvYmFibHkgb3RoZXJz LgotCi0JLS14dHJhZW1lCi0KLS0tLSBhL3NyYy9sb2NhbGUvX19tb19sb29rdXAuYy5vcmlnCTIw MTktMDYtMjYgMDk6NTU6MzYuODQzMDEyNjc0ICswMjAwCi0rKysgYi9zcmMvbG9jYWxlL19fbW9f bG9va3VwLmMJMjAxOS0wNi0yNiAwOTo1NjoxMS41Mjk0NDM5NTUgKzAyMDAKLUBAIC0xMyw3ICsx Myw3IEBAIGNvbnN0IGNoYXIgKl9fbW9fbG9va3VwKGNvbnN0IHZvaWQgKnAsIHMKLSAJdWludDMy X3QgYiA9IDAsIG4gPSBzd2FwYyhtb1syXSwgc3cpOwotIAl1aW50MzJfdCBvID0gc3dhcGMobW9b M10sIHN3KTsKLSAJdWludDMyX3QgdCA9IHN3YXBjKG1vWzRdLCBzdyk7Ci0tCWlmIChuPj1zaXpl LzQgfHwgbz49c2l6ZS00Km4gfHwgdD49c2l6ZS00Km4gfHwgKChvfHQpJTQpKQotKwlpZiAoIXMg fHwgbj49c2l6ZS80IHx8IG8+PXNpemUtNCpuIHx8IHQ+PXNpemUtNCpuIHx8ICgob3x0KSU0KSkK LSAJCXJldHVybiAwOwotIAlvLz00OwotIAl0Lz00OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNs L3BhdGNoZXMvcHBjLXB0X3JlZ3MucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGMtcHRf cmVncy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU4MTUzMjFiZjBmMS4u MDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGMtcHRfcmVncy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWNvbW1pdCBjMjUxOGE4ZWZiNjUwN2Yx YjQxYzNiMTJlMDNiMDZmOGYyMzE3YTFmCi1BdXRob3I6IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVy aWZhbC5jeD4KLURhdGU6ICAgU2F0IE9jdCAxOSAxNTo1Mzo0MyAyMDE5IC0wNDAwCi0KLSAgICB1 c2Ugc3RydWN0IHB0X3JlZ3MgKiByYXRoZXIgdGhhbiB2b2lkICogZm9yIHBvd2VycGNbNjRdIHNp Z2NvbnRleHQgcmVncwotICAgIAotICAgIHRoaXMgaXMgdG8gbWF0Y2ggdGhlIGtlcm5lbCBhbmQg Z2xpYmMgaW50ZXJmYWNlcy4gaGVyZSwgc3RydWN0IHB0X3JlZ3MKLSAgICBpcyBhbiBpbmNvbXBs ZXRlIHR5cGUsIGJ1dCB0aGF0J3MgaGFybWxlc3MsIGFuZCBpZiBpdCdzIGNvbXBsZXRlZCBieQot ICAgIGluY2x1c2lvbiBvZiBhbm90aGVyIGhlYWRlciB0aGVuIG1lbWJlcnMgb2YgdGhlIHN0cnVj dCBwb2ludGVkIHRvIGJ5Ci0gICAgdGhlIHJlZ3MgbWVtYmVyIGNhbiBiZSBhY2Nlc3NlZCBkaXJl Y3RseSB3aXRob3V0IGdvaW5nIHRocm91Z2ggYSBjYXN0Ci0gICAgb3IgaW50ZXJtZWRpYXRlIHBv aW50ZXIgb2JqZWN0LgotCi1kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2JpdHMvc2lnbmFsLmgg Yi9hcmNoL3Bvd2VycGMvYml0cy9zaWduYWwuaAotaW5kZXggMDZlZmIxMWMuLmMxYmYzY2FmIDEw MDY0NAotLS0tIGEvYXJjaC9wb3dlcnBjL2JpdHMvc2lnbmFsLmgKLSsrKyBiL2FyY2gvcG93ZXJw Yy9iaXRzL3NpZ25hbC5oCi1AQCAtMjgsNyArMjgsNyBAQCBzdHJ1Y3Qgc2lnY29udGV4dCB7Ci0g CWludCBzaWduYWw7Ci0gCXVuc2lnbmVkIGxvbmcgaGFuZGxlcjsKLSAJdW5zaWduZWQgbG9uZyBv bGRtYXNrOwotLQl2b2lkICpyZWdzOwotKwlzdHJ1Y3QgcHRfcmVncyAqcmVnczsKLSB9OwotIAot IHR5cGVkZWYgc3RydWN0IHsKLWRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25h bC5oIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotaW5kZXggNGRlYzIyYTUuLmQ1NDkz YjE4IDEwMDY0NAotLS0tIGEvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotKysrIGIvYXJj aC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotQEAgLTMyLDcgKzMyLDcgQEAgdHlwZWRlZiBzdHJ1 Y3Qgc2lnY29udGV4dCB7Ci0gCWludCBfcGFkMDsKLSAJdW5zaWduZWQgbG9uZyBoYW5kbGVyOwot IAl1bnNpZ25lZCBsb25nIG9sZG1hc2s7Ci0tCXZvaWQgKnJlZ3M7Ci0rCXN0cnVjdCBwdF9yZWdz ICpyZWdzOwotIAlncmVnc2V0X3QgZ3BfcmVnczsKLSAJZnByZWdzZXRfdCBmcF9yZWdzOwotIAl2 cnJlZ3NldF90ICp2X3JlZ3M7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2 NC1mcHJlZ3NldF90LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjNjQtZnByZWdzZXRf dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI2MTdiYTBlZjdkNS4uMDAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2NC1mcHJlZ3NldF90LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotY29tbWl0IGM5ZjQ4Y2RlMGEyMjY0 MWNlM2RhZjU0NTk2YTllY2ViZGFiOTE0MzUKLUF1dGhvcjogUmljaCBGZWxrZXIgPGRhbGlhc0Bh ZXJpZmFsLmN4PgotRGF0ZTogICBTYXQgT2N0IDE5IDE1OjM5OjQ1IDIwMTkgLTA0MDAKLQotICAg IGZpeCBmcHJlZ3NldF90IHR5cGUgb24gcG93ZXJwYzY0Ci0gICAgCi0gICAgdGhlIHVzZXJzcGFj ZSB1Y29udGV4dCBBUEkgaGFzIHRoaXMgYXMgYW4gYXJyYXkgcmF0aGVyIHRoYW4gYQotICAgIHN0 cnVjdHVyZS4KLSAgICAKLSAgICBjb21taXQgM2M1OWE4Njg5NTY2MzZiYzhhZGFmYjFiMTY4ZDA5 MDg5NzY5MjUzMiBmaXhlZCB0aGUKLSAgICBjb3JyZXNwb25kaW5nIG1pc3Rha2UgZm9yIHZycmVn c2V0X3QsIG5hbWVseSB0aGF0IHRoZSBvcmlnaW5hbAotICAgIHBvd2VycGM2NCBwb3J0IHVzZWQg YSBtaXggb2YgdHlwZXMgZnJvbSAzMi1iaXQgcG93ZXJwYyBhbmQgcG93ZXJwYzY0Ci0gICAgcmF0 aGVyIHRoYW4gbWF0Y2hpbmcgdGhlIDY0LWJpdCB0eXBlcy4KLQotZGlmZiAtLWdpdCBhL2FyY2gv cG93ZXJwYzY0L2JpdHMvc2lnbmFsLmggYi9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oCi1p bmRleCAyY2MwNjA0Yy4uNGRlYzIyYTUgMTAwNjQ0Ci0tLS0gYS9hcmNoL3Bvd2VycGM2NC9iaXRz L3NpZ25hbC5oCi0rKysgYi9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oCi1AQCAtOSwxMSAr OSw3IEBACi0gI2lmIGRlZmluZWQoX0dOVV9TT1VSQ0UpIHx8IGRlZmluZWQoX0JTRF9TT1VSQ0Up Ci0gCi0gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGdyZWdfdCwgZ3JlZ3NldF90WzQ4XTsKLS0KLS10 eXBlZGVmIHN0cnVjdCB7Ci0tCWRvdWJsZSBmcHJlZ3NbMzJdOwotLQlkb3VibGUgZnBzY3I7Ci0t fSBmcHJlZ3NldF90OwotK3R5cGVkZWYgZG91YmxlIGZwcmVnc2V0X3RbMzNdOwotIAotIHR5cGVk ZWYgc3RydWN0IHsKLSAjaWZkZWYgX19HTlVDX18KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9w YXRjaGVzL3BwY2xlLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjbGUucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkNDkzMzhhNWEwZjEuLjAwMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjbGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwyNCArMCwwIEBACi1Gcm9tIDIwZGZjMjAwMjQ4MmEyMWI5NTViNzEwYWYxMTlhMDFhZWNlZTc4 NGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KLURhdGU6IFR1ZSwgMTUgRGVjIDIwMjAgMjA6NDI6MTcgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gYWRkIHBwYzMyIGxlIHN1YmFyY2gKLQotLS0tCi0gY29uZmlndXJlIHwg MSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgY29uZmln dXJlIGNvbmZpZ3VyZQotaW5kZXggODY4MDEyOC4uZjFjYTU4ZSAxMDA3NTUKLS0tLSBhL2NvbmZp Z3VyZQotKysrIGIvY29uZmlndXJlCi1AQCAtNjQ1LDYgKzY0NSw3IEBAIGZpCi0gaWYgdGVzdCAi JEFSQ0giID0gInBvd2VycGMiIDsgdGhlbgotIHRyeWNwcGlmICJfX05PX0ZQUlNfXyAmJiAhX1NP RlRfRkxPQVQiICIkdCIgJiYgZmFpbCBcCi0gICAiJDA6IGVycm9yOiBjb21waWxlcidzIGZsb2F0 aW5nIHBvaW50IGNvbmZpZ3VyYXRpb24gaXMgdW5zdXBwb3J0ZWQiCi0rdHJ5Y3BwaWYgX19MSVRU TEVfRU5ESUFOX18gIiR0IiAmJiBTVUJBUkNIPSR7U1VCQVJDSH1sZQotIHRyeWNwcGlmIF9TT0ZU X0ZMT0FUICIkdCIgJiYgU1VCQVJDSD0ke1NVQkFSQ0h9LXNmCi0gZmkKLSAKLS0tIAotMi4yOS4y Ci0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3Jpc2N2NjQtdWNvbnRleHQucGF0 Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9yaXNjdjY0LXVjb250ZXh0LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWZhYzgyYjZkMjFkLi4wMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3Jpc2N2NjQtdWNvbnRleHQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIDU2ZjA2MzFkOTU1M2RjMDY1MzBmZjY2MTUyN2NmMWZj ZDU5NWEwZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEcmV3IERlVmF1bHQgPHNp ckBjbXB3bi5jb20+Ci1EYXRlOiBTYXQsIDUgRGVjIDIwMjAgMTg6MTA6MDYgKzAwMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gcmlzY3Y2NDogZml4IGluY29uc2lzdGVudCB1Y29udGV4dF90IHN0cnVjdCB0 YWcKLQotdWNvbnRleHQuaCBkZXBlbmRzIG9uIHRoZSBpbnRlcm5hbCBzdHJ1Y3QgdGFnIG5hbWUg Zm9yIG5hbWVzcGFjaW5nCi1yZWFzb25zLCBhbmQgdGhlIGludGVudCB3YXMgYWx3YXlzIGZvciBp dCB0byBiZSBjb25zaXN0ZW50IGFjcm9zcwotYXJjaHMgYW55d2F5LgotLS0tCi0gYXJjaC9yaXNj djY0L2JpdHMvc2lnbmFsLmggfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdjY0L2JpdHMvc2ln bmFsLmggYi9hcmNoL3Jpc2N2NjQvYml0cy9zaWduYWwuaAotaW5kZXggYjAwNjMzNGY3Li4yODcz NjdkYjcgMTAwNjQ0Ci0tLS0gYS9hcmNoL3Jpc2N2NjQvYml0cy9zaWduYWwuaAotKysrIGIvYXJj aC9yaXNjdjY0L2JpdHMvc2lnbmFsLmgKLUBAIC02MCwxMCArNjAsMTAgQEAgc3RydWN0IHNpZ2Fs dHN0YWNrIHsKLSAJc2l6ZV90IHNzX3NpemU7Ci0gfTsKLSAKLS10eXBlZGVmIHN0cnVjdCB1Y29u dGV4dF90Ci0rdHlwZWRlZiBzdHJ1Y3QgX191Y29udGV4dAotIHsKLSAJdW5zaWduZWQgbG9uZyB1 Y19mbGFnczsKLS0Jc3RydWN0IHVjb250ZXh0X3QgKnVjX2xpbms7Ci0rCXN0cnVjdCBfX3Vjb250 ZXh0ICp1Y19saW5rOwotIAlzdGFja190IHVjX3N0YWNrOwotIAlzaWdzZXRfdCB1Y19zaWdtYXNr OwotIAltY29udGV4dF90IHVjX21jb250ZXh0OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3Bh dGNoZXMvd29ya19hcm91bmRfbGludXhfYnVnX2luX3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJv X2J1ZmZlci5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3dvcmtfYXJvdW5kX2xpbnV4X2J1 Z19pbl9yZWFkbGlua19zeXNjYWxsX3dpdGhfemVyb19idWZmZXIucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDMyODY0MzJlYmVhMjMuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvd29ya19hcm91bmRfbGludXhfYnVnX2luX3JlYWRsaW5rX3N5c2Nh bGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAK LUZyb20gZTJmYTcyMGJlNzAyNGNjZTRmYzQ4OWYzODc3NDc2ZDM1ZGE0OGVlMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURh dGU6IE1vbiwgMjMgTm92IDIwMjAgMTk6NDQ6MTkgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gd29y ayBhcm91bmQgbGludXggYnVnIGluIHJlYWRsaW5rIHN5c2NhbGwgd2l0aCB6ZXJvIGJ1ZmZlcgot IHNpemUKLQotbGludXggZmFpbHMgd2l0aCBFSU5WQUwgd2hlbiBhIHplcm8gYnVmZmVyIHNpemUg aXMgcGFzc2VkIHRvIHRoZQotc3lzY2FsbC4gdGhpcyBpcyBub24tY29uZm9ybWluZyBiZWNhdXNl IFBPU0lYIGFscmVhZHkgZGVmaW5lcyBFSU5WQUwKLXdpdGggYSBzaWduaWZpY2FudGx5IGRpZmZl cmVudCBtZWFuaW5nOiB0aGUgdGFyZ2V0IGlzIG5vdCBhIHN5bWxpbmsuCi0KLXNpbmNlIHRoZSBy ZXF1ZXN0IGlzIHNlbWFudGljYWxseSB2YWxpZCwgcGF0Y2ggaXQgdXAgYnkgdXNpbmcgYSBkdW1t eQotYnVmZmVyIG9mIGxlbmd0aCBvbmUsIGFuZCB0cnVuY2F0aW5nIHRoZSByZXR1cm4gdmFsdWUg dG8gemVybyBpZiBpdAotc3VjY2VlZHMuCi0tLS0KLSBzcmMvdW5pc3RkL3JlYWRsaW5rLmMgICB8 IDExICsrKysrKysrKy0tCi0gc3JjL3VuaXN0ZC9yZWFkbGlua2F0LmMgfCAgOSArKysrKysrKy0K LSAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zcmMvdW5pc3RkL3JlYWRsaW5rLmMgYi9zcmMvdW5pc3RkL3JlYWRsaW5rLmMK LWluZGV4IGExNTJkNTI0OS4uMzJmNDUzN2Y5IDEwMDY0NAotLS0tIGEvc3JjL3VuaXN0ZC9yZWFk bGluay5jCi0rKysgYi9zcmMvdW5pc3RkL3JlYWRsaW5rLmMKLUBAIC00LDkgKzQsMTYgQEAKLSAK LSBzc2l6ZV90IHJlYWRsaW5rKGNvbnN0IGNoYXIgKnJlc3RyaWN0IHBhdGgsIGNoYXIgKnJlc3Ry aWN0IGJ1Ziwgc2l6ZV90IGJ1ZnNpemUpCi0gewotKwljaGFyIGR1bW15WzFdOwotKwlpZiAoIWJ1 ZnNpemUpIHsKLSsJCWJ1ZiA9IGR1bW15OwotKwkJYnVmc2l6ZSA9IDE7Ci0rCX0KLSAjaWZkZWYg U1lTX3JlYWRsaW5rCi0tCXJldHVybiBzeXNjYWxsKFNZU19yZWFkbGluaywgcGF0aCwgYnVmLCBi dWZzaXplKTsKLSsJaW50IHIgPSBfX3N5c2NhbGwoU1lTX3JlYWRsaW5rLCBwYXRoLCBidWYsIGJ1 ZnNpemUpOwotICNlbHNlCi0tCXJldHVybiBzeXNjYWxsKFNZU19yZWFkbGlua2F0LCBBVF9GRENX RCwgcGF0aCwgYnVmLCBidWZzaXplKTsKLSsJaW50IHIgPSBfX3N5c2NhbGwoU1lTX3JlYWRsaW5r YXQsIEFUX0ZEQ1dELCBwYXRoLCBidWYsIGJ1ZnNpemUpOwotICNlbmRpZgotKwlpZiAoYnVmID09 IGR1bW15ICYmIHIgPiAwKSByID0gMDsKLSsJcmV0dXJuIF9fc3lzY2FsbF9yZXQocik7Ci0gfQot ZGlmZiAtLWdpdCBhL3NyYy91bmlzdGQvcmVhZGxpbmthdC5jIGIvc3JjL3VuaXN0ZC9yZWFkbGlu a2F0LmMKLWluZGV4IDlhZjQ1Y2Q1YS4uZjc5ZDNkMTQyIDEwMDY0NAotLS0tIGEvc3JjL3VuaXN0 ZC9yZWFkbGlua2F0LmMKLSsrKyBiL3NyYy91bmlzdGQvcmVhZGxpbmthdC5jCi1AQCAtMyw1ICsz LDEyIEBACi0gCi0gc3NpemVfdCByZWFkbGlua2F0KGludCBmZCwgY29uc3QgY2hhciAqcmVzdHJp Y3QgcGF0aCwgY2hhciAqcmVzdHJpY3QgYnVmLCBzaXplX3QgYnVmc2l6ZSkKLSB7Ci0tCXJldHVy biBzeXNjYWxsKFNZU19yZWFkbGlua2F0LCBmZCwgcGF0aCwgYnVmLCBidWZzaXplKTsKLSsJY2hh ciBkdW1teVsxXTsKLSsJaWYgKCFidWZzaXplKSB7Ci0rCQlidWYgPSBkdW1teTsKLSsJCWJ1ZnNp emUgPSAxOwotKwl9Ci0rCWludCByID0gX19zeXNjYWxsKFNZU19yZWFkbGlua2F0LCBmZCwgcGF0 aCwgYnVmLCBidWZzaXplKTsKLSsJaWYgKGJ1ZiA9PSBkdW1teSAmJiByID4gMCkgciA9IDA7Ci0r CXJldHVybiBfX3N5c2NhbGxfcmV0KHIpOwotIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC90 ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQppbmRleCA4YzNiZTdkNzZlOGExLi45ZWJm ODExOGVkNmQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL211c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9tdXNsL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbXVz bCcKIHBrZ25hbWU9bXVzbAotcmV2ZXJ0cz0iMS4yLjBfMSIKLXZlcnNpb249MS4xLjI0Ci1yZXZp c2lvbj0yMAordmVyc2lvbj0xLjIuNAorcmV2aXNpb249MQogYXJjaHM9IiotbXVzbCIKIGJvb3Rz dHJhcD15ZXMKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEyLDcgKzExLDcgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1J VCIKIGhvbWVwYWdlPSJodHRwczovL211c2wubGliYy5vcmcvIgogZGlzdGZpbGVzPSJodHRwczov L211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3Vt PTEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0 MDE1MDIyYTMKK2NoZWNrc3VtPTdhMzVlYWUzM2Q1MzcyYTdjMGRhMTE4OGRlNzk4NzI2ZjY4ODI1 NTEzYjdhZTNlYmU5N2FhYWE1MjExNGYwMzkKIAogbm9zdHJpcF9maWxlcz0ibGliYy5zbyIKIHNo bGliX3Byb3ZpZGVzPSJsaWJjLnNvIgoKRnJvbSA2NzQ1MzMzOThkMzhjNmExM2IzZDI3ZGUyMjhh N2ZlZjVlZGU4NDUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9w aWF6emFsdW5nYUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjkgTWFyIDIwMjMgMTU6MDg6MTYgLTA0 MDAKU3ViamVjdDogW1BBVENIIDIvM10gYmFzZS1jaHJvb3Q6IGJ1bXAgbXVzbC1kZXZlbCB2ZXJz aW9uCgotLS0KIHNyY3BrZ3MvYmFzZS1jaHJvb3QvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Jhc2UtY2hyb290L3RlbXBsYXRlIGIvc3JjcGtncy9iYXNlLWNocm9vdC90ZW1wbGF0 ZQppbmRleCBlNmYxNjg0ZWQzNzBkLi4zNTA2ZTcwNGYzZjA3IDEwMDY0NAotLS0gYS9zcmNwa2dz L2Jhc2UtY2hyb290L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFzZS1jaHJvb3QvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiYXNlLWNocm9vdCcKIHBrZ25h bWU9YmFzZS1jaHJvb3QKLXZlcnNpb249MC42NwotcmV2aXNpb249MgordmVyc2lvbj0wLjY4City ZXZpc2lvbj0xCiBib290c3RyYXA9eWVzCiBidWlsZF9zdHlsZT1tZXRhCiBzaG9ydF9kZXNjPSJN aW5pbWFsIHNldCBvZiBwYWNrYWdlcyByZXF1aXJlZCBmb3IgY2hyb290IHdpdGggeGJwcy1zcmMi CkBAIC0xMSw3ICsxMSw3IEBAIGhvbWVwYWdlPSJodHRwOi8vd3d3LnZvaWRsaW51eC5vcmciCiBy ZXBvc2l0b3J5PWJvb3RzdHJhcAogCiBjYXNlICIkWEJQU19UQVJHRVRfTElCQyIgaW4KLQltdXNs KSBkZXBlbmRzPSJtdXNsLWRldmVsIjs7CisJbXVzbCkgZGVwZW5kcz0ibXVzbC1kZXZlbD49MS4y LjRfMSI7OwogCSopIGRlcGVuZHM9ImdsaWJjLWRldmVsIGdsaWJjLWxvY2FsZXMiOzsKIGVzYWMK IAoKRnJvbSA3YmM1Y2ZiNDg2ZWNlYTI4YzA1YjUwZjQxYzg2MTFjZjE0MTViOWRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjkgTWFyIDIwMjMgMTU6MDk6MDEgLTA0MDAKU3ViamVjdDogW1BBVENIIDMv M10gYmFzZS1kZXZlbDogYnVtcCBtdXNsLWRldmVsIHZlcnNpb24KCi0tLQogc3JjcGtncy9iYXNl LWRldmVsL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmFzZS1kZXZlbC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYmFzZS1kZXZlbC90ZW1wbGF0ZQppbmRleCA1NzBmNjk5Y2E5NjAxLi4zMDNh N2Y1MGU0NzM4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhc2UtZGV2ZWwvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9iYXNlLWRldmVsL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnYmFzZS1kZXZlbCcKIHBrZ25hbWU9YmFzZS1kZXZlbAogdmVyc2lvbj0yMDE4MTAw MwotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWV0YQogZGVwZW5kcz0iYXV0 b2NvbmYgYXV0b21ha2UgYmMgYmludXRpbHMgYmlzb24gZWQgZmxleCBnY2MgZ2V0dGV4dAogIGdy b2ZmIGxpYnRvb2wgbTQgbWFrZSBwYXRjaCBwa2ctY29uZmlnIHRleGluZm8gdW56aXAgeHoiCkBA IC0xMiw2ICsxMiw2IEBAIGhvbWVwYWdlPSJodHRwOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGli MzJkaXNhYmxlZD15ZXMKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JKi1tdXNs KSBkZXBlbmRzKz0iIG11c2wtZGV2ZWwiOzsKKwkqLW11c2wpIGRlcGVuZHMrPSIgbXVzbC1kZXZl bD49MS4yLjRfMSI7OwogCSopIGRlcGVuZHMrPSIgZ2xpYmMtZGV2ZWwiOzsKIGVzYWMK --===============0128975734591007282==--