parse-server 7.0.0-alpha.7 → 7.0.0-alpha.9
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.
|
@@ -123,9 +123,6 @@ class UserController extends _AdaptableController.default {
|
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
async getUserIfNeeded(user) {
|
|
126
|
-
if (user.username && user.email) {
|
|
127
|
-
return Promise.resolve(user);
|
|
128
|
-
}
|
|
129
126
|
var where = {};
|
|
130
127
|
if (user.username) {
|
|
131
128
|
where.username = user.username;
|
|
@@ -141,12 +138,11 @@ class UserController extends _AdaptableController.default {
|
|
|
141
138
|
className: '_User',
|
|
142
139
|
restWhere: where
|
|
143
140
|
});
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
});
|
|
141
|
+
const result = await query.execute();
|
|
142
|
+
if (result.results.length != 1) {
|
|
143
|
+
throw undefined;
|
|
144
|
+
}
|
|
145
|
+
return result.results[0];
|
|
150
146
|
}
|
|
151
147
|
async sendVerificationEmail(user, req) {
|
|
152
148
|
if (!this.shouldVerifyEmails) {
|
|
@@ -367,4 +363,4 @@ function buildEmailLink(destination, username, token, config) {
|
|
|
367
363
|
}
|
|
368
364
|
var _default = UserController;
|
|
369
365
|
exports.default = _default;
|
|
370
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX3RyaWdnZXJzIiwiX0FkYXB0YWJsZUNvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX01haWxBZGFwdGVyIiwiX3Jlc3QiLCJfbm9kZSIsIl9BY2NvdW50TG9ja291dCIsIl9Db25maWciLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiUmVzdFF1ZXJ5IiwiQXV0aCIsIlVzZXJDb250cm9sbGVyIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWRhcHRlciIsImFwcElkIiwib3B0aW9ucyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsInZhbGlkYXRlQWRhcHRlciIsInNob3VsZFZlcmlmeUVtYWlscyIsImV4cGVjdGVkQWRhcHRlclR5cGUiLCJNYWlsQWRhcHRlciIsInZlcmlmeVVzZXJFbWFpbHMiLCJzZXRFbWFpbFZlcmlmeVRva2VuIiwidXNlciIsInJlcSIsInN0b3JhZ2UiLCJzaG91bGRTZW5kRW1haWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9lbWFpbF92ZXJpZnlfdG9rZW4iLCJyYW5kb21TdHJpbmciLCJmaWVsZHNDaGFuZ2VkQnlUcmlnZ2VyIiwiaW5jbHVkZXMiLCJlbWFpbFZlcmlmaWVkIiwiZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQiLCJQYXJzZSIsIl9lbmNvZGUiLCJnZW5lcmF0ZUVtYWlsVmVyaWZ5VG9rZW5FeHBpcmVzQXQiLCJ2ZXJpZnlFbWFpbCIsInVzZXJuYW1lIiwidG9rZW4iLCJxdWVyeSIsInVwZGF0ZUZpZWxkcyIsIl9fb3AiLCIkZ3QiLCJEYXRlIiwibWFpbnRlbmFuY2VBdXRoIiwibWFpbnRlbmFuY2UiLCJmaW5kVXNlckZvckVtYWlsVmVyaWZpY2F0aW9uIiwibWV0aG9kIiwiTWV0aG9kIiwiYXV0aCIsImNsYXNzTmFtZSIsInJlc3RXaGVyZSIsImV4ZWN1dGUiLCJ0aGVuIiwicmVzdWx0IiwicmVzdWx0cyIsIm9iamVjdElkIiwicmVzdCIsInVwZGF0ZSIsImNoZWNrUmVzZXRUb2tlblZhbGlkaXR5IiwiZGF0YWJhc2UiLCJmaW5kIiwiX3BlcmlzaGFibGVfdG9rZW4iLCJsaW1pdCIsInBhc3N3b3JkUG9saWN5IiwicmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJleHBpcmVzRGF0ZSIsIl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQiLCJfX3R5cGUiLCJpc28iLCJnZXRVc2VySWZOZWVkZWQiLCJlbWFpbCIsIndoZXJlIiwicnVuQmVmb3JlRmluZCIsIm1hc3RlciIsImVuY29kZVVSSUNvbXBvbmVudCIsImZldGNoZWRVc2VyIiwic2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbiIsIl9yZXEkYXV0aCIsInJlc3BvbnNlIiwiZnJvbUpTT04iLCJpc01hc3RlciIsImxpbmsiLCJidWlsZEVtYWlsTGluayIsInZlcmlmeUVtYWlsVVJMIiwiYXBwTmFtZSIsImluZmxhdGUiLCJzZW5kTWFpbCIsImRlZmF1bHRWZXJpZmljYXRpb25FbWFpbCIsInJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuIiwiaW5zdGFsbGF0aW9uSWQiLCJpcCIsImVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQiLCJzaG91bGRTZW5kIiwiVXNlciIsImFzc2lnbiIsInJlc2VuZFJlcXVlc3QiLCJyZXNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9yZXEkYXV0aDIiLCJfcmVxJGF1dGgzIiwiYVVzZXIiLCJnZW5lcmF0ZSIsInNldFBhc3N3b3JkUmVzZXRUb2tlbiIsImdlbmVyYXRlUGFzc3dvcmRSZXNldFRva2VuRXhwaXJlc0F0IiwiJG9yIiwiJGV4aXN0cyIsInNlbmRQYXNzd29yZFJlc2V0RW1haWwiLCJyZXNldFRva2VuUmV1c2VJZlZhbGlkIiwicmVxdWVzdFJlc2V0UGFzc3dvcmRVUkwiLCJkZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsIiwidXBkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsInVwZGF0ZVVzZXJQYXNzd29yZCIsImFjY291bnRMb2Nrb3V0UG9saWN5IiwiQWNjb3VudExvY2tvdXQiLCJ1bmxvY2tBY2NvdW50IiwiY2F0Y2giLCJlcnJvciIsIm1lc3NhZ2UiLCJyZWplY3QiLCJ0ZXh0IiwidG8iLCJzdWJqZWN0IiwiZXhwb3J0cyIsImRlc3RpbmF0aW9uIiwidXNlcm5hbWVBbmRUb2tlbiIsInBhcnNlRnJhbWVVUkwiLCJkZXN0aW5hdGlvbldpdGhvdXRIb3N0IiwicmVwbGFjZSIsInB1YmxpY1NlcnZlclVSTCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbnRyb2xsZXJzL1VzZXJDb250cm9sbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVN0cmluZyB9IGZyb20gJy4uL2NyeXB0b1V0aWxzJztcbmltcG9ydCB7IGluZmxhdGUgfSBmcm9tICcuLi90cmlnZ2Vycyc7XG5pbXBvcnQgQWRhcHRhYmxlQ29udHJvbGxlciBmcm9tICcuL0FkYXB0YWJsZUNvbnRyb2xsZXInO1xuaW1wb3J0IE1haWxBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL0VtYWlsL01haWxBZGFwdGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IEFjY291bnRMb2Nrb3V0IGZyb20gJy4uL0FjY291bnRMb2Nrb3V0JztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcblxudmFyIFJlc3RRdWVyeSA9IHJlcXVpcmUoJy4uL1Jlc3RRdWVyeScpO1xudmFyIEF1dGggPSByZXF1aXJlKCcuLi9BdXRoJyk7XG5cbmV4cG9ydCBjbGFzcyBVc2VyQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gQ29uZmlnLmdldCh0aGlzLmFwcElkKTtcbiAgfVxuXG4gIHZhbGlkYXRlQWRhcHRlcihhZGFwdGVyKSB7XG4gICAgLy8gQWxsb3cgbm8gYWRhcHRlclxuICAgIGlmICghYWRhcHRlciAmJiAhdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIpO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICByZXR1cm4gTWFpbEFkYXB0ZXI7XG4gIH1cblxuICBnZXQgc2hvdWxkVmVyaWZ5RW1haWxzKCkge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgfHwgdGhpcy5vcHRpb25zKS52ZXJpZnlVc2VyRW1haWxzO1xuICB9XG5cbiAgYXN5bmMgc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCByZXEsIHN0b3JhZ2UgPSB7fSkge1xuICAgIGNvbnN0IHNob3VsZFNlbmRFbWFpbCA9XG4gICAgICB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gdHJ1ZSB8fFxuICAgICAgKHR5cGVvZiB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2hvdWxkVmVyaWZ5RW1haWxzKHJlcSkpKSA9PT0gdHJ1ZSk7XG4gICAgaWYgKCFzaG91bGRTZW5kRW1haWwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3RvcmFnZS5zZW5kVmVyaWZpY2F0aW9uRW1haWwgPSB0cnVlO1xuICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbiA9IHJhbmRvbVN0cmluZygyNSk7XG4gICAgaWYgKFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlciB8fFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlci5pbmNsdWRlcygnZW1haWxWZXJpZmllZCcpXG4gICAgKSB7XG4gICAgICB1c2VyLmVtYWlsVmVyaWZpZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24pIHtcbiAgICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuRXhwaXJlc0F0KClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RW1haWwodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFZlcmlmeUVtYWlscykge1xuICAgICAgLy8gVHJ5aW5nIHRvIHZlcmlmeSBlbWFpbCB3aGVuIG5vdCBlbmFibGVkXG4gICAgICAvLyBUT0RPOiBCZXR0ZXIgZXJyb3IgaGVyZS5cbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBfZW1haWxfdmVyaWZ5X3Rva2VuOiB0b2tlbiB9O1xuICAgIGNvbnN0IHVwZGF0ZUZpZWxkcyA9IHtcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IHRydWUsXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuOiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgfTtcblxuICAgIC8vIGlmIHRoZSBlbWFpbCB2ZXJpZnkgdG9rZW4gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIHRoZW5cbiAgICAvLyBhZGQgYWRkaXRpb25hbCBxdWVyeSBwYXJhbXMgYW5kIGFkZGl0aW9uYWwgZmllbGRzIHRoYXQgbmVlZCB0byBiZSB1cGRhdGVkXG4gICAgaWYgKHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICBxdWVyeS5lbWFpbFZlcmlmaWVkID0gZmFsc2U7XG4gICAgICBxdWVyeS5fZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgPSB7ICRndDogUGFyc2UuX2VuY29kZShuZXcgRGF0ZSgpKSB9O1xuXG4gICAgICB1cGRhdGVGaWVsZHMuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0geyBfX29wOiAnRGVsZXRlJyB9O1xuICAgIH1cbiAgICBjb25zdCBtYWludGVuYW5jZUF1dGggPSBBdXRoLm1haW50ZW5hbmNlKHRoaXMuY29uZmlnKTtcbiAgICB2YXIgZmluZFVzZXJGb3JFbWFpbFZlcmlmaWNhdGlvbiA9IGF3YWl0IFJlc3RRdWVyeSh7XG4gICAgICBtZXRob2Q6IFJlc3RRdWVyeS5NZXRob2QuZ2V0LFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgIGF1dGg6IG1haW50ZW5hbmNlQXV0aCxcbiAgICAgIGNsYXNzTmFtZTogJ19Vc2VyJyxcbiAgICAgIHJlc3RXaGVyZToge1xuICAgICAgICB1c2VybmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbmRVc2VyRm9yRW1haWxWZXJpZmljYXRpb24uZXhlY3V0ZSgpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQucmVzdWx0cy5sZW5ndGggJiYgcmVzdWx0LnJlc3VsdHNbMF0uZW1haWxWZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdC5yZXN1bHRzLmxlbmd0aFswXSk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5yZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBxdWVyeS5vYmplY3RJZCA9IHJlc3VsdC5yZXN1bHRzWzBdLm9iamVjdElkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3QudXBkYXRlKHRoaXMuY29uZmlnLCBtYWludGVuYW5jZUF1dGgsICdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hlY2tSZXNldFRva2VuVmFsaWRpdHkodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRhdGFiYXNlXG4gICAgICAuZmluZChcbiAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgICBfcGVyaXNoYWJsZV90b2tlbjogdG9rZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIHRocm93ICdGYWlsZWQgdG8gcmVzZXQgcGFzc3dvcmQ6IHVzZXJuYW1lIC8gZW1haWwgLyB0b2tlbiBpcyBpbnZhbGlkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeSAmJiB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbikge1xuICAgICAgICAgIGxldCBleHBpcmVzRGF0ZSA9IHJlc3VsdHNbMF0uX3BlcmlzaGFibGVfdG9rZW5fZXhwaXJlc19hdDtcbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgJiYgZXhwaXJlc0RhdGUuX190eXBlID09ICdEYXRlJykge1xuICAgICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgPCBuZXcgRGF0ZSgpKSB0aHJvdyAnVGhlIHBhc3N3b3JkIHJlc2V0IGxpbmsgaGFzIGV4cGlyZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzWzBdO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VySWZOZWVkZWQodXNlcikge1xuICAgIGlmICh1c2VyLnVzZXJuYW1lICYmIHVzZXIuZW1haWwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodXNlcik7XG4gICAgfVxuICAgIHZhciB3aGVyZSA9IHt9O1xuICAgIGlmICh1c2VyLnVzZXJuYW1lKSB7XG4gICAgICB3aGVyZS51c2VybmFtZSA9IHVzZXIudXNlcm5hbWU7XG4gICAgfVxuICAgIGlmICh1c2VyLmVtYWlsKSB7XG4gICAgICB3aGVyZS5lbWFpbCA9IHVzZXIuZW1haWw7XG4gICAgfVxuXG4gICAgdmFyIHF1ZXJ5ID0gYXdhaXQgUmVzdFF1ZXJ5KHtcbiAgICAgIG1ldGhvZDogUmVzdFF1ZXJ5Lk1ldGhvZC5nZXQsXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgcnVuQmVmb3JlRmluZDogZmFsc2UsXG4gICAgICBhdXRoOiBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksXG4gICAgICBjbGFzc05hbWU6ICdfVXNlcicsXG4gICAgICByZXN0V2hlcmU6IHdoZXJlLFxuICAgIH0pO1xuICAgIHJldHVybiBxdWVyeS5leGVjdXRlKCkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICBpZiAocmVzdWx0LnJlc3VsdHMubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgdGhyb3cgdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRzWzBdO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHVzZXIsIHJlcSkge1xuICAgIGlmICghdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBlbmNvZGVVUklDb21wb25lbnQodXNlci5fZW1haWxfdmVyaWZ5X3Rva2VuKTtcbiAgICAvLyBXZSBtYXkgbmVlZCB0byBmZXRjaCB0aGUgdXNlciBpbiBjYXNlIG9mIHVwZGF0ZSBlbWFpbDsgb25seSB1c2UgdGhlIGBmZXRjaGVkVXNlcmBcbiAgICAvLyBmcm9tIHRoaXMgcG9pbnQgb253YXJkczsgZG8gbm90IHVzZSB0aGUgYHVzZXJgIGFzIGl0IG1heSBub3QgY29udGFpbiBhbGwgZmllbGRzLlxuICAgIGNvbnN0IGZldGNoZWRVc2VyID0gYXdhaXQgdGhpcy5nZXRVc2VySWZOZWVkZWQodXNlcik7XG4gICAgbGV0IHNob3VsZFNlbmRFbWFpbCA9IHRoaXMuY29uZmlnLnNlbmRVc2VyRW1haWxWZXJpZmljYXRpb247XG4gICAgaWYgKHR5cGVvZiBzaG91bGRTZW5kRW1haWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICB0aGlzLmNvbmZpZy5zZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uKHtcbiAgICAgICAgICB1c2VyOiBQYXJzZS5PYmplY3QuZnJvbUpTT04oeyBjbGFzc05hbWU6ICdfVXNlcicsIC4uLmZldGNoZWRVc2VyIH0pLFxuICAgICAgICAgIG1hc3RlcjogcmVxLmF1dGg/LmlzTWFzdGVyLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHNob3VsZFNlbmRFbWFpbCA9ICEhcmVzcG9uc2U7XG4gICAgfVxuICAgIGlmICghc2hvdWxkU2VuZEVtYWlsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGZldGNoZWRVc2VyLnVzZXJuYW1lKTtcblxuICAgIGNvbnN0IGxpbmsgPSBidWlsZEVtYWlsTGluayh0aGlzLmNvbmZpZy52ZXJpZnlFbWFpbFVSTCwgdXNlcm5hbWUsIHRva2VuLCB0aGlzLmNvbmZpZyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmFwcE5hbWUsXG4gICAgICBsaW5rOiBsaW5rLFxuICAgICAgdXNlcjogaW5mbGF0ZSgnX1VzZXInLCBmZXRjaGVkVXNlciksXG4gICAgfTtcbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbCkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbChvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRNYWlsKHRoaXMuZGVmYXVsdFZlcmlmaWNhdGlvbkVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnZW5lcmF0ZXMgdGhlIGdpdmVuIHVzZXIncyBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICBhc3luYyByZWdlbmVyYXRlRW1haWxWZXJpZnlUb2tlbih1c2VyLCBtYXN0ZXIsIGluc3RhbGxhdGlvbklkLCBpcCkge1xuICAgIGNvbnN0IHsgX2VtYWlsX3ZlcmlmeV90b2tlbiB9ID0gdXNlcjtcbiAgICBsZXQgeyBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgfSA9IHVzZXI7XG4gICAgaWYgKF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCAmJiBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQuX190eXBlID09PSAnRGF0ZScpIHtcbiAgICAgIF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCA9IF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdC5pc287XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQgJiZcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uICYmXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuICYmXG4gICAgICBuZXcgRGF0ZSgpIDwgbmV3IERhdGUoX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0KVxuICAgICkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkU2VuZCA9IGF3YWl0IHRoaXMuc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCB7XG4gICAgICBvYmplY3Q6IFBhcnNlLlVzZXIuZnJvbUpTT04oT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogJ19Vc2VyJyB9LCB1c2VyKSksXG4gICAgICBtYXN0ZXIsXG4gICAgICBpbnN0YWxsYXRpb25JZCxcbiAgICAgIGlwLFxuICAgICAgcmVzZW5kUmVxdWVzdDogdHJ1ZVxuICAgIH0pO1xuICAgIGlmICghc2hvdWxkU2VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHsgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUgfSwgdXNlcik7XG4gIH1cblxuICBhc3luYyByZXNlbmRWZXJpZmljYXRpb25FbWFpbCh1c2VybmFtZSwgcmVxKSB7XG4gICAgY29uc3QgYVVzZXIgPSBhd2FpdCB0aGlzLmdldFVzZXJJZk5lZWRlZCh7IHVzZXJuYW1lOiB1c2VybmFtZSB9KTtcbiAgICBpZiAoIWFVc2VyIHx8IGFVc2VyLmVtYWlsVmVyaWZpZWQpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZ2VuZXJhdGUgPSBhd2FpdCB0aGlzLnJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuKGFVc2VyLCByZXEuYXV0aD8uaXNNYXN0ZXIsIHJlcS5hdXRoPy5pbnN0YWxsYXRpb25JZCwgcmVxLmlwKTtcbiAgICBpZiAoZ2VuZXJhdGUpIHtcbiAgICAgIHRoaXMuc2VuZFZlcmlmaWNhdGlvbkVtYWlsKGFVc2VyLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCkge1xuICAgIGNvbnN0IHRva2VuID0geyBfcGVyaXNoYWJsZV90b2tlbjogcmFuZG9tU3RyaW5nKDI1KSB9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5LnJlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICB0b2tlbi5fcGVyaXNoYWJsZV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVQYXNzd29yZFJlc2V0VG9rZW5FeHBpcmVzQXQoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKFxuICAgICAgJ19Vc2VyJyxcbiAgICAgIHsgJG9yOiBbeyBlbWFpbCB9LCB7IHVzZXJuYW1lOiBlbWFpbCwgZW1haWw6IHsgJGV4aXN0czogZmFsc2UgfSB9XSB9LFxuICAgICAgdG9rZW4sXG4gICAgICB7fSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbCkge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICB0aHJvdyAnVHJ5aW5nIHRvIHNlbmQgYSByZXNldCBwYXNzd29yZCBidXQgbm8gYWRhcHRlciBpcyBzZXQnO1xuICAgICAgLy8gIFRPRE86IE5vIGFkYXB0ZXI/XG4gICAgfVxuICAgIGxldCB1c2VyO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuUmV1c2VJZlZhbGlkICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvblxuICAgICkge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuY29uZmlnLmRhdGFiYXNlLmZpbmQoXG4gICAgICAgICdfVXNlcicsXG4gICAgICAgIHtcbiAgICAgICAgICAkb3I6IFtcbiAgICAgICAgICAgIHsgZW1haWwsIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgICAgeyB1c2VybmFtZTogZW1haWwsIGVtYWlsOiB7ICRleGlzdHM6IGZhbHNlIH0sIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgICk7XG4gICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT0gMSkge1xuICAgICAgICBsZXQgZXhwaXJlc0RhdGUgPSByZXN1bHRzWzBdLl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQ7XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSAmJiBleHBpcmVzRGF0ZS5fX3R5cGUgPT0gJ0RhdGUnKSB7XG4gICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSA+IG5ldyBEYXRlKCkpIHtcbiAgICAgICAgICB1c2VyID0gcmVzdWx0c1swXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXVzZXIgfHwgIXVzZXIuX3BlcmlzaGFibGVfdG9rZW4pIHtcbiAgICAgIHVzZXIgPSBhd2FpdCB0aGlzLnNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIuX3BlcmlzaGFibGVfdG9rZW4pO1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIudXNlcm5hbWUpO1xuXG4gICAgY29uc3QgbGluayA9IGJ1aWxkRW1haWxMaW5rKHRoaXMuY29uZmlnLnJlcXVlc3RSZXNldFBhc3N3b3JkVVJMLCB1c2VybmFtZSwgdG9rZW4sIHRoaXMuY29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgYXBwTmFtZTogdGhpcy5jb25maWcuYXBwTmFtZSxcbiAgICAgIGxpbms6IGxpbmssXG4gICAgICB1c2VyOiBpbmZsYXRlKCdfVXNlcicsIHVzZXIpLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRQYXNzd29yZFJlc2V0RW1haWwpIHtcbiAgICAgIHRoaXMuYWRhcHRlci5zZW5kUGFzc3dvcmRSZXNldEVtYWlsKG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkYXB0ZXIuc2VuZE1haWwodGhpcy5kZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVzZXIpO1xuICB9XG5cbiAgdXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBwYXNzd29yZCkge1xuICAgIHJldHVybiB0aGlzLmNoZWNrUmVzZXRUb2tlblZhbGlkaXR5KHVzZXJuYW1lLCB0b2tlbilcbiAgICAgIC50aGVuKHVzZXIgPT4gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCB0aGlzLmNvbmZpZykpXG4gICAgICAudGhlbih1c2VyID0+IHtcbiAgICAgICAgY29uc3QgYWNjb3VudExvY2tvdXRQb2xpY3kgPSBuZXcgQWNjb3VudExvY2tvdXQodXNlciwgdGhpcy5jb25maWcpO1xuICAgICAgICByZXR1cm4gYWNjb3VudExvY2tvdXRQb2xpY3kudW5sb2NrQWNjb3VudCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBQYXJzZS5FcnJvciwgZmFpbCB3aXRoIHRoZSBlcnJvciBtZXNzYWdlIG9ubHlcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBkZWZhdWx0VmVyaWZpY2F0aW9uRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgYXJlIGJlaW5nIGFza2VkIHRvIGNvbmZpcm0gdGhlIGUtbWFpbCBhZGRyZXNzICcgK1xuICAgICAgdXNlci5nZXQoJ2VtYWlsJykgK1xuICAgICAgJyB3aXRoICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAnXFxuXFxuJyArXG4gICAgICAnJyArXG4gICAgICAnQ2xpY2sgaGVyZSB0byBjb25maXJtIGl0OlxcbicgK1xuICAgICAgbGluaztcbiAgICBjb25zdCB0byA9IHVzZXIuZ2V0KCdlbWFpbCcpO1xuICAgIGNvbnN0IHN1YmplY3QgPSAnUGxlYXNlIHZlcmlmeSB5b3VyIGUtbWFpbCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxuXG4gIGRlZmF1bHRSZXNldFBhc3N3b3JkRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgcmVxdWVzdGVkIHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQgZm9yICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAodXNlci5nZXQoJ3VzZXJuYW1lJykgPyBcIiAoeW91ciB1c2VybmFtZSBpcyAnXCIgKyB1c2VyLmdldCgndXNlcm5hbWUnKSArIFwiJylcIiA6ICcnKSArXG4gICAgICAnLlxcblxcbicgK1xuICAgICAgJycgK1xuICAgICAgJ0NsaWNrIGhlcmUgdG8gcmVzZXQgaXQ6XFxuJyArXG4gICAgICBsaW5rO1xuICAgIGNvbnN0IHRvID0gdXNlci5nZXQoJ2VtYWlsJykgfHwgdXNlci5nZXQoJ3VzZXJuYW1lJyk7XG4gICAgY29uc3Qgc3ViamVjdCA9ICdQYXNzd29yZCBSZXNldCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxufVxuXG4vLyBNYXJrIHRoaXMgcHJpdmF0ZVxuZnVuY3Rpb24gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCBjb25maWcpIHtcbiAgcmV0dXJuIHJlc3RcbiAgICAudXBkYXRlKFxuICAgICAgY29uZmlnLFxuICAgICAgQXV0aC5tYXN0ZXIoY29uZmlnKSxcbiAgICAgICdfVXNlcicsXG4gICAgICB7IG9iamVjdElkOiB1c2VyLm9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgIH1cbiAgICApXG4gICAgLnRoZW4oKCkgPT4gdXNlcik7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRW1haWxMaW5rKGRlc3RpbmF0aW9uLCB1c2VybmFtZSwgdG9rZW4sIGNvbmZpZykge1xuICBjb25zdCB1c2VybmFtZUFuZFRva2VuID0gYHRva2VuPSR7dG9rZW59JnVzZXJuYW1lPSR7dXNlcm5hbWV9YDtcblxuICBpZiAoY29uZmlnLnBhcnNlRnJhbWVVUkwpIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbldpdGhvdXRIb3N0ID0gZGVzdGluYXRpb24ucmVwbGFjZShjb25maWcucHVibGljU2VydmVyVVJMLCAnJyk7XG5cbiAgICByZXR1cm4gYCR7Y29uZmlnLnBhcnNlRnJhbWVVUkx9P2xpbms9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICBkZXN0aW5hdGlvbldpdGhvdXRIb3N0XG4gICAgKX0mJHt1c2VybmFtZUFuZFRva2VufWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGAke2Rlc3RpbmF0aW9ufT8ke3VzZXJuYW1lQW5kVG9rZW59YDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVc2VyQ29udHJvbGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUErQixTQUFBRyx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFD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
|
|
366
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX3RyaWdnZXJzIiwiX0FkYXB0YWJsZUNvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX01haWxBZGFwdGVyIiwiX3Jlc3QiLCJfbm9kZSIsIl9BY2NvdW50TG9ja291dCIsIl9Db25maWciLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiUmVzdFF1ZXJ5IiwiQXV0aCIsIlVzZXJDb250cm9sbGVyIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWRhcHRlciIsImFwcElkIiwib3B0aW9ucyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsInZhbGlkYXRlQWRhcHRlciIsInNob3VsZFZlcmlmeUVtYWlscyIsImV4cGVjdGVkQWRhcHRlclR5cGUiLCJNYWlsQWRhcHRlciIsInZlcmlmeVVzZXJFbWFpbHMiLCJzZXRFbWFpbFZlcmlmeVRva2VuIiwidXNlciIsInJlcSIsInN0b3JhZ2UiLCJzaG91bGRTZW5kRW1haWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9lbWFpbF92ZXJpZnlfdG9rZW4iLCJyYW5kb21TdHJpbmciLCJmaWVsZHNDaGFuZ2VkQnlUcmlnZ2VyIiwiaW5jbHVkZXMiLCJlbWFpbFZlcmlmaWVkIiwiZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQiLCJQYXJzZSIsIl9lbmNvZGUiLCJnZW5lcmF0ZUVtYWlsVmVyaWZ5VG9rZW5FeHBpcmVzQXQiLCJ2ZXJpZnlFbWFpbCIsInVzZXJuYW1lIiwidG9rZW4iLCJxdWVyeSIsInVwZGF0ZUZpZWxkcyIsIl9fb3AiLCIkZ3QiLCJEYXRlIiwibWFpbnRlbmFuY2VBdXRoIiwibWFpbnRlbmFuY2UiLCJmaW5kVXNlckZvckVtYWlsVmVyaWZpY2F0aW9uIiwibWV0aG9kIiwiTWV0aG9kIiwiYXV0aCIsImNsYXNzTmFtZSIsInJlc3RXaGVyZSIsImV4ZWN1dGUiLCJ0aGVuIiwicmVzdWx0IiwicmVzdWx0cyIsIm9iamVjdElkIiwicmVzdCIsInVwZGF0ZSIsImNoZWNrUmVzZXRUb2tlblZhbGlkaXR5IiwiZGF0YWJhc2UiLCJmaW5kIiwiX3BlcmlzaGFibGVfdG9rZW4iLCJsaW1pdCIsInBhc3N3b3JkUG9saWN5IiwicmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJleHBpcmVzRGF0ZSIsIl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQiLCJfX3R5cGUiLCJpc28iLCJnZXRVc2VySWZOZWVkZWQiLCJ3aGVyZSIsImVtYWlsIiwicnVuQmVmb3JlRmluZCIsIm1hc3RlciIsImVuY29kZVVSSUNvbXBvbmVudCIsImZldGNoZWRVc2VyIiwic2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbiIsIl9yZXEkYXV0aCIsInJlc3BvbnNlIiwiZnJvbUpTT04iLCJpc01hc3RlciIsImxpbmsiLCJidWlsZEVtYWlsTGluayIsInZlcmlmeUVtYWlsVVJMIiwiYXBwTmFtZSIsImluZmxhdGUiLCJzZW5kTWFpbCIsImRlZmF1bHRWZXJpZmljYXRpb25FbWFpbCIsInJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuIiwiaW5zdGFsbGF0aW9uSWQiLCJpcCIsImVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQiLCJzaG91bGRTZW5kIiwiVXNlciIsImFzc2lnbiIsInJlc2VuZFJlcXVlc3QiLCJyZXNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9yZXEkYXV0aDIiLCJfcmVxJGF1dGgzIiwiYVVzZXIiLCJnZW5lcmF0ZSIsInNldFBhc3N3b3JkUmVzZXRUb2tlbiIsImdlbmVyYXRlUGFzc3dvcmRSZXNldFRva2VuRXhwaXJlc0F0IiwiJG9yIiwiJGV4aXN0cyIsInNlbmRQYXNzd29yZFJlc2V0RW1haWwiLCJyZXNldFRva2VuUmV1c2VJZlZhbGlkIiwicmVxdWVzdFJlc2V0UGFzc3dvcmRVUkwiLCJkZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsIiwidXBkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsInVwZGF0ZVVzZXJQYXNzd29yZCIsImFjY291bnRMb2Nrb3V0UG9saWN5IiwiQWNjb3VudExvY2tvdXQiLCJ1bmxvY2tBY2NvdW50IiwiY2F0Y2giLCJlcnJvciIsIm1lc3NhZ2UiLCJyZWplY3QiLCJ0ZXh0IiwidG8iLCJzdWJqZWN0IiwiZXhwb3J0cyIsImRlc3RpbmF0aW9uIiwidXNlcm5hbWVBbmRUb2tlbiIsInBhcnNlRnJhbWVVUkwiLCJkZXN0aW5hdGlvbldpdGhvdXRIb3N0IiwicmVwbGFjZSIsInB1YmxpY1NlcnZlclVSTCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbnRyb2xsZXJzL1VzZXJDb250cm9sbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVN0cmluZyB9IGZyb20gJy4uL2NyeXB0b1V0aWxzJztcbmltcG9ydCB7IGluZmxhdGUgfSBmcm9tICcuLi90cmlnZ2Vycyc7XG5pbXBvcnQgQWRhcHRhYmxlQ29udHJvbGxlciBmcm9tICcuL0FkYXB0YWJsZUNvbnRyb2xsZXInO1xuaW1wb3J0IE1haWxBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL0VtYWlsL01haWxBZGFwdGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IEFjY291bnRMb2Nrb3V0IGZyb20gJy4uL0FjY291bnRMb2Nrb3V0JztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcblxudmFyIFJlc3RRdWVyeSA9IHJlcXVpcmUoJy4uL1Jlc3RRdWVyeScpO1xudmFyIEF1dGggPSByZXF1aXJlKCcuLi9BdXRoJyk7XG5cbmV4cG9ydCBjbGFzcyBVc2VyQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gQ29uZmlnLmdldCh0aGlzLmFwcElkKTtcbiAgfVxuXG4gIHZhbGlkYXRlQWRhcHRlcihhZGFwdGVyKSB7XG4gICAgLy8gQWxsb3cgbm8gYWRhcHRlclxuICAgIGlmICghYWRhcHRlciAmJiAhdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIpO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICByZXR1cm4gTWFpbEFkYXB0ZXI7XG4gIH1cblxuICBnZXQgc2hvdWxkVmVyaWZ5RW1haWxzKCkge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgfHwgdGhpcy5vcHRpb25zKS52ZXJpZnlVc2VyRW1haWxzO1xuICB9XG5cbiAgYXN5bmMgc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCByZXEsIHN0b3JhZ2UgPSB7fSkge1xuICAgIGNvbnN0IHNob3VsZFNlbmRFbWFpbCA9XG4gICAgICB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gdHJ1ZSB8fFxuICAgICAgKHR5cGVvZiB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2hvdWxkVmVyaWZ5RW1haWxzKHJlcSkpKSA9PT0gdHJ1ZSk7XG4gICAgaWYgKCFzaG91bGRTZW5kRW1haWwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3RvcmFnZS5zZW5kVmVyaWZpY2F0aW9uRW1haWwgPSB0cnVlO1xuICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbiA9IHJhbmRvbVN0cmluZygyNSk7XG4gICAgaWYgKFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlciB8fFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlci5pbmNsdWRlcygnZW1haWxWZXJpZmllZCcpXG4gICAgKSB7XG4gICAgICB1c2VyLmVtYWlsVmVyaWZpZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24pIHtcbiAgICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuRXhwaXJlc0F0KClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RW1haWwodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFZlcmlmeUVtYWlscykge1xuICAgICAgLy8gVHJ5aW5nIHRvIHZlcmlmeSBlbWFpbCB3aGVuIG5vdCBlbmFibGVkXG4gICAgICAvLyBUT0RPOiBCZXR0ZXIgZXJyb3IgaGVyZS5cbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBfZW1haWxfdmVyaWZ5X3Rva2VuOiB0b2tlbiB9O1xuICAgIGNvbnN0IHVwZGF0ZUZpZWxkcyA9IHtcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IHRydWUsXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuOiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgfTtcblxuICAgIC8vIGlmIHRoZSBlbWFpbCB2ZXJpZnkgdG9rZW4gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIHRoZW5cbiAgICAvLyBhZGQgYWRkaXRpb25hbCBxdWVyeSBwYXJhbXMgYW5kIGFkZGl0aW9uYWwgZmllbGRzIHRoYXQgbmVlZCB0byBiZSB1cGRhdGVkXG4gICAgaWYgKHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICBxdWVyeS5lbWFpbFZlcmlmaWVkID0gZmFsc2U7XG4gICAgICBxdWVyeS5fZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgPSB7ICRndDogUGFyc2UuX2VuY29kZShuZXcgRGF0ZSgpKSB9O1xuXG4gICAgICB1cGRhdGVGaWVsZHMuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0geyBfX29wOiAnRGVsZXRlJyB9O1xuICAgIH1cbiAgICBjb25zdCBtYWludGVuYW5jZUF1dGggPSBBdXRoLm1haW50ZW5hbmNlKHRoaXMuY29uZmlnKTtcbiAgICB2YXIgZmluZFVzZXJGb3JFbWFpbFZlcmlmaWNhdGlvbiA9IGF3YWl0IFJlc3RRdWVyeSh7XG4gICAgICBtZXRob2Q6IFJlc3RRdWVyeS5NZXRob2QuZ2V0LFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgIGF1dGg6IG1haW50ZW5hbmNlQXV0aCxcbiAgICAgIGNsYXNzTmFtZTogJ19Vc2VyJyxcbiAgICAgIHJlc3RXaGVyZToge1xuICAgICAgICB1c2VybmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbmRVc2VyRm9yRW1haWxWZXJpZmljYXRpb24uZXhlY3V0ZSgpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQucmVzdWx0cy5sZW5ndGggJiYgcmVzdWx0LnJlc3VsdHNbMF0uZW1haWxWZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdC5yZXN1bHRzLmxlbmd0aFswXSk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5yZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBxdWVyeS5vYmplY3RJZCA9IHJlc3VsdC5yZXN1bHRzWzBdLm9iamVjdElkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3QudXBkYXRlKHRoaXMuY29uZmlnLCBtYWludGVuYW5jZUF1dGgsICdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hlY2tSZXNldFRva2VuVmFsaWRpdHkodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRhdGFiYXNlXG4gICAgICAuZmluZChcbiAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgICBfcGVyaXNoYWJsZV90b2tlbjogdG9rZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIHRocm93ICdGYWlsZWQgdG8gcmVzZXQgcGFzc3dvcmQ6IHVzZXJuYW1lIC8gZW1haWwgLyB0b2tlbiBpcyBpbnZhbGlkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeSAmJiB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbikge1xuICAgICAgICAgIGxldCBleHBpcmVzRGF0ZSA9IHJlc3VsdHNbMF0uX3BlcmlzaGFibGVfdG9rZW5fZXhwaXJlc19hdDtcbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgJiYgZXhwaXJlc0RhdGUuX190eXBlID09ICdEYXRlJykge1xuICAgICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgPCBuZXcgRGF0ZSgpKSB0aHJvdyAnVGhlIHBhc3N3b3JkIHJlc2V0IGxpbmsgaGFzIGV4cGlyZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzWzBdO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VySWZOZWVkZWQodXNlcikge1xuICAgIHZhciB3aGVyZSA9IHt9O1xuICAgIGlmICh1c2VyLnVzZXJuYW1lKSB7XG4gICAgICB3aGVyZS51c2VybmFtZSA9IHVzZXIudXNlcm5hbWU7XG4gICAgfVxuICAgIGlmICh1c2VyLmVtYWlsKSB7XG4gICAgICB3aGVyZS5lbWFpbCA9IHVzZXIuZW1haWw7XG4gICAgfVxuXG4gICAgdmFyIHF1ZXJ5ID0gYXdhaXQgUmVzdFF1ZXJ5KHtcbiAgICAgIG1ldGhvZDogUmVzdFF1ZXJ5Lk1ldGhvZC5nZXQsXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgcnVuQmVmb3JlRmluZDogZmFsc2UsXG4gICAgICBhdXRoOiBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksXG4gICAgICBjbGFzc05hbWU6ICdfVXNlcicsXG4gICAgICByZXN0V2hlcmU6IHdoZXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5LmV4ZWN1dGUoKTtcbiAgICBpZiAocmVzdWx0LnJlc3VsdHMubGVuZ3RoICE9IDEpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRzWzBdO1xuICB9XG5cbiAgYXN5bmMgc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHVzZXIsIHJlcSkge1xuICAgIGlmICghdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBlbmNvZGVVUklDb21wb25lbnQodXNlci5fZW1haWxfdmVyaWZ5X3Rva2VuKTtcbiAgICAvLyBXZSBtYXkgbmVlZCB0byBmZXRjaCB0aGUgdXNlciBpbiBjYXNlIG9mIHVwZGF0ZSBlbWFpbDsgb25seSB1c2UgdGhlIGBmZXRjaGVkVXNlcmBcbiAgICAvLyBmcm9tIHRoaXMgcG9pbnQgb253YXJkczsgZG8gbm90IHVzZSB0aGUgYHVzZXJgIGFzIGl0IG1heSBub3QgY29udGFpbiBhbGwgZmllbGRzLlxuICAgIGNvbnN0IGZldGNoZWRVc2VyID0gYXdhaXQgdGhpcy5nZXRVc2VySWZOZWVkZWQodXNlcik7XG4gICAgbGV0IHNob3VsZFNlbmRFbWFpbCA9IHRoaXMuY29uZmlnLnNlbmRVc2VyRW1haWxWZXJpZmljYXRpb247XG4gICAgaWYgKHR5cGVvZiBzaG91bGRTZW5kRW1haWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICB0aGlzLmNvbmZpZy5zZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uKHtcbiAgICAgICAgICB1c2VyOiBQYXJzZS5PYmplY3QuZnJvbUpTT04oeyBjbGFzc05hbWU6ICdfVXNlcicsIC4uLmZldGNoZWRVc2VyIH0pLFxuICAgICAgICAgIG1hc3RlcjogcmVxLmF1dGg/LmlzTWFzdGVyLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHNob3VsZFNlbmRFbWFpbCA9ICEhcmVzcG9uc2U7XG4gICAgfVxuICAgIGlmICghc2hvdWxkU2VuZEVtYWlsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGZldGNoZWRVc2VyLnVzZXJuYW1lKTtcblxuICAgIGNvbnN0IGxpbmsgPSBidWlsZEVtYWlsTGluayh0aGlzLmNvbmZpZy52ZXJpZnlFbWFpbFVSTCwgdXNlcm5hbWUsIHRva2VuLCB0aGlzLmNvbmZpZyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmFwcE5hbWUsXG4gICAgICBsaW5rOiBsaW5rLFxuICAgICAgdXNlcjogaW5mbGF0ZSgnX1VzZXInLCBmZXRjaGVkVXNlciksXG4gICAgfTtcbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbCkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbChvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRNYWlsKHRoaXMuZGVmYXVsdFZlcmlmaWNhdGlvbkVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnZW5lcmF0ZXMgdGhlIGdpdmVuIHVzZXIncyBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICBhc3luYyByZWdlbmVyYXRlRW1haWxWZXJpZnlUb2tlbih1c2VyLCBtYXN0ZXIsIGluc3RhbGxhdGlvbklkLCBpcCkge1xuICAgIGNvbnN0IHsgX2VtYWlsX3ZlcmlmeV90b2tlbiB9ID0gdXNlcjtcbiAgICBsZXQgeyBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgfSA9IHVzZXI7XG4gICAgaWYgKF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCAmJiBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQuX190eXBlID09PSAnRGF0ZScpIHtcbiAgICAgIF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCA9IF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdC5pc287XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQgJiZcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uICYmXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuICYmXG4gICAgICBuZXcgRGF0ZSgpIDwgbmV3IERhdGUoX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0KVxuICAgICkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkU2VuZCA9IGF3YWl0IHRoaXMuc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCB7XG4gICAgICBvYmplY3Q6IFBhcnNlLlVzZXIuZnJvbUpTT04oT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogJ19Vc2VyJyB9LCB1c2VyKSksXG4gICAgICBtYXN0ZXIsXG4gICAgICBpbnN0YWxsYXRpb25JZCxcbiAgICAgIGlwLFxuICAgICAgcmVzZW5kUmVxdWVzdDogdHJ1ZVxuICAgIH0pO1xuICAgIGlmICghc2hvdWxkU2VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHsgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUgfSwgdXNlcik7XG4gIH1cblxuICBhc3luYyByZXNlbmRWZXJpZmljYXRpb25FbWFpbCh1c2VybmFtZSwgcmVxKSB7XG4gICAgY29uc3QgYVVzZXIgPSBhd2FpdCB0aGlzLmdldFVzZXJJZk5lZWRlZCh7IHVzZXJuYW1lOiB1c2VybmFtZSB9KTtcbiAgICBpZiAoIWFVc2VyIHx8IGFVc2VyLmVtYWlsVmVyaWZpZWQpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZ2VuZXJhdGUgPSBhd2FpdCB0aGlzLnJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuKGFVc2VyLCByZXEuYXV0aD8uaXNNYXN0ZXIsIHJlcS5hdXRoPy5pbnN0YWxsYXRpb25JZCwgcmVxLmlwKTtcbiAgICBpZiAoZ2VuZXJhdGUpIHtcbiAgICAgIHRoaXMuc2VuZFZlcmlmaWNhdGlvbkVtYWlsKGFVc2VyLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCkge1xuICAgIGNvbnN0IHRva2VuID0geyBfcGVyaXNoYWJsZV90b2tlbjogcmFuZG9tU3RyaW5nKDI1KSB9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5LnJlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICB0b2tlbi5fcGVyaXNoYWJsZV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVQYXNzd29yZFJlc2V0VG9rZW5FeHBpcmVzQXQoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKFxuICAgICAgJ19Vc2VyJyxcbiAgICAgIHsgJG9yOiBbeyBlbWFpbCB9LCB7IHVzZXJuYW1lOiBlbWFpbCwgZW1haWw6IHsgJGV4aXN0czogZmFsc2UgfSB9XSB9LFxuICAgICAgdG9rZW4sXG4gICAgICB7fSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbCkge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICB0aHJvdyAnVHJ5aW5nIHRvIHNlbmQgYSByZXNldCBwYXNzd29yZCBidXQgbm8gYWRhcHRlciBpcyBzZXQnO1xuICAgICAgLy8gIFRPRE86IE5vIGFkYXB0ZXI/XG4gICAgfVxuICAgIGxldCB1c2VyO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuUmV1c2VJZlZhbGlkICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvblxuICAgICkge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuY29uZmlnLmRhdGFiYXNlLmZpbmQoXG4gICAgICAgICdfVXNlcicsXG4gICAgICAgIHtcbiAgICAgICAgICAkb3I6IFtcbiAgICAgICAgICAgIHsgZW1haWwsIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgICAgeyB1c2VybmFtZTogZW1haWwsIGVtYWlsOiB7ICRleGlzdHM6IGZhbHNlIH0sIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgICk7XG4gICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT0gMSkge1xuICAgICAgICBsZXQgZXhwaXJlc0RhdGUgPSByZXN1bHRzWzBdLl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQ7XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSAmJiBleHBpcmVzRGF0ZS5fX3R5cGUgPT0gJ0RhdGUnKSB7XG4gICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSA+IG5ldyBEYXRlKCkpIHtcbiAgICAgICAgICB1c2VyID0gcmVzdWx0c1swXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXVzZXIgfHwgIXVzZXIuX3BlcmlzaGFibGVfdG9rZW4pIHtcbiAgICAgIHVzZXIgPSBhd2FpdCB0aGlzLnNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIuX3BlcmlzaGFibGVfdG9rZW4pO1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIudXNlcm5hbWUpO1xuXG4gICAgY29uc3QgbGluayA9IGJ1aWxkRW1haWxMaW5rKHRoaXMuY29uZmlnLnJlcXVlc3RSZXNldFBhc3N3b3JkVVJMLCB1c2VybmFtZSwgdG9rZW4sIHRoaXMuY29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgYXBwTmFtZTogdGhpcy5jb25maWcuYXBwTmFtZSxcbiAgICAgIGxpbms6IGxpbmssXG4gICAgICB1c2VyOiBpbmZsYXRlKCdfVXNlcicsIHVzZXIpLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRQYXNzd29yZFJlc2V0RW1haWwpIHtcbiAgICAgIHRoaXMuYWRhcHRlci5zZW5kUGFzc3dvcmRSZXNldEVtYWlsKG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkYXB0ZXIuc2VuZE1haWwodGhpcy5kZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVzZXIpO1xuICB9XG5cbiAgdXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBwYXNzd29yZCkge1xuICAgIHJldHVybiB0aGlzLmNoZWNrUmVzZXRUb2tlblZhbGlkaXR5KHVzZXJuYW1lLCB0b2tlbilcbiAgICAgIC50aGVuKHVzZXIgPT4gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCB0aGlzLmNvbmZpZykpXG4gICAgICAudGhlbih1c2VyID0+IHtcbiAgICAgICAgY29uc3QgYWNjb3VudExvY2tvdXRQb2xpY3kgPSBuZXcgQWNjb3VudExvY2tvdXQodXNlciwgdGhpcy5jb25maWcpO1xuICAgICAgICByZXR1cm4gYWNjb3VudExvY2tvdXRQb2xpY3kudW5sb2NrQWNjb3VudCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBQYXJzZS5FcnJvciwgZmFpbCB3aXRoIHRoZSBlcnJvciBtZXNzYWdlIG9ubHlcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBkZWZhdWx0VmVyaWZpY2F0aW9uRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgYXJlIGJlaW5nIGFza2VkIHRvIGNvbmZpcm0gdGhlIGUtbWFpbCBhZGRyZXNzICcgK1xuICAgICAgdXNlci5nZXQoJ2VtYWlsJykgK1xuICAgICAgJyB3aXRoICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAnXFxuXFxuJyArXG4gICAgICAnJyArXG4gICAgICAnQ2xpY2sgaGVyZSB0byBjb25maXJtIGl0OlxcbicgK1xuICAgICAgbGluaztcbiAgICBjb25zdCB0byA9IHVzZXIuZ2V0KCdlbWFpbCcpO1xuICAgIGNvbnN0IHN1YmplY3QgPSAnUGxlYXNlIHZlcmlmeSB5b3VyIGUtbWFpbCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxuXG4gIGRlZmF1bHRSZXNldFBhc3N3b3JkRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgcmVxdWVzdGVkIHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQgZm9yICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAodXNlci5nZXQoJ3VzZXJuYW1lJykgPyBcIiAoeW91ciB1c2VybmFtZSBpcyAnXCIgKyB1c2VyLmdldCgndXNlcm5hbWUnKSArIFwiJylcIiA6ICcnKSArXG4gICAgICAnLlxcblxcbicgK1xuICAgICAgJycgK1xuICAgICAgJ0NsaWNrIGhlcmUgdG8gcmVzZXQgaXQ6XFxuJyArXG4gICAgICBsaW5rO1xuICAgIGNvbnN0IHRvID0gdXNlci5nZXQoJ2VtYWlsJykgfHwgdXNlci5nZXQoJ3VzZXJuYW1lJyk7XG4gICAgY29uc3Qgc3ViamVjdCA9ICdQYXNzd29yZCBSZXNldCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxufVxuXG4vLyBNYXJrIHRoaXMgcHJpdmF0ZVxuZnVuY3Rpb24gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCBjb25maWcpIHtcbiAgcmV0dXJuIHJlc3RcbiAgICAudXBkYXRlKFxuICAgICAgY29uZmlnLFxuICAgICAgQXV0aC5tYXN0ZXIoY29uZmlnKSxcbiAgICAgICdfVXNlcicsXG4gICAgICB7IG9iamVjdElkOiB1c2VyLm9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgIH1cbiAgICApXG4gICAgLnRoZW4oKCkgPT4gdXNlcik7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRW1haWxMaW5rKGRlc3RpbmF0aW9uLCB1c2VybmFtZSwgdG9rZW4sIGNvbmZpZykge1xuICBjb25zdCB1c2VybmFtZUFuZFRva2VuID0gYHRva2VuPSR7dG9rZW59JnVzZXJuYW1lPSR7dXNlcm5hbWV9YDtcblxuICBpZiAoY29uZmlnLnBhcnNlRnJhbWVVUkwpIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbldpdGhvdXRIb3N0ID0gZGVzdGluYXRpb24ucmVwbGFjZShjb25maWcucHVibGljU2VydmVyVVJMLCAnJyk7XG5cbiAgICByZXR1cm4gYCR7Y29uZmlnLnBhcnNlRnJhbWVVUkx9P2xpbms9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICBkZXN0aW5hdGlvbldpdGhvdXRIb3N0XG4gICAgKX0mJHt1c2VybmFtZUFuZFRva2VufWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGAke2Rlc3RpbmF0aW9ufT8ke3VzZXJuYW1lQW5kVG9rZW59YDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVc2VyQ29udHJvbGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUErQixTQUFBRyx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFDLE1BQUEsQ0FBQUQsSUFBQSxDQUFBRixNQUFBLE9BQUFHLE1BQUEsQ0FBQUMscUJBQUEsUUFBQUMsT0FBQSxHQUFBRixNQUFBLENBQUFDLHFCQUFBLENBQUFKLE1BQUEsR0FBQUMsY0FBQSxLQUFB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
|
|
@@ -17,7 +17,7 @@ var Parse = require('parse/node').Parse,
|
|
|
17
17
|
function parseObject(obj, config) {
|
|
18
18
|
if (Array.isArray(obj)) {
|
|
19
19
|
return obj.map(item => {
|
|
20
|
-
return parseObject(item);
|
|
20
|
+
return parseObject(item, config);
|
|
21
21
|
});
|
|
22
22
|
} else if (obj && obj.__type == 'Date') {
|
|
23
23
|
return Object.assign(new Date(obj.iso), obj);
|
|
@@ -161,4 +161,4 @@ class FunctionsRouter extends _PromiseRouter.default {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
exports.FunctionsRouter = FunctionsRouter;
|
|
164
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmVzIiwiX1N0YXR1c0hhbmRsZXIiLCJfbG9kYXNoIiwiX2xvZ2dlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiUGFyc2UiLCJ0cmlnZ2VycyIsInBhcnNlT2JqZWN0IiwiY29uZmlnIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiaXRlbSIsIl9fdHlwZSIsIk9iamVjdCIsImFzc2lnbiIsIkRhdGUiLCJpc28iLCJGaWxlIiwiZnJvbUpTT04iLCJlbmNvZGVQYXJzZU9iamVjdEluQ2xvdWRGdW5jdGlvbiIsImNsYXNzTmFtZSIsIm9iamVjdElkIiwicGFyc2VQYXJhbXMiLCJwYXJhbXMiLCJfIiwibWFwVmFsdWVzIiwiRnVuY3Rpb25zUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3kiLCJoYW5kbGVDbG91ZEZ1bmN0aW9uIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiLCJyZXEiLCJoYW5kbGVDbG91ZEpvYiIsImpvYk5hbWUiLCJib2R5IiwiYXBwbGljYXRpb25JZCIsImpvYkhhbmRsZXIiLCJqb2JTdGF0dXNIYW5kbGVyIiwiam9iRnVuY3Rpb24iLCJnZXRKb2IiLCJFcnJvciIsIlNDUklQVF9GQUlMRUQiLCJxdWVyeSIsInJlcXVlc3QiLCJsb2ciLCJsb2dnZXJDb250cm9sbGVyIiwiaGVhZGVycyIsImlwIiwibWVzc2FnZSIsInNldE1lc3NhZ2UiLCJiaW5kIiwic2V0UnVubmluZyIsInRoZW4iLCJqb2JTdGF0dXMiLCJqb2JJZCIsInByb2Nlc3MiLCJuZXh0VGljayIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzdWx0Iiwic2V0U3VjY2VlZGVkIiwiZXJyb3IiLCJzZXRGYWlsZWQiLCJyZXNwb25zZSIsImNyZWF0ZVJlc3BvbnNlT2JqZWN0IiwicmVqZWN0Iiwic3VjY2VzcyIsIl9lbmNvZGUiLCJyZXNvbHZlRXJyb3IiLCJmdW5jdGlvbk5hbWUiLCJ0aGVGdW5jdGlvbiIsImdldEZ1bmN0aW9uIiwibWFzdGVyIiwiYXV0aCIsImlzTWFzdGVyIiwidXNlciIsImluc3RhbGxhdGlvbklkIiwiaW5mbyIsImNvbnRleHQiLCJ1c2VyU3RyaW5nIiwiaWQiLCJ1bmRlZmluZWQiLCJjbGVhbklucHV0IiwibG9nZ2VyIiwidHJ1bmNhdGVMb2dNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImNsZWFuUmVzdWx0IiwibG9nTGV2ZWxzIiwiY2xvdWRGdW5jdGlvblN1Y2Nlc3MiLCJlIiwiY2xvdWRGdW5jdGlvbkVycm9yIiwibWF5YmVSdW5WYWxpZGF0b3IiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvRnVuY3Rpb25zUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZ1bmN0aW9uc1JvdXRlci5qc1xuXG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2UsXG4gIHRyaWdnZXJzID0gcmVxdWlyZSgnLi4vdHJpZ2dlcnMnKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgeyBwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5IH0gZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHsgam9iU3RhdHVzSGFuZGxlciB9IGZyb20gJy4uL1N0YXR1c0hhbmRsZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xvZ2dlcic7XG5cbmZ1bmN0aW9uIHBhcnNlT2JqZWN0KG9iaiwgY29uZmlnKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiBwYXJzZU9iamVjdChpdGVtKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChvYmogJiYgb2JqLl9fdHlwZSA9PSAnRGF0ZScpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRGF0ZShvYmouaXNvKSwgb2JqKTtcbiAgfSBlbHNlIGlmIChvYmogJiYgb2JqLl9fdHlwZSA9PSAnRmlsZScpIHtcbiAgICByZXR1cm4gUGFyc2UuRmlsZS5mcm9tSlNPTihvYmopO1xuICB9IGVsc2UgaWYgKG9iaiAmJiBvYmouX190eXBlID09ICdQb2ludGVyJyAmJiBjb25maWcuZW5jb2RlUGFyc2VPYmplY3RJbkNsb3VkRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gUGFyc2UuT2JqZWN0LmZyb21KU09OKHtcbiAgICAgIF9fdHlwZTogJ1BvaW50ZXInLFxuICAgICAgY2xhc3NOYW1lOiBvYmouY2xhc3NOYW1lLFxuICAgICAgb2JqZWN0SWQ6IG9iai5vYmplY3RJZCxcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gcGFyc2VQYXJhbXMob2JqLCBjb25maWcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvYmo7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJhbXMocGFyYW1zLCBjb25maWcpIHtcbiAgcmV0dXJuIF8ubWFwVmFsdWVzKHBhcmFtcywgaXRlbSA9PiBwYXJzZU9iamVjdChpdGVtLCBjb25maWcpKTtcbn1cblxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9mdW5jdGlvbnMvOmZ1bmN0aW9uTmFtZScsXG4gICAgICBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksXG4gICAgICBGdW5jdGlvbnNSb3V0ZXIuaGFuZGxlQ2xvdWRGdW5jdGlvblxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdQT1NUJyxcbiAgICAgICcvam9icy86am9iTmFtZScsXG4gICAgICBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksXG4gICAgICBwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGZ1bmN0aW9uIChyZXEpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uc1JvdXRlci5oYW5kbGVDbG91ZEpvYihyZXEpO1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvam9icycsIHByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBmdW5jdGlvbiAocmVxKSB7XG4gICAgICByZXR1cm4gRnVuY3Rpb25zUm91dGVyLmhhbmRsZUNsb3VkSm9iKHJlcSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlQ2xvdWRKb2IocmVxKSB7XG4gICAgY29uc3Qgam9iTmFtZSA9IHJlcS5wYXJhbXMuam9iTmFtZSB8fCByZXEuYm9keS5qb2JOYW1lO1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSByZXEuY29uZmlnLmFwcGxpY2F0aW9uSWQ7XG4gICAgY29uc3Qgam9iSGFuZGxlciA9IGpvYlN0YXR1c0hhbmRsZXIocmVxLmNvbmZpZyk7XG4gICAgY29uc3Qgam9iRnVuY3Rpb24gPSB0cmlnZ2Vycy5nZXRKb2Ioam9iTmFtZSwgYXBwbGljYXRpb25JZCk7XG4gICAgaWYgKCFqb2JGdW5jdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlNDUklQVF9GQUlMRUQsICdJbnZhbGlkIGpvYi4nKTtcbiAgICB9XG4gICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcS5ib2R5LCByZXEucXVlcnkpO1xuICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKHBhcmFtcywgcmVxLmNvbmZpZyk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgbG9nOiByZXEuY29uZmlnLmxvZ2dlckNvbnRyb2xsZXIsXG4gICAgICBoZWFkZXJzOiByZXEuY29uZmlnLmhlYWRlcnMsXG4gICAgICBpcDogcmVxLmNvbmZpZy5pcCxcbiAgICAgIGpvYk5hbWUsXG4gICAgICBtZXNzYWdlOiBqb2JIYW5kbGVyLnNldE1lc3NhZ2UuYmluZChqb2JIYW5kbGVyKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpvYkhhbmRsZXIuc2V0UnVubmluZyhqb2JOYW1lLCBwYXJhbXMpLnRoZW4oam9iU3RhdHVzID0+IHtcbiAgICAgIHJlcXVlc3Quam9iSWQgPSBqb2JTdGF0dXMub2JqZWN0SWQ7XG4gICAgICAvLyBydW4gdGhlIGZ1bmN0aW9uIGFzeW5jXG4gICAgICBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gam9iRnVuY3Rpb24ocmVxdWVzdCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgIHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgIGpvYkhhbmRsZXIuc2V0U3VjY2VlZGVkKHJlc3VsdCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICBqb2JIYW5kbGVyLnNldEZhaWxlZChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdYLVBhcnNlLUpvYi1TdGF0dXMtSWQnOiBqb2JTdGF0dXMub2JqZWN0SWQsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlUmVzcG9uc2VPYmplY3QocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgIHJlc3VsdDogUGFyc2UuX2VuY29kZShyZXN1bHQpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgICAgICBjb25zdCBlcnJvciA9IHRyaWdnZXJzLnJlc29sdmVFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBzdGF0aWMgaGFuZGxlQ2xvdWRGdW5jdGlvbihyZXEpIHtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSByZXEucGFyYW1zLmZ1bmN0aW9uTmFtZTtcbiAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gcmVxLmNvbmZpZy5hcHBsaWNhdGlvbklkO1xuICAgIGNvbnN0IHRoZUZ1bmN0aW9uID0gdHJpZ2dlcnMuZ2V0RnVuY3Rpb24oZnVuY3Rpb25OYW1lLCBhcHBsaWNhdGlvbklkKTtcblxuICAgIGlmICghdGhlRnVuY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5TQ1JJUFRfRkFJTEVELCBgSW52YWxpZCBmdW5jdGlvbjogXCIke2Z1bmN0aW9uTmFtZX1cImApO1xuICAgIH1cbiAgICBsZXQgcGFyYW1zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxLmJvZHksIHJlcS5xdWVyeSk7XG4gICAgcGFyYW1zID0gcGFyc2VQYXJhbXMocGFyYW1zLCByZXEuY29uZmlnKTtcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICBtYXN0ZXI6IHJlcS5hdXRoICYmIHJlcS5hdXRoLmlzTWFzdGVyLFxuICAgICAgdXNlcjogcmVxLmF1dGggJiYgcmVxLmF1dGgudXNlcixcbiAgICAgIGluc3RhbGxhdGlvbklkOiByZXEuaW5mby5pbnN0YWxsYXRpb25JZCxcbiAgICAgIGxvZzogcmVxLmNvbmZpZy5sb2dnZXJDb250cm9sbGVyLFxuICAgICAgaGVhZGVyczogcmVxLmNvbmZpZy5oZWFkZXJzLFxuICAgICAgaXA6IHJlcS5jb25maWcuaXAsXG4gICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICBjb250ZXh0OiByZXEuaW5mby5jb250ZXh0LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgY29uc3QgdXNlclN0cmluZyA9IHJlcS5hdXRoICYmIHJlcS5hdXRoLnVzZXIgPyByZXEuYXV0aC51c2VyLmlkIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgY2xlYW5JbnB1dCA9IGxvZ2dlci50cnVuY2F0ZUxvZ01lc3NhZ2UoSlNPTi5zdHJpbmdpZnkocGFyYW1zKSk7XG4gICAgICBjb25zdCB7IHN1Y2Nlc3MsIGVycm9yIH0gPSBGdW5jdGlvbnNSb3V0ZXIuY3JlYXRlUmVzcG9uc2VPYmplY3QoXG4gICAgICAgIHJlc3VsdCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuUmVzdWx0ID0gbG9nZ2VyLnRydW5jYXRlTG9nTWVzc2FnZShKU09OLnN0cmluZ2lmeShyZXN1bHQucmVzcG9uc2UucmVzdWx0KSk7XG4gICAgICAgICAgICBsb2dnZXJbcmVxLmNvbmZpZy5sb2dMZXZlbHMuY2xvdWRGdW5jdGlvblN1Y2Nlc3NdKFxuICAgICAgICAgICAgICBgUmFuIGNsb3VkIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSBmb3IgdXNlciAke3VzZXJTdHJpbmd9IHdpdGg6XFxuICBJbnB1dDogJHtjbGVhbklucHV0fVxcbiAgUmVzdWx0OiAke2NsZWFuUmVzdWx0fWAsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgIHVzZXI6IHVzZXJTdHJpbmcsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2dnZXJbcmVxLmNvbmZpZy5sb2dMZXZlbHMuY2xvdWRGdW5jdGlvbkVycm9yXShcbiAgICAgICAgICAgICAgYEZhaWxlZCBydW5uaW5nIGNsb3VkIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSBmb3IgdXNlciAke3VzZXJTdHJpbmd9IHdpdGg6XFxuICBJbnB1dDogJHtjbGVhbklucHV0fVxcbiAgRXJyb3I6IGAgK1xuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGVycm9yKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgdXNlcjogdXNlclN0cmluZyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyaWdnZXJzLm1heWJlUnVuVmFsaWRhdG9yKHJlcXVlc3QsIGZ1bmN0aW9uTmFtZSwgcmVxLmF1dGgpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoZUZ1bmN0aW9uKHJlcXVlc3QpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihzdWNjZXNzLCBlcnJvcik7XG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsWUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQW1DLFNBQUFELHVCQUFBTSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBVG5DOztBQUVBLElBQUlHLEtBQUssR0FBR1IsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDUSxLQUFLO0VBQ3JDQyxRQUFRLEdBQUdULE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFRbkMsU0FBU1UsV0FBV0EsQ0FBQ0wsR0FBRyxFQUFFTSxNQUFNLEVBQUU7RUFDaEMsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNSLEdBQUcsQ0FBQyxFQUFFO0lBQ3RCLE9BQU9BLEdBQUcsQ0FBQ1MsR0FBRyxDQUFDQyxJQUFJLElBQUk7TUFDckIsT0FBT0wsV0FBVyxDQUFDSyxJQUFJLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxNQUFNLElBQUlWLEdBQUcsSUFBSUEsR0FBRyxDQUFDVyxNQUFNLElBQUksTUFBTSxFQUFFO0lBQ3RDLE9BQU9DLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUlDLElBQUksQ0FBQ2QsR0FBRyxDQUFDZSxHQUFHLENBQUMsRUFBRWYsR0FBRyxDQUFDO0VBQzlDLENBQUMsTUFBTSxJQUFJQSxHQUFHLElBQUlBLEdBQUcsQ0FBQ1csTUFBTSxJQUFJLE1BQU0sRUFBRTtJQUN0QyxPQUFPUixLQUFLLENBQUNhLElBQUksQ0FBQ0MsUUFBUSxDQUFDakIsR0FBRyxDQUFDO0VBQ2pDLENB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
|
|
164
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX21pZGRsZXdhcmVzIiwiX1N0YXR1c0hhbmRsZXIiLCJfbG9kYXNoIiwiX2xvZ2dlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiUGFyc2UiLCJ0cmlnZ2VycyIsInBhcnNlT2JqZWN0IiwiY29uZmlnIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiaXRlbSIsIl9fdHlwZSIsIk9iamVjdCIsImFzc2lnbiIsIkRhdGUiLCJpc28iLCJGaWxlIiwiZnJvbUpTT04iLCJlbmNvZGVQYXJzZU9iamVjdEluQ2xvdWRGdW5jdGlvbiIsImNsYXNzTmFtZSIsIm9iamVjdElkIiwicGFyc2VQYXJhbXMiLCJwYXJhbXMiLCJfIiwibWFwVmFsdWVzIiwiRnVuY3Rpb25zUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3kiLCJoYW5kbGVDbG91ZEZ1bmN0aW9uIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiLCJyZXEiLCJoYW5kbGVDbG91ZEpvYiIsImpvYk5hbWUiLCJib2R5IiwiYXBwbGljYXRpb25JZCIsImpvYkhhbmRsZXIiLCJqb2JTdGF0dXNIYW5kbGVyIiwiam9iRnVuY3Rpb24iLCJnZXRKb2IiLCJFcnJvciIsIlNDUklQVF9GQUlMRUQiLCJxdWVyeSIsInJlcXVlc3QiLCJsb2ciLCJsb2dnZXJDb250cm9sbGVyIiwiaGVhZGVycyIsImlwIiwibWVzc2FnZSIsInNldE1lc3NhZ2UiLCJiaW5kIiwic2V0UnVubmluZyIsInRoZW4iLCJqb2JTdGF0dXMiLCJqb2JJZCIsInByb2Nlc3MiLCJuZXh0VGljayIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzdWx0Iiwic2V0U3VjY2VlZGVkIiwiZXJyb3IiLCJzZXRGYWlsZWQiLCJyZXNwb25zZSIsImNyZWF0ZVJlc3BvbnNlT2JqZWN0IiwicmVqZWN0Iiwic3VjY2VzcyIsIl9lbmNvZGUiLCJyZXNvbHZlRXJyb3IiLCJmdW5jdGlvbk5hbWUiLCJ0aGVGdW5jdGlvbiIsImdldEZ1bmN0aW9uIiwibWFzdGVyIiwiYXV0aCIsImlzTWFzdGVyIiwidXNlciIsImluc3RhbGxhdGlvbklkIiwiaW5mbyIsImNvbnRleHQiLCJ1c2VyU3RyaW5nIiwiaWQiLCJ1bmRlZmluZWQiLCJjbGVhbklucHV0IiwibG9nZ2VyIiwidHJ1bmNhdGVMb2dNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImNsZWFuUmVzdWx0IiwibG9nTGV2ZWxzIiwiY2xvdWRGdW5jdGlvblN1Y2Nlc3MiLCJlIiwiY2xvdWRGdW5jdGlvbkVycm9yIiwibWF5YmVSdW5WYWxpZGF0b3IiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvRnVuY3Rpb25zUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZ1bmN0aW9uc1JvdXRlci5qc1xuXG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2UsXG4gIHRyaWdnZXJzID0gcmVxdWlyZSgnLi4vdHJpZ2dlcnMnKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5pbXBvcnQgeyBwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5IH0gZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IHsgam9iU3RhdHVzSGFuZGxlciB9IGZyb20gJy4uL1N0YXR1c0hhbmRsZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xvZ2dlcic7XG5cbmZ1bmN0aW9uIHBhcnNlT2JqZWN0KG9iaiwgY29uZmlnKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiBwYXJzZU9iamVjdChpdGVtLCBjb25maWcpO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKG9iaiAmJiBvYmouX190eXBlID09ICdEYXRlJykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBEYXRlKG9iai5pc28pLCBvYmopO1xuICB9IGVsc2UgaWYgKG9iaiAmJiBvYmouX190eXBlID09ICdGaWxlJykge1xuICAgIHJldHVybiBQYXJzZS5GaWxlLmZyb21KU09OKG9iaik7XG4gIH0gZWxzZSBpZiAob2JqICYmIG9iai5fX3R5cGUgPT0gJ1BvaW50ZXInICYmIGNvbmZpZy5lbmNvZGVQYXJzZU9iamVjdEluQ2xvdWRGdW5jdGlvbikge1xuICAgIHJldHVybiBQYXJzZS5PYmplY3QuZnJvbUpTT04oe1xuICAgICAgX190eXBlOiAnUG9pbnRlcicsXG4gICAgICBjbGFzc05hbWU6IG9iai5jbGFzc05hbWUsXG4gICAgICBvYmplY3RJZDogb2JqLm9iamVjdElkLFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBwYXJzZVBhcmFtcyhvYmosIGNvbmZpZyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVBhcmFtcyhwYXJhbXMsIGNvbmZpZykge1xuICByZXR1cm4gXy5tYXBWYWx1ZXMocGFyYW1zLCBpdGVtID0+IHBhcnNlT2JqZWN0KGl0ZW0sIGNvbmZpZykpO1xufVxuXG5leHBvcnQgY2xhc3MgRnVuY3Rpb25zUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnUE9TVCcsXG4gICAgICAnL2Z1bmN0aW9ucy86ZnVuY3Rpb25OYW1lJyxcbiAgICAgIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSxcbiAgICAgIEZ1bmN0aW9uc1JvdXRlci5oYW5kbGVDbG91ZEZ1bmN0aW9uXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9qb2JzLzpqb2JOYW1lJyxcbiAgICAgIHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSxcbiAgICAgIHByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZnVuY3Rpb24gKHJlcSkge1xuICAgICAgICByZXR1cm4gRnVuY3Rpb25zUm91dGVyLmhhbmRsZUNsb3VkSm9iKHJlcSk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9qb2JzJywgcHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGZ1bmN0aW9uIChyZXEpIHtcbiAgICAgIHJldHVybiBGdW5jdGlvbnNSb3V0ZXIuaGFuZGxlQ2xvdWRKb2IocmVxKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVDbG91ZEpvYihyZXEpIHtcbiAgICBjb25zdCBqb2JOYW1lID0gcmVxLnBhcmFtcy5qb2JOYW1lIHx8IHJlcS5ib2R5LmpvYk5hbWU7XG4gICAgY29uc3QgYXBwbGljYXRpb25JZCA9IHJlcS5jb25maWcuYXBwbGljYXRpb25JZDtcbiAgICBjb25zdCBqb2JIYW5kbGVyID0gam9iU3RhdHVzSGFuZGxlcihyZXEuY29uZmlnKTtcbiAgICBjb25zdCBqb2JGdW5jdGlvbiA9IHRyaWdnZXJzLmdldEpvYihqb2JOYW1lLCBhcHBsaWNhdGlvbklkKTtcbiAgICBpZiAoIWpvYkZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuU0NSSVBUX0ZBSUxFRCwgJ0ludmFsaWQgam9iLicpO1xuICAgIH1cbiAgICBsZXQgcGFyYW1zID0gT2JqZWN0LmFzc2lnbih7fSwgcmVxLmJvZHksIHJlcS5xdWVyeSk7XG4gICAgcGFyYW1zID0gcGFyc2VQYXJhbXMocGFyYW1zLCByZXEuY29uZmlnKTtcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICBsb2c6IHJlcS5jb25maWcubG9nZ2VyQ29udHJvbGxlcixcbiAgICAgIGhlYWRlcnM6IHJlcS5jb25maWcuaGVhZGVycyxcbiAgICAgIGlwOiByZXEuY29uZmlnLmlwLFxuICAgICAgam9iTmFtZSxcbiAgICAgIG1lc3NhZ2U6IGpvYkhhbmRsZXIuc2V0TWVzc2FnZS5iaW5kKGpvYkhhbmRsZXIpLFxuICAgIH07XG5cbiAgICByZXR1cm4gam9iSGFuZGxlci5zZXRSdW5uaW5nKGpvYk5hbWUsIHBhcmFtcykudGhlbihqb2JTdGF0dXMgPT4ge1xuICAgICAgcmVxdWVzdC5qb2JJZCA9IGpvYlN0YXR1cy5vYmplY3RJZDtcbiAgICAgIC8vIHJ1biB0aGUgZnVuY3Rpb24gYXN5bmNcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soKCkgPT4ge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBqb2JGdW5jdGlvbihyZXF1ZXN0KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgam9iSGFuZGxlci5zZXRTdWNjZWVkZWQocmVzdWx0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIGpvYkhhbmRsZXIuc2V0RmFpbGVkKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ1gtUGFyc2UtSm9iLVN0YXR1cy1JZCc6IGpvYlN0YXR1cy5vYmplY3RJZCxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzcG9uc2U6IHt9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVSZXNwb25zZU9iamVjdChyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICByZXNwb25zZToge1xuICAgICAgICAgICAgcmVzdWx0OiBQYXJzZS5fZW5jb2RlKHJlc3VsdCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gdHJpZ2dlcnMucmVzb2x2ZUVycm9yKG1lc3NhZ2UpO1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHN0YXRpYyBoYW5kbGVDbG91ZEZ1bmN0aW9uKHJlcSkge1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHJlcS5wYXJhbXMuZnVuY3Rpb25OYW1lO1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uSWQgPSByZXEuY29uZmlnLmFwcGxpY2F0aW9uSWQ7XG4gICAgY29uc3QgdGhlRnVuY3Rpb24gPSB0cmlnZ2Vycy5nZXRGdW5jdGlvbihmdW5jdGlvbk5hbWUsIGFwcGxpY2F0aW9uSWQpO1xuXG4gICAgaWYgKCF0aGVGdW5jdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLlNDUklQVF9GQUlMRUQsIGBJbnZhbGlkIGZ1bmN0aW9uOiBcIiR7ZnVuY3Rpb25OYW1lfVwiYCk7XG4gICAgfVxuICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCByZXEuYm9keSwgcmVxLnF1ZXJ5KTtcbiAgICBwYXJhbXMgPSBwYXJzZVBhcmFtcyhwYXJhbXMsIHJlcS5jb25maWcpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIG1hc3RlcjogcmVxLmF1dGggJiYgcmVxLmF1dGguaXNNYXN0ZXIsXG4gICAgICB1c2VyOiByZXEuYXV0aCAmJiByZXEuYXV0aC51c2VyLFxuICAgICAgaW5zdGFsbGF0aW9uSWQ6IHJlcS5pbmZvLmluc3RhbGxhdGlvbklkLFxuICAgICAgbG9nOiByZXEuY29uZmlnLmxvZ2dlckNvbnRyb2xsZXIsXG4gICAgICBoZWFkZXJzOiByZXEuY29uZmlnLmhlYWRlcnMsXG4gICAgICBpcDogcmVxLmNvbmZpZy5pcCxcbiAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgIGNvbnRleHQ6IHJlcS5pbmZvLmNvbnRleHQsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBjb25zdCB1c2VyU3RyaW5nID0gcmVxLmF1dGggJiYgcmVxLmF1dGgudXNlciA/IHJlcS5hdXRoLnVzZXIuaWQgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBjbGVhbklucHV0ID0gbG9nZ2VyLnRydW5jYXRlTG9nTWVzc2FnZShKU09OLnN0cmluZ2lmeShwYXJhbXMpKTtcbiAgICAgIGNvbnN0IHsgc3VjY2VzcywgZXJyb3IgfSA9IEZ1bmN0aW9uc1JvdXRlci5jcmVhdGVSZXNwb25zZU9iamVjdChcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5SZXN1bHQgPSBsb2dnZXIudHJ1bmNhdGVMb2dNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHJlc3VsdC5yZXNwb25zZS5yZXN1bHQpKTtcbiAgICAgICAgICAgIGxvZ2dlcltyZXEuY29uZmlnLmxvZ0xldmVscy5jbG91ZEZ1bmN0aW9uU3VjY2Vzc10oXG4gICAgICAgICAgICAgIGBSYW4gY2xvdWQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9IGZvciB1c2VyICR7dXNlclN0cmluZ30gd2l0aDpcXG4gIElucHV0OiAke2NsZWFuSW5wdXR9XFxuICBSZXN1bHQ6ICR7Y2xlYW5SZXN1bHR9YCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgdXNlcjogdXNlclN0cmluZyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxvZ2dlcltyZXEuY29uZmlnLmxvZ0xldmVscy5jbG91ZEZ1bmN0aW9uRXJyb3JdKFxuICAgICAgICAgICAgICBgRmFpbGVkIHJ1bm5pbmcgY2xvdWQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9IGZvciB1c2VyICR7dXNlclN0cmluZ30gd2l0aDpcXG4gIElucHV0OiAke2NsZWFuSW5wdXR9XFxuICBFcnJvcjogYCArXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZXJyb3IpLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICB1c2VyOiB1c2VyU3RyaW5nLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdHJpZ2dlcnMubWF5YmVSdW5WYWxpZGF0b3IocmVxdWVzdCwgZnVuY3Rpb25OYW1lLCByZXEuYXV0aCk7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhlRnVuY3Rpb24ocmVxdWVzdCk7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKHN1Y2Nlc3MsIGVycm9yKTtcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFBbUMsU0FBQUQsdUJBQUFNLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFUbkM7O0FBRUEsSUFBSUcsS0FBSyxHQUFHUixPQUFPLENBQUMsWUFBWSxDQUFDLENBQUNRLEtBQUs7RUFDckNDLFFBQVEsR0FBR1QsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQVFuQyxTQUFTVSxXQUFXQSxDQUFDTCxHQUFHLEVBQUVNLE1BQU0sRUFBRTtFQUNoQyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1IsR0FBRyxDQUFDLEVBQUU7SUFDdEIsT0FBT0EsR0FBRyxDQUFDUyxHQUFHLENBQUNDLElBQUksSUFBSTtNQUNyQixPQUFPTCxXQUFXLENBQUNLLElBQUksRUFBRUosTUFBTSxDQUFDO0lBQ2xDLENBQUMsQ0FBQztFQUNKLENBQUMsTUFBTSxJQUFJTixHQUFHLElBQUlBLEdBQUcsQ0FBQ1csTUFBTSxJQUFJLE1BQU0sRUFBRTtJQUN0QyxPQUFPQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJQyxJQUFJLENBQUNkLEdBQUcsQ0FBQ2UsR0FBRyxDQUFDLEVBQUVmLEdBQUcsQ0FBQztFQUM5QyxDQUFDLE1BQU0sSUFBSUEsR0FBRyxJQUFJQSxHQUFHLENBQUNXLE1BQU0sSUFBSSxNQUFNLEVBQUU7SUFDdEMsT0FBT1IsS0FBSyxDQUFDYSxJQUFJLENBQUNDLFFBQVEsQ0FBQ2pC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
|