@wppconnect/server 2.4.4 → 2.4.5

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.
@@ -324,4 +324,4 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
324
324
  return client;
325
325
  }
326
326
  }exports.default = CreateSessionUtil;
327
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfc2Vzc2lvbkNvbnRyb2xsZXIiLCJfY2hhdFdvb3RDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Z1bmN0aW9ucyIsIl9zZXNzaW9uVXRpbCIsIl9mYWN0b3J5IiwiQ3JlYXRlU2Vzc2lvblV0aWwiLCJzdGFydENoYXRXb290Q2xpZW50IiwiY2xpZW50IiwiY29uZmlnIiwiY2hhdFdvb3QiLCJjaGF0V29vdENsaWVudCIsInNlc3Npb24iLCJjcmVhdGVTZXNzaW9uVXRpbCIsInJlcSIsImNsaWVudHNBcnJheSIsInJlcyIsImdldENsaWVudCIsInN0YXR1cyIsImJvZHkiLCJ0b2tlblN0b3JlIiwiRmFjdG9yeSIsIm15VG9rZW5TdG9yZSIsImNyZWF0ZVRva2VuU3RvcnkiLCJ0b2tlbkRhdGEiLCJnZXRUb2tlbiIsInNldFRva2VuIiwic2VydmVyT3B0aW9ucyIsImN1c3RvbVVzZXJEYXRhRGlyIiwiY3JlYXRlT3B0aW9ucyIsInB1cHBldGVlck9wdGlvbnMiLCJ1c2VyRGF0YURpciIsIndwcENsaWVudCIsImNyZWF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJjYXRjaFFSIiwiYmFzZTY0UXIiLCJhc2NpaVFSIiwiYXR0ZW1wdCIsInVybENvZGUiLCJleHBvcnRRUiIsIm9uTG9hZGluZ1NjcmVlbiIsInBlcmNlbnQiLCJtZXNzYWdlIiwibG9nZ2VyIiwiaW5mbyIsInN0YXR1c0ZpbmQiLCJldmVudEVtaXR0ZXIiLCJlbWl0IiwicXJjb2RlIiwiY2xvc2UiLCJ1bmRlZmluZWQiLCJjYWxsV2ViSG9vayIsImVycm9yIiwic3RhcnQiLCJ3ZWJob29rIiwib25QYXJ0aWNpcGFudHNDaGFuZ2VkIiwib25SZWFjdGlvbk1lc3NhZ2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvbkxhYmVsVXBkYXRlZCIsImUiLCJvcGVuZGF0YSIsInFyQ29kZSIsInVybGNvZGUiLCJyZXBsYWNlIiwiaW1hZ2VCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaW8iLCJkYXRhIiwidG9TdHJpbmciLCJfaGVhZGVyU2VudCIsImpzb24iLCJpc0Nvbm5lY3RlZCIsInN0YXJ0SGVscGVyIiwiY2hlY2tTdGF0ZVNlc3Npb24iLCJsaXN0ZW5NZXNzYWdlcyIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uU3RhdGVDaGFuZ2UiLCJzdGF0ZSIsImNvbmZsaXRzIiwiU29ja2V0U3RhdGUiLCJDT05GTElDVCIsImluY2x1ZGVzIiwidXNlSGVyZSIsIm9uTWVzc2FnZSIsInR5cGUiLCJvbkxpdmVMb2NhdGlvbiIsInNlbmRlciIsImlkIiwibG9jYXRpb24iLCJvbkFueU1lc3NhZ2UiLCJkb3dubG9hZCIsIndlYnNvY2tldCIsImF1dG9Eb3dubG9hZCIsImZyb21NZSIsInJlc3BvbnNlIiwib25TZWxmTWVzc2FnZSIsIm9uSW5jb21pbmdDYWxsIiwiY2FsbCIsIm9uQWNrIiwiYWNrIiwicHJlc2VuY2VDaGFuZ2VkRXZlbnQiLCJyZWFjdGlvbiIsIm9uVXBkYXRlTGFiZWwiLCJlbmNvZGVGdW5jdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGVGdW5jdGlvbiIsInRleHQiLCJvYmplY3QiLCJwYXJzZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY3JlYXRlU2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlLCBTb2NrZXRTdGF0ZSB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vY29udHJvbGxlci9zZXNzaW9uQ29udHJvbGxlcic7XG5pbXBvcnQgeyBXaGF0c0FwcFNlcnZlciB9IGZyb20gJy4uL3R5cGVzL1doYXRzQXBwU2VydmVyJztcbmltcG9ydCBjaGF0V29vdENsaWVudCBmcm9tICcuL2NoYXRXb290Q2xpZW50JztcbmltcG9ydCB7IGF1dG9Eb3dubG9hZCwgY2FsbFdlYkhvb2ssIHN0YXJ0SGVscGVyIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgY2xpZW50c0FycmF5LCBldmVudEVtaXR0ZXIgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcbmltcG9ydCBGYWN0b3J5IGZyb20gJy4vdG9rZW5TdG9yZS9mYWN0b3J5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3JlYXRlU2Vzc2lvblV0aWwge1xuICBzdGFydENoYXRXb290Q2xpZW50KGNsaWVudDogYW55KSB7XG4gICAgaWYgKGNsaWVudC5jb25maWcuY2hhdFdvb3QgJiYgIWNsaWVudC5fY2hhdFdvb3RDbGllbnQpXG4gICAgICBjbGllbnQuX2NoYXRXb290Q2xpZW50ID0gbmV3IGNoYXRXb290Q2xpZW50KFxuICAgICAgICBjbGllbnQuY29uZmlnLmNoYXRXb290LFxuICAgICAgICBjbGllbnQuc2Vzc2lvblxuICAgICAgKTtcbiAgICByZXR1cm4gY2xpZW50Ll9jaGF0V29vdENsaWVudDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb25VdGlsKFxuICAgIHJlcTogYW55LFxuICAgIGNsaWVudHNBcnJheTogYW55LFxuICAgIHNlc3Npb246IHN0cmluZyxcbiAgICByZXM/OiBhbnlcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBjbGllbnQgPSB0aGlzLmdldENsaWVudChzZXNzaW9uKSBhcyBhbnk7XG4gICAgICBpZiAoY2xpZW50LnN0YXR1cyAhPSBudWxsICYmIGNsaWVudC5zdGF0dXMgIT09ICdDTE9TRUQnKSByZXR1cm47XG4gICAgICBjbGllbnQuc3RhdHVzID0gJ0lOSVRJQUxJWklORyc7XG4gICAgICBjbGllbnQuY29uZmlnID0gcmVxLmJvZHk7XG5cbiAgICAgIGNvbnN0IHRva2VuU3RvcmUgPSBuZXcgRmFjdG9yeSgpO1xuICAgICAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KGNsaWVudCk7XG4gICAgICBjb25zdCB0b2tlbkRhdGEgPSBhd2FpdCBteVRva2VuU3RvcmUuZ2V0VG9rZW4oc2Vzc2lvbik7XG5cbiAgICAgIGlmICghdG9rZW5EYXRhKSB7XG4gICAgICAgIG15VG9rZW5TdG9yZS5zZXRUb2tlbihzZXNzaW9uLCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhcnRDaGF0V29vdENsaWVudChjbGllbnQpO1xuXG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMuY3VzdG9tVXNlckRhdGFEaXIpIHtcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnMuY3JlYXRlT3B0aW9ucy5wdXBwZXRlZXJPcHRpb25zID0ge1xuICAgICAgICAgIHVzZXJEYXRhRGlyOiByZXEuc2VydmVyT3B0aW9ucy5jdXN0b21Vc2VyRGF0YURpciArIHNlc3Npb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdwcENsaWVudCA9IGF3YWl0IGNyZWF0ZShcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IHRva2VuU3RvcmU6IG15VG9rZW5TdG9yZSB9LFxuICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLmNyZWF0ZU9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgICAgICAgIGRldmljZU5hbWU6XG4gICAgICAgICAgICAgIGNsaWVudC5jb25maWc/LmRldmljZU5hbWUgfHwgcmVxLnNlcnZlck9wdGlvbnMuZGV2aWNlTmFtZSxcbiAgICAgICAgICAgIHBvd2VyZWRCeTpcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZz8ucG93ZXJlZEJ5IHx8XG4gICAgICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLnBvd2VyZWRCeSB8fFxuICAgICAgICAgICAgICAnV1BQQ29ubmVjdC1TZXJ2ZXInLFxuICAgICAgICAgICAgY2F0Y2hRUjogKFxuICAgICAgICAgICAgICBiYXNlNjRRcjogYW55LFxuICAgICAgICAgICAgICBhc2NpaVFSOiBhbnksXG4gICAgICAgICAgICAgIGF0dGVtcHQ6IGFueSxcbiAgICAgICAgICAgICAgdXJsQ29kZTogc3RyaW5nXG4gICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBvcnRRUihyZXEsIGJhc2U2NFFyLCB1cmxDb2RlLCBjbGllbnQsIHJlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Mb2FkaW5nU2NyZWVuOiAocGVyY2VudDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgcmVxLmxvZ2dlci5pbmZvKGBbJHtzZXNzaW9ufV0gJHtwZXJjZW50fSUgLSAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzRmluZDogKHN0YXR1c0ZpbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KFxuICAgICAgICAgICAgICAgICAgYHN0YXR1cy0ke2NsaWVudC5zZXNzaW9ufWAsXG4gICAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kID09PSAnYXV0b2Nsb3NlQ2FsbGVkJyB8fFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZCA9PT0gJ2Rlc2Nvbm5lY3RlZE1vYmlsZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5zdGF0dXMgPSAnQ0xPU0VEJztcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5xcmNvZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc3RhdHVzLWZpbmQnLCB7XG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IHN0YXR1c0ZpbmQsXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXEubG9nZ2VyLmluZm8oc3RhdHVzRmluZCArICdcXG5cXG4nKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0gT2JqZWN0LmFzc2lnbih3cHBDbGllbnQsIGNsaWVudCk7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KHJlcSwgY2xpZW50KTtcblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QYXJ0aWNpcGFudHNDaGFuZ2VkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcSwgY2xpZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25SZWFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJlYWN0aW9uTWVzc2FnZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUmV2b2tlZE1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJldm9rZWRNZXNzYWdlKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25Qb2xsUmVzcG9uc2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblBvbGxSZXNwb25zZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vbkxhYmVsVXBkYXRlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9uTGFiZWxVcGRhdGVkKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5kYXRhKHJlcTogUmVxdWVzdCwgc2Vzc2lvbjogc3RyaW5nLCByZXM/OiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb25VdGlsKHJlcSwgY2xpZW50c0FycmF5LCBzZXNzaW9uLCByZXMpO1xuICB9XG5cbiAgZXhwb3J0UVIoXG4gICAgcmVxOiBhbnksXG4gICAgcXJDb2RlOiBhbnksXG4gICAgdXJsQ29kZTogYW55LFxuICAgIGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsXG4gICAgcmVzPzogYW55XG4gICkge1xuICAgIGV2ZW50RW1pdHRlci5lbWl0KGBxcmNvZGUtJHtjbGllbnQuc2Vzc2lvbn1gLCBxckNvZGUsIHVybENvZGUsIGNsaWVudCk7XG4gICAgT2JqZWN0LmFzc2lnbihjbGllbnQsIHtcbiAgICAgIHN0YXR1czogJ1FSQ09ERScsXG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgfSk7XG5cbiAgICBxckNvZGUgPSBxckNvZGUucmVwbGFjZSgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcsICcnKTtcbiAgICBjb25zdCBpbWFnZUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHFyQ29kZSwgJ2Jhc2U2NCcpO1xuXG4gICAgcmVxLmlvLmVtaXQoJ3FyQ29kZScsIHtcbiAgICAgIGRhdGE6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGltYWdlQnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHNlc3Npb246IGNsaWVudC5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdxcmNvZGUnLCB7XG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICB9KTtcbiAgICBpZiAocmVzICYmICFyZXMuX2hlYWRlclNlbnQpXG4gICAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ3FyY29kZScsXG4gICAgICAgIHFyY29kZTogcXJDb2RlLFxuICAgICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcTogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBhcnRpY2lwYW50c0NoYW5nZWQoKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBhcnRpY2lwYW50c2NoYW5nZWQnLCBtZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KHJlcTogUmVxdWVzdCwgY2xpZW50OiBXaGF0c0FwcFNlcnZlcikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY2xpZW50LCB7IHN0YXR1czogJ0NPTk5FQ1RFRCcsIHFyY29kZTogbnVsbCB9KTtcblxuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGFydGVkIFNlc3Npb246ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICAvL2NhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc2Vzc2lvbi1sb2dnZWQnLCB7IHN0YXR1czogJ0NPTk5FQ1RFRCd9KTtcbiAgICAgIHJlcS5pby5lbWl0KCdzZXNzaW9uLWxvZ2dlZCcsIHsgc3RhdHVzOiB0cnVlLCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9KTtcbiAgICAgIHN0YXJ0SGVscGVyKGNsaWVudCwgcmVxKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICByZXEuaW8uZW1pdCgnc2Vzc2lvbi1lcnJvcicsIGNsaWVudC5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudCwgcmVxKTtcbiAgICBhd2FpdCB0aGlzLmxpc3Rlbk1lc3NhZ2VzKGNsaWVudCwgcmVxKTtcblxuICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmxpc3RlbkFja3MpIHtcbiAgICAgIGF3YWl0IHRoaXMubGlzdGVuQWNrcyhjbGllbnQsIHJlcSk7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QcmVzZW5jZUNoYW5nZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMub25QcmVzZW5jZUNoYW5nZWQoY2xpZW50LCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblN0YXRlQ2hhbmdlKChzdGF0ZSkgPT4ge1xuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGF0ZSBDaGFuZ2UgJHtzdGF0ZX06ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICBjb25zdCBjb25mbGl0cyA9IFtTb2NrZXRTdGF0ZS5DT05GTElDVF07XG5cbiAgICAgIGlmIChjb25mbGl0cy5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgICAgY2xpZW50LnVzZUhlcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3Rlbk1lc3NhZ2VzKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vbk1lc3NhZ2UoYXN5bmMgKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoYG1lbnNhZ2VtLSR7Y2xpZW50LnNlc3Npb259YCwgY2xpZW50LCBtZXNzYWdlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25tZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnbG9jYXRpb24nKVxuICAgICAgICBjbGllbnQub25MaXZlTG9jYXRpb24obWVzc2FnZS5zZW5kZXIuaWQsIChsb2NhdGlvbikgPT4ge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnbG9jYXRpb24nLCBsb2NhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uQW55TWVzc2FnZShhc3luYyAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICBtZXNzYWdlLnNlc3Npb24gPSBjbGllbnQuc2Vzc2lvbjtcblxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ3N0aWNrZXInKSB7XG4gICAgICAgIGRvd25sb2FkKG1lc3NhZ2UsIGNsaWVudCwgcmVxLmxvZ2dlcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnM/LndlYnNvY2tldD8uYXV0b0Rvd25sb2FkIHx8XG4gICAgICAgIChyZXEuc2VydmVyT3B0aW9ucz8ud2ViaG9vaz8uYXV0b0Rvd25sb2FkICYmIG1lc3NhZ2UuZnJvbU1lID09IGZhbHNlKVxuICAgICAgKSB7XG4gICAgICAgIGF3YWl0IGF1dG9Eb3dubG9hZChjbGllbnQsIHJlcSwgbWVzc2FnZSk7XG4gICAgICB9XG5cbiAgICAgIHJlcS5pby5lbWl0KCdyZWNlaXZlZC1tZXNzYWdlJywgeyByZXNwb25zZTogbWVzc2FnZSB9KTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uU2VsZk1lc3NhZ2UgJiYgbWVzc2FnZS5mcm9tTWUpXG4gICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25zZWxmbWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uSW5jb21pbmdDYWxsKGFzeW5jIChjYWxsKSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnaW5jb21pbmdjYWxsJywgY2FsbCk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ2luY29taW5nY2FsbCcsIGNhbGwpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdGVuQWNrcyhjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQub25BY2soYXN5bmMgKGFjaykgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29uYWNrJywgYWNrKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25hY2snLCBhY2spO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QcmVzZW5jZUNoYW5nZWQoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50Lm9uUHJlc2VuY2VDaGFuZ2VkKGFzeW5jIChwcmVzZW5jZUNoYW5nZWRFdmVudCkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucHJlc2VuY2VjaGFuZ2VkJywgcHJlc2VuY2VDaGFuZ2VkRXZlbnQpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnByZXNlbmNlY2hhbmdlZCcsIHByZXNlbmNlQ2hhbmdlZEV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUmVhY3Rpb25NZXNzYWdlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblJlYWN0aW9uTWVzc2FnZShhc3luYyAocmVhY3Rpb246IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucmVhY3Rpb25tZXNzYWdlJywgcmVhY3Rpb24pO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnJlYWN0aW9ubWVzc2FnZScsIHJlYWN0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUmV2b2tlZE1lc3NhZ2UoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uUmV2b2tlZE1lc3NhZ2UoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnJldm9rZWRtZXNzYWdlJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnJldm9rZWRtZXNzYWdlJywgcmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG4gIGFzeW5jIG9uUG9sbFJlc3BvbnNlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBvbGxSZXNwb25zZShhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucG9sbHJlc3BvbnNlJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBvbGxyZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuICBhc3luYyBvbkxhYmVsVXBkYXRlZChjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25VcGRhdGVMYWJlbChhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29udXBkYXRlbGFiZWwnLCByZXNwb25zZSk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29udXBkYXRlbGFiZWwnLCByZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cblxuICBlbmNvZGVGdW5jdGlvbihkYXRhOiBhbnksIHdlYmhvb2s6IGFueSkge1xuICAgIGRhdGEud2ViaG9vayA9IHdlYmhvb2s7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICB9XG5cbiAgZGVjb2RlRnVuY3Rpb24odGV4dDogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGNvbnN0IG9iamVjdCA9IEpTT04ucGFyc2UodGV4dCk7XG4gICAgaWYgKG9iamVjdC53ZWJob29rICYmICFjbGllbnQud2ViaG9vaykgY2xpZW50LndlYmhvb2sgPSBvYmplY3Qud2ViaG9vaztcbiAgICBkZWxldGUgb2JqZWN0LndlYmhvb2s7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIGdldENsaWVudChzZXNzaW9uOiBhbnkpIHtcbiAgICBsZXQgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuXG4gICAgaWYgKCFjbGllbnQpXG4gICAgICBjbGllbnQgPSBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB7XG4gICAgICAgIHN0YXR1czogbnVsbCxcbiAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgIH0gYXMgYW55O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBOzs7QUFHQSxJQUFBQyxrQkFBQSxHQUFBRCxPQUFBOztBQUVBLElBQUFFLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQSwwQkFBMkMsQ0F2QjNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQVdlLE1BQU1PLGlCQUFpQixDQUFDLENBQ3JDQyxtQkFBbUJBLENBQUNDLE1BQVcsRUFBRSxDQUMvQixJQUFJQSxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxJQUFJLENBQUNGLE1BQU0sQ0FBQ1AsZUFBZSxFQUNuRE8sTUFBTSxDQUFDUCxlQUFlLEdBQUcsSUFBSVUs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
327
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfc2Vzc2lvbkNvbnRyb2xsZXIiLCJfY2hhdFdvb3RDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Z1bmN0aW9ucyIsIl9zZXNzaW9uVXRpbCIsIl9mYWN0b3J5IiwiQ3JlYXRlU2Vzc2lvblV0aWwiLCJzdGFydENoYXRXb290Q2xpZW50IiwiY2xpZW50IiwiY29uZmlnIiwiY2hhdFdvb3QiLCJjaGF0V29vdENsaWVudCIsInNlc3Npb24iLCJjcmVhdGVTZXNzaW9uVXRpbCIsInJlcSIsImNsaWVudHNBcnJheSIsInJlcyIsImdldENsaWVudCIsInN0YXR1cyIsImJvZHkiLCJ0b2tlblN0b3JlIiwiRmFjdG9yeSIsIm15VG9rZW5TdG9yZSIsImNyZWF0ZVRva2VuU3RvcnkiLCJ0b2tlbkRhdGEiLCJnZXRUb2tlbiIsInNldFRva2VuIiwic2VydmVyT3B0aW9ucyIsImN1c3RvbVVzZXJEYXRhRGlyIiwiY3JlYXRlT3B0aW9ucyIsInB1cHBldGVlck9wdGlvbnMiLCJ1c2VyRGF0YURpciIsIndwcENsaWVudCIsImNyZWF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJjYXRjaFFSIiwiYmFzZTY0UXIiLCJhc2NpaVFSIiwiYXR0ZW1wdCIsInVybENvZGUiLCJleHBvcnRRUiIsIm9uTG9hZGluZ1NjcmVlbiIsInBlcmNlbnQiLCJtZXNzYWdlIiwibG9nZ2VyIiwiaW5mbyIsInN0YXR1c0ZpbmQiLCJldmVudEVtaXR0ZXIiLCJlbWl0IiwicXJjb2RlIiwiY2xvc2UiLCJ1bmRlZmluZWQiLCJjYWxsV2ViSG9vayIsImVycm9yIiwic3RhcnQiLCJ3ZWJob29rIiwib25QYXJ0aWNpcGFudHNDaGFuZ2VkIiwib25SZWFjdGlvbk1lc3NhZ2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvbkxhYmVsVXBkYXRlZCIsImUiLCJvcGVuZGF0YSIsInFyQ29kZSIsInVybGNvZGUiLCJyZXBsYWNlIiwiaW1hZ2VCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaW8iLCJkYXRhIiwidG9TdHJpbmciLCJfaGVhZGVyU2VudCIsImpzb24iLCJpc0Nvbm5lY3RlZCIsInN0YXJ0SGVscGVyIiwiY2hlY2tTdGF0ZVNlc3Npb24iLCJsaXN0ZW5NZXNzYWdlcyIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uU3RhdGVDaGFuZ2UiLCJzdGF0ZSIsImNvbmZsaXRzIiwiU29ja2V0U3RhdGUiLCJDT05GTElDVCIsImluY2x1ZGVzIiwidXNlSGVyZSIsIm9uTWVzc2FnZSIsInR5cGUiLCJvbkxpdmVMb2NhdGlvbiIsInNlbmRlciIsImlkIiwibG9jYXRpb24iLCJvbkFueU1lc3NhZ2UiLCJkb3dubG9hZCIsIndlYnNvY2tldCIsImF1dG9Eb3dubG9hZCIsImZyb21NZSIsInJlc3BvbnNlIiwib25TZWxmTWVzc2FnZSIsIm9uSW5jb21pbmdDYWxsIiwiY2FsbCIsIm9uQWNrIiwiYWNrIiwicHJlc2VuY2VDaGFuZ2VkRXZlbnQiLCJyZWFjdGlvbiIsIm9uVXBkYXRlTGFiZWwiLCJlbmNvZGVGdW5jdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGVGdW5jdGlvbiIsInRleHQiLCJvYmplY3QiLCJwYXJzZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY3JlYXRlU2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlLCBTb2NrZXRTdGF0ZSB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vY29udHJvbGxlci9zZXNzaW9uQ29udHJvbGxlcic7XG5pbXBvcnQgeyBXaGF0c0FwcFNlcnZlciB9IGZyb20gJy4uL3R5cGVzL1doYXRzQXBwU2VydmVyJztcbmltcG9ydCBjaGF0V29vdENsaWVudCBmcm9tICcuL2NoYXRXb290Q2xpZW50JztcbmltcG9ydCB7IGF1dG9Eb3dubG9hZCwgY2FsbFdlYkhvb2ssIHN0YXJ0SGVscGVyIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgY2xpZW50c0FycmF5LCBldmVudEVtaXR0ZXIgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcbmltcG9ydCBGYWN0b3J5IGZyb20gJy4vdG9rZW5TdG9yZS9mYWN0b3J5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3JlYXRlU2Vzc2lvblV0aWwge1xuICBzdGFydENoYXRXb290Q2xpZW50KGNsaWVudDogYW55KSB7XG4gICAgaWYgKGNsaWVudC5jb25maWcuY2hhdFdvb3QgJiYgIWNsaWVudC5fY2hhdFdvb3RDbGllbnQpXG4gICAgICBjbGllbnQuX2NoYXRXb290Q2xpZW50ID0gbmV3IGNoYXRXb290Q2xpZW50KFxuICAgICAgICBjbGllbnQuY29uZmlnLmNoYXRXb290LFxuICAgICAgICBjbGllbnQuc2Vzc2lvblxuICAgICAgKTtcbiAgICByZXR1cm4gY2xpZW50Ll9jaGF0V29vdENsaWVudDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb25VdGlsKFxuICAgIHJlcTogYW55LFxuICAgIGNsaWVudHNBcnJheTogYW55LFxuICAgIHNlc3Npb246IHN0cmluZyxcbiAgICByZXM/OiBhbnlcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBjbGllbnQgPSB0aGlzLmdldENsaWVudChzZXNzaW9uKSBhcyBhbnk7XG4gICAgICBpZiAoY2xpZW50LnN0YXR1cyAhPSBudWxsICYmIGNsaWVudC5zdGF0dXMgIT09ICdDTE9TRUQnKSByZXR1cm47XG4gICAgICBjbGllbnQuc3RhdHVzID0gJ0lOSVRJQUxJWklORyc7XG4gICAgICBjbGllbnQuY29uZmlnID0gcmVxLmJvZHk7XG5cbiAgICAgIGNvbnN0IHRva2VuU3RvcmUgPSBuZXcgRmFjdG9yeSgpO1xuICAgICAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KGNsaWVudCk7XG4gICAgICBjb25zdCB0b2tlbkRhdGEgPSBhd2FpdCBteVRva2VuU3RvcmUuZ2V0VG9rZW4oc2Vzc2lvbik7XG5cbiAgICAgIGlmICghdG9rZW5EYXRhKSB7XG4gICAgICAgIG15VG9rZW5TdG9yZS5zZXRUb2tlbihzZXNzaW9uLCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhcnRDaGF0V29vdENsaWVudChjbGllbnQpO1xuXG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMuY3VzdG9tVXNlckRhdGFEaXIpIHtcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnMuY3JlYXRlT3B0aW9ucy5wdXBwZXRlZXJPcHRpb25zID0ge1xuICAgICAgICAgIHVzZXJEYXRhRGlyOiByZXEuc2VydmVyT3B0aW9ucy5jdXN0b21Vc2VyRGF0YURpciArIHNlc3Npb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdwcENsaWVudCA9IGF3YWl0IGNyZWF0ZShcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IHRva2VuU3RvcmU6IG15VG9rZW5TdG9yZSB9LFxuICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLmNyZWF0ZU9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgICAgICAgIGRldmljZU5hbWU6XG4gICAgICAgICAgICAgIGNsaWVudC5jb25maWc/LmRldmljZU5hbWUgfHwgcmVxLnNlcnZlck9wdGlvbnMuZGV2aWNlTmFtZSxcbiAgICAgICAgICAgIHBvd2VyZWRCeTpcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZz8ucG93ZXJlZEJ5IHx8XG4gICAgICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLnBvd2VyZWRCeSB8fFxuICAgICAgICAgICAgICAnV1BQQ29ubmVjdC1TZXJ2ZXInLFxuICAgICAgICAgICAgY2F0Y2hRUjogKFxuICAgICAgICAgICAgICBiYXNlNjRRcjogYW55LFxuICAgICAgICAgICAgICBhc2NpaVFSOiBhbnksXG4gICAgICAgICAgICAgIGF0dGVtcHQ6IGFueSxcbiAgICAgICAgICAgICAgdXJsQ29kZTogc3RyaW5nXG4gICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBvcnRRUihyZXEsIGJhc2U2NFFyLCB1cmxDb2RlLCBjbGllbnQsIHJlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Mb2FkaW5nU2NyZWVuOiAocGVyY2VudDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgcmVxLmxvZ2dlci5pbmZvKGBbJHtzZXNzaW9ufV0gJHtwZXJjZW50fSUgLSAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzRmluZDogKHN0YXR1c0ZpbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KFxuICAgICAgICAgICAgICAgICAgYHN0YXR1cy0ke2NsaWVudC5zZXNzaW9ufWAsXG4gICAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kID09PSAnYXV0b2Nsb3NlQ2FsbGVkJyB8fFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZCA9PT0gJ2Rlc2Nvbm5lY3RlZE1vYmlsZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5zdGF0dXMgPSAnQ0xPU0VEJztcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5xcmNvZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc3RhdHVzLWZpbmQnLCB7XG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IHN0YXR1c0ZpbmQsXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXEubG9nZ2VyLmluZm8oc3RhdHVzRmluZCArICdcXG5cXG4nKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0gT2JqZWN0LmFzc2lnbih3cHBDbGllbnQsIGNsaWVudCk7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KHJlcSwgY2xpZW50KTtcblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QYXJ0aWNpcGFudHNDaGFuZ2VkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcSwgY2xpZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25SZWFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJlYWN0aW9uTWVzc2FnZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUmV2b2tlZE1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJldm9rZWRNZXNzYWdlKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25Qb2xsUmVzcG9uc2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblBvbGxSZXNwb25zZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vbkxhYmVsVXBkYXRlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9uTGFiZWxVcGRhdGVkKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5kYXRhKHJlcTogUmVxdWVzdCwgc2Vzc2lvbjogc3RyaW5nLCByZXM/OiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb25VdGlsKHJlcSwgY2xpZW50c0FycmF5LCBzZXNzaW9uLCByZXMpO1xuICB9XG5cbiAgZXhwb3J0UVIoXG4gICAgcmVxOiBhbnksXG4gICAgcXJDb2RlOiBhbnksXG4gICAgdXJsQ29kZTogYW55LFxuICAgIGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsXG4gICAgcmVzPzogYW55XG4gICkge1xuICAgIGV2ZW50RW1pdHRlci5lbWl0KGBxcmNvZGUtJHtjbGllbnQuc2Vzc2lvbn1gLCBxckNvZGUsIHVybENvZGUsIGNsaWVudCk7XG4gICAgT2JqZWN0LmFzc2lnbihjbGllbnQsIHtcbiAgICAgIHN0YXR1czogJ1FSQ09ERScsXG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgfSk7XG5cbiAgICBxckNvZGUgPSBxckNvZGUucmVwbGFjZSgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcsICcnKTtcbiAgICBjb25zdCBpbWFnZUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHFyQ29kZSwgJ2Jhc2U2NCcpO1xuXG4gICAgcmVxLmlvLmVtaXQoJ3FyQ29kZScsIHtcbiAgICAgIGRhdGE6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGltYWdlQnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHNlc3Npb246IGNsaWVudC5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdxcmNvZGUnLCB7XG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICB9KTtcbiAgICBpZiAocmVzICYmICFyZXMuX2hlYWRlclNlbnQpXG4gICAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ3FyY29kZScsXG4gICAgICAgIHFyY29kZTogcXJDb2RlLFxuICAgICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcTogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBhcnRpY2lwYW50c0NoYW5nZWQoKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBhcnRpY2lwYW50c2NoYW5nZWQnLCBtZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KHJlcTogUmVxdWVzdCwgY2xpZW50OiBXaGF0c0FwcFNlcnZlcikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY2xpZW50LCB7IHN0YXR1czogJ0NPTk5FQ1RFRCcsIHFyY29kZTogbnVsbCB9KTtcblxuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGFydGVkIFNlc3Npb246ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICAvL2NhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc2Vzc2lvbi1sb2dnZWQnLCB7IHN0YXR1czogJ0NPTk5FQ1RFRCd9KTtcbiAgICAgIHJlcS5pby5lbWl0KCdzZXNzaW9uLWxvZ2dlZCcsIHsgc3RhdHVzOiB0cnVlLCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9KTtcbiAgICAgIHN0YXJ0SGVscGVyKGNsaWVudCwgcmVxKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICByZXEuaW8uZW1pdCgnc2Vzc2lvbi1lcnJvcicsIGNsaWVudC5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudCwgcmVxKTtcbiAgICBhd2FpdCB0aGlzLmxpc3Rlbk1lc3NhZ2VzKGNsaWVudCwgcmVxKTtcblxuICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmxpc3RlbkFja3MpIHtcbiAgICAgIGF3YWl0IHRoaXMubGlzdGVuQWNrcyhjbGllbnQsIHJlcSk7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QcmVzZW5jZUNoYW5nZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMub25QcmVzZW5jZUNoYW5nZWQoY2xpZW50LCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblN0YXRlQ2hhbmdlKChzdGF0ZSkgPT4ge1xuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGF0ZSBDaGFuZ2UgJHtzdGF0ZX06ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICBjb25zdCBjb25mbGl0cyA9IFtTb2NrZXRTdGF0ZS5DT05GTElDVF07XG5cbiAgICAgIGlmIChjb25mbGl0cy5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgICAgY2xpZW50LnVzZUhlcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3Rlbk1lc3NhZ2VzKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vbk1lc3NhZ2UoYXN5bmMgKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoYG1lbnNhZ2VtLSR7Y2xpZW50LnNlc3Npb259YCwgY2xpZW50LCBtZXNzYWdlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25tZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnbG9jYXRpb24nKVxuICAgICAgICBjbGllbnQub25MaXZlTG9jYXRpb24obWVzc2FnZS5zZW5kZXIuaWQsIChsb2NhdGlvbikgPT4ge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnbG9jYXRpb24nLCBsb2NhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uQW55TWVzc2FnZShhc3luYyAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICBtZXNzYWdlLnNlc3Npb24gPSBjbGllbnQuc2Vzc2lvbjtcblxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ3N0aWNrZXInKSB7XG4gICAgICAgIGRvd25sb2FkKG1lc3NhZ2UsIGNsaWVudCwgcmVxLmxvZ2dlcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnM/LndlYnNvY2tldD8uYXV0b0Rvd25sb2FkIHx8XG4gICAgICAgIChyZXEuc2VydmVyT3B0aW9ucz8ud2ViaG9vaz8uYXV0b0Rvd25sb2FkICYmIG1lc3NhZ2UuZnJvbU1lID09IGZhbHNlKVxuICAgICAgKSB7XG4gICAgICAgIGF3YWl0IGF1dG9Eb3dubG9hZChjbGllbnQsIHJlcSwgbWVzc2FnZSk7XG4gICAgICB9XG5cbiAgICAgIHJlcS5pby5lbWl0KCdyZWNlaXZlZC1tZXNzYWdlJywgeyByZXNwb25zZTogbWVzc2FnZSB9KTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uU2VsZk1lc3NhZ2UgJiYgbWVzc2FnZS5mcm9tTWUpXG4gICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25zZWxmbWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uSW5jb21pbmdDYWxsKGFzeW5jIChjYWxsKSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnaW5jb21pbmdjYWxsJywgY2FsbCk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ2luY29taW5nY2FsbCcsIGNhbGwpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbGlzdGVuQWNrcyhjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQub25BY2soYXN5bmMgKGFjaykgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29uYWNrJywgYWNrKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25hY2snLCBhY2spO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QcmVzZW5jZUNoYW5nZWQoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50Lm9uUHJlc2VuY2VDaGFuZ2VkKGFzeW5jIChwcmVzZW5jZUNoYW5nZWRFdmVudCkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucHJlc2VuY2VjaGFuZ2VkJywgcHJlc2VuY2VDaGFuZ2VkRXZlbnQpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnByZXNlbmNlY2hhbmdlZCcsIHByZXNlbmNlQ2hhbmdlZEV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUmVhY3Rpb25NZXNzYWdlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblJlYWN0aW9uTWVzc2FnZShhc3luYyAocmVhY3Rpb246IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucmVhY3Rpb25tZXNzYWdlJywgcmVhY3Rpb24pO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnJlYWN0aW9ubWVzc2FnZScsIHJlYWN0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUmV2b2tlZE1lc3NhZ2UoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uUmV2b2tlZE1lc3NhZ2UoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnJldm9rZWRtZXNzYWdlJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnJldm9rZWRtZXNzYWdlJywgcmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG4gIGFzeW5jIG9uUG9sbFJlc3BvbnNlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBvbGxSZXNwb25zZShhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29ucG9sbHJlc3BvbnNlJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBvbGxyZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuICBhc3luYyBvbkxhYmVsVXBkYXRlZChjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25VcGRhdGVMYWJlbChhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ29udXBkYXRlbGFiZWwnLCByZXNwb25zZSk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29udXBkYXRlbGFiZWwnLCByZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cblxuICBlbmNvZGVGdW5jdGlvbihkYXRhOiBhbnksIHdlYmhvb2s6IGFueSkge1xuICAgIGRhdGEud2ViaG9vayA9IHdlYmhvb2s7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICB9XG5cbiAgZGVjb2RlRnVuY3Rpb24odGV4dDogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGNvbnN0IG9iamVjdCA9IEpTT04ucGFyc2UodGV4dCk7XG4gICAgaWYgKG9iamVjdC53ZWJob29rICYmICFjbGllbnQud2ViaG9vaykgY2xpZW50LndlYmhvb2sgPSBvYmplY3Qud2ViaG9vaztcbiAgICBkZWxldGUgb2JqZWN0LndlYmhvb2s7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIGdldENsaWVudChzZXNzaW9uOiBhbnkpIHtcbiAgICBsZXQgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuXG4gICAgaWYgKCFjbGllbnQpXG4gICAgICBjbGllbnQgPSBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB7XG4gICAgICAgIHN0YXR1czogbnVsbCxcbiAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgIH0gYXMgYW55O1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBOzs7QUFHQSxJQUFBQyxrQkFBQSxHQUFBRCxPQUFBOztBQUVBLElBQUFFLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQSwwQkFBMkMsQ0F2QjNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQVdlLE1BQU1PLGlCQUFpQixDQUFDLENBQ3JDQyxtQkFBbUJBLENBQUNDLE1BQVcsRUFBRSxDQUMvQixJQUFJQSxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxJQUFJLENBQUNGLE1BQU0sQ0FBQ1AsZUFBZSxFQUNuRE8sTUFBTSxDQUFDUCxlQUFlLEdBQUcsSUFBSVUs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
@@ -28,4 +28,4 @@ if (_config.default.tokenStoreType === 'mongodb') {
28
28
  }var _default = exports.default =
