@wppconnect/server 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,6 +50,7 @@ async function sendMessage(req, res) {
50
50
  properties: {
51
51
  phone: { type: "string" },
52
52
  isGroup: { type: "boolean" },
53
+ isNewsletter: { type: "boolean" },
53
54
  message: { type: "string" },
54
55
  options: { type: "object" },
55
56
  }
@@ -59,6 +60,7 @@ async function sendMessage(req, res) {
59
60
  value: {
60
61
  phone: '5521999999999',
61
62
  isGroup: false,
63
+ isNewsletter: false,
62
64
  message: 'Hi from WPPConnect',
63
65
  }
64
66
  },
@@ -159,6 +161,7 @@ async function sendFile(req, res) {
159
161
  properties: {
160
162
  "phone": { type: "string" },
161
163
  "isGroup": { type: "boolean" },
164
+ "isNewsletter": { type: "boolean" },
162
165
  "filename": { type: "string" },
163
166
  "caption": { type: "string" },
164
167
  "base64": { type: "string" }
@@ -169,6 +172,7 @@ async function sendFile(req, res) {
169
172
  value: {
170
173
  "phone": "5521999999999",
171
174
  "isGroup": false,
175
+ "isNewsletter": false,
172
176
  "filename": "file name lol",
173
177
  "caption": "caption for my file",
174
178
  "base64": "<base64> string"
@@ -1026,4 +1030,4 @@ async function sendImageAsStickerGif(req, res) {
1026
1030
  returnError(req, res, error);
1027
1031
  }
1028
1032
  }
1029
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsInJldHVybkVycm9yIiwicmVxIiwicmVzIiwiZXJyb3IiLCJsb2dnZXIiLCJzdGF0dXMiLCJqc29uIiwibWVzc2FnZSIsInJldHVyblN1Y2VzcyIsImRhdGEiLCJyZXNwb25zZSIsIm1hcHBlciIsInNlbmRNZXNzYWdlIiwicGhvbmUiLCJib2R5Iiwib3B0aW9ucyIsInJlc3VsdHMiLCJjb250YXRvIiwicHVzaCIsImNsaWVudCIsInNlbmRUZXh0IiwibGVuZ3RoIiwiaW8iLCJlbWl0IiwiZWRpdE1lc3NhZ2UiLCJpZCIsIm5ld1RleHQiLCJlZGl0ZWQiLCJzZW5kRmlsZSIsInBhdGgiLCJiYXNlNjQiLCJmaWxlbmFtZSIsImNhcHRpb24iLCJxdW90ZWRNZXNzYWdlSWQiLCJmaWxlIiwic2VuZCIsInBhdGhGaWxlIiwibXNnIiwiY29udGFjdCIsInF1b3RlZE1zZyIsInVubGlua0FzeW5jIiwic2VuZFZvaWNlIiwic2VuZFB0dCIsInNlbmRWb2ljZTY0IiwiYmFzZTY0UHR0Iiwic2VuZFB0dEZyb21CYXNlNjQiLCJzZW5kTGlua1ByZXZpZXciLCJ1cmwiLCJzZW5kTG9jYXRpb24iLCJsYXQiLCJsbmciLCJ0aXRsZSIsImFkZHJlc3MiLCJuYW1lIiwic2VuZEJ1dHRvbnMiLCJzZW5kTGlzdE1lc3NhZ2UiLCJkZXNjcmlwdGlvbiIsInNlY3Rpb25zIiwiYnV0dG9uVGV4dCIsInNlbmRPcmRlck1lc3NhZ2UiLCJpdGVtcyIsInNlbmRQb2xsTWVzc2FnZSIsImNob2ljZXMiLCJzZW5kU3RhdHVzVGV4dCIsInJlcGx5TWVzc2FnZSIsIm1lc3NhZ2VJZCIsInJlcGx5IiwidG8iLCJzZW5kTWVudGlvbmVkIiwibWVudGlvbmVkIiwic2VuZEltYWdlQXNTdGlja2VyIiwic2VuZEltYWdlQXNTdGlja2VyR2lmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvbWVzc2FnZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgeyB1bmxpbmtBc3luYyB9IGZyb20gJy4uL3V0aWwvZnVuY3Rpb25zJztcblxuZnVuY3Rpb24gcmV0dXJuRXJyb3IocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBlcnJvcjogYW55KSB7XG4gIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgc3RhdHVzOiAnRXJyb3InLFxuICAgIG1lc3NhZ2U6ICdFcnJvIGFvIGVudmlhciBhIG1lbnNhZ2VtLicsXG4gICAgZXJyb3I6IGVycm9yLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0dXJuU3VjZXNzKHJlczogYW55LCBkYXRhOiBhbnkpIHtcbiAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IGRhdGEsIG1hcHBlcjogJ3JldHVybicgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBtZXNzYWdlOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgb3B0aW9uczogeyB0eXBlOiBcIm9iamVjdFwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJTZW5kIG1lc3NhZ2UgdG8gY29udGFjdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7IFxuICAgICAgICAgICAgICAgIHBob25lOiAnNTUyMTk5OTk5OTk5OScsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0hpIGZyb20gV1BQQ29ubmVjdCcsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNlbmQgbWVzc2FnZSB0byBncm91cFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6ICc4ODY1NjIzMjE1MjQ0NTc4JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiB0cnVlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdIaSBmcm9tIFdQUENvbm5lY3QnLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBtZXNzYWdlIH0gPSByZXEuYm9keTtcblxuICBjb25zdCBvcHRpb25zID0gcmVxLmJvZHkub3B0aW9ucyB8fCB7fTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZFRleHQoY29udGF0bywgbWVzc2FnZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgcmVxLmlvLmVtaXQoJ21lbnNhZ2VtLWVudmlhZGEnLCByZXN1bHRzKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0TWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgbmV3VGV4dDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRWRpdCBhIG1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICB2YWx1ZTogeyBcbiAgICAgICAgICAgICAgICBpZDogJ3RydWVfNTUyMTk5OTk5OTk5OUBjLnVzXzNFQjA0RkNBQTE1MjdFQjZEOURFQzgnLFxuICAgICAgICAgICAgICAgIG5ld1RleHQ6ICdOZXcgdGV4dCBmb3IgbWVzc2FnZSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBpZCwgbmV3VGV4dCB9ID0gcmVxLmJvZHk7XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHJlcS5ib2R5Lm9wdGlvbnMgfHwge307XG4gIHRyeSB7XG4gICAgY29uc3QgZWRpdGVkID0gYXdhaXQgKHJlcS5jbGllbnQgYXMgYW55KS5lZGl0TWVzc2FnZShpZCwgbmV3VGV4dCwgb3B0aW9ucyk7XG5cbiAgICByZXEuaW8uZW1pdCgnZWRpdGVkLW1lc3NhZ2UnLCBlZGl0ZWQpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIGVkaXRlZCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEZpbGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiZmlsZW5hbWVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiY2FwdGlvblwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJiYXNlNjRcIjogeyB0eXBlOiBcInN0cmluZ1wiIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZW5hbWVcIjogXCJmaWxlIG5hbWUgbG9sXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNhcHRpb25cIjogXCJjYXB0aW9uIGZvciBteSBmaWxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImJhc2U2NFwiOiBcIjxiYXNlNjQ+IHN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAqL1xuICBjb25zdCB7XG4gICAgcGhvbmUsXG4gICAgcGF0aCxcbiAgICBiYXNlNjQsXG4gICAgZmlsZW5hbWUgPSAnZmlsZScsXG4gICAgbWVzc2FnZSxcbiAgICBjYXB0aW9uLFxuICAgIHF1b3RlZE1lc3NhZ2VJZCxcbiAgfSA9IHJlcS5ib2R5O1xuXG4gIGNvbnN0IG9wdGlvbnMgPSByZXEuYm9keS5vcHRpb25zIHx8IHt9O1xuXG4gIGlmICghcGF0aCAmJiAhcmVxLmZpbGUgJiYgIWJhc2U2NClcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLnNlbmQoe1xuICAgICAgbWVzc2FnZTogJ1NlbmRpbmcgdGhlIGZpbGUgaXMgbWFuZGF0b3J5JyxcbiAgICB9KTtcblxuICBjb25zdCBwYXRoRmlsZSA9IHBhdGggfHwgYmFzZTY0IHx8IHJlcS5maWxlPy5wYXRoO1xuICBjb25zdCBtc2cgPSBtZXNzYWdlIHx8IGNhcHRpb247XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhY3Qgb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kRmlsZShjb250YWN0LCBwYXRoRmlsZSwge1xuICAgICAgICAgIGZpbGVuYW1lOiBmaWxlbmFtZSxcbiAgICAgICAgICBjYXB0aW9uOiBtc2csXG4gICAgICAgICAgcXVvdGVkTXNnOiBxdW90ZWRNZXNzYWdlSWQsXG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIG1lc3NhZ2UnKTtcbiAgICBpZiAocmVxLmZpbGUpIGF3YWl0IHVubGlua0FzeW5jKHBhdGhGaWxlKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kVm9pY2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJxdW90ZWRNZXNzYWdlSWRcIjogeyB0eXBlOiBcInN0cmluZ1wiIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiPHBhdGhfZmlsZT5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInF1b3RlZE1lc3NhZ2VJZFwiOiBcIm1lc3NhZ2UgSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgKi9cbiAgY29uc3Qge1xuICAgIHBob25lLFxuICAgIHBhdGgsXG4gICAgZmlsZW5hbWUgPSAnVm9pY2UgQXVkaW8nLFxuICAgIG1lc3NhZ2UsXG4gICAgcXVvdGVkTWVzc2FnZUlkLFxuICB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kUHR0KFxuICAgICAgICAgIGNvbnRhdG8sXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIHF1b3RlZE1lc3NhZ2VJZFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFZvaWNlNjQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJiYXNlNjRQdHRcIjogeyB0eXBlOiBcInN0cmluZ1wiIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYXNlNjRQdHRcIjogXCI8YmFzZTY0X3N0cmluZz5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgYmFzZTY0UHR0LCBxdW90ZWRNZXNzYWdlSWQgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZFB0dEZyb21CYXNlNjQoXG4gICAgICAgICAgY29udGF0byxcbiAgICAgICAgICBiYXNlNjRQdHQsXG4gICAgICAgICAgJ1ZvaWNlIEF1ZGlvJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBxdW90ZWRNZXNzYWdlSWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZScpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRMaW5rUHJldmlldyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwaG9uZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInVybFwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FwdGlvblwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBob25lXCI6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly93d3cubGluay5jb21cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcHRpb25cIjogXCJUZXh0IGZvciBkZXNjcmliZSBsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIHVybCwgY2FwdGlvbiB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kTGlua1ByZXZpZXcoYCR7Y29udGF0b31gLCB1cmwsIGNhcHRpb24pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZExvY2F0aW9uKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInBob25lXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibGF0XCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsbmdcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRpdGxlXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRyZXNzXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibGF0XCI6IFwiLTg5ODk4MzIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsbmdcIjogXCItNTQ1NDU0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiBcIlJpbyBkZSBKYW5laXJvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRyZXNzXCI6IFwiQXYuIE4uIFMuIGRlIENvcGFjYWJhbmEsIDI1LCBDb3BhY2FiYW5hXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIGxhdCwgbG5nLCB0aXRsZSwgYWRkcmVzcyB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kTG9jYXRpb24oY29udGF0bywge1xuICAgICAgICAgIGxhdDogbGF0LFxuICAgICAgICAgIGxuZzogbG5nLFxuICAgICAgICAgIGFkZHJlc3M6IGFkZHJlc3MsXG4gICAgICAgICAgbmFtZTogdGl0bGUsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEJ1dHRvbnMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnLFxuICAgICB9XG4gICAgICNzd2FnZ2VyLmRlcHJlY2F0ZWQ9dHJ1ZVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgbWVzc2FnZSwgb3B0aW9ucyB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZFRleHQoY29udGFjdCwgbWVzc2FnZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXR1cm5FcnJvcihyZXEsIHJlcywgJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZSB3aXRoIGJ1dHRvbnMnKTtcblxuICAgIHJldHVyblN1Y2VzcyhyZXMsIHBob25lKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTGlzdE1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnLFxuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHNlY3Rpb25zOiB7IHR5cGU6IFwiYXJyYXlcIiB9LFxuICAgICAgICAgICAgICBidXR0b25UZXh0OiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIlNlbmQgbGlzdCBtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHsgXG4gICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2MgZm9yIGxpc3QnLFxuICAgICAgICAgICAgICAgIGJ1dHRvblRleHQ6ICdTZWxlY3QgYSBvcHRpb24nLFxuICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnU2VjdGlvbiAxJyxcbiAgICAgICAgICAgICAgICAgICAgcm93czogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0lkOiAnbXlfY3VzdG9tX2lkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnVGVzdCAxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gMScsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJZDogJzInLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdUZXN0IDInLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiAyJyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7XG4gICAgcGhvbmUsXG4gICAgZGVzY3JpcHRpb24gPSAnJyxcbiAgICBzZWN0aW9ucyxcbiAgICBidXR0b25UZXh0ID0gJ1NFTEVDSU9ORSBVTUEgT1DDh8ODTycsXG4gIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZExpc3RNZXNzYWdlKGNvbnRhY3QsIHtcbiAgICAgICAgICBidXR0b25UZXh0OiBidXR0b25UZXh0LFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbixcbiAgICAgICAgICBzZWN0aW9uczogc2VjdGlvbnMsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXR1cm5FcnJvcihyZXEsIHJlcywgJ0Vycm9yIHNlbmRpbmcgbGlzdCBidXR0b25zJyk7XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kT3JkZXJNZXNzYWdlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwib2JqZWN0XCIgfSxcbiAgICAgICAgICAgICAgb3B0aW9uczogeyB0eXBlOiBcIm9iamVjdFwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJTZW5kIHdpdGggY3VzdG9tIGl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHsgXG4gICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0l0ZW0gdGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIHByaWNlOiAxMjAwMDAsXG4gICAgICAgICAgICAgICAgICAgIHFudDogMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnSXRlbSB0ZXN0IDInLFxuICAgICAgICAgICAgICAgICAgICBwcmljZTogMTQ1MDAwLFxuICAgICAgICAgICAgICAgICAgICBxbnQ6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNlbmQgd2l0aCBwcm9kdWN0IGl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHsgXG4gICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAncHJvZHVjdCcsXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnMzc4Nzg3NzQ0NTcnLFxuICAgICAgICAgICAgICAgICAgICBwcmljZTogMTQ4MDAwLFxuICAgICAgICAgICAgICAgICAgICBxbnQ6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNlbmQgd2l0aCBjdXN0b20gaXRlbXMgYW5kIG9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICB2YWx1ZTogeyBcbiAgICAgICAgICAgICAgICBwaG9uZTogJzU1MjE5OTk5OTk5OTknLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnSXRlbSB0ZXN0JyxcbiAgICAgICAgICAgICAgICAgICAgcHJpY2U6IDEyMDAwMCxcbiAgICAgICAgICAgICAgICAgICAgcW50OiAyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHRheDogMTAwMDAsXG4gICAgICAgICAgICAgICAgICBzaGlwcGluZzogNDAwMCxcbiAgICAgICAgICAgICAgICAgIGRpc2NvdW50OiAxMDAwMCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIGl0ZW1zIH0gPSByZXEuYm9keTtcblxuICBjb25zdCBvcHRpb25zID0gcmVxLmJvZHkub3B0aW9ucyB8fCB7fTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZE9yZGVyTWVzc2FnZShjb250YXRvLCBpdGVtcywgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBvcmRlciBtZXNzYWdlJyk7XG4gICAgcmVxLmlvLmVtaXQoJ21lbnNhZ2VtLWVudmlhZGEnLCByZXN1bHRzKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kUG9sbE1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzOiB7IHR5cGU6IFwiYXJyYXlcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyB0eXBlOiBcIm9iamVjdFwiIH0sXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZTogJzU1MjE5OTk5OTk5OTknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1BvbGwgbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM6IFsnT3B0aW9uIDEnLCAnT3B0aW9uIDInLCAnT3B0aW9uIDMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGFibGVDb3VudDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIG5hbWUsIGNob2ljZXMsIG9wdGlvbnMgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbnRhY3Qgb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kUG9sbE1lc3NhZ2UoY29udGFjdCwgbmFtZSwgY2hvaWNlcywgb3B0aW9ucylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJldHVybkVycm9yKHJlcSwgcmVzLCAnRXJyb3Igc2VuZGluZyBwb2xsIG1lc3NhZ2UnKTtcblxuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTdGF0dXNUZXh0KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBjb250ZW50OiB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXF1aXJlZDogWydwaG9uZScsICdpc0dyb3VwJywgJ21lc3NhZ2UnXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIERlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogJzU1MjE5OTk5OTk5OTknLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdSZXBseSB0byBtZXNzYWdlJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICc8aWRfbWVzc2FnZT4nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAqL1xuICBjb25zdCB7IG1lc3NhZ2UgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZFRleHQoJ3N0YXR1c0Bicm9hZGNhc3QnLCBtZXNzYWdlKSk7XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZScpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcGx5TWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBcInBob25lXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBcImlzR3JvdXBcIjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIFwibWVzc2FnZUlkXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBcInBob25lXCI6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjogXCJSZXBseSB0byBtZXNzYWdlXCIsXG4gICAgICAgICAgICAgICAgXCJtZXNzYWdlSWRcIjogXCI8aWRfbWVzc2FnZT5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgbWVzc2FnZSwgbWVzc2FnZUlkIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQucmVwbHkoY29udGF0bywgbWVzc2FnZSwgbWVzc2FnZUlkKSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIG1lc3NhZ2UnKTtcbiAgICByZXEuaW8uZW1pdCgnbWVuc2FnZW0tZW52aWFkYScsIHsgbWVzc2FnZTogbWVzc2FnZSwgdG86IHBob25lIH0pO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRNZW50aW9uZWQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gIHJlcXVpcmVkOiB0cnVlLFxuICBcIkBjb250ZW50XCI6IHtcbiAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBcInBob25lXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIFwiaXNHcm91cFwiOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIFwibWVudGlvbmVkXCI6IHsgdHlwZTogXCJhcnJheVwiLCBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0gfVxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogW1wicGhvbmVcIiwgXCJtZXNzYWdlXCIsIFwibWVudGlvbmVkXCJdXG4gICAgICB9LFxuICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgIFwiaXNHcm91cFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJtZXNzYWdlXCI6IFwiWW91ciB0ZXh0IG1lc3NhZ2VcIixcbiAgICAgICAgICAgIFwibWVudGlvbmVkXCI6IFtcIkA1NTY1OTMwNzcxNzFAYy51c1wiXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgbWVzc2FnZSwgbWVudGlvbmVkIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zZW5kTWVudGlvbmVkKFxuICAgICAgICBgJHtjb250YXRvfWAsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIG1lbnRpb25lZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJldHVybiByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBtZXNzYWdlIG1lbnRpb25lZCcsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kSW1hZ2VBc1N0aWNrZXIocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgXCJwaG9uZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgXCJwYXRoXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFtcInBob25lXCIsIFwicGF0aFwiXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBcInBhdGhcIjogXCI8cGF0aF9maWxlPlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBwYXRoIH0gPSByZXEuYm9keTtcblxuICBpZiAoIXBhdGggJiYgIXJlcS5maWxlKVxuICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuc2VuZCh7XG4gICAgICBtZXNzYWdlOiAnU2VuZGluZyB0aGUgZmlsZSBpcyBtYW5kYXRvcnknLFxuICAgIH0pO1xuXG4gIGNvbnN0IHBhdGhGaWxlID0gcGF0aCB8fCByZXEuZmlsZT8ucGF0aDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZEltYWdlQXNTdGlja2VyKGNvbnRhdG8sIHBhdGhGaWxlKSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIG1lc3NhZ2UnKTtcbiAgICBpZiAocmVxLmZpbGUpIGF3YWl0IHVubGlua0FzeW5jKHBhdGhGaWxlKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEltYWdlQXNTdGlja2VyR2lmKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBjb250ZW50OiB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAgICAgICAgIHBhdGg6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXF1aXJlZDogWydwaG9uZScsICdwYXRoJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgJ0RlZmF1bHQnOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhdGg6ICc8cGF0aF9maWxlPicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIHBhdGggfSA9IHJlcS5ib2R5O1xuXG4gIGlmICghcGF0aCAmJiAhcmVxLmZpbGUpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdTZW5kaW5nIHRoZSBmaWxlIGlzIG1hbmRhdG9yeScsXG4gICAgfSk7XG5cbiAgY29uc3QgcGF0aEZpbGUgPSBwYXRoIHx8IHJlcS5maWxlPy5wYXRoO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goYXdhaXQgcmVxLmNsaWVudC5zZW5kSW1hZ2VBc1N0aWNrZXJHaWYoY29udGF0bywgcGF0aEZpbGUpKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZScpO1xuICAgIGlmIChyZXEuZmlsZSkgYXdhaXQgdW5saW5rQXN5bmMocGF0aEZpbGUpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLElBQUFBLFVBQUEsR0FBQUMsT0FBQSxzQkFBZ0QsQ0FsQmhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
1033
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsInJldHVybkVycm9yIiwicmVxIiwicmVzIiwiZXJyb3IiLCJsb2dnZXIiLCJzdGF0dXMiLCJqc29uIiwibWVzc2FnZSIsInJldHVyblN1Y2VzcyIsImRhdGEiLCJyZXNwb25zZSIsIm1hcHBlciIsInNlbmRNZXNzYWdlIiwicGhvbmUiLCJib2R5Iiwib3B0aW9ucyIsInJlc3VsdHMiLCJjb250YXRvIiwicHVzaCIsImNsaWVudCIsInNlbmRUZXh0IiwibGVuZ3RoIiwiaW8iLCJlbWl0IiwiZWRpdE1lc3NhZ2UiLCJpZCIsIm5ld1RleHQiLCJlZGl0ZWQiLCJzZW5kRmlsZSIsInBhdGgiLCJiYXNlNjQiLCJmaWxlbmFtZSIsImNhcHRpb24iLCJxdW90ZWRNZXNzYWdlSWQiLCJmaWxlIiwic2VuZCIsInBhdGhGaWxlIiwibXNnIiwiY29udGFjdCIsInF1b3RlZE1zZyIsInVubGlua0FzeW5jIiwic2VuZFZvaWNlIiwic2VuZFB0dCIsInNlbmRWb2ljZTY0IiwiYmFzZTY0UHR0Iiwic2VuZFB0dEZyb21CYXNlNjQiLCJzZW5kTGlua1ByZXZpZXciLCJ1cmwiLCJzZW5kTG9jYXRpb24iLCJsYXQiLCJsbmciLCJ0aXRsZSIsImFkZHJlc3MiLCJuYW1lIiwic2VuZEJ1dHRvbnMiLCJzZW5kTGlzdE1lc3NhZ2UiLCJkZXNjcmlwdGlvbiIsInNlY3Rpb25zIiwiYnV0dG9uVGV4dCIsInNlbmRPcmRlck1lc3NhZ2UiLCJpdGVtcyIsInNlbmRQb2xsTWVzc2FnZSIsImNob2ljZXMiLCJzZW5kU3RhdHVzVGV4dCIsInJlcGx5TWVzc2FnZSIsIm1lc3NhZ2VJZCIsInJlcGx5IiwidG8iLCJzZW5kTWVudGlvbmVkIiwibWVudGlvbmVkIiwic2VuZEltYWdlQXNTdGlja2VyIiwic2VuZEltYWdlQXNTdGlja2VyR2lmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvbWVzc2FnZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgeyB1bmxpbmtBc3luYyB9IGZyb20gJy4uL3V0aWwvZnVuY3Rpb25zJztcblxuZnVuY3Rpb24gcmV0dXJuRXJyb3IocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBlcnJvcjogYW55KSB7XG4gIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgc3RhdHVzOiAnRXJyb3InLFxuICAgIG1lc3NhZ2U6ICdFcnJvIGFvIGVudmlhciBhIG1lbnNhZ2VtLicsXG4gICAgZXJyb3I6IGVycm9yLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0dXJuU3VjZXNzKHJlczogYW55LCBkYXRhOiBhbnkpIHtcbiAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IGRhdGEsIG1hcHBlcjogJ3JldHVybicgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBpc05ld3NsZXR0ZXI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiU2VuZCBtZXNzYWdlIHRvIGNvbnRhY3RcIjoge1xuICAgICAgICAgICAgICB2YWx1ZTogeyBcbiAgICAgICAgICAgICAgICBwaG9uZTogJzU1MjE5OTk5OTk5OTknLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzTmV3c2xldHRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0hpIGZyb20gV1BQQ29ubmVjdCcsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNlbmQgbWVzc2FnZSB0byBncm91cFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6ICc4ODY1NjIzMjE1MjQ0NTc4JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiB0cnVlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdIaSBmcm9tIFdQUENvbm5lY3QnLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBtZXNzYWdlIH0gPSByZXEuYm9keTtcblxuICBjb25zdCBvcHRpb25zID0gcmVxLmJvZHkub3B0aW9ucyB8fCB7fTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZFRleHQoY29udGF0bywgbWVzc2FnZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgcmVxLmlvLmVtaXQoJ21lbnNhZ2VtLWVudmlhZGEnLCByZXN1bHRzKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0TWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgbmV3VGV4dDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRWRpdCBhIG1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICB2YWx1ZTogeyBcbiAgICAgICAgICAgICAgICBpZDogJ3RydWVfNTUyMTk5OTk5OTk5OUBjLnVzXzNFQjA0RkNBQTE1MjdFQjZEOURFQzgnLFxuICAgICAgICAgICAgICAgIG5ld1RleHQ6ICdOZXcgdGV4dCBmb3IgbWVzc2FnZSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBpZCwgbmV3VGV4dCB9ID0gcmVxLmJvZHk7XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHJlcS5ib2R5Lm9wdGlvbnMgfHwge307XG4gIHRyeSB7XG4gICAgY29uc3QgZWRpdGVkID0gYXdhaXQgKHJlcS5jbGllbnQgYXMgYW55KS5lZGl0TWVzc2FnZShpZCwgbmV3VGV4dCwgb3B0aW9ucyk7XG5cbiAgICByZXEuaW8uZW1pdCgnZWRpdGVkLW1lc3NhZ2UnLCBlZGl0ZWQpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIGVkaXRlZCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEZpbGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiaXNOZXdzbGV0dGVyXCI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJmaWxlbmFtZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJjYXB0aW9uXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICBcImJhc2U2NFwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInBob25lXCI6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpc05ld3NsZXR0ZXJcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVuYW1lXCI6IFwiZmlsZSBuYW1lIGxvbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXB0aW9uXCI6IFwiY2FwdGlvbiBmb3IgbXkgZmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJiYXNlNjRcIjogXCI8YmFzZTY0PiBzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgKi9cbiAgY29uc3Qge1xuICAgIHBob25lLFxuICAgIHBhdGgsXG4gICAgYmFzZTY0LFxuICAgIGZpbGVuYW1lID0gJ2ZpbGUnLFxuICAgIG1lc3NhZ2UsXG4gICAgY2FwdGlvbixcbiAgICBxdW90ZWRNZXNzYWdlSWQsXG4gIH0gPSByZXEuYm9keTtcblxuICBjb25zdCBvcHRpb25zID0gcmVxLmJvZHkub3B0aW9ucyB8fCB7fTtcblxuICBpZiAoIXBhdGggJiYgIXJlcS5maWxlICYmICFiYXNlNjQpXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5zZW5kKHtcbiAgICAgIG1lc3NhZ2U6ICdTZW5kaW5nIHRoZSBmaWxlIGlzIG1hbmRhdG9yeScsXG4gICAgfSk7XG5cbiAgY29uc3QgcGF0aEZpbGUgPSBwYXRoIHx8IGJhc2U2NCB8fCByZXEuZmlsZT8ucGF0aDtcbiAgY29uc3QgbXNnID0gbWVzc2FnZSB8fCBjYXB0aW9uO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZEZpbGUoY29udGFjdCwgcGF0aEZpbGUsIHtcbiAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgY2FwdGlvbjogbXNnLFxuICAgICAgICAgIHF1b3RlZE1zZzogcXVvdGVkTWVzc2FnZUlkLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgaWYgKHJlcS5maWxlKSBhd2FpdCB1bmxpbmtBc3luYyhwYXRoRmlsZSk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFZvaWNlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInBob25lXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aFwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicXVvdGVkTWVzc2FnZUlkXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aFwiOiBcIjxwYXRoX2ZpbGU+XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJxdW90ZWRNZXNzYWdlSWRcIjogXCJtZXNzYWdlIElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICovXG4gIGNvbnN0IHtcbiAgICBwaG9uZSxcbiAgICBwYXRoLFxuICAgIGZpbGVuYW1lID0gJ1ZvaWNlIEF1ZGlvJyxcbiAgICBtZXNzYWdlLFxuICAgIHF1b3RlZE1lc3NhZ2VJZCxcbiAgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZFB0dChcbiAgICAgICAgICBjb250YXRvLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICBxdW90ZWRNZXNzYWdlSWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZScpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRWb2ljZTY0KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInBob25lXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFzZTY0UHR0XCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFzZTY0UHR0XCI6IFwiPGJhc2U2NF9zdHJpbmc+XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIGJhc2U2NFB0dCwgcXVvdGVkTWVzc2FnZUlkIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKFxuICAgICAgICBhd2FpdCByZXEuY2xpZW50LnNlbmRQdHRGcm9tQmFzZTY0KFxuICAgICAgICAgIGNvbnRhdG8sXG4gICAgICAgICAgYmFzZTY0UHR0LFxuICAgICAgICAgICdWb2ljZSBBdWRpbycsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgcXVvdGVkTWVzc2FnZUlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIG1lc3NhZ2UnKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTGlua1ByZXZpZXcocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGhvbmVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ1cmxcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNhcHRpb25cIjogeyB0eXBlOiBcInN0cmluZ1wiIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vd3d3LmxpbmsuY29tXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXB0aW9uXCI6IFwiVGV4dCBmb3IgZGVzY3JpYmUgbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCB1cmwsIGNhcHRpb24gfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZExpbmtQcmV2aWV3KGAke2NvbnRhdG99YCwgdXJsLCBjYXB0aW9uKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZScpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRMb2NhdGlvbihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwaG9uZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxhdFwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG5nXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiOiB7IHR5cGU6IFwic3RyaW5nXCIgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBob25lXCI6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXNHcm91cFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxhdFwiOiBcIi04OTg5ODMyMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG5nXCI6IFwiLTU0NTQ1NFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGl0bGVcIjogXCJSaW8gZGUgSmFuZWlyb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkcmVzc1wiOiBcIkF2LiBOLiBTLiBkZSBDb3BhY2FiYW5hLCAyNSwgQ29wYWNhYmFuYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBsYXQsIGxuZywgdGl0bGUsIGFkZHJlc3MgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZExvY2F0aW9uKGNvbnRhdG8sIHtcbiAgICAgICAgICBsYXQ6IGxhdCxcbiAgICAgICAgICBsbmc6IGxuZyxcbiAgICAgICAgICBhZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgICAgIG5hbWU6IHRpdGxlLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZScpO1xuICAgIHJldHVyblN1Y2VzcyhyZXMsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRCdXR0b25zKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJyxcbiAgICAgfVxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIG1lc3NhZ2UsIG9wdGlvbnMgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbnRhY3Qgb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhd2FpdCByZXEuY2xpZW50LnNlbmRUZXh0KGNvbnRhY3QsIG1lc3NhZ2UsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmV0dXJuRXJyb3IocmVxLCByZXMsICdFcnJvciBzZW5kaW5nIG1lc3NhZ2Ugd2l0aCBidXR0b25zJyk7XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCBwaG9uZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZExpc3RNZXNzYWdlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJyxcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBzZWN0aW9uczogeyB0eXBlOiBcImFycmF5XCIgfSxcbiAgICAgICAgICAgICAgYnV0dG9uVGV4dDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJTZW5kIGxpc3QgbWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7IFxuICAgICAgICAgICAgICAgIHBob25lOiAnNTUyMTk5OTk5OTk5OScsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjIGZvciBsaXN0JyxcbiAgICAgICAgICAgICAgICBidXR0b25UZXh0OiAnU2VsZWN0IGEgb3B0aW9uJyxcbiAgICAgICAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1NlY3Rpb24gMScsXG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJZDogJ215X2N1c3RvbV9pZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1Rlc3QgMScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIDEnLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93SWQ6ICcyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnVGVzdCAyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gMicsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3Qge1xuICAgIHBob25lLFxuICAgIGRlc2NyaXB0aW9uID0gJycsXG4gICAgc2VjdGlvbnMsXG4gICAgYnV0dG9uVGV4dCA9ICdTRUxFQ0lPTkUgVU1BIE9Qw4fDg08nLFxuICB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKFxuICAgICAgICBhd2FpdCByZXEuY2xpZW50LnNlbmRMaXN0TWVzc2FnZShjb250YWN0LCB7XG4gICAgICAgICAgYnV0dG9uVGV4dDogYnV0dG9uVGV4dCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sXG4gICAgICAgICAgc2VjdGlvbnM6IHNlY3Rpb25zLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmV0dXJuRXJyb3IocmVxLCByZXMsICdFcnJvciBzZW5kaW5nIGxpc3QgYnV0dG9ucycpO1xuXG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZE9yZGVyTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcIm9iamVjdFwiIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiU2VuZCB3aXRoIGN1c3RvbSBpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7IFxuICAgICAgICAgICAgICAgIHBob25lOiAnNTUyMTk5OTk5OTk5OScsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdJdGVtIHRlc3QnLFxuICAgICAgICAgICAgICAgICAgICBwcmljZTogMTIwMDAwLFxuICAgICAgICAgICAgICAgICAgICBxbnQ6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0l0ZW0gdGVzdCAyJyxcbiAgICAgICAgICAgICAgICAgICAgcHJpY2U6IDE0NTAwMCxcbiAgICAgICAgICAgICAgICAgICAgcW50OiAyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTZW5kIHdpdGggcHJvZHVjdCBpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7IFxuICAgICAgICAgICAgICAgIHBob25lOiAnNTUyMTk5OTk5OTk5OScsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgICAgICAgICBpZDogJzM3ODc4Nzc0NDU3JyxcbiAgICAgICAgICAgICAgICAgICAgcHJpY2U6IDE0ODAwMCxcbiAgICAgICAgICAgICAgICAgICAgcW50OiAyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTZW5kIHdpdGggY3VzdG9tIGl0ZW1zIGFuZCBvcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHsgXG4gICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0l0ZW0gdGVzdCcsXG4gICAgICAgICAgICAgICAgICAgIHByaWNlOiAxMjAwMDAsXG4gICAgICAgICAgICAgICAgICAgIHFudDogMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICB0YXg6IDEwMDAwLFxuICAgICAgICAgICAgICAgICAgc2hpcHBpbmc6IDQwMDAsXG4gICAgICAgICAgICAgICAgICBkaXNjb3VudDogMTAwMDAsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBpdGVtcyB9ID0gcmVxLmJvZHk7XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHJlcS5ib2R5Lm9wdGlvbnMgfHwge307XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhd2FpdCByZXEuY2xpZW50LnNlbmRPcmRlck1lc3NhZ2UoY29udGF0bywgaXRlbXMsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDApLmpzb24oJ0Vycm9yIHNlbmRpbmcgb3JkZXIgbWVzc2FnZScpO1xuICAgIHJlcS5pby5lbWl0KCdtZW5zYWdlbS1lbnZpYWRhJywgcmVzdWx0cyk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFBvbGxNZXNzYWdlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlczogeyB0eXBlOiBcImFycmF5XCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdQb2xsIG5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzOiBbJ09wdGlvbiAxJywgJ09wdGlvbiAyJywgJ09wdGlvbiAzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlQ291bnQ6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBuYW1lLCBjaG9pY2VzLCBvcHRpb25zIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIGF3YWl0IHJlcS5jbGllbnQuc2VuZFBvbGxNZXNzYWdlKGNvbnRhY3QsIG5hbWUsIGNob2ljZXMsIG9wdGlvbnMpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXR1cm5FcnJvcihyZXEsIHJlcywgJ0Vycm9yIHNlbmRpbmcgcG9sbCBtZXNzYWdlJyk7XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kU3RhdHVzVGV4dChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgY29udGVudDoge1xuICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgICAgICAgICBtZXNzYWdlOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogeyB0eXBlOiAnc3RyaW5nJyB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFsncGhvbmUnLCAnaXNHcm91cCcsICdtZXNzYWdlJ11cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBEZWZhdWx0OiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUmVwbHkgdG8gbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnPGlkX21lc3NhZ2U+J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgKi9cbiAgY29uc3QgeyBtZXNzYWdlIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIHJlc3VsdHMucHVzaChhd2FpdCByZXEuY2xpZW50LnNlbmRUZXh0KCdzdGF0dXNAYnJvYWRjYXN0JywgbWVzc2FnZSkpO1xuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIG1lc3NhZ2UnKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBseU1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgXCJwaG9uZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBcIm1lc3NhZ2VJZFwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgXCJwaG9uZVwiOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBcImlzR3JvdXBcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IFwiUmVwbHkgdG8gbWVzc2FnZVwiLFxuICAgICAgICAgICAgICAgIFwibWVzc2FnZUlkXCI6IFwiPGlkX21lc3NhZ2U+XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIG1lc3NhZ2UsIG1lc3NhZ2VJZCB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhd2FpdCByZXEuY2xpZW50LnJlcGx5KGNvbnRhdG8sIG1lc3NhZ2UsIG1lc3NhZ2VJZCkpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgcmVxLmlvLmVtaXQoJ21lbnNhZ2VtLWVudmlhZGEnLCB7IG1lc3NhZ2U6IG1lc3NhZ2UsIHRvOiBwaG9uZSB9KTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTWVudGlvbmVkKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICByZXF1aXJlZDogdHJ1ZSxcbiAgXCJAY29udGVudFwiOiB7XG4gICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgIHNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgXCJwaG9uZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBcImlzR3JvdXBcIjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgIFwibWVzc2FnZVwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBcIm1lbnRpb25lZFwiOiB7IHR5cGU6IFwiYXJyYXlcIiwgaXRlbXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9IH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFtcInBob25lXCIsIFwibWVzc2FnZVwiLCBcIm1lbnRpb25lZFwiXVxuICAgICAgfSxcbiAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIFwicGhvbmVcIjogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICBcImlzR3JvdXBcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibWVzc2FnZVwiOiBcIllvdXIgdGV4dCBtZXNzYWdlXCIsXG4gICAgICAgICAgICBcIm1lbnRpb25lZFwiOiBbXCJANTU2NTkzMDc3MTcxQGMudXNcIl1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIG1lc3NhZ2UsIG1lbnRpb25lZCB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2VuZE1lbnRpb25lZChcbiAgICAgICAgYCR7Y29udGF0b31gLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBtZW50aW9uZWRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIHNlbmQgbWVzc2FnZSBtZW50aW9uZWQnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEltYWdlQXNTdGlja2VyKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1lc3NhZ2VzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIFwicGhvbmVcIjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIFwiaXNHcm91cFwiOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIFwicGF0aFwiOiB7IHR5cGU6IFwic3RyaW5nXCIgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbXCJwaG9uZVwiLCBcInBhdGhcIl1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIFwicGhvbmVcIjogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgXCJpc0dyb3VwXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiPHBhdGhfZmlsZT5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgcGF0aCB9ID0gcmVxLmJvZHk7XG5cbiAgaWYgKCFwYXRoICYmICFyZXEuZmlsZSlcbiAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLnNlbmQoe1xuICAgICAgbWVzc2FnZTogJ1NlbmRpbmcgdGhlIGZpbGUgaXMgbWFuZGF0b3J5JyxcbiAgICB9KTtcblxuICBjb25zdCBwYXRoRmlsZSA9IHBhdGggfHwgcmVxLmZpbGU/LnBhdGg7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhd2FpdCByZXEuY2xpZW50LnNlbmRJbWFnZUFzU3RpY2tlcihjb250YXRvLCBwYXRoRmlsZSkpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbignRXJyb3Igc2VuZGluZyBtZXNzYWdlJyk7XG4gICAgaWYgKHJlcS5maWxlKSBhd2FpdCB1bmxpbmtBc3luYyhwYXRoRmlsZSk7XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIGVycm9yKTtcbiAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRJbWFnZUFzU3RpY2tlckdpZihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgY29udGVudDoge1xuICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgICAgICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFsncGhvbmUnLCAncGF0aCddLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgICdEZWZhdWx0Jzoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiAnNTUyMTk5OTk5OTk5OScsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXRoOiAnPHBhdGhfZmlsZT4nLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBwYXRoIH0gPSByZXEuYm9keTtcblxuICBpZiAoIXBhdGggJiYgIXJlcS5maWxlKVxuICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuc2VuZCh7XG4gICAgICBtZXNzYWdlOiAnU2VuZGluZyB0aGUgZmlsZSBpcyBtYW5kYXRvcnknLFxuICAgIH0pO1xuXG4gIGNvbnN0IHBhdGhGaWxlID0gcGF0aCB8fCByZXEuZmlsZT8ucGF0aDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0cy5wdXNoKGF3YWl0IHJlcS5jbGllbnQuc2VuZEltYWdlQXNTdGlja2VyR2lmKGNvbnRhdG8sIHBhdGhGaWxlKSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAwKS5qc29uKCdFcnJvciBzZW5kaW5nIG1lc3NhZ2UnKTtcbiAgICBpZiAocmVxLmZpbGUpIGF3YWl0IHVubGlua0FzeW5jKHBhdGhGaWxlKTtcbiAgICByZXR1cm5TdWNlc3MocmVzLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgZXJyb3IpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUEsc0JBQWdELENBbEJoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FNQSxTQUFTQyxXQUFXQSxDQUFDQyxHQUFZLEVBQUVDLEdBQWEsRUFBRUMsS0FBVSxFQUFFLENBQzVERixHQUFHLENBQUNHLE1BQU0sQ0FBQ0QsS0FBSyxDQUFDQSxLQUFLLENBQUMsQ0FDdkJELEdBQUcsQ0FBQ0csTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFDbkJELE1BQU0sRUFBRSxPQUFPLEVBQ2ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFDckNKLEtBQUssRUFBRUEsS0FBSyxDQUNkLENBQUMsQ0FBQyxDQUNKLENBRUEsZUFBZUssWUFBWUEsQ0FBQ04sR0FBUSxFQUFFTyxJQUFTLEVBQUUsQ0FDL0NQLEdBQUcsQ0FBQ0csTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRUQsTUFBTSxFQUFFLFNBQVMsRUFBRUssUUFBUSxFQUFFRCxJQUFJLEVBQUVFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQy9FO0FBRU8sZUFBZUMsV0FBV0EsQ0FBQ1gsR0FBWSxFQUFFQyxHQUFhLEVBQUU7RUFDN0Q7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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
@@ -70,10 +70,8 @@ async function getBusinessProfilesProducts(req, res) {
70
70
  try {
71
71
  const results = [];
72
72
 
73
- for (const contato of phone) {
74
- const result = await req.client.getBusinessProfilesProducts(contato);
75
- results.push(result);
76
- }
73
+ const result = await req.client.getBusinessProfilesProducts(phone);
74
+ results.push(result);
77
75
 
78
76
  returnSucess(res, session, phone, results);
79
77
  } catch (error) {
@@ -105,4 +103,4 @@ async function getOrderbyMsg(req, res) {
105
103
  returnError(req, res, session, error);
106
104
  }
107
105
  }
108
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXR1cm5TdWNlc3MiLCJyZXMiLCJzZXNzaW9uIiwicGhvbmUiLCJkYXRhIiwic3RhdHVzIiwianNvbiIsInJlc3BvbnNlIiwibWVzc2FnZSIsImNvbnRhY3QiLCJyZXR1cm5FcnJvciIsInJlcSIsImVycm9yIiwibG9nZ2VyIiwibG9nIiwiZ2V0QnVzaW5lc3NQcm9maWxlc1Byb2R1Y3RzIiwicXVlcnkiLCJyZXN1bHRzIiwiY29udGF0byIsInJlc3VsdCIsImNsaWVudCIsInB1c2giLCJnZXRPcmRlcmJ5TXNnIiwibWVzc2FnZUlkIiwicGFyYW1zIiwiZ2V0T3JkZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9vcmRlckNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIzIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcblxuZnVuY3Rpb24gcmV0dXJuU3VjZXNzKFxuICByZXM6IFJlc3BvbnNlLFxuICBzZXNzaW9uOiBzdHJpbmcsXG4gIHBob25lOiBzdHJpbmcgfCBudWxsLFxuICBkYXRhPzogYW55XG4pIHtcbiAgcmVzLnN0YXR1cygyMDEpLmpzb24oe1xuICAgIHN0YXR1czogJ1N1Y2Nlc3MnLFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBtZXNzYWdlOiAnSW5mb3JtYXRpb24gcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4nLFxuICAgICAgY29udGFjdDogcGhvbmUsXG4gICAgICBzZXNzaW9uOiBzZXNzaW9uLFxuICAgICAgZGF0YTogZGF0YSxcbiAgICB9LFxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmV0dXJuRXJyb3IoXG4gIHJlcTogUmVxdWVzdCxcbiAgcmVzOiBSZXNwb25zZSxcbiAgc2Vzc2lvbjogc3RyaW5nLFxuICBlcnJvcj86IGFueVxuKSB7XG4gIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgc3RhdHVzOiAnRXJyb3InLFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBtZXNzYWdlOiAnRXJyb3IgcmV0cmlldmluZyBpbmZvcm1hdGlvbicsXG4gICAgICBzZXNzaW9uOiBzZXNzaW9uLFxuICAgICAgbG9nOiBlcnJvcixcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJ1c2luZXNzUHJvZmlsZXNQcm9kdWN0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDYXRhbG9nICYgQnVzc2luZXNzXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIGluOiAncXVlcnknLFxuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OUBjLnVzJyxcbiAgICAgfVxuICAgKi9cbiAgY29uc3Qgc2Vzc2lvbiA9IHJlcS5zZXNzaW9uO1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucXVlcnkgYXMgdW5rbm93biBhcyBhbnk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxLmNsaWVudC5nZXRCdXNpbmVzc1Byb2ZpbGVzUHJvZHVjdHMoY29udGF0byk7XG4gICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCBzZXNzaW9uLCBwaG9uZSwgcmVzdWx0cyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIHNlc3Npb24sIGVycm9yKTtcbiAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9yZGVyYnlNc2cocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2F0YWxvZyAmIEJ1c3NpbmVzc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wibWVzc2FnZUlkXCJdID0ge1xuICAgICAgc2NoZW1hOiAndHJ1ZV81NTIxOTk5OTk5OTk5QGMudXNfM0VCMEU2OUFDQzVCMzk2QjIxRjJGRSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3Qgc2Vzc2lvbiA9IHJlcS5zZXNzaW9uO1xuICBjb25zdCB7IG1lc3NhZ2VJZCB9ID0gcmVxLnBhcmFtcztcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IChyZXEuY2xpZW50IGFzIGFueSkuZ2V0T3JkZXIobWVzc2FnZUlkKTtcblxuICAgIHJldHVyblN1Y2VzcyhyZXMsIHNlc3Npb24sIG51bGwsIHJlc3VsdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIHNlc3Npb24sIGVycm9yKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoib0xBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSxTQUFTQSxZQUFZQTtBQUNuQkMsR0FBYTtBQUNiQyxPQUFlO0FBQ2ZDLEtBQW9CO0FBQ3BCQyxJQUFVO0FBQ1Y7RUFDQUgsR0FBRyxDQUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUNDLElBQUksQ0FBQztJQUNuQkQsTUFBTSxFQUFFLFNBQVM7SUFDakJFLFFBQVEsRUFBRTtNQUNSQyxPQUFPLEVBQUUscUNBQXFDO01BQzlDQyxPQUFPLEVBQUVOLEtBQUs7TUFDZEQsT0FBTyxFQUFFQSxPQUFPO01BQ2hCRSxJQUFJLEVBQUVBO0lBQ1I7RUFDRixDQUFDLENBQUM7QUFDSjs7QUFFQSxTQUFTTSxXQUFXQTtBQUNsQkMsR0FBWTtBQUNaVixHQUFhO0FBQ2JDLE9BQWU7QUFDZlUsS0FBVztBQUNYO0VBQ0FELEdBQUcsQ0FBQ0UsTUFBTSxDQUFDRCxLQUFLLENBQUNBLEtBQUssQ0FBQztFQUN2QlgsR0FBRyxDQUFDSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUNDLElBQUksQ0FBQztJQUNuQkQsTUFBTSxFQUFFLE9BQU87SUFDZkUsUUFBUSxFQUFFO01BQ1JDLE9BQU8sRUFBRSw4QkFBOEI7TUFDdkNOLE9BQU8sRUFBRUEsT0FBTztNQUNoQlksR0FBRyxFQUFFRjtJQUNQO0VBQ0YsQ0FBQyxDQUFDO0FBQ0o7O0FBRU8sZUFBZUcsMkJBQTJCQSxDQUFDSixHQUFZLEVBQUVWLEdBQWEsRUFBRTtFQUM3RTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTUMsT0FBTyxHQUFHUyxHQUFHLENBQUNULE9BQU87RUFDM0IsTUFBTSxFQUFFQyxLQUFLLENBQUMsQ0FBQyxHQUFHUSxHQUFHLENBQUNLLEtBQXVCOztFQUU3QyxJQUFJO0lBQ0YsTUFBTUMsT0FBWSxHQUFHLEVBQUU7O0lBRXZCLEtBQUssTUFBTUMsT0FBTyxJQUFJZixLQUFLLEVBQUU7TUFDM0IsTUFBTWdCLE1BQU0sR0FBRyxNQUFNUixHQUFHLENBQUNTLE1BQU0sQ0FBQ0wsMkJBQTJCLENBQUNHLE9BQU8sQ0FBQztNQUNwRUQsT0FBTyxDQUFDSSxJQUFJLENBQUNGLE1BQU0sQ0FBQztJQUN0Qjs7SUFFQW5CLFlBQVksQ0FBQ0MsR0FBRyxFQUFFQyxPQUFPLEVBQUVDLEtBQUssRUFBRWMsT0FBTyxDQUFDO0VBQzVDLENBQUMsQ0FBQyxPQUFPTCxLQUFLLEVBQUU7SUFDZEYsV0FBVyxDQUFDQyxHQUFHLEVBQUVWLEdBQUcsRUFBRUMsT0FBTyxFQUFFVSxLQUFLLENBQUM7RUFDdkM7QUFDRjtBQUNPLGVBQWVVLGFBQWFBLENBQUNYLEdBQVksRUFBRVYsR0FBYSxFQUFFO0VBQy9EO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTUMsT0FBTyxHQUFHUyxHQUFHLENBQUNULE9BQU87RUFDM0IsTUFBTSxFQUFFcUIsU0FBUyxDQUFDLENBQUMsR0FBR1osR0FBRyxDQUFDYSxNQUFNOztFQUVoQyxJQUFJO0lBQ0YsTUFBTUwsTUFBTSxHQUFHLE1BQU9SLEdBQUcsQ0FBQ1MsTUFBTSxDQUFTSyxRQUFRLENBQUNGLFNBQVMsQ0FBQzs7SUFFNUR2QixZQUFZLENBQUNDLEdBQUcsRUFBRUMsT0FBTyxFQUFFLElBQUksRUFBRWlCLE1BQU0sQ0FBQztFQUMxQyxDQUFDLENBQUMsT0FBT1AsS0FBSyxFQUFFO0lBQ2RGLFdBQVcsQ0FBQ0MsR0FBRyxFQUFFVixHQUFHLEVBQUVDLE9BQU8sRUFBRVUsS0FBSyxDQUFDO0VBQ3ZDO0FBQ0YifQ==
106
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXR1cm5TdWNlc3MiLCJyZXMiLCJzZXNzaW9uIiwicGhvbmUiLCJkYXRhIiwic3RhdHVzIiwianNvbiIsInJlc3BvbnNlIiwibWVzc2FnZSIsImNvbnRhY3QiLCJyZXR1cm5FcnJvciIsInJlcSIsImVycm9yIiwibG9nZ2VyIiwibG9nIiwiZ2V0QnVzaW5lc3NQcm9maWxlc1Byb2R1Y3RzIiwicXVlcnkiLCJyZXN1bHRzIiwicmVzdWx0IiwiY2xpZW50IiwicHVzaCIsImdldE9yZGVyYnlNc2ciLCJtZXNzYWdlSWQiLCJwYXJhbXMiLCJnZXRPcmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL29yZGVyQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5mdW5jdGlvbiByZXR1cm5TdWNlc3MoXG4gIHJlczogUmVzcG9uc2UsXG4gIHNlc3Npb246IHN0cmluZyxcbiAgcGhvbmU6IHN0cmluZyB8IG51bGwsXG4gIGRhdGE/OiBhbnlcbikge1xuICByZXMuc3RhdHVzKDIwMSkuanNvbih7XG4gICAgc3RhdHVzOiAnU3VjY2VzcycsXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdJbmZvcm1hdGlvbiByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LicsXG4gICAgICBjb250YWN0OiBwaG9uZSxcbiAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICBkYXRhOiBkYXRhLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXR1cm5FcnJvcihcbiAgcmVxOiBSZXF1ZXN0LFxuICByZXM6IFJlc3BvbnNlLFxuICBzZXNzaW9uOiBzdHJpbmcsXG4gIGVycm9yPzogYW55XG4pIHtcbiAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gIHJlcy5zdGF0dXMoNDAwKS5qc29uKHtcbiAgICBzdGF0dXM6ICdFcnJvcicsXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciByZXRyaWV2aW5nIGluZm9ybWF0aW9uJyxcbiAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICBsb2c6IGVycm9yLFxuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QnVzaW5lc3NQcm9maWxlc1Byb2R1Y3RzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNhdGFsb2cgJiBCdXNzaW5lc3NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgaW46ICdxdWVyeScsXG4gICAgICBzY2hlbWE6ICc1NTIxOTk5OTk5OTk5QGMudXMnLFxuICAgICB9XG4gICAqL1xuICBjb25zdCBzZXNzaW9uID0gcmVxLnNlc3Npb247XG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5xdWVyeSBhcyB1bmtub3duIGFzIGFueTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IFtdO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxLmNsaWVudC5nZXRCdXNpbmVzc1Byb2ZpbGVzUHJvZHVjdHMocGhvbmUpO1xuICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuXG4gICAgcmV0dXJuU3VjZXNzKHJlcywgc2Vzc2lvbiwgcGhvbmUsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBzZXNzaW9uLCBlcnJvcik7XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPcmRlcmJ5TXNnKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNhdGFsb2cgJiBCdXNzaW5lc3NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcIm1lc3NhZ2VJZFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ3RydWVfNTUyMTk5OTk5OTk5OUBjLnVzXzNFQjBFNjlBQ0M1QjM5NkIyMUYyRkUnXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHNlc3Npb24gPSByZXEuc2Vzc2lvbjtcbiAgY29uc3QgeyBtZXNzYWdlSWQgfSA9IHJlcS5wYXJhbXM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAocmVxLmNsaWVudCBhcyBhbnkpLmdldE9yZGVyKG1lc3NhZ2VJZCk7XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCBzZXNzaW9uLCBudWxsLCByZXN1bHQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBzZXNzaW9uLCBlcnJvcik7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Im9MQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0EsU0FBU0EsWUFBWUE7QUFDbkJDLEdBQWE7QUFDYkMsT0FBZTtBQUNmQyxLQUFvQjtBQUNwQkMsSUFBVTtBQUNWO0VBQ0FILEdBQUcsQ0FBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUM7SUFDbkJELE1BQU0sRUFBRSxTQUFTO0lBQ2pCRSxRQUFRLEVBQUU7TUFDUkMsT0FBTyxFQUFFLHFDQUFxQztNQUM5Q0MsT0FBTyxFQUFFTixLQUFLO01BQ2RELE9BQU8sRUFBRUEsT0FBTztNQUNoQkUsSUFBSSxFQUFFQTtJQUNSO0VBQ0YsQ0FBQyxDQUFDO0FBQ0o7O0FBRUEsU0FBU00sV0FBV0E7QUFDbEJDLEdBQVk7QUFDWlYsR0FBYTtBQUNiQyxPQUFlO0FBQ2ZVLEtBQVc7QUFDWDtFQUNBRCxHQUFHLENBQUNFLE1BQU0sQ0FBQ0QsS0FBSyxDQUFDQSxLQUFLLENBQUM7RUFDdkJYLEdBQUcsQ0FBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUM7SUFDbkJELE1BQU0sRUFBRSxPQUFPO0lBQ2ZFLFFBQVEsRUFBRTtNQUNSQyxPQUFPLEVBQUUsOEJBQThCO01BQ3ZDTixPQUFPLEVBQUVBLE9BQU87TUFDaEJZLEdBQUcsRUFBRUY7SUFDUDtFQUNGLENBQUMsQ0FBQztBQUNKOztBQUVPLGVBQWVHLDJCQUEyQkEsQ0FBQ0osR0FBWSxFQUFFVixHQUFhLEVBQUU7RUFDN0U7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLE1BQU1DLE9BQU8sR0FBR1MsR0FBRyxDQUFDVCxPQUFPO0VBQzNCLE1BQU0sRUFBRUMsS0FBSyxDQUFDLENBQUMsR0FBR1EsR0FBRyxDQUFDSyxLQUF1Qjs7RUFFN0MsSUFBSTtJQUNGLE1BQU1DLE9BQVksR0FBRyxFQUFFOztJQUV2QixNQUFNQyxNQUFNLEdBQUcsTUFBTVAsR0FBRyxDQUFDUSxNQUFNLENBQUNKLDJCQUEyQixDQUFDWixLQUFLLENBQUM7SUFDbEVjLE9BQU8sQ0FBQ0csSUFBSSxDQUFDRixNQUFNLENBQUM7O0lBRXBCbEIsWUFBWSxDQUFDQyxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsS0FBSyxFQUFFYyxPQUFPLENBQUM7RUFDNUMsQ0FBQyxDQUFDLE9BQU9MLEtBQUssRUFBRTtJQUNkRixXQUFXLENBQUNDLEdBQUcsRUFBRVYsR0FBRyxFQUFFQyxPQUFPLEVBQUVVLEtBQUssQ0FBQztFQUN2QztBQUNGO0FBQ08sZUFBZVMsYUFBYUEsQ0FBQ1YsR0FBWSxFQUFFVixHQUFhLEVBQUU7RUFDL0Q7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRSxNQUFNQyxPQUFPLEdBQUdTLEdBQUcsQ0FBQ1QsT0FBTztFQUMzQixNQUFNLEVBQUVvQixTQUFTLENBQUMsQ0FBQyxHQUFHWCxHQUFHLENBQUNZLE1BQU07O0VBRWhDLElBQUk7SUFDRixNQUFNTCxNQUFNLEdBQUcsTUFBT1AsR0FBRyxDQUFDUSxNQUFNLENBQVNLLFFBQVEsQ0FBQ0YsU0FBUyxDQUFDOztJQUU1RHRCLFlBQVksQ0FBQ0MsR0FBRyxFQUFFQyxPQUFPLEVBQUUsSUFBSSxFQUFFZ0IsTUFBTSxDQUFDO0VBQzFDLENBQUMsQ0FBQyxPQUFPTixLQUFLLEVBQUU7SUFDZEYsV0FBVyxDQUFDQyxHQUFHLEVBQUVWLEdBQUcsRUFBRUMsT0FBTyxFQUFFVSxLQUFLLENBQUM7RUFDdkM7QUFDRiJ9
@@ -30,8 +30,12 @@ var _functions = require("../util/functions"); /*
30
30
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31
31
  * See the License for the specific language governing permissions and
32
32
  * limitations under the License.
33
- */async function statusConnection(req, res, next) {try {const numbers = [];if (req.client && req.client.isConnected) {await req.client.isConnected();const localArr = (0, _functions.contactToArray)(req.body.phone || [], req.body.isGroup);let index = 0;for (const contact of localArr) {
34
- if (req.body.isGroup) {
33
+ */async function statusConnection(req, res, next) {try {const numbers = [];if (req.client && req.client.isConnected) {await req.client.isConnected();const localArr = (0, _functions.contactToArray)(req.body.phone || [], req.body.isGroup,
34
+ req.body.isNewsletter
35
+ );
36
+ let index = 0;
37
+ for (const contact of localArr) {
38
+ if (req.body.isGroup || req.body.isNewsletter) {
35
39
  localArr[index] = contact;
36
40
  } else if (numbers.indexOf(contact) < 0) {
37
41
  const profile = await req.client.
@@ -71,4 +75,4 @@ var _functions = require("../util/functions"); /*
71
75
  });
72
76
  }
73
77
  }
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsInN0YXR1c0Nvbm5lY3Rpb24iLCJyZXEiLCJyZXMiLCJuZXh0IiwibnVtYmVycyIsImNsaWVudCIsImlzQ29ubmVjdGVkIiwibG9jYWxBcnIiLCJjb250YWN0VG9BcnJheSIsImJvZHkiLCJwaG9uZSIsImlzR3JvdXAiLCJpbmRleCIsImNvbnRhY3QiLCJpbmRleE9mIiwicHJvZmlsZSIsImNoZWNrTnVtYmVyU3RhdHVzIiwiY2F0Y2giLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJudW1iZXJFeGlzdHMiLCJudW0iLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJyZXNwb25zZSIsIm1lc3NhZ2UiLCJpZCIsIl9zZXJpYWxpemVkIiwicHVzaCIsImxvZ2dlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL3N0YXR1c0Nvbm5lY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOZXh0RnVuY3Rpb24sIFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGNvbnRhY3RUb0FycmF5IH0gZnJvbSAnLi4vdXRpbC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBzdGF0dXNDb25uZWN0aW9uKFxuICByZXE6IFJlcXVlc3QsXG4gIHJlczogUmVzcG9uc2UsXG4gIG5leHQ6IE5leHRGdW5jdGlvblxuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgbnVtYmVyczogYW55ID0gW107XG4gICAgaWYgKHJlcS5jbGllbnQgJiYgcmVxLmNsaWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgYXdhaXQgcmVxLmNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuXG4gICAgICBjb25zdCBsb2NhbEFyciA9IGNvbnRhY3RUb0FycmF5KHJlcS5ib2R5LnBob25lIHx8IFtdLCByZXEuYm9keS5pc0dyb3VwKTtcbiAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGNvbnRhY3Qgb2YgbG9jYWxBcnIpIHtcbiAgICAgICAgaWYgKHJlcS5ib2R5LmlzR3JvdXApIHtcbiAgICAgICAgICBsb2NhbEFycltpbmRleF0gPSBjb250YWN0O1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlcnMuaW5kZXhPZihjb250YWN0KSA8IDApIHtcbiAgICAgICAgICBjb25zdCBwcm9maWxlOiBhbnkgPSBhd2FpdCByZXEuY2xpZW50XG4gICAgICAgICAgICAuY2hlY2tOdW1iZXJTdGF0dXMoY29udGFjdClcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUubG9nKGVycm9yKSk7XG4gICAgICAgICAgaWYgKCFwcm9maWxlPy5udW1iZXJFeGlzdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IChjb250YWN0IGFzIGFueSkuc3BsaXQoJ0AnKVswXTtcbiAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgICAgICAgICAgIHJlc3BvbnNlOiBudWxsLFxuICAgICAgICAgICAgICBzdGF0dXM6ICdDb25uZWN0ZWQnLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgTyBuw7ptZXJvICR7bnVtfSBuw6NvIGV4aXN0ZS5gLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICgobnVtYmVycyBhcyBhbnkpLmluZGV4T2YocHJvZmlsZS5pZC5fc2VyaWFsaXplZCkgPCAwKSB7XG4gICAgICAgICAgICAgIChudW1iZXJzIGFzIGFueSkucHVzaChwcm9maWxlLmlkLl9zZXJpYWxpemVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIChsb2NhbEFyciBhcyBhbnkpW2luZGV4XSA9IHByb2ZpbGUuaWQuX3NlcmlhbGl6ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG4gICAgICByZXEuYm9keS5waG9uZSA9IGxvY2FsQXJyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpLmpzb24oe1xuICAgICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgICAgc3RhdHVzOiAnRGlzY29ubmVjdGVkJyxcbiAgICAgICAgbWVzc2FnZTogJ0Egc2Vzc8OjbyBkbyBXaGF0c0FwcCBuw6NvIGVzdMOhIGF0aXZhLicsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbmV4dCgpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJldHVybiByZXMuc3RhdHVzKDQwNCkuanNvbih7XG4gICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgIHN0YXR1czogJ0Rpc2Nvbm5lY3RlZCcsXG4gICAgICBtZXNzYWdlOiAnQSBzZXNzw6NvIGRvIFdoYXRzQXBwIG7Do28gZXN0w6EgYXRpdmEuJyxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBLHNCQUFtRCxDQWxCbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBTWUsZUFBZUMsZ0JBQWdCQSxDQUM1Q0MsR0FBWSxFQUNaQyxHQUFhLEVBQ2JDLElBQWtCLEVBQ2xCLENBQ0EsSUFBSSxDQUNGLE1BQU1DLE9BQVksR0FBRyxFQUFFLENBQ3ZCLElBQUlILEdBQUcsQ0FBQ0ksTUFBTSxJQUFJSixHQUFHLENBQUNJLE1BQU0sQ0FBQ0MsV0FBVyxFQUFFLENBQ3hDLE1BQU1MLEdBQUcsQ0FBQ0ksTUFBTSxDQUFDQyxXQUFXLENBQUMsQ0FBQyxDQUU5QixNQUFNQyxRQUFRLEdBQUcsSUFBQUMseUJBQWMsRUFBQ1AsR0FBRyxDQUFDUSxJQUFJLENBQUNDLEtBQUssSUFBSSxFQUFFLEVBQUVULEdBQUcsQ0FBQ1EsSUFBSSxDQUFDRSxPQUFPLENBQUMsQ0FDdkUsSUFBSUMsS0FBSyxHQUFHLENBQUMsQ0FDYixLQUFLLE1BQU1DLE9BQU8sSUFBSU4sUUFBUSxFQUFFO1FBQzlCLElBQUlOLEdBQUcsQ0FBQ1EsSUFBSSxDQUFDRSxPQUFPLEVBQUU7VUFDcEJKLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDLEdBQUdDLE9BQU87UUFDM0IsQ0FBQyxNQUFNLElBQUlULE9BQU8sQ0FBQ1UsT0FBTyxDQUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7VUFDdkMsTUFBTUUsT0FBWSxHQUFHLE1BQU1kLEdBQUcsQ0FBQ0ksTUFBTTtVQUNsQ1csaUJBQWlCLENBQUNILE9BQU8sQ0FBQztVQUMxQkksS0FBSyxDQUFDLENBQUNDLEtBQUssS0FBS0MsT0FBTyxDQUFDQyxHQUFHLENBQUNGLEtBQUssQ0FBQyxDQUFDO1VBQ3ZDLElBQUksQ0FBQ0gsT0FBTyxFQUFFTSxZQUFZLEVBQUU7WUFDMUIsTUFBTUMsR0FBRyxHQUFJVCxPQUFPLENBQVNVLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsT0FBT3JCLEdBQUcsQ0FBQ3NCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO2NBQzFCQyxRQUFRLEVBQUUsSUFBSTtjQUNkRixNQUFNLEVBQUUsV0FBVztjQUNuQkcsT0FBTyxFQUFHLFlBQVdMLEdBQUk7WUFDM0IsQ0FBQyxDQUFDO1VBQ0osQ0FBQyxNQUFNO1lBQ0wsSUFBS2xCLE9BQU8sQ0FBU1UsT0FBTyxDQUFDQyxPQUFPLENBQUNhLEVBQUUsQ0FBQ0MsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2NBQ3ZEekIsT0FBTyxDQUFTMEIsSUFBSSxDQUFDZixPQUFPLENBQUNhLEVBQUUsQ0FBQ0MsV0FBVyxDQUFDO1lBQy9DO1lBQ0N0QixRQUFRLENBQVNLLEtBQUssQ0FBQyxHQUFHRyxPQUFPLENBQUNhLEVBQUUsQ0FBQ0MsV0FBVztVQUNuRDtRQUNGO1FBQ0FqQixLQUFLLEVBQUU7TUFDVDtNQUNBWCxHQUFHLENBQUNRLElBQUksQ0FBQ0MsS0FBSyxHQUFHSCxRQUFRO0lBQzNCLENBQUMsTUFBTTtNQUNMLE9BQU9MLEdBQUcsQ0FBQ3NCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO1FBQzFCQyxRQUFRLEVBQUUsSUFBSTtRQUNkRixNQUFNLEVBQUUsY0FBYztRQUN0QkcsT0FBTyxFQUFFO01BQ1gsQ0FBQyxDQUFDO0lBQ0o7SUFDQXhCLElBQUksQ0FBQyxDQUFDO0VBQ1IsQ0FBQyxDQUFDLE9BQU9lLEtBQUssRUFBRTtJQUNkakIsR0FBRyxDQUFDOEIsTUFBTSxDQUFDYixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUN2QixPQUFPaEIsR0FBRyxDQUFDc0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUM7TUFDMUJDLFFBQVEsRUFBRSxJQUFJO01BQ2RGLE1BQU0sRUFBRSxjQUFjO01BQ3RCRyxPQUFPLEVBQUU7SUFDWCxDQUFDLENBQUM7RUFDSjtBQUNGIn0=
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsInN0YXR1c0Nvbm5lY3Rpb24iLCJyZXEiLCJyZXMiLCJuZXh0IiwibnVtYmVycyIsImNsaWVudCIsImlzQ29ubmVjdGVkIiwibG9jYWxBcnIiLCJjb250YWN0VG9BcnJheSIsImJvZHkiLCJwaG9uZSIsImlzR3JvdXAiLCJpc05ld3NsZXR0ZXIiLCJpbmRleCIsImNvbnRhY3QiLCJpbmRleE9mIiwicHJvZmlsZSIsImNoZWNrTnVtYmVyU3RhdHVzIiwiY2F0Y2giLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJudW1iZXJFeGlzdHMiLCJudW0iLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJyZXNwb25zZSIsIm1lc3NhZ2UiLCJpZCIsIl9zZXJpYWxpemVkIiwicHVzaCIsImxvZ2dlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL3N0YXR1c0Nvbm5lY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOZXh0RnVuY3Rpb24sIFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGNvbnRhY3RUb0FycmF5IH0gZnJvbSAnLi4vdXRpbC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBzdGF0dXNDb25uZWN0aW9uKFxuICByZXE6IFJlcXVlc3QsXG4gIHJlczogUmVzcG9uc2UsXG4gIG5leHQ6IE5leHRGdW5jdGlvblxuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgbnVtYmVyczogYW55ID0gW107XG4gICAgaWYgKHJlcS5jbGllbnQgJiYgcmVxLmNsaWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgYXdhaXQgcmVxLmNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuXG4gICAgICBjb25zdCBsb2NhbEFyciA9IGNvbnRhY3RUb0FycmF5KFxuICAgICAgICByZXEuYm9keS5waG9uZSB8fCBbXSxcbiAgICAgICAgcmVxLmJvZHkuaXNHcm91cCxcbiAgICAgICAgcmVxLmJvZHkuaXNOZXdzbGV0dGVyXG4gICAgICApO1xuICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBsb2NhbEFycikge1xuICAgICAgICBpZiAocmVxLmJvZHkuaXNHcm91cCB8fCByZXEuYm9keS5pc05ld3NsZXR0ZXIpIHtcbiAgICAgICAgICBsb2NhbEFycltpbmRleF0gPSBjb250YWN0O1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlcnMuaW5kZXhPZihjb250YWN0KSA8IDApIHtcbiAgICAgICAgICBjb25zdCBwcm9maWxlOiBhbnkgPSBhd2FpdCByZXEuY2xpZW50XG4gICAgICAgICAgICAuY2hlY2tOdW1iZXJTdGF0dXMoY29udGFjdClcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUubG9nKGVycm9yKSk7XG4gICAgICAgICAgaWYgKCFwcm9maWxlPy5udW1iZXJFeGlzdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IChjb250YWN0IGFzIGFueSkuc3BsaXQoJ0AnKVswXTtcbiAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgICAgICAgICAgIHJlc3BvbnNlOiBudWxsLFxuICAgICAgICAgICAgICBzdGF0dXM6ICdDb25uZWN0ZWQnLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgTyBuw7ptZXJvICR7bnVtfSBuw6NvIGV4aXN0ZS5gLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICgobnVtYmVycyBhcyBhbnkpLmluZGV4T2YocHJvZmlsZS5pZC5fc2VyaWFsaXplZCkgPCAwKSB7XG4gICAgICAgICAgICAgIChudW1iZXJzIGFzIGFueSkucHVzaChwcm9maWxlLmlkLl9zZXJpYWxpemVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIChsb2NhbEFyciBhcyBhbnkpW2luZGV4XSA9IHByb2ZpbGUuaWQuX3NlcmlhbGl6ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG4gICAgICByZXEuYm9keS5waG9uZSA9IGxvY2FsQXJyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpLmpzb24oe1xuICAgICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgICAgc3RhdHVzOiAnRGlzY29ubmVjdGVkJyxcbiAgICAgICAgbWVzc2FnZTogJ0Egc2Vzc8OjbyBkbyBXaGF0c0FwcCBuw6NvIGVzdMOhIGF0aXZhLicsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbmV4dCgpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJldHVybiByZXMuc3RhdHVzKDQwNCkuanNvbih7XG4gICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgIHN0YXR1czogJ0Rpc2Nvbm5lY3RlZCcsXG4gICAgICBtZXNzYWdlOiAnQSBzZXNzw6NvIGRvIFdoYXRzQXBwIG7Do28gZXN0w6EgYXRpdmEuJyxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBLHNCQUFtRCxDQWxCbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBTWUsZUFBZUMsZ0JBQWdCQSxDQUM1Q0MsR0FBWSxFQUNaQyxHQUFhLEVBQ2JDLElBQWtCLEVBQ2xCLENBQ0EsSUFBSSxDQUNGLE1BQU1DLE9BQVksR0FBRyxFQUFFLENBQ3ZCLElBQUlILEdBQUcsQ0FBQ0ksTUFBTSxJQUFJSixHQUFHLENBQUNJLE1BQU0sQ0FBQ0MsV0FBVyxFQUFFLENBQ3hDLE1BQU1MLEdBQUcsQ0FBQ0ksTUFBTSxDQUFDQyxXQUFXLENBQUMsQ0FBQyxDQUU5QixNQUFNQyxRQUFRLEdBQUcsSUFBQUMseUJBQWMsRUFDN0JQLEdBQUcsQ0FBQ1EsSUFBSSxDQUFDQyxLQUFLLElBQUksRUFBRSxFQUNwQlQsR0FBRyxDQUFDUSxJQUFJLENBQUNFLE9BQU87UUFDaEJWLEdBQUcsQ0FBQ1EsSUFBSSxDQUFDRztNQUNYLENBQUM7TUFDRCxJQUFJQyxLQUFLLEdBQUcsQ0FBQztNQUNiLEtBQUssTUFBTUMsT0FBTyxJQUFJUCxRQUFRLEVBQUU7UUFDOUIsSUFBSU4sR0FBRyxDQUFDUSxJQUFJLENBQUNFLE9BQU8sSUFBSVYsR0FBRyxDQUFDUSxJQUFJLENBQUNHLFlBQVksRUFBRTtVQUM3Q0wsUUFBUSxDQUFDTSxLQUFLLENBQUMsR0FBR0MsT0FBTztRQUMzQixDQUFDLE1BQU0sSUFBSVYsT0FBTyxDQUFDVyxPQUFPLENBQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtVQUN2QyxNQUFNRSxPQUFZLEdBQUcsTUFBTWYsR0FBRyxDQUFDSSxNQUFNO1VBQ2xDWSxpQkFBaUIsQ0FBQ0gsT0FBTyxDQUFDO1VBQzFCSSxLQUFLLENBQUMsQ0FBQ0MsS0FBSyxLQUFLQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0YsS0FBSyxDQUFDLENBQUM7VUFDdkMsSUFBSSxDQUFDSCxPQUFPLEVBQUVNLFlBQVksRUFBRTtZQUMxQixNQUFNQyxHQUFHLEdBQUlULE9BQU8sQ0FBU1UsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxPQUFPdEIsR0FBRyxDQUFDdUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUM7Y0FDMUJDLFFBQVEsRUFBRSxJQUFJO2NBQ2RGLE1BQU0sRUFBRSxXQUFXO2NBQ25CRyxPQUFPLEVBQUcsWUFBV0wsR0FBSTtZQUMzQixDQUFDLENBQUM7VUFDSixDQUFDLE1BQU07WUFDTCxJQUFLbkIsT0FBTyxDQUFTVyxPQUFPLENBQUNDLE9BQU8sQ0FBQ2EsRUFBRSxDQUFDQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUU7Y0FDdkQxQixPQUFPLENBQVMyQixJQUFJLENBQUNmLE9BQU8sQ0FBQ2EsRUFBRSxDQUFDQyxXQUFXLENBQUM7WUFDL0M7WUFDQ3ZCLFFBQVEsQ0FBU00sS0FBSyxDQUFDLEdBQUdHLE9BQU8sQ0FBQ2EsRUFBRSxDQUFDQyxXQUFXO1VBQ25EO1FBQ0Y7UUFDQWpCLEtBQUssRUFBRTtNQUNUO01BQ0FaLEdBQUcsQ0FBQ1EsSUFBSSxDQUFDQyxLQUFLLEdBQUdILFFBQVE7SUFDM0IsQ0FBQyxNQUFNO01BQ0wsT0FBT0wsR0FBRyxDQUFDdUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxJQUFJO1FBQ2RGLE1BQU0sRUFBRSxjQUFjO1FBQ3RCRyxPQUFPLEVBQUU7TUFDWCxDQUFDLENBQUM7SUFDSjtJQUNBekIsSUFBSSxDQUFDLENBQUM7RUFDUixDQUFDLENBQUMsT0FBT2dCLEtBQUssRUFBRTtJQUNkbEIsR0FBRyxDQUFDK0IsTUFBTSxDQUFDYixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUN2QixPQUFPakIsR0FBRyxDQUFDdUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUM7TUFDMUJDLFFBQVEsRUFBRSxJQUFJO01BQ2RGLE1BQU0sRUFBRSxjQUFjO01BQ3RCRyxPQUFPLEVBQUU7SUFDWCxDQUFDLENBQUM7RUFDSjtBQUNGIn0=
package/dist/swagger.json CHANGED
@@ -599,6 +599,9 @@
599
599
  "isGroup": {
600
600
  "type": "boolean"
601
601
  },
602
+ "isNewsletter": {
603
+ "type": "boolean"
604
+ },
602
605
  "message": {
603
606
  "type": "string"
604
607
  },
@@ -612,6 +615,7 @@
612
615
  "value": {
613
616
  "phone": "5521999999999",
614
617
  "isGroup": false,
618
+ "isNewsletter": false,
615
619
  "message": "Hi from WPPConnect"
616
620
  }
617
621
  },
@@ -725,6 +729,9 @@
725
729
  "isGroup": {
726
730
  "type": "boolean"
727
731
  },
732
+ "isNewsletter": {
733
+ "type": "boolean"
734
+ },
728
735
  "filename": {
729
736
  "type": "string"
730
737
  },
@@ -741,6 +748,7 @@
741
748
  "value": {
742
749
  "phone": "5521999999999",
743
750
  "isGroup": false,
751
+ "isNewsletter": false,
744
752
  "filename": "file name lol",
745
753
  "caption": "caption for my file",
746
754
  "base64": "<base64> string"
@@ -976,6 +984,9 @@
976
984
  "isGroup": {
977
985
  "type": "boolean"
978
986
  },
987
+ "isNewsletter": {
988
+ "type": "boolean"
989
+ },
979
990
  "filename": {
980
991
  "type": "string"
981
992
  },
@@ -992,6 +1003,7 @@
992
1003
  "value": {
993
1004
  "phone": "5521999999999",
994
1005
  "isGroup": false,
1006
+ "isNewsletter": false,
995
1007
  "filename": "file name lol",
996
1008
  "caption": "caption for my file",
997
1009
  "base64": "<base64> string"
@@ -1044,6 +1056,9 @@
1044
1056
  "isGroup": {
1045
1057
  "type": "boolean"
1046
1058
  },
1059
+ "isNewsletter": {
1060
+ "type": "boolean"
1061
+ },
1047
1062
  "filename": {
1048
1063
  "type": "string"
1049
1064
  },
@@ -1060,6 +1075,7 @@
1060
1075
  "value": {
1061
1076
  "phone": "5521999999999",
1062
1077
  "isGroup": false,
1078
+ "isNewsletter": false,
1063
1079
  "filename": "file name lol",
1064
1080
  "caption": "caption for my file",
1065
1081
  "base64": "<base64> string"
@@ -1896,30 +1912,7 @@
1896
1912
  {
1897
1913
  "bearerAuth": []
1898
1914
  }
1899
- ],
1900
- "requestBody": {
1901
- "required": true,
1902
- "content": {
1903
- "application/json": {
1904
- "schema": {
1905
- "type": "object",
1906
- "properties": {
1907
- "groupId": {
1908
- "type": "string"
1909
- }
1910
- },
1911
- "required": ["groupId"]
1912
- },
1913
- "examples": {
1914
- "Default": {
1915
- "value": {
1916
- "groupId": "<groupId>"
1917
- }
1918
- }
1919
- }
1920
- }
1921
- }
1922
- }
1915
+ ]
1923
1916
  }
1924
1917
  },
1925
1918
  "/api/{session}/common-groups/{wid}": {
@@ -3976,6 +3969,9 @@
3976
3969
  "200": {
3977
3970
  "description": "OK"
3978
3971
  },
3972
+ "401": {
3973
+ "description": "Unauthorized"
3974
+ },
3979
3975
  "500": {
3980
3976
  "description": "Internal Server Error"
3981
3977
  }
@@ -4000,6 +3996,12 @@
4000
3996
  },
4001
3997
  "messageId": {
4002
3998
  "type": "string"
3999
+ },
4000
+ "onlyLocal": {
4001
+ "type": "boolean"
4002
+ },
4003
+ "deleteMediaInDevice": {
4004
+ "type": "boolean"
4003
4005
  }
4004
4006
  }
4005
4007
  },
@@ -4114,7 +4116,7 @@
4114
4116
  "isGroup": {
4115
4117
  "type": "boolean"
4116
4118
  },
4117
- "messageid": {
4119
+ "messageId": {
4118
4120
  "type": "string"
4119
4121
  }
4120
4122
  }
@@ -4124,7 +4126,7 @@
4124
4126
  "value": {
4125
4127
  "phone": "5521999999999",
4126
4128
  "isGroup": false,
4127
- "messageid": "<messageId>"
4129
+ "messageId": "<messageId>"
4128
4130
  }
4129
4131
  }
4130
4132
  }