ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvZ2V0c2NyaXB0LnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvZ2V0c2NyaXB0LnZpbQppbmRleCA5ZTJhMTk2Li4zNGY1OTcwIDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL2dldHNjcmlwdC52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9nZXRzY3JpcHQudmltCkBAIC0xLDggKzEsOCBAQAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgZ2V0c2NyaXB0LnZpbQogIiAgQXV0aG9yOglDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KLSIgIERhdGU6CU1heSAzMSwgMjAxMQotIiAgVmVyc2lvbjoJMzMKKyIgIERhdGU6CUphbiAxNywgMjAxMgorIiAgVmVyc2lvbjoJMzQKICIgIEluc3RhbGxpbmc6CTpoZWxwIGdsdnMtaW5zdGFsbAogIiAgVXNhZ2U6CTpoZWxwIGdsdnMKICIKQEAgLTE1LDcgKzE1LDcgQEAKIGlmIGV4aXN0cygiZzpsb2FkZWRfZ2V0c2NyaXB0IikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfZ2V0c2NyaXB0PSAidjMzIgorbGV0IGc6bG9hZGVkX2dldHNjcmlwdD0gInYzNCIKIGlmICZjcAogIGVjaG9lcnIgIkdldExhdGVzdFZpbVNjcmlwdHMgaXMgbm90IHZpLWNvbXBhdGlibGU7IG5vdCBsb2FkZWQgKHlvdSBuZWVkIHRvIHNldCBub2NwKSIKICBmaW5pc2gKQEAgLTU1MCwzMCArNTUwLDQyIEBACiAgICAgICIgZGVjb21wcmVzcwogICAgICBpZiBzbmFtZSA9fiAnXC5iejIkJwogIiAgICAgIGNhbGwgRGVjaG8oImRlY29tcHJlc3M6IGF0dGVtcHQgdG8gYnVuemlwMiAiLnNuYW1lKQotICAgICAgZXhlICJzaWxlbnQgIWJ1bnppcDIgIi5zaGVsbGVzY2FwZShzbmFtZSkKKyAgICAgIGV4ZSAic2lsICFidW56aXAyICIuc2hlbGxlc2NhcGUoc25hbWUpCiAgICAgICBsZXQgc25hbWU9IHN1YnN0aXR1dGUoc25hbWUsJ1wuYnoyJCcsJycsJycpCiAiICAgICAgY2FsbCBEZWNobygiZGVjb21wcmVzczogbmV3IHNuYW1lPCIuc25hbWUuIj4gYWZ0ZXIgYnVuemlwMiIpCiAgICAgIGVsc2VpZiBzbmFtZSA9fiAnXC5neiQnCiAiICAgICAgY2FsbCBEZWNobygiZGVjb21wcmVzczogYXR0ZW1wdCB0byBndW56aXAgIi5zbmFtZSkKLSAgICAgIGV4ZSAic2lsZW50ICFndW56aXAgIi5zaGVsbGVzY2FwZShzbmFtZSkKKyAgICAgIGV4ZSAic2lsICFndW56aXAgIi5zaGVsbGVzY2FwZShzbmFtZSkKICAgICAgIGxldCBzbmFtZT0gc3Vic3RpdHV0ZShzbmFtZSwnXC5neiQnLCcnLCcnKQogIiAgICAgIGNhbGwgRGVjaG8oImRlY29tcHJlc3M6IG5ldyBzbmFtZTwiLnNuYW1lLiI+IGFmdGVyIGd1bnppcCIpCiAgICAgIGVsc2VpZiBzbmFtZSA9fiAnXC54eiQnCiAiICAgICAgY2FsbCBEZWNobygiZGVjb21wcmVzczogYXR0ZW1wdCB0byB1bnh6ICIuc25hbWUpCi0gICAgICBleGUgInNpbGVudCAhdW54eiAiLnNoZWxsZXNjYXBlKHNuYW1lKQorICAgICAgZXhlICJzaWwgIXVueHogIi5zaGVsbGVzY2FwZShzbmFtZSkKICAgICAgIGxldCBzbmFtZT0gc3Vic3RpdHV0ZShzbmFtZSwnXC54eiQnLCcnLCcnKQogIiAgICAgIGNhbGwgRGVjaG8oImRlY29tcHJlc3M6IG5ldyBzbmFtZTwiLnNuYW1lLiI+IGFmdGVyIHVueHoiKQogICAgICBlbHNlCiAiICAgICAgY2FsbCBEZWNobygibm8gZGVjb21wcmVzc2lvbiBuZWVkZWQiKQogICAgICBlbmRpZgogICAgICAKLSAgICAgIiBkaXN0cmlidXRlIGFyY2hpdmUoLnppcCwgLnRhciwgLnZiYSkgY29udGVudHMKKyAgICAgIiBkaXN0cmlidXRlIGFyY2hpdmUoLnppcCwgLnRhciwgLnZiYSwgLi4uKSBjb250ZW50cwogICAgICBpZiBzbmFtZSA9fiAnXC56aXAkJwogIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byB1bnppcCAiLnNuYW1lKQogICAgICAgZXhlICJzaWxlbnQgIXVuemlwIC1vICIuc2hlbGxlc2NhcGUoc25hbWUpCiAgICAgIGVsc2VpZiBzbmFtZSA9fiAnXC50YXIkJwogIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byB1bnRhciAiLnNuYW1lKQogICAgICAgZXhlICJzaWxlbnQgIXRhciAteHZmICIuc2hlbGxlc2NhcGUoc25hbWUpCisgICAgIGVsc2VpZiBzbmFtZSA9fiAnXC50Z3okJworIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byB1bnRhcitndW56aXAgIi5zbmFtZSkKKyAgICAgIGV4ZSAic2lsZW50ICF0YXIgLXp4dmYgIi5zaGVsbGVzY2FwZShzbmFtZSkKKyAgICAgZWxzZWlmIHNuYW1lID1+ICdcLnRheiQnCisiICAgICAgY2FsbCBEZWNobygiZGVhcmNoaXZlOiBhdHRlbXB0IHRvIHVudGFyK3VuY29tcHJlc3MgIi5zbmFtZSkKKyAgICAgIGV4ZSAic2lsZW50ICF0YXIgLVp4dmYgIi5zaGVsbGVzY2FwZShzbmFtZSkKKyAgICAgZWxzZWlmIHNuYW1lID1+ICdcLnRieiQnCisiICAgICAgY2FsbCBEZWNobygiZGVhcmNoaXZlOiBhdHRlbXB0IHRvIHVudGFyK2J1bnppcDIgIi5zbmFtZSkKKyAgICAgIGV4ZSAic2lsZW50ICF0YXIgLWp4dmYgIi5zaGVsbGVzY2FwZShzbmFtZSkKKyAgICAgZWxzZWlmIHNuYW1lID1+ICdcLnR4eiQnCisiICAgICAgY2FsbCBEZWNobygiZGVhcmNoaXZlOiBhdHRlbXB0IHRvIHVudGFyK3h6ICIuc25hbWUpCisgICAgICBleGUgInNpbGVudCAhdGFyIC1KeHZmICIuc2hlbGxlc2NhcGUoc25hbWUpCiAgICAgIGVsc2VpZiBzbmFtZSA9fiAnXC52YmEkJwogIiAgICAgIGNhbGwgRGVjaG8oImRlYXJjaGl2ZTogYXR0ZW1wdCB0byBoYW5kbGUgYSB2aW1iYWxsOiAiLnNuYW1lKQogICAgICAgc2lsZW50IDFzcGxpdApkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC90YXIudmltIGIvcnVudGltZS9hdXRvbG9hZC90YXIudmltCmluZGV4IDYzNTViNzEuLmQ2NzIxMjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvdGFyLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3Rhci52aW0KQEAgLTEsNyArMSw3IEBACiAiIHRhci52aW06IEhhbmRsZXMgYnJvd3NpbmcgdGFyZmlsZXMKICIgICAgICAgICAgICBBVVRPTE9BRCBQT1JUSU9OCi0iIERhdGU6CQkJTWF5IDMxLCAyMDExCi0iIFZlcnNpb246CQkyNworIiBEYXRlOgkJCUphbiAxNywgMjAxMgorIiBWZXJzaW9uOgkJMjgKICIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFIENhbXBiZWxsLCBKciA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TS1OT1NQQU0+CiAiIExpY2Vuc2U6CQlWaW0gTGljZW5zZSAgKHNlZSB2aW0ncyA6aGVscCBsaWNlbnNlKQogIgpAQCAtMjIsNyArMjIsNyBAQAogaWYgJmNwIHx8IGV4aXN0cygiZzpsb2FkZWRfdGFyIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfdGFyPSAidjI3IgorbGV0IGc6bG9hZGVkX3Rhcj0gInYyOCIKIGlmIHY6dmVyc2lvbiA8IDcwMgogIGVjaG9obCBXYXJuaW5nTXNnCiAgZWNobyAiKioqd2FybmluZyoqKiB0aGlzIHZlcnNpb24gb2YgdGFyIG5lZWRzIHZpbSA3LjIiCkBAIC0xNDMsNyArMTQzLDcgQEAKICAgY2FsbCBzZXRsaW5lKGxhc3RsaW5lKzIsJyIgQnJvd3NpbmcgdGFyZmlsZSAnLmE6dGFyZmlsZSkKICAgY2FsbCBzZXRsaW5lKGxhc3RsaW5lKzMsJyIgU2VsZWN0IGEgZmlsZSB3aXRoIGN1cnNvciBhbmQgcHJlc3MgRU5URVInKQogICBrZWVwaiAkcHV0ID0nJwotICBrZWVwaiAwZAorICBrZWVwaiBzaWwhIDBkCiAgIGtlZXBqICQKIAogICBsZXQgdGFyZmlsZT0gYTp0YXJmaWxlCkBAIC0xNTgsMTAgKzE1OCwxMCBAQAogICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wubHJwJwogIiAgIGNhbGwgRGVjaG8oIjI6IGV4ZSBzaWxlbnQgciEgY2F0IC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4ifGd6aXAgLWQgLWMgLXwiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCiAgICBleGUgInNpbCEgciEgY2F0IC0tICIuc2hlbGxlc2NhcGUodGFyZmlsZSwxKS4ifGd6aXAgLWQgLWMgLXwiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIKLSAgZWxzZWlmIHRhcmZpbGUgPX4jICdcLmJ6MiQnCisgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5cKGJ6Mlx8dGJ6XHx0YjJcKSQnCiAiICAgY2FsbCBEZWNobygiMzogZXhlIHNpbGVudCByISBiemlwMiAtZCAtYyAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIikKICAgIGV4ZSAic2lsISByISBiemlwMiAtZCAtYyAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgotICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wubHptYSQnCisgIGVsc2VpZiB0YXJmaWxlID1+IyAnXC5cKGx6bWFcfHRselwpJCcKICIgICBjYWxsIERlY2hvKCIzOiBleGUgc2lsZW50IHIhIGx6bWEgLWQgLWMgLS0gIi5zaGVsbGVzY2FwZSh0YXJmaWxlLDEpLiIgfCAiLmc6dGFyX2NtZC4iIC0iLmc6dGFyX2Jyb3dzZW9wdGlvbnMuIiAtICIpCiAgICBleGUgInNpbCEgciEgbHptYSAtZCAtYyAtLSAiLnNoZWxsZXNjYXBlKHRhcmZpbGUsMSkuIiB8ICIuZzp0YXJfY21kLiIgLSIuZzp0YXJfYnJvd3Nlb3B0aW9ucy4iIC0gIgogICBlbHNlaWYgdGFyZmlsZSA9fiMgJ1wuXCh4elx8dHh6XCkkJwpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC92aW1iYWxsLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvdmltYmFsbC52aW0KaW5kZXggYjUxMDc3OC4uOWE1YTczYyAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC92aW1iYWxsLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3ZpbWJhbGwudmltCkBAIC0xLDcgKzEsNyBAQAogIiB2aW1iYWxsLnZpbSA6IGNvbnN0cnVjdCBhIGZpbGUgY29udGFpbmluZyBib3RoIHBhdGhzIGFuZCBmaWxlcwogIiBBdXRob3I6CUNoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgotIiBEYXRlOgkJU2VwIDI2LCAyMDExCi0iIFZlcnNpb246CTM0CisiIERhdGU6CQlKYW4gMTcsIDIwMTIKKyIgVmVyc2lvbjoJMzUKICIgR2V0TGF0ZXN0VmltU2NyaXB0czogMTUwMiAxIDpBdXRvSW5zdGFsbDogdmltYmFsbC52aW0KICIgQ29weXJpZ2h0OiAoYykgMjAwNC0yMDExIGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgogIiAgICAgICAgICAgIFRoZSBWSU0gTElDRU5TRSBhcHBsaWVzIHRvIFZpbWJhbGwudmltLCBhbmQgVmltYmFsbC50eHQKQEAgLTE0LDcgKzE0LDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3ZpbWJhbGwiKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF92aW1iYWxsID0gInYzNCIKK2xldCBnOmxvYWRlZF92aW1iYWxsID0gInYzNSIKIGlmIHY6dmVyc2lvbiA8IDcwMgogIGVjaG9obCBXYXJuaW5nTXNnCiAgZWNobyAiKioqd2FybmluZyoqKiB0aGlzIHZlcnNpb24gb2YgdmltYmFsbCBuZWVkcyB2aW0gNy4yIgpAQCAtNzY3LDYgKzc2Nyw5IEBACiAiICBjYWxsIERyZXQoIlJlc3RvcmVTZXR0aW5ncyIpCiBlbmRmdW4KIAorbGV0ICZjcG8gPSBzOmtlZXBjcG8KK3VubGV0IHM6a2VlcGNwbworCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBNb2RlbGluZXM6IHt7ezEKICIgdmltOiBmZG09bWFya2VyCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0gYi9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0KaW5kZXggYzdiOTQ2ZC4uYWQ1Y2NlMiAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC96aXAudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbQpAQCAtMSwxMCArMSwxMCBAQAogIiB6aXAudmltOiBIYW5kbGVzIGJyb3dzaW5nIHppcGZpbGVzCiAiICAgICAgICAgICAgQVVUT0xPQUQgUE9SVElPTgotIiBEYXRlOgkJTWF5IDI0LCAyMDExCi0iIFZlcnNpb246CTI0CisiIERhdGU6CQlKYW4gMTcsIDIwMTIKKyIgVmVyc2lvbjoJMjUKICIgTWFpbnRhaW5lcjoJQ2hhcmxlcyBFIENhbXBiZWxsLCBKciA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TS1OT1NQQU0+CiAiIExpY2Vuc2U6CVZpbSBMaWNlbnNlICAoc2VlIHZpbSdzIDpoZWxwIGxpY2Vuc2UpCi0iIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTEgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKKyIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQogIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKICIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAogIiAgICAgICAgICAgICAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLApAQCAtMTksNyArMTksNyBAQAogaWYgJmNwIHx8IGV4aXN0cygiZzpsb2FkZWRfemlwIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfemlwPSAidjI0IgorbGV0IGc6bG9hZGVkX3ppcD0gInYyNSIKIGlmIHY6dmVyc2lvbiA8IDcwMgogIGVjaG9obCBXYXJuaW5nTXNnCiAgZWNobyAiKioqd2FybmluZyoqKiB0aGlzIHZlcnNpb24gb2YgemlwIG5lZWRzIHZpbSA3LjIiCkBAIC0xMDQsMTIgKzEwNCwxMiBAQAogCiAgICIgZ2l2ZSBoZWFkZXIKICAgY2FsbCBhcHBlbmQoMCwgWyciIHppcC52aW0gdmVyc2lvbiAnLmc6bG9hZGVkX3ppcCwKLSAgICAgICAgICAgICAgICBcICciIEJyb3dzaW5nIHppcGZpbGUgJy5hOnppcGZpbGUsCi0gICAgICAgICAgICAgICAgXCAnIiBTZWxlY3QgYSBmaWxlIHdpdGggY3Vyc29yIGFuZCBwcmVzcyBFTlRFUiddKQorIFwgICAgICAgICAgICAgICAgJyIgQnJvd3NpbmcgemlwZmlsZSAnLmE6emlwZmlsZSwKKyBcICAgICAgICAgICAgICAgICciIFNlbGVjdCBhIGZpbGUgd2l0aCBjdXJzb3IgYW5kIHByZXNzIEVOVEVSJ10pCiAgIGtlZXBqICQKIAogIiAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISAiLmc6emlwX3VuemlwY21kLiIgLWwgLS0gIi5zOkVzY2FwZShhOnppcGZpbGUsMSkpCi0gIGV4ZSAic2lsZW50IHIhICIuZzp6aXBfdW56aXBjbWQuIiAtWiAtMSAtLSAiLnM6RXNjYXBlKGE6emlwZmlsZSwxKQorICBleGUgImtlZXBqIHNpbCEgciEgIi5nOnppcF91bnppcGNtZC4iIC1aIC0xIC0tICIuczpFc2NhcGUoYTp6aXBmaWxlLDEpCiAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAogICAgcmVkcmF3IQogICAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKip3YXJuaW5nKioqICh6aXAjQnJvd3NlKSAiLmZuYW1lZXNjYXBlKGE6emlwZmlsZSkuIiBpcyBub3QgYSB6aXAgZmlsZSIgfCBlY2hvaGwgTm9uZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9jb21waWxlci9lcmxhbmcudmltIGIvcnVudGltZS9jb21waWxlci9lcmxhbmcudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2N2JhNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2NvbXBpbGVyL2VybGFuZy52aW0KQEAgLTAsMCArMSwxMSBAQAorIiBWaW0gY29tcGlsZXIgZmlsZQorIiBDb21waWxlcjoJRXJsYW5nCisiIE1haW50YWluZXI6CW5vbmUsIHBsZWFzZSB2b2x1bnRlZXIhCisiIExhc3QgQ2hhbmdlOgkyMDEyIEphbiAyMAorCitpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQorICBmaW5pc2gKK2VuZGlmCitsZXQgY3VycmVudF9jb21waWxlciA9ICJlcmxhbmciCisKKyIgVE9ETwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvYXV0b2NtZC50eHQgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAppbmRleCA4YzdmNjQ3Li5mZjBiNDAzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAorKysgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dApAQCAtMSw0ICsxLDQgQEAKLSphdXRvY21kLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgT2N0IDI2CisqYXV0b2NtZC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDEyIEphbiAyMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNjk5LDcgKzY5OSw4IEBACiBRdWlja0ZpeENtZFByZQkJCUJlZm9yZSBhIHF1aWNrZml4IGNvbW1hbmQgaXMgcnVuICh8Om1ha2V8LAogCQkJCXw6bG1ha2V8LCB8OmdyZXB8LCB8OmxncmVwfCwgfDpncmVwYWRkfCwKIAkJCQl8OmxncmVwYWRkfCwgfDp2aW1ncmVwfCwgfDpsdmltZ3JlcHwsCi0JCQkJfDp2aW1ncmVwYWRkfCwgfDpsdmltZ3JlcGFkZHwsIHw6Y3Njb3BlfCkuCisJCQkJfDp2aW1ncmVwYWRkfCwgfDpsdmltZ3JlcGFkZHwsIHw6Y3Njb3BlfCwKKwkJCQl8OmhlbHBncmVwfCwgfDpsaGVscGdyZXB8KS4KIAkJCQlUaGUgcGF0dGVybiBpcyBtYXRjaGVkIGFnYWluc3QgdGhlIGNvbW1hbmQKIAkJCQliZWluZyBydW4uICBXaGVuIHw6Z3JlcHwgaXMgdXNlZCBidXQgJ2dyZXBwcmcnCiAJCQkJaXMgc2V0IHRvICJpbnRlcm5hbCIgaXQgc3RpbGwgbWF0Y2hlcyAiZ3JlcCIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZXZlbG9wLnR4dCBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CmluZGV4IDdjZmRkNWIuLjBhNGMwM2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAwOCBEZWMgMTcKKypkZXZlbG9wLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTIgSmFuIDEwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yMzIsNiArMjMyLDE3IEBACiBuZXcJCUMrKyByZXNlcnZlZCBrZXl3b3JkCiB0cnkJCUJvcmxhbmQgQysrIGRvZXNuJ3QgbGlrZSBpdCB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCiAKK2NsZWFyCQlNYWMgY3Vyc2VzLmgKK2VjaG8JCU1hYyBjdXJzZXMuaAoraW5zdHIJCU1hYyBjdXJzZXMuaAorbWV0YQkJTWFjIGN1cnNlcy5oCituZXd3aW4JCU1hYyBjdXJzZXMuaAorbmwJCU1hYyBjdXJzZXMuaAorb3ZlcndyaXRlCU1hYyBjdXJzZXMuaAorcmVmcmVzaAkJTWFjIGN1cnNlcy5oCitzY3JvbGwJCU1hYyBjdXJzZXMuaAordHlwZWFoZWFkCU1hYyBjdXJzZXMuaAorCiBiYXNlbmFtZSgpCUdOVSBzdHJpbmcgZnVuY3Rpb24KIGRpcm5hbWUoKQlHTlUgc3RyaW5nIGZ1bmN0aW9uCiBnZXRfZW52X3ZhbHVlKCkJTGludXggc3lzdGVtIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tbGFuZy50eHQgYi9ydW50aW1lL2RvYy9tbGFuZy50eHQKaW5kZXggYzdiM2RmMC4uYmZiMzBhOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWxhbmcudHh0CisrKyBiL3J1bnRpbWUvZG9jL21sYW5nLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptbGFuZy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTAgRGVjIDExCisqbWxhbmcudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDEyIEphbiAxNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTksNyArNTksNyBAQAogCQkJc3lzdGVtLiAgU29tZSBzeXN0ZW1zIGFjY2VwdCBhbGlhc2VzIGxpa2UgImVuIiBvcgogCQkJImVuX1VTIiwgYnV0IHNvbWUgb25seSBhY2NlcHQgdGhlIGZ1bGwgc3BlY2lmaWNhdGlvbgogCQkJbGlrZSAiZW5fVVMuSVNPXzg4NTktMSIuICBPbiBVbml4IHN5c3RlbXMgeW91IGNhbiB1c2UKLQkJCXRoZSB0aGlzIGNvbW1hbmQgdG8gc2VlIHdoYXQgbG9jYWxlcyBhcmUgc3VwcG9ydGVkOiA+CisJCQl0aGlzIGNvbW1hbmQgdG8gc2VlIHdoYXQgbG9jYWxlcyBhcmUgc3VwcG9ydGVkOiA+CiAJCQkJOiFsb2NhbGUgLWEKIDwJCQlXaXRoIHRoZSAibWVzc2FnZXMiIGFyZ3VtZW50IHRoZSBsYW5ndWFnZSB1c2VkIGZvcgogCQkJbWVzc2FnZXMgaXMgc2V0LiAgVGhpcyBjYW4gYmUgZGlmZmVyZW50IHdoZW4geW91IHdhbnQsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDVhZjIwNmYuLmU3ZDZmMDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgRGVjIDE1Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMiBKYW4gMTMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAxLDkgKzMwMSw4IEBACiAJCQljb3B5aW5nIHRoZSB2YWx1ZS4KIAkJCXtub3QgaW4gVml9CiAKLTpzZVt0XSB7b3B0aW9ufTwJU2V0IHRoZSBsb2NhbCB2YWx1ZSBvZiB7b3B0aW9ufSB0byBpdHMgZ2xvYmFsIHZhbHVlIGJ5Ci0JCQltYWtpbmcgaXQgZW1wdHkuICBPbmx5IG1ha2VzIHNlbnNlIGZvciB8Z2xvYmFsLWxvY2FsfAotCQkJb3B0aW9ucy4KKzpzZVt0XSB7b3B0aW9ufTwJRm9yIHxnbG9iYWwtbG9jYWx8IG9wdGlvbnM6IFJlbW92ZSB0aGUgbG9jYWwgdmFsdWUgb2YKKwkJCXtvcHRpb259LCBzbyB0aGF0IHRoZSBnbG9iYWwgdmFsdWUgd2lsbCBiZSB1c2VkLgogCQkJe25vdCBpbiBWaX0KIAogCQkJCQkJCSo6c2V0ZyogKjpzZXRnbG9iYWwqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9nZXRzY3JpcHQudHh0IGIvcnVudGltZS9kb2MvcGlfZ2V0c2NyaXB0LnR4dAppbmRleCA4NmUzY2RkLi41NTQzNTczIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9nZXRzY3JpcHQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX2dldHNjcmlwdC50eHQKQEAgLTEsMTUgKzEsMjEgQEAKLSpwaV9nZXRzY3JpcHQudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMC4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAzMQorKnBpX2dldHNjcmlwdC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IDIwMTEgSnVuIDIzCiA+CiAJCUdFVFNDUklQVCBSRUZFUkVOQ0UgTUFOVUFMICBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KIDwKIEF1dGhvcnM6ICBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5QS5NYml6PgogCSAgKHJlbW92ZSBOT1NQQU0gZnJvbSB0aGUgZW1haWwgYWRkcmVzcykKIAkJCQkJCSpHZXRMYXRlc3RWaW1TY3JpcHRzLWNvcHlyaWdodCoKLUNvcHlyaWdodDogKGMpIDIwMDQtMjAxMCBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4JKmdsdnMtY29weXJpZ2h0KgotICAgICAgICAgICBUaGUgVklNIExJQ0VOU0UgYXBwbGllcyB0byBnZXRzY3JpcHQudmltIGFuZAotICAgICAgICAgICBwaV9nZXRzY3JpcHQudHh0IChzZWUgfGNvcHlyaWdodHwpIGV4Y2VwdCB1c2UKLSAgICAgICAgICAgImdldHNjcmlwdCIgaW5zdGVhZCBvZiAiVmltIi4gIE5vIHdhcnJhbnR5LCBleHByZXNzIG9yIGltcGxpZWQuCi0JICAgVXNlIEF0LVlvdXItT3duLVJpc2suCitDb3B5cmlnaHQ6IChjKSAyMDA0LTIwMTIgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCSpnbHZzLWNvcHlyaWdodCoKKwlUaGUgVklNIExJQ0VOU0UgKHNlZSB8Y29weXJpZ2h0fCkgYXBwbGllcyB0byB0aGUgZmlsZXMgaW4gdGhpcworCXBhY2thZ2UsIGluY2x1ZGluZyBnZXRzY3JpcHRQbHVnaW4udmltLCBnZXRzY3JpcHQudmltLAorCUdldExhdGVzdFZpbVNjcmlwdHMuZGlzdCwgYW5kIHBpX2dldHNjcmlwdC50eHQsIGV4Y2VwdCB1c2UgImdldHNjcmlwdCIKKwlpbnN0ZWFkIG9mICJWSU0iLiAgTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLCBnZXRzY3JpcHQgYW5kIGl0cworCWFzc29jaWF0ZWQgZmlsZXMgYXJlIHByb3ZpZGVkICphcyBpcyogYW5kIGNvbWVzIHdpdGggbm8gd2FycmFudHkgb2YKKwlhbnkga2luZCwgZWl0aGVyIGV4cHJlc3NlZCBvciBpbXBsaWVkLiAgTm8gZ3VhcmFudGVlcyBvZgorCW1lcmNoYW50YWJpbGl0eS4gIE5vIGd1YXJhbnRlZXMgb2Ygc3VpdGFiaWxpdHkgZm9yIGFueSBwdXJwb3NlLiAgQnkKKwl1c2luZyB0aGlzIHBsdWdpbiwgeW91IGFncmVlIHRoYXQgaW4gbm8gZXZlbnQgd2lsbCB0aGUgY29weXJpZ2h0CisJaG9sZGVyIGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgcmVzdWx0aW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzCisJc29mdHdhcmUuIFVzZSBhdCB5b3VyIG93biByaXNrIQogCiBHZXRzY3JpcHQgaXMgYSBwbHVnaW4gdGhhdCBzaW1wbGlmaWVzIHJldHJpZXZhbCBvZiB0aGUgbGF0ZXN0IHZlcnNpb25zIG9mIHRoZQogc2NyaXB0cyB0aGF0IHlvdSB5b3Vyc2VsZiB1c2UhICBUeXBpbmcgfDpHTFZTfCB3aWxsIGludm9rZSBnZXRzY3JpcHQ7IGl0IHdpbGwKQEAgLTM3NCw2ICszODAsOCBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA5LiBHZXRMYXRlc3RWaW1TY3JpcHRzIEhpc3RvcnkJCSpnZXRzY3JpcHQtaGlzdG9yeSogKmdsdnMtaGlzdCoge3t7MQogCit2NDQgSnVuIDIzLCAyMDExIDogKiBoYW5kbGVzIGFkZGl0aW9uYWwgZGVjb21wcmVzc2lvbiBvcHRpb25zIGZvciB0YXJiYWxscworICAgICAgICAgICAgICAgICAgICAgKHRneiB0YXogdGJ6IHR4eikKIHYzMyBNYXkgMzEsIDIwMTEgOiAqIHVzaW5nIGZuYW1lZXNjYXBlKCkgaW5zdGVhZCBvZiBlc2NhcGUoKQogCQkgICAqICoueHogc3VwcG9ydAogdjMyIEp1biAxOSwgMjAxMCA6ICogKEphbiBTdGVmZmVucykgYWRkZWQgc3VwcG9ydCBmb3IgeHogY29tcHJlc3Npb24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQgYi9ydW50aW1lL2RvYy9waV90YXIudHh0CmluZGV4IGFiOThmNGEuLjFmZjRkN2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfdGFyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV90YXIudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgTWF5IDMxCisqcGlfdGFyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDEyIEphbiAxNwogCiAJCSAgICAgICArPT09PT09PT09PT09PT09PT09PT0rCiAJCSAgICAgICB8IFRhciBGaWxlIEludGVyZmFjZSB8CkBAIC02LDkgKzYsMTYgQEAKIAogQXV0aG9yOiAgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuICA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KIAkgIChyZW1vdmUgTk9TUEFNIGZyb20gQ2FtcGJlbGwncyBlbWFpbCBmaXJzdCkKLUNvcHlyaWdodCAyMDA1LTIwMTA6IFRoZSBHUEwgKGdudSBwdWJsaWMgbGljZW5zZSkgYXBwbGllcyB0bwkqdGFyLWNvcHlyaWdodCoKLQkgICB0YXIudmltLCB0YXJQbHVnaW4udmltLCBhbmQgcGlfdGFyLnR4dC4KLQkgICBObyB3YXJyYW50eSwgZXhwcmVzcyBvciBpbXBsaWVkLiAgVXNlIEF0LVlvdXItT3duLVJpc2suCitDb3B5cmlnaHQgMjAwNS0yMDEyOgkJCQkJKnRhci1jb3B5cmlnaHQqCisJVGhlIFZJTSBMSUNFTlNFIChzZWUgfGNvcHlyaWdodHwpIGFwcGxpZXMgdG8gdGhlIGZpbGVzIGluIHRoaXMKKwlwYWNrYWdlLCBpbmNsdWRpbmcgdGFyUGx1Z2luLnZpbSwgdGFyLnZpbSwgYW5kIHBpX3Rhci50eHQuICBMaWtlCisJYW55dGhpbmcgZWxzZSB0aGF0J3MgZXhjZXB0IHVzZSAidGFyLnZpbSIgaW5zdGVhZCBvZiAiVklNIi4gIExpa2UKKwlhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLCB0YXIudmltIGFuZCBpdHMgYXNzb2NpYXRlZCBmaWxlcyBhcmUKKwlwcm92aWRlZCAqYXMgaXMqIGFuZCBjb21lcyB3aXRoIG5vIHdhcnJhbnR5IG9mIGFueSBraW5kLCBlaXRoZXIKKwlleHByZXNzZWQgb3IgaW1wbGllZC4gIE5vIGd1YXJhbnRlZXMgb2YgbWVyY2hhbnRhYmlsaXR5LiAgTm8KKwlndWFyYW50ZWVzIG9mIHN1aXRhYmlsaXR5IGZvciBhbnkgcHVycG9zZS4gIEJ5IHVzaW5nIHRoaXMgcGx1Z2luLCB5b3UKKwlhZ3JlZSB0aGF0IGluIG5vIGV2ZW50IHdpbGwgdGhlIGNvcHlyaWdodCBob2xkZXIgYmUgbGlhYmxlIGZvciBhbnkKKwlkYW1hZ2VzIHJlc3VsdGluZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4gVXNlIGF0IHlvdXIgb3duIHJpc2shCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMS4gQ29udGVudHMJCQkJCSp0YXIqICp0YXItY29udGVudHMqCkBAIC04Myw2ICs5MCw3IEBACiA0LiBIaXN0b3J5CQkJCQkJKnRhci1oaXN0b3J5KgogCiAKKyAgIHYyOCBKdW4gMjMsIDIwMTEgKiBhIGZldyBtb3JlIGRlY29tcHJlc3Npb24gb3B0aW9ucyAodGJ6IHRiMiB0eHopCiAgICB2MjcgTWF5IDMxLCAyMDExICogbW92ZWQgY3lnd2luIGRldGVjdGlvbiBiZWZvcmUgZzp0YXJfY29weWNtZCBoYW5kbGluZwogICAgCQkgICAgKiBpbnNlcnRlZCBhZGRpdGlvbmFsIHw6a2VlcGp8IG1vZGlmaWVycwogCQkgICAgKiBjaGFuZ2VkIHNpbGVudCAgdG8gIHNpbCEgICh8OnNpbGVudHwpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dCBiL3J1bnRpbWUvZG9jL3BpX3ZpbWJhbGwudHh0CmluZGV4IGZkMDAwNmQuLmY5NjFhYjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3ZpbWJhbGwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3ZpbWJhbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX3ZpbWJhbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgU2VwIDI2CisqcGlfdmltYmFsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMiBKYW4gMTcKIAogCQkJICAgICAgIC0tLS0tLS0tLS0tLS0tLS0KIAkJCSAgICAgICBWaW1iYWxsIEFyY2hpdmVyCkBAIC02LDExICs2LDE2IEBACiAKIEF1dGhvcjogIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0+CiAJICAocmVtb3ZlIE5PU1BBTSBmcm9tIENhbXBiZWxsJ3MgZW1haWwgZmlyc3QpCi1Db3B5cmlnaHQ6IChjKSAyMDA0LTIwMTEgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCSpWaW1iYWxsLWNvcHlyaWdodCoKLQkgICBUaGUgVklNIExJQ0VOU0UgYXBwbGllcyB0byBWaW1iYWxsLnZpbSwgYW5kIFZpbWJhbGwudHh0Ci0JICAgKHNlZSB8Y29weXJpZ2h0fCkgZXhjZXB0IHVzZSAiVmltYmFsbCIgaW5zdGVhZCBvZiAiVmltIi4KLQkgICBObyB3YXJyYW50eSwgZXhwcmVzcyBvciBpbXBsaWVkLgotCSAgIFVzZSBBdC1Zb3VyLU93bi1SaXNrIQorQ29weXJpZ2h0OiAoYykgMjAwNC0yMDEyIGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgkqVmltYmFsbC1jb3B5cmlnaHQqCisJVGhlIFZJTSBMSUNFTlNFIChzZWUgfGNvcHlyaWdodHwpIGFwcGxpZXMgdG8gdGhlIGZpbGVzIGluIHRoaXMKKwlwYWNrYWdlLCBpbmNsdWRpbmcgdmltYmFsbFBsdWdpbi52aW0sIHZpbWJhbGwudmltLCBhbmQgcGlfdmltYmFsbC50eHQuCisJZXhjZXB0IHVzZSAidmltYmFsbCIgaW5zdGVhZCBvZiAiVklNIi4gIExpa2UgYW55dGhpbmcgZWxzZSB0aGF0J3MgZnJlZSwKKwl2aW1iYWxsLnZpbSBhbmQgaXRzIGFzc29jaWF0ZWQgZmlsZXMgYXJlIHByb3ZpZGVkICphcyBpcyogYW5kIGNvbWVzIHdpdGgKKwlubyB3YXJyYW50eSBvZiBhbnkga2luZCwgZWl0aGVyIGV4cHJlc3NlZCBvciBpbXBsaWVkLiAgTm8gZ3VhcmFudGVlcworCW9mIG1lcmNoYW50YWJpbGl0eS4gIE5vIGd1YXJhbnRlZXMgb2Ygc3VpdGFiaWxpdHkgZm9yIGFueSBwdXJwb3NlLiAgQnkKKwl1c2luZyB0aGlzIHBsdWdpbiwgeW91IGFncmVlIHRoYXQgaW4gbm8gZXZlbnQgd2lsbCB0aGUgY29weXJpZ2h0CisJaG9sZGVyIGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgcmVzdWx0aW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzCisJc29mdHdhcmUuIFVzZSBhdCB5b3VyIG93biByaXNrIQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEuIENvbnRlbnRzCQkJCSp2YmEqICp2aW1iYWxsKiAqdmltYmFsbC1jb250ZW50cyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQgYi9ydW50aW1lL2RvYy9waV96aXAudHh0CmluZGV4IDEzYzYwNGMuLmQ5NzYwNTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfemlwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV96aXAudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgQXVnIDE0CisqcGlfemlwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDEyIEphbiAxNwogCiAJCQkJKz09PT09PT09PT09PT09PT09PT09KwogCQkJCXwgWmlwIEZpbGUgSW50ZXJmYWNlIHwKQEAgLTcsMTQgKzcsMTUgQEAKIEF1dGhvcjogIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0+CiAJICAocmVtb3ZlIE5PU1BBTSBmcm9tIENhbXBiZWxsJ3MgZW1haWwgZmlyc3QpCiBDb3B5cmlnaHQ6IENvcHlyaWdodCAoQykgMjAwNS0yMDExIENoYXJsZXMgRSBDYW1wYmVsbCwgSnIgKnppcC1jb3B5cmlnaHQqCi0gICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKLQkgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodAotCSAgIG5vdGljZSBpcyBjb3BpZWQgd2l0aCBpdC4gTGlrZSBhbnl0aGluZyBlbHNlIHRoYXQncyBmcmVlLAotCSAgIHppcC52aW0sIHppcFBsdWdpbi52aW0sIGFuZCBwaV96aXAudHh0IGFyZSBwcm92aWRlZCAqYXMgaXMqCi0JICAgYW5kIGl0IGNvbWVzIHdpdGggbm8gd2FycmFudHkgb2YgYW55IGtpbmQsIGVpdGhlciBleHByZXNzZWQgb3IKLQkgICBpbXBsaWVkLiBCeSB1c2luZyB0aGlzIHBsdWdpbiwgeW91IGFncmVlIHRoYXQgaW4gbm8gZXZlbnQgd2lsbAotCSAgIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgcmVzdWx0aW5nIGZyb20KLQkgICB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCisJVGhlIFZJTSBMSUNFTlNFIChzZWUgfGNvcHlyaWdodHwpIGFwcGxpZXMgdG8gdGhlIGZpbGVzIGluIHRoaXMKKwlwYWNrYWdlLCBpbmNsdWRpbmcgemlwUGx1Z2luLnZpbSwgemlwLnZpbSwgYW5kIHBpX3ppcC52aW0uICBleGNlcHQgdXNlCisJInppcC52aW0iIGluc3RlYWQgb2YgIlZJTSIuICBMaWtlIGFueXRoaW5nIGVsc2UgdGhhdCdzIGZyZWUsIHppcC52aW0KKwlhbmQgaXRzIGFzc29jaWF0ZWQgZmlsZXMgYXJlIHByb3ZpZGVkICphcyBpcyogYW5kIGNvbWVzIHdpdGggbm8KKwl3YXJyYW50eSBvZiBhbnkga2luZCwgZWl0aGVyIGV4cHJlc3NlZCBvciBpbXBsaWVkLiAgTm8gZ3VhcmFudGVlcyBvZgorCW1lcmNoYW50YWJpbGl0eS4gIE5vIGd1YXJhbnRlZXMgb2Ygc3VpdGFiaWxpdHkgZm9yIGFueSBwdXJwb3NlLiAgQnkKKwl1c2luZyB0aGlzIHBsdWdpbiwgeW91IGFncmVlIHRoYXQgaW4gbm8gZXZlbnQgd2lsbCB0aGUgY29weXJpZ2h0CisJaG9sZGVyIGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgcmVzdWx0aW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzCisJc29mdHdhcmUuIFVzZSBhdCB5b3VyIG93biByaXNrIQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEuIENvbnRlbnRzCQkJCQkJKnppcCogKnppcC1jb250ZW50cyoKQEAgLTczLDcgKzc0LDcgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMy4gQWRkaXRpb25hbCBFeHRlbnNpb25zCQkJCQkqemlwLWV4dGVuc2lvbioKIAotICAgQXBwYXJlbnRseSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgYXJjaGl2ZXJzIHdobyBnZW5lcmF0ZSB6aXAgZmlsZXMgdGhhdAorICAgQXBwYXJlbnRseSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgYXJjaGl2ZXJzIHdoaWNoIGdlbmVyYXRlIHppcCBmaWxlcyB0aGF0CiAgICBkb24ndCB1c2UgdGhlIC56aXAgZXh0ZW5zaW9uICguamFyLCAueHBpLCBldGMpLiAgVG8gaGFuZGxlIHN1Y2ggZmlsZXMsCiAgICBwbGFjZSBhIGxpbmUgaW4geW91ciA8LnZpbXJjPiBmaWxlOiA+CiAKQEAgLTg0LDYgKzg1LDggQEAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA0LiBIaXN0b3J5CQkJCQkJCSp6aXAtaGlzdG9yeSoge3t7MQorICAgdjI1IEp1biAyNywgMjAxMSAqIHVzaW5nIGtlZXBqIHdpdGggdW56aXAgLVoKKwkJICAgICAgKGNvbnNpc3RlbnQgd2l0aCB0aGUgLXAgdmFyaWFudCkKICAgIHYyNCBKdW4gMjEsIDIwMTAgKiAoQ8OpZHJpYyBCb3Nkb25uYXQpIHVuemlwIHNlZW1zIHRvIG5lZWQgaXRzIGZpbGVuYW1lcwogCQkgICAgICBmbmFtZWVzY2FwZSdkIGFzIHdlbGwgYXMgc2hlbGxxdW90ZSdkCiAJCSAgICAqIChNb3RveWEgS3Vyb3RzdSkgaW5zZXJ0ZWQga2VlcGogYmVmb3JlIDBkIHRvIHByb3RlY3QKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IDc3MjM5MDQuLmZhMDMyZmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTIgSmFuIDA0Cisqc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDEyIEphbiAyMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMTYxLDcgKzExNjEsNyBAQAogYWxtb3N0IGEgc3VwZXJzZXQgb2YgcHJldmlvdXMgdmVyc2lvbnMgKEZvcnRyYW4gMjAwMywgOTUsIDkwLCBhbmQgNzcpLiAKIAogRm9ydHJhbiBzb3VyY2UgY29kZSBmb3JtIH4KLUZvcnRyYW4gOXggY29kZSBjYW4gYmUgaW4gZWl0aGVyIGZpeGVkIG9yIGZyZWUgc291cmNlIGZvcm0uICBOb3RlIHRoYXQgdGhlCitGb3J0cmFuIGNvZGUgY2FuIGJlIGluIGVpdGhlciBmaXhlZCBvciBmcmVlIHNvdXJjZSBmb3JtLiAgTm90ZSB0aGF0IHRoZQogc3ludGF4IGhpZ2hsaWdodGluZyB3aWxsIG5vdCBiZSBjb3JyZWN0IGlmIHRoZSBmb3JtIGlzIGluY29ycmVjdGx5IHNldC4KIAogV2hlbiB5b3UgY3JlYXRlIGEgbmV3IGZvcnRyYW4gZmlsZSwgdGhlIHN5bnRheCBzY3JpcHQgYXNzdW1lcyBmaXhlZCBzb3VyY2UKQEAgLTEyNDIsNTQgKzEyNDIsNTQgQEAKIGNvbnN0cnVjdC4KIAogTm9uLWRlZmF1bHQgZm9ydHJhbiBkaWFsZWN0cyB+Ci1UaGUgc3ludGF4IHNjcmlwdCBzdXBwb3J0cyBmaXZlIEZvcnRyYW4gZGlhbGVjdHM6IGY5NSwgZjkwLCBmNzcsIHRoZSBMYWhleQotc3Vic2V0IGVsZjkwLCBhbmQgdGhlIEltYWdpbmUxIHN1YnNldCBGLiBIb3dldmVyLCB0aGVzZSBkaWFsZWN0cyBhcmUgb3V0ZGF0ZWQ7Ci10aGUgbmV4dCB2ZXJzaW9uIG9mIHRoZSBzeW50YXggc2NyaXB0IHdpbGwgc3VwcG9ydCBvbmx5IHR3byB2YXJpYW50czogbW9kZXJuCi1Gb3J0cmFuIGFuZCBsZWdhY3kgRm9ydHJhbi4KK1RoZSBzeW50YXggc2NyaXB0IHN1cHBvcnRzIHR3byBGb3J0cmFuIGRpYWxlY3RzOiBmMDggYW5kIEYuIFlvdSB3aWxsIHByb2JhYmx5CitmaW5kIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZyAoZjA4KSBzYXRpc2ZhY3RvcnkuICBBIGZldyBsZWdhY3kgY29uc3RydWN0cworZGVsZXRlZCBvciBkZWNsYXJlZCBvYnNvbGVzY2VudCBpbiB0aGUgMjAwOCBzdGFuZGFyZCBhcmUgaGlnaGxpZ2h0ZWQgYXMgdG9kbworaXRlbXMuCiAKLUlmIHlvdSB1c2UgZjc3IHdpdGggZXh0ZW5zaW9ucywgZXZlbiBjb21tb24gb25lcyBsaWtlIGRvL2VuZGRvIGxvb3BzLCBkby93aGlsZQotbG9vcHMgYW5kIGZyZWUgc291cmNlIGZvcm0gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IG1vc3QgZjc3IGNvbXBpbGVycyBpbmNsdWRpbmcKLWc3NyAoR05VIEZvcnRyYW4pLCB0aGVuIHlvdSB3aWxsIHByb2JhYmx5IGZpbmQgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nCi1zYXRpc2ZhY3RvcnkuICBIb3dldmVyLCBpZiB5b3UgdXNlIHN0cmljdCBmNzcgd2l0aCBubyBleHRlbnNpb25zLCBub3QgZXZlbiBmcmVlCi1zb3VyY2UgZm9ybSBvciB0aGUgTUlMIFNURCAxNzUzIGV4dGVuc2lvbnMsIHRoZW4gdGhlIGFkdmFudGFnZXMgb2Ygc2V0dGluZyB0aGUKLWRpYWxlY3QgdG8gZjc3IGFyZSB0aGF0IG5hbWVzIHN1Y2ggYXMgU1VNIGFyZSByZWNvZ25pemVkIGFzIHVzZXIgdmFyaWFibGUKLW5hbWVzIGFuZCBub3QgaGlnaGxpZ2h0ZWQgYXMgZjl4IGludHJpbnNpYyBmdW5jdGlvbnMsIHRoYXQgb2Jzb2xldGUgY29uc3RydWN0cwotc3VjaCBhcyBBU1NJR04gc3RhdGVtZW50cyBhcmUgbm90IGhpZ2hsaWdodGVkIGFzIHRvZG8gaXRlbXMsIGFuZCB0aGF0IGZpeGVkCi1zb3VyY2UgZm9ybSB3aWxsIGJlIGFzc3VtZWQuCitJZiB5b3UgdXNlIEYsIHRoZSBhZHZhbnRhZ2Ugb2Ygc2V0dGluZyB0aGUgZGlhbGVjdCBhcHByb3ByaWF0ZWx5IGlzIHRoYXQKK290aGVyIGxlZ2FjeSBmZWF0dXJlcyBleGNsdWRlZCBmcm9tIEYgd2lsbCBiZSBoaWdobGlnaHRlZCBhcyB0b2RvIGl0ZW1zIGFuZAordGhhdCBmcmVlIHNvdXJjZSBmb3JtIHdpbGwgYmUgYXNzdW1lZC4gCiAKLUlmIHlvdSB1c2UgZWxmOTAgb3IgRiwgdGhlIGFkdmFudGFnZSBvZiBzZXR0aW5nIHRoZSBkaWFsZWN0IGFwcHJvcHJpYXRlbHkgaXMKLXRoYXQgZjkwIGZlYXR1cmVzIGV4Y2x1ZGVkIGZyb20gdGhlc2UgZGlhbGVjdHMgd2lsbCBiZSBoaWdobGlnaHRlZCBhcyB0b2RvCi1pdGVtcyBhbmQgdGhhdCBmcmVlIHNvdXJjZSBmb3JtIHdpbGwgYmUgYXNzdW1lZCBhcyByZXF1aXJlZCBmb3IgdGhlc2UKLWRpYWxlY3RzLgorVGhlIGRpYWxlY3QgY2FuIGJlIHNlbGVjdGVkIGluIHZhcmlvdXMgd2F5cy4gIElmIGFsbCB5b3VyIGZvcnRyYW4gZmlsZXMgdXNlCit0aGUgc2FtZSBkaWFsZWN0LCBzZXQgdGhlIGdsb2JhbCB2YXJpYWJsZSBmb3J0cmFuX2RpYWxlY3QgaW4geW91ciAudmltcmMgcHJpb3IKK3RvIHlvdXIgc3ludGF4IG9uIHN0YXRlbWVudC4gIFRoZSBjYXNlLXNlbnNpdGl2ZSwgcGVybWlzc2libGUgdmFsdWVzIG9mCitmb3J0cmFuX2RpYWxlY3QgYXJlICJmMDgiIG9yICJGIi4gIEludmFsaWQgdmFsdWVzIG9mIGZvcnRyYW5fZGlhbGVjdCBhcmUKK2lnbm9yZWQuCiAKLVRoZSBkaWFsZWN0IGNhbiBiZSBzZWxlY3RlZCBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZSBmb3J0cmFuX2RpYWxlY3QuICBUaGUKLXBlcm1pc3NpYmxlIHZhbHVlcyBvZiBmb3J0cmFuX2RpYWxlY3QgYXJlIGNhc2Utc2Vuc2l0aXZlIGFuZCBtdXN0IGJlICJmOTUiLAotImY5MCIsICJmNzciLCAiZWxmIiBvciAiRiIuICBJbnZhbGlkIHZhbHVlcyBvZiBmb3J0cmFuX2RpYWxlY3QgYXJlIGlnbm9yZWQuCi0KLUlmIGFsbCB5b3VyIGZvcnRyYW4gZmlsZXMgdXNlIHRoZSBzYW1lIGRpYWxlY3QsIHNldCBmb3J0cmFuX2RpYWxlY3QgaW4geW91cgotLnZpbXJjIHByaW9yIHRvIHlvdXIgc3ludGF4IG9uIHN0YXRlbWVudC4gIElmIHRoZSBkaWFsZWN0IGRlcGVuZHMgdXBvbiB0aGUgZmlsZQotZXh0ZW5zaW9uLCB0aGVuIGl0IGlzIG1vc3QgY29udmVuaWVudCB0byBzZXQgaXQgaW4gYSBmdHBsdWdpbiBmaWxlLiAgRm9yIG1vcmUKLWluZm9ybWF0aW9uIG9uIGZ0cGx1Z2luIGZpbGVzLCBzZWUgfGZ0cGx1Z2lufC4gIEZvciBleGFtcGxlLCBpZiBhbGwgeW91cgotZm9ydHJhbiBmaWxlcyB3aXRoIGFuIC5mOTAgZXh0ZW5zaW9uIGFyZSB3cml0dGVuIGluIHRoZSBlbGYgc3Vic2V0LCB5b3VyCi1mdHBsdWdpbiBmaWxlIHNob3VsZCBjb250YWluIHRoZSBjb2RlID4KK0lmIHRoZSBkaWFsZWN0IGRlcGVuZHMgdXBvbiB0aGUgZmlsZSBleHRlbnNpb24sIHRoZW4gaXQgaXMgbW9zdCBjb252ZW5pZW50IHRvCitzZXQgYSBidWZmZXItbG9jYWwgdmFyaWFibGUgaW4gYSBmdHBsdWdpbiBmaWxlLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24KK2Z0cGx1Z2luIGZpbGVzLCBzZWUgfGZ0cGx1Z2lufC4gIEZvciBleGFtcGxlLCBpZiBhbGwgeW91ciBmb3J0cmFuIGZpbGVzIHdpdGgKK2FuIC5mOTAgZXh0ZW5zaW9uIGFyZSB3cml0dGVuIGluIHRoZSBGIHN1YnNldCwgeW91ciBmdHBsdWdpbiBmaWxlIHNob3VsZAorY29udGFpbiB0aGUgY29kZSA+CiAgICAgbGV0IHM6ZXh0Zm5hbWUgPSBleHBhbmQoIiU6ZSIpCiAgICAgaWYgczpleHRmbmFtZSA9PT8gImY5MCIKLQlsZXQgZm9ydHJhbl9kaWFsZWN0PSJlbGYiCisJbGV0IGI6Zm9ydHJhbl9kaWFsZWN0PSJGIgogICAgIGVsc2UKLQl1bmxldCEgZm9ydHJhbl9kaWFsZWN0CisJdW5sZXQhIGI6Zm9ydHJhbl9kaWFsZWN0CiAgICAgZW5kaWYKIE5vdGUgdGhhdCB0aGlzIHdpbGwgd29yayBvbmx5IGlmIHRoZSAiZmlsZXR5cGUgcGx1Z2luIGluZGVudCBvbiIgY29tbWFuZAogcHJlY2VkZXMgdGhlICJzeW50YXggb24iIGNvbW1hbmQgaW4geW91ciAudmltcmMgZmlsZS4KIAogRmluZXIgY29udHJvbCBpcyBuZWNlc3NhcnkgaWYgdGhlIGZpbGUgZXh0ZW5zaW9uIGRvZXMgbm90IHVuaXF1ZWx5IGlkZW50aWZ5Ci10aGUgZGlhbGVjdC4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZGlhbGVjdCwgb24gYSBmaWxlLWJ5LWZpbGUgYmFzaXMsIGJ5Ci1pbmNsdWRpbmcgYSBjb21tZW50IHdpdGggdGhlIGRpcmVjdGl2ZSAiZm9ydHJhbl9kaWFsZWN0PXh4IiAod2hlcmUgeHg9Zjc3IG9yCi1lbGYgb3IgRiBvciBmOTAgb3IgZjk1KSBpbiBvbmUgb2YgdGhlIGZpcnN0IHRocmVlIGxpbmVzIGluIHlvdXIgZmlsZS4gIEZvcgotZXhhbXBsZSwgeW91ciBvbGRlciAuZiBmaWxlcyBtYXkgYmUgd3JpdHRlbiBpbiBleHRlbmRlZCBmNzcgYnV0IHlvdXIgbmV3ZXIKLW9uZXMgbWF5IGJlIEYgY29kZXMsIGFuZCB5b3Ugd291bGQgaWRlbnRpZnkgdGhlIGxhdHRlciBieSBpbmNsdWRpbmcgaW4gdGhlCi1maXJzdCB0aHJlZSBsaW5lcyBvZiB0aG9zZSBmaWxlcyBhIEZvcnRyYW4gY29tbWVudCBvZiB0aGUgZm9ybSA+Cit0aGUgZGlhbGVjdC4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZGlhbGVjdCwgb24gYSBmaWxlLWJ5LWZpbGUgYmFzaXMsCitieSBpbmNsdWRpbmcgYSBjb21tZW50IHdpdGggdGhlIGRpcmVjdGl2ZSAiZm9ydHJhbl9kaWFsZWN0PXh4IiAod2hlcmUgeHg9RiBvcgorZjA4KSBpbiBvbmUgb2YgdGhlIGZpcnN0IHRocmVlIGxpbmVzIGluIHlvdXIgZmlsZS4gIEZvciBleGFtcGxlLCB5b3VyIG9sZGVyIC5mCitmaWxlcyBtYXkgYmUgbGVnYWN5IGNvZGUgYnV0IHlvdXIgbmV3ZXIgb25lcyBtYXkgYmUgRiBjb2RlcywgYW5kIHlvdSB3b3VsZAoraWRlbnRpZnkgdGhlIGxhdHRlciBieSBpbmNsdWRpbmcgaW4gdGhlIGZpcnN0IHRocmVlIGxpbmVzIG9mIHRob3NlIGZpbGVzIGEKK0ZvcnRyYW4gY29tbWVudCBvZiB0aGUgZm9ybSA+CiAgICEgZm9ydHJhbl9kaWFsZWN0PUYKLUYgb3ZlcnJpZGVzIGVsZiBpZiBib3RoIGRpcmVjdGl2ZXMgYXJlIHByZXNlbnQuCisKK0ZvciBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGUgc3ludGF4LCB5b3UgbWF5IGhhdmUgc2V0IGZvcnRyYW5fZGlhbGVjdCB0byB0aGUKK25vdy1vYnNvbGV0ZSB2YWx1ZXMgImY3NyIsICJmOTAiLCAiZjk1Iiwgb3IgImVsZiIuIFN1Y2ggc2V0dGluZ3Mgd2lsbCBiZQorc2lsZW50bHkgaGFuZGxlZCBhcyAiZjA4Ii4gVXNlcnMgb2YgImVsZiIgbWF5IHdpc2ggdG8gZXhwZXJpbWVudCB3aXRoICJGIgoraW5zdGVhZC4gCisKK1RoZSBzeW50YXgvZm9ydHJhbi52aW0gc2NyaXB0IGNvbnRhaW5zIGVtYmVkZGVkIGNvbW1lbnRzIHRoYXQgdGVsbCB5b3UgaG93IHRvCitjb21tZW50IGFuZC9vciB1bmNvbW1lbnQgc29tZSBsaW5lcyB0byAoYSkgYWN0aXZhdGUgcmVjb2duaXRpb24gb2Ygc29tZQorbm9uLXN0YW5kYXJkLCB2ZW5kb3Itc3VwcGxpZWQgaW50cmluc2ljcyBhbmQgKGIpIHRvIHByZXZlbnQgZmVhdHVyZXMgZGVsZXRlZAorb3IgZGVjbGFyZWQgb2Jzb2xlc2NlbnQgaW4gdGhlIDIwMDggc3RhbmRhcmQgZnJvbSBiZWluZyBoaWdobGlnaHRlZCBhcyB0b2RvCitpdGVtcy4gCiAKIExpbWl0YXRpb25zIH4KIFBhcmVudGhlc2lzIGNoZWNraW5nIGRvZXMgbm90IGNhdGNoIHRvbyBmZXcgY2xvc2luZyBwYXJlbnRoZXNlcy4gIEhvbGxlcml0aApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggZTgwNjg1YS4uNTNmNGNhYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC0xMjQzLDYgKzEyNDMsNyBAQAogK3dyaXRlYmFja3VwCXZhcmlvdXMudHh0CS8qK3dyaXRlYmFja3VwKgogK3hmb250c2V0CXZhcmlvdXMudHh0CS8qK3hmb250c2V0KgogK3hpbQl2YXJpb3VzLnR4dAkvKit4aW0qCisreHBtX3czMgl2YXJpb3VzLnR4dAkvKit4cG1fdzMyKgogK3hzbXAJdmFyaW91cy50eHQJLyoreHNtcCoKICt4c21wX2ludGVyYWN0CXZhcmlvdXMudHh0CS8qK3hzbXBfaW50ZXJhY3QqCiAreHRlcm1fY2xpcGJvYXJkCXZhcmlvdXMudHh0CS8qK3h0ZXJtX2NsaXBib2FyZCoKQEAgLTQ3OTEsNiArNDc5Miw3IEBACiBiZXZhbF9sbnVtLXZhcmlhYmxlCWV2YWwudHh0CS8qYmV2YWxfbG51bS12YXJpYWJsZSoKIGJldmFsX3RleHQtdmFyaWFibGUJZXZhbC50eHQJLypiZXZhbF90ZXh0LXZhcmlhYmxlKgogYmV2YWxfd2lubnItdmFyaWFibGUJZXZhbC50eHQJLypiZXZhbF93aW5uci12YXJpYWJsZSoKK2JpdHdpc2UtZnVuY3Rpb24JdXNyXzQxLnR4dAkvKmJpdHdpc2UtZnVuY3Rpb24qCiBibG9ja3dpc2UtZXhhbXBsZXMJdmlzdWFsLnR4dAkvKmJsb2Nrd2lzZS1leGFtcGxlcyoKIGJsb2Nrd2lzZS1vcGVyYXRvcnMJdmlzdWFsLnR4dAkvKmJsb2Nrd2lzZS1vcGVyYXRvcnMqCiBibG9ja3dpc2UtcmVnaXN0ZXIJY2hhbmdlLnR4dAkvKmJsb2Nrd2lzZS1yZWdpc3RlcioKQEAgLTcwNDEsOCArNzA0Myw4IEBACiBvYnRhaW5pbmctZXh0ZWQJbmV0YmVhbnMudHh0CS8qb2J0YWluaW5nLWV4dGVkKgogb2NhbWwudmltCXN5bnRheC50eHQJLypvY2FtbC52aW0qCiBvY3RhbAlldmFsLnR4dAkvKm9jdGFsKgorb2N0YWwtbnJmb3JtYXRzCW9wdGlvbnMudHh0CS8qb2N0YWwtbnJmb3JtYXRzKgogb2N0YWwtbnVtYmVyCWV2YWwudHh0CS8qb2N0YWwtbnVtYmVyKgotb2N0YWwtbnVtYmVyCW9wdGlvbnMudHh0CS8qb2N0YWwtbnVtYmVyKgogb2xkZmlsZXMtdmFyaWFibGUJZXZhbC50eHQJLypvbGRmaWxlcy12YXJpYWJsZSoKIG9sZS1hY3RpdmF0aW9uCWlmX29sZS50eHQJLypvbGUtYWN0aXZhdGlvbioKIG9sZS1ldmFsCWlmX29sZS50eHQJLypvbGUtZXZhbCoKQEAgLTgzNTcsMTMgKzgzNTksMjcgQEAKIHZpbWRpZmYJZGlmZi50eHQJLyp2aW1kaWZmKgogdmltZmlsZXMJb3B0aW9ucy50eHQJLyp2aW1maWxlcyoKIHZpbWluZm8Jc3RhcnRpbmcudHh0CS8qdmltaW5mbyoKK3ZpbWluZm8tIQlvcHRpb25zLnR4dAkvKnZpbWluZm8tISoKK3ZpbWluZm8tJQlvcHRpb25zLnR4dAkvKnZpbWluZm8tJSoKK3ZpbWluZm8tJwlvcHRpb25zLnR4dAkvKnZpbWluZm8tJyoKK3ZpbWluZm8tLwlvcHRpb25zLnR4dAkvKnZpbWluZm8tXC8qCit2aW1pbmZvLToJb3B0aW9ucy50eHQJLyp2aW1pbmZvLToqCit2aW1pbmZvLTwJb3B0aW9ucy50eHQJLyp2aW1pbmZvLTwqCit2aW1pbmZvLUAJb3B0aW9ucy50eHQJLyp2aW1pbmZvLUAqCit2aW1pbmZvLWMJb3B0aW9ucy50eHQJLyp2aW1pbmZvLWMqCiB2aW1pbmZvLWVuY29kaW5nCXN0YXJ0aW5nLnR4dAkvKnZpbWluZm8tZW5jb2RpbmcqCiB2aW1pbmZvLWVycm9ycwlzdGFydGluZy50eHQJLyp2aW1pbmZvLWVycm9ycyoKK3ZpbWluZm8tZglvcHRpb25zLnR4dAkvKnZpbWluZm8tZioKIHZpbWluZm8tZmlsZQlzdGFydGluZy50eHQJLyp2aW1pbmZvLWZpbGUqCiB2aW1pbmZvLWZpbGUtbWFya3MJc3RhcnRpbmcudHh0CS8qdmltaW5mby1maWxlLW1hcmtzKgogdmltaW5mby1maWxlLW5hbWUJc3RhcnRpbmcudHh0CS8qdmltaW5mby1maWxlLW5hbWUqCit2aW1pbmZvLWgJb3B0aW9ucy50eHQJLyp2aW1pbmZvLWgqCit2aW1pbmZvLW4Jb3B0aW9ucy50eHQJLyp2aW1pbmZvLW4qCit2aW1pbmZvLXF1b3RlCW9wdGlvbnMudHh0CS8qdmltaW5mby1xdW90ZSoKK3ZpbWluZm8tcglvcHRpb25zLnR4dAkvKnZpbWluZm8tcioKIHZpbWluZm8tcmVhZAlzdGFydGluZy50eHQJLyp2aW1pbmZvLXJlYWQqCiB2aW1pbmZvLXJlYWQtd3JpdGUJc3RhcnRpbmcudHh0CS8qdmltaW5mby1yZWFkLXdyaXRlKgordmltaW5mby1zCW9wdGlvbnMudHh0CS8qdmltaW5mby1zKgogdmltaW5mby13cml0ZQlzdGFydGluZy50eHQJLyp2aW1pbmZvLXdyaXRlKgogdmltcmMJc3RhcnRpbmcudHh0CS8qdmltcmMqCiB2aW1yYy1maWxldHlwZQl1c3JfMDUudHh0CS8qdmltcmMtZmlsZXR5cGUqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDQ5ZTI0NWYuLjRkMzQzY2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMiBKYW4gMTAKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTIgSmFuIDIwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM4LDMyICszOCwzNSBAQAogCiBEaXNjdXNzaW9uIGFib3V0IGNhbm9uaWNhbGl6YXRpb24gb2YgSGVicmV3LiAoUm9uIEFhcm9uLCAyMDExIEFwcmlsIDEwKQogCi1Db21waWxhdGlvbiBwcm9ibGVtIG9uIHovT1MsIFBPVU5EIGlzIGVxdWFsIHRvICcjJywgZHVwbGljYXRlIGNhc2UuCi0oU3RlcGhlbiBCb3Z5LCAyMDExIERlYyAxNikKLQogT25jZSBzeW50YXggYW5kIG90aGVyIHJ1bnRpbWUgZmlsZXMgaGF2ZSBiZWVuIGZpeGVkOiBhZGQgInNldCBjcCIgdG8KIGNoZWNrLnZpbS4gIFVzZSBhIGZ1bmN0aW9uIHRvIHJ1biBib3RoIHdpdGggJ2NwJyBhbmQgJ25vY3AnLgogCi1QYXRjaCB0byBmaXggcmVncmVzc2lvbiBjYXVzZWQgYnkgNy4zLjI1MS4gKENocmlzdGlhbiBCcmFiYW5kdCwgMjAxMiBKYW4gNSkKK1dpbjMyOiBXaGVuIHRoZSB0YXNrYmFyIGlzIGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiBjcmVhdGluZyB0aGUgdGFiYmFyIGNhdXNlcwordGhlIHdpbmRvdyB0byBtb3ZlIHVubmVjZXNzYXJpbHkuIChXaWxsaWFtIEUuIFNrZWl0aCBJSUksIDIwMTIgSmFuIDEyKQorUGF0Y2g6IDIwMTIgSmFuIDEzCiAKLVBhdGNoIHRvIG1ha2UgIjpoZWxwZ3JlcCIgd29yayB3aXRoIG5vbi1VVEYtOCBlbmNvZGluZy4gKFlhc3VoaXJvIE1hdHN1bW90bywKLTIwMTEgTm92IDI4LCB1cGRhdGUgbGF0ZXIgdGhhdCBkYXkpCitQYXRjaCBmb3IgdXNpbmcgREJDUyBlbmNvZGluZyBpbiB1c2VyIGNvbW1hbmQuIChZYXN1aGlybyBNYXRzdW1vdG8sIDIwMTIgSmFuCisxNSkgIFVwZGF0ZSBKYW4gMTcuCiAKLVBhdGNoIHRvIGZpeCBtZXNzaW5nIHVwIHRlcm1pbmFsIHdoZW4gcmVkcmF3aW5nIHRvbyBlYXJseS4gKENocmlzdGlhbgotQnJhYmFuZHQsIDIwMTIgSmFuIDUpCitSZXBlYXRpbmcgc2VhcmNoIGhpc3RvcnkgZW50cmllcy4gKEVkd2luIFN0ZWluZXIsIDIwMTIgSmFuIDE3KQorSmFuIDE4OiBDYXVzZWQgYnkgcGF0Y2ggNy4zLjI2NT8KIAotUGF0Y2ggdG8gZml4IG1lbWJlciBjb25mdXNpb24gaW4gTHVhIGludGVyZmFjZS4gKFRhcm8gTXVyYW9rYSwgMjAxMiBKYW4gOCkKLVVwZGF0ZSBKYW4gOS4KLUNhcnZhbGhvIHdpbGwgbWVyZ2UgdGhlIHBhdGNoLgorSGFuZyBpbiB1c2luZyBWaW1FbnRlci4gKEFsZXggRWZyb3MsIDIwMTIgSmFuIDE0KQogCi1Qb3NzaWJsZSBxdWlja2ZpeCBidWc6IEF1ZHJpdXMgS2HFvnVrYXVza2FzLCAyMDEyIEphbiA2Ci0KLVByb2JsZW0gcmVhZGluZyBnZXJtYW4gc3BlbGwgZmlsZT8gKEphbiBTdG9ja2VyLCAyMDEyIEphbiA1KQorIjpjZCIgZG9lc24ndCB3b3JrIHdoZW4gY3VycmVudCBkaXJlY3RvcnkgcGF0aCBjb250YWlucyB3aWxkY2FyZHMuCitmaW5kZGlyKCkgaGFzIHRoZSBzYW1lIHByb2JsZW0uICAoWXVraWhpcm8gTmFrYWRhaXJhLCAyMDEyIEphbiAxMCkKIAogV2luMzI6IFdoZW4gYSBkaXJlY3RvcnkgbmFtZSBjb250YWlucyBhbiBleGNsYW1hdGlvbiBtYXJrLCBjb21wbGV0aW9uIGRvZXNuJ3QKIGNvbXBsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgZGlyZWN0b3J5LiAgTm8gZXNjYXBpbmcgZm9yIHRoZSAiISI/IChKYW4KIFN0b2NrZXIsIDIwMTIgSmFuIDUpCiAKK1BhdGNoIHRvIGFkZCBzdXBwb3J0IGZvciBTb2xhcmlzIFpGUyBBQ0xzLiAoRGFuZWsgRHV2YWxsLCAyMDEyIEphbiAxMykKKworUGF0Y2ggdG8gbWFrZSBjb250aW51ZWQgbGluZXMgd29yayBmYXN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8sIDIwMTIgSmFuIDExKQorCitBbHNvIGFuIGlkZWEgdG8gbWFrZSBqb2luKCkgZmFzdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvLCAyMDEyIEphbiAxMSkKK0Fub3RoZXIgb25lIGZyb20gVGFybyBNdXJhb2thLCAyMDEyIEphbiAxMi4KKwogIjpkb2F1IiBzYXlzIGl0IHRyaWdnZXJzIG1vZGVsaW5lLiAgU2hvdWxkIHRoaXMgb25seSBoYXBwZW4gZm9yIGV2ZW50cyB1c2VkCiB3aGVuIGxvYWRpbmcgYSBidWZmZXI/ICAoS2FuYSBOYXRzdW5vLCAyMDExIE5vdiA3KQogCkBAIC0xMDMsNiArMTA2LDEwIEBACiAgICAgc2lkZSBlZmZlY3QuCiBQYXRjaCBieSBLYW5hIE5hdHN1bm8sIDIwMTEgTm92IDEyLgogCitQYXRjaCB0byBmaXggbWVtYmVyIGNvbmZ1c2lvbiBpbiBMdWEgaW50ZXJmYWNlLiAoVGFybyBNdXJhb2thLCAyMDEyIEphbiA4KQorVXBkYXRlIEphbiA5LgorQ2FydmFsaG8gbWVyZ2VkIHRoZSBwYXRjaDogIE5ldyB2ZXJzaW9uIDIwMTIgSmFuIDE5LgorCiBQYXRjaCBmb3Igb3B0aW9uIGluICdjaW5vJyB0byBzcGVjaWZ5IG1vcmUgaW5kZW50IGZvciBjb250aW51ZWQgY29uZGl0aW9ucy4KIChMZWNoIExvcmVucywgMjAxMSBOb3YgMjcpCiBJc24ndCB0aGlzIGFscmVhZHkgcG9zc2libGU/CkBAIC0xMzYsNiArMTQzLDggQEAKIAogUHJvYmxlbSB3aXRoIGw6IGRpY3Rpb25hcnkgYmVpbmcgbG9ja2VkIGluIGEgZnVuY3Rpb24uIChaeVgsIDIwMTEgSnVsIDIxKQogCitJc3N1ZSA0ODogZm9sZG9wZW4gZXJyb3IgY2FuJ3QgYmUgY2F1Z2h0IGJ5IHRyeS9jYXRjaAorCiBQYXRjaCB0byBzb3J0IGZ1bmN0aW9ucyBzdGFydGluZyB3aXRoICc8JyBhZnRlciBvdGhlcnMuICBPbWl0IGRpY3QgZnVuY3Rpb25zLAogdGhleSBjYW4ndCBiZSBjYWxsZWQuIChZYXN1aGlybyBNYXRzdW1vdG8sIDIwMTEgT2N0IDExKQogCkBAIC0xODAsNiArMTg5LDkgQEAKIFdpbjMyOiBQYXRjaCBmb3IgYWxwaGEtYmxlbmRlZCBpY29ucyBhbmQgdG9vbGJhciBoZWlnaHQuIChTZXJnaXUgRG90ZW5jbywgMjAxMQogU2VwIDE3KSAgQXNrZWQgZm9yIGZlZWRiYWNrIGZyb20gb3RoZXJzLgogCitXaW4zMjogQ2Fubm90IGNkIGludG8gYSBkaXJlY3RvcnkgdGhhdCBzdGFydHMgd2l0aCBhIHNwYWNlLiAoQW5keSBXb2t1bGEsIDIwMTIKK0phbiAxOSkKKwogTmVlZCB0byBlc2NhcGUgJEhPTUUgb24gV2luZG93cz8gIChaeVgsIDIwMTEgSnVsIDIxKQogCiAiMiIgaW4gJ2Zvcm1hdG9waW9ucycgbm90IHdvcmtpbmcgaW4gY29tbWVudHMuIChDaHJpc3RpYW4gQ29ybmVsaXVzc2VuLCAyMDExCkBAIC04MDMsOCArODE1LDYgQEAKIFVuZmluaXNoZWQgcGF0Y2ggYnkgSWFuIEtlbGxpbmcsIDIwMDggSnVsIDExLiAgRm9sbG93dXAgSnVsIDE0LCBuZWVkIHRvIGhhdmUKIGFub3RoZXIgbG9vayBhdCBpdC4KIAotUGF0Y2ggZm9yIGMudmltIGFuZCBjcHAudmltIHN5bnRheCBmaWxlcy4gKENodW5nLWNoaWVoIFNoYW4sIDIwMDggTm92IDI2KQotCiBjLnZpbTogWFhYIGluIGEgY29tbWVudCBpcyBjb2xvcmVkIHllbGxvdywgYnV0IG5vdCB3aGVuIGl0J3MgYWZ0ZXIgIiNpZiAwIi4KIChJbHlhIERvZ29sYXpreSwgMjAwOSBBdWcgNykKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAppbmRleCBlYmIxMGZiLi5iMDM5ZTY5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAorKysgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTIgSmFuIDA0CisqdmFyaW91cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDEyIEphbiAxNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzYzLDMwICszNjMsMzAgQEAKIG0gICorbXpzY2hlbWUqCQlNenNjaGVtZSBpbnRlcmZhY2UgfG16c2NoZW1lfAogbSAgKittenNjaGVtZS9keW4qCU16c2NoZW1lIGludGVyZmFjZSB8bXpzY2hlbWUtZHluYW1pY3wgfC9keW58CiBtICAqK25ldGJlYW5zX2ludGcqCXxuZXRiZWFuc3wKLW0gICorb2xlKgkJV2luMzIgR1VJIG9ubHk6IHxvbGUtaW50ZXJmYWNlfAotTiAgKitwYXRoX2V4dHJhKglVcC9kb3dud2FyZHMgc2VhcmNoIGluICdwYXRoJyBhbmQgJ3RhZ3MnCittICAqK29sZSoJCQlXaW4zMiBHVUkgb25seTogfG9sZS1pbnRlcmZhY2V8CitOICAqK3BhdGhfZXh0cmEqCQlVcC9kb3dud2FyZHMgc2VhcmNoIGluICdwYXRoJyBhbmQgJ3RhZ3MnCiBtICAqK3BlcmwqCQlQZXJsIGludGVyZmFjZSB8cGVybHwKIG0gICorcGVybC9keW4qCQlQZXJsIGludGVyZmFjZSB8cGVybC1keW5hbWljfCB8L2R5bnwKIE4gICorcGVyc2lzdGVudF91bmRvKglQZXJzaXN0ZW50IHVuZG8gfHVuZG8tcGVyc2lzdGVuY2V8Ci0gICAqK3Bvc3RzY3JpcHQqCXw6aGFyZGNvcHl8IHdyaXRlcyBhIFBvc3RTY3JpcHQgZmlsZQorICAgKitwb3N0c2NyaXB0KgkJfDpoYXJkY29weXwgd3JpdGVzIGEgUG9zdFNjcmlwdCBmaWxlCiBOICAqK3ByaW50ZXIqCQl8OmhhcmRjb3B5fCBjb21tYW5kCiBIICAqK3Byb2ZpbGUqCQl8OnByb2ZpbGV8IGNvbW1hbmQKIG0gICorcHl0aG9uKgkJUHl0aG9uIDIgaW50ZXJmYWNlIHxweXRob258Ci1tICAqK3B5dGhvbi9keW4qCVB5dGhvbiAyIGludGVyZmFjZSB8cHl0aG9uLWR5bmFtaWN8IHwvZHlufAorbSAgKitweXRob24vZHluKgkJUHl0aG9uIDIgaW50ZXJmYWNlIHxweXRob24tZHluYW1pY3wgfC9keW58CiBtICAqK3B5dGhvbjMqCQlQeXRob24gMyBpbnRlcmZhY2UgfHB5dGhvbnwKLW0gICorcHl0aG9uMy9keW4qCVB5dGhvbiAzIGludGVyZmFjZSB8cHl0aG9uLWR5bmFtaWN8IHwvZHlufAorbSAgKitweXRob24zL2R5bioJCVB5dGhvbiAzIGludGVyZmFjZSB8cHl0aG9uLWR5bmFtaWN8IHwvZHlufAogTiAgKitxdWlja2ZpeCoJCXw6bWFrZXwgYW5kIHxxdWlja2ZpeHwgY29tbWFuZHMKIE4gICorcmVsdGltZSoJCXxyZWx0aW1lKCl8IGZ1bmN0aW9uLCAnaGxzZWFyY2gnLydpbmNzZWFyY2gnIHRpbWVvdXQsCiAJCQkncmVkcmF3dGltZScgb3B0aW9uCiBCICAqK3JpZ2h0bGVmdCoJCVJpZ2h0IHRvIGxlZnQgdHlwaW5nIHwncmlnaHRsZWZ0J3wKIG0gICorcnVieSoJCVJ1YnkgaW50ZXJmYWNlIHxydWJ5fAogbSAgKitydWJ5L2R5bioJCVJ1YnkgaW50ZXJmYWNlIHxydWJ5LWR5bmFtaWN8IHwvZHlufAotTiAgKitzY3JvbGxiaW5kKgl8J3Njcm9sbGJpbmQnfAorTiAgKitzY3JvbGxiaW5kKgkJfCdzY3JvbGxiaW5kJ3wKIEIgICorc2lnbnMqCQl8OnNpZ258Ci1OICAqK3NtYXJ0aW5kZW50Kgl8J3NtYXJ0aW5kZW50J3wKK04gICorc21hcnRpbmRlbnQqCQl8J3NtYXJ0aW5kZW50J3wKIG0gICorc25pZmYqCQlTbmlGRiBpbnRlcmZhY2UgfHNuaWZmfAotTiAgKitzdGFydHVwdGltZSoJfC0tc3RhcnR1cHRpbWV8IGFyZ3VtZW50Ci1OICAqK3N0YXR1c2xpbmUqCU9wdGlvbnMgJ3N0YXR1c2xpbmUnLCAncnVsZXJmb3JtYXQnIGFuZCBzcGVjaWFsCitOICAqK3N0YXJ0dXB0aW1lKgkJfC0tc3RhcnR1cHRpbWV8IGFyZ3VtZW50CitOICAqK3N0YXR1c2xpbmUqCQlPcHRpb25zICdzdGF0dXNsaW5lJywgJ3J1bGVyZm9ybWF0JyBhbmQgc3BlY2lhbAogCQkJZm9ybWF0cyBvZiAndGl0bGVzdHJpbmcnIGFuZCAnaWNvbnN0cmluZycKIG0gICorc3VuX3dvcmtzaG9wKgl8d29ya3Nob3B8CiBOICAqK3N5bnRheCoJCVN5bnRheCBoaWdobGlnaHRpbmcgfHN5bnRheHwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZXJsYW5nLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vZXJsYW5nLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODk5MDIwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9mdHBsdWdpbi9lcmxhbmcudmltCkBAIC0wLDAgKzEsMTUwIEBACisiIFZpbSBmdHBsdWdpbiBmaWxlCisiIExhbmd1YWdlOiAgICAgRXJsYW5nCisiIEF1dGhvcjogICAgICAgT3NjYXIgSGVsbHN0csO2bSA8b3NjYXJAb3NjYXJoLm5ldD4KKyIgQ29udHJpYnV0b3JzOiBSaWNhcmRvIENhdGFsaW5hcyBKaW3DqW5leiA8amltZW5lenJpY2tAZ21haWwuY29tPgorIiAgICAgICAgICAgICAgIEVkdWFyZG8gTG9wZXogKGh0dHA6Ly9naXRodWIuY29tL3RhcGljaHUpCisiIExpY2Vuc2U6ICAgICAgVmltIGxpY2Vuc2UKKyIgVmVyc2lvbjogICAgICAyMDExLzExLzIxCisKK2lmIGV4aXN0cygnYjpkaWRfZnRwbHVnaW4nKQorCWZpbmlzaAorZWxzZQorCWxldCBiOmRpZF9mdHBsdWdpbiA9IDEKK2VuZGlmCisKK2lmIGV4aXN0cygnczpkaWRfZnVuY3Rpb25fZGVmaW5pdGlvbnMnKQorCWNhbGwgczpTZXRFcmxhbmdPcHRpb25zKCkKKwlmaW5pc2gKK2Vsc2UKKwlsZXQgczpkaWRfZnVuY3Rpb25fZGVmaW5pdGlvbnMgPSAxCitlbmRpZgorCitpZiAhZXhpc3RzKCdnOmVybGFuZ19rZXl3b3JkcHJnJykKKwlsZXQgZzplcmxhbmdfa2V5d29yZHByZyA9ICdlcmwgLW1hbicKK2VuZGlmCisKK2lmICFleGlzdHMoJ2c6ZXJsYW5nX2ZvbGRpbmcnKQorCWxldCBnOmVybGFuZ19mb2xkaW5nID0gMAorZW5kaWYKKworIiBMb2NhbCBzZXR0aW5ncworZnVuY3Rpb24gczpTZXRFcmxhbmdPcHRpb25zKCkKKwljb21waWxlciBlcmxhbmcKKwlpZiB2ZXJzaW9uID49IDcwMAorCQlzZXRsb2NhbCBvbW5pZnVuYz1lcmxhbmdfY29tcGxldGUjQ29tcGxldGUKKwllbmRpZgorCisJaWYgZzplcmxhbmdfZm9sZGluZworCQlzZXRsb2NhbCBmb2xkbWV0aG9kPWV4cHIKKwkJc2V0bG9jYWwgZm9sZGV4cHI9R2V0RXJsYW5nRm9sZCh2OmxudW0pCisJCXNldGxvY2FsIGZvbGR0ZXh0PUVybGFuZ0ZvbGRUZXh0KCkKKwllbmRpZgorCisJc2V0bG9jYWwgY29tbWVudHM9OiUlJSw6JSUsOiUKKwlzZXRsb2NhbCBjb21tZW50c3RyaW5nPSUlcworCisJc2V0bG9jYWwgZm9ybWF0b3B0aW9ucys9cm8KKwlsZXQgJmw6a2V5d29yZHByZyA9IGc6ZXJsYW5nX2tleXdvcmRwcmcKK2VuZGZ1bmN0aW9uCisKKyIgRGVmaW5lIGZvbGRpbmcgZnVuY3Rpb25zCitpZiAhZXhpc3RzKCcqR2V0RXJsYW5nRm9sZCcpCisJIiBGb2xkaW5nIHBhcmFtcworCWxldCBzOmVybGFuZ19mdW5fYmVnaW4gID0gJ15cYVx3KiguKiQnCisJbGV0IHM6ZXJsYW5nX2Z1bl9lbmQgICAgPSAnXlteJV0qXC5ccypcKCUuKlwpXD8kJworCWxldCBzOmVybGFuZ19ibGFua19saW5lID0gJ15ccypcKCUuKlwpXD8kJworCisJIiBBdXhpbGlhcnkgZm9sZCBmdW5jdGlvbnMKKwlmdW5jdGlvbiBzOkdldE5leHROb25CbGFuayhsbnVtKQorCQlsZXQgbG51bSA9IG5leHRub25ibGFuayhhOmxudW0gKyAxKQorCQlsZXQgbGluZSA9IGdldGxpbmUobG51bSkKKwkJd2hpbGUgbGluZSA9fiBzOmVybGFuZ19ibGFua19saW5lICYmIDAgIT0gbG51bQorCQkJbGV0IGxudW0gPSBuZXh0bm9uYmxhbmsobG51bSArIDEpCisJCQlsZXQgbGluZSA9IGdldGxpbmUobG51bSkKKwkJZW5kd2hpbGUKKwkJcmV0dXJuIGxudW0KKwllbmRmdW5jdGlvbgorCisJZnVuY3Rpb24gczpHZXRGdW5OYW1lKHN0cikKKwkJcmV0dXJuIG1hdGNoc3RyKGE6c3RyLCAnXlxhXHcqKFxAPScpCisJZW5kZnVuY3Rpb24KKworCWZ1bmN0aW9uIHM6R2V0RnVuQXJncyhzdHIsIGxudW0pCisJCWxldCBzdHIgPSBhOnN0cgorCQlsZXQgbG51bSA9IGE6bG51bQorCQl3aGlsZSBzdHIgIX4gJy0+XHMqXCglLipcKVw/JCcKKwkJCWxldCBsbnVtID0gczpHZXROZXh0Tm9uQmxhbmsobG51bSkKKwkJCWlmIDAgPT0gbG51bSAiIEVPRgorCQkJCXJldHVybiAnJworCQkJZW5kaWYKKwkJCWxldCBzdHIgLj0gZ2V0bGluZShsbnVtKQorCQllbmR3aGlsZQorCQlyZXR1cm4gbWF0Y2hzdHIoc3RyLCAKKwkJCVwgJ1woXihccypcKVxAPD0uKlwoXHMqKVwoXHNcK3doZW5cc1wrLipcKVw/XHNcKy0+XHMqXCglLipcKVw/JFwpXEA9JykKKwllbmRmdW5jdGlvbgorCisJZnVuY3Rpb24gczpDb3VudEZ1bkFyZ3MoYXJndW1lbnRzKQorCQlsZXQgcG9zID0gMAorCQlsZXQgYWMgPSAwICIgYXJnIGNvdW50CisJCWxldCBhcmd1bWVudHMgPSBhOmFyZ3VtZW50cworCQkKKwkJIiBDaGFuZ2UgbGlzdCAvIHR1cGxlcyBpbnRvIGp1c3Qgb25lIEEocmd1bWVudCkKKwkJbGV0IGVybGFuZ190dXBsZSA9ICd7XChbQS1aYS16Xyx8PVwtXFtcXV1cfFxzXCkqfScKKwkJbGV0IGVybGFuZ19saXN0ICA9ICdcW1woW0EtWmEtel8sfD1cLXt9XVx8XHNcKSpcXScKKworCQkiIEZJWE1FOiBVc2Ugc2VhcmNocGFpcj8KKwkJd2hpbGUgYXJndW1lbnRzID1+IGVybGFuZ190dXBsZQorCQkJbGV0IGFyZ3VtZW50cyA9IHN1YnN0aXR1dGUoYXJndW1lbnRzLCBlcmxhbmdfdHVwbGUsICdBJywgJ2cnKQorCQllbmR3aGlsZQorCQkiIEZJWE1FOiBVc2Ugc2VhcmNocGFpcj8KKwkJd2hpbGUgYXJndW1lbnRzID1+IGVybGFuZ19saXN0CisJCQlsZXQgYXJndW1lbnRzID0gc3Vic3RpdHV0ZShhcmd1bWVudHMsIGVybGFuZ19saXN0LCAnQScsICdnJykKKwkJZW5kd2hpbGUKKwkJCisJCWxldCBsZW4gPSBzdHJsZW4oYXJndW1lbnRzKQorCQl3aGlsZSBwb3MgPCBsZW4gJiYgcG9zID4gLTEKKwkJCWxldCBhYyArPSAxCisJCQlsZXQgcG9zID0gbWF0Y2hlbmQoYXJndW1lbnRzLCAnLFxzKicsIHBvcykKKwkJZW5kd2hpbGUKKwkJcmV0dXJuIGFjCisJZW5kZnVuY3Rpb24KKworCSIgTWFpbiBmb2xkIGZ1bmN0aW9uCisJZnVuY3Rpb24gR2V0RXJsYW5nRm9sZChsbnVtKQorCQlsZXQgbG51bSA9IGE6bG51bQorCQlsZXQgbGluZSA9IGdldGxpbmUobG51bSkKKworCQlpZiBsaW5lID1+IHM6ZXJsYW5nX2Z1bl9lbmQKKwkJCXJldHVybiAnPDEnCisJCWVuZGlmCisKKwkJaWYgbGluZSA9fiBzOmVybGFuZ19mdW5fYmVnaW4gJiYgZm9sZGxldmVsKGxudW0gLSAxKSA9PSAxCisJCQlyZXR1cm4gJzEnCisJCWVuZGlmCisKKwkJaWYgbGluZSA9fiBzOmVybGFuZ19mdW5fYmVnaW4KKwkJCXJldHVybiAnPjEnCisJCWVuZGlmCisKKwkJcmV0dXJuICc9JworCWVuZGZ1bmN0aW9uCisKKwkiIEVybGFuZyBmb2xkIGRlc2NyaXB0aW9uIChmb2xkdGV4dCBmdW5jdGlvbikKKwlmdW5jdGlvbiBFcmxhbmdGb2xkVGV4dCgpCisJCWxldCBmb2xkbGVuID0gdjpmb2xkZW5kIC0gdjpmb2xkc3RhcnQKKwkJaWYgMSA8IGZvbGRsZW4KKwkJCWxldCBsaW5lcyA9ICdsaW5lcycKKwkJZWxzZQorCQkJbGV0IGxpbmVzID0gJ2xpbmUnCisJCWVuZGlmCisJCWxldCBsaW5lID0gZ2V0bGluZSh2OmZvbGRzdGFydCkKKwkJbGV0IG5hbWUgPSBzOkdldEZ1bk5hbWUobGluZSkKKwkJbGV0IGFyZ3VtZW50cyA9IHM6R2V0RnVuQXJncyhzdHJwYXJ0KGxpbmUsIHN0cmxlbihuYW1lKSksIHY6Zm9sZHN0YXJ0KQorCQlsZXQgYXJnY291bnQgPSBzOkNvdW50RnVuQXJncyhhcmd1bWVudHMpCisJCWxldCByZXR2YWwgPSAnKycgLiB2OmZvbGRkYXNoZXMgLiAnICcgLiBuYW1lIC4gJy8nIC4gYXJnY291bnQKKwkJbGV0IHJldHZhbCAuPSAnICgnIC4gZm9sZGxlbiAuICcgJyAuIGxpbmVzIC4gJyknCisJCXJldHVybiByZXR2YWwKKwllbmRmdW5jdGlvbgorZW5kaWYKKworY2FsbCBzOlNldEVybGFuZ09wdGlvbnMoKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi9sb2djaGVjay52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2xvZ2NoZWNrLnZpbQppbmRleCA3NjVmNmI0Li43ZDQ2NzFkIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2xvZ2NoZWNrLnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2xvZ2NoZWNrLnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCiAiIExhbmd1YWdlOiAgICBMb2djaGVjawogIiBNYWludGFpbmVyOiAgRGViaWFuIFZpbSBNYWludGFpbmVycyA8cGtnLXZpbS1tYWludGFpbmVyc0BsaXN0cy5hbGlvdGguZGViaWFuLm9yZz4KLSIgTGFzdCBDaGFuZ2U6IDIwMTAgSnVsIDI5Ci0iIExpY2Vuc2U6ICAgICBHTlUgR1BMLCB2ZXJzaW9uIDIuMAorIiBMYXN0IENoYW5nZTogMjAxMiBKYW4gMTUKKyIgTGljZW5zZTogICAgIFZpbSBMaWNlbnNlCiAiIFVSTDogaHR0cDovL2hnLmRlYmlhbi5vcmcvaGcvcGtnLXZpbS92aW0vZmlsZS91bnN0YWJsZS9ydW50aW1lL2Z0cGx1Z2luL2xvZ2NoZWNrLnZpbQogCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vcG9zdHNjci52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL3Bvc3RzY3IudmltCmluZGV4IDU2ZjRlMjQuLmY3Yzk2YTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vcG9zdHNjci52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9wb3N0c2NyLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCi0iIExhbmd1YWdlOiAgICAgUG9zdFNjcmlwdAotIiBNYWludGFpbmVyOiAgIE1pa2UgV2lsbGlhbXMgPG1yd0BlYW5kZW0uY28udWs+Ci0iIExhc3QgQ2hhbmdlOiAgMjd0aCBKdW5lIDIwMDIKKyIgTGFuZ3VhZ2U6CVBvc3RTY3JpcHQKKyIgTWFpbnRhaW5lcjoJTWlrZSBXaWxsaWFtcyA8bXJ3QGVhbmRlbS5jby51az4KKyIgTGFzdCBDaGFuZ2U6ICAxNnRoIEphbnVhcnkgMjAxMgogCiAiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIKIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQpAQCAtMTEsNiArMTEsOSBAQAogIiBEb24ndCBsb2FkIGFub3RoZXIgcGx1Z2luIGZvciB0aGlzIGJ1ZmZlcgogbGV0IGI6ZGlkX2Z0cGx1Z2luID0gMQogCitsZXQgczpjcG9fc2F2ZSA9ICZjcG8KK3NldCBjcG8mdmltCisKICIgUFMgY29tbWVudCBmb3JtYXR0aW5nCiBzZXRsb2NhbCBjb21tZW50cz1iOiUKIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQgZm9ybWF0b3B0aW9ucys9cm9sCkBAIC0yMSwxMSArMjQsMTIgQEAKICAgbGV0IGI6bWF0Y2hfd29yZHMgPSAnPDw6Pj4sXDxiZWdpblw+Olw8ZW5kXD4sXDxzYXZlXD46XDxyZXN0b3JlXD4sXDxnc2F2ZVw+Olw8Z3Jlc3RvcmVcPicKIGVuZGlmCiAKLXNldCBjcG8tPUMKLQogIiBEZWZpbmUgcGF0dGVybnMgZm9yIHRoZSBicm93c2UgZmlsZSBmaWx0ZXIKIGlmIGhhcygiZ3VpX3dpbjMyIikgJiYgIWV4aXN0cygiYjpicm93c2VmaWx0ZXIiKQogICBsZXQgYjpicm93c2VmaWx0ZXIgPSAiUG9zdFNjcmlwdCBGaWxlcyAoKi5wcylcdCoucHNcbiIgLgogICAgIFwgIkVQUyBGaWxlcyAoKi5lcHMpXHQqLmVwc1xuIiAuCiAgICAgXCAiQWxsIEZpbGVzICgqLiopXHQqLipcbiIKIGVuZGlmCisKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvZXJsYW5nLnZpbSBiL3J1bnRpbWUvaW5kZW50L2VybGFuZy52aW0KaW5kZXggNWNlM2Y4Mi4uOTMwZjVkMSAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvZXJsYW5nLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9lcmxhbmcudmltCkBAIC0xLDEyOCArMSwxNDQgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOiAgICAgRXJsYW5nCi0iIE1haW50YWluZXI6ICAgQ3NhYmEgSG9jaCA8Y3NhYmEuaG9jaEBnbWFpbC5jb20+Ci0iIENvbnRyaWJ1dG9yOiAgRWR3aW4gRmluZSA8ZWZpbmUxNDVfbm9zcGFtMDEgYXQgdXNhIGRvdCBuZXQ+Ci0iIExhc3QgQ2hhbmdlOiAgMjAwOCBNYXIgMTIKKyIgQXV0aG9yOiAgICAgICBDc2FiYSBIb2NoIDxjc2FiYS5ob2NoQGdtYWlsLmNvbT4KKyIgQ29udHJpYnV0b3JzOiBFZHdpbiBGaW5lIDxlZmluZTE0NV9ub3NwYW0wMSBhdCB1c2EgZG90IG5ldD4KKyIgICAgICAgICAgICAgICBQYXdlbCAna1RUJyBTYWxhdGEgPHJvY2twbGF5ZXIucGxAZ21haWwuY29tPgorIiAgICAgICAgICAgICAgIFJpY2FyZG8gQ2F0YWxpbmFzIEppbcOpbmV6IDxqaW1lbmV6cmlja0BnbWFpbC5jb20+CisiIExpY2Vuc2U6ICAgICAgVmltIGxpY2Vuc2UKKyIgVmVyc2lvbjogICAgICAyMDExLzA5LzA2CiAKLSIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgorIiBPbmx5IGxvYWQgdGhpcyBpbmRlbnQgZmlsZSB3aGVuIG5vIG90aGVyIHdhcyBsb2FkZWQKIGlmIGV4aXN0cygiYjpkaWRfaW5kZW50IikKLSAgZmluaXNoCisgICAgZmluaXNoCitlbHNlCisgICAgbGV0IGI6ZGlkX2luZGVudCA9IDEKIGVuZGlmCi1sZXQgYjpkaWRfaW5kZW50ID0gMQogCiBzZXRsb2NhbCBpbmRlbnRleHByPUVybGFuZ0luZGVudCgpCiBzZXRsb2NhbCBpbmRlbnRrZXlzKz09YWZ0ZXIsPWVuZCw9Y2F0Y2gsPSksPV0sPX0KIAotIiBPbmx5IGRlZmluZSB0aGUgZnVuY3Rpb25zIG9uY2UuCisiIE9ubHkgZGVmaW5lIHRoZSBmdW5jdGlvbnMgb25jZQogaWYgZXhpc3RzKCIqRXJsYW5nSW5kZW50IikKLSAgIGZpbmlzaAorICAgIGZpbmlzaAogZW5kaWYKIAotIiBUaGUgZnVuY3Rpb24gZ28gdGhyb3VnaCB0aGUgd2hvbGUgbGluZSwgYW5hbHlzZXMgaXQgYW5kIHNldHMgdGhlIGluZGVudGF0aW9uCi0iIChpbmQgdmFyaWFibGUpLgotIiBsOiB0aGUgbnVtYmVyIG9mIHRoZSBsaW5lIHRvIGJlIGV4YW1pbmVkLgotZnVuY3Rpb24gczpFcmxhbmdJbmRlbnRBdGZlckxpbmUobCkKLSAgICBsZXQgaSA9IDAgIiB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGluIHRoZSBsaW5lCi0gICAgbGV0IGxlbmd0aCA9IHN0cmxlbihhOmwpICIgdGhlIGxlbmd0aCBvZiB0aGUgbGluZQorIiBUaGUgZnVuY3Rpb24gZ29lcyB0aHJvdWdoIHRoZSB3aG9sZSBsaW5lLCBhbmFseXNlcyBpdCBhbmQgcmV0dXJucyB0aGUKKyIgaW5kZW50YXRpb24gbGV2ZWwuCisiCisiIGxpbmU6IHRoZSBsaW5lIHRvIGJlIGV4YW1pbmVkCisiIHJldHVybjogdGhlIGluZGVudGF0aW9uIGxldmVsIG9mIHRoZSBleGFtaW5lZCBsaW5lCitmdW5jdGlvbiBzOkVybGFuZ0luZGVudEFmdGVyTGluZShsaW5lKQorICAgIGxldCBsaW5lbGVuID0gc3RybGVuKGE6bGluZSkgIiB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lCisgICAgbGV0IGkgICAgICAgPSAwICIgdGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpbiB0aGUgbGluZQogICAgIGxldCBpbmQgPSAwICIgaG93IG11Y2ggc2hvdWxkIGJlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGluZGVudGF0aW9uIG9mCiAgICAgICAgICAgICAgICAgIiB0aGUgY3VycmVudCBsaW5lIGFuZCB0aGUgaW5kZW50YXRpb24gb2YgdGhlIG5leHQgbGluZT8KICAgICAgICAgICAgICAgICAiIGUuZy4gKzE6IHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgbmV4dCBsaW5lIHNob3VsZCBiZSBlcXVhbCB0bwogICAgICAgICAgICAgICAgICIgdGhlIGluZGVudGF0aW9uIG9mIHRoZSBjdXJyZW50IGxpbmUgcGx1cyBvbmUgc2hpZnR3aWR0aAotICAgIGxldCBsYXN0RnVuID0gMCAiIHRoZSBsYXN0IHRva2VuIHdhcyBhICdmdW4nCi0gICAgbGV0IGxhc3RSZWNlaXZlID0gMCAiIHRoZSBsYXN0IHRva2VuIHdhcyBhICdyZWNlaXZlJzsgbmVlZGVkIGZvciAnYWZ0ZXInCi0gICAgbGV0IGxhc3RIYXNoTWFyayA9IDAgIiB0aGUgbGFzdCB0b2tlbiB3YXMgYSAnaGFzaG1hcmsnCisgICAgbGV0IGxhc3RfZnVuICAgICAgPSAwICIgdGhlIGxhc3QgdG9rZW4gd2FzIGEgJ2Z1bicKKyAgICBsZXQgbGFzdF9yZWNlaXZlICA9IDAgIiB0aGUgbGFzdCB0b2tlbiB3YXMgYSAncmVjZWl2ZSc7IG5lZWRlZCBmb3IgJ2FmdGVyJworICAgIGxldCBsYXN0X2hhc2hfc3ltID0gMCAiIHRoZSBsYXN0IHRva2VuIHdhcyBhICcjJwogCi0gICAgd2hpbGUgMDw9IGkgJiYgaSA8IGxlbmd0aAorICAgICIgSWdub3JlIGNvbW1lbnRzCisgICAgaWYgYTpsaW5lID1+IyAnXlxzKiUnCisgICAgICAgIHJldHVybiAwCisgICAgZW5kaWYKIAorICAgICIgUGFydGlhbCBmdW5jdGlvbiBoZWFkIHdoZXJlIHRoZSBndWFyZCBpcyBtaXNzaW5nCisgICAgaWYgYTpsaW5lID1+IyAiXFwoXlxcbFtbOmFsbnVtOl1fXSpcXClcXHxcXCheJ1teJ11cXCsnXFwpKCIgJiYgYTpsaW5lICF+IyAnLT4nCisgICAgICAgIHJldHVybiAyCisgICAgZW5kaWYKKworICAgICIgVGhlIG1pc3NpbmcgZ3VhcmQgZnJvbSB0aGUgc3BsaXQgZnVuY3Rpb24gaGVhZAorICAgIGlmIGE6bGluZSA9fiMgJ15ccyp3aGVuXHNcKy4qLT4nCisgICAgICAgIHJldHVybiAtMQorICAgIGVuZGlmCisKKyAgICB3aGlsZSAwPD1pICYmIGk8bGluZWxlbgogICAgICAgICAiIG06IHRoZSBuZXh0IHZhbHVlIG9mIHRoZSBpCi0gICAgICAgIGlmIGE6bFtpXSA9PSAnJScKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2VpZiBhOmxbaV0gPT0gJyInCi0gICAgICAgICAgICBsZXQgbSA9IG1hdGNoZW5kKGE6bCwnIlwlKFteIlxcXVx8XFwuXCkqIicsaSkKLSAgICAgICAgICAgIGxldCBsYXN0UmVjZWl2ZSA9IDAKLSAgICAgICAgZWxzZWlmIGE6bFtpXSA9PSAiJyIKLSAgICAgICAgICAgIGxldCBtID0gbWF0Y2hlbmQoYTpsLCInW14nXSonIixpKQotICAgICAgICAgICAgbGV0IGxhc3RSZWNlaXZlID0gMAotICAgICAgICBlbHNlaWYgYTpsW2ldID1+IyAiW2Etel0iCi0gICAgICAgICAgICBsZXQgbSA9IG1hdGNoZW5kKGE6bCwiLltbOmFsbnVtOl1fXSoiLGkpCi0gICAgICAgICAgICBpZiBsYXN0RnVuCisgICAgICAgIGlmIGE6bGluZVtpXSA9PSAnIicKKyAgICAgICAgICAgIGxldCBtID0gbWF0Y2hlbmQoYTpsaW5lLCciXCUoW14iXFxdXHxcXC5cKSoiJyxpKQorICAgICAgICAgICAgbGV0IGxhc3RfcmVjZWl2ZSA9IDAKKyAgICAgICAgZWxzZWlmIGE6bGluZVtpXSA9PSAiJyIKKyAgICAgICAgICAgIGxldCBtID0gbWF0Y2hlbmQoYTpsaW5lLCInW14nXSonIixpKQorICAgICAgICAgICAgbGV0IGxhc3RfcmVjZWl2ZSA9IDAKKyAgICAgICAgZWxzZWlmIGE6bGluZVtpXSA9fiMgIlthLXpdIgorICAgICAgICAgICAgbGV0IG0gPSBtYXRjaGVuZChhOmxpbmUsIi5bWzphbG51bTpdX10qIixpKQorICAgICAgICAgICAgaWYgbGFzdF9mdW4KICAgICAgICAgICAgICAgICBsZXQgaW5kID0gaW5kIC0gMQotICAgICAgICAgICAgICAgIGxldCBsYXN0RnVuID0gMAotICAgICAgICAgICAgICAgIGxldCBsYXN0UmVjZWl2ZSA9IDAKLSAgICAgICAgICAgIGVsc2VpZiBhOmxbKGkpOihtLTEpXSA9fiMgJ15cJShjYXNlXHxpZlx8dHJ5XCkkJworICAgICAgICAgICAgICAgIGxldCBsYXN0X2Z1biA9IDAKKyAgICAgICAgICAgICAgICBsZXQgbGFzdF9yZWNlaXZlID0gMAorICAgICAgICAgICAgZWxzZWlmIGE6bGluZVsoaSk6KG0tMSldID1+IyAnXlwlKGNhc2VcfGlmXHx0cnlcKSQnCiAgICAgICAgICAgICAgICAgbGV0IGluZCA9IGluZCArIDEKLSAgICAgICAgICAgIGVsc2VpZiBhOmxbKGkpOihtLTEpXSA9fiMgJ15yZWNlaXZlJCcKKyAgICAgICAgICAgIGVsc2VpZiBhOmxpbmVbKGkpOihtLTEpXSA9fiMgJ15yZWNlaXZlJCcKICAgICAgICAgICAgICAgICBsZXQgaW5kID0gaW5kICsgMQotICAgICAgICAgICAgICAgIGxldCBsYXN0UmVjZWl2ZSA9IDEKLSAgICAgICAgICAgIGVsc2VpZiBhOmxbKGkpOihtLTEpXSA9fiMgJ15iZWdpbiQnCisgICAgICAgICAgICAgICAgbGV0IGxhc3RfcmVjZWl2ZSA9IDEKKyAgICAgICAgICAgIGVsc2VpZiBhOmxpbmVbKGkpOihtLTEpXSA9fiMgJ15iZWdpbiQnCiAgICAgICAgICAgICAgICAgbGV0IGluZCA9IGluZCArIDIKLSAgICAgICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCi0gICAgICAgICAgICBlbHNlaWYgYTpsWyhpKToobS0xKV0gPX4jICdeZW5kJCcKKyAgICAgICAgICAgICAgICBsZXQgbGFzdF9yZWNlaXZlID0gMAorICAgICAgICAgICAgZWxzZWlmIGE6bGluZVsoaSk6KG0tMSldID1+IyAnXmVuZCQnCiAgICAgICAgICAgICAgICAgbGV0IGluZCA9IGluZCAtIDIKLSAgICAgICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCi0gICAgICAgICAgICBlbHNlaWYgYTpsWyhpKToobS0xKV0gPX4jICdeYWZ0ZXIkJwotICAgICAgICAgICAgICAgIGlmIGxhc3RSZWNlaXZlID09IDAKKyAgICAgICAgICAgICAgICBsZXQgbGFzdF9yZWNlaXZlID0gMAorICAgICAgICAgICAgZWxzZWlmIGE6bGluZVsoaSk6KG0tMSldID1+IyAnXmFmdGVyJCcKKyAgICAgICAgICAgICAgICBpZiBsYXN0X3JlY2VpdmUgPT0gMAogICAgICAgICAgICAgICAgICAgICBsZXQgaW5kID0gaW5kIC0gMQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbGV0IGluZCA9IGluZCArIDAKLSAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCi0gICAgICAgICAgICBlbHNlaWYgYTpsWyhpKToobS0xKV0gPX4jICdeZnVuJCcKKyAgICAgICAgICAgICAgICBlbmRpZgorICAgICAgICAgICAgICAgIGxldCBsYXN0X3JlY2VpdmUgPSAwCisgICAgICAgICAgICBlbHNlaWYgYTpsaW5lWyhpKToobS0xKV0gPX4jICdeZnVuJCcKICAgICAgICAgICAgICAgICBsZXQgaW5kID0gaW5kICsgMQotICAgICAgICAgICAgICAgIGxldCBsYXN0RnVuID0gMQotICAgICAgICAgICAgICAgIGxldCBsYXN0UmVjZWl2ZSA9IDAKKyAgICAgICAgICAgICAgICBsZXQgbGFzdF9mdW4gPSAxCisgICAgICAgICAgICAgICAgbGV0IGxhc3RfcmVjZWl2ZSA9IDAKICAgICAgICAgICAgIGVuZGlmCi0gICAgICAgIGVsc2VpZiBhOmxbaV0gPX4jICJbQS1aX10iCi0gICAgICAgICAgICBsZXQgbSA9IG1hdGNoZW5kKGE6bCwiLltbOmFsbnVtOl1fXSoiLGkpCi0gICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCi0gICAgICAgIGVsc2VpZiBhOmxbaV0gPT0gJyQnCisgICAgICAgIGVsc2VpZiBhOmxpbmVbaV0gPX4jICJbQS1aX10iCisgICAgICAgICAgICBsZXQgbSA9IG1hdGNoZW5kKGE6bGluZSwiLltbOmFsbnVtOl1fXSoiLGkpCisgICAgICAgICAgICBsZXQgbGFzdF9yZWNlaXZlID0gMAorICAgICAgICBlbHNlaWYgYTpsaW5lW2ldID09ICckJwogICAgICAgICAgICAgbGV0IG0gPSBpKzIKLSAgICAgICAgICAgIGxldCBsYXN0UmVjZWl2ZSA9IDAKLSAgICAgICAgZWxzZWlmIGE6bFtpXSA9PSAiLiIgJiYgKGkrMT49bGVuZ3RoIHx8IGE6bFtpKzFdIX4gIlswLTldIikKKyAgICAgICAgICAgIGxldCBsYXN0X3JlY2VpdmUgPSAwCisgICAgICAgIGVsc2VpZiBhOmxpbmVbaV0gPT0gIi4iICYmIChpKzE+PWxpbmVsZW4gfHwgYTpsaW5lW2krMV0hfiAiWzAtOV0iKQogICAgICAgICAgICAgbGV0IG0gPSBpKzEKLSAgICAgICAgICAgIGlmIGxhc3RIYXNoTWFyawotICAgICAgICAgICAgICAgIGxldCBsYXN0SGFzaE1hcmsgPSAwCisgICAgICAgICAgICBpZiBsYXN0X2hhc2hfc3ltCisgICAgICAgICAgICAgICAgbGV0IGxhc3RfaGFzaF9zeW0gPSAwCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbGV0IGluZCA9IGluZCAtIDEKLSAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgbGV0IGxhc3RSZWNlaXZlID0gMAotICAgICAgICBlbHNlaWYgYTpsW2ldID09ICctJyAmJiAoaSsxPGxlbmd0aCAmJiBhOmxbaSsxXT09Jz4nKQorICAgICAgICAgICAgZW5kaWYKKyAgICAgICAgICAgIGxldCBsYXN0X3JlY2VpdmUgPSAwCisgICAgICAgIGVsc2VpZiBhOmxpbmVbaV0gPT0gJy0nICYmIChpKzE8bGluZWxlbiAmJiBhOmxpbmVbaSsxXT09Jz4nKQogICAgICAgICAgICAgbGV0IG0gPSBpKzIKICAgICAgICAgICAgIGxldCBpbmQgPSBpbmQgKyAxCi0gICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCi0gICAgICAgIGVsc2VpZiBhOmxbaV0gPT0gJzsnCisgICAgICAgICAgICBsZXQgbGFzdF9yZWNlaXZlID0gMAorICAgICAgICBlbHNlaWYgYTpsaW5lW2ldID09ICc7JyAmJiBhOmxpbmVbKGkpOihsaW5lbGVuKV0gIX4jICcuKi0+LionCiAgICAgICAgICAgICBsZXQgbSA9IGkrMQogICAgICAgICAgICAgbGV0IGluZCA9IGluZCAtIDEKLSAgICAgICAgICAgIGxldCBsYXN0UmVjZWl2ZSA9IDAKLSAgICAgICAgZWxzZWlmIGE6bFtpXSA9PSAnIycKKyAgICAgICAgICAgIGxldCBsYXN0X3JlY2VpdmUgPSAwCisgICAgICAgIGVsc2VpZiBhOmxpbmVbaV0gPT0gJyMnCiAgICAgICAgICAgICBsZXQgbSA9IGkrMQotICAgICAgICAgICAgbGV0IGxhc3RIYXNoTWFyayA9IDEKLSAgICAgICAgZWxzZWlmIGE6bFtpXSA9fiMgJ1soe1tdJworICAgICAgICAgICAgbGV0IGxhc3RfaGFzaF9zeW0gPSAxCisgICAgICAgIGVsc2VpZiBhOmxpbmVbaV0gPX4jICdbKHtbXScKICAgICAgICAgICAgIGxldCBtID0gaSsxCiAgICAgICAgICAgICBsZXQgaW5kID0gaW5kICsgMQotICAgICAgICAgICAgbGV0IGxhc3RGdW4gPSAwCi0gICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCi0gICAgICAgICAgICBsZXQgbGFzdEhhc2hNYXJrID0gMAotICAgICAgICBlbHNlaWYgYTpsW2ldID1+IyAnWyl9XF1dJworICAgICAgICAgICAgbGV0IGxhc3RfZnVuID0gMAorICAgICAgICAgICAgbGV0IGxhc3RfcmVjZWl2ZSA9IDAKKyAgICAgICAgICAgIGxldCBsYXN0X2hhc2hfc3ltID0gMAorICAgICAgICBlbHNlaWYgYTpsaW5lW2ldID1+IyAnWyl9XF1dJwogICAgICAgICAgICAgbGV0IG0gPSBpKzEKICAgICAgICAgICAgIGxldCBpbmQgPSBpbmQgLSAxCi0gICAgICAgICAgICBsZXQgbGFzdFJlY2VpdmUgPSAwCisgICAgICAgICAgICBsZXQgbGFzdF9yZWNlaXZlID0gMAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBsZXQgbSA9IGkrMQogICAgICAgICBlbmRpZgogCiAgICAgICAgIGxldCBpID0gbQotCiAgICAgZW5kd2hpbGUKIAogICAgIHJldHVybiBpbmQKLQogZW5kZnVuY3Rpb24KIAogZnVuY3Rpb24gczpGaW5kUHJldk5vbkJsYW5rTm9uQ29tbWVudChsbnVtKQogICAgIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKGE6bG51bSkKICAgICBsZXQgbGluZSA9IGdldGxpbmUobG51bSkKLSAgICAiIGNvbnRpbnVlIHRvIHNlYXJjaCBhYm92ZSBpZiB0aGUgY3VycmVudCBsaW5lIGJlZ2lucyB3aXRoIGEgJyUnCisgICAgIiBDb250aW51ZSB0byBzZWFyY2ggYWJvdmUgaWYgdGhlIGN1cnJlbnQgbGluZSBiZWdpbnMgd2l0aCBhICclJwogICAgIHdoaWxlIGxpbmUgPX4jICdeXHMqJS4qJCcKICAgICAgICAgbGV0IGxudW0gPSBwcmV2bm9uYmxhbmsobG51bSAtIDEpCiAgICAgICAgIGlmIDAgPT0gbG51bQpAQCAtMTMzLDEyICsxNDksMjAgQEAKICAgICByZXR1cm4gbG51bQogZW5kZnVuY3Rpb24KIAotZnVuY3Rpb24gRXJsYW5nSW5kZW50KCkKKyIgVGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGluZGVudGF0aW9uIGxldmVsIG9mIHRoZSBsaW5lIGFkanVzdGVkIHRvIGEgbXV0aXBsZQorIiBvZiAnc2hpZnR3aWR0aCcgb3B0aW9uLgorIgorIiBsbnVtOiBsaW5lIG51bWJlcgorIiByZXR1cm46IHRoZSBpbmRlbnRhdGlvbiBsZXZlbCBvZiB0aGUgbGluZQorZnVuY3Rpb24gczpHZXRMaW5lSW5kZW50KGxudW0pCisgICAgcmV0dXJuIChpbmRlbnQoYTpsbnVtKSAvICZzdykgKiAmc3cKK2VuZGZ1bmN0aW9uCiAKLSAgICAiIEZpbmQgYSBub24tYmxhbmsgbGluZSBhYm92ZSB0aGUgY3VycmVudCBsaW5lLgorZnVuY3Rpb24gRXJsYW5nSW5kZW50KCkKKyAgICAiIEZpbmQgYSBub24tYmxhbmsgbGluZSBhYm92ZSB0aGUgY3VycmVudCBsaW5lCiAgICAgbGV0IGxudW0gPSBwcmV2bm9uYmxhbmsodjpsbnVtIC0gMSkKIAotICAgICIgSGl0IHRoZSBzdGFydCBvZiB0aGUgZmlsZSwgdXNlIHplcm8gaW5kZW50LgorICAgICIgSGl0IHRoZSBzdGFydCBvZiB0aGUgZmlsZSwgdXNlIHplcm8gaW5kZW50CiAgICAgaWYgbG51bSA9PSAwCiAgICAgICAgIHJldHVybiAwCiAgICAgZW5kaWYKQEAgLTE0Niw5ICsxNzAsMTQgQEAKICAgICBsZXQgcHJldmxpbmUgPSBnZXRsaW5lKGxudW0pCiAgICAgbGV0IGN1cnJsaW5lID0gZ2V0bGluZSh2OmxudW0pCiAKLSAgICBsZXQgaW5kID0gaW5kZW50KGxudW0pICsgJnN3ICogczpFcmxhbmdJbmRlbnRBdGZlckxpbmUocHJldmxpbmUpCisgICAgbGV0IGluZF9hZnRlciA9IHM6RXJsYW5nSW5kZW50QWZ0ZXJMaW5lKHByZXZsaW5lKQorICAgIGlmIGluZF9hZnRlciAhPSAwCisgICAgICAgIGxldCBpbmQgPSBzOkdldExpbmVJbmRlbnQobG51bSkgKyBpbmRfYWZ0ZXIgKiAmc3cKKyAgICBlbHNlCisgICAgICAgIGxldCBpbmQgPSBpbmRlbnQobG51bSkgKyBpbmRfYWZ0ZXIgKiAmc3cKKyAgICBlbmRpZgogCi0gICAgIiBzcGVjaWFsIGNhc2VzOgorICAgICIgU3BlY2lhbCBjYXNlczoKICAgICBpZiBwcmV2bGluZSA9fiMgJ15ccypcJShhZnRlclx8ZW5kXClcPicKICAgICAgICAgbGV0IGluZCA9IGluZCArIDIqJnN3CiAgICAgZW5kaWYKQEAgLTE1OCw4ICsxODcsOCBAQAogICAgIGlmIGN1cnJsaW5lID1+IyAnXlxzKmFmdGVyXD4nCiAgICAgICAgIGxldCBwbG51bSA9IHM6RmluZFByZXZOb25CbGFua05vbkNvbW1lbnQodjpsbnVtLTEpCiAgICAgICAgIGlmIGdldGxpbmUocGxudW0pID1+IyAnXlteJV0qXDxyZWNlaXZlXD5ccypcJSglLipcKVw9JCcKLSAgICAgICAgICAgIGxldCBpbmQgPSBpbmQgLSAxKiZzdwogICAgICAgICAgICAgIiBJZiB0aGUgJ3JlY2VpdmUnIGlzIG5vdCBpbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSAnYWZ0ZXInCisgICAgICAgICAgICBsZXQgaW5kID0gaW5kIC0gMSomc3cKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbGV0IGluZCA9IGluZCAtIDIqJnN3CiAgICAgICAgIGVuZGlmCkBAIC0xODEsMjYgKzIxMCw0IEBACiAgICAgICAgIGxldCBpbmQgPSAwCiAgICAgZW5kaWYKICAgICByZXR1cm4gaW5kCi0KIGVuZGZ1bmN0aW9uCi0KLSIgVE9ETzoKLSIgCi0iIGYoKSAtPgotIiAgICAgeCgiZm9vCi0iICAgICAgICAgYmFyIikKLSIgICAgICAgICAsCi0iICAgICAgICAgYmFkX2luZGVudC4KLSIKLSIgZnVuCi0iICAgICBpbml0LzAsCi0iICAgICBiYWRfaW5kZW50Ci0iCi0iICAgICAjcmVjCi0iICAgICAuZmllbGQsCi0iIGJhZF9pbmRlbnQKLSIKLSIgY2FzZSBYIG9mCi0iICAgICAxIHdoZW4gQTsgQiAtPgotIiAgICAgYmFkX2luZGVudAotCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9qYXZhLnZpbSBiL3J1bnRpbWUvaW5kZW50L2phdmEudmltCmluZGV4IGZhY2JkYmYuLjNjNDhkM2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2phdmEudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2phdmEudmltCkBAIC0xLDcgKzEsMTIgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOglKYXZhCi0iIE1haW50YWluZXI6CVRvYnkgQWxsc29wcCA8dG9ieS5hbGxzb3BwQHBlYWNlLmNvbT4gKHJlc2lnbmVkKQotIiBMYXN0IENoYW5nZToJMjAwNSBNYXIgMjgKKyIgUHJldmlvdXMgTWFpbnRhaW5lcjogVG9ieSBBbGxzb3BwIDx0b2J5LmFsbHNvcHBAcGVhY2UuY29tPgorIiBDdXJyZW50IE1haW50YWluZXI6IEhvbmcgWHUgPHh1aGRldkBnbWFpbC5jb20+CisiIExhc3QgQ2hhbmdlOgkyMDEyIEphbiAyMAorIiBWZXJzaW9uOiAxLjAKKyIgTGljZW5zZTogU2FtZSBhcyBWaW0uCisiIENvcHlyaWdodCAoYykgMjAxMiBIb25nIFh1CisiIEJlZm9yZSAyMDEyLCB0aGlzIGZpbGUgaXMgbWFpbnRhaW5lZCBieSBUb2J5IEFsbHNvcHAuCiAKICIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgogaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQpAQCAtNjAsNiArNjUsMTMgQEAKIAogICAiIGZpbmQgc3RhcnQgb2YgcHJldmlvdXMgbGluZSwgaW4gY2FzZSBpdCB3YXMgYSBjb250aW51YXRpb24gbGluZQogICBsZXQgbG51bSA9IFNraXBKYXZhQmxhbmtzQW5kQ29tbWVudHModjpsbnVtIC0gMSkKKworICAiIElmIHRoZSBwcmV2aW91cyBsaW5lIHN0YXJ0cyB3aXRoICdAJywgd2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgaW5kZW50IGFzCisgICIgdGhlIHByZXZpb3VzIG9uZQorICBpZiBnZXRsaW5lKGxudW0pID1+ICdeXHMqQFxTXCtccyokJworICAgIHJldHVybiBpbmRlbnQobG51bSkKKyAgZW5kaWYKKwogICBsZXQgcHJldiA9IGxudW0KICAgd2hpbGUgcHJldiA+IDEKICAgICBsZXQgbmV4dF9wcmV2ID0gU2tpcEphdmFCbGFua3NBbmRDb21tZW50cyhwcmV2IC0gMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL2dldHNjcmlwdFBsdWdpbi52aW0gYi9ydW50aW1lL3BsdWdpbi9nZXRzY3JpcHRQbHVnaW4udmltCmluZGV4IDFkNjczODIuLjI2OTdjZGIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL2dldHNjcmlwdFBsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vZ2V0c2NyaXB0UGx1Z2luLnZpbQpAQCAtMTksNyArMTksNyBAQAogIGVuZGlmCiAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX2dldHNjcmlwdFBsdWdpbiA9ICJ2MzMiCitsZXQgZzpsb2FkZWRfZ2V0c2NyaXB0UGx1Z2luID0gInYzNCIKIGxldCBzOmtlZXBjcG8gICAgICAgICAgICAgICAgPSAmY3BvCiBzZXQgY3BvJnZpbQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi90YXJQbHVnaW4udmltIGIvcnVudGltZS9wbHVnaW4vdGFyUGx1Z2luLnZpbQppbmRleCAxOTdhYjM1Li4wMWRkZDQ4IDEwMDY0NAotLS0gYS9ydW50aW1lL3BsdWdpbi90YXJQbHVnaW4udmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL3RhclBsdWdpbi52aW0KQEAgLTE0LDcgKzE0LDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX3RhclBsdWdpbiIpCiAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX3RhclBsdWdpbiA9ICJ2MjciCitsZXQgZzpsb2FkZWRfdGFyUGx1Z2luID0gInYyOCIKIGxldCBzOmtlZXBjcG8gICAgICAgICAgPSAmY3BvCiBzZXQgY3BvJnZpbQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi92aW1iYWxsUGx1Z2luLnZpbSBiL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltCmluZGV4IGJkZmNhMDEuLjU5Mjc5NzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGxQbHVnaW4udmltCkBAIC0xNiw3ICsxNiw3IEBACiBpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF92aW1iYWxsUGx1Z2luIikKICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfdmltYmFsbFBsdWdpbiA9ICJ2MzQiCitsZXQgZzpsb2FkZWRfdmltYmFsbFBsdWdpbiA9ICJ2MzUiCiBsZXQgczprZWVwY3BvICAgICAgICAgICAgICA9ICZjcG8KIHNldCBjcG8mdmltCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL3ppcFBsdWdpbi52aW0gYi9ydW50aW1lL3BsdWdpbi96aXBQbHVnaW4udmltCmluZGV4IGE1ZTFhZTQuLmViYjY0MjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGx1Z2luL3ppcFBsdWdpbi52aW0KKysrIGIvcnVudGltZS9wbHVnaW4vemlwUGx1Z2luLnZpbQpAQCAtMSw5ICsxLDkgQEAKICIgemlwUGx1Z2luLnZpbTogSGFuZGxlcyBicm93c2luZyB6aXBmaWxlcwogIiAgICAgICAgICAgIFBMVUdJTiBQT1JUSU9OCi0iIERhdGU6CQkJT2N0IDA1LCAyMDA3CisiIERhdGU6CQkJQXVnIDE1LCAyMDExCiAiIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0tTk9TUEFNPgogIiBMaWNlbnNlOgkJVmltIExpY2Vuc2UgIChzZWUgdmltJ3MgOmhlbHAgbGljZW5zZSkKLSIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDIwMDUsMjAwNiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQorIiBDb3B5cmlnaHQ6ICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDExIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiB7e3sxCiAiICAgICAgICAgICAgICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCB0byB1c2UgYW5kIGRpc3RyaWJ1dGUgdGhpcyBjb2RlLAogIiAgICAgICAgICAgICAgIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMgY29weXJpZ2h0CiAiICAgICAgICAgICAgICAgbm90aWNlIGlzIGNvcGllZCB3aXRoIGl0LiBMaWtlIGFueXRoaW5nIGVsc2UgdGhhdCdzIGZyZWUsCkBAIC0yMCw3ICsyMCw3IEBACiBpZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF96aXBQbHVnaW4iKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF96aXBQbHVnaW4gPSAidjI0IgorbGV0IGc6bG9hZGVkX3ppcFBsdWdpbiA9ICJ2MjUiCiBsZXQgczprZWVwY3BvICAgICAgICAgID0gJmNwbwogc2V0IGNwbyZ2aW0KIApAQCAtNDAsNyArNDAsNyBAQAogICBhdSBGaWxlV3JpdGVDbWQgemlwZmlsZToqLyoJY2FsbCB6aXAjV3JpdGUoZXhwYW5kKCI8YW1hdGNoPiIpKQogIGVuZGlmCiAKLSBhdSBCdWZSZWFkQ21kICAgKi56aXAsKi5qYXIsKi54cGksKi53YXIsKi5lYXIsKi5jZWx6aXAJCWNhbGwgemlwI0Jyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCisgYXUgQnVmUmVhZENtZCAgICouemlwLCouamFyLCoueHBpLCoud2FyLCouZWFyLCouY2VsemlwLCoub3h0CQljYWxsIHppcCNCcm93c2UoZXhwYW5kKCI8YW1hdGNoPiIpKQogYXVncm91cCBFTkQKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZ2EvZ2FfSUUuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZ2EvZ2FfSUUuZGlmZgppbmRleCAzZTMwMWI3Li4yYTY0ZDk5IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYKKysrIGIvcnVudGltZS9zcGVsbC9nYS9nYV9JRS5kaWZmCkBAIC0yOSw3ICsyOSw3IEBACiArICMgc291bmRzbGlrZSBtYXBwaW5nIGZyb20gQXNwZWxsCiArICMgQXNwZWxsIHBob25ldGljcyBmb3IgSXJpc2gsIGJ5IEtldmluIFNjYW5uZWxsIDxzY2FubmVsbEBzbHUuZWR1PgogKyAjIENvcHlyaWdodCAyMDAyLCAyMDAzIEtldmluIFAuIFNjYW5uZWxsLCBkaXN0cmlidXRlZCB1bmRlciBHTlUgR1BMCi0rICMgdmVyc2lvbiAyLjAKKysgIyB2ZXJzaW9uIDIuMCBvciB0aGUgVmltIGxpY2Vuc2UgKGF0dHJpYnV0aW9uIGJ5IEtldmluIFNjYW5uZWxsLCBKYW4gMjAxMikKICsgCiArIFNBTCBmb2xsb3d1cCAwICAgICAgICAgICAgICAgICAgICAjIGVsc2UgYnJlYWtzIFFVXiwgZS5nLgogKyBTQUwgY29sbGFwc2VfcmVzdWx0IDEgICAgICAgICAgICAgIyBubyBkb3VibGUgbGV0dGVycyBpbiByZXN1bHRpbmcgc3RyaW5ncwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmIGIvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmCmluZGV4IGVjNDc5N2MuLjM2YWExMmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZ2QvZ2RfR0IuZGlmZgorKysgYi9ydW50aW1lL3NwZWxsL2dkL2dkX0dCLmRpZmYKQEAgLTI1LDcgKzI1LDcgQEAKICsgIyBzb3VuZHNsaWtlIG1hcHBpbmcgZnJvbSBBc3BlbGwKICsgIyBBc3BlbGwgcGhvbmV0aWNzIGZvciBJcmlzaCwgYnkgS2V2aW4gU2Nhbm5lbGwgPHNjYW5uZWxsQHNsdS5lZHU+CiArICMgQ29weXJpZ2h0IDIwMDIsIDIwMDMgS2V2aW4gUC4gU2Nhbm5lbGwsIGRpc3RyaWJ1dGVkIHVuZGVyIEdOVSBHUEwKLSsgIyB2ZXJzaW9uIDIuMAorKyAjIHZlcnNpb24gMi4wIG9yIHRoZSBWaW0gbGljZW5zZSAoYXR0cmlidXRpb24gYnkgS2V2aW4gU2Nhbm5lbGwsIEphbiAyMDEyKQogKyAKICsgU0FMIGZvbGxvd3VwIDAgICAgICAgICAgICAgICAgICAgICMgZWxzZSBicmVha3MgUVVeLCBlLmcuCiArIFNBTCBjb2xsYXBzZV9yZXN1bHQgMSAgICAgICAgICAgICAjIG5vIGRvdWJsZSBsZXR0ZXJzIGluIHJlc3VsdGluZyBzdHJpbmdzCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3N2L3N2X1NFLmRpZmYgYi9ydW50aW1lL3NwZWxsL3N2L3N2X1NFLmRpZmYKaW5kZXggMzUyNjE3NS4uNDA4OWE2NiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmCisrKyBiL3J1bnRpbWUvc3BlbGwvc3Yvc3ZfU0UuZGlmZgpAQCAtMjcsNyArMjcsNyBAQAogKyAjIHNvdW5kc2xpa2UgbWFwcGluZyBmcm9tIEFzcGVsbAogKyAjIHN3ZWRpc2hfcGhvbmV0LmRhdCAtIFN3ZWRpc2ggcGhvbmV0aWMgdHJhbnNmb3JtYXRpb24gcnVsZXMgZm9yIGFzcGVsbAogKyAjIENvcHlyaWdodCAoQykgMjAwMCAgTWFydGluIE5vcmLkY2sgIDxkOTVtYmFja0BkdGVrLmNoYWxtZXJzLnNlPgotKyAjIGRpc3RyaWJ1dGVkIHVuZGVyIEdOVSBHUEwKKysgIyBkaXN0cmlidXRlZCB1bmRlciBHTlUgR1BMIG9yIHRoZSBWaW0gbGljZW5zZSwgYXQgeW91ciBjaG9pY2UuCiArICMgdmVyc2lvbiAwLjIKICsgCiArIFNBTCAmCSYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2MudmltIGIvcnVudGltZS9zeW50YXgvYy52aW0KaW5kZXggN2FmMDA2Ny4uNDU1MzUxOSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvYy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvYy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJQwogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAxMiBKYW4gMDQKKyIgTGFzdCBDaGFuZ2U6CTIwMTIgSmFuIDE0CiAKICIgUXVpdCB3aGVuIGEgKGN1c3RvbSkgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQpAQCAtNjIsNiArNjIsMjUgQEAKIHN5biBtYXRjaAljU3BlY2lhbENoYXJhY3RlciBkaXNwbGF5ICInXFx4XHhcezEsMn0nIgogc3luIG1hdGNoCWNTcGVjaWFsQ2hhcmFjdGVyIGRpc3BsYXkgIkwnXFx4XHhcKyciCiAKK2lmICFleGlzdHMoImNfbm9fYzExIikgIiBJU08gQzExCisgIGlmIGV4aXN0cygiY19ub19jZm9ybWF0IikKKyAgICBzeW4gcmVnaW9uCWNTdHJpbmcJCXN0YXJ0PStcJShVXHx1OFw9XCkiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisgY29udGFpbnM9Y1NwZWNpYWwsQFNwZWxsCisgIGVsc2UKKyAgICBzeW4gcmVnaW9uCWNTdHJpbmcJCXN0YXJ0PStcJShVXHx1OFw9XCkiKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisgY29udGFpbnM9Y1NwZWNpYWwsY0Zvcm1hdCxAU3BlbGwKKyAgZW5kaWYKKyAgc3luIG1hdGNoCWNDaGFyYWN0ZXIJIltVdV0nW15cXF0nIgorICBzeW4gbWF0Y2gJY0NoYXJhY3RlcgkiW1V1XSdbXiddKiciIGNvbnRhaW5zPWNTcGVjaWFsCisgIGlmIGV4aXN0cygiY19nbnUiKQorICAgIHN5biBtYXRjaAljU3BlY2lhbEVycm9yCSJbVXVdJ1xcW14nXCI/XFxhYmVmbnJ0dl0nIgorICAgIHN5biBtYXRjaAljU3BlY2lhbENoYXJhY3RlciAiW1V1XSdcXFsnXCI/XFxhYmVmbnJ0dl0nIgorICBlbHNlCisgICAgc3luIG1hdGNoCWNTcGVjaWFsRXJyb3IJIltVdV0nXFxbXidcIj9cXGFiZm5ydHZdJyIKKyAgICBzeW4gbWF0Y2gJY1NwZWNpYWxDaGFyYWN0ZXIgIltVdV0nXFxbJ1wiP1xcYWJmbnJ0dl0nIgorICBlbmRpZgorICBzeW4gbWF0Y2gJY1NwZWNpYWxDaGFyYWN0ZXIgZGlzcGxheSAiW1V1XSdcXFxvXHsxLDN9JyIKKyAgc3luIG1hdGNoCWNTcGVjaWFsQ2hhcmFjdGVyIGRpc3BsYXkgIltVdV0nXFx4XHhcKyciCitlbmRpZgorCiAid2hlbiB3YW50ZWQsIGhpZ2hsaWdodCB0cmFpbGluZyB3aGl0ZSBzcGFjZQogaWYgZXhpc3RzKCJjX3NwYWNlX2Vycm9ycyIpCiAgIGlmICFleGlzdHMoImNfbm9fdHJhaWxfc3BhY2VfZXJyb3IiKQpAQCAtMjExLDYgKzIzMCw3IEBACiAgIHN5biBrZXl3b3JkCWNTdG9yYWdlQ2xhc3MJX05vcmV0dXJuIG5vcmV0dXJuCiAgIHN5biBrZXl3b3JkCWNPcGVyYXRvcglfU3RhdGljX2Fzc2VydCBzdGF0aWNfYXNzZXJ0CiAgIHN5biBrZXl3b3JkCWNTdG9yYWdlQ2xhc3MJX1RocmVhZF9sb2NhbCB0aHJlYWRfbG9jYWwKKyAgc3luIGtleXdvcmQgICBjVHlwZQkJY2hhcjE2X3QgY2hhcjMyX3QKIGVuZGlmCiAKIGlmICFleGlzdHMoImNfbm9fYW5zaSIpIHx8IGV4aXN0cygiY19hbnNpX2NvbnN0YW50cyIpIHx8IGV4aXN0cygiY19nbnUiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZC52aW0gYi9ydW50aW1lL3N5bnRheC9kLnZpbQppbmRleCBiN2Y1ZWJhLi4yNTMxOGQ4IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9kLnZpbQpAQCAtMiwyMCArMiwyMSBAQAogIgogIiBMYW5ndWFnZTogICAgIEQKICIgTWFpbnRhaW5lcjogICBKZXNzZSBQaGlsbGlwcyA8SmVzc2UuSy5QaGlsbGlwcytEQGdtYWlsLmNvbT4KLSIgTGFzdCBDaGFuZ2U6ICAyMDEwIFNlcCAyMQotIiBWZXJzaW9uOiAgICAgIDAuMjIKKyIgTGFzdCBDaGFuZ2U6ICAyMDEyIEphbiAxMQorIiBWZXJzaW9uOiAgICAgIDAuMjQKICIKICIgQ29udHJpYnV0b3JzOgogIiAgIC0gSmFzb24gTWlsbHMgPGphc29ubWlsbHNAbmYuc3ltcGF0aWNvLmNhPjogb3JpZ2luYWwgTWFpbnRhaW5lcgotIiAgIC0gS2lyayBNY0RvbmFsZDogdmVyc2lvbiAwLjE3IHVwZGF0ZXMsIHdpdGggbWlub3IgbW9kaWZpY2F0aW9ucwotIiAgICAgKGh0dHA6Ly9wYXN0ZS5kcHJvZ3JhbW1pbmcuY29tL2RwbG1iN3F4P3ZpZXc9aGlkZWxpbmVzKQotIiAgIC0gVGltIEtlYXRpbmc6IHBhdGNoIHRvIGZpeCBhIGJ1ZyBpbiBoaWdobGlnaHRpbmcgdGhlIGBcYCBsaXRlcmFsCi0iICAgLSBGcmFuayBCZW5vaXQ6IEZpeGVkIGEgYnVnIHRoYXQgY2F1c2VkIHNvbWUgaWRlbnRpZmllcnMgYW5kIG51bWJlcnMgdG8gaGlnaGxpZ2h0IGFzIG9jdGFsIG51bWJlciBlcnJvcnMuCi0iICAgLSBTaG91Z28gTWF0c3VzaGl0YSA8U2hvdWdvLk1hdHN1QGdtYWlsLmNvbT46IHVwZGF0ZXMgZm9yIGxhdGVzdCAyLjA0NyBoaWdobGlnaHRpbmcKLSIgICAtIEVsbGVyeSBOZXdjb21lcjogRml4ZWQgc29tZSBoaWdobGlnaHRpbmcgYnVncy4KLSIgICAtIFN0ZXZlbiBOLiBPbGl2ZXI6ICMhIGhpZ2hsaWdodGluZworIiAgIC0gS2lyayBNY0RvbmFsZAorIiAgIC0gVGltIEtlYXRpbmcKKyIgICAtIEZyYW5rIEJlbm9pdAorIiAgIC0gU2hvdWdvIE1hdHN1c2hpdGEgPFNob3Vnby5NYXRzdUBnbWFpbC5jb20+CisiICAgLSBFbGxlcnkgTmV3Y29tZXIKKyIgICAtIFN0ZXZlbiBOLiBPbGl2ZXIKKyIgICAtIFNvaGdvIFRha2V1Y2hpCiAiCi0iIFBsZWFzZSBlbWFpbCBtZSB3aXRoIGJ1Z3MsIGNvbW1lbnRzLCBhbmQgc3VnZ2VzdGlvbnMuCisiIFBsZWFzZSBzdWJtaXQgYnVncy9jb21tZW50cy9zdWdnZXN0aW9ucyB0byB0aGUgZ2l0aHViIHJlcG86IAorIiBodHRwczovL2dpdGh1Yi5jb20vaGUtdGhlLWdyZWF0L2QudmltCiAiCiAiIE9wdGlvbnM6CiAiICAgZF9jb21tZW50X3N0cmluZ3MgLSBTZXQgdG8gaGlnaGxpZ2h0IHN0cmluZ3MgYW5kIG51bWJlcnMgaW4gY29tbWVudHMuCkBAIC0yMywzNCArMjQsMjMgQEAKICIgICBkX2hsX29wZXJhdG9yX292ZXJsb2FkIC0gU2V0IHRvIGhpZ2hsaWdodCBEJ3Mgc3BlY2lhbGx5IG5hbWVkIGZ1bmN0aW9ucwogIiAgIHRoYXQgd2hlbiBvdmVybG9hZGVkIGltcGxlbWVudCB1bmFyeSBhbmQgYmluYXJ5IG9wZXJhdG9ycyAoZS5nLiBvcENtcCkuCiAiCi0iIFRvZG86Ci0iICAgLSBEZXRlcm1pbmUgYSBiZXR0ZXIgbWV0aG9kIG9mIHN5bmMnaW5nIHRoYW4gc2ltcGx5IHNldHRpbmcgbWlubGluZXMKLSIgICB0byBhIGxhcmdlIG51bWJlci4KLSIKLSIgICAtIFNldmVyYWwga2V5d29yZHMgKGUuZy4sIGluLCBvdXQsIGlub3V0KSBhcmUgYm90aCBzdG9yYWdlIGNsYXNzIGFuZAotIiAgIHN0YXRlbWVudHMsIGRlcGVuZGluZyBvbiB0aGVpciBjb250ZXh0LiBQZXJoYXBzIHVzZSBwYXR0ZXJuIG1hdGNoaW5nIHRvCi0iICAgZmlndXJlIG91dCB3aGljaCBhbmQgaGlnaGxpZ2h0IGFwcHJvcHJpYXRlbHkuIEZvciBub3cgSSBoYXZlIG1hZGUgc3VjaAotIiAgIGtleXdvcmRzIHN0b3JhZ2UgY2xhc3NlcyBzbyB0aGVpciBoaWdobGlnaHRpbmcgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyCi0iICAga2V5d29yZHMgdGhhdCBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIHRoZW0sIGJ1dCBhcmUgdHJ1ZSBzdG9yYWdlIGNsYXNzZXMsCi0iICAgc3VjaCBhcyBsYXp5LiBTaW1pbGFybHksIEkgbWFkZSBzb21lIHN0YXRlbWVudCBrZXl3b3JkcyAoZS5nLiBib2R5KSBzdG9yYWdlCi0iICAgY2xhc3Nlcy4KLSIKLSIgICAtIE1hcmsgY29udGVudHMgb2YgdGhlIGFzbSBzdGF0ZW1lbnQgYm9keSBhcyBzcGVjaWFsCi0iCi0iICAgLSBNYXliZSBoaWdobGlnaHQgdGhlICdleGl0JywgJ2ZhaWx1cmUnLCBhbmQgJ3N1Y2Nlc3MnIHBhcnRzIG9mIHRoZQotIiAgIHNjb3BlKCkgc3RhdGVtZW50LgotIgotIiAgIC0gSGlnaGxpZ2h0aW5nIEREb2MgY29tbWVudHMuCi0iCisiICAgZF9obF9vYmplY3RfdHlwZXMgLSBTZXQgdG8gaGlnaGxpZ2h0IHNvbWUgY29tbW9uIHR5cGVzIGZyb20gb2JqZWN0LmRpLgogCiAiIFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCiBlbmRpZgogCisiIFN1cHBvcnQgY3BvcHRpb25zCitsZXQgczpjcG9fc2F2ZSA9ICZjcG8KK3NldCBjcG8mdmltCisKKyIgU2V0IHRoZSBjdXJyZW50IHN5bnRheCB0byBiZSBrbm93biBhcyBkCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJkIgorCiAiIEtleXdvcmQgZGVmaW5pdGlvbnMKICIKLXN5biBrZXl3b3JkIGRFeHRlcm5hbCAgICAgICAgICAgICAgaW1wb3J0IHBhY2thZ2UgbW9kdWxlIGV4dGVybgorc3luIGtleXdvcmQgZEV4dGVybmFsICAgICAgICAgICAgICBpbXBvcnQgbW9kdWxlCiBzeW4ga2V5d29yZCBkQ29uZGl0aW9uYWwgICAgICAgICAgIGlmIGVsc2Ugc3dpdGNoCiBzeW4ga2V5d29yZCBkQnJhbmNoICAgICAgICAgICAgICAgIGdvdG8gYnJlYWsgY29udGludWUKIHN5biBrZXl3b3JkIGRSZXBlYXQgICAgICAgICAgICAgICAgd2hpbGUgZm9yIGRvIGZvcmVhY2ggZm9yZWFjaF9yZXZlcnNlCkBAIC03NywyMSArNjcsMzQgQEAKICAgc3luIGtleXdvcmQgZE9wT3ZlcmxvYWQgICAgICAgICAgb3BDYWxsIG9wU2xpY2Ugb3BTbGljZUFzc2lnbiBvcFNsaWNlT3BBc3NpZ24gCiAgIHN5biBrZXl3b3JkIGRPcE92ZXJsb2FkICAgICAgICAgIG9wUG9zIG9wQWRkX3Igb3BNdWxfciBvcEFuZF9yIG9wT3JfciBvcFhvcl9yCiAgIHN5biBrZXl3b3JkIGRPcE92ZXJsb2FkICAgICAgICAgIG9wSW4gb3BJbl9yIG9wUG93IG9wRGlzcGF0Y2ggb3BTdGFyIG9wRG90IAotICBzeW4ga2V5d29yZCBkT3BPdmVybG9hZCAgICAgICAgICBvcEFwcGx5IG9wQXBwbHlSZXZlcnNlCisgIHN5biBrZXl3b3JkIGRPcE92ZXJsb2FkICAgICAgICAgIG9wQXBwbHkgb3BBcHBseVJldmVyc2Ugb3BEb2xsYXIKICAgc3luIGtleXdvcmQgZE9wT3ZlcmxvYWQgICAgICAgICAgb3BVbmFyeSBvcEluZGV4VW5hcnkgb3BTbGljZVVuYXJ5CiAgIHN5biBrZXl3b3JkIGRPcE92ZXJsb2FkICAgICAgICAgIG9wQmluYXJ5IG9wQmluYXJ5UmlnaHQKIGVuZGlmCiAKLXN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgICAgdm9pZCB1c2hvcnQgaW50IHVpbnQgbG9uZyB1bG9uZyBmbG9hdAotc3luIGtleXdvcmQgZFR5cGUgICAgICAgICAgICAgICAgICBieXRlIHVieXRlIGRvdWJsZSBiaXQgY2hhciB3Y2hhciB1Y2VudCBjZW50Ci1zeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICAgIHNob3J0IGJvb2wgZGNoYXIgd3N0cmluZyBkc3RyaW5nCi1zeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICAgIHJlYWwgaXJlYWwgaWZsb2F0IGlkb3VibGUKLXN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgICAgY3JlYWwgY2Zsb2F0IGNkb3VibGUKK3N5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgICAgYnl0ZSB1Ynl0ZSBzaG9ydCB1c2hvcnQgaW50IHVpbnQgbG9uZyB1bG9uZyBjZW50IHVjZW50CitzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICAgIHZvaWQgYm9vbCBiaXQKK3N5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgICAgZmxvYXQgZG91YmxlIHJlYWwKK3N5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgICAgdXNob3J0IGludCB1aW50IGxvbmcgdWxvbmcgZmxvYXQKK3N5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgICAgY2hhciB3Y2hhciBkY2hhciBzdHJpbmcgd3N0cmluZyBkc3RyaW5nCitzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICAgIGlyZWFsIGlmbG9hdCBpZG91YmxlIGNyZWFsIGNmbG9hdCBjZG91YmxlCitzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICAgIHNpemVfdCBwdHJkaWZmX3Qgc2l6ZWRpZmZfdCBlcXVhbHNfdCBoYXNoX3QKK2lmIGV4aXN0cygiZF9obF9vYmplY3RfdHlwZXMiKQorICBzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICBPYmplY3QgVGhyb3dhYmxlIEFzc29jaWF0aXZlQXJyYXkgRXJyb3IgRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgIEludGVyZmFjZSBPZmZzZXRUeXBlSW5mbyBUeXBlSW5mbyBUeXBlSW5mb19UeXBlZGVmCisgIHN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgIFR5cGVJbmZvX0VudW0gVHlwZUluZm9fUG9pbnRlciBUeXBlSW5mb19BcnJheQorICBzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICBUeXBlSW5mb19TdGF0aWNBcnJheSBUeXBlSW5mb19Bc3NvY2lhdGl2ZUFycmF5CisgIHN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgIFR5cGVJbmZvX0Z1bmN0aW9uIFR5cGVJbmZvX0RlbGVnYXRlIFR5cGVJbmZvX0NsYXNzCisgIHN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgIENsYXNzSW5mbyBUeXBlSW5mb19JbnRlcmZhY2UgVHlwZUluZm9fU3RydWN0CisgIHN5biBrZXl3b3JkIGRUeXBlICAgICAgICAgICAgICAgIFR5cGVJbmZvX1R1cGxlIFR5cGVJbmZvX0NvbnN0IFR5cGVJbmZvX0ludmFyaWFudAorICBzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICBUeXBlSW5mb19TaGFyZWQgVHlwZUluZm9fSW5vdXQgTWVtYmVySW5mbworICBzeW4ga2V5d29yZCBkVHlwZSAgICAgICAgICAgICAgICBNZW1iZXJJbmZvX2ZpZWxkIE1lbWJlckluZm9fZnVuY3Rpb24gTW9kdWxlSW5mbworZW5kaWYKIHN5biBrZXl3b3JkIGREZWJ1ZyAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCB1bml0dGVzdCBpbnZhcmlhbnQKIHN5biBrZXl3b3JkIGRFeGNlcHRpb25zICAgICAgICAgICAgdGhyb3cgdHJ5IGNhdGNoIGZpbmFsbHkKLXN5biBrZXl3b3JkIGRTY29wZURlY2wgICAgICAgICAgICAgcHVibGljIHByb3RlY3RlZCBwcml2YXRlIGV4cG9ydAorc3luIGtleXdvcmQgZFNjb3BlRGVjbCAgICAgICAgICAgICBwdWJsaWMgcHJvdGVjdGVkIHByaXZhdGUgZXhwb3J0IHBhY2thZ2UgCiBzeW4ga2V5d29yZCBkU3RhdGVtZW50ICAgICAgICAgICAgIGRlYnVnIHJldHVybiB3aXRoCi1zeW4ga2V5d29yZCBkU3RhdGVtZW50ICAgICAgICAgICAgIGZ1bmN0aW9uIGRlbGVnYXRlIF9fdHJhaXRzIG1peGluIG1hY3JvCitzeW4ga2V5d29yZCBkU3RhdGVtZW50ICAgICAgICAgICAgIGZ1bmN0aW9uIGRlbGVnYXRlIF9fY3RmZSBtaXhpbiBtYWNybwogc3luIGtleXdvcmQgZFN0b3JhZ2VDbGFzcyAgICAgICAgICBpbiBvdXQgaW5vdXQgcmVmIGxhenkgYm9keQogc3luIGtleXdvcmQgZFN0b3JhZ2VDbGFzcyAgICAgICAgICBwdXJlIG5vdGhyb3cKIHN5biBrZXl3b3JkIGRTdG9yYWdlQ2xhc3MgICAgICAgICAgYXV0byBzdGF0aWMgb3ZlcnJpZGUgZmluYWwgYWJzdHJhY3Qgdm9sYXRpbGUKQEAgLTEwMCwxNSArMTAzLDI2IEBACiBzeW4ga2V5d29yZCBkUHJhZ21hICAgICAgICAgICAgICAgIHByYWdtYQogc3luIGtleXdvcmQgZElkZW50aWZpZXIgICAgICAgICAgICBfYXJndW1lbnRzIF9hcmdwdHIgX192cHRyIF9fbW9uaXRvciBfY3RvciBfZHRvcgogc3luIGtleXdvcmQgZFNjb3BlSWRlbnRpZmllciAgICAgICBjb250YWluZWQgZXhpdCBzdWNjZXNzIGZhaWx1cmUKK3N5biBrZXl3b3JkIGRUcmFpdHNJZGVudGlmaWVyICAgICAgY29udGFpbmVkIGlzQWJzdHJhY3RDbGFzcyBpc0FyaXRobWV0aWMgaXNBc3NvY2lhdGl2ZUFycmF5CitzeW4ga2V5d29yZCBkVHJhaXRzSWRlbnRpZmllciAgICAgIGNvbnRhaW5lZCBpc0ZpbmFsQ2xhc3MgaXNGbG9hdGluZyBpc0ludGVncmFsIGlzU2NhbGFyCitzeW4ga2V5d29yZCBkVHJhaXRzSWRlbnRpZmllciAgICAgIGNvbnRhaW5lZCBpc1N0YXRpY0FycmF5IGlzVW5zaWduZWQgaXNWaXJ0dWFsRnVuY3Rpb24KK3N5biBrZXl3b3JkIGRUcmFpdHNJZGVudGlmaWVyICAgICAgY29udGFpbmVkIGlzQWJzdHJhY3RGdW5jdGlvbiBpc0ZpbmFsRnVuY3Rpb24gaXNTdGF0aWNGdW5jdGlvbgorc3luIGtleXdvcmQgZFRyYWl0c0lkZW50aWZpZXIgICAgICBjb250YWluZWQgaXNSZWYgaXNPdXQgaXNMYXp5IGhhc01lbWJlciBpZGVudGlmaWVyIGdldE1lbWJlcgorc3luIGtleXdvcmQgZFRyYWl0c0lkZW50aWZpZXIgICAgICBjb250YWluZWQgZ2V0T3ZlcmxvYWRzIGdldFZpcnR1YWxGdW5jdGlvbnMgcGFyZW50IGNvbXBpbGVzCitzeW4ga2V5d29yZCBkVHJhaXRzSWRlbnRpZmllciAgICAgIGNvbnRhaW5lZCBjbGFzc0luc3RhbmNlU2l6ZSBhbGxNZW1iZXJzIGRlcml2ZWRNZW1iZXJzIGlzU2FtZQorc3luIGtleXdvcmQgZEV4dGVybklkZW50aWZpZXIgICAgICBjb250YWluZWQgV2luZG93cyBQYXNjYWwgSmF2YSBTeXN0ZW0gRAogc3luIGtleXdvcmQgZEF0dHJpYnV0ZSAgICAgICAgICAgICBjb250YWluZWQgc2FmZSB0cnVzdGVkIHN5c3RlbQogc3luIGtleXdvcmQgZEF0dHJpYnV0ZSAgICAgICAgICAgICBjb250YWluZWQgcHJvcGVydHkgZGlzYWJsZQotc3luIGtleXdvcmQgZFZlcnNpb25JZGVudGlmaWVyICAgICBjb250YWluZWQgRGlnaXRhbE1hcnMgR05VIExEQyBMTFZNCi1zeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBYODYgWDg2XzY0IFdpbmRvd3MgV2luMzIgV2luNjQgCi1zeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBsaW51eCBQb3NpeCBPU1ggRnJlZUJTRAotc3luIGtleXdvcmQgZFZlcnNpb25JZGVudGlmaWVyICAgICBjb250YWluZWQgTGl0dGxlRW5kaWFuIEJpZ0VuZGlhbiBEX0NvdmVyYWdlCi1zeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBEX0Rkb2MgRF9JbmxpbmVBc21fWDg2Ci1zeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBEX0lubGluZUFzbV9YODZfNjQgRF9MUDY0IERfUElDCi1zeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCB1bml0dGVzdCBEX1ZlcnNpb24yIG5vbmUgYWxsCitzeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBEaWdpdGFsTWFycyBHTlUgTERDIFNEQyBEX05FVAorc3luIGtleXdvcmQgZFZlcnNpb25JZGVudGlmaWVyICAgICBjb250YWluZWQgWDg2IFg4Nl82NCBBUk0gUFBDIFBQQzY0IElBNjQgTUlQUyBNSVBTNjQgQWxwaGEKK3N5biBrZXl3b3JkIGRWZXJzaW9uSWRlbnRpZmllciAgICAgY29udGFpbmVkIFNQQVJDIFNQQVJDNjQgUzM5MCBTMzkwWCBIUFBBIEhQUEE2NCBTSCBTSDY0CitzeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBsaW51eCBQb3NpeCBPU1ggRnJlZUJTRCBXaW5kb3dzIFdpbjMyIFdpbjY0CitzeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBPcGVuQlNEIEJTRCBTb2xhcmlzIEFJWCBTa3lPUyBTeXNWMyBTeXNWNCBIdXJkCitzeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCBDeWd3aW4gTWluR1cKK3N5biBrZXl3b3JkIGRWZXJzaW9uSWRlbnRpZmllciAgICAgY29udGFpbmVkIExpdHRsZUVuZGlhbiBCaWdFbmRpYW4KK3N5biBrZXl3b3JkIGRWZXJzaW9uSWRlbnRpZmllciAgICAgY29udGFpbmVkIERfSW5saW5lQXNtX1g4NiBEX0lubGluZUFzbV9YODZfNjQKK3N5biBrZXl3b3JkIGRWZXJzaW9uSWRlbnRpZmllciAgICAgY29udGFpbmVkIERfVmVyc2lvbjIgRF9Db3ZlcmFnZSBEX0Rkb2MgRF9MUDY0IERfUElDCitzeW4ga2V5d29yZCBkVmVyc2lvbklkZW50aWZpZXIgICAgIGNvbnRhaW5lZCB1bml0dGVzdCBub25lIGFsbAogCiAiIEhpZ2hsaWdodCB0aGUgc2hhcnBiYW5nCiBzeW4gbWF0Y2ggZFNoYXJwQmFuZyAiXCVeIyEuKiIgICAgIGRpc3BsYXkKQEAgLTExNywyMyArMTMxLDM4IEBACiBzeW4gbWF0Y2ggZEFubm90YXRpb24JIkBbXyRhLXpBLVpdW18kYS16QS1aMC05X10qXD4iIGNvbnRhaW5zPWRBdHRyaWJ1dGUKIAogIiBWZXJzaW9uIElkZW50aWZpZXJzCi1zeW4gbWF0Y2ggZFZlcnNpb24gICAiW14uXXZlcnNpb24iIG5leHRncm91cD1kVmVyc2lvbkluc2lkZQotc3luIG1hdGNoIGRWZXJzaW9uICAgIl52ZXJzaW9uIiBuZXh0Z3JvdXA9ZFZlcnNpb25JbnNpZGUKLXN5biBtYXRjaCBkVmVyc2lvbkluc2lkZSAgIihbX2EtekEtWl1bX2EtekEtWjAtOV0qXD4iIHRyYW5zcGFyZW50IGNvbnRhaW5lZCBjb250YWlucz1kVmVyc2lvbklkZW50aWZpZXIKK3N5biBtYXRjaCBkVmVyc2lvbiAgICJbXi5dXDx2ZXJzaW9uXD4iaHM9cysxIG5leHRncm91cD1kVmVyc2lvbkluc2lkZQorc3luIG1hdGNoIGRWZXJzaW9uICAgIl5cPHZlcnNpb25cPiIgbmV4dGdyb3VwPWRWZXJzaW9uSW5zaWRlCitzeW4gbWF0Y2ggZFZlcnNpb25JbnNpZGUgICJccyooW19hLXpBLVpdW19hLXpBLVowLTldKlw+IiB0cmFuc3BhcmVudCBjb250YWluZWQgY29udGFpbnM9ZFZlcnNpb25JZGVudGlmaWVyCiAKICIgU2NvcGUgU3RvcmFnZUNsYXNzCi1zeW4gbWF0Y2ggZFN0b3JhZ2VDbGFzcyAgICJzY29wZSIKK3N5biBtYXRjaCBkU3RvcmFnZUNsYXNzICAgIlw8c2NvcGVcPiIKKworIiBUcmFpdHMgRXhwcmVzc2lvbgorc3luIG1hdGNoIGRTdGF0ZW1lbnQgICAgIlw8X190cmFpdHNcPiIKKworIiBFeHRlcm4gTW9kaWZpZXIKK3N5biBtYXRjaCBkRXh0ZXJuYWwgICAgICJcPGV4dGVyblw+IgogCiAiIFNjb3BlIElkZW50aWZpZXJzCi1zeW4gbWF0Y2ggZFNjb3BlCSJzY29wZVxzKihbX2EtekEtWl1bX2EtekEtWjAtOV0qXD4iaGU9cys1IGNvbnRhaW5zPWRTY29wZUlkZW50aWZpZXIKK3N5biBtYXRjaCBkU2NvcGUJIlw8c2NvcGVccyooW19hLXpBLVpdW19hLXpBLVowLTldKlw+ImhlPXMrNSBjb250YWlucz1kU2NvcGVJZGVudGlmaWVyCisKKyIgVHJhaXRzIElkZW50aWZpZXJzCitzeW4gbWF0Y2ggZFRyYWl0cyAgICAgICAiXDxfX3RyYWl0c1xzKihbX2EtekEtWl1bX2EtekEtWjAtOV0qXD4iaGU9cys4IGNvbnRhaW5zPWRUcmFpdHNJZGVudGlmaWVyCisKKyIgTmVjZXNzYXJ5IHRvIGhpZ2hsaWdodCBDKysgaW4gZXh0ZXJuIG1vZGlmaWVycy4KK3N5biBtYXRjaCBkRXh0ZXJuSWRlbnRpZmllciAiQ1woKytcKVw/IiBjb250YWluZWQKKworIiBFeHRlcm4gSWRlbnRpZmllcnMKK3N5biBtYXRjaCBkRXh0ZXJuICAgICAgICJcPGV4dGVyblxzKihbX2EtekEtWl1bX2EtekEtWjAtOVwrXSpcPiJoZT1zKzYgY29udGFpbnM9ZEV4dGVybklkZW50aWZpZXIKIAogIiBTdHJpbmcgaXMgYSBzdGF0ZW1lbnQgYW5kIGEgbW9kdWxlIG5hbWUuCi1zeW4gbWF0Y2ggZFR5cGUgIl5zdHJpbmciCi1zeW4gbWF0Y2ggZFR5cGUgIlteLl1ccypcPHN0cmluZ1w+Im1zPXMrMQorc3luIG1hdGNoIGRUeXBlICJbXi5dXDxzdHJpbmdcPiJtcz1zKzEKK3N5biBtYXRjaCBkVHlwZSAiXlw8c3RyaW5nXD4iCiAKICIgQXNzZXJ0IGlzIGEgc3RhdGVtZW50IGFuZCBhIG1vZHVsZSBuYW1lLgotc3luIG1hdGNoIGRBc3NlcnQgIl5hc3NlcnQiCi1zeW4gbWF0Y2ggZEFzc2VydCAiW14uXVxzKlw8YXNzZXJ0XD4ibXM9cysxCitzeW4gbWF0Y2ggZEFzc2VydCAiW14uXVw8YXNzZXJ0XD4ibXM9cysxCitzeW4gbWF0Y2ggZEFzc2VydCAiXlw8YXNzZXJ0XD4iCiAKICIgZFRva2VucyBpcyB1c2VkIGJ5IHRoZSB0b2tlbiBzdHJpbmcgaGlnaGxpZ2h0aW5nCiBzeW4gY2x1c3RlciBkVG9rZW5zIGNvbnRhaW5zPWRFeHRlcm5hbCxkQ29uZGl0aW9uYWwsZEJyYW5jaCxkUmVwZWF0LGRCb29sZWFuCkBAIC0xNjEsMTIgKzE5MCwxMiBAQAogICBzeW4gcmVnaW9uIGRCbG9ja0NvbW1lbnRTdHJpbmcJY29udGFpbmVkIHN0YXJ0PSsiKyBlbmQ9KyIrIGVuZD0rXCovK21lPXMtMSxoZT1zLTEgY29udGFpbnM9ZENvbW1lbnRTdGFyLGRVbmljb2RlLGRFc2NTZXF1ZW5jZSxAU3BlbGwKICAgc3luIHJlZ2lvbiBkTmVzdGVkQ29tbWVudFN0cmluZwljb250YWluZWQgc3RhcnQ9KyIrIGVuZD0rIisgZW5kPSIrIm1lPXMtMSxoZT1zLTEgY29udGFpbnM9ZENvbW1lbnRQbHVzLGRVbmljb2RlLGRFc2NTZXF1ZW5jZSxAU3BlbGwKICAgc3luIHJlZ2lvbiBkTGluZUNvbW1lbnRTdHJpbmcJCWNvbnRhaW5lZCBzdGFydD0rIisgZW5kPSskXHwiKyBjb250YWlucz1kVW5pY29kZSxkRXNjU2VxdWVuY2UsQFNwZWxsCi0gIHN5biByZWdpb24gZEJsb2NrQ29tbWVudAlzdGFydD0iL1wqIiAgZW5kPSJcKi8iIGNvbnRhaW5zPWRCbG9ja0NvbW1lbnRTdHJpbmcsZFRvZG8sQFNwZWxsCi0gIHN5biByZWdpb24gZE5lc3RlZENvbW1lbnQJc3RhcnQ9Ii8rIiAgZW5kPSIrLyIgY29udGFpbnM9ZE5lc3RlZENvbW1lbnQsZE5lc3RlZENvbW1lbnRTdHJpbmcsZFRvZG8sQFNwZWxsCisgIHN5biByZWdpb24gZEJsb2NrQ29tbWVudAlzdGFydD0iL1wqIiAgZW5kPSJcKi8iIGNvbnRhaW5zPWRCbG9ja0NvbW1lbnRTdHJpbmcsZFRvZG8sQFNwZWxsIGZvbGQKKyAgc3luIHJlZ2lvbiBkTmVzdGVkQ29tbWVudAlzdGFydD0iLysiICBlbmQ9IisvIiBjb250YWlucz1kTmVzdGVkQ29tbWVudCxkTmVzdGVkQ29tbWVudFN0cmluZyxkVG9kbyxAU3BlbGwgZm9sZAogICBzeW4gbWF0Y2ggIGRMaW5lQ29tbWVudAkiLy8uKiIgY29udGFpbnM9ZExpbmVDb21tZW50U3RyaW5nLGRUb2RvLEBTcGVsbAogZWxzZQotICBzeW4gcmVnaW9uIGRCbG9ja0NvbW1lbnQJc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1kQmxvY2tDb21tZW50U3RyaW5nLGRUb2RvLEBTcGVsbAotICBzeW4gcmVnaW9uIGROZXN0ZWRDb21tZW50CXN0YXJ0PSIvKyIgIGVuZD0iKy8iIGNvbnRhaW5zPWROZXN0ZWRDb21tZW50LGROZXN0ZWRDb21tZW50U3RyaW5nLGRUb2RvLEBTcGVsbAorICBzeW4gcmVnaW9uIGRCbG9ja0NvbW1lbnQJc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1kQmxvY2tDb21tZW50U3RyaW5nLGRUb2RvLEBTcGVsbCBmb2xkCisgIHN5biByZWdpb24gZE5lc3RlZENvbW1lbnQJc3RhcnQ9Ii8rIiAgZW5kPSIrLyIgY29udGFpbnM9ZE5lc3RlZENvbW1lbnQsZE5lc3RlZENvbW1lbnRTdHJpbmcsZFRvZG8sQFNwZWxsIGZvbGQKICAgc3luIG1hdGNoICBkTGluZUNvbW1lbnQJIi8vLioiIGNvbnRhaW5zPWRMaW5lQ29tbWVudFN0cmluZyxkVG9kbyxAU3BlbGwKIGVuZGlmCiAKQEAgLTI4MCw2ICszMDksMTAgQEAKICIgVE9ETzogSGlnaGxpZ2h0IGZvbGxvd2luZyBJbnRlZ2VyIGFuZCBvcHRpb25hbCBGaWxlc3BlYy4KIHN5biByZWdpb24gIGRQcmFnbWEgc3RhcnQ9IiNccypcKGxpbmVcPlwpIiBza2lwPSJcXCQiIGVuZD0iJCIKIAorIiBCbG9jaworIgorc3luIHJlZ2lvbiBkQmxvY2sJc3RhcnQ9InsiIGVuZD0ifSIgdHJhbnNwYXJlbnQgZm9sZAorCiAKICIgVGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgogIgpAQCAtMzMwLDEyICszNjMsMTQgQEAKIGhpIGRlZiBsaW5rIGRTaGFycEJhbmcgICAgICAgICAgIFByZVByb2MKIGhpIGRlZiBsaW5rIGRBdHRyaWJ1dGUgICAgICAgICAgIFN0b3JhZ2VDbGFzcwogaGkgZGVmIGxpbmsgZElkZW50aWZpZXIgICAgICAgICAgSWRlbnRpZmllcgotaGkgZGVmIGxpbmsgZFZlcnNpb25JZGVudGlmaWVyICAgSWRlbnRpZmllcgogaGkgZGVmIGxpbmsgZFZlcnNpb24gICAgICAgICAgICAgZFN0YXRlbWVudAotaGkgZGVmIGxpbmsgZFNjb3BlSWRlbnRpZmllciAgICAgZFN0YXRlbWVudAoraGkgZGVmIGxpbmsgZFZlcnNpb25JZGVudGlmaWVyICAgSWRlbnRpZmllcgogaGkgZGVmIGxpbmsgZFNjb3BlICAgICAgICAgICAgICAgZFN0b3JhZ2VDbGFzcwotCi1sZXQgYjpjdXJyZW50X3N5bnRheCA9ICJkIgoraGkgZGVmIGxpbmsgZFNjb3BlSWRlbnRpZmllciAgICAgSWRlbnRpZmllcgoraGkgZGVmIGxpbmsgZFRyYWl0cyAgICAgICAgICAgICAgZFN0YXRlbWVudAoraGkgZGVmIGxpbmsgZFRyYWl0c0lkZW50aWZpZXIgICAgSWRlbnRpZmllcgoraGkgZGVmIGxpbmsgZEV4dGVybiAgICAgICAgICAgICAgZEV4dGVybmFsCitoaSBkZWYgbGluayBkRXh0ZXJuSWRlbnRpZmllciAgICBJZGVudGlmaWVyCiAKICIgTWFya3MgY29udGVudHMgb2YgdGhlIGFzbSBzdGF0bWVudCBib2R5IGFzIHNwZWNpYWwKIApAQCAtNDY0LDMgKzQ5OSw1IEBACiBzeW4ga2V5d29yZCBkQXNtT3BDb2RlIGNvbnRhaW5lZAlwZnJzcWl0MSAJcGZyc3FydCAJcGZzdWIgCXBmc3ViciAJcGkyZmQKIHN5biBrZXl3b3JkIGRBc21PcENvZGUgY29udGFpbmVkCXBtdWxocncgCXBzd2FwZAogCitsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKK3VubGV0IHM6Y3BvX3NhdmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2VybGFuZy52aW0gYi9ydW50aW1lL3N5bnRheC9lcmxhbmcudmltCmluZGV4IDJmMzlkNjEuLjI4YmM0YTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2VybGFuZy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZXJsYW5nLnZpbQpAQCAtMSwyMjkgKzEsMTI2IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZTogICAgZXJsYW5nIChFUmljc3NvbiBMQU5HdWFnZSkKLSIgICAgICAgICAgICAgIGh0dHA6Ly93d3cuZXJsYW5nLnNlCi0iICAgICAgICAgICAgICBodHRwOi8vd3d3LmVybGFuZy5vcmcKLSIgTWFpbnRhaW5lcjogIENzYWJhIEhvY2ggPGNzYWJhLmhvY2hAZ21haWwuY29tPgotIiBGb3JtZXIgTWFpbnRhaW5lcjogIEtyZcSFaW1pciBNYXLEvmnEhyAoS3Jlc2ltaXIgTWFyemljKSA8a21hcnppY0BmbHkuc3JrLmZlci5ocj4KLSIgTGFzdCB1cGRhdGU6IDEyLU1hci0yMDA4Ci0iIEZpbGVuYW1lczogICAuZXJsCisiIExhbmd1YWdlOiAgICAgRXJsYW5nCisiIEF1dGhvcjogICAgICAgT3NjYXIgSGVsbHN0cvZtIDxvc2NhckBvc2NhcmgubmV0PiAoaHR0cDovL29zY2FyLmhlbGxzdHJvbS5zdCkKKyIgQ29udHJpYnV0b3JzOiBSaWNhcmRvIENhdGFsaW5hcyBKaW3pbmV6IDxqaW1lbmV6cmlja0BnbWFpbC5jb20+CisiIExpY2Vuc2U6ICAgICAgVmltIGxpY2Vuc2UKKyIgVmVyc2lvbjogICAgICAyMDExLzA5LzExCiAKLQotIiBUaGVyZSBhcmUgdGhyZWUgc2V0cyBvZiBoaWdobGlnaHRpbmcgaW4gaGVyZToKLSIgT25lIGlzICJlcmxhbmdfY2hhcmFjdGVycyIsIHNlY29uZCBpcyAiZXJsYW5nX2Z1bmN0aW9ucyIgYW5kIHRoaXJkCi0iIGlzICJlcmxhbmdfa2V5d29yZHMiLgotIiBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIGtleXdvcmRzIGhpZ2hsaWdodGluZywgcHV0IGluIHlvdXIgLnZpbXJjOgotIiAgICAgICBsZXQgZXJsYW5nX2tleXdvcmRzPTEKLSIgSWYgeW91IHdhbnQgdG8gZGlzYWJsZSBlcmxhbmcgQklGIGhpZ2hsaWdodGluZywgcHV0IGluIHlvdXIgLnZpbXJjCi0iIHRoaXM6Ci0iICAgICAgIGxldCBlcmxhbmdfZnVuY3Rpb25zPTEKLSIgSWYgeW91IHdhbnQgdG8gZGlzYWJsZSBzcGVjaWFsIGNoYXJhY3RlcnMgaGlnaGxpZ2h0aW5nLCBwdXQgaW4KLSIgeW91ciAudmltcmM6Ci0iICAgICAgIGxldCBlcmxhbmdfY2hhcmFjdGVycz0xCi0KLQotIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKLSIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKLWlmIHZlcnNpb24gPCA2MDAKLSAgICBzeW50YXggY2xlYXIKLWVsc2VpZiBleGlzdHMgKCJiOmN1cnJlbnRfc3ludGF4IikKLSAgICBmaW5pc2gKK2lmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisJZmluaXNoCitlbHNlCisJbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZXJsYW5nIgogZW5kaWYKIAoraWYgIWV4aXN0cygiZzplcmxhbmdfaGlnaGxpZ2h0X2JpZiIpCisJbGV0IGc6ZXJsYW5nX2hpZ2hsaWdodF9iaWYgPSAxCitlbmRpZgogCi0iIENhc2Ugc2Vuc2l0aXZlCisiIEVybGFuZyBpcyBjYXNlIHNlbnNpdGl2ZQogc3luIGNhc2UgbWF0Y2gKIAorIiBNYXRjaCBncm91cHMKK3N5biBtYXRjaCBlcmxhbmdTdHJpbmdNb2RpZmllciAgICAgICAgICAgICAgIC9cXC4vIGNvbnRhaW5lZAorc3luIG1hdGNoIGVybGFuZ1N0cmluZ01vZGlmaWVyICAgICAgICAgICAgICAgL1x+XCUoLVw/WzAtOSpdXCtcKVw/XCUoXC5bMC05Kl1cK1wuLlw/XClcP1wlKGNcfGZcfGVcfGdcfHNcfHdcfHBcfFdcfFBcfEJcfFhcfCNcfGJcfCtcfG5cfGlcKS8gY29udGFpbmVkCitzeW4gbWF0Y2ggZXJsYW5nTW9kaWZpZXIgICAgICAgICAgICAgICAgICAgICAvXCRcXFw/Li8KIAotaWYgISBleGlzdHMgKCJlcmxhbmdfY2hhcmFjdGVycyIpCitzeW4gbWF0Y2ggZXJsYW5nSW50ZWdlciAgICAgICAgICAgICAgICAgICAgICAvXDxcJShbMC05XVwrI1swLTlhLWZBLUZdXCtcfFswLTldXCtcKVw+Lworc3luIG1hdGNoIGVybGFuZ0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgL1w8WzAtOV1cK1wuWzAtOV1cK1wlKGUtXD9bMC05XVwrXClcP1w+LwogCi0gICAgIiBCYXNpYyBlbGVtZW50cwotICAgIHN5biBtYXRjaCAgIGVybGFuZ0NvbW1lbnQgICAgICAgICAgIiUuKiQiIGNvbnRhaW5zPWVybGFuZ0Fubm90YXRpb24sZXJsYW5nVG9kbwotICAgIHN5biBtYXRjaCAgIGVybGFuZ0Fubm90YXRpb24gICAgICAgIiBcQDw9QFwlKGNsZWFyXHxkb2NmaWxlXHxlbmRcfGhlYWRlcmZpbGVcfHRvZG9cfFRPRE9cfHR5cGVcfGF1dGhvclx8Y29weXJpZ2h0XHxkb2NcfHJlZmVyZW5jZVx8c2VlXHxzaW5jZVx8dGl0bGVcfHZlcnNpb25cfGRlcHJlY2F0ZWRcfGhpZGRlblx8cHJpdmF0ZVx8ZXF1aXZcfHNwZWNcfHRocm93c1wpIiBjb250YWluZWQKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdBbm5vdGF0aW9uICAgICAgICJgW14nXSonIiBjb250YWluZWQKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdUb2RvICAgICAgICAgICAgIFRPRE8gRklYTUUgWFhYIGNvbnRhaW5lZAotICAgIHN5biBtYXRjaCAgIGVybGFuZ01vZGlmaWVyICAgICAgICAgIlx+XGFcfFxcXGFcfFxcXFwiIGNvbnRhaW5lZAotICAgIHN5biBtYXRjaCAgIGVybGFuZ1NwZWNpYWxDaGFyYWN0ZXIgIjpcfF9cfEBcfFxcXHxcIlx8XC4iCi0gICAgc3luIG1hdGNoICAgZXJsYW5nU2VwYXJhdG9yICAgICAgICAiKFx8KVx8e1x8fVx8XFtcfF1cfHxcfHx8XHw7XHwsXHw/XHwtPlx8IyIgY29udGFpbmVkCi0gICAgc3luIHJlZ2lvbiAgZXJsYW5nU3RyaW5nICAgICAgICAgICBzdGFydD0rIisgc2tpcD0rXFwuKyBlbmQ9KyIrIGNvbnRhaW5zPWVybGFuZ01vZGlmaWVyCi0gICAgc3luIHJlZ2lvbiAgZXJsYW5nQXRvbSAgICAgICAgICAgICBzdGFydD0rJysgc2tpcD0rXFwnKyBlbmQ9KycrCitzeW4ga2V5d29yZCBlcmxhbmdUb2RvICAgICAgICAgICAgICAgICAgICAgICBUT0RPIEZJWE1FIFhYWCBjb250YWluZWQKK3N5biBtYXRjaCAgIGVybGFuZ0NvbW1lbnQgICAgICAgICAgICAgICAgICAgIC8lLiokLyBjb250YWlucz1AU3BlbGwsZXJsYW5nVG9kbyxlcmxhbmdBbm5vdGF0aW9uCitzeW4gbWF0Y2ggICBlcmxhbmdBbm5vdGF0aW9uICAgICAgICAgICAgICAgICAvXCUoJVxzXClcQDw9QFwlKGF1dGhvclx8Y2xlYXJcfGNvcHlyaWdodFx8ZGVwcmVjYXRlZFx8ZG9jXHxkb2NmaWxlXHxlbmRcfGVxdWl2XHxoZWFkZXJmaWxlXHxoaWRkZW5cfHByaXZhdGVcfHJlZmVyZW5jZVx8c2VlXHxzaW5jZVx8c3BlY1x8dGhyb3dzXHx0aXRsZVx8dG9kb1x8VE9ET1x8dHlwZVx8dmVyc2lvblwpLyBjb250YWluZWQKK3N5biBtYXRjaCAgIGVybGFuZ0Fubm90YXRpb24gICAgICAgICAgICAgICAgIC9gW14nXVwrJy8gY29udGFpbmVkCiAKLSAgICAiIE9wZXJhdG9ycwotICAgIHN5biBtYXRjaCAgIGVybGFuZ09wZXJhdG9yICAgICAgICAgIitcfC1cfFwqXHxcLyIKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdPcGVyYXRvciAgICAgICAgIGRpdiByZW0gb3IgeG9yIGJvciBieG9yIGJzbCBic3IKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdPcGVyYXRvciAgICAgICAgIGFuZCBiYW5kIG5vdCBibm90IGFuZGFsc28gb3JlbHNlCi0gICAgc3luIG1hdGNoICAgZXJsYW5nT3BlcmF0b3IgICAgICAgICAiPT1cfC89XHw9Oj1cfD0vPVx8PFx8PTxcfD5cfD49IgotICAgIHN5biBtYXRjaCAgIGVybGFuZ09wZXJhdG9yICAgICAgICAgIisrXHwtLVx8PVx8IVx8PC0iCitzeW4ga2V5d29yZCBlcmxhbmdLZXl3b3JkICAgICAgICAgICAgICAgICAgICBiYW5kIGJvciBibm90IGJzbCBic3IgYnhvciBkaXYgcmVtIHhvcgorc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICAgICAgICAgICAgICAgICAgdHJ5IGNhdGNoIGJlZ2luIHJlY2VpdmUgYWZ0ZXIgY29uZCBmdW4gbGV0IHF1ZXJ5CiAKLSAgICAiIE51bWJlcnMKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJJbnRlZ2VyICAgICJcZFwrIiBjb250YWlucz1lcmxhbmdTZXBhcmF0b3IKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJGbG9hdDEgICAgICJcZFwrXC5cZFwrIiBjb250YWlucz1lcmxhbmdTZXBhcmF0b3IKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJGbG9hdDIgICAgICJcZFwrXChcLlxkXCtcKVw9W2VFXVsrLV1cPVxkXCtcKFwuXGRcK1wpXD0iIGNvbnRhaW5zPWVybGFuZ1NlcGFyYXRvcgotICAgIHN5biBtYXRjaCAgIGVybGFuZ051bWJlckZsb2F0MyAgICAgIlxkXCtbI11ceFwrIiBjb250YWlucz1lcmxhbmdTZXBhcmF0b3IKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJIZXggICAgICAgICIkXHhcKyIgY29udGFpbnM9ZXJsYW5nU2VwYXJhdG9yCitzeW4ga2V5d29yZCBlcmxhbmdDb25kaXRpb25hbCAgICAgICAgICAgICAgICBjYXNlIGlmIG9mIGVuZAorc3luIGtleXdvcmQgZXJsYW5nQ29uZGl0aW9uYWwgICAgICAgICAgICAgICAgbm90IGFuZCBvciBhbmRhbHNvIG9yZWxzZQorc3luIGtleXdvcmQgZXJsYW5nQ29uZGl0aW9uYWwgICAgICAgICAgICAgICAgd2hlbgogCi0gICAgIiBJZ25vcmUgJ18nIGFuZCAnLScgaW4gd29yZHMKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdXb3JkICAgICAgICAgICAgICJcaFwrXHcqIgorc3luIGtleXdvcmQgZXJsYW5nQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSBmYWxzZQogCi0gICAgc3luIG1hdGNoICAgZXJsYW5nQ2hhciAgICAgICAgICAgICAvXCQuLworc3luIGtleXdvcmQgZXJsYW5nR3VhcmQgICAgICAgICAgICAgICAgICAgICAgaXNfbGlzdCBpc19hbGl2ZSBpc19hdG9tIGlzX2JpbmFyeSBpc19iaXRzdHJpbmcgaXNfYm9vbGVhbiBpc190dXBsZSBpc19udW1iZXIgaXNfaW50ZWdlciBpc19mbG9hdCBpc19mdW5jdGlvbiBpc19jb25zdGFudCBpc19waWQgaXNfcG9ydCBpc19yZWZlcmVuY2UgaXNfcmVjb3JkIGlzX3Byb2Nlc3NfYWxpdmUKKworc3luIG1hdGNoIGVybGFuZ09wZXJhdG9yICAgICAgICAgICAgICAgICAgICAgL1wvXHwqXHwrXHwtXHwrK1x8LS0vCitzeW4gbWF0Y2ggZXJsYW5nT3BlcmF0b3IgICAgICAgICAgICAgICAgICAgICAvLT5cfDwtXHx8fFx8fFx8IVx8PS8KK3N5biBtYXRjaCBlcmxhbmdPcGVyYXRvciAgICAgICAgICAgICAgICAgICAgIC89Oj1cfD09XHxcLz1cfD1cLz1cfDxcfD5cfD08XHw+PS8KK3N5biBrZXl3b3JkIGVybGFuZ09wZXJhdG9yICAgICAgICAgICAgICAgICAgIGRpdiByZW0KKworc3luIHJlZ2lvbiBlcmxhbmdTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ9LyIvIGVuZD0vIi8gc2tpcD0vXFwvIGNvbnRhaW5zPUBTcGVsbCxlcmxhbmdTdHJpbmdNb2RpZmllcgorCitzeW4gbWF0Y2ggZXJsYW5nVmFyaWFibGUgICAgICAgICAgICAgICAgICAgICAvXDxbQS1aX11cdypcPi8KK3N5biBtYXRjaCBlcmxhbmdBdG9tICAgICAgICAgICAgICAgICAgICAgICAgIC9cJShcJSheLVwpXHwjXClcQDwhXDxbYS16XVtBLVphLXowLTlfXSpcPlwlKFxzKlsoOl1cKVxAIS8KK3N5biBtYXRjaCBlcmxhbmdBdG9tICAgICAgICAgICAgICAgICAgICAgICAgIC9cXFxAPCEnW14nXSpcXFxAPCEnLworCitzeW4gbWF0Y2ggZXJsYW5nUmVjb3JkICAgICAgICAgICAgICAgICAgICAgICAvI1x3XCsvCisKK3N5biBtYXRjaCBlcmxhbmdUdXBsZSAgICAgICAgICAgICAgICAgICAgICAgIC97XHx9Lworc3luIG1hdGNoIGVybGFuZ0xpc3QgICAgICAgICAgICAgICAgICAgICAgICAgL1xbXHxcXS8KKworc3luIG1hdGNoIGVybGFuZ0F0dHJpYnV0ZSAgICAgICAgICAgICAgICAgICAgL14tXCUodnNuXHxhdXRob3JcfGNvcHlyaWdodFx8Y29tcGlsZVx8ZGVwcmVjYXRlZFx8bW9kdWxlXHxleHBvcnRcfGltcG9ydFx8YmVoYXZpb3VyXHxiZWhhdmlvclx8ZXhwb3J0X3R5cGVcfGlnbm9yZV94cmVmXHxvbl9sb2FkXClccyooXEA9Lworc3luIG1hdGNoIGVybGFuZ0luY2x1ZGUgICAgICAgICAgICAgICAgICAgICAgL14taW5jbHVkZVwlKF9saWJcKVw/XHMqKFxAPS8KK3N5biBtYXRjaCBlcmxhbmdSZWNvcmREZWYgICAgICAgICAgICAgICAgICAgIC9eLXJlY29yZFxzKihcQD0vCitzeW4gbWF0Y2ggZXJsYW5nRGVmaW5lICAgICAgICAgICAgICAgICAgICAgICAvXi1cJShkZWZpbmVcfHVuZGVmXClccyooXEA9Lworc3luIG1hdGNoIGVybGFuZ1ByZUNvbmRpdCAgICAgICAgICAgICAgICAgICAgL14tXCUoaWZkZWZcfGlmbmRlZlx8ZWxzZVx8ZW5kaWZcKVwlKFxzKihcQD1cKVw/LworCitzeW4gbWF0Y2ggZXJsYW5nVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAvXi1cJShzcGVjXHx0eXBlXClbKCBdXEA9LworCitzeW4gbWF0Y2ggZXJsYW5nTWFjcm8gICAgICAgICAgICAgICAgICAgICAgICAvXCUoLWRlZmluZShcKVxAPD1cd1wrLworc3luIG1hdGNoIGVybGFuZ01hY3JvICAgICAgICAgICAgICAgICAgICAgICAgLz9cPz9cd1wrLworCitzeW4gbWF0Y2ggZXJsYW5nQml0VHlwZSAgICAgICAgICAgICAgICAgICAgICAvXCUoXC9cfC1cKVxAPD1cJShiaXRzXHxiaXRzdHJpbmdcfGJpbmFyeVx8aW50ZWdlclx8ZmxvYXRcfHVuaXRcKVw+Lworc3luIG1hdGNoIGVybGFuZ0JpdFNpemUgICAgICAgICAgICAgICAgICAgICAgLzpcQDw9WzAtOV1cKy8KKworc3luIG1hdGNoIGVybGFuZ0JpbmFyeSAgICAgICAgICAgICAgICAgICAgICAvPDxcfD4+LworCisiIEJJRnMKK3N5biBtYXRjaCBlcmxhbmdCSUYgICAgICAgICAgICAgICAgICAgICAgICAgIC9cJShbXjowLTlBLVphLXpfXVx8XDxlcmxhbmc6XClcQDw9XCUoYWJzXHxhcHBseVx8YXRvbV90b19iaW5hcnlcfGF0b21fdG9fbGlzdFx8YmluYXJ5X3BhcnRcfGJpbmFyeV90b19hdG9tXHxiaW5hcnlfdG9fZXhpc3RpbmdfYXRvbVx8YmluYXJ5X3RvX2xpc3RcfGJpbmFyeV90b190ZXJtXHxiaXRfc2l6ZVx8Yml0c3RyaW5nX3RvX2xpc3RcfGJ5dGVfc2l6ZVx8Y2hlY2tfcHJvY2Vzc19jb2RlXHxkYXRlXHxkZWxldGVfbW9kdWxlXHxkZW1vbml0b3JcfGRpc2Nvbm5lY3Rfbm9kZVx8ZWxlbWVudFx8ZXJhc2VcfGV4aXRcfGZsb2F0XHxmbG9hdF90b19saXN0XHxnYXJiYWdlX2NvbGxlY3RcfGdldFx8Z2V0X2tleXNcfGdyb3VwX2xlYWRlclx8aGRcfGludGVnZXJfdG9fbGlzdFx8aW9saXN0X3NpemVcfGlvbGlzdF90b19iaW5hcnlcfGlzX2FsaXZlXHxpc19hdG9tXHxpc19iaW5hcnlcfGlzX2JpdHN0cmluZ1x8aXNfYm9vbGVhblx8aXNfZmxvYXRcfGlzX2Z1bmN0aW9uXHxpc19pbnRlZ2VyXHxpc19saXN0XHxpc19udW1iZXJcfGlzX3BpZFx8aXNfcG9ydFx8aXNfcHJvY2Vzc19hbGl2ZVx8aXNfcmVjb3JkXHxpc19yZWZlcmVuY2VcfGlzX3R1cGxlXHxsZW5ndGhcfGxpbmtcfGxpc3RfdG9fYXRvbVx8bGlzdF90b19iaW5hcnlcfGxpc3RfdG9fYml0c3RyaW5nXHxsaXN0X3RvX2V4aXN0aW5nX2F0b21cfGxpc3RfdG9fZmxvYXRcfGxpc3RfdG9faW50ZWdlclx8bGlzdF90b19waWRcfGxpc3RfdG9fdHVwbGVcfGxvYWRfbW9kdWxlXHxtYWtlX3JlZlx8bWF4XHxtaW5cfG1vZHVsZV9sb2FkZWRcfG1vbml0b3JcfG1vbml0b3Jfbm9kZVx8bm9kZVx8bm9kZXNcfG5vd1x8b3Blbl9wb3J0XHxwaWRfdG9fbGlzdFx8cG9ydF9jbG9zZVx8cG9ydF9jb21tYW5kXHxwb3J0X2Nvbm5lY3RcfHBvcnRfY29udHJvbFx8cHJlX2xvYWRlZFx8cHJvY2Vzc2VzXHxwcm9jZXNzX2ZsYWdcfHByb2Nlc3NfaW5mb1x8cHVyZ2VfbW9kdWxlXHxwdXRcfHJlZ2lzdGVyXHxyZWdpc3RlcmVkXHxyb3VuZFx8c2VsZlx8c2V0ZWxlbWVudFx8c2l6ZVx8c3Bhd25cfHNwYXduX2xpbmtcfHNwYXduX21vbml0b3JcfHNwYXduX29wdFx8c3BsaXRfYmluYXJ5XHxzdGF0aXN0aWNzXHx0ZXJtX3RvX2JpbmFyeVx8dGltZVx8dGxcfHRydW5jXHx0dXBsZV9zaXplXHx0dXBsZV90b19saXN0XHx1bmxpbmtcfHVucmVnaXN0ZXJcfHdoZXJlaXNcKVwlKChcfFwvWzAtOV1cKVxAPS8KK3N5biBtYXRjaCBlcmxhbmdCSUYgICAgICAgICAgICAgICAgICAgICAgICAgIC9cPFwlKGVybGFuZzpcKVxAPD1cJShhcHBlbmRfZWxlbWVudFx8YnVtcF9yZWR1Y3Rpb25zXHxjYW5jZWxfdGltZXJcfGRlY29kZV9wYWNrZXRcfGRpc3BsYXlcfGZ1bmN0aW9uX2V4cG9ydGVkXHxmdW5faW5mb1x8ZnVuX3RvX2xpc3RcfGdldF9jb29raWVcfGdldF9zdGFja3RyYWNlXHxoYXNoXHxpc19idWlsdGluXHxsb2FkZWRcfGxvYWRfbmlmXHxsb2NhbHRpbWVcfGxvY2FsdGltZV90b191bml2ZXJzYWx0aW1lXHxtYWtlX3R1cGxlXHxtZW1vcnlcfG1vbml0b3Jfbm9kZVx8cGhhc2hcfHBvcnRfY2FsbFx8cG9ydF9pbmZvXHxwb3J0c1x8cG9ydF90b19saXN0XHxwcm9jZXNzX2Rpc3BsYXlcfHJlYWRfdGltZXJcfHJlZl90b19saXN0XHxyZXN1bWVfcHJvY2Vzc1x8c2VuZFx8c2VuZF9hZnRlclx8c2VuZF9ub3N1c3BlbmRcfHNldF9jb29raWVcfHN0YXJ0X3RpbWVyXHxzdXNwZW5kX3Byb2Nlc3NcfHN5c3RlbV9mbGFnXHxzeXN0ZW1faW5mb1x8c3lzdGVtX21vbml0b3JcfHN5c3RlbV9wcm9maWxlXHx0cmFjZVx8dHJhY2VfZGVsaXZlcmVkXHx0cmFjZV9pbmZvXHx0cmFjZV9wYXR0ZXJuXHx1bml2ZXJzYWx0aW1lXHx1bml2ZXJzYWx0aW1lX3RvX2xvY2FsdGltZVx8eWllbGRcKShcQD0vCitzeW4gbWF0Y2ggZXJsYW5nR0JJRiAgICAgICAgICAgICAgICAgICAgICAgICAvZXJsYW5nXCUoOlx3XClcQD0vCisKKyIgTGluayBFcmxhbmcgc3R1ZmYgdG8gVmltIGdyb3VwcworaGkgbGluayBlcmxhbmdUb2RvICAgICAgICAgICBUb2RvCitoaSBsaW5rIGVybGFuZ1N0cmluZyAgICAgICAgIFN0cmluZworaGkgbGluayBlcmxhbmdOb1NwZWxsU3RyaW5nICBTdHJpbmcKK2hpIGxpbmsgZXJsYW5nTW9kaWZpZXIgICAgICAgU3BlY2lhbENoYXIKK2hpIGxpbmsgZXJsYW5nU3RyaW5nTW9kaWZpZXIgU3BlY2lhbENoYXIKK2hpIGxpbmsgZXJsYW5nQ29tbWVudCAgICAgICAgQ29tbWVudAoraGkgbGluayBlcmxhbmdBbm5vdGF0aW9uICAgICBTcGVjaWFsCitoaSBsaW5rIGVybGFuZ1ZhcmlhYmxlICAgICAgIElkZW50aWZpZXIKK2hpIGxpbmsgZXJsYW5nSW5jbHVkZSAgICAgICAgSW5jbHVkZQoraGkgbGluayBlcmxhbmdSZWNvcmREZWYgICAgICBLZXl3b3JkCitoaSBsaW5rIGVybGFuZ0F0dHJpYnV0ZSAgICAgIEtleXdvcmQKK2hpIGxpbmsgZXJsYW5nS2V5d29yZCAgICAgICAgS2V5d29yZAoraGkgbGluayBlcmxhbmdNYWNybyAgICAgICAgICBNYWNybworaGkgbGluayBlcmxhbmdEZWZpbmUgICAgICAgICBEZWZpbmUKK2hpIGxpbmsgZXJsYW5nUHJlQ29uZGl0ICAgICAgUHJlQ29uZGl0CitoaSBsaW5rIGVybGFuZ1ByZVByb2MgICAgICAgIFByZVByb2MKK2hpIGxpbmsgZXJsYW5nRGVsaW1pdGVyICAgICAgRGVsaW1pdGVyCitoaSBsaW5rIGVybGFuZ0JpdERlbGltaXRlciAgIE5vcm1hbAoraGkgbGluayBlcmxhbmdPcGVyYXRvciAgICAgICBPcGVyYXRvcgoraGkgbGluayBlcmxhbmdDb25kaXRpb25hbCAgICBDb25kaXRpb25hbAoraGkgbGluayBlcmxhbmdHdWFyZCAgICAgICAgICBDb25kaXRpb25hbAoraGkgbGluayBlcmxhbmdCb29sZWFuICAgICAgICBCb29sZWFuCitoaSBsaW5rIGVybGFuZ0F0b20gICAgICAgICAgIENvbnN0YW50CitoaSBsaW5rIGVybGFuZ1JlY29yZCAgICAgICAgIFN0cnVjdHVyZQoraGkgbGluayBlcmxhbmdJbnRlZ2VyICAgICAgICBOdW1iZXIKK2hpIGxpbmsgZXJsYW5nRmxvYXQgICAgICAgICAgTnVtYmVyCitoaSBsaW5rIGVybGFuZ0Zsb2F0ICAgICAgICAgIE51bWJlcgoraGkgbGluayBlcmxhbmdGbG9hdCAgICAgICAgICBOdW1iZXIKK2hpIGxpbmsgZXJsYW5nRmxvYXQgICAgICAgICAgTnVtYmVyCitoaSBsaW5rIGVybGFuZ0hleCAgICAgICAgICAgIE51bWJlcgoraGkgbGluayBlcmxhbmdGdW4gICAgICAgICAgICBLZXl3b3JkCitoaSBsaW5rIGVybGFuZ0xpc3QgICAgICAgICAgIERlbGltaXRlcgoraGkgbGluayBlcmxhbmdUdXBsZSAgICAgICAgICBEZWxpbWl0ZXIKK2hpIGxpbmsgZXJsYW5nQmluYXJ5ICAgICAgICAgS2V5d29yZAoraGkgbGluayBlcmxhbmdCaXRWYXJpYWJsZSAgICBJZGVudGlmaWVyCitoaSBsaW5rIGVybGFuZ0JpdFR5cGUgICAgICAgIFR5cGUKK2hpIGxpbmsgZXJsYW5nVHlwZSAgICAgICAgICAgVHlwZQoraGkgbGluayBlcmxhbmdCaXRTaXplICAgICAgICBOdW1iZXIKKworIiBPcHRpb25hbCBoaWdobGlnaHRpbmcKK2lmIGc6ZXJsYW5nX2hpZ2hsaWdodF9iaWYKKwloaSBsaW5rIGVybGFuZ0JJRiAgICBLZXl3b3JkCisJaGkgbGluayBlcmxhbmdHQklGICAgS2V5d29yZAogZW5kaWYKLQotaWYgISBleGlzdHMgKCJlcmxhbmdfZnVuY3Rpb25zIikKLSAgICAiIEZ1bmN0aW9ucyBjYWxsCi0gICAgc3luIG1hdGNoICAgZXJsYW5nRkNhbGwgICAgICAiXCUoXHdcK1xzKlwuXHMqXCkqXHdcK1xzKls6QF1ccypcd1wrIgotCi0gICAgIiBidWlsZC1pbi1mdW5jdGlvbnMgKEJJRnMpCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBhYnMgYWxpdmUgYXBwbHkgYXRvbV90b19saXN0Ci0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBiaW5hcnlfdG9fbGlzdCBiaW5hcnlfdG9fdGVybQotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgY29uY2F0X2JpbmFyeQotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgZGF0ZSBkaXNjb25uZWN0X25vZGUKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdCSUYgICAgICAgIGVsZW1lbnQgZXJhc2UgZXhpdAotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgZmxvYXQgZmxvYXRfdG9fbGlzdAotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgZ2V0IGdldF9rZXlzIGdyb3VwX2xlYWRlcgotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgaGFsdCBoZAotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgaW50ZWdlcl90b19saXN0IGlzX2FsaXZlCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBsZW5ndGggbGluayBsaXN0X3RvX2F0b20gbGlzdF90b19iaW5hcnkKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdCSUYgICAgICAgIGxpc3RfdG9fZmxvYXQgbGlzdF90b19pbnRlZ2VyIGxpc3RfdG9fcGlkCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBsaXN0X3RvX3R1cGxlIGxvYWRfbW9kdWxlCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBtYWtlX3JlZiBtb25pdG9yX25vZGUKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdCSUYgICAgICAgIG5vZGUgbm9kZXMgbm93Ci0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBvcGVuX3BvcnQKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdCSUYgICAgICAgIHBpZF90b19saXN0IHByb2Nlc3NfZmxhZwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgcHJvY2Vzc19pbmZvIHByb2Nlc3MgcHV0Ci0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICByZWdpc3RlciByZWdpc3RlcmVkIHJvdW5kCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBzZWxmIHNldGVsZW1lbnQgc2l6ZSBzcGF3bgotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgc3Bhd25fbGluayBzcGxpdF9iaW5hcnkgc3RhdGlzdGljcwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgdGVybV90b19iaW5hcnkgdGhyb3cgdGltZSB0bCB0cnVuYwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgdHVwbGVfdG9fbGlzdAotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgdW5saW5rIHVucmVnaXN0ZXIKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdCSUYgICAgICAgIHdoZXJlaXMKLQotICAgICIgT3RoZXIgQklGcwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgYXRvbSBiaW5hcnkgY29uc3RhbnQgZnVuY3Rpb24gaW50ZWdlcgotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgbGlzdCBudW1iZXIgcGlkIHBvcnRzIHBvcnRfY2xvc2UgcG9ydF9pbmZvCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICByZWZlcmVuY2UgcmVjb3JkCi0KLSAgICAiIGVybGFuZzpCSUZzCi0gICAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBjaGVja19wcm9jZXNzX2NvZGUgZGVsZXRlX21vZHVsZQotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgZ2V0X2Nvb2tpZSBoYXNoIG1hdGggbW9kdWxlX2xvYWRlZAotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgcHJlbG9hZGVkIHByb2Nlc3NlcyBwdXJnZV9tb2R1bGUgc2V0X2Nvb2tpZQotICAgIHN5biBrZXl3b3JkIGVybGFuZ0JJRiAgICAgICAgc2V0X25vZGUKLQotICAgICIgZnVuY3Rpb25zIG9mIG1hdGggbGlicmFyeQotICAgIHN5biBrZXl3b3JkIGVybGFuZ0Z1bmN0aW9uICAgYWNvcyBhc2luIGF0YW4gYXRhbjIgY29zIGNvc2ggZXhwCi0gICAgc3luIGtleXdvcmQgZXJsYW5nRnVuY3Rpb24gICBsb2cgbG9nMTAgcGkgcG93IHBvd2VyIHNpbiBzaW5oIHNxcnQKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdGdW5jdGlvbiAgIHRhbiB0YW5oCi0KLSAgICAiIE90aGVyIGZ1bmN0aW9ucwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0Z1bmN0aW9uICAgY2FsbCBtb2R1bGVfaW5mbyBwYXJzZV90cmFuc2Zvcm0KLSAgICBzeW4ga2V5d29yZCBlcmxhbmdGdW5jdGlvbiAgIHVuZGVmaW5lZF9mdW5jdGlvbgotCi0gICAgIiBNb2R1bGVzCi0gICAgc3luIGtleXdvcmQgZXJsYW5nTW9kdWxlICAgICBlcnJvcl9oYW5kbGVyCi1lbmRpZgotCi1pZiAhIGV4aXN0cyAoImVybGFuZ19rZXl3b3JkcyIpCi0gICAgIiBDb25zdGFudHMgYW5kIERpcmVjdGl2ZXMKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdEaXJlY3RpdmUgICItYmVoYXZpb3VyXHwtYmVoYXZpb3IiCi0gICAgc3luIG1hdGNoICAgZXJsYW5nRGlyZWN0aXZlICAiLWNvbXBpbGVcfC1kZWZpbmVcfC1lbHNlXHwtZW5kaWZcfC1leHBvcnRcfC1maWxlIgotICAgIHN5biBtYXRjaCAgIGVybGFuZ0RpcmVjdGl2ZSAgIi1pZmRlZlx8LWlmbmRlZlx8LWltcG9ydFx8LWluY2x1ZGVfbGliXHwtaW5jbHVkZSIKLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdEaXJlY3RpdmUgICItbW9kdWxlXHwtcmVjb3JkXHwtdW5kZWYiCi0KLSAgICBzeW4gbWF0Y2ggICBlcmxhbmdDb25zdGFudCAgICItYXV0aG9yXHwtY29weXJpZ2h0XHwtZG9jXHwtdnNuIgotCi0gICAgIiBLZXl3b3JkcwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0tleXdvcmQgICAgYWZ0ZXIgYmVnaW4gY2FzZSBjYXRjaAotICAgIHN5biBrZXl3b3JkIGVybGFuZ0tleXdvcmQgICAgY29uZCBlbmQgZnVuIGlmCi0gICAgc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICBsZXQgb2YgcXVlcnkgcmVjZWl2ZQotICAgIHN5biBrZXl3b3JkIGVybGFuZ0tleXdvcmQgICAgd2hlbgotICAgIHN5biBrZXl3b3JkIGVybGFuZ0tleXdvcmQgICAgdHJ5Ci0KLSAgICAiIFByb2Nlc3NlcwotICAgIHN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgY3JlYXRpb24gY3VycmVudF9mdW5jdGlvbiBkaWN0aW9uYXJ5Ci0gICAgc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICBncm91cF9sZWFkZXIgaGVhcF9zaXplIGhpZ2ggaW5pdGlhbF9jYWxsCi0gICAgc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICBsaW5rZWQgbG93IG1lbW9yeV9pbl91c2UgbWVzc2FnZV9xdWV1ZQotICAgIHN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgbmV0X2tlcm5lbCBub2RlIG5vcm1hbCBwcmlvcml0eQotICAgIHN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgcmVkdWN0aW9ucyByZWdpc3RlcmVkX25hbWUgcnVubmFibGUKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdQcm9jZXNzICAgIHJ1bm5pbmcgc3RhY2tfdHJhY2Ugc3RhdHVzIHRpbWVyCi0gICAgc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICB0cmFwX2V4aXQgd2FpdGluZwotCi0gICAgIiBQb3J0cwotICAgIHN5biBrZXl3b3JkIGVybGFuZ1BvcnQgICAgICAgY29tbWFuZCBjb3VudF9pbiBjb3VudF9vdXQgY3JlYXRpb24gaW4KLSAgICBzeW4ga2V5d29yZCBlcmxhbmdQb3J0ICAgICAgIGluX2Zvcm1hdCBsaW5rZWQgbm9kZSBvdXQgb3duZXIgcGFja2V0aW5nCi0KLSAgICAiIE5vZGVzCi0gICAgc3luIGtleXdvcmQgZXJsYW5nTm9kZSAgICAgICBhdG9tX3RhYmxlcyBjb21tdW5pY2F0aW5nIGNyZWF0aW9uCi0gICAgc3luIGtleXdvcmQgZXJsYW5nTm9kZSAgICAgICBjdXJyZW50X2djIGN1cnJlbnRfcmVkdWN0aW9ucyBjdXJyZW50X3J1bnRpbWUKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIGN1cnJlbnRfd2FsbF9jbG9jayBkaXN0cmlidXRpb25fcG9ydAotICAgIHN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgZW50cnlfcG9pbnRzIGVycm9yX2hhbmRsZXIgZnJpZW5kcwotICAgIHN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgZ2FyYmFnZV9jb2xsZWN0aW9uIG1hZ2ljX2Nvb2tpZSBtYWdpY19jb29raWVzCi0gICAgc3luIGtleXdvcmQgZXJsYW5nTm9kZSAgICAgICBtb2R1bGVfdGFibGUgbW9uaXRvcmVkX25vZGVzIG5hbWUgbmV4dF9yZWYKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIHBvcnRzIHByZWxvYWRlZCBwcm9jZXNzZXMgcmVkdWN0aW9ucwotICAgIHN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgcmVmX3N0YXRlIHJlZ2lzdHJ5IHJ1bnRpbWUgd2FsbF9jbG9jawotCi0gICAgIiBSZXNlcnZlZAotICAgIHN5biBrZXl3b3JkIGVybGFuZ1Jlc2VydmVkICAgYXBwbHlfbGFtYmRhIG1vZHVsZV9pbmZvIG1vZHVsZV9sYW1iZGFzCi0gICAgc3luIGtleXdvcmQgZXJsYW5nUmVzZXJ2ZWQgICByZWNvcmQgcmVjb3JkX2luZGV4IHJlY29yZF9pbmZvCi0KLSAgICAiIEV4dHJhcwotICAgIHN5biBrZXl3b3JkIGVybGFuZ0V4dHJhICAgICAgYmFkYXJnIG5vY29va2llIGZhbHNlIGZ1biB0cnVlCi0KLSAgICAiIFNpZ25hbHMKLSAgICBzeW4ga2V5d29yZCBlcmxhbmdTaWduYWwgICAgIGJhZHNpZyBraWxsIGtpbGxlZCBleGl0IG5vcm1hbAotZW5kaWYKLQotCi0KLSIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KLSIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQotIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAotaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cyAoImRpZF9lcmxhbmdfaW5pdHMiKQotICAgIGlmIHZlcnNpb24gPCA1MDgKLSAgICAgICAgbGV0IGRpZF9lcmxhbmdfaW5pdHMgPSAxCi0gICAgICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+Ci0gICAgZWxzZQotICAgICAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KLSAgICBlbmRpZgotCi0gICAgIiBlcmxhbmdfY2hhcmFjdGVycwotICAgIEhpTGluayBlcmxhbmdDb21tZW50IENvbW1lbnQKLSAgICBIaUxpbmsgZXJsYW5nQW5ub3RhdGlvbiBTcGVjaWFsCi0gICAgSGlMaW5rIGVybGFuZ1RvZG8gVG9kbwotICAgIEhpTGluayBlcmxhbmdTcGVjaWFsQ2hhcmFjdGVyIFNwZWNpYWwKLSAgICBIaUxpbmsgZXJsYW5nU2VwYXJhdG9yIE5vcm1hbAotICAgIEhpTGluayBlcmxhbmdNb2RpZmllciBTcGVjaWFsCi0gICAgSGlMaW5rIGVybGFuZ09wZXJhdG9yIE9wZXJhdG9yCi0gICAgSGlMaW5rIGVybGFuZ1N0cmluZyBTdHJpbmcKLSAgICBIaUxpbmsgZXJsYW5nQXRvbSBUeXBlCi0KLSAgICBIaUxpbmsgZXJsYW5nTnVtYmVySW50ZWdlciBOdW1iZXIKLSAgICBIaUxpbmsgZXJsYW5nTnVtYmVyRmxvYXQxIEZsb2F0Ci0gICAgSGlMaW5rIGVybGFuZ051bWJlckZsb2F0MiBGbG9hdAotICAgIEhpTGluayBlcmxhbmdOdW1iZXJGbG9hdDMgRmxvYXQKLSAgICBIaUxpbmsgZXJsYW5nTnVtYmVyRmxvYXQ0IEZsb2F0Ci0gICAgSGlMaW5rIGVybGFuZ051bWJlckhleCBOdW1iZXIKLQotICAgIEhpTGluayBlcmxhbmdXb3JkIE5vcm1hbAotCi0gICAgIiBlcmxhbmdfZnVuY3Rpb25zCi0gICAgSGlMaW5rIGVybGFuZ0ZDYWxsIEZ1bmN0aW9uCi0gICAgSGlMaW5rIGVybGFuZ0JJRiBGdW5jdGlvbgotICAgIEhpTGluayBlcmxhbmdGdW5jdGlvbiBGdW5jdGlvbgotICAgIEhpTGluayBlcmxhbmdNb2R1bGVGdW5jdGlvbiBGdW5jdGlvbgotCi0gICAgIiBlcmxhbmdfa2V5d29yZHMKLSAgICBIaUxpbmsgZXJsYW5nRGlyZWN0aXZlIFR5cGUKLSAgICBIaUxpbmsgZXJsYW5nQ29uc3RhbnQgVHlwZQotICAgIEhpTGluayBlcmxhbmdLZXl3b3JkIEtleXdvcmQKLSAgICBIaUxpbmsgZXJsYW5nUHJvY2VzcyBTcGVjaWFsCi0gICAgSGlMaW5rIGVybGFuZ1BvcnQgU3BlY2lhbAotICAgIEhpTGluayBlcmxhbmdOb2RlIFNwZWNpYWwKLSAgICBIaUxpbmsgZXJsYW5nUmVzZXJ2ZWQgU3RhdGVtZW50Ci0gICAgSGlMaW5rIGVybGFuZ0V4dHJhIFN0YXRlbWVudAotICAgIEhpTGluayBlcmxhbmdTaWduYWwgU3RhdGVtZW50Ci0KLSAgICBkZWxjb21tYW5kIEhpTGluawotZW5kaWYKLQotCi1sZXQgYjpjdXJyZW50X3N5bnRheCA9ICJlcmxhbmciCi0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltIGIvcnVudGltZS9zeW50YXgvZm9ydHJhbi52aW0KaW5kZXggM2U1Y2IyMi4uNmZlNDJhZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZm9ydHJhbi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZm9ydHJhbi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgZWFybGllciB2ZXJzaW9ucyBpbmNsdWRpbmcgMjAwMywgOTUsIDkwLCBhbmQgNzcpCi0iIFZlcnNpb246CTAuOTEKLSIgTGFzdCBDaGFuZ2U6CTIwMTIgSmFuLiAwMgorIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgZWFybGllciB2ZXJzaW9uczogMjAwMywgOTUsIDkwLCBhbmQgNzcpCisiIFZlcnNpb246CTAuOTMKKyIgTGFzdCBDaGFuZ2U6CTIwMTIgSmFuLiAxOAogIiBNYWludGFpbmVyOglBaml0IEouIFRoYWtrYXIgKGFqaXQgQVQgdW5iLmNhKTsgPGh0dHA6Ly93d3cudW5iLmNhL2NoZW0vYWppdC8+CiAiIFVzYWdlOglGb3IgaW5zdHJ1Y3Rpb25zLCBkbyA6aGVscCBmb3J0cmFuLXN5bnRheCBmcm9tIFZpbQogIiBDcmVkaXRzOgpAQCAtMTEsNjYgKzExLDQ4IEBACiAiICBXYWx0ZXIgRGlldWRvbm7pLCBBbGV4YW5kZXIgV2FnbmVyLCBSb21hbiBCZXJ0bGUsIENoYXJsZXMgUmVuZGxlbWFuLAogIiAgQW5kcmV3IEdyaWZmaXRocywgSm9lIEtyYWhuLCBhbmQgSGVuZHJpayBNZXJ4LgogCi0iIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwotIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgaWYgYSBzeW50YXggZmlsZSBpcyBhbHJlYWR5IGxvYWRlZAotaWYgdmVyc2lvbiA8IDYwMAotICBzeW50YXggY2xlYXIKLWVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQoraWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCiBlbmRpZgogCiBsZXQgczpjcG9fc2F2ZSA9ICZjcG8KIHNldCBjcG8mdmltCiAKLSIgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gZm9ydHJhbl9kaWFsZWN0IGlmIHNldCBjb3JyZWN0bHkgYnkgdXNlcgotaWYgZXhpc3RzKCJmb3J0cmFuX2RpYWxlY3QiKQotICBpZiBmb3J0cmFuX2RpYWxlY3QgPX4gJ1w8XChmXCg5WzA1XVx8NzdcKVx8ZWxmXHxGXClcPicKLSAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSBtYXRjaHN0cihmb3J0cmFuX2RpYWxlY3QsJ1w8XChmXCg5WzA1XVx8NzdcKVx8ZWxmXHxGXClcPicpCi0gIGVsc2UKLSAgICBlY2hvaGwgV2FybmluZ01zZyB8IGVjaG8gIlVua25vd24gdmFsdWUgb2YgZm9ydHJhbl9kaWFsZWN0IiB8IGVjaG9obCBOb25lCi0gICAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gInVua25vd24iCisiIENob29zZSBmb3J0cmFuX2RpYWxlY3QgdXNpbmcgdGhlIHByaW9yaXR5OgorIiBzb3VyY2UgZmlsZSBkaXJlY3RpdmUgPiBidWZmZXItbG9jYWwgdmFsdWUgPiBnbG9iYWwgdmFsdWUgPiBkZWZhdWx0CisiIHRyeSB1c2luZyBkaXJlY3RpdmUgaW4gZmlyc3QgdGhyZWUgbGluZXMgb2YgZmlsZQorbGV0IGI6Zm9ydHJhbl9yZXR5cGUgPSBnZXRsaW5lKDEpLiIgIi5nZXRsaW5lKDIpLiIgIi5nZXRsaW5lKDMpCitpZiBiOmZvcnRyYW5fcmV0eXBlID1+PyAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqRlw+JworICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiRiIKK2Vsc2VpZiBiOmZvcnRyYW5fcmV0eXBlID1+PyAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqZjA4XD4nCisgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmMDgiCitlbHNlaWYgIWV4aXN0cygiYjpmb3J0cmFuX2RpYWxlY3QiKQorICBpZiBleGlzdHMoImc6Zm9ydHJhbl9kaWFsZWN0IikgJiYgZzpmb3J0cmFuX2RpYWxlY3QgPX4jICdcPEZcfGYwOFw+JworICAgICIgdHJ5IGdsb2JhbCB2YXJpYWJsZQorICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9IGc6Zm9ydHJhbl9kaWFsZWN0CisgIGVsc2UgICAgICAgICAiIG5vdGhpbmcgZm91bmQsIHNvIHVzZSBkZWZhdWx0CisgICAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKICAgZW5kaWYKLWVsc2UKLSAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gInVua25vd24iCiBlbmRpZgotCi0iIGZvcnRyYW5fZGlhbGVjdCBub3Qgc2V0IG9yIHNldCBpbmNvcnJlY3RseSBieSB1c2VyLAotaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gInVua25vd24iCi0gICIgc2V0IGI6Zm9ydHJhbl9kaWFsZWN0IGZyb20gZGlyZWN0aXZlIGluIGZpcnN0IHRocmVlIGxpbmVzIG9mIGZpbGUKLSAgbGV0IGI6Zm9ydHJhbl9yZXR5cGUgPSBnZXRsaW5lKDEpLiIgIi5nZXRsaW5lKDIpLiIgIi5nZXRsaW5lKDMpCi0gIGlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKkZcPicKLSAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiRiIKLSAgZWxzZWlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKmVsZlw+JwotICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJlbGYiCi0gIGVsc2VpZiBiOmZvcnRyYW5fcmV0eXBlID1+ICdcPGZvcnRyYW5fZGlhbGVjdFxzKj1ccypmOTBcPicKLSAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiZjkwIgotICBlbHNlaWYgYjpmb3J0cmFuX3JldHlwZSA9fiAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqZjk1XD4nCi0gICAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImY5NSIKLSAgZWxzZWlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKmY3N1w+JwotICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmNzciCi0gIGVsc2UKLSAgICAiIG5vIGRpcmVjdGl2ZSBmb3VuZCwgc28gYXNzdW1lIGY5NQotICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmOTUiCi0gIGVuZGlmCi0gIHVubGV0IGI6Zm9ydHJhbl9yZXR5cGUKK3VubGV0ISBiOmZvcnRyYW5fcmV0eXBlCisiIG1ha2Ugc3VyZSBidWZmZXItbG9jYWwgdmFsdWUgaXMgbm90IGludmFsaWQKK2lmIGI6Zm9ydHJhbl9kaWFsZWN0ICF+IyAnXDxGXHxmMDhcPicKKyAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKIGVuZGlmCiAKICIgQ2hvb3NlIGJldHdlZW4gZml4ZWQgYW5kIGZyZWUgc291cmNlIGZvcm0gaWYgdGhpcyBoYXNuJ3QgYmVlbiBkb25lIHlldAogaWYgIWV4aXN0cygiYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSIpCi0gIGlmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJlbGYiIHx8IGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIgotICAgICIgZWxmIGFuZCBGIHJlcXVpcmUgZnJlZSBzb3VyY2UgZm9ybQorICBpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKKyAgICAiIEYgcmVxdWlyZXMgZnJlZSBzb3VyY2UgZm9ybQogICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMAotICBlbHNlaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gImY3NyIKLSAgICAiIGY3NyByZXF1aXJlcyBmaXhlZCBzb3VyY2UgZm9ybQotICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZyZWVfc291cmNlIikKLSAgICAiIFVzZXIgZ3VhcmFudGVlcyBmcmVlIHNvdXJjZSBmb3JtIGZvciBhbGwgZjkwIGFuZCBmOTUgZmlsZXMKKyAgICAiIFVzZXIgZ3VhcmFudGVlcyBmcmVlIHNvdXJjZSBmb3JtIGZvciBhbGwgZm9ydHJhbiBmaWxlcwogICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMAogICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZpeGVkX3NvdXJjZSIpCi0gICAgIiBVc2VyIGd1YXJhbnRlZXMgZml4ZWQgc291cmNlIGZvcm0gZm9yIGFsbCBmOTAgYW5kIGY5NSBmaWxlcworICAgICIgVXNlciBndWFyYW50ZWVzIGZpeGVkIHNvdXJjZSBmb3JtIGZvciBhbGwgZm9ydHJhbiBmaWxlcwogICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogICBlbHNlCi0gICAgIiBmOTAgYW5kIGY5NSBhbGxvdyBib3RoIGZpeGVkIGFuZCBmcmVlIHNvdXJjZSBmb3JtLgorICAgICIgTW9kZXJuIGZvcnRyYW4gc3RpbGwgYWxsb3dzIGJvdGggZnJlZSBhbmQgZml4ZWQgc291cmNlIGZvcm0uCiAgICAgIiBBc3N1bWUgZml4ZWQgc291cmNlIGZvcm0gdW5sZXNzIHNpZ25zIG9mIGZyZWUgc291cmNlIGZvcm0KICAgICAiIGFyZSBkZXRlY3RlZCBpbiB0aGUgZmlyc3QgZml2ZSBjb2x1bW5zIG9mIHRoZSBmaXJzdCBzOmxtYXggbGluZXMuCiAgICAgIiBEZXRlY3Rpb24gYmVjb21lcyBtb3JlIGFjY3VyYXRlIGFuZCB0aW1lLWNvbnN1bWluZyBpZiBtb3JlIGxpbmVzCkBAIC05NiwyOSArNzgsMTggQEAKIAogc3luIGNhc2UgaWdub3JlCiAKLWlmIGI6Zm9ydHJhbl9kaWFsZWN0ICE9PyAiZjc3IgotICBpZiB2ZXJzaW9uID49IDYwMAotICAgIGlmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQotICAgICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCSJeXHNcezYsfVx6c1xhXHcqXHplXHMqOiIKLSAgICBlbHNlCi0gICAgICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcenNcYVx3Klx6ZVxzKjoiCi0gICAgZW5kaWYKLSAgICBpZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKLSAgICAgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmRvXHNcK1wpXEA8PVxhXHcqIgotICAgICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqaWZcc1wrXClcQDw9XGFcdyoiCi0gICAgICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccypzZWxlY3Rcc1wrXClcQDw9XGFcdyoiCi0gICAgZW5kaWYKLSAgZWxzZQotICAgIGlmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQotICAgICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCSJeXHNcezYsfVxhXHcqXHMqOiIKLSAgICBlbHNlCi0gICAgICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcYVx3KlxzKjoiCi0gICAgZW5kaWYKLSAgZW5kaWYKK2lmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5cc1x7Nix9XHpzXGFcdypcemVccyo6IgorZWxzZQorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcenNcYVx3Klx6ZVxzKjoiCitlbmRpZgoraWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmRvXHNcK1wpXEA8PVxhXHcqIgorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccyppZlxzXCtcKVxAPD1cYVx3KiIKKyAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqc2VsZWN0XHNcK1wpXEA8PVxhXHcqIgogZW5kaWYKIAotc3luIG1hdGNoICAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXD4iCi0KK3N5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRcPiIKIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8Y2hhcmFjdGVyXD4iCiBzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGNvbXBsZXhcPiIKIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8aW50ZWdlclw+IgpAQCAtMTQ1LDcgKzExNiw3IEBACiBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcLlxzKm5cPWVxdlxzKlwuIgogc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvcgkiXC5ccypcKGFuZFx8b3JcfG5vdFwpXHMqXC4iCiBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcKCtcfC1cfC9cfFwqXCkiCi1zeW4gbWF0Y2ggZm9ydHJhblR5cGVPYgkJIlw8Y2hhcmFjdGVyXD5cQDw9XHMqXCoiCitzeW4gbWF0Y2ggZm9ydHJhblR5cGVPYgkJIlw8Y2hhcmFjdGVyXHMqXCoiCiAKIHN5biBtYXRjaCBmb3J0cmFuQm9vbGVhbgkiXC5ccypcKHRydWVcfGZhbHNlXClccypcLiIKIApAQCAtMTYwLDE3ICsxMzEsMTcgQEAKIAogc3luIGtleXdvcmQgZm9ydHJhbklPCQlhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0CiAKLXN5biBrZXl3b3JkIGZvcnRyYW42NkludHJpbnNpYwkJYWxvZyBhbG9nMTAgYW1heDAgYW1heDEgYW1pbjAgYW1pbjEgYW1vZCBjYWJzIGNjb3MgY2V4cCBjbG9nIGNzaW4gY3NxcnQgZGFicyBkYWNvcyBkYXNpbiBkYXRhbiBkYXRhbjIgZGNvcyBkY29zaCBkZGltIGRleHAgZGludCBkbG9nIGRsb2cxMCBkbWF4MSBkbWluMSBkbW9kIGRuaW50IGRzaWduIGRzaW4gZHNpbmggZHNxcnQgZHRhbiBkdGFuaCBmbG9hdCBpYWJzIGlkaW0gaWRpbnQgaWRuaW50IGlmaXggaXNpZ24gbWF4MCBtYXgxIG1pbjAgbWluMSBzbmdsCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUgkJYWxvZyBhbG9nMTAgYW1heDAgYW1heDEgYW1pbjAgYW1pbjEgYW1vZCBjYWJzIGNjb3MgY2V4cCBjbG9nIGNzaW4gY3NxcnQgZGFicyBkYWNvcyBkYXNpbiBkYXRhbiBkYXRhbjIgZGNvcyBkY29zaCBkZGltIGRleHAgZGludCBkbG9nIGRsb2cxMCBkbWF4MSBkbWluMSBkbW9kIGRuaW50IGRzaWduIGRzaW4gZHNpbmggZHNxcnQgZHRhbiBkdGFuaCBmbG9hdCBpYWJzIGlkaW0gaWRpbnQgaWRuaW50IGlmaXggaXNpZ24gbWF4MCBtYXgxIG1pbjAgbWluMSBzbmdsCiAKICIgSW50cmluc2ljcyBwcm92aWRlZCBieSBzb21lIHZlbmRvcnMKIHN5biBrZXl3b3JkIGZvcnRyYW5FeHRyYUludHJpbnNpYwlhbGdhbWEgY2RhYnMgY2Rjb3MgY2RleHAgY2Rsb2cgY2RzaW4gY2RzcXJ0IGNxYWJzIGNxY29zIGNxZXhwIGNxbG9nIGNxc2luIGNxc3FydCBkY21wbHggZGNvbmpnIGRlcmYgZGVyZmMgZGZsb2F0IGRnYW1tYSBkaW1hZyBkbGdhbWEgaXFpbnQgcWFicyBxYWNvcyBxYXNpbiBxYXRhbiBxYXRhbjIgcWNtcGx4IHFjb25qZyBxY29zIHFjb3NoIHFkaW0gcWVyZiBxZXJmYyBxZXhwIHFnYW1tYSBxaW1hZyBxbGdhbWEgcWxvZyBxbG9nMTAgcW1heDEgcW1pbjEgcW1vZCBxbmludCBxc2lnbiBxc2luIHFzaW5oIHFzcXJ0IHF0YW4gcXRhbmgKIAotc3luIGtleXdvcmQgZm9ydHJhbjc3SW50cmluc2ljCWFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaAotc3luIG1hdGNoIGZvcnRyYW43N0ludHJpbnNpYwkiXDxsZW5ccypbKCxdIm1lPXMrMwotc3luIG1hdGNoIGZvcnRyYW43N0ludHJpbnNpYwkiXDxyZWFsXHMqKCJtZT1zKzQKK3N5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJYWJzIGFjb3MgYWltYWcgYWludCBhbmludCBhc2luIGF0YW4gYXRhbjIgY2hhciBjbXBseCBjb25qZyBjb3MgY29zaCBleHAgaWNoYXIgaW5kZXggaW50IGxvZyBsb2cxMCBtYXggbWluIG5pbnQgc2lnbiBzaW4gc2luaCBzcXJ0IHRhbiB0YW5oCitzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkiXDxsZW5ccypbKCxdIm1lPXMrMworc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8cmVhbFxzKigibWU9cys0CiBzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XHNcK3JlYWwiCiBzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJeXHMqcmVhbFw+Igotc3luIG1hdGNoIGZvcnRyYW45MEludHJpbnNpYwkiXDxsb2dpY2FsXHMqKCJtZT1zKzcKK3N5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPGxvZ2ljYWxccyooIm1lPXMrNwogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXDxpbXBsaWNpdFxzXCtsb2dpY2FsIgogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXlxzKmxvZ2ljYWxcPiIKIApAQCAtMTc4LDEzICsxNDksMTMgQEAKICIgSW50ZWdlcnMKIHN5biBtYXRjaCBmb3J0cmFuTnVtYmVyCWRpc3BsYXkgIlw8XGRcK1woX1xhXHcqXClcPVw+IgogIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIHdpdGhvdXQgYSBkZWNpbWFsIHBvaW50Ci1zeW4gbWF0Y2ggZm9ydHJhbkZsb2F0Tm9EZWMJZGlzcGxheQkiXDxcZFwrW2RlcV1bLStdXD1cZFwrXChfXGFcdypcKVw9XD4iCitzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1tkZXFdWy0rXVw9XGRcK1woX1xhXHcqXClcPVw+IgogIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIHN0YXJ0aW5nIHdpdGggYSBkZWNpbWFsIHBvaW50Ci1zeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SW5pRGVjCWRpc3BsYXkJIlwuXGRcK1woW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+Igorc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcLlxkXCtcKFtkZXFdWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKICIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCBubyBkaWdpdHMgYWZ0ZXIgZGVjaW1hbAotc3luIG1hdGNoIGZvcnRyYW5GbG9hdEVuZERlYwlkaXNwbGF5CSJcPFxkXCtcLlwoW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+Igorc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcPFxkXCtcLlwoW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgogIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIEQgb3IgUSBleHBvbmVudHMKLXN5biBtYXRjaCBmb3J0cmFuRmxvYXRERXhwCWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woW2RxXVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCitzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woW2RxXVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCiAiIGZsb2F0aW5nIHBvaW50IG51bWJlcgogc3luIG1hdGNoIGZvcnRyYW5GbG9hdAlkaXNwbGF5CSJcPFxkXCtcLlxkXCtcKGVbLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgogIiBOdW1iZXJzIGluIGZvcm1hdHMKQEAgLTIwMiw3NiArMTczLDczIEBACiBzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICBcZFxkXD1ccyJtcz1zKzMsbWU9ZS0xCiBzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICAgXGRccyJtcz1zKzQsbWU9ZS0xCiAKLWlmIHZlcnNpb24gPj0gNjAwICYmIGV4aXN0cygiZm9ydHJhbl9tb3JlX3ByZWNpc2UiKQoraWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCiAgICIgTnVtYmVycyBhcyB0YXJnZXRzCiAgIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxpZlxzKiguXCspXHMqXClcQDw9XChcZFwrXHMqLFxzKlwpXHsyfVxkXCtcPiIKICAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGRvXHNcK1wpXEA8PVxkXCtcPiIKICAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGdvXHMqdG9ccyooXD1cKVxAPD1cKFxkXCtccyosXHMqXCkqXGRcK1w+IgogZW5kaWYKIAotc3luIGtleXdvcmQgZm9ydHJhblR5cGVFeAlleHRlcm5hbAotc3luIGtleXdvcmQgZm9ydHJhbklPRXgJCWZvcm1hdAotc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkRXgJIlw8Y29udGludWVcPiIKK3N5biBrZXl3b3JkIGZvcnRyYW5UeXBlUglleHRlcm5hbAorc3luIGtleXdvcmQgZm9ydHJhbklPUgkJZm9ybWF0CitzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmRSCSJcPGNvbnRpbnVlXD4iCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQJIl5ccypcZFwrXHNcK2NvbnRpbnVlXD4iCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQgIAkiXDxnb1xzKnRvXD4iCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmREZWwgIAkiXDxnb1xzKnRvXHplXHNcKy4qLFxzKiguKiQiCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmRPYiAgCSJcPGdvXHMqdG9cemVccyooXGRcKy4qJCIKLXN5biByZWdpb24gZm9ydHJhblN0cmluZ0V4CXN0YXJ0PSsnKyBlbmQ9KycrIGNvbnRhaW5zPWZvcnRyYW5Db250aW51ZU1hcmssZm9ydHJhbkxlZnRNYXJnaW4sZm9ydHJhblNlcmlhbE51bWJlcgotc3luIGtleXdvcmQgZm9ydHJhbjc3SW50cmluc2ljRXgJZGltIGxnZSBsZ3QgbGxlIGxsdCBtb2QKK3N5biByZWdpb24gZm9ydHJhblN0cmluZ1IJc3RhcnQ9KycrIGVuZD0rJysgY29udGFpbnM9Zm9ydHJhbkNvbnRpbnVlTWFyayxmb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuU2VyaWFsTnVtYmVyCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUglkaW0gbGdlIGxndCBsbGUgbGx0IG1vZAogc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmREZWwJYXNzaWduIHBhdXNlCiAKLWlmIGI6Zm9ydHJhbl9kaWFsZWN0ICE9ICJmNzciCitzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICJcPHR5cGVcPiIKK3N5biBrZXl3b3JkIGZvcnRyYW5UeXBlCSAgICAgICAgbm9uZQogCi0gIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICJcPHR5cGVcPiIKLSAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUJbm9uZQorc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwcml2YXRlIHB1YmxpYyBpbnRlbnQgb3B0aW9uYWwKK3N5biBrZXl3b3JkIGZvcnRyYW5TdHJ1Y3R1cmUJcG9pbnRlciB0YXJnZXQgYWxsb2NhdGFibGUKK3N5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3MJaW4gb3V0CitzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxraW5kXHMqPSJtZT1zKzQKK3N5biBtYXRjaCBmb3J0cmFuU3RvcmFnZUNsYXNzCSJcPGxlblxzKj0ibWU9cyszCiAKLSAgc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwcml2YXRlIHB1YmxpYyBpbnRlbnQgb3B0aW9uYWwKLSAgc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwb2ludGVyIHRhcmdldCBhbGxvY2F0YWJsZQotICBzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzCWluIG91dAotICBzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxraW5kXHMqPSJtZT1zKzQKLSAgc3luIG1hdGNoIGZvcnRyYW5TdG9yYWdlQ2xhc3MJIlw8bGVuXHMqPSJtZT1zKzMKK3N5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxtb2R1bGVcPiIKK3N5biBrZXl3b3JkIGZvcnRyYW5Vbml0SGVhZGVyCXVzZSBvbmx5IGNvbnRhaW5zCitzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcglyZXN1bHQgb3BlcmF0b3IgYXNzaWdubWVudAorc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGludGVyZmFjZVw+Igorc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPHJlY3Vyc2l2ZVw+Igorc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmQJYWxsb2NhdGUgZGVhbGxvY2F0ZSBudWxsaWZ5IGN5Y2xlIGV4aXQKK3N5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XD4iCitzeW4ga2V5d29yZCBmb3J0cmFuQ29uZGl0aW9uYWwJY2FzZSBkZWZhdWx0IHdoZXJlIGVsc2V3aGVyZQogCi0gIHN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxtb2R1bGVcPiIKLSAgc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXIJdXNlIG9ubHkgY29udGFpbnMKLSAgc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXIJcmVzdWx0IG9wZXJhdG9yIGFzc2lnbm1lbnQKLSAgc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGludGVyZmFjZVw+IgotICBzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8cmVjdXJzaXZlXD4iCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5LZXl3b3JkCWFsbG9jYXRlIGRlYWxsb2NhdGUgbnVsbGlmeSBjeWNsZSBleGl0Ci0gIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XD4iCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbAljYXNlIGRlZmF1bHQgd2hlcmUgZWxzZXdoZXJlCitzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcKFwoPlx8PFwpPVw9XHw9PVx8Lz1cfD1cKSIKK3N5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIj0+IgogCi0gIHN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwoXCg+XHw8XCk9XD1cfD09XHwvPVx8PVwpIgotICBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSI9PiIKK3N5biByZWdpb24gZm9ydHJhblN0cmluZwlzdGFydD0rIisgZW5kPSsiKwljb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKK3N5biBrZXl3b3JkIGZvcnRyYW5JTwkJcGFkIHBvc2l0aW9uIGFjdGlvbiBkZWxpbSByZWFkd3JpdGUKK3N5biBrZXl3b3JkIGZvcnRyYW5JTwkJZW9yIGFkdmFuY2Ugbm1sCiAKLSAgc3luIHJlZ2lvbiBmb3J0cmFuU3RyaW5nCXN0YXJ0PSsiKyBlbmQ9KyIrCWNvbnRhaW5zPWZvcnRyYW5MZWZ0TWFyZ2luLGZvcnRyYW5Db250aW51ZU1hcmssZm9ydHJhblNlcmlhbE51bWJlcgotICBzeW4ga2V5d29yZCBmb3J0cmFuSU8JCXBhZCBwb3NpdGlvbiBhY3Rpb24gZGVsaW0gcmVhZHdyaXRlCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5JTwkJZW9yIGFkdmFuY2Ugbm1sCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCWFkanVzdGwgYWRqdXN0ciBhbGwgYWxsb2NhdGVkIGFueSBhc3NvY2lhdGVkIGJpdF9zaXplIGJ0ZXN0IGNlaWxpbmcgY291bnQgY3NoaWZ0IGRhdGVfYW5kX3RpbWUgZGlnaXRzIGRvdF9wcm9kdWN0IGVvc2hpZnQgZXBzaWxvbiBleHBvbmVudCBmbG9vciBmcmFjdGlvbiBodWdlIGlhbmQgaWJjbHIgaWJpdHMgaWJzZXQgaWVvciBpb3IgaXNoZnQgaXNoZnRjIGxib3VuZCBsZW5fdHJpbSBtYXRtdWwgbWF4ZXhwb25lbnQgbWF4bG9jIG1heHZhbCBtZXJnZSBtaW5leHBvbmVudCBtaW5sb2MgbWludmFsIG1vZHVsbyBtdmJpdHMgbmVhcmVzdCBwYWNrIHByZWNpc2lvbiBwcmVzZW50IHByb2R1Y3QgcmFkaXggcmFuZG9tX251bWJlciByYW5kb21fc2VlZCByYW5nZSByZXBlYXQgcmVzaGFwZSBycnNwYWNpbmcKK3N5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJc2NhbGUgc2NhbiBzZWxlY3RlZF9pbnRfa2luZCBzZWxlY3RlZF9yZWFsX2tpbmQgc2V0X2V4cG9uZW50IHNoYXBlIHNpemUgc3BhY2luZyBzcHJlYWQgc3VtIHN5c3RlbV9jbG9jayB0aW55IHRyYW5zcG9zZSB0cmltIHVib3VuZCB1bnBhY2sgdmVyaWZ5CitzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkJIlw8bm90XD5cKFxzKlwuXClcQCEibWU9cyszCitzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkiXDxraW5kXD5ccypbKCxdIm1lPXMrNAogCi0gIHN5biBrZXl3b3JkIGZvcnRyYW45MEludHJpbnNpYwlhZGp1c3RsIGFkanVzdHIgYWxsIGFsbG9jYXRlZCBhbnkgYXNzb2NpYXRlZCBiaXRfc2l6ZSBidGVzdCBjZWlsaW5nIGNvdW50IGNzaGlmdCBkYXRlX2FuZF90aW1lIGRpZ2l0cyBkb3RfcHJvZHVjdCBlb3NoaWZ0IGVwc2lsb24gZXhwb25lbnQgZmxvb3IgZnJhY3Rpb24gaHVnZSBpYW5kIGliY2xyIGliaXRzIGlic2V0IGllb3IgaW9yIGlzaGZ0IGlzaGZ0YyBsYm91bmQgbGVuX3RyaW0gbWF0bXVsIG1heGV4cG9uZW50IG1heGxvYyBtYXh2YWwgbWVyZ2UgbWluZXhwb25lbnQgbWlubG9jIG1pbnZhbCBtb2R1bG8gbXZiaXRzIG5lYXJlc3QgcGFjayBwcmVjaXNpb24gcHJlc2VudCBwcm9kdWN0IHJhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nCi0gIHN5biBrZXl3b3JkIGZvcnRyYW45MEludHJpbnNpYwlzY2FsZSBzY2FuIHNlbGVjdGVkX2ludF9raW5kIHNlbGVjdGVkX3JlYWxfa2luZCBzZXRfZXhwb25lbnQgc2hhcGUgc2l6ZSBzcGFjaW5nIHNwcmVhZCBzdW0gc3lzdGVtX2Nsb2NrIHRpbnkgdHJhbnNwb3NlIHRyaW0gdWJvdW5kIHVucGFjayB2ZXJpZnkKLSAgc3luIG1hdGNoIGZvcnRyYW45MEludHJpbnNpYwkJIlw8bm90XD5cKFxzKlwuXClcQCEibWU9cyszCi0gIHN5biBtYXRjaCBmb3J0cmFuOTBJbnRyaW5zaWMJIlw8a2luZFw+XHMqWygsXSJtZT1zKzQKK3N5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqZnVuY3Rpb24iCitzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmludGVyZmFjZSIKK3N5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqbW9kdWxlIgorc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypwcm9ncmFtIgorc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJyb3V0aW5lIgorc3luIG1hdGNoICBmb3J0cmFuUmVwZWF0CSJcPGVuZFxzKmRvIgorc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqd2hlcmUiCitzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RccypjYXNlIgorc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqc2VsZWN0Igorc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxlbmRccyp0eXBlIgorc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxpblxzKm91dCIKIAotICBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmZ1bmN0aW9uIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmludGVyZmFjZSIKLSAgc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccyptb2R1bGUiCi0gIHN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqcHJvZ3JhbSIKLSAgc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJyb3V0aW5lIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5SZXBlYXQJIlw8ZW5kXHMqZG8iCi0gIHN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKndoZXJlIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RccypjYXNlIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxlbmRccypzZWxlY3QiCi0gIHN5biBtYXRjaCAgZm9ydHJhblR5cGUJIlw8ZW5kXHMqdHlwZSIKLSAgc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxpblxzKm91dCIKK3N5biBrZXl3b3JkIGZvcnRyYW5UeXBlCXByb2NlZHVyZQorc3luIGtleXdvcmQgZm9ydHJhbklPUgkJbmFtZWxpc3QKK3N5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbFIJd2hpbGUKK3N5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNSCWFjaGFyIGlhY2hhciB0cmFuc2ZlcgogCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlCXByb2NlZHVyZQotICBzeW4ga2V5d29yZCBmb3J0cmFuSU9FeAkJbmFtZWxpc3QKLSAgc3luIGtleXdvcmQgZm9ydHJhbkNvbmRpdGlvbmFsRXgJd2hpbGUKLSAgc3luIGtleXdvcmQgZm9ydHJhbjkwSW50cmluc2ljRXgJYWNoYXIgaWFjaGFyIHRyYW5zZmVyCi0KLSAgc3luIGtleXdvcmQgZm9ydHJhbkluY2x1ZGUJCWluY2x1ZGUKLSAgc3luIGtleXdvcmQgZm9ydHJhbjkwU3RvcmFnZUNsYXNzUglzZXF1ZW5jZQotZW5kaWYKK3N5biBrZXl3b3JkIGZvcnRyYW5JbmNsdWRlCQlpbmNsdWRlCitzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzUglzZXF1ZW5jZQogCiBzeW4gbWF0Y2ggICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqaWYiCiBzeW4gbWF0Y2ggICBmb3J0cmFuSU8JCWNvbnRhaW5zPWZvcnRyYW5PcGVyYXRvciAiXDxlXChuZFx8cnJcKVxzKj1ccypcZFwrIgpAQCAtMjgyLDU1ICsyNTAsNTMgQEAKIHN5biBtYXRjaCBmb3J0cmFuVHlwZVIJCWRpc3BsYXkgImRvdWJsZVxzXCtjb21wbGV4Igogc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyUglkaXNwbGF5ICJibG9ja1xzXCtkYXRhIgogc3luIGtleXdvcmQgZm9ydHJhblN0b3JhZ2VDbGFzc1IJY29tbW9uIGVxdWl2YWxlbmNlIGRhdGEKLXN5biBrZXl3b3JkIGZvcnRyYW43N0ludHJpbnNpY1IJZGJsZSBkcHJvZAotc3luIG1hdGNoICAgZm9ydHJhbjc3T3BlcmF0b3JSCSJcLlxzKltnbF1bZXRdXHMqXC4iCi1zeW4gbWF0Y2ggICBmb3J0cmFuNzdPcGVyYXRvclIJIlwuXHMqXChlcVx8bmVcKVxzKlwuIgorc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY1IJZGJsZSBkcHJvZAorc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypbZ2xdW2V0XVxzKlwuIgorc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypcKGVxXHxuZVwpXHMqXC4iCiAKLWlmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJmOTUiIHx8IGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIgotICBzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0CQlmb3JhbGwKLSAgc3luIG1hdGNoIGZvcnRyYW5SZXBlYXQJCSJcPGVuZFxzKmZvcmFsbCIKLSAgc3luIGtleXdvcmQgZm9ydHJhbjk1SW50cmluc2ljCW51bGwgY3B1X3RpbWUKLSAgc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8ZWxlbWVudGFsXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPHB1cmVcPiIKLSAgaWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCi0gICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqZm9yYWxsXHNcK1wpXEA8PVxhXHcqXD4iCi0gIGVuZGlmCitzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0CQlmb3JhbGwKK3N5biBtYXRjaCBmb3J0cmFuUmVwZWF0CQkiXDxlbmRccypmb3JhbGwiCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCW51bGwgY3B1X3RpbWUKK3N5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPGVsZW1lbnRhbFw+Igorc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8cHVyZVw+IgoraWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmZvcmFsbFxzXCtcKVxAPD1cYVx3Klw+IgogZW5kaWYKIAotaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gImY5NSIKK2lmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJmMDgiCiAgICIgRjIwMDMKLSAgc3luIGtleXdvcmQgZm9ydHJhbjAzSW50cmluc2ljICAgICAgICBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGlzX2lvc3RhdF9lb3IgbW92ZV9hbGxvYyBuZXdfbGluZSBzZWxlY3RlZF9jaGFyX2tpbmQgc2FtZV90eXBlX2FzIGV4dGVuZHNfdHlwZV9vZgorICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGlzX2lvc3RhdF9lb3IgbW92ZV9hbGxvYyBuZXdfbGluZSBzZWxlY3RlZF9jaGFyX2tpbmQgc2FtZV90eXBlX2FzIGV4dGVuZHNfdHlwZV9vZgogICAiIElTT19DX2JpbmRpbmcKLSAgc3luIGtleXdvcmQgZm9ydHJhbjAzQ29uc3RhbnQgICAgICAgICBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYgotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNDb25zdGFudCAgICAgICAgIGNfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90IGNfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSBjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0cgotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNJbnRyaW5zaWMgICAgICAgIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciBjX2ZfcHJvY3BvaW50ZXIKLSAgc3luIGtleXdvcmQgZm9ydHJhbjAzVHlwZSAgICAgICAgICAgICBjX3B0ciBjX2Z1bnB0cgorICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYgorICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBjX2ludCBjX3Nob3J0IGNfbG9uZyBjX2xvbmdfbG9uZyBjX3NpZ25lZF9jaGFyIGNfc2l6ZV90IGNfaW50OF90IGNfaW50MTZfdCBjX2ludDMyX3QgY19pbnQ2NF90IGNfaW50X2xlYXN0OF90IGNfaW50X2xlYXN0MTZfdCBjX2ludF9sZWFzdDMyX3QgY19pbnRfbGVhc3Q2NF90IGNfaW50X2Zhc3Q4X3QgY19pbnRfZmFzdDE2X3QgY19pbnRfZmFzdDMyX3QgY19pbnRfZmFzdDY0X3QgY19pbnRtYXhfdCBDX2ludHB0cl90IGNfZmxvYXQgY19kb3VibGUgY19sb25nX2RvdWJsZSBjX2Zsb2F0X2NvbXBsZXggY19kb3VibGVfY29tcGxleCBjX2xvbmdfZG91YmxlX2NvbXBsZXggY19ib29sIGNfY2hhciBjX251bGxfcHRyIGNfbnVsbF9mdW5wdHIKKyAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaXNvX2NfYmluZGluZyBjX2xvYyBjX2Z1bmxvYyBjX2Fzc29jaWF0ZWQgIGNfZl9wb2ludGVyIGNfZl9wcm9jcG9pbnRlcgorICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjX3B0ciBjX2Z1bnB0cgogICAiIElTT19Gb3J0cmFuX2VudgotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNDb25zdGFudCAgICAgICAgIGlzb19mb3J0cmFuX2VudiBjaGFyYWN0ZXJfc3RvcmFnZV9zaXplIGVycm9yX3VuaXQgZmlsZV9zdG9yYWdlX3NpemUgaW5wdXRfdW5pdCBpb3N0YXRfZW5kIGlvc3RhdF9lb3IgbnVtZXJpY19zdG9yYWdlX3NpemUgb3V0cHV0X3VuaXQKKyAgc3luIGtleXdvcmQgZm9ydHJhbkNvbnN0YW50ICAgICAgICAgaXNvX2ZvcnRyYW5fZW52IGNoYXJhY3Rlcl9zdG9yYWdlX3NpemUgZXJyb3JfdW5pdCBmaWxlX3N0b3JhZ2Vfc2l6ZSBpbnB1dF91bml0IGlvc3RhdF9lbmQgaW9zdGF0X2VvciBudW1lcmljX3N0b3JhZ2Vfc2l6ZSBvdXRwdXRfdW5pdAogICAiIElFRUVfYXJpdGhtZXRpYwotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNJbnRyaW5zaWMgICAgICAgIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUKKyAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaWVlZV9hcml0aG1ldGljIGllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbCBpZWVlX2dldF91bmRlcmZsb3dfbW9kZSBpZWVlX3NldF91bmRlcmZsb3dfbW9kZQogCi0gIHN5biBrZXl3b3JkIGZvcnRyYW4wM1JlYWRXcml0ZQlmbHVzaCB3YWl0Ci0gIHN5biBrZXl3b3JkIGZvcnRyYW4wM0lPCSAgICAgICAgZGVjaW1hbCByb3VuZCBpb21zZwotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNUeXBlICAgICAgICAgICAgIGFzeW5jaHJvbm91cyBub3Bhc3Mgbm9uX292ZXJyaWRhYmxlIHBhc3MgcHJvdGVjdGVkIHZvbGF0aWxlIGFic3RyYWN0IGV4dGVuZHMgaW1wb3J0Ci0gIHN5biBrZXl3b3JkIGZvcnRyYW4wM1R5cGUgICAgICAgICAgICAgbm9uX2ludHJpbnNpYyB2YWx1ZSBiaW5kIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvcgotICBzeW4gbWF0Y2ggZm9ydHJhbjAzVHlwZSAgICAgICAgICAgICAgICJcPGNsYXNzXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuMDNUeXBlICAgICAgICAgICAgICAgIlw8YXNzb2NpYXRlXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuMDNUeXBlICAgICAgICAgICAgICAgIlw8ZW5kXHMqYXNzb2NpYXRlIgotICBzeW4gbWF0Y2ggZm9ydHJhbjAzVHlwZSAgICAgICAgICAgICAgICJcPGVudW1ccyosXHMqYmluZFxzKihccypjXHMqKSIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM1R5cGUgICAgICAgICAgICAgICAiXDxlbmRccyplbnVtIgotICBzeW4gbWF0Y2ggZm9ydHJhbjAzQ29uZGl0aW9uYWwJIlw8c2VsZWN0XHMqdHlwZSIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM0NvbmRpdGlvbmFsICAgICAgICAiXDx0eXBlXHMqaXNcPiIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM0NvbmRpdGlvbmFsICAgICAgICAiXDxjbGFzc1xzKmlzXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuMDNVbml0SGVhZGVyICAgICAgICAgIlw8YWJzdHJhY3RccyppbnRlcmZhY2VcPiIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM09wZXJhdG9yICAgICAgICAgICAiXChbXHxdXCkiCisgIHN5biBrZXl3b3JkIGZvcnRyYW5SZWFkV3JpdGUJZmx1c2ggd2FpdAorICBzeW4ga2V5d29yZCBmb3J0cmFuSU8gCSAgICAgIGRlY2ltYWwgcm91bmQgaW9tc2cKKyAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUgICAgICAgICAgICAgYXN5bmNocm9ub3VzIG5vcGFzcyBub25fb3ZlcnJpZGFibGUgcGFzcyBwcm90ZWN0ZWQgdm9sYXRpbGUgYWJzdHJhY3QgZXh0ZW5kcyBpbXBvcnQKKyAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUgICAgICAgICAgICAgbm9uX2ludHJpbnNpYyB2YWx1ZSBiaW5kIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvcgorICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxjbGFzc1w+IgorICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxhc3NvY2lhdGVcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8ZW5kXHMqYXNzb2NpYXRlIgorICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxlbnVtXHMqLFxzKmJpbmRccyooXHMqY1xzKikiCisgIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGVuZFxzKmVudW0iCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XHMqdHlwZSIKKyAgc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbCAgICAgICAgIlw8dHlwZVxzKmlzXD4iCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwgICAgICAgICJcPGNsYXNzXHMqaXNcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyICAgICAgICAgIlw8YWJzdHJhY3RccyppbnRlcmZhY2VcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvciAgICAgICAgICAgIlwoW1x8XVwpIgogCiAgICIgRjIwMDgKLSAgc3luIGtleXdvcmQgZm9ydHJhbjA4SW50cmluc2ljICAgICAgICBhY29zaCBhc2luaCBhdGFuaCBiZXNzZWxfajAgYmVzc2VsX2oxIGJlc3NlbF9qbiBiZXNzZWxfeTAgYmVzc2VsX3kxIGJlc3NlbF95biBlcmYgZXJmYyBlcmZjX3NjYWxlZCBnYW1tYSBsb2dfZ2FtbWEgaHlwb3Qgbm9ybTIKLSAgc3luIGtleXdvcmQgZm9ydHJhbjA4SW50cmluc2ljICAgICAgICBhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzCi0gIHN5biBrZXl3b3JkIGZvcnRyYW4wOEludHJpbnNpYyAgICAgICAgYmdlIGJndCBibGUgYmx0IGRzaGlmdGwgZHNoaWZ0ciBmaW5kbG9jIGlhbGwgaWFueSBpcGFyaXR5IGltYWdlX2luZGV4IGxjb2JvdW5kIHVjb2JvdW5kIG1hc2tsIG1hc2tyIG51bV9pbWFnZXMgcGFyaXR5IHBvcGNudCBwb3BwYXIgc2hpZnRhIHNoaWZ0bCBzaGlmdHIgdGhpc19pbWFnZQotICBzeW4ga2V5d29yZCBmb3J0cmFuMDhJTyAgICAgICAgICAgICAgIG5ld3VuaXQKLSAgc3luIGtleXdvcmQgZm9ydHJhbjA4VHlwZSAgICAgICAgICAgICBjb250aWd1b3VzCisgIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGFjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMgorICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzCisgIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGJnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciBudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UKKyAgc3luIGtleXdvcmQgZm9ydHJhbklPICAgICAgICAgICAgICAgbmV3dW5pdAorICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjb250aWd1b3VzCiBlbmRpZgogCiBzeW4gY2x1c3RlciBmb3J0cmFuQ29tbWVudEdyb3VwIGNvbnRhaW5zPWZvcnRyYW5Ub2RvCkBAIC0zNTAsOSArMzE2LDcgQEAKICAgc3luIG1hdGNoIGZvcnRyYW5Db250aW51ZU1hcmsJCWRpc3BsYXkgIiYiCiBlbmRpZgogCi1pZiBiOmZvcnRyYW5fZGlhbGVjdCAhPSAiZjc3IgotICBzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJZXhjbHVkZW5sICIhLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKLWVuZGlmCitzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJZXhjbHVkZW5sICIhLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKIAogImNwcCBpcyBvZnRlbiB1c2VkIHdpdGggRm9ydHJhbgogc3luIG1hdGNoCWNQcmVQcm9jCQkiXlxzKiNccypcKGRlZmluZVx8aWZkZWZcKVw+LioiCkBAIC0zNzIsNyArMzM2LDcgQEAKICAgc3luIHN5bmMgbWlubGluZXM9MzAKIGVuZGlmCiAKLWlmIHZlcnNpb24gPj0gNjAwICYmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikKK2lmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikKIAogICBpZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAxKQogICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwocHJvZ3JhbVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhbk1vZHVsZQpAQCAtNDE2LDE0OCArMzgwLDkzIEBACiBlbmRpZgogCiAiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCi0iIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKLSIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKLWlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9mb3J0cmFuX3N5bl9pbml0cyIpCi0gIGlmIHZlcnNpb24gPCA1MDgKLSAgICBsZXQgZGlkX2ZvcnRyYW5fc3luX2luaXRzID0gMQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+Ci0gIGVsc2UKLSAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KLSAgZW5kaWYKKyIgVGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nIGRpZmZlcnMgZm9yIGVhY2ggZGlhbGVjdC4KKyIgVHJhbnNwYXJlbnQgZ3JvdXBzOgorIiBmb3J0cmFuUGFyZW4sIGZvcnRyYW5MZWZ0TWFyZ2luCisiIGZvcnRyYW5Qcm9ncmFtLCBmb3J0cmFuTW9kdWxlLCBmb3J0cmFuU3Vicm91dGluZSwgZm9ydHJhbkZ1bmN0aW9uLAorIiBmb3J0cmFuQmxvY2tEYXRhCisiIGZvcnRyYW43N0xvb3AsIGZvcnRyYW45MExvb3AsIGZvcnRyYW5JZkJsb2NrLCBmb3J0cmFuQ2FzZQorIiBmb3J0cmFuTXVsdGlDb21tZW50TGluZXMKK2hpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkIAlLZXl3b3JkCitoaSBkZWYgbGluayBmb3J0cmFuQ29uc3RydWN0TmFtZQlJZGVudGlmaWVyCitoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKK2hpIGRlZiBsaW5rIGZvcnRyYW5SZXBlYXQJUmVwZWF0CitoaSBkZWYgbGluayBmb3J0cmFuVG9kbwkJVG9kbworaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnRpbnVlTWFyawlTcGVjaWFsCitoaSBkZWYgbGluayBmb3J0cmFuU3RyaW5nCVN0cmluZworaGkgZGVmIGxpbmsgZm9ydHJhbk51bWJlcglOdW1iZXIKK2hpIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvcglPcGVyYXRvcgoraGkgZGVmIGxpbmsgZm9ydHJhbkJvb2xlYW4JQm9vbGVhbgoraGkgZGVmIGxpbmsgZm9ydHJhbkxhYmVsRXJyb3IJRXJyb3IKK2hpIGRlZiBsaW5rIGZvcnRyYW5PYnNvbGV0ZQlUb2RvCitoaSBkZWYgbGluayBmb3J0cmFuVHlwZQkJVHlwZQoraGkgZGVmIGxpbmsgZm9ydHJhblN0cnVjdHVyZQlUeXBlCitoaSBkZWYgbGluayBmb3J0cmFuU3RvcmFnZUNsYXNzCVN0b3JhZ2VDbGFzcworaGkgZGVmIGxpbmsgZm9ydHJhbkNhbGwJCUZ1bmN0aW9uCitoaSBkZWYgbGluayBmb3J0cmFuVW5pdEhlYWRlcglmb3J0cmFuUHJlQ29uZGl0CitoaSBkZWYgbGluayBmb3J0cmFuUmVhZFdyaXRlCUtleXdvcmQKK2hpIGRlZiBsaW5rIGZvcnRyYW5JTwkJS2V5d29yZAoraGkgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpYwlGdW5jdGlvbgoraGkgZGVmIGxpbmsgZm9ydHJhbkNvbnN0YW50CUNvbnN0YW50CiAKLSAgIiBUaGUgZGVmYXVsdCBoaWdobGlnaHRpbmcgZGlmZmVycyBmb3IgZWFjaCBkaWFsZWN0LgotICAiIFRyYW5zcGFyZW50IGdyb3VwczoKLSAgIiBmb3J0cmFuUGFyZW4sIGZvcnRyYW5MZWZ0TWFyZ2luCi0gICIgZm9ydHJhblByb2dyYW0sIGZvcnRyYW5Nb2R1bGUsIGZvcnRyYW5TdWJyb3V0aW5lLCBmb3J0cmFuRnVuY3Rpb24sCi0gICIgZm9ydHJhbkJsb2NrRGF0YQotICAiIGZvcnRyYW43N0xvb3AsIGZvcnRyYW45MExvb3AsIGZvcnRyYW5JZkJsb2NrLCBmb3J0cmFuQ2FzZQotICAiIGZvcnRyYW5NdWx0aUNvbW1lbnRMaW5lcwotICBIaUxpbmsgZm9ydHJhbktleXdvcmQgCUtleXdvcmQKLSAgSGlMaW5rIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCUlkZW50aWZpZXIKLSAgSGlMaW5rIGZvcnRyYW4wM0NvbmRpdGlvbmFsCWZvcnRyYW5Db25kaXRpb25hbAotICBIaUxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCi0gIEhpTGluayBmb3J0cmFuUmVwZWF0CQlSZXBlYXQKLSAgSGlMaW5rIGZvcnRyYW5Ub2RvCQlUb2RvCi0gIGlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEpCi0gICAgSGlMaW5rIGZvcnRyYW5Db250aW51ZU1hcmsJVG9kbwotICBlbHNlCi0gICAgSGlMaW5rIGZvcnRyYW5Db250aW51ZU1hcmsJS2V5d29yZAotICBlbmRpZgotICBIaUxpbmsgZm9ydHJhblN0cmluZwkJU3RyaW5nCi0gIEhpTGluayBmb3J0cmFuTnVtYmVyCQlOdW1iZXIKLSAgSGlMaW5rIGZvcnRyYW4wM09wZXJhdG9yCWZvcnRyYW5PcGVyYXRvcgotICBIaUxpbmsgZm9ydHJhbk9wZXJhdG9yCU9wZXJhdG9yCi0gIEhpTGluayBmb3J0cmFuQm9vbGVhbgkJQm9vbGVhbgotICBIaUxpbmsgZm9ydHJhbkxhYmVsRXJyb3IJRXJyb3IKLSAgSGlMaW5rIGZvcnRyYW5PYnNvbGV0ZQlUb2RvCi0gIEhpTGluayBmb3J0cmFuMDNUeXBlICAJZm9ydHJhblR5cGUKLSAgSGlMaW5rIGZvcnRyYW4wOFR5cGUJICAgICAgICBmb3J0cmFuVHlwZQotICBIaUxpbmsgZm9ydHJhblR5cGUJCVR5cGUKLSAgSGlMaW5rIGZvcnRyYW5TdHJ1Y3R1cmUJVHlwZQotICBIaUxpbmsgZm9ydHJhblN0b3JhZ2VDbGFzcwlTdG9yYWdlQ2xhc3MKLSAgSGlMaW5rIGZvcnRyYW5DYWxsCQlGdW5jdGlvbgotICBIaUxpbmsgZm9ydHJhbjAzVW5pdEhlYWRlcglmb3J0cmFuVW5pdEhlYWRlcgotICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXIJZm9ydHJhblByZUNvbmRpdAotICBIaUxpbmsgZm9ydHJhbjAzUmVhZFdyaXRlCWZvcnRyYW5SZWFkV3JpdGUKLSAgSGlMaW5rIGZvcnRyYW5SZWFkV3JpdGUJS2V5d29yZAotICBIaUxpbmsgZm9ydHJhbjAzSU8JCWZvcnRyYW5JTwotICBIaUxpbmsgZm9ydHJhbjA4SU8JCWZvcnRyYW5JTwotICBIaUxpbmsgZm9ydHJhbklPCQlLZXl3b3JkCi0gIEhpTGluayBmb3J0cmFuOTVJbnRyaW5zaWMJZm9ydHJhbjkwSW50cmluc2ljCi0gIEhpTGluayBmb3J0cmFuNzdJbnRyaW5zaWMJZm9ydHJhbjkwSW50cmluc2ljCi0gIEhpTGluayBmb3J0cmFuOTBJbnRyaW5zaWMJRnVuY3Rpb24KLSAgSGlMaW5rIGZvcnRyYW4wM0ludHJpbnNpYwlGdW5jdGlvbgotICBIaUxpbmsgZm9ydHJhbjA4SW50cmluc2ljCUZ1bmN0aW9uCi0gIEhpTGluayBmb3J0cmFuMDNDb25zdGFudAlGdW5jdGlvbgorIiBUbyBzdG9wIGRlbGV0ZWQgJiBvYnNvbGVzY2VudCBmZWF0dXJlcyBiZWluZyBoaWdobGlnaHRlZCBhcyBUb2RvIGl0ZW1zLAorIiBjb21tZW50IG91dCB0aGUgbmV4dCA1IGxpbmVzIGFuZCB1bmNvbW1lbnQgdGhlIDUgbGluZXMgYWZ0ZXIgdGhhdAoraGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBmb3J0cmFuT2Jzb2xldGUKK2hpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbk9ic29sZXRlCitoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5PYnNvbGV0ZQoraGkgZGVmIGxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBmb3J0cmFuT2Jzb2xldGUKK2hpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgZm9ydHJhbk9ic29sZXRlCisiaGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBmb3J0cmFuVW5pdEhlYWRlcgorImhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbktleXdvcmQKKyJoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5Db25kaXRpb25hbAorImhpIGRlZiBsaW5rIGZvcnRyYW5UeXBlT2IgICAgICAgICAgZm9ydHJhblR5cGUKKyJoaSBkZWYgbGluayBmb3J0cmFuS2V5d29yZERlbCAgICAgIGZvcnRyYW5LZXl3b3JkCiAKLSAgaWYgYjpmb3J0cmFuX2RpYWxlY3QgIT0gImY3NyIKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBUb2RvCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgVG9kbwotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIFRvZG8KLSAgICBIaUxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBUb2RvCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgVG9kbwotICBlbHNlCi0gICAgSGlMaW5rIGZvcnRyYW5Vbml0SGVhZGVyT2IgICAgZm9ydHJhblVuaXRIZWFkZXIKLSAgICBIaUxpbmsgZm9ydHJhbktleXdvcmRPYiAgICAgICBmb3J0cmFuS2V5d29yZAotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5Db25kaXRpb25hbAotICAgIEhpTGluayBmb3J0cmFuVHlwZU9iICAgICAgICAgIGZvcnRyYW5UeXBlCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgZm9ydHJhbktleXdvcmQKLSAgZW5kaWYKLQotICBpZiAoIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJlbGYiIHx8IGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIiApCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkT2IJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW42NkludHJpbnNpYwlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjc3SW50cmluc2ljUglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuVHlwZVIJCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuU3RvcmFnZUNsYXNzUglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjkwU3RvcmFnZUNsYXNzUglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjc3T3BlcmF0b3JSCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuSW5jbHVkZQlmb3J0cmFuT2Jzb2xldGUKLSAgZWxzZQotICAgIEhpTGluayBmb3J0cmFuS2V5d29yZE9iCWZvcnRyYW5LZXl3b3JkCi0gICAgSGlMaW5rIGZvcnRyYW42NkludHJpbnNpYwlmb3J0cmFuOTBJbnRyaW5zaWMKLSAgICBIaUxpbmsgZm9ydHJhbjc3SW50cmluc2ljUglmb3J0cmFuOTBJbnRyaW5zaWMKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5QcmVDb25kaXQKLSAgICBIaUxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuVHlwZQotICAgIEhpTGluayBmb3J0cmFuU3RvcmFnZUNsYXNzUglmb3J0cmFuU3RvcmFnZUNsYXNzCi0gICAgSGlMaW5rIGZvcnRyYW43N09wZXJhdG9yUglmb3J0cmFuT3BlcmF0b3IKLSAgICBIaUxpbmsgZm9ydHJhbkluY2x1ZGUJSW5jbHVkZQotICAgIEhpTGluayBmb3J0cmFuOTBTdG9yYWdlQ2xhc3NSCWZvcnRyYW5TdG9yYWdlQ2xhc3MKLSAgZW5kaWYKLQotICBpZiAoIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIiApCi0gICAgSGlMaW5rIGZvcnRyYW5MYWJlbE51bWJlcglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhblRhcmdldAlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbkZvcm1hdFNwZWMJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdERFeHAJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdE5vRGVjCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuRmxvYXRJbmlEZWMJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdEVuZERlYwlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhblR5cGVFeAlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbklPRXgJCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuS2V5d29yZEV4CWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuU3RyaW5nRXgJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW43N0ludHJpbnNpY0V4CWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuVW5pdEhlYWRlckV4CWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxFeAlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjkwSW50cmluc2ljRXgJZm9ydHJhbk9ic29sZXRlCi0gIGVsc2UKLSAgICBIaUxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCVNwZWNpYWwKLSAgICBIaUxpbmsgZm9ydHJhblRhcmdldAlTcGVjaWFsCi0gICAgSGlMaW5rIGZvcnRyYW5Gb3JtYXRTcGVjCUlkZW50aWZpZXIKLSAgICBIaUxpbmsgZm9ydHJhbkZsb2F0REV4cAlmb3J0cmFuRmxvYXQKLSAgICBIaUxpbmsgZm9ydHJhbkZsb2F0Tm9EZWMJZm9ydHJhbkZsb2F0Ci0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdEluaURlYwlmb3J0cmFuRmxvYXQKLSAgICBIaUxpbmsgZm9ydHJhbkZsb2F0RW5kRGVjCWZvcnRyYW5GbG9hdAotICAgIEhpTGluayBmb3J0cmFuVHlwZUV4CWZvcnRyYW5UeXBlCi0gICAgSGlMaW5rIGZvcnRyYW5JT0V4CQlmb3J0cmFuSU8KLSAgICBIaUxpbmsgZm9ydHJhbktleXdvcmRFeAlmb3J0cmFuS2V5d29yZAotICAgIEhpTGluayBmb3J0cmFuU3RyaW5nRXgJZm9ydHJhblN0cmluZwotICAgIEhpTGluayBmb3J0cmFuNzdJbnRyaW5zaWNFeAlmb3J0cmFuOTBJbnRyaW5zaWMKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJFeAlmb3J0cmFuVW5pdEhlYWRlcgotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxFeAlmb3J0cmFuQ29uZGl0aW9uYWwKLSAgICBIaUxpbmsgZm9ydHJhbjkwSW50cmluc2ljRXgJZm9ydHJhbjkwSW50cmluc2ljCi0gIGVuZGlmCi0KLSAgSGlMaW5rIGZvcnRyYW5GbG9hdAkJRmxvYXQKLSAgSGlMaW5rIGZvcnRyYW5QcmVDb25kaXQJUHJlQ29uZGl0Ci0gIEhpTGluayBmb3J0cmFuSW5jbHVkZQkJSW5jbHVkZQotICBIaUxpbmsgY0luY2x1ZGVkCQlmb3J0cmFuU3RyaW5nCi0gIEhpTGluayBjSW5jbHVkZQkJSW5jbHVkZQotICBIaUxpbmsgY1ByZVByb2MJCVByZVByb2MKLSAgSGlMaW5rIGNQcmVDb25kaXQJCVByZUNvbmRpdAotICBIaUxpbmsgZm9ydHJhblBhcmVuRXJyb3IJRXJyb3IKLSAgSGlMaW5rIGZvcnRyYW5Db21tZW50CQlDb21tZW50Ci0gIEhpTGluayBmb3J0cmFuU2VyaWFsTnVtYmVyCVRvZG8KLSAgSGlMaW5rIGZvcnRyYW5UYWIJCUVycm9yCi0gICIgVmVuZG9yIGV4dGVuc2lvbnMKLSAgSGlMaW5rIGZvcnRyYW5FeHRyYUludHJpbnNpYwlGdW5jdGlvbgotCi0gIGRlbGNvbW1hbmQgSGlMaW5rCitpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JbnRyaW5zaWNSCWZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbk9wZXJhdG9yUiAJZm9ydHJhbk9ic29sZXRlCisgIGhpISBkZWYgbGluayBmb3J0cmFuSW5jbHVkZSAgIAlmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5MYWJlbE51bWJlcglmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UYXJnZXQJICAgICAgICBmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5GbG9hdElsbAkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbklPUgkJZm9ydHJhbk9ic29sZXRlCisgIGhpISBkZWYgbGluayBmb3J0cmFuS2V5d29yZFIJICAgICAgICBmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdSCSAgICAgICAgZm9ydHJhbk9ic29sZXRlCisgIGhpISBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxSCWZvcnRyYW5PYnNvbGV0ZQorZWxzZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY1IJZm9ydHJhbkludHJpbnNpYworICBoaSEgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5QcmVDb25kaXQKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UeXBlUgkJZm9ydHJhblR5cGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5TdG9yYWdlQ2xhc3MKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvclIJICAgICAgICBmb3J0cmFuT3BlcmF0b3IKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JbmNsdWRlCSAgICAgICAgSW5jbHVkZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCVNwZWNpYWwKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UYXJnZXQJICAgICAgICBTcGVjaWFsCisgIGhpISBkZWYgbGluayBmb3J0cmFuRmxvYXRJbGwJICAgICAgICBmb3J0cmFuRmxvYXQKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JT1IJCWZvcnRyYW5JTworICBoaSEgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRSCSAgICAgICAgZm9ydHJhbktleXdvcmQKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdSCSAgICAgICAgZm9ydHJhblN0cmluZworICBoaSEgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsUglmb3J0cmFuQ29uZGl0aW9uYWwKIGVuZGlmCiAKK2hpIGRlZiBsaW5rIGZvcnRyYW5Gb3JtYXRTcGVjCUlkZW50aWZpZXIKK2hpIGRlZiBsaW5rIGZvcnRyYW5GbG9hdAlGbG9hdAoraGkgZGVmIGxpbmsgZm9ydHJhblByZUNvbmRpdAlQcmVDb25kaXQKK2hpIGRlZiBsaW5rIGNJbmNsdWRlZAkJZm9ydHJhblN0cmluZworaGkgZGVmIGxpbmsgY0luY2x1ZGUJCUluY2x1ZGUKK2hpIGRlZiBsaW5rIGNQcmVQcm9jCQlQcmVQcm9jCitoaSBkZWYgbGluayBjUHJlQ29uZGl0CQlQcmVDb25kaXQKK2hpIGRlZiBsaW5rIGZvcnRyYW5QYXJlbkVycm9yCUVycm9yCitoaSBkZWYgbGluayBmb3J0cmFuQ29tbWVudAlDb21tZW50CitoaSBkZWYgbGluayBmb3J0cmFuU2VyaWFsTnVtYmVyCVRvZG8KK2hpIGRlZiBsaW5rIGZvcnRyYW5UYWIJCUVycm9yCisKKyIgVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IHVzZSBleHRyYSBpbnRyaW5zaWNzIHByb3ZpZGVkIGJ5IHZlbmRvcnMKKyJoaSBkZWYgbGluayBmb3J0cmFuRXh0cmFJbnRyaW5zaWMJRnVuY3Rpb24KKwogbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZm9ydHJhbiIKIAogbGV0ICZjcG8gPSBzOmNwb19zYXZlCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9ncC52aW0gYi9ydW50aW1lL3N5bnRheC9ncC52aW0KaW5kZXggMjc5M2FhNC4uZjQ2YTQ2NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZ3AudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2dwLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCi0iIExhbmd1YWdlOglncCAodmVyc2lvbiAyLjQpCisiIExhbmd1YWdlOglncCAodmVyc2lvbiAyLjUpCiAiIE1haW50YWluZXI6CUthcmltIEJlbGFiYXMgPEthcmltLkJlbGFiYXNAbWF0aC51LWJvcmRlYXV4LmZyPgotIiBMYXN0IGNoYW5nZToJMjAwNyBPY3QgMQorIiBMYXN0IGNoYW5nZToJMjAxMiBKYW4gMDgKICIgVVJMOgkJaHR0cDovL3BhcmkubWF0aC51LWJvcmRlYXV4LmZyCiAKIGlmIHZlcnNpb24gPCA2MDAKQEAgLTEwLDIxICsxMCwzMCBAQAogICBmaW5pc2gKIGVuZGlmCiAKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwbyZ2aW0KKwogIiBjb250cm9sIHN0YXRlbWVudHMKIHN5bnRheCBrZXl3b3JkIGdwU3RhdGVtZW50CWJyZWFrIHJldHVybiBuZXh0CiBzeW50YXgga2V5d29yZCBncENvbmRpdGlvbmFsCWlmCi1zeW50YXgga2V5d29yZCBncFJlcGVhdAkJdW50aWwgd2hpbGUgZm9yIGZvcmRpdiBmb3JwcmltZSBmb3JzdGVwIGZvcnZlYworc3ludGF4IGtleXdvcmQgZ3BSZXBlYXQJCXVudGlsIHdoaWxlIGZvciBmb3JkaXYgZm9yZWxsIGZvcnByaW1lIAorc3ludGF4IGtleXdvcmQgZ3BSZXBlYXQJCWZvcnN1Ymdyb3VwIGZvcnN0ZXAgZm9ydmVjCiAiIHN0b3JhZ2UgY2xhc3MKIHN5bnRheCBrZXl3b3JkIGdwU2NvcGUJCW15IGxvY2FsIGdsb2JhbAogIiBkZWZhdWx0cwotc3ludGF4IGtleXdvcmQgZ3BJbnRlcmZhY2VLZXkJY29sb3JzIGNvbXBhdGlibGUgZGF0YWRpciBkZWJ1ZyBkZWJ1Z2ZpbGVzCi1zeW50YXgga2V5d29yZCBncEludGVyZmFjZUtleQlkZWJ1Z21lbSBlY2hvIGZhY3Rvcl9hZGRfcHJpbWVzIGZvcm1hdCBoZWxwCi1zeW50YXgga2V5d29yZCBncEludGVyZmFjZUtleQloaXN0c2l6ZSBsaW5lcyBsb2cgbG9nZmlsZSBuZXdfZ2Fsb2lzX2Zvcm1hdAorc3ludGF4IGtleXdvcmQgZ3BJbnRlcmZhY2VLZXkJYnJlYWtsb29wIGNvbG9ycyBjb21wYXRpYmxlCitzeW50YXgga2V5d29yZCBncEludGVyZmFjZUtleQlkYXRhZGlyIGRlYnVnIGRlYnVnZmlsZXMgZGVidWdtZW0gCitzeW50YXgga2V5d29yZCBncEludGVyZmFjZUtleQllY2hvIGZhY3Rvcl9hZGRfcHJpbWVzIGZhY3Rvcl9wcm92ZW4gZm9ybWF0IAorc3ludGF4IGtleXdvcmQgZ3BJbnRlcmZhY2VLZXkJZ3JhcGhjb2xvcm1hcCBncmFwaGNvbG9ycworc3ludGF4IGtleXdvcmQgZ3BJbnRlcmZhY2VLZXkJaGVscCBoaXN0ZmlsZSBoaXN0c2l6ZSAKK3N5bnRheCBrZXl3b3JkIGdwSW50ZXJmYWNlS2V5CWxpbmVzIGxpbmV3cmFwIGxvZyBsb2dmaWxlIG5ld19nYWxvaXNfZm9ybWF0CiBzeW50YXgga2V5d29yZCBncEludGVyZmFjZUtleQlvdXRwdXQgcGFyaXNpemUgcGF0aCBwcmV0dHlwcmludGVyIHByaW1lbGltaXQKLXN5bnRheCBrZXl3b3JkIGdwSW50ZXJmYWNlS2V5CXByb21wdCBwcm9tcHRfY29udCBwc2ZpbGUgcmVhbHByZWNpc2lvbiBzZWN1cmUKLXN5bnRheCBrZXl3b3JkIGdwSW50ZXJmYWNlS2V5CXNlcmllc3ByZWNpc2lvbiBzaW1wbGlmeSBzdHJpY3RtYXRjaCBUZVhzdHlsZSB0aW1lcgorc3ludGF4IGtleXdvcmQgZ3BJbnRlcmZhY2VLZXkJcHJvbXB0IHByb21wdF9jb250IHBzZmlsZSAKK3N5bnRheCBrZXl3b3JkIGdwSW50ZXJmYWNlS2V5CXJlYWRsaW5lIHJlYWxwcmVjaXNpb24gcmVjb3ZlciAKK3N5bnRheCBrZXl3b3JkIGdwSW50ZXJmYWNlS2V5CXNlY3VyZSBzZXJpZXNwcmVjaXNpb24gc2ltcGxpZnkgc3RyaWN0bWF0Y2gKK3N5bnRheCBrZXl3b3JkIGdwSW50ZXJmYWNlS2V5CVRlWHN0eWxlIHRpbWVyCiAKLXN5bnRheCBtYXRjaCAgIGdwSW50ZXJmYWNlCSJeXHMqXFxbYS16XS4qIgorc3ludGF4IG1hdGNoIGdwSW50ZXJmYWNlCSJeXHMqXFxbYS16XS4qIgogc3ludGF4IGtleXdvcmQgZ3BJbnRlcmZhY2UJZGVmYXVsdAogc3ludGF4IGtleXdvcmQgZ3BJbnB1dAkJcmVhZCBpbnB1dAogCkBAIC03OSw0ICs4OCw2IEBACiBlbmRpZgogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJncCIKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQogIiB2aW06IHRzPTgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2dyb292eS52aW0gYi9ydW50aW1lL3N5bnRheC9ncm9vdnkudmltCmluZGV4IDcyMTY5MjIuLjViMjU2ZjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2dyb292eS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZ3Jvb3Z5LnZpbQpAQCAtMiwxNSArMiwxNSBAQAogIiBMYW5ndWFnZToJR3Jvb3Z5CiAiIE9yaWdpbmFsIEF1dGhvcjoJQWxlc3NpbyBQYWNlIDxiaWxseS5jb3JnYW5AdGlzY2FsaS5pdD4KICIgTWFpbnRhaW5lcjoJVG9iaWFzIFJhcHAgPHlhaHV4b0BnbXguZGU+Ci0iIFZlcnNpb246IAkwLjEuMTAKLSIgVVJMOgkgIGh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTk0NQkKLSIgTGFzdCBDaGFuZ2U6CTIwMTAgTm92IDI5CisiIFZlcnNpb246IAkwLjEuMTEKKyIgVVJMOgkgIGh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTk0NQorIiBMYXN0IENoYW5nZToJMjAxMiBKYW4gMDgKIAogIiBUSEUgT1JJR0lOQUwgQVVUSE9SJ1MgTk9URVM6CiAiCiAiIFRoaXMgaXMgbXkgdmVyeSBmaXJzdCB2aW0gc2NyaXB0LCBJIGhvcGUgdG8gaGF2ZQogIiBkb25lIGl0IHRoZSByaWdodCB3YXkuCi0iIAorIgogIiBJIG11c3QgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aGFuayB0aGUgYXV0aG9yIG9mIGphdmEudmltIGFuZCBydWJ5LnZpbToKICIgSSBjb3BpZWQgZnJvbSB0aGVtIG1vc3Qgb2YgdGhlIHN0dWZmIDotKQogIgpAQCAtMjIsNyArMjIsNyBAQAogIiBIT1dUTyBVU0UgSVQgKElOU1RBTEwpIHdoZW4gbm90IHBhcnQgb2YgdGhlIGRpc3RyaWJ1dGlvbjoKICIKICIgMSkgY29weSB0aGUgZmlsZSBpbiB0aGUgKGdsb2JhbCBvciB1c2VyJ3MgJEhPTUUvLnZpbS9zeW50YXgvKSBzeW50YXggZm9sZGVyCi0iIAorIgogIiAyKSBhZGQgdGhpcyBsaW5lIHRvIHJlY29nbml6ZSBncm9vdnkgZmlsZXMgYnkgZmlsZW5hbWUgZXh0ZW5zaW9uOgogIgogIiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5ncm9vdnkgIHNldGYgZ3Jvb3Z5CkBAIC0zOCw3ICszOCw3IEBACiAiICBlbmRpZgogIgogIiAgaW4gdGhlIGdsb2JhbCBzY3JpcHRzLnZpbSBmaWxlIG9yIGluICRIT01FLy52aW0vc2NyaXB0cy52aW0KLSIgCisiCiAiIDQpIG9wZW4vd3JpdGUgYSAuZ3Jvb3Z5IGZpbGUgb3IgYSBncm9vdnkgc2NyaXB0IDotKQogIgogIiBMZXQgbWUga25vdyBpZiB5b3UgbGlrZSBpdCBvciBzZW5kIG1lIHBhdGNoZXMsIHNvIHRoYXQgSSBjYW4gaW1wcm92ZSBpdApAQCAtNTUsNiArNTUsOSBAQAogICBsZXQgbWFpbl9zeW50YXg9J2dyb292eScKIGVuZGlmCiAKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwbyZ2aW0KKwogIiBkb24ndCB1c2Ugc3RhbmRhcmQgSGlMaW5rLCBpdCB3aWxsIG5vdCB3b3JrIHdpdGggaW5jbHVkZWQgc3ludGF4IGZpbGVzCiBpZiB2ZXJzaW9uIDwgNTA4CiAgIGNvbW1hbmQhIC1uYXJncz0rIEdyb292eUhpTGluayBoaSBsaW5rIDxhcmdzPgpAQCAtMTAxLDExICsxMDQsMTEgQEAKIGlmIGV4aXN0cygiZ3Jvb3Z5X2hpZ2hsaWdodF9ncm9vdnlfbGFuZ19pZHMiKSB8fCBleGlzdHMoImdyb292eV9oaWdobGlnaHRfZ3Jvb3Z5X2xhbmciKSB8fCBleGlzdHMoImdyb292eV9oaWdobGlnaHRfYWxsIikKICAgIiBncm9vdnkubGFuZy4qCiAgIHN5biBrZXl3b3JkIGdyb292eUxhbmdDbGFzcyAgQ2xvc3VyZSBNZXRhTWV0aG9kIEdyb292eU9iamVjdAotICAKKwogICBzeW4gbWF0Y2ggZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAiXDxTeXN0ZW1cPiIKICAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgQ2xvbmVhYmxlIENvbXBhcmFibGUgUnVubmFibGUgU2VyaWFsaXphYmxlIEJvb2xlYW4gQnl0ZSBDbGFzcyBPYmplY3QKICAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgQ2hhcmFjdGVyIENoYXJTZXF1ZW5jZSBDbGFzc0xvYWRlciBDb21waWxlcgotICAiIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIEludGVnZXIgRG91YmxlIEZsb2F0IExvbmcgCisgICIgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgSW50ZWdlciBEb3VibGUgRmxvYXQgTG9uZwogICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBJbmhlcml0YWJsZVRocmVhZExvY2FsIE1hdGggTnVtYmVyIE9iamVjdCBQYWNrYWdlIFByb2Nlc3MKICAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgUnVudGltZSBSdW50aW1lUGVybWlzc2lvbiBJbmhlcml0YWJsZVRocmVhZExvY2FsCiAgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIFNlY3VyaXR5TWFuYWdlciBTaG9ydCBTdHJpY3RNYXRoIFN0YWNrVHJhY2VFbGVtZW50CkBAIC0xNTksMTggKzE2MiwxOCBAQAogCiAiIEdyb292eSBKREsgc3R1ZmYKIHN5biBrZXl3b3JkIGdyb292eUpES0J1aWx0aW4gICAgYXMgZGVmIGluCi1zeW4ga2V5d29yZCBncm9vdnlKREtPcGVyT3ZlcmwgIGRpdiBtaW51cyBwbHVzIGFicyByb3VuZCBwb3dlciBtdWx0aXBseSAKLXN5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgCWVhY2ggY2FsbCBpbmplY3Qgc29ydCBwcmludCBwcmludGxuIAorc3luIGtleXdvcmQgZ3Jvb3Z5SkRLT3Blck92ZXJsICBkaXYgbWludXMgcGx1cyBhYnMgcm91bmQgcG93ZXIgbXVsdGlwbHkKK3N5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgCWVhY2ggY2FsbCBpbmplY3Qgc29ydCBwcmludCBwcmludGxuCiBzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIGdldEF0IHB1dEF0IHNpemUgcHVzaCBwb3AgdG9MaXN0IGdldFRleHQgd3JpdGVMaW5lIGVhY2hMaW5lIHJlYWRMaW5lcwotc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICB3aXRoUmVhZGVyIHdpdGhTdHJlYW0gd2l0aFdyaXRlciB3aXRoUHJpbnRXcml0ZXIgd3JpdGUgcmVhZCBsZWZ0U2hpZnQgCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIHdpdGhSZWFkZXIgd2l0aFN0cmVhbSB3aXRoV3JpdGVyIHdpdGhQcmludFdyaXRlciB3cml0ZSByZWFkIGxlZnRTaGlmdAogc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICB3aXRoV3JpdGVyQXBwZW5kIHJlYWRCeXRlcyBzcGxpdEVhY2hMaW5lCi1zeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIG5ld0lucHV0U3RyZWFtIG5ld091dHB1dFN0cmVhbSBuZXdQcmludFdyaXRlciBuZXdSZWFkZXIgbmV3V3JpdGVyIAotc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICBjb21wYXJlVG8gbmV4dCBwcmV2aW91cyBpc0Nhc2UgCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIG5ld0lucHV0U3RyZWFtIG5ld091dHB1dFN0cmVhbSBuZXdQcmludFdyaXRlciBuZXdSZWFkZXIgbmV3V3JpdGVyCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIGNvbXBhcmVUbyBuZXh0IHByZXZpb3VzIGlzQ2FzZQogc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICB0aW1lcyBzdGVwIHRvSW50ZWdlciB1cHRvIGFueSBjb2xsZWN0IGR1bXAgZXZlcnkgZmluZCBmaW5kQWxsIGdyZXAKLXN5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgaW5zcGVjdCBpbnZva2VNZXRob2RzIGpvaW4gCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIGluc3BlY3QgaW52b2tlTWV0aG9kcyBqb2luCiBzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIGdldEVyciBnZXRJbiBnZXRPdXQgd2FpdEZvck9yS2lsbAogc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICBjb3VudCB0b2tlbml6ZSBhc0xpc3QgZmxhdHRlbiBpbW11dGFibGUgaW50ZXJzZWN0IHJldmVyc2UgcmV2ZXJzZUVhY2gKLXN5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgc3ViTWFwIGFwcGVuZCBhc1dyaXRhYmxlIGVhY2hCeXRlIGVhY2hMaW5lIGVhY2hGaWxlIAorc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICBzdWJNYXAgYXBwZW5kIGFzV3JpdGFibGUgZWFjaEJ5dGUgZWFjaExpbmUgZWFjaEZpbGUKIHN5biBjbHVzdGVyIGdyb292eVRvcCBhZGQ9Z3Jvb3Z5SkRLQnVpbHRpbixncm9vdnlKREtPcGVyT3ZlcmwsZ3Jvb3Z5SkRLTWV0aG9kcwogCiAiIG5vIHVzZWZ1bCBJIHRoaW5rLCBzbyBJIGNvbW1lbnQgaXQuLgpAQCAtMzMxLDcgKzMzNCw3IEBACiAgICAgR3Jvb3Z5SGlMaW5rIGdyb292eURlYnVnU3BlY2lhbENoYXJhY3RlciBEZWJ1Z1NwZWNpYWwKICAgICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RGVidWdDaGFyYWN0ZXIgICAgICAgIERlYnVnU3RyaW5nCiAgICAgR3Jvb3Z5SGlMaW5rIGdyb292eURlYnVnUGFyZW4gICAgICAgICAgICBEZWJ1ZwotICAKKwogICAgIEdyb292eUhpTGluayBEZWJ1Z1N0cmluZyAgICAgICAgICAgICAgIFN0cmluZwogICAgIEdyb292eUhpTGluayBEZWJ1Z1NwZWNpYWwgICAgICAgICAgICAgIFNwZWNpYWwKICAgICBHcm9vdnlIaUxpbmsgRGVidWdCb29sZWFuICAgICAgICAgICAgICBCb29sZWFuCkBAIC0zMzksNyArMzQyLDcgQEAKICAgZW5kaWYKIGVuZGlmCiAKLSIgTWF0Y2ggYWxsIEV4Y2VwdGlvbiBjbGFzc2VzIAorIiBNYXRjaCBhbGwgRXhjZXB0aW9uIGNsYXNzZXMKIHN5biBtYXRjaCBncm9vdnlFeGNlcHRpb25zICAgICAgICAiXDxFeGNlcHRpb25cPlx8XDxbQS1aXVx7MSx9W2EtekEtWjAtOV0qRXhjZXB0aW9uXD4iCiAKIApAQCAtMzQ5LDcgKzM1Miw3IEBACiBleGVjICJzeW4gc3luYyBjY29tbWVudCBncm9vdnlDb21tZW50IG1pbmxpbmVzPSIgLiBncm9vdnlfbWlubGluZXMKIAogCi0iICMjIyMjIyMjIyMjIyMjIyMjIyMgCisiICMjIyMjIyMjIyMjIyMjIyMjIyMKICIgR3Jvb3Z5IHN0dWZmCiAiIHN5biBtYXRjaCBncm9vdnlPcGVyYXRvcgkJInxbICxhLXpBLVowLTlfKl1cK3wiCiAKQEAgLTQyNSwxNSArNDI4LDE1IEBACiAgIEdyb292eUhpTGluayBncm9vdnlDb25zdGFudAkJQ29uc3RhbnQKICAgR3Jvb3Z5SGlMaW5rIGdyb292eVR5cGVkZWYJCVR5cGVkZWYKICAgR3Jvb3Z5SGlMaW5rIGdyb292eVRvZG8JCVRvZG8KLSAgCisKICAgR3Jvb3Z5SGlMaW5rIGdyb292eUNvbW1lbnRUaXRsZQlTcGVjaWFsQ29tbWVudAogICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RG9jVGFncwkJU3BlY2lhbAogICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RG9jUGFyYW0JCUZ1bmN0aW9uCiAgIEdyb292eUhpTGluayBncm9vdnlDb21tZW50U3Rhcglncm9vdnlDb21tZW50Ci0gIAorCiAgIEdyb292eUhpTGluayBncm9vdnlUeXBlCQlUeXBlCiAgIEdyb292eUhpTGluayBncm9vdnlFeHRlcm5hbAkJSW5jbHVkZQotICAKKwogICBHcm9vdnlIaUxpbmsgaHRtbENvbW1lbnQJCVNwZWNpYWwKICAgR3Jvb3Z5SGlMaW5rIGh0bWxDb21tZW50UGFydAkJU3BlY2lhbAogICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5U3BhY2VFcnJvcgkJRXJyb3IKQEAgLTQ1Miw0ICs0NTUsNyBAQAogCiBsZXQgYjpzcGVsbF9vcHRpb25zPSJjb250YWluZWQiCiAKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQorCiAiIHZpbTogdHM9OApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaWRsLnZpbSBiL3J1bnRpbWUvc3ludGF4L2lkbC52aW0KaW5kZXggMzkwNDFmYy4uYzUxODUwYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaWRsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9pZGwudmltCkBAIC0yLDcgKzIsNyBAQAogIiBMYW5ndWFnZTogICAgSURMIChJbnRlcmZhY2UgRGVzY3JpcHRpb24gTGFuZ3VhZ2UpCiAiIENyZWF0ZWQgQnk6ICBKb2R5IEdvbGRiZXJnCiAiIE1haW50YWluZXI6ICBNaWNoYWVsIEdlZGRlcyA8dmltQGZyb2cud2hlZWx5Y3JlZWsubmV0PgotIiBMYXN0IENoYW5nZTogIFRodSBBcHIgMTMgMjAwNgorIiBMYXN0IENoYW5nZTogIDIwMTIgSmFuIDExCiAKIAogIiBUaGlzIGlzIGFuIGV4cGVyaW1lbnQuICBJREwncyBzdHJ1Y3R1cmUgaXMgc2ltcGxlIGVub3VnaCB0byBwZXJtaXQgYSBmdWxsCkBAIC0xNywzMDMgKzE3LDMxMCBAQAogIiBIaXN0b3J5OgogIiAyLjA6IE1pY2hhZWwncyBuZXcgdmVyc2lvbgogIiAyLjE6IFN1cHBvcnQgZm9yIFZpbSA3IHNwZWxsIChBbmR1aW4gV2l0aGVycykKLSIgICAgICAKKyIKIAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCiBlbmRpZgogCi1pZiBleGlzdHMoImlkbHN5bnRheF9zaG93ZXJyb3IiKQotICBzeW4gbWF0Y2ggaWRsRXJyb3IgK1xTKyBza2lwd2hpdGUgc2tpcGVtcHR5IG5leHRncm91cD1pZGxFcnJvcgotZW5kaWYKLQotc3luIHJlZ2lvbiBpZGxDcHBRdW90ZSBzdGFydD0nXDxjcHBfcXVvdGVccyooJyBlbmQ9JyknIGNvbnRhaW5zPWlkbFN0cmluZwotCi0iIE1pc2MgYmFzaWMKLXN5biBtYXRjaCAgIGlkbElkICAgICAgICAgIGNvbnRhaW5lZCAiW2EtekEtWl1bYS16QS1aMC05X10qIiBza2lwd2hpdGUgc2tpcGVtcHR5IG5leHRncm91cD1pZGxFbnVtQ29tbWEsaWRsRW51bU51bWJlcgotc3luIG1hdGNoICAgaWRsRW51bUNvbW1hICAgY29udGFpbmVkICIsIgotc3luIG1hdGNoICAgaWRsRW51bU51bWJlciAgY29udGFpbmVkICI9IiBza2lwd2hpdGUgc2tpcGVtcHR5IG5leHRncm91cD1pZGxTdHJpbmcsaWRsTGl0ZXJhbAotc3luIG1hdGNoICAgaWRsU2VtaUNvbG9uICAgY29udGFpbmVkICI7Igotc3luIG1hdGNoICAgaWRsQ29tbWFBcmcgICAgY29udGFpbmVkICIsIiAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTaW1wRGVjbAotc3luIHJlZ2lvbiAgaWRsQXJyYXlTaXplMSAgY29udGFpbmVkIHN0YXJ0PTpcWzogZW5kPTpcXTogICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxBcnJheVNpemUxLGlkbEVycm9yLGlkbFNlbWlDb2xvbixpZGxDb21tYUFyZyBjb250YWlucz1pZGxBcnJheVNpemUxLGlkbExpdGVyYWwKLXN5biBtYXRjaCAgIGlkbFNpbXBEZWNsICAgIGNvbnRhaW5lZCAiW2EtekEtWl1bYS16QS1aMC05X10qIiAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uLGlkbENvbW1hQXJnLGlkbEFycmF5U2l6ZTEKLXN5biByZWdpb24gIGlkbFN0cmluZyAgICAgIGNvbnRhaW5lZCBzdGFydD0rIisgIHNraXA9K1xcXChcXFxcXCkqIisgIGVuZD0rIisgY29udGFpbnM9QFNwZWxsCi1zeW4gbWF0Y2ggICBpZGxMaXRlcmFsICAgICBjb250YWluZWQgIlsxLTldXGQqXChcLlxkKlwpXD0iCi1zeW4gbWF0Y2ggICBpZGxMaXRlcmFsICAgICBjb250YWluZWQgIjAiCi1zeW4gbWF0Y2ggICBpZGxMaXRlcmFsICAgICBjb250YWluZWQgIlwuXGRcKyIKLXN5biBtYXRjaCAgIGlkbExpdGVyYWwgICAgIGNvbnRhaW5lZCAiMHhbMC05QS1GYS1mXVwrIgotc3luIG1hdGNoICAgaWRsTGl0ZXJhbCAgICAgY29udGFpbmVkICIwWzAtN11cKyIKLXN5biBrZXl3b3JkIGlkbExpdGVyYWwgICAgIGNvbnRhaW5lZCBUUlVFIEZBTFNFCi0KLSIgQ29tbWVudHMKLXN5biBrZXl3b3JkIGlkbFRvZG8gICAgICAgIGNvbnRhaW5lZCBUT0RPIEZJWE1FIFhYWAotc3luIHJlZ2lvbiBpZGxDb21tZW50ICAgICAgc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1pZGxUb2RvLEBTcGVsbAotc3luIG1hdGNoICBpZGxDb21tZW50ICAgICAgIi8vLioiIGNvbnRhaW5zPWlkbFRvZG8sQFNwZWxsCi1zeW4gbWF0Y2ggIGlkbENvbW1lbnRFcnJvciAiXCovIgotCi0iIEMgc3R5bGUgUHJlcHJvY2Vzc29yCi1zeW4gcmVnaW9uIGlkbEluY2x1ZGVkICAgIGNvbnRhaW5lZCBzdGFydD0rIisgIHNraXA9K1xcXChcXFxcXCkqIisgIGVuZD0rIisKLXN5biBtYXRjaCAgaWRsSW5jbHVkZWQgICAgY29udGFpbmVkICI8W14+XSo+Igotc3luIG1hdGNoICBpZGxJbmNsdWRlICAgICAiXlsgXHRdKiNbIFx0XSppbmNsdWRlXD5bIFx0XSpbIjxdIiBjb250YWlucz1pZGxJbmNsdWRlZCxpZGxTdHJpbmcKLXN5biByZWdpb24gaWRsUHJlQ29uZGl0ICAgc3RhcnQ9Il5bIFx0XSojWyBcdF0qXChpZlw+XHxpZmRlZlw+XHxpZm5kZWZcPlx8ZWxpZlw+XHxlbHNlXD5cfGVuZGlmXD5cKSIgIHNraXA9IlxcJCIgIGVuZD0iJCIgY29udGFpbnM9aWRsQ29tbWVudCxpZGxDb21tZW50RXJyb3IKLXN5biByZWdpb24gaWRsRGVmaW5lICAgICAgc3RhcnQ9Il5bIFx0XSojWyBcdF0qXChkZWZpbmVcPlx8dW5kZWZcPlwpIiBza2lwPSJcXCQiIGVuZD0iJCIgY29udGFpbnM9aWRsTGl0ZXJhbCxpZGxTdHJpbmcKLQotIiBDb25zdGFudHMKLXN5biBrZXl3b3JkIGlkbENvbnN0ICAgIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxCYXNlVHlwZSxpZGxCYXNlVHlwZUludAotCi0iIEF0dHJpYnV0ZQotc3luIGtleXdvcmQgaWRsUk9BdHRyICAgcmVhZG9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEF0dHIKLXN5biBrZXl3b3JkIGlkbEF0dHIgICAgIGF0dHJpYnV0ZSAgICAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxCYXNlVHlwZUludCxpZGxCYXNlVHlwZQotCi0iIFR5cGVzCi1zeW4gcmVnaW9uICBpZGxENCAgICAgICAgICBjb250YWluZWQgc3RhcnQ9IjwiIGVuZD0iPiIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU2ltcERlY2wgY29udGFpbnM9aWRsU2VxVHlwZSxpZGxCYXNlVHlwZUludCxpZGxCYXNlVHlwZSxpZGxMaXRlcmFsCi1zeW4ga2V5d29yZCBpZGxTZXFUeXBlICAgICBjb250YWluZWQgc2VxdWVuY2UgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRDQKLXN5biBrZXl3b3JkIGlkbEJhc2VUeXBlICAgIGNvbnRhaW5lZCBmbG9hdCBkb3VibGUgY2hhciBib29sZWFuIG9jdGV0IGFueSBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTaW1wRGVjbAotc3luIGtleXdvcmQgaWRsQmFzZVR5cGVJbnQgY29udGFpbmVkIHNob3J0IGxvbmcgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFNpbXBEZWNsCi1zeW4ga2V5d29yZCBpZGxCYXNlVHlwZSAgICBjb250YWluZWQgdW5zaWduZWQgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsQmFzZVR5cGVJbnQKLXN5biByZWdpb24gIGlkbEQxICAgICAgICAgIGNvbnRhaW5lZCBzdGFydD0iPCIgZW5kPSI+IiAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTaW1wRGVjbCBjb250YWlucz1pZGxTdHJpbmcsaWRsTGl0ZXJhbAotc3luIGtleXdvcmQgaWRsQmFzZVR5cGUgICAgY29udGFpbmVkIHN0cmluZyAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEQxLGlkbFNpbXBEZWNsCi1zeW4gbWF0Y2ggICBpZGxCYXNlVHlwZSAgICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrWyBcdF0qXCg6OlsgXHRdKlthLXpBLVowLTlfXVwrXCkqIiAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU2ltcERlY2wKLQotIiBNb2R1bGVzCi1zeW4gcmVnaW9uICBpZGxNb2R1bGVDb250ZW50IGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uIGNvbnRhaW5zPWlkbFVuaW9uLGlkbFN0cnVjdCxpZGxFbnVtLGlkbEludGVyZmFjZSxpZGxDb21tZW50LGlkbFR5cGVkZWYsaWRsQ29uc3QsaWRsRXhjZXB0aW9uLGlkbE1vZHVsZQotc3luIG1hdGNoICAgaWRsTW9kdWxlTmFtZSAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE1vZHVsZUNvbnRlbnQsaWRsRXJyb3IsaWRsU2VtaUNvbG9uCi1zeW4ga2V5d29yZCBpZGxNb2R1bGUgICAgICBtb2R1bGUgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsTW9kdWxlTmFtZQotCi0iIEludGVyZmFjZXMKLXN5biBjbHVzdGVyIGlkbENvbW1lbnRhYmxlIGNvbnRhaW5zPWlkbENvbW1lbnQKLXN5biBjbHVzdGVyIGlkbENvbnRlbnRDbHVzdGVyIGNvbnRhaW5zPWlkbFVuaW9uLGlkbFN0cnVjdCxpZGxFbnVtLGlkbFJPQXR0cixpZGxBdHRyLGlkbE9wLGlkbE9uZVdheU9wLGlkbEV4Y2VwdGlvbixpZGxDb25zdCxpZGxUeXBlZGVmLGlkbEF0dHJpYnV0ZXMsaWRsRXJyb3JTcXVhcmVCcmFja2V0LGlkbEVycm9yQnJhY2tldCxpZGxJbnRlcmZhY2VTZWN0aW9ucwotCi1zeW4gcmVnaW9uICBpZGxJbnRlcmZhY2VDb250ZW50IGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbiBjb250YWlucz1AaWRsQ29udGVudENsdXN0ZXIsQGlkbENvbW1lbnRhYmxlCi1zeW4gbWF0Y2ggICBpZGxJbmhlcml0RnJvbTIgY29udGFpbmVkICIsIiAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEluaGVyaXRGcm9tCi1zeW4gbWF0Y2ggICBpZGxJbmhlcml0RnJvbSBjb250YWluZWQgIlthLXpBLVowLTlfXVwrWyBcdF0qXCg6OlsgXHRdKlthLXpBLVowLTlfXVwrXCkqIiBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxJbmhlcml0RnJvbTIsaWRsSW50ZXJmYWNlQ29udGVudAotc3luIG1hdGNoICAgaWRsSW5oZXJpdCBjb250YWluZWQgIjoiICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEluaGVyaXRGcm9tCi1zeW4gbWF0Y2ggICBpZGxJbnRlcmZhY2VOYW1lIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCsiICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEludGVyZmFjZUNvbnRlbnQsaWRsSW5oZXJpdCxpZGxFcnJvcixpZGxTZW1pQ29sb24KLXN5biBrZXl3b3JkIGlkbEludGVyZmFjZSAgICAgaW50ZXJmYWNlIGRpc3BpbnRlcmZhY2UgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsSW50ZXJmYWNlTmFtZQotc3luIGtleXdvcmQgaWRsSW50ZXJmYWNlU2VjdGlvbnMgY29udGFpbmVkIHByb3BlcnRpZXMgbWV0aG9kcyBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTZWN0aW9uQ29sb24saWRsRXJyb3IKLXN5biBtYXRjaCAgIGlkbFNlY3Rpb25Db2xvbiBjb250YWluZWQgIjoiCi0KLQotc3luIG1hdGNoICAgaWRsTGlicmFyeU5hbWUgIGNvbnRhaW5lZCAgIlthLXpBLVowLTlfXVwrIiAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxMaWJyYXJ5Q29udGVudCxpZGxFcnJvcixpZGxTZW1pQ29sb24KLXN5biBrZXl3b3JkIGlkbExpYnJhcnkgICAgICBsaWJyYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsTGlicmFyeU5hbWUKLXN5biByZWdpb24gIGlkbExpYnJhcnlDb250ZW50IGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uIGNvbnRhaW5zPUBpZGxDb21tZW50YWJsZSxpZGxBdHRyaWJ1dGVzLGlkbEVycm9yU3F1YXJlQnJhY2tldCxpZGxFcnJvckJyYWNrZXQsaWRsSW1wb3J0bGliLGlkbENvY2xhc3MsaWRsVHlwZWRlZixpZGxJbnRlcmZhY2UKLQotc3luIGtleXdvcmQgaWRsSW1wb3J0bGliIGNvbnRhaW5lZCBpbXBvcnRsaWIgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTdHJpbmdBcmcKLXN5biByZWdpb24gaWRsU3RyaW5nQXJnIGNvbnRhaW5lZCBzdGFydD0iKCIgZW5kPSIpIiAgICAgICAgICAgY29udGFpbnM9aWRsU3RyaW5nIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24saWRsRXJyb3JCcmFjZSxpZGxFcnJvclNxdWFyZUJyYWNrZXQKLQotc3luIGtleXdvcmQgaWRsQ29jbGFzcyBjb2NsYXNzIGNvbnRhaW5lZCAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxDb2NsYXNzTmFtZQotc3luIG1hdGNoICAgaWRsQ29jbGFzc05hbWUgIlthLXpBLVowLTlfXVwrIiBjb250YWluZWQgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxDb2NsYXNzRGVmaW5pdGlvbixpZGxFcnJvcixpZGxTZW1pQ29sb24KLQotc3luIHJlZ2lvbiBpZGxDb2NsYXNzRGVmaW5pdGlvbiBjb250YWluZWQgc3RhcnQ9InsiIGVuZD0ifSIgICBjb250YWlucz1pZGxDb2NsYXNzQXR0cmlidXRlcyxpZGxJbnRlcmZhY2UsaWRsRXJyb3JCcmFja2V0LGlkbEVycm9yU3F1YXJlQnJhY2tldCBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24KLXN5biByZWdpb24gaWRsQ29jbGFzc0F0dHJpYnV0ZXMgY29udGFpbmVkIHN0YXJ0PStcWysgZW5kPStdKyAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsSW50ZXJmYWNlIGNvbnRhaW5zPWlkbEVycm9yQnJhY2tldCxpZGxFcnJvckJyYWNlLGlkbENvY2xhc3NBdHRyaWJ1dGUKLXN5biBrZXl3b3JkIGlkbENvY2xhc3NBdHRyaWJ1dGUgY29udGFpbmVkIGRlZmF1bHQgc291cmNlCi0ic3luIGtleXdvcmQgaWRsSW50ZXJmYWNlICAgICAgIGludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxJbnRlcmZhY2VTdHViTmFtZQotCi1zeW4gbWF0Y2ggaWRsSW1wb3J0U3RyaW5nICAgICAgICsiXGZcKyIrICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbgotc3luIGtleXdvcmQgaWRsSW1wb3J0ICAgICAgICAgICBpbXBvcnQgICAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxJbXBvcnRTdHJpbmcKLQotc3luIHJlZ2lvbiAgaWRsQXR0cmlidXRlcyBzdGFydD0iXFsiIGVuZD0iXF0iICAgICAgICAgICAgICAgICBjb250YWlucz1pZGxBdHRyaWJ1dGUsaWRsQXR0cmlidXRlUGFyYW0saWRsRXJyb3JCcmFja2V0LGlkbEVycm9yQnJhY2UsaWRsQ29tbWVudAotc3luIGtleXdvcmQgaWRsQXR0cmlidXRlIGNvbnRhaW5lZCBwcm9wcHV0IHByb3BnZXQgcHJvcHB1dHJlZiBpZCBoZWxwc3RyaW5nIG9iamVjdCB1dWlkIHBvaW50ZXJfZGVmYXVsdAotaWYgIWV4aXN0cygnaWRsX25vX21zX2V4dGVuc2lvbnMnKQotc3luIGtleXdvcmQgaWRsQXR0cmlidXRlIGNvbnRhaW5lZCBub25leHRlbnNpYmxlIGR1YWwgdmVyc2lvbiBhZ2dyZWdhdGFibGUgcmVzdHJpY3RlZCBoaWRkZW4gbm9uY3JlYXRhYmxlIG9sZWF1dG9tYXRpb24KLWVuZGlmCi1zeW4gcmVnaW9uIGlkbEF0dHJpYnV0ZVBhcmFtIGNvbnRhaW5lZCBzdGFydD0iKCIgZW5kPSIpIiAgICAgIGNvbnRhaW5zPWlkbFN0cmluZyxpZGxVdWlkLGlkbExpdGVyYWwsaWRsRXJyb3JCcmFjZSxpZGxFcnJvclNxdWFyZUJyYWNrZXQKLSIgc2tpcHdoaXRlIG5leHRncm91cD1pZGxBcnJheVNpemUsaWRsUGFybUxpc3QgY29udGFpbnM9aWRsQXJyYXlTaXplLGlkbExpdGVyYWwKLXN5biBtYXRjaCBpZGxFcnJvckJyYWNlIGNvbnRhaW5lZCAifSIKLXN5biBtYXRjaCBpZGxFcnJvckJyYWNrZXQgY29udGFpbmVkICIpIgotc3luIG1hdGNoIGlkbEVycm9yU3F1YXJlQnJhY2tldCBjb250YWluZWQgIlxdIgotCi1zeW4gbWF0Y2ggaWRsVXVpZCAgICAgICAgIGNvbnRhaW5lZCArWzAtOWEtekEtWl1cezh9LVwoWzAtOWEtekEtWl1cezR9LVwpXHszfVswLTlhLXpBLVpdXHsxMn0rCi0KLSIgUmFpc2VzCi1zeW4ga2V5d29yZCBpZGxSYWlzZXMgICAgIGNvbnRhaW5lZCByYWlzZXMgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxSYWlzZXMsaWRsQ29udGV4dCxpZGxFcnJvcixpZGxTZW1pQ29sb24KLQotIiBDb250ZXh0Ci1zeW4ga2V5d29yZCBpZGxDb250ZXh0ICAgIGNvbnRhaW5lZCBjb250ZXh0ICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxSYWlzZXMsaWRsQ29udGV4dCxpZGxFcnJvcixpZGxTZW1pQ29sb24KLQotIiBPcGVyYXRpb24KLXN5biBtYXRjaCAgIGlkbFBhcm1MaXN0ICAgY29udGFpbmVkICIsIiAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wUGFybXMKLXN5biByZWdpb24gIGlkbEFycmF5U2l6ZSAgY29udGFpbmVkIHN0YXJ0PSJcWyIgZW5kPSJcXSIgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEFycmF5U2l6ZSxpZGxQYXJtTGlzdCBjb250YWlucz1pZGxBcnJheVNpemUsaWRsTGl0ZXJhbAotc3luIG1hdGNoICAgaWRsUGFybU5hbWUgICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrIiAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUGFybUxpc3QsaWRsQXJyYXlTaXplCi1zeW4ga2V5d29yZCBpZGxQYXJtSW50ICAgIGNvbnRhaW5lZCBzaG9ydCBsb25nICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxQYXJtTmFtZQotc3luIGtleXdvcmQgaWRsUGFybVR5cGUgICBjb250YWluZWQgdW5zaWduZWQgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUGFybUludAotc3luIHJlZ2lvbiAgaWRsRDMgICAgICAgICBjb250YWluZWQgc3RhcnQ9IjwiIGVuZD0iPiIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUGFybU5hbWUgY29udGFpbnM9aWRsU3RyaW5nLGlkbExpdGVyYWwKLXN5biBrZXl3b3JkIGlkbFBhcm1UeXBlICAgY29udGFpbmVkIHN0cmluZyAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEQzLGlkbFBhcm1OYW1lCi1zeW4ga2V5d29yZCBpZGxQYXJtVHlwZSAgIGNvbnRhaW5lZCB2b2lkIGZsb2F0IGRvdWJsZSBjaGFyIGJvb2xlYW4gb2N0ZXQgYW55ICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFBhcm1OYW1lCi1zeW4gbWF0Y2ggICBpZGxQYXJtVHlwZSAgIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCtbIFx0XSpcKDo6WyBcdF0qW2EtekEtWjAtOV9dXCtcKSoiIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFBhcm1OYW1lCi1zeW4ga2V5d29yZCBpZGxPcFBhcm1zICAgIGNvbnRhaW5lZCBpbiBvdXQgaW5vdXQgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxQYXJtVHlwZQotCi1pZiAhZXhpc3RzKCdpZGxfbm9fbXNfZXh0ZW5zaW9ucycpCi1zeW4ga2V5d29yZCBpZGxPcFBhcm1zICAgIGNvbnRhaW5lZCByZXR2YWwgb3B0aW9uYWwgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxQYXJtVHlwZQotICBzeW4gbWF0Y2ggaWRsT3BQYXJtcyBjb250YWluZWQgK1w8XChpaWRfaXNcfGRlZmF1bHR2YWx1ZVwpXHMqKFteKV0qKSsgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUGFyYW1UeXBlCi0KLSAgc3luIGtleXdvcmQgaWRsVmFyaWFudFR5cGUgIGNvbnRhaW5lZCBCU1RSIFZBUklBTlQgVkFSSUFOVF9CT09MIGxvbmcgc2hvcnQgdW5zaWduZWQgZG91YmxlIENVUlJFTkNZIERBVEUKLSAgc3luIHJlZ2lvbiBpZGxTYWZlQXJyYXkgY29udGFpbmVkIG1hdGNoZ3JvdXA9aWRsVmFyaWFudFR5cGUgc3RhcnQ9K1NBRkVBUlJBWShccyorIGVuZD0rKSsgY29udGFpbnM9aWRsVmFyaWFudFR5cGUKLWVuZGlmCi0KLXN5biByZWdpb24gIGlkbE9wQ29udGVudHMgY29udGFpbmVkIHN0YXJ0PSIoIiBlbmQ9IikiICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFJhaXNlcyxpZGxDb250ZXh0LGlkbEVycm9yLGlkbFNlbWlDb2xvbiBjb250YWlucz1pZGxPcFBhcm1zLGlkbFNhZmVBcnJheSxpZGxWYXJpYW50VHlwZSxAaWRsQ29tbWVudGFibGUKLXN5biBtYXRjaCAgIGlkbE9wTmFtZSAgIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCsiICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wQ29udGVudHMKLXN5biBrZXl3b3JkIGlkbE9wSW50ICAgIGNvbnRhaW5lZCBzaG9ydCBsb25nICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wTmFtZQotc3luIHJlZ2lvbiAgaWRsRDIgICAgICAgY29udGFpbmVkIHN0YXJ0PSI8IiBlbmQ9Ij4iICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsT3BOYW1lIGNvbnRhaW5zPWlkbFN0cmluZyxpZGxMaXRlcmFsCi1zeW4ga2V5d29yZCBpZGxPcCAgICAgICBjb250YWluZWQgdW5zaWduZWQgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxPcEludAotc3luIGtleXdvcmQgaWRsT3AgICAgICAgY29udGFpbmVkIHN0cmluZyAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRDIsaWRsT3BOYW1lCi1zeW4ga2V5d29yZCBpZGxPcCAgICAgICBjb250YWluZWQgdm9pZCBmbG9hdCBkb3VibGUgY2hhciBib29sZWFuIG9jdGV0IGFueSAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsT3BOYW1lCi1zeW4gbWF0Y2ggICBpZGxPcCAgICAgICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrWyBcdF0qXCg6OlsgXHRdKlthLXpBLVowLTlfXVwrXCkqIiBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxPcE5hbWUKLXN5biBrZXl3b3JkIGlkbE9wICAgICAgIGNvbnRhaW5lZCB2b2lkICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wTmFtZQotc3luIGtleXdvcmQgaWRsT25lV2F5T3AgY29udGFpbmVkIG9uZXdheSAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRPcAotCi0iIEVudW0KLXN5biByZWdpb24gIGlkbEVudW1Db250ZW50cyBjb250YWluZWQgc3RhcnQ9InsiIGVuZD0ifSIgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbixpZGxTaW1wRGVjbCBjb250YWlucz1pZGxJZCxpZGxBdHRyaWJ1dGVzLEBpZGxDb21tZW50YWJsZQotc3luIG1hdGNoICAgaWRsRW51bU5hbWUgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRW51bUNvbnRlbnRzCi1zeW4ga2V5d29yZCBpZGxFbnVtICAgICBlbnVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFbnVtTmFtZSxpZGxFbnVtQ29udGVudHMKLQotIiBUeXBlZGVmCi1zeW4ga2V5d29yZCBpZGxUeXBlZGVmIHR5cGVkZWYgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFR5cGVkZWZPdGhlclR5cGVRdWFsaWZpZXIsaWRsRGVmQmFzZVR5cGUsaWRsRGVmQmFzZVR5cGVJbnQsaWRsRGVmU2VxVHlwZSxpZGxEZWZ2MUVudW0saWRsRGVmRW51bSxpZGxEZWZPdGhlclR5cGUsaWRsRGVmQXR0cmlidXRlcyxpZGxFcnJvcgotCi1pZiAhZXhpc3RzKCdpZGxfbm9fZXh0ZW5zaW9ucycpCi0gIHN5biBrZXl3b3JkIGlkbFR5cGVkZWZPdGhlclR5cGVRdWFsaWZpZXIgY29udGFpbmVkIHN0cnVjdCBlbnVtIGludGVyZmFjZSBuZXh0Z3JvdXA9aWRsRGVmQmFzZVR5cGUsaWRsRGVmQmFzZVR5cGVJbnQsaWRsRGVmU2VxVHlwZSxpZGxEZWZ2MUVudW0saWRsRGVmRW51bSxpZGxEZWZPdGhlclR5cGUsaWRsRGVmQXR0cmlidXRlcyxpZGxFcnJvciBza2lwd2hpdGUKLQotICBzeW4gcmVnaW9uICBpZGxEZWZBdHRyaWJ1dGVzICAgICAgICBjb250YWluZWQgc3RhcnQ9IlxbIiBlbmQ9IlxdIiBjb250YWlucz1pZGxBdHRyaWJ1dGUsaWRsQXR0cmlidXRlUGFyYW0saWRsRXJyb3JCcmFja2V0LGlkbEVycm9yQnJhY2Ugc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRGVmQmFzZVR5cGUsaWRsRGVmQmFzZVR5cGVJbnQsaWRsRGVmU2VxVHlwZSxpZGxEZWZ2MUVudW0saWRsRGVmRW51bSxpZGxEZWZPdGhlclR5cGUsaWRsRXJyb3IKLQotICBzeW4ga2V5d29yZCBpZGxEZWZCYXNlVHlwZSAgICAgIGNvbnRhaW5lZCBmbG9hdCBkb3VibGUgY2hhciBib29sZWFuIG9jdGV0IGFueSAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsVHlwZWRlZkRlY2wsaWRsRXJyb3IKLSAgc3luIGtleXdvcmQgaWRsRGVmQmFzZVR5cGVJbnQgICBjb250YWluZWQgc2hvcnQgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFR5cGVkZWZEZWNsLGlkbEVycm9yCi0gIHN5biBtYXRjaCBpZGxEZWZPdGhlclR5cGUgICAgICAgY29udGFpbmVkICtcPFxrXCtcPisgc2tpcGVtcHR5ICAgICAgICAgICAgICAgICBuZXh0Z3JvdXA9aWRsVHlwZWRlZkRlY2wsaWRsRXJyb3IKLSAgIiBzeW4ga2V5d29yZCBpZGxEZWZTZXFUeXBlICAgICBjb250YWluZWQgc2VxdWVuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEQ0Ci0KLSAgIiBFbnVtIHR5cGVkZWYKLSAgc3luIGtleXdvcmQgaWRsRGVmRW51bSAgICAgICAgICBjb250YWluZWQgZW51bSBza2lwZW1wdHkgICAgICAgICAgICAgICAgICAgICAgIHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRGVmRW51bU5hbWUsaWRsRGVmRW51bUNvbnRlbnRzCi0gIHN5biBtYXRjaCAgIGlkbERlZkVudW1OYW1lICAgICAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxEZWZFbnVtQ29udGVudHMsaWRsVHlwZWRlZkRlY2wKLSAgc3luIHJlZ2lvbiAgaWRsRGVmRW51bUNvbnRlbnRzICBjb250YWluZWQgc3RhcnQ9InsiIGVuZD0ifSIgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFR5cGVkZWZEZWNsIGNvbnRhaW5zPWlkbElkLGlkbEF0dHJpYnV0ZXMKLQotICBzeW4gbWF0Y2ggICBpZGxUeXBlZGVmRGVjbCAgICAgIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCsiICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uCi1lbmRpZgotCi0iIFN0cnVjdAotc3luIHJlZ2lvbiAgaWRsU3RydWN0Q29udGVudCAgIGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbixpZGxTaW1wRGVjbCBjb250YWlucz1pZGxCYXNlVHlwZSxpZGxCYXNlVHlwZUludCxpZGxTZXFUeXBlLEBpZGxDb21tZW50YWJsZSxpZGxFbnVtLGlkbFVuaW9uCi1zeW4gbWF0Y2ggICBpZGxTdHJ1Y3ROYW1lICAgICAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU3RydWN0Q29udGVudAotc3luIGtleXdvcmQgaWRsU3RydWN0ICAgICAgICAgIHN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFN0cnVjdE5hbWUKLQotIiBFeGNlcHRpb24KLXN5biBrZXl3b3JkIGlkbEV4Y2VwdGlvbiAgICAgICBleGNlcHRpb24gICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTdHJ1Y3ROYW1lCi0KLSIgVW5pb24KLXN5biBtYXRjaCAgIGlkbENvbG9uICAgICAgICAgICAgY29udGFpbmVkICI6IiAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxDYXNlLGlkbFNlcVR5cGUsaWRsQmFzZVR5cGUsaWRsQmFzZVR5cGVJbnQKLXN5biByZWdpb24gIGlkbENhc2VMYWJlbCAgICAgICAgY29udGFpbmVkIHN0YXJ0PSIiIHNraXA9Ijo6IiBlbmQ9IjoibWU9ZS0xIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbENvbG9uIGNvbnRhaW5zPWlkbExpdGVyYWwsaWRsU3RyaW5nCi1zeW4ga2V5d29yZCBpZGxDYXNlICAgICAgICAgICAgIGNvbnRhaW5lZCBjYXNlICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsQ2FzZUxhYmVsCi1zeW4ga2V5d29yZCBpZGxDYXNlICAgICAgICAgICAgIGNvbnRhaW5lZCBkZWZhdWx0ICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsQ29sb24KLXN5biByZWdpb24gIGlkbFVuaW9uQ29udGVudCAgICAgY29udGFpbmVkIHN0YXJ0PSJ7IiBlbmQ9In0iICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24saWRsU2ltcERlY2wgY29udGFpbnM9aWRsQ2FzZQotc3luIHJlZ2lvbiAgaWRsU3dpdGNoVHlwZSAgICAgICBjb250YWluZWQgc3RhcnQ9IigiIGVuZD0iKSIgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFVuaW9uQ29udGVudAotc3luIGtleXdvcmQgaWRsVW5pb25Td2l0Y2ggICAgICBjb250YWluZWQgc3dpdGNoICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFN3aXRjaFR5cGUKLXN5biBtYXRjaCAgIGlkbFVuaW9uTmFtZSAgICAgICAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxVbmlvblN3aXRjaAotc3luIGtleXdvcmQgaWRsVW5pb24gICAgICAgICAgICB1bmlvbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFVuaW9uTmFtZQotCi1pZiAhZXhpc3RzKCdpZGxfbm9fZXh0ZW5zaW9ucycpCi0gIHN5biBzeW5jIG1hdGNoICBpZGxJbnRlcmZhY2VTeW5jIGdyb3VwaGVyZSBpZGxJbnRlcmZhY2VDb250ZW50ICJcPFwoZGlzcFwpXD1pbnRlcmZhY2VcPlxzXCtca1wrXHMqOlxzKlxrXCtcX3MqeyIgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uIGNvbnRhaW5zPUBpZGxDb250ZW50Q2x1c3RlcixAaWRsQ29tbWVudGFibGUKLSAgc3luIHN5bmMgbWF4bGluZXM9MTAwMCBtaW5saW5lcz0xMDAKLWVsc2UKLSAgc3luIHN5bmMgbGluZXM9MjAwCi1lbmRpZgotIiBzeW4gc3luYyBmcm9tc3RhcnQKLQotaWYgIWV4aXN0cygiZGlkX2lkbF9zeW50YXhfaW5pdHMiKQotICBsZXQgZGlkX2lkbF9zeW50YXhfaW5pdHMgPSAxCi0gICIgVGhlIGRlZmF1bHQgbWV0aG9kcyBmb3IgaGlnaGxpZ2h0aW5nLiAgQ2FuIGJlIG92ZXJyaWRkZW4gbGF0ZXIKLSAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+Ci0KLSAgSGlMaW5rIGlkbEluY2x1ZGUgICAgICAgICAgICAgSW5jbHVkZQotICBIaUxpbmsgaWRsUHJlUHJvYyAgICAgICAgICAgICBQcmVQcm9jCi0gIEhpTGluayBpZGxQcmVDb25kaXQgICAgICAgICAgIFByZUNvbmRpdAotICBIaUxpbmsgaWRsRGVmaW5lICAgICAgICAgICAgICBNYWNybwotICBIaUxpbmsgaWRsSW5jbHVkZWQgICAgICAgICAgICBTdHJpbmcKLSAgSGlMaW5rIGlkbFN0cmluZyAgICAgICAgICAgICAgU3RyaW5nCi0gIEhpTGluayBpZGxDb21tZW50ICAgICAgICAgICAgIENvbW1lbnQKLSAgSGlMaW5rIGlkbFRvZG8gICAgICAgICAgICAgICAgVG9kbwotICBIaUxpbmsgaWRsTGl0ZXJhbCAgICAgICAgICAgICBOdW1iZXIKLSAgSGlMaW5rIGlkbFV1aWQgICAgICAgICAgICAgICAgTnVtYmVyCi0gIEhpTGluayBpZGxUeXBlICAgICAgICAgICAgICAgIFR5cGUKLSAgSGlMaW5rIGlkbFZhcmlhbnRUeXBlICAgICAgICAgaWRsVHlwZQotCi0gIEhpTGluayBpZGxNb2R1bGUgICAgICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbEludGVyZmFjZSAgICAgICAgICAgS2V5d29yZAotICBIaUxpbmsgaWRsRW51bSAgICAgICAgICAgICAgICBLZXl3b3JkCi0gIEhpTGluayBpZGxTdHJ1Y3QgICAgICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbFVuaW9uICAgICAgICAgICAgICAgS2V5d29yZAotICBIaUxpbmsgaWRsVHlwZWRlZiAgICAgICAgICAgICBLZXl3b3JkCi0gIEhpTGluayBpZGxFeGNlcHRpb24gICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbFR5cGVkZWZPdGhlclR5cGVRdWFsaWZpZXIga2V5d29yZAotCi0gIEhpTGluayBpZGxNb2R1bGVOYW1lICAgICAgICAgIFR5cGVkZWYKLSAgSGlMaW5rIGlkbEludGVyZmFjZU5hbWUgICAgICAgVHlwZWRlZgotICBIaUxpbmsgaWRsRW51bU5hbWUgICAgICAgICAgICBUeXBlZGVmCi0gIEhpTGluayBpZGxTdHJ1Y3ROYW1lICAgICAgICAgIFR5cGVkZWYKLSAgSGlMaW5rIGlkbFVuaW9uTmFtZSAgICAgICAgICAgVHlwZWRlZgotCi0gIEhpTGluayBpZGxCYXNlVHlwZUludCAgICAgICAgIGlkbFR5cGUKLSAgSGlMaW5rIGlkbEJhc2VUeXBlICAgICAgICAgICAgaWRsVHlwZQotICBIaUxpbmsgaWRsU2VxVHlwZSAgICAgICAgICAgICBpZGxUeXBlCi0gIEhpTGluayBpZGxEMSAgICAgICAgICAgICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxEMiAgICAgICAgICAgICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxEMyAgICAgICAgICAgICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxENCAgICAgICAgICAgICAgICAgIFBhcmVuCi0gICJIaUxpbmsgaWRsQXJyYXlTaXplICAgICAgICAgIFBhcmVuCi0gICJIaUxpbmsgaWRsQXJyYXlTaXplMSAgICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxNb2R1bGVDb250ZW50ICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxVbmlvbkNvbnRlbnQgICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxTdHJ1Y3RDb250ZW50ICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxFbnVtQ29udGVudHMgICAgICAgIFBhcmVuCi0gIEhpTGluayBpZGxJbnRlcmZhY2VDb250ZW50ICAgIFBhcmVuCi0KLSAgSGlMaW5rIGlkbFNpbXBEZWNsICAgICAgICAgICAgSWRlbnRpZmllcgotICBIaUxpbmsgaWRsUk9BdHRyICAgICAgICAgICAgICBTdG9yYWdlQ2xhc3MKLSAgSGlMaW5rIGlkbEF0dHIgICAgICAgICAgICAgICAgS2V5d29yZAotICBIaUxpbmsgaWRsQ29uc3QgICAgICAgICAgICAgICBTdG9yYWdlQ2xhc3MKLQotICBIaUxpbmsgaWRsT25lV2F5T3AgICAgICAgICAgICBTdG9yYWdlQ2xhc3MKLSAgSGlMaW5rIGlkbE9wICAgICAgICAgICAgICAgICAgaWRsVHlwZQotICBIaUxpbmsgaWRsUGFybVR5cGUgICAgICAgICAgICBpZGxUeXBlCi0gIEhpTGluayBpZGxPcE5hbWUgICAgICAgICAgICAgIEZ1bmN0aW9uCi0gIEhpTGluayBpZGxPcFBhcm1zICAgICAgICAgICAgIFNwZWNpYWxDb21tZW50Ci0gIEhpTGluayBpZGxQYXJtTmFtZSAgICAgICAgICAgIElkZW50aWZpZXIKLSAgSGlMaW5rIGlkbEluaGVyaXRGcm9tICAgICAgICAgSWRlbnRpZmllcgotICBIaUxpbmsgaWRsQXR0cmlidXRlICAgICAgICAgICBTcGVjaWFsQ29tbWVudAotCi0gIEhpTGluayBpZGxJZCAgICAgICAgICAgICAgICAgIENvbnN0YW50Ci0gICJIaUxpbmsgaWRsQ2FzZSAgICAgICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbENhc2VMYWJlbCAgICAgICAgICAgQ29uc3RhbnQKLQotICBIaUxpbmsgaWRsRXJyb3JCcmFja2V0ICAgICAgICBFcnJvcgotICBIaUxpbmsgaWRsRXJyb3JCcmFjZSAgICAgICAgICBFcnJvcgotICBIaUxpbmsgaWRsRXJyb3JTcXVhcmVCcmFja2V0ICBFcnJvcgotCi0gIEhpTGluayBpZGxJbXBvcnQgICAgICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbEltcG9ydFN0cmluZyAgICAgICAgaWRsU3RyaW5nCi0gIEhpTGluayBpZGxDb2NsYXNzQXR0cmlidXRlICAgIFN0b3JhZ2VDbGFzcwotICBIaUxpbmsgaWRsTGlicmFyeSAgICAgICAgICAgICBLZXl3b3JkCi0gIEhpTGluayBpZGxJbXBvcnRsaWIgICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbENvY2xhc3MgICAgICAgICAgICAgS2V5d29yZAotICBIaUxpbmsgaWRsTGlicmFyeU5hbWUgICAgICAgICBUeXBlZGVmCi0gIEhpTGluayBpZGxDb2NsYXNzTmFtZSAgICAgICAgIFR5cGVkZWYKLSAgIiBoaSBpZGxMaWJyYXJ5Q29udGVudCBndWlmZz1yZWQKLSAgSGlMaW5rIGlkbFR5cGVkZWZEZWNsICAgICAgICAgVHlwZWRlZgotICBIaUxpbmsgaWRsRGVmRW51bSAgICAgICAgICAgICBLZXl3b3JkCi0gIEhpTGluayBpZGxEZWZ2MUVudW0gICAgICAgICAgIEtleXdvcmQKLSAgSGlMaW5rIGlkbERlZkVudW1OYW1lICAgICAgICAgVHlwZWRlZgotICBIaUxpbmsgaWRsRGVmRW51bUNvbnRlbnRzICAgICBQYXJlbgotICBIaUxpbmsgaWRsRGVmQmFzZVR5cGVJbnQgICAgICBpZGxUeXBlCi0gIEhpTGluayBpZGxEZWZCYXNlVHlwZSAgICAgICAgIGlkbFR5cGUKLSAgSGlMaW5rIGlkbERlZlNlcVR5cGUgICAgICAgICAgaWRsVHlwZQotICBIaUxpbmsgaWRsSW50ZXJmYWNlU2VjdGlvbnMgICBMYWJlbAorbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCit0cnkKKyAgc2V0IGNwbyZ2aW0KIAogICBpZiBleGlzdHMoImlkbHN5bnRheF9zaG93ZXJyb3IiKQotICAgIGlmIGV4aXN0cygiaWRsc3ludGF4X3Nob3dlcnJvcl9zb2Z0IikKLSAgICAgIGhpIGRlZmF1bHQgaWRsRXJyb3IgZ3VpYmc9I2QwZmZkMAotICAgIGVsc2UKLSAgICAgIEhpTGluayBpZGxFcnJvciBFcnJvcgotICAgIGVuZGlmCisgICAgc3luIG1hdGNoIGlkbEVycm9yICtcUysgc2tpcHdoaXRlIHNraXBlbXB0eSBuZXh0Z3JvdXA9aWRsRXJyb3IKICAgZW5kaWYKLSAgZGVsY29tbWFuZCBIaUxpbmsKLWVuZGlmCiAKLWxldCBiOmN1cnJlbnRfc3ludGF4ID0gImlkbCIKKyAgc3luIHJlZ2lvbiBpZGxDcHBRdW90ZSBzdGFydD0nXDxjcHBfcXVvdGVccyooJyBlbmQ9JyknIGNvbnRhaW5zPWlkbFN0cmluZwogCisgICIgTWlzYyBiYXNpYworICBzeW4gbWF0Y2ggICBpZGxJZCAgICAgICAgICBjb250YWluZWQgIlthLXpBLVpdW2EtekEtWjAtOV9dKiIgc2tpcHdoaXRlIHNraXBlbXB0eSBuZXh0Z3JvdXA9aWRsRW51bUNvbW1hLGlkbEVudW1OdW1iZXIKKyAgc3luIG1hdGNoICAgaWRsRW51bUNvbW1hICAgY29udGFpbmVkICIsIgorICBzeW4gbWF0Y2ggICBpZGxFbnVtTnVtYmVyICBjb250YWluZWQgIj0iIHNraXB3aGl0ZSBza2lwZW1wdHkgbmV4dGdyb3VwPWlkbFN0cmluZyxpZGxMaXRlcmFsCisgIHN5biBtYXRjaCAgIGlkbFNlbWlDb2xvbiAgIGNvbnRhaW5lZCAiOyIKKyAgc3luIG1hdGNoICAgaWRsQ29tbWFBcmcgICAgY29udGFpbmVkICIsIiAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTaW1wRGVjbAorICBzeW4gcmVnaW9uICBpZGxBcnJheVNpemUxICBjb250YWluZWQgc3RhcnQ9OlxbOiBlbmQ9OlxdOiAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEFycmF5U2l6ZTEsaWRsRXJyb3IsaWRsU2VtaUNvbG9uLGlkbENvbW1hQXJnIGNvbnRhaW5zPWlkbEFycmF5U2l6ZTEsaWRsTGl0ZXJhbAorICBzeW4gbWF0Y2ggICBpZGxTaW1wRGVjbCAgICBjb250YWluZWQgIlthLXpBLVpdW2EtekEtWjAtOV9dKiIgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbixpZGxDb21tYUFyZyxpZGxBcnJheVNpemUxCisgIHN5biByZWdpb24gIGlkbFN0cmluZyAgICAgIGNvbnRhaW5lZCBzdGFydD0rIisgIHNraXA9K1xcXChcXFxcXCkqIisgIGVuZD0rIisgY29udGFpbnM9QFNwZWxsCisgIHN5biBtYXRjaCAgIGlkbExpdGVyYWwgICAgIGNvbnRhaW5lZCAiWzEtOV1cZCpcKFwuXGQqXClcPSIKKyAgc3luIG1hdGNoICAgaWRsTGl0ZXJhbCAgICAgY29udGFpbmVkICIwIgorICBzeW4gbWF0Y2ggICBpZGxMaXRlcmFsICAgICBjb250YWluZWQgIlwuXGRcKyIKKyAgc3luIG1hdGNoICAgaWRsTGl0ZXJhbCAgICAgY29udGFpbmVkICIweFswLTlBLUZhLWZdXCsiCisgIHN5biBtYXRjaCAgIGlkbExpdGVyYWwgICAgIGNvbnRhaW5lZCAiMFswLTddXCsiCisgIHN5biBrZXl3b3JkIGlkbExpdGVyYWwgICAgIGNvbnRhaW5lZCBUUlVFIEZBTFNFCisKKyAgIiBDb21tZW50cworICBzeW4ga2V5d29yZCBpZGxUb2RvICAgICAgICBjb250YWluZWQgVE9ETyBGSVhNRSBYWFgKKyAgc3luIHJlZ2lvbiBpZGxDb21tZW50ICAgICAgc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1pZGxUb2RvLEBTcGVsbAorICBzeW4gbWF0Y2ggIGlkbENvbW1lbnQgICAgICAiLy8uKiIgY29udGFpbnM9aWRsVG9kbyxAU3BlbGwKKyAgc3luIG1hdGNoICBpZGxDb21tZW50RXJyb3IgIlwqLyIKKworICAiIEMgc3R5bGUgUHJlcHJvY2Vzc29yCisgIHN5biByZWdpb24gaWRsSW5jbHVkZWQgICAgY29udGFpbmVkIHN0YXJ0PSsiKyAgc2tpcD0rXFxcKFxcXFxcKSoiKyAgZW5kPSsiKworICBzeW4gbWF0Y2ggIGlkbEluY2x1ZGVkICAgIGNvbnRhaW5lZCAiPFtePl0qPiIKKyAgc3luIG1hdGNoICBpZGxJbmNsdWRlICAgICAiXlsgXHRdKiNbIFx0XSppbmNsdWRlXD5bIFx0XSpbIjxdIiBjb250YWlucz1pZGxJbmNsdWRlZCxpZGxTdHJpbmcKKyAgc3luIHJlZ2lvbiBpZGxQcmVDb25kaXQgICBzdGFydD0iXlsgXHRdKiNbIFx0XSpcKGlmXD5cfGlmZGVmXD5cfGlmbmRlZlw+XHxlbGlmXD5cfGVsc2VcPlx8ZW5kaWZcPlwpIiAgc2tpcD0iXFwkIiAgZW5kPSIkIiBjb250YWlucz1pZGxDb21tZW50LGlkbENvbW1lbnRFcnJvcgorICBzeW4gcmVnaW9uIGlkbERlZmluZSAgICAgIHN0YXJ0PSJeWyBcdF0qI1sgXHRdKlwoZGVmaW5lXD5cfHVuZGVmXD5cKSIgc2tpcD0iXFwkIiBlbmQ9IiQiIGNvbnRhaW5zPWlkbExpdGVyYWwsaWRsU3RyaW5nCisKKyAgIiBDb25zdGFudHMKKyAgc3luIGtleXdvcmQgaWRsQ29uc3QgICAgY29uc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEJhc2VUeXBlLGlkbEJhc2VUeXBlSW50CisKKyAgIiBBdHRyaWJ1dGUKKyAgc3luIGtleXdvcmQgaWRsUk9BdHRyICAgcmVhZG9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEF0dHIKKyAgc3luIGtleXdvcmQgaWRsQXR0ciAgICAgYXR0cmlidXRlICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEJhc2VUeXBlSW50LGlkbEJhc2VUeXBlCisKKyAgIiBUeXBlcworICBzeW4gcmVnaW9uICBpZGxENCAgICAgICAgICBjb250YWluZWQgc3RhcnQ9IjwiIGVuZD0iPiIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU2ltcERlY2wgY29udGFpbnM9aWRsU2VxVHlwZSxpZGxCYXNlVHlwZUludCxpZGxCYXNlVHlwZSxpZGxMaXRlcmFsCisgIHN5biBrZXl3b3JkIGlkbFNlcVR5cGUgICAgIGNvbnRhaW5lZCBzZXF1ZW5jZSAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxENAorICBzeW4ga2V5d29yZCBpZGxCYXNlVHlwZSAgICBjb250YWluZWQgZmxvYXQgZG91YmxlIGNoYXIgYm9vbGVhbiBvY3RldCBhbnkgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU2ltcERlY2wKKyAgc3luIGtleXdvcmQgaWRsQmFzZVR5cGVJbnQgY29udGFpbmVkIHNob3J0IGxvbmcgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFNpbXBEZWNsCisgIHN5biBrZXl3b3JkIGlkbEJhc2VUeXBlICAgIGNvbnRhaW5lZCB1bnNpZ25lZCAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxCYXNlVHlwZUludAorICBzeW4gcmVnaW9uICBpZGxEMSAgICAgICAgICBjb250YWluZWQgc3RhcnQ9IjwiIGVuZD0iPiIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU2ltcERlY2wgY29udGFpbnM9aWRsU3RyaW5nLGlkbExpdGVyYWwKKyAgc3luIGtleXdvcmQgaWRsQmFzZVR5cGUgICAgY29udGFpbmVkIHN0cmluZyAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEQxLGlkbFNpbXBEZWNsCisgIHN5biBtYXRjaCAgIGlkbEJhc2VUeXBlICAgIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCtbIFx0XSpcKDo6WyBcdF0qW2EtekEtWjAtOV9dXCtcKSoiICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTaW1wRGVjbAorCisgICIgTW9kdWxlcworICBzeW4gcmVnaW9uICBpZGxNb2R1bGVDb250ZW50IGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uIGNvbnRhaW5zPWlkbFVuaW9uLGlkbFN0cnVjdCxpZGxFbnVtLGlkbEludGVyZmFjZSxpZGxDb21tZW50LGlkbFR5cGVkZWYsaWRsQ29uc3QsaWRsRXhjZXB0aW9uLGlkbE1vZHVsZQorICBzeW4gbWF0Y2ggICBpZGxNb2R1bGVOYW1lICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrIiAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsTW9kdWxlQ29udGVudCxpZGxFcnJvcixpZGxTZW1pQ29sb24KKyAgc3luIGtleXdvcmQgaWRsTW9kdWxlICAgICAgbW9kdWxlICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE1vZHVsZU5hbWUKKworICAiIEludGVyZmFjZXMKKyAgc3luIGNsdXN0ZXIgaWRsQ29tbWVudGFibGUgY29udGFpbnM9aWRsQ29tbWVudAorICBzeW4gY2x1c3RlciBpZGxDb250ZW50Q2x1c3RlciBjb250YWlucz1pZGxVbmlvbixpZGxTdHJ1Y3QsaWRsRW51bSxpZGxST0F0dHIsaWRsQXR0cixpZGxPcCxpZGxPbmVXYXlPcCxpZGxFeGNlcHRpb24saWRsQ29uc3QsaWRsVHlwZWRlZixpZGxBdHRyaWJ1dGVzLGlkbEVycm9yU3F1YXJlQnJhY2tldCxpZGxFcnJvckJyYWNrZXQsaWRsSW50ZXJmYWNlU2VjdGlvbnMKKworICBzeW4gcmVnaW9uICBpZGxJbnRlcmZhY2VDb250ZW50IGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbiBjb250YWlucz1AaWRsQ29udGVudENsdXN0ZXIsQGlkbENvbW1lbnRhYmxlCisgIHN5biBtYXRjaCAgIGlkbEluaGVyaXRGcm9tMiBjb250YWluZWQgIiwiICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsSW5oZXJpdEZyb20KKyAgc3luIG1hdGNoICAgaWRsSW5oZXJpdEZyb20gY29udGFpbmVkICJbYS16QS1aMC05X11cK1sgXHRdKlwoOjpbIFx0XSpbYS16QS1aMC05X11cK1wpKiIgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsSW5oZXJpdEZyb20yLGlkbEludGVyZmFjZUNvbnRlbnQKKyAgc3luIG1hdGNoICAgaWRsSW5oZXJpdCBjb250YWluZWQgIjoiICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEluaGVyaXRGcm9tCisgIHN5biBtYXRjaCAgIGlkbEludGVyZmFjZU5hbWUgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsSW50ZXJmYWNlQ29udGVudCxpZGxJbmhlcml0LGlkbEVycm9yLGlkbFNlbWlDb2xvbgorICBzeW4ga2V5d29yZCBpZGxJbnRlcmZhY2UgICAgIGludGVyZmFjZSBkaXNwaW50ZXJmYWNlICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEludGVyZmFjZU5hbWUKKyAgc3luIGtleXdvcmQgaWRsSW50ZXJmYWNlU2VjdGlvbnMgY29udGFpbmVkIHByb3BlcnRpZXMgbWV0aG9kcyBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTZWN0aW9uQ29sb24saWRsRXJyb3IKKyAgc3luIG1hdGNoICAgaWRsU2VjdGlvbkNvbG9uIGNvbnRhaW5lZCAiOiIKKworCisgIHN5biBtYXRjaCAgIGlkbExpYnJhcnlOYW1lICBjb250YWluZWQgICJbYS16QS1aMC05X11cKyIgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsTGlicmFyeUNvbnRlbnQsaWRsRXJyb3IsaWRsU2VtaUNvbG9uCisgIHN5biBrZXl3b3JkIGlkbExpYnJhcnkgICAgICBsaWJyYXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsTGlicmFyeU5hbWUKKyAgc3luIHJlZ2lvbiAgaWRsTGlicmFyeUNvbnRlbnQgY29udGFpbmVkIHN0YXJ0PSJ7IiBlbmQ9In0iICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24gY29udGFpbnM9QGlkbENvbW1lbnRhYmxlLGlkbEF0dHJpYnV0ZXMsaWRsRXJyb3JTcXVhcmVCcmFja2V0LGlkbEVycm9yQnJhY2tldCxpZGxJbXBvcnRsaWIsaWRsQ29jbGFzcyxpZGxUeXBlZGVmLGlkbEludGVyZmFjZQorCisgIHN5biBrZXl3b3JkIGlkbEltcG9ydGxpYiBjb250YWluZWQgaW1wb3J0bGliICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU3RyaW5nQXJnCisgIHN5biByZWdpb24gaWRsU3RyaW5nQXJnIGNvbnRhaW5lZCBzdGFydD0iKCIgZW5kPSIpIiAgICAgICAgICAgY29udGFpbnM9aWRsU3RyaW5nIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24saWRsRXJyb3JCcmFjZSxpZGxFcnJvclNxdWFyZUJyYWNrZXQKKworICBzeW4ga2V5d29yZCBpZGxDb2NsYXNzIGNvY2xhc3MgY29udGFpbmVkICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbENvY2xhc3NOYW1lCisgIHN5biBtYXRjaCAgIGlkbENvY2xhc3NOYW1lICJbYS16QS1aMC05X11cKyIgY29udGFpbmVkICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsQ29jbGFzc0RlZmluaXRpb24saWRsRXJyb3IsaWRsU2VtaUNvbG9uCisKKyAgc3luIHJlZ2lvbiBpZGxDb2NsYXNzRGVmaW5pdGlvbiBjb250YWluZWQgc3RhcnQ9InsiIGVuZD0ifSIgICBjb250YWlucz1pZGxDb2NsYXNzQXR0cmlidXRlcyxpZGxJbnRlcmZhY2UsaWRsRXJyb3JCcmFja2V0LGlkbEVycm9yU3F1YXJlQnJhY2tldCBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24KKyAgc3luIHJlZ2lvbiBpZGxDb2NsYXNzQXR0cmlidXRlcyBjb250YWluZWQgc3RhcnQ9K1xbKyBlbmQ9K10rICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxJbnRlcmZhY2UgY29udGFpbnM9aWRsRXJyb3JCcmFja2V0LGlkbEVycm9yQnJhY2UsaWRsQ29jbGFzc0F0dHJpYnV0ZQorICBzeW4ga2V5d29yZCBpZGxDb2NsYXNzQXR0cmlidXRlIGNvbnRhaW5lZCBkZWZhdWx0IHNvdXJjZQorICAic3luIGtleXdvcmQgaWRsSW50ZXJmYWNlICAgICAgIGludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxJbnRlcmZhY2VTdHViTmFtZQorCisgIHN5biBtYXRjaCBpZGxJbXBvcnRTdHJpbmcgICAgICAgKyJcZlwrIisgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uCisgIHN5biBrZXl3b3JkIGlkbEltcG9ydCAgICAgICAgICAgaW1wb3J0ICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsSW1wb3J0U3RyaW5nCisKKyAgc3luIHJlZ2lvbiAgaWRsQXR0cmlidXRlcyBzdGFydD0iXFsiIGVuZD0iXF0iICAgICAgICAgICAgICAgICBjb250YWlucz1pZGxBdHRyaWJ1dGUsaWRsQXR0cmlidXRlUGFyYW0saWRsRXJyb3JCcmFja2V0LGlkbEVycm9yQnJhY2UsaWRsQ29tbWVudAorICBzeW4ga2V5d29yZCBpZGxBdHRyaWJ1dGUgY29udGFpbmVkIHByb3BwdXQgcHJvcGdldCBwcm9wcHV0cmVmIGlkIGhlbHBzdHJpbmcgb2JqZWN0IHV1aWQgcG9pbnRlcl9kZWZhdWx0CisgIGlmICFleGlzdHMoJ2lkbF9ub19tc19leHRlbnNpb25zJykKKyAgc3luIGtleXdvcmQgaWRsQXR0cmlidXRlIGNvbnRhaW5lZCBub25leHRlbnNpYmxlIGR1YWwgdmVyc2lvbiBhZ2dyZWdhdGFibGUgcmVzdHJpY3RlZCBoaWRkZW4gbm9uY3JlYXRhYmxlIG9sZWF1dG9tYXRpb24KKyAgZW5kaWYKKyAgc3luIHJlZ2lvbiBpZGxBdHRyaWJ1dGVQYXJhbSBjb250YWluZWQgc3RhcnQ9IigiIGVuZD0iKSIgICAgICBjb250YWlucz1pZGxTdHJpbmcsaWRsVXVpZCxpZGxMaXRlcmFsLGlkbEVycm9yQnJhY2UsaWRsRXJyb3JTcXVhcmVCcmFja2V0CisgICIgc2tpcHdoaXRlIG5leHRncm91cD1pZGxBcnJheVNpemUsaWRsUGFybUxpc3QgY29udGFpbnM9aWRsQXJyYXlTaXplLGlkbExpdGVyYWwKKyAgc3luIG1hdGNoIGlkbEVycm9yQnJhY2UgY29udGFpbmVkICJ9IgorICBzeW4gbWF0Y2ggaWRsRXJyb3JCcmFja2V0IGNvbnRhaW5lZCAiKSIKKyAgc3luIG1hdGNoIGlkbEVycm9yU3F1YXJlQnJhY2tldCBjb250YWluZWQgIlxdIgorCisgIHN5biBtYXRjaCBpZGxVdWlkICAgICAgICAgY29udGFpbmVkICtbMC05YS16QS1aXVx7OH0tXChbMC05YS16QS1aXVx7NH0tXClcezN9WzAtOWEtekEtWl1cezEyfSsKKworICAiIFJhaXNlcworICBzeW4ga2V5d29yZCBpZGxSYWlzZXMgICAgIGNvbnRhaW5lZCByYWlzZXMgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxSYWlzZXMsaWRsQ29udGV4dCxpZGxFcnJvcixpZGxTZW1pQ29sb24KKworICAiIENvbnRleHQKKyAgc3luIGtleXdvcmQgaWRsQ29udGV4dCAgICBjb250YWluZWQgY29udGV4dCAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUmFpc2VzLGlkbENvbnRleHQsaWRsRXJyb3IsaWRsU2VtaUNvbG9uCisKKyAgIiBPcGVyYXRpb24KKyAgc3luIG1hdGNoICAgaWRsUGFybUxpc3QgICBjb250YWluZWQgIiwiICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsT3BQYXJtcworICBzeW4gcmVnaW9uICBpZGxBcnJheVNpemUgIGNvbnRhaW5lZCBzdGFydD0iXFsiIGVuZD0iXF0iICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxBcnJheVNpemUsaWRsUGFybUxpc3QgY29udGFpbnM9aWRsQXJyYXlTaXplLGlkbExpdGVyYWwKKyAgc3luIG1hdGNoICAgaWRsUGFybU5hbWUgICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrIiAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUGFybUxpc3QsaWRsQXJyYXlTaXplCisgIHN5biBrZXl3b3JkIGlkbFBhcm1JbnQgICAgY29udGFpbmVkIHNob3J0IGxvbmcgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFBhcm1OYW1lCisgIHN5biBrZXl3b3JkIGlkbFBhcm1UeXBlICAgY29udGFpbmVkIHVuc2lnbmVkICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFBhcm1JbnQKKyAgc3luIHJlZ2lvbiAgaWRsRDMgICAgICAgICBjb250YWluZWQgc3RhcnQ9IjwiIGVuZD0iPiIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsUGFybU5hbWUgY29udGFpbnM9aWRsU3RyaW5nLGlkbExpdGVyYWwKKyAgc3luIGtleXdvcmQgaWRsUGFybVR5cGUgICBjb250YWluZWQgc3RyaW5nICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRDMsaWRsUGFybU5hbWUKKyAgc3luIGtleXdvcmQgaWRsUGFybVR5cGUgICBjb250YWluZWQgdm9pZCBmbG9hdCBkb3VibGUgY2hhciBib29sZWFuIG9jdGV0IGFueSAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxQYXJtTmFtZQorICBzeW4gbWF0Y2ggICBpZGxQYXJtVHlwZSAgIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCtbIFx0XSpcKDo6WyBcdF0qW2EtekEtWjAtOV9dXCtcKSoiIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFBhcm1OYW1lCisgIHN5biBrZXl3b3JkIGlkbE9wUGFybXMgICAgY29udGFpbmVkIGluIG91dCBpbm91dCAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbFBhcm1UeXBlCisKKyAgaWYgIWV4aXN0cygnaWRsX25vX21zX2V4dGVuc2lvbnMnKQorICBzeW4ga2V5d29yZCBpZGxPcFBhcm1zICAgIGNvbnRhaW5lZCByZXR2YWwgb3B0aW9uYWwgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxQYXJtVHlwZQorICAgIHN5biBtYXRjaCBpZGxPcFBhcm1zIGNvbnRhaW5lZCArXDxcKGlpZF9pc1x8ZGVmYXVsdHZhbHVlXClccyooW14pXSopKyBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxQYXJhbVR5cGUKKworICAgIHN5biBrZXl3b3JkIGlkbFZhcmlhbnRUeXBlICBjb250YWluZWQgQlNUUiBWQVJJQU5UIFZBUklBTlRfQk9PTCBsb25nIHNob3J0IHVuc2lnbmVkIGRvdWJsZSBDVVJSRU5DWSBEQVRFCisgICAgc3luIHJlZ2lvbiBpZGxTYWZlQXJyYXkgY29udGFpbmVkIG1hdGNoZ3JvdXA9aWRsVmFyaWFudFR5cGUgc3RhcnQ9K1NBRkVBUlJBWShccyorIGVuZD0rKSsgY29udGFpbnM9aWRsVmFyaWFudFR5cGUKKyAgZW5kaWYKKworICBzeW4gcmVnaW9uICBpZGxPcENvbnRlbnRzIGNvbnRhaW5lZCBzdGFydD0iKCIgZW5kPSIpIiAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxSYWlzZXMsaWRsQ29udGV4dCxpZGxFcnJvcixpZGxTZW1pQ29sb24gY29udGFpbnM9aWRsT3BQYXJtcyxpZGxTYWZlQXJyYXksaWRsVmFyaWFudFR5cGUsQGlkbENvbW1lbnRhYmxlCisgIHN5biBtYXRjaCAgIGlkbE9wTmFtZSAgIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCsiICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wQ29udGVudHMKKyAgc3luIGtleXdvcmQgaWRsT3BJbnQgICAgY29udGFpbmVkIHNob3J0IGxvbmcgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsT3BOYW1lCisgIHN5biByZWdpb24gIGlkbEQyICAgICAgIGNvbnRhaW5lZCBzdGFydD0iPCIgZW5kPSI+IiAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wTmFtZSBjb250YWlucz1pZGxTdHJpbmcsaWRsTGl0ZXJhbAorICBzeW4ga2V5d29yZCBpZGxPcCAgICAgICBjb250YWluZWQgdW5zaWduZWQgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxPcEludAorICBzeW4ga2V5d29yZCBpZGxPcCAgICAgICBjb250YWluZWQgc3RyaW5nICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxEMixpZGxPcE5hbWUKKyAgc3luIGtleXdvcmQgaWRsT3AgICAgICAgY29udGFpbmVkIHZvaWQgZmxvYXQgZG91YmxlIGNoYXIgYm9vbGVhbiBvY3RldCBhbnkgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbE9wTmFtZQorICBzeW4gbWF0Y2ggICBpZGxPcCAgICAgICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrWyBcdF0qXCg6OlsgXHRdKlthLXpBLVowLTlfXVwrXCkqIiBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxPcE5hbWUKKyAgc3luIGtleXdvcmQgaWRsT3AgICAgICAgY29udGFpbmVkIHZvaWQgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsT3BOYW1lCisgIHN5biBrZXl3b3JkIGlkbE9uZVdheU9wIGNvbnRhaW5lZCBvbmV3YXkgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkT3AKKworICAiIEVudW0KKyAgc3luIHJlZ2lvbiAgaWRsRW51bUNvbnRlbnRzIGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uLGlkbFNpbXBEZWNsIGNvbnRhaW5zPWlkbElkLGlkbEF0dHJpYnV0ZXMsQGlkbENvbW1lbnRhYmxlCisgIHN5biBtYXRjaCAgIGlkbEVudW1OYW1lIGNvbnRhaW5lZCAiW2EtekEtWjAtOV9dXCsiICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVudW1Db250ZW50cworICBzeW4ga2V5d29yZCBpZGxFbnVtICAgICBlbnVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFbnVtTmFtZSxpZGxFbnVtQ29udGVudHMKKworICAiIFR5cGVkZWYKKyAgc3luIGtleXdvcmQgaWRsVHlwZWRlZiB0eXBlZGVmICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxUeXBlZGVmT3RoZXJUeXBlUXVhbGlmaWVyLGlkbERlZkJhc2VUeXBlLGlkbERlZkJhc2VUeXBlSW50LGlkbERlZlNlcVR5cGUsaWRsRGVmdjFFbnVtLGlkbERlZkVudW0saWRsRGVmT3RoZXJUeXBlLGlkbERlZkF0dHJpYnV0ZXMsaWRsRXJyb3IKKworICBpZiAhZXhpc3RzKCdpZGxfbm9fZXh0ZW5zaW9ucycpCisgICAgc3luIGtleXdvcmQgaWRsVHlwZWRlZk90aGVyVHlwZVF1YWxpZmllciBjb250YWluZWQgc3RydWN0IGVudW0gaW50ZXJmYWNlIG5leHRncm91cD1pZGxEZWZCYXNlVHlwZSxpZGxEZWZCYXNlVHlwZUludCxpZGxEZWZTZXFUeXBlLGlkbERlZnYxRW51bSxpZGxEZWZFbnVtLGlkbERlZk90aGVyVHlwZSxpZGxEZWZBdHRyaWJ1dGVzLGlkbEVycm9yIHNraXB3aGl0ZQorCisgICAgc3luIHJlZ2lvbiAgaWRsRGVmQXR0cmlidXRlcyAgICAgICAgY29udGFpbmVkIHN0YXJ0PSJcWyIgZW5kPSJcXSIgY29udGFpbnM9aWRsQXR0cmlidXRlLGlkbEF0dHJpYnV0ZVBhcmFtLGlkbEVycm9yQnJhY2tldCxpZGxFcnJvckJyYWNlIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbERlZkJhc2VUeXBlLGlkbERlZkJhc2VUeXBlSW50LGlkbERlZlNlcVR5cGUsaWRsRGVmdjFFbnVtLGlkbERlZkVudW0saWRsRGVmT3RoZXJUeXBlLGlkbEVycm9yCisKKyAgICBzeW4ga2V5d29yZCBpZGxEZWZCYXNlVHlwZSAgICAgIGNvbnRhaW5lZCBmbG9hdCBkb3VibGUgY2hhciBib29sZWFuIG9jdGV0IGFueSAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsVHlwZWRlZkRlY2wsaWRsRXJyb3IKKyAgICBzeW4ga2V5d29yZCBpZGxEZWZCYXNlVHlwZUludCAgIGNvbnRhaW5lZCBzaG9ydCBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsVHlwZWRlZkRlY2wsaWRsRXJyb3IKKyAgICBzeW4gbWF0Y2ggaWRsRGVmT3RoZXJUeXBlICAgICAgIGNvbnRhaW5lZCArXDxca1wrXD4rIHNraXBlbXB0eSAgICAgICAgICAgICAgICAgbmV4dGdyb3VwPWlkbFR5cGVkZWZEZWNsLGlkbEVycm9yCisgICAgIiBzeW4ga2V5d29yZCBpZGxEZWZTZXFUeXBlICAgICBjb250YWluZWQgc2VxdWVuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEQ0CisKKyAgICAiIEVudW0gdHlwZWRlZgorICAgIHN5biBrZXl3b3JkIGlkbERlZkVudW0gICAgICAgICAgY29udGFpbmVkIGVudW0gc2tpcGVtcHR5ICAgICAgICAgICAgICAgICAgICAgICBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbERlZkVudW1OYW1lLGlkbERlZkVudW1Db250ZW50cworICAgIHN5biBtYXRjaCAgIGlkbERlZkVudW1OYW1lICAgICAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxEZWZFbnVtQ29udGVudHMsaWRsVHlwZWRlZkRlY2wKKyAgICBzeW4gcmVnaW9uICBpZGxEZWZFbnVtQ29udGVudHMgIGNvbnRhaW5lZCBzdGFydD0ieyIgZW5kPSJ9IiAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsVHlwZWRlZkRlY2wgY29udGFpbnM9aWRsSWQsaWRsQXR0cmlidXRlcworCisgICAgc3luIG1hdGNoICAgaWRsVHlwZWRlZkRlY2wgICAgICBjb250YWluZWQgIlthLXpBLVowLTlfXVwrIiAgICAgICAgICAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbEVycm9yLGlkbFNlbWlDb2xvbgorICBlbmRpZgorCisgICIgU3RydWN0CisgIHN5biByZWdpb24gIGlkbFN0cnVjdENvbnRlbnQgICBjb250YWluZWQgc3RhcnQ9InsiIGVuZD0ifSIgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24saWRsU2ltcERlY2wgY29udGFpbnM9aWRsQmFzZVR5cGUsaWRsQmFzZVR5cGVJbnQsaWRsU2VxVHlwZSxAaWRsQ29tbWVudGFibGUsaWRsRW51bSxpZGxVbmlvbgorICBzeW4gbWF0Y2ggICBpZGxTdHJ1Y3ROYW1lICAgICAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU3RydWN0Q29udGVudAorICBzeW4ga2V5d29yZCBpZGxTdHJ1Y3QgICAgICAgICAgc3RydWN0ICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsU3RydWN0TmFtZQorCisgICIgRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGlkbEV4Y2VwdGlvbiAgICAgICBleGNlcHRpb24gICAgICAgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTdHJ1Y3ROYW1lCisKKyAgIiBVbmlvbgorICBzeW4gbWF0Y2ggICBpZGxDb2xvbiAgICAgICAgICAgIGNvbnRhaW5lZCAiOiIgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsQ2FzZSxpZGxTZXFUeXBlLGlkbEJhc2VUeXBlLGlkbEJhc2VUeXBlSW50CisgIHN5biByZWdpb24gIGlkbENhc2VMYWJlbCAgICAgICAgY29udGFpbmVkIHN0YXJ0PSIiIHNraXA9Ijo6IiBlbmQ9IjoibWU9ZS0xIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbENvbG9uIGNvbnRhaW5zPWlkbExpdGVyYWwsaWRsU3RyaW5nCisgIHN5biBrZXl3b3JkIGlkbENhc2UgICAgICAgICAgICAgY29udGFpbmVkIGNhc2UgICAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxDYXNlTGFiZWwKKyAgc3luIGtleXdvcmQgaWRsQ2FzZSAgICAgICAgICAgICBjb250YWluZWQgZGVmYXVsdCAgICAgICAgICAgIHNraXBlbXB0eSBza2lwd2hpdGUgbmV4dGdyb3VwPWlkbENvbG9uCisgIHN5biByZWdpb24gIGlkbFVuaW9uQ29udGVudCAgICAgY29udGFpbmVkIHN0YXJ0PSJ7IiBlbmQ9In0iICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxFcnJvcixpZGxTZW1pQ29sb24saWRsU2ltcERlY2wgY29udGFpbnM9aWRsQ2FzZQorICBzeW4gcmVnaW9uICBpZGxTd2l0Y2hUeXBlICAgICAgIGNvbnRhaW5lZCBzdGFydD0iKCIgZW5kPSIpIiAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsVW5pb25Db250ZW50CisgIHN5biBrZXl3b3JkIGlkbFVuaW9uU3dpdGNoICAgICAgY29udGFpbmVkIHN3aXRjaCAgICAgICAgICAgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxTd2l0Y2hUeXBlCisgIHN5biBtYXRjaCAgIGlkbFVuaW9uTmFtZSAgICAgICAgY29udGFpbmVkICJbYS16QS1aMC05X11cKyIgICBza2lwZW1wdHkgc2tpcHdoaXRlIG5leHRncm91cD1pZGxVbmlvblN3aXRjaAorICBzeW4ga2V5d29yZCBpZGxVbmlvbiAgICAgICAgICAgIHVuaW9uICAgICAgICAgICAgICAgICAgICAgICAgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsVW5pb25OYW1lCisKKyAgaWYgIWV4aXN0cygnaWRsX25vX2V4dGVuc2lvbnMnKQorICAgIHN5biBzeW5jIG1hdGNoICBpZGxJbnRlcmZhY2VTeW5jIGdyb3VwaGVyZSBpZGxJbnRlcmZhY2VDb250ZW50ICJcPFwoZGlzcFwpXD1pbnRlcmZhY2VcPlxzXCtca1wrXHMqOlxzKlxrXCtcX3MqeyIgc2tpcGVtcHR5IHNraXB3aGl0ZSBuZXh0Z3JvdXA9aWRsRXJyb3IsaWRsU2VtaUNvbG9uIGNvbnRhaW5zPUBpZGxDb250ZW50Q2x1c3RlcixAaWRsQ29tbWVudGFibGUKKyAgICBzeW4gc3luYyBtYXhsaW5lcz0xMDAwIG1pbmxpbmVzPTEwMAorICBlbHNlCisgICAgc3luIHN5bmMgbGluZXM9MjAwCisgIGVuZGlmCisgICIgc3luIHN5bmMgZnJvbXN0YXJ0CisKKyAgaWYgIWV4aXN0cygiZGlkX2lkbF9zeW50YXhfaW5pdHMiKQorICAgIGxldCBkaWRfaWRsX3N5bnRheF9pbml0cyA9IDEKKyAgICAiIFRoZSBkZWZhdWx0IG1ldGhvZHMgZm9yIGhpZ2hsaWdodGluZy4gIENhbiBiZSBvdmVycmlkZGVuIGxhdGVyCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CisKKyAgICBIaUxpbmsgaWRsSW5jbHVkZSAgICAgICAgICAgICBJbmNsdWRlCisgICAgSGlMaW5rIGlkbFByZVByb2MgICAgICAgICAgICAgUHJlUHJvYworICAgIEhpTGluayBpZGxQcmVDb25kaXQgICAgICAgICAgIFByZUNvbmRpdAorICAgIEhpTGluayBpZGxEZWZpbmUgICAgICAgICAgICAgIE1hY3JvCisgICAgSGlMaW5rIGlkbEluY2x1ZGVkICAgICAgICAgICAgU3RyaW5nCisgICAgSGlMaW5rIGlkbFN0cmluZyAgICAgICAgICAgICAgU3RyaW5nCisgICAgSGlMaW5rIGlkbENvbW1lbnQgICAgICAgICAgICAgQ29tbWVudAorICAgIEhpTGluayBpZGxUb2RvICAgICAgICAgICAgICAgIFRvZG8KKyAgICBIaUxpbmsgaWRsTGl0ZXJhbCAgICAgICAgICAgICBOdW1iZXIKKyAgICBIaUxpbmsgaWRsVXVpZCAgICAgICAgICAgICAgICBOdW1iZXIKKyAgICBIaUxpbmsgaWRsVHlwZSAgICAgICAgICAgICAgICBUeXBlCisgICAgSGlMaW5rIGlkbFZhcmlhbnRUeXBlICAgICAgICAgaWRsVHlwZQorCisgICAgSGlMaW5rIGlkbE1vZHVsZSAgICAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxJbnRlcmZhY2UgICAgICAgICAgIEtleXdvcmQKKyAgICBIaUxpbmsgaWRsRW51bSAgICAgICAgICAgICAgICBLZXl3b3JkCisgICAgSGlMaW5rIGlkbFN0cnVjdCAgICAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxVbmlvbiAgICAgICAgICAgICAgIEtleXdvcmQKKyAgICBIaUxpbmsgaWRsVHlwZWRlZiAgICAgICAgICAgICBLZXl3b3JkCisgICAgSGlMaW5rIGlkbEV4Y2VwdGlvbiAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxUeXBlZGVmT3RoZXJUeXBlUXVhbGlmaWVyIGtleXdvcmQKKworICAgIEhpTGluayBpZGxNb2R1bGVOYW1lICAgICAgICAgIFR5cGVkZWYKKyAgICBIaUxpbmsgaWRsSW50ZXJmYWNlTmFtZSAgICAgICBUeXBlZGVmCisgICAgSGlMaW5rIGlkbEVudW1OYW1lICAgICAgICAgICAgVHlwZWRlZgorICAgIEhpTGluayBpZGxTdHJ1Y3ROYW1lICAgICAgICAgIFR5cGVkZWYKKyAgICBIaUxpbmsgaWRsVW5pb25OYW1lICAgICAgICAgICBUeXBlZGVmCisKKyAgICBIaUxpbmsgaWRsQmFzZVR5cGVJbnQgICAgICAgICBpZGxUeXBlCisgICAgSGlMaW5rIGlkbEJhc2VUeXBlICAgICAgICAgICAgaWRsVHlwZQorICAgIEhpTGluayBpZGxTZXFUeXBlICAgICAgICAgICAgIGlkbFR5cGUKKyAgICBIaUxpbmsgaWRsRDEgICAgICAgICAgICAgICAgICBQYXJlbgorICAgIEhpTGluayBpZGxEMiAgICAgICAgICAgICAgICAgIFBhcmVuCisgICAgSGlMaW5rIGlkbEQzICAgICAgICAgICAgICAgICAgUGFyZW4KKyAgICBIaUxpbmsgaWRsRDQgICAgICAgICAgICAgICAgICBQYXJlbgorICAgICJIaUxpbmsgaWRsQXJyYXlTaXplICAgICAgICAgIFBhcmVuCisgICAgIkhpTGluayBpZGxBcnJheVNpemUxICAgICAgICAgUGFyZW4KKyAgICBIaUxpbmsgaWRsTW9kdWxlQ29udGVudCAgICAgICBQYXJlbgorICAgIEhpTGluayBpZGxVbmlvbkNvbnRlbnQgICAgICAgIFBhcmVuCisgICAgSGlMaW5rIGlkbFN0cnVjdENvbnRlbnQgICAgICAgUGFyZW4KKyAgICBIaUxpbmsgaWRsRW51bUNvbnRlbnRzICAgICAgICBQYXJlbgorICAgIEhpTGluayBpZGxJbnRlcmZhY2VDb250ZW50ICAgIFBhcmVuCisKKyAgICBIaUxpbmsgaWRsU2ltcERlY2wgICAgICAgICAgICBJZGVudGlmaWVyCisgICAgSGlMaW5rIGlkbFJPQXR0ciAgICAgICAgICAgICAgU3RvcmFnZUNsYXNzCisgICAgSGlMaW5rIGlkbEF0dHIgICAgICAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxDb25zdCAgICAgICAgICAgICAgIFN0b3JhZ2VDbGFzcworCisgICAgSGlMaW5rIGlkbE9uZVdheU9wICAgICAgICAgICAgU3RvcmFnZUNsYXNzCisgICAgSGlMaW5rIGlkbE9wICAgICAgICAgICAgICAgICAgaWRsVHlwZQorICAgIEhpTGluayBpZGxQYXJtVHlwZSAgICAgICAgICAgIGlkbFR5cGUKKyAgICBIaUxpbmsgaWRsT3BOYW1lICAgICAgICAgICAgICBGdW5jdGlvbgorICAgIEhpTGluayBpZGxPcFBhcm1zICAgICAgICAgICAgIFNwZWNpYWxDb21tZW50CisgICAgSGlMaW5rIGlkbFBhcm1OYW1lICAgICAgICAgICAgSWRlbnRpZmllcgorICAgIEhpTGluayBpZGxJbmhlcml0RnJvbSAgICAgICAgIElkZW50aWZpZXIKKyAgICBIaUxpbmsgaWRsQXR0cmlidXRlICAgICAgICAgICBTcGVjaWFsQ29tbWVudAorCisgICAgSGlMaW5rIGlkbElkICAgICAgICAgICAgICAgICAgQ29uc3RhbnQKKyAgICAiSGlMaW5rIGlkbENhc2UgICAgICAgICAgICAgICBLZXl3b3JkCisgICAgSGlMaW5rIGlkbENhc2VMYWJlbCAgICAgICAgICAgQ29uc3RhbnQKKworICAgIEhpTGluayBpZGxFcnJvckJyYWNrZXQgICAgICAgIEVycm9yCisgICAgSGlMaW5rIGlkbEVycm9yQnJhY2UgICAgICAgICAgRXJyb3IKKyAgICBIaUxpbmsgaWRsRXJyb3JTcXVhcmVCcmFja2V0ICBFcnJvcgorCisgICAgSGlMaW5rIGlkbEltcG9ydCAgICAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxJbXBvcnRTdHJpbmcgICAgICAgIGlkbFN0cmluZworICAgIEhpTGluayBpZGxDb2NsYXNzQXR0cmlidXRlICAgIFN0b3JhZ2VDbGFzcworICAgIEhpTGluayBpZGxMaWJyYXJ5ICAgICAgICAgICAgIEtleXdvcmQKKyAgICBIaUxpbmsgaWRsSW1wb3J0bGliICAgICAgICAgICBLZXl3b3JkCisgICAgSGlMaW5rIGlkbENvY2xhc3MgICAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxMaWJyYXJ5TmFtZSAgICAgICAgIFR5cGVkZWYKKyAgICBIaUxpbmsgaWRsQ29jbGFzc05hbWUgICAgICAgICBUeXBlZGVmCisgICAgIiBoaSBpZGxMaWJyYXJ5Q29udGVudCBndWlmZz1yZWQKKyAgICBIaUxpbmsgaWRsVHlwZWRlZkRlY2wgICAgICAgICBUeXBlZGVmCisgICAgSGlMaW5rIGlkbERlZkVudW0gICAgICAgICAgICAgS2V5d29yZAorICAgIEhpTGluayBpZGxEZWZ2MUVudW0gICAgICAgICAgIEtleXdvcmQKKyAgICBIaUxpbmsgaWRsRGVmRW51bU5hbWUgICAgICAgICBUeXBlZGVmCisgICAgSGlMaW5rIGlkbERlZkVudW1Db250ZW50cyAgICAgUGFyZW4KKyAgICBIaUxpbmsgaWRsRGVmQmFzZVR5cGVJbnQgICAgICBpZGxUeXBlCisgICAgSGlMaW5rIGlkbERlZkJhc2VUeXBlICAgICAgICAgaWRsVHlwZQorICAgIEhpTGluayBpZGxEZWZTZXFUeXBlICAgICAgICAgIGlkbFR5cGUKKyAgICBIaUxpbmsgaWRsSW50ZXJmYWNlU2VjdGlvbnMgICBMYWJlbAorCisgICAgaWYgZXhpc3RzKCJpZGxzeW50YXhfc2hvd2Vycm9yIikKKyAgICAgIGlmIGV4aXN0cygiaWRsc3ludGF4X3Nob3dlcnJvcl9zb2Z0IikKKyAgICAgICAgaGkgZGVmYXVsdCBpZGxFcnJvciBndWliZz0jZDBmZmQwCisgICAgICBlbHNlCisgICAgICAgIEhpTGluayBpZGxFcnJvciBFcnJvcgorICAgICAgZW5kaWYKKyAgICBlbmRpZgorICAgIGRlbGNvbW1hbmQgSGlMaW5rCisgIGVuZGlmCisKKyAgbGV0IGI6Y3VycmVudF9zeW50YXggPSAiaWRsIgorZmluYWxseQorICBsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKKyAgdW5sZXQgczpjcG9fc2F2ZQorZW5kdHJ5CiAiIHZpbTogc3c9MiBldApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbWFpbC52aW0gYi9ydW50aW1lL3N5bnRheC9tYWlsLnZpbQppbmRleCBlZDdjYTIxLi5jZjRhMmM2IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9tYWlsLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9tYWlsLnZpbQpAQCAtNDAsNyArNDAsNyBAQAogc3luIHJlZ2lvbgltYWlsSGVhZGVyS2V5CWNvbnRhaW5lZCBjb250YWlucz1tYWlsSGVhZGVyRW1haWwsbWFpbEVtYWlsLEBtYWlsUXVvdGVFeHBzLEBOb1NwZWxsIHN0YXJ0PSJcdiheKFw+ID8pKilAPD0odG98Yj9jYyk6IiBza2lwPSIsJCIgZW5kPSIkIgogc3luIG1hdGNoCW1haWxIZWFkZXJLZXkJY29udGFpbmVkIGNvbnRhaW5zPW1haWxIZWFkZXJFbWFpbCxtYWlsRW1haWwsQE5vU3BlbGwgIlx2KF4oXD4gPykqKUA8PShmcm9tfHJlcGx5LXRvKTouKiQiIGZvbGQKIHN5biBtYXRjaAltYWlsSGVhZGVyS2V5CWNvbnRhaW5lZCBjb250YWlucz1ATm9TcGVsbCAiXHYoXihcPiA/KSopQDw9ZGF0ZToiCi1zeW4gbWF0Y2gJbWFpbFN1YmplY3QJY29udGFpbmVkICJcdl5zdWJqZWN0Oi4qJCIgZm9sZAorc3luIG1hdGNoCW1haWxTdWJqZWN0CWNvbnRhaW5lZCBjb250YWlucz1ATm9TcGVsbCAiXHZec3ViamVjdDouKiQiIGZvbGQKIHN5biBtYXRjaAltYWlsU3ViamVjdAljb250YWluZWQgY29udGFpbnM9QE5vU3BlbGwgIlx2KF4oXD4gPykrKUA8PXN1YmplY3Q6LiokIgogCiAiIEFueXRoaW5nIGluIHRoZSBoZWFkZXIgYmV0d2VlbiA8IGFuZCA+IGlzIGFuIGVtYWlsIGFkZHJlc3MKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NoLnZpbQppbmRleCA3M2VlYmMzLi4xNDk3NDk5IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zaC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2gudmltCkBAIC0yLDggKzIsOCBAQAogIiBMYW5ndWFnZToJCXNoZWxsIChzaCkgS29ybiBzaGVsbCAoa3NoKSBiYXNoIChzaCkKICIgTWFpbnRhaW5lcjoJCURyLiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgogIiBQcmV2aW91cyBNYWludGFpbmVyOglMZW5uYXJ0IFNjaHVsdHogPExlbm5hcnQuU2NodWx0ekBlY213Zi5pbnQ+Ci0iIExhc3QgQ2hhbmdlOgkJQXVnIDE2LCAyMDExCi0iIFZlcnNpb246CQkxMTgKKyIgTGFzdCBDaGFuZ2U6CQlEZWMgMDksIDIwMTEKKyIgVmVyc2lvbjoJCTEyMQogIiBVUkw6CQlodHRwOi8vbXlzaXRlLnZlcml6b24ubmV0L2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIgRm9yIG9wdGlvbnMgYW5kIHNldHRpbmdzLCBwbGVhc2UgdXNlOiAgICAgIDpoZWxwIGZ0LXNoLXN5bnRheAogIiBUaGlzIGZpbGUgaW5jbHVkZXMgbWFueSBpZGVhcyBmcm9tID9yaWMgQnJ1bmV0IChlcmljLmJydW5ldEBlbnMuZnIpCkBAIC0xMDEsNyArMTAxLDcgQEAKIHN5biBjbHVzdGVyIHNoQXJpdGhMaXN0CWNvbnRhaW5zPUBzaEFyaXRoUGFyZW5MaXN0LHNoUGFyZW5FcnJvcgogc3luIGNsdXN0ZXIgc2hDYXNlRXNhY0xpc3QJY29udGFpbnM9c2hDYXNlU3RhcnQsc2hDYXNlLHNoQ2FzZUJhcixzaENhc2VJbixzaENvbW1lbnQsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoQ2FzZUNvbW1hbmRTdWIsc2hDYXNlRXhTaW5nbGVRdW90ZSxzaENhc2VTaW5nbGVRdW90ZSxzaENhc2VEb3VibGVRdW90ZSxzaEN0cmxTZXEsQHNoRXJyb3JMaXN0LHNoU3RyaW5nU3BlY2lhbCxzaENhc2VSYW5nZQogc3luIGNsdXN0ZXIgc2hDYXNlTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWVudCxzaERvLHNoRWNobyxzaEV4cHIsc2hGb3Isc2hIZXJlRG9jLHNoSWYsc2hSZWRpcixzaFNldExpc3Qsc2hTb3VyY2Usc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaEN0cmxTZXEKLXN5biBjbHVzdGVyIHNoQ29sb25MaXN0CWNvbnRhaW5zPUBzaENhc2VMaXN0Cisic3luIGNsdXN0ZXIgc2hDb2xvbkxpc3QJY29udGFpbnM9QHNoQ2FzZUxpc3QKIHN5biBjbHVzdGVyIHNoQ29tbWFuZFN1Ykxpc3QJY29udGFpbnM9c2hBcml0aG1ldGljLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEVzY2FwZSxzaE51bWJlcixzaE9wZXJhdG9yLHNoUG9zblBhcm0sc2hFeFNpbmdsZVF1b3RlLHNoU2luZ2xlUXVvdGUsc2hFeERvdWJsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaFN1YlNoLHNoQWxpYXMsc2hUZXN0LHNoQ3RybFNlcSxzaFNwZWNpYWwKIHN5biBjbHVzdGVyIHNoQ3VybHlMaXN0CWNvbnRhaW5zPXNoTnVtYmVyLHNoQ29tbWEsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRGVyZWZTcGVjaWFsCiBzeW4gY2x1c3RlciBzaERibFF1b3RlTGlzdAljb250YWlucz1zaENvbW1hbmRTdWIsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoUG9zblBhcm0sc2hDdHJsU2VxLHNoU3BlY2lhbApAQCAtMTE5LDEwICsxMTksMTAgQEAKIHN5biBjbHVzdGVyIHNoSGVyZUxpc3QJY29udGFpbnM9c2hCZWdpbkhlcmUsc2hIZXJlUGF5bG9hZAogc3luIGNsdXN0ZXIgc2hIZXJlTGlzdERRCWNvbnRhaW5zPXNoQmVnaW5IZXJlLEBzaERibFF1b3RlTGlzdCxzaEhlcmVQYXlsb2FkCiBzeW4gY2x1c3RlciBzaElkTGlzdAljb250YWlucz1zaENvbW1hbmRTdWIsc2hXcmFwTGluZU9wZXJhdG9yLHNoU2V0T3B0aW9uLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaFJlZGlyLHNoRXhTaW5nbGVRdW90ZSxzaEV4RG91YmxlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoRXhwcixzaEN0cmxTZXEsc2hTdHJpbmdTcGVjaWFsCi1zeW4gY2x1c3RlciBzaExvb3BMaXN0CWNvbnRhaW5zPUBzaENhc2VMaXN0LHNoVGVzdE9wcixzaEV4cHIsc2hEYmxCcmFjZSxzaENvbmRpdGlvbmFsLHNoQ2FzZUVzYWMsc2hUZXN0LEBzaEVycm9yTGlzdCxzaFNldAorc3luIGNsdXN0ZXIgc2hJZkxpc3QJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxCcmFjZSxzaERibFBhcmVuLHNoRnVuY3Rpb25LZXksc2hGdW5jdGlvbk9uZSxzaEZ1bmN0aW9uVHdvCitzeW4gY2x1c3RlciBzaExvb3BMaXN0CWNvbnRhaW5zPUBzaENhc2VMaXN0LHNoVGVzdE9wcixzaEV4cHIsc2hEYmxCcmFjZSxzaENvbmRpdGlvbmFsLHNoQ2FzZUVzYWMsc2hUZXN0LEBzaEVycm9yTGlzdCxzaFNldCxzaE9wdGlvbgogc3luIGNsdXN0ZXIgc2hTdWJTaExpc3QJY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3Qsc2hDYXNlRXNhYyxzaENvbG9uLHNoQ29tbWFuZFN1YixzaENvbW1lbnQsc2hEbyxzaEVjaG8sc2hFeHByLHNoRm9yLHNoSWYsc2hSZWRpcixzaFNldExpc3Qsc2hTb3VyY2Usc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaEN0cmxTZXEsc2hPcGVyYXRvcgogc3luIGNsdXN0ZXIgc2hUZXN0TGlzdAljb250YWlucz1zaENoYXJDbGFzcyxzaENvbW1lbnQsc2hDb21tYW5kU3ViLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEV4RG91YmxlUXVvdGUsc2hEb3VibGVRdW90ZSxzaEV4cHIsc2hOdW1iZXIsc2hPcGVyYXRvcixzaEV4U2luZ2xlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaFRlc3RPcHIsc2hUZXN0LHNoQ3RybFNlcQotCiAiIEVjaG86IHt7ezEKICIgPT09PQogIiBUaGlzIG9uZSBpcyBuZWVkZWQgSU5TSURFIGEgQ29tbWFuZFN1Yiwgc28gdGhhdCBgZWNobyBibGFgIGJlIGNvcnJlY3QKQEAgLTE0MywxOCArMTQzLDIwIEBACiAKICIgRXJyb3IgQ29kZXM6IHt7ezEKICIgPT09PT09PT09PT09Ci1zeW4gbWF0Y2ggICBzaERvRXJyb3IgIlw8ZG9uZVw+Igotc3luIG1hdGNoICAgc2hJZkVycm9yICJcPGZpXD4iCi1zeW4gbWF0Y2ggICBzaEluRXJyb3IgIlw8aW5cPiIKLXN5biBtYXRjaCAgIHNoQ2FzZUVycm9yICI7OyIKLXN5biBtYXRjaCAgIHNoRXNhY0Vycm9yICJcPGVzYWNcPiIKLXN5biBtYXRjaCAgIHNoQ3VybHlFcnJvciAifSIKLXN5biBtYXRjaCAgIHNoUGFyZW5FcnJvciAiKSIKLXN5biBtYXRjaCAgIHNoT0sJJ1wuXChkb25lXHxmaVx8aW5cfGVzYWNcKScKLWlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQotIHN5biBtYXRjaCAgICAgc2hEVGVzdEVycm9yICJdXSIKK2lmICFleGlzdHMoImc6c2hfbm9fZXJyb3IiKQorIHN5biBtYXRjaCAgIHNoRG9FcnJvciAiXDxkb25lXD4iCisgc3luIG1hdGNoICAgc2hJZkVycm9yICJcPGZpXD4iCisgc3luIG1hdGNoICAgc2hJbkVycm9yICJcPGluXD4iCisgc3luIG1hdGNoICAgc2hDYXNlRXJyb3IgIjs7IgorIHN5biBtYXRjaCAgIHNoRXNhY0Vycm9yICJcPGVzYWNcPiIKKyBzeW4gbWF0Y2ggICBzaEN1cmx5RXJyb3IgIn0iCisgc3luIG1hdGNoICAgc2hQYXJlbkVycm9yICIpIgorIHN5biBtYXRjaCAgIHNoT0sJJ1wuXChkb25lXHxmaVx8aW5cfGVzYWNcKScKKyBpZiBleGlzdHMoImI6aXNfa29ybnNoZWxsIikKKyAgc3luIG1hdGNoICAgICBzaERUZXN0RXJyb3IgIl1dIgorIGVuZGlmCisgc3luIG1hdGNoICAgICBzaFRlc3RFcnJvciAiXSIKIGVuZGlmCi1zeW4gbWF0Y2ggICAgIHNoVGVzdEVycm9yICJdIgogCiAiIE9wdGlvbnM6IHt7ezEKICIgPT09PT09PT09PT09PT09PT09PT0KQEAgLTIwNCwxMSArMjA2LDExIEBACiAiID09PT09PQogaWYgKGc6c2hfZm9sZF9lbmFibGVkICUgKHM6c2hfZm9sZF9pZmRvZm9yICogMikpL3M6c2hfZm9sZF9pZmRvZm9yCiAgc3luIHJlZ2lvbiBzaERvCWZvbGQgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIHN0YXJ0PSJcPGRvXD4iIG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBlbmQ9Ilw8ZG9uZVw+IiBjb250YWlucz1Ac2hMb29wTGlzdAotIHN5biByZWdpb24gc2hJZglmb2xkIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxpZlxfcyIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDw7XF9zKnRoZW5cPiIgZW5kPSJcPGZpXD4iICAgY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxCcmFjZSxzaERibFBhcmVuLHNoRnVuY3Rpb25LZXksc2hGdW5jdGlvbk9uZSxzaEZ1bmN0aW9uVHdvCisgc3luIHJlZ2lvbiBzaElmCWZvbGQgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIHN0YXJ0PSJcPGlmXF9zIiBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc2tpcD0rLWZpXD4rIGVuZD0iXDw7XF9zKnRoZW5cPiIgZW5kPSJcPGZpXD4iICAgY29udGFpbnM9QHNoSWZMaXN0CiAgc3luIHJlZ2lvbiBzaEZvcglmb2xkIG1hdGNoZ3JvdXA9c2hMb29wIHN0YXJ0PSJcPGZvclxfcyIgZW5kPSJcPGluXF9zIiBlbmQ9Ilw8ZG9cPiJtZT1lLTIJY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxQYXJlbiBza2lwd2hpdGUgbmV4dGdyb3VwPXNoQ3VybHlJbgogZWxzZQogIHN5biByZWdpb24gc2hEbwl0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoQ29uZGl0aW9uYWwgc3RhcnQ9Ilw8ZG9cPiIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDxkb25lXD4iIGNvbnRhaW5zPUBzaExvb3BMaXN0Ci0gc3luIHJlZ2lvbiBzaElmCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxpZlxfcyIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIGVuZD0iXDw7XF9zKnRoZW5cPiIgZW5kPSJcPGZpXD4iICAgY29udGFpbnM9QHNoTG9vcExpc3Qsc2hEYmxCcmFjZSxzaERibFBhcmVuLHNoRnVuY3Rpb25LZXksc2hGdW5jdGlvbk9uZSxzaEZ1bmN0aW9uVHdvCisgc3luIHJlZ2lvbiBzaElmCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hDb25kaXRpb25hbCBzdGFydD0iXDxpZlxfcyIgbWF0Y2hncm91cD1zaENvbmRpdGlvbmFsIHNraXA9Ky1maVw+KyBlbmQ9Ilw8O1xfcyp0aGVuXD4iIGVuZD0iXDxmaVw+IiAgIGNvbnRhaW5zPUBzaElmTGlzdAogIHN5biByZWdpb24gc2hGb3IJbWF0Y2hncm91cD1zaExvb3Agc3RhcnQ9Ilw8Zm9yXF9zIiBlbmQ9Ilw8aW5cPiIgZW5kPSJcPGRvXD4ibWU9ZS0yCWNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsUGFyZW4gc2tpcHdoaXRlIG5leHRncm91cD1zaEN1cmx5SW4KIGVuZGlmCiBpZiBleGlzdHMoImI6aXNfa29ybnNoZWxsIikgfHwgZXhpc3RzKCJiOmlzX2Jhc2giKQpAQCAtMjM4LDcgKzI0MCw3IEBACiBzeW4ga2V5d29yZCBzaENhc2VJbgljb250YWluZWQgc2tpcHdoaXRlIHNraXBubCBpbgkJCW5leHRncm91cD1zaENhc2Usc2hDYXNlU3RhcnQsc2hDYXNlQmFyLHNoQ29tbWVudCxzaENhc2VFeFNpbmdsZVF1b3RlLHNoQ2FzZVNpbmdsZVF1b3RlLHNoQ2FzZURvdWJsZVF1b3RlCiBpZiBleGlzdHMoImI6aXNfYmFzaCIpCiAgc3luIHJlZ2lvbiAgc2hDYXNlRXhTaW5nbGVRdW90ZQltYXRjaGdyb3VwPXNoUXVvdGUgc3RhcnQ9K1wkJysgc2tpcD0rXFxcXFx8XFwuKyBlbmQ9KycrCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbCxzaFNwZWNpYWwJc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9c2hDYXNlQmFyCWNvbnRhaW5lZAotZWxzZQorZWxzZWlmICFleGlzdHMoImc6c2hfbm9fZXJyb3IiKQogIHN5biByZWdpb24gIHNoQ2FzZUV4U2luZ2xlUXVvdGUJbWF0Y2hncm91cD1FcnJvciBzdGFydD0rXCQnKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rJysJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCXNraXB3aGl0ZSBza2lwbmwgbmV4dGdyb3VwPXNoQ2FzZUJhcgljb250YWluZWQKIGVuZGlmCiBzeW4gcmVnaW9uICBzaENhc2VTaW5nbGVRdW90ZQltYXRjaGdyb3VwPXNoUXVvdGUgc3RhcnQ9KycrIGVuZD0rJysJCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbAkJc2tpcHdoaXRlIHNraXBubCBuZXh0Z3JvdXA9c2hDYXNlQmFyCWNvbnRhaW5lZApAQCAtMjYyLDcgKzI2NCw3IEBACiAgc3luIHJlZ2lvbiBzaENvbW1hbmRTdWIgbWF0Y2hncm91cD1zaENtZFN1YlJlZ2lvbiBzdGFydD0iXCQoIiAgc2tpcD0nXFxcXFx8XFwuJyBlbmQ9IikiICBjb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAogIHN5biByZWdpb24gc2hBcml0aG1ldGljIG1hdGNoZ3JvdXA9c2hBcml0aFJlZ2lvbiAgc3RhcnQ9IlwkKCgiIHNraXA9J1xcXFxcfFxcLicgZW5kPSIpKSIgY29udGFpbnM9QHNoQXJpdGhMaXN0CiAgc3luIG1hdGNoICBzaFNraXBJbml0V1MgY29udGFpbmVkCSJeXHNcKyIKLWVsc2UKK2Vsc2VpZiAhZXhpc3RzKCJnOnNoX25vX2Vycm9yIikKICBzeW4gcmVnaW9uIHNoQ29tbWFuZFN1YiBtYXRjaGdyb3VwPUVycm9yIHN0YXJ0PSJcJCgiIGVuZD0iKSIgY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3QKIGVuZGlmCiAKQEAgLTI4NCw3ICsyODYsOCBAQAogc3luIG1hdGNoICAgc2hTb3VyY2UJIl5cLlxzIgogc3luIG1hdGNoICAgc2hTb3VyY2UJIlxzXC5ccyIKICJzeW4gcmVnaW9uICBzaENvbG9uCXN0YXJ0PSJeXHMqOiIgZW5kPSIkIiBlbmQ9IlxzIyJtZT1lLTIgY29udGFpbnM9QHNoQ29sb25MaXN0Ci1zeW4gcmVnaW9uICBzaENvbG9uCXN0YXJ0PSJeXHMqXHpzOiIgZW5kPSIkIiBlbmQ9IlxzIyJtZT1lLTIKKyJzeW4gcmVnaW9uICBzaENvbG9uCXN0YXJ0PSJeXHMqXHpzOiIgZW5kPSIkIiBlbmQ9IlxzIyJtZT1lLTIKK3N5biBtYXRjaCAgIHNoQ29sb24JJ15ccypcenM6JwogCiAiIFN0cmluZyBBbmQgQ2hhcmFjdGVyIENvbnN0YW50czoge3t7MQogIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yOTYsNyArMjk5LDcgQEAKIGlmIGV4aXN0cygiYjppc19iYXNoIikKICBzeW4gcmVnaW9uICBzaEV4U2luZ2xlUXVvdGUJbWF0Y2hncm91cD1zaFF1b3RlIHN0YXJ0PStcJCcrIHNraXA9K1xcXFxcfFxcLisgZW5kPSsnKwljb250YWlucz1zaFN0cmluZ1NwZWNpYWwsc2hTcGVjaWFsCiAgc3luIHJlZ2lvbiAgc2hFeERvdWJsZVF1b3RlCW1hdGNoZ3JvdXA9c2hRdW90ZSBzdGFydD0rXCQiKyBza2lwPStcXFxcXHxcXC5cfFxcIisgZW5kPSsiKwljb250YWlucz1Ac2hEYmxRdW90ZUxpc3Qsc2hTdHJpbmdTcGVjaWFsLHNoU3BlY2lhbAotZWxzZQorZWxzZWlmICFleGlzdHMoImc6c2hfbm9fZXJyb3IiKQogIHN5biByZWdpb24gIHNoRXhTaW5nbGVRdW90ZQltYXRjaEdyb3VwPUVycm9yIHN0YXJ0PStcJCcrIHNraXA9K1xcXFxcfFxcLisgZW5kPSsnKwljb250YWlucz1zaFN0cmluZ1NwZWNpYWwKICBzeW4gcmVnaW9uICBzaEV4RG91YmxlUXVvdGUJbWF0Y2hHcm91cD1FcnJvciBzdGFydD0rXCQiKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rIisJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCiBlbmRpZgpAQCAtNDA3LDcgKzQxMCw5IEBACiAiID09PT09PT09PT09PT09PT09PT09PT09PQogc3luIG1hdGNoICBzaERlcmVmU2ltcGxlCSJcJFwlKFxoXHcqXHxcZFwpIgogc3luIHJlZ2lvbiBzaERlcmVmCW1hdGNoZ3JvdXA9UHJlUHJvYyBzdGFydD0iXCR7IiBlbmQ9In0iCWNvbnRhaW5zPUBzaERlcmVmTGlzdCxzaERlcmVmVmFyQXJyYXkKLXN5biBtYXRjaCAgc2hEZXJlZldvcmRFcnJvcgkiW159JFtdIgljb250YWluZWQKK2lmICFleGlzdHMoImc6c2hfbm9fZXJyb3IiKQorIHN5biBtYXRjaCAgc2hEZXJlZldvcmRFcnJvcgkiW159JFtdIgljb250YWluZWQKK2VuZGlmCiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkWy0jKkAhP10iCiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkXCQiCiBpZiBleGlzdHMoImI6aXNfYmFzaCIpIHx8IGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQpAQCAtNDQzLDcgKzQ0OCw5IEBACiAiICAgICAgICBiYXNoIDogJHtwYXJhbWV0ZXIscGF0dGVybn0gIENhc2UgbW9kaWZpY2F0aW9uCiAiICAgICAgICBiYXNoIDogJHtwYXJhbWV0ZXIsLHBhdHRlcm59IENhc2UgbW9kaWZpY2F0aW9uCiBzeW4gY2x1c3RlciBzaERlcmVmUGF0dGVybkxpc3QJY29udGFpbnM9c2hEZXJlZlBhdHRlcm4sc2hEZXJlZlN0cmluZwotc3luIG1hdGNoIHNoRGVyZWZPcEVycm9yCWNvbnRhaW5lZAkiOltbOnB1bmN0Ol1dIgoraWYgIWV4aXN0cygiZzpzaF9ub19lcnJvciIpCisgc3luIG1hdGNoIHNoRGVyZWZPcEVycm9yCWNvbnRhaW5lZAkiOltbOnB1bmN0Ol1dIgorZW5kaWYKIHN5biBtYXRjaCAgc2hEZXJlZk9wCWNvbnRhaW5lZAkiOlw9Wy09P10iCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0CiBzeW4gbWF0Y2ggIHNoRGVyZWZPcAljb250YWluZWQJIjpcPSsiCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0CiBpZiBleGlzdHMoImI6aXNfYmFzaCIpIHx8IGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQpAQCAtNDgwLDcgKzQ4Nyw5IEBACiAiID09PT09PT09PT09PT09PT09PT0KIHN5biBrZXl3b3JkIHNoU3RhdGVtZW50IGJyZWFrIGNkIGNoZGlyIGNvbnRpbnVlIGV2YWwgZXhlYyBleGl0IGtpbGwgbmV3Z3JwIHB3ZCByZWFkIHJlYWRvbmx5IHJldHVybiBzaGlmdCB0ZXN0IHRyYXAgdWxpbWl0IHVtYXNrIHdhaXQKIHN5biBrZXl3b3JkIHNoQ29uZGl0aW9uYWwgY29udGFpbmVkIGVsaWYgZWxzZSB0aGVuCi1zeW4ga2V5d29yZCBzaENvbmRFcnJvciBlbGlmIGVsc2UgdGhlbgoraWYgIWV4aXN0cygiZzpzaF9ub19lcnJvciIpCisgc3luIGtleXdvcmQgc2hDb25kRXJyb3IgZWxpZiBlbHNlIHRoZW4KK2VuZGlmCiAKICIgVXNlZnVsIGtzaCBLZXl3b3Jkczoge3t7MQogIiA9PT09PT09PT09PT09PT09PT09PQpAQCAtNTg5LDIwICs1OTgsMjIgQEAKICAgaGkgZGVmIGxpbmsgc2hGdW5jdGlvblBhcmVuCQlEZWxpbWl0ZXIKIGVuZGlmCiAKLWhpIGRlZiBsaW5rIHNoQ2FzZUVycm9yCQlFcnJvcgotaGkgZGVmIGxpbmsgc2hDb25kRXJyb3IJCUVycm9yCi1oaSBkZWYgbGluayBzaEN1cmx5RXJyb3IJCUVycm9yCi1oaSBkZWYgbGluayBzaERlcmVmRXJyb3IJCUVycm9yCi1oaSBkZWYgbGluayBzaERlcmVmT3BFcnJvcgkJRXJyb3IKLWhpIGRlZiBsaW5rIHNoRGVyZWZXb3JkRXJyb3IJCUVycm9yCi1oaSBkZWYgbGluayBzaERvRXJyb3IJCUVycm9yCi1oaSBkZWYgbGluayBzaEVzYWNFcnJvcgkJRXJyb3IKLWhpIGRlZiBsaW5rIHNoSWZFcnJvcgkJRXJyb3IKLWhpIGRlZiBsaW5rIHNoSW5FcnJvcgkJRXJyb3IKLWhpIGRlZiBsaW5rIHNoUGFyZW5FcnJvcgkJRXJyb3IKLWhpIGRlZiBsaW5rIHNoVGVzdEVycm9yCQlFcnJvcgotaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpCi0gIGhpIGRlZiBsaW5rIHNoRFRlc3RFcnJvcgkJRXJyb3IKK2lmICFleGlzdHMoImc6c2hfbm9fZXJyb3IiKQorIGhpIGRlZiBsaW5rIHNoQ2FzZUVycm9yCQlFcnJvcgorIGhpIGRlZiBsaW5rIHNoQ29uZEVycm9yCQlFcnJvcgorIGhpIGRlZiBsaW5rIHNoQ3VybHlFcnJvcgkJRXJyb3IKKyBoaSBkZWYgbGluayBzaERlcmVmRXJyb3IJCUVycm9yCisgaGkgZGVmIGxpbmsgc2hEZXJlZk9wRXJyb3IJCUVycm9yCisgaGkgZGVmIGxpbmsgc2hEZXJlZldvcmRFcnJvcgkJRXJyb3IKKyBoaSBkZWYgbGluayBzaERvRXJyb3IJCUVycm9yCisgaGkgZGVmIGxpbmsgc2hFc2FjRXJyb3IJCUVycm9yCisgaGkgZGVmIGxpbmsgc2hJZkVycm9yCQlFcnJvcgorIGhpIGRlZiBsaW5rIHNoSW5FcnJvcgkJRXJyb3IKKyBoaSBkZWYgbGluayBzaFBhcmVuRXJyb3IJCUVycm9yCisgaGkgZGVmIGxpbmsgc2hUZXN0RXJyb3IJCUVycm9yCisgaWYgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpCisgICBoaSBkZWYgbGluayBzaERUZXN0RXJyb3IJCUVycm9yCisgZW5kaWYKIGVuZGlmCiAKIGhpIGRlZiBsaW5rIHNoQXJpdGhtZXRpYwkJU3BlY2lhbApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGV4LnZpbSBiL3J1bnRpbWUvc3ludGF4L3RleC52aW0KaW5kZXggYTJiOTgyNS4uYTMyNDMwNCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdGV4LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC90ZXgudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVRlWAogIiBNYWludGFpbmVyOglEci4gQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIDxOZHJjaGlwT0BTY2FtcGJlbGxQZmFtaWx5LkFiaXpNPgotIiBMYXN0IENoYW5nZToJT2N0IDEyLCAyMDExIAotIiBWZXJzaW9uOgk2OQorIiBMYXN0IENoYW5nZToJSmFuIDEwLCAyMDEyCisiIFZlcnNpb246CTcyCiAiIFVSTDoJCWh0dHA6Ly9teXNpdGUudmVyaXpvbi5uZXQvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI3ZpbWxpbmtzX3N5bnRheAogIgogIiBOb3Rlczoge3t7MQpAQCAtNjAzLDYgKzYwMyw3IEBACiAgIGxldCBzOnRleE1hdGhMaXN0PVsKICAgICBcIFsnfCcJCSwgJ+KAliddLAogICAgIFwgWydhbGVwaCcJCSwgJ+KEtSddLAorICAgIFwgWydhbWFsZycJCSwgJ+KIkCddLAogICAgIFwgWydhbmdsZScJCSwgJ+KIoCddLAogICAgIFwgWydhcHByb3gnCQksICfiiYgnXSwKICAgICBcIFsnYXN0JwkJLCAn4oiXJ10sCkBAIC02MTQsMjAgKzYxNSwyNCBAQAogICAgIFwgWydiZWNhdXNlJwksICfiiLUnXSwKICAgICBcIFsnYmV0d2VlbicJLCAn4omsJ10sCiAgICAgXCBbJ2JpZ2NhcCcJCSwgJ+KIqSddLAorICAgIFwgWydiaWdjaXJjJwksICfil4snXSwKICAgICBcIFsnYmlnY3VwJwkJLCAn4oiqJ10sCiAgICAgXCBbJ2JpZ29kb3QnCSwgJ+KKmSddLAogICAgIFwgWydiaWdvcGx1cycJLCAn4oqVJ10sCiAgICAgXCBbJ2JpZ290aW1lcycJLCAn4oqXJ10sCiAgICAgXCBbJ2JpZ3NxY3VwJwksICfiipQnXSwKICAgICBcIFsnYmlndHJpYW5nbGVkb3duJywgJ+KIhyddLAorICAgIFwgWydiaWd0cmlhbmdsZXVwJwksICfiiIYnXSwKICAgICBcIFsnYmlndmVlJwkJLCAn4ouBJ10sCiAgICAgXCBbJ2JpZ3dlZGdlJwksICfii4AnXSwKICAgICBcIFsnYmxhY2tzcXVhcmUnCSwgJ+KIjiddLAogICAgIFwgWydib3QnCQksICfiiqUnXSwKKyAgICBcIFsnYm93dGllJwkgICAgICAgICwgJ+KLiCddLAogICAgIFwgWydib3hkb3QnCQksICfiiqEnXSwKICAgICBcIFsnYm94bWludXMnCSwgJ+KKnyddLAogICAgIFwgWydib3hwbHVzJwksICfiip4nXSwKICAgICBcIFsnYm94dGltZXMnCSwgJ+KKoCddLAorICAgIFwgWydidWxsZXQnCSAgICAgICAgLCAn4oCiJ10sCiAgICAgXCBbJ2J1bXBlcScJCSwgJ+KJjyddLAogICAgIFwgWydCdW1wZXEnCQksICfiiY4nXSwKICAgICBcIFsnY2FwJwkJLCAn4oipJ10sCkBAIC02NTEsMzYgKzY1Niw0MSBAQAogICAgIFwgWydjdXJseWVxc3VjYycJLCAn4oufJ10sCiAgICAgXCBbJ2N1cmx5dmVlJwksICfii44nXSwKICAgICBcIFsnY3VybHl3ZWRnZScJLCAn4ouPJ10sCisgICAgXCBbJ2RhZ2dlcicJICAgICAgICAsICfigKAnXSwKICAgICBcIFsnZGFzaHYnCQksICfiiqMnXSwKKyAgICBcIFsnZGRhZ2dlcicJLCAn4oChJ10sCisgICAgXCBbJ2Rkb3RzJwkgICAgICAgICwgJ+KLsSddLAogICAgIFwgWydkaWFtb25kJwksICfii4QnXSwKICAgICBcIFsnZGlhbW9uZHN1aXQnCSwgJ+KZoiddLAogICAgIFwgWydkaXYnCQksICfDtyddLAogICAgIFwgWydkb3RlcScJCSwgJ+KJkCddLAogICAgIFwgWydkb3RlcWRvdCcJLCAn4omRJ10sCiAgICAgXCBbJ2RvdHBsdXMnCSwgJ+KIlCddLAorICAgIFwgWydkb3RzJwkJLCAn4oCmJ10sCiAgICAgXCBbJ2RvdHNiJwkJLCAn4ouvJ10sCiAgICAgXCBbJ2RvdHNjJwkJLCAn4oCmJ10sCi0gICAgXCBbJ2RvdHMnCQksICfigKYnXSwKICAgICBcIFsnZG90c2knCQksICfii68nXSwKICAgICBcIFsnZG90c28nCQksICfigKYnXSwKICAgICBcIFsnZG91YmxlYmFyd2VkZ2UnCSwgJ+KpniddLAogICAgIFwgWydkb3duYXJyb3cnCSwgJ+KGkyddLAogICAgIFwgWydEb3duYXJyb3cnCSwgJ+KHkyddLAorICAgIFwgWydlbGwnCQksICfihJMnXSwKICAgICBcIFsnZW1wdHlzZXQnCSwgJ+KIhSddLAogICAgIFwgWydlcWNpcmMnCQksICfiiZYnXSwKICAgICBcIFsnZXFzaW0nCQksICfiiYInXSwKICAgICBcIFsnZXFzbGFudGd0cicJLCAn4qqWJ10sCiAgICAgXCBbJ2Vxc2xhbnRsZXNzJwksICfiqpUnXSwKICAgICBcIFsnZXF1aXYnCQksICfiiaEnXSwKLSAgICBcIFsnZWxsJwkJLCAn4oSTJ10sCiAgICAgXCBbJ2V4aXN0cycJCSwgJ+KIgyddLAogICAgIFwgWydmYWxsaW5nZG90c2VxJwksICfiiZInXSwKICAgICBcIFsnZmxhdCcJCSwgJ+KZrSddLAogICAgIFwgWydmb3JhbGwnCQksICfiiIAnXSwKKyAgICBcIFsnZnJvd24nCQksICfigZQnXSwKICAgICBcIFsnZ2UnCQksICfiiaUnXSwKICAgICBcIFsnZ2VxJwkJLCAn4omlJ10sCiAgICAgXCBbJ2dlcXEnCQksICfiiacnXSwKICAgICBcIFsnZ2V0cycJCSwgJ+KGkCddLAorICAgIFwgWydnZycJCSwgJ+KfqyddLAogICAgIFwgWydnbmVxcScJCSwgJ+KJqSddLAogICAgIFwgWydndHJkb3QnCQksICfii5cnXSwKICAgICBcIFsnZ3RyZXFsZXNzJwksICfii5snXSwKQEAgLTcwMCwzMyArNzEwLDQwIEBACiAgICAgXCBbJ2xjZWlsJwkJLCAn4oyIJ10sCiAgICAgXCBbJ2xkb3RzJwkJLCAn4oCmJ10sCiAgICAgXCBbJ2xlJwkJLCAn4omkJ10sCi0gICAgXCBbJ2xlZnRhcnJvdycJLCAn4p+1J10sCi0gICAgXCBbJ0xlZnRhcnJvdycJLCAn4p+4J10sCi0gICAgXCBbJ2xlZnRhcnJvd3RhaWwnCSwgJ+KGoiddLAorICAgIFwgWydsZWFkc3RvJwksICfihp0nXSwKICAgICBcIFsnbGVmdCgnCQksICcoJ10sCiAgICAgXCBbJ2xlZnRcWycJCSwgJ1snXSwKICAgICBcIFsnbGVmdFxceycJLCAneyddLAorICAgIFwgWydsZWZ0YXJyb3cnCSwgJ+KftSddLAorICAgIFwgWydMZWZ0YXJyb3cnCSwgJ+KfuCddLAorICAgIFwgWydsZWZ0YXJyb3d0YWlsJwksICfihqInXSwKKyAgICBcIFsnbGVmdGhhcnBvb25kb3duJywgJ+KGvSddLAorICAgIFwgWydsZWZ0aGFycG9vbnVwJwksICfihrwnXSwKICAgICBcIFsnbGVmdHJpZ2h0YXJyb3cnCSwgJ+KHlCddLAorICAgIFwgWydMZWZ0cmlnaHRhcnJvdycJLCAn4oeUJ10sCiAgICAgXCBbJ2xlZnRyaWdodHNxdWlnYXJyb3cnLCAn4oatJ10sCiAgICAgXCBbJ2xlZnR0aHJlZXRpbWVzJwksICfii4snXSwKICAgICBcIFsnbGVxJwkJLCAn4omkJ10sCisgICAgXCBbJ2xlcScJCSwgJ+KJpCddLAogICAgIFwgWydsZXFxJwkJLCAn4ommJ10sCiAgICAgXCBbJ2xlc3Nkb3QnCSwgJ+KLliddLAogICAgIFwgWydsZXNzZXFndHInCSwgJ+KLmiddLAogICAgIFwgWydsZXNzc2ltJwksICfiibInXSwKICAgICBcIFsnbGZsb29yJwkJLCAn4oyKJ10sCisgICAgXCBbJ2xsJwkJLCAn4omqJ10sCiAgICAgXCBbJ2xtb3VzdGFjaGUnICAgICAsICfila0nXSwKICAgICBcIFsnbG5lcXEnCQksICfiiagnXSwKICAgICBcIFsnbHRpbWVzJwkJLCAn4ouJJ10sCiAgICAgXCBbJ21hcHN0bycJCSwgJ+KGpiddLAogICAgIFwgWydtZWFzdXJlZGFuZ2xlJwksICfiiKEnXSwKICAgICBcIFsnbWlkJwkJLCAn4oijJ10sCisgICAgXCBbJ21vZGVscycJCSwgJ+KVniddLAogICAgIFwgWydtcCcJCSwgJ+KIkyddLAogICAgIFwgWyduYWJsYScJCSwgJ+KIhyddLAogICAgIFwgWyduYXR1cmFsJwksICfima4nXSwKICAgICBcIFsnbmNvbmcnCQksICfiiYcnXSwKLSAgICBcIFsnbmVhcnJvdycJLCAn4oaXJ10sCiAgICAgXCBbJ25lJwkJLCAn4omgJ10sCisgICAgXCBbJ25lYXJyb3cnCSwgJ+KGlyddLAogICAgIFwgWyduZWcnCQksICfCrCddLAogICAgIFwgWyduZXEnCQksICfiiaAnXSwKICAgICBcIFsnbmV4aXN0cycJLCAn4oiEJ10sCkBAIC03NjMsMTIgKzc4MCwxMyBAQAogICAgIFwgWydvdGltZXMnCQksICfiipcnXSwKICAgICBcIFsnb3ducycJCSwgJ+KIiyddLAogICAgIFwgWydQJwkgICAgICAgICwgJ8K2J10sCisgICAgXCBbJ3BhcmFsbGVsJwksICfilZEnXSwKICAgICBcIFsncGFydGlhbCcJLCAn4oiCJ10sCiAgICAgXCBbJ3BlcnAnCQksICfiiqUnXSwKICAgICBcIFsncGl0Y2hmb3JrJwksICfii5QnXSwKICAgICBcIFsncG0nCQksICfCsSddLAotICAgIFwgWydwcmVjYXBwcm94JwksICfiqrcnXSwKICAgICBcIFsncHJlYycJCSwgJ+KJuiddLAorICAgIFwgWydwcmVjYXBwcm94JwksICfiqrcnXSwKICAgICBcIFsncHJlY2N1cmx5ZXEnCSwgJ+KJvCddLAogICAgIFwgWydwcmVjZXEnCQksICfiqq8nXSwKICAgICBcIFsncHJlY25hcHByb3gnCSwgJ+KquSddLApAQCAtNzgwLDEyICs3OTgsMTMgQEAKICAgICBcIFsncmNlaWwnCQksICfijIknXSwKICAgICBcIFsnUmUnCQksICfihJwnXSwKICAgICBcIFsncmZsb29yJwkJLCAn4oyLJ10sCi0gICAgXCBbJ3JpZ2h0YXJyb3cnCSwgJ+KftiddLAotICAgIFwgWydSaWdodGFycm93JwksICfin7knXSwKLSAgICBcIFsncmlnaHRhcnJvd3RhaWwnCSwgJ+KGoyddLAogICAgIFwgWydyaWdodCknCQksICcpJ10sCiAgICAgXCBbJ3JpZ2h0XScJCSwgJ10nXSwKICAgICBcIFsncmlnaHRcXH0nCSwgJ30nXSwKKyAgICBcIFsncmlnaHRhcnJvdycJLCAn4p+2J10sCisgICAgXCBbJ1JpZ2h0YXJyb3cnCSwgJ+KfuSddLAorICAgIFwgWydyaWdodGFycm93dGFpbCcJLCAn4oajJ10sCisgICAgXCBbJ3JpZ2h0bGVmdGhhcnBvb25zJywgJ+KHjCddLAogICAgIFwgWydyaWdodHNxdWlnYXJyb3cnLCAn4oadJ10sCiAgICAgXCBbJ3JpZ2h0dGhyZWV0aW1lcycsICfii4wnXSwKICAgICBcIFsncmlzaW5nZG90c2VxJwksICfiiZMnXSwKQEAgLTc5Niw2ICs4MTUsOCBAQAogICAgIFwgWydzZXRtaW51cycJLCAn4oiWJ10sCiAgICAgXCBbJ3NoYXJwJwkJLCAn4pmvJ10sCiAgICAgXCBbJ3NpbScJCSwgJ+KIvCddLAorICAgIFwgWydzaW1lcScJCSwgJ+KLjSddLAorICAgIFwgWydzbWlsZScJCSwgJ+KAvyddLAogICAgIFwgWydzcGFkZXN1aXQnCSwgJ+KZoCddLAogICAgIFwgWydzcGhlcmljYWxhbmdsZScJLCAn4oiiJ10sCiAgICAgXCBbJ3NxY2FwJwkJLCAn4oqTJ10sCkBAIC04MDQsMjAgKzgyNSwyMiBAQAogICAgIFwgWydzcXN1YnNldGVxJwksICfiipEnXSwKICAgICBcIFsnc3FzdXBzZXQnCSwgJ+KKkCddLAogICAgIFwgWydzcXN1cHNldGVxJwksICfiipInXSwKKyAgICBcIFsnc3RhcicJCSwgJ+KcqyddLAogICAgIFwgWydzdWJzZXQnCQksICfiioInXSwKICAgICBcIFsnU3Vic2V0JwkJLCAn4ouQJ10sCiAgICAgXCBbJ3N1YnNldGVxJwksICfiioYnXSwKICAgICBcIFsnc3Vic2V0ZXFxJwksICfiq4UnXSwKICAgICBcIFsnc3Vic2V0bmVxJwksICfiioonXSwKICAgICBcIFsnc3Vic2V0bmVxcScJLCAn4quLJ10sCi0gICAgXCBbJ3N1Y2NhcHByb3gnCSwgJ+KquCddLAogICAgIFwgWydzdWNjJwkJLCAn4om7J10sCisgICAgXCBbJ3N1Y2NhcHByb3gnCSwgJ+KquCddLAogICAgIFwgWydzdWNjY3VybHllcScJLCAn4om9J10sCiAgICAgXCBbJ3N1Y2NlcScJCSwgJ+KqsCddLAogICAgIFwgWydzdWNjbmFwcHJveCcJLCAn4qq6J10sCiAgICAgXCBbJ3N1Y2NuZXFxJwksICfiqrYnXSwKICAgICBcIFsnc3VjY3NpbScJLCAn4om/J10sCiAgICAgXCBbJ3N1bScJCSwgJ+KIkSddLAorICAgIFwgWydzdXBzZXQnCQksICfiioMnXSwKICAgICBcIFsnU3Vwc2V0JwkJLCAn4ouRJ10sCiAgICAgXCBbJ3N1cHNldGVxJwksICfiiocnXSwKICAgICBcIFsnc3Vwc2V0ZXFxJwksICfiq4YnXSwKQEAgLTg0NywxMiArODcwLDE1IEBACiAgICAgXCBbJ3ZEYXNoJwkJLCAn4oqoJ10sCiAgICAgXCBbJ1ZkYXNoJwkJLCAn4oqpJ10sCiAgICAgXCBbJ3Zkb3RzJwkJLCAn4ouuJ10sCi0gICAgXCBbJ3ZlZWJhcicJCSwgJ+KKuyddLAogICAgIFwgWyd2ZWUnCQksICfiiKgnXSwKKyAgICBcIFsndmVlYmFyJwkJLCAn4oq7J10sCiAgICAgXCBbJ1Z2ZGFzaCcJCSwgJ+KKqiddLAogICAgIFwgWyd3ZWRnZScJCSwgJ+KIpyddLAogICAgIFwgWyd3cCcJCSwgJ+KEmCddLAogICAgIFwgWyd3cicJCSwgJ+KJgCddXQorIiAgICBcIFsnam1hdGgnCQksICdYJ10KKyIgICAgXCBbJ3VtaW51cycJLCAnWCddCisiICAgIFwgWyd1cGx1cycJCSwgJ1gnXQogICBmb3IgdGV4bWF0aCBpbiBzOnRleE1hdGhMaXN0CiAgICBpZiB0ZXhtYXRoWzBdID1+ICdcdyQnCiAgICAgZXhlICJzeW4gbWF0Y2ggdGV4TWF0aFN5bWJvbCAnXFxcXCIudGV4bWF0aFswXS4iXFw+JyBjb250YWluZWQgY29uY2VhbCBjY2hhcj0iLnRleG1hdGhbMV0KQEAgLTk5OSw2ICsxMDI1LDkgQEAKICAgY2FsbCBzOlN1cGVyU3ViKCd0ZXhTdXBlcnNjcmlwdCcsJ1xeJywnVCcsJ+G1gCcpCiAgIGNhbGwgczpTdXBlclN1YigndGV4U3VwZXJzY3JpcHQnLCdcXicsJ1UnLCfhtYEnKQogICBjYWxsIHM6U3VwZXJTdWIoJ3RleFN1cGVyc2NyaXB0JywnXF4nLCdXJywn4bWCJykKKyAgY2FsbCBzOlN1cGVyU3ViKCd0ZXhTdXBlcnNjcmlwdCcsJ1xeJywnLCcsJ++4kCcpCisgIGNhbGwgczpTdXBlclN1YigndGV4U3VwZXJzY3JpcHQnLCdcXicsJzonLCfvuJMnKQorICBjYWxsIHM6U3VwZXJTdWIoJ3RleFN1cGVyc2NyaXB0JywnXF4nLCc7Jywn77iUJykKICAgY2FsbCBzOlN1cGVyU3ViKCd0ZXhTdXBlcnNjcmlwdCcsJ1xeJywnKycsJ+KBuicpCiAgIGNhbGwgczpTdXBlclN1YigndGV4U3VwZXJzY3JpcHQnLCdcXicsJy0nLCfigbsnKQogICBjYWxsIHM6U3VwZXJTdWIoJ3RleFN1cGVyc2NyaXB0JywnXF4nLCc8Jywny4InKQpAQCAtMTAyMyw2ICsxMDUyLDcgQEAKICAgY2FsbCBzOlN1cGVyU3ViKCd0ZXhTdWJzY3JpcHQnLCdfJywnaScsJ+G1oicpCiAgIGNhbGwgczpTdXBlclN1YigndGV4U3Vic2NyaXB0JywnXycsJ28nLCfigpInKQogICBjYWxsIHM6U3VwZXJTdWIoJ3RleFN1YnNjcmlwdCcsJ18nLCd1Jywn4bWkJykKKyAgY2FsbCBzOlN1cGVyU3ViKCd0ZXhTdWJzY3JpcHQnLCdfJywnLCcsJ++4kCcpCiAgIGNhbGwgczpTdXBlclN1YigndGV4U3Vic2NyaXB0JywnXycsJysnLCfigoonKQogICBjYWxsIHM6U3VwZXJTdWIoJ3RleFN1YnNjcmlwdCcsJ18nLCctJywn4oKLJykKICAgY2FsbCBzOlN1cGVyU3ViKCd0ZXhTdWJzY3JpcHQnLCdfJywnLycsJ8uPJykKQEAgLTExNzUsNiArMTIwNSw4IEBACiAgICBIaUxpbmsgdGV4R3JlZWsJCXRleFN0YXRlbWVudAogICAgSGlMaW5rIHRleFN1cGVyc2NyaXB0CXRleFN0YXRlbWVudAogICAgSGlMaW5rIHRleFN1YnNjcmlwdAkJdGV4U3RhdGVtZW50CisgICBIaUxpbmsgdGV4U3VwZXJzY3JpcHRzIAl0ZXhTdXBlcnNjcmlwdAorICAgSGlMaW5rIHRleFN1YnNjcmlwdHMgCXRleFN1YnNjcmlwdAogICAgSGlMaW5rIHRleE1hdGhTeW1ib2wJCXRleFN0YXRlbWVudAogICAgSGlMaW5rIHRleE1hdGhab25lVgkJdGV4TWF0aAogICAgSGlMaW5rIHRleE1hdGhab25lVwkJdGV4TWF0aApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdXBzdGFydC52aW0gYi9ydW50aW1lL3N5bnRheC91cHN0YXJ0LnZpbQppbmRleCA5ZGI4YmNiLi5iM2YyYjllIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC91cHN0YXJ0LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC91cHN0YXJ0LnZpbQpAQCAtMiw4ICsyLDggQEAKICIgTGFuZ3VhZ2U6CVVwc3RhcnQgam9iIGZpbGVzCiAiIE1haW50YWluZXI6CU1pY2hhZWwgQmllYmwgPGJpZWJsQGRlYmlhbi5vcmc+CiAiCQlKYW1lcyBIdW50IDxqYW1lcy5odW50QHVidW50dS5jb20+Ci0iIExhc3QgQ2hhbmdlOgkyMDExIE1hciAyMgotIiBMaWNlbnNlOglHUEwgdjIKKyIgTGFzdCBDaGFuZ2U6CTIwMTIgSmFuIDE2CisiIExpY2Vuc2U6CVRoZSBWaW0gbGljZW5zZQogIiBWZXJzaW9uOgkwLjQKICIgUmVtYXJrOglTeW50YXggaGlnaGxpZ2h0aW5nIGZvciBVcHN0YXJ0IChpbml0KDgpKSBqb2IgZmlsZXMuCiAiCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC92aW0udmltIGIvcnVudGltZS9zeW50YXgvdmltLnZpbQppbmRleCBhNDM5ZmIwLi5lYWZkMThiIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC92aW0udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KQEAgLTEsMTQgKzEsMTYgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglWaW0gNy4zIHNjcmlwdAogIiBNYWludGFpbmVyOglEci4gQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgotIiBMYXN0IENoYW5nZToJSnVsIDE4LCAyMDExCi0iIFZlcnNpb246CTcuMy0wOAorIiBMYXN0IENoYW5nZToJSmFuIDExLCAyMDEyCisiIFZlcnNpb246CTcuMy0xMwogIiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBrZXl3b3JkIGxpc3RzOiB7e3sxCiAKICIgUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkIHt7ezIKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaAogZW5kaWYKK2xldCBzOmtlZXBjcG89ICZjcG8KK3NldCBjcG8mdmltCiAKICIgdmltVG9kbzogY29udGFpbnMgY29tbW9uIHNwZWNpYWwtbm90aWNlcyBmb3IgY29tbWVudHMge3t7MgogIiBVc2UgdGhlIHZpbUNvbW1lbnRHcm91cCBjbHVzdGVyIHRvIGFkZCB5b3VyIG93bi4KQEAgLTExOCwxNCArMTIwLDE0IEBACiAiID09PT09PT0KIHN5biBtYXRjaCAgIHZpbUJlaGF2ZQkiXDxiZVwlW2hhdmVdXD4iIHNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltQmVoYXZlTW9kZWwsdmltQmVoYXZlRXJyb3IKIHN5biBrZXl3b3JkIHZpbUJlaGF2ZU1vZGVsIGNvbnRhaW5lZAltc3dpbgl4dGVybQotaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCitpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikgJiYgIWV4aXN0cygiZzp2aW1zeW5fbm9iZWhhdmVlcnJvciIpCiAgc3luIG1hdGNoICAgdmltQmVoYXZlRXJyb3IgY29udGFpbmVkCSJbXiBdXCsiCiBlbmRpZgogCiAiIEZpbGV0eXBlcyB7e3syCiAiID09PT09PT09PQogc3luIG1hdGNoICAgdmltRmlsZXR5cGUJIlw8ZmlsZXRcJVt5cGVdXChcc1wrXElcaSpcKSoiCXNraXB3aGl0ZSBjb250YWlucz12aW1GVENtZCx2aW1GVE9wdGlvbix2aW1GVEVycm9yCi1pZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKK2lmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKSAmJiAhZXhpc3RzKCJnOnZpbXN5bl92aW1GVEVycm9yIikKICBzeW4gbWF0Y2ggICB2aW1GVEVycm9yICBjb250YWluZWQJIlxJXGkqIgogZW5kaWYKIHN5biBrZXl3b3JkIHZpbUZUQ21kICAgIGNvbnRhaW5lZAlmaWxldFt5cGVdCkBAIC0xNDAsNyArMTQyLDcgQEAKICBzeW4gcmVnaW9uICB2aW1BdWdyb3VwCXN0YXJ0PSJcPGF1Z1wlW3JvdXBdXD5cc1wrXEtcayoiIGVuZD0iXDxhdWdcJVtyb3VwXVw+XHNcK1tlRV1bbk5dW2REXVw+Igljb250YWlucz12aW1BdWdyb3VwS2V5LHZpbUF1dG9DbWQsQHZpbUF1Z3JvdXBMaXN0IGtlZXBlbmQKIGVuZGlmCiBzeW4gbWF0Y2ggICB2aW1BdWdyb3VwCSJhdWdcJVtyb3VwXSEiIGNvbnRhaW5zPXZpbUF1Z3JvdXBLZXkKLWlmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKQoraWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpICYmICFleGlzdHMoImc6dmltc3luX25vYXVncm91cGVycm9yIikKICBzeW4gbWF0Y2ggICB2aW1BdWdyb3VwRXJyb3IJIlw8YXVnXCVbcm91cF1cPlxzXCtbZUVdW25OXVtkRF1cPiIKIGVuZGlmCiBzeW4ga2V5d29yZCB2aW1BdWdyb3VwS2V5IGNvbnRhaW5lZAlhdWdbcm91cF0KQEAgLTE1Miw3ICsxNTQsNyBAQAogc3luIG1hdGNoCXZpbU9wZXIJInx8XHwmJlx8Wy0rLl0iCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3RyaW5nLHZpbVNwZWNGaWxlCiBzeW4gcmVnaW9uCXZpbU9wZXJQYXJlbiAJb25lbGluZSBtYXRjaGdyb3VwPXZpbVBhcmVuU2VwCXN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUB2aW1PcGVyR3JvdXAKIHN5biByZWdpb24JdmltT3BlclBhcmVuCW9uZWxpbmUgbWF0Y2hncm91cD12aW1TZXAJc3RhcnQ9InsiIGVuZD0ifSIgY29udGFpbnM9QHZpbU9wZXJHcm91cCBuZXh0Z3JvdXA9dmltVmFyLHZpbUZ1bmNWYXIKLWlmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKQoraWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpICYmICFleGlzdHMoImc6dmltc3luX25vb3BlcmVycm9yIikKICBzeW4gbWF0Y2gJdmltT3BlckVycm9yCSIpIgogZW5kaWYKIApAQCAtMTk2LDcgKzE5OCw3IEBACiBzeW4gbWF0Y2gJdmltVXNlckF0dHJiCWNvbnRhaW5lZAkiLWJhbmdcPVw+Igljb250YWlucz12aW1PcGVyLHZpbVVzZXJBdHRyYktleQogc3luIG1hdGNoCXZpbVVzZXJBdHRyYgljb250YWluZWQJIi1iYXJcPiIJY29udGFpbnM9dmltT3Blcix2aW1Vc2VyQXR0cmJLZXkKIHN5biBtYXRjaAl2aW1Vc2VyQXR0cmIJY29udGFpbmVkCSItcmVcJVtnaXN0ZXJdXD4iCWNvbnRhaW5zPXZpbU9wZXIsdmltVXNlckF0dHJiS2V5Ci1pZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKK2lmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKSAmJiAhZXhpc3RzKCJnOnZpbXN5bl9ub3VzZXJjbWRlcnJvciIpCiAgc3luIG1hdGNoCXZpbVVzZXJDbWRFcnJvcgljb250YWluZWQJIlxTXCtcPiIKIGVuZGlmCiBzeW4gY2FzZSBpZ25vcmUKQEAgLTI2OSw3ICsyNzEsNyBAQAogc3luIG1hdGNoCXZpbU1hcmtOdW1iZXIJIlstK11cZFwrIgkJbmV4dGdyb3VwPXZpbVN1YnN0IGNvbnRhaW5lZCBjb250YWlucz12aW1PcGVyCiBzeW4gbWF0Y2gJdmltUGxhaW5NYXJrIGNvbnRhaW5lZAkiJ1thLXpBLVowLTldIgogCi1zeW4gbWF0Y2gJdmltUmVnaXN0ZXIJJ1teLDtbe11cenMiW2EtekEtWjAtOS4lIzpfXC0vXVx6ZVteYS16QS1aXyI6XScKK3N5biBtYXRjaAl2aW1SZWdpc3RlcgknW14sO1t7XVx6cyJbYS16QS1aMC05LiUjOl9cLS9dXHplW15hLXpBLVpfIjowLTldJwogc3luIG1hdGNoCXZpbVJlZ2lzdGVyCSdcPG5vcm1cc1wrXHpzIlthLXpBLVowLTldJwogc3luIG1hdGNoCXZpbVJlZ2lzdGVyCSdcPG5vcm1hbFxzXCtcenMiW2EtekEtWjAtOV0nCiBzeW4gbWF0Y2gJdmltUmVnaXN0ZXIJJ0AiJwpAQCAtMjgyLDggKzI4NCw4IEBACiBzeW4gbWF0Y2gJdmltRmlsdGVyIGNvbnRhaW5lZAkiXEEhLlx7LX1cKHxcfCRcKSJtcz1zKzEJY29udGFpbnM9dmltU3BlY0ZpbGUsdmltRnVuY3Rpb24sdmltRnVuY05hbWUsdmltT3BlclBhcmVuCiAKICIgQ29tcGxleCByZXBlYXRzICg6aCBjb21wbGV4LXJlcGVhdCkge3t7Mgotc3luIG1hdGNoCXZpbUNtcGx4UmVwZWF0CSdbXmEtekEtWl8vXFwoKV1xWzAtOWEtekEtWiJdJ2xjPTEKLXN5biBtYXRjaAl2aW1DbXBseFJlcGVhdAknQFswLTlhLXoiLj1AOl1cemVcKCRcfFteYS16QS1aXVwpJworc3luIG1hdGNoCXZpbUNtcGx4UmVwZWF0CSdbXmEtekEtWl8vXFwoKV1xWzAtOWEtekEtWiJdXD4nbGM9MQorc3luIG1hdGNoCXZpbUNtcGx4UmVwZWF0CSdAWzAtOWEteiIuPUA6XVx6ZVwoJFx8W15hLXpBLVpdXD5cKScKIAogIiBTZXQgY29tbWFuZCBhbmQgYXNzb2NpYXRlZCBzZXQtb3B0aW9ucyAodmltT3B0aW9ucykgd2l0aCBjb21tZW50IHt7ezIKIHN5biByZWdpb24JdmltU2V0CQltYXRjaGdyb3VwPXZpbUNvbW1hbmQgc3RhcnQ9Ilw8XCUoc2V0bFwlW29jYWxdXHxzZXRnXCVbbG9iYWxdXHxzZVwlW3RdXClcPiIgc2tpcD0iXCUoXFxcXFwpKlxcLiIgZW5kPSIkIiBtYXRjaGdyb3VwPXZpbU5vdGF0aW9uIGVuZD0iPFtjQ11bclJdPiIga2VlcGVuZCBvbmVsaW5lIGNvbnRhaW5zPXZpbVNldEVxdWFsLHZpbU9wdGlvbix2aW1FcnJTZXR0aW5nLHZpbUNvbW1lbnQsdmltU2V0U3RyaW5nLHZpbVNldE1vZApAQCAtMzY0LDcgKzM2Niw3IEBACiAKICIgRXJyb3JzIEFuZCBXYXJuaW5nczoge3t7MgogIiA9PT09PT09PT09PT09PT09PT09PQotaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCitpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikgJiYgIWV4aXN0cygiZzp2aW1zeW5fbm92aW1mdW5jdGlvbmVycm9yIikKICBzeW4gbWF0Y2gJdmltRnVuY3Rpb25FcnJvcgkiXHNcenNbYS16MC05XVxpXHstfVx6ZVxzKigiCQkJY29udGFpbmVkIGNvbnRhaW5zPXZpbUZ1bmNLZXksdmltRnVuY0JsYW5rCiAiIHN5biBtYXRjaAl2aW1GdW5jdGlvbkVycm9yCSJcc1x6c1wlKDxbc1NdW2lJXVtkRF0+XHxbc1NnR2JCd1d0VGxMXTpcKVswLTldXGlcey19XHplXHMqKCIJY29udGFpbmVkIGNvbnRhaW5zPXZpbUZ1bmNLZXksdmltRnVuY0JsYW5rCiAgc3luIG1hdGNoCXZpbUVsc2VJZkVycgkiXDxlbHNlXHNcK2lmXD4iCkBAIC0zODEsNyArMzgzLDcgQEAKIHN5biBtYXRjaAl2aW1Hcm91cExpc3QJY29udGFpbmVkCSJAXD1bXiBcdCxdKiIJY29udGFpbnM9dmltR3JvdXBTcGVjaWFsLHZpbVBhdFNlcAogc3luIG1hdGNoCXZpbUdyb3VwTGlzdAljb250YWluZWQJIkBcPVteIFx0LF0qLCIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdCBjb250YWlucz12aW1Hcm91cFNwZWNpYWwsdmltUGF0U2VwCiBzeW4ga2V5d29yZAl2aW1Hcm91cFNwZWNpYWwJY29udGFpbmVkCUFMTAlBTExCVVQJQ09OVEFJTkVECVRPUAotaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCitpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikgJiYgIWV4aXN0cygiZzp2aW1zeW5fbm92aW1zeW5lcnJvciIpCiAgc3luIG1hdGNoCXZpbVN5bkVycm9yCWNvbnRhaW5lZAkiXGlcKyIKICBzeW4gbWF0Y2gJdmltU3luRXJyb3IJY29udGFpbmVkCSJcaVwrPSIJbmV4dGdyb3VwPXZpbUdyb3VwTGlzdAogZW5kaWYKQEAgLTM5NSw3ICszOTcsNyBAQAogCiAiIFN5bnRheDogY2FzZSB7e3syCiBzeW4ga2V5d29yZAl2aW1TeW5UeXBlCWNvbnRhaW5lZAljYXNlCXNraXB3aGl0ZSBuZXh0Z3JvdXA9dmltU3luQ2FzZSx2aW1TeW5DYXNlRXJyb3IKLWlmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKQoraWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpICYmICFleGlzdHMoImc6dmltc3luX25vdmltc3luY2FzZWVycm9yIikKICBzeW4gbWF0Y2gJdmltU3luQ2FzZUVycm9yCWNvbnRhaW5lZAkiXGlcKyIKIGVuZGlmCiBzeW4ga2V5d29yZAl2aW1TeW5DYXNlCWNvbnRhaW5lZAlpZ25vcmUJbWF0Y2gKQEAgLTQ1Niw3ICs0NTgsNyBAQAogIiBTeW50YXg6IHN5bmMge3t7MgogIiA9PT09PT09PT09PT0KIHN5biBrZXl3b3JkIHZpbVN5blR5cGUJY29udGFpbmVkCXN5bmMJc2tpcHdoaXRlCW5leHRncm91cD12aW1TeW5jQyx2aW1TeW5jTGluZXMsdmltU3luY01hdGNoLHZpbVN5bmNFcnJvcix2aW1TeW5jTGluZWJyZWFrLHZpbVN5bmNMaW5lY29udCx2aW1TeW5jUmVnaW9uCi1pZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikKK2lmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKSAmJiAhZXhpc3RzKCJnOnZpbXN5bl9ub3ZpbXN5bmNlcnJvciIpCiAgc3luIG1hdGNoCXZpbVN5bmNFcnJvcgljb250YWluZWQJIlxpXCsiCiBlbmRpZgogc3luIGtleXdvcmQJdmltU3luY0MJY29udGFpbmVkCWNjb21tZW50CWNsZWFyCWZyb21zdGFydApAQCAtNDc3LDYgKzQ3OSw5IEBACiAiIEhpZ2hsaWdodGluZyB7e3syCiAiID09PT09PT09PT09PQogc3luIGNsdXN0ZXIJdmltSGlnaGxpZ2h0Q2x1c3RlcgkJY29udGFpbnM9dmltSGlMaW5rLHZpbUhpQ2xlYXIsdmltSGlLZXlMaXN0LHZpbUNvbW1lbnQKK2lmICFleGlzdHMoImc6dmltc3luX25vZXJyb3IiKSAmJiAhZXhpc3RzKCJnOnZpbXN5bl9ub3ZpbWhpY3Rlcm1lcnJvciIpCisgc3luIG1hdGNoCXZpbUhpQ3Rlcm1FcnJvcgljb250YWluZWQJIlteMC05XVxpKiIKK2VuZGlmCiBzeW4gbWF0Y2gJdmltSGlnaGxpZ2h0CSJcPGhpXCVbZ2hsaWdodF1cPiIJc2tpcHdoaXRlIG5leHRncm91cD12aW1IaUJhbmcsQHZpbUhpZ2hsaWdodENsdXN0ZXIKIHN5biBtYXRjaAl2aW1IaUJhbmcJY29udGFpbmVkCSIhIglza2lwd2hpdGUgbmV4dGdyb3VwPUB2aW1IaWdobGlnaHRDbHVzdGVyCiAKQEAgLTQ4OCwyMCArNDkzLDE4IEBACiBzeW4gbWF0Y2gJdmltSGlBdHRyaWJMaXN0CWNvbnRhaW5lZAkiXGlcKyIJY29udGFpbnM9dmltSGlBdHRyaWIKIHN5biBtYXRjaAl2aW1IaUF0dHJpYkxpc3QJY29udGFpbmVkCSJcaVwrLCJoZT1lLTEJY29udGFpbnM9dmltSGlBdHRyaWIgbmV4dGdyb3VwPXZpbUhpQXR0cmliTGlzdAogc3luIGNhc2UgaWdub3JlCi1zeW4ga2V5d29yZAl2aW1IaUN0ZXJtQ29sb3IJY29udGFpbmVkCWJsYWNrIGJsdWUgYnJvd24gY3lhbiBkYXJrQmx1ZSBkYXJrY3lhbiBkYXJrZ3JheSBkYXJrZ3JlZW4gZGFya2dyZXkgZGFya21hZ2VudGEgZGFya3JlZCBkYXJreWVsbG93IGdyYXkgZ3JlZW4gZ3JleSBsaWdodGJsdWUgbGlnaHRjeWFuIGxpZ2h0Z3JheSBsaWdodGdyZWVuIGxpZ2h0Z3JleSBsaWdodG1hZ2VudGEgbGlnaHRyZWQgbWFnZW50YSByZWQgd2hpdGUgeWVsbG93CitzeW4ga2V5d29yZAl2aW1IaUN0ZXJtQ29sb3IJY29udGFpbmVkCWJsYWNrIGJsdWUgYnJvd24gY3lhbiBkYXJrYmx1ZSBkYXJrY3lhbiBkYXJrZ3JheSBkYXJrZ3JlZW4gZGFya2dyZXkgZGFya21hZ2VudGEgZGFya3JlZCBkYXJreWVsbG93IGdyYXkgZ3JlZW4gZ3JleSBsaWdodGJsdWUgbGlnaHRjeWFuIGxpZ2h0Z3JheSBsaWdodGdyZWVuIGxpZ2h0Z3JleSBsaWdodG1hZ2VudGEgbGlnaHRyZWQgbWFnZW50YSByZWQgd2hpdGUgeWVsbG93CitzeW4gbWF0Y2gJdmltSGlDdGVybUNvbG9yCWNvbnRhaW5lZAkiXDxjb2xvclxkXHsxLDN9XD4iCiAKIHN5biBjYXNlIG1hdGNoCiBzeW4gbWF0Y2gJdmltSGlGb250bmFtZQljb250YWluZWQJIlthLXpBLVpcLSpdXCsiCiBzeW4gbWF0Y2gJdmltSGlHdWlGb250bmFtZQljb250YWluZWQJIidbYS16QS1aXC0qIF1cKyciCiBzeW4gbWF0Y2gJdmltSGlHdWlSZ2IJY29udGFpbmVkCSIjXHhcezZ9IgotaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCi0gc3luIG1hdGNoCXZpbUhpQ3Rlcm1FcnJvcgljb250YWluZWQJIlteMC05XVxpKiIKLWVuZGlmCiAKICIgSGlnaGxpZ2h0aW5nOiBoaSBncm91cCBrZXk9YXJnIC4uLiB7e3syCiBzeW4gY2x1c3Rlcgl2aW1IaUNsdXN0ZXIgY29udGFpbnM9dmltR3JvdXAsdmltSGlHcm91cCx2aW1IaVRlcm0sdmltSGlDVGVybSx2aW1IaVN0YXJ0U3RvcCx2aW1IaUN0ZXJtRmdCZyx2aW1IaUd1aSx2aW1IaUd1aUZvbnQsdmltSGlHdWlGZ0JnLHZpbUhpS2V5RXJyb3IsdmltTm90YXRpb24KIHN5biByZWdpb24JdmltSGlLZXlMaXN0CWNvbnRhaW5lZCBvbmVsaW5lIHN0YXJ0PSJcaVwrIiBza2lwPSJcXFxcXHxcXHwiIGVuZD0iJFx8fCIJY29udGFpbnM9QHZpbUhpQ2x1c3RlcgotaWYgIWV4aXN0cygiZzp2aW1zeW5fbm9lcnJvciIpCitpZiAhZXhpc3RzKCJnOnZpbXN5bl9ub2Vycm9yIikgJiYgIWV4aXN0cygiZzp2aW1zeW5fdmltaGlrZXllcnJvciIpCiAgc3luIG1hdGNoCXZpbUhpS2V5RXJyb3IJY29udGFpbmVkCSJcaVwrPSJoZT1lLTEKIGVuZGlmCiBzeW4gbWF0Y2gJdmltSGlUZXJtCWNvbnRhaW5lZAkiXGN0ZXJtPSJoZT1lLTEJCW5leHRncm91cD12aW1IaUF0dHJpYkxpc3QKQEAgLTc1Nyw3ICs3NjAsOSBAQAogaGkgZGVmIGxpbmsgdmltRlRPcHRpb24JdmltU3luVHlwZQogaGkgZGVmIGxpbmsgdmltRnVuY0tleQl2aW1Db21tYW5kCiBoaSBkZWYgbGluayB2aW1Hcm91cEFkZAl2aW1TeW5PcHRpb24KK2hpIGRlZiBsaW5rIHZpbUdyb3VwTmFtZQl2aW1Hcm91cAogaGkgZGVmIGxpbmsgdmltR3JvdXBSZW0JdmltU3luT3B0aW9uCitoaSBkZWYgbGluayB2aW1IaUNsZWFyCXZpbUhpZ2hsaWdodAogaGkgZGVmIGxpbmsgdmltSGlDdGVybUZnQmcJdmltSGlUZXJtCiBoaSBkZWYgbGluayB2aW1IaUNUZXJtCXZpbUhpVGVybQogaGkgZGVmIGxpbmsgdmltSGlnaGxpZ2h0CXZpbUNvbW1hbmQKQEAgLTg3Miw4ICs4NzcsMTQgQEAKIGhpIGRlZiBsaW5rIHZpbVVzZXJBdHRyYkNtcGx0RnVuYwlTcGVjaWFsCiBoaSBkZWYgbGluayB2aW1Vc2VyQ21kRXJyb3IJRXJyb3IKIGhpIGRlZiBsaW5rIHZpbVVzZXJGdW5jCU5vcm1hbAoraGkgZGVmIGxpbmsgdmltVmFyCUlkZW50aWZpZXIKIGhpIGRlZiBsaW5rIHZpbVdhcm4JV2FybmluZ01zZwogCiAiIEN1cnJlbnQgU3ludGF4IFZhcmlhYmxlOiB7e3syCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJ2aW0iCisKKyIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisiIENsZWFudXA6IHt7ezEKK2xldCAmY3BvID0gczprZWVwY3BvCit1bmxldCBzOmtlZXBjcG8KICIgdmltOnRzPTE4ICBmZG09bWFya2VyCg==