ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvcGhwY29tcGxldGUudmltIGIvcnVudGltZS9hdXRvbG9hZC9waHBjb21wbGV0ZS52aW0KaW5kZXggMGJkY2Q1ZC4uYzAwZTU1YyAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9waHBjb21wbGV0ZS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9waHBjb21wbGV0ZS52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6CUTDoXZpZCBTemFiw7MgKCBjb21wbGV4ODU3IEFUIGdtYWlsIERPVCBjb20gKQogIiBQcmV2aW91cyBNYWludGFpbmVyOglNaWtvbGFqIE1hY2hvd3NraSAoIG1pa21hY2ggQVQgd3AgRE9UIHBsICkKICIgVVJMOiBodHRwczovL2dpdGh1Yi5jb20vc2hhd25jcGx1cy9waHBjb21wbGV0ZS52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDE0IE1heSAzMAorIiBMYXN0IENoYW5nZTogIDIwMTQgSnVsIDI0CiAiCiAiCU9QVElPTlM6CiAiCkBAIC0yNzcsNyArMjc3LDcgQEAKICIgfX19CiAKIGZ1bmN0aW9uISBwaHBjb21wbGV0ZSNDb21wbGV0ZUdlbmVyYWwoYmFzZSwgY3VycmVudF9uYW1lc3BhY2UsIGltcG9ydHMpICIge3t7Ci0JIiBDb21wbGV0ZSBldmVyeXRoaW5nIGVsc2UgLQorCSIgQ29tcGxldGUgZXZlcnl0aGluZwogCSIgICsgZnVuY3Rpb25zLCAgRE9ORQogCSIgICsga2V5d29yZHMgb2YgbGFuZ3VhZ2UgRE9ORQogCSIgICsgZGVmaW5lcyAoY29uc3RhbnQgZGVmaW5pdGlvbnMpLCBET05FCkBAIC05NDksMTIgKzk0OSwxMSBAQAogCQllbmRpZgogCWVuZGZvcgogCi0JbGV0IGp2YXJzID0gam9pbih2YXJpYWJsZXMsICcgJykKLQlsZXQgc3ZhcnMgPSBzcGxpdChqdmFycywgJ1wkJykKKwlsZXQgc3RhdGljX3ZhcnMgPSBzcGxpdChqb2luKHZhcmlhYmxlcywgJyAnKSwgJ1wkJykKIAlsZXQgY192YXJpYWJsZXMgPSB7fQogCiAJbGV0IHZhcl9pbmRleCA9IDAKLQlmb3IgaSBpbiBzdmFycworCWZvciBpIGluIHN0YXRpY192YXJzCiAJCWxldCBjX3ZhciA9IG1hdGNoc3RyKGksCiAJCQkJCVwgJ15cenNbYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aXzAtOVx4N2YtXHhmZl0qXHplJykKIAkJaWYgY192YXIgIT0gJycKQEAgLTEwODMsNyArMTA4Miw2IEBACiAiIH19fQogCiBmdW5jdGlvbiEgcGhwY29tcGxldGUjR2V0VGFnbGlzdChwYXR0ZXJuKSAiIHt7ewotCiAJbGV0IGNhY2hlX2NoZWNrc3VtID0gJycKIAlpZiBnOnBocGNvbXBsZXRlX2NhY2hlX3RhZ2xpc3RzID09IDEKIAkJIiBidWlsZCBhIHN0cmluZyB3aXRoICBmb3JtYXQgb2YgIjx0YWdmaWxlPjo8bXRpbWU+JDx0YWdmaWxlMj46PG10aW1lMj4uLi4iCkBAIC0xNDQ3LDYgKzE0NDUsNyBAQAogCSIgR2V0IGNsYXNzIG5hbWUKIAkiIENsYXNzIG5hbWUgY2FuIGJlIGRldGVjdGVkIGluIGZldyB3YXlzOgogCSIgQHZhciAkbXlWYXIgY2xhc3MKKwkiIEB2YXIgY2xhc3MgJG15VmFyCiAJIiBpbiB0aGUgc2FtZSBsaW5lIChwaHAgNS40IChuZXcgQ2xhc3MpLT4gc3ludGF4KQogCSIgbGluZSBhYm92ZQogCSIgb3IgbGluZSBpbiB0YWdzIGZpbGUKQEAgLTE1MjUsNiArMTUyNCwxMSBAQAogCQlsZXQgb2JqZWN0X2lzX2FycmF5ID0gKG9iamVjdCA9fiAnXHZeW15bXStcWycgPyAxIDogMCkKIAkJbGV0IG9iamVjdCA9IG1hdGNoc3RyKG9iamVjdCwgdmFyaWFibGVfbmFtZV9wYXR0ZXJuKQogCisJCWxldCBmdW5jdGlvbl9ib3VuZGFyeSA9IHBocGNvbXBsZXRlI0dldEN1cnJlbnRGdW5jdGlvbkJvdW5kYXJpZXMoKQorCQlsZXQgc2VhcmNoX2VuZF9saW5lID0gbWF4KFsxLCBmdW5jdGlvbl9ib3VuZGFyeVswXVswXV0pCisJCSIgLTEgbWFrZXMgdXMgaWdub3JlIHRoZSBjdXJyZW50IGxpbmUgKHdoZXJlIHRoZSBjb21wbGV0aW9uIHdhcyBpbnZva2VkCisJCWxldCBsaW5lcyA9IHJldmVyc2UoZ2V0bGluZShzZWFyY2hfZW5kX2xpbmUsIGxpbmUoJy4nKSAtIDEpKQorCiAJCSIgY2hlY2sgQ29uc3RhbnQgbG9va3VwCiAJCWxldCBjb25zdGFudF9vYmplY3QgPSBtYXRjaHN0cihhOmNvbnRleHQsICdcenMnLmNsYXNzX25hbWVfcGF0dGVybi4nXHplOjonKQogCQlpZiBjb25zdGFudF9vYmplY3QgIT0gJycKQEAgLTE1MzMsMjEgKzE1MzcsMjAgQEAKIAogCQlpZiBjbGFzc25hbWVfY2FuZGlkYXRlID09ICcnCiAJCQkiIHNjYW4gdGhlIGZpbGUgYmFja3dhcmRzIGZyb20gY3VycmVudCBsaW5lIGZvciBleHBsaWNpdCB0eXBlIGRlY2xhcmF0aW9uIChAdmFyICR2YXJpYWJsZSBDbGFzc25hbWUpCi0JCQlsZXQgaSA9IDEgIiBzdGFydCBmcm9tIHRoZSBjdXJyZW50IGxpbmUgLSAxCi0JCQl3aGlsZSBpIDwgYTpzdGFydF9saW5lCi0JCQkJbGV0IGxpbmUgPSBnZXRsaW5lKGE6c3RhcnRfbGluZSAtIGkpCisJCQlmb3IgbGluZSBpbiBsaW5lcwogCQkJCSIgaW4gZmlsZSBsb29rdXAgZm9yIC8qIEB2YXIgJGZvbyBDbGFzcyAqLwogCQkJCWlmIGxpbmUgPX4jICdAdmFyXHNcKycub2JqZWN0Lidcc1wrJy5jbGFzc19uYW1lX3BhdHRlcm4KIAkJCQkJbGV0IGNsYXNzbmFtZV9jYW5kaWRhdGUgPSBtYXRjaHN0cihsaW5lLCAnQHZhclxzXCsnLm9iamVjdC4nXHNcK1x6cycuY2xhc3NfbmFtZV9wYXR0ZXJuLidcKFxbXF1cKVw/JykKIAkJCQkJbGV0IFtjbGFzc25hbWVfY2FuZGlkYXRlLCBjbGFzc19jYW5kaWRhdGVfbmFtZXNwYWNlXSA9IHBocGNvbXBsZXRlI0V4cGFuZENsYXNzTmFtZShjbGFzc25hbWVfY2FuZGlkYXRlLCBhOmN1cnJlbnRfbmFtZXNwYWNlLCBhOmltcG9ydHMpCiAJCQkJCWJyZWFrCi0JCQkJZWxzZWlmIGxpbmUgIX4gJ15ccyokJwotCQkJCQkiIHR5cGUgaW5kaWNhdG9yIGNvbW1lbnRzIHNob3VsZCBiZSBuZXh0IHRvIHRoZSB2YXJpYWJsZQotCQkJCQkiIG5vbiBlbXB0eSBsaW5lcyBicmVhayB0aGUgc2VhcmNoCisJCQkJZW5kaWYKKwkJCQkiIGluIGZpbGUgbG9va3VwIGZvciAvKiBAdmFyIENsYXNzICRmb28gKi8KKwkJCQlpZiBsaW5lID1+IyAnQHZhclxzXCsnLmNsYXNzX25hbWVfcGF0dGVybi4nXHNcKycub2JqZWN0CisJCQkJCWxldCBjbGFzc25hbWVfY2FuZGlkYXRlID0gbWF0Y2hzdHIobGluZSwgJ0B2YXJcc1wrXHpzJy5jbGFzc19uYW1lX3BhdHRlcm4uJ1woXFtcXVwpXD9cemUnLidcc1wrJy5vYmplY3QpCisJCQkJCWxldCBbY2xhc3NuYW1lX2NhbmRpZGF0ZSwgY2xhc3NfY2FuZGlkYXRlX25hbWVzcGFjZV0gPSBwaHBjb21wbGV0ZSNFeHBhbmRDbGFzc05hbWUoY2xhc3NuYW1lX2NhbmRpZGF0ZSwgYTpjdXJyZW50X25hbWVzcGFjZSwgYTppbXBvcnRzKQogCQkJCQlicmVhawogCQkJCWVuZGlmCi0JCQkJbGV0IGkgKz0gMQotCQkJZW5kd2hpbGUKKwkJCWVuZGZvcgogCQllbmRpZgogCiAJCWlmIGNsYXNzbmFtZV9jYW5kaWRhdGUgIT0gJycKQEAgLTE1NTUsMTIgKzE1NTgsOSBAQAogCQkJIiByZXR1cm4gYWJzb2x1dGUgY2xhc3NuYW1lLCB3aXRob3V0IGxlYWRpbmcgXAogCQkJcmV0dXJuIChjbGFzc19jYW5kaWRhdGVfbmFtZXNwYWNlID09ICdcJyB8fCBjbGFzc19jYW5kaWRhdGVfbmFtZXNwYWNlID09ICcnKSA/IGNsYXNzbmFtZV9jYW5kaWRhdGUgOiBjbGFzc19jYW5kaWRhdGVfbmFtZXNwYWNlLidcJy5jbGFzc25hbWVfY2FuZGlkYXRlCiAJCWVuZGlmCi0KIAkJIiBzY2FuIHRoZSBmaWxlIGJhY2t3YXJkcyBmcm9tIHRoZSBjdXJyZW50IGxpbmUKIAkJbGV0IGkgPSAxCi0JCXdoaWxlIGkgPCBhOnN0YXJ0X2xpbmUgIiB7e3sKLQkJCWxldCBsaW5lID0gZ2V0bGluZShhOnN0YXJ0X2xpbmUgLSBpKQotCisJCWZvciBsaW5lIGluIGxpbmVzICIge3t7CiAJCQkiIGRvIGluLWZpbGUgbG9va3VwIG9mICR2YXIgPSBuZXcgQ2xhc3MKIAkJCWlmIGxpbmUgPX4jICdeXHMqJy5vYmplY3QuJ1xzKj1ccypuZXdcc1wrJy5jbGFzc19uYW1lX3BhdHRlcm4gJiYgIW9iamVjdF9pc19hcnJheQogCQkJCWxldCBjbGFzc25hbWVfY2FuZGlkYXRlID0gbWF0Y2hzdHIobGluZSwgb2JqZWN0LidcY1xzKj1ccypuZXdccypcenMnLmNsYXNzX25hbWVfcGF0dGVybi4nXHplJykKQEAgLTE3MjIsNyArMTcyMiw3IEBACiAJCQllbmRpZgogCiAJCQlsZXQgaSArPSAxCi0JCWVuZHdoaWxlICIgfX19CisJCWVuZGZvciAiIH19fQogCiAJCWlmIGNsYXNzbmFtZV9jYW5kaWRhdGUgIT0gJycKIAkJCWxldCBbY2xhc3NuYW1lX2NhbmRpZGF0ZSwgY2xhc3NfY2FuZGlkYXRlX25hbWVzcGFjZV0gPSBwaHBjb21wbGV0ZSNHZXRDYWxsQ2hhaW5SZXR1cm5UeXBlKGNsYXNzbmFtZV9jYW5kaWRhdGUsIGNsYXNzX2NhbmRpZGF0ZV9uYW1lc3BhY2UsIGNsYXNzX2NhbmRpZGF0ZV9pbXBvcnRzLCBtZXRob2RzdGFjaykKQEAgLTE5NjIsNyArMTk2Miw5IEBACiAJCQlsZXQgbmFtZXNwYWNlID0gJ1wnCiAJCWVuZGlmCiAJCWxldCBjbGFzc2xvY2F0aW9uID0gcGhwY29tcGxldGUjR2V0Q2xhc3NMb2NhdGlvbihleHRlbmRzX2NsYXNzLCBuYW1lc3BhY2UpCi0JCWlmIGNsYXNzbG9jYXRpb24gIT0gJycgJiYgZmlsZXJlYWRhYmxlKGNsYXNzbG9jYXRpb24pCisJCWlmIGNsYXNzbG9jYXRpb24gPT0gIlZJTVBIUF9CVUlMVElOT0JKRUNUIgorCQkJbGV0IHJlc3VsdCArPSBbcGhwY29tcGxldGUjR2VuZXJhdGVCdWlsdGluQ2xhc3NTdHViKGc6cGhwX2J1aWx0aW5fY2xhc3Nlc1t0b2xvd2VyKGV4dGVuZHNfY2xhc3MpXSldCisJCWVsc2VpZiBjbGFzc2xvY2F0aW9uICE9ICcnICYmIGZpbGVyZWFkYWJsZShjbGFzc2xvY2F0aW9uKQogCQkJbGV0IGZ1bGxfZmlsZV9wYXRoID0gZm5hbWVtb2RpZnkoY2xhc3Nsb2NhdGlvbiwgJzpwJykKIAkJCWxldCByZXN1bHQgKz0gcGhwY29tcGxldGUjR2V0Q2xhc3NDb250ZW50c1N0cnVjdHVyZShmdWxsX2ZpbGVfcGF0aCwgcmVhZGZpbGUoZnVsbF9maWxlX3BhdGgpLCBleHRlbmRzX2NsYXNzKQogCQllbHNlaWYgdG9sb3dlcihjdXJyZW50X25hbWVzcGFjZSkgPT0gdG9sb3dlcihuYW1lc3BhY2UpCkBAIC0xOTg1LDYgKzE5ODcsNTEgQEAKIGVuZGZ1bmN0aW9uCiAiIH19fQogCitmdW5jdGlvbiEgcGhwY29tcGxldGUjR2VuZXJhdGVCdWlsdGluQ2xhc3NTdHViKGNsYXNzX2luZm8pICIge3t7CisJbGV0IHJlID0gJ2NsYXNzICcuYTpjbGFzc19pbmZvWyduYW1lJ10uIiB7IgorCWZvciBbbmFtZSwgaW5pdGlhbGl6ZXJdIGluIGl0ZW1zKGE6Y2xhc3NfaW5mby5jb25zdGFudHMpCisJCWxldCByZSAuPSAiXG5cdGNvbnN0ICIubmFtZS4iID0gIi5pbml0aWFsaXplci4iOyIKKwllbmRmb3IKKwlmb3IgW25hbWUsIGluZm9dIGluIGl0ZW1zKGE6Y2xhc3NfaW5mby5wcm9wZXJ0aWVzKQorCQlsZXQgcmUgLj0gIlxuXHQvLyBAdmFyICQiLm5hbWUuIiAiLmluZm8udHlwZQorCQlsZXQgcmUgLj0gIlxuXHRwdWJsaWMgJCIubmFtZS4iOyIKKwllbmRmb3IKKwlmb3IgW25hbWUsIGluZm9dIGluIGl0ZW1zKGE6Y2xhc3NfaW5mby5zdGF0aWNfcHJvcGVydGllcykKKwkJbGV0IHJlIC49ICJcblx0Ly8gQHZhciAiLm5hbWUuIiAiLmluZm8udHlwZQorCQlsZXQgcmUgLj0gIlxuXHRwdWJsaWMgc3RhdGljICIubmFtZS4iID0gIi5pbmZvLmluaXRpYWxpemVyLiI7IgorCWVuZGZvcgorCWZvciBbbmFtZSwgaW5mb10gaW4gaXRlbXMoYTpjbGFzc19pbmZvLm1ldGhvZHMpCisJCWlmIG5hbWUgPX4gJ15fXycKKwkJCWNvbnRpbnVlCisJCWVuZGlmCisJCWxldCByZSAuPSAiXG5cdC8qKiIKKwkJbGV0IHJlIC49ICJcblx0ICogIi5uYW1lCisJCWxldCByZSAuPSAiXG5cdCAqIgorCQlsZXQgcmUgLj0gIlxuXHQgKiBAcmV0dXJuICIuaW5mby5yZXR1cm5fdHlwZQorCQlsZXQgcmUgLj0gIlxuXHQgKi8iCisJCWxldCByZSAuPSAiXG5cdHB1YmxpYyBmdW5jdGlvbiAiLm5hbWUuIigiLmluZm8uc2lnbmF0dXJlLiIpeyIKKwkJbGV0IHJlIC49ICJcblx0fSIKKwllbmRmb3IKKwlmb3IgW25hbWUsIGluZm9dIGluIGl0ZW1zKGE6Y2xhc3NfaW5mby5zdGF0aWNfbWV0aG9kcykKKwkJbGV0IHJlIC49ICJcblx0LyoqIgorCQlsZXQgcmUgLj0gIlxuXHQgKiAiLm5hbWUKKwkJbGV0IHJlIC49ICJcblx0ICoiCisJCWxldCByZSAuPSAiXG5cdCAqIEByZXR1cm4gIi5pbmZvLnJldHVybl90eXBlCisJCWxldCByZSAuPSAiXG5cdCAqLyIKKwkJbGV0IHJlIC49ICJcblx0cHVibGljIHN0YXRpYyBmdW5jdGlvbiAiLm5hbWUuIigiLmluZm8uc2lnbmF0dXJlLiIpeyIKKwkJbGV0IHJlIC49ICJcblx0fSIKKwllbmRmb3IKKwlsZXQgcmUgLj0gIlxufSIKKworCXJldHVybiB7ICdjbGFzcyc6IGE6Y2xhc3NfaW5mb1snbmFtZSddLAorCQkJCVwgJ2NvbnRlbnQnOiByZSwKKwkJCQlcICduYW1lc3BhY2UnOiAnJywKKwkJCQlcICdpbXBvcnRzJzoge30sCisJCQkJXCAnZmlsZSc6ICdWSU1QSFBfQlVJTFRJTk9CSkVDVCcsCisJCQkJXCAnbXRpbWUnOiAwLAorCQkJCVwgfQorZW5kZnVuY3Rpb24gIiB9fX0KKwogZnVuY3Rpb24hIHBocGNvbXBsZXRlI0dldERvY0Jsb2NrKHNjY29udGVudCwgc2VhcmNoKSAiIHt7ewogCWxldCBpID0gMAogCWxldCBsID0gMApAQCAtMjMwNyw2ICsyMzU0LDQwIEBACiBlbmRmdW5jdGlvbgogIiB9fX0KIAorZnVuY3Rpb24hIHBocGNvbXBsZXRlI0dldEN1cnJlbnRGdW5jdGlvbkJvdW5kYXJpZXMoKSAiIHt7eworCWxldCBvbGRfY3Vyc29yX3BvcyA9IFtsaW5lKCcuJyksIGNvbCgnLicpXQorCWxldCBjdXJyZW50X2xpbmVfbm8gPSBvbGRfY3Vyc29yX3Bvc1swXQorCWxldCBmdW5jdGlvbl9wYXR0ZXJuID0gJ1xjXCguKlwlI1wpXEAhXF9eXHMqXHpzXChhYnN0cmFjdFxzXCtcfGZpbmFsXHNcK1x8cHJpdmF0ZVxzXCtcfHByb3RlY3RlZFxzXCtcfHB1YmxpY1xzXCtcfHN0YXRpY1xzXCtcKSpmdW5jdGlvblxfLlx7LX0oXF8uXHstfSlcXy5cey19eycKKworCWxldCBmdW5jX3N0YXJ0X3BvcyA9IHNlYXJjaHBvcyhmdW5jdGlvbl9wYXR0ZXJuLCAnV2JjJykKKwlpZiBmdW5jX3N0YXJ0X3BvcyA9PSBbMCwgMF0KKwkJY2FsbCBjdXJzb3Iob2xkX2N1cnNvcl9wb3NbMF0sIG9sZF9jdXJzb3JfcG9zWzFdKQorCQlyZXR1cm4gMAorCWVuZGlmCisKKwkiIGdldCB0aGUgbGluZSB3aGVyZSB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gYWN0dWFsbHkgc3RhcnRlZAorCWNhbGwgc2VhcmNoKCdcY2Z1bmN0aW9uXF8uXHstfShcXy5cey19KVxfLlx7LX17JywgJ1djZScpCisKKwkiIGdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGZ1bmN0aW9uIGJsb2NrJ3MgY2xvc2luZyAifSIKKwlsZXQgZnVuY19lbmRfcG9zID0gc2VhcmNocGFpcnBvcygneycsICcnLCAnfScsICdXJykKKwlpZiBmdW5jX2VuZF9wb3MgPT0gWzAsIDBdCisJCSIgdGhlcmUgaXMgYSBmdW5jdGlvbiBzdGFydCBidXQgbm8gZW5kIGZvdW5kLCBhc3N1bWUgdGhhdCB3ZSBhcmUgaW4gYQorCQkiIGZ1bmN0aW9uIGJ1dCB0aGUgdXNlciBkaWQgbm90IHR5cGVkIHRoZSBjbG9zaW5nICJ9IiB5ZXQgYW5kIHRoZQorCQkiIGZ1bmN0aW9uIHJ1bnMgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZQorCQlsZXQgZnVuY19lbmRfcG9zID0gW2xpbmUoJyQnKSwgbGVuKGdldGxpbmUobGluZSgnJCcpKSldCisJZW5kaWYKKworCSIgRGVjaG8gZnVuY19zdGFydF9wb3NbMF0uJyA8PSAnLmN1cnJlbnRfbGluZV9uby4nICYmICcuY3VycmVudF9saW5lX25vLicgPD0gJy5mdW5jX2VuZF9wb3NbMF0KKwlpZiBmdW5jX3N0YXJ0X3Bvc1swXSA8PSBjdXJyZW50X2xpbmVfbm8gJiYgY3VycmVudF9saW5lX25vIDw9IGZ1bmNfZW5kX3Bvc1swXQorCQljYWxsIGN1cnNvcihvbGRfY3Vyc29yX3Bvc1swXSwgb2xkX2N1cnNvcl9wb3NbMV0pCisJCXJldHVybiBbZnVuY19zdGFydF9wb3MsIGZ1bmNfZW5kX3Bvc10KKwllbmRpZgorCisJY2FsbCBjdXJzb3Iob2xkX2N1cnNvcl9wb3NbMF0sIG9sZF9jdXJzb3JfcG9zWzFdKQorCXJldHVybiAwCitlbmRmdW5jdGlvbgorIiB9fX0KKwogZnVuY3Rpb24hIHBocGNvbXBsZXRlI0V4cGFuZENsYXNzTmFtZShjbGFzc25hbWUsIGN1cnJlbnRfbmFtZXNwYWNlLCBpbXBvcnRzKSAiIHt7ewogCSIgaWYgdGhlcmUncyBhbiBpbXBvcnRlZCBjbGFzcywganVzdCB1c2UgdGhhdCBjbGFzcydzIGluZm9ybWF0aW9uCiAJaWYgaGFzX2tleShhOmltcG9ydHMsIGE6Y2xhc3NuYW1lKSAmJiAoYTppbXBvcnRzW2E6Y2xhc3NuYW1lXS5raW5kID09ICdjJyB8fCBhOmltcG9ydHNbYTpjbGFzc25hbWVdLmtpbmQgPT0gJ2knKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9nby52aW0gYi9ydW50aW1lL2NvbXBpbGVyL2dvLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjYzOGYyCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9jb21waWxlci9nby52aW0KQEAgLTAsMCArMSwyOSBAQAorIiBWaW0gY29tcGlsZXIgZmlsZQorIiBDb21waWxlcjoJR28KKyIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQtZ28pCisiIExhc3QgQ2hhbmdlOgkyMDE0IEF1ZyAxNgorCitpZiBleGlzdHMoJ2N1cnJlbnRfY29tcGlsZXInKQorICBmaW5pc2gKK2VuZGlmCitsZXQgY3VycmVudF9jb21waWxlciA9ICdnbycKKworaWYgZXhpc3RzKCc6Q29tcGlsZXJTZXQnKSAhPSAyCisgIGNvbW1hbmQgLW5hcmdzPSogQ29tcGlsZXJTZXQgc2V0bG9jYWwgPGFyZ3M+CitlbmRpZgorCitsZXQgczpzYXZlX2NwbyA9ICZjcG8KK3NldCBjcG8tPUMKKworQ29tcGlsZXJTZXQgbWFrZXByZz1nb1wgYnVpbGQKK0NvbXBpbGVyU2V0IGVycm9yZm9ybWF0PQorICAgIFwlLUcjXCAlLiUjLAorICAgIFwlQSVmOiVsOiVjOlwgJW0sCisgICAgXCVBJWY6JWw6XCAlbSwKKyAgICBcJUMlKlxccyVtLAorICAgIFwlLUclLiUjCisKK2xldCAmY3BvID0gczpzYXZlX2NwbwordW5sZXQgczpzYXZlX2NwbworCisiIHZpbTogc3c9MiBzdHM9MiBldApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvY21kbGluZS50eHQgYi9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dAppbmRleCBmNTgzODlhLi5hMzFmNzEwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dAorKysgYi9ydW50aW1lL2RvYy9jbWRsaW5lLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjbWRsaW5lLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgRmViIDIzCisqY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IEF1ZyAxNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTA4NCw2ICsxMDg0LDkgQEAKIHN0YXR1c2xpbmUgb2YgdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cgaXRzZWxmIGFuZCB0aGUgc3RhdHVzbGluZSBhYm92ZSBpdC4KIFRodXMgeW91IGNhbiByZXNpemUgdGhlIGNvbW1hbmQtbGluZSB3aW5kb3csIGJ1dCBub3Qgb3RoZXJzLgogCitUaGUgfGdldGNtZHdpbnR5cGUoKXwgZnVuY3Rpb24gcmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgY29tbWFuZC1saW5lIGJlaW5nCitlZGl0ZWQgYXMgZGVzY3JpYmVkIGluIHxjbWR3aW4tY2hhcnwuCisKIAogQVVUT0NPTU1BTkRTCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNjJhYTE2Ny4uMjhjYmI5MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdWwgMTkKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IEF1ZyAxNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xODA3LDcgKzE4MDcsOCBAQAogZ2V0Y2hhcm1vZCggKQkJCU51bWJlcgltb2RpZmllcnMgZm9yIHRoZSBsYXN0IHR5cGVkIGNoYXJhY3RlcgogZ2V0Y21kbGluZSgpCQkJU3RyaW5nCXJldHVybiB0aGUgY3VycmVudCBjb21tYW5kLWxpbmUKIGdldGNtZHBvcygpCQkJTnVtYmVyCXJldHVybiBjdXJzb3IgcG9zaXRpb24gaW4gY29tbWFuZC1saW5lCi1nZXRjbWR0eXBlKCkJCQlTdHJpbmcJcmV0dXJuIHRoZSBjdXJyZW50IGNvbW1hbmQtbGluZSB0eXBlCitnZXRjbWR0eXBlKCkJCQlTdHJpbmcJcmV0dXJuIGN1cnJlbnQgY29tbWFuZC1saW5lIHR5cGUKK2dldGNtZHdpbnR5cGUoKQkJCVN0cmluZwlyZXR1cm4gY3VycmVudCBjb21tYW5kLWxpbmUgd2luZG93IHR5cGUKIGdldGN1cnBvcygpCQkJTGlzdAlwb3NpdGlvbiBvZiB0aGUgY3Vyc29yCiBnZXRjd2QoKQkJCVN0cmluZwl0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeQogZ2V0Zm9udG5hbWUoIFt7bmFtZX1dKQkJU3RyaW5nCW5hbWUgb2YgZm9udCBiZWluZyB1c2VkCkBAIC0yMTEyLDggKzIxMTMsOCBAQAogYXJnbGlzdGlkKFt7d2lubnJ9LCBbIHt0YWJucn0gXV0pCiAJCVJldHVybiB0aGUgYXJndW1lbnQgbGlzdCBJRC4gIFRoaXMgaXMgYSBudW1iZXIgd2hpY2gKIAkJaWRlbnRpZmllcyB0aGUgYXJndW1lbnQgbGlzdCBiZWluZyB1c2VkLiAgWmVybyBpcyB1c2VkIGZvciB0aGUKLQkJZ2xvYmFsIGFyZ3VtZW50IGxpc3QuCi0JCVJldHVybiB6ZXJvIGlmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQuCisJCWdsb2JhbCBhcmd1bWVudCBsaXN0LiAgU2VlIHxhcmdsaXN0fC4KKwkJUmV0dXJuIC0xIGlmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQuCiAKIAkJV2l0aG91dCBhcmd1bWVudHMgdXNlIHRoZSBjdXJyZW50IHdpbmRvdy4KIAkJV2l0aCB7d2lubnJ9IG9ubHkgdXNlIHRoaXMgd2luZG93IGluIHRoZSBjdXJyZW50IHRhYiBwYWdlLgpAQCAtMzM0OSw2ICszMzUwLDExIEBACiAJCVJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG90aGVyd2lzZS4KIAkJQWxzbyBzZWUgfGdldGNtZHBvcygpfCwgfHNldGNtZHBvcygpfCBhbmQgfGdldGNtZGxpbmUoKXwuCiAKK2dldGNtZHdpbnR5cGUoKQkJCQkJCSpnZXRjbWR3aW50eXBlKCkqCisJCVJldHVybiB0aGUgY3VycmVudCB8Y29tbWFuZC1saW5lLXdpbmRvd3wgdHlwZS4gUG9zc2libGUgcmV0dXJuCisJCXZhbHVlcyBhcmUgdGhlIHNhbWUgYXMgfGdldGNtZHR5cGUoKXwuIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nCisJCXdoZW4gbm90IGluIHRoZSBjb21tYW5kLWxpbmUgd2luZG93LgorCiAJCQkJCQkJKmdldGN1cnBvcygpKgogZ2V0Y3VycG9zKCkJR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yLiAgVGhpcyBpcyBsaWtlIGdldHBvcygnLicpLCBidXQKIAkJaW5jbHVkZXMgYW4gZXh0cmEgaXRlbSBpbiB0aGUgbGlzdDoKQEAgLTMzNTksNyArMzM2NSw3IEBACiAJCQlsZXQgc2F2ZV9jdXJzb3IgPSBnZXRjdXJwb3MoKQogCQkJTW92ZVRoZUN1cnNvckFyb3VuZAogCQkJY2FsbCBzZXRwb3MoJy4nLCBzYXZlX2N1cnNvcikKLQorPAogCQkJCQkJCSpnZXRjd2QoKSoKIGdldGN3ZCgpCVRoZSByZXN1bHQgaXMgYSBTdHJpbmcsIHdoaWNoIGlzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50CiAJCXdvcmtpbmcgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggNDEzNmM5MS4uMmExMTRiYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdWwgMDYKKyppbnNlcnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgQXVnIDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01MSw2ICs1MSw4IEBACiAJCWFiYnJldmlhdGlvbi4KIAkJTm90ZTogSWYgeW91ciA8RXNjPiBrZXkgaXMgaGFyZCB0byBoaXQgb24geW91ciBrZXlib2FyZCwgdHJhaW4KIAkJeW91cnNlbGYgdG8gdXNlIENUUkwtWy4KKwkJSWYgRXNjIGRvZXNuJ3Qgd29yayBhbmQgeW91IGFyZSB1c2luZyBhIE1hYywgdHJ5IENUUkwtRXNjLgorCQlPciBkaXNhYmxlIExpc3RlbmluZyB1bmRlciBBY2Nlc3NpYmlsaXR5IHByZWZlcmVuY2VzLgogCQkJCQkJKmlfQ1RSTC1DKgogQ1RSTC1DCQlRdWl0IGluc2VydCBtb2RlLCBnbyBiYWNrIHRvIE5vcm1hbCBtb2RlLiAgRG8gbm90IGNoZWNrIGZvcgogCQlhYmJyZXZpYXRpb25zLiAgRG9lcyBub3QgdHJpZ2dlciB0aGUgfEluc2VydExlYXZlfCBhdXRvY29tbWFuZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCA5ZDljYjFmLi4yZGNmYTE5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IEp1bCAyMworKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgQXVnIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0IGIvcnVudGltZS9kb2MvcGF0dGVybi50eHQKaW5kZXggMjA3YTQzZC4uZjY2YWMxNyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGF0dGVybi50eHQKKysrIGIvcnVudGltZS9kb2MvcGF0dGVybi50eHQKQEAgLTEsNCArMSw0IEBACi0qcGF0dGVybi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IE1heSAyOAorKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdWwgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTcwNiwxMSArNzA2LDE4IEBACiAJQnV0IHRvIGxpbWl0IHRoZSB0aW1lIG5lZWRlZCwgb25seSB0aGUgbGluZSB3aGVyZSB3aGF0IGZvbGxvd3MgbWF0Y2hlcwogCWlzIHNlYXJjaGVkLCBhbmQgb25lIGxpbmUgYmVmb3JlIHRoYXQgKGlmIHRoZXJlIGlzIG9uZSkuICBUaGlzIHNob3VsZAogCWJlIHN1ZmZpY2llbnQgdG8gbWF0Y2ggbW9zdCB0aGluZ3MgYW5kIG5vdCBiZSB0b28gc2xvdy4KLQlUaGUgcGFydCBvZiB0aGUgcGF0dGVybiBhZnRlciAiXEA8PSIgYW5kICJcQDwhIiBhcmUgY2hlY2tlZCBmb3IgYQotCW1hdGNoIGZpcnN0LCB0aHVzIHRoaW5ncyBsaWtlICJcMSIgZG9uJ3Qgd29yayB0byByZWZlcmVuY2UgXChcKSBpbnNpZGUKLQl0aGUgcHJlY2VkaW5nIGF0b20uICBJdCBkb2VzIHdvcmsgdGhlIG90aGVyIHdheSBhcm91bmQ6Ci0JRXhhbXBsZQkJCW1hdGNoZXMgfgotCVwxXEA8PSxcKFthLXpdXCtcKQkiLGFiYyIgaW4gImFiYyxhYmMiCisKKwlJbiB0aGUgb2xkIHJlZ2V4cCBlbmdpbmUgdGhlIHBhcnQgb2YgdGhlIHBhdHRlcm4gYWZ0ZXIgIlxAPD0iIGFuZAorCSJcQDwhIiBhcmUgY2hlY2tlZCBmb3IgYSBtYXRjaCBmaXJzdCwgdGh1cyB0aGluZ3MgbGlrZSAiXDEiIGRvbid0IHdvcmsKKwl0byByZWZlcmVuY2UgXChcKSBpbnNpZGUgdGhlIHByZWNlZGluZyBhdG9tLiAgSXQgZG9lcyB3b3JrIHRoZSBvdGhlcgorCXdheSBhcm91bmQ6CisJQmFkIGV4YW1wbGUJCQltYXRjaGVzIH4KKwlcJSM9MVwxXEA8PSxcKFthLXpdXCtcKQkJIixhYmMiIGluICJhYmMsYWJjIgorCisJSG93ZXZlciwgdGhlIG5ldyByZWdleHAgZW5naW5lIHdvcmtzIGRpZmZlcmVudGx5LCBpdCBpcyBiZXR0ZXIgdG8gbm90CisJcmVseSBvbiB0aGlzIGJlaGF2aW9yLCBkbyBub3QgdXNlIFxAPD0gaWYgaXQgY2FuIGJlIGF2b2lkZWQ6CisJRXhhbXBsZQkJCQltYXRjaGVzIH4KKwlcKFthLXpdXCtcKVx6cyxcMQkJIixhYmMiIGluICJhYmMsYWJjIgogCiBcQDEyMzw9CiAJTGlrZSAiXEA8PSIgYnV0IG9ubHkgbG9vayBiYWNrIDEyMyBieXRlcy4gVGhpcyBhdm9pZHMgdHJ5aW5nIGxvdHMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAppbmRleCA3OWQ4N2ZhLi4wOTY5MjFmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNCBKdW4gMjUKKypxdWlja3JlZi50eHQqICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgQXVnIDA2CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC04MzEsNiArODMxLDcgQEAKICdyZWdleHBlbmdpbmUnCSAgJ3JlJwkgICAgZGVmYXVsdCByZWdleHAgZW5naW5lIHRvIHVzZQogJ3JlbGF0aXZlbnVtYmVyJyAgJ3JudScJICAgIHNob3cgcmVsYXRpdmUgbGluZSBudW1iZXIgaW4gZnJvbnQgb2YgZWFjaCBsaW5lCiAncmVtYXAnCQkJICAgIGFsbG93IG1hcHBpbmdzIHRvIHdvcmsgcmVjdXJzaXZlbHkKKydyZW5kZXJvcHRpb25zJwkgICdyb3AnCSAgICBvcHRpb25zIGZvciB0ZXh0IHJlbmRlcmluZyBvbiBXaW5kb3dzCiAncmVwb3J0JwkJICAgIHRocmVzaG9sZCBmb3IgcmVwb3J0aW5nIG5yLiBvZiBsaW5lcyBjaGFuZ2VkCiAncmVzdG9yZXNjcmVlbicgICAncnMnCSAgICBXaW4zMjogcmVzdG9yZSBzY3JlZW4gd2hlbiBleGl0aW5nCiAncmV2aW5zJwkgICdyaScJICAgIGluc2VydGluZyBjaGFyYWN0ZXJzIHdpbGwgd29yayBiYWNrd2FyZHMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDVjNDU0YzEuLjU1ZjIyMWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNzU2LDYgKzc1Niw3IEBACiAncmVnZXhwZW5naW5lJwlvcHRpb25zLnR4dAkvKidyZWdleHBlbmdpbmUnKgogJ3JlbGF0aXZlbnVtYmVyJwlvcHRpb25zLnR4dAkvKidyZWxhdGl2ZW51bWJlcicqCiAncmVtYXAnCW9wdGlvbnMudHh0CS8qJ3JlbWFwJyoKKydyZW5kZXJvcHRpb25zJwlvcHRpb25zLnR4dAkvKidyZW5kZXJvcHRpb25zJyoKICdyZXBvcnQnCW9wdGlvbnMudHh0CS8qJ3JlcG9ydCcqCiAncmVzdG9yZXNjcmVlbicJb3B0aW9ucy50eHQJLyoncmVzdG9yZXNjcmVlbicqCiAncmV2aW5zJwlvcHRpb25zLnR4dAkvKidyZXZpbnMnKgpAQCAtNzY2LDYgKzc2Nyw3IEBACiAncmxjJwlvcHRpb25zLnR4dAkvKidybGMnKgogJ3JudScJb3B0aW9ucy50eHQJLyoncm51JyoKICdybycJb3B0aW9ucy50eHQJLyoncm8nKgorJ3JvcCcJb3B0aW9ucy50eHQJLyoncm9wJyoKICdycycJb3B0aW9ucy50eHQJLyoncnMnKgogJ3J0cCcJb3B0aW9ucy50eHQJLyoncnRwJyoKICdydScJb3B0aW9ucy50eHQJLyoncnUnKgpAQCAtMTE3MSw2ICsxMTczLDcgQEAKICtkaWFsb2dfZ3VpCXZhcmlvdXMudHh0CS8qK2RpYWxvZ19ndWkqCiArZGlmZgl2YXJpb3VzLnR4dAkvKitkaWZmKgogK2RpZ3JhcGhzCXZhcmlvdXMudHh0CS8qK2RpZ3JhcGhzKgorK2RpcmVjdHgJdmFyaW91cy50eHQJLyorZGlyZWN0eCoKICtkbmQJdmFyaW91cy50eHQJLyorZG5kKgogK2VtYWNzX3RhZ3MJdmFyaW91cy50eHQJLyorZW1hY3NfdGFncyoKICtldmFsCXZhcmlvdXMudHh0CS8qK2V2YWwqCkBAIC00OTAyLDYgKzQ5MDUsNyBAQAogYmxvY2t3aXNlLXJlZ2lzdGVyCWNoYW5nZS50eHQJLypibG9ja3dpc2UtcmVnaXN0ZXIqCiBibG9ja3dpc2UtdmlzdWFsCXZpc3VhbC50eHQJLypibG9ja3dpc2UtdmlzdWFsKgogYmxvd2Zpc2gJb3B0aW9ucy50eHQJLypibG93ZmlzaCoKK2Jsb3dmaXNoMglvcHRpb25zLnR4dAkvKmJsb3dmaXNoMioKIGJvbGQJc3ludGF4LnR4dAkvKmJvbGQqCiBib20tYnl0ZXMJbWJ5dGUudHh0CS8qYm9tLWJ5dGVzKgogYm9vawlpbnRyby50eHQJLypib29rKgpAQCAtNjEzOCw2ICs2MTQyLDcgQEAKIGdldGNtZGxpbmUoKQlldmFsLnR4dAkvKmdldGNtZGxpbmUoKSoKIGdldGNtZHBvcygpCWV2YWwudHh0CS8qZ2V0Y21kcG9zKCkqCiBnZXRjbWR0eXBlKCkJZXZhbC50eHQJLypnZXRjbWR0eXBlKCkqCitnZXRjbWR3aW50eXBlKCkJZXZhbC50eHQJLypnZXRjbWR3aW50eXBlKCkqCiBnZXRjdXJwb3MoKQlldmFsLnR4dAkvKmdldGN1cnBvcygpKgogZ2V0Y3dkKCkJZXZhbC50eHQJLypnZXRjd2QoKSoKIGdldGZvbnRuYW1lKCkJZXZhbC50eHQJLypnZXRmb250bmFtZSgpKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCAyMWYyNGE3Li40YmU3ODY3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgSnVsIDI2CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IEF1ZyAyMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00NywzMSArNDcsNzMgQEAKIC0gRG9lcyBub3Qgd29yayB3aXRoIE5GQSByZWdleHAgZW5naW5lOgogICBcJXUsIFwleCwgXCVvLCBcJWQgZm9sbG93ZWQgYnkgYSBjb21wb3NpbmcgY2hhcmFjdGVyCiAtIEJ1ZyByZWxhdGluZyB0byBiYWNrIHJlZmVyZW5jZXMuIChJbmdvIEthcmthdCwgMjAxNCBKdWwgMjQpCistIFVzaW5nIGJhY2sgcmVmZXJlbmNlIGJlZm9yZSB0aGUgY2FwdHVyaW5nIGdyb3VwIHNvbWV0aW1lcyB3b3JrcyB3aXRoIHRoZSBvbGQKKyAgZW5naW5lLCBjYW4gd2UgZG8gdGhpcyB3aXRoIHRoZSBuZXcgZW5naW5lPyAgRS5nLiB3aXRoCisgICIvXCUoPFwxPlwpXEA8PS4qXCUoPFwvXChcd1wrXCk+XClcQD0iIG1hdGNoaW5nIHRleHQgaW5zaWRlIEhUTUwgdGFncy4KIAogU3RpbGwgdXNpbmcgZnJlZWQgbWVtb3J5IGFmdGVyIHVzaW5nIHNldGxvY2xpc3QoKS4gKGxjZCwgMjAxNCBKdWwgMjMpCitNb3JlIGluZm8gSnVsIDI0LiAgTm90IGNsZWFyIHdoeS4KKworUGF0Y2ggZm9yOgorICAgIENtZFVuZGVmaW5lZCAgICAtIExpa2UgRnVuY1VuZGVmaW5lZCBidXQgZm9yIHVzZXIgY29tbWFuZHMuCitZYXN1aGlybyBNYXRzdW1vdG8sIDIwMTQgQXVnIDE4CiAKIFBhdGNoIHRvIG1ha2UgZ2V0cmVndHlwZSgpIHJldHVybiB0aGUgcmlnaHQgc2l6ZSBmb3Igbm9uLWxpbnV4IHN5c3RlbXMuCiAoWWFzdWhpcm8gTWF0c3Vtb3RvLCAyMDE0IEp1bCA4KQogQnJlYWtzIHRlc3RfZXZhbC4gIEluZWZmaWNpZW50LCBjYW4gd2Ugb25seSBjb21wdXRlIHlfd2lkdGggd2hlbiBuZWVkZWQ/CiAKK1BhdGNoIHRvIGZpeCBhIHByb2JsZW0gd2l0aCBicmVha2luZGVudC4gKENocmlzdGlhbiBCcmFiYW5kdCwgMjAxNCBBdWcgMTcpCitJdCdzIGFjdHVhbGx5IG5vdCBhIGJyZWFraW5kZW50IHByb2JsZW0uIFdpdGggdGVzdDogQXVnIDE5LgorV2l0aCByZW5hbWVkIHRlc3Q6IEF1ZyAyMAorCiBQcm9ibGVtIHRoYXQgYSBwcmV2aW91cyBzaWxlbnQgIjp0aHJvdyIgY2F1c2VzIGEgZm9sbG93aW5nIHRyeS9jYXRjaCBub3QgdG8KIHdvcmsuIChaeVgsIDIwMTMgU2VwIDI4KQogCi1EaWZmQ2hhbmdlIGhpZ2hsaWdodGluZyBkb2Vzbid0IGNvbWJpbmUgd2l0aCAnY3Vyc3VybGluZScuIChCZW5qYW1pbiBGcml0eikKLVBhdGNoIGJ5IENocmlzdGlhbiAoMjAxNCBKdWwgMTIpCittbF9nZXQgZXJyb3Igd2hlbiB1c2luZyBQeXRob24sIGlzc3VlIDI0OC4KIAotQnVmV2luTGVhdmUgYXV0b2NvbW1hbmQgZXhlY3V0ZWQgaW4gdGhlIHdyb25nIGJ1ZmZlcj8gKERhdml0IFNhbXZlbHlhbiwgMjAxNAotSnVsIDE0KQorUGF0Y2ggdG8gZml4IHR5cG9zIGluIGhlbHAgZmlsZXMuIChEb21pbmlxdWUsIDIwMTQgQXVnIDkpCiAKLVdoZW4gJ2NsaXBib2FyZCcgaXMgInVubmFtZWQiLCA6Zy9wYXQvZCBpcyB2ZXJ5IHNsb3cuICBPbmx5IHNldCB0aGUgY2xpcGJvYXJkCi1hZnRlciB0aGUgbGFzdCBkZWxldGU/IChQcmFmdWwsIDIwMTQgTWF5IDI4KQotUGF0Y2ggYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE0IEp1biAxOC4gIFVwZGF0ZSBKdW4gMjUuCitXYXkgdG8gcmVwcm9kdWNlIHByb2JsZW0gdGhhdCBjaGFyYWN0ZXJzIGFyZSBwdXQgb24gdGhlIHNjcmVlbiB0d2ljZSBpbiBJbnNlcnQKK21vZGUgd2hlbiB1c2luZyBzeXN0ZW0oKS4gKEphY29iIE5pZWh1cywgMjAxNCBBdWcgOSkKK1JlbGF0ZWQgdG8gc2V0dGluZyBUTU9ERV9DT09LLiAgUGVyaGFwcyB3ZSBjYW4gb21pdCB0aGF0IGZvciBzeXN0ZW0oKT8KKworVXBkYXRlIGZvciBSb21hbmlhbiBzcGVsbCBmaWxlLiAoVmFuaWxsYSBJY2UsIDIwMTQgQXVnIDEzKQorCitQYXRjaCB0byByZW1vdmUgRVRPX0lHTk9SRUxBTkdVQUdFLCBpdCBjYXVzZXMgQ2hpbmVzZSBjaGFyYWN0ZXJzIG5vdCB0byBzaG93Cit1cC4gKFBhdWwgTW9vcmUsIDIwMTQgSnVsIDMwKQorU2hvdWxkIGl0IGRlcGVuZCBvbiB0aGUgV2luZG93cyB2ZXJzaW9uPyAgV2FpdGluZyBmb3IgZmVlZGJhY2suCitObyBsb25nZXIgbmVlZGVkIGFmdGVyIGluY2x1ZGluZyBEaXJlY3RYIHBhdGNoPworCitQYXRjaCBieSBNYXJjaW4gU3phbW90dWxza2kgdG8gYWRkIGNvdW50IHRvIDpjbG9zZSAoMjAxNCBBdWcgMTAsIHVwZGF0ZSBBdWcKKzE0KQorICAgIE1ha2UgIjoxY2xvc2UiIGNsb3NlIHRoZSBmaXJzdCB3aW5kb3cuCisgICAgTWFrZSAiOisxY2xvc2UiIGNsb3NlIHRoZSBuZXh0IHdpbmRvdy4KKyAgICBNYWtlICI6LTFjbG9zZSIgY2xvc2UgdGhlIHByZXZpb3VzIHdpbmRvdy4KK0Nhbid0IGVhc2lseSBjbG9zZSB0aGUgaGVscCB3aW5kb3csIGxpa2UgIjpwYyIgY2xvc2VzIHRoZSBwcmV2aWV3IHdpbmRvdyBhbmQKKyI6Y2NsIiBjbG9zZXMgdGhlIHF1aWNrZml4IHdpbmRvdy4gIEFkZCAiOmhjbG9zZSIuIChDaHJpcyBHYWFsKQorUGF0Y2ggZm9yIDpoZWxwY2xvc2UsIENocmlzdGlhbiBCcmFiYW5kdCwgMjAxMCBTZXAgNi4KKworUGF0Y2ggYnkgTWFyY2luIFN6YW1vdHVsc2tpIHRvIGFkZCArY21kIHRvIGJ1ZmZlciBjb21tYW5kcy4KKygyMDE0IEF1ZyAxOCkKKworUGF0Y2ggdG8gZml4IHRoYXQgc3lzdGVtKCkgd2l0aCBlbXB0eSBpbnB1dCBmYWlscy4gKE9sYWYgRGFicnVueiwgMjAxNCBBdWcgMTkpCisKK1doZW4gdXNpbmcgYSB2aXN1YWwgc2VsZWN0aW9uIG9mIG11bHRpcGxlIHdvcmRzIGFuZCBkb2luZyBDVFJMLVdfXSBpdCBqdW1wcyB0bwordGhlIHRhZyBtYXRjaGluZyB0aGUgd29yZCB1bmRlciB0aGUgY3Vyc29yLCBub3QgdGhlIHNlbGVjdGVkIHRleHQuCisoUGF0cmljayBoZW1tZXIpCitQYXRjaCBieSBDaHJpc3RpYW4sIDIwMTQgQXVnIDguCiAKIENvbXBsZXRpb24gZm9yIDpidWYgZG9lcyBub3QgdXNlICd3aWxkaWdub3JlY2FzZScuIChBa3NoYXkgSCwgMjAxNCBNYXkgMzEpCiAKK1BhdGNoIHRvIGhhbmRsZSBsaXN0IHdpdGggc29tZSBpdGVtcyBsb2NrZWQuIChaeVgsIDIwMTQgQXVnIDE3KQorUHJlZmVyIHRoZSBzZWNvbmQgc29sdXRpb24uCisKICI6Y2QgQzpcV2luZG93c1xTeXN0ZW0zMlxkcml2ZXJzXGV0YyoiIGRvZXMgbm90IHdvcmssIGV2ZW4gdGhvdWdoIHRoZQogZGlyZWN0b3J5IGV4aXN0cy4gKFNlcmdpbyBHYWxsZWxsaSwgMjAxMyBEZWMgMjkpCiAKK1BhdGNoIHRvIGFkZCBhIHNwZWNpYWwga2V5IG5hbWUgZm9yIEtfQ1VSU09SSE9MRC4gKEhpcm9oaXRvIEhpZ2FzaGksIDIwMTQgQXVnCisxMCkKKwogVGhlIGVudHJpZXMgYWRkZWQgYnkgbWF0Y2hhZGRwb3MoKSBhcmUgcmV0dXJuZWQgYnkgZ2V0bWF0Y2hlcygpIGJ1dCBjYW4ndCBiZQogc2V0IHdpdGggc2V0bWF0Y2hlcygpLiAobGNkNDcsIDIwMTQgSnVuIDI5KQogCkBAIC03OSw4ICsxMjEsNiBAQAogCiBQeXRob246ICI6cHkgcmF3X2lucHV0KCdwcm9tcHQnKSIgZG9lc24ndCB3b3JrLiAoTWFudSBIYWNrKQogCi1XaGVuIHVzaW5nIGFuIHVuZG8gZmlsZSwgYWxzbyByZXN0b3JlIHRoZSBjaGFuZ2VsaXN0LCBzbyB0aGF0ICJnOyIgd29ya3MuCi0KIFZhbHVlIHJldHVybmVkIGJ5IHZpcnRjb2woKSBjaGFuZ2VzIGRlcGVuZGluZyBvbiBob3cgbGluZXMgd3JhcC4gIFRoaXMgaXMKIGluY29uc2lzdGFudCB3aXRoIHRoZSBkb2N1bWVudGF0aW9uLgogCkBAIC05NCwxOSArMTM0LDEyIEBACiAiaGkgbGluayIgZG9lcyBub3QgcmVzcGVjdCBncm91cHMgd2l0aCBHVUkgc2V0dGluZ3Mgb25seS4gKE1hcmsgTG9kYXRvLCAyMDE0CiBKdW4gOCkKIAotU3ludGF4IGZpbGUgZm9yIGdudXBsb3QuICBFeGlzdGluZyBvbmUgaXMgdmVyeSBvbGQuIChBbmRyZXcgUmFzbXVzc2VuLCAyMDE0Ci1GZWIgMjQpCi0KLUlzc3VlIDE3NDogRGV0ZWN0IE1hc29uIGZpbGVzLgotCiBObyBlcnJvciBmb3IgbWlzc2luZyBlbmR3aGlsZS4gKFp5WCwgMjAxNCBNYXIgMjApCiAKLVBocGNvbXBsZXRlLnZpbSB1cGRhdGUuIChDb21wbGV4LCAyMDE0IEphbiAxNSkKK1BhdGNoIHRvIGFkZCA6YXJnbG9jYWwgYW5kIDphcmdsaXN0cy4gKE1hcmNpbiBTemFtb3R1bHNraSwgMjAxNCBBdWcgNikKIAogUEhQIHN5bnRheCBpcyBleHRyZW1lbHkgc2xvdy4gKEFuaGFkIEphaSBTaW5naCwgMjAxNCBKYW4gMTkpCiAKLVBhdGNoIGZvciBtYXRjaHBhcmVuLiAoSmFtZXMgTWNDb3ksIDIwMTQgSnVsIDExKQotCiBTcGVsbCBmaWxlcyB1c2UgYSBsYXRpbiBzaW5nbGUgcXVvdGUuIFVuaWNvZGUgYWxzbyBoYXMgYW5vdGhlciBzaW5nbGUgcXVvdGU6CiAweDIwMTkuICAoUm9uIEFhcm9uLCAyMDE0IEFwciA0KQogTmV3IE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMgc3VwcG9ydCB0aGlzIHdpdGggSUNPTlYuICBCdXQgdGhleSBhcmUgbm90CkBAIC0xMTYsOCArMTQ5LDggQEAKIEFsc28gZml4ZXMgd3JvbmcgcmVzdWx0IGZyb20gZXhlY3V0YWJsZSgpLgogVXBkYXRlIGZyb20gS2VuIFRha2F0YSwgMjAxNCBKYW4gMTAuIE5ld2VyIDIwMTQgQXByIDMuCiAKLVdpbjMyOiB1c2UgNjQgYml0IHN0YXQoKSBpZiBwb3NzaWJsZS4gKEtlbiBUYWthdGEsIDIwMTQgTWF5IDEyKQotTW9yZSB0ZXN0cyBNYXkgMTQuIFVwZGF0ZSBNYXkgMjkuCitXaW4zMjogcGF0Y2ggdG8gdXNlIDY0IGJpdCBzdGF0KCkgaWYgcG9zc2libGUuIChLZW4gVGFrYXRhLCAyMDE0IE1heSAxMikKK01vcmUgdGVzdHMgTWF5IDE0LiBVcGRhdGUgTWF5IDI5LiAgVXBkYXRlIEF1ZyAxMC4KIAogVGhlIGdhcmJhZ2UgY29sbGVjdG9yIG1heSB1c2UgdG9vIG11Y2ggc3RhY2suICBNYWtlIHNldF9yZWZfaW5faXRlbSgpCiBpdGVyYXRpdmUgaW5zdGVhZCBvZiByZWN1cnNpdmUuICAgVGVzdCBwcm9ncmFtIGJ5IE1hcmMgV2ViZXIgKDIwMTMgRGVjIDEwKQpAQCAtMjE1LDYgKzI0OCw4IEBACiAKIFBhdGNoIHRvIGFkZCB2OmNvbXBsZXRlZF9pdGVtLiAoU2hvdWdvIE1hdHN1LCAyMDEzIE5vdiAyOSkuCiAKK1BhdGNoIHRvIGdldCBNU1ZDIHZlcnNpb24gaW4gYSBuaWNlciB3YXkuIChLZW4gVGFrYXRhLCAyMDE0IEp1bCAyNCkKKwogUGF0Y2ggdG8gbWFrZSB0ZXN0IDEwMCB3b3JrIG9uIE1TLVdpbmRvd3MuIChUYXJvIE11cmFva2EsIDIwMTMgRGVjIDEyKQogCiBQYXRjaCB0byBkZWZpbmUgbWFjcm9zIGZvciBoYXJkY29kZWQgdmFsdWVzLiAoRWxpYXMgRGllbSwgMjAxMyBEZWMgMTQpCkBAIC0yMzAsNyArMjY1LDcgQEAKIEdvIHRocm91Z2ggbW9yZSBjb3Zlcml0eSByZXBvcnRzLgogCiBQYXRjaCB0byBhZGQgIjp1bmRvcmVjb3ZlciIsIGdldCBhcyBtdWNoIHRleHQgb3V0IG9mIHRoZSB1bmRvIGZpbGUgYXMKLXBvc3NpYmxlLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE0IE1hciAxMikKK3Bvc3NpYmxlLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE0IE1hciAxMiwgdXBkYXRlIEF1ZyAxNikKIAogSW5jbHVkZSBIYWlrdSBwb3J0PyAoQWRyaWVuIERlc3R1Z3VlcywgU2lhcnpodWsgWmhhcnNraSwgMjAxMyBPY3QgMjQpCiAKQEAgLTM2Nyw3ICs0MDIsNyBAQAogZnVuY3Rpb25zLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDEzIE1heSA4LCB1cGRhdGUgTWF5IDIxKQogUGF0Y2ggdG8gYWRkIGdldGxvY3N0YWNrKCkgLyBzZXRsb2NzdGFjaygpLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDEzIE1heSAxNCkKIFNlY29uZCBvbmUuIFVwZGF0ZSBNYXkgMjIuCi1VcGRhdGUgYnkgRGFuaWVsIEhhaGxlciwgMjAxNCBKdWwgNC4KK1VwZGF0ZSBieSBEYW5pZWwgSGFobGVyLCAyMDE0IEp1bCA0LCBBdWcgMTQuCiAKIFBhdGNoIHRvIG1ha2UgZm9sZCB1cGRhdGVzIG11Y2ggZmFzdGVyLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDEyIERlYykKIApAQCAtNDIyLDEzICs0NTcsNiBAQAogCiBQYXRjaCB0byByZW1vdmUgZmxpY2tlciBmcm9tIHBvcHVwIG1lbnUuIChZYXN1aGlybyBNYXRzdW1vdG8sIDIwMTMgQXVnIDE1KQogCi1QYXRjaCB0byB1c2UgZGlyZWN0WCB0byBkcmF3IHRleHQgb24gV2luZG93cy4gIEFkZHMgdGhlICdyZW5kZXJvcHRpb25zJwotb3B0aW9uLiAgKFRhcm8gTXVyYW9rYSwgMjAxMyBKYW4gMjUsIHVwZGF0ZSAyMDEzIEFwciAzLCBNYXkgMTQpCi1GaXhlcyB0aGlzIHByb2JsZW06Ci04ICAgV2luMzI6IE11bHRpLWJ5dGUgY2hhcmFjdGVycyBhcmUgbm90IGRpc3BsYXllZCwgZXZlbiB0aG91Z2ggdGhlIHNhbWUgZm9udAotICAgIGluIE5vdGVwYWQgY2FuIGRpc3BsYXkgdGhlbS4gKFNyaW5hdGggQXZhZGhhbnVsYSkgIFRyeSB3aXRoIHRoZQotICAgIFVURi04LWRlbW8udHh0IHBhZ2Ugd2l0aCBBbmRhbGUgTW9uby4KLQogUGF0Y2ggdG8gYWRkICdjb21wbGV0ZXNlbGVjdCcgb3B0aW9uLiAgU3BlY2lmaWVzIGhvdyB0byBzZWxlY3QgYSBjYW5kaWRhdGUgaW4KIGluc2VydCBjb21wbGV0aW9uLiAoU2hvdWdvLCAyMDEzIE1heSAyOSkKIFVwZGF0ZSB0byBhZGQgdG8gZXhpc3RpbmcgJ2NvbXBsZXRlb3B0Jy4gMjAxMyBNYXkgMzAKQEAgLTY0Miw2ICs2NzAsNyBAQAogV291bGQgYWxzbyBuZWVkIHRvIGRvIHRoaXMgZm9yIHNwZWxsYmFkd29yZCgpIGFuZCBzcGVsbHN1Z2dlc3QoKS4KIAogUGF0Y2ggZm9yIHZhcmlhYmxlIHRhYnN0b3BzLiAgT24gZ2l0aHViIChDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTQgTWF5IDE1KQorVXBkYXRlIEF1ZyAxNiAoZW1haWwpLgogCiBPbiA2NCBiaXQgTVMtV2luZG93cyAibG9uZyIgaXMgb25seSAzMiBiaXRzLCBidXQgd2Ugc29tZXRpbWVzIG5lZWQgdG8gc3RvcmUgYQogNjQgYml0cyB2YWx1ZS4gIENoYW5nZSBhbGwgbnVtYmVyIG9wdGlvbnMgdG8gdXNlIG5yb3B0X1QgYW5kIGRlZmluZSBpdCB0byB0aGUKQEAgLTEzNDksMTAgKzEzNzgsNiBAQAogQyBzeW50YXg6IHt9IGluc2lkZSAoKSBjYXVzZXMgZm9sbG93aW5nIHt9IHRvIGJlIGhpZ2hsaWdodGVkIGFzIGVycm9yLgogKE1pY2hhbGlzIEdpYW5uYWtpZGlzLCAyMDA2IEp1biAxKQogCi1DYW4ndCBlYXNpbHkgY2xvc2UgdGhlIGhlbHAgd2luZG93LCBsaWtlICI6cGMiIGNsb3NlcyB0aGUgcHJldmlldyB3aW5kb3cgYW5kCi0iOmNjbCIgY2xvc2VzIHRoZSBxdWlja2ZpeCB3aW5kb3cuICBBZGQgIjpoY2xvc2UiLiAoQ2hyaXMgR2FhbCkKLVBhdGNoIGZvciA6aGVscGNsb3NlLCBDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTAgU2VwIDYuCi0KIFdoZW4gJ2RpZmZvcHQnIGhhcyAiY29udGV4dDowIiBhIHNpbmdsZSBkZWxldGVkIGxpbmUgY2F1c2VzIHR3byBmb2xkcyB0byBtZXJnZQogYW5kIG1lc3MgdXAgc3luY2luZy4gKEF1c3RpbiBKZW5uaW5ncywgMjAwOCBKYW4gMzEpCiAKQEAgLTMwNDgsNiArMzA3Myw4IEBACiAKIAogRGlmZiBtb2RlOgorOSAgIFdoZW4gbWFraW5nIHNtYWxsIGNoYW5nZXMsIGUuZy4gZGVsZXRpbmcgYSBjaGFyYWN0ZXIsIHVwZGF0ZSB0aGUgZGlmZi4KKyAgICBQb3NzaWJseSB3aXRob3V0IHJ1bm5pbmcgZGlmZi4KIDkgICBJbnN0ZWFkIGludm9raW5nIGFuIGV4dGVybmFsIGRpZmYgcHJvZ3JhbSwgdXNlIGJ1aWx0aW4gY29kZS4gIE9uZSBjYW4gYmUKICAgICBmb3VuZCBoZXJlOiBodHRwOi8vd3d3LmlvcGxleC5jb20vfm1pYWxsZW4vbGlibWJhL2RsL3NyYy9kaWZmLmMKICAgICBJdCdzIHF1aXRlIGJpZyBhbmQgYmFkbHkgZG9jdW1lbnRlZCB0aG91Z2guCkBAIC0zOTQyLDcgKzM5NjksNiBAQAogCQkgICAgICB3aGVuIGV4aXRpbmcgaXNuJ3QgYSBnb29kIGlkZWEuCiAgICAgQ3Vyc29ySG9sZEMgICAgIC0gQ3Vyc29ySG9sZCB3aGlsZSBjb21tYW5kLWxpbmUgZWRpdGluZwogICAgIFdpbk1vdmVkCSAgICAtIHdoZW4gd2luZG93cyBoYXZlIGJlZW4gbW92ZWQgYXJvdW5kLCBlLmcsICI6d2luY21kIEoiCi0gICAgQ21kVW5kZWZpbmVkICAgIC0gTGlrZSBGdW5jVW5kZWZpbmVkIGJ1dCBmb3IgdXNlciBjb21tYW5kcy4KICAgICBTZWFyY2hQb3N0CSAgICAtIEFmdGVyIGRvaW5nIGEgc2VhcmNoIGNvbW1hbmQgKGUuZy4gdG8gZG8gIk0iKQogICAgIFByZURpckNoYW5nZWQvUG9zdERpckNoYW5nZWQKIAkJICAgIC0gQmVmb3JlL2FmdGVyICI6Y2QiIGhhcyBiZWVuIHVzZWQgKGZvciBjaGFuZ2luZyB0aGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CmluZGV4IGYzMGI3OWEuLjI4YmRiYWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDEudHh0KglGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgTWF5IDI4CisqdXNyXzQxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IEF1ZyAxNgogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNzkzLDYgKzc5Myw3IEBACiAJZ2V0Y21kcG9zKCkJCWdldCBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yIGluIHRoZSBjb21tYW5kIGxpbmUKIAlzZXRjbWRwb3MoKQkJc2V0IHBvc2l0aW9uIG9mIHRoZSBjdXJzb3IgaW4gdGhlIGNvbW1hbmQgbGluZQogCWdldGNtZHR5cGUoKQkJcmV0dXJuIHRoZSBjdXJyZW50IGNvbW1hbmQtbGluZSB0eXBlCisJZ2V0Y21kd2ludHlwZSgpCQlyZXR1cm4gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIHdpbmRvdyB0eXBlCiAKIFF1aWNrZml4IGFuZCBsb2NhdGlvbiBsaXN0czoJCQkqcXVpY2tmaXgtZnVuY3Rpb25zKgogCWdldHFmbGlzdCgpCQlsaXN0IG9mIHF1aWNrZml4IGVycm9ycwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAppbmRleCBhMDNhMGJkLi40YWQzMjg3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAorKysgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTQgTWF5IDIyCisqdmFyaW91cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE0IEF1ZyAwNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9maWxldHlwZS52aW0gYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQppbmRleCBkYWM0NGQ3Li45MWFmYTY1IDEwMDY0NAotLS0gYS9ydW50aW1lL2ZpbGV0eXBlLnZpbQorKysgYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN1cHBvcnQgZmlsZSB0byBkZXRlY3QgZmlsZSB0eXBlcwogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAxNCBKdWwgMjMKKyIgTGFzdCBDaGFuZ2U6CTIwMTQgQXVnIDIyCiAKICIgTGlzdGVuIHZlcnkgY2FyZWZ1bGx5LCBJIHdpbGwgc2F5IHRoaXMgb25seSBvbmNlCiBpZiBleGlzdHMoImRpZF9sb2FkX2ZpbGV0eXBlcyIpCkBAIC04MTEsNiArODExLDkgQEAKICIgR251cGxvdCBzY3JpcHRzCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5ncGkJCQlzZXRmIGdudXBsb3QKIAorIiBHbyAoR29vZ2xlKQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZ28JCQlzZXRmIGdvCisKICIgR3JBRFMgc2NyaXB0cwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZ3MJCQlzZXRmIGdyYWRzCiAKQEAgLTExNDUsNyArMTE0OCw3IEBACiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5tYXJrZG93biwqLm1kb3duLCoubWtkLCoubWtkbiwqLm1kd24sUkVBRE1FLm1kICBzZXRmIG1hcmtkb3duCiAKICIgTWFzb24KLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLm1hc29uLCoubWh0bWwJCXNldGYgbWFzb24KK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLm1hc29uLCoubWh0bWwsKi5jb21wCXNldGYgbWFzb24KIAogIiBNYXRsYWIgb3IgT2JqZWN0aXZlIEMKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLm0JCQljYWxsIHM6RlRtKCkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZ28udmltIGIvcnVudGltZS9mdHBsdWdpbi9nby52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFkYzFhMQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vZ28udmltCkBAIC0wLDAgKzEsMTggQEAKKyIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCisiIExhbmd1YWdlOglHbworIiBNYWludGFpbmVyOglEYXZpZCBCYXJuZXR0IChodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3ZpbS1mdC1nbykKKyIgTGFzdCBDaGFuZ2U6CTIwMTQgQXVnIDE2CisKK2lmIGV4aXN0cygnYjpkaWRfZnRwbHVnaW4nKQorICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisKK3NldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQKKworc2V0bG9jYWwgY29tbWVudHM9czE6LyosbWI6KixleDoqLyw6Ly8KK3NldGxvY2FsIGNvbW1lbnRzdHJpbmc9Ly9cICVzCisKK2xldCBiOnVuZG9fZnRwbHVnaW4gPSAnc2V0bCBmbzwgY29tPCBjbXM8JworCisiIHZpbTogc3c9MiBzdHM9MiBldApkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi92cm9vbS52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3Zyb29tLnZpbQppbmRleCA3NWY2MWY3Li4zZDllNzgzIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3Zyb29tLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3Zyb29tLnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOglWcm9vbSAodmltIHRlc3RpbmcgYW5kIGV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbikKLSIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQudnJvb20pCisiIE1haW50YWluZXI6CURhdmlkIEJhcm5ldHQgKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdmltLWZ0LXZyb29tKQogIiBMYXN0IENoYW5nZToJMjAxNCBKdWwgMjMKIAogaWYgZXhpc3RzKCdiOmRpZF9mdHBsdWdpbicpCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9nby52aW0gYi9ydW50aW1lL2luZGVudC9nby52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyYWM4NwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L2dvLnZpbQpAQCAtMCwwICsxLDc4IEBACisiIFZpbSBpbmRlbnQgZmlsZQorIiBMYW5ndWFnZToJR28KKyIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQtZ28pCisiIExhc3QgQ2hhbmdlOgkyMDE0IEF1ZyAxNgorIgorIiBUT0RPOgorIiAtIGZ1bmN0aW9uIGludm9jYXRpb25zIHNwbGl0IGFjcm9zcyBsaW5lcworIiAtIGdlbmVyYWwgbGluZSBzcGxpdHMgKGxpbmUgZW5kcyBpbiBhbiBvcGVyYXRvcikKKworaWYgZXhpc3RzKCdiOmRpZF9pbmRlbnQnKQorICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfaW5kZW50ID0gMQorCisiIEMgaW5kZW50YXRpb24gaXMgdG9vIGZhciBvZmYgdXNlZnVsLCBtYWlubHkgZHVlIHRvIEdvJ3MgOj0gb3BlcmF0b3IuCisiIExldCdzIGp1c3QgZGVmaW5lIG91ciBvd24uCitzZXRsb2NhbCBub2xpc3AKK3NldGxvY2FsIGF1dG9pbmRlbnQKK3NldGxvY2FsIGluZGVudGV4cHI9R29JbmRlbnQodjpsbnVtKQorc2V0bG9jYWwgaW5kZW50a2V5cys9PDo+LDA9fSwwPSkKKworaWYgZXhpc3RzKCcqR29JbmRlbnQnKQorICBmaW5pc2gKK2VuZGlmCisKKyIgVGhlIHNoaWZ0d2lkdGgoKSBmdW5jdGlvbiBpcyByZWxhdGl2ZWx5IG5ldy4KKyIgRG9uJ3QgcmVxdWlyZSBpdCB0byBleGlzdC4KK2lmIGV4aXN0cygnKnNoaWZ0d2lkdGgnKQorICBmdW5jdGlvbiBzOnN3KCkgYWJvcnQKKyAgICByZXR1cm4gc2hpZnR3aWR0aCgpCisgIGVuZGZ1bmN0aW9uCitlbHNlCisgIGZ1bmN0aW9uIHM6c3coKSBhYm9ydAorICAgIHJldHVybiAmc2hpZnR3aWR0aAorICBlbmRmdW5jdGlvbgorZW5kaWYKKworZnVuY3Rpb24hIEdvSW5kZW50KGxudW0pCisgIGxldCBsOnByZXZsbnVtID0gcHJldm5vbmJsYW5rKGE6bG51bS0xKQorICBpZiBsOnByZXZsbnVtID09IDAKKyAgICAiIHRvcCBvZiBmaWxlCisgICAgcmV0dXJuIDAKKyAgZW5kaWYKKworICAiIGdyYWIgdGhlIHByZXZpb3VzIGFuZCBjdXJyZW50IGxpbmUsIHN0cmlwcGluZyBjb21tZW50cy4KKyAgbGV0IGw6cHJldmwgPSBzdWJzdGl0dXRlKGdldGxpbmUobDpwcmV2bG51bSksICcvLy4qJCcsICcnLCAnJykKKyAgbGV0IGw6dGhpc2wgPSBzdWJzdGl0dXRlKGdldGxpbmUoYTpsbnVtKSwgJy8vLiokJywgJycsICcnKQorICBsZXQgbDpwcmV2aSA9IGluZGVudChsOnByZXZsbnVtKQorCisgIGxldCBsOmluZCA9IGw6cHJldmkKKworICBpZiBsOnByZXZsID1+ICdbKHtdXHMqJCcKKyAgICAiIHByZXZpb3VzIGxpbmUgb3BlbmVkIGEgYmxvY2sKKyAgICBsZXQgbDppbmQgKz0gczpzdygpCisgIGVuZGlmCisgIGlmIGw6cHJldmwgPX4jICdeXHMqXChjYXNlIC4qXHxkZWZhdWx0XCk6JCcKKyAgICAiIHByZXZpb3VzIGxpbmUgaXMgcGFydCBvZiBhIHN3aXRjaCBzdGF0ZW1lbnQKKyAgICBsZXQgbDppbmQgKz0gczpzdygpCisgIGVuZGlmCisgICIgVE9ETzogaGFuZGxlIGlmIHRoZSBwcmV2aW91cyBsaW5lIGlzIGEgbGFiZWwuCisKKyAgaWYgbDp0aGlzbCA9fiAnXlxzKlspfV0nCisgICAgIiB0aGlzIGxpbmUgY2xvc2VkIGEgYmxvY2sKKyAgICBsZXQgbDppbmQgLT0gczpzdygpCisgIGVuZGlmCisKKyAgIiBDb2xvbnMgYXJlIHRyaWNreS4KKyAgIiBXZSB3YW50IHRvIG91dGRlbnQgaWYgaXQncyBwYXJ0IG9mIGEgc3dpdGNoICgiY2FzZSBmb286IiBvciAiZGVmYXVsdDoiKS4KKyAgIiBXZSBpZ25vcmUgdHJ5aW5nIHRvIGRlYWwgd2l0aCBqdW1wIGxhYmVscyBiZWNhdXNlIChhKSB0aGV5J3JlIHJhcmUsIGFuZAorICAiIChiKSB0aGV5J3JlIGhhcmQgdG8gZGlzYW1iaWd1YXRlIGZyb20gYSBjb21wb3NpdGUgbGl0ZXJhbCBrZXkuCisgIGlmIGw6dGhpc2wgPX4jICdeXHMqXChjYXNlIC4qXHxkZWZhdWx0XCk6JCcKKyAgICBsZXQgbDppbmQgLT0gczpzdygpCisgIGVuZGlmCisKKyAgcmV0dXJuIGw6aW5kCitlbmRmdW5jdGlvbgorCisiIHZpbTogc3c9MiBzdHM9MiBldApkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvc2gudmltIGIvcnVudGltZS9pbmRlbnQvc2gudmltCmluZGV4IDY4Zjc2NGUuLjAzOTRlZTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3NoLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9zaC52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiAgICAgICAgIFNoZWxsIFNjcmlwdAogIiBNYWludGFpbmVyOiAgICAgICBQZXRlciBBcm9ub2ZmIDx0ZWxlbWFjaHVzQGFycGludW0ub3JnPgogIiBPcmlnaW5hbCBBdXRob3I6ICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAxMy0xMS0yOAorIiBMYXRlc3QgUmV2aXNpb246ICAyMDE0LTA4LTIyCiAKIGlmIGV4aXN0cygiYjpkaWRfaW5kZW50IikKICAgZmluaXNoCkBAIC05MSw3ICs5MSw5IEBACiAgICAgaWYgczppc19jYXNlKHBpbmUpCiAgICAgICBsZXQgaW5kID0gaW5kZW50KGxudW0pICsgczppbmRlbnRfdmFsdWUoJ2Nhc2UtbGFiZWxzJykKICAgICBlbHNlCi0gICAgICBsZXQgaW5kIC09IHM6aW5kZW50X3ZhbHVlKCdjYXNlLXN0YXRlbWVudHMnKSAtIHM6aW5kZW50X3ZhbHVlKCdjYXNlLWJyZWFrcycpCisgICAgICBsZXQgaW5kIC09IChzOmlzX2Nhc2VfbGFiZWwocGluZSwgbG51bSkgJiYgczppc19jYXNlX2VuZGVkKHBpbmUpID8KKyAgICAgICAgICAgICAgICAgIFwgMCA6IHM6aW5kZW50X3ZhbHVlKCdjYXNlLXN0YXRlbWVudHMnKSkgLQorICAgICAgICAgICAgICAgICAgXCBzOmluZGVudF92YWx1ZSgnY2FzZS1icmVha3MnKQogICAgIGVuZGlmCiAgIGVsc2VpZiBzOmlzX2Nhc2VfYnJlYWsobGluZSkKICAgICBsZXQgaW5kIC09IHM6aW5kZW50X3ZhbHVlKCdjYXNlLWJyZWFrcycpCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC92cm9vbS52aW0gYi9ydW50aW1lL2luZGVudC92cm9vbS52aW0KaW5kZXggMTBlZmIwZS4uZDMzM2UyYyAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvdnJvb20udmltCisrKyBiL3J1bnRpbWUvaW5kZW50L3Zyb29tLnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOglWcm9vbSAodmltIHRlc3RpbmcgYW5kIGV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbikKLSIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQudnJvb20pCisiIE1haW50YWluZXI6CURhdmlkIEJhcm5ldHQgKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdmltLWZ0LXZyb29tKQogIiBMYXN0IENoYW5nZToJMjAxNCBKdWwgMjMKIAogaWYgZXhpc3RzKCdiOmRpZF9pbmRlbnQnKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vcHR3aW4udmltIGIvcnVudGltZS9vcHR3aW4udmltCmluZGV4IDBjOTJmMWEuLmI1MWQ1OGIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb3B0d2luLnZpbQorKysgYi9ydW50aW1lL29wdHdpbi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFRoZXNlIGNvbW1hbmRzIGNyZWF0ZSB0aGUgb3B0aW9uIHdpbmRvdy4KICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMTQgQXByIDAxCisiIExhc3QgQ2hhbmdlOgkyMDE0IEF1ZyAwNgogCiAiIElmIHRoZXJlIGFscmVhZHkgaXMgYW4gb3B0aW9uIHdpbmRvdywganVtcCB0byB0aGF0IG9uZS4KIGlmIGJ1Zndpbm5yKCJvcHRpb24td2luZG93IikgPiAwCkBAIC02MDYsNiArNjA2LDEwIEBACiAgICAgY2FsbCBhcHBlbmQoIiQiLCAiZ3VpaGVhZHJvb21cdHJvb20gKGluIHBpeGVscykgbGVmdCBhYm92ZS9iZWxvdyB0aGUgd2luZG93IikKICAgICBjYWxsIGFwcGVuZCgiJCIsICIgXHRzZXQgZ2hyPSIgLiAmZ2hyKQogICBlbmRpZgorICBpZiBoYXMoImRpcmVjdHgiKQorICAgIGNhbGwgYXBwZW5kKCIkIiwgInJlbmRlcm9wdGlvbnNcdG9wdGlvbnMgZm9yIHRleHQgcmVuZGVyaW5nIikKKyAgICBjYWxsIDxTSUQ+T3B0aW9uRygicm9wIiwgJnJvcCkKKyAgZW5kaWYKICAgY2FsbCBhcHBlbmQoIiQiLCAiZ3VpcHR5XHR1c2UgYSBwc2V1ZG8tdHR5IGZvciBJL08gdG8gZXh0ZXJuYWwgY29tbWFuZHMiKQogICBjYWxsIDxTSUQ+QmluT3B0aW9uRygiZ3VpcHR5IiwgJmd1aXB0eSkKICAgaWYgaGFzKCJicm93c2UiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW5tZW51LnZpbSBiL3J1bnRpbWUvc3lubWVudS52aW0KaW5kZXggYmU4OGYxYy4uMmRiNzJhMiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW5tZW51LnZpbQorKysgYi9ydW50aW1lL3N5bm1lbnUudmltCkBAIC0yLDcgKzIsNyBAQAogIiBUaGlzIGZpbGUgaXMgbm9ybWFsbHkgc291cmNlZCBmcm9tIG1lbnUudmltLgogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAxMyBKdW4gMjQKKyIgTGFzdCBDaGFuZ2U6CTIwMTQgQXVnIDEzCiAKICIgRGVmaW5lIHRoZSBTZXRTeW4gZnVuY3Rpb24sIHVzZWQgZm9yIHRoZSBTeW50YXggbWVudSBlbnRyaWVzLgogIiBTZXQgJ2ZpbGV0eXBlJyBhbmQgYWxzbyAnc3ludGF4JyBpZiBpdCBpcyBtYW51YWxseSBzZWxlY3RlZC4KQEAgLTMyNiw2ICszMjYsNyBAQAogYW4gNTAuNzAuMjgwICZTeW50YXguTS5NZXRhZm9udCA6Y2FsIFNldFN5bigibWYiKTxDUj4KIGFuIDUwLjcwLjI5MCAmU3ludGF4Lk0uTWV0YVBvc3QgOmNhbCBTZXRTeW4oIm1wIik8Q1I+CiBhbiA1MC43MC4zMDAgJlN5bnRheC5NLk1HTCA6Y2FsIFNldFN5bigibWdsIik8Q1I+CithbiA1MC43MC4zMDUgJlN5bnRheC5NLk1JWCA6Y2FsIFNldFN5bigibWl4Iik8Q1I+CiBhbiA1MC43MC4zMTAgJlN5bnRheC5NLk1NSVggOmNhbCBTZXRTeW4oIm1taXgiKTxDUj4KIGFuIDUwLjcwLjMyMCAmU3ludGF4Lk0uTW9kY29uZiA6Y2FsIFNldFN5bigibW9kY29uZiIpPENSPgogYW4gNTAuNzAuMzMwICZTeW50YXguTS5Nb2RlbCA6Y2FsIFNldFN5bigibW9kZWwiKTxDUj4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2dudXBsb3QudmltIGIvcnVudGltZS9zeW50YXgvZ251cGxvdC52aW0KaW5kZXggNWEzODFjNy4uMDNkODEzYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZ251cGxvdC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZ251cGxvdC52aW0KQEAgLTEsMTc2ICsxLDUwNSBAQAogIiBWaW0gc3ludGF4IGZpbGUKLSIgTGFuZ3VhZ2U6CWdudXBsb3QgMy44aS4wCi0iIE1haW50YWluZXI6CUpvaG4gSG9lbHplbCBqb2huaDUxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotIiBMYXN0IENoYW5nZToJTW9uIE1heSAyNiAwMjozMzozMyBVVEMgMjAwMwotIiBGaWxlbmFtZXM6CSouZ3BpICAqLmdpaCAgIHNjcmlwdHM6ICMhKmdudXBsb3QKLSIgVVJMOgkJaHR0cDovL2pvaG5oNTEuZ2V0LnRvL3ZpbS9zeW50YXgvZ251cGxvdC52aW0KLSIKKyIgTGFuZ3VhZ2U6CWdudXBsb3QgNC43LjAKKyIgTWFpbnRhaW5lcjoJQW5kcmV3IFJhc211c3NlbiBhbmR5cmFzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorIiBPcmlnaW5hbCBNYWludGFpbmVyOglKb2huIEhvZWx6ZWwgam9obmg1MUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKyIgTGFzdCBDaGFuZ2U6CTIwMTQtMDItMjQKKyIgRmlsZW5hbWVzOgkqLmdudSAqLnBsdCAqLmdwaSAqLmdpaCAqLmdwICouZ251cGxvdCBzY3JpcHRzOiAjISpnbnVwbG90CisiIFVSTDoJCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTQ4NzMKKyIgT3JpZ2luYWwgVVJMOglodHRwOi8vam9obmg1MS5nZXQudG8vdmltL3N5bnRheC9nbnVwbG90LnZpbQogCi0iIHRoYW5rcyB0byAiRGF2aWQgTmVjYXMgKFlldGkpIiA8eWV0aUBwaHlzaWNzLm11bmkuY3o+IGZvciBoZWFkcyB1cCAtIHdvcmtpbmcgb24gbW9yZSBjaGFuZ2VzIC4KLSIgKi5ncGkgICAgICA9IEdudVBsb3QgSW5wdXQgLSB3aGF0IEkgdXNlIGJlY2F1c2UgdGhlcmUgaXMgbm8gb3RoZXIgZ3VpZGVsaW5lLiBqZWggMTEvMjAwMAotIiAqLmdpaCAgICAgID0gbWFrZXMgdXNpbmcgY3V0L3Bhc3RpbmcgZnJvbSBnbnVwbG90LmdpaCBlYXNpZXIgLi4uCi0iICMhKmdudXBsb3QgPSBmb3IgTGludXggYmFzaCBzaGVsbCBzY3JpcHRzIG9mIGdudXBsb3QgY29tbWFuZHMuCi0iCSAgICAgICBlbWFjcyB1c2VkIGEgc3VmZml4IG9mICc8Z3A/PicKLSIgZ251cGxvdCBkZW1vIGZpbGVzIHNob3cgbm8gcHJlZmVyZW5jZS4KLSIgSSB3aWxsIHBvc3QgbWFpbCBhbmQgbmV3c2dyb3VwIGNvbW1lbnRzIG9uIGEgc3RhbmRhcmQgc3VmZml4IGluICdVUkwnIGRpcmVjdG9yeS4KKyIgdGhhbmtzIHRvICJEYXZpZCBOZWNhcyAoWWV0aSkiIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KIAotIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKLSIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKKyIgY3JlZGl0IGFsc28gdG8gSmltIEViZXJsZSA8amltLmViZXJsZUBmYXN0bmxpZ2h0LmNvbT4KKyIgZm9yIHRoZSBzY3JpcHQgaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MTczNworCisiIHNvbWUgc2hvcnRlbmVkIG5hbWVzIHRvIG1ha2UgZGVtbyBmaWxlcyBsb29rIGNsZWFuLi4uIGplaC4gMTEvMjAwMAorIiBkZW1vcyAtPiAzLjhpIC4uLiBqZWguIDUvMjAwMyAtIGEgd29yayBpbiBwcm9ncmVzcy4uLgorIiBhZGRlZCBjdXJyZW50IGNvbW1hbmRzLCBrZXl3b3JkcywgdmFyaWFibGVzLCB0b2RvcywgbWFjcm9zLi4uIGFtciAyMDE0LTAyLTI0CisKKyIgRm9yIHZpbSB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcworIiBGb3IgdmltIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKKwogaWYgdmVyc2lvbiA8IDYwMAogICBzeW50YXggY2xlYXIKIGVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogICBmaW5pc2gKIGVuZGlmCiAKLSIgc29tZSBzaG9ydGVuZWQgbmFtZXMgdG8gbWFrZSBkZW1vIGZpbGVzIGxvb2sgY2xlYW4uLi4gamVoLiAxMS8yMDAwCi0iIGRlbW9zIC0+IDMuOGkgLi4uIGplaC4gNS8yMDAzIC0gYSB3b3JrIGluIHByb2dyZXNzLi4uCisiIC0tLS0gU3BlY2lhbCBjaGFyYWN0ZXJzIC0tLS0gIgogCi0iIGNvbW1hbmRzCisiIG5vIGhhcm0gaW4ganVzdCBtYXRjaGluZyBhbnkgXFtjaGFyXSB3aXRoaW4gZG91YmxlIHF1b3RlcywgcmlnaHQ/CitzeW4gbWF0Y2ggZ251cGxvdFNwZWNpYWwJIlxcLiIgY29udGFpbmVkCisiIHN5biBtYXRjaCBnbnVwbG90U3BlY2lhbAkiXFxcb1xvXG9cfFxceFx4XHhcfFxcY1teIl1cfFxcW2EtelxcXSIgY29udGFpbmVkCiAKLXN5biBrZXl3b3JkIGdudXBsb3RTdGF0ZW1lbnQJY2QgY2FsbCBjbGVhciBleGl0IHNldCB1bnNldCBwbG90IHNwbG90IGhlbHAKLXN5biBrZXl3b3JkIGdudXBsb3RTdGF0ZW1lbnQJbG9hZCBwYXVzZSBxdWl0IGZpdCByZXBbbG90XSBpZgotc3luIGtleXdvcmQgZ251cGxvdFN0YXRlbWVudAlGSVRfTElNSVQgRklUX01BWElURVIgRklUX1NUQVJUX0xBTUJEQQotc3luIGtleXdvcmQgZ251cGxvdFN0YXRlbWVudAlGSVRfTEFNQkRBX0ZBQ1RPUiBGSVRfTE9HIEZJVF9TQ1JJUFQKLXN5biBrZXl3b3JkIGdudXBsb3RTdGF0ZW1lbnQJcHJpbnQgcHdkIHJlcmVhZCByZXNldCBzYXZlIHNob3cgdGVzdCAhIGZ1bmN0aW9ucyB2YXIKLXN5biBrZXl3b3JkIGdudXBsb3RDb25kaXRpb25hbAlpZgotIiBpZiBpcyBjb25kICsgc3RtdCAtIG9rPworIiBtZWFzdXJlbWVudHMgaW4gdGhlIHVuaXRzIGluLCBjbSBhbmQgcHQgYXJlIHNwZWNpYWwKK3N5biBtYXRjaCBnbnVwbG90VW5pdAkJIlswLTldK2luIgorc3luIG1hdGNoIGdudXBsb3RVbml0CQkiWzAtOV0rY20iCitzeW4gbWF0Y2ggZ251cGxvdFVuaXQJCSJbMC05XStwdCIKIAotIiBudW1iZXJzIGZtIGMudmltCisiIGV4dGVybmFsIChzaGVsbCkgY29tbWFuZHMgYXJlIHNwZWNpYWwKK3N5biByZWdpb24gZ251cGxvdEV4dGVybmFsCXN0YXJ0PSIhIiBlbmQ9IiQiCiAKLSIJaW50ZWdlciBudW1iZXIsIG9yIGZsb2F0aW5nIHBvaW50IG51bWJlciB3aXRob3V0IGEgZG90IGFuZCB3aXRoICJmIi4KKyIgLS0tLSBDb21tZW50cyAtLS0tICIKKworc3luIHJlZ2lvbiBnbnVwbG90Q29tbWVudAlzdGFydD0iIyIgZW5kPSIkIiBjb250YWlucz1nbnVwbG90VG9kbworCisiIC0tLS0gQ29uc3RhbnRzIC0tLS0gIgorCisiIHN0cmluZ3MKK3N5biByZWdpb24gZ251cGxvdFN0cmluZwlzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrIGNvbnRhaW5zPWdudXBsb3RTcGVjaWFsCitzeW4gcmVnaW9uIGdudXBsb3RTdHJpbmcJc3RhcnQ9IiciIGVuZD0iJyIKKworIiBidWlsdC1pbiB2YXJpYWJsZXMKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR05VVEVSTSBHUFZBTF9URVJNIEdQVkFMX1RFUk1PUFRJT05TIEdQVkFMX1NQTE9UCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX09VVFBVVCBHUFZBTF9FTkNPRElORyBHUFZBTF9WRVJTSU9OCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX1BBVENITEVWRUwgR1BWQUxfQ09NUElMRV9PUFRJT05TCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX01VTFRJUExPVCBHUFZBTF9QTE9UIEdQVkFMX1ZJRVdfWlNDQUxFCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX1RFUk1JTkFMUyBHUFZBTF9waSBHUFZBTF9OYU4KK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfRVJSTk8gR1BWQUxfRVJSTVNHIEdQVkFMX1BXRAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglwaSBOYU4gR1BWQUxfTEFTVF9QTE9UIEdQVkFMX1RFUk1fV0lORE9XSUQKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfWF9NSU4gR1BWQUxfWF9NQVggR1BWQUxfWF9MT0cKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfREFUQV9YX01JTiBHUFZBTF9EQVRBX1hfTUFYIEdQVkFMX1lfTUlOCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX1lfTUFYIEdQVkFMX1lfTE9HIEdQVkFMX0RBVEFfWV9NSU4KK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfREFUQV9ZX01BWCBHUFZBTF9YMl9NSU4gR1BWQUxfWDJfTUFYCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX1gyX0xPRyBHUFZBTF9EQVRBX1gyX01JTiBHUFZBTF9EQVRBX1gyX01BWAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglHUFZBTF9ZMl9NSU4gR1BWQUxfWTJfTUFYIEdQVkFMX1kyX0xPRworc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglHUFZBTF9EQVRBX1kyX01JTiBHUFZBTF9EQVRBX1kyX01BWCBHUFZBTF9aX01JTgorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglHUFZBTF9aX01BWCBHUFZBTF9aX0xPRyBHUFZBTF9EQVRBX1pfTUlOCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX0RBVEFfWl9NQVggR1BWQUxfQ0JfTUlOIEdQVkFMX0NCX01BWAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglHUFZBTF9DQl9MT0cgR1BWQUxfREFUQV9DQl9NSU4gR1BWQUxfREFUQV9DQl9NQVgKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfVF9NSU4gR1BWQUxfVF9NQVggR1BWQUxfVF9MT0cgR1BWQUxfVV9NSU4KK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfVV9NQVggR1BWQUxfVV9MT0cgR1BWQUxfVl9NSU4gR1BWQUxfVl9NQVgKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfVl9MT0cgR1BWQUxfUl9NSU4gR1BWQUxfUl9MT0cKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfVEVSTV9YTUlOIEdQVkFMX1RFUk1fWE1BWCBHUFZBTF9URVJNX1lNSU4KK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfVEVSTV9ZTUFYIEdQVkFMX1RFUk1fWFNJWkUKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJR1BWQUxfVEVSTV9ZU0laRSBHUFZBTF9WSUVXX01BUCBHUFZBTF9WSUVXX1JPVF9YCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCUdQVkFMX1ZJRVdfUk9UX1ogR1BWQUxfVklFV19TQ0FMRQorCisiIGZ1bmN0aW9uIG5hbWUgdmFyaWFibGVzCitzeW4gbWF0Y2ggZ251cGxvdE51bWJlcgkJIkdQRlVOX1thLXpBLVpfXSoiCisKKyIgc3RhdHMgdmFyaWFibGVzCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCVNUQVRTX3JlY29yZHMgU1RBVFNfb3V0b2ZyYW5nZSBTVEFUU19pbnZhbGlkCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCVNUQVRTX2JsYW5rIFNUQVRTX2Jsb2NrcyBTVEFUU19jb2x1bW5zIFNUQVRTX21pbgorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglTVEFUU19tYXggU1RBVFNfaW5kZXhfbWluIFNUQVRTX2luZGV4X21heAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglTVEFUU19sb19xdWFydGlsZSBTVEFUU19tZWRpYW4gU1RBVFNfdXBfcXVhcnRpbGUKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJU1RBVFNfbWVhbiBTVEFUU19zdGRkZXYgU1RBVFNfc3VtIFNUQVRTX3N1bXNxCitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCVNUQVRTX2NvcnJlbGF0aW9uIFNUQVRTX3Nsb3BlIFNUQVRTX2ludGVyY2VwdAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglTVEFUU19zdW14eSBTVEFUU19wb3NfbWluX3kgU1RBVFNfcG9zX21heF95CitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCVNUQVRTX21lYW4gU1RBVFNfc3RkZGV2IFNUQVRTX21lYW5feCBTVEFUU19zdW1feAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglTVEFUU19zdGRkZXZfeCBTVEFUU19zdW1zcV94IFNUQVRTX21pbl94CitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCVNUQVRTX21heF94IFNUQVRTX21lZGlhbl94IFNUQVRTX2xvX3F1YXJ0aWxlX3gKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJU1RBVFNfdXBfcXVhcnRpbGVfeCBTVEFUU19pbmRleF9taW5feAorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglTVEFUU19pbmRleF9tYXhfeCBTVEFUU19tZWFuX3kgU1RBVFNfc3RkZGV2X3kKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJU1RBVFNfc3VtX3kgU1RBVFNfc3Vtc3FfeSBTVEFUU19taW5feQorc3luIGtleXdvcmQgZ251cGxvdE51bWJlcglTVEFUU19tYXhfeSBTVEFUU19tZWRpYW5feSBTVEFUU19sb19xdWFydGlsZV95CitzeW4ga2V5d29yZCBnbnVwbG90TnVtYmVyCVNUQVRTX3VwX3F1YXJ0aWxlX3kgU1RBVFNfaW5kZXhfbWluX3kKK3N5biBrZXl3b3JkIGdudXBsb3ROdW1iZXIJU1RBVFNfaW5kZXhfbWF4X3kgU1RBVFNfY29ycmVsYXRpb24gU1RBVFNfc3VteHkKKworIiBkZXByZWNhdGVkIGZpdCB2YXJpYWJsZXMKK3N5biBrZXl3b3JkIGdudXBsb3RFcnJvcglGSVRfTElNSVQgRklUX01BWElURVIgRklUX1NUQVJUX0xBTUJEQQorc3luIGtleXdvcmQgZ251cGxvdEVycm9yCUZJVF9MQU1CREFfRkFDVE9SIEZJVF9MT0cgRklUX1NDUklQVAorCisiIG51bWJlcnMsIGZyb20gYy52aW0KKworIiBpbnRlZ2VyIG51bWJlciwgb3IgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIHdpdGhvdXQgYSBkb3QgYW5kIHdpdGggImYiLgogc3luIGNhc2UgICAgaWdub3JlCiBzeW4gbWF0Y2ggICBnbnVwbG90TnVtYmVyCSJcPFswLTldXCtcKHVcPWxcPVx8bHVcfGZcKVw+IgotIglmbG9hdGluZyBwb2ludCBudW1iZXIsIHdpdGggZG90LCBvcHRpb25hbCBleHBvbmVudAorCisiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgd2l0aCBkb3QsIG9wdGlvbmFsIGV4cG9uZW50CiBzeW4gbWF0Y2ggICBnbnVwbG90RmxvYXQJIlw8WzAtOV1cK1wuWzAtOV0qXChlWy0rXVw9WzAtOV1cK1wpXD1bZmxdXD1cPiIKLSIJZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCBzdGFydGluZyB3aXRoIGEgZG90LCBvcHRpb25hbCBleHBvbmVudAorCisiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgc3RhcnRpbmcgd2l0aCBhIGRvdCwgb3B0aW9uYWwgZXhwb25lbnQKIHN5biBtYXRjaCAgIGdudXBsb3RGbG9hdAkiXC5bMC05XVwrXChlWy0rXVw9WzAtOV1cK1wpXD1bZmxdXD1cPiIKLSIJZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCB3aXRob3V0IGRvdCwgd2l0aCBleHBvbmVudAorCisiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgd2l0aG91dCBkb3QsIHdpdGggZXhwb25lbnQKIHN5biBtYXRjaCAgIGdudXBsb3RGbG9hdAkiXDxbMC05XVwrZVstK11cPVswLTldXCtbZmxdXD1cPiIKLSIJaGV4IG51bWJlcgorCisiIGhleCBudW1iZXIKIHN5biBtYXRjaCAgIGdudXBsb3ROdW1iZXIJIlw8MHhbMC05YS1mXVwrXCh1XD1sXD1cfGx1XClcPiIKIHN5biBjYXNlICAgIG1hdGNoCi0iCWZsYWcgYW4gb2N0YWwgbnVtYmVyIHdpdGggd3JvbmcgZGlnaXRzIGJ5IG5vdCBoaWxpZ2h0aW5nCisKKyIgZmxhZyBhbiBvY3RhbCBudW1iZXIgd2l0aCB3cm9uZyBkaWdpdHMgYnkgbm90IGhpZ2hsaWdodGluZwogc3luIG1hdGNoICAgZ251cGxvdE9jdGFsRXJyb3IJIlw8MFswLTddKls4OV0iCiAKLSIgcGxvdCBhcmdzCisiIC0tLS0gSWRlbnRpZmllcnM6IEZ1bmN0aW9ucyAtLS0tICIKIAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXVbc2luZ10gdGl0W2xlXSBub3RpdFtsZV0gd2lbdGhdIHN0ZXBzIGZzW3RlcHNdCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJdGl0bGUgbm90aXRsZSB0Ci1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJd2l0aCB3Ci1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJbGlbbmVzXSBsCi0iIHQgLSB0b28gbXVjaD8gIHcgLSB0b28gbXVjaD8gIGwgLSB0b28gbXVjaD8KLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlsaW5lc3BvaW50cyB2aWEKKyIgbnVtZXJpY2FsIGZ1bmN0aW9ucworc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWFicyBhY29zIGFjb3NoIGFpcnkgYXJnIGFzaW4gYXNpbmggYXRhbiBhdGFuMgorc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWF0YW5oIEVsbGlwdGljSyBFbGxpcHRpY0UgRWxsaXB0aWNQaSBiZXNqMCBiZXNqMQorc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWJlc3kwIGJlc3kxIGNlaWwgY29zIGNvc2ggZXJmIGVyZmMgZXhwIGV4cGludAorc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWZsb29yIGdhbW1hIGliZXRhIGludmVyZiBpZ2FtbWEgaW1hZyBpbnZub3JtIGludAorc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWxhbWJlcnR3IGxnYW1tYSBsb2cgbG9nMTAgbm9ybSByYW5kIHJlYWwgc2duIHNpbgorc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCXNpbiBzaW5oIHNxcnQgdGFuIHRhbmggdm9pZ3QKIAotIiBmdW5jcworIiBzdHJpbmcgZnVuY3Rpb25zCitzeW4ga2V5d29yZCBnbnVwbG90RnVuYwkJZ3ByaW50ZiBzcHJpbnRmIHN0cmxlbiBzdHJzdHJ0IHN1YnN0ciBzdHJmdGltZQorc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCXN0cnB0aW1lIHN5c3RlbSB3b3JkIHdvcmRzCiAKLXN5biBrZXl3b3JkIGdudXBsb3RGdW5jCQlhYnMgYWNvcyBhY29zaCBhcmcgYXNpbiBhc2luaCBhdGFuIGF0YW5oIGF0YW4yCi1zeW4ga2V5d29yZCBnbnVwbG90RnVuYwkJYmVzajAgYmVzajEgYmVzeTAgYmVzeTEKLXN5biBrZXl3b3JkIGdudXBsb3RGdW5jCQljZWlsIGNvbHVtbiBjb3MgY29zaCBlcmYgZXJmYyBleHAgZmxvb3IgZ2FtbWEKLXN5biBrZXl3b3JkIGdudXBsb3RGdW5jCQlpYmV0YSBpbnZlcmYgaWdhbW1hIGltYWcgaW52bm9ybSBpbnQgbGdhbW1hCi1zeW4ga2V5d29yZCBnbnVwbG90RnVuYwkJbG9nIGxvZzEwIG5vcm0gcmFuZCByZWFsIHNnbiBzaW4gc2luaCBzcXJ0IHRhbgotc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWxhbWJlcnR3Ci1zeW4ga2V5d29yZCBnbnVwbG90RnVuYwkJdGFuaCB2YWxpZAotc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCXRtX2hvdXIgdG1fbWRheSB0bV9taW4gdG1fbW9uIHRtX3NlYwotc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCXRtX3dkYXkgdG1feWRheSB0bV95ZWFyCisiIG90aGVyIGZ1bmN0aW9ucworc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWNvbHVtbiBjb2x1bW5oZWFkIGNvbHVtbmhlYWRlciBkZWZpbmVkIGV4aXN0cworc3luIGtleXdvcmQgZ251cGxvdEZ1bmMJCWhzdjJyZ2Igc3RyaW5nY29sdW1uIHRpbWVjb2x1bW4gdG1faG91ciB0bV9tZGF5CitzeW4ga2V5d29yZCBnbnVwbG90RnVuYwkJdG1fbWluIHRtX21vbiB0bV9zZWMgdG1fd2RheSB0bV95ZGF5IHRtX3llYXIKK3N5biBrZXl3b3JkIGdudXBsb3RGdW5jCQl0aW1lIHZhbGlkIHZhbHVlCiAKLSIgc2V0IHZhcnMKKyIgLS0tLSBTdGF0ZW1lbnRzIC0tLS0gIgogCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJeGRhdGEgdGltZWZtdCBncmlkIG5veXRpY3MgeXRpY3MgZnMKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlsb2dzY2FsZSB0aW1lIG5vdGltZSBteHRpY3Mgbm9teHRpY3Mgc3R5bGUgbWNidGljcwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCW5vbG9nc2NhbGUKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlheGVzIHgxeTIgdW5pcXVlIGFjc1twbGluZXNdCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJc2l6ZSBvcmlnaW4gbXVsdGlwbG90IHh0aWNzIHhyW2FuZ2VdIHlyW2FuZ2VdIHNxdWFyZSBub3NxdWFyZSByYXRpbyBub3JhdGlvCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJYmluYXJ5IG1hdHJpeCBpbmRleCBldmVyeSB0aHJ1IHNtW29vdGhdCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJYWxsIGFuZ2xlcyBkZWdyZWVzIHJhZGlhbnMKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlhcnJvdyBub2Fycm93IGF1dG9zY2FsZSBub2F1dG9zY2FsZSBhcnJvd3N0eWxlCi0iIGF1dG9zY2FsZSBhcmdzID0geCB5IHh5IHogdCB5bWluIC4uLiAtIHRvbyBtdWNoPwotIiBuZWVkcyBjb2RlIHRvOiB1c2luZyB0aXRsZSB2cyBhdXRvc2NhbGUgdAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXggeSB6IHpjYgotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWxpbmVhciAgY3ViaWNzcGxpbmUgIGJzcGxpbmUgb3JkZXIgbGV2ZWxbc10KLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlhdXRvIGRpc2NbcmV0ZV0gaW5jcltlbWVudGFsXSBmcm9tIHRvIGhlYWQgbm9oZWFkCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJZ3JhcGggYmFzZSBib3RoIG5vc3VyZmFjZSB0YWJsZSBvdXRbcHV0XSBkYXRhCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJYmFyIGJvcmRlciBub2JvcmRlciBib3h3aWR0aAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWNsYWJlbCBub2NsYWJlbCBjbGlwIG5vY2xpcCBjbnRycFthcmFtXQotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWNvbnRvdXIgbm9jb250b3VyCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJZGdyaWQzZCBub2RncmlkM2QgZHVtbXkgZW5jb2RpbmcgZm9ybWF0Ci0iIHNldCBlbmNvZGluZyBhcmdzIG5vdCBpbmNsdWRlZCAtIHlldC4KLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlmdW5jdGlvbiBncmlkIG5vZ3JpZCBoaWRkZW5bM2RdIG5vaGlkZGVuWzNkXSBpc29zYW1wbGVbc10ga2V5IG5va2V5Ci1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJaGlzdG9yeXNpemUgbm9oaXN0b3J5c2l6ZQotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWRlZmF1bHRzIG9mZnNldCBub29mZnNldCB0cmlhbmdsZXBhdHRlcm4gdW5kZWZpbmVkIG5vdW5kZWZpbmVkIGFsdGRpYWdvbmFsIGJlbnRvdmVyIG5vYWx0ZGlhZ29uYWwgbm9iZW50b3Zlcgotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWxlZnQgcmlnaHQgdG9wIGJvdHRvbSBvdXRzaWRlIGJlbG93IHNhbXBsZW4gc3BhY2luZyB3aWR0aCBoZWlnaHQgYm94IG5vYm94IGxpbmVzdHlsZSBscyBsaW5ldHlwZSBsdCBsaW5ld2lkdGggbHcKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlMZWZ0IFJpZ2h0IGF1dG90aXRsZXMgbm9hdXRvdGl0bGVzIGVuaGFuY2VkIG5vZW5oYW5jZWQKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlpc29zYW1wbGVzCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJbGFiZWwgbm9sYWJlbCBsb2dzY2FsZSBub2xvZ1tzY2FsZV0gbWlzc2luZyBjZW50ZXIgZm9udCBsb2NhbGUKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQltYXBwaW5nIG1hcmdpbiBibWFyZ2luIGxtYXJnaW4gcm1hcmdpbiB0bWFyZ2luIHNwaGVyaWNhbCBjeWxpbmRyaWNhbCBjYXJ0ZXNpYW4KLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlsaW5lc3R5bGUgbm9saW5lc3R5bGUgbGluZXR5cGUgbHQgbGluZXdpZHRoIGx3IHBvaW50dHlwZSBwdCBwb2ludHNpemUgcHMKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQltb3VzZSBub21vdXNlCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJbm9vZmZzZXRzIGRhdGEgY2FuZGxlc3RpY2tzIGZpbmFuY2ViYXJzIGxpbmVzcG9pbnRzIGxwIHZlY3RvciBub3N1cmZhY2UKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl0ZXJtW2luYWxdIGxpbnV4IGFlZDc2NyBhZWQ1MTIgZ3BpYwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXJlZ2lzIHRlazQxMHggdGVrNDAgdnR0ZWsga2MtdGVrNDB4eAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWttLXRlazQweHggc2VsYW5hciBiaXRncmFwaCB4bGliIHgxMSBYMTEKLSIgeDExIGFyZ3MKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlhaWZtIGNnbSBkdW1iIGZpZyBnaWYgc21hbGwgbGFyZ2Ugc2l6ZSBub2ZvbnRsaXN0IHdpbndvcmQ2IGNvcmVsIGR4ZiBlbWYKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlocGdsCi0iIHN5biBrZXl3b3JkIGdudXBsb3RUeXBlCXRyYW5zcGFyZW50IGhwMjYyM2EgaHAyNjQ4IGhwNTAwYyBwY2w1CQkJCSAgICAgIHdoeSBqZWgKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlocDI2MjNhIGhwMjY0OCBocDUwMGMgcGNsNQotc3luIG1hdGNoIGdudXBsb3RUeXBlCQkiXDx0cmFuc3BhcmVudFw+Igotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWhwbGppaSBocGRqIGhwcGogaW1hZ2VuIG1pZiBwYm0gcG5nIHN2Zwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXBvc3RzY3JpcHQgZW5oYW5jZWRfcG9zdHNjcmlwdCBxbXMgdGFibGUKLSIgcG9zdHNjcmlwdCBlZGl0aW5nIHZhbHVlcz8KLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl0Z2lmIHRrY2FudmFzIGVwc29uLTE4MGRwaSBlcHNvbi02MGRwaQotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWVwc29uLWx4ODAwIG5lYy1jcDYgb2tpZGF0YSBzdGFyYwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXRhbmR5LTYwZHBpIGxhdGV4IGVtdGV4IHBzbGF0ZXggcHN0ZXggZXBzbGF0ZXgKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQllZXBpYyB0cGljIHBzdHJpY2tzIHRleGRyYXcgbWYgbWV0YWZvbnQgbXBvc3QgbXAKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl0aW1lc3RhbXAgbm90aW1lc3RhbXAKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl2YXJpYWJsZXMgdmVyc2lvbgotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXgyZGF0YSB5MmRhdGEgeWRhdGEgemRhdGEKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlyZXZlcnNlIHdyaXRlYmFjayBub3JldmVyc2Ugbm93cml0ZWJhY2sKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlheGlzIG1pcnJvciBhdXRvZnJlcSBub21pcnJvciByb3RhdGUgYXV0b2ZyZXEgbm9yb3RhdGUKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl1cGRhdGUKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQltdWx0aXBsb3Qgbm9tdWx0aXBsb3QgbXl0aWNzCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJbm9teXRpY3MgbXp0aWNzIG5vbXp0aWNzIG14MnRpY3Mgbm9teDJ0aWNzCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJbXkydGljcyBub215MnRpY3Mgb2Zmc2V0cyBvcmlnaW4gb3V0cHV0Ci1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJcGFyYVttZXRyaWNdIG5vcGFyYVttZXRyaWNdIHBvaW50c2l6ZSBwb2xhciBub3BvbGFyCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJenJhbmdlIHgycmFuZ2UgeTJyYW5nZSBycmFuZ2UgY2JyYW5nZQotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXRyYW5nZSB1cmFuZ2UgdnJhbmdlIHNhbXBsZVtzXSBzaXplCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJYmV6aWVyIGJveGVycm9yYmFycyBib3hlcyBiYXJncmFwaCBiYXJbc10KLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlib3h4eVtlcnJvcmJhcnNdIGNzcGxpbmVzIGRvdHMgZnN0ZXBzIGhpc3RlcHMgaW1wdWxzZXMKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlsaW5lW3NdIGxpbmVzcFtvaW50c10gcG9pbnRzIHBvaWludHR5cGUgc2JlemllciBzcGxpbmVzIHN0ZXBzCi0iIHcgbHQgbHcgbHMJICAgICAgPSBvcHRpb25hbAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXZlY3RvcnMgeGVycltvcmJhcnNdIHh5ZXJyW29yYmFyc10geWVycltvcmJhcnNdIGZpbmFuY2ViYXJzIGNhbmRsZXN0aWNrcyB2ZWN0b3IKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQllcnJvcmJbYXJzXSBzdXJmYWNlCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJZmlsbGVkY3VydmVbc10gcG0zZCAgIHgxIHgyIHkxIHkyIHh5IGNsb3NlZAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCWF0IHBpIGZyb250Ci1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJZXJyb3JsaW5lcyB4ZXJyb3JsaW5lcyB5ZXJyb3JsaW5lcyB4eWVycm9ybGluZXMKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl0aWNzIHRpY3NsZXZlbCB0aWNzY2FsZSB0aW1lIHRpbWVmbXQgdmlldwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXhkYXRhIHhkdGljcyBub3hkdGljcyB5ZHRpY3Mgbm95ZHRpY3MKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl6ZHRpY3Mgbm96ZHRpY3MgeDJkdGljcyBub3gyZHRpY3MgeTJkdGljcyBub3kyZHRpY3MKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl4bGFiW2VsXSB5bGFiW2VsXSB6bGFiW2VsXSBjYmxhYltlbF0geDJsYWJlbCB5MmxhYmVsIHhtdGljcwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXhtdGljcyBub3htdGljcyB5bXRpY3Mgbm95bXRpY3Mgem10aWNzIG5vem10aWNzCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJeDJtdGljcyBub3gybXRpY3MgeTJtdGljcyBub3kybXRpY3MKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQljYmR0aWNzIG5vY2JkdGljcyBjYm10aWNzIG5vY2JtdGljcyBjYnRpY3Mgbm9jYnRpY3MKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl4dGljcyBub3h0aWNzIHl0aWNzIG5veXRpY3MKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQl6dGljcyBub3p0aWNzIHgydGljcyBub3gydGljcwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXkydGljcyBub3kydGljcyB6ZXJvIG5vemVybyB6ZXJvYXhpcyBub3plcm9heGlzCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJeHplcm9heGlzIG5veHplcm9heGlzIHl6ZXJvYXhpcyBub3l6ZXJvYXhpcwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXgyemVyb2F4aXMgbm94Mnplcm9heGlzIHkyemVyb2F4aXMgbm95Mnplcm9heGlzCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJYW5nbGVzIG9uZSB0d28gZmlsbCBlbXB0eSBzb2xpZCBwYXR0ZXJuCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJZGVmYXVsdAotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXNjYW5zYXV0b21hdGljIGZsdXNoIGJbZWdpbl0gbm9mdHJpYW5nbGVzIGltcGxpY2l0Ci0iIGIgdG9vIG11Y2g/IC0gdXNlZCBpbiBkZW1vCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJcGFsZXR0ZSBwb3NpdGl2ZSBuZWdhdGl2ZSBwc19hbGxjRiBub3BzX2FsbGNGIG1heGNvbG9ycwotc3luIGtleXdvcmQgZ251cGxvdFR5cGUJCXB1c2ggZm9udGZpbGUgcG9wCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJcmdiZm9ybXVsYWUgZGVmaW5lZCBmaWxlIGNvbG9yIG1vZGVsIGdyYWRpZW50IGNvbG9ybmFtZXMKLXN5biBrZXl3b3JkIGdudXBsb3RUeXBlCQlSR0IgSFNWIENNWSBZSVEgWFlaCi1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJY29sb3Jib3ggdmVydGljYWwgaG9yaXpvbnRhbCB1c2VyIGJkZWZhdWx0Ci1zeW4ga2V5d29yZCBnbnVwbG90VHlwZQkJbG9hZHBhdGggZm9udHBhdGggZGVjaW1hbHNpZ24gaW4gb3V0CisiIGNvbW1vbiAoYnVpbHRpbikgdmFyaWFibGUgbmFtZXMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXggeSB0IHUgdiB6IHMKIAotIiBjb21tZW50cyArIHN0cmluZ3MKLXN5biByZWdpb24gZ251cGxvdENvbW1lbnQJc3RhcnQ9IiMiIGVuZD0iJCIKLXN5biByZWdpb24gZ251cGxvdENvbW1lbnQJc3RhcnQ9KyIrIHNraXA9K1xcIisgZW5kPSsiKwotc3luIHJlZ2lvbiBnbnVwbG90Q29tbWVudAlzdGFydD0rJysJICAgICBlbmQ9KycrCisiIGNvbmRpdGlvbmFscworc3luIGtleXdvcmQgZ251cGxvdENvbmRpdGlvbmFsCWlmIGVsc2UKIAotIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgorIiByZXBlYXRzCitzeW4ga2V5d29yZCBnbnVwbG90UmVwZWF0CWRvIGZvciB3aGlsZQorCisiIG9wZXJhdG9ycworc3luIG1hdGNoIGdudXBsb3RPcGVyYXRvcgkiWy0rKi9efCY/Ol0iCitzeW4gbWF0Y2ggZ251cGxvdE9wZXJhdG9yCSJcKlwqIgorc3luIG1hdGNoIGdudXBsb3RPcGVyYXRvcgkiJiYiCitzeW4gbWF0Y2ggZ251cGxvdE9wZXJhdG9yCSJ8fCIKKworIiBLZXl3b3JkcworCisiIGtleXdvcmRzIGZvciAnZml0JyBjb21tYW5kCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl2aWEgeiB4OnogeDp6OnMgeDp5Ono6cworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJeDp5OnQ6ejpzIHg6eTp0OnU6ejpzIHg6eTp0OnU6djp6OnMKKworIiBrZXl3b3JkcyBmb3IgJ3Bsb3QnIGNvbW1hbmQKKyIgJ2F4ZXMnIGtleXdvcmQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWF4ZXMgeDF5MSB4MXkyIHgyeTEgeDJ5MgorIiAnYmluYXJ5JyBrZXl3b3JkCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAliaW5hcnkgbWF0cml4IGdlbmVyYWwgYXJyYXkgcmVjb3JkIGZvcm1hdCBlbmRpYW4KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWZpbGV0eXBlIGF2cyBlZGYgcG5nIHNjYW4gdHJhbnNwb3NlIGR4IGR5IGR6CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlmbGlweCBmbGlweSBmbGlweiBvcmlnaW4gY2VudGVyIHJvdGF0ZSB1c2luZworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcGVycGVuZGljdWxhciBza2lwIGV2ZXJ5CisiIGRhdGFmaWxlIGtleXdvcmRzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAliaW5hcnkgbm9udW5pZm9ybSBtYXRyaXggaW5kZXggZXZlcnkgdXNpbmcKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXNtb290aCB2b2xhdGlsZSBub2F1dG9zY2FsZSBldmVyeSBpbmRleAorIiAnc21vb3RoJyBrZXl3b3Jkcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdW5pcXVlIGZyZXF1ZW5jeSBjdW11bGF0aXZlIGNub3JtYWwga2RlbnNpdHkKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWNzcGxpbmVzIGFjc3BsaW5lcyBiZXplciBzYmV6aWVyCisiIGRlcHJlY2F0ZWQgJ3RocnUnIGtleXdvcmQKK3N5biBrZXl3b3JkIGdudXBsb3RFcnJvcgl0aHJ1CisiICd1c2luZycga2V5d29yZAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdXNpbmcgdSB4dGljbGFiZWxzIHl0aWNsYWJlbHMgenRpY2xhYmVscworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJeDJ0aWNsYWJlbHMgeTJ0aWNsYWJlbHMgeHRpYyB5dGljIHp0aWMKKyIgJ2Vycm9yYmFycycga2V5d29yZHMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWVycm9yYmFycyB4ZXJyb3JiYXJzIHllcnJvcmJhcnMgeHllcnJvcmJhcnMKKyIgJ2Vycm9ybGluZXMnIGtleXdvcmRzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAllcnJvcmxpbmVzIHhlcnJvcmxpbmVzIHllcnJvcmxpbmVzIHh5ZXJyb3JsaW5lcworIiAndGl0bGUnIGtleXdvcmRzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl0aXRsZSB0IHRpdCBub3RpdGxlIGNvbHVtbmhlYWRlciBhdCBiZWdpbm5pbmcKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWVuZAorIiAnd2l0aCcga2V5d29yZHMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXdpdGggdyBsaW5lc3R5bGUgbHMgbGluZXR5cGUgbHQgbGluZXdpZHRoCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlsdyBsaW5lY29sb3IgbGMgcG9pbnR0eXBlIHB0IHBvaW50c2l6ZSBwcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZmlsbCBmcyBub2hpZGRlbjNkIG5vY29udG91cnMgbm9zdXJmYWNlIHBhbGV0dGUKKyIgc3R5bGVzIGZvciAnd2l0aCcKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWxpbmVzIGwgcG9pbnRzIHAgbGluZXNwb2ludHMgbHAgc3VyZmFjZSBkb3RzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlpbXB1bHNlcyBsYWJlbHMgdmVjdG9ycyBzdGVwcyBmc3RlcHMgaGlzdGVwcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZXJyb3JiYXJzIGVycm9ybGluZXMgZmluYW5jZWJhcnMgeGVycm9yYmFycworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJeGVycm9ybGluZXMgeHllcnJvcmJhcnMgeWVycm9yYmFycyB5ZXJyb3JsaW5lcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJYm94ZXMgYm94ZXJyb3JiYXJzIGJveHh5ZXJyb3JiYXJzIGJveHBsb3QKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWNhbmRsZXN0aWNrcyBjaXJjbGVzIGVsbGlwc2VzIGZpbGxlZGN1cnZlcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJaGlzdG9ncmFtIGltYWdlIHJnYmltYWdlIHJnYmFscGhhIHBtM2QgdmFyaWFibGUKKworIiBrZXl3b3JkcyBmb3IgJ3NhdmUnIGNvbW1hbmQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXNhdmUgZnVuY3Rpb25zIGZ1bmMgdmFyaWFibGVzIGFsbCB2YXIgdGVybWluYWwKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXRlcm0gc2V0CisKKyIga2V5d29yZHMgZm9yICdzZXQvc2hvdycgY29tbWFuZAorIiBzZXQgYW5nbGVzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlhbmdsZXMgZGVncmVlcyBkZWcgcmFkaWFucyByYWQKKyIgc2V0IGFycm93CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlhcnJvdyBmcm9tIHRvIHJ0byBsZW5ndGggYW5nbGUgYXJyb3dzdHlsZSBhcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbm9oZWFkIGhlYWQgYmFja2hlYWQgaGVhZHMgc2l6ZSBmaWxsZWQgZW1wdHkKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5vZmlsbGVkIGZyb250IGJhY2sgbGluZXN0eWxlIGxpbmV0eXBlIGxpbmV3aWR0aAorIiBzZXQgYXV0b3NjYWxlCisiIFRPRE8gcmVnZXhwIGhlcmUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWF1dG9zY2FsZSB4IHkgeiBjYiB4MiB5MiB6eSBtaW4gbWF4IGZpeG1pbgorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZml4bWF4IGZpeCBrZWVwZml4IG5vZXh0ZW5kCisiIHNldCBiYXJzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAliYXJzIHNtYWxsIGxhcmdlIGZ1bGx3aWR0aCBmcm9udCBiYWNrCisiIHNldCBiaW5kCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAliaW5kCisiIHNldCBtYXJnaW5zCisiIFRPRE8gcmVnZXhwCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltYXJnaW4gYm1hcmdpbiBsbWFyZ2luIHJtYXJnaW4gdG1hcmdpbgorIiBzZXQgYm9yZGVyCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlib3JkZXIgZnJvbnQgYmFjaworIiBzZXQgYm94d2lkdGgKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWJveHdpZHRoIGFic29sdXRlIHJlbGF0aXZlCisiIGRlcHJlY2F0ZWQgc2V0IGNsYWJlbAorc3luIGtleXdvcmQgZ251cGxvdEVycm9yCWNsYWJlbAorIiBzZXQgY2xpcAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJY2xpcCBwb2ludHMgb25lIHR3bworIiBzZXQgY250cmxhYmVsCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAljbnRybGFiZWwgZm9ybWF0IGZvbnQgc3RhcnQgaW50ZXJ2YWwgb25lY29sb3IKKyIgc2V0IGNudHJwYXJhbQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJY250cnBhcmFtIGxpbmVhciBjdWJpY3NwbGluZSBic3BsaW5lIHBvaW50cworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJb3JkZXIgbGV2ZWxzIGF1dG8gZGlzY3JldGUgaW5jcmVtZW50YWwKKyIgc2V0IGNvbG9yYm94CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAljb2xvcmJveCB2ZXJ0aWNhbCBob3Jpem9udGFsIGRlZmF1bHQgdXNlciBvcmlnaW4KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXNpemUgZnJvbnQgYmFjayBub2JvcmRlciBiZGVmYXVsdCBib3JkZXIKKyIgc2hvdyBjb2xvcm5hbWVzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAljb2xvcm5hbWVzCisiIHNldCBjb250b3VyCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAljb250b3VyIGJhc2Ugc3VyZmFjZSBib3RoCisiIHNldCBkYXRhZmlsZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZGF0YWZpbGUgZm9ydHJhbiBub2ZwZV90cmFwIG1pc3Npbmcgc2VwYXJhdG9yCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl3aGl0ZXNwYWNlIHRhYiBjb21tYSBjb21tZW50c2NoYXJzIGJpbmFyeQorIiBzZXQgZGVjaW1hbHNpZ24KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWRlY2ltYWxzaWduIGxvY2FsZQorIiBzZXQgZGdyaWQzZAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZGdyaWQzZCBzcGxpbmVzIHFub3JtIGdhdXNzIGNhdWNoeSBleHAgYm94IGhhbm4KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWtkZW5zaXR5CisiIHNldCBkdW1teQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZHVtbXkKKyIgc2V0IGVuY29kaW5nCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAllbmNvZGluZyBkZWZhdWx0IGlzb184ODU5XzEgaXNvXzg4NTlfMTUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWlzb184ODU5XzIgaXNvXzg4NTlfOSBrb2k4ciBrb2k4dSBjcDQzNyBjcDg1MAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJY3A4NTIgY3A5NTAgY3AxMjUwIGNwMTI1MSBjcDEyNTQgc2ppcyB1dGY4CisiIHNldCBmaXQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWZpdCBsb2dmaWxlIGRlZmF1bHQgcXVpZXQgbm9xdWlldCByZXN1bHRzIGJyaWVmCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl2ZXJib3NlIGVycm9ydmFyaWFibGVzIG5vZXJyb3J2YXJpYWJsZXMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWVycm9yc2NhbGluZyBub2Vycm9yc2NhbGluZyBwcmVzY2FsZSBub3ByZXNjYWxlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltYXhpdGVyIG5vbmUgbGltaXQgbGltaXRfYWJzIHN0YXJ0LWxhbWJkYSBzY3JpcHQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWxhbWJkYS1mYWN0b3IKKyIgc2V0IGZvbnRwYXRoCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlmb250cGF0aAorIiBzZXQgZm9ybWF0CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlmb3JtYXQKKyIgc2hvdyBmdW5jdGlvbnMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWZ1bmN0aW9ucworIiBzZXQgZ3JpZAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZ3JpZCBwb2xhciBsYXllcmRlZmF1bHQgeHRpY3MgeXRpY3MgenRpY3MgeDJ0aWNzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl5MnRpY3MgY2J0aWNzIG14dGljcyBteXRpY3MgbXp0aWNzIG14MnRpY3MKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW15MnRpY3MgbWNidGljcyB4bXRpY3MgeW10aWNzIHptdGljcyB4Mm10aWNzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl5Mm10aWNzIGNibXRpY3Mgbm94dGljcyBub3l0aWNzIG5venRpY3Mgbm94MnRpY3MKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5veTJ0aWNzIG5vY2J0aWNzIG5vbXh0aWNzIG5vbXl0aWNzIG5vbXp0aWNzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlub214MnRpY3Mgbm9teTJ0aWNzIG5vbWNidGljcworIiBzZXQgaGlkZGVuM2QKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWhpZGRlbjNkIG9mZnNldCB0cmlhbmdsZXBhdHRlcm4gdW5kZWZpbmVkCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlhbHRkaWFnb25hbCBub2FsdGRpYWdvbmFsIGJlbnRvdmVyIG5vYmVudG92ZXIKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5vdW5kZWZpbmVkCisiIHNldCBoaXN0b3J5c2l6ZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJaGlzdG9yeXNpemUKKyIgc2V0IGlzb3NhbXBsZXMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWlzb3NhbXBsZXMKKyIgc2V0IGtleQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJa2V5IG9uIG9mZiBpbnNpZGUgb3V0c2lkZSBhdCBsZWZ0IHJpZ2h0IGNlbnRlcgorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdG9wIGJvdHRvbSB2ZXJ0aWNhbCBob3Jpem9udGFsIExlZnQgUmlnaHQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW9wYXF1ZSBub29wYXF1ZSByZXZlcnNlIG5vcmV2ZXJzZSBpbnZlcnQgbWF4cm93cworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbm9pbnZlcnQgc2FtcGxlbiBzcGFjaW5nIHdpZHRoIGhlaWdodCBhdXRvdGl0bGUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5vYXV0b3RpdGxlIHRpdGxlIGVuaGFuY2VkIG5vZW5oYW5jZWQgZm9udAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdGV4dGNvbG9yIGJveCBub2JveCBsaW5ldHlwZSBsaW5ld2lkdGggbWF4Y29scworIiBzZXQgbGFiZWwKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWxhYmVsIGxlZnQgY2VudGVyIHJpZ2h0IHJvdGF0ZSBub3JvdGF0ZSBieSBmb250CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlmcm9udCBiYWNrIHRleHRjb2xvciBwb2ludCBub3BvaW50IG9mZnNldCBib3hlZAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJaHlwZXJ0ZXh0CisiIHNldCBsaW5ldHlwZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbGluZXR5cGUKKyIgc2V0IGxpbmsKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWxpbmsgdmlhIGludmVyc2UKKyIgc2V0IGxvYWRwYXRoCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlsb2FkcGF0aAorIiBzZXQgbG9jYWxlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlsb2NhbGUKKyIgc2V0IGxvZ3NjYWxlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlsb2dzY2FsZSBsb2cKKyIgc2V0IG1hY3Jvcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbWFjcm9zCisiIHNldCBtYXBwaW5nCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltYXBwaW5nIGNhcnRlc2lhbiBzcGhlcmljYWwgY3lsaW5kcmljYWwKKyIgc2V0IG1vdXNlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltb3VzZSBkb3VibGVjbGljayBub2RvdWJsZWNsaWNrIHpvb21jb29yZGluYXRlcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbm96b29tY29vcmRpbmF0ZXMgcnVsZXIgbm9ydWxlciBhdCBwb2xhcmRpc3RhbmNlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlub3BvbGFyZGlzdGFuY2UgZGVnIHRhbiBmb3JtYXQgY2xpcGJvYXJkZm9ybWF0CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltb3VzZWZvcm1hdCBsYWJlbHMgbm9sYWJlbHMgem9vbWp1bXAgbm96b29tanVtcAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdmVyYm9zZSBub3ZlcmJvc2UKKyIgc2V0IG11bHRpcGxvdAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbXVsdGlwbG90IHRpdGxlIGZvbnQgbGF5b3V0IHJvd3NmaXJzdCBkb3dud2FyZHMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWRvd253YXJkcyB1cHdhcmRzIHNjYWxlIG9mZnNldAorIiBzZXQgb2JqZWN0CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlvYmplY3QgYmVoaW5kIGZpbGxjb2xvciBmYyBmcyByZWN0YW5nbGUgZWxsaXBzZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJY2lyY2xlIHBvbHlnb24gYXQgY2VudGVyIHNpemUgdW5pdHMgeHkgeHggeXkgdG8KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWZyb20KKyIgc2V0IG9mZnNldHMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW9mZnNldHMKKyIgc2V0IG9yaWdpbgorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJb3JpZ2luCisiIHNldCBvdXRwdXQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW91dHB1dAorIiBzZXQgcGFyYW1ldHJpYworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcGFyYW1ldHJpYworIiBzaG93IHBsb3QKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXBsb3QgYWRkMmhpc3RvcnkKKyIgc2V0IHBtM2QKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWhpZGRlbjNkIGludGVycG9sYXRlIHNjYW5zYXV0b21hdGljIHNjYW5zZm9yd2FyZAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJc2NhbnNiYWNrd2FyZCBkZXB0aG9yZGVyIGZsdXNoIGJlZ2luIGNlbnRlciBlbmQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWZ0cmlhbmdsZXMgbm9mdHJpYW5nbGVzIGNsaXAxaW4gY2xpcDRpbiBtZWFuIG1hcAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJY29ybmVyczJjb2xvciBnZW9tZWFuIGhhcm1lYW4gcm1zIG1lZGlhbiBtaW4gbWF4CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAljMSBjMiBjMyBjNCBwbTNkIGF0IG5vaGlkZGVuM2QgaW1wbGljaXQgZXhwbGljaXQKKyIgc2V0IHBhbGV0dGUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXBhbGV0dGUgZ3JheSBjb2xvciBnYW1tYSByZ2Jmb3JtdWxhZSBkZWZpbmVkCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlmaWxlIGZ1bmN0aW9ucyBjdWJlaGVsaXggc3RhcnQgY3ljbGVzIHNhdHVyYXRpb24KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW1vZGVsIFJHQiBIU1YgQ01ZIFlJUSBYWVogcG9zaXRpdmUgbmVnYXRpdmUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5vcHNfYWxsY0YgcHNfYWxsY0YgbWF4Y29sb3JzIGZsb2F0IGludCBncmFkaWVudAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZml0MnJnYmZvcm11bGFlIHJnYmZvcm11bGFlCisiIHNldCBwb2ludGludGVydmFsYm94CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlwb2ludGludGVydmFsYm94CisiIHNldCBwb2ludHNpemUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXBvaW50c2l6ZQorIiBzZXQgcG9sYXIKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXBvbGFyCisiIHNldCBwcmludAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcHJpbnQgYXBwZW5kCisiIHNldCBwc2Rpcgorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcHNkaXIKKyIgc2V0IHJheGlzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlyYXhpcyBycmFuZ2UgcnRpY3MKKyIgc2V0IHNhbXBsZXMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXNhbXBsZXMKKyIgc2V0IHNpemUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXNpemUgc3F1YXJlIG5vc3F1YXJlIHJhdGlvIG5vcmF0aW8KKyIgc2V0IHN0eWxlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlzdHlsZSBmdW5jdGlvbiBkYXRhIG5vYm9yZGVyIHJlY3RhbmdsZSBhcnJvdworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZGVmYXVsdCBub2hlYWQgaGVhZCBoZWFkcyBzaXplIGZpbGxlZCBlbXB0eQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbm9maWxsZWQgZnJvbnQgYmFjayBib3hwbG90IHJhbmdlIGZyYWN0aW9uCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlvdXRsaWVycyBub291dGxpZXJzIHBvaW50dHlwZSBjYW5kbGVzdGlja3MKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXNlcGFyYXRpb24gbGFiZWxzIG9mZiBhdXRvIHggeDIgc29ydGVkIHVuc29ydGVkCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlmaWxsIGVtcHR5IHRyYW5zcGFyZW50IHNvbGlkIHBhdHRlcm4gYm9yZGVyCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlpbmNyZW1lbnQgdXNlcnN0eWxlcyBmaW5hbmNlYmFycyBsaW5lIGRlZmF1bHQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWxpbmV0eXBlIGx0IGxpbmVjb2xvciBsYyBsaW5ld2lkdGggbHcgcG9pbnR0eXBlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlwdCBwb2ludHNpemUgcHMgcG9pbnRpbnRlcnZhbCBwaSBwYWxldHRlIGNpcmNsZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcmFkaXVzIGdyYXBoIHNjcmVlbiB3ZWRnZSBub3dlZGdlIGVsbGlwc2Ugc2l6ZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdW5pdHMgeHggeHkgeXkgaGlzdG9ncmFtIGxpbmUgdGV4dGJveCBvcGFxdWUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWJvcmRlciBub2JvcmRlcgorIiBzZXQgc3VyZmFjZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJc3VyZmFjZSBpbXBsaWNpdCBleHBsaWNpdAorIiBzZXQgdGFibGUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXRhYmxlCisiIHNldCB0ZXJtaW5hbCAobGlzdCBvZiB0ZXJtaW5hbHMpCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl0ZXJtaW5hbCB0ZXJtIHB1c2ggcG9wIGFlZDUxMiBhZWQ3NjcgYWlmbSBhcXVhCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAliZSBjYWlybyBjYWlyb2xhdGV4IGNhbnZhcyBjZ20gY29udGV4dCBjb3JlbAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZGVidWcgZHVtYiBkeGYgZHh5ODAwYSBlZXBpYyBlbWYgZW14dmdhIGVwc2NhaXJvCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAllcHNsYXRleCBlcHNvbl8xODBkcGkgZXhjbCBmaWcgZ2dpIGdpZiBncGljIGhwZ2wKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWdyYXNzIGhwMjYyM2EgaHAyNjQ4IGhwNTAwYyBocGxqaWkgaHBwaiBpbWFnZW4KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWpwZWcga3lvIGxhdGV4IGxpbnV4IGx1YSBtZiBtaWYgbXAgbmV4dCBvcGVuc3RlcAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcGJtIHBkZiBwZGZjYWlybyBwbSBwbmcgcG5nY2Fpcm8gcG9zdHNjcmlwdAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcHNsYXRleCBwc3RleCBwc3RyaWNrcyBxbXMgcXQgcmVnaXMgc3VuIHN2ZyBzdmdhCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl0ZWs0MCB0ZWs0MTB4IHRleGRyYXcgdGdpZiB0aWt6IHRrY2FudmFzIHRwaWMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXZnYWdsIHZ3cyB2eDM4NCB3aW5kb3dzIHd4IHd4dCB4MTEgeGxpYgorIiBrZXl3b3JkcyBmb3IgJ3NldCB0ZXJtaW5hbCcKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWNvbG9yIG1vbm9jaHJvbWUgZGFzaGxlbmd0aCBkbCBlcHMgcGRmIGZvbnRzY2FsZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJc3RhbmRhbG9uZSBibGFja3RleHQgY29sb3J0ZXh0IGNvbG91cnRleHQgaGVhZGVyCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlub2hlYWRlciBtb25vIGNvbG9yIHNvbGlkIGRhc2hlZCBub3RyYW5zcGFyZW50CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAljcm9wIGNyb3AgYmFja2dyb3VuZCBpbnB1dCByb3VuZGVkIGJ1dHQgc3F1YXJlCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlzaXplIGZzaXplIHN0YW5kYWxvbmUgbmFtZSBqc2RpciBkZWZhdWx0c2l6ZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdGltZXN0YW1wIG5vdGltZXN0YW1wIGNvbG91ciBtaXRlcmVkIGJldmVsZWQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXJvdW5kIHNxdWFyZWQgcGFsZnVuY3BhcmFtIGJsYWNrdGV4dCBuZWNfY3A2CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltcHBvaW50cyBpbmxpbmVpbWFnZXMgZXh0ZXJuYWxpbWFnZXMgZGVmYXVsdGZvbnQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWFzcGVjdCBmZWVkIG5vZmVlZCByb3RhdGUgc21hbGwgdGlueSBzdGFuZGFsb25lCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlvbGRzdHlsZSBuZXdzdHlsZSBsZXZlbDEgbGV2ZWxkZWZhdWx0IGxldmVsMworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJYmFja2dyb3VuZCBub2JhY2tncm91bmQgc29saWQgY2xpcCBub2NsaXAKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWNvbG9ydGV4dCBjb2xvdXJ0ZXh0IGVwc29uXzYwZHBpIGVwc29uX2x4ODAwCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlva2lkYXRhIHN0YXJjIHRhbmR5XzYwZHBpIGRwdTQxNCBuZWNfY3A2IGRyYWZ0CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAltZWRpdW0gbGFyZ2Ugbm9ybWFsIGxhbmRzY2FwZSBwb3J0cmFpdCBiaWcKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWluY2hlcyBwb2ludHNtYXggdGV4dHNwZWNpYWwgdGV4dGhpZGRlbgorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdGhpY2tuZXNzIGRlcHRoIHZlcnNpb24gYWNjZWxlcmF0aW9uIGdpYW50CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlkZWxheSBsb29wIG9wdGltaXplIG5vb3B0aW1pemUgcHNwb2ludHMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCUZOVDlYMTcgRk5UMTNYMjUgaW50ZXJsYWNlIG5vaW50ZXJsYWNlIGNvdXJpZXIKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW9yaWdpbnJlc2V0IG5vb3JpZ2lucmVzZXQgZ3BhcnJvd3Mgbm9ncGFycm93cworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcGljZW52aXJvbm1lbnQgbm9waWNlbnZpcm9ubWVudCB0aWdodGJvdW5kaW5nYm94CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlub3RpZ2h0Ym91bmRpbmdib3ggY2hhcnNpemUgZ3Bwb2ludHMgbm9ncHBvaW50cworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZm9udHNjYWxlIHRleHRzY2FsZSBmdWxsZG9jIG5vZnVsbGRvYyBzdGFuZGFsb25lCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlwcmVhbWJsZSBoZWFkZXIgdGlrenBsb3QgdGlremFycm93cyBub3Rpa3phcnJvd3MKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWNteWtpbWFnZXMgZXh0ZXJuYWxpbWFnZXMgbm9leHRlcm5hbGltYWdlcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcG9seWxpbmUgdmVjdG9ycyBtYWduaWZpY2F0aW9uIHBzbmZzcyBub3BzbmZzcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJcHNuZnNzLXZlcnNpb243IHByb2xvZ3VlcyBhNHBhcGVyIGFtc3RleCBmbmFtZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJZnNpemUgc2VydmVyIHBlcnNpc3Qgd2lkZWxpbmVzIGludGVybGFjZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdHJ1ZWNvbG9yIG5vdHJ1ZWNvbG9yIGRlZmF1bHRwbGV4IHNpbXBsZXggZHVwbGV4CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlub2ZvbnRmaWxlcyBhZG9iZWdseXBobmFtZXMgbm9hZG9iZWdseXBobmFtZXMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5vc3RhbmRhbG9uZSBtZXRyaWMgdGV4dHJpZ2lkIGFuaW1hdGUgbm9wc3BvaW50cworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJaHBkaiBGTlQ1WDkgcm9tYW4gZW10ZXggcmdiaW1hZ2VzIGJpdG1hcAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbm9iaXRtYXAgcHJvdmlkZXZhcnMgbm9pbnRlcmxhY2UgYWRkIGRlbGV0ZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJYXV4ZmlsZSBoYWNrdGV4dCB1bml0IHJhaXNlIHBhbGZ1bmNwYXJhbQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJbm9hdXhmaWxlIG5vaGFja3RleHQgbm91bml0IG5vcmFpc2UgY3RybCBub2N0cmwKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWNsb3NlIHdpZGdldCBmaXhlZCBkeW5hbWljIHRlazQweHggdnR0ZWsKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWtjLXRlazQweHgga20tdGVrNDB4eCBiaXRncmFwaCBwZXJsdGsKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWludGVyYWN0aXZlIHJlZCBncmVlbiBibHVlIGludGVycG9sYXRlIG1vZGUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXBvc2l0aW9uIGN0cmxxIHJlcGxvdG9ucmVzaXplIHBvc2l0aW9uIG5vY3RybHEKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCW5vcmVwbG90b25yZXNpemUKKyIgc2V0IHRlcm1vcHRpb24KK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXRlcm1vcHRpb24gZm9udCBmb250c2NhbGUgc29saWQgZGFzaGVkCisiIHNldCB0aWNzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl0aWNzIGFkZCBheGlzIGJvcmRlciBtaXJyb3Igbm9taXJyb3IgaW4gb3V0CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlzY2FsZSByb3RhdGUgbm9yb3RhdGUgYnkgb2Zmc2V0IG5vb2Zmc2V0IGxlZnQKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCWF1dG9qdXN0aWZ5IGZvcm1hdCBmb250IHRleHRjb2xvciByaWdodCBjZW50ZXIKKyIgZGVwcmVjYXRlZCBzZXQgdGljc2xldmVsCitzeW4ga2V5d29yZCBnbnVwbG90RXJyb3IJdGljc2xldmVsIHRpY3NjYWxlCisiIHNldCB0aW1lc3RhbXAKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXRpbWVzdGFtcCB0b3AgYm90dG9tIG9mZnNldCBmb250CisiIHNldCB0aW1lZm10CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl0aW1lZm10CisiIHNldCB0aXRsZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdGl0bGUgb2Zmc2V0IGZvbnQgdGV4dGNvbG9yIHRjCisiIHNldCByYW5nZXMKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXRyYW5nZSB1cmFuZ2UgdnJhbmdlCisiIHNob3cgdmFyaWFibGVzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl2YXJpYWJsZXMKKyIgc2hvdyB2ZXJzaW9uCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl2ZXJzaW9uCisiIHNldCB2aWV3CitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl2aWV3IG1hcCBlcXVhbCBub2VxdWFsIHh5IHh5egorIiBzZXQgeDJkYXRhCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl4ZGF0YSB5ZGF0YSB6ZGF0YSB4MmRhdGEgeTJkYXRhIGNiZGF0YSB4ZHRpY3MKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXlkdGljcyB6ZHRpY3MgeDJkdGljcyB5MmR0aWNzIGNiZHRpY3MgeHplcm9heGlzCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl5emVyb2F4aXMgenplcm9heGlzIHgyemVyb2F4aXMgeTJ6ZXJvYXhpcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJY2J6ZXJvYXhpcyB0aW1lIGdlb2dyYXBoaWMKKyIgc2V0IGxhYmVsCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl4bGFiZWwgeWxhYmVsIHpsYWJlbCB4MmxhYmVsIHkybGFiZWwgY2JsYWJlbAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJb2Zmc2V0IGZvbnQgdGV4dGNvbG9yIGJ5IHBhcmFsbGVsCisiIHNldCByYW5nZQorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJeHJhbmdlIHlyYW5nZSB6cmFuZ2UgeDJyYW5nZSB5MnJhbmdlIGNicmFuZ2UKKyIgc2V0IHh5cGxhbmUKK3N5biBrZXl3b3JkIGdudXBsb3RLZXl3b3JkCXh5cGxhbmUKKyIgc2V0IHplcm9heGlzCisiIHNldCB6ZXJvCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAl6ZXJvCisiIHNldCB6ZXJvYXhpcworc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJemVyb2F4aXMKKworIiBrZXl3b3JkcyBmb3IgJ3N0YXRzJyBjb21tYW5kCitzeW4ga2V5d29yZCBnbnVwbG90S2V5d29yZAlub291dHB1dAorCisiIGtleXdvcmRzIGZvciAndGVzdCcgY29tbWFuZAorc3luIGtleXdvcmQgZ251cGxvdEtleXdvcmQJdGVybWluYWwgcGFsZXR0ZSByZ2IgcmJnIGdyYiBnYnIgYnJnIGJncgorCisiIC0tLS0gTWFjcm9zIC0tLS0gIgorCitzeW4gcmVnaW9uIGdudXBsb3RNYWNybwkJc3RhcnQ9IkAiIGVuZD0iICIKKworIiAtLS0tIFRvZG9zIC0tLS0gIgorCitzeW4ga2V5d29yZCBnbnVwbG90VG9kbwkJY29udGFpbmVkIFRPRE8gRklYTUUgWFhYCisKKyIgLS0tLSBUeXBlczogZ251cGxvdCBjb21tYW5kcyAtLS0tICIKKworIiBJIHNldCB0aGUgY29tbWFuZHMgYXMgVHlwZXMgdG8gZGlzdGluZ3Vpc2ggdGhlbSB2aXN1YWxseSBmcm9tIGtleXdvcmRzIGZvciB0aGUKKyIgY29tbWFuZHMuICBUaGlzIGNvbWVzIGF0IHRoZSBlbmQgb2YgdGhlIHN5bnRheCBmaWxlIGJlY2F1c2Ugc29tZSBjb21tYW5kcworIiBhcmUgcmVkdW5kYW50IHdpdGgga2V5d29yZHMuICBJdCdzIHByb2JhYmx5IHRvbyBtdWNoIHRyb3VibGUgdG8gZ28gYW5kCisiIGNyZWF0ZSBzcGVjaWFsIHJlZ2lvbnMgZm9yIGVhY2ggcmVkdW5kYW50IGtleXdvcmQvY29tbWFuZCBwYWlyLCB3aGljaCBtZWFucworIiB0aGF0IHNvbWUga2V5d29yZHMgKGUuZy4gJ3AnKSB3aWxsIGJlIGhpZ2hsaWdodGVkIGFzIGNvbW1hbmRzLgorCitzeW4ga2V5d29yZCBnbnVwbG90U3RhdGVtZW50CWNkIGNhbGwgY2xlYXIgZXZhbHVhdGUgZXhpdCBmaXQgaGVscCBoaXN0b3J5CitzeW4ga2V5d29yZCBnbnVwbG90U3RhdGVtZW50CWxvYWQgbG93ZXIgcGF1c2UgcGxvdCBwIHByaW50IHB3ZCBxdWl0IHJhaXNlCitzeW4ga2V5d29yZCBnbnVwbG90U3RhdGVtZW50CXJlZnJlc2ggcmVwbG90IHJlcCByZXJlYWQgcmVzZXQgc2F2ZSBzZXQgc2hvdworc3luIGtleXdvcmQgZ251cGxvdFN0YXRlbWVudAlzaGVsbCBzcGxvdCBzcHN0YXRzIHN5c3RlbSB0ZXN0IHVuZGVmaW5lIHVuc2V0CitzeW4ga2V5d29yZCBnbnVwbG90U3RhdGVtZW50CXVwZGF0ZQorCisiIC0tLS0gRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZyAtLS0tICIKICIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQogIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAogaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2dudXBsb3Rfc3ludGF4X2luaXRzIikKQEAgLTE4MSwxNCArNTEwLDQxIEBACiAgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CiAgIGVuZGlmCiAKLSAgSGlMaW5rIGdudXBsb3RTdGF0ZW1lbnQJU3RhdGVtZW50Ci0gIEhpTGluayBnbnVwbG90Q29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKKyAgIiAtLS0tIENvbW1lbnRzIC0tLS0gIgorICBIaUxpbmsgZ251cGxvdENvbW1lbnQJCUNvbW1lbnQKKworICAiIC0tLS0gQ29uc3RhbnRzIC0tLS0gIgorICBIaUxpbmsgZ251cGxvdFN0cmluZwkJU3RyaW5nCiAgIEhpTGluayBnbnVwbG90TnVtYmVyCQlOdW1iZXIKICAgSGlMaW5rIGdudXBsb3RGbG9hdAkJRmxvYXQKKworICAiIC0tLS0gSWRlbnRpZmllcnMgLS0tLSAiCisgIEhpTGluayBnbnVwbG90SWRlbnRpZmllcglJZGVudGlmaWVyCisKKyAgIiAtLS0tIFN0YXRlbWVudHMgLS0tLSAiCisgIEhpTGluayBnbnVwbG90Q29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKKyAgSGlMaW5rIGdudXBsb3RSZXBlYXQJCVJlcGVhdAorICBIaUxpbmsgZ251cGxvdEtleXdvcmQJCUtleXdvcmQKKyAgSGlMaW5rIGdudXBsb3RPcGVyYXRvcglPcGVyYXRvcgorCisgICIgLS0tLSBQcmVQcm9jcyAtLS0tICIKKyAgSGlMaW5rIGdudXBsb3RNYWNybwkJTWFjcm8KKworICAiIC0tLS0gVHlwZXMgLS0tLSAiCisgIEhpTGluayBnbnVwbG90U3RhdGVtZW50CVR5cGUKKyAgSGlMaW5rIGdudXBsb3RGdW5jCQlJZGVudGlmaWVyCisKKyAgIiAtLS0tIFNwZWNpYWxzIC0tLS0gIgorICBIaUxpbmsgZ251cGxvdFNwZWNpYWwJCVNwZWNpYWwKKyAgSGlMaW5rIGdudXBsb3RVbml0CQlTcGVjaWFsCisgIEhpTGluayBnbnVwbG90RXh0ZXJuYWwJU3BlY2lhbAorCisgICIgLS0tLSBFcnJvcnMgLS0tLSAiCisgIEhpTGluayBnbnVwbG90RXJyb3IJCUVycm9yCiAgIEhpTGluayBnbnVwbG90T2N0YWxFcnJvcglFcnJvcgotICBIaUxpbmsgZ251cGxvdEZ1bmMJCVR5cGUKLSAgSGlMaW5rIGdudXBsb3RUeXBlCQlUeXBlCi0gIEhpTGluayBnbnVwbG90Q29tbWVudAlDb21tZW50CisKKyAgIiAtLS0tIFRvZG9zIC0tLS0gIgorICBIaUxpbmsgZ251cGxvdFRvZG8JCVRvZG8KIAogICBkZWxjb21tYW5kIEhpTGluawogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2dvLnZpbSBiL3J1bnRpbWUvc3ludGF4L2dvLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzhmOGNmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zeW50YXgvZ28udmltCkBAIC0wLDAgKzEsMjA4IEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZToJR28KKyIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQtZ28pCisiIExhc3QgQ2hhbmdlOgkyMDE0IEF1ZyAxNgorCisiIE9wdGlvbnM6CisiICAgVGhlcmUgYXJlIHNvbWUgb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIGhpZ2hsaWdodGluZzsgdGhlIHJlY29tbWVuZGVkCisiICAgc2V0dGluZ3MgYXJlIHRoZSBkZWZhdWx0IHZhbHVlcywgYnV0IHlvdSBjYW4gd3JpdGU6CisiICAgICBsZXQgT1BUSU9OX05BTUUgPSAwCisiICAgaW4geW91ciB+Ly52aW1yYyBmaWxlIHRvIGRpc2FibGUgcGFydGljdWxhciBvcHRpb25zLiBZb3UgY2FuIGFsc28gd3JpdGU6CisiICAgICBsZXQgT1BUSU9OX05BTUUgPSAxCisiICAgdG8gZW5hYmxlIHBhcnRpY3VsYXIgb3B0aW9ucy4gQXQgcHJlc2VudCwgYWxsIG9wdGlvbnMgZGVmYXVsdCB0byBvbi4KKyIKKyIgICAtIGc6Z29faGlnaGxpZ2h0X2FycmF5X3doaXRlc3BhY2VfZXJyb3IKKyIgICAgIEhpZ2hsaWdodHMgd2hpdGUgc3BhY2UgYWZ0ZXIgIltdIi4KKyIgICAtIGc6Z29faGlnaGxpZ2h0X2NoYW5fd2hpdGVzcGFjZV9lcnJvcgorIiAgICAgSGlnaGxpZ2h0cyB3aGl0ZSBzcGFjZSBhcm91bmQgdGhlIGNvbW11bmljYXRpb25zIG9wZXJhdG9yIHRoYXQgZG9uJ3QKKyIgICAgIGZvbGxvdyB0aGUgc3RhbmRhcmQgc3R5bGUuCisiICAgLSBnOmdvX2hpZ2hsaWdodF9leHRyYV90eXBlcworIiAgICAgSGlnaGxpZ2h0cyBjb21tb25seSB1c2VkIGxpYnJhcnkgdHlwZXMgKGlvLlJlYWRlciwgZXRjLikuCisiICAgLSBnOmdvX2hpZ2hsaWdodF9zcGFjZV90YWJfZXJyb3IKKyIgICAgIEhpZ2hsaWdodHMgaW5zdGFuY2VzIG9mIHRhYnMgZm9sbG93aW5nIHNwYWNlcy4KKyIgICAtIGc6Z29faGlnaGxpZ2h0X3RyYWlsaW5nX3doaXRlc3BhY2VfZXJyb3IKKyIgICAgIEhpZ2hsaWdodHMgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCisKKyIgUXVpdCB3aGVuIGEgKGN1c3RvbSkgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCitpZiBleGlzdHMoJ2I6Y3VycmVudF9zeW50YXgnKQorICBmaW5pc2gKK2VuZGlmCisKK2lmICFleGlzdHMoJ2c6Z29faGlnaGxpZ2h0X2FycmF5X3doaXRlc3BhY2VfZXJyb3InKQorICBsZXQgZzpnb19oaWdobGlnaHRfYXJyYXlfd2hpdGVzcGFjZV9lcnJvciA9IDEKK2VuZGlmCitpZiAhZXhpc3RzKCdnOmdvX2hpZ2hsaWdodF9jaGFuX3doaXRlc3BhY2VfZXJyb3InKQorICBsZXQgZzpnb19oaWdobGlnaHRfY2hhbl93aGl0ZXNwYWNlX2Vycm9yID0gMQorZW5kaWYKK2lmICFleGlzdHMoJ2c6Z29faGlnaGxpZ2h0X2V4dHJhX3R5cGVzJykKKyAgbGV0IGc6Z29faGlnaGxpZ2h0X2V4dHJhX3R5cGVzID0gMQorZW5kaWYKK2lmICFleGlzdHMoJ2c6Z29faGlnaGxpZ2h0X3NwYWNlX3RhYl9lcnJvcicpCisgIGxldCBnOmdvX2hpZ2hsaWdodF9zcGFjZV90YWJfZXJyb3IgPSAxCitlbmRpZgoraWYgIWV4aXN0cygnZzpnb19oaWdobGlnaHRfdHJhaWxpbmdfd2hpdGVzcGFjZV9lcnJvcicpCisgIGxldCBnOmdvX2hpZ2hsaWdodF90cmFpbGluZ193aGl0ZXNwYWNlX2Vycm9yID0gMQorZW5kaWYKKworc3luIGNhc2UgbWF0Y2gKKworc3luIGtleXdvcmQgICAgIGdvRGlyZWN0aXZlICAgICAgICAgcGFja2FnZSBpbXBvcnQKK3N5biBrZXl3b3JkICAgICBnb0RlY2xhcmF0aW9uICAgICAgIHZhciBjb25zdCB0eXBlCitzeW4ga2V5d29yZCAgICAgZ29EZWNsVHlwZSAgICAgICAgICBzdHJ1Y3QgaW50ZXJmYWNlCisKK2hpIGRlZiBsaW5rICAgICBnb0RpcmVjdGl2ZSAgICAgICAgIFN0YXRlbWVudAoraGkgZGVmIGxpbmsgICAgIGdvRGVjbGFyYXRpb24gICAgICAgS2V5d29yZAoraGkgZGVmIGxpbmsgICAgIGdvRGVjbFR5cGUgICAgICAgICAgS2V5d29yZAorCisiIEtleXdvcmRzIHdpdGhpbiBmdW5jdGlvbnMKK3N5biBrZXl3b3JkICAgICBnb1N0YXRlbWVudCAgICAgICAgIGRlZmVyIGdvIGdvdG8gcmV0dXJuIGJyZWFrIGNvbnRpbnVlIGZhbGx0aHJvdWdoCitzeW4ga2V5d29yZCAgICAgZ29Db25kaXRpb25hbCAgICAgICBpZiBlbHNlIHN3aXRjaCBzZWxlY3QKK3N5biBrZXl3b3JkICAgICBnb0xhYmVsICAgICAgICAgICAgIGNhc2UgZGVmYXVsdAorc3luIGtleXdvcmQgICAgIGdvUmVwZWF0ICAgICAgICAgICAgZm9yIHJhbmdlCisKK2hpIGRlZiBsaW5rICAgICBnb1N0YXRlbWVudCAgICAgICAgIFN0YXRlbWVudAoraGkgZGVmIGxpbmsgICAgIGdvQ29uZGl0aW9uYWwgICAgICAgQ29uZGl0aW9uYWwKK2hpIGRlZiBsaW5rICAgICBnb0xhYmVsICAgICAgICAgICAgIExhYmVsCitoaSBkZWYgbGluayAgICAgZ29SZXBlYXQgICAgICAgICAgICBSZXBlYXQKKworIiBQcmVkZWZpbmVkIHR5cGVzCitzeW4ga2V5d29yZCAgICAgZ29UeXBlICAgICAgICAgICAgICBjaGFuIG1hcCBib29sIHN0cmluZyBlcnJvcgorc3luIGtleXdvcmQgICAgIGdvU2lnbmVkSW50cyAgICAgICAgaW50IGludDggaW50MTYgaW50MzIgaW50NjQgcnVuZQorc3luIGtleXdvcmQgICAgIGdvVW5zaWduZWRJbnRzICAgICAgYnl0ZSB1aW50IHVpbnQ4IHVpbnQxNiB1aW50MzIgdWludDY0IHVpbnRwdHIKK3N5biBrZXl3b3JkICAgICBnb0Zsb2F0cyAgICAgICAgICAgIGZsb2F0MzIgZmxvYXQ2NAorc3luIGtleXdvcmQgICAgIGdvQ29tcGxleGVzICAgICAgICAgY29tcGxleDY0IGNvbXBsZXgxMjgKKworaGkgZGVmIGxpbmsgICAgIGdvVHlwZSAgICAgICAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgICAgIGdvU2lnbmVkSW50cyAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgICAgIGdvVW5zaWduZWRJbnRzICAgICAgVHlwZQoraGkgZGVmIGxpbmsgICAgIGdvRmxvYXRzICAgICAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgICAgIGdvQ29tcGxleGVzICAgICAgICAgVHlwZQorCisiIFRyZWF0IGZ1bmMgc3BlY2lhbGx5OiBpdCdzIGEgZGVjbGFyYXRpb24gYXQgdGhlIHN0YXJ0IG9mIGEgbGluZSwgYnV0IGEgdHlwZQorIiBlbHNld2hlcmUuIE9yZGVyIG1hdHRlcnMgaGVyZS4KK3N5biBtYXRjaCAgICAgICBnb1R5cGUgICAgICAgICAgICAgIC9cPGZ1bmNcPi8KK3N5biBtYXRjaCAgICAgICBnb0RlY2xhcmF0aW9uICAgICAgIC9eZnVuY1w+LworCisiIFByZWRlZmluZWQgZnVuY3Rpb25zIGFuZCB2YWx1ZXMKK3N5biBrZXl3b3JkICAgICBnb0J1aWx0aW5zICAgICAgICAgIGFwcGVuZCBjYXAgY2xvc2UgY29tcGxleCBjb3B5IGRlbGV0ZSBpbWFnIGxlbgorc3luIGtleXdvcmQgICAgIGdvQnVpbHRpbnMgICAgICAgICAgbWFrZSBuZXcgcGFuaWMgcHJpbnQgcHJpbnRsbiByZWFsIHJlY292ZXIKK3N5biBrZXl3b3JkICAgICBnb0NvbnN0YW50cyAgICAgICAgIGlvdGEgdHJ1ZSBmYWxzZSBuaWwKKworaGkgZGVmIGxpbmsgICAgIGdvQnVpbHRpbnMgICAgICAgICAgS2V5d29yZAoraGkgZGVmIGxpbmsgICAgIGdvQ29uc3RhbnRzICAgICAgICAgS2V5d29yZAorCisiIENvbW1lbnRzOyB0aGVpciBjb250ZW50cworc3luIGtleXdvcmQgICAgIGdvVG9kbyAgICAgICAgICAgICAgY29udGFpbmVkIFRPRE8gRklYTUUgWFhYIEJVRworc3luIGNsdXN0ZXIgICAgIGdvQ29tbWVudEdyb3VwICAgICAgY29udGFpbnM9Z29Ub2RvCitzeW4gcmVnaW9uICAgICAgZ29Db21tZW50ICAgICAgICAgICBzdGFydD0iL1wqIiBlbmQ9IlwqLyIgY29udGFpbnM9QGdvQ29tbWVudEdyb3VwLEBTcGVsbAorc3luIHJlZ2lvbiAgICAgIGdvQ29tbWVudCAgICAgICAgICAgc3RhcnQ9Ii8vIiBlbmQ9IiQiIGNvbnRhaW5zPUBnb0NvbW1lbnRHcm91cCxAU3BlbGwKKworaGkgZGVmIGxpbmsgICAgIGdvQ29tbWVudCAgICAgICAgICAgQ29tbWVudAoraGkgZGVmIGxpbmsgICAgIGdvVG9kbyAgICAgICAgICAgICAgVG9kbworCisiIEdvIGVzY2FwZXMKK3N5biBtYXRjaCAgICAgICBnb0VzY2FwZU9jdGFsICAgICAgIGRpc3BsYXkgY29udGFpbmVkICJcXFswLTddXHszfSIKK3N5biBtYXRjaCAgICAgICBnb0VzY2FwZUMgICAgICAgICAgIGRpc3BsYXkgY29udGFpbmVkICtcXFthYmZucnR2XFwnIl0rCitzeW4gbWF0Y2ggICAgICAgZ29Fc2NhcGVYICAgICAgICAgICBkaXNwbGF5IGNvbnRhaW5lZCAiXFx4XHhcezJ9Igorc3luIG1hdGNoICAgICAgIGdvRXNjYXBlVSAgICAgICAgICAgZGlzcGxheSBjb250YWluZWQgIlxcdVx4XHs0fSIKK3N5biBtYXRjaCAgICAgICBnb0VzY2FwZUJpZ1UgICAgICAgIGRpc3BsYXkgY29udGFpbmVkICJcXFVceFx7OH0iCitzeW4gbWF0Y2ggICAgICAgZ29Fc2NhcGVFcnJvciAgICAgICBkaXNwbGF5IGNvbnRhaW5lZCArXFxbXjAtN3h1VWFiZm5ydHZcXCciXSsKKworaGkgZGVmIGxpbmsgICAgIGdvRXNjYXBlT2N0YWwgICAgICAgZ29TcGVjaWFsU3RyaW5nCitoaSBkZWYgbGluayAgICAgZ29Fc2NhcGVDICAgICAgICAgICBnb1NwZWNpYWxTdHJpbmcKK2hpIGRlZiBsaW5rICAgICBnb0VzY2FwZVggICAgICAgICAgIGdvU3BlY2lhbFN0cmluZworaGkgZGVmIGxpbmsgICAgIGdvRXNjYXBlVSAgICAgICAgICAgZ29TcGVjaWFsU3RyaW5nCitoaSBkZWYgbGluayAgICAgZ29Fc2NhcGVCaWdVICAgICAgICBnb1NwZWNpYWxTdHJpbmcKK2hpIGRlZiBsaW5rICAgICBnb1NwZWNpYWxTdHJpbmcgICAgIFNwZWNpYWwKK2hpIGRlZiBsaW5rICAgICBnb0VzY2FwZUVycm9yICAgICAgIEVycm9yCisKKyIgU3RyaW5ncyBhbmQgdGhlaXIgY29udGVudHMKK3N5biBjbHVzdGVyICAgICBnb1N0cmluZ0dyb3VwICAgICAgIGNvbnRhaW5zPWdvRXNjYXBlT2N0YWwsZ29Fc2NhcGVDLGdvRXNjYXBlWCxnb0VzY2FwZVUsZ29Fc2NhcGVCaWdVLGdvRXNjYXBlRXJyb3IKK3N5biByZWdpb24gICAgICBnb1N0cmluZyAgICAgICAgICAgIHN0YXJ0PSsiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisgY29udGFpbnM9QGdvU3RyaW5nR3JvdXAKK3N5biByZWdpb24gICAgICBnb1Jhd1N0cmluZyAgICAgICAgIHN0YXJ0PStgKyBlbmQ9K2ArCisKK2hpIGRlZiBsaW5rICAgICBnb1N0cmluZyAgICAgICAgICAgIFN0cmluZworaGkgZGVmIGxpbmsgICAgIGdvUmF3U3RyaW5nICAgICAgICAgU3RyaW5nCisKKyIgQ2hhcmFjdGVyczsgdGhlaXIgY29udGVudHMKK3N5biBjbHVzdGVyICAgICBnb0NoYXJhY3Rlckdyb3VwICAgIGNvbnRhaW5zPWdvRXNjYXBlT2N0YWwsZ29Fc2NhcGVDLGdvRXNjYXBlWCxnb0VzY2FwZVUsZ29Fc2NhcGVCaWdVCitzeW4gcmVnaW9uICAgICAgZ29DaGFyYWN0ZXIgICAgICAgICBzdGFydD0rJysgc2tpcD0rXFxcXFx8XFwnKyBlbmQ9KycrIGNvbnRhaW5zPUBnb0NoYXJhY3Rlckdyb3VwCisKK2hpIGRlZiBsaW5rICAgICBnb0NoYXJhY3RlciAgICAgICAgIENoYXJhY3RlcgorCisiIFJlZ2lvbnMKK3N5biByZWdpb24gICAgICBnb0Jsb2NrICAgICAgICAgICAgIHN0YXJ0PSJ7IiBlbmQ9In0iIHRyYW5zcGFyZW50IGZvbGQKK3N5biByZWdpb24gICAgICBnb1BhcmVuICAgICAgICAgICAgIHN0YXJ0PScoJyBlbmQ9JyknIHRyYW5zcGFyZW50CisKKyIgSW50ZWdlcnMKK3N5biBtYXRjaCAgICAgICBnb0RlY2ltYWxJbnQgICAgICAgICJcPFxkXCtcKFtFZV1cZFwrXClcP1w+Igorc3luIG1hdGNoICAgICAgIGdvSGV4YWRlY2ltYWxJbnQgICAgIlw8MHhceFwrXD4iCitzeW4gbWF0Y2ggICAgICAgZ29PY3RhbEludCAgICAgICAgICAiXDwwXG9cK1w+Igorc3luIG1hdGNoICAgICAgIGdvT2N0YWxFcnJvciAgICAgICAgIlw8MFxvKls4OV1cZCpcPiIKKworaGkgZGVmIGxpbmsgICAgIGdvRGVjaW1hbEludCAgICAgICAgSW50ZWdlcgoraGkgZGVmIGxpbmsgICAgIGdvSGV4YWRlY2ltYWxJbnQgICAgSW50ZWdlcgoraGkgZGVmIGxpbmsgICAgIGdvT2N0YWxJbnQgICAgICAgICAgSW50ZWdlcgoraGkgZGVmIGxpbmsgICAgIEludGVnZXIgICAgICAgICAgICAgTnVtYmVyCisKKyIgRmxvYXRpbmcgcG9pbnQKK3N5biBtYXRjaCAgICAgICBnb0Zsb2F0ICAgICAgICAgICAgICJcPFxkXCtcLlxkKlwoW0VlXVstK11cZFwrXClcP1w+Igorc3luIG1hdGNoICAgICAgIGdvRmxvYXQgICAgICAgICAgICAgIlw8XC5cZFwrXChbRWVdWy0rXVxkXCtcKVw/XD4iCitzeW4gbWF0Y2ggICAgICAgZ29GbG9hdCAgICAgICAgICAgICAiXDxcZFwrW0VlXVstK11cZFwrXD4iCisKK2hpIGRlZiBsaW5rICAgICBnb0Zsb2F0ICAgICAgICAgICAgIEZsb2F0CisKKyIgSW1hZ2luYXJ5IGxpdGVyYWxzCitzeW4gbWF0Y2ggICAgICAgZ29JbWFnaW5hcnkgICAgICAgICAiXDxcZFwraVw+Igorc3luIG1hdGNoICAgICAgIGdvSW1hZ2luYXJ5ICAgICAgICAgIlw8XGRcK1wuXGQqXChbRWVdWy0rXVxkXCtcKVw/aVw+Igorc3luIG1hdGNoICAgICAgIGdvSW1hZ2luYXJ5ICAgICAgICAgIlw8XC5cZFwrXChbRWVdWy0rXVxkXCtcKVw/aVw+Igorc3luIG1hdGNoICAgICAgIGdvSW1hZ2luYXJ5ICAgICAgICAgIlw8XGRcK1tFZV1bLStdXGRcK2lcPiIKKworaGkgZGVmIGxpbmsgICAgIGdvSW1hZ2luYXJ5ICAgICAgICAgTnVtYmVyCisKKyIgU3BhY2VzIGFmdGVyICJbXSIKK2lmIGdvX2hpZ2hsaWdodF9hcnJheV93aGl0ZXNwYWNlX2Vycm9yICE9IDAKKyAgc3luIG1hdGNoIGdvU3BhY2VFcnJvciBkaXNwbGF5ICJcKFxbXF1cKVxAPD1cc1wrIgorZW5kaWYKKworIiBTcGFjaW5nIGVycm9ycyBhcm91bmQgdGhlICdjaGFuJyBrZXl3b3JkCitpZiBnb19oaWdobGlnaHRfY2hhbl93aGl0ZXNwYWNlX2Vycm9yICE9IDAKKyAgIiByZWNlaXZlLW9ubHkgYW5ub3RhdGlvbiBvbiBjaGFuIHR5cGUKKyAgc3luIG1hdGNoIGdvU3BhY2VFcnJvciBkaXNwbGF5ICJcKDwtXClcQDw9XHNcK1woY2hhblw+XClcQD0iCisgICIgc2VuZC1vbmx5IGFubm90YXRpb24gb24gY2hhbiB0eXBlCisgIHN5biBtYXRjaCBnb1NwYWNlRXJyb3IgZGlzcGxheSAiXChcPGNoYW5cKVxAPD1cc1wrXCg8LVwpXEA9IgorICAiIHZhbHVlLWlnbm9yaW5nIHJlY2VpdmVzIGluIGEgZmV3IGNvbnRleHRzCisgIHN5biBtYXRjaCBnb1NwYWNlRXJyb3IgZGlzcGxheSAiXChcKF5cfFs9eygsO11cKVxzKjwtXClcQDw9XHNcKyIKK2VuZGlmCisKKyIgRXh0cmEgdHlwZXMgY29tbW9ubHkgc2VlbgoraWYgZ29faGlnaGxpZ2h0X2V4dHJhX3R5cGVzICE9IDAKKyAgc3luIG1hdGNoIGdvRXh0cmFUeXBlIC9cPGJ5dGVzXC5cKEJ1ZmZlclwpXD4vCisgIHN5biBtYXRjaCBnb0V4dHJhVHlwZSAvXDxpb1wuXChSZWFkZXJcfFdyaXRlclx8UmVhZFdyaXRlclx8UmVhZFdyaXRlQ2xvc2VyXClcPi8KKyAgc3luIG1hdGNoIGdvRXh0cmFUeXBlIC9cPHJlZmxlY3RcLlwoS2luZFx8VHlwZVx8VmFsdWVcKVw+LworICBzeW4gbWF0Y2ggZ29FeHRyYVR5cGUgL1w8dW5zYWZlXC5Qb2ludGVyXD4vCitlbmRpZgorCisiIFNwYWNlLXRhYiBlcnJvcgoraWYgZ29faGlnaGxpZ2h0X3NwYWNlX3RhYl9lcnJvciAhPSAwCisgIHN5biBtYXRjaCBnb1NwYWNlRXJyb3IgZGlzcGxheSAiIFwrXHQibWU9ZS0xCitlbmRpZgorCisiIFRyYWlsaW5nIHdoaXRlIHNwYWNlIGVycm9yCitpZiBnb19oaWdobGlnaHRfdHJhaWxpbmdfd2hpdGVzcGFjZV9lcnJvciAhPSAwCisgIHN5biBtYXRjaCBnb1NwYWNlRXJyb3IgZGlzcGxheSBleGNsdWRlbmwgIlxzXCskIgorZW5kaWYKKworaGkgZGVmIGxpbmsgICAgIGdvRXh0cmFUeXBlICAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgICAgIGdvU3BhY2VFcnJvciAgICAgICAgRXJyb3IKKworIiBTZWFyY2ggYmFja3dhcmRzIGZvciBhIGdsb2JhbCBkZWNsYXJhdGlvbiB0byBzdGFydCBwcm9jZXNzaW5nIHRoZSBzeW50YXguCisic3luIHN5bmMgbWF0Y2ggZ29TeW5jIGdyb3VwaGVyZSBOT05FIC9eXChjb25zdFx8dmFyXHx0eXBlXHxmdW5jXClcPi8KKworIiBUaGVyZSdzIGEgYnVnIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBncm91cGhlcmUuIEZvciBub3csIHVzZSB0aGUKKyIgZm9sbG93aW5nIGFzIGEgbW9yZSBleHBlbnNpdmUvbGVzcyBwcmVjaXNlIHdvcmthcm91bmQuCitzeW4gc3luYyBtaW5saW5lcz01MDAKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAnZ28nCisKKyIgdmltOiBzdz0yIHN0cz0yIGV0CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9nb2RvYy52aW0gYi9ydW50aW1lL3N5bnRheC9nb2RvYy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EwNzkwMwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L2dvZG9jLnZpbQpAQCAtMCwwICsxLDIxIEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZToJR29kb2MgKGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGZvciBnbykKKyIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQtZ28pCisiIExhc3QgQ2hhbmdlOgkyMDE0IEF1ZyAxNgorCitpZiBleGlzdHMoJ2I6Y3VycmVudF9zeW50YXgnKQorICBmaW5pc2gKK2VuZGlmCisKK3N5biBjYXNlIG1hdGNoCitzeW4gbWF0Y2ggZ29kb2NUaXRsZSAiXlwoW0EtWl1bQS1aIF0qXCkkIgorCitjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KKworSGlMaW5rIGdvZG9jVGl0bGUgVGl0bGUKKworZGVsY29tbWFuZCBIaUxpbmsKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAnZ29kb2MnCisKKyIgdmltOiBzdz0yIHN0cz0yIGV0CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC92cm9vbS52aW0gYi9ydW50aW1lL3N5bnRheC92cm9vbS52aW0KaW5kZXggMjk4NjBhOC4uMGNkNmNjYyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdnJvb20udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3Zyb29tLnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglWcm9vbSAodmltIHRlc3RpbmcgYW5kIGV4ZWN1dGFibGUgZG9jdW1lbnRhdGlvbikKLSIgTWFpbnRhaW5lcjoJRGF2aWQgQmFybmV0dCAoaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS92aW0tZnQudnJvb20pCisiIE1haW50YWluZXI6CURhdmlkIEJhcm5ldHQgKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvdmltLWZ0LXZyb29tKQogIiBMYXN0IENoYW5nZToJMjAxNCBKdWwgMjMKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMuCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVzLnV0Zi04IGIvcnVudGltZS90dXRvci90dXRvci5lcy51dGYtOAppbmRleCA4NGRiOGZkLi5iNzU2MWU0IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVzLnV0Zi04CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZXMudXRmLTgKQEAgLTEyMSw3ICsxMjEsNyBAQAogCSBoIChpenF1aWVyZGEpCSAgIGogKGFiYWpvKQkgIGsgKGFycmliYSkJICBsIChkZXJlY2hhKQogCiAgIDIuIFBhcmEgYWNjZWRlciBhIFZpbSAoZGVzZGUgZWwgc8OtbWJvbG8gZGVsIHNpc3RlbWEgJSkgZXNjcmliYToKLSAgICAgdmluIEZJTEVOQU1FIDxJTlRSTz4KKyAgICAgdmltIEZJTEVOQU1FIDxJTlRSTz4KIAogICAzLiBQYXJhIHNhbGlyIGRlIFZpbSBlc2NyaWJhOiA8RVNDPiA6cSEgPElOVFJPPiBwYXJhIGVsaW1pbmFyIHRvZG9zCiAgICAgIGxvcyBjYW1iaW9zLgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5mciBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIKaW5kZXggZWM4NTIzNS4uZTM1ZDQ5MSAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5mcgorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmZyCkBAIC0xMDI5LDEwICsxMDI5LDEwIEBACiAgIGRlcyBNaW5lcyBkdSBDb2xvcmFkbyBldCByZXByZW5kIGRlcyBpZOllcyBmb3VybmllcyBwYXIgQ2hhcmxlcyBTbWl0aCwKICAgVW5pdmVyc2l06SBkJ8l0YXQgZHUgQ29sb3JhZG8uIEUtbWFpbCA6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KIAotICBNb2RpZmnpIHBvdXIgVmltIHBhciBCcmFtIE1vb2xlbmFyLgorICBNb2RpZmnpIHBvdXIgVmltIHBhciBCcmFtIE1vb2xlbmFhci4KICAgVHJhZHVpdCBlbiBmcmFu52FpcyBwYXIgQWRyaWVuIEJlYXUsIGVuIGF2cmlsIDIwMDEuCiAgIERlcm5p6HJlcyBtaXNlcyDgIGpvdXIgcGFyIERvbWluaXF1ZSBQZWxs6S4KIAogICBFLW1haWwgOiAgICAgIGRvbWluaXF1ZS5wZWxsZUBnbWFpbC5jb20KLSAgTGFzdCBDaGFuZ2UgOiAyMDEzIE1heSAxMAorICBMYXN0IENoYW5nZSA6IDIwMTQgQXVnIDE4CiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLmZyLnV0Zi04CmluZGV4IGQwN2QxYmEuLmFjMDFjZmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZnIudXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci5mci51dGYtOApAQCAtMTAyOSwxMCArMTAyOSwxMCBAQAogICBkZXMgTWluZXMgZHUgQ29sb3JhZG8gZXQgcmVwcmVuZCBkZXMgaWTDqWVzIGZvdXJuaWVzIHBhciBDaGFybGVzIFNtaXRoLAogICBVbml2ZXJzaXTDqSBkJ8OJdGF0IGR1IENvbG9yYWRvLiBFLW1haWwgOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCiAKLSAgTW9kaWZpw6kgcG91ciBWaW0gcGFyIEJyYW0gTW9vbGVuYXIuCisgIE1vZGlmacOpIHBvdXIgVmltIHBhciBCcmFtIE1vb2xlbmFhci4KICAgVHJhZHVpdCBlbiBmcmFuw6dhaXMgcGFyIEFkcmllbiBCZWF1LCBlbiBhdnJpbCAyMDAxLgogICBEZXJuacOocmVzIG1pc2VzIMOgIGpvdXIgcGFyIERvbWluaXF1ZSBQZWxsw6kuCiAKICAgRS1tYWlsIDogICAgICBkb21pbmlxdWUucGVsbGVAZ21haWwuY29tCi0gIExhc3QgQ2hhbmdlIDogMjAxMyBNYXkgMTAKKyAgTGFzdCBDaGFuZ2UgOiAyMDE0IEF1ZyAxOAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmphLmV1YyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuZXVjCmluZGV4IDIxNjBlMDAuLmUxOTUwNWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuZXVjCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuZXVjCkBAIC01NSw4ICs1NSw3IEBACiAgIDIuILyhpM6k6KSmpMulv6Wkpdc6CQk6cSEgPEVOVEVSPgogICAgICCks6TspMuk6KTqytS9uKS3pL/G4s3GpPLK3cK4pLukuqTLpailx6Wjpb+krL2qzrukt6TepLmhowogCi0gIDMuIKW3pael66XXpe2l86XXpcikrL3QpMakraS/pOmhoqSzpM6lwaXlobylyKXqpaKl66Tyu8+k4aTrsNmky6TLpbOl3qXzpckKLSAgICAgpPKlv6Wkpdekt6TepLmhoworICAzLiCks6TOpcGl5aG8pcil6qWipeuk8rvPpOGk67DZpM6ls6XepfOlyaTyvMK51KS5pOukyKGipLOks6TLzOGk7KTepLmhowogICAgICCkvaTOpbOl3qXzpcmkzzoJCXZpbXR1dG9yIDxFTlRFUj4KIAogICA0LiCks6TspN6kx6TOpbmlxqXDpdek8rPQpKi8q7+upKykxKSkpL+kyqTppNChoqW5pcalw6XXIDEgpKuk6SAzIKTepMek8rzCCkBAIC05MDQsNyArOTAzLDcgQEAKIAogCSAgICAgICAqKiBDVFJMLUQgpMggPFRBQj4gpMels6XepfOlyaXppaSl86TyyuS0sKS5pOsgKioKIAotICAxLiCls6XzpdGlwaXiobylyaTHpMqkpKSzpMik8rPOx6ekt6TepLk6ICA6c2V0IG5vY3AKKyAgMS4guN+0uaXiobylyaTHpMqkpKSzpMik8rPOx6ekt6TepLk6ICA6c2V0IG5vY3AKIAogICAyLiC4vbrfpM6lx6Wjpeylr6XIpeqky7rfpOul1aWhpaSl66TyIDohbHMgpKsgOiFkaXIgpMezzsenpLek3qS5oaMKIApAQCAtOTQ5LDcgKzk0OCw3IEBACiAgIKSzpOyky6TGIFZpbSCkzqXBpeWhvKXIpeqloqXrpPK9qqTvpOqk3qS5oaOlqKXHpaOlv6TytMrDsaTLoaKkt6SrpOK9vMqspMsKICAgu8ikpqSzpMikrKTHpK2k66TopKaky6TIoaJWaW0gpM67/aTEs7XHsKTOzdfFwKTOpN+k8sXBpKik6KSmpMikt6TepLekv6GjCiAgIFZpbSCky6TPpLWk6aTLwr+kr6TOpbOl3qXzpcmkrKSipOqhoqSzpLOkx8G0pMak8sDizMCkuaTrpLOkyKTPpMekraTepLuk86GjCi0gILDKud+kz6XmobyltqXepcul5aWipeuk8ruyvsikr6TApLWkpDogIjpoZWxwIHVzZXItbWFudWFsIgorICCwyrnfpM+l5qG8pbahvKXepcul5aWipeuk8ruyvsikr6TApLWkpDogIjpoZWxwIHVzZXItbWFudWFsIgogCiAgIKSzpOywyrjlpM6z2L2spM6kv6ThpMuhoryhpM7L3KTyv+TBpqS3pN6kuaGjCiAJVmltIC0gVmkgSW1wcm92ZWQgLSBieSBTdGV2ZSBPdWFsbGluZQpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5qYS5zamlzIGIvcnVudGltZS90dXRvci90dXRvci5qYS5zamlzCmluZGV4IDJhNmRlM2EuLjEzMmFmMzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEuc2ppcworKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmphLnNqaXMKQEAgLTU1LDggKzU1LDcgQEAKICAgMi4gjp+CzILmgqSCyYNeg0ODdjoJCTpxISA8RU5URVI+CiAgICAgIIKxguqCyYLmguiV0o9XgrWCvZPgl2WC8JXbkbaCuYK4gsmDR4Nmg0KDXoKqj0mXuYK1gtyCt4FCCiAKLSAgMy4gg1aDRoOLg3aDjYOTg3aDZ4Kqj2+CxIKrgr2C54FBgrGCzINgg4WBW4Nng4qDQYOLgvCOboLfgumI14LJgsmDUoN9g5ODaAotICAgICCC8INeg0ODdoK1gtyCt4FCCisgIDMuIIKxgsyDYIOFgVuDZ4OKg0GDi4Lwjm6C34LpiNeCzINSg32Dk4NogvCOwI1zgreC6YLGgUGCsYKxgsmW34LqgtyCt4FCCiAgICAgIIK7gsyDUoN9g5ODaILNOgkJdmltdHV0b3IgPEVOVEVSPgogCiAgIDQuIIKxguqC3ILFgsyDWINlg2KDdoLwim+Cpo6pkE2CqoLCgqKCvYLIgueCzoFBg1iDZYNig3YgMSCCqYLnIDMggtyCxYLwjsAKQEAgLTkwNCw3ICs5MDMsNyBAQAogCiAJICAgICAgICoqIENUUkwtRCCCxiA8VEFCPiCCxYNSg32Dk4Nog4mDQ4OTgvCV4oqugreC6SAqKgogCi0gIDEuIINSg5ODcINgg4KBW4NogsWCyIKigrGCxoLwim2URoK1gtyCtzogIDpzZXQgbm9jcAorICAxLiCM3Yq3g4KBW4NogsWCyIKigrGCxoLwim2URoK1gtyCtzogIDpzZXQgbm9jcAogCiAgIDIuIIy7jd2CzINmg0KDjINOg2eDioLJjd2C6YN0g0CDQ4OLgvAgOiFscyCCqSA6IWRpciCCxYptlEaCtYLcgreBQgogCkBAIC05NDksNyArOTQ4LDcgQEAKICAggrGC6oLJgsQgVmltIILMg2CDhYFbg2eDioNBg4uC8I9Jgu2C6ILcgreBQoNHg2aDQoNegvCKyJJQgsmBQYK1gqmC4I9blaqCyQogICCOZ4KkgrGCxoKqgsWCq4LpguaCpILJgsaBQVZpbSCCzI6dgsKKVJRPgsyXdpNfgsyC3YLwk2CCpoLmgqSCxoK1gtyCtYK9gUIKICAgVmltIILJgs2Cs4LngsmRvYKtgsyDUoN9g5ODaIKqgqCC6IFBgrGCsYLFkVOCxILwkOCWvoK3gumCsYLGgs2CxYKrgtyCuYLxgUIKLSAgiMiNfoLNg4aBW4NVg32DaoOFg0GDi4LwjlGPxoKtgr6Cs4KiOiAiOmhlbHAgdXNlci1tYW51YWwiCisgIIjIjX6CzYOGgVuDVYFbg32DaoOFg0GDi4LwjlGPxoKtgr6Cs4KiOiAiOmhlbHAgdXNlci1tYW51YWwiCiAKICAggrGC6ojIjOOCzIp3j0uCzIK9gt+CyYFBjp+CzJZ7gvCQhJFFgrWC3IK3gUIKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGJ5IFN0ZXZlIE91YWxsaW5lCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmphLnV0Zi04IGIvcnVudGltZS90dXRvci90dXRvci5qYS51dGYtOAppbmRleCA2NmE4MThhLi45OWNjN2Q0IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmphLnV0Zi04CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuamEudXRmLTgKQEAgLTU1LDggKzU1LDcgQEAKICAgMi4g5qyh44Gu44KI44GG44Gr44K/44Kk44OXOgkJOnEhIDxFTlRFUj4KICAgICAg44GT44KM44Gr44KI44KK57eo6ZuG44GX44Gf5YaF5a6544KS5L+d5a2Y44Gb44Ga44Gr44Ko44OH44Kj44K/44GM57WC5LqG44GX44G+44GZ44CCCiAKLSAgMy4g44K344Kn44Or44OX44Ot44Oz44OX44OI44GM5Ye644Gm44GN44Gf44KJ44CB44GT44Gu44OB44Ol44O844OI44Oq44Ki44Or44KS5aeL44KB44KL54K644Gr44Gr44Kz44Oe44Oz44OJCi0gICAgIOOCkuOCv+OCpOODl+OBl+OBvuOBmeOAggorICAzLiDjgZPjga7jg4Hjg6Xjg7zjg4jjg6rjgqLjg6vjgpLlp4vjgoHjgovngrrjga7jgrPjg57jg7Pjg4njgpLlrp/ooYzjgZnjgovjgajjgIHjgZPjgZPjgavmiLvjgozjgb7jgZnjgIIKICAgICAg44Gd44Gu44Kz44Oe44Oz44OJ44GvOgkJdmltdHV0b3IgPEVOVEVSPgogCiAgIDQuIOOBk+OCjOOBvuOBp+OBruOCueODhuODg+ODl+OCkuimmuOBiOiHquS/oeOBjOOBpOOBhOOBn+OBquOCieOBsOOAgeOCueODhuODg+ODlyAxIOOBi+OCiSAzIOOBvuOBp+OCkuWunwpAQCAtOTA0LDcgKzkwMyw3IEBACiAKIAkgICAgICAgKiogQ1RSTC1EIOOBqCA8VEFCPiDjgafjgrPjg57jg7Pjg4njg6njgqTjg7PjgpLoo5zlrozjgZnjgosgKioKIAotICAxLiDjgrPjg7Pjg5Hjg4Hjg6Ljg7zjg4njgafjgarjgYTjgZPjgajjgpLnorroqo3jgZfjgb7jgZk6ICA6c2V0IG5vY3AKKyAgMS4g5LqS5o+b44Oi44O844OJ44Gn44Gq44GE44GT44Go44KS56K66KqN44GX44G+44GZOiAgOnNldCBub2NwCiAKICAgMi4g54++5Zyo44Gu44OH44Kj44Os44Kv44OI44Oq44Gr5Zyo44KL44OV44Kh44Kk44Or44KSIDohbHMg44GLIDohZGlyIOOBp+eiuuiqjeOBl+OBvuOBmeOAggogCkBAIC05NDksNyArOTQ4LDcgQEAKICAg44GT44KM44Gr44GmIFZpbSDjga7jg4Hjg6Xjg7zjg4jjg6rjgqLjg6vjgpLntYLjgo/jgorjgb7jgZnjgILjgqjjg4fjgqPjgr/jgpLnsKHljZjjgavjgIHjgZfjgYvjgoLlhYXliIbjgasKICAg5L2/44GG44GT44Go44GM44Gn44GN44KL44KI44GG44Gr44Go44CBVmltIOOBruaMgeOBpOamguW/teOBruimgeeCueOBruOBv+OCkuS8neOBiOOCiOOBhuOBqOOBl+OBvuOBl+OBn+OAggogICBWaW0g44Gr44Gv44GV44KJ44Gr5aSa44GP44Gu44Kz44Oe44Oz44OJ44GM44GC44KK44CB44GT44GT44Gn5YWo44Gm44KS6Kqs5piO44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCCi0gIOS7pemZjeOBr+ODpuODvOOCtuODnuODi+ODpeOCouODq+OCkuWPgueFp+OBj+OBoOOBleOBhDogIjpoZWxwIHVzZXItbWFudWFsIgorICDku6XpmY3jga/jg6bjg7zjgrbjg7zjg57jg4vjg6XjgqLjg6vjgpLlj4LnhafjgY/jgaDjgZXjgYQ6ICI6aGVscCB1c2VyLW1hbnVhbCIKIAogICDjgZPjgozku6Xlvozjga7lrabnv5Ljga7jgZ/jgoHjgavjgIHmrKHjga7mnKzjgpLmjqjolqbjgZfjgb7jgZnjgIIKIAlWaW0gLSBWaSBJbXByb3ZlZCAtIGJ5IFN0ZXZlIE91YWxsaW5lCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnB0IGIvcnVudGltZS90dXRvci90dXRvci5wdAppbmRleCA1N2I0NDYyLi5iN2M3NGY1IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLnB0CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucHQKQEAgLTU3Miw3ICs1NzIsNyBAQAogICAgICBkaWdpdGUgIDojLCNzL3ZlbGhvL25vdm8vZyAgIG9uZGUgIywjIHPjbyBvcyBu+m1lcm9zIGRhcyBkdWFzIGxpbmhhcy4KICAgICAgRGlnaXRlICA6JXMvdmVsaG8vbm92by9nICAgICBwYXJhIG11ZGFyIHRvZGFzIGFzIG9jb3Jy6m5jaWFzIG5vIGFycXVpdm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlaXJvLgotICAgICBEaWdpdGUgIDolL3ZlbGhvL25vdm8vZ2MgICAgIHBhcmEgbXVkYXIgdG9kYXMgYXMgb2NvcnLqbmNpYSBubyBhcnF1aXZvCisgICAgIERpZ2l0ZSAgOiVzL3ZlbGhvL25vdm8vZ2MgICAgcGFyYSBtdWRhciB0b2RhcyBhcyBvY29ycupuY2lhIG5vIGFycXVpdm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlaXJvLCBjb20gYSBvcOfjbyBkZSBjb25maXJtYXIgY2FkYQogCQkJCSAgc3Vic3RpdHVp5+NvLgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpAQCAtOTcxLDcgKzk3MSw3IEBACiAgIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcywgdXNhbmRvIGlk6WlhcyBmb3JuZWNpZGFzIHBvciBDaGFybGVzIFNtaXRoLAogICBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LiAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCiAKLSAgTW9kaWZpY2FkbyBwYXJhIG8gVmltIHBvciBCcmFtIE1vb2xlbmFyLgorICBNb2RpZmljYWRvIHBhcmEgbyBWaW0gcG9yIEJyYW0gTW9vbGVuYWFyLgogCiAgIFZlcnPjbyAxLjQgdHJhZHV6aWRhIHBhcmEgbyBwb3J0dWd16nMgcG9yIE1hcmNlbG8gRHJ1ZGkgTWlyYW5kYSwgRXNjb2xhCiAgIFBvbGl06WNuaWNhIGRhIFVuaXZlcnNpZGFkZSBkZSBT428gUGF1bG8uCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnB0LnV0Zi04IGIvcnVudGltZS90dXRvci90dXRvci5wdC51dGYtOAppbmRleCBmZWNiY2ZhLi4xMzA5NDA0IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLnB0LnV0Zi04CisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IucHQudXRmLTgKQEAgLTU3Miw3ICs1NzIsNyBAQAogICAgICBkaWdpdGUgIDojLCNzL3ZlbGhvL25vdm8vZyAgIG9uZGUgIywjIHPDo28gb3MgbsO6bWVyb3MgZGFzIGR1YXMgbGluaGFzLgogICAgICBEaWdpdGUgIDolcy92ZWxoby9ub3ZvL2cgICAgIHBhcmEgbXVkYXIgdG9kYXMgYXMgb2NvcnLDqm5jaWFzIG5vIGFycXVpdm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlaXJvLgotICAgICBEaWdpdGUgIDolL3ZlbGhvL25vdm8vZ2MgICAgIHBhcmEgbXVkYXIgdG9kYXMgYXMgb2NvcnLDqm5jaWEgbm8gYXJxdWl2bworICAgICBEaWdpdGUgIDolcy92ZWxoby9ub3ZvL2djICAgIHBhcmEgbXVkYXIgdG9kYXMgYXMgb2NvcnLDqm5jaWEgbm8gYXJxdWl2bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVpcm8sIGNvbSBhIG9ww6fDo28gZGUgY29uZmlybWFyIGNhZGEKIAkJCQkgIHN1YnN0aXR1acOnw6NvLgogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpAQCAtOTcxLDcgKzk3MSw3IEBACiAgIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcywgdXNhbmRvIGlkw6lpYXMgZm9ybmVjaWRhcyBwb3IgQ2hhcmxlcyBTbWl0aCwKICAgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eS4gIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgogCi0gIE1vZGlmaWNhZG8gcGFyYSBvIFZpbSBwb3IgQnJhbSBNb29sZW5hci4KKyAgTW9kaWZpY2FkbyBwYXJhIG8gVmltIHBvciBCcmFtIE1vb2xlbmFhci4KIAogICBWZXJzw6NvIDEuNCB0cmFkdXppZGEgcGFyYSBvIHBvcnR1Z3XDqnMgcG9yIE1hcmNlbG8gRHJ1ZGkgTWlyYW5kYSwgRXNjb2xhCiAgIFBvbGl0w6ljbmljYSBkYSBVbml2ZXJzaWRhZGUgZGUgU8OjbyBQYXVsby4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLnV0Zi04CmluZGV4IGRhMjhhMTUuLjY0YTI3ZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IudXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci51dGYtOApAQCAtNTUsOCArNTUsOCBAQAogICAyLiBUeXBlOgk6cSEgPEVOVEVSPi4KICAgICAgVGhpcyBleGl0cyB0aGUgZWRpdG9yLCBESVNDQVJESU5HIGFueSBjaGFuZ2VzIHlvdSBoYXZlIG1hZGUuCiAKLSAgMy4gV2hlbiB5b3Ugc2VlIHRoZSBzaGVsbCBwcm9tcHQsIHR5cGUgdGhlIGNvbW1hbmQgdGhhdCBnb3QgeW91IGludG8gdGhpcwotICAgICB0dXRvci4gIFRoYXQgd291bGQgYmU6CXZpbXR1dG9yIDxFTlRFUj4KKyAgMy4gR2V0IGJhY2sgaGVyZSBieSBleGVjdXRpbmcgdGhlIGNvbW1hbmQgdGhhdCBnb3QgeW91IGludG8gdGhpcyB0dXRvci4gVGhhdAorICAgICBtaWdodCBiZTogIHZpbXR1dG9yIDxFTlRFUj4KIAogICA0LiBJZiB5b3UgaGF2ZSB0aGVzZSBzdGVwcyBtZW1vcml6ZWQgYW5kIGFyZSBjb25maWRlbnQsIGV4ZWN1dGUgc3RlcHMKICAgICAgMSB0aHJvdWdoIDMgdG8gZXhpdCBhbmQgcmUtZW50ZXIgdGhlIGVkaXRvci4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuemguYmlnNSBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuemguYmlnNQppbmRleCA0ZGFhZDY0Li45ZGE4YjFhIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLnpoLmJpZzUKKysrIGIvcnVudGltZS90dXRvci90dXRvci56aC5iaWc1CkBAIC04NDMsMTAgKzg0MywxMCBAQAogICAgICAgt1DBwiB4dWFuZG9uZ0BzaDE2My5uZXQgqrqr/KW/oUGxTqjis0K/+adPpnKt16W/oUMKIAogICAgICAgMjAwMqZ+MDOk6zE4pOkgseep9671IDxsaW51eHJhdEBnbnVjaGluYS5vcmc+Ci0gICAgICCu2r7aQnJhbSBNb2xlbmFhcqX9pc2mYjIwMDKmfjAzpOsxNqTpqrqo06tIrW6oRKFBsU52aW10dXRvcjEuNKSkxLYKKyAgICAgIK7avtpCcmFtIE1vb2xlbmFhcqX9pc2mYjIwMDKmfjAzpOsxNqTpqrqo06tIrW6oRKFBsU52aW10dXRvcjEuNKSkxLYKICAgICAgIKqppMmvxajsdmltdHV0b3IxLjWhQwogCiAgICAgICAyMDAxpn4xMaTrMTWk6SCx56n3rvUgPGxpbnV4cmF0QGdudWNoaW5hLm9yZz4KLSAgICAgILFOdmltdHV0b3IxLjSkpMS2qqm0o6XmtblCcmFtIE1vbGVuYWFyqU1TdmVuIEd1Y2tlc6FDCisgICAgICCxTnZpbXR1dG9yMS40pKTEtqqptKOl5rW5QnJhbSBNb29sZW5hYXKpTVN2ZW4gR3Vja2VzoUMKIAogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLnpoLmV1YyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuemguZXVjCmluZGV4IGRmNTljMzIuLjUwODUyZjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuemguZXVjCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuemguZXVjCkBAIC05ODgsOSArOTg4LDkgQEAKICAgICAgILjQ0LsgeHVhbmRvbmdAc2gxNjMubmV0ILXE1rjV/aOsvavBvbSmtO2x8NfW0N7V/aGjCiAKICAgICAgIDIwMDLE6jAz1MIxOMjVIMG6sv3MqSA8bGludXhyYXRAZ251Y2hpbmEub3JnPgotICAgICAguPm+3UJyYW0gTW9sZW5hYXLPyMn61NoyMDAyxOowM9TCMTbI1bXEwLTQxdKqx/OjrL2rdmltdHV0b3IxLjTW0NLrCisgICAgICC4+b7dQnJhbSBNb29sZW5hYXLPyMn61NoyMDAyxOowM9TCMTbI1bXEwLTQxdKqx/OjrL2rdmltdHV0b3IxLjTW0NLrCiAgICAgICCw5sn9vLa1vXZpbXR1dG9yMS41oaMKIAogICAgICAgMjAwMcTqMTHUwjE1yNUgwbqy/cypIDxsaW51eHJhdEBnbnVjaGluYS5vcmc+Ci0gICAgICC9q3ZpbXR1dG9yMS401tDS67DmzOG9u7j4QnJhbSBNb2xlbmFhcrrNU3ZlbiBHdWNrZXOhoworICAgICAgvat2aW10dXRvcjEuNNbQ0uuw5szhvbu4+EJyYW0gTW9vbGVuYWFyus1TdmVuIEd1Y2tlc6GjCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuemgudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLnpoLnV0Zi04CmluZGV4IDIxZDcwMjAuLmQxZmFiYzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuemgudXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci56aC51dGYtOApAQCAtODQzLDEwICs4NDMsMTAgQEAKICAgICAgIOaEn+isnSB4dWFuZG9uZ0BzaDE2My5uZXQg55qE5oyH5q2j77yM5bCH5YWp6JmV6Yyv5Yil5a2X5L+u5q2j44CCCiAKICAgICAgIDIwMDLlubQwM+aciDE45pelIOaigeaYjOazsCA8bGludXhyYXRAZ251Y2hpbmEub3JnPgotICAgICAg5qC55pOaQnJhbSBNb2xlbmFhcuWFiOeUn+WcqDIwMDLlubQwM+aciDE25pel55qE5L6G5L+h6KaB5rGC77yM5bCHdmltdHV0b3IxLjTkuK3ora8KKyAgICAgIOagueaTmkJyYW0gTW9vbGVuYWFy5YWI55Sf5ZyoMjAwMuW5tDAz5pyIMTbml6XnmoTkvobkv6HopoHmsYLvvIzlsId2aW10dXRvcjEuNOS4reitrwogICAgICAg54mI5Y2H57Sa5YiwdmltdHV0b3IxLjXjgIIKIAogICAgICAgMjAwMeW5tDEx5pyIMTXml6Ug5qKB5piM5rOwIDxsaW51eHJhdEBnbnVjaGluYS5vcmc+Ci0gICAgICDlsId2aW10dXRvcjEuNOS4reitr+eJiOaPkOS6pOe1pkJyYW0gTW9sZW5hYXLlkoxTdmVuIEd1Y2tlc+OAggorICAgICAg5bCHdmltdHV0b3IxLjTkuK3ora/niYjmj5DkuqTntaZCcmFtIE1vb2xlbmFhcuWSjFN2ZW4gR3Vja2Vz44CCCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci56aF9jbi51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuemhfY24udXRmLTgKaW5kZXggM2ZmMDMxZi4uZDk4NmFiMiAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci56aF9jbi51dGYtOAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLnpoX2NuLnV0Zi04CkBAIC05ODgsOSArOTg4LDkgQEAKICAgICAgIOaEn+iwoiB4dWFuZG9uZ0BzaDE2My5uZXQg55qE5oyH5q2j77yM5bCG5Lik5aSE6ZSZ5Yir5a2X5L+u5q2j44CCCiAKICAgICAgIDIwMDLlubQwM+aciDE45pelIOaigeaYjOazsCA8bGludXhyYXRAZ251Y2hpbmEub3JnPgotICAgICAg5qC55o2uQnJhbSBNb2xlbmFhcuWFiOeUn+WcqDIwMDLlubQwM+aciDE25pel55qE5p2l5L+h6KaB5rGC77yM5bCGdmltdHV0b3IxLjTkuK3or5EKKyAgICAgIOagueaNrkJyYW0gTW9vbGVuYWFy5YWI55Sf5ZyoMjAwMuW5tDAz5pyIMTbml6XnmoTmnaXkv6HopoHmsYLvvIzlsIZ2aW10dXRvcjEuNOS4reivkQogICAgICAg54mI5Y2H57qn5YiwdmltdHV0b3IxLjXjgIIKIAogICAgICAgMjAwMeW5tDEx5pyIMTXml6Ug5qKB5piM5rOwIDxsaW51eHJhdEBnbnVjaGluYS5vcmc+Ci0gICAgICDlsIZ2aW10dXRvcjEuNOS4reivkeeJiOaPkOS6pOe7mUJyYW0gTW9sZW5hYXLlkoxTdmVuIEd1Y2tlc+OAggorICAgICAg5bCGdmltdHV0b3IxLjTkuK3or5HniYjmj5DkuqTnu5lCcmFtIE1vb2xlbmFhcuWSjFN2ZW4gR3Vja2Vz44CCCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuemhfdHcudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLnpoX3R3LnV0Zi04CmluZGV4IDIxZDcwMjAuLmQxZmFiYzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuemhfdHcudXRmLTgKKysrIGIvcnVudGltZS90dXRvci90dXRvci56aF90dy51dGYtOApAQCAtODQzLDEwICs4NDMsMTAgQEAKICAgICAgIOaEn+isnSB4dWFuZG9uZ0BzaDE2My5uZXQg55qE5oyH5q2j77yM5bCH5YWp6JmV6Yyv5Yil5a2X5L+u5q2j44CCCiAKICAgICAgIDIwMDLlubQwM+aciDE45pelIOaigeaYjOazsCA8bGludXhyYXRAZ251Y2hpbmEub3JnPgotICAgICAg5qC55pOaQnJhbSBNb2xlbmFhcuWFiOeUn+WcqDIwMDLlubQwM+aciDE25pel55qE5L6G5L+h6KaB5rGC77yM5bCHdmltdHV0b3IxLjTkuK3ora8KKyAgICAgIOagueaTmkJyYW0gTW9vbGVuYWFy5YWI55Sf5ZyoMjAwMuW5tDAz5pyIMTbml6XnmoTkvobkv6HopoHmsYLvvIzlsId2aW10dXRvcjEuNOS4reitrwogICAgICAg54mI5Y2H57Sa5YiwdmltdHV0b3IxLjXjgIIKIAogICAgICAgMjAwMeW5tDEx5pyIMTXml6Ug5qKB5piM5rOwIDxsaW51eHJhdEBnbnVjaGluYS5vcmc+Ci0gICAgICDlsId2aW10dXRvcjEuNOS4reitr+eJiOaPkOS6pOe1pkJyYW0gTW9sZW5hYXLlkoxTdmVuIEd1Y2tlc+OAggorICAgICAg5bCHdmltdHV0b3IxLjTkuK3ora/niYjmj5DkuqTntaZCcmFtIE1vb2xlbmFhcuWSjFN2ZW4gR3Vja2Vz44CCCiAKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo=