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: Than Ngo To: git-commits@fedoraproject.org Subject: [rpms/cef] rawhide: Disable AI (patch from ungoogle chromium) Date: Fri, 04 Sep 2026 17:42:38 GMT Message-ID: <178854375824.1.3257507294152761428.rpms-cef-e3de8099d042@fedoraproject.org> List-ID: X-Git-Repo: rpms/cef X-Git-Branch: rawhide X-Git-Rev: e3de8099d0427fbeac7a8f075d37887663d48d3b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2VmCkJyYW5jaCA6 IHJhd2hpZGUKQ29tbWl0IDogZTNkZTgwOTlkMDQyN2ZiZWFjN2E4ZjA3NWQzNzg4NzY2M2Q0OGQz YgpBdXRob3IgOiBUaGFuIE5nbyA8dGhhbkByZWRoYXQuY29tPgpEYXRlICAgOiAyMDI2LTA5LTA0 VDE3OjQyOjEyKzAwOjAwClN0YXRzICA6ICsxMzA5Ly0wIGluIDIgZmlsZShzKQpVUkwgICAgOiBo dHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2NlZi9jL2UzZGU4MDk5ZDA0MjdmYmVh YzdhOGYwNzVkMzc4ODc2NjNkNDhkM2I/YnJhbmNoPXJhd2hpZGUKCkxvZzoKRGlzYWJsZSBBSSAo cGF0Y2ggZnJvbSB1bmdvb2dsZSBjaHJvbWl1bSkKCi0tLQpkaWZmIC0tZ2l0IGEvY2VmLnNwZWMg Yi9jZWYuc3BlYwppbmRleCBlOWZmNTcwLi5lMGQ1OGNiIDEwMDY0NAotLS0gYS9jZWYuc3BlYwor KysgYi9jZWYuc3BlYwpAQCAtNTE4LDYgKzUxOCw3IEBAIFBhdGNoNTExOiAwMDAxLWZpcHMtZGlz YWJsZS1vcHRpb25zLnBhdGNoCiAjIFBhdGNoZXMgZnJvbSB1bmdvb2dsZSBjaHJvbWl1bSwgaHR0 cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1zb2Z0d2FyZS91bmdvb2dsZWQtY2hyb21pdW0KICMg cmVtb3ZlIHJvbGx1cCBiaW5hcnksIGJ1aWxkIHdpdGggd2FzbS1yb2xsdXAgCiBQYXRjaDUyMDog YnVpbGQtd2l0aC13YXNtLXJvbGx1cC5wYXRjaAorUGF0Y2g1MjE6IGRpc2FibGUtYWkucGF0Y2gK IAogIyB1cHN0cmVhbSBwYXRjaGVzCiAKQEAgLTEyMTUsNiArMTIxNiw3IEBAIG12ICV7X2J1aWxk ZGlyfS9jZWYtJXtjZWZfY29tbWl0fSAuL2NlZgogJWVuZGlmCiAKICVwYXRjaCAtUDUyMCAtcDEg LWIgLmJ1aWxkLXdpdGgtd2FzbS1yb2xsdXAKKyVwYXRjaCAtUDUyMSAtcDEgLWIgLmRpc2FibGUt YWkKIAogIyBVcHN0cmVhbSBwYXRjaGVzCiAKCmRpZmYgLS1naXQgYS9kaXNhYmxlLWFpLnBhdGNo IGIvZGlzYWJsZS1haS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 NjdlMWRiCi0tLSAvZGV2L251bGwKKysrIGIvZGlzYWJsZS1haS5wYXRjaApAQCAtMCwwICsxLDEz MDcgQEAKKyMgRGlzYWJsZSBHbGljICgiR2VtaW5pIExpdmUgaW4gQ2hyb21lIiksIFNjcmVlbkFJ LCBhbmQgYXNzb2NpYXRlZCBBSS1iYXNlZAorIyBmZWF0dXJlcy4KKworLS0tIGEvY2hyb21lL2Jy b3dzZXIvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL0JVSUxELmduCitAQCAtMzM5Niwx MCArMzM5Niw2IEBAIHN0YXRpY19saWJyYXJ5KCJicm93c2VyIikgeworICAgICBhbGxvd19jaXJj dWxhcl9pbmNsdWRlc19mcm9tICs9IFsgIi8vY2hyb21lL2Jyb3dzZXIvcGF5bWVudHM6aW1wbCIg XQorIAorICAgICBzb3VyY2VzICs9IFsKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9heF9tYWluX25v ZGVfYW5ub3RhdG9yX2NvbnRyb2xsZXIuY2MiLAorLSAgICAgICJhY2Nlc3NpYmlsaXR5L2F4X21h aW5fbm9kZV9hbm5vdGF0b3JfY29udHJvbGxlci5oIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9h eF9tYWluX25vZGVfYW5ub3RhdG9yX2NvbnRyb2xsZXJfZmFjdG9yeS5jYyIsCistICAgICAgImFj Y2Vzc2liaWxpdHkvYXhfbWFpbl9ub2RlX2Fubm90YXRvcl9jb250cm9sbGVyX2ZhY3RvcnkuaCIs CisgICAgICAgImFjY2Vzc2liaWxpdHkvY2FwdGlvbl9idWJibGVfY29udGV4dF9icm93c2VyLmgi LAorICAgICAgICJhY2Nlc3NpYmlsaXR5L2VtYmVkZGVkX2ExMXlfZXh0ZW5zaW9uX2xvYWRlci5j YyIsCisgICAgICAgImFjY2Vzc2liaWxpdHkvZW1iZWRkZWRfYTExeV9leHRlbnNpb25fbG9hZGVy LmgiLAorQEAgLTM4MjksOCArMzgyNSw2IEBAIHN0YXRpY19saWJyYXJ5KCJicm93c2VyIikgewor ICAgICAgICIvL2Nocm9tZS9hcHA6Y29tbWFuZF9pZHMiLAorICAgICAgICIvL2Nocm9tZS9hcHAv dGhlbWU6Y2hyb21lX3Vuc2NhbGVkX3Jlc291cmNlc19ncml0IiwKKyAgICAgICAiLy9jaHJvbWUv YXBwL3ZlY3Rvcl9pY29ucyIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvYWNjZXNzaWJpbGl0 eS90cmVlX2ZpeGluZzpwcmVmcyIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvYWNjZXNzaWJp bGl0eS90cmVlX2ZpeGluZzpzZXJ2aWNlIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9hY2Nl c3NpYmlsaXR5X2Fubm90YXRvci9jb250ZW50X2Fubm90YXRvciIsCisgICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvYWN0b3IvdWkiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL2FjdG9yL3VpOmFj dG9yX292ZXJsYXkiLAorQEAgLTM4ODAsMTAgKzM4NzQsNiBAQCBzdGF0aWNfbGlicmFyeSgiYnJv d3NlciIpIHsKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZWNvcmRfcmVwbGF5IiwKKyAgICAg ICAiLy9jaHJvbWUvYnJvd3Nlci9yZWNvcmRfcmVwbGF5OmltcGwiLAorICAgICAgICIvL2Nocm9t ZS9icm93c2VyL3Jlc291cmNlX2Nvb3JkaW5hdG9yIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nl ci9zY3JlZW5fYWk6cHJlZnMiLAorLSAgICAgICIvL2Nocm9tZS9icm93c2VyL3NjcmVlbl9haTpz Y3JlZW5fYWlfaW5zdGFsbF9zdGF0ZSIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2NyZWVu X2FpOnNjcmVlbl9haV9zZXJ2aWNlX3JvdXRlcl9mYWN0b3J5IiwKKy0gICAgICAiLy9jaHJvbWUv YnJvd3Nlci9zY3JlZW5fYWkvcHVibGljOm9wdGljYWxfY2hhcmFjdGVyX3JlY29nbml6ZXIiLAor ICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NoYXJpbmdfaHViIiwKKyAgICAgICAiLy9jaHJvbWUv YnJvd3Nlci9zaGFyaW5nX2h1YjppbXBsIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zbWFy dF9jYXJkIiwKK0BAIC0zOTYwLDcgKzM5NTAsNiBAQCBzdGF0aWNfbGlicmFyeSgiYnJvd3NlciIp IHsKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aTp3ZWJ1aV91dGlsIiwKKyAgICAg ICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9hY2Nlc3NfY29kZV9jYXN0IiwKKyAgICAgICAi Ly9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9hcHBfc2VydmljZV9pbnRlcm5hbHMiLAorLSAgICAg ICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2F1dG9maWxsX21sX2ludGVybmFscyIsCisgICAg ICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvY29sb3JfcGlwZWxpbmVfaW50ZXJuYWxzIiwK KyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9jb21tZXJjZSIsCisgICAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvY29tbWVyY2U6aW1wbCIsCitAQCAtNDA2NSw5ICs0MDU0 LDYgQEAgc3RhdGljX2xpYnJhcnkoImJyb3dzZXIiKSB7CisgICAgICAgIi8vY29tcG9uZW50cy93 ZWJhdXRobi9jb3JlL2Jyb3dzZXIiLAorICAgICAgICIvL2NvbXBvbmVudHMvd2ViYXV0aG4vY29y ZS9icm93c2VyOnBhc3NrZXlfbW9kZWwiLAorICAgICAgICIvL3NlcnZpY2VzL2RldmljZS9wdWJs aWMvY3BwL2hpZCIsCistICAgICAgIi8vc2VydmljZXMvc2NyZWVuX2FpIiwKKy0gICAgICAiLy9z ZXJ2aWNlcy9zY3JlZW5fYWkvcHVibGljL2NwcDp1dGlsaXRpZXMiLAorLSAgICAgICIvL3NlcnZp Y2VzL3NjcmVlbl9haS9wdWJsaWMvbW9qb20iLAorICAgICAgICIvL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL2NsaWVudDpjb21tb24iLAorICAgICAgICIvL3RoaXJkX3BhcnR5L3p4Y3Zi bi1jcHAiLAorICAgICAgICIvL3VpL3ZpZXdzIiwKK0BAIC00MjY0LDggKzQyNTAsNiBAQCBzdGF0 aWNfbGlicmFyeSgiYnJvd3NlciIpIHsKKyAgICAgICBzb3VyY2VzICs9IFsKKyAgICAgICAgICJh Y2Nlc3NpYmlsaXR5L3NvZGFfaW5zdGFsbGVyX2ltcGwuY2MiLAorICAgICAgICAgImFjY2Vzc2li aWxpdHkvc29kYV9pbnN0YWxsZXJfaW1wbC5oIiwKKy0gICAgICAgICJjb21wb25lbnRfdXBkYXRl ci9zY3JlZW5fYWlfY29tcG9uZW50X2luc3RhbGxlci5jYyIsCistICAgICAgICAiY29tcG9uZW50 X3VwZGF0ZXIvc2NyZWVuX2FpX2NvbXBvbmVudF9pbnN0YWxsZXIuaCIsCisgICAgICAgICAiZG93 bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV9hY2Nlc3NpYmxlX2FsZXJ0c19tYXAuY2MiLAor ICAgICAgICAgImRvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfYWNjZXNzaWJsZV9hbGVy dHNfbWFwLmgiLAorICAgICAgICAgImRvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfZGlz cGxheV9pbmZvLmNjIiwKK0BAIC00MzEzLDggKzQyOTcsNiBAQCBzdGF0aWNfbGlicmFyeSgiYnJv d3NlciIpIHsKKyAgICAgICAgICJwcm9maWxlcy9wcm9maWxlX2FjdGl2aXR5X21ldHJpY3NfcmVj b3JkZXIuaCIsCisgICAgICAgICAicHJvZmlsZXMvcHJvZmlsZV9saXN0X2Rlc2t0b3AuY2MiLAor ICAgICAgICAgInByb2ZpbGVzL3Byb2ZpbGVfbGlzdF9kZXNrdG9wLmgiLAorLSAgICAgICAgInNj cmVlbl9haS9zY3JlZW5fYWlfZG93bmxvYWRlcl9ub25fY2hyb21lb3MuY2MiLAorLSAgICAgICAg InNjcmVlbl9haS9zY3JlZW5fYWlfZG93bmxvYWRlcl9ub25fY2hyb21lb3MuaCIsCisgICAgICAg ICAic2lnbmluL2ZvcmNlX3NpZ25pbl92ZXJpZmllci5jYyIsCisgICAgICAgICAic2lnbmluL2Zv cmNlX3NpZ25pbl92ZXJpZmllci5oIiwKKyAgICAgICBdCitAQCAtNTExNyw3ICs1MDk5LDYgQEAg c3RhdGljX2xpYnJhcnkoImJyb3dzZXIiKSB7CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcG9s aWN5OnN5c3RlbV9mZWF0dXJlc19kaXNhYmxlX2xpc3QiLAorICAgICAgICIvL2Nocm9tZS9icm93 c2VyL3B1c2hfbm90aWZpY2F0aW9uIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZXNvdXJj ZXM6YXBwX2ljb25fcmVzb3VyY2VzIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5f YWk6c2NyZWVuX2FpX2RsY19pbnN0YWxsZXIiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3No YXJlc2hlZXQiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3N1cHBvcnRfdG9vbC9hc2giLAor ICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL2FzaC9hY2NlbGVyYXRvciIsCitAQCAtNTM4MSw3 ICs1MzYyLDYgQEAgc3RhdGljX2xpYnJhcnkoImJyb3dzZXIiKSB7CisgICAgICAgIi8vcmVtb3Rp bmcvaG9zdC9jaHJvbWVvczpicm93c2VyX2ludGVyb3AiLAorICAgICAgICIvL3JlbW90aW5nL2hv c3QvY2hyb21lb3M6ZmVhdHVyZXMiLAorICAgICAgICIvL3NlcnZpY2VzL2RldmljZS9wdWJsaWMv Y3BwL2dlb2xvY2F0aW9uIiwKKy0gICAgICAiLy9zZXJ2aWNlcy9zY3JlZW5fYWkvcHVibGljL2Nw cDptZXRyaWNzIiwKKyAgICAgICAiLy90aGlyZF9wYXJ0eS9uZWFyYnk6cnBjX3Jlc291cmNlc19w cm90byIsCisgICAgICAgIi8vdGhpcmRfcGFydHkvbmVhcmJ5OndpcmVfZm9ybWF0X3Byb3RvIiwK KyAgICAgICAiLy91aS9jaHJvbWVvcyIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9hY2Nlc3NpYmls aXR5L3RyZWVfZml4aW5nL0JVSUxELmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9hY2Nlc3NpYmls aXR5L3RyZWVfZml4aW5nL0JVSUxELmduCitAQCAtNjMsMTEgKzYzLDkgQEAgc291cmNlX3NldCgi aW50ZXJuYWwiKSB7CisgICBkZXBzID0gWworICAgICAiLy9iYXNlIiwKKyAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmlsZSIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3NjcmVl bl9haTpzY3JlZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFjdG9yeSIsCisgICAgICIvL2NvbXBvbmVu dHMvcGFpbnRfcHJldmlldy9icm93c2VyIiwKKyAgICAgIi8vY29tcG9uZW50cy9wYWludF9wcmV2 aWV3L2NvbW1vbiIsCisgICAgICIvL2NvbXBvbmVudHMvcGFpbnRfcHJldmlldy9wdWJsaWMiLAor ICAgICAiLy9jb250ZW50L3B1YmxpYy9icm93c2VyIiwKKy0gICAgIi8vc2VydmljZXMvc2NyZWVu X2FpL3B1YmxpYy9tb2pvbSIsCisgICBdCisgfQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvYWN0b3Iv YWN0b3Jfa2V5ZWRfc2VydmljZS5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvYWN0b3IvYWN0b3Jf a2V5ZWRfc2VydmljZS5jYworQEAgLTYxNiwxMyArNjE2LDYgQEAgYm9vbCBBY3RvcktleWVkU2Vy dmljZTo6SXNBY3RpdmVPblRhYihjbworIAorIEFjdG9yVGFzayogQWN0b3JLZXllZFNlcnZpY2U6 OkdldFRhc2tGcm9tVGFiKAorICAgICBjb25zdCB0YWJzOjpUYWJJbnRlcmZhY2UmIHRhYikgY29u c3QgeworLSAgdGFiczo6VGFiSGFuZGxlIGhhbmRsZSA9IHRhYi5HZXRIYW5kbGUoKTsKKy0gIGZv ciAoY29uc3QgYXV0byYgW3Rhc2tfaWQsIHRhc2tdIDogYWN0aXZlX3Rhc2tzXykgeworLSAgICBp ZiAodGFzay0+SGFzVGFiKGhhbmRsZSkpIHsKKy0gICAgICByZXR1cm4gdGFzay5nZXQoKTsKKy0g ICAgfQorLSAgfQorLQorICAgcmV0dXJuIG51bGxwdHI7CisgfQorIAorLS0tIGEvY2hyb21lL2Jy b3dzZXIvYWN0b3IvdWkvYWN0b3JfdWlfdGFiX2NvbnRyb2xsZXIuY2MKKysrKyBiL2Nocm9tZS9i cm93c2VyL2FjdG9yL3VpL2FjdG9yX3VpX3RhYl9jb250cm9sbGVyLmNjCitAQCAtNDksNyArNDks NiBAQCBBY3RvclVpVGFiQ29udHJvbGxlcjo6QWN0b3JVaVRhYkNvbnRyb2xsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmFzZTo6VW5yZXRhaW5lZCh0aGlzKSkpLAorICAgICAgIHNj b3BlZF91bm93bmVkX3VzZXJfZGF0YV8odGFiLkdldFVub3duZWRVc2VyRGF0YUhvc3QoKSwgKnRo aXMpIHsKKyAgIENIRUNLKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoZmVhdHVyZXM6OmtH bGljQWN0b3IpKTsKKy0gIENIRUNLKGFjdG9yX2tleWVkX3NlcnZpY2VfKTsKKyB9CisgCisgQWN0 b3JVaVRhYkNvbnRyb2xsZXI6On5BY3RvclVpVGFiQ29udHJvbGxlcigpID0gZGVmYXVsdDsKKy0t LSBhL2Nocm9tZS9icm93c2VyL2Jyb3dzZXJfcHJvY2Vzc19pbXBsLmNjCisrKysgYi9jaHJvbWUv YnJvd3Nlci9icm93c2VyX3Byb2Nlc3NfaW1wbC5jYworQEAgLTI1OSwxMiArMjU5LDEwIEBAIHZv aWQgT25Mb2NhbFN0YXRlUHJlZnNMb2FkZWQoKTsKKyAjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9T KQorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9jaHJvbWVvcy9leHRlbnNpb25zL3RlbGVtZXRy eS9jaHJvbWVvc190ZWxlbWV0cnlfZXh0ZW5zaW9uc19icm93c2VyX2FwaV9wcm92aWRlci5oIgor ICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9oaWQvaGlkX3Bpbm5lZF9ub3RpZmljYXRpb24uaCIK Ky0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpL3NjcmVlbl9haV9kb3dubG9hZGVy X2Nocm9tZW9zLmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3VzYi91c2JfcGlubmVkX25v dGlmaWNhdGlvbi5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwL2NyYXNo cGFkLmgiCisgI2VsaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorICNpbmNsdWRlICJjaHJvbWUv YnJvd3Nlci9oaWQvaGlkX3N0YXR1c19pY29uLmgiCistI2luY2x1ZGUgImNocm9tZS9icm93c2Vy L3NjcmVlbl9haS9zY3JlZW5fYWlfZG93bmxvYWRlcl9ub25fY2hyb21lb3MuaCIKKyAjaW5jbHVk ZSAiY2hyb21lL2Jyb3dzZXIvdXNiL3VzYl9zdGF0dXNfaWNvbi5oIgorICNpbmNsdWRlICJjb21w b25lbnRzL2VudGVycHJpc2UvYnJvd3Nlci9jb250cm9sbGVyL2Nocm9tZV9icm93c2VyX2Nsb3Vk X21hbmFnZW1lbnRfY29udHJvbGxlci5oIgorICNlbmRpZgorQEAgLTE2NDEsOSArMTYzOSw2IEBA IHZvaWQgQnJvd3NlclByb2Nlc3NJbXBsOjpQcmVNYWluTWVzc2FnZUwKKyAgIHNvZGFfaW5zdGFs bGVyX2ltcGxfID0gc3RkOjptYWtlX3VuaXF1ZTxzcGVlY2g6OlNvZGFJbnN0YWxsZXJJbXBsQ2hy b21lT1M+KCk7CisgI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgCistI2lmICFC VUlMREZMQUcoSVNfQU5EUk9JRCkKKy0gIHNjcmVlbl9haV9kb3dubG9hZF8gPSBzY3JlZW5fYWk6 OlNjcmVlbkFJSW5zdGFsbFN0YXRlOjpDcmVhdGUoKTsKKy0jZW5kaWYKKyAKKyAgIGJhc2U6OkZp bGVQYXRoIHVzZXJfZGF0YV9kaXI7CisgICBib29sIHJlc3VsdCA9IGJhc2U6OlBhdGhTZXJ2aWNl OjpHZXQoY2hyb21lOjpESVJfVVNFUl9EQVRBLCAmdXNlcl9kYXRhX2Rpcik7CistLS0gYS9jaHJv bWUvYnJvd3Nlci9icm93c2VyX3Byb2Nlc3NfaW1wbC5oCisrKysgYi9jaHJvbWUvYnJvd3Nlci9i cm93c2VyX3Byb2Nlc3NfaW1wbC5oCitAQCAtOTUsOSArOTUsNiBAQCBuYW1lc3BhY2Ugc3BlZWNo IHsKKyBjbGFzcyBTb2RhSW5zdGFsbGVyOworIH0gIC8vIG5hbWVzcGFjZSBzcGVlY2gKKyAKKy1u YW1lc3BhY2Ugc2NyZWVuX2FpIHsKKy1jbGFzcyBTY3JlZW5BSUluc3RhbGxTdGF0ZTsKKy19ICAv LyBuYW1lc3BhY2Ugc2NyZWVuX2FpCisgCisgbmFtZXNwYWNlIHN1cGVydmlzZWRfdXNlciB7Cisg Y2xhc3MgRGV2aWNlUGFyZW50YWxDb250cm9sczsKK0BAIC00NTcsOSArNDU0LDYgQEAgY2xhc3Mg QnJvd3NlclByb2Nlc3NJbXBsIDogcHVibGljIEJyb3dzZQorICAgLy8gdG8gZW5zdXJlIHRoYXQg U29kYUluc3RhbGxlckltcGwgZ2V0cyBkZXN0cnVjdGVkIGZpcnN0LgorICAgc3RkOjp1bmlxdWVf cHRyPHNwZWVjaDo6U29kYUluc3RhbGxlcj4gc29kYV9pbnN0YWxsZXJfaW1wbF87CisgCistICAv LyBVc2VkIHRvIGRvd25sb2FkIFNjcmVlbiBBSSBvbiBkZW1hbmQgYW5kIGtlZXAgdHJhY2sgb2Yg dGhlIGxpYnJhcnkKKy0gIC8vIGF2YWlsYWJpbGl0eS4KKy0gIHN0ZDo6dW5pcXVlX3B0cjxzY3Jl ZW5fYWk6OlNjcmVlbkFJSW5zdGFsbFN0YXRlPiBzY3JlZW5fYWlfZG93bmxvYWRfOworICNlbmRp ZgorIAorICAgc3RkOjp1bmlxdWVfcHRyPEJyb3dzZXJQcm9jZXNzUGxhdGZvcm1QYXJ0PiBwbGF0 Zm9ybV9wYXJ0XzsKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Nocm9tZV9icm93c2VyX2ludGVyZmFj ZV9iaW5kZXJzLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9jaHJvbWVfYnJvd3Nlcl9pbnRlcmZh Y2VfYmluZGVycy5jYworQEAgLTg1LDggKzg1LDYgQEAKKyAKKyAjaWYgQlVJTERGTEFHKElTX1dJ TikgfHwgQlVJTERGTEFHKElTX01BQykgfHwgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBcCisgICAg IEJVSUxERkxBRyhJU19DSFJPTUVPUykKKy0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvc2NyZWVu X2FpL3NjcmVlbl9haV9zZXJ2aWNlX3JvdXRlci5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nl ci9zY3JlZW5fYWkvc2NyZWVuX2FpX3NlcnZpY2Vfcm91dGVyX2ZhY3RvcnkuaCIKKyAjaW5jbHVk ZSAiY2hyb21lL2Jyb3dzZXIvd2ViX2FwcGxpY2F0aW9ucy9zdWJfYXBwc19zZXJ2aWNlX2ltcGwu aCIKKyAjZW5kaWYKKyAKK0BAIC0zNzMsMjcgKzM3MSw2IEBAIHZvaWQgQmluZE1lZGlhRm91bmRh dGlvblByZWZlcmVuY2VzKAorIH0KKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19XSU4pCisgCist I2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlM REZMQUcoSVNfTUFDKSB8fCBcCistICAgIEJVSUxERkxBRyhJU19XSU4pCistdm9pZCBCaW5kU2Ny ZWVuQUlBbm5vdGF0b3IoCistICAgIGNvbnRlbnQ6OlJlbmRlckZyYW1lSG9zdCogZnJhbWVfaG9z dCwKKy0gICAgbW9qbzo6UGVuZGluZ1JlY2VpdmVyPHNjcmVlbl9haTo6bW9qb206OlNjcmVlbkFJ QW5ub3RhdG9yPiByZWNlaXZlcikgeworLSAgY29udGVudDo6QnJvd3NlckNvbnRleHQqIGJyb3dz ZXJfY29udGV4dCA9CistICAgICAgZnJhbWVfaG9zdC0+R2V0UHJvY2VzcygpLT5HZXRCcm93c2Vy Q29udGV4dCgpOworLQorLSAgc2NyZWVuX2FpOjpTY3JlZW5BSVNlcnZpY2VSb3V0ZXJGYWN0b3J5 OjpHZXRGb3JCcm93c2VyQ29udGV4dChicm93c2VyX2NvbnRleHQpCistICAgICAgLT5CaW5kU2Ny ZWVuQUlBbm5vdGF0b3Ioc3RkOjptb3ZlKHJlY2VpdmVyKSk7CistfQorLQorLXZvaWQgQmluZFNj cmVlbjJ4TWFpbkNvbnRlbnRFeHRyYWN0b3IoCistICAgIGNvbnRlbnQ6OlJlbmRlckZyYW1lSG9z dCogZnJhbWVfaG9zdCwKKy0gICAgbW9qbzo6UGVuZGluZ1JlY2VpdmVyPHNjcmVlbl9haTo6bW9q b206OlNjcmVlbjJ4TWFpbkNvbnRlbnRFeHRyYWN0b3I+CistICAgICAgICByZWNlaXZlcikgewor LSAgc2NyZWVuX2FpOjpTY3JlZW5BSVNlcnZpY2VSb3V0ZXJGYWN0b3J5OjpHZXRGb3JCcm93c2Vy Q29udGV4dCgKKy0gICAgICBmcmFtZV9ob3N0LT5HZXRQcm9jZXNzKCktPkdldEJyb3dzZXJDb250 ZXh0KCkpCistICAgICAgLT5CaW5kTWFpbkNvbnRlbnRFeHRyYWN0b3Ioc3RkOjptb3ZlKHJlY2Vp dmVyKSk7CistfQorLSNlbmRpZgorIAorIHZvaWQgQmluZE1vZGVsQnJva2VyKAorICAgICBjb250 ZW50OjpSZW5kZXJGcmFtZUhvc3QqIGZyYW1lX2hvc3QsCitAQCAtNTU4LDEwICs1MzUsNiBAQCB2 b2lkIFBvcHVsYXRlQ2hyb21lRnJhbWVCaW5kZXJzKAorICAgICAgICAgJndlYl9hcHA6OlN1YkFw cHNTZXJ2aWNlSW1wbDo6Q3JlYXRlSWZBbGxvd2VkKTsKKyAgIH0KKyAKKy0gIG1hcC0+QWRkPHNj cmVlbl9haTo6bW9qb206OlNjcmVlbkFJQW5ub3RhdG9yPigmQmluZFNjcmVlbkFJQW5ub3RhdG9y KTsKKy0KKy0gIG1hcC0+QWRkPHNjcmVlbl9haTo6bW9qb206OlNjcmVlbjJ4TWFpbkNvbnRlbnRF eHRyYWN0b3I+KAorLSAgICAgICZCaW5kU2NyZWVuMnhNYWluQ29udGVudEV4dHJhY3Rvcik7Cisg I2VuZGlmCisgCisgI2lmIEJVSUxERkxBRyhJU19XSU4pCistLS0gYS9jaHJvbWUvYnJvd3Nlci9j aHJvbWVfYnJvd3Nlcl9pbnRlcmZhY2VfYmluZGVyc193ZWJ1aV9wYXJ0c19kZXNrdG9wLmNjCisr KysgYi9jaHJvbWUvYnJvd3Nlci9jaHJvbWVfYnJvd3Nlcl9pbnRlcmZhY2VfYmluZGVyc193ZWJ1 aV9wYXJ0c19kZXNrdG9wLmNjCitAQCAtNTExLDggKzUxMSw2IEBAIHZvaWQgUG9wdWxhdGVDaHJv bWVXZWJVSUZyYW1lQmluZGVyc1BhcnQKKyAgICAgICA6Om1vam9tOjphcHBfc2VydmljZV9pbnRl cm5hbHM6OkFwcFNlcnZpY2VJbnRlcm5hbHNQYWdlSGFuZGxlciwKKyAgICAgICBBcHBTZXJ2aWNl SW50ZXJuYWxzVUk+KG1hcCk7CisgCistICBSZWdpc3RlcldlYlVJQ29udHJvbGxlckludGVyZmFj ZUJpbmRlcjwKKy0gICAgICA6OmF1dG9maWxsX21sX2ludGVybmFsczo6bW9qb206OlBhZ2VIYW5k bGVyLCBBdXRvZmlsbE1sSW50ZXJuYWxzVUk+KG1hcCk7CisgCisgICBSZWdpc3RlcldlYlVJQ29u dHJvbGxlckludGVyZmFjZUJpbmRlcjwKKyAgICAgICBhY2Nlc3NfY29kZV9jYXN0Ojptb2pvbTo6 UGFnZUhhbmRsZXJGYWN0b3J5LAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvY29tcG9uZW50X3VwZGF0 ZXIvcmVnaXN0cmF0aW9uLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9jb21wb25lbnRfdXBkYXRl ci9yZWdpc3RyYXRpb24uY2MKK0BAIC01Myw4ICs1Myw2IEBACisgCisgI2lmIEJVSUxERkxBRyhJ U19BTkRST0lEKQorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9jb21wb25lbnRfdXBkYXRlci9y ZWFsX3RpbWVfdXJsX2NoZWNrc19hbGxvd2xpc3RfY29tcG9uZW50X2luc3RhbGxlci5oIgorLSNl bHNlCistI2luY2x1ZGUgImNocm9tZS9icm93c2VyL2NvbXBvbmVudF91cGRhdGVyL3NjcmVlbl9h aV9jb21wb25lbnRfaW5zdGFsbGVyLmgiCisgI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQU5EUk9J RCkKKyAKKyAjaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorQEAgLTIwOSw5ICsyMDcsNiBAQCB2 b2lkIFJlZ2lzdGVyQ29tcG9uZW50c0ZvclVwZGF0ZSgpIHsKKyAgIFJlZ2lzdGVyUmVhbFRpbWVV cmxDaGVja3NBbGxvd2xpc3RDb21wb25lbnQoY3VzKTsKKyAjZW5kaWYgIC8vIEJVSURMRkxBRyhJ U19BTkRST0lEKQorIAorLSNpZiAhQlVJTERGTEFHKElTX0FORFJPSUQpICYmICFCVUlMREZMQUco SVNfQ0hST01FT1MpCistICBNYW5hZ2VTY3JlZW5BSUNvbXBvbmVudFJlZ2lzdHJhdGlvbihjdXMs IGdfYnJvd3Nlcl9wcm9jZXNzLT5sb2NhbF9zdGF0ZSgpKTsKKy0jZW5kaWYgIC8vICFCVUlMREZM QUcoSVNfQU5EUk9JRCkgJiYgIUJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAKKyAgIFJlZ2lzdGVy Q29tbWVyY2VIZXVyaXN0aWNzQ29tcG9uZW50KGN1cyk7CisgCistLS0gYS9jaHJvbWUvYnJvd3Nl ci9nbGljL2hvc3QvZ2xpY19za2lsbHNfbWFuYWdlcl9pbXBsLmNjCisrKysgYi9jaHJvbWUvYnJv d3Nlci9nbGljL2hvc3QvZ2xpY19za2lsbHNfbWFuYWdlcl9pbXBsLmNjCitAQCAtMzcsMzUgKzM3 LDYgQEAgR2xpY1NraWxsc01hbmFnZXJJbXBsOjp+R2xpY1NraWxsc01hbmFnZQorIAorIHZvaWQg R2xpY1NraWxsc01hbmFnZXJJbXBsOjpVcGRhdGVTa2lsbFByZXZpZXdzKAorICAgICBzdGQ6Om9w dGlvbmFsPHRhYnM6OlRhYkludGVyZmFjZSo+IHVwZGF0ZWRfdGFiKSB7CistICBpZiAoIWhvc3Rf LT5Jc1dlYkNsaWVudENvbm5lY3RlZCgpKSB7CistICAgIHJldHVybjsKKy0gIH0KKy0gIGF1dG8q IGZvY3VzZWRfdGFiID0gaG9zdF8tPnNoYXJpbmdfbWFuYWdlcigpLkdldEZvY3VzZWRUYWJEYXRh KCkuZm9jdXMoKTsKKy0gIGlmICghZm9jdXNlZF90YWIpIHsKKy0gICAgaG9zdF8tPk5vdGlmeUNv bnRleHR1YWxTa2lsbHNDaGFuZ2VkKHt9KTsKKy0gICAgY29udGV4dHVhbF9za2lsbF9wcmV2aWV3 c18uY2xlYXIoKTsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgaWYgKHVwZGF0ZWRfdGFiICYmIGZv Y3VzZWRfdGFiICE9ICp1cGRhdGVkX3RhYikgeworLSAgICAvLyBUaGUgdXBkYXRlIGRvZXMgbm90 IGFwcGx5IHRvIHRoZSBmb2N1c2VkIHRhYi4KKy0gICAgcmV0dXJuOworLSAgfQorLSAgYXV0byog b2JzZXJ2ZXIgPSBza2lsbHM6OlNraWxsc1VwZGF0ZU9ic2VydmVyOjpGcm9tKGZvY3VzZWRfdGFi KTsKKy0gIGlmICghb2JzZXJ2ZXIpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgYXV0byBuZXdf c2tpbGxfcHJldmlld3MgPSBvYnNlcnZlci0+R2V0Q29udGV4dHVhbFNraWxsUHJldmlld3MoKTsK Ky0KKy0gIGlmIChtb2pvOjpFcXVhbHMoY29udGV4dHVhbF9za2lsbF9wcmV2aWV3c18sIG5ld19z a2lsbF9wcmV2aWV3cykpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgY29udGV4dHVhbF9za2ls bF9wcmV2aWV3c18gPSBzdGQ6Om1vdmUobmV3X3NraWxsX3ByZXZpZXdzKTsKKy0KKy0gIHN0ZDo6 dmVjdG9yPG1vam9tOjpTa2lsbFByZXZpZXdQdHI+IHNraWxsX3ByZXZpZXdzOworLSAgZm9yIChj b25zdCBhdXRvJiBwcmV2aWV3IDogY29udGV4dHVhbF9za2lsbF9wcmV2aWV3c18pIHsKKy0gICAg c2tpbGxfcHJldmlld3MucHVzaF9iYWNrKHByZXZpZXcuQ2xvbmUoKSk7CistICB9CistICBob3N0 Xy0+Tm90aWZ5Q29udGV4dHVhbFNraWxsc0NoYW5nZWQoc3RkOjptb3ZlKHNraWxsX3ByZXZpZXdz KSk7CisgfQorIAorIHRhYnM6OlRhYkludGVyZmFjZSogR2xpY1NraWxsc01hbmFnZXJJbXBsOjpF bnN1cmVUYWJGb3JTa2lsbHMoKSB7CistLS0gYS9jaHJvbWUvYnJvd3Nlci9uYXZpZ2F0aW9uX3By ZWRpY3Rvci9uYXZpZ2F0aW9uX3ByZWRpY3Rvci5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvbmF2 aWdhdGlvbl9wcmVkaWN0b3IvbmF2aWdhdGlvbl9wcmVkaWN0b3IuY2MKK0BAIC0xOCw4ICsxOCw2 IEBACisgI2luY2x1ZGUgImJhc2UvdGltZS9kZWZhdWx0X3RpY2tfY2xvY2suaCIKKyAjaW5jbHVk ZSAiY2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0b3IvbmF2aWdhdGlvbl9wcmVkaWN0 b3Jfa2V5ZWRfc2VydmljZS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9uYXZpZ2F0aW9u X3ByZWRpY3Rvci9uYXZpZ2F0aW9uX3ByZWRpY3Rvcl9rZXllZF9zZXJ2aWNlX2ZhY3RvcnkuaCIK Ky0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0b3IvcHJlbG9hZGlu Z19tb2RlbF9rZXllZF9zZXJ2aWNlLmgiCistI2luY2x1ZGUgImNocm9tZS9icm93c2VyL25hdmln YXRpb25fcHJlZGljdG9yL3ByZWxvYWRpbmdfbW9kZWxfa2V5ZWRfc2VydmljZV9mYWN0b3J5Lmgi CisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3ByZWxvYWRpbmcvcHJlbG9hZGluZ19wcmVmcy5o IgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9wcm9maWxlLmgiCisgI2luY2x1 ZGUgImNvbXBvbmVudHMvbm9fc3RhdGVfcHJlZmV0Y2gvYnJvd3Nlci9ub19zdGF0ZV9wcmVmZXRj aF9tYW5hZ2VyLmgiCitAQCAtMTA1LDEwICsxMDMsNiBAQCBiYXNlOjpUaW1lRGVsdGEgTUxNb2Rl bEV4ZWN1dGlvblRpbWVyU3RhCisgICAgICAgYmxpbms6OmZlYXR1cmVzOjprUHJlbG9hZGluZ01v ZGVsVGltZXJTdGFydERlbGF5LkdldCgpKTsKKyB9CisgCistYmFzZTo6VGltZURlbHRhIE1MTW9k ZWxFeGVjdXRpb25UaW1lckludGVydmFsKCkgeworLSAgcmV0dXJuIGJhc2U6Ok1pbGxpc2Vjb25k cygKKy0gICAgICBibGluazo6ZmVhdHVyZXM6OmtQcmVsb2FkaW5nTW9kZWxUaW1lckludGVydmFs LkdldCgpKTsKKy19CisgCisgYmFzZTo6VGltZURlbHRhIE1MTW9kZWxNYXhIb3ZlclRpbWUoKSB7 CisgICByZXR1cm4gYmxpbms6OmZlYXR1cmVzOjprUHJlbG9hZGluZ01vZGVsTWF4SG92ZXJUaW1l LkdldCgpOworQEAgLTQxNSw4MCArNDA5LDYgQEAgdm9pZCBOYXZpZ2F0aW9uUHJlZGljdG9yOjpQ cm9jZXNzUG9pbnRlcgorIH0KKyAKKyB2b2lkIE5hdmlnYXRpb25QcmVkaWN0b3I6Ok9uTUxNb2Rl bEV4ZWN1dGlvblRpbWVyRmlyZWQoKSB7CistICAvLyBDaGVjayB3aGV0aGVyIHByZWxvYWRpbmcg aXMgZW5hYmxlZCBvciBub3QuCistICBQcm9maWxlKiBwcm9maWxlID0KKy0gICAgICBQcm9maWxl OjpGcm9tQnJvd3NlckNvbnRleHQocmVuZGVyX2ZyYW1lX2hvc3QoKS5HZXRCcm93c2VyQ29udGV4 dCgpKTsKKy0gIGlmIChwcmVmZXRjaDo6SXNTb21lUHJlbG9hZGluZ0VuYWJsZWQoKnByb2ZpbGUt PkdldFByZWZzKCkpICE9CistICAgICAgY29udGVudDo6UHJlbG9hZGluZ0VsaWdpYmlsaXR5Ojpr RWxpZ2libGUpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAgLy8gRXhlY3V0ZSB0aGUgbW9k ZWwuCistICBQcmVsb2FkaW5nTW9kZWxLZXllZFNlcnZpY2UqIG1vZGVsX3NlcnZpY2UgPQorLSAg ICAgIFByZWxvYWRpbmdNb2RlbEtleWVkU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJv ZmlsZSk7CistICBpZiAoIW1vZGVsX3NlcnZpY2UpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLQor LSAgaWYgKCFtbF9tb2RlbF9jYW5kaWRhdGVfLmhhc192YWx1ZSgpKSB7CistICAgIHJldHVybjsK Ky0gIH0KKy0gIGF1dG8gaXQgPSBhbmNob3JzXy5maW5kKG1sX21vZGVsX2NhbmRpZGF0ZV8udmFs dWUoKSk7CistICBpZiAoaXQgPT0gYW5jaG9yc18uZW5kKCkpIHsKKy0gICAgcmV0dXJuOworLSAg fQorLQorLSAgQW5jaG9yRWxlbWVudERhdGEmIGFuY2hvciA9IGl0LT5zZWNvbmQ7CistCistICBQ cmVsb2FkaW5nTW9kZWxLZXllZFNlcnZpY2U6OklucHV0cyBpbnB1dHM7CistICBpbnB1dHMuY29u dGFpbnNfaW1hZ2UgPSBhbmNob3IuY29udGFpbnNfaW1hZ2U7CistICBpbnB1dHMuZm9udF9zaXpl ID0gYW5jaG9yLmZvbnRfc2l6ZTsKKy0gIGlucHV0cy5oYXNfdGV4dF9zaWJsaW5nID0gYW5jaG9y Lmhhc190ZXh0X3NpYmxpbmc7CistICBpbnB1dHMuaXNfYm9sZCA9IGFuY2hvci5pc19ib2xkX2Zv bnQ7CistICBpbnB1dHMuaXNfaW5faWZyYW1lID0gYW5jaG9yLmlzX2luX2lmcmFtZTsKKy0gIGlu cHV0cy5pc191cmxfaW5jcmVtZW50ZWRfYnlfb25lID0gYW5jaG9yLmlzX3VybF9pbmNyZW1lbnRl ZF9ieV9vbmU7CistICBpbnB1dHMubmF2aWdhdGlvbl9zdGFydF90b19saW5rX2xvZ2dlZCA9Cist ICAgICAgYW5jaG9yLmZpcnN0X3JlcG9ydF90aW1lc3RhbXAgLSBuYXZpZ2F0aW9uX3N0YXJ0XzsK Ky0gIGF1dG8gcGF0aF9pbmZvID0gR2V0VXJsUGF0aExlbmd0aERlcHRoQW5kSGFzaChhbmNob3Iu dGFyZ2V0X3VybCk7CistICBpbnB1dHMucGF0aF9sZW5ndGggPSBwYXRoX2luZm8ucGF0aF9sZW5n dGg7CistICBpbnB1dHMucGF0aF9kZXB0aCA9IHBhdGhfaW5mby5wYXRoX2RlcHRoOworLSAgaW5w dXRzLnBlcmNlbnRfY2xpY2thYmxlX2FyZWEgPSBhbmNob3IucmF0aW9fYXJlYTsKKy0gIGlucHV0 cy5wZXJjZW50X3ZlcnRpY2FsX2Rpc3RhbmNlID0KKy0gICAgICBzdGF0aWNfY2FzdDxpbnQ+KGFu Y2hvci5yYXRpb19kaXN0YW5jZV9yb290X3RvcCAqIDEwMCk7CistCistICBpbnB1dHMuaXNfc2Ft ZV9ob3N0ID0gYW5jaG9yLmlzX3NhbWVfaG9zdDsKKy0gIGF1dG8gdG9fdGltZWRlbHRhID0gW3Ro aXNdKHN0ZDo6b3B0aW9uYWw8YmFzZTo6VGltZVRpY2tzPiB0cykgeworLSAgICByZXR1cm4gdHMu aGFzX3ZhbHVlKCkgPyBOb3dUaWNrcygpIC0gdHMudmFsdWUoKSA6IGJhc2U6OlRpbWVEZWx0YSgp OworLSAgfTsKKy0gIC8vIFRPRE8oMzI5NjkxNjM0KTogVXNpbmcgdGhlIHJlYWwgdmlld3BvcnQg ZW50cnkgdGltZSBmb3IKKy0gIC8vIGBlbnRlcmVkX3ZpZXdwb3J0X3RvX2xlZnRfdmlld3BvcnRg IHByb2R1Y2VzIGxvdyBxdWFsaXR5IHJlc3VsdHMuCistICAvLyBXZSBjb3VsZCByZW1vdmUgaXQg ZnJvbSB0aGUgbW9kZWwsIGlmIHdlIGNhbid0IGdldCB0aGlzIHRvIGJlIHVzZWZ1bC4KKy0gIGlu cHV0cy5lbnRlcmVkX3ZpZXdwb3J0X3RvX2xlZnRfdmlld3BvcnQgPSBiYXNlOjpUaW1lRGVsdGEo KTsKKy0gIGlucHV0cy5ob3Zlcl9kd2VsbF90aW1lID0gdG9fdGltZWRlbHRhKGFuY2hvci5wb2lu dGVyX292ZXJfdGltZXN0YW1wKTsKKy0gIGlucHV0cy5wb2ludGVyX2hvdmVyaW5nX292ZXJfY291 bnQgPSBhbmNob3IucG9pbnRlcl9ob3ZlcmluZ19vdmVyX2NvdW50OworLSAgaWYgKG1vZGVsX3Nj b3JlX2NhbGxiYWNrXykgeworLSAgICBzdGQ6Om1vdmUobW9kZWxfc2NvcmVfY2FsbGJhY2tfKS5S dW4oaW5wdXRzKTsKKy0gIH0KKy0KKy0gIGNvbnRlbnQ6OlByZWxvYWRpbmdEYXRhKiBwcmVsb2Fk aW5nX2RhdGEgPQorLSAgICAgIGNvbnRlbnQ6OlByZWxvYWRpbmdEYXRhOjpHZXRPckNyZWF0ZUZv cldlYkNvbnRlbnRzKAorLSAgICAgICAgICBjb250ZW50OjpXZWJDb250ZW50czo6RnJvbVJlbmRl ckZyYW1lSG9zdCgmcmVuZGVyX2ZyYW1lX2hvc3QoKSkpOworLSAgcHJlbG9hZGluZ19kYXRhLT5P blByZWxvYWRpbmdIZXVyaXN0aWNzTW9kZWxJbnB1dCgKKy0gICAgICBhbmNob3IudGFyZ2V0X3Vy bCwKKy0gICAgICBiYXNlOjpCaW5kT25jZSgmUmVjb3JkTWV0cmljc0Zvck1vZGVsVHJhaW5pbmcs IGlucHV0cywKKy0gICAgICAgICAgICAgICAgICAgICByZW5kZXJfZnJhbWVfaG9zdCgpLkdldFBh Z2VVa21Tb3VyY2VJZCgpKSk7CistICBtb2RlbF9zZXJ2aWNlLT5TY29yZSgKKy0gICAgICAmc2Nv cmluZ19tb2RlbF90YXNrX3RyYWNrZXJfLCBpbnB1dHMsCistICAgICAgYmFzZTo6QmluZE9uY2Uo Jk5hdmlnYXRpb25QcmVkaWN0b3I6Ok9uUHJlbG9hZGluZ0hldXJpc3RpY3NNb2RlbERvbmUsCist ICAgICAgICAgICAgICAgICAgICAgd2Vha19wdHJfZmFjdG9yeV8uR2V0V2Vha1B0cigpLCBhbmNo b3IudGFyZ2V0X3VybCkpOworLQorLSAgaWYgKGlucHV0cy5ob3Zlcl9kd2VsbF90aW1lIDwgTUxN b2RlbE1heEhvdmVyVGltZSgpICYmCistICAgICAgIW1sX21vZGVsX2V4ZWN1dGlvbl90aW1lcl8u SXNSdW5uaW5nKCkpIHsKKy0gICAgbWxfbW9kZWxfZXhlY3V0aW9uX3RpbWVyXy5TdGFydCgKKy0g ICAgICAgIEZST01fSEVSRSwgTUxNb2RlbEV4ZWN1dGlvblRpbWVySW50ZXJ2YWwoKSwKKy0gICAg ICAgIGJhc2U6OkJpbmRPbmNlKCZOYXZpZ2F0aW9uUHJlZGljdG9yOjpPbk1MTW9kZWxFeGVjdXRp b25UaW1lckZpcmVkLAorLSAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6VW5yZXRhaW5lZCh0 aGlzKSkpOworLSAgfQorIH0KKyAKKyB2b2lkIE5hdmlnYXRpb25QcmVkaWN0b3I6OlNldE1vZGVs U2NvcmVDYWxsYmFja0ZvclRlc3RpbmcoCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wYWdlX2NvbnRl bnRfYW5ub3RhdGlvbnMvcGFnZV9jb250ZW50X2Fubm90YXRpb25zX3NlcnZpY2VfZmFjdG9yeS5j YworKysrIGIvY2hyb21lL2Jyb3dzZXIvcGFnZV9jb250ZW50X2Fubm90YXRpb25zL3BhZ2VfY29u dGVudF9hbm5vdGF0aW9uc19zZXJ2aWNlX2ZhY3RvcnkuY2MKK0BAIC0xMTgsNjIgKzExOCw2IEBA IFBhZ2VDb250ZW50QW5ub3RhdGlvbnNTZXJ2aWNlRmFjdG9yeTo6flAKKyBzdGQ6OnVuaXF1ZV9w dHI8S2V5ZWRTZXJ2aWNlPgorIFBhZ2VDb250ZW50QW5ub3RhdGlvbnNTZXJ2aWNlRmFjdG9yeTo6 QnVpbGRTZXJ2aWNlSW5zdGFuY2VGb3JCcm93c2VyQ29udGV4dCgKKyAgICAgY29udGVudDo6QnJv d3NlckNvbnRleHQqIGNvbnRleHQpIGNvbnN0IHsKKy0gIFByb2ZpbGUqIHByb2ZpbGUgPSBQcm9m aWxlOjpGcm9tQnJvd3NlckNvbnRleHQoY29udGV4dCk7CistCistICBpZiAoIVNob3VsZEVuYWJs ZVBhZ2VDb250ZW50QW5ub3RhdGlvbnMocHJvZmlsZSkpCistICAgIHJldHVybiBudWxscHRyOwor LQorLSAgYXV0byogcHJvdG9fZGJfcHJvdmlkZXIgPSBwcm9maWxlLT5HZXRPcmlnaW5hbFByb2Zp bGUoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5HZXREZWZhdWx0U3RvcmFn ZVBhcnRpdGlvbigpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPkdldFByb3Rv RGF0YWJhc2VQcm92aWRlcigpOworLSAgYmFzZTo6RmlsZVBhdGggcHJvZmlsZV9wYXRoID0gcHJv ZmlsZS0+R2V0T3JpZ2luYWxQcm9maWxlKCktPkdldFBhdGgoKTsKKy0KKy0gIC8vIFRoZSBvcHRp bWl6YXRpb24gZ3VpZGUgYW5kIGhpc3Rvcnkgc2VydmljZXMgbXVzdCBiZSBhdmFpbGFibGUgZm9y IHRoZSBwYWdlCistICAvLyBjb250ZW50IGFubm90YXRpb25zIHNlcnZpY2UgdG8gd29yay4KKy0g IE9wdGltaXphdGlvbkd1aWRlS2V5ZWRTZXJ2aWNlKiBvcHRpbWl6YXRpb25fZ3VpZGVfa2V5ZWRf c2VydmljZSA9CistICAgICAgT3B0aW1pemF0aW9uR3VpZGVLZXllZFNlcnZpY2VGYWN0b3J5OjpH ZXRGb3JQcm9maWxlKHByb2ZpbGUpOworLSAgaGlzdG9yeTo6SGlzdG9yeVNlcnZpY2UqIGhpc3Rv cnlfc2VydmljZSA9CistICAgICAgSGlzdG9yeVNlcnZpY2VGYWN0b3J5OjpHZXRGb3JQcm9maWxl KHByb2ZpbGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNl cnZpY2VBY2Nlc3NUeXBlOjpJTVBMSUNJVF9BQ0NFU1MpOworLSAgVGVtcGxhdGVVUkxTZXJ2aWNl KiB0ZW1wbGF0ZV91cmxfc2VydmljZSA9CistICAgICAgVGVtcGxhdGVVUkxTZXJ2aWNlRmFjdG9y eTo6R2V0Rm9yUHJvZmlsZShwcm9maWxlKTsKKy0gIFplcm9TdWdnZXN0Q2FjaGVTZXJ2aWNlKiB6 ZXJvX3N1Z2dlc3RfY2FjaGVfc2VydmljZSA9CistICAgICAgWmVyb1N1Z2dlc3RDYWNoZVNlcnZp Y2VGYWN0b3J5OjpHZXRGb3JQcm9maWxlKHByb2ZpbGUpOworLQorLSAgaWYgKG9wdGltaXphdGlv bl9ndWlkZV9rZXllZF9zZXJ2aWNlICYmIGhpc3Rvcnlfc2VydmljZSkgeworLSAgICBzdGQ6OnN0 cmluZyBjb3VudHJ5X2NvZGUgPQorLSAgICAgICAgR2V0Q3VycmVudENvdW50cnlDb2RlKGdfYnJv d3Nlcl9wcm9jZXNzLT52YXJpYXRpb25zX3NlcnZpY2UoKSk7CistCistICAgIHBhZ2VfY29udGVu dF9hbm5vdGF0aW9uczo6UGFnZUVtYmVkZGluZ3NTZXJ2aWNlKiBwYWdlX2VtYmVkZGluZ3Nfc2Vy dmljZSA9CistICAgICAgICBwYWdlX2NvbnRlbnRfYW5ub3RhdGlvbnM6OlBhZ2VFbWJlZGRpbmdz U2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUoCistICAgICAgICAgICAgcHJvZmlsZSk7Cist ICAgIHBhc3NhZ2VfZW1iZWRkaW5nczo6RW1iZWRkZXJNZXRhZGF0YVByb3ZpZGVyKiBlbWJlZGRl cl9tZXRhZGF0YV9wcm92aWRlciA9CistICAgICAgICBwYWdlX2VtYmVkZGluZ3Nfc2VydmljZQor LSAgICAgICAgICAgID8gcGFnZV9lbWJlZGRpbmdzX3NlcnZpY2UtPkdldEVtYmVkZGVyTWV0YWRh dGFQcm92aWRlcigpCistICAgICAgICAgICAgOiBudWxscHRyOworLQorLSAgICBhdXRvIHNlcnZp Y2UgPSBzdGQ6Om1ha2VfdW5pcXVlPAorLSAgICAgICAgcGFnZV9jb250ZW50X2Fubm90YXRpb25z OjpQYWdlQ29udGVudEFubm90YXRpb25zU2VydmljZT4oCistICAgICAgICBnX2Jyb3dzZXJfcHJv Y2Vzcy0+R2V0QXBwbGljYXRpb25Mb2NhbGUoKSwgY291bnRyeV9jb2RlLAorLSAgICAgICAgb3B0 aW1pemF0aW9uX2d1aWRlX2tleWVkX3NlcnZpY2UsIGhpc3Rvcnlfc2VydmljZSwgdGVtcGxhdGVf dXJsX3NlcnZpY2UsCistICAgICAgICB6ZXJvX3N1Z2dlc3RfY2FjaGVfc2VydmljZSwgcHJvdG9f ZGJfcHJvdmlkZXIsIHByb2ZpbGVfcGF0aCwKKy0gICAgICAgIG9wdGltaXphdGlvbl9ndWlkZV9r ZXllZF9zZXJ2aWNlLT5HZXRPcHRpbWl6YXRpb25HdWlkZUxvZ2dlcigpLAorLSAgICAgICAgb3B0 aW1pemF0aW9uX2d1aWRlX2tleWVkX3NlcnZpY2UsIGVtYmVkZGVyX21ldGFkYXRhX3Byb3ZpZGVy LAorLSAgICAgICAgYmFzZTo6VGhyZWFkUG9vbDo6Q3JlYXRlU2VxdWVuY2VkVGFza1J1bm5lcigK Ky0gICAgICAgICAgICB7YmFzZTo6TWF5QmxvY2soKSwgYmFzZTo6VGFza1ByaW9yaXR5OjpCRVNU X0VGRk9SVH0pKTsKKy0KKy0gICAgcGFnZV9jb250ZW50X2Fubm90YXRpb25zOjpPbkRldmljZUNh dGVnb3J5Q2xhc3NpZmllciogY2F0ZWdvcnlfY2xhc3NpZmllciA9CistICAgICAgICBzZXJ2aWNl LT5vbl9kZXZpY2VfY2F0ZWdvcnlfY2xhc3NpZmllcigpOworLSAgICBpZiAoY2F0ZWdvcnlfY2xh c3NpZmllciAmJiBwYWdlX2VtYmVkZGluZ3Nfc2VydmljZSkgeworLSAgICAgIHNlcnZpY2UtPlNl dFBhZ2VDYXRlZ29yeUNsYXNzaWZpZXJCcmlkZ2UoCistICAgICAgICAgIHN0ZDo6bWFrZV91bmlx dWU8CistICAgICAgICAgICAgICBwYWdlX2NvbnRlbnRfYW5ub3RhdGlvbnM6OlBhZ2VDYXRlZ29y eUNsYXNzaWZpZXJCcmlkZ2VJbXBsPigKKy0gICAgICAgICAgICAgICpwYWdlX2VtYmVkZGluZ3Nf c2VydmljZSwgKmNhdGVnb3J5X2NsYXNzaWZpZXIsCistICAgICAgICAgICAgICBvcHRpbWl6YXRp b25fZ3VpZGVfa2V5ZWRfc2VydmljZS0+R2V0T3B0aW1pemF0aW9uR3VpZGVMb2dnZXIoKSkpOwor LSAgICB9CistCistICAgIHJldHVybiBzZXJ2aWNlOworLSAgfQorICAgcmV0dXJuIG51bGxwdHI7 CisgfQorIAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci9wYXNzd29yZF9j aGFuZ2VfZGVsZWdhdGVfaW1wbC5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvcGFzc3dvcmRfbWFu YWdlci9wYXNzd29yZF9jaGFuZ2VfZGVsZWdhdGVfaW1wbC5jYworQEAgLTMzOCwxNiArMzM4LDYg QEAgdm9pZCBQYXNzd29yZENoYW5nZURlbGVnYXRlSW1wbDo6U3RhcnRQYQorICAgICAgIGJhc2U6 OkJpbmRSZXBlYXRpbmcoJlBhc3N3b3JkQ2hhbmdlRGVsZWdhdGVJbXBsOjpPbkxvZ2luU3RhdGVD aGVja1Jlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtfcHRyX2ZhY3Rvcnlf LkdldFdlYWtQdHIoKSkpOworIAorLSAgLy8gVGhpcyBjcmVhdGVzIEZpZWxkQ2xhc3NpZmljYXRp b25Nb2RlbEhhbmRsZXIgYW5kIHNob3VsZCB0cmlnZ2VyIGRvd25sb2FkIG9mCistICAvLyBhIGxv Y2FsIE1MIG1vZGVsIGZvciBmaWVsZCBjbGFzc2lmaWNhdGlvbi4KKy0gIC8vIFRPRE8oNDUyODgz MjM5KTogQ2xlYW4gdGhpcyB1cCB3aGVuIG1vZGVsIGlzIGRvd25sb2FkZWQgb24gc3RhcnQtdXAg Zm9yCistICAvLyBldmVyeWJvZHkuCistICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxl ZCgKKy0gICAgICAgICAgcGFzc3dvcmRfbWFuYWdlcjo6ZmVhdHVyZXM6OgorLSAgICAgICAgICAg ICAga1Byb2FjdGl2ZWx5RG93bmxvYWRNb2RlbEZvclBhc3N3b3JkQ2hhbmdlKSkgeworLSAgICBQ YXNzd29yZEZpZWxkQ2xhc3NpZmljYXRpb25Nb2RlbEhhbmRsZXJGYWN0b3J5OjpHZXRGb3JCcm93 c2VyQ29udGV4dCgKKy0gICAgICAgIG9yaWdpbmF0b3JfLT5HZXRCcm93c2VyQ29udGV4dCgpKTsK Ky0gIH0KKyB9CisgCisgdm9pZCBQYXNzd29yZENoYW5nZURlbGVnYXRlSW1wbDo6T25Mb2dpblN0 YXRlQ2hlY2tSZXN1bHQoCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wZGYvcGRmX2V4dGVuc2lvbl91 dGlsLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wZGYvcGRmX2V4dGVuc2lvbl91dGlsLmNjCitA QCAtMTI4LDcgKzEyOCw2IEBAIGJhc2U6OkRpY3RWYWx1ZSBHZXRQZGZWaWV3ZXJTdHJpbmdzKCkg eworICAgICAgIHsicm90YXRpb25TdGF0ZUxhYmVsOTAiLCBJRFNfUERGX1JPVEFUSU9OX1NUQVRF X0xBQkVMXzkwfSwKKyAgICAgICB7InJvdGF0aW9uU3RhdGVMYWJlbDE4MCIsIElEU19QREZfUk9U QVRJT05fU1RBVEVfTEFCRUxfMTgwfSwKKyAgICAgICB7InJvdGF0aW9uU3RhdGVMYWJlbDI3MCIs IElEU19QREZfUk9UQVRJT05fU1RBVEVfTEFCRUxfMjcwfSwKKy0gICAgICB7InNlYXJjaGlmeUlu UHJvZ3Jlc3MiLCBJRFNfUERGX1NFQVJDSElGWV9JTl9QUk9HUkVTU30sCisgICAgICAgeyJzaWRl YmFyTGFiZWwiLCBJRFNfUERGX1NJREVCQVJfTEFCRUx9LAorICAgICAgIHsidGh1bWJuYWlsUGFn ZUFyaWFMYWJlbCIsIElEU19QREZfVEhVTUJOQUlMX1BBR0VfQVJJQV9MQUJFTH0sCisgICAgICAg eyJ0b29sdGlwQXR0YWNobWVudHMiLCBJRFNfUERGX1RPT0xUSVBfQVRUQUNITUVOVFN9LAorLS0t IGEvY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93 c2VyL3Blcm1pc3Npb25zL0JVSUxELmduCitAQCAtNDMsMTIgKzQzLDYgQEAgc291cmNlX3NldCgi cGVybWlzc2lvbnMiKSB7CisgICAgICJwcmVkaWN0aW9uX3NlcnZpY2UvbGFuZ3VhZ2VfZGV0ZWN0 aW9uX29ic2VydmVyLmgiLAorICAgICAicHJlZGljdGlvbl9zZXJ2aWNlL3Bhc3NhZ2VfZW1iZWRk ZXJfZGVsZWdhdGUuY2MiLAorICAgICAicHJlZGljdGlvbl9zZXJ2aWNlL3Bhc3NhZ2VfZW1iZWRk ZXJfZGVsZWdhdGUuaCIsCistICAgICJwcmVkaWN0aW9uX3NlcnZpY2UvcGVybWlzc2lvbnNfYWlf dWlfc2VsZWN0b3IuY2MiLAorLSAgICAicHJlZGljdGlvbl9zZXJ2aWNlL3Blcm1pc3Npb25zX2Fp X3VpX3NlbGVjdG9yLmgiLAorLSAgICAicHJlZGljdGlvbl9zZXJ2aWNlL3ByZWRpY3Rpb25fbW9k ZWxfaGFuZGxlcl9wcm92aWRlci5jYyIsCistICAgICJwcmVkaWN0aW9uX3NlcnZpY2UvcHJlZGlj dGlvbl9tb2RlbF9oYW5kbGVyX3Byb3ZpZGVyLmgiLAorLSAgICAicHJlZGljdGlvbl9zZXJ2aWNl L3ByZWRpY3Rpb25fbW9kZWxfaGFuZGxlcl9wcm92aWRlcl9mYWN0b3J5LmNjIiwKKy0gICAgInBy ZWRpY3Rpb25fc2VydmljZS9wcmVkaWN0aW9uX21vZGVsX2hhbmRsZXJfcHJvdmlkZXJfZmFjdG9y eS5oIiwKKyAgICAgInByZWRpY3Rpb25fc2VydmljZS9wcmVkaWN0aW9uX3NlcnZpY2VfZmFjdG9y eS5jYyIsCisgICAgICJwcmVkaWN0aW9uX3NlcnZpY2UvcHJlZGljdGlvbl9zZXJ2aWNlX2ZhY3Rv cnkuaCIsCisgICAgICJwcmVkaWN0aW9uX3NlcnZpY2UvcHJlZGljdGlvbl9zZXJ2aWNlX3JlcXVl c3QuY2MiLAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvY2hyb21lX3Blcm1pc3Np b25zX2NsaWVudC5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvY2hyb21lX3Bl cm1pc3Npb25zX2NsaWVudC5jYworQEAgLTI5LDcgKzI5LDYgQEAKKyAjaW5jbHVkZSAiY2hyb21l L2Jyb3dzZXIvcGVybWlzc2lvbnMvcGVybWlzc2lvbl9hY3Rpb25zX2hpc3RvcnlfZmFjdG9yeS5o IgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9wZXJtaXNzaW9uX2RlY2lz aW9uX2F1dG9fYmxvY2tlcl9mYWN0b3J5LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Bl cm1pc3Npb25zL3Blcm1pc3Npb25fcmV2b2NhdGlvbl9yZXF1ZXN0LmgiCistI2luY2x1ZGUgImNo cm9tZS9icm93c2VyL3Blcm1pc3Npb25zL3ByZWRpY3Rpb25fc2VydmljZS9wZXJtaXNzaW9uc19h aV91aV9zZWxlY3Rvci5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9w cmVmX2Jhc2VkX3F1aWV0X3Blcm1pc3Npb25fdWlfc2VsZWN0b3IuaCIKKyAjaW5jbHVkZSAiY2hy b21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvcXVpZXRfbm90aWZpY2F0aW9uX3Blcm1pc3Npb25fdWlf Y29uZmlnLmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Blcm1pc3Npb25zL3N5c3RlbS9z eXN0ZW1fcGVybWlzc2lvbl9zZXR0aW5ncy5oIgorQEAgLTQ3NSw4ICs0NzQsNiBAQCBDaHJvbWVQ ZXJtaXNzaW9uc0NsaWVudDo6Q3JlYXRlUGVybWlzc2lvCisgI2VuZGlmCisgICBzZWxlY3RvcnMu ZW1wbGFjZV9iYWNrKHN0ZDo6bWFrZV91bmlxdWU8UHJlZkJhc2VkUXVpZXRQZXJtaXNzaW9uVWlT ZWxlY3Rvcj4oCisgICAgICAgUHJvZmlsZTo6RnJvbUJyb3dzZXJDb250ZXh0KGJyb3dzZXJfY29u dGV4dCkpKTsKKy0gIHNlbGVjdG9ycy5lbXBsYWNlX2JhY2soc3RkOjptYWtlX3VuaXF1ZTxQZXJt aXNzaW9uc0FpVWlTZWxlY3Rvcj4oCistICAgICAgUHJvZmlsZTo6RnJvbUJyb3dzZXJDb250ZXh0 KGJyb3dzZXJfY29udGV4dCkpKTsKKyAgIHJldHVybiBzZWxlY3RvcnM7CisgfQorIAorQEAgLTQ5 OCw4ICs0OTUsNiBAQCB2b2lkIENocm9tZVBlcm1pc3Npb25zQ2xpZW50OjpPblByb21wdFJlCisg CisgICBQcm9maWxlKiBwcm9maWxlID0KKyAgICAgICBQcm9maWxlOjpGcm9tQnJvd3NlckNvbnRl eHQod2ViX2NvbnRlbnRzLT5HZXRCcm93c2VyQ29udGV4dCgpKTsKKy0gIFBlcm1pc3Npb25BY3Rp b25zSGlzdG9yeUZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZSktPlJlY29yZEFjdGlvbigK Ky0gICAgICBhY3Rpb24sIHJlcXVlc3RfdHlwZSwgcHJvbXB0X2Rpc3Bvc2l0aW9uKTsKKyAKKyAg IGlmIChyZXF1ZXN0X3R5cGUgPT0gcGVybWlzc2lvbnM6OlJlcXVlc3RUeXBlOjprTm90aWZpY2F0 aW9ucykgeworICAgICBpZiAoYWN0aW9uID09IHBlcm1pc3Npb25zOjpQZXJtaXNzaW9uQWN0aW9u OjpHUkFOVEVEICYmCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucy9wcmVkaWN0aW9u X3NlcnZpY2UvcGFzc2FnZV9lbWJlZGRlcl9kZWxlZ2F0ZS5jYworKysrIGIvY2hyb21lL2Jyb3dz ZXIvcGVybWlzc2lvbnMvcHJlZGljdGlvbl9zZXJ2aWNlL3Bhc3NhZ2VfZW1iZWRkZXJfZGVsZWdh dGUuY2MKK0BAIC0yNiwxOCArMjYsNiBAQCBQYXNzYWdlRW1iZWRkZXJEZWxlZ2F0ZTo6UGFzc2Fn ZUVtYmVkZGVyCisgICAgIDogcHJvZmlsZV8ocHJvZmlsZSkge30KKyAKKyBFbWJlZGRlciogUGFz c2FnZUVtYmVkZGVyRGVsZWdhdGU6OkdldFBhc3NhZ2VFbWJlZGRlcigpIHsKKy0gIGlmIChhdXRv KiBwcmVkaWN0aW9uX21vZGVsX2hhbmRsZXJfcHJvdmlkZXIgPQorLSAgICAgICAgICBQcmVkaWN0 aW9uTW9kZWxIYW5kbGVyUHJvdmlkZXJGYWN0b3J5OjpHZXRGb3JCcm93c2VyQ29udGV4dCgKKy0g ICAgICAgICAgICAgIHByb2ZpbGVfKSkgeworLSAgICBib29sIGlzX3JlYWR5ID0gcHJlZGljdGlv bl9tb2RlbF9oYW5kbGVyX3Byb3ZpZGVyLT5Jc1Bhc3NhZ2VFbWJlZGRlclJlYWR5KCk7CistICAg IFBlcm1pc3Npb25VbWFVdGlsOjpSZWNvcmRQYXNzYWdlRW1iZWRkZXJNZXRhZGF0YVZhbGlkKGlz X3JlYWR5KTsKKy0gICAgaWYgKCFpc19yZWFkeSkgeworLSAgICAgIFZMT0coMSkgPDwgIltQZXJt aXNzaW9uc0FJdjRdICIKKy0gICAgICAgICAgICAgICAgICJQYXNzYWdlRW1iZWRkZXJEZWxlZ2F0 ZTo6R2V0UGFzc2FnZUVtYmVkZGVyIGlzIG5vdCByZWFkeS4iOworLSAgICAgIHJldHVybiBudWxs cHRyOworLSAgICB9CistICAgIHJldHVybiBwcmVkaWN0aW9uX21vZGVsX2hhbmRsZXJfcHJvdmlk ZXItPkdldFBhc3NhZ2VFbWJlZGRlcigpOworLSAgfQorICAgUGVybWlzc2lvblVtYVV0aWw6OlJl Y29yZFBhc3NhZ2VFbWJlZGRlck1ldGFkYXRhVmFsaWQoZmFsc2UpOworICAgcmV0dXJuIG51bGxw dHI7CisgfQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMvcHJlZGljdGlvbl9zZXJ2 aWNlL3Blcm1pc3Npb25zX2FpX3VpX3NlbGVjdG9yLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9w ZXJtaXNzaW9ucy9wcmVkaWN0aW9uX3NlcnZpY2UvcGVybWlzc2lvbnNfYWlfdWlfc2VsZWN0b3Iu Y2MKK0BAIC03OTcsNyArNzk3LDcgQEAgdm9pZCBQZXJtaXNzaW9uc0FpVWlTZWxlY3Rvcjo6RXhl Y3V0ZU9uRAorICAgICBNb2RlbEV4ZWN1dGlvbkRhdGEgbW9kZWxfZGF0YSkgeworICAgVkxPRygx KSA8PCAiW1Blcm1pc3Npb25zQUldIEV4ZWN1dGVPbkRldmljZUFpdlhNb2RlbCI7CisgICBQcmVk aWN0aW9uTW9kZWxIYW5kbGVyUHJvdmlkZXIqIHByZWRpY3Rpb25fbW9kZWxfaGFuZGxlcl9wcm92 aWRlciA9CistICAgICAgUHJlZGljdGlvbk1vZGVsSGFuZGxlclByb3ZpZGVyRmFjdG9yeTo6R2V0 Rm9yQnJvd3NlckNvbnRleHQocHJvZmlsZV8pOworKyAgICAgIG51bGxwdHI7CisgICBpZiAocHJl ZGljdGlvbl9tb2RlbF9oYW5kbGVyX3Byb3ZpZGVyKSB7CisgICAgIHBlcm1pc3Npb25zOjpSZXF1 ZXN0VHlwZSByZXF1ZXN0X3R5cGUgPQorICAgICAgICAgbW9kZWxfZGF0YS5yZXF1ZXN0X21ldGFk YXRhLnJlcXVlc3RfdHlwZTsKKy0tLSBhL2Nocm9tZS9icm93c2VyL3ByZWZzL0JVSUxELmduCisr KysgYi9jaHJvbWUvYnJvd3Nlci9wcmVmcy9CVUlMRC5nbgorQEAgLTMzOSw3ICszMzksNiBAQCBz b3VyY2Vfc2V0KCJpbXBsIikgeworICAgICAgICIvL2Nocm9tZS9icm93c2VyL2FjdG9yL3VpIiwK KyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9kZXNrdG9wX3RvX21vYmlsZV9wcm9tb3M6dXRpbHMi LAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL2RldmljZV9pZGVudGl0eSIsCistICAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpOnByZWZzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nl ci9zZWFyY2hfZW5naW5lX2Nob2ljZSIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2VhcmNo X2VuZ2luZXMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NoYXJpbmdfaHViIiwKKy0tLSBh L2Nocm9tZS9icm93c2VyL3ByZWZzL2Jyb3dzZXJfcHJlZnMuY2MKKysrKyBiL2Nocm9tZS9icm93 c2VyL3ByZWZzL2Jyb3dzZXJfcHJlZnMuY2MKK0BAIC0xNjA1LDkgKzE2MDUsNiBAQCB2b2lkIFJl Z2lzdGVyTG9jYWxTdGF0ZShQcmVmUmVnaXN0cnlTaW1wCisgICBEZXZpY2VPQXV0aDJUb2tlblN0 b3JlRGVza3RvcDo6UmVnaXN0ZXJQcmVmcyhyZWdpc3RyeSk7CisgI2VuZGlmCisgCistI2lmICFC VUlMREZMQUcoSVNfQU5EUk9JRCkKKy0gIHNjcmVlbl9haTo6UmVnaXN0ZXJMb2NhbFN0YXRlUHJl ZnMocmVnaXN0cnkpOworLSNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRST0lEKQorIAorICNp ZiBCVUlMREZMQUcoSVNfV0lOKSB8fCBCVUlMREZMQUcoSVNfTUFDKSB8fCBCVUlMREZMQUcoSVNf QU5EUk9JRCkKKyAgIFBsYXRmb3JtQXV0aFBvbGljeU9ic2VydmVyOjpSZWdpc3RlclByZWZzKHJl Z2lzdHJ5KTsKKy0tLSBhL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL0JVSUxELmduCisrKysgYi9j aHJvbWUvYnJvd3Nlci9wcm9maWxlcy9CVUlMRC5nbgorQEAgLTUyNSw3ICs1MjUsNiBAQCBzb3Vy Y2Vfc2V0KCJwcm9maWxlc19leHRyYV9wYXJ0c19pbXBsIikKKyAgIH0gZWxzZSB7CisgICAgIGRl cHMgKz0gWworICAgICAgICIvL2Nocm9tZS9icm93c2VyL2FjY2Vzc2liaWxpdHkvcGhyYXNlX3Nl Z21lbnRhdGlvbiIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvYWNjZXNzaWJpbGl0eS90cmVl X2ZpeGluZzpzZXJ2aWNlIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9hY2Nlc3NpYmlsaXR5 X2Fubm90YXRvci9jb250ZW50X2Fubm90YXRvciIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv YXBwcy9hcHBfc2VydmljZSIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvYXV0b2ZpbGwiLAor QEAgLTU0MCw3ICs1MzksNiBAQCBzb3VyY2Vfc2V0KCJwcm9maWxlc19leHRyYV9wYXJ0c19pbXBs IikKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX2FpIiwKKyAgICAgICAiLy9jaHJv bWUvYnJvd3Nlci9wcm9maWxlX3Jlc2V0dGVyIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9y ZWNvcmRfcmVwbGF5IiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWk6c2NyZWVu X2FpX3NlcnZpY2Vfcm91dGVyX2ZhY3RvcnkiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Nl YXJjaCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2VhcmNoX2VuZ2luZV9jaG9pY2UiLAor ICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NoYXJpbmdfaHViIiwKKy0tLSBhL2Nocm9tZS9icm93 c2VyL3Byb2ZpbGVzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfcHJvZmlsZXMuY2MK KysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFf cGFydHNfcHJvZmlsZXMuY2MKK0BAIC0xMjksNyArMTI5LDYgQEAKKyAjaW5jbHVkZSAiY2hyb21l L2Jyb3dzZXIvbWV0cmljcy92YXJpYXRpb25zL2dvb2dsZV9ncm91cHNfbWFuYWdlcl9mYWN0b3J5 LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL211bHRpc3RlcF9maWx0ZXIvY29yZS9tdWx0 aXN0ZXBfZmlsdGVyX3NlcnZpY2VfZmFjdG9yeS5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nl ci9uYXZpZ2F0aW9uX3ByZWRpY3Rvci9uYXZpZ2F0aW9uX3ByZWRpY3Rvcl9rZXllZF9zZXJ2aWNl X2ZhY3RvcnkuaCIKKy0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0 b3IvcHJlbG9hZGluZ19tb2RlbF9rZXllZF9zZXJ2aWNlX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAi Y2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0b3Ivc2VhcmNoX2VuZ2luZV9wcmVjb25u ZWN0b3IuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0b3Iv c2VhcmNoX2VuZ2luZV9wcmVjb25uZWN0b3Jfa2V5ZWRfc2VydmljZV9mYWN0b3J5LmgiCisgI2lu Y2x1ZGUgImNocm9tZS9icm93c2VyL25ldC9kbnNfcHJvYmVfc2VydmljZV9mYWN0b3J5LmgiCitA QCAtMzY1LDcgKzM2NCw2IEBACisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3ByaXZhdGVfYWkv cHJpdmF0ZV9haV9zZXJ2aWNlX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIv cHJvZmlsZV9yZXNldHRlci9yZXNldF9yZXBvcnRfdXBsb2FkZXJfZmFjdG9yeS5oIgorICNpbmNs dWRlICJjaHJvbWUvYnJvd3Nlci9yZWNvcmRfcmVwbGF5L3JlY29yZGluZ19kYXRhX21hbmFnZXJf ZmFjdG9yeS5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWkvc2NyZWVuX2Fp X3NlcnZpY2Vfcm91dGVyX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvc2Vh cmNoL2luc3RhbnRfc2VydmljZV9mYWN0b3J5LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2Vy L3NlYXJjaF9lbmdpbmVfY2hvaWNlL3NlYXJjaF9lbmdpbmVfY2hvaWNlX2RpYWxvZ19zZXJ2aWNl X2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvc3BlZWNoL3NwZWVjaF9yZWNv Z25pdGlvbl9jbGllbnRfYnJvd3Nlcl9pbnRlcmZhY2VfZmFjdG9yeS5oIgorQEAgLTExMjIsNyAr MTEyMCw2IEBAIHZvaWQgQ2hyb21lQnJvd3Nlck1haW5FeHRyYVBhcnRzUHJvZmlsZXMKKyAjaWYg QlVJTERGTEFHKENIUk9NRV9ST09UX1NUT1JFX0NFUlRfTUFOQUdFTUVOVF9VSSkKKyAgIG5ldDo6 U2VydmVyQ2VydGlmaWNhdGVEYXRhYmFzZVNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOwor ICNlbmRpZgorLSAgUHJlbG9hZGluZ01vZGVsS2V5ZWRTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFu Y2UoKTsKKyAjaWYgQlVJTERGTEFHKEVOQUJMRV9ESUNFX1NVUFBPUlQpCisgICBIaXN0b3J5U3lu Y09wdGluU2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgICBQcm9maWxlTWFuYWdlbWVu dERpc2NsYWltZXJTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKK0BAIC0xMTY5LDkgKzEx NjYsNiBAQCB2b2lkIENocm9tZUJyb3dzZXJNYWluRXh0cmFQYXJ0c1Byb2ZpbGVzCisgICBPbmVH b29nbGVCYXJTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIE9uZVRpbWVQZXJtaXNz aW9uc1RyYWNrZXJGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOworICNlbmRpZgorLSAgaWYgKG9wdGlt aXphdGlvbl9ndWlkZTo6U2hvdWxkU3RhcnRNb2RlbFZhbGlkYXRvcigpKSB7CistICAgIG9wdGlt aXphdGlvbl9ndWlkZTo6TW9kZWxWYWxpZGF0b3JLZXllZFNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0 YW5jZSgpOworLSAgfQorICAgT3B0aW1pemF0aW9uR3VpZGVHbG9iYWxTdGF0ZUhvbGRlcktleWVk U2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgICBPcHRpbWl6YXRpb25HdWlkZUtleWVk U2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgICBPcmlnaW5LZXllZFBlcm1pc3Npb25B Y3Rpb25TZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKK0BAIC0xMjU2LDcgKzEyNTAsNiBA QCB2b2lkIENocm9tZUJyb3dzZXJNYWluRXh0cmFQYXJ0c1Byb2ZpbGVzCisgI2lmIEJVSUxERkxB RyhJU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX01BQykgfHwgQlVJTERGTEFHKElTX1dJTikKKyAg IHBvbGljeTo6VXNlclBvbGljeU9pZGNTaWduaW5TZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2Uo KTsKKyAjZW5kaWYKKy0gIFByZWRpY3Rpb25Nb2RlbEhhbmRsZXJQcm92aWRlckZhY3Rvcnk6Okdl dEluc3RhbmNlKCk7CisgICBQcmVkaWN0aW9uU2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7 CisgICBwcmVkaWN0b3JzOjpBdXRvY29tcGxldGVBY3Rpb25QcmVkaWN0b3JGYWN0b3J5OjpHZXRJ bnN0YW5jZSgpOworICAgcHJlZGljdG9yczo6TG9hZGluZ1ByZWRpY3RvckZhY3Rvcnk6OkdldElu c3RhbmNlKCk7CitAQCAtMTMzMywxMCArMTMyNiw2IEBAIHZvaWQgQ2hyb21lQnJvd3Nlck1haW5F eHRyYVBhcnRzUHJvZmlsZXMKKyAgIFNhZmV0eUh1Yk1lbnVOb3RpZmljYXRpb25TZXJ2aWNlRmFj dG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAjaWYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorICAgU2Fm ZXR5SHViSGF0c1NlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOworLSAgaWYgKGZlYXR1cmVz OjpJc01haW5Ob2RlQW5ub3RhdGlvbnNFbmFibGVkKCkpIHsKKy0gICAgc2NyZWVuX2FpOjpBWE1h aW5Ob2RlQW5ub3RhdG9yQ29udHJvbGxlckZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CistICB9Cist ICBzY3JlZW5fYWk6OlNjcmVlbkFJU2VydmljZVJvdXRlckZhY3Rvcnk6OkVuc3VyZUZhY3RvcnlC dWlsdCgpOworICNlbmRpZgorICNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgICBpZiAoYXNo OjpmZWF0dXJlczo6SXNTY2FubmVyRW5hYmxlZCgpKSB7CitAQCAtMTQ1MCw3ICsxNDM5LDYgQEAg dm9pZCBDaHJvbWVCcm93c2VyTWFpbkV4dHJhUGFydHNQcm9maWxlcworICAgVG9wU2l0ZXNGYWN0 b3J5OjpHZXRJbnN0YW5jZSgpOworICAgdHJhbnNsYXRlOjpUcmFuc2xhdGVSYW5rZXJGYWN0b3J5 OjpHZXRJbnN0YW5jZSgpOworICNpZiAhQlVJTERGTEFHKElTX0FORFJPSUQpCistICB0cmVlX2Zp eGluZzo6QVhUcmVlRml4aW5nU2VydmljZXNSb3V0ZXJGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOwor ICAgVHJpZ2dlcmVkUHJvZmlsZVJlc2V0dGVyRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAjZW5k aWYKKyAjaWYgIUJVSUxERkxBRyhJU19DSFJPTUVPUykgJiYgIUJVSUxERkxBRyhJU19BTkRST0lE KQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMvb2ZmX3RoZV9yZWNvcmRfcHJvZmlsZV9p bXBsLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9vZmZfdGhlX3JlY29yZF9wcm9m aWxlX2ltcGwuY2MKK0BAIC0yMjAsMTEgKzIyMCw2IEBAIHZvaWQgT2ZmVGhlUmVjb3JkUHJvZmls ZUltcGw6OkluaXQoKSB7CisgICAvLyBBY2Nlc3NpYmlsaXR5TGFiZWxzU2VydmljZSBoYXMgYSBk ZWZhdWx0IHByZWZzIGJlaGF2aW9yIGluIGluY29nbml0by4KKyAgIEFjY2Vzc2liaWxpdHlMYWJl bHNTZXJ2aWNlOjpJbml0T2ZmVGhlUmVjb3JkUHJlZnModGhpcyk7CisgCistI2lmICFCVUlMREZM QUcoSVNfQU5EUk9JRCkKKy0gIC8vIFRvIGF2b2lkIHVzaW5nIGFueSBzZXJ2ZXItc2lkZSB0cmVl IGZpeGluZyBzZXJ2aWNlLCBpdCBpcyBkaXNhYmxlZCBpbgorLSAgLy8gSW5jb2duaXRvIHByb2Zp bGVzLgorLSAgdHJlZV9maXhpbmc6OkluaXRPZmZUaGVSZWNvcmRQcmVmcyh0aGlzKTsKKy0jZW5k aWYgIC8vICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKyAKKyAgIC8vIFRoZSBhZCBzZXJ2aWNlIG1p Z2h0IG5vdCBiZSBhdmFpbGFibGUgZm9yIHNvbWUgaXJyZWd1bGFyIHByb2ZpbGVzLCBsaWtlIHRo ZQorICAgLy8gU3lzdGVtIFByb2ZpbGUuCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9w cm9maWxlX2ltcGwuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL3Byb2ZpbGVfaW1w bC5jYworQEAgLTg1OSwxMSArODU5LDYgQEAgdm9pZCBQcm9maWxlSW1wbDo6RG9GaW5hbEluaXQo Q3JlYXRlTW9kZQorICAgLy8gVGhlIHBhc3N3b3JkIHNldHRpbmdzIHNlcnZpY2UgbmVlZHMgdG8g c3RhcnQgbGlzdGVuaW5nIHRvIHNldHRpbmdzCisgICAvLyBjaGFuZ2VzIGZyb20gR29vZ2xlIE1v YmlsZSBTZXJ2aWNlcywgYXMgZWFybHkgYXMgcG9zc2libGUuCisgICBQYXNzd29yZE1hbmFnZXJT ZXR0aW5nc1NlcnZpY2VGYWN0b3J5OjpHZXRGb3JQcm9maWxlKHRoaXMpOworLSNlbHNlCistCist ICBpZiAoZmVhdHVyZXM6OklzTWFpbk5vZGVBbm5vdGF0aW9uc0VuYWJsZWQoKSkgeworLSAgICBz Y3JlZW5fYWk6OkFYTWFpbk5vZGVBbm5vdGF0b3JDb250cm9sbGVyRmFjdG9yeTo6R2V0Rm9yUHJv ZmlsZSh0aGlzKTsKKy0gIH0KKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19BTkRST0lEKQorIAor ICAgLy8gVGhlIGFubm91bmNlbWVudCBub3RpZmljYXRpb24gIHNlcnZpY2UgbWlnaHQgbm90IGJl IGF2YWlsYWJsZSBmb3Igc29tZQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMvcHJvZmls ZV9tYW5hZ2VyLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9wcm9maWxlX21hbmFn ZXIuY2MKK0BAIC01MSw3ICs1MSw2IEBACisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL2J1aWxk ZmxhZ3MuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbGlmZXRpbWUvYXBwbGljYXRpb25f bGlmZXRpbWUuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbmF2aWdhdGlvbl9wcmVkaWN0 b3IvbmF2aWdhdGlvbl9wcmVkaWN0b3Jfa2V5ZWRfc2VydmljZV9mYWN0b3J5LmgiCistI2luY2x1 ZGUgImNocm9tZS9icm93c2VyL25hdmlnYXRpb25fcHJlZGljdG9yL3ByZWxvYWRpbmdfbW9kZWxf a2V5ZWRfc2VydmljZV9mYWN0b3J5LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3ByZWZz L2luY29nbml0b19tb2RlX3ByZWZzLmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Byb2Zp bGVzL2RlbGV0ZV9wcm9maWxlX2hlbHBlci5oIgorICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9w cm9maWxlcy9rZWVwX2FsaXZlL3Byb2ZpbGVfa2VlcF9hbGl2ZV90eXBlcy5oIgorQEAgLTE2MjUs OSArMTYyNCw2IEBAIHZvaWQgUHJvZmlsZU1hbmFnZXI6OkRvRmluYWxJbml0Rm9yU2VydmkKKyAg IC8vIEVuc3VyZSBOYXZpZ2F0aW9uUHJlZGljdG9yS2V5ZWRTZXJ2aWNlIGlzIHN0YXJ0ZWQuCisg ICBOYXZpZ2F0aW9uUHJlZGljdG9yS2V5ZWRTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmlsZShw cm9maWxlKTsKKyAKKy0gIC8vIEVuc3VyZSBQcmVsb2FkaW5nTW9kZWxLZXllZFNlcnZpY2UgaXMg c3RhcnRlZC4KKy0gIFByZWxvYWRpbmdNb2RlbEtleWVkU2VydmljZUZhY3Rvcnk6OkdldEZvclBy b2ZpbGUocHJvZmlsZSk7CistCisgICBJZGVudGl0eU1hbmFnZXJGYWN0b3J5OjpHZXRGb3JQcm9m aWxlKHByb2ZpbGUpLT5Pbk5ldHdvcmtJbml0aWFsaXplZCgpOworICAgQWNjb3VudFJlY29uY2ls b3JGYWN0b3J5OjpHZXRGb3JQcm9maWxlKHByb2ZpbGUpOworICNpZiBCVUlMREZMQUcoSVNfQU5E Uk9JRCkKKy0tLSBhL2Nocm9tZS9icm93c2VyL3Jlc291cmNlcy9wZGYvcGRmX3ZpZXdlci5odG1s CisrKysgYi9jaHJvbWUvYnJvd3Nlci9yZXNvdXJjZXMvcGRmL3BkZl92aWV3ZXIuaHRtbAorQEAg LTEwNiwxMCArMTA2LDYgQEAgaW1wb3J0IHtBbm5vdGF0aW9uTW9kZX0gZnJvbSAnLi9jb25zdGFu dAorICAgICAgIDwvY3ItcGFnZS1zZWxlY3Rvcj4KKyAgICAgYCA6ICcnfQorICAgPC9pZj4KKy0g IDxjci10b2FzdCBpZD0ic2VhcmNoaWZ5UHJvZ3Jlc3MiPgorLSAgICA8ZGl2IGNsYXNzPSJzcGlu bmVyIj48L2Rpdj4KKy0gICAgPHNwYW4+JGkxOG57c2VhcmNoaWZ5SW5Qcm9ncmVzc308L3NwYW4+ CistICA8L2NyLXRvYXN0PgorIDwvZGl2PgorIAorICR7dGhpcy5zaG93RXJyb3JEaWFsb2cgPyBo dG1sYDx2aWV3ZXItZXJyb3ItZGlhbG9nIGlkPSJlcnJvci1kaWFsb2ciPgorLS0tIGEvY2hyb21l L2Jyb3dzZXIvc2tpbGxzL0JVSUxELmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9za2lsbHMvQlVJ TEQuZ24KK0BAIC01OSwxMyArNTksOSBAQCBzb3VyY2Vfc2V0KCJwdWJsaWMiKSB7Cisgc291cmNl X3NldCgidWkiKSB7CisgICBzb3VyY2VzID0gWworICAgICAic2tpbGxzX2RpYWxvZ19sYXVuY2hl ci5jYyIsCistICAgICJza2lsbHNfdXBkYXRlX29ic2VydmVyLmNjIiwKKy0gICAgInNraWxsc191 cGRhdGVfb2JzZXJ2ZXIuaCIsCisgICBdCisgICBpZiAoIWlzX2FuZHJvaWQpIHsKKyAgICAgc291 cmNlcyArPSBbCistICAgICAgInNraWxsc191aV90YWJfY29udHJvbGxlci5jYyIsCistICAgICAg InNraWxsc191aV90YWJfY29udHJvbGxlci5oIiwKKyAgICAgICAic2tpbGxzX3VpX3dpbmRvd19j b250cm9sbGVyLmNjIiwKKyAgICAgXQorICAgfQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvQlVJ TEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3VpL0JVSUxELmduCitAQCAtMTU5NSw4ICsxNTk1 LDYgQEAgc3RhdGljX2xpYnJhcnkoInVpIikgeworICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Jl Z2lvbmFsX2NhcGFiaWxpdGllcyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93 c2luZyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93c2luZzphZHZhbmNlZF9w cm90ZWN0aW9uIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWk6c2NyZWVuX2Fp X2luc3RhbGxfc3RhdGUiLAorLSAgICAgICIvL2Nocm9tZS9icm93c2VyL3NjcmVlbl9haTpzY3Jl ZW5fYWlfc2VydmljZV9yb3V0ZXJfZmFjdG9yeSIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv c21hcnRfY2FyZCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdGFiX2dyb3VwX3N5bmM6dXRp bHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3RoZW1lcyIsCitAQCAtMjQxNCw3ICsyNDEy LDYgQEAgc3RhdGljX2xpYnJhcnkoInVpIikgeworICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Bv bGljeTpvbmMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3BvbGljeTpzeXN0ZW1fZmVhdHVy ZXNfZGlzYWJsZV9saXN0IiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wdXNoX25vdGlmaWNh dGlvbiIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpL3B1YmxpYzpvcHRpY2Fs X2NoYXJhY3Rlcl9yZWNvZ25pemVyIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS9hc2gv YXBwX2FjY2VzcyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvYXNoL2FyYyIsCisgICAg ICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvYXNoL2FyYy9hcmNfYXBwX2RpYWxvZ192aWV3IiwKK0BA IC00OTEyLDcgKzQ5MDksNiBAQCBzdGF0aWNfbGlicmFyeSgidWkiKSB7CisgICAgICAgIi8vY2hy b21lL2Jyb3dzZXIvdWkvd2FhcDp3YWFwX3V0aWxzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nl ci91aS93ZWJhdXRobjppbXBsIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9h cHBfc2VydmljZV9pbnRlcm5hbHMiLAorLSAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVp L2F1dG9maWxsX21sX2ludGVybmFscyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvd2Vi dWkvY29udGVudF9hbm5vdGF0b3JfaW50ZXJuYWxzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nl ci91aS93ZWJ1aS9zaWRlX3BhbmVsL2N1c3RvbWl6ZV9jaHJvbWUiLAorICAgICAgICIvL2Nocm9t ZS9icm93c2VyL3VpL3dpbmRvd19uYW1lX3Byb21wdCIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci91 aS9wZGYvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3VpL3BkZi9CVUlMRC5nbgorQEAg LTYsNyArNiw2IEBAIGltcG9ydCgiLy9wZGYvZmVhdHVyZXMuZ25pIikKKyBpbXBvcnQoIi8vc2Vy dmljZXMvc2NyZWVuX2FpL2J1aWxkZmxhZ3MvZmVhdHVyZXMuZ25pIikKKyAKKyBhc3NlcnQoZW5h YmxlX3BkZikKKy1hc3NlcnQoZW5hYmxlX3NjcmVlbl9haV9zZXJ2aWNlKQorIAorIHNvdXJjZV9z ZXQoInBkZiIpIHsKKyAgIHNvdXJjZXMgPSBbCitAQCAtMTcsNyArMTYsNiBAQCBzb3VyY2Vfc2V0 KCJwZGYiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL2Rvd25sb2FkIiwKKyAgICAgIi8vY2hy b21lL2Jyb3dzZXIvZ2xpYyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3BkZiIsCistICAgICIv L2Nocm9tZS9icm93c2VyL3NjcmVlbl9haTpzY3JlZW5fYWlfaW5zdGFsbF9zdGF0ZSIsCisgICAg ICIvL2Nocm9tZS9icm93c2VyL3VpL3RhYl9jb250ZW50cyIsCisgICAgICIvL2Nocm9tZS9icm93 c2VyL3VpL3VzZXJfZWR1Y2F0aW9uIiwKKyAgICAgIi8vY2hyb21lL2NvbW1vbiIsCistLS0gYS9j aHJvbWUvYnJvd3Nlci91aS9wZGYvY2hyb21lX3BkZl9kb2N1bWVudF9oZWxwZXJfY2xpZW50LmNj CisrKysgYi9jaHJvbWUvYnJvd3Nlci91aS9wZGYvY2hyb21lX3BkZl9kb2N1bWVudF9oZWxwZXJf Y2xpZW50LmNjCitAQCAtMTQ3LDIyICsxNDcsMyBAQCB2b2lkIENocm9tZVBERkRvY3VtZW50SGVs cGVyQ2xpZW50OjpTZXRQCisgICB9CisgfQorIAorLXZvaWQgQ2hyb21lUERGRG9jdW1lbnRIZWxw ZXJDbGllbnQ6Ok9uU2VhcmNoaWZ5U3RhcnRlZCgKKy0gICAgY29udGVudDo6UmVuZGVyRnJhbWVI b3N0KiByZW5kZXJfZnJhbWVfaG9zdCkgeworLSAgLy8gU2hvdyB0aGUgcHJvbW8gb25seSB3aGVu IFNjcmVlbkFJIGNvbXBvbmVudCBpcyBhdmFpbGFibGUgYW5kIE9DUiBjYW4gYmUKKy0gIC8vIGRv bmUuCistICBpZiAoIXNjcmVlbl9haTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU6OkdldEluc3RhbmNl KCktPklzQ29tcG9uZW50QXZhaWxhYmxlKCkpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgY29u dGVudDo6V2ViQ29udGVudHMqIHdlYl9jb250ZW50cyA9IEdldFdlYkNvbnRlbnRzVG9Vc2UocmVu ZGVyX2ZyYW1lX2hvc3QpOworLSAgaWYgKCFNYXliZVNob3dGZWF0dXJlUHJvbW8oZmVhdHVyZV9l bmdhZ2VtZW50OjprSVBIUGRmU2VhcmNoaWZ5RmVhdHVyZSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHdlYl9jb250ZW50cykpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgYXV0byog Y29uc3QgdGFiID0gdGFiczo6VGFiSW50ZXJmYWNlOjpNYXliZUdldEZyb21Db250ZW50cyh3ZWJf Y29udGVudHMpOworLSAgaWYgKCF0YWIpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLSAgdGFiX3N1 YnNjcmlwdGlvbnNfLnB1c2hfYmFjayh0YWItPlJlZ2lzdGVyV2lsbERlYWN0aXZhdGUoCistICAg ICAgYmFzZTo6QmluZFJlcGVhdGluZygmTWF5YmVIaWRlU2VhcmNoaWZ5RmVhdHVyZVByb21vKSkp OworLX0KKy0tLSBhL2Nocm9tZS9icm93c2VyL3VpL3BkZi9jaHJvbWVfcGRmX2RvY3VtZW50X2hl bHBlcl9jbGllbnQuaAorKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvcGRmL2Nocm9tZV9wZGZfZG9j dW1lbnRfaGVscGVyX2NsaWVudC5oCitAQCAtMjcsNyArMjcsNiBAQCBjbGFzcyBDaHJvbWVQREZE b2N1bWVudEhlbHBlckNsaWVudCA6IHB1CisgICB2b2lkIE9uU2F2ZVVSTCgpIG92ZXJyaWRlOwor ICAgdm9pZCBTZXRQbHVnaW5DYW5TYXZlKGNvbnRlbnQ6OlJlbmRlckZyYW1lSG9zdCogcmVuZGVy X2ZyYW1lX2hvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fc2F2ZSkgb3Zl cnJpZGU7CistICB2b2lkIE9uU2VhcmNoaWZ5U3RhcnRlZChjb250ZW50OjpSZW5kZXJGcmFtZUhv c3QqIHJlbmRlcl9mcmFtZV9ob3N0KSBvdmVycmlkZTsKKyAKKyAgIC8vIEhvbGRzIHN1YnNjcmlw dGlvbnMgZm9yIFRhYkludGVyZmFjZSBjYWxsYmFja3MuCisgICBzdGQ6OnZlY3RvcjxiYXNlOjpD YWxsYmFja0xpc3RTdWJzY3JpcHRpb24+IHRhYl9zdWJzY3JpcHRpb25zXzsKKy0tLSBhL2Nocm9t ZS9icm93c2VyL3VpL3RhYnMvdGFiX2ZlYXR1cmVzLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci91 aS90YWJzL3RhYl9mZWF0dXJlcy5jYworQEAgLTM5NCwxMSArMzk0LDYgQEAgdm9pZCBUYWJGZWF0 dXJlczo6SW5pdChUYWJJbnRlcmZhY2UmIHRhYgorICAgICBhY3Rvcl90YWJfZGF0YV8gPQorICAg ICAgICAgR2V0VXNlckRhdGFGYWN0b3J5KCkuQ3JlYXRlSW5zdGFuY2U8YWN0b3I6OkFjdG9yVGFi RGF0YT4odGFiLCAmdGFiKTsKKyAKKy0gICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJs ZWQoZmVhdHVyZXM6OmtTa2lsbHNFbmFibGVkKSkgeworLSAgICAgIHNraWxsc191aV90YWJfY29u dHJvbGxlcl8gPQorLSAgICAgICAgICBHZXRVc2VyRGF0YUZhY3RvcnkoKS5DcmVhdGVJbnN0YW5j ZTxza2lsbHM6OlNraWxsc1VpVGFiQ29udHJvbGxlcj4oCistICAgICAgICAgICAgICB0YWIsIHRh Yik7CistICAgIH0KKyAKKyAgICAgaWYgKGFjY2Vzc2liaWxpdHlfYW5ub3RhdG9yOjoKKyAgICAg ICAgICAgICBDb250ZW50QW5ub3RhdG9yU2VydmljZSogY29udGVudF9hbm5vdGF0b3Jfc2Vydmlj ZSA9CitAQCAtNTc0LDEwICs1NjksNiBAQCB2b2lkIFRhYkZlYXR1cmVzOjpJbml0KFRhYkludGVy ZmFjZSYgdGFiCisgI2VuZGlmCisgCisgI2lmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKy0gIGlm IChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKGZlYXR1cmVzOjprU2tpbGxzRW5hYmxlZCkp IHsKKy0gICAgc2tpbGxzX3VwZGF0ZV9vYnNlcnZlcl8gPQorLSAgICAgICAgc3RkOjptYWtlX3Vu aXF1ZTxza2lsbHM6OlNraWxsc1VwZGF0ZU9ic2VydmVyPih0YWIpOworLSAgfQorICAgaWYgKGJh c2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoZmVhdHVyZXM6OmtJbmRpZ28pKSB7CisgICAgIGlu ZGlnb19wYWdlX2FjdGlvbl9jb250cm9sbGVyXyA9CisgICAgICAgICBzdGQ6Om1ha2VfdW5pcXVl PGluZGlnbzo6SW5kaWdvUGFnZUFjdGlvbkNvbnRyb2xsZXI+KAorLS0tIGEvY2hyb21lL2Jyb3dz ZXIvdWkvdmlld3MvdXNlcl9lZHVjYXRpb24vYnJvd3Nlcl91c2VyX2VkdWNhdGlvbl9zZXJ2aWNl LmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy91c2VyX2VkdWNhdGlvbi9icm93c2Vy X3VzZXJfZWR1Y2F0aW9uX3NlcnZpY2UuY2MKK0BAIC05MDcsNDAgKzkwNyw2IEBAIHZvaWQgTWF5 YmVSZWdpc3RlckNocm9tZUZlYXR1cmVQcm9tb3MoCisgICAgICAgICAgICAgICAgICAgICAgICAi VHJpZ2dlcmVkIHdoZW4gdGhlIFBERiBWaWV3ZXIgb3BlbnMuIikpKTsKKyAjZW5kaWYKKyAKKy0g IC8vIGtJUEhQZGZTZWFyY2hpZnlGZWF0dXJlOgorLSAgcmVnaXN0cnkuUmVnaXN0ZXJGZWF0dXJl KHN0ZDo6bW92ZSgKKy0gICAgICBGZWF0dXJlUHJvbW9TcGVjaWZpY2F0aW9uOjpDcmVhdGVGb3JU b2FzdFByb21vKAorLSAgICAgICAgICBmZWF0dXJlX2VuZ2FnZW1lbnQ6OmtJUEhQZGZTZWFyY2hp ZnlGZWF0dXJlLAorLSAgICAgICAgICBrQnJvd3NlckRpYWxvZ0FuY2hvckVsZW1lbnRJZCwgSURT X1BERl9TRUFSQ0hJRllfSVBIX0JPRFksCistICAgICAgICAgIElEU19QREZfU0VBUkNISUZZX0lQ SF9CT0RZX1NDUkVFTl9SRUFERVIsCistICAgICAgICAgIEZlYXR1cmVQcm9tb1NwZWNpZmljYXRp b246OkFjY2VsZXJhdG9ySW5mbygpKQorLSAgICAgICAgICAuU2V0QnViYmxlQXJyb3coSGVscEJ1 YmJsZUFycm93OjprTm9uZSkKKy0gICAgICAgICAgLlNldEJ1YmJsZVRpdGxlVGV4dChJRFNfUERG X1NFQVJDSElGWV9JUEhfVElUTEUpCistICAgICAgICAgIC5TZXRNZXRhZGF0YSgxMzIsICJyaGFs YXZhdGlAY2hyb21pdW0ub3JnIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICJUcmlnZ2VyZWQg b25jZSB3aGVuIHVzZXIgb3BlbnMgYSBQREYgd2hpY2ggZ2V0cyBPQ1JlZC4iKQorLSAgICAgICAg ICAuU2V0QW5jaG9yRWxlbWVudEZpbHRlcihiYXNlOjpCaW5kUmVwZWF0aW5nKAorLSAgICAgICAg ICAgICAgW10oY29uc3QgdWk6OkVsZW1lbnRUcmFja2VyOjpFbGVtZW50TGlzdCYgZWxlbWVudHMp CistICAgICAgICAgICAgICAgICAgLT4gdWk6OlRyYWNrZWRFbGVtZW50KiB7CistICAgICAgICAg ICAgICAgIGlmIChlbGVtZW50cy5lbXB0eSgpKSB7CistICAgICAgICAgICAgICAgICAgcmV0dXJu IG51bGxwdHI7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgLy8gRW5zdXJl IGEgc2VhcmNoaWZpZWQgUERGIGlzIHZpc2libGUgYmVmb3JlIHNob3dpbmcgdGhlIElQSC4KKy0g ICAgICAgICAgICAgICAgYXV0byogY29uc3QgYnJvd3Nlcl92aWV3ID0KKy0gICAgICAgICAgICAg ICAgICAgIHZpZXdzOjpFbGVtZW50VHJhY2tlclZpZXdzOjpHZXRJbnN0YW5jZSgpCistICAgICAg ICAgICAgICAgICAgICAgICAgLT5HZXRGaXJzdE1hdGNoaW5nVmlld0FzPEJyb3dzZXJWaWV3PigK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAga0Jyb3dzZXJWaWV3RWxlbWVudElkLCBlbGVt ZW50c1swXS0+Y29udGV4dCgpKTsKKy0gICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8Q29udGVu dHNXZWJWaWV3Kj4gY29udGVudHNfd2ViX3ZpZXdzID0KKy0gICAgICAgICAgICAgICAgICAgIGJy b3dzZXJfdmlldy0+R2V0QWxsVmlzaWJsZUNvbnRlbnRzV2ViVmlld3MoKTsKKy0gICAgICAgICAg ICAgICAgZm9yIChhdXRvKiBjb250ZW50c193ZWJfdmlldyA6IGNvbnRlbnRzX3dlYl92aWV3cykg eworLSAgICAgICAgICAgICAgICAgIGF1dG8qIHBkZl9kb2NfaGVscGVyID0KKy0gICAgICAgICAg ICAgICAgICAgICAgcGRmOjpQREZEb2N1bWVudEhlbHBlcjo6TWF5YmVHZXRGb3JXZWJDb250ZW50 cygKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzX3dlYl92aWV3LT5HZXRXZWJD b250ZW50cygpKTsKKy0gICAgICAgICAgICAgICAgICBpZiAocGRmX2RvY19oZWxwZXIgJiYgcGRm X2RvY19oZWxwZXItPlNlYXJjaGlmeVN0YXJ0ZWQoKSkgeworLSAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGVsZW1lbnRzWzBdOworLSAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKy0gICAgICAgICAgICAgIH0p KSkpOworIAorICAgLy8ga0lQSExlbnNPdmVybGF5RmVhdHVyZToKKyAgIHJlZ2lzdHJ5LlJlZ2lz dGVyRmVhdHVyZShzdGQ6Om1vdmUoCistLS0gYS9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9CVUlM RC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvQlVJTEQuZ24KK0BAIC03OCw3ICs3 OCw2IEBAIHNvdXJjZV9zZXQoImNvbmZpZ3MiKSB7CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv Z2xpYy9zZWxlY3Rpb24iLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2FjY2Vz c19jb2RlX2Nhc3QiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2FwcF9zZXJ2 aWNlX2ludGVybmFscyIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvYXV0b2Zp bGxfbWxfaW50ZXJuYWxzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci91aS93ZWJ1aS9jb2xv cl9waXBlbGluZV9pbnRlcm5hbHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3VpL3dlYnVp L2NvbnRlbnRfYW5ub3RhdG9yX2ludGVybmFscyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv dWkvd2VidWkvZGF0YV9zaGFyaW5nIiwKKy0tLSBhL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL2No cm9tZV93ZWJfdWlfY29uZmlncy5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvY2hy b21lX3dlYl91aV9jb25maWdzLmNjCitAQCAtMzI0LDcgKzMyNCw2IEBAIHZvaWQgUmVnaXN0ZXJD aHJvbWVXZWJVSUNvbmZpZ3MoKSB7CisgICAgICAgICAgIGNvbnRlbnRfYW5ub3RhdG9yX2ludGVy bmFsczo6Q29udGVudEFubm90YXRvckludGVybmFsc1VJQ29uZmlnPigpKTsKKyAgIG1hcC5BZGRX ZWJVSUNvbmZpZyhzdGQ6Om1ha2VfdW5pcXVlPGFjdG9yOjp1aTo6QWN0b3JPdmVybGF5VUlDb25m aWc+KCkpOworICAgbWFwLkFkZFdlYlVJQ29uZmlnKHN0ZDo6bWFrZV91bmlxdWU8QXBwU2Vydmlj ZUludGVybmFsc1VJQ29uZmlnPigpKTsKKy0gIG1hcC5BZGRXZWJVSUNvbmZpZyhzdGQ6Om1ha2Vf dW5pcXVlPEF1dG9maWxsTWxJbnRlcm5hbHNVSUNvbmZpZz4oKSk7CisgICBtYXAuQWRkV2ViVUlD b25maWcoc3RkOjptYWtlX3VuaXF1ZTxtZWRpYV9yb3V0ZXI6OkFjY2Vzc0NvZGVDYXN0VUlDb25m aWc+KCkpOworICAgbWFwLkFkZFdlYlVJQ29uZmlnKHN0ZDo6bWFrZV91bmlxdWU8Qm9va21hcmtz U2lkZVBhbmVsVUlDb25maWc+KCkpOworICAgbWFwLkFkZFdlYlVJQ29uZmlnKHN0ZDo6bWFrZV91 bmlxdWU8Qm9va21hcmtzVUlDb25maWc+KCkpOworLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvd2Vi dWkvc2V0dGluZ3MvYWNjZXNzaWJpbGl0eV9tYWluX2hhbmRsZXIuY2MKKysrKyBiL2Nocm9tZS9i cm93c2VyL3VpL3dlYnVpL3NldHRpbmdzL2FjY2Vzc2liaWxpdHlfbWFpbl9oYW5kbGVyLmNjCitA QCAtMzUsMTEgKzM1LDYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXI6OlJlZ2lzdGVy TQorICAgICAgIGJhc2U6OkJpbmRSZXBlYXRpbmcoCisgICAgICAgICAgICZBY2Nlc3NpYmlsaXR5 TWFpbkhhbmRsZXI6OkhhbmRsZUNoZWNrQWNjZXNzaWJpbGl0eUltYWdlTGFiZWxzLAorICAgICAg ICAgICBiYXNlOjpVbnJldGFpbmVkKHRoaXMpKSk7CistICB3ZWJfdWkoKS0+UmVnaXN0ZXJNZXNz YWdlQ2FsbGJhY2soCistICAgICAgImdldFNjcmVlbkFpSW5zdGFsbFN0YXRlIiwKKy0gICAgICBi YXNlOjpCaW5kUmVwZWF0aW5nKAorLSAgICAgICAgICAmQWNjZXNzaWJpbGl0eU1haW5IYW5kbGVy OjpIYW5kbGVHZXRTY3JlZW5BSUluc3RhbGxTdGF0ZSwKKy0gICAgICAgICAgYmFzZTo6VW5yZXRh aW5lZCh0aGlzKSkpOworIH0KKyAKKyB2b2lkIEFjY2Vzc2liaWxpdHlNYWluSGFuZGxlcjo6T25K YXZhc2NyaXB0QWxsb3dlZCgpIHsKK0BAIC01MCwxMSArNDUsNiBAQCB2b2lkIEFjY2Vzc2liaWxp dHlNYWluSGFuZGxlcjo6T25KYXZhc2NyCisgICAgICAgICAgIGJhc2U6OlVucmV0YWluZWQodGhp cykpKTsKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAKKy0gIGlmIChmZWF0 dXJlczo6SXNNYWluTm9kZUFubm90YXRpb25zRW5hYmxlZCgpKSB7CistICAgIENIRUNLKCFjb21w b25lbnRfcmVhZHlfb2JzZXJ2ZXJfLklzT2JzZXJ2aW5nKCkpOworLSAgICBjb21wb25lbnRfcmVh ZHlfb2JzZXJ2ZXJfLk9ic2VydmUoCistICAgICAgICBzY3JlZW5fYWk6OlNjcmVlbkFJSW5zdGFs bFN0YXRlOjpHZXRJbnN0YW5jZSgpKTsKKy0gIH0KKyB9CisgCisgdm9pZCBBY2Nlc3NpYmlsaXR5 TWFpbkhhbmRsZXI6Ok9uSmF2YXNjcmlwdERpc2FsbG93ZWQoKSB7CitAQCAtNjIsMzUgKzUyLDYg QEAgdm9pZCBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXI6Ok9uSmF2YXNjcgorICAgYWNjZXNzaWJp bGl0eV9zdWJzY3JpcHRpb25fID0ge307CisgI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQ0hST01F T1MpCisgCistICBpZiAoZmVhdHVyZXM6OklzTWFpbk5vZGVBbm5vdGF0aW9uc0VuYWJsZWQoKSkg eworLSAgICBjb21wb25lbnRfcmVhZHlfb2JzZXJ2ZXJfLlJlc2V0KCk7CistICB9CistfQorLQor LXZvaWQgQWNjZXNzaWJpbGl0eU1haW5IYW5kbGVyOjpEb3dubG9hZFByb2dyZXNzQ2hhbmdlZChk b3VibGUgcHJvZ3Jlc3MpIHsKKy0gIENIRUNLX0dFKHByb2dyZXNzLCAwLjApOworLSAgQ0hFQ0tf TEUocHJvZ3Jlc3MsIDEuMCk7CistICBjb25zdCBpbnQgcHJvZ3Jlc3NfbnVtID0gcHJvZ3Jlc3Mg KiAxMDA7CistICBGaXJlV2ViVUlMaXN0ZW5lcigic2NyZWVuLWFpLWRvd25sb2FkaW5nLXByb2dy ZXNzLWNoYW5nZWQiLAorLSAgICAgICAgICAgICAgICAgICAgYmFzZTo6VmFsdWUocHJvZ3Jlc3Nf bnVtKSk7CistfQorLQorLXZvaWQgQWNjZXNzaWJpbGl0eU1haW5IYW5kbGVyOjpTdGF0ZUNoYW5n ZWQoCistICAgIHNjcmVlbl9haTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU6OlN0YXRlIHN0YXRlKSB7 CistICBiYXNlOjpWYWx1ZSBzdGF0ZV92YWx1ZSA9IGJhc2U6OlZhbHVlKHN0YXRpY19jYXN0PGlu dD4oc3RhdGUpKTsKKy0gIEZpcmVXZWJVSUxpc3RlbmVyKCJzY3JlZW4tYWktc3RhdGUtY2hhbmdl ZCIsIHN0YXRlX3ZhbHVlKTsKKy19CistCistdm9pZCBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXI6 OkhhbmRsZUdldFNjcmVlbkFJSW5zdGFsbFN0YXRlKAorLSAgICBjb25zdCBiYXNlOjpMaXN0VmFs dWUmIGFyZ3MpIHsKKy0gIENIRUNLX0VRKDFVLCBhcmdzLnNpemUoKSk7CistICBjb25zdCBiYXNl OjpWYWx1ZSYgY2FsbGJhY2tfaWQgPSBhcmdzWzBdOworLSAgQWxsb3dKYXZhc2NyaXB0KCk7Cist ICAvLyBHZXQgdGhlIGN1cnJlbnQgaW5zdGFsbCBzdGF0ZSBhbmQgc2VuZCBpdCBiYWNrIHRvIGEg VUkgY2FsbGJhY2suCistICBzY3JlZW5fYWk6OlNjcmVlbkFJSW5zdGFsbFN0YXRlOjpTdGF0ZSBj dXJyZW50X2luc3RhbGxfc3RhdGUgPQorLSAgICAgIHNjcmVlbl9haTo6U2NyZWVuQUlJbnN0YWxs U3RhdGU6OkdldEluc3RhbmNlKCktPmdldF9zdGF0ZSgpOworLSAgUmVzb2x2ZUphdmFzY3JpcHRD YWxsYmFjaygKKy0gICAgICBjYWxsYmFja19pZCwgYmFzZTo6VmFsdWUoc3RhdGljX2Nhc3Q8aW50 PihjdXJyZW50X2luc3RhbGxfc3RhdGUpKSk7CisgfQorIAorIHZvaWQgQWNjZXNzaWJpbGl0eU1h aW5IYW5kbGVyOjpIYW5kbGVHZXRTY3JlZW5SZWFkZXJTdGF0ZSgKKy0tLSBhL2Nocm9tZS9icm93 c2VyL3VpL3dlYnVpL3NldHRpbmdzL2FjY2Vzc2liaWxpdHlfbWFpbl9oYW5kbGVyLmgKKysrKyBi L2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL3NldHRpbmdzL2FjY2Vzc2liaWxpdHlfbWFpbl9oYW5k bGVyLmgKK0BAIC0xOSw4ICsxOSw3IEBAIG5hbWVzcGFjZSBzZXR0aW5ncyB7CisgLy8gU2V0dGlu Z3MgaGFuZGxlciBmb3IgdGhlIG1haW4gYWNjZXNzaWJpbGl0eSBzZXR0aW5ncyBwYWdlLAorIC8v IGNocm9tZTovL3NldHRpbmdzL2FjY2Vzc2liaWxpdHkuCisgY2xhc3MgQWNjZXNzaWJpbGl0eU1h aW5IYW5kbGVyCistICAgIDogcHVibGljIDo6c2V0dGluZ3M6OlNldHRpbmdzUGFnZVVJSGFuZGxl ciwKKy0gICAgICBwdWJsaWMgc2NyZWVuX2FpOjpTY3JlZW5BSUluc3RhbGxTdGF0ZTo6T2JzZXJ2 ZXIgeworKyAgICA6IHB1YmxpYyA6OnNldHRpbmdzOjpTZXR0aW5nc1BhZ2VVSUhhbmRsZXIgewor ICBwdWJsaWM6CisgICBBY2Nlc3NpYmlsaXR5TWFpbkhhbmRsZXIoKTsKKyAgIH5BY2Nlc3NpYmls aXR5TWFpbkhhbmRsZXIoKSBvdmVycmlkZTsKK0BAIC0zMiw5ICszMSw2IEBAIGNsYXNzIEFjY2Vz c2liaWxpdHlNYWluSGFuZGxlcgorICAgdm9pZCBPbkphdmFzY3JpcHRBbGxvd2VkKCkgb3ZlcnJp ZGU7CisgICB2b2lkIE9uSmF2YXNjcmlwdERpc2FsbG93ZWQoKSBvdmVycmlkZTsKKyAKKy0gIC8v IHNjcmVlbl9haTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU6Ok9ic2VydmVyOgorLSAgdm9pZCBEb3du bG9hZFByb2dyZXNzQ2hhbmdlZChkb3VibGUgcHJvZ3Jlc3MpIG92ZXJyaWRlOworLSAgdm9pZCBT dGF0ZUNoYW5nZWQoc2NyZWVuX2FpOjpTY3JlZW5BSUluc3RhbGxTdGF0ZTo6U3RhdGUgc3RhdGUp IG92ZXJyaWRlOworIAorICBwcml2YXRlOgorICAgdm9pZCBIYW5kbGVHZXRTY3JlZW5SZWFkZXJT dGF0ZShjb25zdCBiYXNlOjpMaXN0VmFsdWUmIGFyZ3MpOworQEAgLTUxLDkgKzQ3LDYgQEAgY2xh c3MgQWNjZXNzaWJpbGl0eU1haW5IYW5kbGVyCisgICBiYXNlOjpDYWxsYmFja0xpc3RTdWJzY3Jp cHRpb24gYWNjZXNzaWJpbGl0eV9zdWJzY3JpcHRpb25fOworICNlbmRpZiAgLy8gQlVJTERGTEFH KElTX0NIUk9NRU9TKQorIAorLSAgYmFzZTo6U2NvcGVkT2JzZXJ2YXRpb248c2NyZWVuX2FpOjpT Y3JlZW5BSUluc3RhbGxTdGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbl9h aTo6U2NyZWVuQUlJbnN0YWxsU3RhdGU6Ok9ic2VydmVyPgorLSAgICAgIGNvbXBvbmVudF9yZWFk eV9vYnNlcnZlcl97dGhpc307CisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2Ugc2V0dGluZ3MKKy0t LSBhL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL3NpZGVfcGFuZWwvcmVhZF9hbnl0aGluZy9yZWFk X2FueXRoaW5nX3VudHJ1c3RlZF9wYWdlX2hhbmRsZXIuY2MKKysrKyBiL2Nocm9tZS9icm93c2Vy L3VpL3dlYnVpL3NpZGVfcGFuZWwvcmVhZF9hbnl0aGluZy9yZWFkX2FueXRoaW5nX3VudHJ1c3Rl ZF9wYWdlX2hhbmRsZXIuY2MKK0BAIC0yNCw4ICsyNCw2IEBACisgI2luY2x1ZGUgImNocm9tZS9i cm93c2VyL2RvbV9kaXN0aWxsZXIvZG9tX2Rpc3RpbGxlcl9zZXJ2aWNlX2ZhY3RvcnkuaCIKKyAj aW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvbGFuZ3VhZ2UvbGFuZ3VhZ2VfbW9kZWxfbWFuYWdlcl9m YWN0b3J5LmgiCisgI2luY2x1ZGUgImNocm9tZS9icm93c2VyL3Byb2ZpbGVzL3Byb2ZpbGUuaCIK Ky0jaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpL3NjcmVlbl9haV9zZXJ2aWNlX3Jv dXRlci5oIgorLSNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWkvc2NyZWVuX2FpX3Nl cnZpY2Vfcm91dGVyX2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Jyb3dzZXIvc3BlZWNo L2V4dGVuc2lvbl9hcGkvdHRzX2VuZ2luZV9leHRlbnNpb25fYXBpLmgiCisgI2luY2x1ZGUgImNo cm9tZS9icm93c2VyL3RyYW5zbGF0ZS9jaHJvbWVfdHJhbnNsYXRlX2NsaWVudC5oIgorICNpbmNs dWRlICJjaHJvbWUvYnJvd3Nlci91aS9icm93c2VyLmgiCitAQCAtNDMwLDE0ICs0MjgsNiBAQCBS ZWFkQW55dGhpbmdVbnRydXN0ZWRQYWdlSGFuZGxlcjo6UmVhZEFuCisgICBwcmVmc19sYW5nID0g bGFuZ3VhZ2U6OkV4dHJhY3RCYXNlTGFuZ3VhZ2UocHJlZnNfbGFuZyk7CisgICBTZXREZWZhdWx0 TGFuZ3VhZ2VDb2RlKHByZWZzX2xhbmcpOworIAorLSAgaWYgKHVzZV9zY3JlZW5fYWlfc2Vydmlj ZV8pIHsKKy0gICAgc2NyZWVuX2FpOjpTY3JlZW5BSVNlcnZpY2VSb3V0ZXJGYWN0b3J5OjpHZXRG b3JCcm93c2VyQ29udGV4dChwcm9maWxlXykKKy0gICAgICAgIC0+R2V0U2VydmljZVN0YXRlQXN5 bmMoCistICAgICAgICAgICAgc2NyZWVuX2FpOjpTY3JlZW5BSVNlcnZpY2VSb3V0ZXI6OlNlcnZp Y2U6OmtNYWluQ29udGVudEV4dHJhY3Rpb24sCistICAgICAgICAgICAgYmFzZTo6QmluZE9uY2Uo CistICAgICAgICAgICAgICAgICZSZWFkQW55dGhpbmdVbnRydXN0ZWRQYWdlSGFuZGxlcjo6T25T Y3JlZW5BSVNlcnZpY2VJbml0aWFsaXplZCwKKy0gICAgICAgICAgICAgICAgd2Vha19mYWN0b3J5 Xy5HZXRXZWFrUHRyKCkpKTsKKy0gIH0KKyAKKyAgIGlmIChmZWF0dXJlczo6SXNSZWFkQW55dGhp bmdXaXRoUmVhZGFiaWxpdHlFbmFibGVkKCkgJiYKKyAgICAgICAhZmVhdHVyZXM6OklzUmVhZEFu eXRoaW5nUmVhZEFsb3VkUGhyYXNlSGlnaGxpZ2h0aW5nRW5hYmxlZCgpKSB7CistLS0gYS9jaHJv bWUvcmVuZGVyZXIvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9yZW5kZXJlci9CVUlMRC5nbgorQEAg LTM1NSw4ICszNTUsNiBAQCBzdGF0aWNfbGlicmFyeSgicmVuZGVyZXIiKSB7CisgICAgIF0KKyAg IH0gZWxzZSB7CisgICAgIHNvdXJjZXMgKz0gWworLSAgICAgICJhY2Nlc3NpYmlsaXR5L2F4X3Ry ZWVfZGlzdGlsbGVyLmNjIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9heF90cmVlX2Rpc3RpbGxl ci5oIiwKKyAgICAgICAiYWNjZXNzaWJpbGl0eS9waHJhc2Vfc2VnbWVudGF0aW9uL2Jhc2VfcGhy YXNlX3NlZ21lbnRlci5jYyIsCisgICAgICAgImFjY2Vzc2liaWxpdHkvcGhyYXNlX3NlZ21lbnRh dGlvbi9iYXNlX3BocmFzZV9zZWdtZW50ZXIuaCIsCisgICAgICAgImFjY2Vzc2liaWxpdHkvcGhy YXNlX3NlZ21lbnRhdGlvbi9kZXBlbmRlbmN5X3BhcnNlcl9tb2RlbC5jYyIsCitAQCAtMzczLDE2 ICszNzEsNiBAQCBzdGF0aWNfbGlicmFyeSgicmVuZGVyZXIiKSB7CisgICAgICAgImFjY2Vzc2li aWxpdHkvcGhyYXNlX3NlZ21lbnRhdGlvbi90b2tlbml6ZWRfc2VudGVuY2UuaCIsCisgICAgICAg ImFjY2Vzc2liaWxpdHkvcGhyYXNlX3NlZ21lbnRhdGlvbi90b2tlbml6ZXIuY2MiLAorICAgICAg ICJhY2Nlc3NpYmlsaXR5L3BocmFzZV9zZWdtZW50YXRpb24vdG9rZW5pemVyLmgiLAorLSAgICAg ICJhY2Nlc3NpYmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9hbG91ZF9hcHBfbW9kZWwuY2MiLAor LSAgICAgICJhY2Nlc3NpYmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9hbG91ZF9hcHBfbW9kZWwu aCIsCistICAgICAgImFjY2Vzc2liaWxpdHkvcmVhZF9hbnl0aGluZy9yZWFkX2Fsb3VkX3RyYXZl cnNhbF91dGlscy5jYyIsCistICAgICAgImFjY2Vzc2liaWxpdHkvcmVhZF9hbnl0aGluZy9yZWFk X2Fsb3VkX3RyYXZlcnNhbF91dGlscy5oIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9yZWFkX2Fu eXRoaW5nL3JlYWRfYW55dGhpbmdfYXBwX2NvbnRyb2xsZXIuY2MiLAorLSAgICAgICJhY2Nlc3Np YmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9hbnl0aGluZ19hcHBfY29udHJvbGxlci5oIiwKKy0g ICAgICAiYWNjZXNzaWJpbGl0eS9yZWFkX2FueXRoaW5nL3JlYWRfYW55dGhpbmdfYXBwX21vZGVs LmNjIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9yZWFkX2FueXRoaW5nL3JlYWRfYW55dGhpbmdf YXBwX21vZGVsLmgiLAorLSAgICAgICJhY2Nlc3NpYmlsaXR5L3JlYWRfYW55dGhpbmcvcmVhZF9h bnl0aGluZ19ub2RlX3V0aWxzLmNjIiwKKy0gICAgICAiYWNjZXNzaWJpbGl0eS9yZWFkX2FueXRo aW5nL3JlYWRfYW55dGhpbmdfbm9kZV91dGlscy5oIiwKKyAgICAgICAibWVkaWEvY2hyb21lX3Nw ZWVjaF9yZWNvZ25pdGlvbl9jbGllbnQuY2MiLAorICAgICAgICJtZWRpYS9jaHJvbWVfc3BlZWNo X3JlY29nbml0aW9uX2NsaWVudC5oIiwKKyAgICAgICAic2VhcmNoYm94L3NlYXJjaGJveC5jYyIs CitAQCAtMzk5LDcgKzM4Nyw2IEBAIHN0YXRpY19saWJyYXJ5KCJyZW5kZXJlciIpIHsKKyAgICAg ICAiLy9jb21wb25lbnRzL2NyeF9maWxlIiwKKyAgICAgICAiLy9jb21wb25lbnRzL3RydXN0ZWRf dmF1bHQiLAorICAgICAgICIvL3NlcnZpY2VzL3NjcmVlbl9haS9idWlsZGZsYWdzIiwKKy0gICAg ICAiLy9zZXJ2aWNlcy9zY3JlZW5fYWkvcHVibGljL21vam9tIiwKKyAgICAgICAiLy9zZXJ2aWNl cy9zdHJpbmdzIiwKKyAgICAgICAiLy90aGlyZF9wYXJ0eS9yZTIiLAorICAgICAgICIvL3RoaXJk X3BhcnR5L3RlbnNvcmZsb3ctdGV4dCIsCistLS0gYS9jaHJvbWUvcmVuZGVyZXIvY2hyb21lX3Jl bmRlcl9mcmFtZV9vYnNlcnZlci5jYworKysrIGIvY2hyb21lL3JlbmRlcmVyL2Nocm9tZV9yZW5k ZXJfZnJhbWVfb2JzZXJ2ZXIuY2MKK0BAIC03Nyw3ICs3Nyw2IEBACisgI2luY2x1ZGUgInVybC9n dXJsLmgiCisgCisgI2lmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKy0jaW5jbHVkZSAiY2hyb21l L3JlbmRlcmVyL2FjY2Vzc2liaWxpdHkvcmVhZF9hbnl0aGluZy9yZWFkX2FueXRoaW5nX2FwcF9j b250cm9sbGVyLmgiCisgI2luY2x1ZGUgImNocm9tZS9yZW5kZXJlci9zZWFyY2hib3gvc2VhcmNo Ym94X2V4dGVuc2lvbi5oIgorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRST0lEKQorIAor QEAgLTM0MCwxNCArMzM5LDYgQEAgdm9pZCBDaHJvbWVSZW5kZXJGcmFtZU9ic2VydmVyOjpEaWRD bGVhcgorICAgICBTZWFyY2hCb3hFeHRlbnNpb246Okluc3RhbGwocmVuZGVyX2ZyYW1lKCktPkdl dFdlYkZyYW1lKCkpOworICAgfQorIAorLSAgLy8gSW5zdGFsbCBSZWFkQW55dGhpbmdBcHBDb250 cm9sbGVyIG9uIHJlbmRlciBmcmFtZXMgd2l0aCB0aGUgUmVhZCBBbnl0aGluZworLSAgLy8gdXJs LCB3aGljaCBpcyBjaHJvbWUtdW50cnVzdGVkLiBSZWFkQW55dGhpbmdBcHBDb250cm9sbGVyIGlu c3RhbGxzIHY4CistICAvLyBiaW5kaW5ncyBpbiB0aGUgY2hyb21lLnJlYWRpbmdNb2RlIG5hbWVz cGFjZSB3aGljaCBhcmUgY29uc3VtZWQgYnkKKy0gIC8vIHJlYWRfYW55dGhpbmcvYXBwLnRzLCB0 aGUgcmVzb3VyY2Ugb2YgdGhlIFJlYWQgQW55dGhpbmcgV2ViVUkuCistICBpZiAocmVuZGVyX2Zy YW1lKCktPkdldFdlYkZyYW1lKCktPkdldERvY3VtZW50KCkuVXJsKCkgPT0KKy0gICAgICBjaHJv bWU6OmtDaHJvbWVVSVVudHJ1c3RlZFJlYWRBbnl0aGluZ1NpZGVQYW5lbFVSTCkgeworLSAgICBS ZWFkQW55dGhpbmdBcHBDb250cm9sbGVyOjpJbnN0YWxsKHJlbmRlcl9mcmFtZSgpKTsKKy0gIH0K KyAjZW5kaWYgIC8vICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKyAjaWYgQlVJTERGTEFHKEVOQUJM RV9HVUVTVF9WSUVXKSAmJiAhQlVJTERGTEFHKEVOQUJMRV9FWFRFTlNJT05TX0NPUkUpCisgICBn dWVzdF92aWV3OjpTbGltV2ViVmlld0JpbmRpbmdzOjpNYXliZUluc3RhbGwoKnJlbmRlcl9mcmFt ZSgpKTsKKy0tLSBhL2Nocm9tZS90ZXN0L0JVSUxELmduCisrKysgYi9jaHJvbWUvdGVzdC9CVUlM RC5nbgorQEAgLTI3MzYsOSArMjczNiw2IEBAIGlmICghaXNfYW5kcm9pZCkgeworICAgICAgICIv L2Nocm9tZS9icm93c2VyL3Jlc291cmNlX2Nvb3JkaW5hdG9yOm1vam9fYmluZGluZ3MiLAorICAg ICAgICIvL2Nocm9tZS9icm93c2VyL3NhZmVfYnJvd3Npbmc6YWR2YW5jZWRfcHJvdGVjdGlvbiIs CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93c2luZzp2ZXJkaWN0X2NhY2hlX21h bmFnZXJfZmFjdG9yeSIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2NyZWVuX2FpOnNjcmVl bl9haV9pbnN0YWxsX3N0YXRlIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zY3JlZW5fYWk6 c2NyZWVuX2FpX3NlcnZpY2Vfcm91dGVyX2ZhY3RvcnkiLAorLSAgICAgICIvL2Nocm9tZS9icm93 c2VyL3NjcmVlbl9haS9wdWJsaWM6dGVzdF9zdXBwb3J0IiwKKyAgICAgICAiLy9jaHJvbWUvYnJv d3Nlci9zZWFyY2giLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NlYXJjaF9lbmdpbmVzIiwK KyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zZWdtZW50YXRpb25fcGxhdGZvcm06dGVzdF91dGls cyIsCitAQCAtMzIyOCw4ICszMjI1LDYgQEAgaWYgKCFpc19hbmRyb2lkKSB7CisgICAgICAgIi8v c2VydmljZXMvcHJlZmVyZW5jZXMvcHVibGljL2NwcCIsCisgICAgICAgIi8vc2VydmljZXMvcHJl ZmVyZW5jZXMvcHVibGljL2NwcC90cmFja2VkIiwKKyAgICAgICAiLy9zZXJ2aWNlcy9wcmVmZXJl bmNlcy90cmFja2VkOmZlYXR1cmVzIiwKKy0gICAgICAiLy9zZXJ2aWNlcy9zY3JlZW5fYWkvcHVi bGljL2NwcDp1dGlsaXRpZXMiLAorLSAgICAgICIvL3NlcnZpY2VzL3NjcmVlbl9haS9wdWJsaWMv bW9qb20iLAorICAgICAgICIvL3NlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9wdWJsaWMvY3BwIiwK KyAgICAgICAiLy9zZXJ2aWNlcy9zdHJpbmdzIiwKKyAgICAgICAiLy9zZXJ2aWNlcy90ZXN0L2Vj aG8vcHVibGljL21vam9tIiwKK0BAIC04NzY5LDcgKzg3NjQsNiBAQCB0ZXN0KCJ1bml0X3Rlc3Rz IikgeworICAgICAjCisgICAgICMgVE9ETyhjcmJ1Zy5jb20vNDE3NTEzMDg4KTogTWF5YmUgbWVy Z2Ugd2l0aCB0aGUgbm9uLWFuZHJvaWQgYGRlcHNgIGRlY2xhcmF0aW9uIGFib3ZlPworICAgICBk ZXBzICs9IFsKKy0gICAgICAiLi4vYnJvd3Nlci9zY3JlZW5fYWk6c2NyZWVuX2FpX2luc3RhbGxf c3RhdGUiLAorICAgICAgICIvL2Nocm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKKyAgICAgICAiLy9j aHJvbWUvYnJvd3Nlci9hcHBzOmljb25fc3RhbmRhcmRpemVyIiwKKyAgICAgICAiLy9jaHJvbWUv YnJvd3Nlci9hcHBzL2FwcF9zZXJ2aWNlIiwKK0BAIC04ODA2LDcgKzg4MDAsNiBAQCB0ZXN0KCJ1 bml0X3Rlc3RzIikgeworICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVfcmVzZXR0ZXI6 ZmFrZV9wcm9maWxlX3Jlc2V0dGVyIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxl X3Jlc2V0dGVyOnVuaXRfdGVzdHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Jlc291cmNl cy9uZXdfdGFiX3BhZ2VfaW5zdGFudDpyZXNvdXJjZXNfZ3JpdCIsCistICAgICAgIi8vY2hyb21l L2Jyb3dzZXIvc2NyZWVuX2FpOnVuaXRfdGVzdHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2Vy L3NlYXJjaC9iYWNrZ3JvdW5kIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFj a2dyb3VuZDpjb25zdGFudHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3NlYXJjaF9lbmdp bmVfY2hvaWNlOnVuaXRfdGVzdHMiLAorLS0tIGEvY2hyb21lL3V0aWxpdHkvQlVJTEQuZ24KKysr KyBiL2Nocm9tZS91dGlsaXR5L0JVSUxELmduCitAQCAtMTQ3LDcgKzE0Nyw2IEBAIHN0YXRpY19s aWJyYXJ5KCJ1dGlsaXR5IikgeworICAgICAgICIvL2NvbXBvbmVudHMvdXNlcl9kYXRhX2ltcG9y dGVyL2NvbnRlbnQiLAorICAgICAgICIvL2NvbXBvbmVudHMvdXNlcl9kYXRhX2ltcG9ydGVyL3V0 aWxpdHk6Ym9va21hcmtzIiwKKyAgICAgICAiLy9zZXJ2aWNlcy9wcm94eV9yZXNvbHZlcjpsaWIi LAorLSAgICAgICIvL3NlcnZpY2VzL3NjcmVlbl9haSIsCisgICAgIF0KKyAgIH0KKyAKKy0tLSBh L2Nocm9tZS91dGlsaXR5L3NlcnZpY2VzLmNjCisrKysgYi9jaHJvbWUvdXRpbGl0eS9zZXJ2aWNl cy5jYworQEAgLTYyLDggKzYyLDYgQEAKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9wcml2YXRlX2Fp L29ha19zZXNzaW9uX3NlcnZpY2Uvb2FrX3Nlc3Npb25fc2VydmljZS5oIiAgLy8gbm9nbmNoZWNr CisgI2luY2x1ZGUgInNlcnZpY2VzL3Byb3h5X3Jlc29sdmVyL3Byb3h5X3Jlc29sdmVyX2ZhY3Rv cnlfaW1wbC5oIiAgLy8gbm9nbmNoZWNrCisgI2luY2x1ZGUgInNlcnZpY2VzL3Byb3h5X3Jlc29s dmVyL3B1YmxpYy9tb2pvbS9wcm94eV9yZXNvbHZlci5tb2pvbS5oIgorLSNpbmNsdWRlICJzZXJ2 aWNlcy9zY3JlZW5fYWkvcHVibGljL21vam9tL3NjcmVlbl9haV9mYWN0b3J5Lm1vam9tLmgiICAv LyBub2duY2hlY2sKKy0jaW5jbHVkZSAic2VydmljZXMvc2NyZWVuX2FpL3NjcmVlbl9haV9zZXJ2 aWNlX2ltcGwuaCIgIC8vIG5vZ25jaGVjaworICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRS T0lEKQorIAorICNpZiBCVUlMREZMQUcoRU5BQkxFX0JST1dTRVJfU1BFRUNIX1NFUlZJQ0UpCitA QCAtMjY2LDEyICsyNjQsNiBAQCBhdXRvIFJ1blNwZWVjaFJlY29nbml0aW9uU2VydmljZSgKKyB9 CisgI2VuZGlmICAvLyAhQlVJTERGTEFHKEVOQUJMRV9CUk9XU0VSX1NQRUVDSF9TRVJWSUNFKQor IAorLSNpZiAhQlVJTERGTEFHKElTX0FORFJPSUQpCistYXV0byBSdW5TY3JlZW5BSVNlcnZpY2VG YWN0b3J5KAorLSAgICBtb2pvOjpQZW5kaW5nUmVjZWl2ZXI8c2NyZWVuX2FpOjptb2pvbTo6U2Ny ZWVuQUlTZXJ2aWNlRmFjdG9yeT4gcmVjZWl2ZXIpIHsKKy0gIHJldHVybiBzdGQ6Om1ha2VfdW5p cXVlPHNjcmVlbl9haTo6U2NyZWVuQUlTZXJ2aWNlPihzdGQ6Om1vdmUocmVjZWl2ZXIpKTsKKy19 CistI2VuZGlmCisgCisgI2lmIChCVUlMREZMQUcoU0FGRV9CUk9XU0lOR19ET1dOTE9BRF9QUk9U RUNUSU9OKSAmJiBcCisgICAgICAhQlVJTERGTEFHKElTX0FORFJPSUQpKSB8fCAgICAgICAgICAg ICAgICAgICAgICBcCitAQCAtNDUxLDcgKzQ0Myw2IEBAIHZvaWQgUmVnaXN0ZXJNYWluVGhyZWFk U2VydmljZXMobW9qbzo6U2UKKyAgIHNlcnZpY2VzLkFkZChSdW5PYWtTZXNzaW9uU2VydmljZSk7 CisgICBzZXJ2aWNlcy5BZGQoUnVuUHJvZmlsZUltcG9ydGVyKTsKKyAgIHNlcnZpY2VzLkFkZChS dW5NaXJyb3JpbmdTZXJ2aWNlKTsKKy0gIHNlcnZpY2VzLkFkZChSdW5TY3JlZW5BSVNlcnZpY2VG YWN0b3J5KTsKKyAjZW5kaWYgIC8vICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKyAKKyAjaWYgQlVJ TERGTEFHKEVOQUJMRV9CUk9XU0VSX1NQRUVDSF9TRVJWSUNFKQorLS0tIGEvY29tcG9uZW50cy9C VUlMRC5nbgorKysrIGIvY29tcG9uZW50cy9CVUlMRC5nbgorQEAgLTYzOSw3ICs2MzksNiBAQCB0 ZXN0KCJjb21wb25lbnRzX3VuaXR0ZXN0cyIpIHsKKyAgICAgICAiLy9jb21wb25lbnRzL29uZV90 aW1lX3Rva2Vucy9jb3JlL2Jyb3dzZXI6dW5pdF90ZXN0cyIsCisgICAgICAgIi8vY29tcG9uZW50 cy9wYWdlX2luZm86dW5pdF90ZXN0cyIsCisgICAgICAgIi8vY29tcG9uZW50cy9wYXNzd29yZF9t YW5hZ2VyL2NvcmUvYnJvd3Nlci9hY3Rvcl9sb2dpbjp1bml0X3Rlc3RzIiwKKy0gICAgICAiLy9j b21wb25lbnRzL3Blcm1pc3Npb25zL3ByZWRpY3Rpb25fc2VydmljZTp1bml0X3Rlc3RzIiwKKyAg ICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveC9wcml2YWN5X3NhbmRib3hfYXR0ZXN0 YXRpb25zOnVuaXRfdGVzdHMiLAorICAgICAgICIvL2NvbXBvbmVudHMvc2FmZXR5X2NoZWNrOnVu aXRfdGVzdHMiLAorICAgICAgICIvL2NvbXBvbmVudHMvc2VjdXJpdHlfaW50ZXJzdGl0aWFscy9j b250ZW50OnVuaXRfdGVzdHMiLAorLS0tIGEvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dz ZXIvYXV0b2ZpbGxfZmllbGQuY2MKKysrKyBiL2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93 c2VyL2F1dG9maWxsX2ZpZWxkLmNjCitAQCAtMjUsNyArMjUsNiBAQAorICNpbmNsdWRlICJjb21w b25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9maWVsZF90eXBlX3V0aWxzLmgiCisgI2luY2x1 ZGUgImNvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2ZpZWxkX3R5cGVzLmgiCisgI2lu Y2x1ZGUgImNvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2hldXJpc3RpY19zb3VyY2Uu aCIKKy0jaW5jbHVkZSAiY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvbWxfbW9kZWwv ZmllbGRfY2xhc3NpZmljYXRpb25fbW9kZWxfaGFuZGxlci5oIgorICNpbmNsdWRlICJjb21wb25l bnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9wcm90by9hcGlfdjEucGIuaCIKKyAjaW5jbHVkZSAi Y29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvcHJvdG8vc2VydmVyLnBiLmgiCisgI2lu Y2x1ZGUgImNvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9jb21tb24vYXV0b2ZpbGxfY29uc3RhbnRz LmgiCistLS0gYS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9mb3VuZGF0aW9ucy9h dXRvZmlsbF9tYW5hZ2VyLmNjCisrKysgYi9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nl ci9mb3VuZGF0aW9ucy9hdXRvZmlsbF9tYW5hZ2VyLmNjCitAQCAtMTM3LDggKzEzNyw2IEBAIHN0 cnVjdCBBdXRvZmlsbE1hbmFnZXI6OkFzeW5jQ29udGV4dCB7CisgCisgICBzdGQ6OnZlY3RvcjxG b3JtRGF0YT4gZm9ybXM7CisgICBzdGQ6OnZlY3RvcjxSZWdleFByZWRpY3Rpb25zPiByZWdleF9w cmVkaWN0aW9uczsKKy0gIHN0ZDo6dmVjdG9yPE1vZGVsUHJlZGljdGlvbnM+IGF1dG9maWxsX3By ZWRpY3Rpb25zOworLSAgc3RkOjp2ZWN0b3I8TW9kZWxQcmVkaWN0aW9ucz4gcGFzc3dvcmRfbWFu YWdlcl9wcmVkaWN0aW9uczsKKyAgIEdlb0lwQ291bnRyeUNvZGUgY291bnRyeV9jb2RlOworICAg TGFuZ3VhZ2VDb2RlIGN1cnJlbnRfcGFnZV9sYW5ndWFnZTsKKyAgIHN0ZDo6dW5pcXVlX3B0cjxC dWZmZXJpbmdMb2dNYW5hZ2VyPiBsb2dfbWFuYWdlcjsKK0BAIC04MzMsMTAgKzgzMSw4IEBAIHZv aWQgQXV0b2ZpbGxNYW5hZ2VyOjpSdW5NbE1vZGVscygKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgICAgICAg IGNhc2UgSGV1cmlzdGljU291cmNlOjprQXV0b2ZpbGxNYWNoaW5lTGVhcm5pbmc6CistICAgICAg ICAgICAgY29udGV4dC5hdXRvZmlsbF9wcmVkaWN0aW9ucyA9IHN0ZDo6bW92ZShtb2RlbF9wcmVk aWN0aW9ucyk7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgSGV1cmlzdGlj U291cmNlOjprUGFzc3dvcmRNYW5hZ2VyTWFjaGluZUxlYXJuaW5nOgorLSAgICAgICAgICAgIGNv bnRleHQucGFzc3dvcmRfbWFuYWdlcl9wcmVkaWN0aW9ucyA9IHN0ZDo6bW92ZShtb2RlbF9wcmVk aWN0aW9ucyk7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgSGV1cmlzdGlj U291cmNlOjprUmVnZXhlczoKKyAgICAgICAgICAgICBOT1RSRUFDSEVEKCk7CitAQCAtMTA0Mywx MiArMTAzOSw2IEBAIHZvaWQgQXV0b2ZpbGxNYW5hZ2VyOjpVcGRhdGVGb3JtQ2FjaGUoCisgCisg ICBhdXRvIGFwcGx5X3ByZWRpY3Rpb25zID0gW10oRm9ybVN0cnVjdHVyZSYgZm9ybV9zdHJ1Y3R1 cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXN5bmNDb250ZXh0JiBj b250ZXh0LCBzaXplX3QgaSkgeworLSAgICBpZiAoIWNvbnRleHQuYXV0b2ZpbGxfcHJlZGljdGlv bnMuZW1wdHkoKSkgeworLSAgICAgIGNvbnRleHQuYXV0b2ZpbGxfcHJlZGljdGlvbnNbaV0uQXBw bHlUbyhmb3JtX3N0cnVjdHVyZS5maWVsZHMoKSk7CistICAgIH0KKy0gICAgaWYgKCFjb250ZXh0 LnBhc3N3b3JkX21hbmFnZXJfcHJlZGljdGlvbnMuZW1wdHkoKSkgeworLSAgICAgIGNvbnRleHQu cGFzc3dvcmRfbWFuYWdlcl9wcmVkaWN0aW9uc1tpXS5BcHBseVRvKGZvcm1fc3RydWN0dXJlLmZp ZWxkcygpKTsKKy0gICAgfQorICAgICBpZiAoIWNvbnRleHQucmVnZXhfcHJlZGljdGlvbnMuZW1w dHkoKSkgeworICAgICAgIGNvbnRleHQucmVnZXhfcHJlZGljdGlvbnNbaV0uQXBwbHlUbyhmb3Jt X3N0cnVjdHVyZS5maWVsZHMoKSk7CisgICAgIH0KK0BAIC0xMTY2LDI2ICsxMTU2LDYgQEAgdm9p ZCBBdXRvZmlsbE1hbmFnZXI6OkxvZ0N1cnJlbnRGaWVsZFR5cAorIAorIHZvaWQgQXV0b2ZpbGxN YW5hZ2VyOjpTdWJzY3JpYmVUb01sTW9kZWxDaGFuZ2VzKAorICAgICBGaWVsZENsYXNzaWZpY2F0 aW9uTW9kZWxIYW5kbGVyJiBoYW5kbGVyKSB7CistICBzd2l0Y2ggKGhhbmRsZXIub3B0aW1pemF0 aW9uX3RhcmdldCgpKSB7CistICAgIGNhc2Ugb3B0aW1pemF0aW9uX2d1aWRlOjpwcm90bzo6T3B0 aW1pemF0aW9uVGFyZ2V0OjoKKy0gICAgICAgIE9QVElNSVpBVElPTl9UQVJHRVRfQVVUT0ZJTExf RklFTERfQ0xBU1NJRklDQVRJT046CistICAgICAgaWYgKCFhdXRvZmlsbF9tb2RlbF9jaGFuZ2Vf c3Vic2NyaXB0aW9uXykgeworLSAgICAgICAgYXV0b2ZpbGxfbW9kZWxfY2hhbmdlX3N1YnNjcmlw dGlvbl8gPQorLSAgICAgICAgICAgIGhhbmRsZXIuUmVnaXN0ZXJNb2RlbENoYW5nZUNhbGxiYWNr KGJhc2U6OkJpbmRSZXBlYXRpbmcoCistICAgICAgICAgICAgICAgICZBdXRvZmlsbE1hbmFnZXI6 OlJlcGFyc2VLbm93bkZvcm1zLCBiYXNlOjpVbnJldGFpbmVkKHRoaXMpKSk7CistICAgICAgfQor LSAgICAgIGJyZWFrOworLSAgICBjYXNlIG9wdGltaXphdGlvbl9ndWlkZTo6cHJvdG86Ok9wdGlt aXphdGlvblRhcmdldDo6CistICAgICAgICBPUFRJTUlaQVRJT05fVEFSR0VUX1BBU1NXT1JEX01B TkFHRVJfRk9STV9DTEFTU0lGSUNBVElPTjoKKy0gICAgICBpZiAoIXBhc3N3b3JkX21hbmFnZXJf bW9kZWxfY2hhbmdlX3N1YnNjcmlwdGlvbl8pIHsKKy0gICAgICAgIHBhc3N3b3JkX21hbmFnZXJf bW9kZWxfY2hhbmdlX3N1YnNjcmlwdGlvbl8gPQorLSAgICAgICAgICAgIGhhbmRsZXIuUmVnaXN0 ZXJNb2RlbENoYW5nZUNhbGxiYWNrKGJhc2U6OkJpbmRSZXBlYXRpbmcoCistICAgICAgICAgICAg ICAgICZBdXRvZmlsbE1hbmFnZXI6OlJlcGFyc2VLbm93bkZvcm1zLCBiYXNlOjpVbnJldGFpbmVk KHRoaXMpKSk7CistICAgICAgfQorLSAgICAgIGJyZWFrOworLSAgICBkZWZhdWx0OgorLSAgICAg IE5PVFJFQUNIRUQoKTsKKy0gIH0KKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIGF1dG9maWxsCist LS0gYS9jb21wb25lbnRzL3BhZ2VfY29udGVudF9hbm5vdGF0aW9ucy9jb250ZW50L0JVSUxELmdu CisrKysgYi9jb21wb25lbnRzL3BhZ2VfY29udGVudF9hbm5vdGF0aW9ucy9jb250ZW50L0JVSUxE LmduCitAQCAtNTcsOCArNTcsNiBAQCBzb3VyY2Vfc2V0KCJwYWdlX2VtYmVkZGluZ3MiKSB7Cisg ICBzb3VyY2VzID0gWworICAgICAiZW1iZWRkaW5nc19jYW5kaWRhdGVfZ2VuZXJhdG9yLmNjIiwK KyAgICAgImVtYmVkZGluZ3NfY2FuZGlkYXRlX2dlbmVyYXRvci5oIiwKKy0gICAgInBhZ2VfY2F0 ZWdvcnlfY2xhc3NpZmllcl9icmlkZ2VfaW1wbC5jYyIsCistICAgICJwYWdlX2NhdGVnb3J5X2Ns YXNzaWZpZXJfYnJpZGdlX2ltcGwuaCIsCisgICAgICJwYWdlX2VtYmVkZGluZ3Nfc2VydmljZS5j YyIsCisgICAgICJwYWdlX2VtYmVkZGluZ3Nfc2VydmljZS5oIiwKKyAgIF0KKy0tLSBhL2NvbXBv bmVudHMvcGRmL3JlbmRlcmVyL3BkZl92aWV3X3dlYl9wbHVnaW5fY2xpZW50LmgKKysrKyBiL2Nv bXBvbmVudHMvcGRmL3JlbmRlcmVyL3BkZl92aWV3X3dlYl9wbHVnaW5fY2xpZW50LmgKK0BAIC0x Miw3ICsxMiw2IEBACisgI2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCisgI2luY2x1 ZGUgIm1vam8vcHVibGljL2NwcC9iaW5kaW5ncy9yZW1vdGUuaCIKKyAjaW5jbHVkZSAicGRmL3Bk Zl92aWV3X3dlYl9wbHVnaW4uaCIKKy0jaW5jbHVkZSAic2VydmljZXMvc2NyZWVuX2FpL3B1Ymxp Yy9tb2pvbS9zY3JlZW5fYWlfc2VydmljZS5tb2pvbS5oIgorIAorIG5hbWVzcGFjZSBibGluayB7 CisgY2xhc3MgV2ViTG9jYWxGcmFtZTsKK0BAIC0xMTAsOCArMTA5LDYgQEAgY2xhc3MgUGRmVmll d1dlYlBsdWdpbkNsaWVudCA6IHB1YmxpYyBjaAorIAorICAgcmF3X3B0cjxibGluazo6V2ViUGx1 Z2luQ29udGFpbmVyPiBwbHVnaW5fY29udGFpbmVyXzsKKyAKKy0gIG1vam86OlJlbW90ZTxzY3Jl ZW5fYWk6Om1vam9tOjpTY3JlZW5BSUFubm90YXRvcj4gc2NyZWVuX2FpX2Fubm90YXRvcl87Cist ICBiYXNlOjpSZXBlYXRpbmdDbG9zdXJlIG9jcl9kaXNjb25uZWN0X2NhbGxiYWNrXzsKKyAKKyAg IGJhc2U6OldlYWtQdHJGYWN0b3J5PFBkZlZpZXdXZWJQbHVnaW5DbGllbnQ+IHdlYWtfZmFjdG9y eV97dGhpc307CisgfTsKKy0tLSBhL3NlcnZpY2VzL3NjcmVlbl9haS9idWlsZGZsYWdzL2ZlYXR1 cmVzLmduaQorKysrIGIvc2VydmljZXMvc2NyZWVuX2FpL2J1aWxkZmxhZ3MvZmVhdHVyZXMuZ25p CitAQCAtNiwxNCArNiwxMyBAQCBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMvc2Fu aXRpCisgCisgZGVjbGFyZV9hcmdzKCkgeworICAgIyBTY3JlZW4gQUkgc2VydmljZSBpcyBvbmx5 IHN1cHBvcnRlZCBvbiBkZXNrdG9wIHBsYXRmb3Jtcy4KKy0gIGVuYWJsZV9zY3JlZW5fYWlfc2Vy dmljZSA9IGlzX2xpbnV4IHx8IGlzX21hYyB8fCBpc19jaHJvbWVvcyB8fCBpc193aW4KKysgIGVu YWJsZV9zY3JlZW5fYWlfc2VydmljZSA9IGZhbHNlCisgCisgICAjIFNjcmVlbiBBSSBsaWJyYXJ5 IGlzIG5vdCBhdmFpbGFibGUgZm9yIGJyb3dzZXIgdGVzdHMgb24gQ2hyb21lT1MuIFRhc3QgdGVz dHMKKyAgICMgY292ZXIgbGlicmFyeSdzIE9DUiBmdW5jdGlvbmFsaXR5IG9uIENocm9tZU9TLgor ICAgZW5hYmxlX3NjcmVlbl9haV9icm93c2VydGVzdHMgPQorLSAgICAgIGlzX2xpbnV4IHx8IChp c19tYWMgJiYgKHRhcmdldF9jcHUgPT0gImFybTY0IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiKSkg fHwKKy0gICAgICAoaXNfd2luICYmICh0YXJnZXRfY3B1ID09ICJ4NjQiIHx8IHRhcmdldF9jcHUg PT0gIng4NiIpKQorKyAgICAgIGZhbHNlCisgCisgICAjIFNjcmVlbiBBSSBsaWJyYXJ5IGlzIG5v dCBhdmFpbGFibGUgZm9yIE1TQU4gYW5kIFVCU0FOLgorLSAgdXNlX2Zha2Vfc2NyZWVuX2FpID0g aXNfbXNhbiB8fCBpc191YnNhbiB8fCBpc191YnNhbl92cHRyIHx8IGlzX3Vic2FuX3NlY3VyaXR5 CisrICB1c2VfZmFrZV9zY3JlZW5fYWkgPSBmYWxzZQorIH0K