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: Tomas Mraz To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: backport of KBKDF and KRB5KDF from master Date: Tue, 09 Jun 2026 12:44:37 GMT Message-ID: <178100907703.1.3734094607481840647.rpms-openssl-266efa305593@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: 266efa305593358bb168b099264b7279fbec5a66 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IDI2NmVmYTMwNTU5MzM1OGJiMTY4YjA5OTI2NGI3 Mjc5ZmJlYzVhNjYKQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+ CkRhdGUgICA6IDIwMTktMTEtMTNUMTM6NDM6MDUrMDE6MDAKU3RhdHMgIDogKzg1OC8tNjUgaW4g MiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvb3Bl bnNzbC9jLzI2NmVmYTMwNTU5MzM1OGJiMTY4YjA5OTI2NGI3Mjc5ZmJlYzVhNjY/YnJhbmNoPXJl YmFzZV80MGJldGEKCkxvZzoKYmFja3BvcnQgb2YgS0JLREYgYW5kIEtSQjVLREYgZnJvbSBtYXN0 ZXIKCi0tLQpkaWZmIC0tZ2l0IGEvb3BlbnNzbC0xLjEuMS1rcmI1LWtkZi5wYXRjaCBiL29wZW5z c2wtMS4xLjEta3JiNS1rZGYucGF0Y2gKaW5kZXggNWJmMzNmNi4uMjNkOWI0NyAxMDA2NDQKLS0t IGEvb3BlbnNzbC0xLjEuMS1rcmI1LWtkZi5wYXRjaAorKysgYi9vcGVuc3NsLTEuMS4xLWtyYjUt a2RmLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2Vyci9vcGVuc3NsLnR4dC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXJyL29wZW5z c2wudHh0Ci0tLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2Vyci9vcGVuc3NsLnR4dC5rcmI1LWtk ZgkyMDE5LTExLTEyIDEzOjMwOjM2LjI2MTc0ODk3MyArMDEwMAotKysrIG9wZW5zc2wtMS4xLjFk L2NyeXB0by9lcnIvb3BlbnNzbC50eHQJMjAxOS0xMS0xMiAxMzozMDozNi4yODM3NDg1NzcgKzAx MDAKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXJyL29wZW5zc2wudHh0LmtyYjUta2RmCTIw MTktMTEtMTMgMTI6MTE6MzQuNzA1NjU2MjUwICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2Vyci9vcGVuc3NsLnR4dAkyMDE5LTExLTEzIDEyOjExOjM0LjcyODY1NTg0MSArMDEwMAog QEAgLTgyMSw2ICs4MjEsMTEgQEAgRVZQX0ZfUzM5MFhfQUVTX0dDTV9DVFJMOjIwMTpzMzkweF9h ZXNfZwogIEVWUF9GX1NDUllQVF9BTEc6MjI4OnNjcnlwdF9hbGcKICBFVlBfRl9VUERBVEU6MTcz OnVwZGF0ZQpAQCAtMTMsNDkgKzEzLDczIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0 by9lcnIvb3BlbnNzbC50eHQua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2VyCiAgS0RG X0ZfS0RGX0hLREZfREVSSVZFOjExMzprZGZfaGtkZl9kZXJpdmUKICBLREZfRl9LREZfSEtERl9O RVc6MTE0OmtkZl9oa2RmX25ldwogIEtERl9GX0tERl9IS0RGX1NJWkU6MTE1OmtkZl9oa2RmX3Np emUKLUBAIC0yMzI2LDYgKzIzMzEsOCBAQCBFVlBfUl9XUkFQX01PREVfTk9UX0FMTE9XRUQ6MTcw OndyYXAgbW9kCitAQCAtODQwLDYgKzg0NSw4IEBAIEtERl9GX0tERl9TU0hLREZfTkVXOjEzMzpr ZGZfc3Noa2RmX25ldworIEtERl9GX0tERl9UTFMxX1BSRl9DVFJMX1NUUjoxMjU6a2RmX3RsczFf cHJmX2N0cmxfc3RyCisgS0RGX0ZfS0RGX1RMUzFfUFJGX0RFUklWRToxMjY6a2RmX3RsczFfcHJm X2Rlcml2ZQorIEtERl9GX0tERl9UTFMxX1BSRl9ORVc6MTI3OmtkZl90bHMxX3ByZl9uZXcKKytL REZfRl9LUkI1S0RGOjEzOTpLUkI1S0RGCisrS0RGX0ZfS1JCNUtERl9ERVJJVkU6MTQwOmtyYjVr ZGZfZGVyaXZlCisgS0RGX0ZfUEJLREYyX1NFVF9NRU1CVUY6MTI4OnBia2RmMl9zZXRfbWVtYnVm CisgS0RGX0ZfUEtFWV9IS0RGX0NUUkxfU1RSOjEwMzpwa2V5X2hrZGZfY3RybF9zdHIKKyBLREZf Rl9QS0VZX0hLREZfREVSSVZFOjEwMjpwa2V5X2hrZGZfZGVyaXZlCitAQCAtMjMyNSw3ICsyMzMy LDEzIEBAIEVWUF9SX1VOU1VQUE9SVEVEX1NBTFRfVFlQRToxMjY6dW5zdXBwb3IKKyBFVlBfUl9X UkFQX01PREVfTk9UX0FMTE9XRUQ6MTcwOndyYXAgbW9kZSBub3QgYWxsb3dlZAogIEVWUF9SX1dS T05HX0ZJTkFMX0JMT0NLX0xFTkdUSDoxMDk6d3JvbmcgZmluYWwgYmxvY2sgbGVuZ3RoCiAgRVZQ X1JfWFRTX0RVUExJQ0FURURfS0VZUzoxODM6eHRzIGR1cGxpY2F0ZWQga2V5cworK0tERl9SX0ZB SUxFRF9UT19HRU5FUkFURV9LRVk6MTE4OmZhaWxlZCB0byBnZW5lcmF0ZSBrZXkKKytLREZfUl9J TlZBTElEX0NJUEhFUjoxMTY6aW52YWxpZCBjaXBoZXIKKytLREZfUl9JTlZBTElEX0NPTlNUQU5U X0xFTkdUSDoxMTk6aW52YWxpZCBjb25zdGFudCBsZW5ndGgKICBLREZfUl9JTlZBTElEX0RJR0VT VDoxMDA6aW52YWxpZCBkaWdlc3QKLStLREZfUl9JTlZBTElEX1NFRURfTEVOR1RIOjExNjppbnZh bGlkIHNlZWQgbGVuZ3RoCi0rS0RGX1JfTUlTU0lOR19DSVBIRVI6MTE3Om1pc3NpbmcgY2lwaGVy CisrS0RGX1JfSU5WQUxJRF9TRUVEX0xFTkdUSDoxMTc6aW52YWxpZCBzZWVkIGxlbmd0aAorK0tE Rl9SX01JU1NJTkdfQ0lQSEVSOjEyMDptaXNzaW5nIGNpcGhlcgorK0tERl9SX01JU1NJTkdfQ09O U1RBTlQ6MTIxOm1pc3NpbmcgY29uc3RhbnQKICBLREZfUl9NSVNTSU5HX0lURVJBVElPTl9DT1VO VDoxMDk6bWlzc2luZyBpdGVyYXRpb24gY291bnQKICBLREZfUl9NSVNTSU5HX0tFWToxMDQ6bWlz c2luZyBrZXkKICBLREZfUl9NSVNTSU5HX01FU1NBR0VfRElHRVNUOjEwNTptaXNzaW5nIG1lc3Nh Z2UgZGlnZXN0CitAQCAtMjM0MCw2ICsyMzUzLDcgQEAgS0RGX1JfTUlTU0lOR19YQ0dIQVNIOjEx NTptaXNzaW5nIHhjZ2hhcworIEtERl9SX1VOS05PV05fUEFSQU1FVEVSX1RZUEU6MTAzOnVua25v d24gcGFyYW1ldGVyIHR5cGUKKyBLREZfUl9WQUxVRV9FUlJPUjoxMDg6dmFsdWUgZXJyb3IKKyBL REZfUl9WQUxVRV9NSVNTSU5HOjEwMjp2YWx1ZSBtaXNzaW5nCisrS0RGX1JfV1JPTkdfRklOQUxf QkxPQ0tfTEVOR1RIOjEyMDp3cm9uZyBmaW5hbCBibG9jayBsZW5ndGgKKyBLREZfUl9XUk9OR19P VVRQVVRfQlVGRkVSX1NJWkU6MTEyOndyb25nIG91dHB1dCBidWZmZXIgc2l6ZQorIE9CSl9SX09J RF9FWElTVFM6MTAyOm9pZCBleGlzdHMKKyBPQkpfUl9VTktOT1dOX05JRDoxMDE6dW5rbm93biBu aWQKIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAva2RmX2xpYi5jLmtyYjUta2Rm IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9ldnAva2RmX2xpYi5jCi0tLS0gb3BlbnNzbC0xLjEuMWQv Y3J5cHRvL2V2cC9rZGZfbGliLmMua3JiNS1rZGYJMjAxOS0xMS0xMiAxMzozMDozNi4yNjE3NDg5 NzMgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vZXZwL2tkZl9saWIuYwkyMDE5LTEx LTEyIDEzOjQ0OjA0LjQzNTI4Mjg1NCArMDEwMAotQEAgLTMxLDYgKzMxLDcgQEAgc3RhdGljIGNv bnN0IEVWUF9LREZfTUVUSE9EICpzdGFuZGFyZF9tZQorLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0 by9ldnAva2RmX2xpYi5jLmtyYjUta2RmCTIwMTktMTEtMTMgMTI6MTE6MzQuNzA1NjU2MjUwICsw MTAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2V2cC9rZGZfbGliLmMJMjAxOS0xMS0xMyAx MjoxMTozNC43Mjk2NTU4MjMgKzAxMDAKK0BAIC0zMSw2ICszMSw4IEBAIHN0YXRpYyBjb25zdCBF VlBfS0RGX01FVEhPRCAqc3RhbmRhcmRfbWUKICAgICAgJnRsczFfcHJmX2tkZl9tZXRoLAogICAg ICAmaGtkZl9rZGZfbWV0aCwKICAgICAgJnNzaGtkZl9rZGZfbWV0aCwKICsgICAgJmtiX2tkZl9t ZXRoLAorKyAgICAma3JiNWtkZl9rZGZfbWV0aCwKICB9OwogIAogIERFQ0xBUkVfT0JKX0JTRUFS Q0hfQ01QX0ZOKGNvbnN0IEVWUF9LREZfTUVUSE9EICosIGNvbnN0IEVWUF9LREZfTUVUSE9EICos CiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9ldnBfaW50 Lmgua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZXZwX2lu dC5oCi0tLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZXZwX2ludC5o LmtyYjUta2RmCTIwMTktMTEtMTIgMTM6MzA6MzYuMjYxNzQ4OTczICswMTAwCi0rKysgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZXZwX2ludC5oCTIwMTktMTEtMTIgMTM6 MzA6MzYuMjgzNzQ4NTc3ICswMTAwCi1AQCAtMTMwLDYgKzEzMCw3IEBAIGV4dGVybiBjb25zdCBF VlBfS0RGX01FVEhPRCBzY3J5cHRfa2RmX20KKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5j bHVkZS9pbnRlcm5hbC9ldnBfaW50Lmgua3JiNS1rZGYJMjAxOS0xMS0xMyAxMjoxMTozNC43MDU2 NTYyNTAgKzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9l dnBfaW50LmgJMjAxOS0xMS0xMyAxMjoxMTozNC43Mjk2NTU4MjMgKzAxMDAKK0BAIC0xMzAsNiAr MTMwLDggQEAgZXh0ZXJuIGNvbnN0IEVWUF9LREZfTUVUSE9EIHNjcnlwdF9rZGZfbQogIGV4dGVy biBjb25zdCBFVlBfS0RGX01FVEhPRCB0bHMxX3ByZl9rZGZfbWV0aDsKICBleHRlcm4gY29uc3Qg RVZQX0tERl9NRVRIT0QgaGtkZl9rZGZfbWV0aDsKICBleHRlcm4gY29uc3QgRVZQX0tERl9NRVRI T0Qgc3Noa2RmX2tkZl9tZXRoOwogK2V4dGVybiBjb25zdCBFVlBfS0RGX01FVEhPRCBrYl9rZGZf bWV0aDsKKytleHRlcm4gY29uc3QgRVZQX0tERl9NRVRIT0Qga3JiNWtkZl9rZGZfbWV0aDsKICAK ICBzdHJ1Y3QgZXZwX21kX3N0IHsKICAgICAgaW50IHR5cGU7CiBkaWZmIC11cCBvcGVuc3NsLTEu MS4xZC9jcnlwdG8va2RmL2J1aWxkLmluZm8ua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRv L2tkZi9idWlsZC5pbmZvCi0tLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9idWlsZC5pbmZv LmtyYjUta2RmCTIwMTktMTEtMTIgMTM6MzA6MzYuMjYxNzQ4OTczICswMTAwCi0rKysgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL2tkZi9idWlsZC5pbmZvCTIwMTktMTEtMTIgMTM6MzA6MzYuMjg0NzQ4 NTU5ICswMTAwCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9idWlsZC5pbmZvLmtyYjUt a2RmCTIwMTktMTEtMTMgMTI6MTE6MzQuNzA1NjU2MjUwICswMTAwCisrKysgb3BlbnNzbC0xLjEu MWQvY3J5cHRvL2tkZi9idWlsZC5pbmZvCTIwMTktMTEtMTMgMTI6MTE6MzQuNzI5NjU1ODIzICsw MTAwCiBAQCAtMSwzICsxLDMgQEAKICBMSUJTPS4uLy4uL2xpYmNyeXB0bwogIFNPVVJDRVsuLi8u Li9saWJjcnlwdG9dPVwKIC0gICAgICAgIHRsczFfcHJmLmMga2RmX2Vyci5jIGtkZl91dGlsLmMg aGtkZi5jIHNjcnlwdC5jIHBia2RmMi5jIHNzaGtkZi5jCi0rICAgICAgICB0bHMxX3ByZi5jIGtk Zl9lcnIuYyBrZGZfdXRpbC5jIGhrZGYuYyBzY3J5cHQuYyBwYmtkZjIuYyBzc2hrZGYuYyBrYmtk Zi5jCisrICAgICAgICB0bHMxX3ByZi5jIGtkZl9lcnIuYyBrZGZfdXRpbC5jIGhrZGYuYyBzY3J5 cHQuYyBwYmtkZjIuYyBzc2hrZGYuYyBrYmtkZi5jIGtyYjVrZGYuYwogZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL2tkZi9rYmtkZi5jLmtyYjUta2RmIG9wZW5zc2wtMS4xLjFkL2NyeXB0 by9rZGYva2JrZGYuYwotLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYva2JrZGYuYy5rcmI1 LWtkZgkyMDE5LTExLTEyIDEzOjMwOjM2LjI4NDc0ODU1OSArMDEwMAotKysrIG9wZW5zc2wtMS4x LjFkL2NyeXB0by9rZGYva2JrZGYuYwkyMDE5LTExLTEyIDE2OjA5OjMyLjgyODIzODkyNiArMDEw MAotQEAgLTAsMCArMSw1MzAgQEAKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tia2Rm LmMua3JiNS1rZGYJMjAxOS0xMS0xMyAxMjoxMTozNC43Mjk2NTU4MjMgKzAxMDAKKysrKyBvcGVu c3NsLTEuMS4xZC9jcnlwdG8va2RmL2tia2RmLmMJMjAxOS0xMS0xMyAxMjoxMTozNC43Mjk2NTU4 MjMgKzAxMDAKK0BAIC0wLDAgKzEsNTI5IEBACiArLyoKICsgKiBDb3B5cmlnaHQgMjAxOSBUaGUg T3BlblNTTCBQcm9qZWN0IEF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiArICogQ29weXJp Z2h0IDIwMTkgUmVkIEhhdCwgSW5jLgpAQCAtNTc0LDcgKzU5OCw2IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9rZGYva2JrZGYuYy5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlw dG8va2RmL2tiCiArICAgIHJldHVybiAtMjsKICt9CiArCi0rCiArY29uc3QgRVZQX0tERl9NRVRI T0Qga2Jfa2RmX21ldGggPSB7CiArICAgIEVWUF9LREZfS0IsCiArICAgIGtia2RmX25ldywKQEAg LTU4Nyw4ICs2MTAsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tia2Rm LmMua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rYgogK307CiArCiBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tkZl9lcnIuYy5rcmI1LWtkZiBvcGVuc3NsLTEu MS4xZC9jcnlwdG8va2RmL2tkZl9lcnIuYwotLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYv a2RmX2Vyci5jLmtyYjUta2RmCTIwMTktMTEtMTIgMTM6MzA6MzYuMjYyNzQ4OTU1ICswMTAwCi0r Kysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfZXJyLmMJMjAxOS0xMS0xMiAxMzozMDoz Ni4yODQ3NDg1NTkgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tkZl9lcnIu Yy5rcmI1LWtkZgkyMDE5LTExLTEzIDEyOjExOjM0LjcwNTY1NjI1MCArMDEwMAorKysrIG9wZW5z c2wtMS4xLjFkL2NyeXB0by9rZGYva2RmX2Vyci5jCTIwMTktMTEtMTMgMTI6MTE6MzQuNzMwNjU1 ODA1ICswMTAwCiBAQCAtMTUsNiArMTUsMTEgQEAKICAKICBzdGF0aWMgY29uc3QgRVJSX1NUUklO R19EQVRBIEtERl9zdHJfZnVuY3RzW10gPSB7CkBAIC02MDEsMTkgKzYyNCw0MiBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tkZl9lcnIuYy5rcmI1LWtkZiBvcGVuc3NsLTEu MS4xZC9jcnlwdG8va2RmLwogICAgICB7RVJSX1BBQ0soRVJSX0xJQl9LREYsIEtERl9GX0tERl9I S0RGX0RFUklWRSwgMCksICJrZGZfaGtkZl9kZXJpdmUifSwKICAgICAge0VSUl9QQUNLKEVSUl9M SUJfS0RGLCBLREZfRl9LREZfSEtERl9ORVcsIDApLCAia2RmX2hrZGZfbmV3In0sCiAgICAgIHtF UlJfUEFDSyhFUlJfTElCX0tERiwgS0RGX0ZfS0RGX0hLREZfU0laRSwgMCksICJrZGZfaGtkZl9z aXplIn0sCi1AQCAtNjQsNyArNjksOSBAQCBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19EQVRBIEtE Rl9zdHJfZnVuCitAQCAtNDEsNiArNDYsOCBAQCBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19EQVRB IEtERl9zdHJfZnVuCisgICAgIHtFUlJfUEFDSyhFUlJfTElCX0tERiwgS0RGX0ZfS0RGX1RMUzFf UFJGX0RFUklWRSwgMCksCisgICAgICAia2RmX3RsczFfcHJmX2Rlcml2ZSJ9LAorICAgICB7RVJS X1BBQ0soRVJSX0xJQl9LREYsIEtERl9GX0tERl9UTFMxX1BSRl9ORVcsIDApLCAia2RmX3RsczFf cHJmX25ldyJ9LAorKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9LREYsIEtERl9GX0tSQjVLREYsIDAp LCAiS1JCNUtERiJ9LAorKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9LREYsIEtERl9GX0tSQjVLREZf REVSSVZFLCAwKSwgImtyYjVrZGZfZGVyaXZlIn0sCisgICAgIHtFUlJfUEFDSyhFUlJfTElCX0tE RiwgS0RGX0ZfUEJLREYyX1NFVF9NRU1CVUYsIDApLCAicGJrZGYyX3NldF9tZW1idWYifSwKKyAg ICAge0VSUl9QQUNLKEVSUl9MSUJfS0RGLCBLREZfRl9QS0VZX0hLREZfQ1RSTF9TVFIsIDApLCAi cGtleV9oa2RmX2N0cmxfc3RyIn0sCisgICAgIHtFUlJfUEFDSyhFUlJfTElCX0tERiwgS0RGX0Zf UEtFWV9IS0RGX0RFUklWRSwgMCksICJwa2V5X2hrZGZfZGVyaXZlIn0sCitAQCAtNjQsNyArNzEs MTQgQEAgc3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBLREZfc3RyX2Z1bgogIH07CiAgCiAg c3RhdGljIGNvbnN0IEVSUl9TVFJJTkdfREFUQSBLREZfc3RyX3JlYXNvbnNbXSA9IHsKKysgICAg e0VSUl9QQUNLKEVSUl9MSUJfS0RGLCAwLCBLREZfUl9GQUlMRURfVE9fR0VORVJBVEVfS0VZKSwK KysgICAgImZhaWxlZCB0byBnZW5lcmF0ZSBrZXkifSwKICsgICAge0VSUl9QQUNLKEVSUl9MSUJf S0RGLCAwLCBLREZfUl9JTlZBTElEX0NJUEhFUiksICJpbnZhbGlkIGNpcGhlciJ9LAorKyAgICB7 RVJSX1BBQ0soRVJSX0xJQl9LREYsIDAsIEtERl9SX0lOVkFMSURfQ09OU1RBTlRfTEVOR1RIKSwg ImludmFsaWQgY29uc3RhbnQgbGVuZ3RoIn0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0tERiwg MCwgS0RGX1JfSU5WQUxJRF9ESUdFU1QpLCAiaW52YWxpZCBkaWdlc3QifSwKICsgICAge0VSUl9Q QUNLKEVSUl9MSUJfS0RGLCAwLCBLREZfUl9JTlZBTElEX1NFRURfTEVOR1RIKSwgImludmFsaWQg c2VlZCBsZW5ndGgifSwKKysgICAge0VSUl9QQUNLKEVSUl9MSUJfS0RGLCAwLCBLREZfUl9NSVNT SU5HX0NJUEhFUiksICJtaXNzaW5nIGNpcGhlciJ9LAorKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9L REYsIDAsIEtERl9SX01JU1NJTkdfQ09OU1RBTlQpLCAibWlzc2luZyBjb25zdGFudCJ9LAogICAg ICB7RVJSX1BBQ0soRVJSX0xJQl9LREYsIDAsIEtERl9SX01JU1NJTkdfSVRFUkFUSU9OX0NPVU5U KSwKICAgICAgIm1pc3NpbmcgaXRlcmF0aW9uIGNvdW50In0sCiAgICAgIHtFUlJfUEFDSyhFUlJf TElCX0tERiwgMCwgS0RGX1JfTUlTU0lOR19LRVkpLCAibWlzc2luZyBrZXkifSwKK0BAIC04Miw2 ICs5Niw4IEBAIHN0YXRpYyBjb25zdCBFUlJfU1RSSU5HX0RBVEEgS0RGX3N0cl9yZWEKKyAgICAg InVua25vd24gcGFyYW1ldGVyIHR5cGUifSwKKyAgICAge0VSUl9QQUNLKEVSUl9MSUJfS0RGLCAw LCBLREZfUl9WQUxVRV9FUlJPUiksICJ2YWx1ZSBlcnJvciJ9LAorICAgICB7RVJSX1BBQ0soRVJS X0xJQl9LREYsIDAsIEtERl9SX1ZBTFVFX01JU1NJTkcpLCAidmFsdWUgbWlzc2luZyJ9LAorKyAg ICB7RVJSX1BBQ0soRVJSX0xJQl9LREYsIDAsIEtERl9SX1dST05HX0ZJTkFMX0JMT0NLX0xFTkdU SCksCisrICAgICJ3cm9uZyBmaW5hbCBibG9jayBsZW5ndGgifSwKKyAgICAge0VSUl9QQUNLKEVS Ul9MSUJfS0RGLCAwLCBLREZfUl9XUk9OR19PVVRQVVRfQlVGRkVSX1NJWkUpLAorICAgICAid3Jv bmcgb3V0cHV0IGJ1ZmZlciBzaXplIn0sCisgICAgIHswLCBOVUxMfQogZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfbG9jYWwuaC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9j cnlwdG8va2RmL2tkZl9sb2NhbC5oCi0tLS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZf bG9jYWwuaC5rcmI1LWtkZgkyMDE5LTExLTEyIDEzOjMwOjM2LjI1Mzc0OTExNyArMDEwMAotKysr IG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYva2RmX2xvY2FsLmgJMjAxOS0xMS0xMiAxMzozMDoz Ni4yODQ3NDg1NTkgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tkZl9sb2Nh bC5oLmtyYjUta2RmCTIwMTktMTEtMTMgMTI6MTE6MzQuNjk3NjU2MzkzICswMTAwCisrKysgb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfbG9jYWwuaAkyMDE5LTExLTEzIDEyOjExOjM0Ljcz MDY1NTgwNSArMDEwMAogQEAgLTE5LDQgKzE5LDYgQEAgaW50IGtkZl9oZXgyY3RybChFVlBfS0RG X0lNUEwgKmltcGwsCiAgaW50IGtkZl9tZDJjdHJsKEVWUF9LREZfSU1QTCAqaW1wbCwKICAgICAg ICAgICAgICAgICAgaW50ICgqY3RybCkoRVZQX0tERl9JTVBMICppbXBsLCBpbnQgY21kLCB2YV9s aXN0IGFyZ3MpLApAQCAtNjIzLDggKzY2OSw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2Ny eXB0by9rZGYva2RmX2xvY2FsLmgua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkCiAr ICAgICAgICAgICAgICAgICAgICBpbnQgKCpjdHJsKShFVlBfS0RGX0lNUEwgKmltcGwsIGludCBj bWQsIHZhX2xpc3QgYXJncyksCiArICAgICAgICAgICAgICAgICAgICBpbnQgY21kLCBjb25zdCBj aGFyICpjaXBoZXJfbmFtZSk7CiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tk Zl91dGlsLmMua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfdXRpbC5jCi0t LS0gb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfdXRpbC5jLmtyYjUta2RmCTIwMTktMTEt MTIgMTM6MzA6MzYuMjUzNzQ5MTE3ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tk Zi9rZGZfdXRpbC5jCTIwMTktMTEtMTIgMTM6MzA6MzYuMjg0NzQ4NTU5ICswMTAwCistLS0gb3Bl bnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfdXRpbC5jLmtyYjUta2RmCTIwMTktMTEtMTMgMTI6 MTE6MzQuNjk3NjU2MzkzICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZf dXRpbC5jCTIwMTktMTEtMTMgMTI6MTE6MzQuNzMwNjU1ODA1ICswMTAwCiBAQCAtNzEsMyArNzEs MTYgQEAgaW50IGtkZl9tZDJjdHJsKEVWUF9LREZfSU1QTCAqaW1wbCwKICAgICAgcmV0dXJuIGNh bGxfY3RybChjdHJsLCBpbXBsLCBjbWQsIG1kKTsKICB9CkBAIC02NDIsNzkgKzY4OCw1MTAgQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL2tkZi9rZGZfdXRpbC5jLmtyYjUta2RmIG9w ZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYKICsgICAgfQogKyAgICByZXR1cm4gY2FsbF9jdHJsKGN0 cmwsIGltcGwsIGNtZCwgY2lwaGVyKTsKICt9CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlw dG8va2RmL2tyYjVrZGYuYy5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8va2RmL2tyYjVr ZGYuYworLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9rZGYva3JiNWtkZi5jLmtyYjUta2RmCTIw MTktMTEtMTMgMTI6MTE6MzQuNzMwNjU1ODA1ICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL2tkZi9rcmI1a2RmLmMJMjAxOS0xMS0xMyAxMjoyNTo1MC41MTk0MTczNjIgKzAxMDAKK0BA IC0wLDAgKzEsNDE3IEBACisrLyoKKysgKiBDb3B5cmlnaHQgMjAxOC0yMDE5IFRoZSBPcGVuU1NM IFByb2plY3QgQXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKysgKgorKyAqIExpY2Vuc2Vk IHVuZGVyIHRoZSBPcGVuU1NMIGxpY2Vuc2UgKHRoZSAiTGljZW5zZSIpLiAgWW91IG1heSBub3Qg dXNlCisrICogdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2Uu ICBZb3UgY2FuIG9idGFpbiBhIGNvcHkKKysgKiBpbiB0aGUgZmlsZSBMSUNFTlNFIGluIHRoZSBz b3VyY2UgZGlzdHJpYnV0aW9uIG9yIGF0CisrICogaHR0cHM6Ly93d3cub3BlbnNzbC5vcmcvc291 cmNlL2xpY2Vuc2UuaHRtbAorKyAqLworKworKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVk ZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworKyNpbmNsdWRlIDxvcGVuc3Ns L2Rlcy5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2tk Zi5oPgorKworKyNpbmNsdWRlICJpbnRlcm5hbC9jcnlwdGxpYi5oIgorKyNpbmNsdWRlICJpbnRl cm5hbC9ldnBfaW50LmgiCisrI2luY2x1ZGUgImtkZl9sb2NhbC5oIgorKworKy8qIEtSQjUgS0RG IGRlZmluZWQgaW4gUkZDIDM5NjEsIFNlY3Rpb24gNS4xICovCisrCisrc3RhdGljIGludCBLUkI1 S0RGKGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlciwKKysgICAgICAgICAgICAgICAgICAgY29uc3Qg dW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbiwKKysgICAgICAgICAgICAgICAgICAg Y29uc3QgdW5zaWduZWQgY2hhciAqY29uc3RhbnQsIHNpemVfdCBjb25zdGFudF9sZW4sCisrICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm9rZXksIHNpemVfdCBva2V5X2xlbik7Cisr Cisrc3RydWN0IGV2cF9rZGZfaW1wbF9zdCB7CisrICAgIGNvbnN0IEVWUF9DSVBIRVIgKmNpcGhl cjsKKysgICAgdW5zaWduZWQgY2hhciAqa2V5OworKyAgICBzaXplX3Qga2V5X2xlbjsKKysgICAg dW5zaWduZWQgY2hhciAqY29uc3RhbnQ7CisrICAgIHNpemVfdCBjb25zdGFudF9sZW47CisrfTsK KysKKytzdGF0aWMgdm9pZCBrcmI1a2RmX3Jlc2V0KEVWUF9LREZfSU1QTCAqY3R4KTsKKysKKytz dGF0aWMgRVZQX0tERl9JTVBMICprcmI1a2RmX25ldyh2b2lkKQorK3sKKysgICAgRVZQX0tERl9J TVBMICpjdHg7CisrCisrICAgIGlmICgoY3R4ID0gT1BFTlNTTF96YWxsb2Moc2l6ZW9mKCpjdHgp KSkgPT0gTlVMTCkKKysgICAgICAgIEtERmVycihLREZfRl9LQktERl9ORVcsIEVSUl9SX01BTExP Q19GQUlMVVJFKTsKKysgICAgcmV0dXJuIGN0eDsKKyt9CisrCisrc3RhdGljIHZvaWQga3JiNWtk Zl9mcmVlKEVWUF9LREZfSU1QTCAqY3R4KQorK3sKKysgICAga3JiNWtkZl9yZXNldChjdHgpOwor KyAgICBPUEVOU1NMX2ZyZWUoY3R4KTsKKyt9CisrCisrc3RhdGljIHZvaWQga3JiNWtkZl9yZXNl dChFVlBfS0RGX0lNUEwgKmN0eCkKKyt7CisrICAgIE9QRU5TU0xfY2xlYXJfZnJlZShjdHgtPmtl eSwgY3R4LT5rZXlfbGVuKTsKKysgICAgT1BFTlNTTF9jbGVhcl9mcmVlKGN0eC0+Y29uc3RhbnQs IGN0eC0+Y29uc3RhbnRfbGVuKTsKKysgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKCpjdHgpKTsK Kyt9CisrCisrc3RhdGljIGludCBrcmI1a2RmX2Rlcml2ZShFVlBfS0RGX0lNUEwgKmN0eCwgdW5z aWduZWQgY2hhciAqa2V5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBr ZXlsZW4pCisreworKyAgICBpZiAoY3R4LT5jaXBoZXIgPT0gTlVMTCkgeworKyAgICAgICAgS0RG ZXJyKEtERl9GX0tSQjVLREZfREVSSVZFLCBLREZfUl9NSVNTSU5HX0NJUEhFUik7CisrICAgICAg ICByZXR1cm4gMDsKKysgICAgfQorKyAgICBpZiAoY3R4LT5rZXkgPT0gTlVMTCkgeworKyAgICAg ICAgS0RGZXJyKEtERl9GX0tSQjVLREZfREVSSVZFLCBLREZfUl9NSVNTSU5HX0tFWSk7CisrICAg ICAgICByZXR1cm4gMDsKKysgICAgfQorKyAgICBpZiAoY3R4LT5jb25zdGFudCA9PSBOVUxMKSB7 CisrICAgICAgICBLREZlcnIoS0RGX0ZfS1JCNUtERl9ERVJJVkUsIEtERl9SX01JU1NJTkdfQ09O U1RBTlQpOworKyAgICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysgICAgcmV0dXJuIEtSQjVLREYo Y3R4LT5jaXBoZXIsIGN0eC0+a2V5LCBjdHgtPmtleV9sZW4sCisrICAgICAgICAgICAgICAgICAg IGN0eC0+Y29uc3RhbnQsIGN0eC0+Y29uc3RhbnRfbGVuLAorKyAgICAgICAgICAgICAgICAgICBr ZXksIGtleWxlbik7CisrfQorKworK3N0YXRpYyBzaXplX3Qga3JiNWtkZl9zaXplKEVWUF9LREZf SU1QTCAqY3R4KQorK3sKKysgICAgaWYgKGN0eC0+Y2lwaGVyICE9IE5VTEwpCisrICAgICAgICBy ZXR1cm4gRVZQX0NJUEhFUl9rZXlfbGVuZ3RoKGN0eC0+Y2lwaGVyKTsKKysgICAgZWxzZQorKyAg ICAgICAgcmV0dXJuIEVWUF9NQVhfS0VZX0xFTkdUSDsKKyt9CisrCisrCisrc3RhdGljIGludCBr cmI1a2RmX3BhcnNlX2J1ZmZlcl9hcmcodW5zaWduZWQgY2hhciAqKmRzdCwgc2l6ZV90ICpkc3Rf bGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJn cykKKyt7CisrICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CisrICAgIHNpemVfdCBsZW47Cisr CisrICAgIHAgPSB2YV9hcmcoYXJncywgY29uc3QgdW5zaWduZWQgY2hhciAqKTsKKysgICAgbGVu ID0gdmFfYXJnKGFyZ3MsIHNpemVfdCk7CisrICAgIE9QRU5TU0xfY2xlYXJfZnJlZSgqZHN0LCAq ZHN0X2xlbik7CisrICAgICpkc3QgPSBPUEVOU1NMX21lbWR1cChwLCBsZW4pOworKyAgICBpZiAo KmRzdCA9PSBOVUxMKQorKyAgICAgICAgcmV0dXJuIDA7CisrCisrICAgICpkc3RfbGVuID0gbGVu OworKyAgICByZXR1cm4gMTsKKyt9CisrCisrc3RhdGljIGludCBrcmI1a2RmX2N0cmwoRVZQX0tE Rl9JTVBMICpjdHgsIGludCBjbWQsIHZhX2xpc3QgYXJncykKKyt7CisrICAgIHN3aXRjaCAoY21k KSB7CisrICAgIGNhc2UgRVZQX0tERl9DVFJMX1NFVF9DSVBIRVI6CisrICAgICAgICBjdHgtPmNp cGhlciA9IHZhX2FyZyhhcmdzLCBjb25zdCBFVlBfQ0lQSEVSICopOworKyAgICAgICAgaWYgKGN0 eC0+Y2lwaGVyID09IE5VTEwpCisrICAgICAgICAgICAgcmV0dXJuIDA7CisrCisrICAgICAgICBy ZXR1cm4gMTsKKysKKysgICAgY2FzZSBFVlBfS0RGX0NUUkxfU0VUX0tFWToKKysgICAgICAgIHJl dHVybiBrcmI1a2RmX3BhcnNlX2J1ZmZlcl9hcmcoJmN0eC0+a2V5LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+a2V5X2xlbiwgYXJncyk7CisrCisrICAgIGNh c2UgRVZQX0tERl9DVFJMX1NFVF9LUkI1S0RGX0NPTlNUQU5UOgorKyAgICAgICAgcmV0dXJuIGty YjVrZGZfcGFyc2VfYnVmZmVyX2FyZygmY3R4LT5jb25zdGFudCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+Y29uc3RhbnRfbGVuLCBhcmdzKTsKKysg ICAgZGVmYXVsdDoKKysgICAgICAgIHJldHVybiAtMjsKKysKKysgICAgfQorK30KKysKKytzdGF0 aWMgaW50IGtyYjVrZGZfY3RybF9zdHIoRVZQX0tERl9JTVBMICpjdHgsIGNvbnN0IGNoYXIgKnR5 cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnZhbHVlKQor K3sKKysgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKysgICAgICAgIEtERmVycihLREZfRl9LREZf U1NIS0RGX0NUUkxfU1RSLCBLREZfUl9WQUxVRV9NSVNTSU5HKTsKKysgICAgICAgIHJldHVybiAw OworKyAgICB9CisrCisrICAgIGlmIChzdHJjbXAodHlwZSwgImNpcGhlciIpID09IDApCisrICAg ICAgICByZXR1cm4ga2RmX2NpcGhlcjJjdHJsKGN0eCwga3JiNWtkZl9jdHJsLCBFVlBfS0RGX0NU UkxfU0VUX0NJUEhFUiwgdmFsdWUpOworKworKyAgICBpZiAoc3RyY21wKHR5cGUsICJrZXkiKSA9 PSAwKQorKyAgICAgICAgcmV0dXJuIGtkZl9zdHIyY3RybChjdHgsIGtyYjVrZGZfY3RybCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZQX0tERl9DVFJMX1NFVF9LRVksIHZhbHVlKTsK KysKKysgICAgaWYgKHN0cmNtcCh0eXBlLCAiaGV4a2V5IikgPT0gMCkKKysgICAgICAgIHJldHVy biBrZGZfaGV4MmN0cmwoY3R4LCBrcmI1a2RmX2N0cmwsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVWUF9LREZfQ1RSTF9TRVRfS0VZLCB2YWx1ZSk7CisrCisrICAgIGlmIChzdHJjbXAo dHlwZSwgImNvbnN0YW50IikgPT0gMCkKKysgICAgICAgIHJldHVybiBrZGZfc3RyMmN0cmwoY3R4 LCBrcmI1a2RmX2N0cmwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUF9LREZfQ1RS TF9TRVRfS1JCNUtERl9DT05TVEFOVCwgdmFsdWUpOworKworKyAgICBpZiAoc3RyY21wKHR5cGUs ICJoZXhjb25zdGFudCIpID09IDApCisrICAgICAgICByZXR1cm4ga2RmX2hleDJjdHJsKGN0eCwg a3JiNWtkZl9jdHJsLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlBfS0RGX0NUUkxf U0VUX0tSQjVLREZfQ09OU1RBTlQsIHZhbHVlKTsKKysKKysgICAgS0RGZXJyKEtERl9GX0tCS0RG X0NUUkxfU1RSLCBLREZfUl9VTktOT1dOX1BBUkFNRVRFUl9UWVBFKTsKKysgICAgcmV0dXJuIC0y OworK30KKysKKysKKysjaWZuZGVmIE9QRU5TU0xfTk9fREVTCisrLyoKKysgKiBERVMzIGlzIGEg c3BlY2lhbCBjYXNlLCBpdCByZXF1aXJlcyBhIHJhbmRvbS10by1rZXkgZnVuY3Rpb24gYW5kIGl0 cworKyAqIGlucHV0IHRydW5jYXRlZCB0byAyMSBieXRlcyBvZiB0aGUgMjQgcHJvZHVjZWQgYnkg dGhlIGNpcGhlci4KKysgKiBTZWUgUkZDMzk2MSA2LjMuMQorKyAqLworK3N0YXRpYyBpbnQgZml4 dXBfZGVzM19rZXkodW5zaWduZWQgY2hhciAqa2V5KQorK3sKKysgICAgdW5zaWduZWQgY2hhciAq Y2Jsb2NrOworKyAgICBpbnQgaSwgajsKKysKKysgICAgZm9yIChpID0gMjsgaSA+PSAwOyBpLS0p IHsKKysgICAgICAgIGNibG9jayA9ICZrZXlbaSAqIDhdOworKyAgICAgICAgbWVtbW92ZShjYmxv Y2ssICZrZXlbaSAqIDddLCA3KTsKKysgICAgICAgIGNibG9ja1s3XSA9IDA7CisrICAgICAgICBm b3IgKGogPSAwOyBqIDwgNzsgaisrKQorKyAgICAgICAgICAgIGNibG9ja1s3XSB8PSAoY2Jsb2Nr W2pdICYgMSkgPDwgKGogKyAxKTsKKysgICAgICAgIERFU19zZXRfb2RkX3Bhcml0eSgoREVTX2Ni bG9jayAqKWNibG9jayk7CisrICAgIH0KKysKKysgICAgLyogZmFpbCBpZiBrZXlzIGFyZSBzdWNo IHRoYXQgdHJpcGxlIGRlcyBkZWdyYWRlcyB0byBzaW5nbGUgZGVzICovCisrICAgIGlmIChDUllQ VE9fbWVtY21wKCZrZXlbMF0sICZrZXlbOF0sIDgpID09IDAgfHwKKysgICAgICAgIENSWVBUT19t ZW1jbXAoJmtleVs4XSwgJmtleVsxNl0sIDgpID09IDApIHsKKysgICAgICAgIHJldHVybiAwOwor KyAgICB9CisrCisrICAgIHJldHVybiAxOworK30KKysjZW5kaWYKKysKKysvKgorKyAqIE4tZm9s ZChLKSB3aGVyZSBibG9ja3NpemUgaXMgTiwgYW5kIGNvbnN0YW50X2xlbiBpcyBLCisrICogTm90 ZTogSGVyZSB8PSBkZW5vdGVzIGNvbmNhdGVuYXRpb24KKysgKgorKyAqIEwgPSBsY20oTixLKQor KyAqIFIgPSBML0sKKysgKgorKyAqIGZvciByOiAxIC0+IFIKKysgKiAgIHMgfD0gY29uc3RhbnQg cm90IDEzKihyLTEpKQorKyAqCisrICogYmxvY2sgPSAwCisrICogZm9yIGs6IDEgLT4gSworKyAq ICAgYmxvY2sgKz0gc1tOKGstMSkuLihOLTEpa10gKG9uZSdzIGNvbXBsZW1lbnQgYWRkaXRpb24p CisrICoKKysgKiBPcHRpbWl6aW5nIGZvciBzcGFjZSB3ZSBjb21wdXRlOgorKyAqIGZvciBlYWNo IGwgaW4gTC0xIC0+IDA6CisrICogICBzW2xdID0gKGNvbnN0YW50IHJvdCAxMyoobC9LKSlbbCVr XQorKyAqICAgYmxvY2tbbCAlIE5dICs9IHNbbF0gKHdpdGggY2FycnkpCisrICogZmluYWxseSBh ZGQgY2FycnkgaWYgYW55CisrICovCisrc3RhdGljIHZvaWQgbl9mb2xkKHVuc2lnbmVkIGNoYXIg KmJsb2NrLCB1bnNpZ25lZCBpbnQgYmxvY2tzaXplLAorKyAgICAgICAgICAgICAgICAgICBjb25z dCB1bnNpZ25lZCBjaGFyICpjb25zdGFudCwgc2l6ZV90IGNvbnN0YW50X2xlbikKKyt7CisrICAg IHVuc2lnbmVkIGludCB0bXAsIGdjZCwgcmVtYWluZGVyLCBsY20sIGNhcnJ5OworKyAgICBpbnQg YiwgbDsKKysKKysgICAgaWYgKGNvbnN0YW50X2xlbiA9PSBibG9ja3NpemUpIHsKKysgICAgICAg IG1lbWNweShibG9jaywgY29uc3RhbnQsIGNvbnN0YW50X2xlbik7CisrICAgICAgICByZXR1cm47 CisrICAgIH0KKysKKysgICAgLyogTGVhc3QgQ29tbW9uIE11bHRpcGxlIG9mIGxlbmd0aHM6IExD TShhLGIpKi8KKysgICAgZ2NkID0gYmxvY2tzaXplOworKyAgICByZW1haW5kZXIgPSBjb25zdGFu dF9sZW47CisrICAgIC8qIENhbGN1bGF0ZSBHcmVhdCBDb21tb24gRGl2aXNvciBmaXJzdCBHQ0Qo YSxiKSAqLworKyAgICB3aGlsZSAocmVtYWluZGVyICE9IDApIHsKKysgICAgICAgIHRtcCA9IGdj ZCAlIHJlbWFpbmRlcjsKKysgICAgICAgIGdjZCA9IHJlbWFpbmRlcjsKKysgICAgICAgIHJlbWFp bmRlciA9IHRtcDsKKysgICAgfQorKyAgICAvKiByZXN1bHRpbmcgYSBpcyB0aGUgR0NELCBMQ00o YSxiKSA9IHxhKmJ8L0dDRChhLGIpICovCisrICAgIGxjbSA9IGJsb2Nrc2l6ZSAqIGNvbnN0YW50 X2xlbiAvIGdjZDsKKysKKysgICAgLyogbm93IHNwcmVhZCBvdXQgdGhlIGJpdHMgKi8KKysgICAg bWVtc2V0KGJsb2NrLCAwLCBibG9ja3NpemUpOworKworKyAgICAvKiBsYXN0IHRvIGZpcnN0IHRv IGJlIGFibGUgdG8gYnJpbmcgY2FycnkgZm9yd2FyZCAqLworKyAgICBjYXJyeSA9IDA7CisrICAg IGZvciAobCA9IGxjbSAtIDE7IGwgPj0gMDsgbC0tKSB7CisrICAgICAgICB1bnNpZ25lZCBpbnQg cm90Yml0cywgcnNoaWZ0LCByYnl0ZTsKKysKKysgICAgICAgIC8qIGRlc3RpbmF0aW9uIGJ5dGUg aW4gYmxvY2sgaXMgbCAlIE4gKi8KKysgICAgICAgIGIgPSBsICUgYmxvY2tzaXplOworKyAgICAg ICAgLyogT3VyIHZpcnR1YWwgcyBidWZmZXIgaXMgUiA9IEwvSyBsb25nIChLID0gY29uc3RhbnRf bGVuKSAqLworKyAgICAgICAgLyogU28gd2Ugcm90YXRlIGJhY2t3YXJkcyBmcm9tIFItMSB0byAw IChub25lKSByb3RhdGlvbnMgKi8KKysgICAgICAgIHJvdGJpdHMgPSAxMyAqIChsIC8gY29uc3Rh bnRfbGVuKTsKKysgICAgICAgIC8qIGZpbmQgdGhlIGJ5dGUgb24gcyB3aGVyZSByb3RiaXRzIGZh bGxzIG9udG8gKi8KKysgICAgICAgIHJieXRlID0gbCAtIChyb3RiaXRzIC8gOCk7CisrICAgICAg ICAvKiBjYWxjdWxhdGUgaG93IG11Y2ggc2hpZnQgb24gdGhhdCBieXRlICovCisrICAgICAgICBy c2hpZnQgPSByb3RiaXRzICYgMHgwNzsKKysgICAgICAgIC8qIHJieXRlICUgY29uc3RhbnRfbGVu IGdpdmVzIHVzIHRoZSB1bnJvdGF0ZWQgYnl0ZSBpbiB0aGUKKysgICAgICAgICAqIGNvbnN0YW50 IGJ1ZmZlciwgZ2V0IGFsc28gdGhlIHByZXZpb3VzIGJ5dGUgdGhlbgorKyAgICAgICAgICogYXBw cm9wcmlhdGVseSBzaGlmdCB0aGVtIHRvIGdldCB0aGUgcm90YXRlZCBieXRlIHdlIG5lZWQgKi8K KysgICAgICAgIHRtcCA9IChjb25zdGFudFsocmJ5dGUtMSkgJSBjb25zdGFudF9sZW5dIDw8ICg4 IC0gcnNoaWZ0KQorKyAgICAgICAgICAgICAgIHwgY29uc3RhbnRbcmJ5dGUgJSBjb25zdGFudF9s ZW5dID4+IHJzaGlmdCkKKysgICAgICAgICAgICAgICYgMHhmZjsKKysgICAgICAgIC8qIGFkZCB3 aXRoIGNhcnJ5IHRvIGFueSB2YWx1ZSBwbGFjZWQgYnkgcHJldmlvdXMgcGFzc2VzICovCisrICAg ICAgICB0bXAgKz0gY2FycnkgKyBibG9ja1tiXTsKKysgICAgICAgIGJsb2NrW2JdID0gdG1wICYg MHhmZjsKKysgICAgICAgIC8qIHNhdmUgYW55IGNhcnJ5IHRoYXQgbWF5IGJlIGxlZnQgKi8KKysg ICAgICAgIGNhcnJ5ID0gdG1wID4+IDg7CisrICAgIH0KKysKKysgICAgLyogaWYgYW55IGNhcnJ5 IGlzIGxlZnQgYXQgdGhlIGVuZCwgYWRkIGl0IHRocm91Z2ggdGhlIG51bWJlciAqLworKyAgICBm b3IgKGIgPSBibG9ja3NpemUgLSAxOyBiID49IDAgJiYgY2FycnkgIT0gMDsgYi0tKSB7CisrICAg ICAgICBjYXJyeSArPSBibG9ja1tiXTsKKysgICAgICAgIGJsb2NrW2JdID0gY2FycnkgJiAweGZm OworKyAgICAgICAgY2FycnkgPj49IDg7CisrICAgIH0KKyt9CisrCisrc3RhdGljIGludCBjaXBo ZXJfaW5pdChFVlBfQ0lQSEVSX0NUWCAqY3R4LAorKyAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgRVZQX0NJUEhFUiAqY2lwaGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5z aWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbikKKyt7CisrICAgIGludCBrbGVuLCByZXQ7 CisrCisrICAgIHJldCA9IEVWUF9FbmNyeXB0SW5pdF9leChjdHgsIGNpcGhlciwgTlVMTCwga2V5 LCBOVUxMKTsKKysgICAgaWYgKCFyZXQpCisrICAgICAgICBnb3RvIG91dDsKKysgICAgLyogc2V0 IHRoZSBrZXkgbGVuIGZvciB0aGUgb2RkIHZhcmlhYmxlIGtleSBsZW4gY2lwaGVyICovCisrICAg IGtsZW4gPSBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCk7CisrICAgIGlmIChrZXlfbGVu ICE9IChzaXplX3Qpa2xlbikgeworKyAgICAgICAgcmV0ID0gRVZQX0NJUEhFUl9DVFhfc2V0X2tl eV9sZW5ndGgoY3R4LCBrZXlfbGVuKTsKKysgICAgICAgIGlmICghcmV0KQorKyAgICAgICAgICAg IGdvdG8gb3V0OworKyAgICB9CisrICAgIC8qIHdlIG5ldmVyIHdhbnQgcGFkZGluZywgZWl0aGVy IHRoZSBsZW5ndGggcmVxdWVzdGVkIGlzIGEgbXVsdGlwbGUgb2YKKysgICAgICogdGhlIGNpcGhl ciBibG9jayBzaXplIG9yIHdlIGFyZSBwYXNzZWQgYSBjaXBoZXIgdGhhdCBjYW4gY29wZSB3aXRo CisrICAgICAqIHBhcnRpYWwgYmxvY2tzIHZpYSB0ZWNobmlxdWVzIGxpa2UgY2lwaGVyIHRleHQg c3RlYWxpbmcgKi8KKysgICAgcmV0ID0gRVZQX0NJUEhFUl9DVFhfc2V0X3BhZGRpbmcoY3R4LCAw KTsKKysgICAgaWYgKCFyZXQpCisrICAgICAgICBnb3RvIG91dDsKKysKKytvdXQ6CisrICAgIHJl dHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgS1JCNUtERihjb25zdCBFVlBfQ0lQSEVSICpj aXBoZXIsCisrICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6 ZV90IGtleV9sZW4sCisrICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNv bnN0YW50LCBzaXplX3QgY29uc3RhbnRfbGVuLAorKyAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBjaGFyICpva2V5LCBzaXplX3Qgb2tleV9sZW4pCisreworKyAgICBFVlBfQ0lQSEVSX0NUWCAq Y3R4ID0gTlVMTDsKKysgICAgdW5zaWduZWQgY2hhciBibG9ja1tFVlBfTUFYX0JMT0NLX0xFTkdU SCAqIDJdOworKyAgICB1bnNpZ25lZCBjaGFyICpwbGFpbmJsb2NrLCAqY2lwaGVyYmxvY2s7Cisr ICAgIHNpemVfdCBibG9ja3NpemU7CisrICAgIHNpemVfdCBjaXBoZXJsZW47CisrICAgIHNpemVf dCBvc2l6ZTsKKysgICAgaW50IGRlczNfbm9fZml4dXAgPSAwOworKyAgICBpbnQgcmV0OworKwor KyAgICBpZiAoa2V5X2xlbiAhPSBva2V5X2xlbikgeworKyAgICAgICAgLyogc3BlY2lhbCBjYXNl IGZvciAzZGVzLCB3aGVyZSB0aGUgY2FsbGVyIG1heSBiZSByZXF1ZXN0aW5nCisrICAgICAgICAg KiB0aGUgcmFuZG9tIHJhdyBrZXksIGluc3RlYWQgb2YgdGhlIGZpeGVkIHVwIGtleSAgKi8KKysg ICAgICAgIGlmIChFVlBfQ0lQSEVSX25pZChjaXBoZXIpID09IE5JRF9kZXNfZWRlM19jYmMgJiYK KysgICAgICAgICAgICBrZXlfbGVuID09IDI0ICYmIG9rZXlfbGVuID09IDIxKSB7CisrICAgICAg ICAgICAgICAgIGRlczNfbm9fZml4dXAgPSAxOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAg ICAgICBLREZlcnIoS0RGX0ZfS1JCNUtERiwgS0RGX1JfV1JPTkdfT1VUUFVUX0JVRkZFUl9TSVpF KTsKKysgICAgICAgICAgICByZXR1cm4gMDsKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICBj dHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKysgICAgaWYgKGN0eCA9PSBOVUxMKQorKyAgICAg ICAgcmV0dXJuIDA7CisrCisrICAgIHJldCA9IGNpcGhlcl9pbml0KGN0eCwgY2lwaGVyLCBrZXks IGtleV9sZW4pOworKyAgICBpZiAoIXJldCkKKysgICAgICAgIGdvdG8gb3V0OworKworKyAgICAv KiBJbml0aWFsaXplIGlucHV0IGJsb2NrICovCisrICAgIGJsb2Nrc2l6ZSA9IEVWUF9DSVBIRVJf Q1RYX2Jsb2NrX3NpemUoY3R4KTsKKysKKysgICAgaWYgKGNvbnN0YW50X2xlbiA+IGJsb2Nrc2l6 ZSkgeworKyAgICAgICAgS0RGZXJyKEtERl9GX0tSQjVLREYsIEtERl9SX0lOVkFMSURfQ09OU1RB TlRfTEVOR1RIKTsKKysgICAgICAgIHJldCA9IDA7CisrICAgICAgICBnb3RvIG91dDsKKysgICAg fQorKworKyAgICBuX2ZvbGQoYmxvY2ssIGJsb2Nrc2l6ZSwgY29uc3RhbnQsIGNvbnN0YW50X2xl bik7CisrICAgIHBsYWluYmxvY2sgPSBibG9jazsKKysgICAgY2lwaGVyYmxvY2sgPSBibG9jayAr IEVWUF9NQVhfQkxPQ0tfTEVOR1RIOworKworKyAgICBmb3IgKG9zaXplID0gMDsgb3NpemUgPCBv a2V5X2xlbjsgb3NpemUgKz0gY2lwaGVybGVuKSB7CisrICAgICAgICBpbnQgb2xlbjsKKysKKysg ICAgICAgIHJldCA9IEVWUF9FbmNyeXB0VXBkYXRlKGN0eCwgY2lwaGVyYmxvY2ssICZvbGVuLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5ibG9jaywgYmxvY2tzaXplKTsK KysgICAgICAgIGlmICghcmV0KQorKyAgICAgICAgICAgIGdvdG8gb3V0OworKyAgICAgICAgY2lw aGVybGVuID0gb2xlbjsKKysgICAgICAgIHJldCA9IEVWUF9FbmNyeXB0RmluYWxfZXgoY3R4LCBj aXBoZXJibG9jaywgJm9sZW4pOworKyAgICAgICAgaWYgKCFyZXQpCisrICAgICAgICAgICAgZ290 byBvdXQ7CisrICAgICAgICBpZiAob2xlbiAhPSAwKSB7CisrICAgICAgICAgICAgS0RGZXJyKEtE Rl9GX0tSQjVLREYsIEtERl9SX1dST05HX0ZJTkFMX0JMT0NLX0xFTkdUSCk7CisrICAgICAgICAg ICAgcmV0ID0gMDsKKysgICAgICAgICAgICBnb3RvIG91dDsKKysgICAgICAgIH0KKysKKysgICAg ICAgIC8qIHdyaXRlIGNpcGhlcmJsb2NrIG91dCAqLworKyAgICAgICAgaWYgKGNpcGhlcmxlbiA+ IG9rZXlfbGVuIC0gb3NpemUpCisrICAgICAgICAgICAgY2lwaGVybGVuID0gb2tleV9sZW4gLSBv c2l6ZTsKKysgICAgICAgIG1lbWNweShva2V5ICsgb3NpemUsIGNpcGhlcmJsb2NrLCBjaXBoZXJs ZW4pOworKworKyAgICAgICAgaWYgKG9rZXlfbGVuID4gb3NpemUgKyBjaXBoZXJsZW4pIHsKKysg ICAgICAgICAgICAvKiB3ZSBuZWVkIHRvIHJlaW5pdGlhbGl6ZSBjaXBoZXIgY29udGV4dCBwZXIg c3BlYyAqLworKyAgICAgICAgICAgIHJldCA9IEVWUF9DSVBIRVJfQ1RYX3Jlc2V0KGN0eCk7Cisr ICAgICAgICAgICAgaWYgKCFyZXQpCisrICAgICAgICAgICAgICAgIGdvdG8gb3V0OworKyAgICAg ICAgICAgIHJldCA9IGNpcGhlcl9pbml0KGN0eCwgY2lwaGVyLCBrZXksIGtleV9sZW4pOworKyAg ICAgICAgICAgIGlmICghcmV0KQorKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKysKKysgICAg ICAgICAgICAvKiBhbHNvIHN3YXAgYmxvY2sgb2Zmc2V0cyBzbyBsYXN0IGNpcGhlcnRleHQgYmVj b21lcyBuZXcKKysgICAgICAgICAgICAgKiBwbGFpbnRleHQgKi8KKysgICAgICAgICAgICBwbGFp bmJsb2NrID0gY2lwaGVyYmxvY2s7CisrICAgICAgICAgICAgaWYgKGNpcGhlcmJsb2NrID09IGJs b2NrKSB7CisrICAgICAgICAgICAgICAgIGNpcGhlcmJsb2NrICs9IEVWUF9NQVhfQkxPQ0tfTEVO R1RIOworKyAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgIGNpcGhlcmJsb2Nr ID0gYmxvY2s7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisrI2lmbmRl ZiBPUEVOU1NMX05PX0RFUworKyAgICBpZiAoRVZQX0NJUEhFUl9uaWQoY2lwaGVyKSA9PSBOSURf ZGVzX2VkZTNfY2JjICYmICFkZXMzX25vX2ZpeHVwKSB7CisrICAgICAgICByZXQgPSBmaXh1cF9k ZXMzX2tleShva2V5KTsKKysgICAgICAgIGlmICghcmV0KSB7CisrICAgICAgICAgICAgS0RGZXJy KEtERl9GX0tSQjVLREYsIEtERl9SX0ZBSUxFRF9UT19HRU5FUkFURV9LRVkpOworKyAgICAgICAg ICAgIGdvdG8gb3V0OworKyAgICAgICAgfQorKyAgICB9CisrI2VuZGlmCisrCisrICAgIHJldCA9 IDE7CisrCisrb3V0OgorKyAgICBFVlBfQ0lQSEVSX0NUWF9mcmVlKGN0eCk7CisrICAgIE9QRU5T U0xfY2xlYW5zZShibG9jaywgRVZQX01BWF9CTE9DS19MRU5HVEggKiAyKTsKKysgICAgcmV0dXJu IHJldDsKKyt9CisrCisrY29uc3QgRVZQX0tERl9NRVRIT0Qga3JiNWtkZl9rZGZfbWV0aCA9IHsK KysgICAgRVZQX0tERl9LUkI1S0RGLAorKyAgICBrcmI1a2RmX25ldywKKysgICAga3JiNWtkZl9m cmVlLAorKyAgICBrcmI1a2RmX3Jlc2V0LAorKyAgICBrcmI1a2RmX2N0cmwsCisrICAgIGtyYjVr ZGZfY3RybF9zdHIsCisrICAgIGtyYjVrZGZfc2l6ZSwKKysgICAga3JiNWtkZl9kZXJpdmUsCisr fTsKKysKIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9vYmplY3RzL29ial9kYXQuaC5r cmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmgKLS0tLSBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0Lmgua3JiNS1rZGYJMjAxOS0xMS0xMiAx MzozMDozNi4yNjM3NDg5MzcgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0 cy9vYmpfZGF0LmgJMjAxOS0xMS0xMiAxMzozMDozNi4yODU3NDg1NDEgKzAxMDAKKy0tLSBvcGVu c3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0Lmgua3JiNS1rZGYJMjAxOS0xMS0xMyAx MjoxMTozNC43MDY2NTYyMzIgKzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0 cy9vYmpfZGF0LmgJMjAxOS0xMS0xMyAxMjoxMTozNC43MzE2NTU3ODcgKzAxMDAKIEBAIC0xMDc4 LDcgKzEwNzgsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzb1s3NzYyXSA9IHsKICAg ICAgMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDBELCAgICAgICAvKiBbIDc3 NTNdIE9CSl9obWFjV2l0aFNIQTUxMl8yNTYgKi8KICB9OwogIAogLSNkZWZpbmUgTlVNX05JRCAx MTk2Ci0rI2RlZmluZSBOVU1fTklEIDExOTcKKysjZGVmaW5lIE5VTV9OSUQgMTE5OAogIHN0YXRp YyBjb25zdCBBU04xX09CSkVDVCBuaWRfb2Jqc1tOVU1fTklEXSA9IHsKICAgICAgeyJVTkRFRiIs ICJ1bmRlZmluZWQiLCBOSURfdW5kZWZ9LAogICAgICB7InJzYWRzaSIsICJSU0EgRGF0YSBTZWN1 cml0eSwgSW5jLiIsIE5JRF9yc2Fkc2ksIDYsICZzb1swXX0sCi1AQCAtMjI3Niw5ICsyMjc2LDEw IEBAIHN0YXRpYyBjb25zdCBBU04xX09CSkVDVCBuaWRfb2Jqc1tOVU1fTkkKK0BAIC0yMjc2LDkg KzIyNzYsMTEgQEAgc3RhdGljIGNvbnN0IEFTTjFfT0JKRUNUIG5pZF9vYmpzW05VTV9OSQogICAg ICB7ImhtYWNXaXRoU0hBNTEyLTIyNCIsICJobWFjV2l0aFNIQTUxMi0yMjQiLCBOSURfaG1hY1dp dGhTSEE1MTJfMjI0LCA4LCAmc29bNzc0NV19LAogICAgICB7ImhtYWNXaXRoU0hBNTEyLTI1NiIs ICJobWFjV2l0aFNIQTUxMi0yNTYiLCBOSURfaG1hY1dpdGhTSEE1MTJfMjU2LCA4LCAmc29bNzc1 M119LAogICAgICB7IlNTSEtERiIsICJzc2hrZGYiLCBOSURfc3Noa2RmfSwKICsgICAgeyJLQktE RiIsICJrYmtkZiIsIE5JRF9rYmtkZn0sCisrICAgIHsiS1JCNUtERiIsICJrcmI1a2RmIiwgTklE X2tyYjVrZGZ9LAogIH07CiAgCiAtI2RlZmluZSBOVU1fU04gMTE4NwotKyNkZWZpbmUgTlVNX1NO IDExODgKKysjZGVmaW5lIE5VTV9TTiAxMTg5CiAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBz bl9vYmpzW05VTV9TTl0gPSB7CiAgICAgICAzNjQsICAgIC8qICJBRF9EVkNTIiAqLwogICAgICAg NDE5LCAgICAvKiAiQUVTLTEyOC1DQkMiICovCi1AQCAtMjQ0Miw2ICsyNDQzLDcgQEAgc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGludCBzbl9vYmpzW05VTV9TTgorQEAgLTI0NDIsNyArMjQ0NCw5IEBA IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc25fb2Jqc1tOVU1fU04KICAgICAgIDE4MywgICAg LyogIklTTy1VUyIgKi8KICAgICAgIDY0NSwgICAgLyogIklUVS1UIiAqLwogICAgICAgNjQ2LCAg ICAvKiAiSk9JTlQtSVNPLUlUVS1UIiAqLwogKyAgICAxMTk2LCAgICAvKiAiS0JLREYiICovCiAg ICAgICA3NzMsICAgIC8qICJLSVNBIiAqLworKyAgICAxMTk3LCAgICAvKiAiS1JCNUtERiIgKi8K ICAgICAgMTA2MywgICAgLyogIkt4QU5ZIiAqLwogICAgICAxMDM5LCAgICAvKiAiS3hESEUiICov Ci1AQCAtMzQ2OSw3ICszNDcxLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzbl9vYmpz W05VTV9TTgorICAgICAxMDQxLCAgICAvKiAiS3hESEUtUFNLIiAqLworQEAgLTM0NjksNyArMzQ3 Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc25fb2Jqc1tOVU1fU04KICAgICAgMTA5 MywgICAgLyogIng1MDlFeHRBZG1pc3Npb24iICovCiAgfTsKICAKIC0jZGVmaW5lIE5VTV9MTiAx MTg3Ci0rI2RlZmluZSBOVU1fTE4gMTE4OAorKyNkZWZpbmUgTlVNX0xOIDExODkKICBzdGF0aWMg Y29uc3QgdW5zaWduZWQgaW50IGxuX29ianNbTlVNX0xOXSA9IHsKICAgICAgIDM2MywgICAgLyog IkFEIFRpbWUgU3RhbXBpbmciICovCiAgICAgICA0MDUsICAgIC8qICJBTlNJIFg5LjYyIiAqLwot QEAgLTQyNjIsNiArNDI2NCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbG5fb2Jqc1tO VU1fTE4KK0BAIC00MjYyLDggKzQyNjYsMTAgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBs bl9vYmpzW05VTV9MTgogICAgICAgOTU3LCAgICAvKiAianVyaXNkaWN0aW9uQ291bnRyeU5hbWUi ICovCiAgICAgICA5NTUsICAgIC8qICJqdXJpc2RpY3Rpb25Mb2NhbGl0eU5hbWUiICovCiAgICAg ICA5NTYsICAgIC8qICJqdXJpc2RpY3Rpb25TdGF0ZU9yUHJvdmluY2VOYW1lIiAqLwogKyAgICAx MTk2LCAgICAvKiAia2JrZGYiICovCiAgICAgICAxNTAsICAgIC8qICJrZXlCYWciICovCiAgICAg ICA3NzMsICAgIC8qICJraXNhIiAqLworKyAgICAxMTk3LCAgICAvKiAia3JiNWtkZiIgKi8KICAg ICAgMTA2MywgICAgLyogImt4LWFueSIgKi8KKyAgICAgMTAzOSwgICAgLyogImt4LWRoZSIgKi8K KyAgICAgMTA0MSwgICAgLyogImt4LWRoZS1wc2siICovCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4x ZC9jcnlwdG8vb2JqZWN0cy9vYmplY3RzLnR4dC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlw dG8vb2JqZWN0cy9vYmplY3RzLnR4dAotLS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9vYmplY3Rz L29iamVjdHMudHh0LmtyYjUta2RmCTIwMTktMTEtMTIgMTM6MzA6MzYuMjYzNzQ4OTM3ICswMTAw Ci0rKysgb3BlbnNzbC0xLjEuMWQvY3J5cHRvL29iamVjdHMvb2JqZWN0cy50eHQJMjAxOS0xMS0x MiAxMzozMDozNi4yODY3NDg1MjMgKzAxMDAKLUBAIC0xNjAzLDYgKzE2MDMsOSBAQCBzZWNnLXNj aGVtZSAxNCAzIDogZGhTaW5nbGVQYXNzLWNvZmFjdG9yCistLS0gb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL29iamVjdHMvb2JqZWN0cy50eHQua3JiNS1rZGYJMjAxOS0xMS0xMyAxMjoxMTozNC43MDc2 NTYyMTUgKzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0cy9vYmplY3RzLnR4 dAkyMDE5LTExLTEzIDEyOjExOjM0LjczMTY1NTc4NyArMDEwMAorQEAgLTE2MDMsNiArMTYwMywx MiBAQCBzZWNnLXNjaGVtZSAxNCAzIDogZGhTaW5nbGVQYXNzLWNvZmFjdG9yCiAgIyBOSUQgZm9y IFNTSEtERgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFNTSEtERiAgICAgICAgICAg IDogc3Noa2RmCiAgCiArIyBOSUQgZm9yIEtCS0RGCiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogS0JLREYgICAgICAgICAgICAgOiBrYmtkZgogKworKyMgTklEIGZvciBLUkI1S0RGCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogS1JCNUtERiAgICAgICAgICAgOiBrcmI1a2Rm CisrCiAgIyBSRkMgNDU1NgogIDEgMyA2IDEgNSAyIDMgOiBpZC1wa2luaXQKICBpZC1wa2luaXQg NCAgICAgICAgICAgICAgICAgICAgIDogcGtJbml0Q2xpZW50QXV0aCAgICAgIDogUEtJTklUIENs aWVudCBBdXRoCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0cy9vYmpfbWFj Lm51bS5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9jcnlwdG8vb2JqZWN0cy9vYmpfbWFjLm51bQot LS0tIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9vYmplY3RzL29ial9tYWMubnVtLmtyYjUta2RmCTIw MTktMTEtMTIgMTM6MzA6MzYuMjYzNzQ4OTM3ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWQvY3J5 cHRvL29iamVjdHMvb2JqX21hYy5udW0JMjAxOS0xMS0xMiAxMzozMDozNi4yODY3NDg1MjMgKzAx MDAKLUBAIC0xMTkzLDMgKzExOTMsNCBAQCBtYWdtYV9tYWMJCTExOTIKKy0tLSBvcGVuc3NsLTEu MS4xZC9jcnlwdG8vb2JqZWN0cy9vYmpfbWFjLm51bS5rcmI1LWtkZgkyMDE5LTExLTEzIDEyOjEx OjM0LjcwNzY1NjIxNSArMDEwMAorKysrIG9wZW5zc2wtMS4xLjFkL2NyeXB0by9vYmplY3RzL29i al9tYWMubnVtCTIwMTktMTEtMTMgMTI6MTE6MzQuNzMyNjU1NzY5ICswMTAwCitAQCAtMTE5Mywz ICsxMTkzLDUgQEAgbWFnbWFfbWFjCQkxMTkyCiAgaG1hY1dpdGhTSEE1MTJfMjI0CQkxMTkzCiAg aG1hY1dpdGhTSEE1MTJfMjU2CQkxMTk0CiAgc3Noa2RmCQkxMTk1CiAra2JrZGYJCTExOTYKKytr cmI1a2RmCQkxMTk3CiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuMy9FVlBfS0RGX0NU WC5wb2Qua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRVZQX0tERl9DVFgucG9kCi0t LS0gb3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRVZQX0tERl9DVFgucG9kLmtyYjUta2RmCTIwMTkt MTEtMTIgMTM6MzA6MzYuMjU0NzQ5MDk5ICswMTAwCi0rKysgb3BlbnNzbC0xLjEuMWQvZG9jL21h bjMvRVZQX0tERl9DVFgucG9kCTIwMTktMTEtMTIgMTM6MzA6MzYuMjg2NzQ4NTIzICswMTAwCist LS0gb3BlbnNzbC0xLjEuMWQvZG9jL21hbjMvRVZQX0tERl9DVFgucG9kLmtyYjUta2RmCTIwMTkt MTEtMTMgMTI6MTE6MzQuNjk4NjU2Mzc1ICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQvZG9jL21h bjMvRVZQX0tERl9DVFgucG9kCTIwMTktMTEtMTMgMTI6MTE6MzQuNzMyNjU1NzY5ICswMTAwCiBA QCAtMTQwLDcgKzE0MCwxNCBAQCBUaGUgdmFsdWUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGEg ZGVjCiAgVGhpcyBjb250cm9sIGV4cGVjdHMgb25lIGFyZ3VtZW50OiBDPEVWUF9NRCAqbWQ+CiAg CkBAIC03MzIsOSArMTIwOSw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW4zL0VW UF9LREZfQ1RYLnBvZC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuCiAgRVZQX0tERl9j dHJsX3N0cigpIHR5cGUgc3RyaW5nOiAibWQiCiAgCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9k b2MvbWFuNy9FVlBfS0RGX0tCLnBvZC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuNy9F VlBfS0RGX0tCLnBvZAotLS0tIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZfS0IucG9k LmtyYjUta2RmCTIwMTktMTEtMTIgMTM6MzA6MzYuMjg2NzQ4NTIzICswMTAwCi0rKysgb3BlbnNz bC0xLjEuMWQvZG9jL21hbjcvRVZQX0tERl9LQi5wb2QJMjAxOS0xMS0xMiAxMzozMDozNi4yODY3 NDg1MjMgKzAxMDAKLUBAIC0wLDAgKzEsMTc3IEBACistLS0gb3BlbnNzbC0xLjEuMWQvZG9jL21h bjcvRVZQX0tERl9LQi5wb2Qua3JiNS1rZGYJMjAxOS0xMS0xMyAxMjoxMTozNC43MzI2NTU3Njkg KzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuNy9FVlBfS0RGX0tCLnBvZAkyMDE5LTEx LTEzIDEyOjExOjM0LjczMjY1NTc2OSArMDEwMAorQEAgLTAsMCArMSwxNzMgQEAKICs9cG9kCiAr CiArPWhlYWQxIE5BTUUKQEAgLTg2NSwxMyArMTM0Miw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2RvYy9tYW43L0VWUF9LREZfS0IucG9kLmtyYjUta2RmIG9wZW5zc2wtMS4xLjFkL2RvYy9t YW43CiArIHVuc2lnbmVkIGNoYXIgb3V0WzEwXTsKICsgdW5zaWduZWQgY2hhciAqaXYgPSAic2l4 dGVlbiBieXRlcyBpdiI7CiArCi0rIGtkZiA9IEVWUF9LREZfZmV0Y2goTlVMTCwgIktCS0RGIiwg TlVMTCk7Ci0rIGtjdHggPSBFVlBfS0RGX0NUWF9uZXcoa2RmKTsKLSsgRVZQX0tERl9mcmVlKGtk Zik7Ci0rCiArIGtjdHggPSBFVlBfS0RGX0NUWF9uZXdfaWQoRVZQX0tERl9LQik7CiArCi0rIEVW UF9LREZfY3RybChrY3R4LCBFVlBfS0RGX0NUUkxfU0VUX0NJUEhFUiwgRVZQX2Flc18yNTZfZWNi KCkpOworKyBFVlBfS0RGX2N0cmwoa2N0eCwgRVZQX0tERl9DVFJMX1NFVF9DSVBIRVIsIEVWUF9h ZXNfMjU2X2NiYygpKTsKICsgRVZQX0tERl9jdHJsKGtjdHgsIEVWUF9LREZfQ1RSTF9TRVRfS0Jf TUFDX1RZUEUsIEVWUF9LREZfS0JfTUFDX1RZUEVfQ01BQyk7CiArIEVWUF9LREZfY3RybChrY3R4 LCBFVlBfS0RGX0NUUkxfU0VUX0tCX01PREUsIEVWUF9LREZfS0JfTU9ERV9GRUVEQkFDSyk7CiAr IEVWUF9LREZfY3RybChrY3R4LCBFVlBfS0RGX0NUUkxfU0VUX0tFWSwgInNlY3JldCIsIHN0cmxl bigic2VjcmV0IikpOwpAQCAtOTEyLDkgKzEzODUsMTIwIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2RvYy9tYW43L0VWUF9LREZfS0IucG9kLmtyYjUta2RmIG9wZW5zc2wtMS4xLjFkL2RvYy9t YW43CiArTDxodHRwczovL3d3dy5vcGVuc3NsLm9yZy9zb3VyY2UvbGljZW5zZS5odG1sPi4KICsK ICs9Y3V0CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuNy9FVlBfS0RGX0tSQjVLREYu cG9kLmtyYjUta2RmIG9wZW5zc2wtMS4xLjFkL2RvYy9tYW43L0VWUF9LREZfS1JCNUtERi5wb2QK Ky0tLSBvcGVuc3NsLTEuMS4xZC9kb2MvbWFuNy9FVlBfS0RGX0tSQjVLREYucG9kLmtyYjUta2Rm CTIwMTktMTEtMTMgMTI6MTE6MzQuNzMyNjU1NzY5ICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQv ZG9jL21hbjcvRVZQX0tERl9LUkI1S0RGLnBvZAkyMDE5LTExLTEzIDEyOjExOjM0LjczMjY1NTc2 OSArMDEwMAorQEAgLTAsMCArMSwxMDcgQEAKKys9cG9kCisrCisrPWhlYWQxIE5BTUUKKysKKytF VlBfS0RGX0tSQjVLREYgLSBUaGUgUkZDMzk2MSBLcmI1IEtERiBFVlBfS0RGIGltcGxlbWVudGF0 aW9uCisrCisrPWhlYWQxIERFU0NSSVBUSU9OCisrCisrU3VwcG9ydCBmb3IgY29tcHV0aW5nIHRo ZSBCPEtSQjVLREY+IEtERiB0aHJvdWdoIHRoZSBCPEVWUF9LREY+IEFQSS4KKysKKytUaGUgQjxF VlBfS0RGX0tSQjVLREY+IGFsZ29yaXRobSBpbXBsZW1lbnRzIHRoZSBrZXkgZGVyaXZhdGlvbiBm dW5jdGlvbiBkZWZpbmVkCisraW4gUkZDIDM5NjEsIHNlY3Rpb24gNS4xIGFuZCBpcyB1c2VkIGJ5 IEtyYjUgdG8gZGVyaXZlIHNlc3Npb24ga2V5cy4KKytUaHJlZSBpbnB1dHMgYXJlIHJlcXVpcmVk IHRvIHBlcmZvcm0ga2V5IGRlcml2YXRpb246IGEgY2lwaGVyLCAoZm9yIGV4YW1wbGUKKytBRVMt MTI4LUNCQyksIHRoZSBpbml0aWFsIGtleSwgYW5kIGEgY29uc3RhbnQuCisrCisrPWhlYWQyIE51 bWVyaWMgaWRlbnRpdHkKKysKKytCPEVWUF9LREZfS1JCNUtERj4gaXMgdGhlIG51bWVyaWMgaWRl bnRpdHkgZm9yIHRoaXMgaW1wbGVtZW50YXRpb247IGl0IGNhbiBiZSB1c2VkIHdpdGggdGhlCisr RVZQX0tERl9DVFhfbmV3X2lkKCkgZnVuY3Rpb24uCisrCisrPWhlYWQyIFN1cHBvcnRlZCBjb250 cm9scworKworK1RoZSBzdXBwb3J0ZWQgY29udHJvbHMgYXJlOgorKworKz1vdmVyIDQKKysKKys9 aXRlbSBCPEVWUF9LREZfQ1RSTF9TRVRfQ0lQSEVSPgorKworKz1pdGVtIEI8RVZQX0tERl9DVFJM X1NFVF9LRVk+CisrCisrVGhlc2UgY29udHJvbHMgd29yayBhcyBkZXNjcmliZWQgaW4gTDxFVlBf S0RGX0NUWCgzKS9DT05UUk9MUz4uCisrCisrPWl0ZW0gQjxFVlBfS0RGX0NUUkxfU0VUX0tSQjVL REZfQ09OU1RBTlQ+CisrCisrVGhpcyBjb250cm9sIGV4cGVjdHMgdHdvIGFyZ3VtZW50czogQzx1 bnNpZ25lZCBjaGFyICpjb25zdGFudD4sIEM8c2l6ZV90IGNvbnN0YW50bGVuPgorKworK1RoaXMg Y29udHJvbCBzZXRzIHRoZSBJPGNvbnN0YW50PiB2YWx1ZSBmb3IgdGhlIEtERi4KKytJZiBhIHZh bHVlIGlzIGFscmVhZHkgc2V0LCB0aGUgY29udGVudHMgYXJlIHJlcGxhY2VkLgorKworKz1iYWNr CisrCisrCisrPWhlYWQxIE5PVEVTCisrCisrQSBjb250ZXh0IGZvciBLUkI1S0RGIGNhbiBiZSBv YnRhaW5lZCBieSBjYWxsaW5nOgorKworKyBFVlBfS0RGX0NUWCAqa2N0eCA9IEVWUF9LREZfQ1RY X25ld19pZChFVlBfS0RGX0tSQjVLREYpOworKworK1RoZSBvdXRwdXQgbGVuZ3RoIG9mIHRoZSBL UkI1S0RGIGRlcml2YXRpb24gaXMgc3BlY2lmaWVkIHZpYSB0aGUgSTxrZXlsZW4+CisrcGFyYW1l dGVyIHRvIHRoZSBMPEVWUF9LREZfZGVyaXZlKDMpPiBmdW5jdGlvbiwgYW5kIE1VU1QgbWF0Y2gg dGhlIGtleQorK2xlbmd0aCBmb3IgdGhlIGNob3NlbiBjaXBoZXIgb3IgYW4gZXJyb3IgaXMgcmV0 dXJuZWQuIE1vcmVvdmVyIHRoZQorK0k8Y29uc3RhbnQ+J3MgbGVuZ3RoIG11c3Qgbm90IGV4Y2Vl ZCB0aGUgYmxvY2sgc2l6ZSBvZiB0aGUgY2lwaGVyLgorK1NpbmNlIHRoZSBLUkI1S0RGIG91dHB1 dCBsZW5ndGggZGVwZW5kcyBvbiB0aGUgY2hvc2VuIGNpcGhlciwgY2FsbGluZworK0w8RVZQX0tE Rl9zaXplKCk+IHRvIG9idGFpbiB0aGUgcmVxdWlzaXRlIGxlbmd0aCByZXR1cm5zIHRoZSBjb3Jy ZWN0IGxlbmd0aAorK29ubHkgYWZ0ZXIgdGhlIGNpcGhlciBpcyBzZXQuIFByaW9yIHRvIHRoYXQg QjxFVlBfTUFYX0tFWV9MRU5HVEg+IGlzIHJldHVybmVkLgorK1RoZSBjYWxsZXIgbXVzdCBhbGxv Y2F0ZSBhIGJ1ZmZlciBvZiB0aGUgY29ycmVjdCBsZW5ndGggZm9yIHRoZSBjaG9zZW4KKytjaXBo ZXIsIGFuZCBwYXNzIHRoYXQgYnVmZmVyIHRvIHRoZSBMPEVWUF9LREZfZGVyaXZlKDMpPiBmdW5j dGlvbiBhbG9uZworK3dpdGggdGhhdCBsZW5ndGguCisrCisrPWhlYWQxIEVYQU1QTEVTCisrCisr VGhpcyBleGFtcGxlIGRlcml2ZXMgYSBrZXkgdXNpbmcgdGhlIEFFUy0xMjgtQ0JDIGNpcGhlcjoK KysKKysgRVZQX0tERl9DVFggKmtjdHg7CisrIHVuc2lnbmVkIGNoYXIga2V5WzE2XSA9ICIwMTIz NC4uLiI7CisrIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRbXSA9ICJJJ20gYSBjb25zdGFudCI7Cisr IHVuc2lnbmVkIGNoYXIgb3V0WzE2XTsKKysgc2l6ZV90IG91dGxlbiA9IHNpemVvZihvdXQpOwor KworKyBrY3R4ID0gRVZQX0tERl9DVFhfbmV3X2lkKEVWUF9LREZfS1JCNUtERik7CisrCisrIEVW UF9LREZfY3RybChrY3R4LCBFVlBfS0RGX0NUUkxfU0VUX0NJUEhFUiwgRVZQX2Flc18xMjhfY2Jj KCkpOworKyBFVlBfS0RGX2N0cmwoa2N0eCwgRVZQX0tERl9DVFJMX1NFVF9LRVksIGtleSwgKHNp emVfdCkxNik7CisrIEVWUF9LREZfY3RybChrY3R4LCBFVlBfS0RGX0NUUkxfU0VUX0tSQjVLREZf Q09OU1RBTlQsIGNvbnN0YW50LCBzdHJsZW4oY29uc3RhbnQpKTsKKysgaWYgKEVWUF9LREZfZGVy aXZlKGtjdHgsIG91dCwgb3V0bGVuKSA8PSAwKQorKyAgICAgLyogRXJyb3IgKi8KKysgRVZQX0tE Rl9DVFhfZnJlZShrY3R4KTsKKysKKys9aGVhZDEgQ09ORk9STUlORyBUTworKworK1JGQyAzOTYx CisrCisrPWhlYWQxIFNFRSBBTFNPCisrCisrTDxFVlBfS0RGX0NUWCgzKT4sCisrTDxFVlBfS0RG X0NUWF9uZXdfaWQoMyk+LAorK0w8RVZQX0tERl9DVFhfZnJlZSgzKT4sCisrTDxFVlBfS0RGX2N0 cmwoMyk+LAorK0w8RVZQX0tERl9zaXplKDMpPiwKKytMPEVWUF9LREZfZGVyaXZlKDMpPiwKKytM PEVWUF9LREZfQ1RYKDMpL0NPTlRST0xTPgorKworKz1oZWFkMSBISVNUT1JZCisrCisrVGhpcyBm dW5jdGlvbmFsaXR5IHdhcyBhZGRlZCB0byBPcGVuU1NMIDMuMC4KKysKKys9aGVhZDEgQ09QWVJJ R0hUCisrCisrQ29weXJpZ2h0IDIwMTYtMjAxOSBUaGUgT3BlblNTTCBQcm9qZWN0IEF1dGhvcnMu IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisrCisrTGljZW5zZWQgdW5kZXIgdGhlIE9wZW5TU0wgbGlj ZW5zZSAodGhlICJMaWNlbnNlIikuICBZb3UgbWF5IG5vdCB1c2UKKyt0aGlzIGZpbGUgZXhjZXB0 IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBjYW4gb2J0YWluIGEgY29weQor K2luIHRoZSBmaWxlIExJQ0VOU0UgaW4gdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gb3IgYXQKKytM PGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL3NvdXJjZS9saWNlbnNlLmh0bWw+LgorKworKz1jdXQK KysKIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9rZGZlcnIuaC5rcmI1 LWtkZiBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmZXJyLmgKLS0tLSBvcGVuc3Ns LTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmZXJyLmgua3JiNS1rZGYJMjAxOS0xMS0xMiAxMzoz MDozNi4yNjQ3NDg5MTkgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wv a2RmZXJyLmgJMjAxOS0xMS0xMiAxMzozMDozNi4yODY3NDg1MjMgKzAxMDAKKy0tLSBvcGVuc3Ns LTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmZXJyLmgua3JiNS1rZGYJMjAxOS0xMS0xMyAxMjox MTozNC43MDg2NTYxOTcgKzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wv a2RmZXJyLmgJMjAxOS0xMS0xMyAxMjoxMTozNC43MzI2NTU3NjkgKzAxMDAKIEBAIC0yNCw2ICsy NCwxMSBAQCBpbnQgRVJSX2xvYWRfS0RGX3N0cmluZ3Modm9pZCk7CiAgICogS0RGIGZ1bmN0aW9u IGNvZGVzLgogICAqLwpAQCAtOTI3LDI4ICsxNTExLDUwIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFkL2luY2x1ZGUvb3BlbnNzbC9rZGZlcnIuaC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9pbmNs dWRlCiAgIyBkZWZpbmUgS0RGX0ZfS0RGX0hLREZfREVSSVZFICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDExMwogICMgZGVmaW5lIEtERl9GX0tERl9IS0RGX05FVyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxMTQKICAjIGRlZmluZSBLREZfRl9LREZfSEtERl9TSVpFICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMTE1Ci1AQCAtNjEsNyArNjYsOSBAQCBpbnQgRVJSX2xvYWRf S0RGX3N0cmluZ3Modm9pZCk7CitAQCAtNDMsNiArNDgsOCBAQCBpbnQgRVJSX2xvYWRfS0RGX3N0 cmluZ3Modm9pZCk7CisgIyBkZWZpbmUgS0RGX0ZfS0RGX1RMUzFfUFJGX0NUUkxfU1RSICAgICAg ICAgICAgICAgICAgICAgIDEyNQorICMgZGVmaW5lIEtERl9GX0tERl9UTFMxX1BSRl9ERVJJVkUg ICAgICAgICAgICAgICAgICAgICAgICAxMjYKKyAjIGRlZmluZSBLREZfRl9LREZfVExTMV9QUkZf TkVXICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI3CisrIyBkZWZpbmUgS0RGX0ZfS1JCNUtE RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzOQorKyMgZGVmaW5lIEtERl9G X0tSQjVLREZfREVSSVZFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNDAKKyAjIGRlZmlu ZSBLREZfRl9QQktERjJfU0VUX01FTUJVRiAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4Cisg IyBkZWZpbmUgS0RGX0ZfUEtFWV9IS0RGX0NUUkxfU1RSICAgICAgICAgICAgICAgICAgICAgICAg IDEwMworICMgZGVmaW5lIEtERl9GX1BLRVlfSEtERl9ERVJJVkUgICAgICAgICAgICAgICAgICAg ICAgICAgICAxMDIKK0BAIC02MSw3ICs2OCwxMyBAQCBpbnQgRVJSX2xvYWRfS0RGX3N0cmluZ3Mo dm9pZCk7CiAgLyoKICAgKiBLREYgcmVhc29uIGNvZGVzLgogICAqLworKyMgZGVmaW5lIEtERl9S X0ZBSUxFRF9UT19HRU5FUkFURV9LRVkgICAgICAgICAgICAgICAgICAgICAxMTgKICsjIGRlZmlu ZSBLREZfUl9JTlZBTElEX0NJUEhFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTE2Cisr IyBkZWZpbmUgS0RGX1JfSU5WQUxJRF9DT05TVEFOVF9MRU5HVEggICAgICAgICAgICAgICAgICAg IDExOQogICMgZGVmaW5lIEtERl9SX0lOVkFMSURfRElHRVNUICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxMDAKICsjIGRlZmluZSBLREZfUl9JTlZBTElEX1NFRURfTEVOR1RIICAgICAgICAg ICAgICAgICAgICAgICAgMTE3CisrIyBkZWZpbmUgS0RGX1JfTUlTU0lOR19DSVBIRVIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDEyMAorKyMgZGVmaW5lIEtERl9SX01JU1NJTkdfQ09OU1RB TlQgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjEKICAjIGRlZmluZSBLREZfUl9NSVNTSU5H X0lURVJBVElPTl9DT1VOVCAgICAgICAgICAgICAgICAgICAgMTA5CiAgIyBkZWZpbmUgS0RGX1Jf TUlTU0lOR19LRVkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwNAogICMgZGVmaW5l IEtERl9SX01JU1NJTkdfTUVTU0FHRV9ESUdFU1QgICAgICAgICAgICAgICAgICAgICAxMDUKK0BA IC03Niw2ICs4OSw3IEBAIGludCBFUlJfbG9hZF9LREZfc3RyaW5ncyh2b2lkKTsKKyAjIGRlZmlu ZSBLREZfUl9VTktOT1dOX1BBUkFNRVRFUl9UWVBFICAgICAgICAgICAgICAgICAgICAgMTAzCisg IyBkZWZpbmUgS0RGX1JfVkFMVUVfRVJST1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDEwOAorICMgZGVmaW5lIEtERl9SX1ZBTFVFX01JU1NJTkcgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxMDIKKysjIGRlZmluZSBLREZfUl9XUk9OR19GSU5BTF9CTE9DS19MRU5HVEggICAg ICAgICAgICAgICAgICAgMTIyCisgIyBkZWZpbmUgS0RGX1JfV1JPTkdfT1VUUFVUX0JVRkZFUl9T SVpFICAgICAgICAgICAgICAgICAgIDExMgorIAorICNlbmRpZgogZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvaW5jbHVkZS9vcGVuc3NsL2tkZi5oLmtyYjUta2RmIG9wZW5zc2wtMS4xLjFkL2luY2x1 ZGUvb3BlbnNzbC9rZGYuaAotLS0tIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9rZGYu aC5rcmI1LWtkZgkyMDE5LTExLTEyIDEzOjMwOjM2LjI2Mzc0ODkzNyArMDEwMAotKysrIG9wZW5z c2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9rZGYuaAkyMDE5LTExLTEyIDEzOjMwOjM2LjI4Nzc0 ODUwNSArMDEwMAotQEAgLTIxLDYgKzIxLDcgQEAgZXh0ZXJuICJDIiB7CistLS0gb3BlbnNzbC0x LjEuMWQvaW5jbHVkZS9vcGVuc3NsL2tkZi5oLmtyYjUta2RmCTIwMTktMTEtMTMgMTI6MTE6MzQu NzA4NjU2MTk3ICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVuc3NsL2tkZi5o CTIwMTktMTEtMTMgMTI6MTE6MzQuNzMzNjU1NzUyICswMTAwCitAQCAtMjEsNiArMjEsOCBAQCBl eHRlcm4gIkMiIHsKICAjIGRlZmluZSBFVlBfS0RGX1RMUzFfUFJGICAgTklEX3RsczFfcHJmCiAg IyBkZWZpbmUgRVZQX0tERl9IS0RGICAgICAgIE5JRF9oa2RmCiAgIyBkZWZpbmUgRVZQX0tERl9T U0hLREYgICAgIE5JRF9zc2hrZGYKICsjIGRlZmluZSBFVlBfS0RGX0tCICAgICAgICAgTklEX2ti a2RmCisrIyBkZWZpbmUgRVZQX0tERl9LUkI1S0RGICAgIE5JRF9rcmI1a2RmCiAgCiAgRVZQX0tE Rl9DVFggKkVWUF9LREZfQ1RYX25ld19pZChpbnQgaWQpOwogIHZvaWQgRVZQX0tERl9DVFhfZnJl ZShFVlBfS0RGX0NUWCAqY3R4KTsKLUBAIC01MSw2ICs1MiwxMSBAQCBpbnQgRVZQX0tERl9kZXJp dmUoRVZQX0tERl9DVFggKmN0eCwgdW5zCitAQCAtNTEsNiArNTMsMTIgQEAgaW50IEVWUF9LREZf ZGVyaXZlKEVWUF9LREZfQ1RYICpjdHgsIHVucwogICMgZGVmaW5lIEVWUF9LREZfQ1RSTF9TRVRf U1NIS0RGX1hDR0hBU0ggICAgMHgxMCAvKiB1bnNpZ25lZCBjaGFyICosIHNpemVfdCAqLwogICMg ZGVmaW5lIEVWUF9LREZfQ1RSTF9TRVRfU1NIS0RGX1NFU1NJT05fSUQgMHgxMSAvKiB1bnNpZ25l ZCBjaGFyICosIHNpemVfdCAqLwogICMgZGVmaW5lIEVWUF9LREZfQ1RSTF9TRVRfU1NIS0RGX1RZ UEUgICAgICAgMHgxMiAvKiBpbnQgKi8KQEAgLTk1NywxMCArMTU2MywxMSBAQCBkaWZmIC11cCBv cGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wva2RmLmgua3JiNS1rZGYgb3BlbnNzbC0xLjEu MWQvaW5jbHVkZS9vcAogKyMgZGVmaW5lIEVWUF9LREZfQ1RSTF9TRVRfQ0lQSEVSICAgICAgICAw eDE1IC8qIEVWUF9DSVBIRVIgKiAqLwogKyMgZGVmaW5lIEVWUF9LREZfQ1RSTF9TRVRfS0JfSU5G TyAgICAgICAweDE2IC8qIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90ICovCiArIyBkZWZpbmUgRVZQ X0tERl9DVFJMX1NFVF9LQl9TRUVEICAgICAgIDB4MTcgLyogdW5zaWduZWQgY2hhciAqLCBzaXpl X3QgKi8KKysjIGRlZmluZSBFVlBfS0RGX0NUUkxfU0VUX0tSQjVLREZfQ09OU1RBTlQgIDB4MTgg LyogdW5zaWduZWQgY2hhciAqLCBzaXplX3QgKi8KICAKICAjIGRlZmluZSBFVlBfS0RGX0hLREZf TU9ERV9FWFRSQUNUX0FORF9FWFBBTkQgIDAKICAjIGRlZmluZSBFVlBfS0RGX0hLREZfTU9ERV9F WFRSQUNUX09OTFkgICAgICAgIDEKLUBAIC02Myw2ICs2OSwxMiBAQCBpbnQgRVZQX0tERl9kZXJp dmUoRVZQX0tERl9DVFggKmN0eCwgdW5zCitAQCAtNjMsNiArNzEsMTIgQEAgaW50IEVWUF9LREZf ZGVyaXZlKEVWUF9LREZfQ1RYICpjdHgsIHVucwogICNkZWZpbmUgRVZQX0tERl9TU0hLREZfVFlQ RV9JTlRFR1JJVFlfS0VZX0NMSV9UT19TUlYgNjkKICAjZGVmaW5lIEVWUF9LREZfU1NIS0RGX1RZ UEVfSU5URUdSSVRZX0tFWV9TUlZfVE9fQ0xJIDcwCiAgCkBAIC05NzQsOSArMTU4MSw5IEBAIGRp ZmYgLXVwIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9rZGYuaC5rcmI1LWtkZiBvcGVu c3NsLTEuMS4xZC9pbmNsdWRlL29wCiAgCiAgIyBkZWZpbmUgRVZQX1BLRVlfQ1RSTF9UTFNfTUQg ICAgICAgICAgICAgICAgICAgKEVWUF9QS0VZX0FMR19DVFJMKQogZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvaW5jbHVkZS9vcGVuc3NsL29ial9tYWMuaC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC9p bmNsdWRlL29wZW5zc2wvb2JqX21hYy5oCi0tLS0gb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9vcGVu c3NsL29ial9tYWMuaC5rcmI1LWtkZgkyMDE5LTExLTEyIDEzOjMwOjM2LjI2NDc0ODkxOSArMDEw MAotKysrIG9wZW5zc2wtMS4xLjFkL2luY2x1ZGUvb3BlbnNzbC9vYmpfbWFjLmgJMjAxOS0xMS0x MiAxMzozMDozNi4yODc3NDg1MDUgKzAxMDAKLUBAIC00OTc0LDYgKzQ5NzQsMTAgQEAKKy0tLSBv cGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvb2JqX21hYy5oLmtyYjUta2RmCTIwMTktMTEt MTMgMTI6MTE6MzQuNzA4NjU2MTk3ICswMTAwCisrKysgb3BlbnNzbC0xLjEuMWQvaW5jbHVkZS9v cGVuc3NsL29ial9tYWMuaAkyMDE5LTExLTEzIDEyOjExOjM0LjczMzY1NTc1MiArMDEwMAorQEAg LTQ5NzQsNiArNDk3NCwxNCBAQAogICNkZWZpbmUgTE5fc3Noa2RmICAgICAgICAgICAgICAgInNz aGtkZiIKICAjZGVmaW5lIE5JRF9zc2hrZGYgICAgICAgICAgICAgIDEyMDMKICAKQEAgLTk4NCwx MyArMTU5MSwxNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xZC9pbmNsdWRlL29wZW5zc2wvb2Jq X21hYy5oLmtyYjUta2RmIG9wZW5zc2wtMS4xLjFkL2luY2x1ZAogKyNkZWZpbmUgTE5fa2JrZGYg ICAgICAgICAgICAgICAia2JrZGYiCiArI2RlZmluZSBOSURfa2JrZGYgICAgICAgICAgICAgIDEy MDQKICsKKysjZGVmaW5lIFNOX2tyYjVrZGYgICAgICAgICAgICAgIktSQjVLREYiCisrI2RlZmlu ZSBMTl9rcmI1a2RmICAgICAgICAgICAgICJrcmI1a2RmIgorKyNkZWZpbmUgTklEX2tyYjVrZGYg ICAgICAgICAgICAxMjA1CisrCiAgI2RlZmluZSBTTl9pZF9wa2luaXQgICAgICAgICAgICAiaWQt cGtpbml0IgogICNkZWZpbmUgTklEX2lkX3BraW5pdCAgICAgICAgICAgMTAzMQogICNkZWZpbmUg T0JKX2lkX3BraW5pdCAgICAgICAgICAgMUwsM0wsNkwsMUwsNUwsMkwsM0wKIGRpZmYgLXVwIG9w ZW5zc2wtMS4xLjFkL3Rlc3QvZXZwX2tkZl90ZXN0LmMua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQv dGVzdC9ldnBfa2RmX3Rlc3QuYwotLS0tIG9wZW5zc2wtMS4xLjFkL3Rlc3QvZXZwX2tkZl90ZXN0 LmMua3JiNS1rZGYJMjAxOS0xMS0xMiAxMzozMDozNi4yNTc3NDkwNDUgKzAxMDAKLSsrKyBvcGVu c3NsLTEuMS4xZC90ZXN0L2V2cF9rZGZfdGVzdC5jCTIwMTktMTEtMTIgMTY6MzU6MTkuMjY1MjM3 NjY0ICswMTAwCi1AQCAtMjI1LDggKzIyNSwyNjEgQEAgZXJyOgorLS0tIG9wZW5zc2wtMS4xLjFk L3Rlc3QvZXZwX2tkZl90ZXN0LmMua3JiNS1rZGYJMjAxOS0xMS0xMyAxMjoxMTozNC43MDA2NTYz MzkgKzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xZC90ZXN0L2V2cF9rZGZfdGVzdC5jCTIwMTktMTEt MTMgMTI6Mjg6MzMuOTMzNTA3NTY4ICswMTAwCitAQCAtMjI1LDEzICsyMjUsMzExIEBAIGVycjoK ICB9CiAgI2VuZGlmCiAgCkBAIC0xMjQzLDYgKzE4NTQsNTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWQvdGVzdC9ldnBfa2RmX3Rlc3QuYy5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC90ZXN0L2V2 cF9rZGYKICsgICAgcmV0dXJuIHJldDsKICt9CiArCisrc3RhdGljIGludCB0ZXN0X2tkZl9rcmI1 a2RmKHZvaWQpCisreworKyAgICBpbnQgcmV0ID0gMDsKKysgICAgRVZQX0tERl9DVFggKmtjdHg7 CisrICAgIHVuc2lnbmVkIGNoYXIgb3V0WzE2XTsKKysgICAgc3RhdGljIHVuc2lnbmVkIGNoYXIg a2V5W10gPSB7CisrICAgICAgICAweDQyLCAweDI2LCAweDNDLCAweDZFLCAweDg5LCAweEY0LCAw eEZDLCAweDI4LAorKyAgICAgICAgMHhCOCwgMHhERiwgMHg2OCwgMHhFRSwgMHgwOSwgMHg3OSwg MHg5RiwgMHgxNQorKyAgICB9OworKyAgICBzdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdGFudFtd ID0geworKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg5OQorKyAgICB9OworKyAg ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBleHBlY3RlZFtzaXplb2Yob3V0KV0gPSB7Cisr ICAgICAgICAweDM0LCAweDI4LCAweDBBLCAweDM4LCAweDJCLCAweEM5LCAweDI3LCAweDY5LAor KyAgICAgICAgMHhCMiwgMHhEQSwgMHgyRiwgMHg5RSwgMHhGMCwgMHg2NiwgMHg4NSwgMHg0Qgor KyAgICB9OworKworKyAgICBpZiAoKGtjdHggPSBFVlBfS0RGX0NUWF9uZXdfaWQoRVZQX0tERl9L UkI1S0RGKSkgPT0gTlVMTCkgeworKyAgICAgICAgVEVTVF9lcnJvcigiRVZQX0tERl9LUkI1S0RG Iik7CisrICAgICAgICBnb3RvIGVycjsKKysgICAgfQorKyAgICBpZiAoRVZQX0tERl9jdHJsKGtj dHgsIEVWUF9LREZfQ1RSTF9TRVRfQ0lQSEVSLCBFVlBfYWVzXzEyOF9jYmMoKSkgPD0gMCkgewor KyAgICAgICAgVEVTVF9lcnJvcigiRVZQX0tERl9DVFJMX1NFVF9DSVBIRVIiKTsKKysgICAgICAg IGdvdG8gZXJyOworKyAgICB9CisrICAgIGlmIChFVlBfS0RGX2N0cmwoa2N0eCwgRVZQX0tERl9D VFJMX1NFVF9LRVksIGtleSwgc2l6ZW9mKGtleSkpIDw9IDApIHsKKysgICAgICAgIFRFU1RfZXJy b3IoIkVWUF9LREZfQ1RSTF9TRVRfS0VZIik7CisrICAgICAgICBnb3RvIGVycjsKKysgICAgfQor KyAgICBpZiAoRVZQX0tERl9jdHJsKGtjdHgsIEVWUF9LREZfQ1RSTF9TRVRfS1JCNUtERl9DT05T VEFOVCwgY29uc3RhbnQsIHNpemVvZihjb25zdGFudCkpIDw9IDApIHsKKysgICAgICAgIFRFU1Rf ZXJyb3IoIkVWUF9LREZfQ1RSTF9TRVRfS1JCNUtERl9DT05TVEFOVCIpOworKyAgICAgICAgZ290 byBlcnI7CisrICAgIH0KKysKKysgICAgcmV0ID0KKysgICAgICAgIFRFU1RfaW50X2d0KEVWUF9L REZfZGVyaXZlKGtjdHgsIG91dCwgc2l6ZW9mKG91dCkpLCAwKQorKyAgICAgICAgJiYgVEVTVF9t ZW1fZXEob3V0LCBzaXplb2Yob3V0KSwgZXhwZWN0ZWQsIHNpemVvZihleHBlY3RlZCkpOworKwor K2VycjoKKysgICAgRVZQX0tERl9DVFhfZnJlZShrY3R4KTsKKysgICAgcmV0dXJuIHJldDsKKyt9 CisrCisrCiAgaW50IHNldHVwX3Rlc3RzKHZvaWQpCiAgewogKyAgICBBRERfVEVTVCh0ZXN0X2tk Zl9rYmtkZl82ODAzXzEyOCk7CkBAIC0xMjUyLDMgKzE5MDcsMTM2IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4xLjFkL3Rlc3QvZXZwX2tkZl90ZXN0LmMua3JiNS1rZGYgb3BlbnNzbC0xLjEuMWQvdGVz dC9ldnBfa2RmCiAgICAgIEFERF9URVNUKHRlc3Rfa2RmX3RsczFfcHJmKTsKICAgICAgQUREX1RF U1QodGVzdF9rZGZfaGtkZik7CiAgICAgIEFERF9URVNUKHRlc3Rfa2RmX3Bia2RmMik7CisgI2lm bmRlZiBPUEVOU1NMX05PX1NDUllQVAorICAgICBBRERfVEVTVCh0ZXN0X2tkZl9zY3J5cHQpOwor ICNlbmRpZgorKyAgICBBRERfVEVTVCh0ZXN0X2tkZl9rcmI1a2RmKTsKKyAgICAgcmV0dXJuIDE7 CisgfQorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWQvdGVzdC9yZWNpcGVzLzMwLXRlc3RfZXZwX2Rh dGEvZXZwa2RmLnR4dC5rcmI1LWtkZiBvcGVuc3NsLTEuMS4xZC90ZXN0L3JlY2lwZXMvMzAtdGVz dF9ldnBfZGF0YS9ldnBrZGYudHh0CistLS0gb3BlbnNzbC0xLjEuMWQvdGVzdC9yZWNpcGVzLzMw LXRlc3RfZXZwX2RhdGEvZXZwa2RmLnR4dC5rcmI1LWtkZgkyMDE5LTExLTEzIDEyOjExOjM0Ljcx MTY1NjE0MyArMDEwMAorKysrIG9wZW5zc2wtMS4xLjFkL3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2 cF9kYXRhL2V2cGtkZi50eHQJMjAxOS0xMS0xMyAxMzoyNDoxMi45MjcwNjQ0NzkgKzAxMDAKK0BA IC01Mjg2LDMgKzUyODYsMTIzIEBAIEN0cmwuaGV4c2Vzc2lvbl9pZCA9IGhleHNlc3Npb25faWQ6 YTRlYmQKKyBDdHJsLnR5cGUgPSB0eXBlOkEKKyBPdXRwdXQgPSBGRgorIFJlc3VsdCA9IEtERl9N SVNNQVRDSAorKworK1RpdGxlID0gS1JCNUtERiB0ZXN0cyAoZnJvbSBSRkMgMzk2MSB0ZXN0IHZl Y3RvcnMgYW5kIGtyYjUgc291cmNlcykKKysKKysjUkZDMzk2MQorK0tERiA9IEtSQjVLREYKKytD dHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytDdHJsLmhleGtleSA9IGhleGtleTpk Y2UwNmIxZjY0Yzg1N2ExMWMzZGI1N2M1MTg5OWIyY2MxNzkxMDA4Y2U5NzNiOTIKKytDdHJsLmhl eGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDE1NQorK091dHB1dCA9IDkyNTE3OWQwNDU5 MWE3OWI1ZDMxOTJjNGE3ZTljMjg5YjA0OWM3MWY2ZWU2MDRjZAorKworK0tERiA9IEtSQjVLREYK KytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytDdHJsLmhleGtleSA9IGhleGtl eTo1ZTEzZDMxYzcwZWY3NjU3NDY1Nzg1MzFjYjUxYzE1YmYxMWNhODJjOTdjZWU5ZjIKKytDdHJs LmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDFhYQorK091dHB1dCA9IDllNThlNWEx NDZkOTk0MmExMDFjNDY5ODQ1ZDY3YTIwZTNjNDI1OWVkOTEzZjIwNworKworK0tERiA9IEtSQjVL REYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytDdHJsLmhleGtleSA9IGhl eGtleTo5OGU2ZmQ4YTA0YTRiNjg1OWI3NWExNzY1NDBiOTc1MmJhZDNlY2Q2MTBhMjUyYmMKKytD dHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDE1NQorK091dHB1dCA9IDEzZmVm ODBkNzYzZTk0ZWM2ZDEzZmQyY2ExZDA4NTA3MDI0OWRhZDM5ODA4ZWFiZgorKworK0tERiA9IEtS QjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytDdHJsLmhleGtleSA9 IGhleGtleTo2MjJhZWMyNWEyZmUyY2FkNzA5NDY4MGI3YzY0OTQwMjgwMDg0YzFhN2NlYzkyYjUK KytDdHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDFhYQorK091dHB1dCA9IGY4 ZGZiZjA0YjA5N2U2ZDlkYzA3MDI2ODZiY2IzNDg5ZDkxZmQ5YTQ1MTZiNzAzZQorKworK0tERiA9 IEtSQjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytDdHJsLmhleGtl eSA9IGhleGtleTpkM2Y4Mjk4Y2NiMTY2NDM4ZGNiOWI5M2VlNWE3NjI5Mjg2YTQ5MWY4MzhmODAy ZmIKKytDdHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6NmI2NTcyNjI2NTcyNmY3MworK091 dHB1dCA9IDIzNzBkYTU3NWQyYTNkYTg2NGNlYmZkYzUyMDRkNTZkZjc3OWE3ZGY0M2Q5ZGE0Mwor KworK0tERiA9IEtSQjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytD dHJsLmhleGtleSA9IGhleGtleTpjMTA4MTY0OWFkYTc0MzYyZTZhMTQ1OWQwMWRmZDMwZDY3YzIy MzRjOTQwNzA0ZGEKKytDdHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDE1NQor K091dHB1dCA9IDM0ODA1N2VjOThmZGM0ODAxNjE2MWMyYTRjN2E5NDNlOTJhZTQ5MmM5ODkxNzVm NworKworK0tERiA9IEtSQjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMK KytDdHJsLmhleGtleSA9IGhleGtleTo1ZDE1NGFmMjM4ZjQ2NzEzMTU1NzE5ZDU1ZTJmMWY3OTBk ZDY2MWYyNzlhNzkxN2MKKytDdHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDFh YQorK091dHB1dCA9IGE4ODA4YWMyNjdkYWRhM2RjYmU5YTdjODQ2MjZmYmM3NjFjMjk0YjAxMzE1 ZTVjMQorKworK0tERiA9IEtSQjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1D QkMKKytDdHJsLmhleGtleSA9IGhleGtleTo3OTg1NjJlMDQ5ODUyZjU3ZGM4YzM0M2JhMTdmMmNh MWQ5NzM5NGVmYzhhZGM0NDMKKytDdHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAw MDE1NQorK091dHB1dCA9IGM4MTNmODhhM2JlM2IzMzRmNzU0MjVjZTkxNzVmYmUzYzg0OTNiODlj ODcwM2I0OQorKworK0tERiA9IEtSQjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpERVMtRURF My1DQkMKKytDdHJsLmhleGtleSA9IGhleGtleToyNmRjZTMzNGI1NDUyOTJmMmZlYWI5YTg3MDFh ODlhNGI5OWViOTk0MmNlY2QwMTYKKytDdHJsLmhleGNvbnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAw MDAwMDFhYQorK091dHB1dCA9IGY0OGZmZDZlODNmODNlNzM1NGU2OTRmZDI1MmNmODNiZmU1OGY3 ZDViYTM3ZWM1ZAorKworKyNLcmI1IHNvdXJjZXMKKytLREYgPSBLUkI1S0RGCisrQ3RybC5jaXBo ZXIgPSBjaXBoZXI6REVTLUVERTMtQ0JDCisrQ3RybC5oZXhrZXkgPSBoZXhrZXk6ODUwQkI1MTM1 ODU0OENEMDVFODY3NjhDMzEzRTNCRkVGNzUxMTkzN0RDRjcyQzNFCisrQ3RybC5oZXhjb25zdGFu dCA9IGhleGNvbnN0YW50OjAwMDAwMDAyOTkKKytPdXRwdXQgPSBGNzhDNDk2RDE2RTZDMkRBRTBF MEI2QzI0MDU3QTg0QzA0MjZBRUVGMjZGRDZEQ0UKKysKKytLREYgPSBLUkI1S0RGCisrQ3RybC5j aXBoZXIgPSBjaXBoZXI6REVTLUVERTMtQ0JDCisrQ3RybC5oZXhrZXkgPSBoZXhrZXk6ODUwQkI1 MTM1ODU0OENEMDVFODY3NjhDMzEzRTNCRkVGNzUxMTkzN0RDRjcyQzNFCisrQ3RybC5oZXhjb25z dGFudCA9IGhleGNvbnN0YW50OjAwMDAwMDAyQUEKKytPdXRwdXQgPSA1QjU3MjNEMEI2MzRDQjY4 NEMzRUJBNTI2NEU5QTcwRDUyRTY4MzIzMUFEM0M0Q0UKKysKKytLREYgPSBLUkI1S0RGCisrQ3Ry bC5jaXBoZXIgPSBjaXBoZXI6REVTLUVERTMtQ0JDCisrQ3RybC5oZXhrZXkgPSBoZXhrZXk6ODUw QkI1MTM1ODU0OENEMDVFODY3NjhDMzEzRTNCRkVGNzUxMTkzN0RDRjcyQzNFCisrQ3RybC5oZXhj b25zdGFudCA9IGhleGNvbnN0YW50OjAwMDAwMDAyNTUKKytPdXRwdXQgPSBBNzdDOTQ5ODBFOUI3 MzQ1QTgxNTI1QzQyM0E3MzdDRTY3RjRDRDkxQjZCM0RBNDUKKysKKytLREYgPSBLUkI1S0RGCisr Q3RybC5jaXBoZXIgPSBjaXBoZXI6QUVTLTEyOC1DQkMKKytDdHJsLmhleGtleSA9IGhleGtleTo0 MjI2M0M2RTg5RjRGQzI4QjhERjY4RUUwOTc5OUYxNQorK0N0cmwuaGV4Y29uc3RhbnQgPSBoZXhj b25zdGFudDowMDAwMDAwMjk5CisrT3V0cHV0ID0gMzQyODBBMzgyQkM5Mjc2OUIyREEyRjlFRjA2 Njg1NEIKKysKKytLREYgPSBLUkI1S0RGCisrQ3RybC5jaXBoZXIgPSBjaXBoZXI6QUVTLTEyOC1D QkMKKytDdHJsLmhleGtleSA9IGhleGtleTo0MjI2M0M2RTg5RjRGQzI4QjhERjY4RUUwOTc5OUYx NQorK0N0cmwuaGV4Y29uc3RhbnQgPSBoZXhjb25zdGFudDowMDAwMDAwMkFBCisrT3V0cHV0ID0g NUIxNEZDNEUyNTBFMTREREY5RENDRjFBRjY2NzRGNTMKKysKKytLREYgPSBLUkI1S0RGCisrQ3Ry bC5jaXBoZXIgPSBjaXBoZXI6QUVTLTEyOC1DQkMKKytDdHJsLmhleGtleSA9IGhleGtleTo0MjI2 M0M2RTg5RjRGQzI4QjhERjY4RUUwOTc5OUYxNQorK0N0cmwuaGV4Y29uc3RhbnQgPSBoZXhjb25z dGFudDowMDAwMDAwMjU1CisrT3V0cHV0ID0gNEVEMzEwNjM2MjE2ODRGMDlBRThEODk5OTFBRjNF OEYKKysKKytLREYgPSBLUkI1S0RGCisrQ3RybC5jaXBoZXIgPSBjaXBoZXI6QUVTLTI1Ni1DQkMK KytDdHJsLmhleGtleSA9IGhleGtleTpGRTY5N0I1MkJDMEQzQ0UxNDQzMkJBMDM2QTkyRTY1QkJC NTIyODA5OTBBMkZBMjc4ODM5OThENzJBRjMwMTYxCisrQ3RybC5oZXhjb25zdGFudCA9IGhleGNv bnN0YW50OjAwMDAwMDAyOTkKKytPdXRwdXQgPSBCRkFCMzg4QkRDQjIzOEU5RjlDOThENkE4Nzgz MDRGMDREMzBDODI1NTYzNzVBQzUwN0E3QTg1Mjc5MEY0Njc0CisrCisrS0RGID0gS1JCNUtERgor K0N0cmwuY2lwaGVyID0gY2lwaGVyOkFFUy0yNTYtQ0JDCisrQ3RybC5oZXhrZXkgPSBoZXhrZXk6 RkU2OTdCNTJCQzBEM0NFMTQ0MzJCQTAzNkE5MkU2NUJCQjUyMjgwOTkwQTJGQTI3ODgzOTk4RDcy QUYzMDE2MQorK0N0cmwuaGV4Y29uc3RhbnQgPSBoZXhjb25zdGFudDowMDAwMDAwMkFBCisrT3V0 cHV0ID0gQzdDRkQ5Q0Q3NUZFNzkzQTU4NkE1NDJEODdFMEQxMzk2RjExMzRBMTA0QkIxQTkxOTBC OEM5MEFEQTNEREYzNworKworK0tERiA9IEtSQjVLREYKKytDdHJsLmNpcGhlciA9IGNpcGhlcjpB RVMtMjU2LUNCQworK0N0cmwuaGV4a2V5ID0gaGV4a2V5OkZFNjk3QjUyQkMwRDNDRTE0NDMyQkEw MzZBOTJFNjVCQkI1MjI4MDk5MEEyRkEyNzg4Mzk5OEQ3MkFGMzAxNjEKKytDdHJsLmhleGNvbnN0 YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDI1NQorK091dHB1dCA9IDk3MTUxQjRDNzY5NDUwNjNF MkVCMDUyOURDMDY3RDk3RDdCQkE5MDc3NkQ4MTI2RDkxRjM0RjMxMDFBRUE4QkEKKysKKysjU2Ft ZSBhcyB0aGUgZmlyc3QgYnV0IHdpdGggbm8gImZpeHVwIgorK0tERiA9IEtSQjVLREYKKytDdHJs LmNpcGhlciA9IGNpcGhlcjpERVMtRURFMy1DQkMKKytDdHJsLmhleGtleSA9IGhleGtleTpkY2Uw NmIxZjY0Yzg1N2ExMWMzZGI1N2M1MTg5OWIyY2MxNzkxMDA4Y2U5NzNiOTIKKytDdHJsLmhleGNv bnN0YW50ID0gaGV4Y29uc3RhbnQ6MDAwMDAwMDE1NQorK091dHB1dCA9IDkzNTA3OWQxNDQ5MGE3 NWMzMDkzYzRhNmU4YzNiMDQ5YzcxZTZlZTcwNQorKwoKZGlmZiAtLWdpdCBhL29wZW5zc2wuc3Bl YyBiL29wZW5zc2wuc3BlYwppbmRleCA4NTlmNGVhLi4yMWY5NzAwIDEwMDY0NAotLS0gYS9vcGVu c3NsLnNwZWMKKysrIGIvb3BlbnNzbC5zcGVjCkBAIC0yMiw3ICsyMiw3IEBACiBTdW1tYXJ5OiBV dGlsaXRpZXMgZnJvbSB0aGUgZ2VuZXJhbCBwdXJwb3NlIGNyeXB0b2dyYXBoeSBsaWJyYXJ5IHdp dGggVExTIGltcGxlbWVudGF0aW9uCiBOYW1lOiBvcGVuc3NsCiBWZXJzaW9uOiAxLjEuMWQKLVJl bGVhc2U6IDIlez9kaXN0fQorUmVsZWFzZTogMyV7P2Rpc3R9CiBFcG9jaDogMQogIyBXZSBoYXZl IHRvIHJlbW92ZSBjZXJ0YWluIHBhdGVudGVkIGFsZ29yaXRobXMgZnJvbSB0aGUgb3BlbnNzbCBz b3VyY2UKICMgdGFyYmFsbCB3aXRoIHRoZSBob2JibGUtb3BlbnNzbCBzY3JpcHQgd2hpY2ggaXMg aW5jbHVkZWQgYmVsb3cuCkBAIC02Miw2ICs2Miw3IEBAIFBhdGNoNDc6IG9wZW5zc2wtMS4xLjEt dHMtc2hhMjU2LWRlZmF1bHQucGF0Y2gKIFBhdGNoNDg6IG9wZW5zc2wtMS4xLjEtZmlwcy1wb3N0 LXJhbmQucGF0Y2gKIFBhdGNoNDk6IG9wZW5zc2wtMS4xLjEtZXZwLWtkZi5wYXRjaAogUGF0Y2g1 MDogb3BlbnNzbC0xLjEuMS1zc2gta2RmLnBhdGNoCitQYXRjaDYwOiBvcGVuc3NsLTEuMS4xLWty YjUta2RmLnBhdGNoCiAjIEJhY2twb3J0ZWQgZml4ZXMgaW5jbHVkaW5nIHNlY3VyaXR5IGZpeGVz CiBQYXRjaDUxOiBvcGVuc3NsLTEuMS4xLXVwc3RyZWFtLXN5bmMucGF0Y2gKIFBhdGNoNTI6IG9w ZW5zc2wtMS4xLjEtczM5MHgtdXBkYXRlLnBhdGNoCkBAIC0xNzAsNiArMTcxLDcgQEAgY3AgJXtT T1VSQ0UxM30gdGVzdC8KICVwYXRjaDUzIC1wMSAtYiAuY3JuZy10ZXN0CiAlcGF0Y2g1NCAtcDEg LWIgLnJlZ3Jlc3Npb24KICVwYXRjaDU1IC1wMSAtYiAuYWVzLWFzbQorJXBhdGNoNjAgLXAxIC1i IC5rcmI1LWtkZgogCiAKICVidWlsZApAQCAtNDU2LDYgKzQ1OCw5IEBAIGV4cG9ydCBMRF9MSUJS QVJZX1BBVEgKICVsZGNvbmZpZ19zY3JpcHRsZXRzIGxpYnMKIAogJWNoYW5nZWxvZworKiBXZWQg Tm92IDEzIDIwMTkgVG9tw6HFoSBNcsOheiA8dG1yYXpAcmVkaGF0LmNvbT4gMS4xLjFkLTMKKy0g YmFja3BvcnQgb2YgS0JLREYgYW5kIEtSQjVLREYgZnJvbSBtYXN0ZXIKKwogKiBUaHUgT2N0ICAz IDIwMTkgVG9tw6HFoSBNcsOheiA8dG1yYXpAcmVkaGF0LmNvbT4gMS4xLjFkLTIKIC0gcmUtZW5h YmxlIHRoZSBzdGl0Y2hlZCBBRVMtQ0JDLVNIQSBpbXBsZW1lbnRhdGlvbnMKIC0gbWFrZSBBRVMt R0NNIHdvcmsgaW4gRklQUyBtb2RlIGFnYWluCg==