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: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10.2: 2.5.96 (2.6rc1) Date: Mon, 06 Jul 2026 18:31:41 GMT Message-ID: <178336270169.1.6962303694597652349.rpms-amarok-82423e3c2647@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10.2 X-Git-Rev: 82423e3c26471b0cf050be8b36a1c0531562e447 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMC4yCkNvbW1pdCA6IDgyNDIzZTNjMjY0NzFiMGNmMDUwYmU4YjM2YTFjMDUzMTU2 MmU0NDcKQXV0aG9yIDogUmV4IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4KRGF0 ZSAgIDogMjAxMi0wOC0wMlQwNzo1NjoxNS0wNTowMApTdGF0cyAgOiArNzIzLy04MzcgaW4gNiBm aWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvYW1hcm9r L2MvODI0MjNlM2MyNjQ3MWIwY2YwNTBiZThiMzZhMWMwNTMxNTYyZTQ0Nz9icmFuY2g9ZXBlbDEw LjIKCkxvZzoKMi41Ljk2ICgyLjZyYzEpCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8u Z2l0aWdub3JlCmluZGV4IGNmMjAwM2QuLmU2MzI2NmQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUK KysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9hbWFyb2stMi41LjAudGFyLmJ6Mgot L2FtYXJvay0yLjUuOTAudGFyLmJ6MgorL2FtYXJvay0yLjUuOTYudGFyLmJ6MgoKZGlmZiAtLWdp dCBhL2FtYXJvay0yLjUuOTYtbGlibGFzdGZtMS5wYXRjaCBiL2FtYXJvay0yLjUuOTYtbGlibGFz dGZtMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODgxNTU5Ci0t LSAvZGV2L251bGwKKysrIGIvYW1hcm9rLTIuNS45Ni1saWJsYXN0Zm0xLnBhdGNoCkBAIC0wLDAg KzEsNzA2IEBACitkaWZmIC11cCBhbWFyb2stMi41Ljk2L0NNYWtlTGlzdHMudHh0LmxpYmxhc3Rm bTEgYW1hcm9rLTIuNS45Ni9DTWFrZUxpc3RzLnR4dAorLS0tIGFtYXJvay0yLjUuOTYvQ01ha2VM aXN0cy50eHQubGlibGFzdGZtMQkyMDEyLTA3LTMxIDA1OjE3OjIwLjAwMDAwMDAwMCAtMDUwMAor KysrIGFtYXJvay0yLjUuOTYvQ01ha2VMaXN0cy50eHQJMjAxMi0wOC0wMiAwNzo1MjoxMy42NTMx ODc3NDMgLTA1MDAKK0BAIC0xMjksNyArMTI5LDcgQEAgaWYoIFdJVEhfUExBWUVSICkKKyAgICAg IyBtYWNyb19sb2dfZmVhdHVyZSggU1RSSUdJX0ZPVU5EICJzdHJpZ2kiICJJbmRleCBtZXRhZGF0 YSBvZiBmaWxlcyIgImh0dHA6Ly9zdHJpZ2kuc291cmNlZm9yZ2UubmV0IiBGQUxTRSAiIiAiIiAp CisgCisgICAgIG1hY3JvX29wdGlvbmFsX2ZpbmRfcGFja2FnZShMaWJMYXN0Rm0pCistICAgIG1h Y3JvX2xvZ19mZWF0dXJlKCBMSUJMQVNURk1fRk9VTkQgImxpYmxhc3RmbSIgIkVuYWJsZSBMYXN0 LkZtIHNlcnZpY2UsIGluY2x1ZGluZyBzY3JvYmJsaW5nLCBzb25nIHN1Ym1pc3Npb25zLCBhbmQg c3VnZ2VzdGVkIHNvbmcgZHluYW1pYyBwbGF5bGlzdHMiICJodHRwOi8vY2RuLmxhc3QuZm0vc3Jj L2xpYmxhc3RmbS0wLjMuMC50YXIuYnoyIiBGQUxTRSAiIiAidmVyc2lvbiAwLjMueCAodmVyc2lv bnMgMS4wIG9yIGhpZ2hlciBhcmUgaW5jb21wYXRpYmxlKSIgKQorKyAgICBtYWNyb19sb2dfZmVh dHVyZSggTElCTEFTVEZNX0ZPVU5EICJsaWJsYXN0Zm0iICJFbmFibGUgTGFzdC5GbSBzZXJ2aWNl LCBpbmNsdWRpbmcgc2Nyb2JibGluZywgc29uZyBzdWJtaXNzaW9ucywgYW5kIHN1Z2dlc3RlZCBz b25nIGR5bmFtaWMgcGxheWxpc3RzIiAiaHR0cDovL2Nkbi5sYXN0LmZtL3NyYy9saWJsYXN0Zm0t MS4wLjAudGFyLmd6IiBGQUxTRSAiMS4wLjAiICIiICkKKyAgICAgbWFjcm9fYm9vbF90b18wMSgg TElCTEFTVEZNX0ZPVU5EIEhBVkVfTElCTEFTVEZNICkKKyAKKyAgICAgbWFjcm9fb3B0aW9uYWxf ZmluZF9wYWNrYWdlKCBGRm1wZWcgKQorZGlmZiAtdXAgYW1hcm9rLTIuNS45Ni9jbWFrZS9tb2R1 bGVzL0ZpbmRMaWJMYXN0Rm0uY21ha2UubGlibGFzdGZtMSBhbWFyb2stMi41Ljk2L2NtYWtlL21v ZHVsZXMvRmluZExpYkxhc3RGbS5jbWFrZQorLS0tIGFtYXJvay0yLjUuOTYvY21ha2UvbW9kdWxl cy9GaW5kTGliTGFzdEZtLmNtYWtlLmxpYmxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAw MDAwMDAgLTA1MDAKKysrKyBhbWFyb2stMi41Ljk2L2NtYWtlL21vZHVsZXMvRmluZExpYkxhc3RG bS5jbWFrZQkyMDEyLTA4LTAyIDA3OjM4OjI0LjMxNzU1NTg2OSAtMDUwMAorQEAgLTYsNyArNiw3 IEBACisgIyBMSUJMQVNURk1fRk9VTkQsIHdoZXRoZXIgbGlibGFzdGZtIHdhcyBmb3VuZAorIAor IAorLWZpbmRfcGF0aChMSUJMQVNURk1fSU5DTFVERV9ESVIgTkFNRVMgQXVkaW9zY3JvYmJsZXIK KytmaW5kX3BhdGgoTElCTEFTVEZNX0lOQ0xVREVfRElSIE5BTUVTIGxhc3RmbQorICAgIEhJTlRT CisgICAgfi91c3IvaW5jbHVkZQorICAgIC9vcHQvbG9jYWwvaW5jbHVkZQorZGlmZiAtdXAgYW1h cm9rLTIuNS45Ni9zcmMvY29udGV4dC9lbmdpbmVzL3VwY29taW5nZXZlbnRzL1VwY29taW5nRXZl bnRzRW5naW5lLmNwcC5saWJsYXN0Zm0xIGFtYXJvay0yLjUuOTYvc3JjL2NvbnRleHQvZW5naW5l cy91cGNvbWluZ2V2ZW50cy9VcGNvbWluZ0V2ZW50c0VuZ2luZS5jcHAKKy0tLSBhbWFyb2stMi41 Ljk2L3NyYy9jb250ZXh0L2VuZ2luZXMvdXBjb21pbmdldmVudHMvVXBjb21pbmdFdmVudHNFbmdp bmUuY3BwLmxpYmxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAgLTA1MDAKKysr KyBhbWFyb2stMi41Ljk2L3NyYy9jb250ZXh0L2VuZ2luZXMvdXBjb21pbmdldmVudHMvVXBjb21p bmdFdmVudHNFbmdpbmUuY3BwCTIwMTItMDgtMDIgMDc6Mzg6MjQuMzAxNTU2MDY4IC0wNTAwCitA QCAtMjcsMTAgKzI3LDYgQEAKKyAjaW5jbHVkZSAiRW5naW5lQ29udHJvbGxlci5oIgorICNpbmNs dWRlICJMYXN0Rm1FdmVudFhtbFBhcnNlci5oIgorIAorLS8vIExhc3RGbQorLSNpbmNsdWRlIDxs YXN0Zm0vWG1sUXVlcnk+CistI2luY2x1ZGUgPGxhc3RmbS93cy5oPgorLQorIC8vIEtERQorICNp bmNsdWRlIDxLRGF0ZVRpbWU+CisgCitkaWZmIC11cCBhbWFyb2stMi41Ljk2L3NyYy9jb3JlL3N1 cHBvcnQvQW1hcm9rLmgubGlibGFzdGZtMSBhbWFyb2stMi41Ljk2L3NyYy9jb3JlL3N1cHBvcnQv QW1hcm9rLmgKKy0tLSBhbWFyb2stMi41Ljk2L3NyYy9jb3JlL3N1cHBvcnQvQW1hcm9rLmgubGli bGFzdGZtMQkyMDEyLTA3LTMxIDA1OjEwOjU2LjAwMDAwMDAwMCAtMDUwMAorKysrIGFtYXJvay0y LjUuOTYvc3JjL2NvcmUvc3VwcG9ydC9BbWFyb2suaAkyMDEyLTA4LTAyIDA3OjM4OjI0LjMwMTU1 NjA2OCAtMDUwMAorQEAgLTIwMyw2ICsyMDMsNyBAQCBuYW1lc3BhY2UgQW1hcm9rCisgCisgICAg IGlubGluZSBjb25zdCBjaGFyKiBkaXNjb2dzQXBpS2V5KCkgeyByZXR1cm4gIjkxNzM0ZGQ5ODki OyB9CisgICAgIGlubGluZSBjb25zdCBjaGFyKiBsYXN0Zm1BcGlLZXkoKSB7IHJldHVybiAiNDAy ZDNjYThlOWJjOWQzY2Y5Yjg1ZTEyMDI5NDRjYTUiOyB9CisrICAgIGlubGluZSBjb25zdCBjaGFy KiBsYXN0Zm1BcGlTaGFyZWRTZWNyZXQoKSB7IHJldHVybiAiZmUwZGNkZTlmY2QxNGMyZDFkNTA2 NjViNjQ2MzM1ZTkiOyB9CisgICAgIGlubGluZSBjb25zdCBjaGFyKiB5YWhvb0Jvc3NBcGlLZXko KSB7IHJldHVybiAib1FlcFROclYzNEc5U2F0YjFkZ1JaOGhkbDF1aEp2Z3VEU1U1S25sMlhkNEFM Szg1a25ZdDZ5bHIuRlRBNTdYTVJCQS0iOyB9CisgICAgIGlubGluZSBjb25zdCBjaGFyKiBmbGlj a3JBcGlLZXkoKSB7IHJldHVybiAiOWM1YTI4ODExNmMzNGMxN2VjZWUzNzg3NzM5N2ZlMzEiOyB9 CisgfQorZGlmZiAtdXAgYW1hcm9rLTIuNS45Ni9zcmMvTGFzdGZtUmVhZExhYmVsQ2FwYWJpbGl0 eS5jcHAubGlibGFzdGZtMSBhbWFyb2stMi41Ljk2L3NyYy9MYXN0Zm1SZWFkTGFiZWxDYXBhYmls aXR5LmNwcAorLS0tIGFtYXJvay0yLjUuOTYvc3JjL0xhc3RmbVJlYWRMYWJlbENhcGFiaWxpdHku Y3BwLmxpYmxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAgLTA1MDAKKysrKyBh bWFyb2stMi41Ljk2L3NyYy9MYXN0Zm1SZWFkTGFiZWxDYXBhYmlsaXR5LmNwcAkyMDEyLTA4LTAy IDA3OjM4OjI0LjMxODU1NTg1NiAtMDUwMAorQEAgLTIyLDggKzIyLDcgQEAKKyAjaW5jbHVkZSA8 UU1hcD4KKyAjaW5jbHVkZSA8UU5ldHdvcmtSZXBseT4KKyAKKy0jaW5jbHVkZSA8bGFzdGZtL1ht bFF1ZXJ5PgorLSNpbmNsdWRlIDx3cy5oPgorKyNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnkuaD4K KyAjaW5jbHVkZSAiY29yZS9zdXBwb3J0L0FtYXJvay5oIgorIAorIG5hbWVzcGFjZSBDYXBhYmls aXRpZXMKK0BAIC03Miw3ICs3MSw4IEBAIExhc3RmbVJlYWRMYWJlbENhcGFiaWxpdHk6Om9uVGFn c0ZldGNoZWQKKyAgICAgeworICAgICAgICAgY2FzZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9yOgor ICAgICAgICAgeworLSAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtID0gbV9qb2ItPnJl YWRBbGwoKTsKKysgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKKysgICAgICAgICAg ICBsZm0ucGFyc2UobV9qb2ItPnJlYWRBbGwoKSk7CisgICAgICAgICAgICAgUUxpc3Q8bGFzdGZt OjpYbWxRdWVyeT4gdGFncyA9IGxmbS5jaGlsZHJlbiggInRhZyIgKTsKKyAgICAgICAgICAgICBR U3RyaW5nTGlzdCByZXQ7CisgICAgICAgICAgICAgZm9yZWFjaCggY29uc3QgbGFzdGZtOjpYbWxR dWVyeSAmY2hpbGQsIHRhZ3MgKQorZGlmZiAtdXAgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMv YW1wYWNoZS9MYXN0Zm1JbmZvUGFyc2VyLmNwcC5saWJsYXN0Zm0xIGFtYXJvay0yLjUuOTYvc3Jj L3NlcnZpY2VzL2FtcGFjaGUvTGFzdGZtSW5mb1BhcnNlci5jcHAKKy0tLSBhbWFyb2stMi41Ljk2 L3NyYy9zZXJ2aWNlcy9hbXBhY2hlL0xhc3RmbUluZm9QYXJzZXIuY3BwLmxpYmxhc3RmbTEJMjAx Mi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAgLTA1MDAKKysrKyBhbWFyb2stMi41Ljk2L3NyYy9z ZXJ2aWNlcy9hbXBhY2hlL0xhc3RmbUluZm9QYXJzZXIuY3BwCTIwMTItMDgtMDIgMDc6Mzg6MjQu Mjk2NTU2MTI5IC0wNTAwCitAQCAtMjAsOCArMjAsNyBAQAorICNpbmNsdWRlICJjb3JlL3N1cHBv cnQvQW1hcm9rLmgiCisgI2luY2x1ZGUgImNvcmUvc3VwcG9ydC9EZWJ1Zy5oIgorIAorLSNpbmNs dWRlIDxsYXN0Zm0vWG1sUXVlcnk+CistI2luY2x1ZGUgPGxhc3RmbS93cy5oPgorKyNpbmNsdWRl IDxsYXN0Zm0vWG1sUXVlcnkuaD4KKyAKKyAjaW5jbHVkZSA8S0xvY2FsZT4KKyAKK0BAIC01NSw3 ICs1NCw4IEBAIHZvaWQgTGFzdGZtSW5mb1BhcnNlcjo6b25HZXRUcmFja0luZm8oKQorICAgICB7 CisgICAgICAgICBjYXNlIFFOZXR3b3JrUmVwbHk6Ok5vRXJyb3I6CisgICAgICAgICB7CistICAg ICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0gPSBtX2pvYnNbICJnZXRUcmFja0luZm8iIF0t PnJlYWRBbGwoKTsKKysgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKKysgICAgICAg ICAgICBsZm0ucGFyc2UoIG1fam9ic1sgImdldFRyYWNrSW5mbyIgXS0+cmVhZEFsbCgpICk7Cisg ICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSB3aWtpID0gbGZtWyJ0cmFjayJdWyJ3aWtpIl07 CisgICAgICAgICAgICAgY29uc3QgUVN0cmluZyBjb250ZW50VGV4dCA9IHdpa2lbImNvbnRlbnQi XS50ZXh0KCk7CisgICAgICAgICAgICAgY29uc3QgUVN0cmluZyBwdWJsaXNoZWREYXRlID0gd2lr aVsicHVibGlzaGVkIl0udGV4dCgpOworQEAgLTEwMyw3ICsxMDMsOCBAQCB2b2lkIExhc3RmbUlu Zm9QYXJzZXI6Om9uR2V0QWxidW1JbmZvKCkKKyAgICAgeworICAgICAgICAgY2FzZSBRTmV0d29y a1JlcGx5OjpOb0Vycm9yOgorICAgICAgICAgeworLSAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVl cnkgbGZtID0gbV9qb2JzWyAiZ2V0QWxidW1JbmZvIiBdLT5yZWFkQWxsKCk7CisrICAgICAgICAg ICAgbGFzdGZtOjpYbWxRdWVyeSBsZm07CisrICAgICAgICAgICAgbGZtLnBhcnNlKCBtX2pvYnNb ICJnZXRBbGJ1bUluZm8iIF0tPnJlYWRBbGwoKSApOworICAgICAgICAgICAgIGxhc3RmbTo6WG1s UXVlcnkgd2lraSA9IGxmbVsiYWxidW0iXVsid2lraSJdOworICAgICAgICAgICAgIGNvbnN0IFFT dHJpbmcgc3VtbWFyeVRleHQgPSB3aWtpWyJzdW1tYXJ5Il0udGV4dCgpOworICAgICAgICAgICAg IGNvbnN0IFFTdHJpbmcgY29udGVudFRleHQgPSB3aWtpWyJjb250ZW50Il0udGV4dCgpOworQEAg LTE1NSw3ICsxNTYsOCBAQCB2b2lkIExhc3RmbUluZm9QYXJzZXI6Om9uR2V0QXJ0aXN0SW5mbygp CisgICAgIHsKKyAgICAgICAgIGNhc2UgUU5ldHdvcmtSZXBseTo6Tm9FcnJvcjoKKyAgICAgICAg IHsKKy0gICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSA9IG1fam9ic1sgImdldEFydGlz dEluZm8iIF0tPnJlYWRBbGwoKTsKKysgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsK KysgICAgICAgICAgICBsZm0ucGFyc2UoIG1fam9ic1sgImdldEFydGlzdEluZm8iIF0tPnJlYWRB bGwoKSApOworICAgICAgICAgICAgIGRlYnVnKCkgPDwgbGZtLnRleHQoKTsKKyAgICAgICAgICAg ICBsYXN0Zm06OlhtbFF1ZXJ5IGJpbyA9IGxmbVsiYXJ0aXN0Il1bImJpbyJdOworICAgICAgICAg ICAgIGNvbnN0IFFTdHJpbmcgc3VtbWFyeVRleHQgPSBiaW9bInN1bW1hcnkiXS50ZXh0KCk7Citk aWZmIC11cCBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vYmlhc2VzL0xhc3RGbUJp YXMuY3BwLmxpYmxhc3RmbTEgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL2JpYXNl cy9MYXN0Rm1CaWFzLmNwcAorLS0tIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9i aWFzZXMvTGFzdEZtQmlhcy5jcHAubGlibGFzdGZtMQkyMDEyLTA3LTMxIDA1OjEwOjU2LjAwMDAw MDAwMCAtMDUwMAorKysrIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9iaWFzZXMv TGFzdEZtQmlhcy5jcHAJMjAxMi0wOC0wMiAwNzozODoyNC4yOTk1NTYwOTMgLTA1MDAKK0BAIC0z NCw5ICszNCw4IEBACisgI2luY2x1ZGUgImNvcmUvY29sbGVjdGlvbnMvUXVlcnlNYWtlci5oIgor ICNpbmNsdWRlICJjb3JlLWltcGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdl ci5oIgorIAorLSNpbmNsdWRlICJsYXN0Zm0vQXJ0aXN0IgorLSNpbmNsdWRlICJsYXN0Zm0vd3Mu aCIKKy0jaW5jbHVkZSAibGFzdGZtL1htbFF1ZXJ5IgorKyNpbmNsdWRlIDxsYXN0Zm0vQXJ0aXN0 Lmg+CisrI2luY2x1ZGUgPGxhc3RmbS93cy5oPgorIAorICNpbmNsdWRlIDxRTGFiZWw+CisgI2lu Y2x1ZGUgPFFDb21ib0JveD4KK2RpZmYgLXVwIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xh c3RmbS9iaWFzZXMvV2Vla2x5VG9wQmlhcy5jcHAubGlibGFzdGZtMSBhbWFyb2stMi41Ljk2L3Ny Yy9zZXJ2aWNlcy9sYXN0Zm0vYmlhc2VzL1dlZWtseVRvcEJpYXMuY3BwCistLS0gYW1hcm9rLTIu NS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL2JpYXNlcy9XZWVrbHlUb3BCaWFzLmNwcC5saWJsYXN0 Zm0xCTIwMTItMDctMzEgMDU6MTA6NTYuMDAwMDAwMDAwIC0wNTAwCisrKysgYW1hcm9rLTIuNS45 Ni9zcmMvc2VydmljZXMvbGFzdGZtL2JpYXNlcy9XZWVrbHlUb3BCaWFzLmNwcAkyMDEyLTA4LTAy IDA3OjM4OjI0LjI5OTU1NjA5MyAtMDUwMAorQEAgLTM0LDkgKzM0LDkgQEAKKyAjaW5jbHVkZSAi Y29yZS9jb2xsZWN0aW9ucy9RdWVyeU1ha2VyLmgiCisgI2luY2x1ZGUgImNvcmUtaW1wbC9jb2xs ZWN0aW9ucy9zdXBwb3J0L0NvbGxlY3Rpb25NYW5hZ2VyLmgiCisgCistI2luY2x1ZGUgImxhc3Rm bS9BcnRpc3QiCistI2luY2x1ZGUgImxhc3RmbS93cy5oIgorLSNpbmNsdWRlICJsYXN0Zm0vWG1s UXVlcnkiCisrI2luY2x1ZGUgPGxhc3RmbS9BcnRpc3QuaD4KKysjaW5jbHVkZSA8bGFzdGZtL3dz Lmg+CisrI2luY2x1ZGUgPGxhc3RmbS9YbWxRdWVyeS5oPgorIAorICNpbmNsdWRlIDxRTmV0d29y a1JlcGx5PgorIAorQEAgLTM3MSwxMCArMzcxLDkgQEAgRHluYW1pYzo6V2Vla2x5VG9wQmlhczo6 d2Vla2x5QXJ0aXN0UXVlcgorICAgICB9CisgCisgCistICAgIHRyeQorKyAgICBsYXN0Zm06Olht bFF1ZXJ5IGxmbTsKKysgICAgaWYoIGxmbS5wYXJzZSggcmVwbHktPnJlYWRBbGwoKSApICkKKyAg ICAgeworLSAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0oIHJlcGx5LT5yZWFkQWxsKCkgKTsK Ky0KKyAgICAgICAgIC8vIGRlYnVnKCkgPDwgImdvdCByZXNwb25zZToiIDw8IGxmbTsKKyAgICAg ICAgIFFTdHJpbmdMaXN0IGFydGlzdHM7CisgICAgICAgICBmb3IoIGludCBpID0gMDsgaSA8IGxm bVsgIndlZWtseWFydGlzdGNoYXJ0IiBdLmNoaWxkcmVuKCAiYXJ0aXN0IiApLnNpemUoKTsgaSsr ICkKK0BAIC0zOTgsMTAgKzM5NywxMCBAQCBEeW5hbWljOjpXZWVrbHlUb3BCaWFzOjp3ZWVrbHlB cnRpc3RRdWVyCisgICAgICAgICAgICAgd2FybmluZygpIDw8ICJHb3QgYSByZXBseSBmb3IgYSB3 ZWVrIjw8d2Vlazw8InRoYXQgd2FzIG5vdCByZXF1ZXN0ZWQuIjsKKyAgICAgICAgICAgICByZXR1 cm47CisgICAgICAgICB9CistCistICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNlRXJyb3Im IGUgKQorKyAgICB9CisrICAgIGVsc2UKKyAgICAgeworLSAgICAgICAgZGVidWcoKSA8PCAiY2F1 Z2h0IGV4Y2VwdGlvbiBwYXJzaW5nIHdlZWtseSBhcnRpc3QgY2hhcnQuIjsKKysgICAgICAgIGRl YnVnKCkgPDwgImZhaWxlZCB0byBwYXJzZSB3ZWVrbHkgYXJ0aXN0IGNoYXJ0LiI7CisgICAgIH0K KyAKKyAgICAgcmVwbHktPmRlbGV0ZUxhdGVyKCk7CitkaWZmIC11cCBhbWFyb2stMi41Ljk2L3Ny Yy9zZXJ2aWNlcy9sYXN0Zm0vTGFzdEZtU2VydmljZUNvbGxlY3Rpb24uY3BwLmxpYmxhc3RmbTEg YW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL0xhc3RGbVNlcnZpY2VDb2xsZWN0aW9u LmNwcAorLS0tIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNl Q29sbGVjdGlvbi5jcHAubGlibGFzdGZtMQkyMDEyLTA3LTMxIDA1OjEwOjU2LjAwMDAwMDAwMCAt MDUwMAorKysrIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNl Q29sbGVjdGlvbi5jcHAJMjAxMi0wOC0wMiAwNzozODoyNC4yOTc1NTYxMTcgLTA1MDAKK0BAIC0y Niw3ICsyNiw3IEBACisgI2luY2x1ZGUgImNvcmUtaW1wbC9jb2xsZWN0aW9ucy9zdXBwb3J0L01l bW9yeVF1ZXJ5TWFrZXIuaCIKKyAKKyAjaW5jbHVkZSA8bGFzdGZtL3dzLmg+CistI2luY2x1ZGUg PGxhc3RmbS9YbWxRdWVyeT4KKysjaW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5Lmg+CisgCisgI2lu Y2x1ZGUgPFFOZXR3b3JrUmVwbHk+CisgCitAQCAtMTU0LDEwICsxNTQsOSBAQCB2b2lkIExhc3RG bVNlcnZpY2VDb2xsZWN0aW9uOjpzbG90QWRkTmVpCisgICAgICAgICBjYXNlIFFOZXR3b3JrUmVw bHk6Ok5vRXJyb3I6CisgICAgICAgICB7CisgICAgICAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdo IGVhY2ggbmVpZ2hib3VyCistICAgICAgICAgICAgdHJ5CisrICAgICAgICAgICAgbGFzdGZtOjpY bWxRdWVyeSBsZm07CisrICAgICAgICAgICAgaWYoIGxmbS5wYXJzZSggbV9qb2JzWyAidXNlci5n ZXROZWlnaGJvdXJzIiBdLT5yZWFkQWxsKCkgKSApCisgICAgICAgICAgICAgeworLSAgICAgICAg ICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggbV9qb2JzWyAidXNlci5nZXROZWlnaGJvdXJz IiBdLT5yZWFkQWxsKCkgKTsKKy0KKyAgICAgICAgICAgICAgICAgZm9yZWFjaCggY29uc3QgbGFz dGZtOjpYbWxRdWVyeSAmZSwgbGZtWyAibmVpZ2hib3VycyIgXS5jaGlsZHJlbiggInVzZXIiICkg KQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5n IG5hbWUgPSBlWyAibmFtZSIgXS50ZXh0KCk7CitAQCAtMTY4LDkgKzE2NywxMCBAQCB2b2lkIExh c3RGbVNlcnZpY2VDb2xsZWN0aW9uOjpzbG90QWRkTmVpCisgICAgICAgICAgICAgICAgICAgICBh ZGRUcmFjayggdHJhY2tQdHIgKTsKKyAgICAgICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAg IH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNlRXJyb3ImIGUgKQorKyAgICAgICAgICAgIH0KKysg ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICBkZWJ1Zygp IDw8ICJHb3QgZXhjZXB0aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0KCk7 CisrICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBm cm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CitAQCAtMTk1LDE1ICsxOTUsMTQg QEAgdm9pZCBMYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbjo6c2xvdEFkZE5laQorICAgICAgICAgY2Fz ZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9yOgorICAgICAgICAgeworICAgICAgICAgICAgIC8vIGl0 ZXJhdGUgdGhyb3VnaCBlYWNoIG5laWdoYm91cgorLSAgICAgICAgICAgIHRyeQorKyAgICAgICAg ICAgIGlmKCAhbV9qb2JzWyAidXNlci5nZXROZWlnaGJvdXJzIiBdICkKKysgICAgICAgICAgICB7 CisrICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkJBRCEgZ290IG5vIHJlc3VsdCBvYmplY3Qi OworKyAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAg IGxhc3RmbTo6WG1sUXVlcnkgbGZtOworKyAgICAgICAgICAgIGlmKCBsZm0ucGFyc2UoIG1fam9i c1sgInVzZXIuZ2V0TmVpZ2hib3VycyIgXS0+cmVhZEFsbCgpICkgKQorICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgaWYoICFtX2pvYnNbICJ1c2VyLmdldE5laWdoYm91cnMiIF0gKQor LSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJCQUQh IGdvdCBubyByZXN1bHQgb2JqZWN0IjsKKy0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSgg bV9qb2JzWyAidXNlci5nZXROZWlnaGJvdXJzIiBdLT5yZWFkQWxsKCkgKTsKKy0KKyAgICAgICAg ICAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIGVhY2ggbmVpZ2hib3VyCisgICAgICAgICAgICAg ICAgIGZvcmVhY2goIGNvbnN0IGxhc3RmbTo6WG1sUXVlcnkgJmUsIGxmbVsgIm5laWdoYm91cnMi IF0uY2hpbGRyZW4oICJ1c2VyIiApICkKKyAgICAgICAgICAgICAgICAgeworQEAgLTIxOCw5ICsy MTcsMTAgQEAgdm9pZCBMYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbjo6c2xvdEFkZE5laQorIAorICAg ICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgc2FmZSwgYXMgYm90aCBzbG90cyBTSE9VTEQgZ2V0 IGNhbGxlZCBiZWZvcmUgd2UgcmV0dXJuIHRvIHRoZSBldmVudCBsb29wLi4uCisgICAgICAgICAg ICAgICAgIG1fam9ic1sgInVzZXIuZ2V0TmVpZ2hib3VycyIgXS0+ZGVsZXRlTGF0ZXIoKTsKKy0g ICAgICAgICAgICB9IGNhdGNoKCBsYXN0Zm06OndzOjpQYXJzZUVycm9yJiBlICkKKysgICAgICAg ICAgICB9CisrICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg ICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5mbToiIDw8 IGUud2hhdCgpOworKyAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0aW9uIGlu IHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgbGZtLnBhcnNlRXJyb3IoKS5tZXNzYWdlKCk7Cisg ICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorQEAgLTI0OCwx MCArMjQ4LDkgQEAgdm9pZCBMYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbjo6c2xvdEFkZEZyaQorICAg ICB7CisgICAgICAgICBjYXNlIFFOZXR3b3JrUmVwbHk6Ok5vRXJyb3I6CisgICAgICAgICB7Cist ICAgICAgICAgICAgdHJ5CisrICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm07CisrICAg ICAgICAgICAgaWYoIGxmbS5wYXJzZSggbV9qb2JzWyAidXNlci5nZXRGcmllbmRzIiBdLT5yZWFk QWxsKCkgKSApCisgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICBsYXN0Zm06OlhtbFF1 ZXJ5IGxmbSggbV9qb2JzWyAidXNlci5nZXRGcmllbmRzIiBdLT5yZWFkQWxsKCkgKTsKKy0KKyAg ICAgICAgICAgICAgICAgZm9yZWFjaCggY29uc3QgbGFzdGZtOjpYbWxRdWVyeSAmZSwgbGZtWyAi ZnJpZW5kcyIgXS5jaGlsZHJlbiggInVzZXIiICkgKQorICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nIG5hbWUgPSBlWyAibmFtZSIgXS50ZXh0KCk7 CitAQCAtMjYxLDkgKzI2MCwxMCBAQCB2b2lkIExhc3RGbVNlcnZpY2VDb2xsZWN0aW9uOjpzbG90 QWRkRnJpCisgICAgICAgICAgICAgICAgICAgICBhZGRUcmFjayggdHJhY2tQdHIgKTsKKyAgICAg ICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNl RXJyb3ImIGUgKQorKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0aW9uIGluIHBhcnNp bmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0KCk7CisrICAgICAgICAgICAgICAgIGRlYnVnKCkg PDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VF cnJvcigpLm1lc3NhZ2UoKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICB9CitAQCAtMjkzLDEwICsyOTMsOSBAQCB2b2lkIExhc3RGbVNlcnZpY2VDb2xsZWN0 aW9uOjpzbG90QWRkRnJpCisgICAgIHsKKyAgICAgICAgIGNhc2UgUU5ldHdvcmtSZXBseTo6Tm9F cnJvcjoKKyAgICAgICAgIHsKKy0gICAgICAgICAgICB0cnkKKysgICAgICAgICAgICBsYXN0Zm06 OlhtbFF1ZXJ5IGxmbTsKKysgICAgICAgICAgICBpZiggbGZtLnBhcnNlKCBtX2pvYnNbICJ1c2Vy LmdldEZyaWVuZHMiIF0tPnJlYWRBbGwoKSApICkKKyAgICAgICAgICAgICB7CistICAgICAgICAg ICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtKCBtX2pvYnNbICJ1c2VyLmdldEZyaWVuZHMiIF0t PnJlYWRBbGwoKSApOworLQorICAgICAgICAgICAgICAgICBmb3JlYWNoKCBjb25zdCBsYXN0Zm06 OlhtbFF1ZXJ5ICZlLCBsZm1bICJmcmllbmRzIiBdLmNoaWxkcmVuKCAidXNlciIgKSApCisgICAg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgbmFtZSA9 IGVbICJuYW1lIiBdLnRleHQoKTsKK0BAIC0zMDYsOSArMzA1LDEwIEBAIHZvaWQgTGFzdEZtU2Vy dmljZUNvbGxlY3Rpb246OnNsb3RBZGRGcmkKKyAgICAgICAgICAgICAgICAgICAgIGFkZFRyYWNr KCB0cmFja1B0ciApOworICAgICAgICAgICAgICAgICB9CisgCistICAgICAgICAgICAgfSBjYXRj aCggbGFzdGZtOjp3czo6UGFyc2VFcnJvciYgZSApCisrICAgICAgICAgICAgfQorKyAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdv dCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBlLndoYXQoKTsKKysgICAg ICAgICAgICAgICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFz dC5mbToiIDw8IGxmbS5wYXJzZUVycm9yKCkubWVzc2FnZSgpOworICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KK2RpZmYgLXVwIGFtYXJvay0yLjUuOTYvc3Jj L3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlLmNwcC5saWJsYXN0Zm0xIGFtYXJvay0yLjUu OTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlLmNwcAorLS0tIGFtYXJvay0yLjUu OTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlLmNwcC5saWJsYXN0Zm0xCTIwMTIt MDctMzEgMDU6MTA6NTYuMDAwMDAwMDAwIC0wNTAwCisrKysgYW1hcm9rLTIuNS45Ni9zcmMvc2Vy dmljZXMvbGFzdGZtL0xhc3RGbVNlcnZpY2UuY3BwCTIwMTItMDgtMDIgMDc6Mzg6MjQuMjk2NTU2 MTI5IC0wNTAwCitAQCAtNDYsOCArNDYsOCBAQAorICNpbmNsdWRlICJ3aWRnZXRzL1NlYXJjaFdp ZGdldC5oIgorICNpbmNsdWRlICJOZXR3b3JrQWNjZXNzTWFuYWdlclByb3h5LmgiCisgCistI2lu Y2x1ZGUgPGxhc3RmbS9BdWRpb3Njcm9iYmxlcj4gLy8gZnJvbSBsaWJsYXN0Zm0KKy0jaW5jbHVk ZSA8bGFzdGZtL1htbFF1ZXJ5PgorKyNpbmNsdWRlIDxsYXN0Zm0vQXVkaW9zY3JvYmJsZXIuaD4g Ly8gZnJvbSBsaWJsYXN0Zm0KKysjaW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5Lmg+CisgCisgI2lu Y2x1ZGUgPEtMb2NhbGU+CisgI2luY2x1ZGUgPEtQYXNzd29yZERpYWxvZz4KK0BAIC0yMjQsMTAg KzIyNCw3IEBAIExhc3RGbVNlcnZpY2U6OmluaXQoKQorIHsKKyAgICAgLy8gc2V0IHRoZSBnbG9i YWwgc3RhdGljIExhc3RmbTo6V3Mgc3R1ZmYKKyAgICAgbGFzdGZtOjp3czo6QXBpS2V5ID0gQW1h cm9rOjpsYXN0Zm1BcGlLZXkoKTsKKy0gICAgbGFzdGZtOjp3czo6U2hhcmVkU2VjcmV0ID0gImZl MGRjZGU5ZmNkMTRjMmQxZDUwNjY1YjY0NjMzNWU5IjsKKy0gICAgLy8gdGVzdGluZyB3LyBvZmZp Y2lhbCBrZXlzCistICAgIC8vV3M6OlNoYXJlZFNlY3JldCA9ICI3MzU4MmRmYzllNTU2ZDMwN2Fl YWQwNjlhZjExMGFiOCI7CistICAgIC8vV3M6OkFwaUtleSA9ICJjOGM3YjE2M2IxMWY5MmVmMmQz M2JhNmNkM2MyYzNjMyI7CisrICAgIGxhc3RmbTo6d3M6OlNoYXJlZFNlY3JldCA9IEFtYXJvazo6 bGFzdGZtQXBpU2hhcmVkU2VjcmV0KCk7CisgICAgIG1fdXNlck5hbWVBcnJheSA9IHFzdHJkdXAo IG1fdXNlck5hbWUudG9MYXRpbjEoKS5kYXRhKCkgKTsKKyAgICAgbGFzdGZtOjp3czo6VXNlcm5h bWUgPSBtX3VzZXJOYW1lQXJyYXk7CisgICAgIGlmKCBsYXN0Zm06Om5hbSgpICE9IFRoZTo6bmV0 d29ya0FjY2Vzc01hbmFnZXIoKSApCitAQCAtMzA5LDcgKzMwNiw4IEBAIExhc3RGbVNlcnZpY2U6 Om9uQXV0aGVudGljYXRlZCgpCisgICAgICAgICBjYXNlIFFOZXR3b3JrUmVwbHk6Ok5vRXJyb3I6 CisgICAgICAgICB7CisgCistICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0gPSBsYXN0 Zm06OlhtbFF1ZXJ5KCBtX2pvYnNbICJhdXRoIiBdLT5yZWFkQWxsKCkgKTsKKysgICAgICAgICAg ICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKKysgICAgICAgICAgICBsZm0ucGFyc2UoIG1fam9ic1sg ImF1dGgiIF0tPnJlYWRBbGwoKSApOworICAgICAgICAgICAgIExhc3RGbVNlcnZpY2VDb25maWcg Y29uZmlnOworIAorICAgICAgICAgICAgIGlmKCBsZm0uY2hpbGRyZW4oICJlcnJvciIgKS5zaXpl KCkgPiAwICkKK0BAIC0zNTksMTAgKzM1Nyw4IEBAIExhc3RGbVNlcnZpY2U6Om9uR2V0VXNlcklu Zm8oKQorICAgICB7CisgICAgICAgICBjYXNlIFFOZXR3b3JrUmVwbHk6Ok5vRXJyb3I6CisgICAg ICAgICB7CistICAgICAgICAgICAgdHJ5CistICAgICAgICAgICAgeworLSAgICAgICAgICAgICAg ICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggbV9qb2JzWyAiZ2V0VXNlckluZm8iIF0tPnJlYWRBbGwo KSApOworLQorKyAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOworKyAgICAgICAgICAg IGlmKCBsZm0ucGFyc2UoIG1fam9ic1sgImdldFVzZXJJbmZvIiBdLT5yZWFkQWxsKCkgKSApIHsK KyAgICAgICAgICAgICAgICAgbV9jb3VudHJ5ID0gbGZtWyJ1c2VyIl1bImNvdW50cnkiXS50ZXh0 KCk7CisgICAgICAgICAgICAgICAgIG1fYWdlID0gbGZtWyJ1c2VyIl1bImFnZSJdLnRleHQoKTsK KyAgICAgICAgICAgICAgICAgbV9nZW5kZXIgPSBsZm1bInVzZXIiXVsiZ2VuZGVyIl0udGV4dCgp OworQEAgLTM4MSw5ICszNzcsMTAgQEAgTGFzdEZtU2VydmljZTo6b25HZXRVc2VySW5mbygpCisg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgdXBkYXRlUHJvZmlsZUluZm8oKTsK KyAKKy0gICAgICAgICAgICB9IGNhdGNoKCBsYXN0Zm06OndzOjpQYXJzZUVycm9yJiBlICkKKysg ICAgICAgICAgICB9CisrICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5m bToiIDw8IGUud2hhdCgpOworKyAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0 aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgbGZtLnBhcnNlRXJyb3IoKS5tZXNzYWdl KCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfSBjYXNl IFFOZXR3b3JrUmVwbHk6OkF1dGhlbnRpY2F0aW9uUmVxdWlyZWRFcnJvcjoKK2RpZmYgLXVwIGFt YXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlU2V0dGluZ3MuY3Bw LmxpYmxhc3RmbTEgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL0xhc3RGbVNlcnZp Y2VTZXR0aW5ncy5jcHAKKy0tLSBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vTGFz dEZtU2VydmljZVNldHRpbmdzLmNwcC5saWJsYXN0Zm0xCTIwMTItMDctMzEgMDU6MTA6NTYuMDAw MDAwMDAwIC0wNTAwCisrKysgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL0xhc3RG bVNlcnZpY2VTZXR0aW5ncy5jcHAJMjAxMi0wOC0wMiAwNzozODoyNC4yOTc1NTYxMTcgLTA1MDAK K0BAIC0yMyw5ICsyMyw5IEBACisgI2luY2x1ZGUgIk5ldHdvcmtBY2Nlc3NNYW5hZ2VyUHJveHku aCIKKyAjaW5jbHVkZSAidWlfTGFzdEZtQ29uZmlnV2lkZ2V0LmgiCisgCistI2luY2x1ZGUgPGxh c3RmbS9BdWRpb3Njcm9iYmxlcj4gLy8gZnJvbSBsaWJsYXN0Zm0KKysjaW5jbHVkZSA8bGFzdGZt L0F1ZGlvc2Nyb2JibGVyLmg+IC8vIGZyb20gbGlibGFzdGZtCisgI2luY2x1ZGUgPGxhc3RmbS93 cy5oPgorLSNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnk+CisrI2luY2x1ZGUgPGxhc3RmbS9YbWxR dWVyeS5oPgorIAorICNpbmNsdWRlIDxRQ3J5cHRvZ3JhcGhpY0hhc2g+CisgI2luY2x1ZGUgPFFO ZXR3b3JrQWNjZXNzTWFuYWdlcj4KK0BAIC0xMDAsNyArMTAwLDcgQEAgTGFzdEZtU2VydmljZVNl dHRpbmdzOjp0ZXN0TG9naW4oKQorICAgICBtX2NvbmZpZ0RpYWxvZy0+dGVzdExvZ2luLT5zZXRU ZXh0KCBpMThuKCAiVGVzdGluZy4uLiIgKSApOworICAgICAvLyBzZXQgdGhlIGdsb2JhbCBzdGF0 aWMgTGFzdGZtOjpXcyBzdHVmZgorICAgICBsYXN0Zm06OndzOjpBcGlLZXkgPSBBbWFyb2s6Omxh c3RmbUFwaUtleSgpOworLSAgICBsYXN0Zm06OndzOjpTaGFyZWRTZWNyZXQgPSAiZmUwZGNkZTlm Y2QxNGMyZDFkNTA2NjViNjQ2MzM1ZTkiOworKyAgICBsYXN0Zm06OndzOjpTaGFyZWRTZWNyZXQg PSBBbWFyb2s6Omxhc3RmbUFwaVNoYXJlZFNlY3JldCgpOworICAgICBsYXN0Zm06OndzOjpVc2Vy bmFtZSA9IHFzdHJkdXAoIG1fY29uZmlnRGlhbG9nLT5rY2ZnX1Njcm9iYmxlclVzZXJuYW1lLT50 ZXh0KCkudG9MYXRpbjEoKS5kYXRhKCkgKTsKKyAgICAgaWYoIGxhc3RmbTo6bmFtKCkgIT0gVGhl OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpICkKKyAgICAgICAgIGxhc3RmbTo6c2V0TmV0d29ya0Fj Y2Vzc01hbmFnZXIoIFRoZTo6bmV0d29ya0FjY2Vzc01hbmFnZXIoKSApOworQEAgLTEyNiw3ICsx MjYsOCBAQCBMYXN0Rm1TZXJ2aWNlU2V0dGluZ3M6Om9uQXV0aGVudGljYXRlZCgpCisgeworICAg ICBERUJVR19CTE9DSworIAorLSAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSA9IGxhc3RmbTo6WG1s UXVlcnkoIG1fYXV0aFF1ZXJ5LT5yZWFkQWxsKCkgKTsKKysgICAgbGFzdGZtOjpYbWxRdWVyeSBs Zm07CisrICAgIGxmbS5wYXJzZSggbV9hdXRoUXVlcnktPnJlYWRBbGwoKSApOworIAorICAgICBz d2l0Y2goIG1fYXV0aFF1ZXJ5LT5lcnJvcigpICkKKyAgICAgeworZGlmZiAtdXAgYW1hcm9rLTIu NS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL0xhc3RGbVRyZWVNb2RlbC5jcHAubGlibGFzdGZtMSBh bWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vTGFzdEZtVHJlZU1vZGVsLmNwcAorLS0t IGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1UcmVlTW9kZWwuY3BwLmxp Ymxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAgLTA1MDAKKysrKyBhbWFyb2st Mi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vTGFzdEZtVHJlZU1vZGVsLmNwcAkyMDEyLTA4LTAy IDA3OjM4OjI0LjI5ODU1NjEwNSAtMDUwMAorQEAgLTI2LDggKzI2LDggQEAKKyAjaW5jbHVkZSAi QW1hcm9rTWltZURhdGEuaCIKKyAKKyAjaW5jbHVkZSA8bGFzdGZtL3dzLmg+CistI2luY2x1ZGUg PGxhc3RmbS9UYWc+CistI2luY2x1ZGUgPGxhc3RmbS9YbWxRdWVyeT4KKysjaW5jbHVkZSA8bGFz dGZtL1RhZy5oPgorKyNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnkuaD4KKyAKKyAjaW5jbHVkZSA8 S0ljb24+CisgI2luY2x1ZGUgPEtMb2NhbGU+CitAQCAtNjgsMTEgKzY4LDEyIEBAIExhc3RGbVRy ZWVNb2RlbDo6c2xvdEFkZE5laWdoYm9ycyAoKQorIHsKKyAgICAgREVCVUdfQkxPQ0sKKyAKKy0g ICAgdHJ5CistICAgIHsKKyAgICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBlYWNoIG5laWdoYm9yLCBp biB0d28gcGFzc2VzOiAxKSBHZXQgZGF0YSAyKSBTb3J0IGRhdGEsIHN0b3JlIGluIG1vZGVsCisg CistICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggbV9qb2JzWyAiZ2V0TmVpZ2hib3VycyIg XS0+cmVhZEFsbCgpICk7CisrICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOworKyAgICBsZm0ucGFy c2UoIG1fam9ic1sgImdldE5laWdoYm91cnMiIF0tPnJlYWRBbGwoKSApOworKyAgICBpZiggbGZt LnBhcnNlRXJyb3IoKS5lbnVtVmFsdWUoKSA9PSBsYXN0Zm06OndzOjpOb0Vycm9yICkKKysgICAg eworICAgICAgICAgZm9yZWFjaCggY29uc3QgbGFzdGZtOjpYbWxRdWVyeSAmZSwgbGZtWyAibmVp Z2hib3VycyIgXS5jaGlsZHJlbiAoICJ1c2VyIiApICkKKyAgICAgICAgIHsKKyAgICAgICAgICAg ICBjb25zdCBRU3RyaW5nIG5hbWUgPSBlWyAibmFtZSIgXS50ZXh0KCk7CitAQCAtODgsMTEgKzg5 LDExIEBAIExhc3RGbVRyZWVNb2RlbDo6c2xvdEFkZE5laWdoYm9ycyAoKQorICAgICAgICAgICAg IGFwcGVuZFVzZXJTdGF0aW9ucyggbmVpZ2hib3IsIG5hbWUgKTsKKyAgICAgICAgIH0KKyAgICAg ICAgIG1fbmVpZ2hib3JzLnNvcnQoKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAgIGRlYnVnKCkg PDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VF cnJvcigpLm1lc3NhZ2UoKTsKKysgICAgICAgIHJldHVybjsKKyAgICAgfQorLSAgICBjYXRjaCgg bGFzdGZtOjp3czo6UGFyc2VFcnJvciBlICkKKy0gICAgeworLSAgICAgICAgZGVidWcoKSA8PCAi R290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5mbToiIDw8IGUud2hhdCgpOworLSAg ICB9CisrCisgICAgIGVtaXRSb3dDaGFuZ2VkKExhc3RGbTo6TmVpZ2hib3JzKTsKKyAgICAgbV9q b2JzWyAiZ2V0TmVpZ2hib3VycyIgXS0+ZGVsZXRlTGF0ZXIoKTsKKyB9CitAQCAtMTAyLDExICsx MDMsMTEgQEAgTGFzdEZtVHJlZU1vZGVsOjpzbG90QWRkRnJpZW5kcyAoKQorIHsKKyAgICAgREVC VUdfQkxPQ0sKKyAKKy0gICAgdHJ5CistICAgIHsKKy0gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBl YWNoIGZyaWVuZCwgaW4gdHdvIHBhc3NlczogMSkgR2V0IGRhdGEgMikgU29ydCBkYXRhLCBzdG9y ZSBpbiBtb2RlbAorKyAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBmcmllbmQsIGluIHR3byBwYXNz ZXM6IDEpIEdldCBkYXRhIDIpIFNvcnQgZGF0YSwgc3RvcmUgaW4gbW9kZWwKKyAKKy0gICAgICAg IGxhc3RmbTo6WG1sUXVlcnkgbGZtKCBtX2pvYnNbICJnZXRGcmllbmRzIiBdLT5yZWFkQWxsKCkg KTsKKysgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm07CisrICAgIGlmKCBsZm0ucGFyc2UoIG1fam9i c1sgImdldEZyaWVuZHMiIF0tPnJlYWRBbGwoKSApICkKKysgICAgeworICAgICAgICAgZm9yZWFj aCggY29uc3QgbGFzdGZtOjpYbWxRdWVyeSAmZSwgbGZtWyAiZnJpZW5kcyIgXS5jaGlsZHJlbiAo ICJ1c2VyIiApICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBjb25zdCBRU3RyaW5nIG5hbWUg PSBlWyAibmFtZSIgXS50ZXh0KCk7CitAQCAtMTIzLDExICsxMjQsMTEgQEAgTGFzdEZtVHJlZU1v ZGVsOjpzbG90QWRkRnJpZW5kcyAoKQorICAgICAgICAgICAgIGFwcGVuZFVzZXJTdGF0aW9ucygg YWZyaWVuZCwgbmFtZSApOworICAgICAgICAgfQorICAgICAgICAgbV9mcmllbmRzLnNvcnQoKTsK KysgICAgfSBlbHNlIHsKKysgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFy c2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKKysgICAg ICAgIHJldHVybjsKKyAgICAgfQorLSAgICBjYXRjaCggbGFzdGZtOjp3czo6UGFyc2VFcnJvciBl ICkKKy0gICAgeworLSAgICAgICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5n IGZyb20gbGFzdC5mbToiIDw8IGUud2hhdCgpOworLSAgICB9CisrCisgICAgIGVtaXRSb3dDaGFu Z2VkKExhc3RGbTo6RnJpZW5kcyk7CisgICAgIG1fam9ic1sgImdldEZyaWVuZHMiIF0tPmRlbGV0 ZUxhdGVyKCk7CisgfQorQEAgLTEzNywxMCArMTM4LDkgQEAgTGFzdEZtVHJlZU1vZGVsOjpzbG90 QWRkVG9wQXJ0aXN0cyAoKQorIHsKKyAgICAgREVCVUdfQkxPQ0sKKyAgICAgV2VpZ2h0ZWRTdHJp bmdMaXN0IGxpc3Q7CistICAgIHRyeQorKyAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKKysgICAg aWYoIGxmbS5wYXJzZSggbV9qb2JzWyAiZ2V0VG9wQXJ0aXN0cyIgXS0+cmVhZEFsbCgpICkgKQor ICAgICB7CistICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggbV9qb2JzWyAiZ2V0VG9wQXJ0 aXN0cyIgXS0+cmVhZEFsbCgpICk7CistCisgICAgICAgICBmb3JlYWNoKCBjb25zdCBsYXN0Zm06 OlhtbFF1ZXJ5ICZlLCBsZm1bICJ0b3BhcnRpc3RzIiBdLmNoaWxkcmVuICggImFydGlzdCIgKSAp CisgICAgICAgICB7CisgICAgICAgICAgICAgY29uc3QgUVN0cmluZyBuYW1lID0gZVsgIm5hbWUi IF0udGV4dCgpOworQEAgLTE1OCw5ICsxNTgsMTAgQEAgTGFzdEZtVHJlZU1vZGVsOjpzbG90QWRk VG9wQXJ0aXN0cyAoKQorICAgICAgICAgICAgIG1fbXlUb3BBcnRpc3RzLT5hcHBlbmRDaGlsZCAo IGFydGlzdCApOworICAgICAgICAgfQorIAorLSAgICB9IGNhdGNoKCBsYXN0Zm06OndzOjpQYXJz ZUVycm9yIGUgKQorKyAgICB9CisrICAgIGVsc2UKKyAgICAgeworLSAgICAgICAgZGVidWcoKSA8 PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5mbToiIDw8IGUud2hhdCgpOwor KyAgICAgICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5m bToiIDw8IGxmbS5wYXJzZUVycm9yKCkubWVzc2FnZSgpOworICAgICB9CisgICAgIGVtaXRSb3dD aGFuZ2VkKExhc3RGbTo6VG9wQXJ0aXN0cyk7CisgICAgIG1fam9ic1sgImdldFRvcEFydGlzdHMi IF0tPmRlbGV0ZUxhdGVyKCk7CitkaWZmIC11cCBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9s YXN0Zm0vTGFzdEZtVHJlZU1vZGVsLmgubGlibGFzdGZtMSBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2 aWNlcy9sYXN0Zm0vTGFzdEZtVHJlZU1vZGVsLmgKKy0tLSBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2 aWNlcy9sYXN0Zm0vTGFzdEZtVHJlZU1vZGVsLmgubGlibGFzdGZtMQkyMDEyLTA3LTMxIDA1OjEw OjU2LjAwMDAwMDAwMCAtMDUwMAorKysrIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3Rm bS9MYXN0Rm1UcmVlTW9kZWwuaAkyMDEyLTA4LTAyIDA3OjM4OjI0LjI5NzU1NjExNyAtMDUwMAor QEAgLTIyLDcgKzIyLDcgQEAKKyAjaW5jbHVkZSAiY29yZS9tZXRhL01ldGEuaCIKKyAjaW5jbHVk ZSAiV2VpZ2h0ZWRTdHJpbmdMaXN0LmgiCisgCistI2luY2x1ZGUgPGxhc3RmbS9Vc2VyPgorKyNp bmNsdWRlIDxsYXN0Zm0vVXNlci5oPgorIAorICNpbmNsdWRlIDxRQWJzdHJhY3RJdGVtTW9kZWw+ CisgI2luY2x1ZGUgPFFIYXNoPgorQEAgLTEzNiw3ICsxMzYsNyBAQCBwcml2YXRlOgorICAgICBM YXN0Rm1UcmVlSXRlbSAqbV9teVRvcEFydGlzdHM7CisgCisgICAgIFFTdHJpbmcgbV91c2VyTmFt ZTsKKy0gICAgbGFzdGZtOjpBdXRoZW50aWNhdGVkVXNlciBtX3VzZXI7CisrICAgIGxhc3RmbTo6 VXNlciBtX3VzZXI7CisgCisgICAgIFFTdHJpbmdMaXN0IG1fZnJpZW5kczsKKyAgICAgUVN0cmlu Z0xpc3QgbV9uZWlnaGJvcnM7CitkaWZmIC11cCBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9s YXN0Zm0vbWV0YS9MYXN0Rm1NZXRhLmNwcC5saWJsYXN0Zm0xIGFtYXJvay0yLjUuOTYvc3JjL3Nl cnZpY2VzL2xhc3RmbS9tZXRhL0xhc3RGbU1ldGEuY3BwCistLS0gYW1hcm9rLTIuNS45Ni9zcmMv c2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZtTWV0YS5jcHAubGlibGFzdGZtMQkyMDEyLTA3LTMx IDA1OjEwOjU2LjAwMDAwMDAwMCAtMDUwMAorKysrIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2Vz L2xhc3RmbS9tZXRhL0xhc3RGbU1ldGEuY3BwCTIwMTItMDgtMDIgMDc6Mzg6MjQuMzAwNTU2MDgx IC0wNTAwCitAQCAtNDEsNyArNDEsNyBAQAorICNpbmNsdWRlIDxRV2Vha1BvaW50ZXI+CisgI2lu Y2x1ZGUgPFFVcmw+CisgCistI2luY2x1ZGUgPGxhc3RmbS9UcmFjaz4KKysjaW5jbHVkZSA8bGFz dGZtL1RyYWNrLmg+CisgCisgbmFtZXNwYWNlIExhc3RGbSB7CisgCitAQCAtNDUxLDggKzQ1MSw3 IEBAIFRyYWNrOjpsb3ZlKCkKKyAgICAgREVCVUdfQkxPQ0sKKyAKKyAgICAgZGVidWcoKSA8PCAi aW5mbzoiIDw8IGQtPmxhc3RGbVRyYWNrLmFydGlzdCgpIDw8IGQtPmxhc3RGbVRyYWNrLnRpdGxl KCk7CistICAgIGQtPndzUmVwbHkgPSBsYXN0Zm06Ok11dGFibGVUcmFjayggZC0+bGFzdEZtVHJh Y2sgKS5sb3ZlKCk7CistICAgIGNvbm5lY3QoIGQtPndzUmVwbHksIFNJR05BTCggZmluaXNoZWQo KSApLCB0aGlzLCBTTE9UKCBzbG90V3NSZXBseSgpICkgKTsKKysgICAgbGFzdGZtOjpNdXRhYmxl VHJhY2soIGQtPmxhc3RGbVRyYWNrICkubG92ZSgpOworIH0KKyAKKyB2b2lkCitAQCAtNDc3LDkg KzQ3Niw5IEBAIHZvaWQgVHJhY2s6OnNsb3RSZXN1bHRSZWFkeSgpCisgeworICAgICBpZiggZC0+ dHJhY2tGZXRjaC0+ZXJyb3IoKSA9PSBRTmV0d29ya1JlcGx5OjpOb0Vycm9yICkKKyAgICAgewor LSAgICAgICAgdHJ5CisrICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKKysgICAgICAgIGlm KCBsZm0ucGFyc2UoIGQtPnRyYWNrRmV0Y2gtPnJlYWRBbGwoKSApICkKKyAgICAgICAgIHsKKy0g ICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggZC0+dHJhY2tGZXRjaC0+cmVhZEFsbCgp ICk7CisgICAgICAgICAgICAgUVN0cmluZyBpZCA9IGxmbVsgInRyYWNrIiBdWyAiaWQiIF0udGV4 dCgpOworICAgICAgICAgICAgIFFTdHJpbmcgc3RyZWFtYWJsZSA9IGxmbVsgInRyYWNrIiBdWyAi c3RyZWFtYWJsZSIgXS50ZXh0KCk7CisgICAgICAgICAgICAgaWYoIHN0cmVhbWFibGUudG9JbnQo KSA9PSAxICkKK0BAIC00ODcsOSArNDg2LDEwIEBAIHZvaWQgVHJhY2s6OnNsb3RSZXN1bHRSZWFk eSgpCisgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICBpbml0KCk7CisgCistICAg ICAgICB9IGNhdGNoKCBsYXN0Zm06OndzOjpQYXJzZUVycm9yJiBlICkKKysgICAgICAgIH0KKysg ICAgICAgIGVsc2UKKyAgICAgICAgIHsKKy0gICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhj ZXB0aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0KCk7CisrICAgICAgICAg ICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5mbToiIDw8 IGxmbS5wYXJzZUVycm9yKCkubWVzc2FnZSgpOworICAgICAgICAgfQorICAgICB9IGVsc2UKKyAg ICAgeworZGlmZiAtdXAgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFz dEZtTWV0YS5oLmxpYmxhc3RmbTEgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL21l dGEvTGFzdEZtTWV0YS5oCistLS0gYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL21l dGEvTGFzdEZtTWV0YS5oLmxpYmxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAg LTA1MDAKKysrKyBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0YS9MYXN0Rm1N ZXRhLmgJMjAxMi0wOC0wMiAwNzozODoyNC4yOTk1NTYwOTMgLTA1MDAKK0BAIC0yNCw3ICsyNCw3 IEBACisgI2luY2x1ZGUgIlNlcnZpY2VNZXRhQmFzZS5oIiAvLyBmb3IgdGhlIFNvdXJjZUluZm9Q cm92aWRlcgorIAorIAorLSNpbmNsdWRlIDxsYXN0Zm0vVHJhY2s+CisrI2luY2x1ZGUgPGxhc3Rm bS9UcmFjay5oPgorIAorIAorICNpbmNsdWRlIDxRT2JqZWN0PgorZGlmZiAtdXAgYW1hcm9rLTIu NS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZtTWV0YV9wLmgubGlibGFzdGZtMSBh bWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0YS9MYXN0Rm1NZXRhX3AuaAorLS0t IGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3RmbS9tZXRhL0xhc3RGbU1ldGFfcC5oLmxp Ymxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAgLTA1MDAKKysrKyBhbWFyb2st Mi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0YS9MYXN0Rm1NZXRhX3AuaAkyMDEyLTA4LTAy IDA3OjM4OjI0LjMwMDU1NjA4MSAtMDUwMAorQEAgLTI2LDEwICsyNiwxMCBAQAorICNpbmNsdWRl ICJjb3JlL3N0YXRpc3RpY3MvU3RhdGlzdGljc1Byb3ZpZGVyLmgiCisgI2luY2x1ZGUgImNvcmUt aW1wbC9zdGF0aXN0aWNzL3Byb3ZpZGVycy90YWcvVGFnU3RhdGlzdGljc1Byb3ZpZGVyLmgiCisg CistI2luY2x1ZGUgPGxhc3RmbS9UcmFjaz4KKysjaW5jbHVkZSA8bGFzdGZtL1RyYWNrLmg+Cisg I2luY2x1ZGUgPGxhc3RmbS93cy5oPgorLSNpbmNsdWRlIDxsYXN0Zm0vUmFkaW9UdW5lcj4KKy0j aW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5PgorKyNpbmNsdWRlIDxsYXN0Zm0vUmFkaW9UdW5lci5o PgorKyNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnkuaD4KKyAKKyAjaW5jbHVkZSA8a2lvL2pvYi5o PgorICNpbmNsdWRlIDxraW8vam9iY2xhc3Nlcy5oPgorQEAgLTE0NCwyNiArMTQ0LDI0IEBAIGNs YXNzIFRyYWNrOjpQcml2YXRlIDogcHVibGljIFFPYmplY3QKKyAgICAgICAgICAgICAgICAgcmV0 dXJuOworICAgICAgICAgICAgIGlmKCBtX3VzZXJGZXRjaC0+ZXJyb3IoKSA9PSBRTmV0d29ya1Jl cGx5OjpOb0Vycm9yICkKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIHRyeQorKyAg ICAgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKKysgICAgICAgICAgICAgICAgaWYo ICFsZm0ucGFyc2UoIG1fdXNlckZldGNoLT5yZWFkQWxsKCkgKSApCisgICAgICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtKCBtX3VzZXJGZXRj aC0+cmVhZEFsbCgpICk7CistICAgICAgICAgICAgICAgICAgICBhbGJ1bVVybCA9IGxmbVsgInRy YWNrIiBdWyAiYWxidW0iIF1bICJ1cmwiIF0udGV4dCgpOworLSAgICAgICAgICAgICAgICAgICAg dHJhY2tVcmwgPSBsZm1bICJ0cmFjayIgXVsgInVybCIgXS50ZXh0KCk7CistICAgICAgICAgICAg ICAgICAgICBhcnRpc3RVcmwgPSBsZm1bICJ0cmFjayIgXVsgImFydGlzdCIgXVsgInVybCIgXS50 ZXh0KCk7CistCistICAgICAgICAgICAgICAgICAgICBub3RpZnlPYnNlcnZlcnMoKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgIGltYWdlVXJsID0gbGZtWyAidHJhY2siIF1bICJhbGJ1bSIgXVsg ImltYWdlIHNpemU9bGFyZ2UiIF0udGV4dCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgaWYo ICFpbWFnZVVybC5pc0VtcHR5KCkgKQorLSAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIEtJTzo6Sm9iKiBqb2IgPSBLSU86OnN0b3JlZEdldCggS1VybCggaW1h Z2VVcmwgKSwgS0lPOjpSZWxvYWQsIEtJTzo6SGlkZVByb2dyZXNzSW5mbyApOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGNvbm5lY3QoIGpvYiwgU0lHTkFMKCByZXN1bHQoIEtKb2IqICkgKSwg dGhpcywgU0xPVCggZmV0Y2hJbWFnZUZpbmlzaGVkKCBLSm9iKiApICkgKTsKKy0gICAgICAgICAg ICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRp b24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2Uo KTsKKysgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgICAgICAgICAgfQorKyAg ICAgICAgICAgICAgICBhbGJ1bVVybCA9IGxmbVsgInRyYWNrIiBdWyAiYWxidW0iIF1bICJ1cmwi IF0udGV4dCgpOworKyAgICAgICAgICAgICAgICB0cmFja1VybCA9IGxmbVsgInRyYWNrIiBdWyAi dXJsIiBdLnRleHQoKTsKKysgICAgICAgICAgICAgICAgYXJ0aXN0VXJsID0gbGZtWyAidHJhY2si IF1bICJhcnRpc3QiIF1bICJ1cmwiIF0udGV4dCgpOworKworKyAgICAgICAgICAgICAgICBub3Rp ZnlPYnNlcnZlcnMoKTsKKysKKysgICAgICAgICAgICAgICAgaW1hZ2VVcmwgPSBsZm1bICJ0cmFj ayIgXVsgImFsYnVtIiBdWyAiaW1hZ2Ugc2l6ZT1sYXJnZSIgXS50ZXh0KCk7CisgCistICAgICAg ICAgICAgICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNlRXJyb3ImIGUgKQorKyAgICAgICAg ICAgICAgICBpZiggIWltYWdlVXJsLmlzRW1wdHkoKSApCisgICAgICAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBm cm9tIGxhc3QuZm06IiA8PCBlLndoYXQoKTsKKysgICAgICAgICAgICAgICAgICAgIEtJTzo6Sm9i KiBqb2IgPSBLSU86OnN0b3JlZEdldCggS1VybCggaW1hZ2VVcmwgKSwgS0lPOjpSZWxvYWQsIEtJ Tzo6SGlkZVByb2dyZXNzSW5mbyApOworKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdCggam9i LCBTSUdOQUwoIHJlc3VsdCggS0pvYiogKSApLCB0aGlzLCBTTE9UKCBmZXRjaEltYWdlRmluaXNo ZWQoIEtKb2IqICkgKSApOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorIAor ZGlmZiAtdXAgYW1hcm9rLTIuNS45Ni9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTXVsdGlQbGF5 YWJsZUNhcGFiaWxpdHlJbXBsX3AuaC5saWJsYXN0Zm0xIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZp Y2VzL2xhc3RmbS9tZXRhL011bHRpUGxheWFibGVDYXBhYmlsaXR5SW1wbF9wLmgKKy0tLSBhbWFy b2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0YS9NdWx0aVBsYXlhYmxlQ2FwYWJpbGl0 eUltcGxfcC5oLmxpYmxhc3RmbTEJMjAxMi0wNy0zMSAwNToxMDo1Ni4wMDAwMDAwMDAgLTA1MDAK KysrKyBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0YS9NdWx0aVBsYXlhYmxl Q2FwYWJpbGl0eUltcGxfcC5oCTIwMTItMDgtMDIgMDc6Mzg6MjQuMzAxNTU2MDY4IC0wNTAwCitA QCAtMjUsOCArMjUsOSBAQAorICNpbmNsdWRlICJjb3JlL21ldGEvTWV0YS5oIgorICNpbmNsdWRl ICJjb3JlL2NhcGFiaWxpdGllcy9NdWx0aVBsYXlhYmxlQ2FwYWJpbGl0eS5oIgorIAorLSNpbmNs dWRlIDxsYXN0Zm0vVHJhY2s+CistI2luY2x1ZGUgPGxhc3RmbS9SYWRpb1R1bmVyPgorKyNpbmNs dWRlIDxsYXN0Zm0vVHJhY2suaD4KKysjaW5jbHVkZSA8bGFzdGZtL1JhZGlvU3RhdGlvbi5oPgor KyNpbmNsdWRlIDxsYXN0Zm0vUmFkaW9UdW5lci5oPgorICNpbmNsdWRlIDxsYXN0Zm0vd3MuaD4K KyAKKyAjaW5jbHVkZSA8S0xvY2FsZT4KK0BAIC01NSwyNCArNTYsMjMgQEAgY2xhc3MgTXVsdGlQ bGF5YWJsZUNhcGFiaWxpdHlJbXBsIDogcHVibAorICAgICAgICAgeworICAgICAgICAgICAgIERF QlVHX0JMT0NLCisgICAgICAgICAgICAgbV90dW5lciA9IG5ldyBsYXN0Zm06OlJhZGlvVHVuZXIo IGxhc3RmbTo6UmFkaW9TdGF0aW9uKCBtX3RyYWNrLT51aWRVcmwoKSApICk7CistICAgICAgICAg ICAgCisrCisgICAgICAgICAgICAgY29ubmVjdCggbV90dW5lciwgU0lHTkFMKCB0cmFja0F2YWls YWJsZSgpICksIHRoaXMsIFNMT1QoIHNsb3ROZXdUcmFja0F2YWlsYWJsZSgpICkgKTsKKy0gICAg ICAgICAgICBjb25uZWN0KCBtX3R1bmVyLCBTSUdOQUwoIGVycm9yKCBsYXN0Zm06OndzOjpFcnJv ciApICksIHRoaXMsIFNMT1QoIGVycm9yKCBsYXN0Zm06OndzOjpFcnJvciApICkgKTsKKysgICAg ICAgICAgICBjb25uZWN0KCBtX3R1bmVyLCBTSUdOQUwoIGVycm9yKGxhc3RmbTo6d3M6OkVycm9y LFFTdHJpbmcpICksIHRoaXMsIFNMT1QoIGVycm9yKCBsYXN0Zm06OndzOjpFcnJvciApICkgKTsK KyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAgICAgICAgdmlydHVhbCB2b2lkIGZldGNoTmV4 dCgpCisgICAgICAgICB7CisgICAgICAgICAgICAgREVCVUdfQkxPQ0sKKyAgICAgICAgICAgICBt X2N1cnJlbnRUcmFjayA9IG1fdHVuZXItPnRha2VOZXh0VHJhY2soKTsKKyAgICAgICAgICAgICBt X3RyYWNrLT5zZXRUcmFja0luZm8oIG1fY3VycmVudFRyYWNrICk7CistCisgICAgICAgICB9Cist ICAgICAgICAKKysKKyAgICAgICAgIHVzaW5nIE9ic2VydmVyOjptZXRhZGF0YUNoYW5nZWQ7Cisg ICAgICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFDaGFuZ2VkKCBNZXRhOjpUcmFja1B0ciB0cmFj ayApCisgICAgICAgICB7CisgICAgICAgICAgICAgY29uc3QgTGFzdEZtOjpUcmFja1B0ciBsdHJh Y2sgPSBMYXN0Rm06OlRyYWNrUHRyOjpkeW5hbWljQ2FzdCggdHJhY2sgKTsKKy0gICAgICAgICAg ICAKKysKKyAgICAgICAgICAgICBpZiggbHRyYWNrLmlzTnVsbCgpICkKKyAgICAgICAgICAgICAg ICAgcmV0dXJuOworIAorQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgTXVsdGlQbGF5YWJsZUNhcGFi aWxpdHlJbXBsIDogcHVibAorICAgICAgICAgICAgICAgICBtX3RyYWNrLT5zZXRUcmFja0luZm8o IG1fY3VycmVudFRyYWNrICk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorLSAgICAgICAg CisrCisgICAgICAgICB2aXJ0dWFsIHZvaWQgc2tpcCgpCisgICAgICAgICB7CisgICAgICAgICAg ICAgZmV0Y2hOZXh0KCk7CitkaWZmIC11cCBhbWFyb2stMi41Ljk2L3NyYy9zZXJ2aWNlcy9sYXN0 Zm0vU2Nyb2JibGVyQWRhcHRlci5oLmxpYmxhc3RmbTEgYW1hcm9rLTIuNS45Ni9zcmMvc2Vydmlj ZXMvbGFzdGZtL1Njcm9iYmxlckFkYXB0ZXIuaAorLS0tIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZp Y2VzL2xhc3RmbS9TY3JvYmJsZXJBZGFwdGVyLmgubGlibGFzdGZtMQkyMDEyLTA3LTMxIDA1OjEw OjU2LjAwMDAwMDAwMCAtMDUwMAorKysrIGFtYXJvay0yLjUuOTYvc3JjL3NlcnZpY2VzL2xhc3Rm bS9TY3JvYmJsZXJBZGFwdGVyLmgJMjAxMi0wOC0wMiAwNzozODoyNC4yOTg1NTYxMDUgLTA1MDAK K0BAIC0yMCw4ICsyMCw4IEBACisgCisgI2luY2x1ZGUgImNvcmUvbWV0YS9NZXRhLmgiCisgCist I2luY2x1ZGUgPGxhc3RmbS9BdWRpb3Njcm9iYmxlcj4KKy0jaW5jbHVkZSA8bGFzdGZtL1RyYWNr PgorKyNpbmNsdWRlIDxsYXN0Zm0vQXVkaW9zY3JvYmJsZXIuaD4KKysjaW5jbHVkZSA8bGFzdGZt L1RyYWNrLmg+CisgCisgI2luY2x1ZGUgPFFWYXJpYW50PgorIAoKZGlmZiAtLWdpdCBhL2FtYXJv ay1saWJsYXN0Zm0xLnBhdGNoIGIvYW1hcm9rLWxpYmxhc3RmbTEucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDU4MjA2MmUuLjAwMDAwMDAKLS0tIGEvYW1hcm9rLWxpYmxhc3Rm bTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3MjIgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3Ny Yy9zZXJ2aWNlcy9hbXBhY2hlL0xhc3RmbUluZm9QYXJzZXIuY3BwIGIvc3JjL3NlcnZpY2VzL2Ft cGFjaGUvTGFzdGZtSW5mb1BhcnNlci5jcHAKLWluZGV4IDUwY2I1Mjk1MTZjZTEzNTg3ODVmYTA0 ODI0Y2QzMjY0MmE1MjY0OTUuLjBjNmRkOGZlOWY2YTQ5MWE4OGRmYjA2MmEwOWUyNjUyOTc2ZGYw ZWYgMTAwNjQ0Ci0tLS0gYS9zcmMvc2VydmljZXMvYW1wYWNoZS9MYXN0Zm1JbmZvUGFyc2VyLmNw cAotKysrIGIvc3JjL3NlcnZpY2VzL2FtcGFjaGUvTGFzdGZtSW5mb1BhcnNlci5jcHAKLUBAIC0y MCw4ICsyMCw3IEBACi0gI2luY2x1ZGUgImNvcmUvc3VwcG9ydC9BbWFyb2suaCIKLSAjaW5jbHVk ZSAiY29yZS9zdXBwb3J0L0RlYnVnLmgiCi0gCi0tI2luY2x1ZGUgPGxhc3RmbS9YbWxRdWVyeT4K LS0jaW5jbHVkZSA8bGFzdGZtL3dzLmg+Ci0rI2luY2x1ZGUgPGxhc3RmbS9YbWxRdWVyeS5oPgot IAotICNpbmNsdWRlIDxLTG9jYWxlPgotIAotQEAgLTU1LDcgKzU0LDggQEAgdm9pZCBMYXN0Zm1J bmZvUGFyc2VyOjpvbkdldFRyYWNrSW5mbygpCi0gICAgIHsKLSAgICAgICAgIGNhc2UgUU5ldHdv cmtSZXBseTo6Tm9FcnJvcjoKLSAgICAgICAgIHsKLS0gICAgICAgICAgICBsYXN0Zm06OlhtbFF1 ZXJ5IGxmbSA9IG1fam9ic1sgImdldFRyYWNrSW5mbyIgXS0+cmVhZEFsbCgpOwotKyAgICAgICAg ICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwotKyAgICAgICAgICAgIGxmbS5wYXJzZSggbV9qb2Jz WyAiZ2V0VHJhY2tJbmZvIiBdLT5yZWFkQWxsKCkgKTsKLSAgICAgICAgICAgICBsYXN0Zm06Olht bFF1ZXJ5IHdpa2kgPSBsZm1bInRyYWNrIl1bIndpa2kiXTsKLSAgICAgICAgICAgICBjb25zdCBR U3RyaW5nIGNvbnRlbnRUZXh0ID0gd2lraVsiY29udGVudCJdLnRleHQoKTsKLSAgICAgICAgICAg ICBjb25zdCBRU3RyaW5nIHB1Ymxpc2hlZERhdGUgPSB3aWtpWyJwdWJsaXNoZWQiXS50ZXh0KCk7 Ci1AQCAtMTAzLDcgKzEwMyw4IEBAIHZvaWQgTGFzdGZtSW5mb1BhcnNlcjo6b25HZXRBbGJ1bUlu Zm8oKQotICAgICB7Ci0gICAgICAgICBjYXNlIFFOZXR3b3JrUmVwbHk6Ok5vRXJyb3I6Ci0gICAg ICAgICB7Ci0tICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0gPSBtX2pvYnNbICJnZXRB bGJ1bUluZm8iIF0tPnJlYWRBbGwoKTsKLSsgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxm bTsKLSsgICAgICAgICAgICBsZm0ucGFyc2UoIG1fam9ic1sgImdldEFsYnVtSW5mbyIgXS0+cmVh ZEFsbCgpICk7Ci0gICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSB3aWtpID0gbGZtWyJhbGJ1 bSJdWyJ3aWtpIl07Ci0gICAgICAgICAgICAgY29uc3QgUVN0cmluZyBzdW1tYXJ5VGV4dCA9IHdp a2lbInN1bW1hcnkiXS50ZXh0KCk7Ci0gICAgICAgICAgICAgY29uc3QgUVN0cmluZyBjb250ZW50 VGV4dCA9IHdpa2lbImNvbnRlbnQiXS50ZXh0KCk7Ci1AQCAtMTU1LDcgKzE1Niw4IEBAIHZvaWQg TGFzdGZtSW5mb1BhcnNlcjo6b25HZXRBcnRpc3RJbmZvKCkKLSAgICAgewotICAgICAgICAgY2Fz ZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9yOgotICAgICAgICAgewotLSAgICAgICAgICAgIGxhc3Rm bTo6WG1sUXVlcnkgbGZtID0gbV9qb2JzWyAiZ2V0QXJ0aXN0SW5mbyIgXS0+cmVhZEFsbCgpOwot KyAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwotKyAgICAgICAgICAgIGxmbS5wYXJz ZSggbV9qb2JzWyAiZ2V0QXJ0aXN0SW5mbyIgXS0+cmVhZEFsbCgpICk7Ci0gICAgICAgICAgICAg ZGVidWcoKSA8PCBsZm0udGV4dCgpOwotICAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgYmlv ID0gbGZtWyJhcnRpc3QiXVsiYmlvIl07Ci0gICAgICAgICAgICAgY29uc3QgUVN0cmluZyBzdW1t YXJ5VGV4dCA9IGJpb1sic3VtbWFyeSJdLnRleHQoKTsKLWRpZmYgLS1naXQgYS9zcmMvc2Vydmlj ZXMvbGFzdGZtL0xhc3RGbVNlcnZpY2UuY3BwIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1T ZXJ2aWNlLmNwcAotaW5kZXggYTE0ZDk4OWIzZmFjODFlNTQ1ZGYwOTVhZGVlMzY1ODBiMDUyZmVh Ny4uYzk4OThhYTFmY2QxNmNhODA3MGVlYzY2MjMxZGIyM2MxYmVkZGZmMiAxMDA2NDQKLS0tLSBh L3NyYy9zZXJ2aWNlcy9sYXN0Zm0vTGFzdEZtU2VydmljZS5jcHAKLSsrKyBiL3NyYy9zZXJ2aWNl cy9sYXN0Zm0vTGFzdEZtU2VydmljZS5jcHAKLUBAIC00Niw4ICs0Niw4IEBACi0gI2luY2x1ZGUg IndpZGdldHMvU2VhcmNoV2lkZ2V0LmgiCi0gI2luY2x1ZGUgIk5ldHdvcmtBY2Nlc3NNYW5hZ2Vy UHJveHkuaCIKLSAKLS0jaW5jbHVkZSA8bGFzdGZtL0F1ZGlvc2Nyb2JibGVyPiAvLyBmcm9tIGxp Ymxhc3RmbQotLSNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnk+Ci0rI2luY2x1ZGUgPGxhc3RmbS9B dWRpb3Njcm9iYmxlci5oPiAvLyBmcm9tIGxpYmxhc3RmbQotKyNpbmNsdWRlIDxsYXN0Zm0vWG1s UXVlcnkuaD4KLSAKLSAjaW5jbHVkZSA8S0xvY2FsZT4KLSAjaW5jbHVkZSA8S1Bhc3N3b3JkRGlh bG9nPgotQEAgLTIyNCwxMCArMjI0LDcgQEAgTGFzdEZtU2VydmljZTo6aW5pdCgpCi0gewotICAg ICAvLyBzZXQgdGhlIGdsb2JhbCBzdGF0aWMgTGFzdGZtOjpXcyBzdHVmZgotICAgICBsYXN0Zm06 OndzOjpBcGlLZXkgPSBBbWFyb2s6Omxhc3RmbUFwaUtleSgpOwotLSAgICBsYXN0Zm06OndzOjpT aGFyZWRTZWNyZXQgPSAiZmUwZGNkZTlmY2QxNGMyZDFkNTA2NjViNjQ2MzM1ZTkiOwotLSAgICAv LyB0ZXN0aW5nIHcvIG9mZmljaWFsIGtleXMKLS0gICAgLy9Xczo6U2hhcmVkU2VjcmV0ID0gIjcz NTgyZGZjOWU1NTZkMzA3YWVhZDA2OWFmMTEwYWI4IjsKLS0gICAgLy9Xczo6QXBpS2V5ID0gImM4 YzdiMTYzYjExZjkyZWYyZDMzYmE2Y2QzYzJjM2MzIjsKLSsgICAgbGFzdGZtOjp3czo6U2hhcmVk U2VjcmV0ID0gQW1hcm9rOjpsYXN0Zm1BcGlTaGFyZWRTZWNyZXQoKTsKLSAgICAgbV91c2VyTmFt ZUFycmF5ID0gcXN0cmR1cCggbV91c2VyTmFtZS50b0xhdGluMSgpLmRhdGEoKSApOwotICAgICBs YXN0Zm06OndzOjpVc2VybmFtZSA9IG1fdXNlck5hbWVBcnJheTsKLSAgICAgaWYoIGxhc3RmbTo6 bmFtKCkgIT0gVGhlOjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpICkKLUBAIC0zMDksNyArMzA2LDgg QEAgTGFzdEZtU2VydmljZTo6b25BdXRoZW50aWNhdGVkKCkKLSAgICAgICAgIGNhc2UgUU5ldHdv cmtSZXBseTo6Tm9FcnJvcjoKLSAgICAgICAgIHsKLSAKLS0gICAgICAgICAgICBsYXN0Zm06Olht bFF1ZXJ5IGxmbSA9IGxhc3RmbTo6WG1sUXVlcnkoIG1fam9ic1sgImF1dGgiIF0tPnJlYWRBbGwo KSApOwotKyAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwotKyAgICAgICAgICAgIGxm bS5wYXJzZSggbV9qb2JzWyAiYXV0aCIgXS0+cmVhZEFsbCgpICk7Ci0gICAgICAgICAgICAgTGFz dEZtU2VydmljZUNvbmZpZyBjb25maWc7Ci0gCi0gICAgICAgICAgICAgaWYoIGxmbS5jaGlsZHJl biggImVycm9yIiApLnNpemUoKSA+IDAgKQotQEAgLTM1OSwxMCArMzU3LDggQEAgTGFzdEZtU2Vy dmljZTo6b25HZXRVc2VySW5mbygpCi0gICAgIHsKLSAgICAgICAgIGNhc2UgUU5ldHdvcmtSZXBs eTo6Tm9FcnJvcjoKLSAgICAgICAgIHsKLS0gICAgICAgICAgICB0cnkKLS0gICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtKCBtX2pvYnNbICJnZXRVc2Vy SW5mbyIgXS0+cmVhZEFsbCgpICk7Ci0tCi0rICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBs Zm07Ci0rICAgICAgICAgICAgaWYoIGxmbS5wYXJzZSggbV9qb2JzWyAiZ2V0VXNlckluZm8iIF0t PnJlYWRBbGwoKSApICkgewotICAgICAgICAgICAgICAgICBtX2NvdW50cnkgPSBsZm1bInVzZXIi XVsiY291bnRyeSJdLnRleHQoKTsKLSAgICAgICAgICAgICAgICAgbV9hZ2UgPSBsZm1bInVzZXIi XVsiYWdlIl0udGV4dCgpOwotICAgICAgICAgICAgICAgICBtX2dlbmRlciA9IGxmbVsidXNlciJd WyJnZW5kZXIiXS50ZXh0KCk7Ci1AQCAtMzgxLDkgKzM3NywxMCBAQCBMYXN0Rm1TZXJ2aWNlOjpv bkdldFVzZXJJbmZvKCkKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB1cGRh dGVQcm9maWxlSW5mbygpOwotIAotLSAgICAgICAgICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBh cnNlRXJyb3ImIGUgKQotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBlbHNlCi0gICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0aW9uIGluIHBh cnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0KCk7Ci0rICAgICAgICAgICAgICAgIGRlYnVn KCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFy c2VFcnJvcigpLm1lc3NhZ2UoKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgICB9IGNhc2UgUU5ldHdvcmtSZXBseTo6QXV0aGVudGljYXRpb25SZXF1aXJlZEVy cm9yOgotZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9sYXN0Zm0vTGFzdEZtU2VydmljZUNvbGxl Y3Rpb24uY3BwIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbi5j cHAKLWluZGV4IDIyZjQ5ZWMwZmU4ZTlmOTE3ZjhhMjZmOWQ1NDZhZDE0N2FkMDRlNWIuLjBlZDU1 MDVjMWNkMTM1MGM4NWYyMTk2NGU3NzJmM2MzNmNmNmFlM2UgMTAwNjQ0Ci0tLS0gYS9zcmMvc2Vy dmljZXMvbGFzdGZtL0xhc3RGbVNlcnZpY2VDb2xsZWN0aW9uLmNwcAotKysrIGIvc3JjL3NlcnZp Y2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbi5jcHAKLUBAIC0yNiw3ICsyNiw3IEBA Ci0gI2luY2x1ZGUgImNvcmUtaW1wbC9jb2xsZWN0aW9ucy9zdXBwb3J0L01lbW9yeVF1ZXJ5TWFr ZXIuaCIKLSAKLSAjaW5jbHVkZSA8bGFzdGZtL3dzLmg+Ci0tI2luY2x1ZGUgPGxhc3RmbS9YbWxR dWVyeT4KLSsjaW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5Lmg+Ci0gCi0gI2luY2x1ZGUgPFFOZXR3 b3JrUmVwbHk+Ci0gCi1AQCAtMTU0LDEwICsxNTQsOSBAQCB2b2lkIExhc3RGbVNlcnZpY2VDb2xs ZWN0aW9uOjpzbG90QWRkTmVpZ2hib3Vyc0xvdmVkKCkKLSAgICAgICAgIGNhc2UgUU5ldHdvcmtS ZXBseTo6Tm9FcnJvcjoKLSAgICAgICAgIHsKLSAgICAgICAgICAgICAvLyBpdGVyYXRlIHRocm91 Z2ggZWFjaCBuZWlnaGJvdXIKLS0gICAgICAgICAgICB0cnkKLSsgICAgICAgICAgICBsYXN0Zm06 OlhtbFF1ZXJ5IGxmbTsKLSsgICAgICAgICAgICBpZiggbGZtLnBhcnNlKCBtX2pvYnNbICJ1c2Vy LmdldE5laWdoYm91cnMiIF0tPnJlYWRBbGwoKSApICkKLSAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtKCBtX2pvYnNbICJ1c2VyLmdldE5laWdoYm91 cnMiIF0tPnJlYWRBbGwoKSApOwotLQotICAgICAgICAgICAgICAgICBmb3JlYWNoKCBjb25zdCBs YXN0Zm06OlhtbFF1ZXJ5ICZlLCBsZm1bICJuZWlnaGJvdXJzIiBdLmNoaWxkcmVuKCAidXNlciIg KSApCi0gICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJp bmcgbmFtZSA9IGVbICJuYW1lIiBdLnRleHQoKTsKLUBAIC0xNjgsOSArMTY3LDEwIEBAIHZvaWQg TGFzdEZtU2VydmljZUNvbGxlY3Rpb246OnNsb3RBZGROZWlnaGJvdXJzTG92ZWQoKQotICAgICAg ICAgICAgICAgICAgICAgYWRkVHJhY2soIHRyYWNrUHRyICk7Ci0gICAgICAgICAgICAgICAgIH0K LSAKLS0gICAgICAgICAgICB9IGNhdGNoKCBsYXN0Zm06OndzOjpQYXJzZUVycm9yJiBlICkKLSsg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5m bToiIDw8IGUud2hhdCgpOwotKyAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0 aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgbGZtLnBhcnNlRXJyb3IoKS5tZXNzYWdl KCk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotQEAg LTE5NSwxNSArMTk1LDE0IEBAIHZvaWQgTGFzdEZtU2VydmljZUNvbGxlY3Rpb246OnNsb3RBZGRO ZWlnaGJvdXJzUGVyc29uYWwoKQotICAgICAgICAgY2FzZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9y OgotICAgICAgICAgewotICAgICAgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIG5laWdo Ym91cgotLSAgICAgICAgICAgIHRyeQotKyAgICAgICAgICAgIGlmKCAhbV9qb2JzWyAidXNlci5n ZXROZWlnaGJvdXJzIiBdICkKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIGRlYnVn KCkgPDwgIkJBRCEgZ290IG5vIHJlc3VsdCBvYmplY3QiOwotKyAgICAgICAgICAgICAgICByZXR1 cm47Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwot KyAgICAgICAgICAgIGlmKCBsZm0ucGFyc2UoIG1fam9ic1sgInVzZXIuZ2V0TmVpZ2hib3VycyIg XS0+cmVhZEFsbCgpICkgKQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgaWYoICFt X2pvYnNbICJ1c2VyLmdldE5laWdoYm91cnMiIF0gKQotLSAgICAgICAgICAgICAgICB7Ci0tICAg ICAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJCQUQhIGdvdCBubyByZXN1bHQgb2JqZWN0IjsK LS0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggbV9qb2JzWyAidXNlci5nZXROZWlnaGJv dXJzIiBdLT5yZWFkQWxsKCkgKTsKLS0KLSAgICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSB0aHJv dWdoIGVhY2ggbmVpZ2hib3VyCi0gICAgICAgICAgICAgICAgIGZvcmVhY2goIGNvbnN0IGxhc3Rm bTo6WG1sUXVlcnkgJmUsIGxmbVsgIm5laWdoYm91cnMiIF0uY2hpbGRyZW4oICJ1c2VyIiApICkK LSAgICAgICAgICAgICAgICAgewotQEAgLTIxOCw5ICsyMTcsMTAgQEAgdm9pZCBMYXN0Rm1TZXJ2 aWNlQ29sbGVjdGlvbjo6c2xvdEFkZE5laWdoYm91cnNQZXJzb25hbCgpCi0gCi0gICAgICAgICAg ICAgICAgIC8vIHNob3VsZCBiZSBzYWZlLCBhcyBib3RoIHNsb3RzIFNIT1VMRCBnZXQgY2FsbGVk IGJlZm9yZSB3ZSByZXR1cm4gdG8gdGhlIGV2ZW50IGxvb3AuLi4KLSAgICAgICAgICAgICAgICAg bV9qb2JzWyAidXNlci5nZXROZWlnaGJvdXJzIiBdLT5kZWxldGVMYXRlcigpOwotLSAgICAgICAg ICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNlRXJyb3ImIGUgKQotKyAgICAgICAgICAgIH0K LSsgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBkZWJ1 ZygpIDw8ICJHb3QgZXhjZXB0aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0 KCk7Ci0rICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2lu ZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKLSAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci1AQCAtMjQ4LDEwICsyNDgs OSBAQCB2b2lkIExhc3RGbVNlcnZpY2VDb2xsZWN0aW9uOjpzbG90QWRkRnJpZW5kc0xvdmVkKCkK LSAgICAgewotICAgICAgICAgY2FzZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9yOgotICAgICAgICAg ewotLSAgICAgICAgICAgIHRyeQotKyAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwot KyAgICAgICAgICAgIGlmKCBsZm0ucGFyc2UoIG1fam9ic1sgInVzZXIuZ2V0RnJpZW5kcyIgXS0+ cmVhZEFsbCgpICkgKQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgbGFzdGZtOjpY bWxRdWVyeSBsZm0oIG1fam9ic1sgInVzZXIuZ2V0RnJpZW5kcyIgXS0+cmVhZEFsbCgpICk7Ci0t Ci0gICAgICAgICAgICAgICAgIGZvcmVhY2goIGNvbnN0IGxhc3RmbTo6WG1sUXVlcnkgJmUsIGxm bVsgImZyaWVuZHMiIF0uY2hpbGRyZW4oICJ1c2VyIiApICkKLSAgICAgICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyBuYW1lID0gZVsgIm5hbWUiIF0udGV4 dCgpOwotQEAgLTI2MSw5ICsyNjAsMTAgQEAgdm9pZCBMYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbjo6 c2xvdEFkZEZyaWVuZHNMb3ZlZCgpCi0gICAgICAgICAgICAgICAgICAgICBhZGRUcmFjayggdHJh Y2tQdHIgKTsKLSAgICAgICAgICAgICAgICAgfQotIAotLSAgICAgICAgICAgIH0gY2F0Y2goIGxh c3RmbTo6d3M6OlBhcnNlRXJyb3ImIGUgKQotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhj ZXB0aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0KCk7Ci0rICAgICAgICAg ICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06 IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci1AQCAtMjkzLDEwICsyOTMsOSBAQCB2b2lkIExhc3RG bVNlcnZpY2VDb2xsZWN0aW9uOjpzbG90QWRkRnJpZW5kc1BlcnNvbmFsKCkKLSAgICAgewotICAg ICAgICAgY2FzZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9yOgotICAgICAgICAgewotLSAgICAgICAg ICAgIHRyeQotKyAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwotKyAgICAgICAgICAg IGlmKCBsZm0ucGFyc2UoIG1fam9ic1sgInVzZXIuZ2V0RnJpZW5kcyIgXS0+cmVhZEFsbCgpICkg KQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0o IG1fam9ic1sgInVzZXIuZ2V0RnJpZW5kcyIgXS0+cmVhZEFsbCgpICk7Ci0tCi0gICAgICAgICAg ICAgICAgIGZvcmVhY2goIGNvbnN0IGxhc3RmbTo6WG1sUXVlcnkgJmUsIGxmbVsgImZyaWVuZHMi IF0uY2hpbGRyZW4oICJ1c2VyIiApICkKLSAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg ICAgICAgICAgY29uc3QgUVN0cmluZyBuYW1lID0gZVsgIm5hbWUiIF0udGV4dCgpOwotQEAgLTMw Niw5ICszMDUsMTAgQEAgdm9pZCBMYXN0Rm1TZXJ2aWNlQ29sbGVjdGlvbjo6c2xvdEFkZEZyaWVu ZHNQZXJzb25hbCgpCi0gICAgICAgICAgICAgICAgICAgICBhZGRUcmFjayggdHJhY2tQdHIgKTsK LSAgICAgICAgICAgICAgICAgfQotIAotLSAgICAgICAgICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6 OlBhcnNlRXJyb3ImIGUgKQotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBlbHNlCi0gICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0aW9uIGlu IHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgZS53aGF0KCk7Ci0rICAgICAgICAgICAgICAgIGRl YnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0u cGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1T ZXJ2aWNlU2V0dGluZ3MuY3BwIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlU2V0 dGluZ3MuY3BwCi1pbmRleCAyZWZmNzFlNTFkYzMwNjA1YjRkMzk1MzIzYTAxZTI0YjhmYTI1ZDFl Li45ZjY3NTU5Yjc5ZmIyMThkNGM1ZGJhNzY5ZmU5OGRjZjVjZWE0YjhiIDEwMDY0NAotLS0tIGEv c3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1TZXJ2aWNlU2V0dGluZ3MuY3BwCi0rKysgYi9zcmMv c2VydmljZXMvbGFzdGZtL0xhc3RGbVNlcnZpY2VTZXR0aW5ncy5jcHAKLUBAIC0yMyw5ICsyMyw5 IEBACi0gI2luY2x1ZGUgIk5ldHdvcmtBY2Nlc3NNYW5hZ2VyUHJveHkuaCIKLSAjaW5jbHVkZSAi dWlfTGFzdEZtQ29uZmlnV2lkZ2V0LmgiCi0gCi0tI2luY2x1ZGUgPGxhc3RmbS9BdWRpb3Njcm9i Ymxlcj4gLy8gZnJvbSBsaWJsYXN0Zm0KLSsjaW5jbHVkZSA8bGFzdGZtL0F1ZGlvc2Nyb2JibGVy Lmg+IC8vIGZyb20gbGlibGFzdGZtCi0gI2luY2x1ZGUgPGxhc3RmbS93cy5oPgotLSNpbmNsdWRl IDxsYXN0Zm0vWG1sUXVlcnk+Ci0rI2luY2x1ZGUgPGxhc3RmbS9YbWxRdWVyeS5oPgotIAotICNp bmNsdWRlIDxRQ3J5cHRvZ3JhcGhpY0hhc2g+Ci0gI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFu YWdlcj4KLUBAIC0xMDAsNyArMTAwLDcgQEAgTGFzdEZtU2VydmljZVNldHRpbmdzOjp0ZXN0TG9n aW4oKQotICAgICBtX2NvbmZpZ0RpYWxvZy0+dGVzdExvZ2luLT5zZXRUZXh0KCBpMThuKCAiVGVz dGluZy4uLiIgKSApOwotICAgICAvLyBzZXQgdGhlIGdsb2JhbCBzdGF0aWMgTGFzdGZtOjpXcyBz dHVmZgotICAgICBsYXN0Zm06OndzOjpBcGlLZXkgPSBBbWFyb2s6Omxhc3RmbUFwaUtleSgpOwot LSAgICBsYXN0Zm06OndzOjpTaGFyZWRTZWNyZXQgPSAiZmUwZGNkZTlmY2QxNGMyZDFkNTA2NjVi NjQ2MzM1ZTkiOwotKyAgICBsYXN0Zm06OndzOjpTaGFyZWRTZWNyZXQgPSBBbWFyb2s6Omxhc3Rm bUFwaVNoYXJlZFNlY3JldCgpOwotICAgICBsYXN0Zm06OndzOjpVc2VybmFtZSA9IHFzdHJkdXAo IG1fY29uZmlnRGlhbG9nLT5rY2ZnX1Njcm9iYmxlclVzZXJuYW1lLT50ZXh0KCkudG9MYXRpbjEo KS5kYXRhKCkgKTsKLSAgICAgaWYoIGxhc3RmbTo6bmFtKCkgIT0gVGhlOjpuZXR3b3JrQWNjZXNz TWFuYWdlcigpICkKLSAgICAgICAgIGxhc3RmbTo6c2V0TmV0d29ya0FjY2Vzc01hbmFnZXIoIFRo ZTo6bmV0d29ya0FjY2Vzc01hbmFnZXIoKSApOwotQEAgLTEyNiw3ICsxMjYsOCBAQCBMYXN0Rm1T ZXJ2aWNlU2V0dGluZ3M6Om9uQXV0aGVudGljYXRlZCgpCi0gewotICAgICBERUJVR19CTE9DSwot IAotLSAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSA9IGxhc3RmbTo6WG1sUXVlcnkoIG1fYXV0aFF1 ZXJ5LT5yZWFkQWxsKCkgKTsKLSsgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm07Ci0rICAgIGxmbS5w YXJzZSggbV9hdXRoUXVlcnktPnJlYWRBbGwoKSApOwotIAotICAgICBzd2l0Y2goIG1fYXV0aFF1 ZXJ5LT5lcnJvcigpICkKLSAgICAgewotZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9sYXN0Zm0v TGFzdEZtVHJlZU1vZGVsLmggYi9zcmMvc2VydmljZXMvbGFzdGZtL0xhc3RGbVRyZWVNb2RlbC5o Ci1pbmRleCBhYzE3MWE1N2EzNmVjNmJiNTQ0MzAzNWIxMWJlYTc3ZTRhZTk0NzIwLi4zYWEyMDYx YWZjZThiYjZjNTdlMWE3ZjFjZjA3MTdhZjhmNTJhN2QxIDEwMDY0NAotLS0tIGEvc3JjL3NlcnZp Y2VzL2xhc3RmbS9MYXN0Rm1UcmVlTW9kZWwuaAotKysrIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9M YXN0Rm1UcmVlTW9kZWwuaAotQEAgLTIyLDcgKzIyLDcgQEAKLSAjaW5jbHVkZSAiY29yZS9tZXRh L01ldGEuaCIKLSAjaW5jbHVkZSAiV2VpZ2h0ZWRTdHJpbmdMaXN0LmgiCi0gCi0tI2luY2x1ZGUg PGxhc3RmbS9Vc2VyPgotKyNpbmNsdWRlIDxsYXN0Zm0vVXNlci5oPgotIAotICNpbmNsdWRlIDxR QWJzdHJhY3RJdGVtTW9kZWw+Ci0gI2luY2x1ZGUgPFFIYXNoPgotQEAgLTEzNiw3ICsxMzYsNyBA QCBwcml2YXRlOgotICAgICBMYXN0Rm1UcmVlSXRlbSAqbV9teVRvcEFydGlzdHM7Ci0gCi0gICAg IFFTdHJpbmcgbV91c2VyTmFtZTsKLS0gICAgbGFzdGZtOjpBdXRoZW50aWNhdGVkVXNlciBtX3Vz ZXI7Ci0rICAgIGxhc3RmbTo6VXNlciBtX3VzZXI7Ci0gCi0gICAgIFFTdHJpbmdMaXN0IG1fZnJp ZW5kczsKLSAgICAgUVN0cmluZ0xpc3QgbV9uZWlnaGJvcnM7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Nl cnZpY2VzL2xhc3RmbS9MYXN0Rm1UcmVlTW9kZWwuY3BwIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9M YXN0Rm1UcmVlTW9kZWwuY3BwCi1pbmRleCAyZDk0ZDY3YzVmZTEwYmZjMWFiYmEzZGQ5ODQ4ZmQx MTc3ZGFhNTE4Li40ZDQ3ZDQyMDFiZGQ2YmZjMzNmZjU4YTRjOTRkNzVmZjZhNzBlYzQ2IDEwMDY0 NAotLS0tIGEvc3JjL3NlcnZpY2VzL2xhc3RmbS9MYXN0Rm1UcmVlTW9kZWwuY3BwCi0rKysgYi9z cmMvc2VydmljZXMvbGFzdGZtL0xhc3RGbVRyZWVNb2RlbC5jcHAKLUBAIC0yNiw4ICsyNiw4IEBA Ci0gI2luY2x1ZGUgIkFtYXJva01pbWVEYXRhLmgiCi0gCi0gI2luY2x1ZGUgPGxhc3RmbS93cy5o PgotLSNpbmNsdWRlIDxsYXN0Zm0vVGFnPgotLSNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnk+Ci0r I2luY2x1ZGUgPGxhc3RmbS9UYWcuaD4KLSsjaW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5Lmg+Ci0g Ci0gI2luY2x1ZGUgPEtJY29uPgotICNpbmNsdWRlIDxLTG9jYWxlPgotQEAgLTY4LDExICs2OCwx MiBAQCBMYXN0Rm1UcmVlTW9kZWw6OnNsb3RBZGROZWlnaGJvcnMgKCkKLSB7Ci0gICAgIERFQlVH X0JMT0NLCi0gCi0tICAgIHRyeQotLSAgICB7Ci0gICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFj aCBuZWlnaGJvciwgaW4gdHdvIHBhc3NlczogMSkgR2V0IGRhdGEgMikgU29ydCBkYXRhLCBzdG9y ZSBpbiBtb2RlbAotIAotLSAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0oIG1fam9ic1sgImdl dE5laWdoYm91cnMiIF0tPnJlYWRBbGwoKSApOwotKyAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsK LSsgICAgbGZtLnBhcnNlKCBtX2pvYnNbICJnZXROZWlnaGJvdXJzIiBdLT5yZWFkQWxsKCkgKTsK LSsgICAgaWYoIGxmbS5wYXJzZUVycm9yKCkuZW51bVZhbHVlKCkgPT0gbGFzdGZtOjp3czo6Tm9F cnJvciApCi0rICAgIHsKLSAgICAgICAgIGZvcmVhY2goIGNvbnN0IGxhc3RmbTo6WG1sUXVlcnkg JmUsIGxmbVsgIm5laWdoYm91cnMiIF0uY2hpbGRyZW4gKCAidXNlciIgKSApCi0gICAgICAgICB7 Ci0gICAgICAgICAgICAgY29uc3QgUVN0cmluZyBuYW1lID0gZVsgIm5hbWUiIF0udGV4dCgpOwot QEAgLTg4LDExICs4OSwxMSBAQCBMYXN0Rm1UcmVlTW9kZWw6OnNsb3RBZGROZWlnaGJvcnMgKCkK LSAgICAgICAgICAgICBhcHBlbmRVc2VyU3RhdGlvbnMoIG5laWdoYm9yLCBuYW1lICk7Ci0gICAg ICAgICB9Ci0gICAgICAgICBtX25laWdoYm9ycy5zb3J0KCk7Ci0rICAgIH0gZWxzZSB7Ci0rICAg ICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhjZXB0aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIg PDwgbGZtLnBhcnNlRXJyb3IoKS5tZXNzYWdlKCk7Ci0rICAgICAgICByZXR1cm47Ci0gICAgIH0K LS0gICAgY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNlRXJyb3IgZSApCi0tICAgIHsKLS0gICAgICAg IGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBl LndoYXQoKTsKLS0gICAgfQotKwotICAgICBlbWl0Um93Q2hhbmdlZChMYXN0Rm06Ok5laWdoYm9y cyk7Ci0gICAgIG1fam9ic1sgImdldE5laWdoYm91cnMiIF0tPmRlbGV0ZUxhdGVyKCk7Ci0gfQot QEAgLTEwMiwxMSArMTAzLDExIEBAIExhc3RGbVRyZWVNb2RlbDo6c2xvdEFkZEZyaWVuZHMgKCkK LSB7Ci0gICAgIERFQlVHX0JMT0NLCi0gCi0tICAgIHRyeQotLSAgICB7Ci0tICAgICAgICAvLyBJ dGVyYXRlIG92ZXIgZWFjaCBmcmllbmQsIGluIHR3byBwYXNzZXM6IDEpIEdldCBkYXRhIDIpIFNv cnQgZGF0YSwgc3RvcmUgaW4gbW9kZWwKLSsgICAgLy8gSXRlcmF0ZSBvdmVyIGVhY2ggZnJpZW5k LCBpbiB0d28gcGFzc2VzOiAxKSBHZXQgZGF0YSAyKSBTb3J0IGRhdGEsIHN0b3JlIGluIG1vZGVs Ci0gCi0tICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbSggbV9qb2JzWyAiZ2V0RnJpZW5kcyIg XS0+cmVhZEFsbCgpICk7Ci0rICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtOwotKyAgICBpZiggbGZt LnBhcnNlKCBtX2pvYnNbICJnZXRGcmllbmRzIiBdLT5yZWFkQWxsKCkgKSApCi0rICAgIHsKLSAg ICAgICAgIGZvcmVhY2goIGNvbnN0IGxhc3RmbTo6WG1sUXVlcnkgJmUsIGxmbVsgImZyaWVuZHMi IF0uY2hpbGRyZW4gKCAidXNlciIgKSApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3Qg UVN0cmluZyBuYW1lID0gZVsgIm5hbWUiIF0udGV4dCgpOwotQEAgLTEyMywxMSArMTI0LDExIEBA IExhc3RGbVRyZWVNb2RlbDo6c2xvdEFkZEZyaWVuZHMgKCkKLSAgICAgICAgICAgICBhcHBlbmRV c2VyU3RhdGlvbnMoIGFmcmllbmQsIG5hbWUgKTsKLSAgICAgICAgIH0KLSAgICAgICAgIG1fZnJp ZW5kcy5zb3J0KCk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBkZWJ1ZygpIDw8ICJHb3QgZXhj ZXB0aW9uIGluIHBhcnNpbmcgZnJvbSBsYXN0LmZtOiIgPDwgbGZtLnBhcnNlRXJyb3IoKS5tZXNz YWdlKCk7Ci0rICAgICAgICByZXR1cm47Ci0gICAgIH0KLS0gICAgY2F0Y2goIGxhc3RmbTo6d3M6 OlBhcnNlRXJyb3IgZSApCi0tICAgIHsKLS0gICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRp b24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8PCBlLndoYXQoKTsKLS0gICAgfQotKwotICAg ICBlbWl0Um93Q2hhbmdlZChMYXN0Rm06OkZyaWVuZHMpOwotICAgICBtX2pvYnNbICJnZXRGcmll bmRzIiBdLT5kZWxldGVMYXRlcigpOwotIH0KLUBAIC0xMzcsMTAgKzEzOCw5IEBAIExhc3RGbVRy ZWVNb2RlbDo6c2xvdEFkZFRvcEFydGlzdHMgKCkKLSB7Ci0gICAgIERFQlVHX0JMT0NLCi0gICAg IFdlaWdodGVkU3RyaW5nTGlzdCBsaXN0OwotLSAgICB0cnkKLSsgICAgbGFzdGZtOjpYbWxRdWVy eSBsZm07Ci0rICAgIGlmKCBsZm0ucGFyc2UoIG1fam9ic1sgImdldFRvcEFydGlzdHMiIF0tPnJl YWRBbGwoKSApICkKLSAgICAgewotLSAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0oIG1fam9i c1sgImdldFRvcEFydGlzdHMiIF0tPnJlYWRBbGwoKSApOwotLQotICAgICAgICAgZm9yZWFjaCgg Y29uc3QgbGFzdGZtOjpYbWxRdWVyeSAmZSwgbGZtWyAidG9wYXJ0aXN0cyIgXS5jaGlsZHJlbiAo ICJhcnRpc3QiICkgKQotICAgICAgICAgewotICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgbmFt ZSA9IGVbICJuYW1lIiBdLnRleHQoKTsKLUBAIC0xNTgsOSArMTU4LDEwIEBAIExhc3RGbVRyZWVN b2RlbDo6c2xvdEFkZFRvcEFydGlzdHMgKCkKLSAgICAgICAgICAgICBtX215VG9wQXJ0aXN0cy0+ YXBwZW5kQ2hpbGQgKCBhcnRpc3QgKTsKLSAgICAgICAgIH0KLSAKLS0gICAgfSBjYXRjaCggbGFz dGZtOjp3czo6UGFyc2VFcnJvciBlICkKLSsgICAgfQotKyAgICBlbHNlCi0gICAgIHsKLS0gICAg ICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9tIGxhc3QuZm06IiA8 PCBlLndoYXQoKTsKLSsgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2lu ZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKLSAgICAgfQot ICAgICBlbWl0Um93Q2hhbmdlZChMYXN0Rm06OlRvcEFydGlzdHMpOwotICAgICBtX2pvYnNbICJn ZXRUb3BBcnRpc3RzIiBdLT5kZWxldGVMYXRlcigpOwotZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNl cy9sYXN0Zm0vU2Nyb2JibGVyQWRhcHRlci5oIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9TY3JvYmJs ZXJBZGFwdGVyLmgKLWluZGV4IDY3ZWQ3M2IyOTFjZWY2MWVlMzdiMGRkYWUyOGJhMWVhZGZkNjMw NGQuLmIyNzY4MzdjMThiMjE4MWMxZDdhYmExNjc0Yjg3OGJmYmYzMDhlM2IgMTAwNjQ0Ci0tLS0g YS9zcmMvc2VydmljZXMvbGFzdGZtL1Njcm9iYmxlckFkYXB0ZXIuaAotKysrIGIvc3JjL3NlcnZp Y2VzL2xhc3RmbS9TY3JvYmJsZXJBZGFwdGVyLmgKLUBAIC0yMCw4ICsyMCw4IEBACi0gCi0gI2lu Y2x1ZGUgImNvcmUvbWV0YS9NZXRhLmgiCi0gCi0tI2luY2x1ZGUgPGxhc3RmbS9BdWRpb3Njcm9i Ymxlcj4KLS0jaW5jbHVkZSA8bGFzdGZtL1RyYWNrPgotKyNpbmNsdWRlIDxsYXN0Zm0vQXVkaW9z Y3JvYmJsZXIuaD4KLSsjaW5jbHVkZSA8bGFzdGZtL1RyYWNrLmg+Ci0gCi0gI2luY2x1ZGUgPFFW YXJpYW50PgotIAotZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9sYXN0Zm0vYmlhc2VzL0xhc3RG bUJpYXMuY3BwIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9iaWFzZXMvTGFzdEZtQmlhcy5jcHAKLWlu ZGV4IGIwMTFiMzI5OWY5OGQ4NTExMDlkM2Q5YmE1MmU2ZmQwOTg1NWRjZmYuLjUyMzA3YTRhYTlm ZjQ4YWRmNmMwNmIxOGI3MTk3MTc2MDE0OTQ1MTUgMTAwNjQ0Ci0tLS0gYS9zcmMvc2VydmljZXMv bGFzdGZtL2JpYXNlcy9MYXN0Rm1CaWFzLmNwcAotKysrIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9i aWFzZXMvTGFzdEZtQmlhcy5jcHAKLUBAIC0zNCw5ICszNCw4IEBACi0gI2luY2x1ZGUgImNvcmUv Y29sbGVjdGlvbnMvUXVlcnlNYWtlci5oIgotICNpbmNsdWRlICJjb3JlLWltcGwvY29sbGVjdGlv bnMvc3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdlci5oIgotIAotLSNpbmNsdWRlICJsYXN0Zm0vQXJ0 aXN0IgotLSNpbmNsdWRlICJsYXN0Zm0vd3MuaCIKLS0jaW5jbHVkZSAibGFzdGZtL1htbFF1ZXJ5 IgotKyNpbmNsdWRlIDxsYXN0Zm0vQXJ0aXN0Lmg+Ci0rI2luY2x1ZGUgPGxhc3RmbS93cy5oPgot IAotICNpbmNsdWRlIDxRTGFiZWw+Ci0gI2luY2x1ZGUgPFFDb21ib0JveD4KLWRpZmYgLS1naXQg YS9zcmMvc2VydmljZXMvbGFzdGZtL2JpYXNlcy9XZWVrbHlUb3BCaWFzLmNwcCBiL3NyYy9zZXJ2 aWNlcy9sYXN0Zm0vYmlhc2VzL1dlZWtseVRvcEJpYXMuY3BwCi1pbmRleCBkZjZkZDY2ODFmMDVk OTVhMGUyODFkNmU4MjIyNGRlMmJiZjAwMWU2Li4yZGViOWNjYmE2NmY3ZWMwZGYzNjIyNTUwNmFj ZWEyZTRmMzA5MDViIDEwMDY0NAotLS0tIGEvc3JjL3NlcnZpY2VzL2xhc3RmbS9iaWFzZXMvV2Vl a2x5VG9wQmlhcy5jcHAKLSsrKyBiL3NyYy9zZXJ2aWNlcy9sYXN0Zm0vYmlhc2VzL1dlZWtseVRv cEJpYXMuY3BwCi1AQCAtMzQsOSArMzQsOSBAQAotICNpbmNsdWRlICJjb3JlL2NvbGxlY3Rpb25z L1F1ZXJ5TWFrZXIuaCIKLSAjaW5jbHVkZSAiY29yZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQv Q29sbGVjdGlvbk1hbmFnZXIuaCIKLSAKLS0jaW5jbHVkZSAibGFzdGZtL0FydGlzdCIKLS0jaW5j bHVkZSAibGFzdGZtL3dzLmgiCi0tI2luY2x1ZGUgImxhc3RmbS9YbWxRdWVyeSIKLSsjaW5jbHVk ZSA8bGFzdGZtL0FydGlzdC5oPgotKyNpbmNsdWRlIDxsYXN0Zm0vd3MuaD4KLSsjaW5jbHVkZSA8 bGFzdGZtL1htbFF1ZXJ5Lmg+Ci0gCi0gI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+Ci0gCi1AQCAt MzcxLDEwICszNzEsOSBAQCBEeW5hbWljOjpXZWVrbHlUb3BCaWFzOjp3ZWVrbHlBcnRpc3RRdWVy eUZpbmlzaGVkKCkKLSAgICAgfQotIAotIAotLSAgICB0cnkKLSsgICAgbGFzdGZtOjpYbWxRdWVy eSBsZm07Ci0rICAgIGlmKCBsZm0ucGFyc2UoIHJlcGx5LT5yZWFkQWxsKCkgKSApCi0gICAgIHsK LS0gICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtKCByZXBseS0+cmVhZEFsbCgpICk7Ci0tCi0g ICAgICAgICAvLyBkZWJ1ZygpIDw8ICJnb3QgcmVzcG9uc2U6IiA8PCBsZm07Ci0gICAgICAgICBR U3RyaW5nTGlzdCBhcnRpc3RzOwotICAgICAgICAgZm9yKCBpbnQgaSA9IDA7IGkgPCBsZm1bICJ3 ZWVrbHlhcnRpc3RjaGFydCIgXS5jaGlsZHJlbiggImFydGlzdCIgKS5zaXplKCk7IGkrKyApCi1A QCAtMzk4LDEwICszOTcsMTAgQEAgRHluYW1pYzo6V2Vla2x5VG9wQmlhczo6d2Vla2x5QXJ0aXN0 UXVlcnlGaW5pc2hlZCgpCi0gICAgICAgICAgICAgd2FybmluZygpIDw8ICJHb3QgYSByZXBseSBm b3IgYSB3ZWVrIjw8d2Vlazw8InRoYXQgd2FzIG5vdCByZXF1ZXN0ZWQuIjsKLSAgICAgICAgICAg ICByZXR1cm47Ci0gICAgICAgICB9Ci0tCi0tICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNl RXJyb3ImIGUgKQotKyAgICB9Ci0rICAgIGVsc2UKLSAgICAgewotLSAgICAgICAgZGVidWcoKSA8 PCAiY2F1Z2h0IGV4Y2VwdGlvbiBwYXJzaW5nIHdlZWtseSBhcnRpc3QgY2hhcnQuIjsKLSsgICAg ICAgIGRlYnVnKCkgPDwgImZhaWxlZCB0byBwYXJzZSB3ZWVrbHkgYXJ0aXN0IGNoYXJ0LiI7Ci0g ICAgIH0KLSAKLSAgICAgcmVwbHktPmRlbGV0ZUxhdGVyKCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Nl cnZpY2VzL2xhc3RmbS9tZXRhL0xhc3RGbU1ldGEuaCBiL3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0 YS9MYXN0Rm1NZXRhLmgKLWluZGV4IGY3YjkzYzE0YzkyYzBiZWJmOTlkMTY1NjU2YTBlMzRmOGI5 OTFjYzAuLjdkNjRhM2ZhNWM2ZjZjYmUzZjBjYzViMjY4ODFhNDk5NjMyMTkzOGEgMTAwNjQ0Ci0t LS0gYS9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZtTWV0YS5oCi0rKysgYi9zcmMvc2Vy dmljZXMvbGFzdGZtL21ldGEvTGFzdEZtTWV0YS5oCi1AQCAtMjQsNyArMjQsNyBAQAotICNpbmNs dWRlICJTZXJ2aWNlTWV0YUJhc2UuaCIgLy8gZm9yIHRoZSBTb3VyY2VJbmZvUHJvdmlkZXIKLSAK LSAKLS0jaW5jbHVkZSA8bGFzdGZtL1RyYWNrPgotKyNpbmNsdWRlIDxsYXN0Zm0vVHJhY2suaD4K LSAKLSAKLSAjaW5jbHVkZSA8UU9iamVjdD4KLWRpZmYgLS1naXQgYS9zcmMvc2VydmljZXMvbGFz dGZtL21ldGEvTGFzdEZtTWV0YS5jcHAgYi9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZt TWV0YS5jcHAKLWluZGV4IGQ4ZjUyODQ1Y2I4MDFkOGFlOTQwYmMxYmNhNzdjNzI4MWVmMTgzNzku LjIyMGQ5Mjk5NzdkMjhjODE4M2RiOTk2NWNlY2ZjMWE4MDAzOWZlMDggMTAwNjQ0Ci0tLS0gYS9z cmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZtTWV0YS5jcHAKLSsrKyBiL3NyYy9zZXJ2aWNl cy9sYXN0Zm0vbWV0YS9MYXN0Rm1NZXRhLmNwcAotQEAgLTQxLDcgKzQxLDcgQEAKLSAjaW5jbHVk ZSA8UVdlYWtQb2ludGVyPgotICNpbmNsdWRlIDxRVXJsPgotIAotLSNpbmNsdWRlIDxsYXN0Zm0v VHJhY2s+Ci0rI2luY2x1ZGUgPGxhc3RmbS9UcmFjay5oPgotIAotIG5hbWVzcGFjZSBMYXN0Rm0g ewotIAotQEAgLTQ1MSw4ICs0NTEsNyBAQCBUcmFjazo6bG92ZSgpCi0gICAgIERFQlVHX0JMT0NL Ci0gCi0gICAgIGRlYnVnKCkgPDwgImluZm86IiA8PCBkLT5sYXN0Rm1UcmFjay5hcnRpc3QoKSA8 PCBkLT5sYXN0Rm1UcmFjay50aXRsZSgpOwotLSAgICBkLT53c1JlcGx5ID0gbGFzdGZtOjpNdXRh YmxlVHJhY2soIGQtPmxhc3RGbVRyYWNrICkubG92ZSgpOwotLSAgICBjb25uZWN0KCBkLT53c1Jl cGx5LCBTSUdOQUwoIGZpbmlzaGVkKCkgKSwgdGhpcywgU0xPVCggc2xvdFdzUmVwbHkoKSApICk7 Ci0rICAgIGxhc3RmbTo6TXV0YWJsZVRyYWNrKCBkLT5sYXN0Rm1UcmFjayApLmxvdmUoKTsKLSB9 Ci0gCi0gdm9pZAotQEAgLTQ3Nyw5ICs0NzYsOSBAQCB2b2lkIFRyYWNrOjpzbG90UmVzdWx0UmVh ZHkoKQotIHsKLSAgICAgaWYoIGQtPnRyYWNrRmV0Y2gtPmVycm9yKCkgPT0gUU5ldHdvcmtSZXBs eTo6Tm9FcnJvciApCi0gICAgIHsKLS0gICAgICAgIHRyeQotKyAgICAgICAgbGFzdGZtOjpYbWxR dWVyeSBsZm07Ci0rICAgICAgICBpZiggbGZtLnBhcnNlKCBkLT50cmFja0ZldGNoLT5yZWFkQWxs KCkgKSApCi0gICAgICAgICB7Ci0tICAgICAgICAgICAgbGFzdGZtOjpYbWxRdWVyeSBsZm0oIGQt PnRyYWNrRmV0Y2gtPnJlYWRBbGwoKSApOwotICAgICAgICAgICAgIFFTdHJpbmcgaWQgPSBsZm1b ICJ0cmFjayIgXVsgImlkIiBdLnRleHQoKTsKLSAgICAgICAgICAgICBRU3RyaW5nIHN0cmVhbWFi bGUgPSBsZm1bICJ0cmFjayIgXVsgInN0cmVhbWFibGUiIF0udGV4dCgpOwotICAgICAgICAgICAg IGlmKCBzdHJlYW1hYmxlLnRvSW50KCkgPT0gMSApCi1AQCAtNDg3LDkgKzQ4NiwxMCBAQCB2b2lk IFRyYWNrOjpzbG90UmVzdWx0UmVhZHkoKQotICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg ICAgICAgaW5pdCgpOwotIAotLSAgICAgICAgfSBjYXRjaCggbGFzdGZtOjp3czo6UGFyc2VFcnJv ciYgZSApCi0rICAgICAgICB9Ci0rICAgICAgICBlbHNlCi0gICAgICAgICB7Ci0tICAgICAgICAg ICAgZGVidWcoKSA8PCAiR290IGV4Y2VwdGlvbiBpbiBwYXJzaW5nIGZyb20gbGFzdC5mbToiIDw8 IGUud2hhdCgpOwotKyAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFy c2luZyBmcm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKLSAgICAg ICAgIH0KLSAgICAgfSBlbHNlCi0gICAgIHsKLWRpZmYgLS1naXQgYS9zcmMvc2VydmljZXMvbGFz dGZtL21ldGEvTGFzdEZtTWV0YV9wLmggYi9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZt TWV0YV9wLmgKLWluZGV4IGMyZDg4YWM3OWE0ZGQwZmU1OWI5Zjg4OWJhZjcyYzg3OTgzM2YwZDMu LmNhZjk1NGExZTFhY2JmMjIwY2U4ZWZhOWQxNmRiMmE3MWNmNGJiYjMgMTAwNjQ0Ci0tLS0gYS9z cmMvc2VydmljZXMvbGFzdGZtL21ldGEvTGFzdEZtTWV0YV9wLmgKLSsrKyBiL3NyYy9zZXJ2aWNl cy9sYXN0Zm0vbWV0YS9MYXN0Rm1NZXRhX3AuaAotQEAgLTI2LDEwICsyNiwxMCBAQAotICNpbmNs dWRlICJjb3JlL3N0YXRpc3RpY3MvU3RhdGlzdGljc1Byb3ZpZGVyLmgiCi0gI2luY2x1ZGUgImNv cmUtaW1wbC9zdGF0aXN0aWNzL3Byb3ZpZGVycy90YWcvVGFnU3RhdGlzdGljc1Byb3ZpZGVyLmgi Ci0gCi0tI2luY2x1ZGUgPGxhc3RmbS9UcmFjaz4KLSsjaW5jbHVkZSA8bGFzdGZtL1RyYWNrLmg+ Ci0gI2luY2x1ZGUgPGxhc3RmbS93cy5oPgotLSNpbmNsdWRlIDxsYXN0Zm0vUmFkaW9UdW5lcj4K LS0jaW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5PgotKyNpbmNsdWRlIDxsYXN0Zm0vUmFkaW9UdW5l ci5oPgotKyNpbmNsdWRlIDxsYXN0Zm0vWG1sUXVlcnkuaD4KLSAKLSAjaW5jbHVkZSA8a2lvL2pv Yi5oPgotICNpbmNsdWRlIDxraW8vam9iY2xhc3Nlcy5oPgotQEAgLTE0NCwyNiArMTQ0LDI0IEBA IGNsYXNzIFRyYWNrOjpQcml2YXRlIDogcHVibGljIFFPYmplY3QKLSAgICAgICAgICAgICAgICAg cmV0dXJuOwotICAgICAgICAgICAgIGlmKCBtX3VzZXJGZXRjaC0+ZXJyb3IoKSA9PSBRTmV0d29y a1JlcGx5OjpOb0Vycm9yICkKLSAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIHRyeQot KyAgICAgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKLSsgICAgICAgICAgICAgICAg aWYoICFsZm0ucGFyc2UoIG1fdXNlckZldGNoLT5yZWFkQWxsKCkgKSApCi0gICAgICAgICAgICAg ICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtKCBtX3VzZXJG ZXRjaC0+cmVhZEFsbCgpICk7Ci0tICAgICAgICAgICAgICAgICAgICBhbGJ1bVVybCA9IGxmbVsg InRyYWNrIiBdWyAiYWxidW0iIF1bICJ1cmwiIF0udGV4dCgpOwotLSAgICAgICAgICAgICAgICAg ICAgdHJhY2tVcmwgPSBsZm1bICJ0cmFjayIgXVsgInVybCIgXS50ZXh0KCk7Ci0tICAgICAgICAg ICAgICAgICAgICBhcnRpc3RVcmwgPSBsZm1bICJ0cmFjayIgXVsgImFydGlzdCIgXVsgInVybCIg XS50ZXh0KCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBub3RpZnlPYnNlcnZlcnMoKTsKLSsg ICAgICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBm cm9tIGxhc3QuZm06IiA8PCBsZm0ucGFyc2VFcnJvcigpLm1lc3NhZ2UoKTsKLSsgICAgICAgICAg ICAgICAgICAgIHJldHVybjsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICBh bGJ1bVVybCA9IGxmbVsgInRyYWNrIiBdWyAiYWxidW0iIF1bICJ1cmwiIF0udGV4dCgpOwotKyAg ICAgICAgICAgICAgICB0cmFja1VybCA9IGxmbVsgInRyYWNrIiBdWyAidXJsIiBdLnRleHQoKTsK LSsgICAgICAgICAgICAgICAgYXJ0aXN0VXJsID0gbGZtWyAidHJhY2siIF1bICJhcnRpc3QiIF1b ICJ1cmwiIF0udGV4dCgpOwotIAotLSAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmwgPSBsZm1b ICJ0cmFjayIgXVsgImFsYnVtIiBdWyAiaW1hZ2Ugc2l6ZT1sYXJnZSIgXS50ZXh0KCk7Ci0rICAg ICAgICAgICAgICAgIG5vdGlmeU9ic2VydmVycygpOwotIAotLSAgICAgICAgICAgICAgICAgICAg aWYoICFpbWFnZVVybC5pc0VtcHR5KCkgKQotLSAgICAgICAgICAgICAgICAgICAgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIEtJTzo6Sm9iKiBqb2IgPSBLSU86OnN0b3JlZEdldCggS1VybCgg aW1hZ2VVcmwgKSwgS0lPOjpSZWxvYWQsIEtJTzo6SGlkZVByb2dyZXNzSW5mbyApOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGNvbm5lY3QoIGpvYiwgU0lHTkFMKCByZXN1bHQoIEtKb2IqICkg KSwgdGhpcywgU0xPVCggZmV0Y2hJbWFnZUZpbmlzaGVkKCBLSm9iKiApICkgKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgaW1hZ2VVcmwgPSBsZm1bICJ0cmFjayIg XVsgImFsYnVtIiBdWyAiaW1hZ2Ugc2l6ZT1sYXJnZSIgXS50ZXh0KCk7Ci0gCi0tICAgICAgICAg ICAgICAgIH0gY2F0Y2goIGxhc3RmbTo6d3M6OlBhcnNlRXJyb3ImIGUgKQotKyAgICAgICAgICAg ICAgICBpZiggIWltYWdlVXJsLmlzRW1wdHkoKSApCi0gICAgICAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICAgICAgIGRlYnVnKCkgPDwgIkdvdCBleGNlcHRpb24gaW4gcGFyc2luZyBmcm9t IGxhc3QuZm06IiA8PCBlLndoYXQoKTsKLSsgICAgICAgICAgICAgICAgICAgIEtJTzo6Sm9iKiBq b2IgPSBLSU86OnN0b3JlZEdldCggS1VybCggaW1hZ2VVcmwgKSwgS0lPOjpSZWxvYWQsIEtJTzo6 SGlkZVByb2dyZXNzSW5mbyApOwotKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdCggam9iLCBT SUdOQUwoIHJlc3VsdCggS0pvYiogKSApLCB0aGlzLCBTTE9UKCBmZXRjaEltYWdlRmluaXNoZWQo IEtKb2IqICkgKSApOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotIAotZGlm ZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9sYXN0Zm0vbWV0YS9NdWx0aVBsYXlhYmxlQ2FwYWJpbGl0 eUltcGxfcC5oIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9tZXRhL011bHRpUGxheWFibGVDYXBhYmls aXR5SW1wbF9wLmgKLWluZGV4IDFjNDY0Y2MyNjM1YzdkNjE0ZWFiNDhjYTVlNGUxNTZjNjc4NzBm MDQuLmU5YjYzMjcxYzc3ZDM0MjBjZDhlZWI1ZWIxOWQxMTUyYjIzYzMxOWYgMTAwNjQ0Ci0tLS0g YS9zcmMvc2VydmljZXMvbGFzdGZtL21ldGEvTXVsdGlQbGF5YWJsZUNhcGFiaWxpdHlJbXBsX3Au aAotKysrIGIvc3JjL3NlcnZpY2VzL2xhc3RmbS9tZXRhL011bHRpUGxheWFibGVDYXBhYmlsaXR5 SW1wbF9wLmgKLUBAIC0yNSw4ICsyNSw5IEBACi0gI2luY2x1ZGUgImNvcmUvbWV0YS9NZXRhLmgi Ci0gI2luY2x1ZGUgImNvcmUvY2FwYWJpbGl0aWVzL011bHRpUGxheWFibGVDYXBhYmlsaXR5Lmgi Ci0gCi0tI2luY2x1ZGUgPGxhc3RmbS9UcmFjaz4KLS0jaW5jbHVkZSA8bGFzdGZtL1JhZGlvVHVu ZXI+Ci0rI2luY2x1ZGUgPGxhc3RmbS9UcmFjay5oPgotKyNpbmNsdWRlIDxsYXN0Zm0vUmFkaW9T dGF0aW9uLmg+Ci0rI2luY2x1ZGUgPGxhc3RmbS9SYWRpb1R1bmVyLmg+Ci0gI2luY2x1ZGUgPGxh c3RmbS93cy5oPgotIAotICNpbmNsdWRlIDxLTG9jYWxlPgotQEAgLTU1LDI0ICs1NiwyMyBAQCBj bGFzcyBNdWx0aVBsYXlhYmxlQ2FwYWJpbGl0eUltcGwgOiBwdWJsaWMgQ2FwYWJpbGl0aWVzOjpN dWx0aVBsYXlhYmxlQ2FwYWJpbGl0eQotICAgICAgICAgewotICAgICAgICAgICAgIERFQlVHX0JM T0NLCi0gICAgICAgICAgICAgbV90dW5lciA9IG5ldyBsYXN0Zm06OlJhZGlvVHVuZXIoIGxhc3Rm bTo6UmFkaW9TdGF0aW9uKCBtX3RyYWNrLT51aWRVcmwoKSApICk7Ci0tICAgICAgICAgICAgCi0r Ci0gICAgICAgICAgICAgY29ubmVjdCggbV90dW5lciwgU0lHTkFMKCB0cmFja0F2YWlsYWJsZSgp ICksIHRoaXMsIFNMT1QoIHNsb3ROZXdUcmFja0F2YWlsYWJsZSgpICkgKTsKLS0gICAgICAgICAg ICBjb25uZWN0KCBtX3R1bmVyLCBTSUdOQUwoIGVycm9yKCBsYXN0Zm06OndzOjpFcnJvciApICks IHRoaXMsIFNMT1QoIGVycm9yKCBsYXN0Zm06OndzOjpFcnJvciApICkgKTsKLSsgICAgICAgICAg ICBjb25uZWN0KCBtX3R1bmVyLCBTSUdOQUwoIGVycm9yKGxhc3RmbTo6d3M6OkVycm9yLFFTdHJp bmcpICksIHRoaXMsIFNMT1QoIGVycm9yKCBsYXN0Zm06OndzOjpFcnJvciApICkgKTsKLSAgICAg ICAgIH0KLS0gICAgICAgIAotKwotICAgICAgICAgdmlydHVhbCB2b2lkIGZldGNoTmV4dCgpCi0g ICAgICAgICB7Ci0gICAgICAgICAgICAgREVCVUdfQkxPQ0sKLSAgICAgICAgICAgICBtX2N1cnJl bnRUcmFjayA9IG1fdHVuZXItPnRha2VOZXh0VHJhY2soKTsKLSAgICAgICAgICAgICBtX3RyYWNr LT5zZXRUcmFja0luZm8oIG1fY3VycmVudFRyYWNrICk7Ci0tCi0gICAgICAgICB9Ci0tICAgICAg ICAKLSsKLSAgICAgICAgIHVzaW5nIE9ic2VydmVyOjptZXRhZGF0YUNoYW5nZWQ7Ci0gICAgICAg ICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFDaGFuZ2VkKCBNZXRhOjpUcmFja1B0ciB0cmFjayApCi0g ICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3QgTGFzdEZtOjpUcmFja1B0ciBsdHJhY2sgPSBM YXN0Rm06OlRyYWNrUHRyOjpkeW5hbWljQ2FzdCggdHJhY2sgKTsKLS0gICAgICAgICAgICAKLSsK LSAgICAgICAgICAgICBpZiggbHRyYWNrLmlzTnVsbCgpICkKLSAgICAgICAgICAgICAgICAgcmV0 dXJuOwotIAotQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgTXVsdGlQbGF5YWJsZUNhcGFiaWxpdHlJ bXBsIDogcHVibGljIENhcGFiaWxpdGllczo6TXVsdGlQbGF5YWJsZUNhcGFiaWxpdHkKLSAgICAg ICAgICAgICAgICAgbV90cmFjay0+c2V0VHJhY2tJbmZvKCBtX2N1cnJlbnRUcmFjayApOwotICAg ICAgICAgICAgIH0KLSAgICAgICAgIH0KLS0gICAgICAgIAotKwotICAgICAgICAgdmlydHVhbCB2 b2lkIHNraXAoKQotICAgICAgICAgewotICAgICAgICAgICAgIGZldGNoTmV4dCgpOwotZGlmZiAt LWdpdCBhL3NyYy9jb250ZXh0L2VuZ2luZXMvdXBjb21pbmdldmVudHMvVXBjb21pbmdFdmVudHNF bmdpbmUuY3BwIGIvc3JjL2NvbnRleHQvZW5naW5lcy91cGNvbWluZ2V2ZW50cy9VcGNvbWluZ0V2 ZW50c0VuZ2luZS5jcHAKLWluZGV4IDRhZTczZDg5MmNlZjNkNGE0MTY2MmY3ZWQxNTg0OWFlNzcz YzE2ZTMuLjY4OTMyM2NjNzUzYTNjNjkzYmMwOTg3MGVhMWE3N2UyNTc0ZWM5YTcgMTAwNjQ0Ci0t LS0gYS9zcmMvY29udGV4dC9lbmdpbmVzL3VwY29taW5nZXZlbnRzL1VwY29taW5nRXZlbnRzRW5n aW5lLmNwcAotKysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy91cGNvbWluZ2V2ZW50cy9VcGNvbWlu Z0V2ZW50c0VuZ2luZS5jcHAKLUBAIC0yNywxMCArMjcsNiBAQAotICNpbmNsdWRlICJFbmdpbmVD b250cm9sbGVyLmgiCi0gI2luY2x1ZGUgIkxhc3RGbUV2ZW50WG1sUGFyc2VyLmgiCi0gCi0tLy8g TGFzdEZtCi0tI2luY2x1ZGUgPGxhc3RmbS9YbWxRdWVyeT4KLS0jaW5jbHVkZSA8bGFzdGZtL3dz Lmg+Ci0tCi0gLy8gS0RFCi0gI2luY2x1ZGUgPEtEYXRlVGltZT4KLSAKLWRpZmYgLS1naXQgYS9z cmMvY29yZS9zdXBwb3J0L0FtYXJvay5oIGIvc3JjL2NvcmUvc3VwcG9ydC9BbWFyb2suaAotaW5k ZXggYzk4NTIxNTRkZWU3NGZiMzcyYmFlNDM1ZmRlZWZhOTIwMDNkNDFiMS4uZDhjOTFlNzg5ZDAy YjIwNDIwMmM4YTk5Yjk0NTliOGQxMGIzZDkwZCAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlL3N1cHBv cnQvQW1hcm9rLmgKLSsrKyBiL3NyYy9jb3JlL3N1cHBvcnQvQW1hcm9rLmgKLUBAIC0yMDMsNiAr MjAzLDcgQEAgbmFtZXNwYWNlIEFtYXJvawotIAotICAgICBpbmxpbmUgY29uc3QgY2hhciogZGlz Y29nc0FwaUtleSgpIHsgcmV0dXJuICI5MTczNGRkOTg5IjsgfQotICAgICBpbmxpbmUgY29uc3Qg Y2hhciogbGFzdGZtQXBpS2V5KCkgeyByZXR1cm4gIjQwMmQzY2E4ZTliYzlkM2NmOWI4NWUxMjAy OTQ0Y2E1IjsgfQotKyAgICBpbmxpbmUgY29uc3QgY2hhciogbGFzdGZtQXBpU2hhcmVkU2VjcmV0 KCkgeyByZXR1cm4gImZlMGRjZGU5ZmNkMTRjMmQxZDUwNjY1YjY0NjMzNWU5IjsgfQotICAgICBp bmxpbmUgY29uc3QgY2hhciogeWFob29Cb3NzQXBpS2V5KCkgeyByZXR1cm4gIm9RZXBUTnJWMzRH OVNhdGIxZGdSWjhoZGwxdWhKdmd1RFNVNUtubDJYZDRBTEs4NWtuWXQ2eWxyLkZUQTU3WE1SQkEt IjsgfQotICAgICBpbmxpbmUgY29uc3QgY2hhciogZmxpY2tyQXBpS2V5KCkgeyByZXR1cm4gIjlj NWEyODgxMTZjMzRjMTdlY2VlMzc4NzczOTdmZTMxIjsgfQotIH0KLWRpZmYgLS1naXQgYS9DTWFr ZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Ci1pbmRleCAwZDE0NmM1OGJkMzgyYjRkNGYzNzll YmVkZGRmMTYzMGQ3M2RiMzY5Li4zMTE4M2U1OWI2OWNkYjNjNzkwMmQ0OWJkYjkzYTAwYTdmYjM1 MDUzIDEwMDY0NAotLS0tIGEvQ01ha2VMaXN0cy50eHQKLSsrKyBiL0NNYWtlTGlzdHMudHh0Ci1A QCAtMTI5LDcgKzEyOSw3IEBAIGlmKCBXSVRIX1BMQVlFUiApCi0gICAgICMgbWFjcm9fbG9nX2Zl YXR1cmUoIFNUUklHSV9GT1VORCAic3RyaWdpIiAiSW5kZXggbWV0YWRhdGEgb2YgZmlsZXMiICJo dHRwOi8vc3RyaWdpLnNvdXJjZWZvcmdlLm5ldCIgRkFMU0UgIiIgIiIgKQotIAotICAgICBtYWNy b19vcHRpb25hbF9maW5kX3BhY2thZ2UoTGliTGFzdEZtKQotLSAgICBtYWNyb19sb2dfZmVhdHVy ZSggTElCTEFTVEZNX0ZPVU5EICJsaWJsYXN0Zm0iICJFbmFibGUgTGFzdC5GbSBzZXJ2aWNlLCBp bmNsdWRpbmcgc2Nyb2JibGluZywgc29uZyBzdWJtaXNzaW9ucywgYW5kIHN1Z2dlc3RlZCBzb25n IGR5bmFtaWMgcGxheWxpc3RzIiAiaHR0cDovL2Nkbi5sYXN0LmZtL3NyYy9saWJsYXN0Zm0tMC4z LjAudGFyLmJ6MiIgRkFMU0UgIjAuMyIgIiIgKQotKyAgICBtYWNyb19sb2dfZmVhdHVyZSggTElC TEFTVEZNX0ZPVU5EICJsaWJsYXN0Zm0iICJFbmFibGUgTGFzdC5GbSBzZXJ2aWNlLCBpbmNsdWRp bmcgc2Nyb2JibGluZywgc29uZyBzdWJtaXNzaW9ucywgYW5kIHN1Z2dlc3RlZCBzb25nIGR5bmFt aWMgcGxheWxpc3RzIiAiaHR0cDovL2Nkbi5sYXN0LmZtL3NyYy9saWJsYXN0Zm0tMS4wLjAudGFy Lmd6IiBGQUxTRSAiMS4wLjAiICIiICkKLSAgICAgbWFjcm9fYm9vbF90b18wMSggTElCTEFTVEZN X0ZPVU5EIEhBVkVfTElCTEFTVEZNICkKLSAKLSAgICAgbWFjcm9fb3B0aW9uYWxfZmluZF9wYWNr YWdlKCBGRm1wZWcgKQotZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvRmluZExpYkxhc3RGbS5j bWFrZSBiL2NtYWtlL21vZHVsZXMvRmluZExpYkxhc3RGbS5jbWFrZQotaW5kZXggMWQ4NjNiMDg0 ODllMjcwNTRhMDQ5ZTM1ZDJkOTQ2Njc2NDZkYjFmNy4uOTVkZGRiNmMwODJjMTRjN2E2YjE0ZWI0 NTAxZTEyODMxMDZjOGZjZiAxMDA2NDQKLS0tLSBhL2NtYWtlL21vZHVsZXMvRmluZExpYkxhc3RG bS5jbWFrZQotKysrIGIvY21ha2UvbW9kdWxlcy9GaW5kTGliTGFzdEZtLmNtYWtlCi1AQCAtNiw3 ICs2LDcgQEAKLSAjIExJQkxBU1RGTV9GT1VORCwgd2hldGhlciBsaWJsYXN0Zm0gd2FzIGZvdW5k Ci0gCi0gCi0tZmluZF9wYXRoKExJQkxBU1RGTV9JTkNMVURFX0RJUiBOQU1FUyBBdWRpb3Njcm9i YmxlcgotK2ZpbmRfcGF0aChMSUJMQVNURk1fSU5DTFVERV9ESVIgTkFNRVMgbGFzdGZtCi0gICAg SElOVFMKLSAgICB+L3Vzci9pbmNsdWRlCi0gICAgL29wdC9sb2NhbC9pbmNsdWRlCi1kaWZmIC0t Z2l0IGEvc3JjL0xhc3RmbVJlYWRMYWJlbENhcGFiaWxpdHkuY3BwIGIvc3JjL0xhc3RmbVJlYWRM YWJlbENhcGFiaWxpdHkuY3BwCi1pbmRleCAzODVlNmI5YzA2NTAwOWIzMzBlMTE2ZTNkNzQ4Yjgy YzI0ZjE0ZThkLi5kMWZiMjhiNmFiZjJkY2YwY2Y1YWFlZTcxZGVkZjFjNTMyOGNiNTllIDEwMDY0 NAotLS0tIGEvc3JjL0xhc3RmbVJlYWRMYWJlbENhcGFiaWxpdHkuY3BwCi0rKysgYi9zcmMvTGFz dGZtUmVhZExhYmVsQ2FwYWJpbGl0eS5jcHAKLUBAIC0yMiw4ICsyMiw3IEBACi0gI2luY2x1ZGUg PFFNYXA+Ci0gI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+Ci0gCi0tI2luY2x1ZGUgPGxhc3RmbS9Y bWxRdWVyeT4KLS0jaW5jbHVkZSA8d3MuaD4KLSsjaW5jbHVkZSA8bGFzdGZtL1htbFF1ZXJ5Lmg+ Ci0gI2luY2x1ZGUgImNvcmUvc3VwcG9ydC9BbWFyb2suaCIKLSAKLSBuYW1lc3BhY2UgQ2FwYWJp bGl0aWVzCi1AQCAtNzIsNyArNzEsOCBAQCBMYXN0Zm1SZWFkTGFiZWxDYXBhYmlsaXR5OjpvblRh Z3NGZXRjaGVkKCkKLSAgICAgewotICAgICAgICAgY2FzZSBRTmV0d29ya1JlcGx5OjpOb0Vycm9y OgotICAgICAgICAgewotLSAgICAgICAgICAgIGxhc3RmbTo6WG1sUXVlcnkgbGZtID0gbV9qb2It PnJlYWRBbGwoKTsKLSsgICAgICAgICAgICBsYXN0Zm06OlhtbFF1ZXJ5IGxmbTsKLSsgICAgICAg ICAgICBsZm0ucGFyc2UobV9qb2ItPnJlYWRBbGwoKSk7Ci0gICAgICAgICAgICAgUUxpc3Q8bGFz dGZtOjpYbWxRdWVyeT4gdGFncyA9IGxmbS5jaGlsZHJlbiggInRhZyIgKTsKLSAgICAgICAgICAg ICBRU3RyaW5nTGlzdCByZXQ7Ci0gICAgICAgICAgICAgZm9yZWFjaCggY29uc3QgbGFzdGZtOjpY bWxRdWVyeSAmY2hpbGQsIHRhZ3MgKQoKZGlmZiAtLWdpdCBhL2FtYXJvay5zcGVjIGIvYW1hcm9r LnNwZWMKaW5kZXggZjVhMzA0YS4uZTk3NmQwMyAxMDA2NDQKLS0tIGEvYW1hcm9rLnNwZWMKKysr IGIvYW1hcm9rLnNwZWMKQEAgLTEsMTMgKzEsMTkgQEAKIAogTmFtZTogICAgYW1hcm9rCiBTdW1t YXJ5OiBNZWRpYSBwbGF5ZXIKLVZlcnNpb246IDIuNS45MAotUmVsZWFzZTogNiV7P2Rpc3R9CitW ZXJzaW9uOiAyLjUuOTYKK1JlbGVhc2U6IDElez9kaXN0fQogCiAjIEtERSBlLlYuIG1heSBkZXRl cm1pbmUgdGhhdCBmdXR1cmUgR1BMIHZlcnNpb25zIGFyZSBhY2NlcHRlZAogTGljZW5zZTogR1BM djIgb3IgR1BMdjMKIFVybDogICAgIGh0dHA6Ly9hbWFyb2sua2RlLm9yZy8KLVNvdXJjZTA6IGh0 dHA6Ly9kb3dubG9hZC5rZGUub3JnL3N0YWJsZS9hbWFyb2svJXt2ZXJzaW9ufS9zcmMvYW1hcm9r LSV7dmVyc2lvbn0udGFyLmJ6MgorJWdsb2JhbCByZXZpc2lvbiAlKGVjaG8gJXt2ZXJzaW9ufSB8 IGN1dCAtZC4gLWYzKQorJWlmICV7cmV2aXNpb259ID49IDUwCislZ2xvYmFsIHN0YWJsZSB1bnN0 YWJsZQorJWVsc2UKKyVnbG9iYWwgc3RhYmxlIHN0YWJsZQorJWVuZGlmCitTb3VyY2UwOiBodHRw Oi8vZG93bmxvYWQua2RlLm9yZy8le3N0YWJsZX0vYW1hcm9rLyV7dmVyc2lvbn0vc3JjL2FtYXJv ay0le3ZlcnNpb259LnRhci5iejIKIEJ1aWxkUm9vdDogJXtfdG1wcGF0aH0vJXtuYW1lfS0le3Zl cnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKIAogIyBJbnZva2UgYSBicm93 c2VyIG9uIHRoZSBvbmxpbmUgVXNlckJhc2UgZG9jdW1lbnRhdGlvbiBpbnN0ZWFkIG9mIEtIZWxw Q2VudGVyCkBAIC0xOSwxMyArMjUsMTAgQEAgUGF0Y2gwOiAgYW1hcm9rLTIuNS4wLW9ubGluZWRv Yy5wYXRjaAogIyMgdXBzdHJlYW0gcGF0Y2hlcwogIyBsaWJsYXN0Zm0xIHN1cHBvcnQKICMgaHR0 cHM6Ly9naXQucmV2aWV3Ym9hcmQua2RlLm9yZy9yLzEwNTI3Ni8KLVBhdGNoMTAwOiBhbWFyb2st bGlibGFzdGZtMS5wYXRjaAorUGF0Y2gxMDA6IGFtYXJvay0yLjUuOTYtbGlibGFzdGZtMS5wYXRj aAogJWlmIDAlez9mZWRvcmF9ID4gMTcKICVkZWZpbmUgbGlibGFzdGZtMSAxCiAlZW5kaWYKLSMg ZGlzYWJsZSBwb2xsaW5nCi0jIGh0dHBzOi8vcHJvamVjdHMua2RlLm9yZy9wcm9qZWN0cy9leHRy YWdlYXIvbXVsdGltZWRpYS9hbWFyb2svcmVwb3NpdG9yeS9yZXZpc2lvbnMvOTJmZTlhYzE3MWI5 OTIwYmE2NWFkZjI0NGM3ZGJlMjNkNjk0ZDIwOQotUGF0Y2gxMDE6IGNoYW5nZXNldF9yOTJmZTlh YzE3MWI5OTIwYmE2NWFkZjI0NGM3ZGJlMjNkNjk0ZDIwOS5kaWZmCiAKIEJ1aWxkUmVxdWlyZXM6 IGN1cmwtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6IGRlc2t0b3AtZmlsZS11dGlscwpAQCAtNTIsMTEg KzU1LDggQEAgQnVpbGRSZXF1aXJlczogcGtnY29uZmlnKHRhZ2xpYi1leHRyYXMpID49IDEuMC4x CiBCdWlsZFJlcXVpcmVzOiBxdHNjcmlwdGJpbmRpbmdzCiBSZXF1aXJlczogcXRzY3JpcHRiaW5k aW5ncyV7P19pc2F9CiBSZXF1aXJlczogJXtuYW1lfS11dGlscyA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQotUmVxdWlyZXM6IGtkZWJhc2UtcnVudGltZSV7P19rZGU0X3ZlcnNpb246ID49ICV7X2tk ZTRfdmVyc2lvbn19Ci0laWYgMCV7P2ZlZG9yYX0gPT0gMTQKLSMgbGFtZSwgc2VlIGh0dHA6Ly9i dWd6aWxsYS5yZWRoYXQuY29tLzY2NjE3MwotUmVxdWlyZXM6IGxpYm10cC1oYWwKLSVlbmRpZgor UmVxdWlyZXM6IGtkZS1ydW50aW1lJXs/X2tkZTRfdmVyc2lvbjogPj0gJXtfa2RlNF92ZXJzaW9u fX0KK1JlcXVpcmVzOiBpZnVzZQogCiBSZXF1aXJlczogJXtuYW1lfS1saWJzJXs/X2lzYX0gPSAl e3ZlcnNpb259LSV7cmVsZWFzZX0KIApAQCAtMTAwLDcgKzEwMCw2IEBAIEJ1aWxkQXJjaDogbm9h cmNoCiAlaWYgMCV7P2xpYmxhc3RmbTF9CiAlcGF0Y2gxMDAgLXAxIC1iIC5saWJsYXN0Zm0xCiAl ZW5kaWYKLSVwYXRjaDEwMSAtcDEgLWIgLmRpc2FibGVfcG9sbGluZwogCiAKICVidWlsZApAQCAt MTg5LDYgKzE4OCw5IEBAIGZpCiAKIAogJWNoYW5nZWxvZworKiBUaHUgQXVnIDAyIDIwMTIgUmV4 IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4gMi41Ljk2LTEKKy0gMi41Ljk2ICgy LjZyYzEpCisKICogV2VkIEp1bCAxOCAyMDEyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxy ZWwtZW5nQGxpc3RzLmZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS45MC02CiAtIFJlYnVpbHQgZm9y IGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMThfTWFzc19SZWJ1aWxkCiAK CmRpZmYgLS1naXQgYS9jaGFuZ2VzZXRfcjkyZmU5YWMxNzFiOTkyMGJhNjVhZGYyNDRjN2RiZTIz ZDY5NGQyMDkuZGlmZiBiL2NoYW5nZXNldF9yOTJmZTlhYzE3MWI5OTIwYmE2NWFkZjI0NGM3ZGJl MjNkNjk0ZDIwOS5kaWZmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjE1OTQ5Li4w MDAwMDAwCi0tLSBhL2NoYW5nZXNldF9yOTJmZTlhYzE3MWI5OTIwYmE2NWFkZjI0NGM3ZGJlMjNk Njk0ZDIwOS5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLWNvbW1pdCA5MmZl OWFjMTcxYjk5MjBiYTY1YWRmMjQ0YzdkYmUyM2Q2OTRkMjA5Ci1BdXRob3I6IE1hdMSbaiBMYWl0 bCA8bWF0ZWpAbGFpdGwuY3o+Ci1EYXRlOiAgIE1vbiBKdW4gMTEgMTc6MDA6NTIgMjAxMiArMDIw MAotCi0gICAgTWVkaWFEZXZpY2VDYWNoZTogcmVtb3ZlIHBvbGxpbmcsIHNvbGlkIGV2ZW50cyBz aG91bGQgc3VmZmljZQotICAgIAotICAgIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgQW1hcm9rICh2 ZXJ5IHByb2JhYmx5IG5lZWRsZXNzbHkpIHBvbGxzIHNvbGlkCi0gICAgZm9yIGFsbCBkZXZpY2Vz IGV2ZXJ5IHNpbmdsZSBzZWNvbmQgKCEhISkganVzdCB0byBkZXRlY3Qgd2hldGhlciBzb21lCi0g ICAgdW5tb3VudGVkIHBhdGhzIGJlY29tZSBtb3VudGVkIG9yIHZpY2UgdmVyc2EuIFRoaXMgc2hv dWxkIG5vdCBiZSBuZWVkZWQKLSAgICBhdCBhbGwsIHNvbGlkIHNob3VsZCBub3RpZnkgdXMgYWJv dXQgZXZlcnl0aGluZy4KLSAgICAKLSAgICBMZXQncyBob3BlIHRoaXMgZG9lc24ndCBjYXVzZSBz dWJ0bGUgYnVncywgYnV0IHNldmVyYWwgcGVvcGxlIGFscmVhZHkKLSAgICB0ZXN0ZWQgaXQgd2l0 aCBzdWNjZXNzIFt0aGFua3MsIFNhbV0uIChwcm9iYWJseSBub25lIG9mIHRoZW0gd2l0aCBvbGRl cgotICAgIGtkZWxpYnMgdGhvdWdoKQotICAgIAotICAgIEJVRzogMjg5NDYyCi0gICAgRklYRUQt SU46IDIuNwotICAgIFJFVklFVzogMTA1MjIxCi0KLWRpZmYgLS1naXQgYS9zcmMvTWVkaWFEZXZp Y2VDYWNoZS5jcHAgYi9zcmMvTWVkaWFEZXZpY2VDYWNoZS5jcHAKLWluZGV4IDE1NTgzYjguLmM5 NzU4Y2QgMTAwNjQ0Ci0tLS0gYS9zcmMvTWVkaWFEZXZpY2VDYWNoZS5jcHAKLSsrKyBiL3NyYy9N ZWRpYURldmljZUNhY2hlLmNwcAotQEAgLTU0LDEwICs1NCw2IEBAIE1lZGlhRGV2aWNlQ2FjaGU6 Ok1lZGlhRGV2aWNlQ2FjaGUoKSA6IFFPYmplY3QoKQotICAgICAgICAgICAgICB0aGlzLCBTTE9U KCBzbG90QWRkU29saWREZXZpY2UoIGNvbnN0IFFTdHJpbmcgJiApICkgKTsKLSAgICAgY29ubmVj dCggU29saWQ6OkRldmljZU5vdGlmaWVyOjppbnN0YW5jZSgpLCBTSUdOQUwoIGRldmljZVJlbW92 ZWQoIGNvbnN0IFFTdHJpbmcgJiApICksCi0gICAgICAgICAgICAgIHRoaXMsIFNMT1QoIHNsb3RS ZW1vdmVTb2xpZERldmljZSggY29uc3QgUVN0cmluZyAmICkgKSApOwotLSAgICBjb25uZWN0KCZt X3RpbWVyLCBTSUdOQUwodGltZW91dCgpKSwgdGhpcywgU0xPVChzbG90VGltZW91dCgpKSk7Ci0t Ci0tICAgIG1fdGltZXIuc2V0U2luZ2xlU2hvdCh0cnVlKTsKLS0gICAgbV90aW1lci5zdGFydCgx MDAwKTsKLSB9Ci0gCi0gTWVkaWFEZXZpY2VDYWNoZTo6fk1lZGlhRGV2aWNlQ2FjaGUoKQotQEAg LTI4Nyw0NSArMjgzLDYgQEAgTWVkaWFEZXZpY2VDYWNoZTo6c2xvdFJlbW92ZVNvbGlkRGV2aWNl KCBjb25zdCBRU3RyaW5nICZ1ZGkgKQotICAgICBlbWl0IGRldmljZVJlbW92ZWQoIHVkaSApOwot IH0KLSAKLS12b2lkIE1lZGlhRGV2aWNlQ2FjaGU6OnNsb3RUaW1lb3V0KCkKLS17Ci0tICAgIEtN b3VudFBvaW50OjpMaXN0IHBvc3NpYmxlTW91bnRMaXN0ID0gS01vdW50UG9pbnQ6OnBvc3NpYmxl TW91bnRQb2ludHMoKTsKLS0gICAgS01vdW50UG9pbnQ6Okxpc3QgY3VycmVudE1vdW50TGlzdCA9 IEtNb3VudFBvaW50OjpjdXJyZW50TW91bnRQb2ludHMoKTsKLS0gICAgUUxpc3Q8U29saWQ6OkRl dmljZT4gZGV2aWNlTGlzdCA9IFNvbGlkOjpEZXZpY2U6Omxpc3RGcm9tVHlwZSggU29saWQ6OkRl dmljZUludGVyZmFjZTo6U3RvcmFnZUFjY2VzcyApOwotLQotLSAgICBmb3IgKEtNb3VudFBvaW50 OjpMaXN0OjppdGVyYXRvciBpdCA9IHBvc3NpYmxlTW91bnRMaXN0LmJlZ2luKCk7IGl0ICE9IHBv c3NpYmxlTW91bnRMaXN0LmVuZCgpOyArK2l0KSB7Ci0tICAgICAgICBpZiAoKCppdCktPm1vdW50 VHlwZSgpID09ICJuZnMiIHx8ICgqaXQpLT5tb3VudFR5cGUoKSA9PSAibmZzNCIgfHwgCi0tICAg ICAgICAgICAgKCppdCktPm1vdW50VHlwZSgpID09ICJzbWIiIHx8ICgqaXQpLT5tb3VudFR5cGUo KSA9PSAiY2lmcyIpIHsKLS0gICAgICAgICAgICBRU3RyaW5nIHBhdGggPSAoKml0KS0+bW91bnRQ b2ludCgpOwotLSAgICAgICAgICAgIGJvb2wgbW91bnRlZCA9IGZhbHNlOwotLSAgICAgICAgICAg IFFTdHJpbmcgdWRpID0gUVN0cmluZygpOwotLQotLSAgICAgICAgICAgIGZvcmVhY2goIGNvbnN0 IFNvbGlkOjpEZXZpY2UgJmRldmljZSwgZGV2aWNlTGlzdCApCi0tICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICBjb25zdCBTb2xpZDo6U3RvcmFnZUFjY2Vzcyogc3NhID0gZGV2aWNlLmFz PFNvbGlkOjpTdG9yYWdlQWNjZXNzPigpOwotLSAgICAgICAgICAgICAgICBpZiggc3NhICYmIHBh dGggPT0gc3NhLT5maWxlUGF0aCgpKQotLSAgICAgICAgICAgICAgICAgICAgdWRpID0gZGV2aWNl LnVkaSgpOwotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICBmb3IgKEtNb3VudFBvaW50 OjpMaXN0OjppdGVyYXRvciBpdDIgPSBjdXJyZW50TW91bnRMaXN0LmJlZ2luKCk7IGl0MiAhPSBj dXJyZW50TW91bnRMaXN0LmVuZCgpOyArK2l0MikgewotLSAgICAgICAgICAgICAgICBpZiAoICgq aXQpLT5tb3VudFR5cGUoKSA9PSAoKml0MiktPm1vdW50VHlwZSgpICYmCi0tICAgICAgICAgICAg ICAgICAgICAgKCppdCktPm1vdW50UG9pbnQoKSA9PSAoKml0MiktPm1vdW50UG9pbnQoKSApIHsK LS0gICAgICAgICAgICAgICAgICAgIG1vdW50ZWQgPSB0cnVlOwotLSAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgaWYgKCBtX2FjY2Vzc2liaWxpdHlbdWRpXSAhPSBtb3VudGVkICkgewotLSAgICAgICAg ICAgICAgICBtX2FjY2Vzc2liaWxpdHlbdWRpXSA9IG1vdW50ZWQ7Ci0tICAgICAgICAgICAgICAg IHNsb3RBY2Nlc3NpYmlsaXR5Q2hhbmdlZCggbW91bnRlZCwgdWRpKTsKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH0KLS0KLS0gICAgbV90aW1lci5zZXRTaW5nbGVTaG90KHRydWUp OwotLSAgICBtX3RpbWVyLnN0YXJ0KDEwMDApOwotLX0KLS0KLSB2b2lkCi0gTWVkaWFEZXZpY2VD YWNoZTo6c2xvdEFjY2Vzc2liaWxpdHlDaGFuZ2VkKCBib29sIGFjY2Vzc2libGUsIGNvbnN0IFFT dHJpbmcgJnVkaSApCi0gewotZGlmZiAtLWdpdCBhL3NyYy9NZWRpYURldmljZUNhY2hlLmggYi9z cmMvTWVkaWFEZXZpY2VDYWNoZS5oCi1pbmRleCBhNDhkNDUzLi4yZDUyODhhIDEwMDY0NAotLS0t IGEvc3JjL01lZGlhRGV2aWNlQ2FjaGUuaAotKysrIGIvc3JjL01lZGlhRGV2aWNlQ2FjaGUuaAot QEAgLTYzLDcgKzYzLDYgQEAgY2xhc3MgQU1BUk9LX0VYUE9SVCBNZWRpYURldmljZUNhY2hlIDog cHVibGljIFFPYmplY3QKLSAgICAgICAgIHZvaWQgc2xvdEFkZFNvbGlkRGV2aWNlKCBjb25zdCBR U3RyaW5nICZ1ZGkgKTsKLSAgICAgICAgIHZvaWQgc2xvdFJlbW92ZVNvbGlkRGV2aWNlKCBjb25z dCBRU3RyaW5nICZ1ZGkgKTsKLSAgICAgICAgIHZvaWQgc2xvdEFjY2Vzc2liaWxpdHlDaGFuZ2Vk KCBib29sIGFjY2Vzc2libGUsIGNvbnN0IFFTdHJpbmcgJnVkaSApOwotLSAgICAgICAgdm9pZCBz bG90VGltZW91dCgpOwotIAotICAgICBwcml2YXRlOgotICAgICAgICAgUU1hcDxRU3RyaW5nLCBN ZWRpYURldmljZUNhY2hlOjpEZXZpY2VUeXBlPiBtX3R5cGU7Ci1AQCAtNzEsNyArNzAsNiBAQCBj bGFzcyBBTUFST0tfRVhQT1JUIE1lZGlhRGV2aWNlQ2FjaGUgOiBwdWJsaWMgUU9iamVjdAotICAg ICAgICAgUU1hcDxRU3RyaW5nLCBib29sPiBtX2FjY2Vzc2liaWxpdHk7Ci0gICAgICAgICBRU3Ry aW5nTGlzdCBtX3ZvbHVtZXM7Ci0gICAgICAgICBzdGF0aWMgTWVkaWFEZXZpY2VDYWNoZSogc19p bnN0YW5jZTsKLS0gICAgICAgIFFUaW1lciBtX3RpbWVyOwotIH07Ci0gCi0gI2VuZGlmIC8qIEFN QVJPS19NRURJQURFVklDRUNBQ0hFX0ggKi8KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNl cwppbmRleCBlOGUyNzY0Li41ZDgzM2EzIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJj ZXMKQEAgLTEgKzEgQEAKLTE1Zjg0ZTIyNjc1OTk1OGZiM2U3NmViZjQzOGM5ZmM3ICBhbWFyb2st Mi41LjkwLnRhci5iejIKKzYyM2UxYWRlZDk1ZWUwNjBkOWFhNDA3YjA5YmI5MTgyICBhbWFyb2st Mi41Ljk2LnRhci5iejIK