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/chromium] epel9: Fix FTBFS (patch from ungoogled chromium) Date: Thu, 24 Sep 2026 13:52:12 GMT Message-ID: <179025793223.1.16497692175637010545.rpms-chromium-096978acb1c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9 X-Git-Rev: 096978acb1c3d82d1049e00d4dbf9f4457e6c817 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDkKQ29tbWl0IDogMDk2OTc4YWNiMWMzZDgyZDEwNDllMDBkNGRiZjlmNDQ1N2U2 YzgxNwpBdXRob3IgOiBUaGFuIE5nbyA8dGhhbkByZWRoYXQuY29tPgpEYXRlICAgOiAyMDI2LTA5 LTIzVDIwOjE3OjQzKzAyOjAwClN0YXRzICA6ICs5OTQvLTE1MyBpbiAzIGZpbGUocykKVVJMICAg IDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9jaHJvbWl1bS9jLzA5Njk3OGFj YjFjM2Q4MmQxMDQ5ZTAwZDRkYmY5ZjQ0NTdlNmM4MTc/YnJhbmNoPWVwZWw5CgpMb2c6CkZpeCBG VEJGUyAocGF0Y2ggZnJvbSB1bmdvb2dsZWQgY2hyb21pdW0pCgotLS0KZGlmZiAtLWdpdCBhL2No cm9taXVtLTE1NC1mdGJmcy1jcnViaXQucGF0Y2ggYi9jaHJvbWl1bS0xNTQtZnRiZnMtY3J1Yml0 LnBhdGNoCmluZGV4IGI0MTM3ZjUuLmJjZGVkZjMgMTAwNjQ0Ci0tLSBhL2Nocm9taXVtLTE1NC1m dGJmcy1jcnViaXQucGF0Y2gKKysrIGIvY2hyb21pdW0tMTU0LWZ0YmZzLWNydWJpdC5wYXRjaApA QCAtMSwxNjkgKzEsNzExIEBACi1jb21taXQgNDkzZTZjMzkxMWUzM2NjMzU2ODU2YmFmYmZmYzZj Zjk1NTIxMjY2YgotQXV0aG9yOiBEb21pbmlrIFLDtnR0c2NoZXMgPGRyb3R0QGNocm9taXVtLm9y Zz4KLURhdGU6ICAgVGh1IEF1ZyAxMyAwODo0MjoxNSAyMDI2IC0wNzAwCit1bmdvb2dsZSBjaHJv bWl1bSBwYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29mdHdhcmUvdW5n b29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgogCi0gICAgTWlncmF0ZSBPcGVuVHlwZSBmb3JtYXQg Y2hlY2sgYmluZGluZ3MgdG8gQ3J1Yml0Ci0gICAgCi0gICAgV2UgY2FuIHJlbW92ZSB0aGUgQm94 PD4gd3JhcHBlZCB0eXBpbmcgb2YgRm9udEZvcm1hdEluZm8gYWxvbmcgdGhlIHdheS4KLSAgICAK LSAgICBERVBTIGNoZWNrcyBmb3IgdGhlIGdlbmVyYXRlZCBvdXRwdXQgaGVhZGVyIGZpbGVzIHJl cXVpcmVzIHVzIHRvIG1vdmUKLSAgICB0aGUgZm9ybWF0X2NoZWNrIHRhcmdldCBpbnRvIHRoZSBm b250cyBzdWJkaXJlY3RvcnkuIFRoaXMgaXMgYSBnb29kCi0gICAgb3Bwb3J0dW5pdHkgdG8gbW92 ZSBtb3JlIGZvbnQgc3BlY2lmaWMgYnVpbGQgcnVsZXMgdG8gdGhlIGZvbnQgc3ViZGlyIGluCi0g ICAgdGhlIGZ1dHVyZSBhbmQgcmVkdWNlIHRoZSB3ZWlnaHQgb2YgdGhlIHBsYXRmb3JtL0JVSUxE LmduIGJ1aWxkIGRpci4KLSAgICAKLSAgICBFeGVyY2lzZSBpbiB1c2luZyB0aGUgQ3J1Yml0IGJp bmRpbmdzIG1lY2hhbmlzbS4KLSAgICAKLSAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4KLSAgICAK LSAgICBDaGFuZ2UtSWQ6IEk5NDQwYzcyODViYjcwN2IzMjViODBlZTA3NGRlNTFlNzE0ZWU0ODg0 Ci0gICAgUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5j b20vYy9jaHJvbWl1bS9zcmMvKy84MjQ0MjQ4Ci0gICAgUmV2aWV3ZWQtYnk6IMWBdWthc3ogQW5m b3Jvd2ljeiA8bHVrYXN6YUBjaHJvbWl1bS5vcmc+Ci0gICAgQ29tbWl0LVF1ZXVlOiBEb21pbmlr IFLDtnR0c2NoZXMgPGRyb3R0QGNocm9taXVtLm9yZz4KLSAgICBDci1Db21taXQtUG9zaXRpb246 IHJlZnMvaGVhZHMvbWFpbkB7IzE2Nzg4NTh9Ci0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL0JVSUxELmduCi1pbmRleCBkNWU4MWEzZjA3YTNjLi42YTVkMjc1NDYwMTIy IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQu Z24KLSsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCi1A QCAtMTg2LDE4ICsxODYsNiBAQCBncm91cCgibWFrZV9wbGF0Zm9ybV9nZW5lcmF0ZWQiKSB7Cist LS0gYS9jb21wb25lbnRzL2Nib3IvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvY2Jvci9CVUlM RC5nbgorQEAgLTEyLDcgKzEyLDcgQEAgYnVpbGRmbGFnX2hlYWRlcigiYnVpbGRmbGFncyIpIHsK KyAgICMgVE9ETyhjcmJ1Zy5jb20vNTM1NjgyMzM1KTogUmVtb3ZlIGBVU0VfQ0JPUl9SVVNUYCBi dWlsZGZsYWcgZW50aXJlbHksCisgICAjIHVuY29uZGl0aW9uYWxseSBlbmFibGUgUnVzdCBDQk9S IHBhcnNlciwgYW5kIGRyb3AgYGlzX2Nyb25ldF9idWlsZGAgY2hlY2sKKyAgICMgb25jZSBDcm9u ZXQgc3VwcG9ydHMgQ3J1Yml0IGRlcGVuZGVuY2llcy4KKy0gIGZsYWdzID0gWyAiVVNFX0NCT1Jf UlVTVD0hJGlzX2Nyb25ldF9idWlsZCIgXQorKyAgZmxhZ3MgPSBbICJVU0VfQ0JPUl9SVVNUPSRl bmFibGVfY3BwX2FwaV9mcm9tX3J1c3QiIF0KKyB9CisgCisgY29tcG9uZW50KCJjYm9yIikgewor QEAgLTM1LDcgKzM1LDcgQEAgY29tcG9uZW50KCJjYm9yIikgeworICAgICAiLy9iYXNlIiwKKyAg IF0KKyAKKy0gIGlmICghaXNfY3JvbmV0X2J1aWxkKSB7CisrICBpZiAoZW5hYmxlX2NwcF9hcGlf ZnJvbV9ydXN0KSB7CisgICAgIHB1YmxpY19kZXBzID0gWworICAgICAgICIvL2J1aWxkL3J1c3Qv Y3J1Yml0IiwKKyAgICAgICAiLy9jb21wb25lbnRzL2Nib3IvcnVzdDpjYm9yX3J1c3RfYmluZGlu Z3MiLAorQEAgLTYyLDcgKzYyLDcgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIpIHsKKyAgICAg Ii8vdGVzdGluZy9ndGVzdCIsCisgICAgICIvL3RoaXJkX3BhcnR5L2Z1enp0ZXN0IiwKKyAgIF0K Ky0gIGlmICghaXNfY3JvbmV0X2J1aWxkKSB7CisrICBpZiAoZW5hYmxlX2NwcF9hcGlfZnJvbV9y dXN0KSB7CisgICAgIGRlcHMgKz0gWyAiLy9jb21wb25lbnRzL2Nib3IvcnVzdDpjYm9yX3J1c3Rf dW5pdHRlc3RzIiBdCisgICB9CisgCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNrYWdlL0JVSUxE LmduCisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL0JVSUxELmduCitAQCAtNDAsNyArNDAs NiBAQCBzdGF0aWNfbGlicmFyeSgid2ViX3BhY2thZ2UiKSB7CisgICAgICIvL2Jhc2UiLAorICAg ICAiLy9jb21wb25lbnRzL2Jhc2UzMiIsCisgICAgICIvL2NvbXBvbmVudHMvY2JvciIsCistICAg ICIvL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Q6c2lnbmVk X3dlYl9idW5kbGVzX3J1c3RfYmluZGluZ3MiLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmlu ZGluZ3MiLAorICAgICAiLy9uZXQiLAorICAgICAiLy9zZXJ2aWNlcy9uZXR3b3JrL3B1YmxpYy9t b2pvbSIsCitAQCAtNzAsNyArNjksNiBAQCBzb3VyY2Vfc2V0KCJtb2pvbV9tYXBwZWRfdHlwZXMi KSB7CisgCisgICBkZXBzID0gWworICAgICAiLy9iYXNlIiwKKy0gICAgIi8vY29tcG9uZW50cy93 ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdDpzaWduZWRfd2ViX2J1bmRsZXNfcnVz dF9iaW5kaW5ncyIsCisgICAgICIvL2NyeXB0byIsCisgICAgICIvL21vam8vcHVibGljL2NwcC9i aW5kaW5ncyIsCiAgICBdCitAQCAtOTgsNyArOTYsNiBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3Rz IikgeworICAgICAiOndlYl9wYWNrYWdlIiwKKyAgICAgIi8vYmFzZS90ZXN0OnRlc3Rfc3VwcG9y dCIsCisgICAgICIvL2NvbXBvbmVudHMvY2JvciIsCistICAgICIvL2NvbXBvbmVudHMvd2ViX3Bh Y2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Q6c2lnbmVkX3dlYl9idW5kbGVzX3J1c3RfdW5p dHRlc3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy93ZWJfcGFja2FnZS90ZXN0X3N1cHBvcnQiLAor ICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmluZGluZ3MiLAorICAgICAiLy9tb2pvL3B1YmxpYy9j cHAvdGVzdF9zdXBwb3J0OnRlc3RfdXRpbHMiLAorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2Fn ZS9zaWduZWRfd2ViX2J1bmRsZXMvZWNkc2FfcDI1Nl9zaGEyNTZfc2lnbmF0dXJlLmNjCisrKysg Yi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lY2RzYV9wMjU2X3No YTI1Nl9zaWduYXR1cmUuY2MKK0BAIC05LDcgKzksOCBAQAorICNpbmNsdWRlICJiYXNlL3N0cmlu Z3Mvc3RyaW5ncHJpbnRmLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWQuaCIKKyAj aW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWNkc2Ff cDI1Nl9wdWJsaWNfa2V5LmgiCistI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2ln bmVkX3dlYl9idW5kbGVzL3J1c3Qvc2lnbmVkX3dlYl9idW5kbGVzX3J1c3QuaCIKKysjaW5jbHVk ZSAiY3J5cHRvL2tleXBhaXIuaCIKKysjaW5jbHVkZSAiY3J5cHRvL3NpZ24uaCIKKyAKKyBuYW1l c3BhY2Ugd2ViX3BhY2thZ2UgeworIAorQEAgLTUwLDggKzUxLDkgQEAgRWNkc2FQMjU2U0hBMjU2 U2lnbmF0dXJlOjpFY2RzYVAyNTZTSEEyNQorIFtbbm9kaXNjYXJkXV0gYm9vbCBFY2RzYVAyNTZT SEEyNTZTaWduYXR1cmU6OlZlcmlmeSgKKyAgICAgYmFzZTo6c3Bhbjxjb25zdCB1aW50OF90PiBt ZXNzYWdlLAorICAgICBjb25zdCBFY2RzYVAyNTZQdWJsaWNLZXkmIHB1YmxpY19rZXkpIGNvbnN0 IHsKKy0gIHJldHVybiBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OnZlcmlmeV9lY2RzYV9wMjU2 X3NpZ25hdHVyZSgKKy0gICAgICBwdWJsaWNfa2V5LmJ5dGVzKCksIGJ5dGVzKCksIG1lc3NhZ2Up OworKyAgYXV0byBrZXkgPSBjcnlwdG86OmtleXBhaXI6OlB1YmxpY0tleTo6RnJvbUVjUDI1NlBv aW50KHB1YmxpY19rZXkuYnl0ZXMoKSk7CisrICByZXR1cm4gY3J5cHRvOjpzaWduOjpWZXJpZnko Y3J5cHRvOjpzaWduOjpFQ0RTQV9TSEEyNTYsICprZXksIG1lc3NhZ2UsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnl0ZXMoKSk7CiAgfQogIAotLXJ1c3Rfc3RhdGljX2xpYnJhcnko ImZvbnRfZm9ybWF0X2NoZWNrIikgewotLSAgYWxsb3dfdW5zYWZlID0gdHJ1ZSAgIyBOZWVkZWQg Zm9yIEZGSSB0aGF0IHVuZGVycGlucyB0aGUgYGN4eGAgY3JhdGUuCi0tICBjcmF0ZV9yb290ID0g ImZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKLS0gIHNvdXJjZXMgPSBbIGNyYXRlX3Jv b3QgXQotLSAgY3h4X2JpbmRpbmdzID0gWyBjcmF0ZV9yb290IF0KLS0gIGRlcHMgPSBbCi0tICAg ICIvL3RoaXJkX3BhcnR5L3J1c3QvZm9udF90eXBlcy92MF8xMjpsaWIiLAotLSAgICAiLy90aGly ZF9wYXJ0eS9ydXN0L3JlYWRfZm9udHMvdjBfNDE6bGliIiwKLS0gICAgIi8vdGhpcmRfcGFydHkv cnVzdC9za3JpZmEvdjBfNDQ6bGliIiwKLS0gIF0KKyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2th Z2UKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VkMjU1 MTlfc2lnbmF0dXJlLmNjCisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJf YnVuZGxlcy9lZDI1NTE5X3NpZ25hdHVyZS5jYworQEAgLTcsNyArNyw2IEBACisgI2luY2x1ZGUg PGFsZ29yaXRobT4KKyAKKyAjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ3ByaW50Zi5oIgor LSNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0 L3NpZ25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jvcmlu Z3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL2N1cnZlMjU1MTkuaCIKKyAKKyBuYW1lc3BhY2Ugd2Vi X3BhY2thZ2UgeworQEAgLTQzLDggKzQyLDExIEBAIEVkMjU1MTlTaWduYXR1cmU6OkVkMjU1MTlT aWduYXR1cmUoc3RkOjoKKyBbW25vZGlzY2FyZF1dIGJvb2wgRWQyNTUxOVNpZ25hdHVyZTo6VmVy aWZ5KAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG1lc3NhZ2UsCisgICAgIGNvbnN0 IEVkMjU1MTlQdWJsaWNLZXkmIHB1YmxpY19rZXkpIGNvbnN0IHsKKy0gIHJldHVybiBzaWduZWRf d2ViX2J1bmRsZXM6OnJ1c3Q6OnZlcmlmeV9lZDI1NTE5X3NpZ25hdHVyZShwdWJsaWNfa2V5LmJ5 dGVzKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnl0ZXMoKSwgbWVzc2FnZSk7CisrICBjb25zdCBzdGQ6OmFycmF5PHVpbnQ4 X3QsIEVEMjU1MTlfUFVCTElDX0tFWV9MRU4+JiBwdWJsaWNfa2V5X2J5dGVzID0KKysgICAgICBw dWJsaWNfa2V5LmJ5dGVzKCk7CisrICBjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIEVEMjU1MTlf U0lHTkFUVVJFX0xFTj4mIHNpZ25hdHVyZV9ieXRlcyA9IGJ5dGVzKCk7CisrICByZXR1cm4gRUQy NTUxOV92ZXJpZnkobWVzc2FnZS5kYXRhKCksIG1lc3NhZ2Uuc2l6ZSgpLCBzaWduYXR1cmVfYnl0 ZXMuZGF0YSgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY19rZXlfYnl0ZXMuZGF0 YSgpKTsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIHdlYl9wYWNrYWdlCistLS0gYS9jb21wb25l bnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2Vy LmNjCisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRl Z3JpdHlfYmxvY2tfcGFyc2VyLmNjCitAQCAtNCwxNyArNCwxOSBAQAorIAorICNpbmNsdWRlICJj b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tf cGFyc2VyLmgiCisgCisrI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8c3RyaW5nPgor LSNpbmNsdWRlIDxzdHJpbmdfdmlldz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorLSNpbmNsdWRl ICJiYXNlL2NoZWNrLmgiCistI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFuLmgiCisrI2lu Y2x1ZGUgImJhc2UvY29udGFpbmVycy9tYXBfdXRpbC5oIgorICNpbmNsdWRlICJiYXNlL2Z1bmN0 aW9uYWwvYmluZC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5ncHJpbnRmLmgiCisr I2luY2x1ZGUgImJhc2Uvc3RyaW5ncy90b19zdHJpbmcuaCIKKyAjaW5jbHVkZSAiYmFzZS90eXBl cy9leHBlY3RlZC5oIgorICNpbmNsdWRlICJiYXNlL3R5cGVzL2V4cGVjdGVkX21hY3Jvcy5oIgor ICNpbmNsdWRlICJjb21wb25lbnRzL2Nib3IvcmVhZGVyLmgiCisrI2luY2x1ZGUgImNvbXBvbmVu dHMvY2Jvci93cml0ZXIuaCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9tb2pv bS93ZWJfYnVuZGxlX3BhcnNlci5tb2pvbS1mb3J3YXJkLmgiCisgI2luY2x1ZGUgImNvbXBvbmVu dHMvd2ViX3BhY2thZ2UvbW9qb20vd2ViX2J1bmRsZV9wYXJzZXIubW9qb20uaCIKKyAjaW5jbHVk ZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvY29uc3RhbnRzLmgi CisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2Vj ZHNhX3AyNTZfcHVibGljX2tleS5oIgorQEAgLTIyLDU2ICsyNCwxMSBAQAorICNpbmNsdWRlICJj b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lZDI1NTE5X3B1YmxpY19r ZXkuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRs ZXMvZWQyNTUxOV9zaWduYXR1cmUuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2Fn ZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX2F0dHJpYnV0ZXMuaCIKKy0jaW5j bHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdC9zaWdu ZWRfd2ViX2J1bmRsZXNfcnVzdC5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdl L3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9pZC5oIgorICNpbmNsdWRlICJj b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy90eXBlcy5oIgorIAorIG5h bWVzcGFjZSB3ZWJfcGFja2FnZSB7CisgCistbmFtZXNwYWNlIHsKKy0KKy11c2luZyBTaWduYXR1 cmVUeXBlID0gc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpTaWduYXR1cmVUeXBlOjpUYWc7Cist dXNpbmcgc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpwYXJzZV9pbnRlZ3JpdHlfYmxvY2s7Cist CistYmFzZTo6ZXhwZWN0ZWQ8bW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrU2lnbmF0dXJlU3Rh Y2tFbnRyeVB0ciwgc3RkOjpzdHJpbmc+CistQ3JlYXRlU2lnbmF0dXJlU3RhY2tFbnRyeSgKKy0g ICAgY29uc3Qgc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpTaWduYXR1cmVTdGFja0VudHJ5JiBl bnRyeSkgeworLSAgYXV0byBwYXJzZWRfc2lnID0gbW9qb206OkJ1bmRsZUludGVncml0eUJsb2Nr U2lnbmF0dXJlU3RhY2tFbnRyeTo6TmV3KCk7CistCistICBzd2l0Y2ggKGVudHJ5LnNpZ25hdHVy ZV90eXBlLnRhZykgeworLSAgICBjYXNlIFNpZ25hdHVyZVR5cGU6OkVkMjU1MTk6IHsKKy0gICAg ICBBU1NJR05fT1JfUkVUVVJOKGF1dG8gcHVibGljX2tleSwKKy0gICAgICAgICAgICAgICAgICAg ICAgIEVkMjU1MTlQdWJsaWNLZXk6OkNyZWF0ZShlbnRyeS5wdWJsaWNfa2V5LnRvX3NwYW4oKSkp OworLSAgICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBzaWduYXR1cmUsCistICAgICAgICAgICAg ICAgICAgICAgICBFZDI1NTE5U2lnbmF0dXJlOjpDcmVhdGUoZW50cnkuc2lnbmF0dXJlLnRvX3Nw YW4oKSkpOworLSAgICAgIHBhcnNlZF9zaWctPnNpZ25hdHVyZV9pbmZvID0gbW9qb206OlNpZ25h dHVyZUluZm86Ok5ld0VkMjU1MTkoCistICAgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvRWQy NTUxOTo6TmV3KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOworLSAgICAgIGJyZWFrOworLSAgICB9 CistICAgIGNhc2UgU2lnbmF0dXJlVHlwZTo6RWNkc2FQMjU2U0hBMjU2OiB7CistICAgICAgQVNT SUdOX09SX1JFVFVSTihhdXRvIHB1YmxpY19rZXksCistICAgICAgICAgICAgICAgICAgICAgICBF Y2RzYVAyNTZQdWJsaWNLZXk6OkNyZWF0ZShlbnRyeS5wdWJsaWNfa2V5LnRvX3NwYW4oKSkpOwor LSAgICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBzaWduYXR1cmUsIEVjZHNhUDI1NlNIQTI1NlNp Z25hdHVyZTo6Q3JlYXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbnRyeS5zaWduYXR1cmUudG9fc3BhbigpKSk7CistICAgICAgcGFyc2VkX3NpZy0+c2ln bmF0dXJlX2luZm8gPSBtb2pvbTo6U2lnbmF0dXJlSW5mbzo6TmV3RWNkc2FQMjU2U2hhMjU2KAor LSAgICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mb0VjZHNhUDI1NlNIQTI1Njo6TmV3KHB1Ymxp Y19rZXksIHNpZ25hdHVyZSkpOworLSAgICAgIGJyZWFrOworLSAgICB9CistICAgIGNhc2UgU2ln bmF0dXJlVHlwZTo6VW5rbm93bjogeworLSAgICAgIHBhcnNlZF9zaWctPnNpZ25hdHVyZV9pbmZv ID0KKy0gICAgICAgICAgbW9qb206OlNpZ25hdHVyZUluZm86Ok5ld1Vua25vd24obW9qb206OlNp Z25hdHVyZUluZm9Vbmtub3duOjpOZXcoKSk7CistICAgICAgYnJlYWs7CistICAgIH0KKy0gIH0K Ky0KKy0gIHBhcnNlZF9zaWctPmF0dHJpYnV0ZXNfY2JvciA9CistICAgICAgQmluYXJ5RGF0YShl bnRyeS5hdHRyaWJ1dGVzX2Nib3IuYmVnaW4oKSwgZW50cnkuYXR0cmlidXRlc19jYm9yLmVuZCgp KTsKKy0KKy0gIHJldHVybiBwYXJzZWRfc2lnOwogLX0KIC0KKy19ICAvLyBuYW1lc3BhY2UKKy0K KyBJbnRlZ3JpdHlCbG9ja1BhcnNlcjo6SW50ZWdyaXR5QmxvY2tQYXJzZXIoCisgICAgIG1vam9t OjpCdW5kbGVEYXRhU291cmNlJiBkYXRhX3NvdXJjZSwKKyAgICAgV2ViQnVuZGxlUGFyc2VyOjpQ YXJzZUludGVncml0eUJsb2NrQ2FsbGJhY2sgY2FsbGJhY2spCitAQCAtMTAzLDM3ICs2MCwxMDMg QEAgdm9pZCBJbnRlZ3JpdHlCbG9ja1BhcnNlcjo6T25JbnRlZ3JpdHlCbAorICAgICBSdW5FcnJv ckNhbGxiYWNrKCJFcnJvciByZWFkaW5nIHRoZSBpbnRlZ3JpdHkgYmxvY2suIik7CisgICAgIHJl dHVybjsKKyAgIH0KKysgIC8vIFRoaXMgc3RydWN0dXJlIGlzIGJ1aWx0IGR1cmluZyBwYXJzaW5n IGFuZCByZXR1cm5lZCBieSB0aGUgZmluYWwgY2FsbGJhY2sKKysgIG1vam9tOjpCdW5kbGVJbnRl Z3JpdHlCbG9ja1B0ciBpbnRlZ3JpdHlfYmxvY2sgPQorKyAgICAgIG1vam9tOjpCdW5kbGVJbnRl Z3JpdHlCbG9jazo6TmV3KCk7CisrCisrICBzaXplX3QgY29uc3VtZWRfYnl0ZXMgPSAwOworKyAg Y2Jvcjo6UmVhZGVyOjpEZWNvZGVyRXJyb3IgZXJyb3I7CisrICBjYm9yOjpSZWFkZXI6OkNvbmZp ZyBjb25maWc7CisrICBjb25maWcubnVtX2J5dGVzX2NvbnN1bWVkID0gJmNvbnN1bWVkX2J5dGVz OworKyAgY29uZmlnLmVycm9yX2NvZGVfb3V0ID0gJmVycm9yOworKworKyAgLy8gV2hlbiBjb25m aWcgYGJ5dGVzX2NvbnN1bWVkYCBhcmUgYXNzaWduZWQgdGhlIENCT1IgcGFyc2VyIHJlYWRzIG9u bHkgdG8gdGhlCisrICAvLyBlbmQgb2YgYSBzdHJ1Y3R1cmUuIEl0IHBhcnNlcyBvbmx5IEludGVn cml0eSBCbG9jayBldmVuIGlmIFdlYiBCdW5kbGUgcGFydAorKyAgLy8gc3RhcnRzIGp1c3QgYWZ0 ZXIuCisrICBzdGQ6Om9wdGlvbmFsPGNib3I6OlZhbHVlPiB2YWx1ZSA9IGNib3I6OlJlYWRlcjo6 UmVhZCgqZGF0YSwgY29uZmlnKTsKKysgIGlmICghdmFsdWUpIHsKKysgICAgUnVuRXJyb3JDYWxs YmFjaygiRXJyb3IgcGFyc2luZyBpbnRlZ3JpdHkgYmxvY2sgYXMgQ0JPUjogIiArCisrICAgICAg ICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcoY2Jvcjo6UmVhZGVyOjpFcnJvckNvZGVUb1N0cmlu ZyhlcnJvcikpKTsKKysgICAgcmV0dXJuOworKyAgfQorKyAgaW50ZWdyaXR5X2Jsb2NrLT5zaXpl ID0gY29uc3VtZWRfYnl0ZXM7CisrCisrICBpZiAoIXZhbHVlLT5pc19hcnJheSgpKSB7CisrICAg IFJ1bkVycm9yQ2FsbGJhY2soIkludGVncml0eSBibG9jayBpcyBub3QgYSBDQk9SIGFycmF5LiIp OworKyAgICByZXR1cm47CisrICB9CisgCistICBjb25zdCBhdXRvIHBhcnNlX3JlcyA9IHBhcnNl X2ludGVncml0eV9ibG9jaygqZGF0YSk7CistICBpZiAoIXBhcnNlX3Jlcy5oYXNfdmFsdWUoKSkg eworLSAgICBjb25zdCBhdXRvJiBlcnJvciA9IHBhcnNlX3Jlcy5lcnJvcigpOworLSAgICBSdW5F cnJvckNhbGxiYWNrKHN0ZDo6c3RyaW5nKGVycm9yLm1lc3NhZ2UuYXNfc3RyKCkpLAorLSAgICAg ICAgICAgICAgICAgICAgIGVycm9yLmlzX3ZlcnNpb25fZXJyb3IKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgPyBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGU6OmtWZXJzaW9uRXJyb3IKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgOiBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGU6OmtG b3JtYXRFcnJvcik7CisrICBjb25zdCBjYm9yOjpWYWx1ZTo6QXJyYXlWYWx1ZSYgdG9wX2FycmF5 ID0gdmFsdWUtPkdldEFycmF5KCk7CisrICBpZiAodG9wX2FycmF5LnNpemUoKSAhPSBrSW50ZWdy aXR5QmxvY2tWMlRvcExldmVsQXJyYXlMZW5ndGgpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjayhi YXNlOjpTdHJpbmdQcmludGYoCisrICAgICAgICAiSW52YWxpZCBpbnRlZ3JpdHkgYmxvY2sgYXJy YXkgbGVuZ3RoOiBleHBlY3RlZCAldSwgZ290ICV6dS4iLAorKyAgICAgICAga0ludGVncml0eUJs b2NrVjJUb3BMZXZlbEFycmF5TGVuZ3RoLCB0b3BfYXJyYXkuc2l6ZSgpKSk7CisgICAgIHJldHVy bjsKKyAgIH0KKyAKKy0gIGNvbnN0IGF1dG8mIHBhcnNlZF9pYiA9ICpwYXJzZV9yZXM7CistICBh dXRvIGludGVncml0eV9ibG9jayA9IG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9jazo6TmV3KCk7 CistICBpbnRlZ3JpdHlfYmxvY2stPnNpemUgPSBwYXJzZWRfaWIuc2l6ZTsKKy0KKy0gIGNvbnN0 IHN0ZDo6c3RyaW5nX3ZpZXcgd2ViX2J1bmRsZV9pZF9zdHIgPQorLSAgICAgIHBhcnNlZF9pYi53 ZWJfYnVuZGxlX2lkLnRvX3N0cmluZ192aWV3KCk7CistICBSRVRVUk5fSUZfRVJST1IoCistICAg ICAgU2lnbmVkV2ViQnVuZGxlSWQ6OkNyZWF0ZSh3ZWJfYnVuZGxlX2lkX3N0ciksCistICAgICAg WyZdKHN0ZDo6c3RyaW5nIGVycm9yKSB7IFJ1bkVycm9yQ2FsbGJhY2soc3RkOjptb3ZlKGVycm9y KSk7IH0pOworLQorLSAgaW50ZWdyaXR5X2Jsb2NrLT5hdHRyaWJ1dGVzID0KKy0gICAgICBJbnRl Z3JpdHlCbG9ja0F0dHJpYnV0ZXMoc3RkOjpzdHJpbmcod2ViX2J1bmRsZV9pZF9zdHIpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5hcnlEYXRhKHBhcnNlZF9pYi5hdHRyaWJ1 dGVzX2Nib3IuYmVnaW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYXJzZWRfaWIuYXR0cmlidXRlc19jYm9yLmVuZCgpKSk7CisrICAvLyAxLiBNYWdpYyBi eXRlcworKyAgaWYgKCF0b3BfYXJyYXlbMF0uaXNfYnl0ZXN0cmluZygpIHx8CisrICAgICAgIXN0 ZDo6cmFuZ2VzOjplcXVhbCh0b3BfYXJyYXlbMF0uR2V0Qnl0ZXN0cmluZygpLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAga0ludGVncml0eUJsb2NrTWFnaWNCeXRlcykpIHsKKysgICAgUnVu RXJyb3JDYWxsYmFjaygiVW5leHBlY3RlZCBtYWdpYyBieXRlcy4iKTsKKysgICAgcmV0dXJuOwor KyAgfQorKworKyAgLy8gMi4gVmVyc2lvbgorKyAgaWYgKCF0b3BfYXJyYXlbMV0uaXNfYnl0ZXN0 cmluZygpIHx8CisrICAgICAgIXN0ZDo6cmFuZ2VzOjplcXVhbCh0b3BfYXJyYXlbMV0uR2V0Qnl0 ZXN0cmluZygpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAga0ludGVncml0eUJsb2NrVjJW ZXJzaW9uQnl0ZXMpKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soIlVuZXhwZWN0ZWQgdmVyc2lv biBieXRlcy4iLAorKyAgICAgICAgICAgICAgICAgICAgIG1vam9tOjpCdW5kbGVQYXJzZUVycm9y VHlwZTo6a1ZlcnNpb25FcnJvcik7CisrICAgIHJldHVybjsKKysgIH0KKyAKKy0gIGZvciAoY29u c3QgYXV0byYgZW50cnkgOiBwYXJzZWRfaWIuc2lnbmF0dXJlX3N0YWNrKSB7CisrICAvLyAzLiBB dHRyaWJ1dGVzCisrICBpZiAoIXRvcF9hcnJheVsyXS5pc19tYXAoKSkgeworKyAgICBSdW5FcnJv ckNhbGxiYWNrKCJJbnRlZ3JpdHkgYmxvY2sgYXR0cmlidXRlcyBtdXN0IGJlIGEgbWFwLiIpOwor KyAgICByZXR1cm47CisrICB9CisrICBjb25zdCBjYm9yOjpWYWx1ZTo6TWFwVmFsdWUmIGF0dHJp YnV0ZXNfbWFwID0gdG9wX2FycmF5WzJdLkdldE1hcCgpOworKyAgY29uc3QgY2Jvcjo6VmFsdWUq IHdlYl9idW5kbGVfaWQgPQorKyAgICAgIGJhc2U6OkZpbmRPck51bGwoYXR0cmlidXRlc19tYXAs IGNib3I6OlZhbHVlKGtXZWJCdW5kbGVJZEF0dHJpYnV0ZU5hbWUpKTsKKysgIGlmICghd2ViX2J1 bmRsZV9pZCB8fCAhd2ViX2J1bmRsZV9pZC0+aXNfc3RyaW5nKCkpIHsKKysgICAgUnVuRXJyb3JD YWxsYmFjaygKKysgICAgICAgICJgd2ViQnVuZGxlSWRgIGludGVncml0eSBibG9jayBhdHRyaWJ1 dGUgaXMgbWlzc2luZyBvciBtYWxmb3JtZWQuIik7CisrICAgIHJldHVybjsKKysgIH0KKysKKysg IC8vIENoZWNrIGlmIHdlYl9idW5kbGVfaWQgaXMgY29ycmVjdAorKyAgUkVUVVJOX0lGX0VSUk9S KFNpZ25lZFdlYkJ1bmRsZUlkOjpDcmVhdGUod2ViX2J1bmRsZV9pZC0+R2V0U3RyaW5nKCkpLAor KyAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBzdGQ6OnN0cmluZyYgZXJyb3IpIHsgUnVuRXJy b3JDYWxsYmFjayhlcnJvcik7IH0pOworKworKyAgQmluYXJ5RGF0YSBhdHRyaWJ1dGVzX2Nib3Ig PSAqY2Jvcjo6V3JpdGVyOjpXcml0ZSh0b3BfYXJyYXlbMl0pOworKyAgaW50ZWdyaXR5X2Jsb2Nr LT5hdHRyaWJ1dGVzID0gSW50ZWdyaXR5QmxvY2tBdHRyaWJ1dGVzKAorKyAgICAgIHdlYl9idW5k bGVfaWQtPkdldFN0cmluZygpLCBzdGQ6Om1vdmUoYXR0cmlidXRlc19jYm9yKSk7CisrCisrICAv LyA0LiBTaWduYXR1cmUgU3RhY2sKKysgIGlmICghdG9wX2FycmF5WzNdLmlzX2FycmF5KCkpIHsK KysgICAgUnVuRXJyb3JDYWxsYmFjaygiU2lnbmF0dXJlIHN0YWNrIG11c3QgYmUgYW4gYXJyYXku Iik7CisrICAgIHJldHVybjsKKysgIH0KKysgIGNvbnN0IGNib3I6OlZhbHVlOjpBcnJheVZhbHVl JiBzaWduYXR1cmVzID0gdG9wX2FycmF5WzNdLkdldEFycmF5KCk7CisrICBpZiAoc2lnbmF0dXJl cy5lbXB0eSgpKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soCisrICAgICAgICAiVGhlIHNpZ25h dHVyZSBzdGFjayBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHNpZ25hdHVyZS4iKTsKKysgICAg cmV0dXJuOworKyAgfQorKworKyAgZm9yIChjb25zdCBhdXRvJiBzaWduYXR1cmVfaW5mb19yYXcg OiBzaWduYXR1cmVzKSB7CisgICAgIEFTU0lHTl9PUl9SRVRVUk4oCistICAgICAgICBhdXRvIHBh cnNlZF9zaWcsIENyZWF0ZVNpZ25hdHVyZVN0YWNrRW50cnkoZW50cnkpLAorLSAgICAgICAgWyZd KHN0ZDo6c3RyaW5nIGVycm9yKSB7IFJ1bkVycm9yQ2FsbGJhY2soc3RkOjptb3ZlKGVycm9yKSk7 IH0pOworLSAgICBpbnRlZ3JpdHlfYmxvY2stPnNpZ25hdHVyZV9zdGFjay5wdXNoX2JhY2soc3Rk Ojptb3ZlKHBhcnNlZF9zaWcpKTsKKysgICAgICAgIGF1dG8gcGFyc2VkX3NpZ25hdHVyZV9pbmZv LCBQYXJzZVNpZ25hdHVyZUluZm8oc2lnbmF0dXJlX2luZm9fcmF3KSwKKysgICAgICAgIFsmXShj b25zdCBzdGQ6OnN0cmluZyYgZXJyb3IpIHsgdGhpcy0+UnVuRXJyb3JDYWxsYmFjayhlcnJvcik7 IH0pOworKworKyAgICBpZiAoaW50ZWdyaXR5X2Jsb2NrLT5zaWduYXR1cmVfc3RhY2suZW1wdHko KSAmJgorKyAgICAgICAgcGFyc2VkX3NpZ25hdHVyZV9pbmZvLT5zaWduYXR1cmVfaW5mby0+aXNf dW5rbm93bigpKSB7CisrICAgICAgUnVuRXJyb3JDYWxsYmFjaygiVW5rbm93biBjaXBoZXIgdHlw ZSBvZiB0aGUgZmlyc3Qgc2lnbmF0dXJlLiIpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAg ICBpbnRlZ3JpdHlfYmxvY2stPnNpZ25hdHVyZV9zdGFjay5wdXNoX2JhY2soCisrICAgICAgICBz dGQ6Om1vdmUocGFyc2VkX3NpZ25hdHVyZV9pbmZvKSk7CisgICB9CisgCisgICBzdGQ6Om1vdmUo Y29tcGxldGVfY2FsbGJhY2tfKQorQEAgLTE0MSwxMyArMTY0LDc0IEBAIHZvaWQgSW50ZWdyaXR5 QmxvY2tQYXJzZXI6Ok9uSW50ZWdyaXR5QmwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 ZDo6bW92ZShpbnRlZ3JpdHlfYmxvY2spLCBudWxscHRyKSk7CisgfQorIAorK2Jhc2U6OmV4cGVj dGVkPG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNrRW50cnlQdHIsIHN0 ZDo6c3RyaW5nPgorK0ludGVncml0eUJsb2NrUGFyc2VyOjpQYXJzZVNpZ25hdHVyZUluZm8oCisr ICAgIGNvbnN0IGNib3I6OlZhbHVlJiBzaWduYXR1cmVfaW5mb19yYXcpIHsKKysgIGlmICghc2ln bmF0dXJlX2luZm9fcmF3LmlzX2FycmF5KCkgfHwKKysgICAgICBzaWduYXR1cmVfaW5mb19yYXcu R2V0QXJyYXkoKS5zaXplKCkgIT0gMikgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgK KysgICAgICAgICJFYWNoIHNpZ25hdHVyZSBzdGFjayBlbnRyeSBtdXN0IGNvbnRhaW4gZXhhY3Rs eSB0d28gZWxlbWVudHMuIik7CisrICB9CisrCisrICBjb25zdCBjYm9yOjpWYWx1ZTo6QXJyYXlW YWx1ZSYgc2lnbmF0dXJlX2luZm9fYXJyYXkgPQorKyAgICAgIHNpZ25hdHVyZV9pbmZvX3Jhdy5H ZXRBcnJheSgpOworKyAgaWYgKCFzaWduYXR1cmVfaW5mb19hcnJheVswXS5pc19tYXAoKSB8fAor KyAgICAgICFzaWduYXR1cmVfaW5mb19hcnJheVsxXS5pc19ieXRlc3RyaW5nKCkpIHsKKysgICAg cmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoIk1hbGZvcm1lZCBzaWduYXR1cmUgc3RhY2sgZW50cnku Iik7CisrICB9CisrCisrICBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tTaWduYXR1cmVTdGFj a0VudHJ5UHRyIHBhcnNlZF9zaWduYXR1cmVfaW5mbyA9CisrICAgICAgbW9qb206OkJ1bmRsZUlu dGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeTo6TmV3KCk7CisrICBwYXJzZWRfc2lnbmF0 dXJlX2luZm8tPmF0dHJpYnV0ZXNfY2JvciA9CisrICAgICAgKmNib3I6OldyaXRlcjo6V3JpdGUo c2lnbmF0dXJlX2luZm9fYXJyYXlbMF0pOworKworKyAgY29uc3QgY2Jvcjo6VmFsdWU6Ok1hcFZh bHVlJiBzaWduYXR1cmVfYXR0cmlidXRlcyA9CisrICAgICAgc2lnbmF0dXJlX2luZm9fYXJyYXlb MF0uR2V0TWFwKCk7CisrICBjb25zdCBCaW5hcnlEYXRhJiBzaWduYXR1cmVfYnl0ZXMgPSBzaWdu YXR1cmVfaW5mb19hcnJheVsxXS5HZXRCeXRlc3RyaW5nKCk7CisrCisrICBjb25zdCBjYm9yOjpW YWx1ZSogZWQyNTUxOV9rZXkgPSBiYXNlOjpGaW5kT3JOdWxsKAorKyAgICAgIHNpZ25hdHVyZV9h dHRyaWJ1dGVzLCBjYm9yOjpWYWx1ZShrRWQyNTUxOVB1YmxpY0tleUF0dHJpYnV0ZU5hbWUpKTsK KysgIGNvbnN0IGNib3I6OlZhbHVlKiBlY2RzYV9rZXkgPSBiYXNlOjpGaW5kT3JOdWxsKAorKyAg ICAgIHNpZ25hdHVyZV9hdHRyaWJ1dGVzLCBjYm9yOjpWYWx1ZShrRWNkc2FQMjU2UHVibGljS2V5 QXR0cmlidXRlTmFtZSkpOworKworKyAgaWYgKGVkMjU1MTlfa2V5ICYmIGVjZHNhX2tleSkgewor KyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgiTXVsdGlwbGUga2V5IHR5cGVzIGZvciBvbmUg c2lnbmF0dXJlLiIpOworKyAgfSBlbHNlIGlmIChlZDI1NTE5X2tleSAmJiAhZWQyNTUxOV9rZXkt PmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgiSW52YWxp ZCBFRDI1NTE5IGtleS4iKTsKKysgIH0gZWxzZSBpZiAoZWNkc2Ffa2V5ICYmICFlY2RzYV9rZXkt PmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgiSW52YWxp ZCBFQ0RTQSBrZXkuIik7CisrCisrICB9IGVsc2UgaWYgKGVkMjU1MTlfa2V5ICYmIGVkMjU1MTlf a2V5LT5pc19ieXRlc3RyaW5nKCkpIHsKKysgICAgQVNTSUdOX09SX1JFVFVSTihhdXRvIHB1Ymxp Y19rZXksCisrICAgICAgICAgICAgICAgICAgICAgRWQyNTUxOVB1YmxpY0tleTo6Q3JlYXRlKGVk MjU1MTlfa2V5LT5HZXRCeXRlc3RyaW5nKCkpKTsKKysgICAgQVNTSUdOX09SX1JFVFVSTihhdXRv IHNpZ25hdHVyZSwgRWQyNTUxOVNpZ25hdHVyZTo6Q3JlYXRlKHNpZ25hdHVyZV9ieXRlcykpOwor KyAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8tPnNpZ25hdHVyZV9pbmZvID0gbW9qb206OlNpZ25h dHVyZUluZm86Ok5ld0VkMjU1MTkoCisrICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mb0VkMjU1 MTk6Ok5ldyhwdWJsaWNfa2V5LCBzaWduYXR1cmUpKTsKKysKKysgIH0gZWxzZSBpZiAoZWNkc2Ff a2V5ICYmIGVjZHNhX2tleS0+aXNfYnl0ZXN0cmluZygpKSB7CisrICAgIEFTU0lHTl9PUl9SRVRV Uk4oYXV0byBwdWJsaWNfa2V5LAorKyAgICAgICAgICAgICAgICAgICAgIEVjZHNhUDI1NlB1Ymxp Y0tleTo6Q3JlYXRlKGVjZHNhX2tleS0+R2V0Qnl0ZXN0cmluZygpKSk7CisrICAgIEFTU0lHTl9P Ul9SRVRVUk4oYXV0byBzaWduYXR1cmUsCisrICAgICAgICAgICAgICAgICAgICAgRWNkc2FQMjU2 U0hBMjU2U2lnbmF0dXJlOjpDcmVhdGUoc2lnbmF0dXJlX2J5dGVzKSk7CisrICAgIHBhcnNlZF9z aWduYXR1cmVfaW5mby0+c2lnbmF0dXJlX2luZm8gPQorKyAgICAgICAgbW9qb206OlNpZ25hdHVy ZUluZm86Ok5ld0VjZHNhUDI1NlNoYTI1NigKKysgICAgICAgICAgICBtb2pvbTo6U2lnbmF0dXJl SW5mb0VjZHNhUDI1NlNIQTI1Njo6TmV3KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOworKworKyAg fSBlbHNlIHsKKysgICAgcGFyc2VkX3NpZ25hdHVyZV9pbmZvLT5zaWduYXR1cmVfaW5mbyA9Cisr ICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mbzo6TmV3VW5rbm93bihtb2pvbTo6U2lnbmF0dXJl SW5mb1Vua25vd246Ok5ldygpKTsKKysgIH0KKysKKysgIHJldHVybiBwYXJzZWRfc2lnbmF0dXJl X2luZm87CisrfQorKworIHZvaWQgSW50ZWdyaXR5QmxvY2tQYXJzZXI6OlJ1bkVycm9yQ2FsbGJh Y2soCistICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2UsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBt ZXNzYWdlLAorICAgICBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGUgZXJyb3JfdHlwZSkgewor ICAgc3RkOjptb3ZlKGNvbXBsZXRlX2NhbGxiYWNrXykKKy0gICAgICAuUnVuKGJhc2U6OkJpbmRP bmNlKHN0ZDo6bW92ZShyZXN1bHRfY2FsbGJhY2tfKSwgbnVsbHB0ciwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgIG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1BhcnNlRXJyb3I6Ok5ldygK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl90eXBlLCBzdGQ6Om1vdmUobWVz c2FnZSkpKSk7CisrICAgICAgLlJ1bihiYXNlOjpCaW5kT25jZSgKKysgICAgICAgICAgc3RkOjpt b3ZlKHJlc3VsdF9jYWxsYmFja18pLCBudWxscHRyLAorKyAgICAgICAgICBtb2pvbTo6QnVuZGxl SW50ZWdyaXR5QmxvY2tQYXJzZUVycm9yOjpOZXcoZXJyb3JfdHlwZSwgbWVzc2FnZSkpKTsKKyB9 CisgCisgfSAgLy8gbmFtZXNwYWNlIHdlYl9wYWNrYWdlCistLS0gYS9jb21wb25lbnRzL3dlYl9w YWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2VyLmgKKysrKyBi L2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9j a19wYXJzZXIuaAorQEAgLTUsMTMgKzUsOCBAQAorICNpZm5kZWYgQ09NUE9ORU5UU19XRUJfUEFD S0FHRV9TSUdORURfV0VCX0JVTkRMRVNfSU5URUdSSVRZX0JMT0NLX1BBUlNFUl9IXworICNkZWZp bmUgQ09NUE9ORU5UU19XRUJfUEFDS0FHRV9TSUdORURfV0VCX0JVTkRMRVNfSU5URUdSSVRZX0JM T0NLX1BBUlNFUl9IXworIAorLSNpbmNsdWRlIDxvcHRpb25hbD4KKy0jaW5jbHVkZSA8c3RyaW5n PgorLQorLSNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCistI2luY2x1ZGUgImJh c2UvbWVtb3J5L3Jhd19yZWYuaCIKKy0jaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vha19wdHIuaCIK KyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9tb2pvbS93ZWJfYnVuZGxlX3BhcnNl ci5tb2pvbS1mb3J3YXJkLmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2ln bmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19hdHRyaWJ1dGVzLmgiCisgI2luY2x1ZGUg ImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3R5cGVzLmgiCisgI2lu Y2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvd2ViX2J1bmRsZV9wYXJzZXIuaCIKKyAKK0BA IC0yMCw3ICsxNSw3IEBAIG5hbWVzcGFjZSB3ZWJfcGFja2FnZSB7CisgY2xhc3MgSW50ZWdyaXR5 QmxvY2tQYXJzZXIgOiBwdWJsaWMgV2ViQnVuZGxlUGFyc2VyOjpXZWJCdW5kbGVTZWN0aW9uUGFy c2VyIHsKKyAgcHVibGljOgorICAgZXhwbGljaXQgSW50ZWdyaXR5QmxvY2tQYXJzZXIoCistICAg ICAgbW9qb206OkJ1bmRsZURhdGFTb3VyY2UmIGRhdGFfc291cmNlIExJRkVUSU1FX0JPVU5ELAor KyAgICAgIG1vam9tOjpCdW5kbGVEYXRhU291cmNlJiBkYXRhX3NvdXJjZSwKKyAgICAgICBXZWJC dW5kbGVQYXJzZXI6OlBhcnNlSW50ZWdyaXR5QmxvY2tDYWxsYmFjayBjYWxsYmFjayk7CisgCisg ICBJbnRlZ3JpdHlCbG9ja1BhcnNlcihjb25zdCBJbnRlZ3JpdHlCbG9ja1BhcnNlciYpID0gZGVs ZXRlOworQEAgLTM1LDcgKzMwLDEwIEBAIGNsYXNzIEludGVncml0eUJsb2NrUGFyc2VyIDogcHVi bGljIFdlYkIKKyAgcHJpdmF0ZToKKyAgIHZvaWQgT25JbnRlZ3JpdHlCbG9ja1JlYWQoY29uc3Qg c3RkOjpvcHRpb25hbDxCaW5hcnlEYXRhPiYgZGF0YSk7CisgCistICB2b2lkIFJ1bkVycm9yQ2Fs bGJhY2soc3RkOjpzdHJpbmcgbWVzc2FnZSwKKysgIGJhc2U6OmV4cGVjdGVkPG1vam9tOjpCdW5k bGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNrRW50cnlQdHIsIHN0ZDo6c3RyaW5nPgorKyAg UGFyc2VTaWduYXR1cmVJbmZvKGNvbnN0IGNib3I6OlZhbHVlJiBhdHRyaWJ1dGVzX21hcCk7Cisr CisrICB2b2lkIFJ1bkVycm9yQ2FsbGJhY2soY29uc3Qgc3RkOjpzdHJpbmcmIG1lc3NhZ2UsCisg ICAgICAgICAgICAgICAgICAgICAgICAgbW9qb206OkJ1bmRsZVBhcnNlRXJyb3JUeXBlIGVycm9y X3R5cGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2pvbTo6QnVuZGxlUGFyc2VF cnJvclR5cGU6OmtGb3JtYXRFcnJvcik7CisgCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNrYWdl L3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L0JVSUxELmduCisrKysgYi9jb21wb25lbnRzL3dlYl9w YWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L0JVSUxELmduCitAQCAtMTAsNyArMTAsNiBA QCBydXN0X3N0YXRpY19saWJyYXJ5KCJzaWduZWRfd2ViX2J1bmRsZXNfCisgICBzb3VyY2VzID0g WworICAgICAiY29uc3RhbnRzLnJzIiwKKyAgICAgImludGVncml0eV9ibG9jay5ycyIsCistICAg ICJzaWduYXR1cmVfdmVyaWZpZXIucnMiLAorICAgICAidHlwZXMucnMiLAorICAgICBjcmF0ZV9y b290LAorICAgXQorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRs ZXMvc2lnbmVkX3dlYl9idW5kbGVfc2lnbmF0dXJlX3ZlcmlmaWVyLmNjCisrKysgYi9jb21wb25l bnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9zaWdu YXR1cmVfdmVyaWZpZXIuY2MKK0BAIC0yMCwxNCArMjAsMTcgQEAKKyAjaW5jbHVkZSAiYmFzZS90 YXNrL3RocmVhZF9wb29sLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWQuaCIKKyAj aW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZF9tYWNyb3MuaCIKKysjaW5jbHVkZSAiY29tcG9u ZW50cy9jYm9yL3ZhbHVlcy5oIgorKyNpbmNsdWRlICJjb21wb25lbnRzL2Nib3Ivd3JpdGVyLmgi CisrI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2Nv bnN0YW50cy5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJf YnVuZGxlcy9pZGVudGl0eV92YWxpZGF0b3IuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3BhcnNlci5oIgorLSNp bmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L3Np Z25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX2lkLmgiCisgI2luY2x1ZGUg ImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVu ZGxlX2ludGVncml0eV9ibG9jay5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdl L3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9zaWduYXR1cmVfc3RhY2suaCIK KyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2ln bmVkX3dlYl9idW5kbGVfc2lnbmF0dXJlX3N0YWNrX2VudHJ5LmgiCisgI2luY2x1ZGUgImNvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3V0 aWxzLmgiCisrI2luY2x1ZGUgImNyeXB0by9oYXNoLmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5 L2Fic2VpbC1jcHAvYWJzbC9mdW5jdGlvbmFsL292ZXJsb2FkLmgiCisgI2luY2x1ZGUgInRoaXJk X3BhcnR5L2JvcmluZ3NzbC9zcmMvaW5jbHVkZS9vcGVuc3NsL3NoYS5oIgorIAorQEAgLTM3LDEw ICs0MCwzMiBAQCBuYW1lc3BhY2UgeworIAorIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IENyZWF0ZUlu dGVncml0eUJsb2NrQ2JvcigKKyAgICAgY29uc3QgU2lnbmVkV2ViQnVuZGxlSW50ZWdyaXR5Qmxv Y2smIGludGVncml0eV9ibG9jaykgeworLSAgYXV0byBpYl9jYm9yX3J1c3QgPQorLSAgICAgIHNp Z25lZF93ZWJfYnVuZGxlczo6cnVzdDo6Y3JlYXRlX2VtcHR5X2ludGVncml0eV9ibG9ja19jYm9y KAorLSAgICAgICAgICBpbnRlZ3JpdHlfYmxvY2suYXR0cmlidXRlc19jYm9yKCkpOworLSAgcmV0 dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGliX2Nib3JfcnVzdC5iZWdpbigpLCBpYl9jYm9yX3J1 c3QuZW5kKCkpOworKyAgLy8gVGhpcyBmdW5jdGlvbiBsb29rcyBsaWtlIGl0IHNob3VsZCB1c2Ug YSBjYm9yOjpWYWx1ZTo6QXJyYXlWYWx1ZSB0byBidWlsZAorKyAgLy8gdGhlIG91dGVyIGFycmF5 LCBidXQgaXQgY2FuJ3Q6IG9uZSBvZiB0aGUgZWxlbWVudHMgaXMgYSBwcmUtZW5jb2RlZCBDQk9S CisrICAvLyB2YWx1ZSB3aGljaCB3ZSBjYW4ndCBzYWZlbHkgZGVjb2RlIGJlY2F1c2UgaXQncyB1 bnRydXN0ZWQgaW5wdXQuIFRoaXMgaXMKKysgIC8vIG9idmlvdXNseSB1bmRlc2lyYWJsZSwgYmVj YXVzZSB0aGVyZSdzIG5vIGd1YXJhbnRlZSBhdCBhbGwgdGhhdCB0aGUKKysgIC8vIHByZS1lbmNv ZGVkIHZhbHVlIGlzIGFjdHVhbGx5IHZhbGlkIENCT1IuCisrICAvLworKyAgLy8gVE9ETyhodHRw czovL2NyYnVnLmNvbS80NTQ0ODU5MDEpOiBvbmNlIHRoZXJlJ3MgYSBtZW1vcnktc2FmZSBDQk9S IHBhcnNlciwKKysgIC8vIHJlLXBhcnNlIHRoZSBwcmUtZW5jb2RlZCB2YWx1ZSwgdGhlbiByZS1l bmNvZGUgaXQgaGVyZSBpbnN0ZWFkIG9mCisrICAvLyBjb25zdHJ1Y3RpbmcgYSBDQk9SIGFycmF5 IGJ5IGhhbmQgc28gdGhhdCB3ZSdyZSBndWFyYW50ZWVkIHRoYXQgdGhlIHJlc3VsdAorKyAgLy8g b2YgdGhpcyBmdW5jdGlvbiBpcyB2YWxpZC4KKysgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGliX2Ni b3I7CisrCisrICAvLyAweDg0IGlzIHRoZSBlbmNvZGluZyBieXRlIGZvciBhbiBhcnJheSBvZiBs ZW5ndGggNC4KKysgIGliX2Nib3IucHVzaF9iYWNrKDB4ODQpOworKyAgYmFzZTo6RXh0ZW5kKGli X2Nib3IsCisrICAgICAgICAgICAgICAgKmNib3I6OldyaXRlcjo6V3JpdGUoY2Jvcjo6VmFsdWUo a0ludGVncml0eUJsb2NrTWFnaWNCeXRlcykpKTsKKysgIGJhc2U6OkV4dGVuZChpYl9jYm9yLCAq Y2Jvcjo6V3JpdGVyOjpXcml0ZSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Jvcjo6 VmFsdWUoa0ludGVncml0eUJsb2NrVjJWZXJzaW9uQnl0ZXMpKSk7CisrICAvLyBXZSBjYW5ub3Qg cGFyc2UgYGF0dHJpYnV0ZXMoKS5jYm9yKClgIGJhY2sgdG8gYSBjYm9yOjpWYWx1ZSBhcyB0aGV5 CisrICAvLyB0ZWNobmljYWxseSByZXByZXNlbnQgdW50cnVzdGVkIGlucHV0LgorKyAgYmFzZTo6 RXh0ZW5kKGliX2Nib3IsIGludGVncml0eV9ibG9jay5hdHRyaWJ1dGVzX2Nib3IoKSk7CisrICAv LyBFbmNvZGUgYW4gZW1wdHkgc2lnbmF0dXJlIGFycmF5LgorKyAgYmFzZTo6RXh0ZW5kKGliX2Ni b3IsCisrICAgICAgICAgICAgICAgKmNib3I6OldyaXRlcjo6V3JpdGUoY2Jvcjo6VmFsdWUoY2Jv cjo6VmFsdWU6OkFycmF5VmFsdWUoKSkpKTsKKysKKysgIHJldHVybiBpYl9jYm9yOworIH0KKyAK KyBiYXNlOjpleHBlY3RlZDx2b2lkLCBTaWduZWRXZWJCdW5kbGVTaWduYXR1cmVWZXJpZmllcjo6 RXJyb3I+CitAQCAtMTA0LDcgKzEyOSw3IEBAIFNpZ25lZFdlYkJ1bmRsZVNpZ25hdHVyZVZlcmlm aWVyOjpDYWxjdWwKKyAgICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoYmFzZTo6RmlsZTo6RXJy b3JUb1N0cmluZyhmaWxlLkdldExhc3RGaWxlRXJyb3IoKSkpOworICAgfQorIAorLSAgc2lnbmVk X3dlYl9idW5kbGVzOjpydXN0OjpTaGE1MTJIYXNoZXIgaGFzaGVyOworKyAgY3J5cHRvOjpoYXNo OjpIYXNoZXIgaGFzaChjcnlwdG86Omhhc2g6OmtTaGE1MTIpOworIAorICAgLy8gQ2FsY3VsYXRl IHRoZSBoYXNoIG9mIHRoZSBTaWduZWQgV2ViIEJ1bmRsZSBleGNsdWRpbmcgaXRzIGludGVncml0 eSBibG9jay4KKyAgIC8vIFRoZSBmaWxlIG1pZ2h0IGJlIHRvbyBiaWcgdG8gcmVhZCBpdCBpbnRv IG1lbW9yeSBhbGwgYXQgb25jZSwgd2hpY2ggaXMgd2h5CitAQCAtMTIxLDE0ICsxNDYsMTUgQEAg U2lnbmVkV2ViQnVuZGxlU2lnbmF0dXJlVmVyaWZpZXI6OkNhbGN1bAorICAgICAgICAgICBiYXNl OjpGaWxlOjpFcnJvclRvU3RyaW5nKGZpbGUuR2V0TGFzdEZpbGVFcnJvcigpKSk7CisgICAgIH0K KyAgICAgZGF0YS5yZXNpemUoKmJ5dGVzX3JlYWQpOworLSAgICBoYXNoZXIudXBkYXRlKGRhdGEp OworKyAgICBoYXNoLlVwZGF0ZShkYXRhKTsKKyAKKyAgICAgaWYgKCFiYXNlOjpDaGVja0FkZChv ZmZzZXQsICpieXRlc19yZWFkKS5Bc3NpZ25JZlZhbGlkKCZvZmZzZXQpKSB7CisgICAgICAgcmV0 dXJuIGJhc2U6OnVuZXhwZWN0ZWQoIlRoZSBTaWduZWQgV2ViIEJ1bmRsZSBpcyB0b28gbGFyZ2Uu Iik7CisgICAgIH0KKyAgIH0KKyAKKy0gIFNIQTUxMkRpZ2VzdCBkaWdlc3QgPSBzdGQ6Om1vdmUo aGFzaGVyKS5maW5pc2goKTsKKysgIFNIQTUxMkRpZ2VzdCBkaWdlc3Q7CisrICBoYXNoLkZpbmlz aChkaWdlc3QpOworICAgcmV0dXJuIGRpZ2VzdDsKKyB9CisgCistLS0gYS9jb21wb25lbnRzL3dl Yl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV91dGlscy5jYwor KysrIGIvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dl Yl9idW5kbGVfdXRpbHMuY2MKK0BAIC01LDE4ICs1LDM3IEBACisgI2luY2x1ZGUgImNvbXBvbmVu dHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3V0aWxz LmgiCisgCisgI2luY2x1ZGUgPGNzdGRpbnQ+CistI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKy0jaW5j bHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdC9zaWdu ZWRfd2ViX2J1bmRsZXNfcnVzdC5oIgorKyNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvZXh0ZW5k LmgiCisrI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFuLmgiCisrI2luY2x1ZGUgImJhc2Uv Y29udGFpbmVycy9zcGFuX3dyaXRlci5oIgorIAorIG5hbWVzcGFjZSB3ZWJfcGFja2FnZSB7Cisg CisrbmFtZXNwYWNlIHsKKysKKyt2b2lkIEFkZEl0ZW1Ub1BheWxvYWQoc3RkOjp2ZWN0b3I8dWlu dDhfdD4mIHBheWxvYWQsCisrICAgICAgICAgICAgICAgICAgICAgIGJhc2U6OnNwYW48Y29uc3Qg dWludDhfdD4gaXRlbSkgeworKyAgLy8gRWFjaCBpdGVtIHRoYXQgaXMgcGFydCBvZiB0aGUgcGF5 bG9hZCBpcyBwcmVmaXhlZCB3aXRoIGl0cyBsZW5ndGggZW5jb2RlZAorKyAgLy8gYXMgYSA2NCBi aXQgdW5zaWduZWQgaW50ZWdlci4KKysgIHN0ZDo6YXJyYXk8dWludDhfdCwgc2l6ZW9mKHVpbnQ2 NF90KT4gbGVuZ3RoOworKyAgYXV0byB3cml0ZXIgPSBiYXNlOjpTcGFuV3JpdGVyKGJhc2U6OnNw YW4obGVuZ3RoKSk7CisrICBDSEVDSyh3cml0ZXIuV3JpdGVVNjRCaWdFbmRpYW4oaXRlbS5zaXpl KCkpKTsKKysKKysgIGJhc2U6OkV4dGVuZChwYXlsb2FkLCBiYXNlOjpzcGFuKGxlbmd0aCkpOwor KyAgYmFzZTo6RXh0ZW5kKHBheWxvYWQsIGl0ZW0pOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2UK KysKKyBzdGQ6OnZlY3Rvcjx1aW50OF90PiBDcmVhdGVTaWduYXR1cmVQYXlsb2FkKAorICAgICBj b25zdCBTaWduZWRXZWJCdW5kbGVTaWduYXR1cmVEYXRhJiBkYXRhKSB7CistICBhdXRvIHBheWxv YWRfcnVzdCA9IHNpZ25lZF93ZWJfYnVuZGxlczo6cnVzdDo6Y3JlYXRlX3NpZ25hdHVyZV9wYXls b2FkKAorLSAgICAgIGRhdGEudW5zaWduZWRfd2ViX2J1bmRsZV9oYXNoLCBkYXRhLmludGVncml0 eV9ibG9ja19jYm9yLAorLSAgICAgIGRhdGEuYXR0cmlidXRlc19jYm9yKTsKKy0gIHJldHVybiBz dGQ6OnZlY3Rvcjx1aW50OF90PihwYXlsb2FkX3J1c3QuYmVnaW4oKSwgcGF5bG9hZF9ydXN0LmVu ZCgpKTsKKysgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHBheWxvYWQ7CisrICBBZGRJdGVtVG9QYXls b2FkKHBheWxvYWQsIGRhdGEudW5zaWduZWRfd2ViX2J1bmRsZV9oYXNoKTsKKysgIEFkZEl0ZW1U b1BheWxvYWQocGF5bG9hZCwgZGF0YS5pbnRlZ3JpdHlfYmxvY2tfY2Jvcik7CisrICBBZGRJdGVt VG9QYXlsb2FkKHBheWxvYWQsIGRhdGEuYXR0cmlidXRlc19jYm9yKTsKKysKKysgIHJldHVybiBw YXlsb2FkOworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UKKy0tLSBhL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCisrKysgYi90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgorQEAgLTE4Niw2ICsxODYsMTggQEAg Z3JvdXAoIm1ha2VfcGxhdGZvcm1fZ2VuZXJhdGVkIikgeworICAgXQorIH0KKyAKKytydXN0X3N0 YXRpY19saWJyYXJ5KCJmb250X2Zvcm1hdF9jaGVjayIpIHsKKysgIGFsbG93X3Vuc2FmZSA9IHRy dWUgICMgTmVlZGVkIGZvciBGRkkgdGhhdCB1bmRlcnBpbnMgdGhlIGBjeHhgIGNyYXRlLgorKyAg Y3JhdGVfcm9vdCA9ICJmb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMiCisrICBzb3VyY2Vz ID0gWyBjcmF0ZV9yb290IF0KKysgIGN4eF9iaW5kaW5ncyA9IFsgY3JhdGVfcm9vdCBdCisrICBk ZXBzID0gWworKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L2ZvbnRfdHlwZXMvdjBfMTI6bGliIiwK KysgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9yZWFkX2ZvbnRzL3YwXzQzOmxpYiIsCisrICAgICIv L3RoaXJkX3BhcnR5L3J1c3Qvc2tyaWZhL3YwXzQ2OmxpYiIsCisrICBdCisrfQorKwogIHJ1c3Rf c3RhdGljX2xpYnJhcnkoInJ1c3RmZnRfZmZpIikgewogICAgYWxsb3dfdW5zYWZlID0gdHJ1ZSAg IyBOZWVkZWQgZm9yIEZGSSB0aGF0IHVuZGVycGlucyB0aGUgYGN4eGAgY3JhdGUuCiAgICBjcmF0 ZV9yb290ID0gImF1ZGlvL3J1c3RmZnRfZmZpLnJzIgotQEAgLTE4MDYsNiArMTc5NCw3IEBAIGNv bXBvbmVudCgicGxhdGZvcm0iKSB7CitAQCAtMTc5Miw3ICsxODA0LDYgQEAgY29tcG9uZW50KCJw bGF0Zm9ybSIpIHsKICAgICAgIjphbGxvd19kaXNjb3VyYWdlZF90eXBlIiwKICAgICAgIjpibGlu a19wbGF0Zm9ybV9wdWJsaWNfZGVwcyIsCiAgICAgICI6cGxhdGZvcm1fZXhwb3J0IiwKLSsgICAg Ii8vYnVpbGQvcnVzdC9jcnViaXQiLAorLSAgICAiLy9idWlsZC9ydXN0L2NydWJpdCIsCiAgICAg ICIvL2dwdS9jb21tYW5kX2J1ZmZlci9jbGllbnQ6cmFzdGVyX2ludGVyZmFjZSIsCiAgICAgICIv L21lZGlhL2NhcHR1cmU6Y2FwdHVyZV9saWIiLAogICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmFz ZSIsCi1AQCAtMTgzMiw4ICsxODIxLDggQEAgY29tcG9uZW50KCJwbGF0Zm9ybSIpIHsKK0BAIC0x ODE5LDggKzE4MzAsOCBAQCBjb21wb25lbnQoInBsYXRmb3JtIikgewogICAgICAiLy91aS9uYXRp dmVfdGhlbWUvZmVhdHVyZXMiLAogICAgXQogICAgZGVwcyA9IFsKLS0gICAgIjpmb250X2Zvcm1h dF9jaGVjayIsCisrICAgICI6Zm9udF9mb3JtYXRfY2hlY2siLAogICAgICAiOnJ1c3RmZnRfZmZp IiwKLSsgICAgImZvbnRzOmZvbnRfZm9ybWF0X2JpbmRpbmdzIiwKKy0gICAgImZvbnRzOmZvbnRf Zm9ybWF0X2JpbmRpbmdzIiwKICAgICAgIi8vYmFzZTpiYXNlX3N0YXRpYyIsCiAgICAgICIvL2Jh c2UvYWxsb2NhdG9yOmJ1aWxkZmxhZ3MiLAogICAgICAiLy9idWlsZDpjaHJvbWVjYXN0X2J1aWxk ZmxhZ3MiLAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L2ZvbnRzL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9u dHMvQlVJTEQuZ24KLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMDAwLi41 MWI5YjAzYmE3Yzg1Ci0tLS0gL2Rldi9udWxsCi0rKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS9mb250cy9CVUlMRC5nbgotQEAgLTAsMCArMSwxOSBAQAotKyMgQ29weXJp Z2h0IDIwMjYgVGhlIENocm9taXVtIEF1dGhvcnMKLSsjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsjIGZvdW5k IGluIHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0raW1wb3J0KCIvL2J1aWxkL3J1c3QvcnVzdF9zdGF0 aWNfbGlicmFyeS5nbmkiKQotKwotK3J1c3Rfc3RhdGljX2xpYnJhcnkoImZvbnRfZm9ybWF0Iikg ewotKyAgY3JhdGVfcm9vdCA9ICJvcGVudHlwZS9mb3JtYXRfY2hlY2sucnMiCi0rICBzb3VyY2Vz ID0gWyBjcmF0ZV9yb290IF0KLSsgIGNwcF9hcGlfZnJvbV9ydXN0ID0gewotKyAgICB0YXJnZXRf bmFtZSA9ICJmb250X2Zvcm1hdF9iaW5kaW5ncyIKLSsgICAgY3BwX25hbWVzcGFjZSA9ICJmb250 X2Zvcm1hdCIKLSsgIH0KLSsgIGRlcHMgPSBbCi0rICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvZm9u dF90eXBlcy92MF8xMjpsaWIiLAotKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L3JlYWRfZm9udHMv djBfNDM6bGliIiwKLSsgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9za3JpZmEvdjBfNDY6bGliIiwK LSsgIF0KLSt9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2suY2MgYi90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5jYwot aW5kZXggYjlkMjYzOTgyMmJjMC4uZjU4ZTk0MzNkMzlmNCAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL0JVSUxELmduCisrKysgL2Rldi9udWxs CitAQCAtMSwxOSArMCwwIEBACistIyBDb3B5cmlnaHQgMjAyNiBUaGUgQ2hyb21pdW0gQXV0aG9y cworLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorLSMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0KKy1p bXBvcnQoIi8vYnVpbGQvcnVzdC9ydXN0X3N0YXRpY19saWJyYXJ5LmduaSIpCistCistcnVzdF9z dGF0aWNfbGlicmFyeSgiZm9udF9mb3JtYXQiKSB7CistICBjcmF0ZV9yb290ID0gIm9wZW50eXBl L2Zvcm1hdF9jaGVjay5ycyIKKy0gIHNvdXJjZXMgPSBbIGNyYXRlX3Jvb3QgXQorLSAgY3BwX2Fw aV9mcm9tX3J1c3QgPSB7CistICAgIHRhcmdldF9uYW1lID0gImZvbnRfZm9ybWF0X2JpbmRpbmdz IgorLSAgICBjcHBfbmFtZXNwYWNlID0gImZvbnRfZm9ybWF0IgorLSAgfQorLSAgZGVwcyA9IFsK Ky0gICAgIi8vdGhpcmRfcGFydHkvcnVzdC9mb250X3R5cGVzL3YwXzEyOmxpYiIsCistICAgICIv L3RoaXJkX3BhcnR5L3J1c3QvcmVhZF9mb250cy92MF80MzpsaWIiLAorLSAgICAiLy90aGlyZF9w YXJ0eS9ydXN0L3NrcmlmYS92MF80NjpsaWIiLAorLSAgXQorLX0KIC0tLSBhL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNr LmNjCiArKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVu dHlwZS9mb250X2Zvcm1hdF9jaGVjay5jYwotQEAgLTcsNyArNyw2IEBACitAQCAtNyw2ICs3LDcg QEAKICAjaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIKICAjaW5jbHVkZSAiYmFzZS9j b250YWluZXJzL3NwYW5fcnVzdC5oIgogICNpbmNsdWRlICJiYXNlL251bWVyaWNzL2J5dGVfY29u dmVyc2lvbnMuaCIKLS0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzLmgiCisrI2luY2x1ZGUgInRoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5y cy5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9ydW50 aW1lX2VuYWJsZWRfZmVhdHVyZXMuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vd3RmL3ZlY3Rvci5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9za2lh L2luY2x1ZGUvY29yZS9Ta1R5cGVmYWNlLmgiCi1AQCAtMTUsMzUgKzE0LDM3IEBACitAQCAtMTQs MzcgKzE1LDM1IEBACiAgbmFtZXNwYWNlIGJsaW5rIHsKICAKICBGb250Rm9ybWF0Q2hlY2s6OkZv bnRGb3JtYXRDaGVjayhza19zcDxTa0RhdGE+IHNrX2RhdGEpCi0tICAgIDogZm9ybWF0X2luZm9f KGZvbnRfZm9ybWF0X2NoZWNrOjpnZXRfZm9udF9mb3JtYXRfaW5mbygKLSsgICAgOiBmb3JtYXRf aW5mb18oZm9udF9mb3JtYXQ6OmdldF9mb250X2Zvcm1hdF9pbmZvKAorLSAgICA6IGZvcm1hdF9p bmZvXyhmb250X2Zvcm1hdDo6Z2V0X2ZvbnRfZm9ybWF0X2luZm8oCisrICAgIDogZm9ybWF0X2lu Zm9fKGZvbnRfZm9ybWF0X2NoZWNrOjpnZXRfZm9udF9mb3JtYXRfaW5mbygKICAgICAgICAgICAg YmFzZTo6U3BhblRvUnVzdFNsaWNlKHNrX2RhdGEtPmJ5dGVTcGFuKCkpKSkge30KICAKLStGb250 Rm9ybWF0Q2hlY2s6On5Gb250Rm9ybWF0Q2hlY2soKSA9IGRlZmF1bHQ7Ci0rCistRm9udEZvcm1h dENoZWNrOjp+Rm9udEZvcm1hdENoZWNrKCkgPSBkZWZhdWx0OworLQogIGJvb2wgRm9udEZvcm1h dENoZWNrOjpJc1ZhcmlhYmxlRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9j aGVjazo6aXNfdmFyaWFibGUoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6 OmlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX3Zh cmlhYmxlKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX3Zh cmlhYmxlKCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXND YmR0Q2JsY0NvbG9yRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6 aXNfY2JkdF9jYmxjKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19j YmR0X2NibGMoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY2JkdF9j YmxjKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NiZHRf Y2JsYygqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzRWJk dEVibGNNb25vY2hyb21lRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVj azo6aXNfZWJkdF9lYmxjKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojpp c19lYmR0X2VibGMoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfZWJk dF9lYmxjKGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2Vi ZHRfZWJsYygqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6Oklz Q29sckNwYWxDb2xvckZvbnRWMCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVj azo6aXNfY29scnYwKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19j b2xydjAoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY29scnYwKGZv cm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NvbHJ2MCgqZm9y bWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzQ29sckNwYWxDb2xv ckZvbnRWMSgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY29scnYx KCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jb2xydjEoZm9ybWF0 X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY29scnYxKGZvcm1hdF9pbmZvXyk7 CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NvbHJ2MSgqZm9ybWF0X2luZm9fKTsK ICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzU2JpeENvbG9yRm9udCgpIGNvbnN0IHsK LS0gIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfc2JpeCgqZm9ybWF0X2luZm9fKTsKLSsg IHJldHVybiBmb250X2Zvcm1hdDo6aXNfc2JpeChmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZv bnRfZm9ybWF0Ojppc19zYml4KGZvcm1hdF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRf Y2hlY2s6OmlzX3NiaXgoKmZvcm1hdF9pbmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENo ZWNrOjpJc0NmZjJPdXRsaW5lRm9udCgpIGNvbnN0IHsKLS0gIHJldHVybiBmb250X2Zvcm1hdF9j aGVjazo6aXNfY2ZmMigqZm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNf Y2ZmMihmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jZmYyKGZvcm1h dF9pbmZvXyk7CisrICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NmZjIoKmZvcm1hdF9p bmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc1ZhcmlhYmxlQ29sclYwRm9u dCgpIGNvbnN0IHsKLUBAIC01Nyw3ICs1OCw3IEBAIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0Nv bG9yRm9udCgpIGNvbnN0IHsKK0BAIC01OCw3ICs1Nyw3IEBAIGJvb2wgRm9udEZvcm1hdENoZWNr OjpJc0NvbG9yRm9udCgpIGNvbnMKICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNBdmFyMkZv bnQoKSBjb25zdCB7CiAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Rm9udEZvcm1h dEF2YXIyRW5hYmxlZCgpICYmCi0tICAgICAgICAgZm9udF9mb3JtYXRfY2hlY2s6OmlzX2F2YXIy KCpmb3JtYXRfaW5mb18pOwotKyAgICAgICAgIGZvbnRfZm9ybWF0Ojppc19hdmFyMihmb3JtYXRf aW5mb18pOworLSAgICAgICAgIGZvbnRfZm9ybWF0Ojppc19hdmFyMihmb3JtYXRfaW5mb18pOwor KyAgICAgICAgIGZvbnRfZm9ybWF0X2NoZWNrOjppc19hdmFyMigqZm9ybWF0X2luZm9fKTsKICB9 CiAgCiAgRm9udEZvcm1hdENoZWNrOjpWYXJpYWJsZUZvbnRTdWJUeXBlIEZvbnRGb3JtYXRDaGVj azo6UHJvYmVWYXJpYWJsZUZvbnQoCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2suaCBiL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0 X2NoZWNrLmgKLWluZGV4IDE5ZDI2MzkyMzNiMDcuLmFmNTBkYmRmNzRkMDAgMTAwNjQ0CiAtLS0g YS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250 X2Zvcm1hdF9jaGVjay5oCiArKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5oCiBAQCAtNSw3ICs1LDcgQEAKICAj aWZuZGVmIFRISVJEX1BBUlRZX0JMSU5LX1JFTkRFUkVSX1BMQVRGT1JNX0ZPTlRTX09QRU5UWVBF X0ZPTlRfRk9STUFUX0NIRUNLX0hfCiAgI2RlZmluZSBUSElSRF9QQVJUWV9CTElOS19SRU5ERVJF Ul9QTEFURk9STV9GT05UU19PUEVOVFlQRV9GT05UX0ZPUk1BVF9DSEVDS19IXwogIAotLSNpbmNs dWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9m b3JtYXRfY2hlY2sucnMuaCIKLSsjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vZm9udHMvZm9udF9mb3JtYXQuaCIKKy0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9mb3JtYXQuaCIKKysjaW5jbHVkZSAidGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2No ZWNrLnJzLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L3BsYXRmb3JtX2V4cG9ydC5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS93dGYvYWxsb2NhdG9yL2FsbG9jYXRvci5oIgogICNpbmNsdWRlICJ0aGlyZF9w YXJ0eS9za2lhL2luY2x1ZGUvY29yZS9Ta0RhdGEuaCIKQEAgLTE3MSw4ICs3MTMsOCBAQCBpbmRl eCAxOWQyNjM5MjMzYjA3Li5hZjUwZGJkZjc0ZDAwIDEwMDY0NAogIAogICBwdWJsaWM6CiAgICBl eHBsaWNpdCBGb250Rm9ybWF0Q2hlY2soc2tfc3A8U2tEYXRhPik7Ci0tICB2aXJ0dWFsIH5Gb250 Rm9ybWF0Q2hlY2soKSA9IGRlZmF1bHQ7Ci0rICB2aXJ0dWFsIH5Gb250Rm9ybWF0Q2hlY2soKTsK Ky0gIHZpcnR1YWwgfkZvbnRGb3JtYXRDaGVjaygpOworKyAgdmlydHVhbCB+Rm9udEZvcm1hdENo ZWNrKCkgPSBkZWZhdWx0OwogICAgdmlydHVhbCBib29sIElzVmFyaWFibGVGb250KCkgY29uc3Q7 CiAgICB2aXJ0dWFsIGJvb2wgSXNDYmR0Q2JsY0NvbG9yRm9udCgpIGNvbnN0OwogICAgdmlydHVh bCBib29sIElzRWJkdEVibGNNb25vY2hyb21lRm9udCgpIGNvbnN0OwpAQCAtMTgwLDEwMyArNzIy LDEwMSBAQCBpbmRleCAxOWQyNjM5MjMzYjA3Li5hZjUwZGJkZjc0ZDAwIDEwMDY0NAogICAgZW51 bSBjbGFzcyBDT0xSVmVyc2lvbiB7IGtDT0xSVjAsIGtDT0xSVjEsIGtOb0NPTFIgfTsKICAKICAg cHJpdmF0ZToKLS0gIHJ1c3Q6OkJveDxmb250X2Zvcm1hdF9jaGVjazo6Rm9udEZvcm1hdEluZm8+ IGZvcm1hdF9pbmZvXzsKLSsgIGZvbnRfZm9ybWF0OjpGb250Rm9ybWF0SW5mbyBmb3JtYXRfaW5m b187CistICBmb250X2Zvcm1hdDo6Rm9udEZvcm1hdEluZm8gZm9ybWF0X2luZm9fOworKyAgcnVz dDo6Qm94PGZvbnRfZm9ybWF0X2NoZWNrOjpGb250Rm9ybWF0SW5mbz4gZm9ybWF0X2luZm9fOwog IH07CiAgCiAgfSAgLy8gbmFtZXNwYWNlIGJsaW5rCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzIGIv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0 X2NoZWNrLnJzCi1pbmRleCBlZGE4ZTZiMmI4MTg4Li5iOTlmMGVjODY1NWU2IDEwMDY0NAogLS0t IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9y bWF0X2NoZWNrLnJzCiArKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9m b250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMKIEBAIC0yMyw3ICsyMyw3IEBAIHB1YiBzdHJ1 Y3QgRm9udEZvcm1hdEluZm8gewogICAgICBmb3JtYXRfZmxhZ3M6IE9wdGlvbjxGb250Rm9ybWF0 RmxhZ3M+LAogIH0KICAKLS1wdWIgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczog Jlt1OF0pIC0+IEJveDxGb250Rm9ybWF0SW5mbz4gewotK3B1YiBmbiBnZXRfZm9udF9mb3JtYXRf aW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gRm9udEZvcm1hdEluZm8geworLXB1YiBmbiBnZXRf Zm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gRm9udEZvcm1hdEluZm8gewor K3B1YiBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gQm94PEZv bnRGb3JtYXRJbmZvPiB7CiAgICAgIGxldCBmaWxlX3JlZiA9IG1ha2VfZm9udF9yZWZfaW50ZXJu YWwoZm9udF9ieXRlcywgMCk7CiAgCiAgICAgIG1hdGNoIGZpbGVfcmVmIHsKLUBAIC0zMiwxMSAr MzIsMTEgQEAgcHViIGZuIGdldF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAt PiBCb3g8Rm9udEZvcm1hdEluZm8+IHsKK0BAIC0zMiwxMSArMzIsMTEgQEAgcHViIGZuIGdldF9m b250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6CiAgICAgICAgICAgICAgICAgIGZvbnQudGFibGVf ZGlyZWN0b3J5KCkudGFibGVfcmVjb3JkcygpLml0ZXIoKS5tYXAofGV8IGUudGFnKCkpLmNvbGxl Y3QoKTsKICAgICAgICAgICAgICBsZXQgY29sb3JfdmVyc2lvbiA9IGdldF9jb2xyX3ZlcnNpb24o JmZvbnQpOwogICAgICAgICAgICAgIGxldCBhdmFyX3ZlcnNpb24gPSBnZXRfYXZhcl92ZXJzaW9u KCZmb250KTsKLS0gICAgICAgICAgICBCb3g6Om5ldyhGb250Rm9ybWF0SW5mbyB7Ci0rICAgICAg ICAgICAgRm9udEZvcm1hdEluZm8geworLSAgICAgICAgICAgIEZvbnRGb3JtYXRJbmZvIHsKKysg ICAgICAgICAgICBCb3g6Om5ldyhGb250Rm9ybWF0SW5mbyB7CiAgICAgICAgICAgICAgICAgIGZv cm1hdF9mbGFnczogU29tZShGb250Rm9ybWF0RmxhZ3MgeyB0YWJsZV90YWdzLCBjb2xvcl92ZXJz aW9uLCBhdmFyX3ZlcnNpb24gfSksCi0tICAgICAgICAgICAgfSkKLSsgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0pCiAgICAgICAgICB9Ci0tICAgICAgICBfID0+ IEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvOjpkZWZhdWx0KCkpLAotKyAgICAgICAgXyA9PiBGb250 Rm9ybWF0SW5mbzo6ZGVmYXVsdCgpLAorLSAgICAgICAgXyA9PiBGb250Rm9ybWF0SW5mbzo6ZGVm YXVsdCgpLAorKyAgICAgICAgXyA9PiBCb3g6Om5ldyhGb250Rm9ybWF0SW5mbzo6ZGVmYXVsdCgp KSwKICAgICAgfQogIH0KICAKLUBAIC00NCwxMCArNDQsMTAgQEAgZm4gZ2V0X2NvbHJfdmVyc2lv bihmb250X3JlZjogJkZvbnRSZWYpIC0+IE9wdGlvbjx1MTY+IHsKK0BAIC00NCwxMCArNDQsMTAg QEAgZm4gZ2V0X2NvbHJfdmVyc2lvbihmb250X3JlZjogJkZvbnRSZWYpCiAgICAgIFNvbWUoZm9u dF9yZWYuY29scigpLm9rKCk/LnZlcnNpb24oKSkKICB9CiAgCi0tZm4gaXNfY29scnYxKGZvcm1h dF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19jb2xydjEoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2NvbHJ2MShm b3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc19jb2xydjEoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIG1hdGNoZXMhKCZmb3Jt YXRfaW5mby5mb3JtYXRfZmxhZ3MsIFNvbWUoRm9udEZvcm1hdEZsYWdzIHsgY29sb3JfdmVyc2lv bjogU29tZSgxKSwgLi4gfSksKQogIH0KLS1mbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZv bnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZv bnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgbWF0Y2hlcyEoJmZvcm1hdF9pbmZvLmZvcm1h dF9mbGFncywgU29tZShGb250Rm9ybWF0RmxhZ3MgeyBjb2xvcl92ZXJzaW9uOiBTb21lKDApLCAu LiB9KSwpCiAgfQogIAotQEAgLTU2LDcgKzU2LDcgQEAgZm4gZ2V0X2F2YXJfdmVyc2lvbihmb250 X3JlZjogJkZvbnRSZWYpIC0+IE9wdGlvbjwodTE2LCB1MTYpPiB7CitAQCAtNTYsNyArNTYsNyBA QCBmbiBnZXRfYXZhcl92ZXJzaW9uKGZvbnRfcmVmOiAmRm9udFJlZikKICAgICAgU29tZSgodmVy c2lvbi5tYWpvciwgdmVyc2lvbi5taW5vcikpCiAgfQogIAotLWZuIGlzX2F2YXIyKGZvcm1hdF9p bmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19hdmFyMihmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfYXZhcjIoZm9ybWF0 X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfYXZhcjIoZm9ybWF0X2lu Zm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIG1hdGNoZXMhKCZmb3JtYXRfaW5m by5mb3JtYXRfZmxhZ3MsIFNvbWUoRm9udEZvcm1hdEZsYWdzIHsgYXZhcl92ZXJzaW9uOiBTb21l KCgyLCBfKSksIC4uIH0pLCkKICB9CiAgCi1AQCAtNjksMzkgKzY5LDIyIEBAIGZuIGhhc190YWdz KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8sIHF1ZXJ5OiAmW1RhZ10pIC0+IGJvb2wgewor QEAgLTY5LDIyICs2OSwzOSBAQCBmbiBoYXNfdGFncyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJ bmZvCiAgICAgIH0KICB9CiAgCi0tZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2luZm8sICZb VGFnOjpuZXcoYiJmdmFyIildKQogIH0KICAKLS1mbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1RhZzo6bmV3 KGIic2JpeCIpXSkKICB9CiAgCi0tZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19jYmR0X2NibGMoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5m bzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc19jYmR0X2NibGMoZm9ybWF0X2lu Zm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZv LCAmW1RhZzo6bmV3KGIiQ0JEVCIpLCBUYWc6Om5ldyhiIkNCTEMiKV0pCiAgfQogIAotLWZuIGlz X2ViZHRfZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKLStwdWIg Zm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewor LXB1YiBmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9v bCB7CisrZm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJv b2wgewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywgJltUYWc6Om5ldyhiIkVCRFQiKSwgVGFn OjpuZXcoYiJFQkxDIildKQogIH0KICAKLS1mbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgewotK3B1YiBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1RhZzo6bmV3KGIi Q0ZGMiIpXSkKICB9Ci0tCi0tI1tjeHg6OmJyaWRnZShuYW1lc3BhY2UgPSAiZm9udF9mb3JtYXRf Y2hlY2siKV0KLS1wdWIgbW9kIGZmaSB7Ci0tICAgIGV4dGVybiAiUnVzdCIgewotLSAgICAgICAg dHlwZSBGb250Rm9ybWF0SW5mbzsKLS0KLS0gICAgICAgIGZuIGdldF9mb250X2Zvcm1hdF9pbmZv KGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBCb3g8Rm9udEZvcm1hdEluZm8+OwotLSAgICAgICAgZm4g aXNfY29scnYxKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAg ICBmbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKLS0g ICAgICAgIGZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBi b29sOwotLSAgICAgICAgZm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdElu Zm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfc2JpeChmb3JtYXRfaW5mbzogJkZv bnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfY2ZmMihmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfYXZhcjIoZm9ybWF0X2lu Zm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKLS0gICAgfQotLX0KKysKKysjW2N4eDo6YnJp ZGdlKG5hbWVzcGFjZSA9ICJmb250X2Zvcm1hdF9jaGVjayIpXQorK3B1YiBtb2QgZmZpIHsKKysg ICAgZXh0ZXJuICJSdXN0IiB7CisrICAgICAgICB0eXBlIEZvbnRGb3JtYXRJbmZvOworKworKyAg ICAgICAgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczogJlt1OF0pIC0+IEJveDxG b250Rm9ybWF0SW5mbz47CisrICAgICAgICBmbiBpc19jb2xydjEoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAgIGZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfY2JkdF9jYmxjKGZvcm1h dF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAgICAgICBmbiBpc19lYmR0X2Vi bGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAgIGZuIGlz X3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAgICAg ICBmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAg ICAgICBmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Cisr ICAgICAgICBmbiBpc19hdmFyMihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29s OworKyAgICB9CisrfQoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTE1NC1mdGJmcy1wcml2YXRlLXZl cmlmaWNhdGlvbi10b2tlbnMucGF0Y2ggYi9jaHJvbWl1bS0xNTQtZnRiZnMtcHJpdmF0ZS12ZXJp ZmljYXRpb24tdG9rZW5zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjkwYmZkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xNTQtZnRiZnMtcHJpdmF0ZS12 ZXJpZmljYXRpb24tdG9rZW5zLnBhdGNoCkBAIC0wLDAgKzEsMjk3IEBACit1bmdvb2dsZWQgY2hy b21pdW0gcGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdW5nb29nbGVkLXNvZnR3YXJlL3Vu Z29vZ2xlZC1jaHJvbWl1bS9wdWxsLzM5NjYKKworLS0tIGEvY2hyb21lL2Jyb3dzZXIvQlVJTEQu Z24KKysrKyBiL2Nocm9tZS9icm93c2VyL0JVSUxELmduCitAQCAtMTAyMiw3ICsxMDIyLDYgQEAg c291cmNlX3NldCgiY29yZSIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJlbG9hZGluZy9z ZWFyY2hfcHJlbG9hZDpmZWF0dXJlIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9z YW5kYm94OmhlYWRlcnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX2FpIiwKKy0g ICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAg Ii8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6bWlzYyIsCisgICAgICIvL2Nocm9tZS9icm93c2Vy L3Byb2ZpbGVzOnByb2ZpbGVfaW9fZGF0YSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2Zp bGVzOnByb2ZpbGVzX2V4dHJhX3BhcnRzIiwKK0BAIC0yMjE1LDcgKzIyMTQsNiBAQCBzb3VyY2Vf c2V0KCJicm93c2VyIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcmVsb2FkaW5nL3NlYXJj aF9wcmVsb2FkIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmFjeSIsCisgICAgICIvL2No cm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDppbXBsIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIv cHJvZmlsZXM6bWlzYyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOnByb2ZpbGVf dXRpbF9pbXBsIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmlsZXNfZXh0 cmFfcGFydHNfaW1wbCIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL0JVSUxE LmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL0JVSUxELmduCitAQCAtMTI1 LDcgKzEyNSw2IEBAIHNvdXJjZV9zZXQoImltcGwiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2Vy L3ByZWxvYWRpbmcvcHJlZmV0Y2gvbm9fc3RhdGVfcHJlZmV0Y2giLAorICAgICAiLy9jaHJvbWUv YnJvd3Nlci9wcmVsb2FkaW5nL3ByZWZldGNoL3NlYXJjaF9wcmVmZXRjaCIsCisgICAgICIvL2No cm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDpoZWFkZXJzIiwKKy0gICAgIi8vY2hyb21lL2Jy b3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJvZmlsZXMva2VlcF9hbGl2ZSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3JlYWRpbmdf bGlzdCIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3NhZmVfYnJvd3NpbmciLAorQEAgLTI2Nyw3 ICsyNjYsNiBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy9jaHJvbWUvYnJv d3Nlci9wYXltZW50cy9icm93c2VyX2JpbmRpbmc6YnJvd3Nlcl9ib3VuZF9rZXlfZGVsZXRlciIs CisgICAgICIvL2Nocm9tZS9icm93c2VyL3BheW1lbnRzL2Jyb3dzZXJfYmluZGluZzp0ZXN0X3N1 cHBvcnQiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wZXJtaXNzaW9ucyIsCistICAgICIvL2No cm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIvL2Nocm9t ZS9icm93c2VyL3JlYWRpbmdfbGlzdCIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3NhZmVfYnJv d3Npbmc6dmVyZGljdF9jYWNoZV9tYW5hZ2VyX2ZhY3RvcnkiLAorICAgICAiLy9jaHJvbWUvYnJv d3Nlci9zZWdtZW50YXRpb25fcGxhdGZvcm0iLAorQEAgLTI5NSw3ICsyOTMsNiBAQCBzb3VyY2Vf c2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveDpw cml2YWN5X3NhbmRib3hfc2V0dGluZ3NfaGVhZGVycyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJp dmFjeV9zYW5kYm94L3ByaXZhY3lfc2FuZGJveF9hdHRlc3RhdGlvbnMiLAorICAgICAiLy9jb21w b25lbnRzL3ByaXZhY3lfc2FuZGJveC9wcml2YWN5X3NhbmRib3hfYXR0ZXN0YXRpb25zOnRlc3Rf c3VwcG9ydCIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5z L2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfZGF0YWJhc2UiLAorICAgICAiLy9j b21wb25lbnRzL3JlYWRpbmdfbGlzdC9jb3JlOnRlc3Rfc3VwcG9ydCIsCisgICAgICIvL2NvbXBv bmVudHMvc2FmZV9icm93c2luZy9jb3JlL2Jyb3dzZXI6dmVyZGljdF9jYWNoZV9tYW5hZ2VyIiwK KyAgICAgIi8vY29tcG9uZW50cy9zaXRlX2VuZ2FnZW1lbnQvY29udGVudCIsCistLS0gYS9jaHJv bWUvYnJvd3Nlci9icm93c2luZ19kYXRhL2Nocm9tZV9icm93c2luZ19kYXRhX21vZGVsX2RlbGVn YXRlLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL2Nocm9tZV9icm93c2lu Z19kYXRhX21vZGVsX2RlbGVnYXRlLmNjCitAQCAtMTI3LDE1ICsxMjcsNiBAQCB2b2lkIENocm9t ZUJyb3dzaW5nRGF0YU1vZGVsRGVsZWdhdGU6OkdlCisgCisgICBHZXRBbGxNZWRpYURldmljZVNh bHREYXRhS2V5cyhjb25jdXJyZW50LkNyZWF0ZUNhbGxiYWNrKCksIHt9KTsKKyAKKy0gIGlmIChi YXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVkKAorLSAgICAgICAgICBuZXQ6OmZlYXR1cmVzOjpr RW5hYmxlUHJpdmF0ZVZlcmlmaWNhdGlvblRva2VucykpIHsKKy0gICAgaWYgKGF1dG8qIHB2dF9z ZXJ2aWNlID0KKy0gICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZh Y3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmlsZV8pKSB7CistICAgICAgcHZ0X3NlcnZpY2UtPkdl dFRva2VuSXNzdWVycygKKy0gICAgICAgICAgYmFzZTo6QmluZE9uY2UoJlByaXZhdGVWZXJpZmlj YXRpb25Ub2tlbkJyb3dzaW5nRGF0YVRvRGVsZWdhdGVFbnRyaWVzKQorLSAgICAgICAgICAgICAg LlRoZW4oY29uY3VycmVudC5DcmVhdGVDYWxsYmFjaygpKSk7CistICAgIH0KKy0gIH0KKyAKKyAg IC8vIFRPRE8oY3JidWcuY29tLzQwMjA1NjAzKTogSW1wbGVtZW50IGRhdGEgcmV0cmlldmFsIGZv ciByZW1haW5pbmcgZGF0YQorICAgLy8gdHlwZXMuCitAQCAtMTgwLDIwICsxNzEsNiBAQCB2b2lk IENocm9tZUJyb3dzaW5nRGF0YU1vZGVsRGVsZWdhdGU6OlJlCisgICB9CisgI2VuZGlmICAvLyAh QlVJTERGTEFHKElTX0FORFJPSUQpCisgCistICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5h YmxlZCgKKy0gICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVWZXJpZmljYXRp b25Ub2tlbnMpICYmCistICAgICAgc3RvcmFnZV90eXBlcy5IYXMoc3RhdGljX2Nhc3Q8QnJvd3Np bmdEYXRhTW9kZWw6OlN0b3JhZ2VUeXBlPigKKy0gICAgICAgICAgU3RvcmFnZVR5cGU6OmtQcml2 YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSkpIHsKKy0gICAgaWYgKGNvbnN0IHVybDo6T3JpZ2luKiBv cmlnaW4gPSBzdGQ6OmdldF9pZjx1cmw6Ok9yaWdpbj4oJmRhdGFfa2V5KSkgeworLSAgICAgIGlm IChhdXRvKiBwdnRfc2VydmljZSA9CistICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9u VG9rZW5zU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUoCistICAgICAgICAgICAgICAgICAg cHJvZmlsZV8pKSB7CistICAgICAgICBwdnRfc2VydmljZS0+RGVsZXRlVG9rZW5zKGJhc2U6OlRp bWUoKSwgYmFzZTo6VGltZTo6TWF4KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbmN1cnJlbnQuQ3JlYXRlQ2xvc3VyZSgpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1cmw6Ok9yaWdpbj57Km9yaWdpbn0pOworLSAgICAgIH0K Ky0gICAgfQorLSAgfQorIAorICAgc3RkOjptb3ZlKGNvbmN1cnJlbnQpLkRvbmUoc3RkOjptb3Zl KGNhbGxiYWNrKSk7CisgfQorLS0tIGEvY2hyb21lL2Jyb3dzZXIvYnJvd3NpbmdfZGF0YS9jaHJv bWVfYnJvd3NpbmdfZGF0YV9yZW1vdmVyX2RlbGVnYXRlLmNjCisrKysgYi9jaHJvbWUvYnJvd3Nl ci9icm93c2luZ19kYXRhL2Nocm9tZV9icm93c2luZ19kYXRhX3JlbW92ZXJfZGVsZWdhdGUuY2MK K0BAIC03MjAsMjkgKzcyMCw2IEBAIHZvaWQgQ2hyb21lQnJvd3NpbmdEYXRhUmVtb3ZlckRlbGVn YXRlOjoKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAgIH0KKyAKKy0gIC8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLworLSAgLy8gREFUQV9UWVBFX1BSSVZBVEVfVkVSSUZJQ0FUSU9O X1RPS0VOUworLSAgaWYgKHJlbW92ZV9tYXNrICYgY29uc3RhbnRzOjpEQVRBX1RZUEVfUFJJVkFU RV9WRVJJRklDQVRJT05fVE9LRU5TKSB7CistICAgIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNF bmFibGVkKAorLSAgICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFibGVQcml2YXRlVmVyaWZp Y2F0aW9uVG9rZW5zKSkgeworLSAgICAgIGlmIChhdXRvKiBwdnRfc2VydmljZSA9CistICAgICAg ICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OkdldEZvclBy b2ZpbGUoCistICAgICAgICAgICAgICAgICAgcHJvZmlsZV8pKSB7CistICAgICAgICBhdXRvIGRv bmVfY2xvc3VyZSA9IENyZWF0ZVRhc2tDb21wbGV0aW9uQ2xvc3VyZSgKKy0gICAgICAgICAgICBU cmFjaW5nRGF0YVR5cGU6OmtQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKTsKKy0KKy0gICAgICAg IGlmIChmaWx0ZXJfYnVpbGRlci0+TWF0Y2hlc0FsbE9yaWdpbnNBbmREb21haW5zKCkpIHsKKy0g ICAgICAgICAgcHZ0X3NlcnZpY2UtPkRlbGV0ZVRva2VucyhkZWxldGVfYmVnaW5fLCBkZWxldGVf ZW5kXywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoZG9u ZV9jbG9zdXJlKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKmlzc3Vl cnM9Ki9zdGQ6Om51bGxvcHQpOworLSAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgcHZ0X3Nl cnZpY2UtPkRlbGV0ZVRva2Vuc0J5RmlsdGVyKAorLSAgICAgICAgICAgICAgZGVsZXRlX2JlZ2lu XywgZGVsZXRlX2VuZF8sCistICAgICAgICAgICAgICBmaWx0ZXJfYnVpbGRlci0+QnVpbGRTdG9y YWdlS2V5RmlsdGVyKCksIHN0ZDo6bW92ZShkb25lX2Nsb3N1cmUpKTsKKy0gICAgICAgIH0KKy0g ICAgICB9CistICAgIH0KKy0gIH0KKyAKKyAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgLy8g REFUQV9UWVBFX0NPTlRFTlRfU0VUVElOR1MKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Nocm9tZV9j b250ZW50X2Jyb3dzZXJfY2xpZW50LmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9jaHJvbWVfY29u dGVudF9icm93c2VyX2NsaWVudC5jYworQEAgLTYwMDksMjEgKzYwMDksNiBAQCBDaHJvbWVDb250 ZW50QnJvd3NlckNsaWVudDo6Q3JlYXRlVVJMTG9hCisgICAgIHJlc3VsdC5wdXNoX2JhY2soc3Rk Ojptb3ZlKHNpZ25pbl90aHJvdHRsZSkpOworICAgfQorIAorLSAgaWYgKGJhc2U6OkZlYXR1cmVM aXN0OjpJc0VuYWJsZWQoCistICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFibGVQcml2YXRl VmVyaWZpY2F0aW9uVG9rZW5zKSAmJgorLSAgICAgIHJlcXVlc3QuaXNfb3V0ZXJtb3N0X21haW5f ZnJhbWUpIHsKKy0gICAgaWYgKGF1dG8qIHB2dF9zZXJ2aWNlID0KKy0gICAgICAgICAgICBQcml2 YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OkdldEZvclByb2ZpbGUocHJvZmls ZSkpIHsKKy0gICAgICBhdXRvIHVybF9sb2FkZXJfZmFjdG9yeSA9IHByb2ZpbGUtPkdldERlZmF1 bHRTdG9yYWdlUGFydGl0aW9uKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPkdldFVSTExvYWRlckZhY3RvcnlGb3JCcm93c2VyUHJvY2VzcygpOworLSAgICAgIGlmIChh dXRvIHB2dF90aHJvdHRsZSA9CistICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9r ZW5zVVJMTG9hZGVyVGhyb3R0bGU6OkNyZWF0ZSgKKy0gICAgICAgICAgICAgICAgICBwdnRfc2Vy dmljZSwgcHJvZmlsZS0+SXNPZmZUaGVSZWNvcmQoKSwKKy0gICAgICAgICAgICAgICAgICBzdGQ6 Om1vdmUodXJsX2xvYWRlcl9mYWN0b3J5KSkpIHsKKy0gICAgICAgIHJlc3VsdC5wdXNoX2JhY2so c3RkOjptb3ZlKHB2dF90aHJvdHRsZSkpOworLSAgICAgIH0KKy0gICAgfQorLSAgfQorIAorICAg aWYgKGF1dG8gY29udGV4dHVhbF90YXNrc190aHJvdHRsZSA9CisgICAgICAgICAgIGNvbnRleHR1 YWxfdGFza3M6OkNvbnRleHR1YWxUYXNrc1VSTExvYWRlclRocm90dGxlOjpNYXliZUNyZWF0ZSgK Ky0tLSBhL2Nocm9tZS9icm93c2VyL2NvbXBvbmVudF91cGRhdGVyL0JVSUxELmduCisrKysgYi9j aHJvbWUvYnJvd3Nlci9jb21wb25lbnRfdXBkYXRlci9CVUlMRC5nbgorQEAgLTE0Nyw3ICsxNDcs NiBAQCBzb3VyY2Vfc2V0KCJpbXBsIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9uZXQiLAor ICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wYWdlX2xvYWRfbWV0cmljcyIsCisgICAgICIvL2Nocm9t ZS9icm93c2VyL3Blcm1pc3Npb25zIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92 ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJv ZmlsZSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3VwZGF0ZV9jbGllbnQiLAorICAgICAiLy9j aHJvbWUvY29tbW9uIiwKK0BAIC0xNjMsNyArMTYyLDYgQEAgc291cmNlX3NldCgiaW1wbCIpIHsK KyAgICAgIi8vY29tcG9uZW50cy9wZXJtaXNzaW9ucyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJp dmFjeV9zYW5kYm94OmZlYXR1cmVzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5X3NhbmRi b3gvcHJpdmFjeV9zYW5kYm94X2F0dGVzdGF0aW9ucyIsCistICAgICIvL2NvbXBvbmVudHMvcHJp dmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tl bnNfaXNzdWVyX2NvbmZpZyIsCisgICAgICIvL2NvbXBvbmVudHMvc2FmZV9icm93c2luZy9jb3Jl L2NvbW1vbjpmZWF0dXJlcyIsCisgICAgICIvL2NvbXBvbmVudHMvc2VhcmNoIiwKKyAgICAgIi8v Y29tcG9uZW50cy9zZWN1cml0eV9pbnRlcnN0aXRpYWxzL2NvbnRlbnQ6c2VjdXJpdHlfaW50ZXJz dGl0aWFsX3BhZ2UiLAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvY29tcG9uZW50X3VwZGF0ZXIvcHJp dmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2luc3RhbGxlci5jYworKysrIGIvY2hyb21lL2Jyb3dz ZXIvY29tcG9uZW50X3VwZGF0ZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2luc3RhbGxl ci5jYworQEAgLTI1LDMyICsyNSw2IEBAIG5hbWVzcGFjZSBjb21wb25lbnRfdXBkYXRlciB7Cisg Cisgdm9pZCBSZWdpc3RlclByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNDb21wb25lbnRJZkVuYWJs ZWQoCisgICAgIENvbXBvbmVudFVwZGF0ZVNlcnZpY2UqIGN1cykgeworLSAgaWYgKCFiYXNlOjpG ZWF0dXJlTGlzdDo6SXNFbmFibGVkKAorLSAgICAgICAgICBuZXQ6OmZlYXR1cmVzOjprRW5hYmxl UHJpdmF0ZVZlcmlmaWNhdGlvblRva2VucykpIHsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAg YXV0byBpbnN0YWxsZXIgPSBiYXNlOjpNYWtlUmVmQ291bnRlZDxDb21wb25lbnRJbnN0YWxsZXI+ KAorLSAgICAgIHN0ZDo6bWFrZV91bmlxdWU8UHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc0luc3Rh bGxlclBvbGljeT4oCistICAgICAgICAgIGJhc2U6OkJpbmRSZXBlYXRpbmcoCistICAgICAgICAg ICAgICBbXShzY29wZWRfcmVmcHRyPHByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuczo6CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5z SXNzdWVyQ29uZmlnPgorLSAgICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9jb25maWcpIHsKKy0g ICAgICAgICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjpT ZXRHbG9iYWxJc3N1ZXJDb25maWcoCistICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfY29uZmln KTsKKy0gICAgICAgICAgICAgICAgaWYgKGdfYnJvd3Nlcl9wcm9jZXNzICYmIGdfYnJvd3Nlcl9w cm9jZXNzLT5wcm9maWxlX21hbmFnZXIoKSkgeworLSAgICAgICAgICAgICAgICAgIGZvciAoUHJv ZmlsZSogcHJvZmlsZSA6IGdfYnJvd3Nlcl9wcm9jZXNzLT5wcm9maWxlX21hbmFnZXIoKQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPkdldExvYWRlZFBy b2ZpbGVzKCkpIHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIChQcml2YXRlVmVyaWZpY2F0aW9u VG9rZW5zU2VydmljZSogc2VydmljZSA9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBy aXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHZXRGb3JQcm9maWxlSWZFeGlzdHMocHJvZmlsZSkpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgc2VydmljZS0+U2V0SXNzdWVyQ29uZmlnKGlzc3Vlcl9jb25maWcp OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgfSkpKTsKKy0KKy0gIGluc3RhbGxlci0+UmVnaXN0 ZXIoY3VzLCBiYXNlOjpPbmNlQ2xvc3VyZSgpKTsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlIGNv bXBvbmVudF91cGRhdGVyCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlv bl90b2tlbnMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vucy9CVUlMRC5nbgorQEAgLTI2LDExICsyNiw2IEBAIHN0YXRpY19saWJyYXJ5KCJw cml2YXRlX3ZlcmlmaWNhdGlvbl90b2sKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6 cHJvZmlsZSIsCisgICAgICIvL2NvbXBvbmVudHMvY29udGVudF9zZXR0aW5ncy9jb3JlL2Jyb3dz ZXIiLAorICAgICAiLy9jb21wb25lbnRzL2tleWVkX3NlcnZpY2UvY29yZSIsCistICAgICIvL2Nv bXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YWN5X3Bhc3Nf YXRobV9iYXRjaF9yZXF1ZXN0IiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNh dGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19mZXRjaGVyIiwK Ky0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnBy aXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwKKy0gICAgIi8vY29tcG9u ZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vuc19wYXJhbWV0ZXJzIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3Zlcmlm aWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19zdG9yZSIs CisgICAgICIvL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIiLAorICAgICAiLy9uZXQiLAorICAgICAi Ly9zZXJ2aWNlcy9uZXR3b3JrL3B1YmxpYy9jcHAiLAorQEAgLTQ5LDkgKzQ0LDYgQEAgc291cmNl X3NldCgiYnJvd3Nlcl90ZXN0cyIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvY29udGVudF9z ZXR0aW5nczpjb250ZW50X3NldHRpbmdzX2ZhY3RvcnkiLAorICAgICAiLy9jaHJvbWUvdGVzdDp0 ZXN0X3N1cHBvcnQiLAorICAgICAiLy9jb21wb25lbnRzL2NvbnRlbnRfc2V0dGluZ3MvY29yZS9j b21tb24iLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9j b21tb246YXRobV90ZXN0X2lzc3VlciIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJp ZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfZGF0YWJh c2UiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21t b246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorICAgICAiLy9u ZXQ6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yazp0ZXN0X3N1cHBvcnQi LAorICAgICAiLy91cmwiLAorQEAgLTcyLDExICs2NCw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVz dHMiKSB7CisgICAgICIvL2Nocm9tZS90ZXN0OnRlc3Rfc3VwcG9ydCIsCisgICAgICIvL2NvbXBv bmVudHMvY29udGVudF9zZXR0aW5ncy9jb3JlL2Jyb3dzZXIiLAorICAgICAiLy9jb21wb25lbnRz L2NvbnRlbnRfc2V0dGluZ3MvY29yZS9jb21tb24iLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZh dGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246YXRobV90ZXN0X2lzc3VlciIsCistICAgICIv L2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3Zl cmlmaWNhdGlvbl90b2tlbnNfZGF0YWJhc2UiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVf dmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lz c3Vlcl9jb25maWciLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rv a2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX3BhcmFtZXRlcnMiLAorLSAg ICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246dGVzdF9z dXBwb3J0IiwKKyAgICAgIi8vY29udGVudC90ZXN0OnRlc3Rfc3VwcG9ydCIsCisgICAgICIvL25l dCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcms6dGVzdF9zdXBwb3J0IiwKKy0tLSBhL2Nocm9t ZS9icm93c2VyL3Byb2ZpbGVzL0JVSUxELmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wcm9maWxl cy9CVUlMRC5nbgorQEAgLTgwOSw3ICs4MDksNiBAQCBzb3VyY2Vfc2V0KCJwcm9maWxlc19leHRy YV9wYXJ0c19pbXBsIikKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9zYW5kYm94Omhl YWRlcnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX2FpIiwKKyAgICAgIi8vY2hy b21lL2Jyb3dzZXIvcHJpdmF0ZV9pbnNpZ2h0cyIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3By aXZhdGVfdmVyaWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3B1c2hf bWVzc2FnaW5nIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVhZGluZ19saXN0IiwKKyAgICAg Ii8vY2hyb21lL2Jyb3dzZXIvcmVkdWNlX2FjY2VwdF9sYW5ndWFnZSIsCistLS0gYS9jaHJvbWUv YnJvd3Nlci9wcm9maWxlcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX3Byb2ZpbGVz LmNjCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4 dHJhX3BhcnRzX3Byb2ZpbGVzLmNjCitAQCAtMTM3MSw3ICsxMzcxLDYgQEAgdm9pZCBDaHJvbWVC cm93c2VyTWFpbkV4dHJhUGFydHNQcm9maWxlcworICAgUHJpdmFjeU1ldHJpY3NTZXJ2aWNlRmFj dG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIFByaXZhY3lTYW5kYm94U2VydmljZUZhY3Rvcnk6Okdl dEluc3RhbmNlKCk7CisgICBQcml2YWN5U2FuZGJveFNldHRpbmdzRmFjdG9yeTo6R2V0SW5zdGFu Y2UoKTsKKy0gIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6R2V0SW5z dGFuY2UoKTsKKyAgIHByaXZhdGVfYWk6OlByaXZhdGVBaVNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0 YW5jZSgpOworICAgUHJvZmlsZU5ldHdvcmtDb250ZXh0U2VydmljZUZhY3Rvcnk6OkdldEluc3Rh bmNlKCk7CisgICBQcm9maWxlUGFzc3dvcmRTdG9yZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7Cist LS0gYS9jaHJvbWUvdGVzdC9CVUlMRC5nbgorKysrIGIvY2hyb21lL3Rlc3QvQlVJTEQuZ24KK0BA IC0yMTM3LDcgKzIxMzcsNiBAQCBpZiAoIWlzX2FuZHJvaWQpIHsKKyAgICAgICAiLy9jaHJvbWUv YnJvd3Nlci9wcml2YWN5X3NhbmRib3g6aGVhZGVycyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJpdmFjeV9zYW5kYm94OnRlc3Rfc3VwcG9ydCIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJpdmF0ZV9haSIsCistICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmlj YXRpb25fdG9rZW5zOmJyb3dzZXJfdGVzdHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3By b2ZpbGVfcmVzZXR0ZXIiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVfcmVzZXR0 ZXI6YnJvd3Nlcl90ZXN0cyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMiLAor QEAgLTU0MDEsNyArNTQwMCw2IEBAIHRlc3QoInVuaXRfdGVzdHMiKSB7CisgICAgICIvL2Nocm9t ZS9icm93c2VyL3ByZWxvYWRpbmcvcHJlcmVuZGVyOnVuaXRfdGVzdHMiLAorICAgICAiLy9jaHJv bWUvYnJvd3Nlci9wcml2YWN5X3NhbmRib3g6dW5pdF90ZXN0cyIsCisgICAgICIvL2Nocm9tZS9i cm93c2VyL3ByaXZhdGVfYWk6dW5pdF90ZXN0cyIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3By aXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuczp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY2hyb21lL2Jy b3dzZXIvcHJvZmlsZXMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczptaXNjIiwK KyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmlsZV9kb3dubG9hZGVyIiwKKy0t LSBhL2NvbXBvbmVudHMvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvQlVJTEQuZ24KK0BAIC0z MTQsNyArMzE0LDYgQEAgdGVzdCgiY29tcG9uZW50c191bml0dGVzdHMiKSB7CisgICAgICIvL2Nv bXBvbmVudHMvcG93ZXJfbWV0cmljczp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy9w cmVmczp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5X3NhbmRib3g6dW5p dF90ZXN0cyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5z OnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3Byb2ZpbGVfbWV0cmljczp1bml0X3Rl c3RzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcm90b19leHRyYXM6dW5pdF90ZXN0cyIsCisgICAg ICIvL2NvbXBvbmVudHMvcHJveHlfY29uZmlnOnVuaXRfdGVzdHMiLAorLS0tIGEvY29tcG9uZW50 cy9jb21wb25lbnRfdXBkYXRlci9pbnN0YWxsZXJfcG9saWNpZXMvQlVJTEQuZ24KKysrKyBiL2Nv bXBvbmVudHMvY29tcG9uZW50X3VwZGF0ZXIvaW5zdGFsbGVyX3BvbGljaWVzL0JVSUxELmduCitA QCAtMzgsNyArMzgsNiBAQCBzdGF0aWNfbGlicmFyeSgiaW5zdGFsbGVyX3BvbGljaWVzX25vX2Nv CisgICAgICIvL2NvbXBvbmVudHMvbG9va2FsaWtlcy9jb3JlOnByb3RvIiwKKyAgICAgIi8vY29t cG9uZW50cy9sb29rYWxpa2VzL2NvcmU6c2FmZXR5X3RpcHMiLAorICAgICAiLy9jb21wb25lbnRz L3ByZWZzIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMv Y29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwKKyAgICAg Ii8vY29tcG9uZW50cy91cGRhdGVfY2xpZW50IiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL2Jh c2U6cHJvdG9idWZfc3VwcG9ydCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcmsvcHVibGljL2Nw cCIsCitAQCAtMTA2LDggKzEwNSw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVzdHMiKSB7CisgICAg ICIvL2NvbXBvbmVudHMvaGlzdG9yeV9lbWJlZGRpbmdzL2NvcmUiLAorICAgICAiLy9jb21wb25l bnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlIiwKKyAgICAgIi8vY29tcG9uZW50cy9vcHRpbWl6 YXRpb25fZ3VpZGUvcHJvdG86b3B0aW1pemF0aW9uX2d1aWRlX3Byb3RvIiwKKy0gICAgIi8vY29t cG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZp Y2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRl X3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnRlc3Rfc3VwcG9ydCIsCisgICAgICIvL21vam8v cHVibGljL2NwcC9iYXNlOnByb3RvYnVmX3N1cHBvcnQiLAorICAgICAiLy9zZXJ2aWNlcy9uZXR3 b3JrL3B1YmxpYy9jcHAiLAorICAgICAiLy90ZXN0aW5nL2dtb2NrIiwKCmRpZmYgLS1naXQgYS9j aHJvbWl1bS5zcGVjIGIvY2hyb21pdW0uc3BlYwppbmRleCA0N2VkOWM4Li42ZTcxNDkxIDEwMDY0 NAotLS0gYS9jaHJvbWl1bS5zcGVjCisrKyBiL2Nocm9taXVtLnNwZWMKQEAgLTMyNyw4ICszMjcs NyBAQCBQYXRjaDkzOiBjaHJvbWl1bS0xNDEtY3Nzc19zdHlsZV9zaGVldC5wYXRjaAogCiAjIHJl dmVydCB0aGUgcGF0Y2ggdG8gZml4IHRoZSBidWlsZCBlcnJvcjogImxkLmxsZDogZXJyb3I6IHVu ZGVmaW5lZCBzeW1ib2w6IF9fc2FuaXRpemVyX3NldF9kZWF0aF9jYWxsYmFjayIKIFBhdGNoOTQ6 IGNocm9taXVtLTE0OC12OC1zYW5pdGl6ZS1idWlsZC1lcnJvci5wYXRjaAotIyBGaXggcnVzdCBi dWlsZCBlcnJvcgotUGF0Y2g5NTogY2hyb21pdW0tMTUyLWJ1aWxkLWVycm9yLXJ1c3QtY2Jvci5w YXRjaAorCiAjIEZUQkZTIC0gZXJyb3I6IGNhbm5vdCBmaW5kIGF0dHJpYnV0ZSBgc2FuaXRpemVg IGluIHRoaXMgc2NvcGUKICMgICAgLS0+IC4uLy4uL3RoaXJkX3BhcnR5L2NyYWJieWF2aWYvc3Jj L3NyYy9jYXBpL2lvLnJzOjIxMDo0MQogIyAgICAgfApAQCAtNDAzLDggKzQwMiwxNCBAQCBQYXRj aDMxMTogY2hyb21pdW0tMTIzLWZzdGFjay1wcm90ZWN0b3Itc3Ryb25nLnBhdGNoCiAjIEVSUk9S IGF0IC8vYnVpbGQvcnVzdC9jcnViaXQvQlVJTEQuZ246MTI6NTogCiAjIFVuYWJsZSB0byBsb2Fk IHRoaXJkX3BhcnR5L3J1c3QtdG9vbGNoYWluL2xpYi90aGlyZF9wYXJ0eS9jcnViaXQvc3VwcG9y dC9yc19zdGQvQlVJTEQuZ24KICMgIiRjcnViaXRfc3JjX2Rpci9zdXBwb3J0L3JzX3N0ZDpyc19z dGRfY3BwIiwKKyMgUGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdW5nb29nbGVkLXNvZnR3 YXJlL3VuZ29vZ2xlZC1jaHJvbWl1bS9wdWxsLzM5NjYKIFBhdGNoMzEyOiBjaHJvbWl1bS0xNTQt ZnRiZnMtY3J1Yml0LnBhdGNoCiAKKyMgRml4IEZUQkZTOgorIyBFUlJPUiBVbnJlc29sdmVkIGRl cGVuZGVuY2llcworIyBQYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29m dHdhcmUvdW5nb29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgorUGF0Y2gzMTM6IGNocm9taXVtLTE1 NC1mdGJmcy1wcml2YXRlLXZlcmlmaWNhdGlvbi10b2tlbnMucGF0Y2gKKwogIyBvbGQgcnVzdCB2 ZXJzaW9uIGNhdXNlcyBidWlsZCBlcnJvciBvbiBlbDg6CiAjIGVycm9yW0UwNTk5XTogbm8gbWV0 aG9kIG5hbWVkIGBpc19ub25lX29yYCBmb3VuZCBmb3IgZW51bSBgT3B0aW9uYCBpbiB0aGUgY3Vy cmVudCBzY29wZQogUGF0Y2gzMTQ6IGNocm9taXVtLTEzNi1ydXN0LXNrcmlmYS1idWlsZC1lcnJv ci5wYXRjaApAQCAtMTEwOCw3ICsxMTEzLDYgQEAgUXQ2IFVJIGZvciBjaHJvbWl1bS4KICVwYXRj aCAtUDkyIC1wMSAtYiAubm9kZWpzLWNoZWNrdmVyc2lvbgogJXBhdGNoIC1QOTMgLXAxIC1iIC5m dGJmcy1jc3NzX3N0eWxlX3NoZWV0CiAlcGF0Y2ggLVA5NCAtcDEgLVIgLWIgLnY4LXNhbml0aXpl LWJ1aWxkLWVycm9yCi0lcGF0Y2ggLVA5NSAtcDEgLWIgLmJ1aWxkLWVycm9yLXJ1c3QtY2Jvcgog JXBhdGNoIC1QOTYgLXAxIC1iIC5jcmFiYnlhdmlmLWZ0YmZzLW9sZC1ydXN0CiAKICVpZiAhICV7 YnVuZGxlZmZtcGVnZnJlZX0KQEAgLTExNjIsNyArMTE2Niw4IEBAIFF0NiBVSSBmb3IgY2hyb21p dW0uCiAlcGF0Y2ggLVAzMTUgLXAxIC1iIC5ydXN0Yy1mdGJmcwogJXBhdGNoIC1QMzEwIC1wMSAt YiAucnVzdC1GVEJGUy1zdXBwcmVzcy13YXJuaW5ncwogJXBhdGNoIC1QMzExIC1wMSAtYiAuZnN0 YWNrLXByb3RlY3Rvci1zdHJvbmcKLSVwYXRjaCAtUDMxMiAtcDEgLVIgLWIgLmZ0YmZzLWNydWJp dAorJXBhdGNoIC1QMzEyIC1wMSAtYiAuZnRiZnMtY3J1Yml0CislcGF0Y2ggLVAzMTMgLXAxIC1i IC5mdGJmcy1wcml2YXRlLXZlcmlmaWNhdGlvbi10b2tlbnMKIAogJWlmIDAlez9yaGVsfSAmJiAw JXs/cmhlbH0gPCAxMAogJXBhdGNoIC1QMzU0IC1wMSAtYiAuc3BsaXQtdGhyZXNob2xkLWZvci1y ZWctd2l0aC1oaW50CkBAIC0xNDAzLDcgKzE0MDgsNiBAQCBDSFJPTUlVTV9DT1JFX0dOX0RFRklO RVMrPScgaG9zdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOmRl ZgogQ0hST01JVU1fQlJPV1NFUl9HTl9ERUZJTkVTKz0nIHVzZV9jdXN0b21fbGliY3h4PWZhbHNl JwogJWVuZGlmCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScgaXNfZGVidWc9ZmFsc2UgZGNo ZWNrX2Fsd2F5c19vbj1mYWxzZSBkY2hlY2tfaXNfY29uZmlndXJhYmxlPWZhbHNlJwotQ0hST01J VU1fQ09SRV9HTl9ERUZJTkVTKz0nIGVuYWJsZV9lbnRlcnByaXNlX2NvbXBhbmlvbj1mYWxzZScK IENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBzeXN0ZW1fbGliZGlyPSIle19saWJ9IicKIAog JWlmICV7b2ZmaWNpYWxfYnVpbGR9Cg==