From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27925 invoked from network); 20 May 2021 15:10:39 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 20 May 2021 15:10:39 -0000 Content-Type: multipart/mixed; boundary="===============8997302811262485850==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_zfs=3A_patch_to_support_linux5=2E12?= To: ml@inbox.vuxu.org From: ahesford Reply-to: ml@inbox.vuxu.org Message-ID: Date: Thu, 20 May 2021 17:10:39 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============8997302811262485850== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGFoZXNmb3JkIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9haGVzZm9y ZC92b2lkLXBhY2thZ2VzIHpmcwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMzEwMTUKCnpmczogcGF0Y2ggdG8gc3VwcG9ydCBsaW51eDUuMTIKVGhpcyBw dWxscyB0d28gcGF0Y2hlcyBuZWNlc3NhcnkgdG8gc3VwcG9ydCB0aGUgdXBjb21pbmcgYGxpbnV4 NS4xMmAgKHNlZSB0aGUgIlNvdXJjZXMiIGxpc3QgZm9yIHRoZSBbQVVSIGB6ZnMtZGttc2BdKGh0 dHBzOi8vYXVyLmFyY2hsaW51eC5vcmcvcGFja2FnZXMvemZzLWRrbXMvKSBwYWNrYWdlKS4gSSd2 ZSBhbHNvIGFkZGVkIGFuIGlnbm9yZSBydWxlIGZvciB0aGUgd3JvbmdseSB0YWdnZWQgMi4xLjk5 Lg0KDQpjYzogQFZhZWxhdGVybiBAZXJpY29uciANCg0KIyMjIyBIYXZlIHRoZSByZXN1bHRzIG9m IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBbeF0gSSB1c2UgdGhlIHBhY2th Z2VzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9uIGEgcmVndWxhciBiYXNpcyBh bmQgY29uZmlybSB0aGlzIFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0gSSBnZW5lcmFsbHkgZG9uJ3Qg dXNlIHRoZSBhZmZlY3RlZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0ZXN0ZWQgdGhpcyBQUgoKQSBw YXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzMxMDE1LnBhdGNoIGlzIGF0dGFjaGVk --===============8997302811262485850== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-zfs-31015.patch" RnJvbSAyNDM4ZGQzNDdlYjkxNjQ1ZjQwOWFlMDI4MTM0Nzk4Y2U2NTg5YWYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV3IEouIEhlc2ZvcmQiIDxhamhAc2lkZWJhbmQub3Jn PgpEYXRlOiBUaHUsIDIwIE1heSAyMDIxIDEwOjM0OjMzIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g emZzOiBwYXRjaCB0byBzdXBwb3J0IGxpbnV4NS4xMgoKLS0tCiBzcmNwa2dzL3pmcy9wYXRjaGVz L2xpbnV4NS4xMi0wMC5wYXRjaCB8IDEyMzEgKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNw a2dzL3pmcy9wYXRjaGVzL2xpbnV4NS4xMi0wMS5wYXRjaCB8ICAgOTEgKysKIHNyY3BrZ3MvemZz L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogc3JjcGtncy96ZnMvdXBkYXRl ICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgMTMyNCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy96ZnMv cGF0Y2hlcy9saW51eDUuMTItMDAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3pm cy9wYXRjaGVzL2xpbnV4NS4xMi0wMS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv emZzL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvemZzL3BhdGNoZXMvbGludXg1LjEyLTAw LnBhdGNoIGIvc3JjcGtncy96ZnMvcGF0Y2hlcy9saW51eDUuMTItMDAucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zNjM0MzgwYjgwMjkKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3pmcy9wYXRjaGVzL2xpbnV4NS4xMi0wMC5wYXRjaApAQCAtMCwwICsx LDEyMzEgQEAKK0Zyb20gOTM4YTdhMzc1YjJjMThmZWY2MjFmYjMwZDcxYmVjMGMxOWU5NDE0MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENvbGVtYW4gS2FuZSA8Y2thbmVAY29sZW1h bmthbmUub3JnPgorRGF0ZTogU2F0LCAyMCBNYXIgMjAyMSAwMDowMDo1OSAtMDQwMAorU3ViamVj dDogW1BBVENIXSBMaW51eCA1LjEyIGNvbXBhdDogaWRtYXBwZWQgbW91bnRzCisKK0luIExpbnV4 IDUuMTIsIHRoZSBmaWxlc3lzdGVtIEFQSSB3YXMgbW9kaWZpZWQgdG8gc3VwcG9ydCBpcG1hcHBl ZAorbW91bnRzIGJ5IGFkZGluZyBhICJzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKiIgcGFyYW1ldGVy IHRvIGEgbnVtYmVyCitmdW5jdGlvbnMgYW5kIFZGUyBoYW5kbGVycy4gVGhpcyBjaGFuZ2UgYWRk cyB0aGUgbmVlZGVkIGF1dG9jb25mCittYWNyb3MgdG8gZGV0ZWN0IHRoZSBuZXcgaW50ZXJmYWNl cyBhbmQgdXBkYXRlcyB0aGUgY29kZSBhcHByb3ByaWF0ZWx5LgorVGhpcyBjaGFuZ2UgZG9lcyBu b3QgYWRkIHN1cHBvcnQgZm9yIGlkbWFwcGVkIG1vdW50cywgaW5zdGVhZCBpdAorcHJlc2VydmVz IHRoZSBleGlzdGluZyBiZWhhdmlvciBieSBwYXNzaW5nIHRoZSBpbml0aWFsIHVzZXIgbmFtZXNw YWNlCit3aGVyZSBuZWVkZWQuICBBIHN1YnNlcXVlbnQgY29tbWl0IHdpbGwgYmUgcmVxdWlyZWQg dG8gYWRkIHN1cHBvcnQKK2ZvciBpZG1hcHBlZCBtb3VudGVkLgorCitSZXZpZXdlZC1ieTogVG9u eSBIdXR0ZXIgPGh1dHRlcjJAbGxubC5nb3Y+CitSZXZpZXdlZC1ieTogQnJpYW4gQmVobGVuZG9y ZiA8YmVobGVuZG9yZjFAbGxubC5nb3Y+CitDby1hdXRob3JlZC1ieTogQnJpYW4gQmVobGVuZG9y ZiA8YmVobGVuZG9yZjFAbGxubC5nb3Y+CitTaWduZWQtb2ZmLWJ5OiBDb2xlbWFuIEthbmUgPGNr YW5lQGNvbGVtYW5rYW5lLm9yZz4KK0Nsb3NlcyAjMTE3MTIKKyhjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IGUyYTgyOTYxMzFlOTRhZDc4NWY1NTY0MTU2ZWQyZGIxZmRiMmUwODApCitTaWduZWQt b2ZmLWJ5OiBKb25hdGhvbiBGZXJueWhvdWdoIDxqb25hdGhvbkBtMnguZGV2PgorLS0tCisgY29u ZmlnL2tlcm5lbC1nZW5lcmljX2ZpbGxhdHRyLm00ICAgICAgICAgICAgfCAyOCArKysrKysrCisg Y29uZmlnL2tlcm5lbC1pbm9kZS1jcmVhdGUubTQgICAgICAgICAgICAgICAgfCA0MyArKysrKysr KystLQorIGNvbmZpZy9rZXJuZWwtaW5vZGUtZ2V0YXR0ci5tNCAgICAgICAgICAgICAgIHwgNjMg KysrKysrKysrKysrKy0tLQorIGNvbmZpZy9rZXJuZWwtaXNfb3duZXJfb3JfY2FwLm00ICAgICAg ICAgICAgIHwgMjMgKysrKystCisgY29uZmlnL2tlcm5lbC1ta2Rpci11bW9kZS10Lm00ICAgICAg ICAgICAgICAgfCAzMiAtLS0tLS0tLQorIGNvbmZpZy9rZXJuZWwtbWtkaXIubTQgICAgICAgICAg ICAgICAgICAgICAgIHwgNjUgKysrKysrKysrKysrKysrKworIGNvbmZpZy9rZXJuZWwtbWtub2Qu bTQgICAgICAgICAgICAgICAgICAgICAgIHwgMzAgKysrKysrKysKKyBjb25maWcva2VybmVsLXJl bmFtZS5tNCAgICAgICAgICAgICAgICAgICAgICB8IDUwICsrKysrKysrKystLS0KKyBjb25maWcv a2VybmVsLXNldGF0dHItcHJlcGFyZS5tNCAgICAgICAgICAgICB8IDQ1ICsrKysrKysrLS0tCisg Y29uZmlnL2tlcm5lbC1zeW1saW5rLm00ICAgICAgICAgICAgICAgICAgICAgfCAzMCArKysrKysr KworIGNvbmZpZy9rZXJuZWwteGF0dHItaGFuZGxlci5tNCAgICAgICAgICAgICAgIHwgNzggKysr KysrKysrKysrKy0tLS0tLS0KKyBjb25maWcva2VybmVsLm00ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE4ICsrKy0tCisgaW5jbHVkZS9vcy9saW51eC9rZXJuZWwvbGludXgvdmZzX2Nv bXBhdC5oICAgfCAyNCArKysrKy0KKyBpbmNsdWRlL29zL2xpbnV4L2tlcm5lbC9saW51eC94YXR0 cl9jb21wYXQuaCB8IDE3ICsrKystCisgaW5jbHVkZS9vcy9saW51eC96ZnMvc3lzL3pmc192bm9w c19vcy5oICAgICAgfCAgMyArLQorIGluY2x1ZGUvb3MvbGludXgvemZzL3N5cy96cGwuaCAgICAg ICAgICAgICAgIHwgMTggKysrKysKKyBtb2R1bGUvb3MvbGludXgvemZzL3BvbGljeS5jICAgICAg ICAgICAgICAgICB8ICAyICstCisgbW9kdWxlL29zL2xpbnV4L3pmcy96ZnNfdm5vcHNfb3MuYyAg ICAgICAgICAgfCAgNSArLQorIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2N0bGRpci5jICAgICAg ICAgICAgIHwgNTEgKysrKysrKysrKysrLQorIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2ZpbGUu YyAgICAgICAgICAgICAgIHwgIDIgKy0KKyBtb2R1bGUvb3MvbGludXgvemZzL3pwbF9pbm9kZS5j ICAgICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrLQorIG1vZHVsZS9vcy9saW51eC96ZnMvenBs X3hhdHRyLmMgICAgICAgICAgICAgIHwgIDQgKy0KKyAyMiBmaWxlcyBjaGFuZ2VkLCA1NTcgaW5z ZXJ0aW9ucygrKSwgMTIzIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb25maWcv a2VybmVsLWdlbmVyaWNfZmlsbGF0dHIubTQKKyBkZWxldGUgbW9kZSAxMDA2NDQgY29uZmlnL2tl cm5lbC1ta2Rpci11bW9kZS10Lm00CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbmZpZy9rZXJuZWwt bWtkaXIubTQKKyBjcmVhdGUgbW9kZSAxMDA2NDQgY29uZmlnL2tlcm5lbC1ta25vZC5tNAorIGNy ZWF0ZSBtb2RlIDEwMDY0NCBjb25maWcva2VybmVsLXN5bWxpbmsubTQKKworZGlmZiAtLWdpdCBj b25maWcva2VybmVsLWdlbmVyaWNfZmlsbGF0dHIubTQgY29uZmlnL2tlcm5lbC1nZW5lcmljX2Zp bGxhdHRyLm00CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjUwYzgw MzEzMDViCistLS0gL2Rldi9udWxsCisrKysgY29uZmlnL2tlcm5lbC1nZW5lcmljX2ZpbGxhdHRy Lm00CitAQCAtMCwwICsxLDI4IEBACisrZG5sICMKKytkbmwgIyA1LjEyIEFQSQorK2RubCAjCisr ZG5sICMgZ2VuZXJpY19maWxsYXR0ciBpbiBsaW51eC9mcy5oIG5vdyByZXF1aXJlcyBhIHN0cnVj dCB1c2VyX25hbWVzcGFjZSoKKytkbmwgIyBhcyB0aGUgZmlyc3QgYXJnLCB0byBzdXBwb3J0IGlk bWFwcGVkIG1vdW50cy4KKytkbmwgIworK0FDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1NSQ19HRU5F UklDX0ZJTExBVFRSX1VTRVJOU10sIFsKKysJWkZTX0xJTlVYX1RFU1RfU1JDKFtnZW5lcmljX2Zp bGxhdHRyX3VzZXJuc10sIFsKKysJCSNpbmNsdWRlIDxsaW51eC9mcy5oPgorKwldLFsKKysJCXN0 cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcm5zID0gTlVMTDsKKysJCXN0cnVjdCBpbm9kZSAqaW4g PSBOVUxMOworKwkJc3RydWN0IGtzdGF0ICprID0gTlVMTDsKKysJCWdlbmVyaWNfZmlsbGF0dHIo dXNlcm5zLCBpbiwgayk7CisrCV0pCisrXSkKKysKKytBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9H RU5FUklDX0ZJTExBVFRSX1VTRVJOU10sIFsKKysJQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGdl bmVyaWNfZmlsbGF0dHIgcmVxdXJlcyBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqXSkKKysJWkZTX0xJ TlVYX1RFU1RfUkVTVUxUKFtnZW5lcmljX2ZpbGxhdHRyX3VzZXJuc10sIFsKKysJCUFDX01TR19S RVNVTFQoW3llc10pCisrCQlBQ19ERUZJTkUoSEFWRV9HRU5FUklDX0ZJTExBVFRSX1VTRVJOUywg MSwKKysJCSAgICBbZ2VuZXJpY19maWxsYXR0ciByZXF1aXJlcyBzdHJ1Y3QgdXNlcl9uYW1lc3Bh Y2UqXSkKKysJXSxbCisrCQlBQ19NU0dfUkVTVUxUKFtub10pCisrCV0pCisrXSkKKysKK2RpZmYg LS1naXQgY29uZmlnL2tlcm5lbC1pbm9kZS1jcmVhdGUubTQgY29uZmlnL2tlcm5lbC1pbm9kZS1j cmVhdGUubTQKK2luZGV4IDlmMjhiY2JkNGY3Li5hNmVhMTFmYjYxYiAxMDA2NDQKKy0tLSBjb25m aWcva2VybmVsLWlub2RlLWNyZWF0ZS5tNAorKysrIGNvbmZpZy9rZXJuZWwtaW5vZGUtY3JlYXRl Lm00CitAQCAtMSw3ICsxLDI1IEBACistZG5sICMKKy1kbmwgIyAzLjYgQVBJIGNoYW5nZQorLWRu bCAjCistQUNfREVGVU4oW1pGU19BQ19LRVJORUxfU1JDX0NSRUFURV9GTEFHU10sIFsKKytBQ19E RUZVTihbWkZTX0FDX0tFUk5FTF9TUkNfQ1JFQVRFXSwgWworKwlkbmwgIworKwlkbmwgIyA1LjEy IEFQSSBjaGFuZ2UgdGhhdCBhZGRlZCB0aGUgc3RydWN0IHVzZXJfbmFtZXNwYWNlKiBhcmcKKysJ ZG5sICMgdG8gdGhlIGZyb250IG9mIHRoaXMgZnVuY3Rpb24gdHlwZSdzIGFyZyBsaXN0LgorKwlk bmwgIworKwlaRlNfTElOVVhfVEVTVF9TUkMoW2NyZWF0ZV91c2VybnNdLCBbCisrCQkjaW5jbHVk ZSA8bGludXgvZnMuaD4KKysJCSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorKworKwkJaW50IGlu b2RlX2NyZWF0ZShzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJucywKKysJCSAgICBzdHJ1Y3Qg aW5vZGUgKmlub2RlICxzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisrCQkgICAgdW1vZGVfdCB1bW9k ZSwgYm9vbCBmbGFnKSB7IHJldHVybiAwOyB9CisrCisrCQlzdGF0aWMgY29uc3Qgc3RydWN0IGlu b2RlX29wZXJhdGlvbnMKKysJCQlpb3BzIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSA9IHsKKysJ CQkuY3JlYXRlCQk9IGlub2RlX2NyZWF0ZSwKKysJCX07CisrCV0sW10pCisrCisrCWRubCAjCisr CWRubCAjIDMuNiBBUEkgY2hhbmdlCisrCWRubCAjCisgCVpGU19MSU5VWF9URVNUX1NSQyhbY3Jl YXRlX2ZsYWdzXSwgWworIAkJI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisgCQkjaW5jbHVkZSA8bGlu dXgvc2NoZWQuaD4KK0BAIC0xNiwxMSArMzQsMjAgQEAgQUNfREVGVU4oW1pGU19BQ19LRVJORUxf U1JDX0NSRUFURV9GTEFHU10sIFsKKyAJXSxbXSkKKyBdKQorIAorLUFDX0RFRlVOKFtaRlNfQUNf S0VSTkVMX0NSRUFURV9GTEFHU10sIFsKKy0JQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGlvcHMt PmNyZWF0ZSgpIHBhc3NlcyBmbGFnc10pCistCVpGU19MSU5VWF9URVNUX1JFU1VMVChbY3JlYXRl X2ZsYWdzXSwgWworK0FDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX0NSRUFURV0sIFsKKysJQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIGlvcHMtPmNyZWF0ZSgpIHRha2VzIHN0cnVjdCB1c2VyX25hbWVz cGFjZSpdKQorKwlaRlNfTElOVVhfVEVTVF9SRVNVTFQoW2NyZWF0ZV91c2VybnNdLCBbCisgCQlB Q19NU0dfUkVTVUxUKHllcykKKysJCUFDX0RFRklORShIQVZFX0lPUFNfQ1JFQVRFX1VTRVJOUywg MSwKKysJCSAgIFtpb3BzLT5jcmVhdGUoKSB0YWtlcyBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqXSkK KyAJXSxbCistCQlaRlNfTElOVVhfVEVTVF9FUlJPUihbaW9wcy0+Y3JlYXRlKCldKQorKwkJQUNf TVNHX1JFU1VMVChubykKKysKKysJCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBpb3BzLT5jcmVh dGUoKSBwYXNzZXMgZmxhZ3NdKQorKwkJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtjcmVhdGVfZmxh Z3NdLCBbCisrCQkJQUNfTVNHX1JFU1VMVCh5ZXMpCisrCQldLFsKKysJCQlaRlNfTElOVVhfVEVT VF9FUlJPUihbaW9wcy0+Y3JlYXRlKCldKQorKwkJXSkKKyAJXSkKKyBdKQorZGlmZiAtLWdpdCBj b25maWcva2VybmVsLWlub2RlLWdldGF0dHIubTQgY29uZmlnL2tlcm5lbC1pbm9kZS1nZXRhdHRy Lm00CitpbmRleCA0ODM5MWQ2NmY4Yi4uZjYyZTgyZjUyMzAgMTAwNjQ0CistLS0gY29uZmlnL2tl cm5lbC1pbm9kZS1nZXRhdHRyLm00CisrKysgY29uZmlnL2tlcm5lbC1pbm9kZS1nZXRhdHRyLm00 CitAQCAtMSw4ICsxLDI5IEBACistZG5sICMKKy1kbmwgIyBMaW51eCA0LjExIEFQSQorLWRubCAj IFNlZSB0b3J2YWxkcy9saW51eEBhNTI4ZDM1CistZG5sICMKKyBBQ19ERUZVTihbWkZTX0FDX0tF Uk5FTF9TUkNfSU5PREVfR0VUQVRUUl0sIFsKKysJZG5sICMKKysJZG5sICMgTGludXggNS4xMiBB UEkKKysJZG5sICMgVGhlIGdldGF0dHIgSS9PIG9wZXJhdGlvbnMgaGFuZGxlciB0eXBlIHdhcyBl eHRlbmRlZCB0byByZXF1aXJlCisrCWRubCAjIGEgc3RydWN0IHVzZXJfbmFtZXNwYWNlKiBhcyBp dHMgZmlyc3QgYXJnLCB0byBzdXBwb3J0IGlkbWFwcGVkCisrCWRubCAjIG1vdW50cy4KKysJZG5s ICMKKysJWkZTX0xJTlVYX1RFU1RfU1JDKFtpbm9kZV9vcGVyYXRpb25zX2dldGF0dHJfdXNlcm5z XSwgWworKwkJI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisrCisrCQlpbnQgdGVzdF9nZXRhdHRyKAor KwkJCXN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcm5zLAorKwkJICAgIGNvbnN0IHN0cnVjdCBw YXRoICpwLCBzdHJ1Y3Qga3N0YXQgKmssCisrCQkgICAgdTMyIHJlcXVlc3RfbWFzaywgdW5zaWdu ZWQgaW50IHF1ZXJ5X2ZsYWdzKQorKwkJICAgIHsgcmV0dXJuIDA7IH0KKysKKysJCXN0YXRpYyBj b25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucworKwkJICAgIGlvcHMgX19hdHRyaWJ1dGVfXyAo KHVudXNlZCkpID0geworKwkJCS5nZXRhdHRyID0gdGVzdF9nZXRhdHRyLAorKwkJfTsKKysJXSxb XSkKKysKKysJZG5sICMKKysJZG5sICMgTGludXggNC4xMSBBUEkKKysJZG5sICMgU2VlIHRvcnZh bGRzL2xpbnV4QGE1MjhkMzUKKysJZG5sICMKKyAJWkZTX0xJTlVYX1RFU1RfU1JDKFtpbm9kZV9v cGVyYXRpb25zX2dldGF0dHJfcGF0aF0sIFsKKyAJCSNpbmNsdWRlIDxsaW51eC9mcy5oPgorIAor QEAgLTMzLDIxICs1NCwzOSBAQCBBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9TUkNfSU5PREVfR0VU QVRUUl0sIFsKKyBdKQorIAorIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX0lOT0RFX0dFVEFUVFJd LCBbCistCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBpb3BzLT5nZXRhdHRyKCkgdGFrZXMgYSBw YXRoXSkKKy0JWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtpbm9kZV9vcGVyYXRpb25zX2dldGF0dHJf cGF0aF0sIFsKKysJZG5sICMKKysJZG5sICMgS2VybmVsIDUuMTIgdGVzdAorKwlkbmwgIworKwlB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgaW9wcy0+Z2V0YXR0cigpIHRha2VzIHVzZXJfbmFtZXNw YWNlXSkKKysJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtpbm9kZV9vcGVyYXRpb25zX2dldGF0dHJf dXNlcm5zXSwgWworIAkJQUNfTVNHX1JFU1VMVCh5ZXMpCistCQlBQ19ERUZJTkUoSEFWRV9QQVRI X0lPUFNfR0VUQVRUUiwgMSwKKy0JCSAgICBbaW9wcy0+Z2V0YXR0cigpIHRha2VzIGEgcGF0aF0p CisrCQlBQ19ERUZJTkUoSEFWRV9VU0VSTlNfSU9QU19HRVRBVFRSLCAxLAorKwkJICAgIFtpb3Bz LT5nZXRhdHRyKCkgdGFrZXMgc3RydWN0IHVzZXJfbmFtZXNwYWNlKl0pCisgCV0sWworIAkJQUNf TVNHX1JFU1VMVChubykKKyAKKy0JCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBpb3BzLT5nZXRh dHRyKCkgdGFrZXMgYSB2ZnNtb3VudF0pCistCQlaRlNfTElOVVhfVEVTVF9SRVNVTFQoW2lub2Rl X29wZXJhdGlvbnNfZ2V0YXR0cl92ZnNtb3VudF0sIFsKKysJCWRubCAjCisrCQlkbmwgIyBLZXJu ZWwgNC4xMSB0ZXN0CisrCQlkbmwgIworKwkJQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGlvcHMt PmdldGF0dHIoKSB0YWtlcyBhIHBhdGhdKQorKwkJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtpbm9k ZV9vcGVyYXRpb25zX2dldGF0dHJfcGF0aF0sIFsKKyAJCQlBQ19NU0dfUkVTVUxUKHllcykKKy0J CQlBQ19ERUZJTkUoSEFWRV9WRlNNT1VOVF9JT1BTX0dFVEFUVFIsIDEsCistCQkJICAgIFtpb3Bz LT5nZXRhdHRyKCkgdGFrZXMgYSB2ZnNtb3VudF0pCisrCQkJQUNfREVGSU5FKEhBVkVfUEFUSF9J T1BTX0dFVEFUVFIsIDEsCisrCQkJCVtpb3BzLT5nZXRhdHRyKCkgdGFrZXMgYSBwYXRoXSkKKyAJ CV0sWworIAkJCUFDX01TR19SRVNVTFQobm8pCisrCisrCQkJZG5sICMKKysJCQlkbmwgIyBLZXJu ZWwgPCA0LjExIHRlc3QKKysJCQlkbmwgIworKwkJCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBp b3BzLT5nZXRhdHRyKCkgdGFrZXMgYSB2ZnNtb3VudF0pCisrCQkJWkZTX0xJTlVYX1RFU1RfUkVT VUxUKFtpbm9kZV9vcGVyYXRpb25zX2dldGF0dHJfdmZzbW91bnRdLCBbCisrCQkJCUFDX01TR19S RVNVTFQoeWVzKQorKwkJCQlBQ19ERUZJTkUoSEFWRV9WRlNNT1VOVF9JT1BTX0dFVEFUVFIsIDEs CisrCQkJCQlbaW9wcy0+Z2V0YXR0cigpIHRha2VzIGEgdmZzbW91bnRdKQorKwkJCV0sWworKwkJ CQlBQ19NU0dfUkVTVUxUKG5vKQorKwkJCV0pCisgCQldKQorIAldKQorIF0pCitkaWZmIC0tZ2l0 IGNvbmZpZy9rZXJuZWwtaXNfb3duZXJfb3JfY2FwLm00IGNvbmZpZy9rZXJuZWwtaXNfb3duZXJf b3JfY2FwLm00CitpbmRleCAzZGY2MTYzZGEyNy4uM2MzYzZhZDIyNDAgMTAwNjQ0CistLS0gY29u ZmlnL2tlcm5lbC1pc19vd25lcl9vcl9jYXAubTQKKysrKyBjb25maWcva2VybmVsLWlzX293bmVy X29yX2NhcC5tNAorQEAgLTExLDEzICsxMSwzMiBAQCBBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9T UkNfSU5PREVfT1dORVJfT1JfQ0FQQUJMRV0sIFsKKyAJCXN0cnVjdCBpbm9kZSAqaXAgPSBOVUxM OworIAkJKHZvaWQpIGlub2RlX293bmVyX29yX2NhcGFibGUoaXApOworIAldKQorKworKwlaRlNf TElOVVhfVEVTVF9TUkMoW2lub2RlX293bmVyX29yX2NhcGFibGVfaWRtYXBwZWRdLCBbCisrCQkj aW5jbHVkZSA8bGludXgvZnMuaD4KKysJXSxbCisrCQlzdHJ1Y3QgaW5vZGUgKmlwID0gTlVMTDsK KysJCSh2b2lkKSBpbm9kZV9vd25lcl9vcl9jYXBhYmxlKCZpbml0X3VzZXJfbnMsIGlwKTsKKysJ XSkKKyBdKQorIAorIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX0lOT0RFX09XTkVSX09SX0NBUEFC TEVdLCBbCisgCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBpbm9kZV9vd25lcl9vcl9jYXBhYmxl KCkgZXhpc3RzXSkKKyAJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtpbm9kZV9vd25lcl9vcl9jYXBh YmxlXSwgWworIAkJQUNfTVNHX1JFU1VMVCh5ZXMpCistCV0sWworLQkJWkZTX0xJTlVYX1RFU1Rf RVJST1IoW2NhcGFiaWxpdHldKQorKwkJQUNfREVGSU5FKEhBVkVfSU5PREVfT1dORVJfT1JfQ0FQ QUJMRSwgMSwKKysJCSAgICBbaW5vZGVfb3duZXJfb3JfY2FwYWJsZSgpIGV4aXN0c10pCisrCV0s IFsKKysJCUFDX01TR19SRVNVTFQobm8pCisrCisrCQlBQ19NU0dfQ0hFQ0tJTkcoCisrCQkgICAg W3doZXRoZXIgaW5vZGVfb3duZXJfb3JfY2FwYWJsZSgpIHRha2VzIHVzZXJfbnNdKQorKwkJWkZT X0xJTlVYX1RFU1RfUkVTVUxUKFtpbm9kZV9vd25lcl9vcl9jYXBhYmxlX2lkbWFwcGVkXSwgWwor KwkJCUFDX01TR19SRVNVTFQoeWVzKQorKwkJCUFDX0RFRklORShIQVZFX0lOT0RFX09XTkVSX09S X0NBUEFCTEVfSURNQVBQRUQsIDEsCisrCQkJICAgIFtpbm9kZV9vd25lcl9vcl9jYXBhYmxlKCkg dGFrZXMgdXNlcl9uc10pCisrCQldLFsKKysJCQlaRlNfTElOVVhfVEVTVF9FUlJPUihbY2FwYWJp bGl0eV0pCisrCQldKQorIAldKQorIF0pCitkaWZmIC0tZ2l0IGNvbmZpZy9rZXJuZWwtbWtkaXIt dW1vZGUtdC5tNCBjb25maWcva2VybmVsLW1rZGlyLXVtb2RlLXQubTQKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMTk1OTk2NzBkZjMuLjAwMDAwMDAwMDAwCistLS0gY29uZmlnL2tl cm5lbC1ta2Rpci11bW9kZS10Lm00CisrKysgL2Rldi9udWxsCitAQCAtMSwzMiArMCwwIEBACist ZG5sICMKKy1kbmwgIyAzLjMgQVBJIGNoYW5nZQorLWRubCAjIFRoZSBWRlMgLmNyZWF0ZSwgLm1r ZGlyIGFuZCAubWtub2QgY2FsbGJhY2tzIHdlcmUgdXBkYXRlZCB0byB0YWtlIGEKKy1kbmwgIyB1 bW9kZV90IHR5cGUgcmF0aGVyIHRoYW4gYW4gaW50LiAgVGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQg YW55IGJhY2twb3J0CistZG5sICMgd291bGQgYWxzbyBjaGFuZ2UgYWxsIHRocmVlIHByb3RvdHlw ZXMuICBIb3dldmVyLCBpZiBpdCB0dXJucyBvdXQgdGhhdAorLWRubCAjIHNvbWUgZGlzdHJpYnV0 aW9uIGRvZXNuJ3QgYmFja3BvcnQgdGhlIHdob2xlIHRoaW5nIHRoaXMgY291bGQgYmUKKy1kbmwg IyBicm9rZW4gYXBhcnQgaW50byB0aHJlZSBzZXBhcmF0ZSBjaGVja3MuCistZG5sICMKKy1BQ19E RUZVTihbWkZTX0FDX0tFUk5FTF9TUkNfTUtESVJfVU1PREVfVF0sIFsKKy0JWkZTX0xJTlVYX1RF U1RfU1JDKFtpbm9kZV9vcGVyYXRpb25zX21rZGlyXSwgWworLQkJI2luY2x1ZGUgPGxpbnV4L2Zz Lmg+CistCistCQlpbnQgbWtkaXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAq ZGVudHJ5LAorLQkJICAgIHVtb2RlX3QgdW1vZGUpIHsgcmV0dXJuIDA7IH0KKy0KKy0JCXN0YXRp YyBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucworLQkJICAgIGlvcHMgX19hdHRyaWJ1dGVf XyAoKHVudXNlZCkpID0geworLQkJCS5ta2RpciA9IG1rZGlyLAorLQkJfTsKKy0JXSxbXSkKKy1d KQorLQorLUFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX01LRElSX1VNT0RFX1RdLCBbCistCUFDX01T R19DSEVDS0lORyhbd2hldGhlciBpb3BzLT5jcmVhdGUoKS9ta2RpcigpL21rbm9kKCkgdGFrZSB1 bW9kZV90XSkKKy0JWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtpbm9kZV9vcGVyYXRpb25zX21rZGly XSwgWworLQkJQUNfTVNHX1JFU1VMVCh5ZXMpCistCQlBQ19ERUZJTkUoSEFWRV9NS0RJUl9VTU9E RV9ULCAxLAorLQkJICAgIFtpb3BzLT5jcmVhdGUoKS9ta2RpcigpL21rbm9kKCkgdGFrZSB1bW9k ZV90XSkKKy0JXSxbCistCQlaRlNfTElOVVhfVEVTVF9FUlJPUihbbWtkaXIoKV0pCistCV0pCist XSkKK2RpZmYgLS1naXQgY29uZmlnL2tlcm5lbC1ta2Rpci5tNCBjb25maWcva2VybmVsLW1rZGly Lm00CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLmExNjJiY2Q4ODBm CistLS0gL2Rldi9udWxsCisrKysgY29uZmlnL2tlcm5lbC1ta2Rpci5tNAorQEAgLTAsMCArMSw2 NSBAQAorK2RubCAjCisrZG5sICMgU3VwcG9ydGVkIG1rZGlyKCkgaW50ZXJmYWNlcyBjaGVja2Vk IG5ld2VzdCB0byBvbGRlc3QuCisrZG5sICMKKytBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9TUkNf TUtESVJdLCBbCisrCWRubCAjCisrCWRubCAjIDUuMTIgQVBJIGNoYW5nZQorKwlkbmwgIyBUaGUg c3RydWN0IHVzZXJfbmFtZXNwYWNlIGFyZyB3YXMgYWRkZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50 IHRvCisrCWRubCAjIG1rZGlyKCkKKysJZG5sICMKKysJWkZTX0xJTlVYX1RFU1RfU1JDKFtta2Rp cl91c2VyX25hbWVzcGFjZV0sIFsKKysJCSNpbmNsdWRlIDxsaW51eC9mcy5oPgorKworKwkJaW50 IG1rZGlyKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcm5zLAorKwkJCXN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKysJCSAgICB1bW9kZV90IHVtb2RlKSB7IHJl dHVybiAwOyB9CisrCisrCQlzdGF0aWMgY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMKKysJ CSAgICBpb3BzIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSA9IHsKKysJCQkubWtkaXIgPSBta2Rp ciwKKysJCX07CisrCV0sW10pCisrCisrCWRubCAjCisrCWRubCAjIDMuMyBBUEkgY2hhbmdlCisr CWRubCAjIFRoZSBWRlMgLmNyZWF0ZSwgLm1rZGlyIGFuZCAubWtub2QgY2FsbGJhY2tzIHdlcmUg dXBkYXRlZCB0byB0YWtlIGEKKysJZG5sICMgdW1vZGVfdCB0eXBlIHJhdGhlciB0aGFuIGFuIGlu dC4gIFRoZSBleHBlY3RhdGlvbiBpcyB0aGF0IGFueSBiYWNrcG9ydAorKwlkbmwgIyB3b3VsZCBh bHNvIGNoYW5nZSBhbGwgdGhyZWUgcHJvdG90eXBlcy4gIEhvd2V2ZXIsIGlmIGl0IHR1cm5zIG91 dCB0aGF0CisrCWRubCAjIHNvbWUgZGlzdHJpYnV0aW9uIGRvZXNuJ3QgYmFja3BvcnQgdGhlIHdo b2xlIHRoaW5nIHRoaXMgY291bGQgYmUKKysJZG5sICMgYnJva2VuIGFwYXJ0IGludG8gdGhyZWUg c2VwYXJhdGUgY2hlY2tzLgorKwlkbmwgIworKwlaRlNfTElOVVhfVEVTVF9TUkMoW2lub2RlX29w ZXJhdGlvbnNfbWtkaXJdLCBbCisrCQkjaW5jbHVkZSA8bGludXgvZnMuaD4KKysKKysJCWludCBt a2RpcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisrCQkgICAg dW1vZGVfdCB1bW9kZSkgeyByZXR1cm4gMDsgfQorKworKwkJc3RhdGljIGNvbnN0IHN0cnVjdCBp bm9kZV9vcGVyYXRpb25zCisrCQkgICAgaW9wcyBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkgPSB7 CisrCQkJLm1rZGlyID0gbWtkaXIsCisrCQl9OworKwldLFtdKQorK10pCisrCisrQUNfREVGVU4o W1pGU19BQ19LRVJORUxfTUtESVJdLCBbCisrCWRubCAjCisrCWRubCAjIDUuMTIgQVBJIGNoYW5n ZQorKwlkbmwgIyBUaGUgc3RydWN0IHVzZXJfbmFtZXNwYWNlIGFyZyB3YXMgYWRkZWQgYXMgdGhl IGZpcnN0IGFyZ3VtZW50IHRvCisrCWRubCAjIG1rZGlyKCkgb2YgdGhlIGlvcHMgc3RydWN0dXJl LgorKwlkbmwgIworKwlBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgaW9wcy0+bWtkaXIoKSB0YWtl cyBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqXSkKKysJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtta2Rp cl91c2VyX25hbWVzcGFjZV0sIFsKKysJCUFDX01TR19SRVNVTFQoeWVzKQorKwkJQUNfREVGSU5F KEhBVkVfSU9QU19NS0RJUl9VU0VSTlMsIDEsCisrCQkgICAgW2lvcHMtPm1rZGlyKCkgdGFrZXMg c3RydWN0IHVzZXJfbmFtZXNwYWNlKl0pCisrCV0sWworKwkJQUNfTVNHX0NIRUNLSU5HKFt3aGV0 aGVyIGlvcHMtPm1rZGlyKCkgdGFrZXMgdW1vZGVfdF0pCisrCQlaRlNfTElOVVhfVEVTVF9SRVNV TFQoW2lub2RlX29wZXJhdGlvbnNfbWtkaXJdLCBbCisrCQkJQUNfTVNHX1JFU1VMVCh5ZXMpCisr CQkJQUNfREVGSU5FKEhBVkVfTUtESVJfVU1PREVfVCwgMSwKKysJCQkgICAgW2lvcHMtPm1rZGly KCkgdGFrZXMgdW1vZGVfdF0pCisrCQldLFsKKysJCQlaRlNfTElOVVhfVEVTVF9FUlJPUihbbWtk aXIoKV0pCisrCQldKQorKwldKQorK10pCitkaWZmIC0tZ2l0IGNvbmZpZy9rZXJuZWwtbWtub2Qu bTQgY29uZmlnL2tlcm5lbC1ta25vZC5tNAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAwMDAwLi5mZmU0NTEwNjAwMworLS0tIC9kZXYvbnVsbAorKysrIGNvbmZpZy9rZXJuZWwt bWtub2QubTQKK0BAIC0wLDAgKzEsMzAgQEAKKytBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9TUkNf TUtOT0RdLCBbCisrCWRubCAjCisrCWRubCAjIDUuMTIgQVBJIGNoYW5nZSB0aGF0IGFkZGVkIHRo ZSBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqIGFyZworKwlkbmwgIyB0byB0aGUgZnJvbnQgb2YgdGhp cyBmdW5jdGlvbiB0eXBlJ3MgYXJnIGxpc3QuCisrCWRubCAjCisrCVpGU19MSU5VWF9URVNUX1NS QyhbbWtub2RfdXNlcm5zXSwgWworKwkJI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisrCQkjaW5jbHVk ZSA8bGludXgvc2NoZWQuaD4KKysKKysJCWludCB0bXBfbWtub2Qoc3RydWN0IHVzZXJfbmFtZXNw YWNlICp1c2VybnMsCisrCQkgICAgc3RydWN0IGlub2RlICppbm9kZSAsc3RydWN0IGRlbnRyeSAq ZGVudHJ5LAorKwkJICAgIHVtb2RlX3QgdSwgZGV2X3QgZCkgeyByZXR1cm4gMDsgfQorKworKwkJ c3RhdGljIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zCisrCQkJaW9wcyBfX2F0dHJpYnV0 ZV9fICgodW51c2VkKSkgPSB7CisrCQkJLm1rbm9kCQk9IHRtcF9ta25vZCwKKysJCX07CisrCV0s W10pCisrXSkKKysKKytBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9NS05PRF0sIFsKKysJQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIGlvcHMtPm1rbm9kKCkgdGFrZXMgc3RydWN0IHVzZXJfbmFtZXNw YWNlKl0pCisrCVpGU19MSU5VWF9URVNUX1JFU1VMVChbbWtub2RfdXNlcm5zXSwgWworKwkJQUNf TVNHX1JFU1VMVCh5ZXMpCisrCQlBQ19ERUZJTkUoSEFWRV9JT1BTX01LTk9EX1VTRVJOUywgMSwK KysJCSAgICBbaW9wcy0+bWtub2QoKSB0YWtlcyBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqXSkKKysJ XSxbCisrCQlBQ19NU0dfUkVTVUxUKG5vKQorKwldKQorK10pCitkaWZmIC0tZ2l0IGNvbmZpZy9r ZXJuZWwtcmVuYW1lLm00IGNvbmZpZy9rZXJuZWwtcmVuYW1lLm00CitpbmRleCBmNzA3MzkxNTM5 ZC4uMzFkMTk5ZjMzYmIgMTAwNjQ0CistLS0gY29uZmlnL2tlcm5lbC1yZW5hbWUubTQKKysrKyBj b25maWcva2VybmVsLXJlbmFtZS5tNAorQEAgLTEsMTAgKzEsMTAgQEAKKy1kbmwgIworLWRubCAj IDQuOSBBUEkgY2hhbmdlLAorLWRubCAjIGlvcHMtPnJlbmFtZTIoKSBtZXJnZWQgaW50byBpb3Bz LT5yZW5hbWUoKSwgYW5kIGlvcHMtPnJlbmFtZSgpIG5vdyB3YW50cworLWRubCAjIGZsYWdzLgor LWRubCAjCistQUNfREVGVU4oW1pGU19BQ19LRVJORUxfU1JDX1JFTkFNRV9XQU5UU19GTEFHU10s IFsKKy0JWkZTX0xJTlVYX1RFU1RfU1JDKFtpbm9kZV9vcGVyYXRpb25zX3JlbmFtZV0sIFsKKytB Q19ERUZVTihbWkZTX0FDX0tFUk5FTF9TUkNfUkVOQU1FXSwgWworKwlkbmwgIworKwlkbmwgIyA0 LjkgQVBJIGNoYW5nZSwKKysJZG5sICMgaW9wcy0+cmVuYW1lMigpIG1lcmdlZCBpbnRvIGlvcHMt PnJlbmFtZSgpLCBhbmQgaW9wcy0+cmVuYW1lKCkgbm93IHdhbnRzCisrCWRubCAjIGZsYWdzLgor KwlkbmwgIworKwlaRlNfTElOVVhfVEVTVF9TUkMoW2lub2RlX29wZXJhdGlvbnNfcmVuYW1lX2Zs YWdzXSwgWworIAkJI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisgCQlpbnQgcmVuYW1lX2ZuKHN0cnVj dCBpbm9kZSAqc2lwLCBzdHJ1Y3QgZGVudHJ5ICpzZHAsCisgCQkJc3RydWN0IGlub2RlICp0aXAs IHN0cnVjdCBkZW50cnkgKnRkcCwKK0BAIC0xNSwxNSArMTUsNDEgQEAgQUNfREVGVU4oW1pGU19B Q19LRVJORUxfU1JDX1JFTkFNRV9XQU5UU19GTEFHU10sIFsKKyAJCQkucmVuYW1lID0gcmVuYW1l X2ZuLAorIAkJfTsKKyAJXSxbXSkKKysKKysJZG5sICMKKysJZG5sICMgNS4xMiBBUEkgY2hhbmdl LAorKwlkbmwgIworKwlkbmwgIyBMaW51eCA1LjEyIGludHJvZHVjZWQgcGFzc2luZyBzdHJ1Y3Qg dXNlcl9uYW1lc3BhY2UqIGFzIHRoZSBmaXJzdCBhcmd1bWVudAorKwlkbmwgIyBvZiB0aGUgcmVu YW1lKCkgYW5kIG90aGVyIGlub2RlX29wZXJhdGlvbnMgbWVtYmVycy4KKysJZG5sICMKKysJWkZT X0xJTlVYX1RFU1RfU1JDKFtpbm9kZV9vcGVyYXRpb25zX3JlbmFtZV91c2VybnNdLCBbCisrCQkj aW5jbHVkZSA8bGludXgvZnMuaD4KKysJCWludCByZW5hbWVfZm4oc3RydWN0IHVzZXJfbmFtZXNw YWNlICp1c2VyX25zLCBzdHJ1Y3QgaW5vZGUgKnNpcCwKKysJCQlzdHJ1Y3QgZGVudHJ5ICpzZHAs IHN0cnVjdCBpbm9kZSAqdGlwLCBzdHJ1Y3QgZGVudHJ5ICp0ZHAsCisrCQkJdW5zaWduZWQgaW50 IGZsYWdzKSB7IHJldHVybiAwOyB9CisrCisrCQlzdGF0aWMgY29uc3Qgc3RydWN0IGlub2RlX29w ZXJhdGlvbnMKKysJCSAgICBpb3BzIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSA9IHsKKysJCQku cmVuYW1lID0gcmVuYW1lX2ZuLAorKwkJfTsKKysJXSxbXSkKKyBdKQorIAorLUFDX0RFRlVOKFta RlNfQUNfS0VSTkVMX1JFTkFNRV9XQU5UU19GTEFHU10sIFsKKy0JQUNfTVNHX0NIRUNLSU5HKFt3 aGV0aGVyIGlvcHMtPnJlbmFtZSgpIHdhbnRzIGZsYWdzXSkKKy0JWkZTX0xJTlVYX1RFU1RfUkVT VUxUKFtpbm9kZV9vcGVyYXRpb25zX3JlbmFtZV0sIFsKKytBQ19ERUZVTihbWkZTX0FDX0tFUk5F TF9SRU5BTUVdLCBbCisrCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBpb3BzLT5yZW5hbWUoKSB0 YWtlcyBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqXSkKKysJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFtp bm9kZV9vcGVyYXRpb25zX3JlbmFtZV91c2VybnNdLCBbCisgCQlBQ19NU0dfUkVTVUxUKHllcykK Ky0JCUFDX0RFRklORShIQVZFX1JFTkFNRV9XQU5UU19GTEFHUywgMSwKKy0JCSAgICBbaW9wcy0+ cmVuYW1lKCkgd2FudHMgZmxhZ3NdKQorKwkJQUNfREVGSU5FKEhBVkVfSU9QU19SRU5BTUVfVVNF Uk5TLCAxLAorKwkJICAgIFtpb3BzLT5yZW5hbWUoKSB0YWtlcyBzdHJ1Y3QgdXNlcl9uYW1lc3Bh Y2UqXSkKKyAJXSxbCisgCQlBQ19NU0dfUkVTVUxUKG5vKQorKworKwkJWkZTX0xJTlVYX1RFU1Rf UkVTVUxUKFtpbm9kZV9vcGVyYXRpb25zX3JlbmFtZV9mbGFnc10sIFsKKysJCQlBQ19NU0dfUkVT VUxUKHllcykKKysJCQlBQ19ERUZJTkUoSEFWRV9SRU5BTUVfV0FOVFNfRkxBR1MsIDEsCisrCQkJ CVtpb3BzLT5yZW5hbWUoKSB3YW50cyBmbGFnc10pCisrCQldLFsKKysJCQlBQ19NU0dfUkVTVUxU KG5vKQorKwkJXSkKKyAJXSkKKyBdKQorZGlmZiAtLWdpdCBjb25maWcva2VybmVsLXNldGF0dHIt cHJlcGFyZS5tNCBjb25maWcva2VybmVsLXNldGF0dHItcHJlcGFyZS5tNAoraW5kZXggNDU0MDhj NDVjNjkuLjI0MjQ1YWE1MzQ0IDEwMDY0NAorLS0tIGNvbmZpZy9rZXJuZWwtc2V0YXR0ci1wcmVw YXJlLm00CisrKysgY29uZmlnL2tlcm5lbC1zZXRhdHRyLXByZXBhcmUubTQKK0BAIC0xLDI3ICsx LDUyIEBACistZG5sICMKKy1kbmwgIyA0LjkgQVBJIGNoYW5nZQorLWRubCAjIFRoZSBpbm9kZV9j aGFuZ2Vfb2soKSBmdW5jdGlvbiBoYXMgYmVlbiByZW5hbWVkIHNldGF0dHJfcHJlcGFyZSgpCist ZG5sICMgYW5kIHVwZGF0ZWQgdG8gdGFrZSBhIGRlbnRyeSByYXRoZXIgdGhhbiBhbiBpbm9kZS4K Ky1kbmwgIworIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1NSQ19TRVRBVFRSX1BSRVBBUkVdLCBb CisrCWRubCAjCisrCWRubCAjIDQuOSBBUEkgY2hhbmdlCisrCWRubCAjIFRoZSBpbm9kZV9jaGFu Z2Vfb2soKSBmdW5jdGlvbiBoYXMgYmVlbiByZW5hbWVkIHNldGF0dHJfcHJlcGFyZSgpCisrCWRu bCAjIGFuZCB1cGRhdGVkIHRvIHRha2UgYSBkZW50cnkgcmF0aGVyIHRoYW4gYW4gaW5vZGUuCisr CWRubCAjCisgCVpGU19MSU5VWF9URVNUX1NSQyhbc2V0YXR0cl9wcmVwYXJlXSwgWworIAkJI2lu Y2x1ZGUgPGxpbnV4L2ZzLmg+CisgCV0sIFsKKyAJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5V TEw7CisgCQlzdHJ1Y3QgaWF0dHIgKmF0dHIgPSBOVUxMOworIAkJaW50IGVycm9yIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSA9CistCQkgICAgc2V0YXR0cl9wcmVwYXJlKGRlbnRyeSwgYXR0cik7 CisrCQkJc2V0YXR0cl9wcmVwYXJlKGRlbnRyeSwgYXR0cik7CisrCV0pCisrCisrCWRubCAjCisr CWRubCAjIDUuMTIgQVBJIGNoYW5nZQorKwlkbmwgIyBUaGUgc2V0YXR0cl9wcmVwYXJlKCkgZnVu Y3Rpb24gaGFzIGJlZW4gY2hhbmdlZCB0byBhY2NlcHQgYSBuZXcgYXJndW1lbnQKKysJZG5sICMg Zm9yIHN0cnVjdCB1c2VyX25hbWVzcGFjZSoKKysJZG5sICMKKysJWkZTX0xJTlVYX1RFU1RfU1JD KFtzZXRhdHRyX3ByZXBhcmVfdXNlcm5zXSwgWworKwkJI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Cisr CV0sIFsKKysJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7CisrCQlzdHJ1Y3QgaWF0dHIg KmF0dHIgPSBOVUxMOworKwkJc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VybnMgPSBOVUxMOwor KwkJaW50IGVycm9yIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSA9CisrCQkJc2V0YXR0cl9wcmVw YXJlKHVzZXJucywgZGVudHJ5LCBhdHRyKTsKKyAJXSkKKyBdKQorIAorIEFDX0RFRlVOKFtaRlNf QUNfS0VSTkVMX1NFVEFUVFJfUFJFUEFSRV0sIFsKKy0JQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHNldGF0dHJfcHJlcGFyZSgpIGlzIGF2YWlsYWJsZV0pCistCVpGU19MSU5VWF9URVNUX1JFU1VM VF9TWU1CT0woW3NldGF0dHJfcHJlcGFyZV0sCisrCUFDX01TR19DSEVDS0lORyhbd2hldGhlciBz ZXRhdHRyX3ByZXBhcmUoKSBpcyBhdmFpbGFibGUgYW5kIGFjY2VwdHMgc3RydWN0IHVzZXJfbmFt ZXNwYWNlKl0pCisrCVpGU19MSU5VWF9URVNUX1JFU1VMVF9TWU1CT0woW3NldGF0dHJfcHJlcGFy ZV91c2VybnNdLAorIAkgICAgW3NldGF0dHJfcHJlcGFyZV0sIFtmcy9hdHRyLmNdLCBbCisgCQlB Q19NU0dfUkVTVUxUKHllcykKKy0JCUFDX0RFRklORShIQVZFX1NFVEFUVFJfUFJFUEFSRSwgMSwK Ky0JCSAgICBbc2V0YXR0cl9wcmVwYXJlKCkgaXMgYXZhaWxhYmxlXSkKKysJCUFDX0RFRklORShI QVZFX1NFVEFUVFJfUFJFUEFSRV9VU0VSTlMsIDEsCisrCQkgICAgW3NldGF0dHJfcHJlcGFyZSgp IGFjY2VwdHMgdXNlcl9uYW1lc3BhY2VdKQorIAldLCBbCisgCQlBQ19NU0dfUkVTVUxUKG5vKQor KworKwkJQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHNldGF0dHJfcHJlcGFyZSgpIGlzIGF2YWls YWJsZSwgZG9lc24ndCBhY2NlcHQgdXNlcl9uYW1lc3BhY2VdKQorKwkJWkZTX0xJTlVYX1RFU1Rf UkVTVUxUX1NZTUJPTChbc2V0YXR0cl9wcmVwYXJlXSwKKysJCQlbc2V0YXR0cl9wcmVwYXJlXSwg W2ZzL2F0dHIuY10sIFsKKysJCQlBQ19NU0dfUkVTVUxUKHllcykKKysJCQlBQ19ERUZJTkUoSEFW RV9TRVRBVFRSX1BSRVBBUkVfTk9fVVNFUk5TLCAxLAorKwkJCQlbc2V0YXR0cl9wcmVwYXJlKCkg aXMgYXZhaWxhYmxlLCBkb2Vzbid0IGFjY2VwdCB1c2VyX25hbWVzcGFjZV0pCisrCQldLCBbCisr CQkJQUNfTVNHX1JFU1VMVChubykKKysJCV0pCisgCV0pCisgXSkKK2RpZmYgLS1naXQgY29uZmln L2tlcm5lbC1zeW1saW5rLm00IGNvbmZpZy9rZXJuZWwtc3ltbGluay5tNAorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5kOTAzNjZkMDRiNworLS0tIC9kZXYvbnVsbAor KysrIGNvbmZpZy9rZXJuZWwtc3ltbGluay5tNAorQEAgLTAsMCArMSwzMCBAQAorK0FDX0RFRlVO KFtaRlNfQUNfS0VSTkVMX1NSQ19TWU1MSU5LXSwgWworKwlkbmwgIworKwlkbmwgIyA1LjEyIEFQ SSBjaGFuZ2UgdGhhdCBhZGRlZCB0aGUgc3RydWN0IHVzZXJfbmFtZXNwYWNlKiBhcmcKKysJZG5s ICMgdG8gdGhlIGZyb250IG9mIHRoaXMgZnVuY3Rpb24gdHlwZSdzIGFyZyBsaXN0LgorKwlkbmwg IworKwlaRlNfTElOVVhfVEVTVF9TUkMoW3N5bWxpbmtfdXNlcm5zXSwgWworKwkJI2luY2x1ZGUg PGxpbnV4L2ZzLmg+CisrCQkjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKysKKysJCWludCB0bXBf c3ltbGluayhzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJucywKKysJCSAgICBzdHJ1Y3QgaW5v ZGUgKmlub2RlICxzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisrCQkgICAgY29uc3QgY2hhciAqcGF0 aCkgeyByZXR1cm4gMDsgfQorKworKwkJc3RhdGljIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRp b25zCisrCQkJaW9wcyBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkgPSB7CisrCQkJLnN5bWxpbmsJ CT0gdG1wX3N5bWxpbmssCisrCQl9OworKwldLFtdKQorK10pCisrCisrQUNfREVGVU4oW1pGU19B Q19LRVJORUxfU1lNTElOS10sIFsKKysJQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGlvcHMtPnN5 bWxpbmsoKSB0YWtlcyBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UqXSkKKysJWkZTX0xJTlVYX1RFU1Rf UkVTVUxUKFtzeW1saW5rX3VzZXJuc10sIFsKKysJCUFDX01TR19SRVNVTFQoeWVzKQorKwkJQUNf REVGSU5FKEhBVkVfSU9QU19TWU1MSU5LX1VTRVJOUywgMSwKKysJCSAgICBbaW9wcy0+c3ltbGlu aygpIHRha2VzIHN0cnVjdCB1c2VyX25hbWVzcGFjZSpdKQorKwldLFsKKysJCUFDX01TR19SRVNV TFQobm8pCisrCV0pCisrXSkKK2RpZmYgLS1naXQgY29uZmlnL2tlcm5lbC14YXR0ci1oYW5kbGVy Lm00IGNvbmZpZy9rZXJuZWwteGF0dHItaGFuZGxlci5tNAoraW5kZXggMTM3YmY0YThhZmYuLjAw YjFlNzRhOWNjIDEwMDY0NAorLS0tIGNvbmZpZy9rZXJuZWwteGF0dHItaGFuZGxlci5tNAorKysr IGNvbmZpZy9rZXJuZWwteGF0dHItaGFuZGxlci5tNAorQEAgLTE1Miw2ICsxNTIsMjEgQEAgZG5s ICMKKyBkbmwgIyBTdXBwb3J0ZWQgeGF0dHIgaGFuZGxlciBzZXQoKSBpbnRlcmZhY2VzIGNoZWNr ZWQgbmV3ZXN0IHRvIG9sZGVzdC4KKyBkbmwgIworIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1NS Q19YQVRUUl9IQU5ETEVSX1NFVF0sIFsKKysJWkZTX0xJTlVYX1RFU1RfU1JDKFt4YXR0cl9oYW5k bGVyX3NldF91c2VybnNdLCBbCisrCQkjaW5jbHVkZSA8bGludXgveGF0dHIuaD4KKysKKysJCWlu dCBzZXQoY29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIgKmhhbmRsZXIsCisrCQkJc3RydWN0IHVz ZXJfbmFtZXNwYWNlICptbnRfdXNlcm5zLAorKwkJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry dWN0IGlub2RlICppbm9kZSwKKysJCQljb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lkICpidWZm ZXIsCisrCQkJc2l6ZV90IHNpemUsIGludCBmbGFncykKKysJCQl7IHJldHVybiAwOyB9CisrCQlz dGF0aWMgY29uc3Qgc3RydWN0IHhhdHRyX2hhbmRsZXIKKysJCQl4b3BzIF9fYXR0cmlidXRlX18g KCh1bnVzZWQpKSA9IHsKKysJCQkuc2V0ID0gc2V0LAorKwkJfTsKKysJXSxbXSkKKysKKyAJWkZT X0xJTlVYX1RFU1RfU1JDKFt4YXR0cl9oYW5kbGVyX3NldF9kZW50cnlfaW5vZGVdLCBbCisgCQkj aW5jbHVkZSA8bGludXgveGF0dHIuaD4KKyAKK0BAIC0xOTQsNDUgKzIwOSw1OCBAQCBBQ19ERUZV TihbWkZTX0FDX0tFUk5FTF9TUkNfWEFUVFJfSEFORExFUl9TRVRdLCBbCisgCisgQUNfREVGVU4o W1pGU19BQ19LRVJORUxfWEFUVFJfSEFORExFUl9TRVRdLCBbCisgCWRubCAjCistCWRubCAjIDQu NyBBUEkgY2hhbmdlLAorLQlkbmwgIyBUaGUgeGF0dHJfaGFuZGxlci0+c2V0KCkgY2FsbGJhY2sg d2FzIGNoYW5nZWQgdG8gdGFrZSBib3RoCistCWRubCAjIGRlbnRyeSBhbmQgaW5vZGUuCisrCWRu bCAjIDUuMTIgQVBJIGNoYW5nZSwKKysJZG5sICMgVGhlIHhhdHRyX2hhbmRsZXItPnNldCgpIGNh bGxiYWNrIHdhcyBjaGFuZ2VkIHRvIDggYXJndW1lbnRzLCBhbmQKKysJZG5sICMgc3RydWN0IHVz ZXJfbmFtZXNwYWNlKiB3YXMgaW5zZXJ0ZWQgYXMgYXJnICMyCisgCWRubCAjCistCUFDX01TR19D SEVDS0lORyhbd2hldGhlciB4YXR0cl9oYW5kbGVyLT5zZXQoKSB3YW50cyBkZW50cnkgYW5kIGlu b2RlXSkKKy0JWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFt4YXR0cl9oYW5kbGVyX3NldF9kZW50cnlf aW5vZGVdLCBbCisrCUFDX01TR19DSEVDS0lORyhbd2hldGhlciB4YXR0cl9oYW5kbGVyLT5zZXQo KSB3YW50cyBkZW50cnksIGlub2RlLCBhbmQgdXNlcl9uYW1lc3BhY2VdKQorKwlaRlNfTElOVVhf VEVTVF9SRVNVTFQoW3hhdHRyX2hhbmRsZXJfc2V0X3VzZXJuc10sIFsKKyAJCUFDX01TR19SRVNV TFQoeWVzKQorLQkJQUNfREVGSU5FKEhBVkVfWEFUVFJfU0VUX0RFTlRSWV9JTk9ERSwgMSwKKy0J CSAgICBbeGF0dHJfaGFuZGxlci0+c2V0KCkgd2FudHMgYm90aCBkZW50cnkgYW5kIGlub2RlXSkK KysJCUFDX0RFRklORShIQVZFX1hBVFRSX1NFVF9VU0VSTlMsIDEsCisrCQkgICAgW3hhdHRyX2hh bmRsZXItPnNldCgpIHRha2VzIHVzZXJfbmFtZXNwYWNlXSkKKyAJXSxbCisgCQlkbmwgIworLQkJ ZG5sICMgNC40IEFQSSBjaGFuZ2UsCistCQlkbmwgIyBUaGUgeGF0dHJfaGFuZGxlci0+c2V0KCkg Y2FsbGJhY2sgd2FzIGNoYW5nZWQgdG8gdGFrZSBhCistCQlkbmwgIyB4YXR0cl9oYW5kbGVyLCBh bmQgaGFuZGxlcl9mbGFncyBhcmd1bWVudCB3YXMgcmVtb3ZlZCBhbmQKKy0JCWRubCAjIHNob3Vs ZCBiZSBhY2Nlc3NlZCBieSBoYW5kbGVyLT5mbGFncy4KKysJCWRubCAjIDQuNyBBUEkgY2hhbmdl LAorKwkJZG5sICMgVGhlIHhhdHRyX2hhbmRsZXItPnNldCgpIGNhbGxiYWNrIHdhcyBjaGFuZ2Vk IHRvIHRha2UgYm90aAorKwkJZG5sICMgZGVudHJ5IGFuZCBpbm9kZS4KKyAJCWRubCAjCisgCQlB Q19NU0dfUkVTVUxUKG5vKQorLQkJQUNfTVNHX0NIRUNLSU5HKAorLQkJICAgIFt3aGV0aGVyIHhh dHRyX2hhbmRsZXItPnNldCgpIHdhbnRzIHhhdHRyX2hhbmRsZXJdKQorLQkJWkZTX0xJTlVYX1RF U1RfUkVTVUxUKFt4YXR0cl9oYW5kbGVyX3NldF94YXR0cl9oYW5kbGVyXSwgWworKwkJQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHhhdHRyX2hhbmRsZXItPnNldCgpIHdhbnRzIGRlbnRyeSBhbmQg aW5vZGVdKQorKwkJWkZTX0xJTlVYX1RFU1RfUkVTVUxUKFt4YXR0cl9oYW5kbGVyX3NldF9kZW50 cnlfaW5vZGVdLCBbCisgCQkJQUNfTVNHX1JFU1VMVCh5ZXMpCistCQkJQUNfREVGSU5FKEhBVkVf WEFUVFJfU0VUX0hBTkRMRVIsIDEsCistCQkJICAgIFt4YXR0cl9oYW5kbGVyLT5zZXQoKSB3YW50 cyB4YXR0cl9oYW5kbGVyXSkKKysJCQlBQ19ERUZJTkUoSEFWRV9YQVRUUl9TRVRfREVOVFJZX0lO T0RFLCAxLAorKwkJCSAgICBbeGF0dHJfaGFuZGxlci0+c2V0KCkgd2FudHMgYm90aCBkZW50cnkg YW5kIGlub2RlXSkKKyAJCV0sWworIAkJCWRubCAjCistCQkJZG5sICMgMi42LjMzIEFQSSBjaGFu Z2UsCistCQkJZG5sICMgVGhlIHhhdHRyX2hhbmRsZXItPnNldCgpIGNhbGxiYWNrIHdhcyBjaGFu Z2VkCistCQkJZG5sICMgdG8gdGFrZSBhIGRlbnRyeSBpbnN0ZWFkIG9mIGFuIGlub2RlLCBhbmQg YQorLQkJCWRubCAjIGhhbmRsZXJfZmxhZ3MgYXJndW1lbnQgd2FzIGFkZGVkLgorKwkJCWRubCAj IDQuNCBBUEkgY2hhbmdlLAorKwkJCWRubCAjIFRoZSB4YXR0cl9oYW5kbGVyLT5zZXQoKSBjYWxs YmFjayB3YXMgY2hhbmdlZCB0byB0YWtlIGEKKysJCQlkbmwgIyB4YXR0cl9oYW5kbGVyLCBhbmQg aGFuZGxlcl9mbGFncyBhcmd1bWVudCB3YXMgcmVtb3ZlZCBhbmQKKysJCQlkbmwgIyBzaG91bGQg YmUgYWNjZXNzZWQgYnkgaGFuZGxlci0+ZmxhZ3MuCisgCQkJZG5sICMKKyAJCQlBQ19NU0dfUkVT VUxUKG5vKQorIAkJCUFDX01TR19DSEVDS0lORygKKy0JCQkgICAgW3doZXRoZXIgeGF0dHJfaGFu ZGxlci0+c2V0KCkgd2FudHMgZGVudHJ5XSkKKy0JCQlaRlNfTElOVVhfVEVTVF9SRVNVTFQoW3hh dHRyX2hhbmRsZXJfc2V0X2RlbnRyeV0sIFsKKysJCQkgICAgW3doZXRoZXIgeGF0dHJfaGFuZGxl ci0+c2V0KCkgd2FudHMgeGF0dHJfaGFuZGxlcl0pCisrCQkJWkZTX0xJTlVYX1RFU1RfUkVTVUxU KFt4YXR0cl9oYW5kbGVyX3NldF94YXR0cl9oYW5kbGVyXSwgWworIAkJCQlBQ19NU0dfUkVTVUxU KHllcykKKy0JCQkJQUNfREVGSU5FKEhBVkVfWEFUVFJfU0VUX0RFTlRSWSwgMSwKKy0JCQkJICAg IFt4YXR0cl9oYW5kbGVyLT5zZXQoKSB3YW50cyBkZW50cnldKQorKwkJCQlBQ19ERUZJTkUoSEFW RV9YQVRUUl9TRVRfSEFORExFUiwgMSwKKysJCQkJICAgIFt4YXR0cl9oYW5kbGVyLT5zZXQoKSB3 YW50cyB4YXR0cl9oYW5kbGVyXSkKKyAJCQldLFsKKy0JCQkJWkZTX0xJTlVYX1RFU1RfRVJST1Io W3hhdHRyIHNldCgpXSkKKysJCQkJZG5sICMKKysJCQkJZG5sICMgMi42LjMzIEFQSSBjaGFuZ2Us CisrCQkJCWRubCAjIFRoZSB4YXR0cl9oYW5kbGVyLT5zZXQoKSBjYWxsYmFjayB3YXMgY2hhbmdl ZAorKwkJCQlkbmwgIyB0byB0YWtlIGEgZGVudHJ5IGluc3RlYWQgb2YgYW4gaW5vZGUsIGFuZCBh CisrCQkJCWRubCAjIGhhbmRsZXJfZmxhZ3MgYXJndW1lbnQgd2FzIGFkZGVkLgorKwkJCQlkbmwg IworKwkJCQlBQ19NU0dfUkVTVUxUKG5vKQorKwkJCQlBQ19NU0dfQ0hFQ0tJTkcoCisrCQkJCSAg ICBbd2hldGhlciB4YXR0cl9oYW5kbGVyLT5zZXQoKSB3YW50cyBkZW50cnldKQorKwkJCQlaRlNf TElOVVhfVEVTVF9SRVNVTFQoW3hhdHRyX2hhbmRsZXJfc2V0X2RlbnRyeV0sIFsKKysJCQkJCUFD X01TR19SRVNVTFQoeWVzKQorKwkJCQkJQUNfREVGSU5FKEhBVkVfWEFUVFJfU0VUX0RFTlRSWSwg MSwKKysJCQkJCSAgICBbeGF0dHJfaGFuZGxlci0+c2V0KCkgd2FudHMgZGVudHJ5XSkKKysJCQkJ XSxbCisrCQkJCQlaRlNfTElOVVhfVEVTVF9FUlJPUihbeGF0dHIgc2V0KCldKQorKwkJCQldKQor IAkJCV0pCisgCQldKQorIAldKQorZGlmZiAtLWdpdCBjb25maWcva2VybmVsLm00IGNvbmZpZy9r ZXJuZWwubTQKK2luZGV4IDU1NjIwYjNkYWE4Li41MWM3ZmI5MjZlYyAxMDA2NDQKKy0tLSBjb25m aWcva2VybmVsLm00CisrKysgY29uZmlnL2tlcm5lbC5tNAorQEAgLTc5LDkgKzc5LDkgQEAgQUNf REVGVU4oW1pGU19BQ19LRVJORUxfVEVTVF9TUkNdLCBbCisgCVpGU19BQ19LRVJORUxfU1JDX0VW SUNUX0lOT0RFCisgCVpGU19BQ19LRVJORUxfU1JDX0RJUlRZX0lOT0RFCisgCVpGU19BQ19LRVJO RUxfU1JDX1NIUklOS0VSCistCVpGU19BQ19LRVJORUxfU1JDX01LRElSX1VNT0RFX1QKKysJWkZT X0FDX0tFUk5FTF9TUkNfTUtESVIKKyAJWkZTX0FDX0tFUk5FTF9TUkNfTE9PS1VQX0ZMQUdTCist CVpGU19BQ19LRVJORUxfU1JDX0NSRUFURV9GTEFHUworKwlaRlNfQUNfS0VSTkVMX1NSQ19DUkVB VEUKKyAJWkZTX0FDX0tFUk5FTF9TUkNfR0VUX0xJTksKKyAJWkZTX0FDX0tFUk5FTF9TUkNfUFVU X0xJTksKKyAJWkZTX0FDX0tFUk5FTF9TUkNfVE1QRklMRQorQEAgLTExNSw3ICsxMTUsNyBAQCBB Q19ERUZVTihbWkZTX0FDX0tFUk5FTF9URVNUX1NSQ10sIFsKKyAJWkZTX0FDX0tFUk5FTF9TUkNf S1VJREdJRF9UCisgCVpGU19BQ19LRVJORUxfU1JDX0tVSURfSEVMUEVSUworIAlaRlNfQUNfS0VS TkVMX1NSQ19NT0RVTEVfUEFSQU1fQ0FMTF9DT05TVAorLQlaRlNfQUNfS0VSTkVMX1NSQ19SRU5B TUVfV0FOVFNfRkxBR1MKKysJWkZTX0FDX0tFUk5FTF9TUkNfUkVOQU1FCisgCVpGU19BQ19LRVJO RUxfU1JDX0NVUlJFTlRfVElNRQorIAlaRlNfQUNfS0VSTkVMX1NSQ19VU0VSTlNfQ0FQQUJJTElU SUVTCisgCVpGU19BQ19LRVJORUxfU1JDX0lOX0NPTVBBVF9TWVNDQUxMCitAQCAtMTI0LDYgKzEy NCw5IEBAIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1RFU1RfU1JDXSwgWworIAlaRlNfQUNfS0VS TkVMX1NSQ19UT1RBTEhJR0hfUEFHRVMKKyAJWkZTX0FDX0tFUk5FTF9TUkNfS1NUUlRPVUwKKyAJ WkZTX0FDX0tFUk5FTF9TUkNfUEVSQ1BVCisrCVpGU19BQ19LRVJORUxfU1JDX0dFTkVSSUNfRklM TEFUVFJfVVNFUk5TCisrCVpGU19BQ19LRVJORUxfU1JDX01LTk9ECisrCVpGU19BQ19LRVJORUxf U1JDX1NZTUxJTksKKyAKKyAJQUNfTVNHX0NIRUNLSU5HKFtmb3IgYXZhaWxhYmxlIGtlcm5lbCBp bnRlcmZhY2VzXSkKKyAJWkZTX0xJTlVYX1RFU1RfQ09NUElMRV9BTEwoW2thYmldKQorQEAgLTE3 Niw5ICsxNzksOSBAQCBBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9URVNUX1JFU1VMVF0sIFsKKyAJ WkZTX0FDX0tFUk5FTF9FVklDVF9JTk9ERQorIAlaRlNfQUNfS0VSTkVMX0RJUlRZX0lOT0RFCisg CVpGU19BQ19LRVJORUxfU0hSSU5LRVIKKy0JWkZTX0FDX0tFUk5FTF9NS0RJUl9VTU9ERV9UCisr CVpGU19BQ19LRVJORUxfTUtESVIKKyAJWkZTX0FDX0tFUk5FTF9MT09LVVBfRkxBR1MKKy0JWkZT X0FDX0tFUk5FTF9DUkVBVEVfRkxBR1MKKysJWkZTX0FDX0tFUk5FTF9DUkVBVEUKKyAJWkZTX0FD X0tFUk5FTF9HRVRfTElOSworIAlaRlNfQUNfS0VSTkVMX1BVVF9MSU5LCisgCVpGU19BQ19LRVJO RUxfVE1QRklMRQorQEAgLTIxMiw3ICsyMTUsNyBAQCBBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9U RVNUX1JFU1VMVF0sIFsKKyAJWkZTX0FDX0tFUk5FTF9LVUlER0lEX1QKKyAJWkZTX0FDX0tFUk5F TF9LVUlEX0hFTFBFUlMKKyAJWkZTX0FDX0tFUk5FTF9NT0RVTEVfUEFSQU1fQ0FMTF9DT05TVAor LQlaRlNfQUNfS0VSTkVMX1JFTkFNRV9XQU5UU19GTEFHUworKwlaRlNfQUNfS0VSTkVMX1JFTkFN RQorIAlaRlNfQUNfS0VSTkVMX0NVUlJFTlRfVElNRQorIAlaRlNfQUNfS0VSTkVMX1VTRVJOU19D QVBBQklMSVRJRVMKKyAJWkZTX0FDX0tFUk5FTF9JTl9DT01QQVRfU1lTQ0FMTAorQEAgLTIyMSw2 ICsyMjQsOSBAQCBBQ19ERUZVTihbWkZTX0FDX0tFUk5FTF9URVNUX1JFU1VMVF0sIFsKKyAJWkZT X0FDX0tFUk5FTF9UT1RBTEhJR0hfUEFHRVMKKyAJWkZTX0FDX0tFUk5FTF9LU1RSVE9VTAorIAla RlNfQUNfS0VSTkVMX1BFUkNQVQorKwlaRlNfQUNfS0VSTkVMX0dFTkVSSUNfRklMTEFUVFJfVVNF Uk5TCisrCVpGU19BQ19LRVJORUxfTUtOT0QKKysJWkZTX0FDX0tFUk5FTF9TWU1MSU5LCisgXSkK KyAKKyBkbmwgIworZGlmZiAtLWdpdCBpbmNsdWRlL29zL2xpbnV4L2tlcm5lbC9saW51eC92ZnNf Y29tcGF0LmggaW5jbHVkZS9vcy9saW51eC9rZXJuZWwvbGludXgvdmZzX2NvbXBhdC5oCitpbmRl eCBjMzVlODBkMzFjZC4uOTFlOTA4NTk4ZmIgMTAwNjQ0CistLS0gaW5jbHVkZS9vcy9saW51eC9r ZXJuZWwvbGludXgvdmZzX2NvbXBhdC5oCisrKysgaW5jbHVkZS9vcy9saW51eC9rZXJuZWwvbGlu dXgvdmZzX2NvbXBhdC5oCitAQCAtMzQzLDcgKzM0Myw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB6 ZnNfZ2lkX3dyaXRlKHN0cnVjdCBpbm9kZSAqaXAsIGdpZF90IGdpZCkKKyAvKgorICAqIDQuOSBB UEkgY2hhbmdlCisgICovCistI2lmbmRlZiBIQVZFX1NFVEFUVFJfUFJFUEFSRQorKyNpZiAhKGRl ZmluZWQoSEFWRV9TRVRBVFRSX1BSRVBBUkVfTk9fVVNFUk5TKSB8fCBcCisrICAgIGRlZmluZWQo SEFWRV9TRVRBVFRSX1BSRVBBUkVfVVNFUk5TKSkKKyBzdGF0aWMgaW5saW5lIGludAorIHNldGF0 dHJfcHJlcGFyZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqaWEpCisgewor QEAgLTM4OSw2ICszOTAsMTUgQEAgZnVuYyhjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgc3RydWN0 IGtzdGF0ICpzdGF0LCB1MzIgcmVxdWVzdF9tYXNrLAlcCisgewkJCQkJCQkJCVwKKyAJcmV0dXJu IChmdW5jIyNfaW1wbChwYXRoLCBzdGF0LCByZXF1ZXN0X21hc2ssIHF1ZXJ5X2ZsYWdzKSk7CVwK KyB9CisrI2VsaWYgZGVmaW5lZChIQVZFX1VTRVJOU19JT1BTX0dFVEFUVFIpCisrI2RlZmluZQla UExfR0VUQVRUUl9XUkFQUEVSKGZ1bmMpCQkJCQlcCisrc3RhdGljIGludAkJCQkJCQkJXAorK2Z1 bmMoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25zLCBjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0 aCwJXAorKyAgICBzdHJ1Y3Qga3N0YXQgKnN0YXQsIHUzMiByZXF1ZXN0X21hc2ssIHVuc2lnbmVk IGludCBxdWVyeV9mbGFncykJXAorK3sJCQkJCQkJCQlcCisrCXJldHVybiAoZnVuYyMjX2ltcGwo dXNlcl9ucywgcGF0aCwgc3RhdCwgcmVxdWVzdF9tYXNrLCBcCisrCSAgICBxdWVyeV9mbGFncykp OwlcCisrfQorICNlbHNlCisgI2Vycm9yCisgI2VuZGlmCitAQCAtNDM2LDQgKzQ0NiwxNiBAQCB6 cGxfaXNfMzJiaXRfYXBpKHZvaWQpCisgI2VuZGlmCisgfQorIAorKy8qCisrICogNS4xMiBBUEkg Y2hhbmdlCisrICogVG8gc3VwcG9ydCBpZC1tYXBwZWQgbW91bnRzLCBnZW5lcmljX2ZpbGxhdHRy KCkgd2FzIG1vZGlmaWVkIHRvCisrICogYWNjZXB0IGEgbmV3IHN0cnVjdCB1c2VyX25hbWVzcGFj ZSogYXMgaXRzIGZpcnN0IGFyZy4KKysgKi8KKysjaWZkZWYgSEFWRV9HRU5FUklDX0ZJTExBVFRS X1VTRVJOUworKyNkZWZpbmUJenBsX2dlbmVyaWNfZmlsbGF0dHIodXNlcl9ucywgaXAsIHNwKQlc CisrICAgIGdlbmVyaWNfZmlsbGF0dHIodXNlcl9ucywgaXAsIHNwKQorKyNlbHNlCisrI2RlZmlu ZQl6cGxfZ2VuZXJpY19maWxsYXR0cih1c2VyX25zLCBpcCwgc3ApCWdlbmVyaWNfZmlsbGF0dHIo aXAsIHNwKQorKyNlbmRpZgorKworICNlbmRpZiAvKiBfWkZTX1ZGU19IICovCitkaWZmIC0tZ2l0 IGluY2x1ZGUvb3MvbGludXgva2VybmVsL2xpbnV4L3hhdHRyX2NvbXBhdC5oIGluY2x1ZGUvb3Mv bGludXgva2VybmVsL2xpbnV4L3hhdHRyX2NvbXBhdC5oCitpbmRleCA4MzQ4ZTk5MTk4YS4uNTQ2 OTA3MjdlYWIgMTAwNjQ0CistLS0gaW5jbHVkZS9vcy9saW51eC9rZXJuZWwvbGludXgveGF0dHJf Y29tcGF0LmgKKysrKyBpbmNsdWRlL29zL2xpbnV4L2tlcm5lbC9saW51eC94YXR0cl9jb21wYXQu aAorQEAgLTExOSwxMiArMTE5LDI3IEBAIGZuKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3Qg Y2hhciAqbmFtZSwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSwJXAorICNlcnJvciAiVW5zdXBw b3J0ZWQga2VybmVsIgorICNlbmRpZgorIAorKy8qCisrICogNS4xMiBBUEkgY2hhbmdlLAorKyAq IFRoZSB4YXR0cl9oYW5kbGVyLT5zZXQoKSBjYWxsYmFjayB3YXMgY2hhbmdlZCB0byB0YWtlIHRo ZQorKyAqIHN0cnVjdCB1c2VyX25hbWVzcGFjZSogYXMgdGhlIGZpcnN0IGFyZywgdG8gc3VwcG9y dCBpZG1hcHBlZAorKyAqIG1vdW50cy4KKysgKi8KKysjaWYgZGVmaW5lZChIQVZFX1hBVFRSX1NF VF9VU0VSTlMpCisrI2RlZmluZQlaUExfWEFUVFJfU0VUX1dSQVBQRVIoZm4pCQkJCQlcCisrc3Rh dGljIGludAkJCQkJCQkJXAorK2ZuKGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICpoYW5kbGVy LCBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnMsIFwKKysgICAgc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLAlcCisrICAgIGNv bnN0IHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUsIGludCBmbGFncykJXAorK3sJCQkJCQkJCQlc CisrCXJldHVybiAoX18gIyMgZm4oaW5vZGUsIG5hbWUsIGJ1ZmZlciwgc2l6ZSwgZmxhZ3MpKTsJ CVwKKyt9CisgLyoKKyAgKiA0LjcgQVBJIGNoYW5nZSwKKyAgKiBUaGUgeGF0dHJfaGFuZGxlci0+ c2V0KCkgY2FsbGJhY2sgd2FzIGNoYW5nZWQgdG8gdGFrZSBhIGJvdGggZGVudHJ5IGFuZAorICAq IGlub2RlLCBiZWNhdXNlIHRoZSBkZW50cnkgbWlnaHQgbm90IGJlIGF0dGFjaGVkIHRvIGFuIGlu b2RlIHlldC4KKyAgKi8KKy0jaWYgZGVmaW5lZChIQVZFX1hBVFRSX1NFVF9ERU5UUllfSU5PREUp CisrI2VsaWYgZGVmaW5lZChIQVZFX1hBVFRSX1NFVF9ERU5UUllfSU5PREUpCisgI2RlZmluZQla UExfWEFUVFJfU0VUX1dSQVBQRVIoZm4pCQkJCQlcCisgc3RhdGljIGludAkJCQkJCQkJXAorIGZu KGNvbnN0IHN0cnVjdCB4YXR0cl9oYW5kbGVyICpoYW5kbGVyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksCQlcCitkaWZmIC0tZ2l0IGluY2x1ZGUvb3MvbGludXgvemZzL3N5cy96ZnNfdm5vcHNfb3Mu aCBpbmNsdWRlL29zL2xpbnV4L3pmcy9zeXMvemZzX3Zub3BzX29zLmgKK2luZGV4IDFjOWNkZjdi ZjhmLi5iYTgzZjVkZDgzZCAxMDA2NDQKKy0tLSBpbmNsdWRlL29zL2xpbnV4L3pmcy9zeXMvemZz X3Zub3BzX29zLmgKKysrKyBpbmNsdWRlL29zL2xpbnV4L3pmcy9zeXMvemZzX3Zub3BzX29zLmgK K0BAIC01Niw3ICs1Niw4IEBAIGV4dGVybiBpbnQgemZzX21rZGlyKHpub2RlX3QgKmR6cCwgY2hh ciAqZGlybmFtZSwgdmF0dHJfdCAqdmFwLAorIGV4dGVybiBpbnQgemZzX3JtZGlyKHpub2RlX3Qg KmR6cCwgY2hhciAqbmFtZSwgem5vZGVfdCAqY3dkLAorICAgICBjcmVkX3QgKmNyLCBpbnQgZmxh Z3MpOworIGV4dGVybiBpbnQgemZzX3JlYWRkaXIoc3RydWN0IGlub2RlICppcCwgenBsX2Rpcl9j b250ZXh0X3QgKmN0eCwgY3JlZF90ICpjcik7CistZXh0ZXJuIGludCB6ZnNfZ2V0YXR0cl9mYXN0 KHN0cnVjdCBpbm9kZSAqaXAsIHN0cnVjdCBrc3RhdCAqc3ApOworK2V4dGVybiBpbnQgemZzX2dl dGF0dHJfZmFzdChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKiwgc3RydWN0IGlub2RlICppcCwKKysJ c3RydWN0IGtzdGF0ICpzcCk7CisgZXh0ZXJuIGludCB6ZnNfc2V0YXR0cih6bm9kZV90ICp6cCwg dmF0dHJfdCAqdmFwLCBpbnQgZmxhZywgY3JlZF90ICpjcik7CisgZXh0ZXJuIGludCB6ZnNfcmVu YW1lKHpub2RlX3QgKnNkenAsIGNoYXIgKnNubSwgem5vZGVfdCAqdGR6cCwKKyAgICAgY2hhciAq dG5tLCBjcmVkX3QgKmNyLCBpbnQgZmxhZ3MpOworZGlmZiAtLWdpdCBpbmNsdWRlL29zL2xpbnV4 L3pmcy9zeXMvenBsLmggaW5jbHVkZS9vcy9saW51eC96ZnMvc3lzL3pwbC5oCitpbmRleCBiMGJi OWMyOWMwYi4uMjE4MjVkMWYzNzggMTAwNjQ0CistLS0gaW5jbHVkZS9vcy9saW51eC96ZnMvc3lz L3pwbC5oCisrKysgaW5jbHVkZS9vcy9saW51eC96ZnMvc3lzL3pwbC5oCitAQCAtMTcxLDQgKzE3 MSwyMiBAQCB6cGxfZGlyX2VtaXRfZG90cyhzdHJ1Y3QgZmlsZSAqZmlsZSwgenBsX2Rpcl9jb250 ZXh0X3QgKmN0eCkKKyAJdGltZXNwZWNfdHJ1bmModHMsIChpcCktPmlfc2ItPnNfdGltZV9ncmFu KQorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKEhBVkVfSU5PREVfT1dORVJfT1JfQ0FQQUJMRSkK KysjZGVmaW5lCXpwbF9pbm9kZV9vd25lcl9vcl9jYXBhYmxlKG5zLCBpcCkJaW5vZGVfb3duZXJf b3JfY2FwYWJsZShpcCkKKysjZWxpZiBkZWZpbmVkKEhBVkVfSU5PREVfT1dORVJfT1JfQ0FQQUJM RV9JRE1BUFBFRCkKKysjZGVmaW5lCXpwbF9pbm9kZV9vd25lcl9vcl9jYXBhYmxlKG5zLCBpcCkJ aW5vZGVfb3duZXJfb3JfY2FwYWJsZShucywgaXApCisrI2Vsc2UKKysjZXJyb3IgIlVuc3VwcG9y dGVkIGtlcm5lbCIKKysjZW5kaWYKKysKKysjaWZkZWYgSEFWRV9TRVRBVFRSX1BSRVBBUkVfVVNF Uk5TCisrI2RlZmluZQl6cGxfc2V0YXR0cl9wcmVwYXJlKG5zLCBkZW50cnksIGlhKQlzZXRhdHRy X3ByZXBhcmUobnMsIGRlbnRyeSwgaWEpCisrI2Vsc2UKKysvKgorKyAqIFVzZSBrZXJuZWwtcHJv dmlkZWQgdmVyc2lvbiwgb3Igb3VyIG93biBmcm9tCisrICogbGludXgvdmZzX2NvbXBhdC5oCisr ICovCisrI2RlZmluZQl6cGxfc2V0YXR0cl9wcmVwYXJlKG5zLCBkZW50cnksIGlhKQlzZXRhdHRy X3ByZXBhcmUoZGVudHJ5LCBpYSkKKysjZW5kaWYKKysKKyAjZW5kaWYJLyogX1NZU19aUExfSCAq LworZGlmZiAtLWdpdCBtb2R1bGUvb3MvbGludXgvemZzL3BvbGljeS5jIG1vZHVsZS9vcy9saW51 eC96ZnMvcG9saWN5LmMKK2luZGV4IDg3ODBkN2Y2YzcwLi5iYmNjYjJlNTcyZCAxMDA2NDQKKy0t LSBtb2R1bGUvb3MvbGludXgvemZzL3BvbGljeS5jCisrKysgbW9kdWxlL29zL2xpbnV4L3pmcy9w b2xpY3kuYworQEAgLTEyNCw3ICsxMjQsNyBAQCBzZWNwb2xpY3lfdm5vZGVfYW55X2FjY2Vzcyhj b25zdCBjcmVkX3QgKmNyLCBzdHJ1Y3QgaW5vZGUgKmlwLCB1aWRfdCBvd25lcikKKyAJaWYgKGNy Z2V0ZnN1aWQoY3IpID09IG93bmVyKQorIAkJcmV0dXJuICgwKTsKKyAKKy0JaWYgKGlub2RlX293 bmVyX29yX2NhcGFibGUoaXApKQorKwlpZiAoenBsX2lub2RlX293bmVyX29yX2NhcGFibGUoa2Ny ZWQtPnVzZXJfbnMsIGlwKSkKKyAJCXJldHVybiAoMCk7CisgCisgI2lmIGRlZmluZWQoQ09ORklH X1VTRVJfTlMpCitkaWZmIC0tZ2l0IG1vZHVsZS9vcy9saW51eC96ZnMvemZzX3Zub3BzX29zLmMg bW9kdWxlL29zL2xpbnV4L3pmcy96ZnNfdm5vcHNfb3MuYworaW5kZXggNzQ4NGQ2NTFjMWYuLmNl MDcwMTc2M2ZkIDEwMDY0NAorLS0tIG1vZHVsZS9vcy9saW51eC96ZnMvemZzX3Zub3BzX29zLmMK KysrKyBtb2R1bGUvb3MvbGludXgvemZzL3pmc192bm9wc19vcy5jCitAQCAtMTkwNyw3ICsxOTA3 LDggQEAgemZzX3JlYWRkaXIoc3RydWN0IGlub2RlICppcCwgenBsX2Rpcl9jb250ZXh0X3QgKmN0 eCwgY3JlZF90ICpjcikKKyAgKi8KKyAvKiBBUkdTVVNFRCAqLworIGludAorLXpmc19nZXRhdHRy X2Zhc3Qoc3RydWN0IGlub2RlICppcCwgc3RydWN0IGtzdGF0ICpzcCkKKyt6ZnNfZ2V0YXR0cl9m YXN0KHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucywgc3RydWN0IGlub2RlICppcCwKKysg ICAgc3RydWN0IGtzdGF0ICpzcCkKKyB7CisgCXpub2RlX3QgKnpwID0gSVRPWihpcCk7CisgCXpm c3Zmc190ICp6ZnN2ZnMgPSBJVE9aU0IoaXApOworQEAgLTE5MTksNyArMTkyMCw3IEBAIHpmc19n ZXRhdHRyX2Zhc3Qoc3RydWN0IGlub2RlICppcCwgc3RydWN0IGtzdGF0ICpzcCkKKyAKKyAJbXV0 ZXhfZW50ZXIoJnpwLT56X2xvY2spOworIAorLQlnZW5lcmljX2ZpbGxhdHRyKGlwLCBzcCk7Cisr CXpwbF9nZW5lcmljX2ZpbGxhdHRyKHVzZXJfbnMsIGlwLCBzcCk7CisgCS8qCisgCSAqICsxIGxp bmsgY291bnQgZm9yIHJvb3QgaW5vZGUgd2l0aCB2aXNpYmxlICcuemZzJyBkaXJlY3RvcnkuCisg CSAqLworZGlmZiAtLWdpdCBtb2R1bGUvb3MvbGludXgvemZzL3pwbF9jdGxkaXIuYyBtb2R1bGUv b3MvbGludXgvemZzL3pwbF9jdGxkaXIuYworaW5kZXggZTY0MjBmMTllZDguLjliNTI2YWZkMDAw IDEwMDY0NAorLS0tIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2N0bGRpci5jCisrKysgbW9kdWxl L29zL2xpbnV4L3pmcy96cGxfY3RsZGlyLmMKK0BAIC0xMDEsMTIgKzEwMSwyMiBAQCB6cGxfcm9v dF9yZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxwLCB2b2lkICpkaXJlbnQsIGZpbGxkaXJfdCBmaWxs ZGlyKQorICAqLworIC8qIEFSR1NVU0VEICovCisgc3RhdGljIGludAorKyNpZmRlZiBIQVZFX1VT RVJOU19JT1BTX0dFVEFUVFIKKyt6cGxfcm9vdF9nZXRhdHRyX2ltcGwoc3RydWN0IHVzZXJfbmFt ZXNwYWNlICp1c2VyX25zLAorKyAgICBjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgc3RydWN0IGtz dGF0ICpzdGF0LCB1MzIgcmVxdWVzdF9tYXNrLAorKyAgICB1bnNpZ25lZCBpbnQgcXVlcnlfZmxh Z3MpCisrI2Vsc2UKKyB6cGxfcm9vdF9nZXRhdHRyX2ltcGwoY29uc3Qgc3RydWN0IHBhdGggKnBh dGgsIHN0cnVjdCBrc3RhdCAqc3RhdCwKKyAgICAgdTMyIHJlcXVlc3RfbWFzaywgdW5zaWduZWQg aW50IHF1ZXJ5X2ZsYWdzKQorKyNlbmRpZgorIHsKKyAJc3RydWN0IGlub2RlICppcCA9IHBhdGgt PmRlbnRyeS0+ZF9pbm9kZTsKKyAKKysjaWYgZGVmaW5lZChIQVZFX0dFTkVSSUNfRklMTEFUVFJf VVNFUk5TKSAmJiBkZWZpbmVkKEhBVkVfVVNFUk5TX0lPUFNfR0VUQVRUUikKKysJZ2VuZXJpY19m aWxsYXR0cih1c2VyX25zLCBpcCwgc3RhdCk7CisrI2Vsc2UKKyAJZ2VuZXJpY19maWxsYXR0cihp cCwgc3RhdCk7CisrI2VuZGlmCisgCXN0YXQtPmF0aW1lID0gY3VycmVudF90aW1lKGlwKTsKKyAK KyAJcmV0dXJuICgwKTsKK0BAIC0yOTAsOCArMzAwLDE0IEBAIHpwbF9zbmFwZGlyX3JlYWRkaXIo c3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpCisgI2Vu ZGlmIC8qICFIQVZFX1ZGU19JVEVSQVRFICYmICFIQVZFX1ZGU19JVEVSQVRFX1NIQVJFRCAqLwor IAorIHN0YXRpYyBpbnQKKysjaWZkZWYgSEFWRV9JT1BTX1JFTkFNRV9VU0VSTlMKKyt6cGxfc25h cGRpcl9yZW5hbWUyKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucywgc3RydWN0IGlub2Rl ICpzZGlwLAorKyAgICBzdHJ1Y3QgZGVudHJ5ICpzZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKnRkaXAs IHN0cnVjdCBkZW50cnkgKnRkZW50cnksCisrICAgIHVuc2lnbmVkIGludCBmbGFncykKKysjZWxz ZQorIHpwbF9zbmFwZGlyX3JlbmFtZTIoc3RydWN0IGlub2RlICpzZGlwLCBzdHJ1Y3QgZGVudHJ5 ICpzZGVudHJ5LAorICAgICBzdHJ1Y3QgaW5vZGUgKnRkaXAsIHN0cnVjdCBkZW50cnkgKnRkZW50 cnksIHVuc2lnbmVkIGludCBmbGFncykKKysjZW5kaWYKKyB7CisgCWNyZWRfdCAqY3IgPSBDUkVE KCk7CisgCWludCBlcnJvcjsKK0BAIC0zMDksNyArMzI1LDcgQEAgenBsX3NuYXBkaXJfcmVuYW1l MihzdHJ1Y3QgaW5vZGUgKnNkaXAsIHN0cnVjdCBkZW50cnkgKnNkZW50cnksCisgCXJldHVybiAo ZXJyb3IpOworIH0KKyAKKy0jaWZuZGVmIEhBVkVfUkVOQU1FX1dBTlRTX0ZMQUdTCisrI2lmICFk ZWZpbmVkKEhBVkVfUkVOQU1FX1dBTlRTX0ZMQUdTKSAmJiAhZGVmaW5lZChIQVZFX0lPUFNfUkVO QU1FX1VTRVJOUykKKyBzdGF0aWMgaW50CisgenBsX3NuYXBkaXJfcmVuYW1lKHN0cnVjdCBpbm9k ZSAqc2RpcCwgc3RydWN0IGRlbnRyeSAqc2RlbnRyeSwKKyAgICAgc3RydWN0IGlub2RlICp0ZGlw LCBzdHJ1Y3QgZGVudHJ5ICp0ZGVudHJ5KQorQEAgLTMzMyw3ICszNDksMTIgQEAgenBsX3NuYXBk aXJfcm1kaXIoc3RydWN0IGlub2RlICpkaXAsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKKyB9Cisg Cisgc3RhdGljIGludAorKyNpZmRlZiBIQVZFX0lPUFNfTUtESVJfVVNFUk5TCisrenBsX3NuYXBk aXJfbWtkaXIoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25zLCBzdHJ1Y3QgaW5vZGUgKmRp cCwKKysgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpCisrI2Vsc2UKKyB6 cGxfc25hcGRpcl9ta2RpcihzdHJ1Y3QgaW5vZGUgKmRpcCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5 LCB1bW9kZV90IG1vZGUpCisrI2VuZGlmCisgeworIAljcmVkX3QgKmNyID0gQ1JFRCgpOworIAl2 YXR0cl90ICp2YXA7CitAQCAtMzYzLDE0ICszODQsMjQgQEAgenBsX3NuYXBkaXJfbWtkaXIoc3Ry dWN0IGlub2RlICpkaXAsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQorICAq LworIC8qIEFSR1NVU0VEICovCisgc3RhdGljIGludAorKyNpZmRlZiBIQVZFX1VTRVJOU19JT1BT X0dFVEFUVFIKKyt6cGxfc25hcGRpcl9nZXRhdHRyX2ltcGwoc3RydWN0IHVzZXJfbmFtZXNwYWNl ICp1c2VyX25zLAorKyAgICBjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgc3RydWN0IGtzdGF0ICpz dGF0LCB1MzIgcmVxdWVzdF9tYXNrLAorKyAgICB1bnNpZ25lZCBpbnQgcXVlcnlfZmxhZ3MpCisr I2Vsc2UKKyB6cGxfc25hcGRpcl9nZXRhdHRyX2ltcGwoY29uc3Qgc3RydWN0IHBhdGggKnBhdGgs IHN0cnVjdCBrc3RhdCAqc3RhdCwKKyAgICAgdTMyIHJlcXVlc3RfbWFzaywgdW5zaWduZWQgaW50 IHF1ZXJ5X2ZsYWdzKQorKyNlbmRpZgorIHsKKyAJc3RydWN0IGlub2RlICppcCA9IHBhdGgtPmRl bnRyeS0+ZF9pbm9kZTsKKyAJemZzdmZzX3QgKnpmc3ZmcyA9IElUT1pTQihpcCk7CisgCisgCVpQ TF9FTlRFUih6ZnN2ZnMpOworKyNpZiBkZWZpbmVkKEhBVkVfR0VORVJJQ19GSUxMQVRUUl9VU0VS TlMpICYmIGRlZmluZWQoSEFWRV9VU0VSTlNfSU9QU19HRVRBVFRSKQorKwlnZW5lcmljX2ZpbGxh dHRyKHVzZXJfbnMsIGlwLCBzdGF0KTsKKysjZWxzZQorIAlnZW5lcmljX2ZpbGxhdHRyKGlwLCBz dGF0KTsKKysjZW5kaWYKKyAKKyAJc3RhdC0+bmxpbmsgPSBzdGF0LT5zaXplID0gMjsKKyAJc3Rh dC0+Y3RpbWUgPSBzdGF0LT5tdGltZSA9IGRtdV9vYmpzZXRfc25hcF9jbXRpbWUoemZzdmZzLT56 X29zKTsKK0BAIC00MDgsNyArNDM5LDcgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB6 cGxfZm9wc19zbmFwZGlyID0geworIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIHpwbF9v cHNfc25hcGRpciA9IHsKKyAJLmxvb2t1cAkJPSB6cGxfc25hcGRpcl9sb29rdXAsCisgCS5nZXRh dHRyCT0genBsX3NuYXBkaXJfZ2V0YXR0ciwKKy0jaWZkZWYgSEFWRV9SRU5BTUVfV0FOVFNfRkxB R1MKKysjaWYgZGVmaW5lZChIQVZFX1JFTkFNRV9XQU5UU19GTEFHUykgfHwgZGVmaW5lZChIQVZF X0lPUFNfUkVOQU1FX1VTRVJOUykKKyAJLnJlbmFtZQkJPSB6cGxfc25hcGRpcl9yZW5hbWUyLAor ICNlbHNlCisgCS5yZW5hbWUJCT0genBsX3NuYXBkaXJfcmVuYW1lLAorQEAgLTQ5NSw4ICs1MjYs MTQgQEAgenBsX3NoYXJlc19yZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxwLCB2b2lkICpkaXJlbnQs IGZpbGxkaXJfdCBmaWxsZGlyKQorIAorIC8qIEFSR1NVU0VEICovCisgc3RhdGljIGludAorKyNp ZmRlZiBIQVZFX1VTRVJOU19JT1BTX0dFVEFUVFIKKyt6cGxfc2hhcmVzX2dldGF0dHJfaW1wbChz dHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnMsCisrICAgIGNvbnN0IHN0cnVjdCBwYXRoICpw YXRoLCBzdHJ1Y3Qga3N0YXQgKnN0YXQsIHUzMiByZXF1ZXN0X21hc2ssCisrICAgIHVuc2lnbmVk IGludCBxdWVyeV9mbGFncykKKysjZWxzZQorIHpwbF9zaGFyZXNfZ2V0YXR0cl9pbXBsKGNvbnN0 IHN0cnVjdCBwYXRoICpwYXRoLCBzdHJ1Y3Qga3N0YXQgKnN0YXQsCisgICAgIHUzMiByZXF1ZXN0 X21hc2ssIHVuc2lnbmVkIGludCBxdWVyeV9mbGFncykKKysjZW5kaWYKKyB7CisgCXN0cnVjdCBp bm9kZSAqaXAgPSBwYXRoLT5kZW50cnktPmRfaW5vZGU7CisgCXpmc3Zmc190ICp6ZnN2ZnMgPSBJ VE9aU0IoaXApOworQEAgLTUwNiw3ICs1NDMsMTEgQEAgenBsX3NoYXJlc19nZXRhdHRyX2ltcGwo Y29uc3Qgc3RydWN0IHBhdGggKnBhdGgsIHN0cnVjdCBrc3RhdCAqc3RhdCwKKyAJWlBMX0VOVEVS KHpmc3Zmcyk7CisgCisgCWlmICh6ZnN2ZnMtPnpfc2hhcmVzX2RpciA9PSAwKSB7CisrI2lmIGRl ZmluZWQoSEFWRV9HRU5FUklDX0ZJTExBVFRSX1VTRVJOUykgJiYgZGVmaW5lZChIQVZFX1VTRVJO U19JT1BTX0dFVEFUVFIpCisrCQlnZW5lcmljX2ZpbGxhdHRyKHVzZXJfbnMsIHBhdGgtPmRlbnRy eS0+ZF9pbm9kZSwgc3RhdCk7CisrI2Vsc2UKKyAJCWdlbmVyaWNfZmlsbGF0dHIocGF0aC0+ZGVu dHJ5LT5kX2lub2RlLCBzdGF0KTsKKysjZW5kaWYKKyAJCXN0YXQtPm5saW5rID0gc3RhdC0+c2l6 ZSA9IDI7CisgCQlzdGF0LT5hdGltZSA9IGN1cnJlbnRfdGltZShpcCk7CisgCQlaUExfRVhJVCh6 ZnN2ZnMpOworQEAgLTUxNSw3ICs1NTYsMTEgQEAgenBsX3NoYXJlc19nZXRhdHRyX2ltcGwoY29u c3Qgc3RydWN0IHBhdGggKnBhdGgsIHN0cnVjdCBrc3RhdCAqc3RhdCwKKyAKKyAJZXJyb3IgPSAt emZzX3pnZXQoemZzdmZzLCB6ZnN2ZnMtPnpfc2hhcmVzX2RpciwgJmR6cCk7CisgCWlmIChlcnJv ciA9PSAwKSB7CistCQllcnJvciA9IC16ZnNfZ2V0YXR0cl9mYXN0KFpUT0koZHpwKSwgc3RhdCk7 CisrI2lmIGRlZmluZWQoSEFWRV9HRU5FUklDX0ZJTExBVFRSX1VTRVJOUykgJiYgZGVmaW5lZChI QVZFX1VTRVJOU19JT1BTX0dFVEFUVFIpCisrCQllcnJvciA9IC16ZnNfZ2V0YXR0cl9mYXN0KHVz ZXJfbnMsIFpUT0koZHpwKSwgc3RhdCk7CisrI2Vsc2UKKysJCWVycm9yID0gLXpmc19nZXRhdHRy X2Zhc3Qoa2NyZWQtPnVzZXJfbnMsIFpUT0koZHpwKSwgc3RhdCk7CisrI2VuZGlmCisgCQlpcHV0 KFpUT0koZHpwKSk7CisgCX0KKyAKK2RpZmYgLS1naXQgbW9kdWxlL29zL2xpbnV4L3pmcy96cGxf ZmlsZS5jIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2ZpbGUuYworaW5kZXggODA3NjJmOTY2OWIu LjA4YmY5N2ZmMzM4IDEwMDY0NAorLS0tIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2ZpbGUuYwor KysrIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2ZpbGUuYworQEAgLTg2OSw3ICs4NjksNyBAQCBf X3pwbF9pb2N0bF9zZXRmbGFncyhzdHJ1Y3QgaW5vZGUgKmlwLCB1aW50MzJfdCBpb2N0bF9mbGFn cywgeHZhdHRyX3QgKnh2YSkKKyAJICAgICFjYXBhYmxlKENBUF9MSU5VWF9JTU1VVEFCTEUpKQor IAkJcmV0dXJuICgtRUFDQ0VTKTsKKyAKKy0JaWYgKCFpbm9kZV9vd25lcl9vcl9jYXBhYmxlKGlw KSkKKysJaWYgKCF6cGxfaW5vZGVfb3duZXJfb3JfY2FwYWJsZShrY3JlZC0+dXNlcl9ucywgaXAp KQorIAkJcmV0dXJuICgtRUFDQ0VTKTsKKyAKKyAJeHZhX2luaXQoeHZhKTsKK2RpZmYgLS1naXQg bW9kdWxlL29zL2xpbnV4L3pmcy96cGxfaW5vZGUuYyBtb2R1bGUvb3MvbGludXgvemZzL3pwbF9p bm9kZS5jCitpbmRleCBmMzM2ZmJiMTI3Mi4uMzY0YjlmYmVmMjQgMTAwNjQ0CistLS0gbW9kdWxl L29zL2xpbnV4L3pmcy96cGxfaW5vZGUuYworKysrIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX2lu b2RlLmMKK0BAIC0xMjgsNyArMTI4LDEyIEBAIHpwbF92YXBfaW5pdCh2YXR0cl90ICp2YXAsIHN0 cnVjdCBpbm9kZSAqZGlyLCB1bW9kZV90IG1vZGUsIGNyZWRfdCAqY3IpCisgfQorIAorIHN0YXRp YyBpbnQKKysjaWZkZWYgSEFWRV9JT1BTX0NSRUFURV9VU0VSTlMKKyt6cGxfY3JlYXRlKHN0cnVj dCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucywgc3RydWN0IGlub2RlICpkaXIsCisrICAgIHN0cnVj dCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlLCBib29sIGZsYWcpCisrI2Vsc2UKKyB6cGxf Y3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3Qg bW9kZSwgYm9vbCBmbGFnKQorKyNlbmRpZgorIHsKKyAJY3JlZF90ICpjciA9IENSRUQoKTsKKyAJ em5vZGVfdCAqenA7CitAQCAtMTYzLDcgKzE2OCwxMiBAQCB6cGxfY3JlYXRlKHN0cnVjdCBpbm9k ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSwgYm9vbCBmbGFnKQor IH0KKyAKKyBzdGF0aWMgaW50CisrI2lmZGVmIEhBVkVfSU9QU19NS05PRF9VU0VSTlMKKyt6cGxf bWtub2Qoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25zLCBzdHJ1Y3QgaW5vZGUgKmRpciwK KysgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUsCisrI2Vsc2UKKyB6cGxf bWtub2Qoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBt b2RlLAorKyNlbmRpZgorICAgICBkZXZfdCByZGV2KQorIHsKKyAJY3JlZF90ICpjciA9IENSRUQo KTsKK0BAIC0yNzgsNyArMjg4LDEyIEBAIHpwbF91bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSkKKyB9CisgCisgc3RhdGljIGludAorKyNpZmRlZiBIQVZFX0lP UFNfTUtESVJfVVNFUk5TCisrenBsX21rZGlyKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9u cywgc3RydWN0IGlub2RlICpkaXIsCisrICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVf dCBtb2RlKQorKyNlbHNlCisgenBsX21rZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkKKysjZW5kaWYKKyB7CisgCWNyZWRfdCAqY3IgPSBD UkVEKCk7CisgCXZhdHRyX3QgKnZhcDsKK0BAIC0zMzgsOCArMzUzLDE0IEBAIHpwbF9ybWRpcihz dHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQorIH0KKyAKKyBzdGF0aWMg aW50CisrI2lmZGVmIEhBVkVfVVNFUk5TX0lPUFNfR0VUQVRUUgorK3pwbF9nZXRhdHRyX2ltcGwo c3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25zLAorKyAgICBjb25zdCBzdHJ1Y3QgcGF0aCAq cGF0aCwgc3RydWN0IGtzdGF0ICpzdGF0LCB1MzIgcmVxdWVzdF9tYXNrLAorKyAgICB1bnNpZ25l ZCBpbnQgcXVlcnlfZmxhZ3MpCisrI2Vsc2UKKyB6cGxfZ2V0YXR0cl9pbXBsKGNvbnN0IHN0cnVj dCBwYXRoICpwYXRoLCBzdHJ1Y3Qga3N0YXQgKnN0YXQsIHUzMiByZXF1ZXN0X21hc2ssCisgICAg IHVuc2lnbmVkIGludCBxdWVyeV9mbGFncykKKysjZW5kaWYKKyB7CisgCWludCBlcnJvcjsKKyAJ ZnN0cmFuc19jb29raWVfdCBjb29raWU7CitAQCAtMzUwLDcgKzM3MSwxMSBAQCB6cGxfZ2V0YXR0 cl9pbXBsKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCBzdHJ1Y3Qga3N0YXQgKnN0YXQsIHUzMiBy ZXF1ZXN0X21hc2ssCisgCSAqIFhYWCByZXF1ZXN0X21hc2sgYW5kIHF1ZXJ5X2ZsYWdzIGN1cnJl bnRseSBpZ25vcmVkLgorIAkgKi8KKyAKKy0JZXJyb3IgPSAtemZzX2dldGF0dHJfZmFzdChwYXRo LT5kZW50cnktPmRfaW5vZGUsIHN0YXQpOworKyNpZmRlZiBIQVZFX1VTRVJOU19JT1BTX0dFVEFU VFIKKysJZXJyb3IgPSAtemZzX2dldGF0dHJfZmFzdCh1c2VyX25zLCBwYXRoLT5kZW50cnktPmRf aW5vZGUsIHN0YXQpOworKyNlbHNlCisrCWVycm9yID0gLXpmc19nZXRhdHRyX2Zhc3Qoa2NyZWQt PnVzZXJfbnMsIHBhdGgtPmRlbnRyeS0+ZF9pbm9kZSwgc3RhdCk7CisrI2VuZGlmCisgCXNwbF9m c3RyYW5zX3VubWFyayhjb29raWUpOworIAlBU1NFUlQzUyhlcnJvciwgPD0sIDApOworIAorQEAg LTM1OSw3ICszODQsMTIgQEAgenBsX2dldGF0dHJfaW1wbChjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0 aCwgc3RydWN0IGtzdGF0ICpzdGF0LCB1MzIgcmVxdWVzdF9tYXNrLAorIFpQTF9HRVRBVFRSX1dS QVBQRVIoenBsX2dldGF0dHIpOworIAorIHN0YXRpYyBpbnQKKysjaWZkZWYgSEFWRV9TRVRBVFRS X1BSRVBBUkVfVVNFUk5TCisrenBsX3NldGF0dHIoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2Vy X25zLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisrICAgIHN0cnVjdCBpYXR0ciAqaWEpCisrI2Vs c2UKKyB6cGxfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqaWEp CisrI2VuZGlmCisgeworIAlzdHJ1Y3QgaW5vZGUgKmlwID0gZGVudHJ5LT5kX2lub2RlOworIAlj cmVkX3QgKmNyID0gQ1JFRCgpOworQEAgLTM2Nyw3ICszOTcsNyBAQCB6cGxfc2V0YXR0cihzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqaWEpCisgCWludCBlcnJvcjsKKyAJZnN0 cmFuc19jb29raWVfdCBjb29raWU7CisgCistCWVycm9yID0gc2V0YXR0cl9wcmVwYXJlKGRlbnRy eSwgaWEpOworKwllcnJvciA9IHpwbF9zZXRhdHRyX3ByZXBhcmUoa2NyZWQtPnVzZXJfbnMsIGRl bnRyeSwgaWEpOworIAlpZiAoZXJyb3IpCisgCQlyZXR1cm4gKGVycm9yKTsKKyAKK0BAIC0zOTks OCArNDI5LDE0IEBAIHpwbF9zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlh dHRyICppYSkKKyB9CisgCisgc3RhdGljIGludAorKyNpZmRlZiBIQVZFX0lPUFNfUkVOQU1FX1VT RVJOUworK3pwbF9yZW5hbWUyKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdXNlcl9ucywgc3RydWN0 IGlub2RlICpzZGlwLAorKyAgICBzdHJ1Y3QgZGVudHJ5ICpzZGVudHJ5LCBzdHJ1Y3QgaW5vZGUg KnRkaXAsIHN0cnVjdCBkZW50cnkgKnRkZW50cnksCisrICAgIHVuc2lnbmVkIGludCBmbGFncykK KysjZWxzZQorIHpwbF9yZW5hbWUyKHN0cnVjdCBpbm9kZSAqc2RpcCwgc3RydWN0IGRlbnRyeSAq c2RlbnRyeSwKKyAgICAgc3RydWN0IGlub2RlICp0ZGlwLCBzdHJ1Y3QgZGVudHJ5ICp0ZGVudHJ5 LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCisrI2VuZGlmCisgeworIAljcmVkX3QgKmNyID0gQ1JFRCgp OworIAlpbnQgZXJyb3I7CitAQCAtNDIxLDcgKzQ1Nyw3IEBAIHpwbF9yZW5hbWUyKHN0cnVjdCBp bm9kZSAqc2RpcCwgc3RydWN0IGRlbnRyeSAqc2RlbnRyeSwKKyAJcmV0dXJuIChlcnJvcik7Cisg fQorIAorLSNpZm5kZWYgSEFWRV9SRU5BTUVfV0FOVFNfRkxBR1MKKysjaWYgIWRlZmluZWQoSEFW RV9SRU5BTUVfV0FOVFNfRkxBR1MpICYmICFkZWZpbmVkKEhBVkVfSU9QU19SRU5BTUVfVVNFUk5T KQorIHN0YXRpYyBpbnQKKyB6cGxfcmVuYW1lKHN0cnVjdCBpbm9kZSAqc2RpcCwgc3RydWN0IGRl bnRyeSAqc2RlbnRyeSwKKyAgICAgc3RydWN0IGlub2RlICp0ZGlwLCBzdHJ1Y3QgZGVudHJ5ICp0 ZGVudHJ5KQorQEAgLTQzMSw3ICs0NjcsMTIgQEAgenBsX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKnNk aXAsIHN0cnVjdCBkZW50cnkgKnNkZW50cnksCisgI2VuZGlmCisgCisgc3RhdGljIGludAorKyNp ZmRlZiBIQVZFX0lPUFNfU1lNTElOS19VU0VSTlMKKyt6cGxfc3ltbGluayhzdHJ1Y3QgdXNlcl9u YW1lc3BhY2UgKnVzZXJfbnMsIHN0cnVjdCBpbm9kZSAqZGlyLAorKyAgICBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCisrI2Vsc2UKKyB6cGxfc3ltbGluayhzdHJ1Y3Qg aW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQorKyNl bmRpZgorIHsKKyAJY3JlZF90ICpjciA9IENSRUQoKTsKKyAJdmF0dHJfdCAqdmFwOworQEAgLTY3 Nyw3ICs3MTgsNyBAQCBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyB6cGxfZGlyX2lub2Rl X29wZXJhdGlvbnMgPSB7CisgCS5ta2RpcgkJPSB6cGxfbWtkaXIsCisgCS5ybWRpcgkJPSB6cGxf cm1kaXIsCisgCS5ta25vZAkJPSB6cGxfbWtub2QsCistI2lmZGVmIEhBVkVfUkVOQU1FX1dBTlRT X0ZMQUdTCisrI2lmIGRlZmluZWQoSEFWRV9SRU5BTUVfV0FOVFNfRkxBR1MpIHx8IGRlZmluZWQo SEFWRV9JT1BTX1JFTkFNRV9VU0VSTlMpCisgCS5yZW5hbWUJCT0genBsX3JlbmFtZTIsCisgI2Vs c2UKKyAJLnJlbmFtZQkJPSB6cGxfcmVuYW1lLAorZGlmZiAtLWdpdCBtb2R1bGUvb3MvbGludXgv emZzL3pwbF94YXR0ci5jIG1vZHVsZS9vcy9saW51eC96ZnMvenBsX3hhdHRyLmMKK2luZGV4IDFl YzNkYWUyYmI4Li41ZTM1ZjkwZGY4NSAxMDA2NDQKKy0tLSBtb2R1bGUvb3MvbGludXgvemZzL3pw bF94YXR0ci5jCisrKysgbW9kdWxlL29zL2xpbnV4L3pmcy96cGxfeGF0dHIuYworQEAgLTEyMzMs NyArMTIzMyw3IEBAIF9fenBsX3hhdHRyX2FjbF9zZXRfYWNjZXNzKHN0cnVjdCBpbm9kZSAqaXAs IGNvbnN0IGNoYXIgKm5hbWUsCisgCWlmIChJVE9aU0IoaXApLT56X2FjbF90eXBlICE9IFpGU19B Q0xUWVBFX1BPU0lYKQorIAkJcmV0dXJuICgtRU9QTk9UU1VQUCk7CisgCistCWlmICghaW5vZGVf b3duZXJfb3JfY2FwYWJsZShpcCkpCisrCWlmICghenBsX2lub2RlX293bmVyX29yX2NhcGFibGUo a2NyZWQtPnVzZXJfbnMsIGlwKSkKKyAJCXJldHVybiAoLUVQRVJNKTsKKyAKKyAJaWYgKHZhbHVl KSB7CitAQCAtMTI3Myw3ICsxMjczLDcgQEAgX196cGxfeGF0dHJfYWNsX3NldF9kZWZhdWx0KHN0 cnVjdCBpbm9kZSAqaXAsIGNvbnN0IGNoYXIgKm5hbWUsCisgCWlmIChJVE9aU0IoaXApLT56X2Fj bF90eXBlICE9IFpGU19BQ0xUWVBFX1BPU0lYKQorIAkJcmV0dXJuICgtRU9QTk9UU1VQUCk7Cisg CistCWlmICghaW5vZGVfb3duZXJfb3JfY2FwYWJsZShpcCkpCisrCWlmICghenBsX2lub2RlX293 bmVyX29yX2NhcGFibGUoa2NyZWQtPnVzZXJfbnMsIGlwKSkKKyAJCXJldHVybiAoLUVQRVJNKTsK KyAKKyAJaWYgKHZhbHVlKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3pmcy9wYXRjaGVzL2xpbnV4 NS4xMi0wMS5wYXRjaCBiL3NyY3BrZ3MvemZzL3BhdGNoZXMvbGludXg1LjEyLTAxLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTVlZWRmNGY4YzMxCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy96ZnMvcGF0Y2hlcy9saW51eDUuMTItMDEucGF0Y2gKQEAg LTAsMCArMSw5MSBAQAorRnJvbSA4MTIyNzQ2Y2M1Mjc0MWUyZDAxMGFhMGFkOGUwZjE1YWIyNGJi ZjI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQ29sZW1hbiBLYW5lIDxja2FuZUBj b2xlbWFua2FuZS5vcmc+CitEYXRlOiBTYXQsIDIwIE1hciAyMDIxIDAxOjMzOjQyIC0wNDAwCitT dWJqZWN0OiBbUEFUQ0hdIExpbnV4IDUuMTIgdXBkYXRlOiBiaW9fbWF4X3NlZ3MoKSByZXBsYWNl cyBCSU9fTUFYX1BBR0VTCisKK1RoZSBCSU9fTUFYX1BBR0VTIG1hY3JvIGlzIGJlaW5nIHJldGly ZWQgaW4gZmF2b3Igb2YgYSBiaW9fbWF4X3NlZ3MoKQorZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRz IHRoZSB0eXBpY2FsIE1JTih4LHkpIGxvZ2ljIHVzZWQgdGhyb3VnaG91dCB0aGUKK2tlcm5lbCBm b3IgYm91bmRpbmcgdGhlIGFsbG9jYXRpb24sIGFuZCBhbHNvIHRoZSBuZXcgaW1wbGVtZW50YXRp b24gaXMKK2ludGVuZGVkIHRvIGJlIHNpZ25lZC1zYWZlICh3aGljaCB0aGUgZm9ybWVyIHdhcyBu b3QpLgorCitSZXZpZXdlZC1ieTogVG9ueSBIdXR0ZXIgPGh1dHRlcjJAbGxubC5nb3Y+CitSZXZp ZXdlZC1ieTogQnJpYW4gQmVobGVuZG9yZiA8YmVobGVuZG9yZjFAbGxubC5nb3Y+CitTaWduZWQt b2ZmLWJ5OiBDb2xlbWFuIEthbmUgPGNrYW5lQGNvbGVtYW5rYW5lLm9yZz4KK0Nsb3NlcyAjMTE3 NjUKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGZmZDY5NzhlZjU5Y2ZlMjc3M2U5ODRiZjAz ZGUyZjBiOTNiMDNmNWMpCitTaWduZWQtb2ZmLWJ5OiBKb25hdGhvbiBGZXJueWhvdWdoIDxqb25h dGhvbkBtMnguZGV2PgorLS0tCisgY29uZmlnL2tlcm5lbC1iaW9fbWF4X3NlZ3MubTQgICB8IDIz ICsrKysrKysrKysrKysrKysrKysrKysrCisgY29uZmlnL2tlcm5lbC5tNCAgICAgICAgICAgICAg ICB8ICAyICsrCisgbW9kdWxlL29zL2xpbnV4L3pmcy92ZGV2X2Rpc2suYyB8ICA1ICsrKysrCisg MyBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGNv bmZpZy9rZXJuZWwtYmlvX21heF9zZWdzLm00CisKK2RpZmYgLS1naXQgY29uZmlnL2tlcm5lbC1i aW9fbWF4X3NlZ3MubTQgY29uZmlnL2tlcm5lbC1iaW9fbWF4X3NlZ3MubTQKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uYTkwZDc1NDU1YzEKKy0tLSAvZGV2L251bGwK KysrKyBjb25maWcva2VybmVsLWJpb19tYXhfc2Vncy5tNAorQEAgLTAsMCArMSwyMyBAQAorK2Ru bCAjCisrZG5sICMgNS4xMiBBUEkgY2hhbmdlIHJlbW92ZXMgQklPX01BWF9QQUdFUyBpbiBmYXZv ciBvZiBiaW9fbWF4X3NlZ3MoKQorK2RubCAjIHdoaWNoIHdpbGwgaGFuZGxlIHRoZSBsb2dpYyBv ZiBzZXR0aW5nIHRoZSB1cHBlci1ib3VuZCB0byBhCisrZG5sICMgQklPX01BWF9QQUdFUywgaW50 ZXJuYWxseS4KKytkbmwgIworK0FDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1NSQ19CSU9fTUFYX1NF R1NdLCBbCisrCVpGU19MSU5VWF9URVNUX1NSQyhbYmlvX21heF9zZWdzXSwgWworKwkJI2luY2x1 ZGUgPGxpbnV4L2Jpby5oPgorKwldLFsKKysJCWJpb19tYXhfc2VncygxKTsKKysJXSkKKytdKQor KworK0FDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX0JJT19NQVhfU0VHU10sIFsKKysJQUNfTVNHX0NI RUNLSU5HKFt3aGV0aGVyIGJpb19tYXhfc2VncygpIGV4aXN0c10pCisrCVpGU19MSU5VWF9URVNU X1JFU1VMVChbYmlvX21heF9zZWdzXSwgWworKwkJQUNfTVNHX1JFU1VMVCh5ZXMpCisrCisrCQlB Q19ERUZJTkUoW0hBVkVfQklPX01BWF9TRUdTXSwgMSwgW2Jpb19tYXhfc2VncygpIGlzIGltcGxl bWVudGVkXSkKKysJXSxbCisrCQlBQ19NU0dfUkVTVUxUKG5vKQorKwldKQorK10pCitkaWZmIC0t Z2l0IGNvbmZpZy9rZXJuZWwubTQgY29uZmlnL2tlcm5lbC5tNAoraW5kZXggNTFjN2ZiOTI2ZWMu LmI4ZDUzNDkwYTRhIDEwMDY0NAorLS0tIGNvbmZpZy9rZXJuZWwubTQKKysrKyBjb25maWcva2Vy bmVsLm00CitAQCAtMTI3LDYgKzEyNyw3IEBAIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1RFU1Rf U1JDXSwgWworIAlaRlNfQUNfS0VSTkVMX1NSQ19HRU5FUklDX0ZJTExBVFRSX1VTRVJOUworIAla RlNfQUNfS0VSTkVMX1NSQ19NS05PRAorIAlaRlNfQUNfS0VSTkVMX1NSQ19TWU1MSU5LCisrCVpG U19BQ19LRVJORUxfU1JDX0JJT19NQVhfU0VHUworIAorIAlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBh dmFpbGFibGUga2VybmVsIGludGVyZmFjZXNdKQorIAlaRlNfTElOVVhfVEVTVF9DT01QSUxFX0FM TChba2FiaV0pCitAQCAtMjI3LDYgKzIyOCw3IEBAIEFDX0RFRlVOKFtaRlNfQUNfS0VSTkVMX1RF U1RfUkVTVUxUXSwgWworIAlaRlNfQUNfS0VSTkVMX0dFTkVSSUNfRklMTEFUVFJfVVNFUk5TCisg CVpGU19BQ19LRVJORUxfTUtOT0QKKyAJWkZTX0FDX0tFUk5FTF9TWU1MSU5LCisrCVpGU19BQ19L RVJORUxfQklPX01BWF9TRUdTCisgXSkKKyAKKyBkbmwgIworZGlmZiAtLWdpdCBtb2R1bGUvb3Mv bGludXgvemZzL3ZkZXZfZGlzay5jIG1vZHVsZS9vcy9saW51eC96ZnMvdmRldl9kaXNrLmMKK2lu ZGV4IDA4YzMzMzEzNDA3Li5hYWFmNDEwNTk3OSAxMDA2NDQKKy0tLSBtb2R1bGUvb3MvbGludXgv emZzL3ZkZXZfZGlzay5jCisrKysgbW9kdWxlL29zL2xpbnV4L3pmcy92ZGV2X2Rpc2suYworQEAg LTU5Myw5ICs1OTMsMTQgQEAgX192ZGV2X2Rpc2tfcGh5c2lvKHN0cnVjdCBibG9ja19kZXZpY2Ug KmJkZXYsIHppb190ICp6aW8sCisgCQl9CisgCisgCQkvKiBiaW9fYWxsb2MoKSB3aXRoIF9fR0ZQ X1dBSVQgbmV2ZXIgcmV0dXJucyBOVUxMICovCisrI2lmZGVmIEhBVkVfQklPX01BWF9TRUdTCisr CQlkci0+ZHJfYmlvW2ldID0gYmlvX2FsbG9jKEdGUF9OT0lPLCBiaW9fbWF4X3NlZ3MoCisrCQkg ICAgYWJkX25yX3BhZ2VzX29mZih6aW8tPmlvX2FiZCwgYmlvX3NpemUsIGFiZF9vZmZzZXQpKSk7 CisrI2Vsc2UKKyAJCWRyLT5kcl9iaW9baV0gPSBiaW9fYWxsb2MoR0ZQX05PSU8sCisgCQkgICAg TUlOKGFiZF9ucl9wYWdlc19vZmYoemlvLT5pb19hYmQsIGJpb19zaXplLCBhYmRfb2Zmc2V0KSwK KyAJCSAgICBCSU9fTUFYX1BBR0VTKSk7CisrI2VuZGlmCisgCQlpZiAodW5saWtlbHkoZHItPmRy X2Jpb1tpXSA9PSBOVUxMKSkgeworIAkJCXZkZXZfZGlza19kaW9fZnJlZShkcik7CisgCQkJcmV0 dXJuIChTRVRfRVJST1IoRU5PTUVNKSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3pmcy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvemZzL3RlbXBsYXRlCmluZGV4IDA5Njk5YzIwZGJmYy4uYTk0ZjVhMTU0MWNl IDEwMDY0NAotLS0gYS9zcmNwa2dzL3pmcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3pmcy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3pmcycKIHBrZ25hbWU9 emZzCiB2ZXJzaW9uPTIuMC40Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1n bnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWNvbmZpZz11c2VyIC0td2l0aC1t b3VudGhlbHBlcmRpcj0vdXNyL2JpbgogIC0td2l0aC11ZGV2ZGlyPS91c3IvbGliL3VkZXYgLS13 aXRoLXVkZXZydWxlZGlyPS91c3IvbGliL3VkZXYvcnVsZXMuZApkaWZmIC0tZ2l0IGEvc3JjcGtn cy96ZnMvdXBkYXRlIGIvc3JjcGtncy96ZnMvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNWM5OWViODQ0YWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy96ZnMvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK2lnbm9yZT0iMi4xLjk5Igo= --===============8997302811262485850==--