From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Include gcc -g3 .debug_macro implementation by Tom Tromey. Date: Thu, 23 Jul 2026 18:30:01 GMT Message-ID: <178483140132.1.5197023199838211637.rpms-gdb-9a9da3171ccc@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 9a9da3171ccc13955157d2c5d15fd43d766fd7b0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogOWE5ZGEzMTcxY2NjMTM5NTUxNTdkMmM1ZDE1ZmQ0M2Q3 NjZmZDdiMApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxMS0wNy0yOVQxODo1OTozNiswMjowMApTdGF0cyAgOiArOTQ1Ly0zIGlu IDIgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dk Yi9jLzlhOWRhMzE3MWNjYzEzOTU1MTU3ZDJjNWQxNWZkNDNkNzY2ZmQ3YjA/YnJhbmNoPWZpeC1k dXAtcGF0Y2gKCkxvZzoKSW5jbHVkZSBnY2MgLWczIC5kZWJ1Z19tYWNybyBpbXBsZW1lbnRhdGlv biBieSBUb20gVHJvbWV5LgoKLS0tCmRpZmYgLS1naXQgYS9nZGItdXBzdHJlYW0ucGF0Y2ggYi9n ZGItdXBzdHJlYW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjcz ZDRkMgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApAQCAtMCwwICsxLDkz OSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2JpbnV0aWxzLWN2cy8yMDExLTA3L21zZzAw MTE2Lmh0bWwKKworIyMjIHNyYy9pbmNsdWRlL0NoYW5nZUxvZwkyMDExLzA3LzIyIDE0OjM3OjUw CTEuNTQ2CisjIyMgc3JjL2luY2x1ZGUvQ2hhbmdlTG9nCTIwMTEvMDcvMjIgMjA6Mzc6NTAJMS41 NDcKKyMjIC0xLDUgKzEsOCBAQAorIDIwMTEtMDctMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkBy ZWRoYXQuY29tPgorIAorKwkqIGR3YXJmMi5oIChEV19BVF9HTlVfbWFjcm9zKTogTmV3LgorKwko ZW51bSBkd2FyZl9tYWNyb19yZWNvcmRfdHlwZSk6IE5ldyBlbnVtLiAgQWRkIERXX01BQ1JPX0dO VV8qLgorKworIAlQUiBjKysvNDk3NTYKKyAJKiBsaWJpYmVydHkuaCAoc3RhY2tfbGltaXRfaW5j cmVhc2UpOiBOZXcgcHJvdG90eXBlLgorIAorLS0tIHNyYy9pbmNsdWRlL2R3YXJmMi5oCTIwMTEv MDYvMjIgMTU6MDM6MTkJMS4yNgorKysrIHNyYy9pbmNsdWRlL2R3YXJmMi5oCTIwMTEvMDcvMjIg MjA6Mzc6NTAJMS4yNworQEAgLTM2Niw2ICszNjYsOCBAQAorICAgICBEV19BVF9HTlVfYWxsX3Rh aWxfY2FsbF9zaXRlcyA9IDB4MjExNiwKKyAgICAgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzID0g MHgyMTE3LAorICAgICBEV19BVF9HTlVfYWxsX3NvdXJjZV9jYWxsX3NpdGVzID0gMHgyMTE4LAor KyAgICAvKiBTZWN0aW9uIG9mZnNldCBpbnRvIC5kZWJ1Z19tYWNybyBzZWN0aW9uLiAgKi8KKysg ICAgRFdfQVRfR05VX21hY3JvcyA9IDB4MjExOSwKKyAgICAgLyogVk1TIGV4dGVuc2lvbnMuICAq LworICAgICBEV19BVF9WTVNfcnRuYmVnX3BkX2FkZHJlc3MgPSAweDIyMDEsCisgICAgIC8qIEdO QVQgZXh0ZW5zaW9ucy4gICovCitAQCAtODc5LDYgKzg4MSwyMCBAQAorICAgICBEV19NQUNJTkZP X2VuZF9maWxlID0gNCwKKyAgICAgRFdfTUFDSU5GT192ZW5kb3JfZXh0ID0gMjU1CisgICB9Owor KworKy8qIE5hbWVzIGFuZCBjb2RlcyBmb3IgbmV3IHN0eWxlIG1hY3JvIGluZm9ybWF0aW9uLiAg Ki8KKytlbnVtIGR3YXJmX21hY3JvX3JlY29yZF90eXBlCisrICB7CisrICAgIERXX01BQ1JPX0dO VV9kZWZpbmUgPSAxLAorKyAgICBEV19NQUNST19HTlVfdW5kZWYgPSAyLAorKyAgICBEV19NQUNS T19HTlVfc3RhcnRfZmlsZSA9IDMsCisrICAgIERXX01BQ1JPX0dOVV9lbmRfZmlsZSA9IDQsCisr ICAgIERXX01BQ1JPX0dOVV9kZWZpbmVfaW5kaXJlY3QgPSA1LAorKyAgICBEV19NQUNST19HTlVf dW5kZWZfaW5kaXJlY3QgPSA2LAorKyAgICBEV19NQUNST19HTlVfdHJhbnNwYXJlbnRfaW5jbHVk ZSA9IDcsCisrICAgIERXX01BQ1JPX0dOVV9sb191c2VyID0gMHhlMCwKKysgICAgRFdfTUFDUk9f R05VX2hpX3VzZXIgPSAweGZmCisrICB9OworIAwKKyAvKiBAQEAgRm9yIHVzZSB3aXRoIEdOVSBm cmFtZSB1bndpbmQgaW5mb3JtYXRpb24uICAqLworIAorCisKKworRllJOiBpbXBsZW1lbnQgbmV3 IERXQVJGIG1hY3JvIHByb3Bvc2FsCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAxMS0wNy9tc2cwMDczMi5odG1sCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2 cy8yMDExLTA3L21zZzAwMjEyLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTEvMDcv MjYgMTU6MjQ6MDEJMS4xMzIyNAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTEvMDcvMjYgMTc6 MDQ6MjEJMS4xMzIyNQorIyMgLTEsMyArMSwyMCBAQAorKzIwMTEtMDctMjYgIFRvbSBUcm9tZXkg IDx0cm9tZXlAcmVkaGF0LmNvbT4KKysKKysJKiBzeW1maWxlLmggKHN0cnVjdCBkd2FyZjJfZGVi dWdfc2VjdGlvbnMpIDxtYWNybz46IE5ldyBmaWVsZC4KKysJKiBkd2FyZjJyZWFkLmMgKHJlYWRf aW5kaXJlY3Rfc3RyaW5nX2F0X29mZnNldCk6IE5ldyBmdW5jdGlvbi4KKysJKHJlYWRfaW5kaXJl Y3Rfc3RyaW5nKTogVXNlIGl0LgorKwkoZHdhcmZfZGVjb2RlX21hY3JvX2J5dGVzKTogTmV3IGZ1 bmN0aW9uLCB0YWtlbiBmcm9tCisrCWR3YXJmX2RlY29kZV9tYWNyb3MuICBIYW5kbGUgRFdfTUFD Uk9fR05VXyouCisrCShkd2FyZl9kZWNvZGVfbWFjcm9zKTogVXNlIGl0LiAgaGFuZGxlIERXX01B Q1JPX0dOVV8qLgorKwkoZHdhcmZfcGFyc2VfbWFjcm9faGVhZGVyLCBza2lwX2Zvcm1fYnl0ZXMs IHNraXBfdW5rbm93bl9vcGNvZGUpOgorKwlOZXcgZnVuY3Rpb25zLgorKwkoc3RydWN0IGR3YXJm Ml9wZXJfb2JqZmlsZSkgPG1hY3JvPjogTmV3IGZpZWxkLgorKwkoZHdhcmYyX2VsZl9uYW1lcyk6 IEFkZCAuZGVidWdfbWFjcm8uCisrCShkd2FyZjJfbWFjcm9zX3Rvb19sb25nX2NvbXBsYWludCk6 IEFkZCAnc2VjdGlvbicgYXJndW1lbnQuCisrCShkd2FyZjJfbG9jYXRlX3NlY3Rpb25zKTogSGFu ZGxlIG5ldyBzZWN0aW9uLgorKwkocmVhZF9maWxlX3Njb3BlKTogSGFuZGxlIERXX0FUX0dOVV9t YWNyb3MuCisrCShkd2FyZjJfcGVyX29iamZpbGVfZnJlZSk6IFVubWFwIHRoZSAuZGVidWdfbWFj cm8gc2VjdGlvbi4KKysKKyAyMDExLTA3LTI2ICBQYXVsIFBsdXpobmlrb3YgIDxwcGx1emhuaWtv dkBnb29nbGUuY29tPgorIAorIAkqIE5FV1M6IE1lbnRpb24gZGNhY2hlIGNvbmZpZ3VyYXRpb24u CistLS0gc3JjL2dkYi9kd2FyZjJyZWFkLmMJMjAxMS8wNy8yMCAxNToxMzo0OQkxLjU1NAorKysr IHNyYy9nZGIvZHdhcmYycmVhZC5jCTIwMTEvMDcvMjYgMTc6MDQ6MjMJMS41NTUKK0BAIC0xODcs NiArMTg3LDcgQEAKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvIGxpbmU7CisgICBzdHJ1 Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBsb2M7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5m byBtYWNpbmZvOworKyAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gbWFjcm87CisgICBzdHJ1 Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBzdHI7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5m byByYW5nZXM7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBmcmFtZTsKK0BAIC0yNjQs NiArMjY1LDcgQEAKKyAgIHsgIi5kZWJ1Z19saW5lIiwgIi56ZGVidWdfbGluZSIgfSwKKyAgIHsg Ii5kZWJ1Z19sb2MiLCAiLnpkZWJ1Z19sb2MiIH0sCisgICB7ICIuZGVidWdfbWFjaW5mbyIsICIu emRlYnVnX21hY2luZm8iIH0sCisrICB7ICIuZGVidWdfbWFjcm8iLCAiLnpkZWJ1Z19tYWNybyIg fSwKKyAgIHsgIi5kZWJ1Z19zdHIiLCAiLnpkZWJ1Z19zdHIiIH0sCisgICB7ICIuZGVidWdfcmFu Z2VzIiwgIi56ZGVidWdfcmFuZ2VzIiB9LAorICAgeyAiLmRlYnVnX3R5cGVzIiwgIi56ZGVidWdf dHlwZXMiIH0sCitAQCAtODU4LDEwICs4NjAsMTEgQEAKKyB9CisgCisgc3RhdGljIHZvaWQKKy1k d2FyZjJfbWFjcm9zX3Rvb19sb25nX2NvbXBsYWludCAodm9pZCkKKytkd2FyZjJfbWFjcm9zX3Rv b19sb25nX2NvbXBsYWludCAoc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKnNlY3Rpb24pCisg eworICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorLQkgICAgIF8oIm1hY3JvIGlu Zm8gcnVucyBvZmYgZW5kIG9mIGAuZGVidWdfbWFjaW5mbycgc2VjdGlvbiIpKTsKKysJICAgICBf KCJtYWNybyBpbmZvIHJ1bnMgb2ZmIGVuZCBvZiBgJXMnIHNlY3Rpb24iKSwKKysJICAgICBzZWN0 aW9uLT5hc2VjdGlvbi0+bmFtZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTIzMyw3ICsx MjM2LDkgQEAKKyAJCQkJIHN0cnVjdCBkd2FyZjJfY3UgKik7CisgCisgc3RhdGljIHZvaWQgZHdh cmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICosIHVuc2lnbmVkIGludCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICosIGJmZCAqLCBzdHJ1Y3QgZHdh cmYyX2N1ICopOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKiwgYmZk ICosIHN0cnVjdCBkd2FyZjJfY3UgKiwKKysJCQkJIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZv ICosCisrCQkJCSBpbnQpOworIAorIHN0YXRpYyBpbnQgYXR0cl9mb3JtX2lzX2Jsb2NrIChzdHJ1 Y3QgYXR0cmlidXRlICopOworIAorQEAgLTE0MzgsNiArMTQ0MywxMSBAQAorICAgICAgIGR3YXJm Ml9wZXJfb2JqZmlsZS0+bWFjaW5mby5hc2VjdGlvbiA9IHNlY3RwOworICAgICAgIGR3YXJmMl9w ZXJfb2JqZmlsZS0+bWFjaW5mby5zaXplID0gYmZkX2dldF9zZWN0aW9uX3NpemUgKHNlY3RwKTsK KyAgICAgfQorKyAgZWxzZSBpZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5t YWNybykpCisrICAgIHsKKysgICAgICBkd2FyZjJfcGVyX29iamZpbGUtPm1hY3JvLmFzZWN0aW9u ID0gc2VjdHA7CisrICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNyby5zaXplID0gYmZkX2dl dF9zZWN0aW9uX3NpemUgKHNlY3RwKTsKKysgICAgfQorICAgZWxzZSBpZiAoc2VjdGlvbl9pc19w IChzZWN0cC0+bmFtZSwgJm5hbWVzLT5zdHIpKQorICAgICB7CisgICAgICAgZHdhcmYyX3Blcl9v YmpmaWxlLT5zdHIuYXNlY3Rpb24gPSBzZWN0cDsKK0BAIC01NjQxLDEzICs1NjUxLDI4IEBACisg ICAgICByZWZlcnMgdG8gaW5mb3JtYXRpb24gaW4gdGhlIGxpbmUgbnVtYmVyIGluZm8gc3RhdGVt ZW50IHByb2dyYW0KKyAgICAgIGhlYWRlciwgc28gd2UgY2FuIG9ubHkgcmVhZCBpdCBpZiB3ZSd2 ZSByZWFkIHRoZSBoZWFkZXIKKyAgICAgIHN1Y2Nlc3NmdWxseS4gICovCistICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfbWFjcm9faW5mbywgY3UpOworKyAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX0dOVV9tYWNyb3MsIGN1KTsKKyAgIGlmIChhdHRyICYmIGN1LT5saW5l X2hlYWRlcikKKyAgICAgeworLSAgICAgIHVuc2lnbmVkIGludCBtYWNyb19vZmZzZXQgPSBEV19V TlNORCAoYXR0cik7CisrICAgICAgaWYgKGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX21hY3JvX2lu Zm8sIGN1KSkKKysJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgXygiQ1Ug cmVmZXJzIHRvIGJvdGggRFdfQVRfR05VX21hY3JvcyBhbmQgRFdfQVRfbWFjcm9faW5mbyIpKTsK KysKKysgICAgICBkd2FyZl9kZWNvZGVfbWFjcm9zIChjdS0+bGluZV9oZWFkZXIsIERXX1VOU05E IChhdHRyKSwKKysJCQkgICBjb21wX2RpciwgYWJmZCwgY3UsCisrCQkJICAgJmR3YXJmMl9wZXJf b2JqZmlsZS0+bWFjcm8sIDEpOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBhdHRy ID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbWFjcm9faW5mbywgY3UpOworKyAgICAgIGlmIChh dHRyICYmIGN1LT5saW5lX2hlYWRlcikKKysJeworKwkgIHVuc2lnbmVkIGludCBtYWNyb19vZmZz ZXQgPSBEV19VTlNORCAoYXR0cik7CisgCistICAgICAgZHdhcmZfZGVjb2RlX21hY3JvcyAoY3Ut PmxpbmVfaGVhZGVyLCBtYWNyb19vZmZzZXQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29tcF9kaXIsIGFiZmQsIGN1KTsKKysJICBkd2FyZl9kZWNvZGVfbWFjcm9zIChjdS0+bGluZV9o ZWFkZXIsIG1hY3JvX29mZnNldCwKKysJCQkgICAgICAgY29tcF9kaXIsIGFiZmQsIGN1LAorKwkJ CSAgICAgICAmZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLCAwKTsKKysJfQorICAgICB9Cisg ICBkb19jbGVhbnVwcyAoYmFja190byk7CisgfQorQEAgLTEwMjYyLDMyICsxMDI4NywzMiBAQAor IH0KKyAKKyBzdGF0aWMgY2hhciAqCistcmVhZF9pbmRpcmVjdF9zdHJpbmcgKGJmZCAqYWJmZCwg Z2RiX2J5dGUgKmJ1ZiwKKy0JCSAgICAgIGNvbnN0IHN0cnVjdCBjb21wX3VuaXRfaGVhZCAqY3Vf aGVhZGVyLAorLQkJICAgICAgdW5zaWduZWQgaW50ICpieXRlc19yZWFkX3B0cikKKytyZWFkX2lu ZGlyZWN0X3N0cmluZ19hdF9vZmZzZXQgKGJmZCAqYWJmZCwgTE9OR0VTVCBzdHJfb2Zmc2V0KQor IHsKKy0gIExPTkdFU1Qgc3RyX29mZnNldCA9IHJlYWRfb2Zmc2V0IChhYmZkLCBidWYsIGN1X2hl YWRlciwgYnl0ZXNfcmVhZF9wdHIpOworLQorICAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoZHdhcmYy X3Blcl9vYmpmaWxlLT5vYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxlLT5zdHIpOworICAgaWYg KGR3YXJmMl9wZXJfb2JqZmlsZS0+c3RyLmJ1ZmZlciA9PSBOVUxMKQorLSAgICB7CistICAgICAg ZXJyb3IgKF8oIkRXX0ZPUk1fc3RycCB1c2VkIHdpdGhvdXQgLmRlYnVnX3N0ciBzZWN0aW9uIFtp biBtb2R1bGUgJXNdIiksCistCQkgICAgICBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7CistICAg ICAgcmV0dXJuIE5VTEw7CistICAgIH0KKysgICAgZXJyb3IgKF8oIkRXX0ZPUk1fc3RycCB1c2Vk IHdpdGhvdXQgLmRlYnVnX3N0ciBzZWN0aW9uIFtpbiBtb2R1bGUgJXNdIiksCisrCSAgIGJmZF9n ZXRfZmlsZW5hbWUgKGFiZmQpKTsKKyAgIGlmIChzdHJfb2Zmc2V0ID49IGR3YXJmMl9wZXJfb2Jq ZmlsZS0+c3RyLnNpemUpCistICAgIHsKKy0gICAgICBlcnJvciAoXygiRFdfRk9STV9zdHJwIHBv aW50aW5nIG91dHNpZGUgb2YgIgorLQkgICAgICAgIi5kZWJ1Z19zdHIgc2VjdGlvbiBbaW4gbW9k dWxlICVzXSIpLAorLQkgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsKKy0gICAgICByZXR1 cm4gTlVMTDsKKy0gICAgfQorKyAgICBlcnJvciAoXygiRFdfRk9STV9zdHJwIHBvaW50aW5nIG91 dHNpZGUgb2YgIgorKwkgICAgICIuZGVidWdfc3RyIHNlY3Rpb24gW2luIG1vZHVsZSAlc10iKSwK KysJICAgYmZkX2dldF9maWxlbmFtZSAoYWJmZCkpOworICAgZ2RiX2Fzc2VydCAoSE9TVF9DSEFS X0JJVCA9PSA4KTsKKyAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPnN0ci5idWZmZXJbc3RyX29m ZnNldF0gPT0gJ1wwJykKKyAgICAgcmV0dXJuIE5VTEw7CisgICByZXR1cm4gKGNoYXIgKikgKGR3 YXJmMl9wZXJfb2JqZmlsZS0+c3RyLmJ1ZmZlciArIHN0cl9vZmZzZXQpOworIH0KKyAKKytzdGF0 aWMgY2hhciAqCisrcmVhZF9pbmRpcmVjdF9zdHJpbmcgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1 ZiwKKysJCSAgICAgIGNvbnN0IHN0cnVjdCBjb21wX3VuaXRfaGVhZCAqY3VfaGVhZGVyLAorKwkJ ICAgICAgdW5zaWduZWQgaW50ICpieXRlc19yZWFkX3B0cikKKyt7CisrICBMT05HRVNUIHN0cl9v ZmZzZXQgPSByZWFkX29mZnNldCAoYWJmZCwgYnVmLCBjdV9oZWFkZXIsIGJ5dGVzX3JlYWRfcHRy KTsKKysKKysgIHJldHVybiByZWFkX2luZGlyZWN0X3N0cmluZ19hdF9vZmZzZXQgKGFiZmQsIHN0 cl9vZmZzZXQpOworK30KKysKKyBzdGF0aWMgdW5zaWduZWQgbG9uZworIHJlYWRfdW5zaWduZWRf bGViMTI4IChiZmQgKmFiZmQsIGdkYl9ieXRlICpidWYsIHVuc2lnbmVkIGludCAqYnl0ZXNfcmVh ZF9wdHIpCisgeworQEAgLTE0NjY5LDExNyArMTQ2OTQsMjA1IEBACisgICAgIGR3YXJmMl9tYWNy b19tYWxmb3JtZWRfZGVmaW5pdGlvbl9jb21wbGFpbnQgKGJvZHkpOworIH0KKyAKKysvKiBTa2lw IHNvbWUgYnl0ZXMgZnJvbSBCWVRFUyBhY2NvcmRpbmcgdG8gdGhlIGZvcm0gZ2l2ZW4gaW4gRk9S TS4KKysgICBSZXR1cm5zIHRoZSBuZXcgcG9pbnRlci4gICovCisgCistc3RhdGljIHZvaWQKKy1k d2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQg b2Zmc2V0LAorLSAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNvbXBfZGlyLCBiZmQgKmFiZmQs CistICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisrc3RhdGljIGdk Yl9ieXRlICoKKytza2lwX2Zvcm1fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ5dGVzLAor KwkJIGVudW0gZHdhcmZfZm9ybSBmb3JtLAorKwkJIHVuc2lnbmVkIGludCBvZmZzZXRfc2l6ZSwK KysJCSBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqc2VjdGlvbikKKyB7CistICBnZGJfYnl0 ZSAqbWFjX3B0ciwgKm1hY19lbmQ7CistICBzdHJ1Y3QgbWFjcm9fc291cmNlX2ZpbGUgKmN1cnJl bnRfZmlsZSA9IDA7CistICBlbnVtIGR3YXJmX21hY2luZm9fcmVjb3JkX3R5cGUgbWFjaW5mb190 eXBlOworLSAgaW50IGF0X2NvbW1hbmRsaW5lOworKyAgdW5zaWduZWQgaW50IGJ5dGVzX3JlYWQ7 CisgCistICBkd2FyZjJfcmVhZF9zZWN0aW9uIChkd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGUs CistCQkgICAgICAgJmR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5mbyk7CistICBpZiAoZHdhcmYy X3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZlciA9PSBOVUxMKQorKyAgc3dpdGNoIChmb3JtKQor ICAgICB7CistICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJtaXNzaW5n IC5kZWJ1Z19tYWNpbmZvIHNlY3Rpb24iKSk7CistICAgICAgcmV0dXJuOworKyAgICBjYXNlIERX X0ZPUk1fZGF0YTE6CisrICAgIGNhc2UgRFdfRk9STV9mbGFnOgorKyAgICAgICsrYnl0ZXM7Cisr ICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgRFdfRk9STV9kYXRhMjoKKysgICAgICBieXRlcyAr PSAyOworKyAgICAgIGJyZWFrOworKworKyAgICBjYXNlIERXX0ZPUk1fZGF0YTQ6CisrICAgICAg Ynl0ZXMgKz0gNDsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBEV19GT1JNX2RhdGE4Ogor KyAgICAgIGJ5dGVzICs9IDg7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgRFdfRk9STV9z dHJpbmc6CisrICAgICAgcmVhZF9kaXJlY3Rfc3RyaW5nIChhYmZkLCBieXRlcywgJmJ5dGVzX3Jl YWQpOworKyAgICAgIGJ5dGVzICs9IGJ5dGVzX3JlYWQ7CisrICAgICAgYnJlYWs7CisrCisrICAg IGNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorKyAgICBjYXNlIERXX0ZPUk1fc3RycDoKKysgICAg ICBieXRlcyArPSBvZmZzZXRfc2l6ZTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBEV19G T1JNX2Jsb2NrOgorKyAgICAgIGJ5dGVzICs9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBi eXRlcywgJmJ5dGVzX3JlYWQpOworKyAgICAgIGJ5dGVzICs9IGJ5dGVzX3JlYWQ7CisrICAgICAg YnJlYWs7CisrCisrICAgIGNhc2UgRFdfRk9STV9ibG9jazE6CisrICAgICAgYnl0ZXMgKz0gMSAr IHJlYWRfMV9ieXRlIChhYmZkLCBieXRlcyk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgRFdf Rk9STV9ibG9jazI6CisrICAgICAgYnl0ZXMgKz0gMiArIHJlYWRfMl9ieXRlcyAoYWJmZCwgYnl0 ZXMpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIERXX0ZPUk1fYmxvY2s0OgorKyAgICAgIGJ5 dGVzICs9IDQgKyByZWFkXzRfYnl0ZXMgKGFiZmQsIGJ5dGVzKTsKKysgICAgICBicmVhazsKKysK KysgICAgY2FzZSBEV19GT1JNX3NkYXRhOgorKyAgICBjYXNlIERXX0ZPUk1fdWRhdGE6CisrICAg ICAgYnl0ZXMgPSBza2lwX2xlYjEyOCAoYWJmZCwgYnl0ZXMpOworKyAgICAgIGJyZWFrOworKwor KyAgICBkZWZhdWx0OgorKyAgICAgIHsKKysgICAgICBjb21wbGFpbjoKKysJY29tcGxhaW50ICgm c3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgXygiaW52YWxpZCBmb3JtIDB4JXggaW4gYCVzJyIp LAorKwkJICAgZm9ybSwKKysJCSAgIHNlY3Rpb24tPmFzZWN0aW9uLT5uYW1lKTsKKysJcmV0dXJu IE5VTEw7CisrICAgICAgfQorICAgICB9CisgCistICAvKiBGaXJzdCBwYXNzOiBGaW5kIHRoZSBu YW1lIG9mIHRoZSBiYXNlIGZpbGVuYW1lLgorLSAgICAgVGhpcyBmaWxlbmFtZSBpcyBuZWVkZWQg aW4gb3JkZXIgdG8gcHJvY2VzcyBhbGwgbWFjcm9zIHdob3NlIGRlZmluaXRpb24KKy0gICAgIChv ciB1bmRlZmluaXRpb24pIGNvbWVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4gIFRoZXNlIG1hY3Jv cyBhcmUgZGVmaW5lZAorLSAgICAgYmVmb3JlIHRoZSBmaXJzdCBEV19NQUNJTkZPX3N0YXJ0X2Zp bGUgZW50cnksIGFuZCB5ZXQgc3RpbGwgbmVlZCB0byBiZQorLSAgICAgYXNzb2NpYXRlZCB0byB0 aGUgYmFzZSBmaWxlLgorKyAgcmV0dXJuIGJ5dGVzOworK30KKyAKKy0gICAgIFRvIGRldGVybWlu ZSB0aGUgYmFzZSBmaWxlIG5hbWUsIHdlIHNjYW4gdGhlIG1hY3JvIGRlZmluaXRpb25zIHVudGls IHdlCistICAgICByZWFjaCB0aGUgZmlyc3QgRFdfTUFDSU5GT19zdGFydF9maWxlIGVudHJ5LiAg V2UgdGhlbiBpbml0aWFsaXplCistICAgICBDVVJSRU5UX0ZJTEUgYWNjb3JkaW5nbHkgc28gdGhh dCBhbnkgbWFjcm8gZGVmaW5pdGlvbiBmb3VuZCBiZWZvcmUgdGhlCistICAgICBmaXJzdCBEV19N QUNJTkZPX3N0YXJ0X2ZpbGUgY2FuIHN0aWxsIGJlIGFzc29jaWF0ZWQgdG8gdGhlIGJhc2UgZmls ZS4gICovCisrLyogQSBoZWxwZXIgZm9yIGR3YXJmX2RlY29kZV9tYWNyb3MgdGhhdCBoYW5kbGVz IHNraXBwaW5nIGFuIHVua25vd24KKysgICBvcGNvZGUuICBSZXR1cm5zIGFuIHVwZGF0ZWQgcG9p bnRlciB0byB0aGUgbWFjcm8gZGF0YSBidWZmZXI7IG9yLAorKyAgIG9uIGVycm9yLCBpc3N1ZXMg YSBjb21wbGFpbnQgYW5kIHJldHVybnMgTlVMTC4gICovCisgCistICBtYWNfcHRyID0gZHdhcmYy X3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZlciArIG9mZnNldDsKKy0gIG1hY19lbmQgPSBkd2Fy ZjJfcGVyX29iamZpbGUtPm1hY2luZm8uYnVmZmVyCistICAgICsgZHdhcmYyX3Blcl9vYmpmaWxl LT5tYWNpbmZvLnNpemU7Cisrc3RhdGljIGdkYl9ieXRlICoKKytza2lwX3Vua25vd25fb3Bjb2Rl ICh1bnNpZ25lZCBpbnQgb3Bjb2RlLAorKwkJICAgICBnZGJfYnl0ZSAqKm9wY29kZV9kZWZpbml0 aW9ucywKKysJCSAgICAgZ2RiX2J5dGUgKm1hY19wdHIsCisrCQkgICAgIGJmZCAqYWJmZCwKKysJ CSAgICAgdW5zaWduZWQgaW50IG9mZnNldF9zaXplLAorKwkJICAgICBzdHJ1Y3QgZHdhcmYyX3Nl Y3Rpb25faW5mbyAqc2VjdGlvbikKKyt7CisrICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZCwgaTsK KysgIHVuc2lnbmVkIGxvbmcgYXJnOworKyAgZ2RiX2J5dGUgKmRlZm47CisgCistICBkbworKyAg aWYgKG9wY29kZV9kZWZpbml0aW9uc1tvcGNvZGVdID09IE5VTEwpCisgICAgIHsKKy0gICAgICAv KiBEbyB3ZSBhdCBsZWFzdCBoYXZlIHJvb20gZm9yIGEgbWFjaW5mbyB0eXBlIGJ5dGU/ICAqLwor LSAgICAgIGlmIChtYWNfcHRyID49IG1hY19lbmQpCistICAgICAgICB7CistCSAgLyogQ29tcGxh aW50IGlzIHByaW50ZWQgZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBhcyBHREIgd2lsbCBwcm9iYWJs eQorLQkgICAgIHN0b3AgdGhlIGZpcnN0IHBhc3MgZWFybGllciB1cG9uIGZpbmRpbmcKKy0JICAg ICBEV19NQUNJTkZPX3N0YXJ0X2ZpbGUuICAqLworLQkgIGJyZWFrOworLSAgICAgICAgfQorKyAg ICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysJCSBfKCJ1bnJlY29nbml6ZWQg RFdfTUFDRklOTyBvcGNvZGUgMHgleCIpLAorKwkJIG9wY29kZSk7CisrICAgICAgcmV0dXJuIE5V TEw7CisrICAgIH0KKyAKKy0gICAgICBtYWNpbmZvX3R5cGUgPSByZWFkXzFfYnl0ZSAoYWJmZCwg bWFjX3B0cik7CistICAgICAgbWFjX3B0cisrOworKyAgZGVmbiA9IG9wY29kZV9kZWZpbml0aW9u c1tvcGNvZGVdOworKyAgYXJnID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIGRlZm4sICZi eXRlc19yZWFkKTsKKysgIGRlZm4gKz0gYnl0ZXNfcmVhZDsKKyAKKy0gICAgICBzd2l0Y2ggKG1h Y2luZm9fdHlwZSkKKy0gICAgICAgIHsKKy0gICAgICAgICAgLyogQSB6ZXJvIG1hY2luZm8gdHlw ZSBpbmRpY2F0ZXMgdGhlIGVuZCBvZiB0aGUgbWFjcm8KKy0gICAgICAgICAgICAgaW5mb3JtYXRp b24uICAqLworLSAgICAgICAgY2FzZSAwOgorLQkgIGJyZWFrOworKyAgZm9yIChpID0gMDsgaSA8 IGFyZzsgKytpKQorKyAgICB7CisrICAgICAgbWFjX3B0ciA9IHNraXBfZm9ybV9ieXRlcyAoYWJm ZCwgbWFjX3B0ciwgZGVmbltpXSwgb2Zmc2V0X3NpemUsIHNlY3Rpb24pOworKyAgICAgIGlmICht YWNfcHRyID09IE5VTEwpCisrCXsKKysJICAvKiBza2lwX2Zvcm1fYnl0ZXMgYWxyZWFkeSBpc3N1 ZWQgdGhlIGNvbXBsYWludC4gICovCisrCSAgcmV0dXJuIE5VTEw7CisrCX0KKysgICAgfQorIAor LQljYXNlIERXX01BQ0lORk9fZGVmaW5lOgorLQljYXNlIERXX01BQ0lORk9fdW5kZWY6CistCSAg LyogT25seSBza2lwIHRoZSBkYXRhIGJ5IE1BQ19QVFIuICAqLworLQkgIHsKKy0JICAgIHVuc2ln bmVkIGludCBieXRlc19yZWFkOworKyAgcmV0dXJuIG1hY19wdHI7CisrfQorIAorLQkgICAgcmVh ZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0JICAgIG1h Y19wdHIgKz0gYnl0ZXNfcmVhZDsKKy0JICAgIHJlYWRfZGlyZWN0X3N0cmluZyAoYWJmZCwgbWFj X3B0ciwgJmJ5dGVzX3JlYWQpOworLQkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworLQkgIH0K Ky0JICBicmVhazsKKysvKiBBIGhlbHBlciBmdW5jdGlvbiB3aGljaCBwYXJzZXMgdGhlIGhlYWRl ciBvZiBhIG1hY3JvIHNlY3Rpb24uCisrICAgSWYgdGhlIG1hY3JvIHNlY3Rpb24gaXMgdGhlIGV4 dGVuZGVkIChmb3Igbm93IGNhbGxlZCAiR05VIikgdHlwZSwKKysgICB0aGVuIHRoaXMgdXBkYXRl cyAqT0ZGU0VUX1NJWkUuICBSZXR1cm5zIGEgcG9pbnRlciB0byBqdXN0IGFmdGVyCisrICAgdGhl IGhlYWRlciwgb3IgaXNzdWVzIGEgY29tcGxhaW50IGFuZCByZXR1cm5zIE5VTEwgb24gZXJyb3Iu ICAqLworIAorLQljYXNlIERXX01BQ0lORk9fc3RhcnRfZmlsZToKKy0JICB7CistCSAgICB1bnNp Z25lZCBpbnQgYnl0ZXNfcmVhZDsKKy0JICAgIGludCBsaW5lLCBmaWxlOworK3N0YXRpYyBnZGJf Ynl0ZSAqCisrZHdhcmZfcGFyc2VfbWFjcm9faGVhZGVyIChnZGJfYnl0ZSAqKm9wY29kZV9kZWZp bml0aW9ucywKKysJCQkgIGJmZCAqYWJmZCwKKysJCQkgIGdkYl9ieXRlICptYWNfcHRyLAorKwkJ CSAgdW5zaWduZWQgaW50ICpvZmZzZXRfc2l6ZSwKKysJCQkgIGludCBzZWN0aW9uX2lzX2dudSkK Kyt7CisrICBtZW1zZXQgKG9wY29kZV9kZWZpbml0aW9ucywgMCwgMjU2ICogc2l6ZW9mIChnZGJf Ynl0ZSAqKSk7CisgCistCSAgICBsaW5lID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1h Y19wdHIsICZieXRlc19yZWFkKTsKKy0JICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKy0JICAg IGZpbGUgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVzX3JlYWQp OworLQkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworKyAgaWYgKHNlY3Rpb25faXNfZ251KQor KyAgICB7CisrICAgICAgdW5zaWduZWQgaW50IHZlcnNpb24sIGZsYWdzOworIAorLQkgICAgY3Vy cmVudF9maWxlID0gbWFjcm9fc3RhcnRfZmlsZSAoZmlsZSwgbGluZSwgY3VycmVudF9maWxlLAor LQkJCQkJICAgICBjb21wX2RpciwgbGgsIGN1LT5vYmpmaWxlKTsKKy0JICB9CistCSAgYnJlYWs7 CisrICAgICAgdmVyc2lvbiA9IHJlYWRfMl9ieXRlcyAoYWJmZCwgbWFjX3B0cik7CisrICAgICAg aWYgKHZlcnNpb24gIT0gNCkKKysJeworKwkgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50 cywKKysJCSAgICAgXygidW5yZWNvZ25pemVkIHZlcnNpb24gYCVkJyBpbiAuZGVidWdfbWFjcm8g c2VjdGlvbiIpLAorKwkJICAgICB2ZXJzaW9uKTsKKysJICByZXR1cm4gTlVMTDsKKysJfQorKyAg ICAgIG1hY19wdHIgKz0gMjsKKyAKKy0JY2FzZSBEV19NQUNJTkZPX2VuZF9maWxlOgorLQkgIC8q IE5vIGRhdGEgdG8gc2tpcCBieSBNQUNfUFRSLiAgKi8KKy0JICBicmVhazsKKysgICAgICBmbGFn cyA9IHJlYWRfMV9ieXRlIChhYmZkLCBtYWNfcHRyKTsKKysgICAgICArK21hY19wdHI7CisrICAg ICAgKm9mZnNldF9zaXplID0gKGZsYWdzICYgMSkgPyA4IDogNDsKKyAKKy0JY2FzZSBEV19NQUNJ TkZPX3ZlbmRvcl9leHQ6CistCSAgLyogT25seSBza2lwIHRoZSBkYXRhIGJ5IE1BQ19QVFIuICAq LworLQkgIHsKKy0JICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOworKyAgICAgIGlmICgoZmxh Z3MgJiAyKSAhPSAwKQorKwkvKiBXZSBkb24ndCBuZWVkIHRoZSBsaW5lIHRhYmxlIG9mZnNldC4g ICovCisrCW1hY19wdHIgKz0gKm9mZnNldF9zaXplOworIAorLQkgICAgcmVhZF91bnNpZ25lZF9s ZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0JICAgIG1hY19wdHIgKz0gYnl0 ZXNfcmVhZDsKKy0JICAgIHJlYWRfZGlyZWN0X3N0cmluZyAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVz X3JlYWQpOworLQkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworLQkgIH0KKy0JICBicmVhazsK KysgICAgICAvKiBWZW5kb3Igb3Bjb2RlIGRlc2NyaXB0aW9ucy4gICovCisrICAgICAgaWYgKChm bGFncyAmIDQpICE9IDApCisrCXsKKysJICB1bnNpZ25lZCBpbnQgaSwgY291bnQ7CisgCistCWRl ZmF1bHQ6CistCSAgYnJlYWs7CisrCSAgY291bnQgPSByZWFkXzFfYnl0ZSAoYWJmZCwgbWFjX3B0 cik7CisrCSAgKyttYWNfcHRyOworKwkgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQorKwkg ICAgeworKwkgICAgICB1bnNpZ25lZCBpbnQgb3Bjb2RlLCBieXRlc19yZWFkOworKwkgICAgICB1 bnNpZ25lZCBsb25nIGFyZzsKKysKKysJICAgICAgb3Bjb2RlID0gcmVhZF8xX2J5dGUgKGFiZmQs IG1hY19wdHIpOworKwkgICAgICArK21hY19wdHI7CisrCSAgICAgIG9wY29kZV9kZWZpbml0aW9u c1tvcGNvZGVdID0gbWFjX3B0cjsKKysJICAgICAgYXJnID0gcmVhZF91bnNpZ25lZF9sZWIxMjgg KGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgICAgbWFjX3B0ciArPSBieXRlc19y ZWFkOworKwkgICAgICBtYWNfcHRyICs9IGFyZzsKKysJICAgIH0KKyAJfQorLSAgICB9IHdoaWxl IChtYWNpbmZvX3R5cGUgIT0gMCAmJiBjdXJyZW50X2ZpbGUgPT0gTlVMTCk7CisrICAgIH0KKyAK Ky0gIC8qIFNlY29uZCBwYXNzOiBQcm9jZXNzIGFsbCBlbnRyaWVzLgorKyAgcmV0dXJuIG1hY19w dHI7CisrfQorIAorLSAgICAgVXNlIHRoZSBBVF9DT01NQU5EX0xJTkUgZmxhZyB0byBkZXRlcm1p bmUgd2hldGhlciB3ZSBhcmUgc3RpbGwgcHJvY2Vzc2luZworLSAgICAgY29tbWFuZC1saW5lIG1h Y3JvIGRlZmluaXRpb25zL3VuZGVmaW5pdGlvbnMuICBUaGlzIGZsYWcgaXMgdW5zZXQgd2hlbiB3 ZQorLSAgICAgcmVhY2ggdGhlIGZpcnN0IERXX01BQ0lORk9fc3RhcnRfZmlsZSBlbnRyeS4gICov CisrLyogQSBoZWxwZXIgZm9yIGR3YXJmX2RlY29kZV9tYWNyb3MgdGhhdCBoYW5kbGVzIHRoZSBH TlUgZXh0ZW5zaW9ucywKKysgICBpbmNsdWRpbmcgRFdfR05VX01BQ0lORk9fdHJhbnNwYXJlbnRf aW5jbHVkZS4gICovCisrCisrc3RhdGljIHZvaWQKKytkd2FyZl9kZWNvZGVfbWFjcm9fYnl0ZXMg KGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5kLAorKwkJCSAg c3RydWN0IG1hY3JvX3NvdXJjZV9maWxlICpjdXJyZW50X2ZpbGUsCisrCQkJICBzdHJ1Y3QgbGlu ZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwKKysJCQkgIHN0cnVjdCBkd2FyZjJfc2VjdGlv bl9pbmZvICpzZWN0aW9uLAorKwkJCSAgaW50IHNlY3Rpb25faXNfZ251LAorKwkJCSAgdW5zaWdu ZWQgaW50IG9mZnNldF9zaXplLAorKwkJCSAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCisrewor KyAgZW51bSBkd2FyZl9tYWNyb19yZWNvcmRfdHlwZSBtYWNpbmZvX3R5cGU7CisrICBpbnQgYXRf Y29tbWFuZGxpbmU7CisrICBnZGJfYnl0ZSAqb3Bjb2RlX2RlZmluaXRpb25zWzI1Nl07CisgCist ICBtYWNfcHRyID0gZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZlciArIG9mZnNldDsK KysgIG1hY19wdHIgPSBkd2FyZl9wYXJzZV9tYWNyb19oZWFkZXIgKG9wY29kZV9kZWZpbml0aW9u cywgYWJmZCwgbWFjX3B0ciwKKysJCQkJICAgICAgJm9mZnNldF9zaXplLCBzZWN0aW9uX2lzX2du dSk7CisrICBpZiAobWFjX3B0ciA9PSBOVUxMKQorKyAgICB7CisrICAgICAgLyogV2UgYWxyZWFk eSBpc3N1ZWQgYSBjb21wbGFpbnQuICAqLworKyAgICAgIHJldHVybjsKKysgICAgfQorIAorICAg LyogRGV0ZXJtaW5lcyBpZiBHREIgaXMgc3RpbGwgYmVmb3JlIGZpcnN0IERXX01BQ0lORk9fc3Rh cnRfZmlsZS4gIElmIHRydWUKKyAgICAgIEdEQiBpcyBzdGlsbCByZWFkaW5nIHRoZSBkZWZpbml0 aW9ucyBmcm9tIGNvbW1hbmQgbGluZS4gIEZpcnN0CitAQCAtMTQ3OTUsMTMgKzE0OTA4LDE1IEBA CisgICAgICAgLyogRG8gd2UgYXQgbGVhc3QgaGF2ZSByb29tIGZvciBhIG1hY2luZm8gdHlwZSBi eXRlPyAgKi8KKyAgICAgICBpZiAobWFjX3B0ciA+PSBtYWNfZW5kKQorIAl7CistCSAgZHdhcmYy X21hY3Jvc190b29fbG9uZ19jb21wbGFpbnQgKCk7CisrCSAgZHdhcmYyX21hY3Jvc190b29fbG9u Z19jb21wbGFpbnQgKHNlY3Rpb24pOworIAkgIGJyZWFrOworIAl9CisgCisgICAgICAgbWFjaW5m b190eXBlID0gcmVhZF8xX2J5dGUgKGFiZmQsIG1hY19wdHIpOworICAgICAgIG1hY19wdHIrKzsK KyAKKysgICAgICAvKiBOb3RlIHRoYXQgd2UgcmVseSBvbiB0aGUgZmFjdCB0aGF0IHRoZSBjb3Jy ZXNwb25kaW5nIEdOVSBhbmQKKysJIERXQVJGIGNvbnN0YW50cyBhcmUgdGhlIHNhbWUuICAqLwor ICAgICAgIHN3aXRjaCAobWFjaW5mb190eXBlKQorIAl7CisgCSAgLyogQSB6ZXJvIG1hY2luZm8g dHlwZSBpbmRpY2F0ZXMgdGhlIGVuZCBvZiB0aGUgbWFjcm8KK0BAIC0xNDgwOSwyOSArMTQ5MjQs NDUgQEAKKyAJY2FzZSAwOgorIAkgIGJyZWFrOworIAorLSAgICAgICAgY2FzZSBEV19NQUNJTkZP X2RlZmluZToKKy0gICAgICAgIGNhc2UgRFdfTUFDSU5GT191bmRlZjoKKysgICAgICAgIGNhc2Ug RFdfTUFDUk9fR05VX2RlZmluZToKKysgICAgICAgIGNhc2UgRFdfTUFDUk9fR05VX3VuZGVmOgor KwljYXNlIERXX01BQ1JPX0dOVV9kZWZpbmVfaW5kaXJlY3Q6CisrCWNhc2UgRFdfTUFDUk9fR05V X3VuZGVmX2luZGlyZWN0OgorICAgICAgICAgICB7CisgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGJ5dGVzX3JlYWQ7CisgICAgICAgICAgICAgaW50IGxpbmU7CisgICAgICAgICAgICAgY2hhciAq Ym9keTsKKysJICAgIGludCBpc19kZWZpbmU7CisgCistICAgICAgICAgICAgbGluZSA9IHJlYWRf dW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CistICAgICAgICAg ICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworLSAgICAgICAgICAgIGJvZHkgPSByZWFkX2RpcmVj dF9zdHJpbmcgKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0gICAgICAgICAgICBtYWNf cHRyICs9IGJ5dGVzX3JlYWQ7CisrCSAgICBsaW5lID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFi ZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsK KysKKysJICAgIGlmIChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX2RlZmluZQorKwkJfHwg bWFjaW5mb190eXBlID09IERXX01BQ1JPX0dOVV91bmRlZikKKysJICAgICAgeworKwkJYm9keSA9 IHJlYWRfZGlyZWN0X3N0cmluZyAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVzX3JlYWQpOworKwkJbWFj X3B0ciArPSBieXRlc19yZWFkOworKwkgICAgICB9CisrCSAgICBlbHNlCisrCSAgICAgIHsKKysJ CUxPTkdFU1Qgc3RyX29mZnNldDsKKysKKysJCXN0cl9vZmZzZXQgPSByZWFkX29mZnNldF8xIChh YmZkLCBtYWNfcHRyLCBvZmZzZXRfc2l6ZSk7CisrCQltYWNfcHRyICs9IG9mZnNldF9zaXplOwor IAorKwkJYm9keSA9IHJlYWRfaW5kaXJlY3Rfc3RyaW5nX2F0X29mZnNldCAoYWJmZCwgc3RyX29m ZnNldCk7CisrCSAgICAgIH0KKysKKysJICAgIGlzX2RlZmluZSA9IChtYWNpbmZvX3R5cGUgPT0g RFdfTUFDUk9fR05VX2RlZmluZQorKwkJCSB8fCBtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05V X2RlZmluZV9pbmRpcmVjdCk7CisgICAgICAgICAgICAgaWYgKCEgY3VycmVudF9maWxlKQorIAkg ICAgICB7CisgCQkvKiBEV0FSRiB2aW9sYXRpb24gYXMgbm8gbWFpbiBzb3VyY2UgaXMgcHJlc2Vu dC4gICovCisgCQljb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisgCQkJICAgXygiZGVi dWcgaW5mbyB3aXRoIG5vIG1haW4gc291cmNlIGdpdmVzIG1hY3JvICVzICIKKyAJCQkgICAgICJv biBsaW5lICVkOiAlcyIpLAorLQkJCSAgIG1hY2luZm9fdHlwZSA9PSBEV19NQUNJTkZPX2RlZmlu ZSA/CistCQkJICAgICBfKCJkZWZpbml0aW9uIikgOgorLQkJCSAgICAgICBtYWNpbmZvX3R5cGUg PT0gRFdfTUFDSU5GT191bmRlZiA/CistCQkJCSBfKCJ1bmRlZmluaXRpb24iKSA6CistCQkJCSBf KCJzb21ldGhpbmctb3Itb3RoZXIiKSwgbGluZSwgYm9keSk7CisrCQkJICAgaXNfZGVmaW5lID8g XygiZGVmaW5pdGlvbiIpIDogXygidW5kZWZpbml0aW9uIiksCisrCQkJICAgbGluZSwgYm9keSk7 CisgCQlicmVhazsKKyAJICAgICAgfQorIAkgICAgaWYgKChsaW5lID09IDAgJiYgIWF0X2NvbW1h bmRsaW5lKQorQEAgLTE0ODM5LDIxICsxNDk3MCwyMSBAQAorIAkgICAgICBjb21wbGFpbnQgKCZz eW1maWxlX2NvbXBsYWludHMsCisgCQkJIF8oImRlYnVnIGluZm8gZ2l2ZXMgJXMgbWFjcm8gJXMg d2l0aCAlcyBsaW5lICVkOiAlcyIpLAorIAkJCSBhdF9jb21tYW5kbGluZSA/IF8oImNvbW1hbmQt bGluZSIpIDogXygiaW4tZmlsZSIpLAorLQkJCSBtYWNpbmZvX3R5cGUgPT0gRFdfTUFDSU5GT19k ZWZpbmUgPworLQkJCSAgIF8oImRlZmluaXRpb24iKSA6CistCQkJICAgICBtYWNpbmZvX3R5cGUg PT0gRFdfTUFDSU5GT191bmRlZiA/CistCQkJICAgICAgIF8oInVuZGVmaW5pdGlvbiIpIDoKKy0J CQkgICAgICAgXygic29tZXRoaW5nLW9yLW90aGVyIiksCisrCQkJIGlzX2RlZmluZSA/IF8oImRl ZmluaXRpb24iKSA6IF8oInVuZGVmaW5pdGlvbiIpLAorIAkJCSBsaW5lID09IDAgPyBfKCJ6ZXJv IikgOiBfKCJub24temVybyIpLCBsaW5lLCBib2R5KTsKKyAKKy0JICAgIGlmIChtYWNpbmZvX3R5 cGUgPT0gRFdfTUFDSU5GT19kZWZpbmUpCisrCSAgICBpZiAoaXNfZGVmaW5lKQorIAkgICAgICBw YXJzZV9tYWNyb19kZWZpbml0aW9uIChjdXJyZW50X2ZpbGUsIGxpbmUsIGJvZHkpOworLQkgICAg ZWxzZSBpZiAobWFjaW5mb190eXBlID09IERXX01BQ0lORk9fdW5kZWYpCistCSAgICAgIG1hY3Jv X3VuZGVmIChjdXJyZW50X2ZpbGUsIGxpbmUsIGJvZHkpOworKwkgICAgZWxzZQorKwkgICAgICB7 CisrCQlnZGJfYXNzZXJ0IChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX3VuZGVmCisrCQkJ ICAgIHx8IG1hY2luZm9fdHlwZSA9PSBEV19NQUNST19HTlVfdW5kZWZfaW5kaXJlY3QpOworKwkJ bWFjcm9fdW5kZWYgKGN1cnJlbnRfZmlsZSwgbGluZSwgYm9keSk7CisrCSAgICAgIH0KKyAgICAg ICAgICAgfQorICAgICAgICAgICBicmVhazsKKyAKKy0gICAgICAgIGNhc2UgRFdfTUFDSU5GT19z dGFydF9maWxlOgorKyAgICAgICAgY2FzZSBEV19NQUNST19HTlVfc3RhcnRfZmlsZToKKyAgICAg ICAgICAgeworICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOworICAgICAgICAg ICAgIGludCBsaW5lLCBmaWxlOworQEAgLTE0ODczLDE3ICsxNTAwNCwxOCBAQAorIAorIAkgICAg aWYgKGF0X2NvbW1hbmRsaW5lKQorIAkgICAgICB7CistCQkvKiBUaGlzIERXX01BQ0lORk9fc3Rh cnRfZmlsZSB3YXMgZXhlY3V0ZWQgaW4gdGhlIHBhc3Mgb25lLiAgKi8KKysJCS8qIFRoaXMgRFdf TUFDUk9fR05VX3N0YXJ0X2ZpbGUgd2FzIGV4ZWN1dGVkIGluIHRoZQorKwkJICAgcGFzcyBvbmUu ICAqLworIAkJYXRfY29tbWFuZGxpbmUgPSAwOworIAkgICAgICB9CisgCSAgICBlbHNlCisgCSAg ICAgIGN1cnJlbnRfZmlsZSA9IG1hY3JvX3N0YXJ0X2ZpbGUgKGZpbGUsIGxpbmUsCisgCQkJCQkg ICAgICAgY3VycmVudF9maWxlLCBjb21wX2RpciwKKy0JCQkJCSAgICAgICBsaCwgY3UtPm9iamZp bGUpOworKwkJCQkJICAgICAgIGxoLCBvYmpmaWxlKTsKKyAgICAgICAgICAgfQorICAgICAgICAg ICBicmVhazsKKyAKKy0gICAgICAgIGNhc2UgRFdfTUFDSU5GT19lbmRfZmlsZToKKysgICAgICAg IGNhc2UgRFdfTUFDUk9fR05VX2VuZF9maWxlOgorICAgICAgICAgICBpZiAoISBjdXJyZW50X2Zp bGUpCisgCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisgCQkgICAgICAgXygi bWFjcm8gZGVidWcgaW5mbyBoYXMgYW4gdW5tYXRjaGVkICIKK0BAIC0xNDg5Myw3ICsxNTAyNSw3 IEBACisgICAgICAgICAgICAgICBjdXJyZW50X2ZpbGUgPSBjdXJyZW50X2ZpbGUtPmluY2x1ZGVk X2J5OworICAgICAgICAgICAgICAgaWYgKCEgY3VycmVudF9maWxlKQorICAgICAgICAgICAgICAg ICB7CistICAgICAgICAgICAgICAgICAgZW51bSBkd2FyZl9tYWNpbmZvX3JlY29yZF90eXBlIG5l eHRfdHlwZTsKKysgICAgICAgICAgICAgICAgICBlbnVtIGR3YXJmX21hY3JvX3JlY29yZF90eXBl IG5leHRfdHlwZTsKKyAKKyAgICAgICAgICAgICAgICAgICAvKiBHQ0MgY2lyY2EgTWFyY2ggMjAw MiBkb2Vzbid0IHByb2R1Y2UgdGhlIHplcm8KKyAgICAgICAgICAgICAgICAgICAgICB0eXBlIGJ5 dGUgbWFya2luZyB0aGUgZW5kIG9mIHRoZSBjb21waWxhdGlvbgorQEAgLTE0OTAzLDcgKzE1MDM1 LDcgQEAKKyAgICAgICAgICAgICAgICAgICAvKiBEbyB3ZSBhdCBsZWFzdCBoYXZlIHJvb20gZm9y IGEgbWFjaW5mbyB0eXBlIGJ5dGU/ICAqLworICAgICAgICAgICAgICAgICAgIGlmIChtYWNfcHRy ID49IG1hY19lbmQpCisgICAgICAgICAgICAgICAgICAgICB7CistCQkgICAgICBkd2FyZjJfbWFj cm9zX3Rvb19sb25nX2NvbXBsYWludCAoKTsKKysJCSAgICAgIGR3YXJmMl9tYWNyb3NfdG9vX2xv bmdfY29tcGxhaW50IChzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor ICAgICAgICAgICAgICAgICAgICAgfQorIAorQEAgLTE0OTIwLDIzICsxNTA1MiwxOTkgQEAKKyAg ICAgICAgICAgICB9CisgICAgICAgICAgIGJyZWFrOworIAorKwljYXNlIERXX01BQ1JPX0dOVV90 cmFuc3BhcmVudF9pbmNsdWRlOgorKwkgIHsKKysJICAgIExPTkdFU1Qgb2Zmc2V0OworKworKwkg ICAgb2Zmc2V0ID0gcmVhZF9vZmZzZXRfMSAoYWJmZCwgbWFjX3B0ciwgb2Zmc2V0X3NpemUpOwor KwkgICAgbWFjX3B0ciArPSBvZmZzZXRfc2l6ZTsKKysKKysJICAgIGR3YXJmX2RlY29kZV9tYWNy b19ieXRlcyAoYWJmZCwKKysJCQkJICAgICAgc2VjdGlvbi0+YnVmZmVyICsgb2Zmc2V0LAorKwkJ CQkgICAgICBtYWNfZW5kLCBjdXJyZW50X2ZpbGUsCisrCQkJCSAgICAgIGxoLCBjb21wX2RpciwK KysJCQkJICAgICAgc2VjdGlvbiwgc2VjdGlvbl9pc19nbnUsCisrCQkJCSAgICAgIG9mZnNldF9z aXplLCBvYmpmaWxlKTsKKysJICB9CisrCSAgYnJlYWs7CisrCisgICAgICAgICBjYXNlIERXX01B Q0lORk9fdmVuZG9yX2V4dDoKKy0gICAgICAgICAgeworLSAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBieXRlc19yZWFkOworLSAgICAgICAgICAgIGludCBjb25zdGFudDsKKysJICBpZiAoIXNlY3Rp b25faXNfZ251KQorKwkgICAgeworKwkgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKysJ ICAgICAgaW50IGNvbnN0YW50OworIAorLSAgICAgICAgICAgIGNvbnN0YW50ID0gcmVhZF91bnNp Z25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0gICAgICAgICAgICBt YWNfcHRyICs9IGJ5dGVzX3JlYWQ7CistICAgICAgICAgICAgcmVhZF9kaXJlY3Rfc3RyaW5nIChh YmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CistICAgICAgICAgICAgbWFjX3B0ciArPSBieXRl c19yZWFkOworKwkgICAgICBjb25zdGFudCA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBt YWNfcHRyLCAmYnl0ZXNfcmVhZCk7CisrCSAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKysJ ICAgICAgcmVhZF9kaXJlY3Rfc3RyaW5nIChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7Cisr CSAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKyAKKy0gICAgICAgICAgICAvKiBXZSBkb24n dCByZWNvZ25pemUgYW55IHZlbmRvciBleHRlbnNpb25zLiAgKi8KKy0gICAgICAgICAgfQorLSAg ICAgICAgICBicmVhazsKKysJICAgICAgLyogV2UgZG9uJ3QgcmVjb2duaXplIGFueSB2ZW5kb3Ig ZXh0ZW5zaW9ucy4gICovCisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwkgIC8qIEZBTExUSFJP VUdIICovCisrCisrCWRlZmF1bHQ6CisrCSAgbWFjX3B0ciA9IHNraXBfdW5rbm93bl9vcGNvZGUg KG1hY2luZm9fdHlwZSwgb3Bjb2RlX2RlZmluaXRpb25zLAorKwkJCQkJIG1hY19wdHIsIGFiZmQs IG9mZnNldF9zaXplLAorKwkJCQkJIHNlY3Rpb24pOworKwkgIGlmIChtYWNfcHRyID09IE5VTEwp CisrCSAgICByZXR1cm47CisrCSAgYnJlYWs7CisgICAgICAgICB9CisgICAgIH0gd2hpbGUgKG1h Y2luZm9fdHlwZSAhPSAwKTsKKyB9CisgCisrc3RhdGljIHZvaWQKKytkd2FyZl9kZWNvZGVfbWFj cm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorKyAgICAg ICAgICAgICAgICAgICAgIGNoYXIgKmNvbXBfZGlyLCBiZmQgKmFiZmQsCisrICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsCisrCQkgICAgIHN0cnVjdCBkd2FyZjJfc2Vj dGlvbl9pbmZvICpzZWN0aW9uLAorKwkJICAgICBpbnQgc2VjdGlvbl9pc19nbnUpCisreworKyAg Z2RiX2J5dGUgKm1hY19wdHIsICptYWNfZW5kOworKyAgc3RydWN0IG1hY3JvX3NvdXJjZV9maWxl ICpjdXJyZW50X2ZpbGUgPSAwOworKyAgZW51bSBkd2FyZl9tYWNyb19yZWNvcmRfdHlwZSBtYWNp bmZvX3R5cGU7CisrICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3NpemUgPSBjdS0+aGVhZGVyLm9mZnNl dF9zaXplOworKyAgZ2RiX2J5dGUgKm9wY29kZV9kZWZpbml0aW9uc1syNTZdOworKworKyAgZHdh cmYyX3JlYWRfc2VjdGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlLCBzZWN0aW9uKTsK KysgIGlmIChzZWN0aW9uLT5idWZmZXIgPT0gTlVMTCkKKysgICAgeworKyAgICAgIGNvbXBsYWlu dCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygibWlzc2luZyAlcyBzZWN0aW9uIiksCisrCQkgc2Vj dGlvbi0+YXNlY3Rpb24tPm5hbWUpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgLyog Rmlyc3QgcGFzczogRmluZCB0aGUgbmFtZSBvZiB0aGUgYmFzZSBmaWxlbmFtZS4KKysgICAgIFRo aXMgZmlsZW5hbWUgaXMgbmVlZGVkIGluIG9yZGVyIHRvIHByb2Nlc3MgYWxsIG1hY3JvcyB3aG9z ZSBkZWZpbml0aW9uCisrICAgICAob3IgdW5kZWZpbml0aW9uKSBjb21lcyBmcm9tIHRoZSBjb21t YW5kIGxpbmUuICBUaGVzZSBtYWNyb3MgYXJlIGRlZmluZWQKKysgICAgIGJlZm9yZSB0aGUgZmly c3QgRFdfTUFDSU5GT19zdGFydF9maWxlIGVudHJ5LCBhbmQgeWV0IHN0aWxsIG5lZWQgdG8gYmUK KysgICAgIGFzc29jaWF0ZWQgdG8gdGhlIGJhc2UgZmlsZS4KKysKKysgICAgIFRvIGRldGVybWlu ZSB0aGUgYmFzZSBmaWxlIG5hbWUsIHdlIHNjYW4gdGhlIG1hY3JvIGRlZmluaXRpb25zIHVudGls IHdlCisrICAgICByZWFjaCB0aGUgZmlyc3QgRFdfTUFDSU5GT19zdGFydF9maWxlIGVudHJ5LiAg V2UgdGhlbiBpbml0aWFsaXplCisrICAgICBDVVJSRU5UX0ZJTEUgYWNjb3JkaW5nbHkgc28gdGhh dCBhbnkgbWFjcm8gZGVmaW5pdGlvbiBmb3VuZCBiZWZvcmUgdGhlCisrICAgICBmaXJzdCBEV19N QUNJTkZPX3N0YXJ0X2ZpbGUgY2FuIHN0aWxsIGJlIGFzc29jaWF0ZWQgdG8gdGhlIGJhc2UgZmls ZS4gICovCisrCisrICBtYWNfcHRyID0gc2VjdGlvbi0+YnVmZmVyICsgb2Zmc2V0OworKyAgbWFj X2VuZCA9IHNlY3Rpb24tPmJ1ZmZlciArIHNlY3Rpb24tPnNpemU7CisrCisrICBtYWNfcHRyID0g ZHdhcmZfcGFyc2VfbWFjcm9faGVhZGVyIChvcGNvZGVfZGVmaW5pdGlvbnMsIGFiZmQsIG1hY19w dHIsCisrCQkJCSAgICAgICZvZmZzZXRfc2l6ZSwgc2VjdGlvbl9pc19nbnUpOworKyAgaWYgKG1h Y19wdHIgPT0gTlVMTCkKKysgICAgeworKyAgICAgIC8qIFdlIGFscmVhZHkgaXNzdWVkIGEgY29t cGxhaW50LiAgKi8KKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIGRvCisrICAgIHsKKysg ICAgICAvKiBEbyB3ZSBhdCBsZWFzdCBoYXZlIHJvb20gZm9yIGEgbWFjaW5mbyB0eXBlIGJ5dGU/ ICAqLworKyAgICAgIGlmIChtYWNfcHRyID49IG1hY19lbmQpCisrICAgICAgICB7CisrCSAgLyog Q29tcGxhaW50IGlzIHByaW50ZWQgZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBhcyBHREIgd2lsbCBw cm9iYWJseQorKwkgICAgIHN0b3AgdGhlIGZpcnN0IHBhc3MgZWFybGllciB1cG9uIGZpbmRpbmcK KysJICAgICBEV19NQUNJTkZPX3N0YXJ0X2ZpbGUuICAqLworKwkgIGJyZWFrOworKyAgICAgICAg fQorKworKyAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRfMV9ieXRlIChhYmZkLCBtYWNfcHRyKTsK KysgICAgICBtYWNfcHRyKys7CisrCisrICAgICAgLyogTm90ZSB0aGF0IHdlIHJlbHkgb24gdGhl IGZhY3QgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBHTlUgYW5kCisrCSBEV0FSRiBjb25zdGFudHMg YXJlIHRoZSBzYW1lLiAgKi8KKysgICAgICBzd2l0Y2ggKG1hY2luZm9fdHlwZSkKKysgICAgICAg IHsKKysgICAgICAgICAgLyogQSB6ZXJvIG1hY2luZm8gdHlwZSBpbmRpY2F0ZXMgdGhlIGVuZCBv ZiB0aGUgbWFjcm8KKysgICAgICAgICAgICAgaW5mb3JtYXRpb24uICAqLworKyAgICAgICAgY2Fz ZSAwOgorKwkgIGJyZWFrOworKworKwljYXNlIERXX01BQ1JPX0dOVV9kZWZpbmU6CisrCWNhc2Ug RFdfTUFDUk9fR05VX3VuZGVmOgorKwkgIC8qIE9ubHkgc2tpcCB0aGUgZGF0YSBieSBNQUNfUFRS LiAgKi8KKysJICB7CisrCSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKysKKysJICAgIHJl YWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CisrCSAgICBt YWNfcHRyICs9IGJ5dGVzX3JlYWQ7CisrCSAgICByZWFkX2RpcmVjdF9zdHJpbmcgKGFiZmQsIG1h Y19wdHIsICZieXRlc19yZWFkKTsKKysJICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKysJICB9 CisrCSAgYnJlYWs7CisrCisrCWNhc2UgRFdfTUFDUk9fR05VX3N0YXJ0X2ZpbGU6CisrCSAgewor KwkgICAgdW5zaWduZWQgaW50IGJ5dGVzX3JlYWQ7CisrCSAgICBpbnQgbGluZSwgZmlsZTsKKysK KysJICAgIGxpbmUgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVz X3JlYWQpOworKwkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworKwkgICAgZmlsZSA9IHJlYWRf dW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CisrCSAgICBtYWNf cHRyICs9IGJ5dGVzX3JlYWQ7CisrCisrCSAgICBjdXJyZW50X2ZpbGUgPSBtYWNyb19zdGFydF9m aWxlIChmaWxlLCBsaW5lLCBjdXJyZW50X2ZpbGUsCisrCQkJCQkgICAgIGNvbXBfZGlyLCBsaCwg Y3UtPm9iamZpbGUpOworKwkgIH0KKysJICBicmVhazsKKysKKysJY2FzZSBEV19NQUNST19HTlVf ZW5kX2ZpbGU6CisrCSAgLyogTm8gZGF0YSB0byBza2lwIGJ5IE1BQ19QVFIuICAqLworKwkgIGJy ZWFrOworKworKwljYXNlIERXX01BQ1JPX0dOVV9kZWZpbmVfaW5kaXJlY3Q6CisrCWNhc2UgRFdf TUFDUk9fR05VX3VuZGVmX2luZGlyZWN0OgorKwkgIHsKKysJICAgIHVuc2lnbmVkIGludCBieXRl c19yZWFkOworKworKwkgICAgcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZi eXRlc19yZWFkKTsKKysJICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKysJICAgIG1hY19wdHIg Kz0gb2Zmc2V0X3NpemU7CisrCSAgfQorKwkgIGJyZWFrOworKworKwljYXNlIERXX01BQ1JPX0dO VV90cmFuc3BhcmVudF9pbmNsdWRlOgorKwkgIC8qIE5vdGUgdGhhdCwgYWNjb3JkaW5nIHRvIHRo ZSBzcGVjLCBhIHRyYW5zcGFyZW50IGluY2x1ZGUKKysJICAgICBjaGFpbiBjYW5ub3QgY2FsbCBE V19NQUNST19HTlVfc3RhcnRfZmlsZS4gIFNvLCB3ZSBjYW4ganVzdAorKwkgICAgIHNraXAgdGhp cyBvcGNvZGUuICAqLworKwkgIG1hY19wdHIgKz0gb2Zmc2V0X3NpemU7CisrCSAgYnJlYWs7Cisr CisrCWNhc2UgRFdfTUFDSU5GT192ZW5kb3JfZXh0OgorKwkgIC8qIE9ubHkgc2tpcCB0aGUgZGF0 YSBieSBNQUNfUFRSLiAgKi8KKysJICBpZiAoIXNlY3Rpb25faXNfZ251KQorKwkgICAgeworKwkg ICAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKysKKysJICAgICAgcmVhZF91bnNpZ25lZF9s ZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgICAgbWFjX3B0ciArPSBi eXRlc19yZWFkOworKwkgICAgICByZWFkX2RpcmVjdF9zdHJpbmcgKGFiZmQsIG1hY19wdHIsICZi eXRlc19yZWFkKTsKKysJICAgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworKwkgICAgfQorKwkg IC8qIEZBTExUSFJPVUdIICovCisrCisrCWRlZmF1bHQ6CisrCSAgbWFjX3B0ciA9IHNraXBfdW5r bm93bl9vcGNvZGUgKG1hY2luZm9fdHlwZSwgb3Bjb2RlX2RlZmluaXRpb25zLAorKwkJCQkJIG1h Y19wdHIsIGFiZmQsIG9mZnNldF9zaXplLAorKwkJCQkJIHNlY3Rpb24pOworKwkgIGlmIChtYWNf cHRyID09IE5VTEwpCisrCSAgICByZXR1cm47CisrCSAgYnJlYWs7CisrCX0KKysgICAgfSB3aGls ZSAobWFjaW5mb190eXBlICE9IDAgJiYgY3VycmVudF9maWxlID09IE5VTEwpOworKworKyAgLyog U2Vjb25kIHBhc3M6IFByb2Nlc3MgYWxsIGVudHJpZXMuCisrCisrICAgICBVc2UgdGhlIEFUX0NP TU1BTkRfTElORSBmbGFnIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBzdGlsbCBwcm9jZXNz aW5nCisrICAgICBjb21tYW5kLWxpbmUgbWFjcm8gZGVmaW5pdGlvbnMvdW5kZWZpbml0aW9ucy4g IFRoaXMgZmxhZyBpcyB1bnNldCB3aGVuIHdlCisrICAgICByZWFjaCB0aGUgZmlyc3QgRFdfTUFD SU5GT19zdGFydF9maWxlIGVudHJ5LiAgKi8KKysKKysgIGR3YXJmX2RlY29kZV9tYWNyb19ieXRl cyAoYWJmZCwgc2VjdGlvbi0+YnVmZmVyICsgb2Zmc2V0LCBtYWNfZW5kLAorKwkJCSAgICBjdXJy ZW50X2ZpbGUsIGxoLCBjb21wX2Rpciwgc2VjdGlvbiwgc2VjdGlvbl9pc19nbnUsCisrCQkJICAg IG9mZnNldF9zaXplLCBjdS0+b2JqZmlsZSk7CisrfQorKworIC8qIENoZWNrIGlmIHRoZSBhdHRy aWJ1dGUncyBmb3JtIGlzIGEgRFdfRk9STV9ibG9jayoKKyAgICBpZiBzbyByZXR1cm4gdHJ1ZSBl bHNlIGZhbHNlLiAgKi8KKyBzdGF0aWMgaW50CitAQCAtMTU2NjMsNiArMTU5NzEsNyBAQAorICAg bXVubWFwX3NlY3Rpb25fYnVmZmVyICgmZGF0YS0+bGluZSk7CisgICBtdW5tYXBfc2VjdGlvbl9i dWZmZXIgKCZkYXRhLT5sb2MpOworICAgbXVubWFwX3NlY3Rpb25fYnVmZmVyICgmZGF0YS0+bWFj aW5mbyk7CisrICBtdW5tYXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5tYWNybyk7CisgICBtdW5t YXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5zdHIpOworICAgbXVubWFwX3NlY3Rpb25fYnVmZmVy ICgmZGF0YS0+cmFuZ2VzKTsKKyAgIG11bm1hcF9zZWN0aW9uX2J1ZmZlciAoJmRhdGEtPmZyYW1l KTsKKy0tLSBzcmMvZ2RiL3N5bWZpbGUuaAkyMDExLzA2LzEwIDIxOjQ4OjA0CTEuOTMKKysrKyBz cmMvZ2RiL3N5bWZpbGUuaAkyMDExLzA3LzI2IDE3OjA0OjIzCTEuOTQKK0BAIC01ODIsNiArNTgy LDcgQEAKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1lcyBsaW5lOworICAgc3RydWN0IGR3 YXJmMl9zZWN0aW9uX25hbWVzIGxvYzsKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1lcyBt YWNpbmZvOworKyAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX25hbWVzIG1hY3JvOworICAgc3RydWN0 IGR3YXJmMl9zZWN0aW9uX25hbWVzIHN0cjsKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1l cyByYW5nZXM7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25fbmFtZXMgdHlwZXM7CisKKworCitS ZTogRllJOiBpbXBsZW1lbnQgbmV3IERXQVJGIG1hY3JvIHByb3Bvc2FsCitodHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMS0wNy9tc2cwMDc1OS5odG1sCitodHRwOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDExLTA3L21zZzAwMjI0Lmh0bWwKKworIyMjIHNyYy9n ZGIvQ2hhbmdlTG9nCTIwMTEvMDcvMjYgMjE6MDk6MDUJMS4xMzIyOQorIyMjIHNyYy9nZGIvQ2hh bmdlTG9nCTIwMTEvMDcvMjcgMTQ6NDU6MzYJMS4xMzIzMAorIyMgLTEsMyArMSwxMCBAQAorKzIw MTEtMDctMjcgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KKysKKysJKiB4Y29mZnJl YWQuYyAoZHdhcmYyX3hjb2ZmX25hbWVzKTogQWRkICdtYWNybycgYW5kICdzZW50aW5lbCcKKysJ ZW50cmllcy4KKysJKiBzeW1maWxlLmggKHN0cnVjdCBkd2FyZjJfZGVidWdfc2VjdGlvbnMpIDxz ZW50aW5lbD46IE5ldyBmaWVsZC4KKysJKiBkd2FyZjJyZWFkLmMgKGR3YXJmMl9lbGZfbmFtZXMp OiBBZGQgc2VudGluZWwgZW50cnkuCisrCisgMjAxMS0wNy0yNiAgU3RlcmxpbmcgQXVndXN0aW5l ICA8c2F1Z3VzdGluZUBnb29nbGUuY29tPgorIAorIAkqIGNsaS9jbGktZHVtcC5jIChkdW1wX2Jp bmFyeV9maWxlKTogQ2hhbmdlIHBhcmFtZXRlciB0eXBlIHRvCistLS0gc3JjL2dkYi9kd2FyZjJy ZWFkLmMJMjAxMS8wNy8yNiAxNzowNDoyMwkxLjU1NQorKysrIHNyYy9nZGIvZHdhcmYycmVhZC5j CTIwMTEvMDcvMjcgMTQ6NDU6MzcJMS41NTYKK0BAIC0yNzEsNyArMjcxLDggQEAKKyAgIHsgIi5k ZWJ1Z190eXBlcyIsICIuemRlYnVnX3R5cGVzIiB9LAorICAgeyAiLmRlYnVnX2ZyYW1lIiwgIi56 ZGVidWdfZnJhbWUiIH0sCisgICB7ICIuZWhfZnJhbWUiLCBOVUxMIH0sCistICB7ICIuZ2RiX2lu ZGV4IiwgIi56Z2RiX2luZGV4IiB9CisrICB7ICIuZ2RiX2luZGV4IiwgIi56Z2RiX2luZGV4IiB9 LAorKyAgMjMKKyB9OworIAorIC8qIGxvY2FsIGRhdGEgdHlwZXMgKi8KKy0tLSBzcmMvZ2RiL3N5 bWZpbGUuaAkyMDExLzA3LzI2IDE3OjA0OjIzCTEuOTQKKysrKyBzcmMvZ2RiL3N5bWZpbGUuaAky MDExLzA3LzI3IDE0OjQ1OjM3CTEuOTUKK0BAIC01ODksNiArNTg5LDkgQEAKKyAgIHN0cnVjdCBk d2FyZjJfc2VjdGlvbl9uYW1lcyBmcmFtZTsKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1l cyBlaF9mcmFtZTsKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1lcyBnZGJfaW5kZXg7Cisr ICAvKiBUaGlzIGZpZWxkIGhhcyBubyBtZWFuaW5nLCBidXQgZXhpc3RzIHNvbGVseSB0byBjYXRj aCBjaGFuZ2VzIHRvCisrICAgICB0aGlzIHN0cnVjdHVyZSB3aGljaCBhcmUgbm90IHJlZmxlY3Rl ZCBpbiBzb21lIGluc3RhbmNlLiAgKi8KKysgIGludCBzZW50aW5lbDsKKyB9OworIAorIGV4dGVy biBpbnQgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqLAorLS0tIHNyYy9nZGIveGNv ZmZyZWFkLmMJMjAxMS8wNi8wNyAxMjozMTowNwkxLjg5CisrKysgc3JjL2dkYi94Y29mZnJlYWQu YwkyMDExLzA3LzI3IDE0OjQ1OjM3CTEuOTAKK0BAIC0xNjAsMTIgKzE2MCwxNCBAQAorICAgeyAi LmR3bGluZSIsIE5VTEwgfSwKKyAgIHsgIi5kd2xvYyIsIE5VTEwgfSwKKyAgIHsgTlVMTCwgTlVM TCB9LCAvKiBkZWJ1Z19tYWNpbmZvICovCisrICB7IE5VTEwsIE5VTEwgfSwgLyogZGVidWdfbWFj cm8gKi8KKyAgIHsgIi5kd3N0ciIsIE5VTEwgfSwKKyAgIHsgIi5kd3JuZ2VzIiwgTlVMTCB9LAor ICAgeyBOVUxMLCBOVUxMIH0sIC8qIGRlYnVnX3R5cGVzICovCisgICB7ICIuZHdmcmFtZSIsIE5V TEwgfSwKKyAgIHsgTlVMTCwgTlVMTCB9LCAvKiBlaF9mcmFtZSAqLworLSAgeyBOVUxMLCBOVUxM IH0gLyogZ2RiX2luZGV4ICovCisrICB7IE5VTEwsIE5VTEwgfSwgLyogZ2RiX2luZGV4ICovCisr ICAyMworIH07CisgCisgc3RhdGljIHZvaWQKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5z cGVjCmluZGV4IGYyZWVmNmIuLjc4ODU3MGIgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dk Yi5zcGVjCkBAIC0yNyw3ICsyNyw3IEBAIFZlcnNpb246IDcuMy41MC4yMDExMDcyMgogCiAjIFRo ZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFy dCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkg ZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVh c2U6IDElez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDIlez9f d2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBH UEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlv bnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbgogR3JvdXA6 IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMjYwLDcgKzI2MCw3IEBAIFBhdGNoMjMxOiBnZGIt Ni4zLWJ6MjAyNjg5LWV4ZWMtZnJvbS1wdGhyZWFkLXRlc3QucGF0Y2gKIAogIyBCYWNrcG9ydGVk IGZpeHVwcyBwb3N0IHRoZSBzb3VyY2UgdGFyYmFsbC4KICNYZHJvcDogSnVzdCBiYWNrcG9ydHMu Ci0jUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAorUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5w YXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNz ZW1ibHkgKEJaIDIzMDAwMCkuCiAjPWZlZG9yYXRlc3QrcHBjCkBAIC02ODcsNyArNjg3LDcgQEAg cm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAu YwogCiAlaWYgMCV7IT9fd2l0aF91cHN0cmVhbToxfQogCi0jcGF0Y2gyMzIgLXAxCislcGF0Y2gy MzIgLXAxCiAlcGF0Y2gzNDkgLXAxCiAlcGF0Y2gxIC1wMQogJXBhdGNoMyAtcDEKQEAgLTEyMTMs NiArMTIxMyw5IEBAIGZpCiAle19pbmZvZGlyfS9nZGIuaW5mbyoKIAogJWNoYW5nZWxvZworKiBG cmkgSnVsIDI5IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ IC0gNy4zLjUwLjIwMTEwNzIyLTIuZmMxNgorLSBJbmNsdWRlIGdjYyAtZzMgLmRlYnVnX21hY3Jv IGltcGxlbWVudGF0aW9uIGJ5IFRvbSBUcm9tZXkuCisKICogU2F0IEp1bCAyMyAyMDExIEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMy41MC4yMDExMDcyMi0x LmZjMTYKIC0gUmViYXNlIHRvIEZTRiBHREIgNy4zLjUwLjIwMTEwNzIyLgogLSBJbXByb3ZlIGdj Yy00LjYgc3RkYXJnIGZhbHNlIHByb2xvZ3VlIGVuZCB3b3JrYXJvdW5kIChHREIgUFIgMTI0MzUg KyBHQ0MgUFIgNDc0NzEpLgo=