29
29
 
30
30
  mongoose;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJtb25nb29zZSIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUHJvbWlzZSIsImdsb2JhbCIsInVzZXJBbmRQYXNzd29yZCIsImRiIiwibW9uZ29kYlVzZXIiLCJtb25nb2RiUGFzc3dvcmQiLCJtb25nb0lzUmVtb3RlIiwiY29ubmVjdCIsIm1vbmdvZGJIb3N0IiwibW9uZ29kYlBvcnQiLCJtb25nb2RiRGF0YWJhc2UiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJtb25nb1VSTFJlbW90ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9kYi9tb25nb2RiL2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9uZ29vc2UgPVxuICBjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdtb25nb2RiJyA/IHJlcXVpcmUoJ21vbmdvb3NlJykgOiBudWxsO1xuXG5pZiAoY29uZmlnLnRva2VuU3RvcmVUeXBlID09PSAnbW9uZ29kYicpIHtcbiAgbW9uZ29vc2UuUHJvbWlzZSA9IGdsb2JhbC5Qcm9taXNlO1xuICBjb25zdCB1c2VyQW5kUGFzc3dvcmQgPVxuICAgIGNvbmZpZy5kYi5tb25nb2RiVXNlciAmJiBjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkXG4gICAgICA/IGAke2NvbmZpZy5kYi5tb25nb2RiVXNlcn06JHtjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkfUBgXG4gICAgICA6ICcnO1xuXG4gIGlmICghY29uZmlnLmRiLm1vbmdvSXNSZW1vdGUpIHtcbiAgICBtb25nb29zZS5jb25uZWN0KFxuICAgICAgYG1vbmdvZGI6Ly8ke3VzZXJBbmRQYXNzd29yZH0ke2NvbmZpZy5kYi5tb25nb2RiSG9zdH06JHtjb25maWcuZGIubW9uZ29kYlBvcnR9LyR7Y29uZmlnLmRiLm1vbmdvZGJEYXRhYmFzZX1gLFxuICAgICAge1xuICAgICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG1vbmdvb3NlLmNvbm5lY3QoY29uZmlnLmRiLm1vbmdvVVJMUmVtb3RlLCB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9uZ29vc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEscUJBQXFDLENBRHJDOztBQUdBLE1BQU1DLFFBQVE7QUFDWkMsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxHQUFHSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTs7QUFFbEUsSUFBSUUsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxFQUFFO0VBQ3ZDRixRQUFRLENBQUNHLE9BQU8sR0FBR0MsTUFBTSxDQUFDRCxPQUFPO0VBQ2pDLE1BQU1FLGVBQWU7RUFDbkJKLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlO0VBQzdDLEdBQUVQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFZLElBQUdOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFnQixHQUFFO0VBQ3hELEVBQUU7O0VBRVIsSUFBSSxDQUFDUCxlQUFNLENBQUNLLEVBQUUsQ0FBQ0csYUFBYSxFQUFFO0lBQzVCVCxRQUFRLENBQUNVLE9BQU87TUFDYixhQUFZTCxlQUFnQixHQUFFSixlQUFNLENBQUNLLEVBQUUsQ0FBQ0ssV0FBWSxJQUFHVixlQUFNLENBQUNLLEVBQUUsQ0FBQ00sV0FBWSxJQUFHWCxlQUFNLENBQUNLLEVBQUUsQ0FBQ08sZUFBZ0IsRUFBQztNQUM1RztRQUNFQyxlQUFlLEVBQUUsSUFBSTtRQUNyQkMsa0JBQWtCLEVBQUU7TUFDdEI7SUFDRixDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0xmLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDVCxlQUFNLENBQUNLLEVBQUUsQ0FBQ1UsY0FBYyxFQUFFO01BQ3pDRixlQUFlLEVBQUUsSUFBSTtNQUNyQkMsa0JBQWtCLEVBQUU7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjbkIsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJtb25nb29zZSIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUHJvbWlzZSIsImdsb2JhbCIsInVzZXJBbmRQYXNzd29yZCIsImRiIiwibW9uZ29kYlVzZXIiLCJtb25nb2RiUGFzc3dvcmQiLCJtb25nb0lzUmVtb3RlIiwiY29ubmVjdCIsIm1vbmdvZGJIb3N0IiwibW9uZ29kYlBvcnQiLCJtb25nb2RiRGF0YWJhc2UiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJtb25nb1VSTFJlbW90ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9kYi9tb25nb2RiL2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9uZ29vc2UgPVxuICBjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdtb25nb2RiJyA/IHJlcXVpcmUoJ21vbmdvb3NlJykgOiBudWxsO1xuXG5pZiAoY29uZmlnLnRva2VuU3RvcmVUeXBlID09PSAnbW9uZ29kYicpIHtcbiAgbW9uZ29vc2UuUHJvbWlzZSA9IGdsb2JhbC5Qcm9taXNlO1xuICBjb25zdCB1c2VyQW5kUGFzc3dvcmQgPVxuICAgIGNvbmZpZy5kYi5tb25nb2RiVXNlciAmJiBjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkXG4gICAgICA/IGAke2NvbmZpZy5kYi5tb25nb2RiVXNlcn06JHtjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkfUBgXG4gICAgICA6ICcnO1xuXG4gIGlmICghY29uZmlnLmRiLm1vbmdvSXNSZW1vdGUpIHtcbiAgICBtb25nb29zZS5jb25uZWN0KFxuICAgICAgYG1vbmdvZGI6Ly8ke3VzZXJBbmRQYXNzd29yZH0ke2NvbmZpZy5kYi5tb25nb2RiSG9zdH06JHtjb25maWcuZGIubW9uZ29kYlBvcnR9LyR7Y29uZmlnLmRiLm1vbmdvZGJEYXRhYmFzZX1gLFxuICAgICAge1xuICAgICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG1vbmdvb3NlLmNvbm5lY3QoY29uZmlnLmRiLm1vbmdvVVJMUmVtb3RlLCB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9uZ29vc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEscUJBQXFDLENBRHJDOztBQUdBLE1BQU1DLFFBQVE7QUFDWkMsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxHQUFHSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTs7QUFFbEUsSUFBSUUsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxFQUFFO0VBQ3ZDRixRQUFRLENBQUNHLE9BQU8sR0FBR0MsTUFBTSxDQUFDRCxPQUFPO0VBQ2pDLE1BQU1FLGVBQWU7RUFDbkJKLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlO0VBQzlDLEdBQUdQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlLEdBQUc7RUFDeEQsRUFBRTs7RUFFUixJQUFJLENBQUNQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRyxhQUFhLEVBQUU7SUFDNUJULFFBQVEsQ0FBQ1UsT0FBTztNQUNkLGFBQWFMLGVBQWUsR0FBR0osZUFBTSxDQUFDSyxFQUFFLENBQUNLLFdBQVcsSUFBSVYsZUFBTSxDQUFDSyxFQUFFLENBQUNNLFdBQVcsSUFBSVgsZUFBTSxDQUFDSyxFQUFFLENBQUNPLGVBQWUsRUFBRTtNQUM1RztRQUNFQyxlQUFlLEVBQUUsSUFBSTtRQUNyQkMsa0JBQWtCLEVBQUU7TUFDdEI7SUFDRixDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0xmLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDVCxlQUFNLENBQUNLLEVBQUUsQ0FBQ1UsY0FBYyxFQUFFO01BQ3pDRixlQUFlLEVBQUUsSUFBSTtNQUNyQkMsa0JBQWtCLEVBQUU7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjbkIsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -187,8 +187,8 @@ async function autoDownload(client, req, message) {
187
187
  `${Math.floor(Math.random() * (999 - 100 + 1)) + 100}` :
188
188
  bucketName;
189
189
  const fileName = `${
190
- _config.default.aws_s3.defaultBucketName ? client.session + '/' : ''
191
- }${hashName}.${mime.extension(message.mimetype)}`;
190
+ _config.default.aws_s3.defaultBucketName ? client.session + '/' : ''}${
191
+ hashName}.${mime.extension(message.mimetype)}`;
192
192
 
193
193
  if (
194
194
  !_config.default.aws_s3.defaultBucketName &&
@@ -367,4 +367,4 @@ function createCatalogLink(session) {
367
367
  const [wid] = session.split('@');
368
368
  return `https://wa.me/c/${wid}`;
369
369
  }
370
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyeXB0byIsIl9mcyIsIl9taW1lVHlwZXMiLCJfb3MiLCJfcGF0aCIsIl91dGlsIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9idWNrZXRBbHJlYWR5RXhpc3RzIiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsIndlYnNvY2tldCIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImlzTmV3c2xldHRlciIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImlnbm9yZSIsImluY2x1ZGVzIiwiZnJvbSIsInR5cGUiLCJhdXRvRG93bmxvYWQiLCJjaGF0SWQiLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJyZWFkTWVzc2FnZSIsInNlbmRTZWVuIiwiZSIsImNhdGNoIiwibG9nZ2VyIiwid2FybiIsImVycm9yIiwibWVzc2FnZSIsImlzTWVkaWEiLCJpc01NUyIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwiaGFzaE5hbWUiLCJyYW5kb21CeXRlcyIsInRvU3RyaW5nIiwiYXdzX3MzIiwicmVnaW9uIiwiYWNjZXNzX2tleV9pZCIsInNlY3JldF9rZXkiLCJFcnJvciIsInMzQ2xpZW50IiwiUzNDbGllbnQiLCJlbmRwb2ludCIsInVuZGVmaW5lZCIsImZvcmNlUGF0aFN0eWxlIiwiYnVja2V0TmFtZSIsImRlZmF1bHRCdWNrZXROYW1lIiwibm9ybWFsaXplIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJmaWxlTmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwiYnVja2V0QWxyZWFkeUV4aXN0cyIsInNlbmQiLCJDcmVhdGVCdWNrZXRDb21tYW5kIiwiQnVja2V0IiwiT2JqZWN0T3duZXJzaGlwIiwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwiQmxvY2tQdWJsaWNBY2xzIiwiSWdub3JlUHVibGljQWNscyIsIkJsb2NrUHVibGljUG9saWN5IiwiUHV0T2JqZWN0Q29tbWFuZCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsIkFDTCIsImZpbGVVcmwiLCJib2R5Iiwic3RhcnRBbGxTZXNzaW9ucyIsImhvc3QiLCJwb3J0Iiwic2VjcmV0S2V5Iiwic3RhcnRIZWxwZXIiLCJhbGxVbnJlYWRPblN0YXJ0Iiwic2VuZFVucmVhZCIsImFyY2hpdmUiLCJpbmZvIiwiY2hhdHMiLCJnZXRBbGxDaGF0c1dpdGhNZXNzYWdlcyIsImkiLCJqIiwibXNncyIsImV4Iiwic2xlZXAiLCJ0aW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiZ2V0QWxsQ2hhdHMiLCJmaWx0ZXIiLCJjIiwiZGF0ZSIsIkRhdGUiLCJ0IiwiRGF5c0JldHdlZW4iLCJkYXlzVG9BcmNoaXZlIiwiYXJjaGl2ZUNoYXQiLCJpZCIsIndhaXRUaW1lIiwiU3RhcnREYXRlIiwiZW5kRGF0ZSIsIm9uZURheSIsInN0YXJ0IiwiVVRDIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJlbmQiLCJjcmVhdGVGb2xkZXJzIiwiX19kaXJuYW1lIiwicGF0aCIsImRpcm5hbWUiLCJkaXJGaWxlcyIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImRpclVwbG9hZCIsInN0clRvQm9vbCIsInMiLCJ0ZXN0IiwiZ2V0SVBBZGRyZXNzIiwiaW50ZXJmYWNlcyIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJkZXZOYW1lIiwiaWZhY2UiLCJhbGlhcyIsImZhbWlseSIsImFkZHJlc3MiLCJpbnRlcm5hbCIsInNldE1heExpc3RuZXJzIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwibWF4TGlzdGVuZXJzIiwicHJvY2VzcyIsInNldE1heExpc3RlbmVycyIsInVubGlua0FzeW5jIiwiZXhwb3J0cyIsInByb21pc2lmeSIsInVubGluayIsImNyZWF0ZUNhdGFsb2dMaW5rIiwid2lkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZnVuY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMyBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIENyZWF0ZUJ1Y2tldENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgUzNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgYXBpIGZyb20gJ2F4aW9zJztcbmltcG9ydCBDcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbWltZXR5cGVzIGZyb20gJ21pbWUtdHlwZXMnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuLi9tYXBwZXIvaW5kZXgnO1xuaW1wb3J0IHsgU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzL1NlcnZlck9wdGlvbnMnO1xuaW1wb3J0IHsgYnVja2V0QWxyZWFkeUV4aXN0cyB9IGZyb20gJy4vYnVja2V0QWxyZWFkeUV4aXN0cyc7XG5cbmxldCBtaW1lOiBhbnksIGNyeXB0bzogYW55OyAvLywgYXdzOiBhbnk7XG5pZiAoY29uZmlnLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgbWltZSA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gbWltZXR5cGVzIDogbnVsbDtcbiAgY3J5cHRvID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuaWYgKGNvbmZpZz8ud2Vic29ja2V0Py51cGxvYWRTMykge1xuICBtaW1lID0gY29uZmlnLndlYnNvY2tldC51cGxvYWRTMyA/IG1pbWV0eXBlcyA6IG51bGw7XG4gIGNyeXB0byA9IGNvbmZpZy53ZWJzb2NrZXQudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFjdFRvQXJyYXkoXG4gIG51bWJlcjogYW55LFxuICBpc0dyb3VwPzogYm9vbGVhbixcbiAgaXNOZXdzbGV0dGVyPzogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobnVtYmVyKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgbnVtYmVyKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBudW1iZXIuc3BsaXQoL1xccypbLDtdXFxzKi9nKTtcbiAgICBmb3IgKGxldCBjb250YWN0IG9mIGFyckNvbnRhY3RzKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9jYWxBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cFRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgZ3JvdXApIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IGdyb3VwLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBOYW1lVG9BcnJheShncm91cDogYW55KSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZ3JvdXApKSB7XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFdlYkhvb2soXG4gIGNsaWVudDogYW55LFxuICByZXE6IFJlcXVlc3QsXG4gIGV2ZW50OiBhbnksXG4gIGRhdGE6IGFueVxuKSB7XG4gIGNvbnN0IHdlYmhvb2sgPVxuICAgIGNsaWVudD8uY29uZmlnLndlYmhvb2sgfHwgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cmwgfHwgZmFsc2U7XG4gIGlmICh3ZWJob29rKSB7XG4gICAgaWYgKFxuICAgICAgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vaz8uaWdub3JlICYmXG4gICAgICAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5pZ25vcmUuaW5jbHVkZXMoZXZlbnQpIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LmZyb20pIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LnR5cGUpKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hdXRvRG93bmxvYWQpXG4gICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGF0SWQgPVxuICAgICAgICBkYXRhLmZyb20gfHxcbiAgICAgICAgZGF0YS5jaGF0SWQgfHxcbiAgICAgICAgKGRhdGEuY2hhdElkID8gZGF0YS5jaGF0SWQuX3NlcmlhbGl6ZWQgOiBudWxsKTtcbiAgICAgIGRhdGEgPSBPYmplY3QuYXNzaWduKHsgZXZlbnQ6IGV2ZW50LCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9LCBkYXRhKTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIuZW5hYmxlKVxuICAgICAgICBkYXRhID0gYXdhaXQgY29udmVydChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIucHJlZml4LCBkYXRhKTtcbiAgICAgIGFwaVxuICAgICAgICAucG9zdCh3ZWJob29rLCBkYXRhKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IFsndW5yZWFkbWVzc2FnZXMnLCAnb25tZXNzYWdlJ107XG4gICAgICAgICAgICBpZiAoZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSAmJiByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnJlYWRNZXNzYWdlKVxuICAgICAgICAgICAgICBjbGllbnQuc2VuZFNlZW4oY2hhdElkKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICByZXEubG9nZ2VyLndhcm4oJ0Vycm9yIGNhbGxpbmcgV2ViaG9vay4nLCBlKTtcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGF1dG9Eb3dubG9hZChjbGllbnQ6IGFueSwgcmVxOiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChtZXNzYWdlICYmIChtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgaWYgKFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnVwbG9hZFMzIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zPy53ZWJzb2NrZXQ/LnVwbG9hZFMzXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaGFzaE5hbWUgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMjQpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5yZWdpb24gfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LmFjY2Vzc19rZXlfaWQgfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LnNlY3JldF9rZXlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlLCBjb25maWd1cmUgeW91ciBhd3MgY29uZmlncycpO1xuICAgICAgICBjb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCh7XG4gICAgICAgICAgcmVnaW9uOiBjb25maWc/LmF3c19zMz8ucmVnaW9uLFxuICAgICAgICAgIGVuZHBvaW50OiBjb25maWc/LmF3c19zMz8uZW5kcG9pbnQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGZvcmNlUGF0aFN0eWxlOiBjb25maWc/LmF3c19zMz8uZm9yY2VQYXRoU3R5bGUgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGJ1Y2tldE5hbWUgPSBjb25maWc/LmF3c19zMz8uZGVmYXVsdEJ1Y2tldE5hbWVcbiAgICAgICAgICA/IGNvbmZpZz8uYXdzX3MzPy5kZWZhdWx0QnVja2V0TmFtZVxuICAgICAgICAgIDogY2xpZW50LnNlc3Npb247XG4gICAgICAgIGJ1Y2tldE5hbWUgPSBidWNrZXROYW1lXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl18W+KAlCBfLiw/IV0vZywgJycpXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGJ1Y2tldE5hbWUgPVxuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIDwgM1xuICAgICAgICAgICAgPyBidWNrZXROYW1lICtcbiAgICAgICAgICAgICAgYCR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDk5OSAtIDEwMCArIDEpKSArIDEwMH1gXG4gICAgICAgICAgICA6IGJ1Y2tldE5hbWU7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7XG4gICAgICAgICAgY29uZmlnLmF3c19zMy5kZWZhdWx0QnVja2V0TmFtZSA/IGNsaWVudC5zZXNzaW9uICsgJy8nIDogJydcbiAgICAgICAgfSR7aGFzaE5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZy5hd3NfczMuZGVmYXVsdEJ1Y2tldE5hbWUgJiZcbiAgICAgICAgICAhKGF3YWl0IGJ1Y2tldEFscmVhZHlFeGlzdHMoYnVja2V0TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgQ3JlYXRlQnVja2V0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgT2JqZWN0T3duZXJzaGlwOiAnT2JqZWN0V3JpdGVyJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgQmxvY2tQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgIEtleTogZmlsZU5hbWUsXG4gICAgICAgICAgICBCb2R5OiBidWZmZXIsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogbWVzc2FnZS5taW1ldHlwZSxcbiAgICAgICAgICAgIEFDTDogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lc3NhZ2UuZmlsZVVybCA9IGBodHRwczovLyR7YnVja2V0TmFtZX0uczMuYW1hem9uYXdzLmNvbS8ke2ZpbGVOYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLmJvZHkgPSBhd2FpdCBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0QWxsU2Vzc2lvbnMoY29uZmlnOiBhbnksIGxvZ2dlcjogYW55KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXBpLnBvc3QoXG4gICAgICBgJHtjb25maWcuaG9zdH06JHtjb25maWcucG9ydH0vYXBpLyR7Y29uZmlnLnNlY3JldEtleX0vc3RhcnQtYWxsYFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0SGVscGVyKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hbGxVbnJlYWRPblN0YXJ0KSBhd2FpdCBzZW5kVW5yZWFkKGNsaWVudCwgcmVxKTtcblxuICBpZiAocmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5lbmFibGUpIGF3YWl0IGFyY2hpdmUoY2xpZW50LCByZXEpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVW5yZWFkKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGVudmlhciBtZW5zYWdlbnMgbsOjbyBsaWRhc2ApO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXModHJ1ZSk7XG5cbiAgICBpZiAoY2hhdHMgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKylcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjaGF0c1tpXS5tc2dzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICd1bnJlYWRtZXNzYWdlcycsIGNoYXRzW2ldLm1zZ3Nbal0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBhcmNoaXZlKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSAqIDEwKSk7XG4gIH1cblxuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGFycXVpdmFuZG8gY2hhdHNgKTtcblxuICB0cnkge1xuICAgIGxldCBjaGF0cyA9IGF3YWl0IGNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGF0cyA9IGNoYXRzLmZpbHRlcigoYykgPT4gIWMuYXJjaGl2ZSk7XG4gICAgfVxuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjaGF0c1tpXS50ICogMTAwMCk7XG5cbiAgICAgICAgaWYgKERheXNCZXR3ZWVuKGRhdGUpID4gcmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5kYXlzVG9BcmNoaXZlKSB7XG4gICAgICAgICAgYXdhaXQgY2xpZW50LmFyY2hpdmVDaGF0KFxuICAgICAgICAgICAgY2hhdHNbaV0uaWQuaWQgfHwgY2hhdHNbaV0uaWQuX3NlcmlhbGl6ZWQsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcChcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUud2FpdFRpbWUgKyAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBhcnF1aXZhbmRvIGNoYXRzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gRGF5c0JldHdlZW4oU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAvLyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhbGwgVVRDIGRheXMgKG5vIERTVClcbiAgY29uc3Qgb25lRGF5ID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuICAvLyBBIGRheSBpbiBVVEMgYWx3YXlzIGxhc3RzIDI0IGhvdXJzICh1bmxpa2UgaW4gb3RoZXIgdGltZSBmb3JtYXRzKVxuICBjb25zdCBzdGFydCA9IERhdGUuVVRDKFxuICAgIGVuZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICBlbmREYXRlLmdldE1vbnRoKCksXG4gICAgZW5kRGF0ZS5nZXREYXRlKClcbiAgKTtcbiAgY29uc3QgZW5kID0gRGF0ZS5VVEMoXG4gICAgU3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgU3RhcnREYXRlLmdldE1vbnRoKCksXG4gICAgU3RhcnREYXRlLmdldERhdGUoKVxuICApO1xuXG4gIC8vIHNvIGl0J3Mgc2FmZSB0byBkaXZpZGUgYnkgMjQgaG91cnNcbiAgcmV0dXJuIChzdGFydCAtIGVuZCkgLyBvbmVEYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2xkZXJzKCkge1xuICBjb25zdCBfX2Rpcm5hbWUgPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKCcnKSk7XG4gIGNvbnN0IGRpckZpbGVzID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ1doYXRzQXBwSW1hZ2VzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJGaWxlcykpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyRmlsZXMpO1xuICB9XG5cbiAgY29uc3QgZGlyVXBsb2FkID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3VwbG9hZHMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpclVwbG9hZCkpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyVXBsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyVG9Cb29sKHM6IHN0cmluZykge1xuICByZXR1cm4gL14odHJ1ZXwxKSQvaS50ZXN0KHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVBBZGRyZXNzKCkge1xuICBjb25zdCBpbnRlcmZhY2VzID0gb3MubmV0d29ya0ludGVyZmFjZXMoKTtcbiAgZm9yIChjb25zdCBkZXZOYW1lIGluIGludGVyZmFjZXMpIHtcbiAgICBjb25zdCBpZmFjZTogYW55ID0gaW50ZXJmYWNlc1tkZXZOYW1lXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlmYWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhbGlhcyA9IGlmYWNlW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBhbGlhcy5mYW1pbHkgPT09ICdJUHY0JyAmJlxuICAgICAgICBhbGlhcy5hZGRyZXNzICE9PSAnMTI3LjAuMC4xJyAmJlxuICAgICAgICAhYWxpYXMuaW50ZXJuYWxcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGFsaWFzLmFkZHJlc3M7XG4gICAgfVxuICB9XG4gIHJldHVybiAnMC4wLjAuMCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNYXhMaXN0bmVycyhzZXJ2ZXJPcHRpb25zOiBTZXJ2ZXJPcHRpb25zKSB7XG4gIGlmIChzZXJ2ZXJPcHRpb25zICYmIE51bWJlci5pc0ludGVnZXIoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpKSB7XG4gICAgcHJvY2Vzcy5zZXRNYXhMaXN0ZW5lcnMoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1bmxpbmtBc3luYyA9IHByb21pc2lmeShmcy51bmxpbmspO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2F0YWxvZ0xpbmsoc2Vzc2lvbjogYW55KSB7XG4gIGNvbnN0IFt3aWRdID0gc2Vzc2lvbi5zcGxp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
370
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyeXB0byIsIl9mcyIsIl9taW1lVHlwZXMiLCJfb3MiLCJfcGF0aCIsIl91dGlsIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9idWNrZXRBbHJlYWR5RXhpc3RzIiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsIndlYnNvY2tldCIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImlzTmV3c2xldHRlciIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImlnbm9yZSIsImluY2x1ZGVzIiwiZnJvbSIsInR5cGUiLCJhdXRvRG93bmxvYWQiLCJjaGF0SWQiLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJyZWFkTWVzc2FnZSIsInNlbmRTZWVuIiwiZSIsImNhdGNoIiwibG9nZ2VyIiwid2FybiIsImVycm9yIiwibWVzc2FnZSIsImlzTWVkaWEiLCJpc01NUyIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwiaGFzaE5hbWUiLCJyYW5kb21CeXRlcyIsInRvU3RyaW5nIiwiYXdzX3MzIiwicmVnaW9uIiwiYWNjZXNzX2tleV9pZCIsInNlY3JldF9rZXkiLCJFcnJvciIsInMzQ2xpZW50IiwiUzNDbGllbnQiLCJlbmRwb2ludCIsInVuZGVmaW5lZCIsImZvcmNlUGF0aFN0eWxlIiwiYnVja2V0TmFtZSIsImRlZmF1bHRCdWNrZXROYW1lIiwibm9ybWFsaXplIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJmaWxlTmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwiYnVja2V0QWxyZWFkeUV4aXN0cyIsInNlbmQiLCJDcmVhdGVCdWNrZXRDb21tYW5kIiwiQnVja2V0IiwiT2JqZWN0T3duZXJzaGlwIiwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwiQmxvY2tQdWJsaWNBY2xzIiwiSWdub3JlUHVibGljQWNscyIsIkJsb2NrUHVibGljUG9saWN5IiwiUHV0T2JqZWN0Q29tbWFuZCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsIkFDTCIsImZpbGVVcmwiLCJib2R5Iiwic3RhcnRBbGxTZXNzaW9ucyIsImhvc3QiLCJwb3J0Iiwic2VjcmV0S2V5Iiwic3RhcnRIZWxwZXIiLCJhbGxVbnJlYWRPblN0YXJ0Iiwic2VuZFVucmVhZCIsImFyY2hpdmUiLCJpbmZvIiwiY2hhdHMiLCJnZXRBbGxDaGF0c1dpdGhNZXNzYWdlcyIsImkiLCJqIiwibXNncyIsImV4Iiwic2xlZXAiLCJ0aW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiZ2V0QWxsQ2hhdHMiLCJmaWx0ZXIiLCJjIiwiZGF0ZSIsIkRhdGUiLCJ0IiwiRGF5c0JldHdlZW4iLCJkYXlzVG9BcmNoaXZlIiwiYXJjaGl2ZUNoYXQiLCJpZCIsIndhaXRUaW1lIiwiU3RhcnREYXRlIiwiZW5kRGF0ZSIsIm9uZURheSIsInN0YXJ0IiwiVVRDIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJlbmQiLCJjcmVhdGVGb2xkZXJzIiwiX19kaXJuYW1lIiwicGF0aCIsImRpcm5hbWUiLCJkaXJGaWxlcyIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImRpclVwbG9hZCIsInN0clRvQm9vbCIsInMiLCJ0ZXN0IiwiZ2V0SVBBZGRyZXNzIiwiaW50ZXJmYWNlcyIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJkZXZOYW1lIiwiaWZhY2UiLCJhbGlhcyIsImZhbWlseSIsImFkZHJlc3MiLCJpbnRlcm5hbCIsInNldE1heExpc3RuZXJzIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwibWF4TGlzdGVuZXJzIiwicHJvY2VzcyIsInNldE1heExpc3RlbmVycyIsInVubGlua0FzeW5jIiwiZXhwb3J0cyIsInByb21pc2lmeSIsInVubGluayIsImNyZWF0ZUNhdGFsb2dMaW5rIiwid2lkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZnVuY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMyBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIENyZWF0ZUJ1Y2tldENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgUzNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgYXBpIGZyb20gJ2F4aW9zJztcbmltcG9ydCBDcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbWltZXR5cGVzIGZyb20gJ21pbWUtdHlwZXMnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuLi9tYXBwZXIvaW5kZXgnO1xuaW1wb3J0IHsgU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzL1NlcnZlck9wdGlvbnMnO1xuaW1wb3J0IHsgYnVja2V0QWxyZWFkeUV4aXN0cyB9IGZyb20gJy4vYnVja2V0QWxyZWFkeUV4aXN0cyc7XG5cbmxldCBtaW1lOiBhbnksIGNyeXB0bzogYW55OyAvLywgYXdzOiBhbnk7XG5pZiAoY29uZmlnLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgbWltZSA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gbWltZXR5cGVzIDogbnVsbDtcbiAgY3J5cHRvID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuaWYgKGNvbmZpZz8ud2Vic29ja2V0Py51cGxvYWRTMykge1xuICBtaW1lID0gY29uZmlnLndlYnNvY2tldC51cGxvYWRTMyA/IG1pbWV0eXBlcyA6IG51bGw7XG4gIGNyeXB0byA9IGNvbmZpZy53ZWJzb2NrZXQudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFjdFRvQXJyYXkoXG4gIG51bWJlcjogYW55LFxuICBpc0dyb3VwPzogYm9vbGVhbixcbiAgaXNOZXdzbGV0dGVyPzogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobnVtYmVyKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgbnVtYmVyKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBudW1iZXIuc3BsaXQoL1xccypbLDtdXFxzKi9nKTtcbiAgICBmb3IgKGxldCBjb250YWN0IG9mIGFyckNvbnRhY3RzKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9jYWxBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cFRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgZ3JvdXApIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IGdyb3VwLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBOYW1lVG9BcnJheShncm91cDogYW55KSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZ3JvdXApKSB7XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFdlYkhvb2soXG4gIGNsaWVudDogYW55LFxuICByZXE6IFJlcXVlc3QsXG4gIGV2ZW50OiBhbnksXG4gIGRhdGE6IGFueVxuKSB7XG4gIGNvbnN0IHdlYmhvb2sgPVxuICAgIGNsaWVudD8uY29uZmlnLndlYmhvb2sgfHwgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cmwgfHwgZmFsc2U7XG4gIGlmICh3ZWJob29rKSB7XG4gICAgaWYgKFxuICAgICAgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vaz8uaWdub3JlICYmXG4gICAgICAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5pZ25vcmUuaW5jbHVkZXMoZXZlbnQpIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LmZyb20pIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LnR5cGUpKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hdXRvRG93bmxvYWQpXG4gICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGF0SWQgPVxuICAgICAgICBkYXRhLmZyb20gfHxcbiAgICAgICAgZGF0YS5jaGF0SWQgfHxcbiAgICAgICAgKGRhdGEuY2hhdElkID8gZGF0YS5jaGF0SWQuX3NlcmlhbGl6ZWQgOiBudWxsKTtcbiAgICAgIGRhdGEgPSBPYmplY3QuYXNzaWduKHsgZXZlbnQ6IGV2ZW50LCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9LCBkYXRhKTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIuZW5hYmxlKVxuICAgICAgICBkYXRhID0gYXdhaXQgY29udmVydChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIucHJlZml4LCBkYXRhKTtcbiAgICAgIGFwaVxuICAgICAgICAucG9zdCh3ZWJob29rLCBkYXRhKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IFsndW5yZWFkbWVzc2FnZXMnLCAnb25tZXNzYWdlJ107XG4gICAgICAgICAgICBpZiAoZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSAmJiByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnJlYWRNZXNzYWdlKVxuICAgICAgICAgICAgICBjbGllbnQuc2VuZFNlZW4oY2hhdElkKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICByZXEubG9nZ2VyLndhcm4oJ0Vycm9yIGNhbGxpbmcgV2ViaG9vay4nLCBlKTtcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGF1dG9Eb3dubG9hZChjbGllbnQ6IGFueSwgcmVxOiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChtZXNzYWdlICYmIChtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgaWYgKFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnVwbG9hZFMzIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zPy53ZWJzb2NrZXQ/LnVwbG9hZFMzXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaGFzaE5hbWUgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMjQpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5yZWdpb24gfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LmFjY2Vzc19rZXlfaWQgfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LnNlY3JldF9rZXlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlLCBjb25maWd1cmUgeW91ciBhd3MgY29uZmlncycpO1xuICAgICAgICBjb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCh7XG4gICAgICAgICAgcmVnaW9uOiBjb25maWc/LmF3c19zMz8ucmVnaW9uLFxuICAgICAgICAgIGVuZHBvaW50OiBjb25maWc/LmF3c19zMz8uZW5kcG9pbnQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGZvcmNlUGF0aFN0eWxlOiBjb25maWc/LmF3c19zMz8uZm9yY2VQYXRoU3R5bGUgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGJ1Y2tldE5hbWUgPSBjb25maWc/LmF3c19zMz8uZGVmYXVsdEJ1Y2tldE5hbWVcbiAgICAgICAgICA/IGNvbmZpZz8uYXdzX3MzPy5kZWZhdWx0QnVja2V0TmFtZVxuICAgICAgICAgIDogY2xpZW50LnNlc3Npb247XG4gICAgICAgIGJ1Y2tldE5hbWUgPSBidWNrZXROYW1lXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl18W+KAlCBfLiw/IV0vZywgJycpXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGJ1Y2tldE5hbWUgPVxuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIDwgM1xuICAgICAgICAgICAgPyBidWNrZXROYW1lICtcbiAgICAgICAgICAgICAgYCR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDk5OSAtIDEwMCArIDEpKSArIDEwMH1gXG4gICAgICAgICAgICA6IGJ1Y2tldE5hbWU7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7XG4gICAgICAgICAgY29uZmlnLmF3c19zMy5kZWZhdWx0QnVja2V0TmFtZSA/IGNsaWVudC5zZXNzaW9uICsgJy8nIDogJydcbiAgICAgICAgfSR7aGFzaE5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZy5hd3NfczMuZGVmYXVsdEJ1Y2tldE5hbWUgJiZcbiAgICAgICAgICAhKGF3YWl0IGJ1Y2tldEFscmVhZHlFeGlzdHMoYnVja2V0TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgQ3JlYXRlQnVja2V0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgT2JqZWN0T3duZXJzaGlwOiAnT2JqZWN0V3JpdGVyJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgQmxvY2tQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgIEtleTogZmlsZU5hbWUsXG4gICAgICAgICAgICBCb2R5OiBidWZmZXIsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogbWVzc2FnZS5taW1ldHlwZSxcbiAgICAgICAgICAgIEFDTDogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lc3NhZ2UuZmlsZVVybCA9IGBodHRwczovLyR7YnVja2V0TmFtZX0uczMuYW1hem9uYXdzLmNvbS8ke2ZpbGVOYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLmJvZHkgPSBhd2FpdCBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0QWxsU2Vzc2lvbnMoY29uZmlnOiBhbnksIGxvZ2dlcjogYW55KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXBpLnBvc3QoXG4gICAgICBgJHtjb25maWcuaG9zdH06JHtjb25maWcucG9ydH0vYXBpLyR7Y29uZmlnLnNlY3JldEtleX0vc3RhcnQtYWxsYFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0SGVscGVyKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hbGxVbnJlYWRPblN0YXJ0KSBhd2FpdCBzZW5kVW5yZWFkKGNsaWVudCwgcmVxKTtcblxuICBpZiAocmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5lbmFibGUpIGF3YWl0IGFyY2hpdmUoY2xpZW50LCByZXEpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVW5yZWFkKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGVudmlhciBtZW5zYWdlbnMgbsOjbyBsaWRhc2ApO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXModHJ1ZSk7XG5cbiAgICBpZiAoY2hhdHMgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKylcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjaGF0c1tpXS5tc2dzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICd1bnJlYWRtZXNzYWdlcycsIGNoYXRzW2ldLm1zZ3Nbal0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBhcmNoaXZlKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSAqIDEwKSk7XG4gIH1cblxuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGFycXVpdmFuZG8gY2hhdHNgKTtcblxuICB0cnkge1xuICAgIGxldCBjaGF0cyA9IGF3YWl0IGNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGF0cyA9IGNoYXRzLmZpbHRlcigoYykgPT4gIWMuYXJjaGl2ZSk7XG4gICAgfVxuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjaGF0c1tpXS50ICogMTAwMCk7XG5cbiAgICAgICAgaWYgKERheXNCZXR3ZWVuKGRhdGUpID4gcmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5kYXlzVG9BcmNoaXZlKSB7XG4gICAgICAgICAgYXdhaXQgY2xpZW50LmFyY2hpdmVDaGF0KFxuICAgICAgICAgICAgY2hhdHNbaV0uaWQuaWQgfHwgY2hhdHNbaV0uaWQuX3NlcmlhbGl6ZWQsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcChcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUud2FpdFRpbWUgKyAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBhcnF1aXZhbmRvIGNoYXRzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gRGF5c0JldHdlZW4oU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAvLyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhbGwgVVRDIGRheXMgKG5vIERTVClcbiAgY29uc3Qgb25lRGF5ID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuICAvLyBBIGRheSBpbiBVVEMgYWx3YXlzIGxhc3RzIDI0IGhvdXJzICh1bmxpa2UgaW4gb3RoZXIgdGltZSBmb3JtYXRzKVxuICBjb25zdCBzdGFydCA9IERhdGUuVVRDKFxuICAgIGVuZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICBlbmREYXRlLmdldE1vbnRoKCksXG4gICAgZW5kRGF0ZS5nZXREYXRlKClcbiAgKTtcbiAgY29uc3QgZW5kID0gRGF0ZS5VVEMoXG4gICAgU3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgU3RhcnREYXRlLmdldE1vbnRoKCksXG4gICAgU3RhcnREYXRlLmdldERhdGUoKVxuICApO1xuXG4gIC8vIHNvIGl0J3Mgc2FmZSB0byBkaXZpZGUgYnkgMjQgaG91cnNcbiAgcmV0dXJuIChzdGFydCAtIGVuZCkgLyBvbmVEYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2xkZXJzKCkge1xuICBjb25zdCBfX2Rpcm5hbWUgPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKCcnKSk7XG4gIGNvbnN0IGRpckZpbGVzID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ1doYXRzQXBwSW1hZ2VzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJGaWxlcykpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyRmlsZXMpO1xuICB9XG5cbiAgY29uc3QgZGlyVXBsb2FkID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3VwbG9hZHMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpclVwbG9hZCkpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyVXBsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyVG9Cb29sKHM6IHN0cmluZykge1xuICByZXR1cm4gL14odHJ1ZXwxKSQvaS50ZXN0KHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVBBZGRyZXNzKCkge1xuICBjb25zdCBpbnRlcmZhY2VzID0gb3MubmV0d29ya0ludGVyZmFjZXMoKTtcbiAgZm9yIChjb25zdCBkZXZOYW1lIGluIGludGVyZmFjZXMpIHtcbiAgICBjb25zdCBpZmFjZTogYW55ID0gaW50ZXJmYWNlc1tkZXZOYW1lXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlmYWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhbGlhcyA9IGlmYWNlW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBhbGlhcy5mYW1pbHkgPT09ICdJUHY0JyAmJlxuICAgICAgICBhbGlhcy5hZGRyZXNzICE9PSAnMTI3LjAuMC4xJyAmJlxuICAgICAgICAhYWxpYXMuaW50ZXJuYWxcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGFsaWFzLmFkZHJlc3M7XG4gICAgfVxuICB9XG4gIHJldHVybiAnMC4wLjAuMCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNYXhMaXN0bmVycyhzZXJ2ZXJPcHRpb25zOiBTZXJ2ZXJPcHRpb25zKSB7XG4gIGlmIChzZXJ2ZXJPcHRpb25zICYmIE51bWJlci5pc0ludGVnZXIoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpKSB7XG4gICAgcHJvY2Vzcy5zZXRNYXhMaXN0ZW5lcnMoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1bmxpbmtBc3luYyA9IHByb21pc2lmeShmcy51bmxpbmspO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2F0YWxvZ0xpbmsoc2Vzc2lvbjogYW55KSB7XG4gIGNvbnN0IFt3aWRdID0gc2Vzc2lvbi5zcGxp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
@@ -64,4 +64,4 @@ const jsonLogFileFormat = _winston.default.format.combine(_winston.default.forma
64
64
 
65
65
  return logger;
66
66
  }
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luc3RvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwianNvbkxvZ0ZpbGVGb3JtYXQiLCJ3aW5zdG9uIiwiZm9ybWF0IiwiY29tYmluZSIsImVycm9ycyIsInN0YWNrIiwidGltZXN0YW1wIiwicHJldHR5UHJpbnQiLCJjcmVhdGVMb2dnZXIiLCJvcHRpb25zIiwibG9nX2xldmVsIiwibGV2ZWwiLCJsb2dnZXIiLCJpbmRleE9mIiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJjb2xvcml6ZSIsInByaW50ZiIsIm1lc3NhZ2UiLCJGaWxlIiwiZmlsZW5hbWUiLCJtYXhzaXplIiwibWF4RmlsZXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbi8vIFVzZSBKU09OIGxvZ2dpbmcgZm9yIGxvZyBmaWxlc1xuLy8gSGVyZSB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoKSBqdXN0IHNlZW0gdG8gd29ya1xuLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuY29uc3QganNvbkxvZ0ZpbGVGb3JtYXQgPSB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgd2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksXG4gIHdpbnN0b24uZm9ybWF0LnByZXR0eVByaW50KClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGxvZ19sZXZlbCA9IG9wdGlvbnMubGV2ZWw7XG4gIC8vIENyZWF0ZSBmaWxlIGxvZ2dlcnNcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnZGVidWcnLFxuICAgIGZvcm1hdDoganNvbkxvZ0ZpbGVGb3JtYXQsXG4gIH0pO1xuXG4gIC8vIFdoZW4gcnVubmluZyBsb2NhbGx5LCB3cml0ZSBldmVyeXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gIC8vIHdpdGggcHJvcGVyIHN0YWNrdHJhY2VzIGVuYWJsZWRcbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2NvbnNvbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgIGZvcm1hdDogd2luc3Rvbi5mb3JtYXQuY29tYmluZShcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBzdGFjayB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgLy8gcHJpbnQgbG9nIHRyYWNlXG4gICAgICAgICAgICAgIHJldHVybiBgJHtsZXZlbH06ICR7dGltZXN0YW1wfSAke21lc3NhZ2V9IC0gJHtzdGFja31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke2xldmVsfTogJHt0aW1lc3RhbXB9ICR7bWVzc2FnZX1gO1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2ZpbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgIGZpbGVuYW1lOiAnLi9sb2cvYXBwLmxvZ2cnLFxuICAgICAgICBsZXZlbDogbG9nX2xldmVsLFxuICAgICAgICBtYXhzaXplOiAxMDQ4NTc2MCxcbiAgICAgICAgbWF4RmlsZXM6IDMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9nZ2VyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsYUFBOEIsQ0FmOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZEEsQ0FpQkE7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0MsT0FBTyxDQUM5Q0YsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDdENKLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFDMUJMLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ssV0FBVyxDQUFDLENBQzdCLENBQUMsQ0FFTSxTQUFTQyxZQUFZQSxDQUFDQyxPQUFZLEVBQUUsQ0FDekMsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUNoQztFQUNBLE1BQU1DLE1BQU0sR0FBR1gsZ0JBQU8sQ0FBQ08sWUFBWSxDQUFDLEVBQ2xDRyxLQUFLLEVBQUUsT0FBTyxFQUNkVCxNQUFNLEVBQUVGLGlCQUFpQixDQUMzQixDQUFDLENBQUM7RUFFRjtFQUNBO0VBQ0EsSUFBSVMsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUMxQ0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDQyxPQUFPLENBQUM7UUFDN0JkLE1BQU0sRUFBRUQsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDQyxPQUFPO1VBQzVCRixnQkFBTyxDQUFDQyxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztVQUN0Q0osZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDZSxRQUFRLENBQUMsQ0FBQztVQUN6QmhCLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLEtBQUssRUFBRVEsT0FBTyxFQUFFYixTQUFTLEVBQUVELEtBQUssQ0FBQyxDQUFDLEtBQUs7WUFDOUQsSUFBSUEsS0FBSyxFQUFFO2NBQ1Q7Y0FDQSxPQUFRLEdBQUVNLEtBQU0sS0FBSUwsU0FBVSxJQUFHYSxPQUFRLE1BQUtkLEtBQU0sRUFBQztZQUN2RDtZQUNBLE9BQVEsR0FBRU0sS0FBTSxLQUFJTCxTQUFVLElBQUdhLE9BQVEsRUFBQztVQUM1QyxDQUFDO1FBQ0g7TUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNIO0VBQ0EsSUFBSVYsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN2Q0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDSyxJQUFJLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUJWLEtBQUssRUFBRUQsU0FBUztRQUNoQlksT0FBTyxFQUFFLFFBQVE7UUFDakJDLFFBQVEsRUFBRTtNQUNaLENBQUM7SUFDSCxDQUFDO0VBQ0g7O0VBRUEsT0FBT1gsTUFBTTtBQUNmIiwiaWdub3JlTGlzdCI6W119
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luc3RvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwianNvbkxvZ0ZpbGVGb3JtYXQiLCJ3aW5zdG9uIiwiZm9ybWF0IiwiY29tYmluZSIsImVycm9ycyIsInN0YWNrIiwidGltZXN0YW1wIiwicHJldHR5UHJpbnQiLCJjcmVhdGVMb2dnZXIiLCJvcHRpb25zIiwibG9nX2xldmVsIiwibGV2ZWwiLCJsb2dnZXIiLCJpbmRleE9mIiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJjb2xvcml6ZSIsInByaW50ZiIsIm1lc3NhZ2UiLCJGaWxlIiwiZmlsZW5hbWUiLCJtYXhzaXplIiwibWF4RmlsZXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2dnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3Rvbic7XG5cbi8vIFVzZSBKU09OIGxvZ2dpbmcgZm9yIGxvZyBmaWxlc1xuLy8gSGVyZSB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoKSBqdXN0IHNlZW0gdG8gd29ya1xuLy8gYmVjYXVzZSB0aGVyZSBpcyBubyB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKVxuY29uc3QganNvbkxvZ0ZpbGVGb3JtYXQgPSB3aW5zdG9uLmZvcm1hdC5jb21iaW5lKFxuICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgd2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksXG4gIHdpbnN0b24uZm9ybWF0LnByZXR0eVByaW50KClcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dnZXIob3B0aW9uczogYW55KSB7XG4gIGNvbnN0IGxvZ19sZXZlbCA9IG9wdGlvbnMubGV2ZWw7XG4gIC8vIENyZWF0ZSBmaWxlIGxvZ2dlcnNcbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiAnZGVidWcnLFxuICAgIGZvcm1hdDoganNvbkxvZ0ZpbGVGb3JtYXQsXG4gIH0pO1xuXG4gIC8vIFdoZW4gcnVubmluZyBsb2NhbGx5LCB3cml0ZSBldmVyeXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gIC8vIHdpdGggcHJvcGVyIHN0YWNrdHJhY2VzIGVuYWJsZWRcbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2NvbnNvbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgIGZvcm1hdDogd2luc3Rvbi5mb3JtYXQuY29tYmluZShcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5lcnJvcnMoeyBzdGFjazogdHJ1ZSB9KSxcbiAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgIHdpbnN0b24uZm9ybWF0LnByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBzdGFjayB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgLy8gcHJpbnQgbG9nIHRyYWNlXG4gICAgICAgICAgICAgIHJldHVybiBgJHtsZXZlbH06ICR7dGltZXN0YW1wfSAke21lc3NhZ2V9IC0gJHtzdGFja31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke2xldmVsfTogJHt0aW1lc3RhbXB9ICR7bWVzc2FnZX1gO1xuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgaWYgKG9wdGlvbnMubG9nZ2VyLmluZGV4T2YoJ2ZpbGUnKSA+IC0xKSB7XG4gICAgbG9nZ2VyLmFkZChcbiAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgIGZpbGVuYW1lOiAnLi9sb2cvYXBwLmxvZ2cnLFxuICAgICAgICBsZXZlbDogbG9nX2xldmVsLFxuICAgICAgICBtYXhzaXplOiAxMDQ4NTc2MCxcbiAgICAgICAgbWF4RmlsZXM6IDMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9nZ2VyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEsYUFBOEIsQ0FmOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBZEEsQ0FpQkE7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUdDLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0MsT0FBTyxDQUM5Q0YsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDdENKLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFDMUJMLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ0ssV0FBVyxDQUFDLENBQzdCLENBQUMsQ0FFTSxTQUFTQyxZQUFZQSxDQUFDQyxPQUFZLEVBQUUsQ0FDekMsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNFLEtBQUssQ0FBQyxDQUNoQztFQUNBLE1BQU1DLE1BQU0sR0FBR1gsZ0JBQU8sQ0FBQ08sWUFBWSxDQUFDLEVBQ2xDRyxLQUFLLEVBQUUsT0FBTyxFQUNkVCxNQUFNLEVBQUVGLGlCQUFpQixDQUMzQixDQUFDLENBQUM7RUFFRjtFQUNBO0VBQ0EsSUFBSVMsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUMxQ0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDQyxPQUFPLENBQUM7UUFDN0JkLE1BQU0sRUFBRUQsZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDQyxPQUFPO1VBQzVCRixnQkFBTyxDQUFDQyxNQUFNLENBQUNFLE1BQU0sQ0FBQyxFQUFFQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztVQUN0Q0osZ0JBQU8sQ0FBQ0MsTUFBTSxDQUFDZSxRQUFRLENBQUMsQ0FBQztVQUN6QmhCLGdCQUFPLENBQUNDLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLEtBQUssRUFBRVEsT0FBTyxFQUFFYixTQUFTLEVBQUVELEtBQUssQ0FBQyxDQUFDLEtBQUs7WUFDOUQsSUFBSUEsS0FBSyxFQUFFO2NBQ1Q7Y0FDQSxPQUFPLEdBQUdNLEtBQUssS0FBS0wsU0FBUyxJQUFJYSxPQUFPLE1BQU1kLEtBQUssRUFBRTtZQUN2RDtZQUNBLE9BQU8sR0FBR00sS0FBSyxLQUFLTCxTQUFTLElBQUlhLE9BQU8sRUFBRTtVQUM1QyxDQUFDO1FBQ0g7TUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNIO0VBQ0EsSUFBSVYsT0FBTyxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN2Q0QsTUFBTSxDQUFDRSxHQUFHO01BQ1IsSUFBSWIsZ0JBQU8sQ0FBQ2MsVUFBVSxDQUFDSyxJQUFJLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUJWLEtBQUssRUFBRUQsU0FBUztRQUNoQlksT0FBTyxFQUFFLFFBQVE7UUFDakJDLFFBQVEsRUFBRTtNQUNaLENBQUM7SUFDSCxDQUFDO0VBQ0g7O0VBRUEsT0FBT1gsTUFBTTtBQUNmIiwiaWdub3JlTGlzdCI6W119
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wppconnect/server",
3
- "version": "2.4.4",
3
+ "version": "2.4.5",
4
4
  "description": "Projeto feito para autenticar a automomacao do WhatsappWeb com multi-clientes de forma dinamica. Backend feito em Nodejs(express, socketio), FrontEnd (ReactJS)",
5
5
  "main": "dist/index.js",
6
6
  "author": "kingaspx",
@@ -28,10 +28,10 @@
28
28
  "test": "jest"
29
29
  },
30
30
  "dependencies": {
31
- "@aws-sdk/client-s3": "^3.568.0",
31
+ "@aws-sdk/client-s3": "^3.592.0",
32
32
  "@wppconnect-team/wppconnect": "^1.30.3",
33
33
  "archiver": "^7.0.1",
34
- "axios": "^1.6.8",
34
+ "axios": "^1.7.2",
35
35
  "bcrypt": "^5.1.1",
36
36
  "buffer-to-stream": "1.0.0",
37
37
  "cors": "^2.8.5",
@@ -47,20 +47,20 @@
47
47
  "qrcode": "^1.5.3",
48
48
  "socket.io": "^4.7.5",
49
49
  "swagger-autogen": "^2.23.7",
50
- "swagger-ui-express": "^5.0.0",
51
- "unzipper": "^0.11.4",
50
+ "swagger-ui-express": "^5.0.1",
51
+ "unzipper": "^0.12.1",
52
52
  "winston": "^3.13.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@babel/cli": "^7.24.5",
56
- "@babel/core": "^7.24.5",
57
- "@babel/eslint-parser": "^7.24.5",
58
- "@babel/eslint-plugin": "^7.24.5",
59
- "@babel/node": "^7.23.9",
60
- "@babel/plugin-transform-runtime": "^7.24.3",
61
- "@babel/preset-env": "^7.24.5",
62
- "@babel/preset-typescript": "^7.24.1",
63
- "@commitlint/cli": "^19.2.2",
55
+ "@babel/cli": "^7.24.7",
56
+ "@babel/core": "^7.24.7",
57
+ "@babel/eslint-parser": "^7.24.7",
58
+ "@babel/eslint-plugin": "^7.24.7",
59
+ "@babel/node": "^7.24.7",
60
+ "@babel/plugin-transform-runtime": "^7.24.7",
61
+ "@babel/preset-env": "^7.24.7",
62
+ "@babel/preset-typescript": "^7.24.7",
63
+ "@commitlint/cli": "^19.3.0",
64
64
  "@commitlint/config-conventional": "^19.2.2",
65
65
  "@commitlint/cz-commitlint": "^19.2.0",
66
66
  "@types/archiver": "^6.0.2",
@@ -71,11 +71,11 @@
71
71
  "@types/merge-deep": "^3.0.3",
72
72
  "@types/mime-types": "^2.1.4",
73
73
  "@types/multer": "^1.4.11",
74
- "@types/node": "^20.12.8",
74
+ "@types/node": "^20.14.2",
75
75
  "@types/qrcode": "^1.5.5",
76
76
  "@types/swagger-ui-express": "^4.1.6",
77
77
  "@types/unzipper": "^0.10.9",
78
- "@typescript-eslint/eslint-plugin": "^7.8.0",
78
+ "@typescript-eslint/eslint-plugin": "^7.12.0",
79
79
  "commitizen": "^4.3.0",
80
80
  "conventional-changelog-cli": "^4.1.0",
81
81
  "crypto-js": "^4.2.0",
@@ -83,24 +83,24 @@
83
83
  "eslint-config-prettier": "^9.1.0",
84
84
  "eslint-config-standard-with-typescript": "^43.0.1",
85
85
  "eslint-plugin-import": "^2.29.1",
86
- "eslint-plugin-n": "^17.3.1",
86
+ "eslint-plugin-n": "^17.8.1",
87
87
  "eslint-plugin-prettier": "^4.2.1",
88
- "eslint-plugin-promise": "^6.1.1",
88
+ "eslint-plugin-promise": "^6.2.0",
89
89
  "eslint-plugin-simple-import-sort": "^12.1.0",
90
90
  "husky": "^9.0.11",
91
91
  "jest": "^29.7.0",
92
92
  "license-check-and-add": "^4.0.5",
93
- "mongoose": "^8.3.3",
94
- "nodemon": "^3.1.0",
93
+ "mongoose": "^8.4.1",
94
+ "nodemon": "^3.1.3",
95
95
  "prettier": "^2.8.8",
96
96
  "pretty-quick": "^4.0.0",
97
97
  "prom-client": "^14.2.0",
98
- "redis": "^4.6.13",
99
- "release-it": "^17.2.1",
100
- "rimraf": "^5.0.5",
98
+ "redis": "^4.6.14",
99
+ "release-it": "^17.3.0",
100
+ "rimraf": "^5.0.7",
101
101
  "shx": "^0.3.4",
102
- "swagger-ui-dist": "^5.16.2",
103
- "ts-jest": "^29.1.2",
102
+ "swagger-ui-dist": "^5.17.14",
103
+ "ts-jest": "^29.1.4",
104
104
  "ts-loader": "^9.5.1",
105
105
  "tsx": "^4.7.3",
106
106
  "typescript": "^5.4.5",
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "peerDependencies": {
110
110
  "crypto-js": "^4.2.0",
111
- "mongoose": "^8.3.3",
112
- "redis": "^4.6.13"
111
+ "mongoose": "^8.4.1",
112
+ "redis": "^4.6.14"
113
113
  }
114
114
  }