Socket
Socket
Sign inDemoInstall

@haventech/supertype

Package Overview
Dependencies
Maintainers
5
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@haventech/supertype - npm Package Compare versions

Comparing version 9.0.0 to 9.0.1

dist/cjs/decorators.js.map

2

dist/cjs/decorators.js

@@ -189,2 +189,2 @@ "use strict";

exports.remote = remote;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUEvQixzR0FBQSxTQUFTLE9BQUE7QUFDbEIscURBQWtEO0FBRWxELDRCQUEwQjtBQUUxQjs7Ozs7Ozs7TUFRTTtBQUNOLFNBQWdCLGNBQWMsQ0FBQyxXQUFZLEVBQUUsY0FBZTtJQUV4RCxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLDhGQUE4RjtJQUU5RixnQ0FBZ0M7SUFDaEMsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLHdJQUF3STtRQUNoTCxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUNqQztJQUVELG1DQUFtQztJQUNuQyxJQUFJLEtBQUssR0FBRyxXQUFXLENBQUM7SUFDeEIsT0FBTyxTQUFTLENBQUM7SUFFakIsc0JBQXNCO0lBQ3RCLFNBQVMsU0FBUyxDQUFDLE1BQU07UUFDckIsY0FBYyxHQUFHLGNBQWMsSUFBSSwrQkFBYyxDQUFDO1FBRWxELE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDeEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxjQUFjLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQSxDQUFDLENBQUMsQ0FBQztRQUMvRSxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxjQUFjLENBQUM7UUFDM0MsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsWUFBWSxHQUFHLFdB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QUFNLEVBQUUsWUFBWSxFQUFFLFVBQVU7SUFDakQsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUhELHdCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU3VwZXJ0eXBlIH0gZnJvbSAnLi9TdXBlcnR5cGUnO1xuaW1wb3J0IHsgT2JqZWN0VGVtcGxhdGUgfSBmcm9tICcuL09iamVjdFRlbXBsYXRlJztcblxuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuLyoqXG4gICAgKiBcbiAgICAqIEBwYXJhbSB7Kn0gb2JqZWN0UHJvcHMtIG9wdGlvbmFsIHByb3BlcnR5IGZvciBwYXNzaW5nIHBhcmFtcyBpbnRvIHN1cGVydHlwZWNsYXNzLCBpZiBubyBwYXJhbXMsIGlzIHVuZGVmaW5lZCxcbiAgICAqICAgICAgICAgICAgICAgICAgICAgIGZpcnN0IHBhcmFtIG9mIHRoaXMgZnVuY3Rpb24gZGVmYXVsdHMgdG8gb2JqZWN0VGVtcGxhdGUgaW5zdGVhZFxuICAgICogQHBhcmFtIHsqfSBvYmplY3RUZW1wbGF0ZSBcbiAgICAqIFxuICAgICogQFRPRE86IGZpeCByZXR1cm4gdHlwZXNcbiAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXZlbi1saWZlL3N1cGVydHlwZS9pc3N1ZXMvNlxuICAgICovXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJ0eXBlQ2xhc3Mob2JqZWN0UHJvcHM/LCBvYmplY3RUZW1wbGF0ZT8pOiBhbnkge1xuXG4gICAgLy8gV2hlbiB1c2VkIGFzIEBzdXBlcnR5cGVDbGFzcyh7YmxhIGJsYSBibGF9KSwgdGhlIGRlY29yYXRvciBpcyBmaXJzdCBjYWxsZWQgYXMgaXQgaXNcbiAgICAvLyBpcyBiZWluZyBwYXNzZWQgaW50byB0aGUgZGVjb3JhdG9yIHByb2Nlc3NvciBhbmQgc28gaXQgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb25cbiAgICAvLyBzbyB0aGF0IGl0IHdpbGwgYmUgY2FsbGVkIGFnYWluIHdoZW4gdGhlIGRlY29yYXRvcnMgYXJlIGFjdHVhbGx5IHByb2Nlc3NlZC4gIEtpbmRhIHNwbGlmZnkuXG5cbiAgICAvLyBDYWxsZWQgYnkgZGVjb3JhdG9yIHByb2Nlc3NvclxuICAgIGlmIChvYmplY3RQcm9wcyAmJiBvYmplY3RQcm9wcy5wcm90b3R5cGUpIHsgLy8gaWYgb2JqZWN0UHJvcHMgaXMgdGhlIGNsYXNzIChzZWNvbmQgcGFzcyBpZiBwYXNzZWQgd2l0aCB7dG9DbGllbnQgc3R5bGUgcGFyYW1zfSBvciBmaXJzdCBwYXNzIHdoZW4gQHN1cGVydHlwZUNsYXNzIG5vIHBhcmVuIGFuZCBhcmdzKVxuICAgICAgICByZXR1cm4gZGVjb3JhdG9yKG9iamVjdFByb3BzKTtcbiAgICB9XG5cbiAgICAvLyBDYWxsZWQgZmlyc3QgdGltZSB3aXRoIHBhcmFtZXRlclxuICAgIHZhciBwcm9wcyA9IG9iamVjdFByb3BzO1xuICAgIHJldHVybiBkZWNvcmF0b3I7XG5cbiAgICAvLyBEZWNvcmF0b3IgV29ya2VyYmVlXG4gICAgZnVuY3Rpb24gZGVjb3JhdG9yKHRhcmdldCkge1xuICAgICAgICBvYmplY3RUZW1wbGF0ZSA9IG9iamVjdFRlbXBsYXRlIHx8IE9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUuX190ZW1wbGF0ZV9fID0gdGFyZ2V0O1xuICAgICAgICB0YXJnZXQucHJvdG90eXBlLmFtb3JwaGljQ2xhc3MgPSB0YXJnZXQ7XG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUuYW1vcnBoaWNHZXRDbGFzc05hbWUgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0YXJnZXQuX19uYW1lX18gfTtcbiAgICAgICAgdGFyZ2V0LmlzT2JqZWN0VGVtcGxhdGUgPSB0cnVlO1xuICAgICAgICB0YXJnZXQuX19pbmplY3Rpb25zX18gPSBbXTtcbiAgICAgICAgdGFyZ2V0Ll9fb2JqZWN0VGVtcGxhdGVfXyA9IG9iamVjdFRlbXBsYXRlO1xuICAgICAgICB2YXIgY3JlYXRlUHJvcHMgPSBvYmplY3RUZW1wbGF0ZS5nZXRUZW1wbGF0ZVByb3BlcnRpZXMocHJvcHMgfHwge30pO1xuICAgICAgICB0YXJnZXQuX190b0NsaWVudF9fID0gY3JlYXRlUHJvcHMuX190b0NsaWVudF9fO1xuICAgICAgICB0YXJnZXQuX190b1NlcnZlcl9fID0gY3JlYXRlUHJvcHMuX190b1NlcnZlcl9fO1xuICAgICAgICB0YXJnZXQuX19zaGFkb3dDaGlsZHJlbl9fID0gW107XG5cbiAgICAgICAgLy8gUHVzaCBhbiBhcnJheSBvZiB0ZW1wbGF0ZSByZWZlcmVuY2VzICh3ZSBjYW4ndCBnZXQgYXQgdGhlaXIgbmFtZXMgbm93KS4gIExhdGVyIHdlIHdpbGxcbiAgICAgICAgLy8gdXNlIHRoaXMgdG8gY29uc3RydWN0IF9fZGljdGlvbmFyeV9fXG4gICAgICAgIG9iamVjdFRlbXBsYXRlLl9fdGVtcGxhdGVzX18gPSBvYmplY3RUZW1wbGF0ZS5fX3RlbXBsYXRlc19fIHx8IFtdO1xuICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX3RlbXBsYXRlc19fLnB1c2godGFyZ2V0KTtcblxuXG4gICAgICAgIC8vIFdlIGNhbiBuZXZlciByZWZlcmVuY2UgdGVtcGxhdGUgZnVuY3Rpb25zIGF0IGNvbXBpbGUgdGltZSB3aGljaCBpcyB3aGVuIHRoaXMgZGVjb3JhdG9yIGlzIGV4ZWN1dGVkXG4gICAgICAgIC8vIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIHNldHVwIGdldHRlcnMgZm9yIHByb3BlcnRpZXMgdGhhdCBuZWVkIGFjY2VzcyB0byB0aGUgdGVtcGxhdGUgZnVuY3Rpb25zIHNvXG4gICAgICAgIC8vIHRoYXQgd2UgY2FuIGVuc3VyZSB0aGV5IGFyZSBmdWxseSByZXNvbHZlZCBiZWZvcmUgYWNjZXNzaW5nIHRoZW1cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2RlZmluZVByb3BlcnRpZXMnLCB7IGdldDogZGVmaW5lUHJvcGVydGllcyB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljUHJvcGVydGllcycsIHsgZ2V0OiBkZWZpbmVQcm9wZXJ0aWVzIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnX19uYW1lX18nLCB7IGdldDogZ2V0TmFtZSB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljQ2xhc3NOYW1lJywgeyBnZXQ6IGdldE5hbWUgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdwYXJlbnRUZW1wbGF0ZScsIHsgZ2V0OiBnZXRQYXJlbnQgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdfX3BhcmVudF9fJywgeyBnZXQ6IGdldFBhcmVudCB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ19fY2hpbGRyZW5fXycsIHsgZ2V0OiBnZXRDaGlsZHJlbiB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljUGFyZW50Q2xhc3MnLCB7IGdldDogZ2V0UGFyZW50IH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNDaGlsZENsYXNzZXMnLCB7IGdldDogZ2V0Q2hpbGRyZW4gfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY1N0YXRpYycsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBvYmplY3RUZW1wbGF0ZSB9IH0pO1xuXG4gICAgICAgIHRhcmdldC5mcm9tUE9KTyA9IGZ1bmN0aW9uIGZyb21QT0pPKHBvam8pIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS5mcm9tUE9KTyhwb2pvLCB0YXJnZXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5mcm9tSlNPTiA9IC8vIExlZ2FjeVxuICAgICAgICAgICAgdGFyZ2V0LmFtb3JwaGljRnJvbUpTT04gPSBmdW5jdGlvbiBmcm9tSlNPTihzdHIsIGlkUHJlZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLmZyb21KU09OKHN0ciwgdGFyZ2V0LCBpZFByZWZpeCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5nZXRQcm9wZXJ0aWVzID0gLy8gTGVnYWN5XG4gICAgICAgICAgICB0YXJnZXQuYW1vcnBoaWNHZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gZ2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS5fZ2V0RGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHVuZGVmaW5lZCwgaW5jbHVkZVZpcnR1YWwpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQuY3JlYXRlUHJvcGVydHkgPSAvLyBMZWdhY3lcbiAgICAgICAgICAgIHRhcmdldC5hbW9ycGhpY0NyZWF0ZVByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkuYm9keSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlW3Byb3BlcnR5TmFtZV0gPSBvYmplY3RUZW1wbGF0ZS5fc2V0dXBGdW5jdGlvbihwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LmJvZHksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS5vbiwgZGVmaW5lUHJvcGVydHkudmFsaWRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5fX2Ftb3JwaGljcHJvcHNfX1twcm9wZXJ0eU5hbWVdID0gZGVmaW5lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVmaW5lUHJvcGVydHkudmFsdWUgaW4gWydzdHJpbmcnLCAnbnVtYmVyJ10gfHwgZGVmaW5lUHJvcGVydHkudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogZGVmaW5lUHJvcGVydHkudmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LnByb3RvdHlwZSwgcHJvcGVydHlOYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RUZW1wbGF0ZS5jbG9uZShkZWZpbmVQcm9wZXJ0eS52YWx1ZSwgZGVmaW5lUHJvcGVydHkub2YgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkudHlwZSB8fCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1snX18nICsgcHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRhcmdldC5wcm90b3R5cGUuX19leGNlcHRpb25zX18pIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9fZXhjZXB0aW9uc19fID0gb2JqZWN0VGVtcGxhdGUuX19leGNlcHRpb25zX18gfHwgW107XG4gICAgICAgICAgICBmb3IgKHZhciBleGNlcHRpb25LZXkgaW4gdGFyZ2V0LnByb3RvdHlwZS5fX2V4Y2VwdGlvbnNfXykge1xuICAgICAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9fZXhjZXB0aW9uc19fLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBmdW5jOiB0YXJnZXQucHJvdG90eXBlLl9fZXhjZXB0aW9uc19fW2V4Y2VwdGlvbktleV0sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBnZXROYW1lLFxuICAgICAgICAgICAgICAgICAgICBwcm9wOiBleGNlcHRpb25LZXlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnByb3RvdHlwZS5fX2Ftb3JwaGljcHJvcHNfXztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXROYW1lKCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0TmFtZSA9IHRhcmdldC50b1N0cmluZygpLm1hdGNoKC9jbGFzcyAoW15dXFx3KykvKSB8fCB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb24gKFteKF0qKS8pIFxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldE5hbWVbMV07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0RGljdGlvbmFyeSgpIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLmdldENsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRQYXJlbnQoKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93UGFyZW50X187XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93Q2hpbGRyZW5fXztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkocHJvcHM/KTogYW55IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgdGFyZ2V0S2V5KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgICAgIHByb3BzLmVudW1lcmFibGUgPSB0cnVlO1xuICAgICAgICB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ19fYW1vcnBoaWNwcm9wc19fJykgPyB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gOiB7fTtcbiAgICAgICAgdmFyIHJlZmxlY3Rpb25UeXBlID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCB0YXJnZXQsIHRhcmdldEtleSk7XG4gICAgICAgIC8vIGlmIHR5cGUgaXMgc3BlY2lmaWVkIGFzIGEgcmVzb2x2ZXIgKCkgPT4gQ2xhc3MsIHJlc29sdmUgdGhlIHR5cGUgYW5kIHNldCB0aGF0IGFzIHRoZSBkZWZpbmVQcm9wZXJ0eS50eXBlXG4gICAgICAgIGlmICh0eXBlb2YgcmVmbGVjdGlvblR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxldCByZXNvbHZlZFR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZWZsZWN0aW9uVHlwZSkuc3RhcnRzV2l0aCgnKCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IHJlZmxlY3Rpb25UeXBlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc29sdmVkVHlwZSAmJiB0eXBlb2YgcmVzb2x2ZWRUeXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJlZmxlY3Rpb25UeXBlID0gcmVzb2x2ZWRUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBkZWNsYXJlZFR5cGUgPSBwcm9wcy50eXBlO1xuICAgICAgICB2YXIgdHlwZSA9IHJlZmxlY3Rpb25UeXBlICE9PSBBcnJheSA/IGRlY2xhcmVkVHlwZSB8fCByZWZsZWN0aW9uVHlwZSA6IGRlY2xhcmVkVHlwZTtcbiAgICAvLyBUeXBlIG1pc21hdGNoZXNcbiAgICAgICAgaWYgKGRlY2xhcmVkVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAhPT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICsgJyAtIGRlY29yYXRvciB0eXBlIGRvZXMgbm90IG1hdGNoIGFjdHVhbCB0eXBlJztcbiAgICAgICAgICAgIH07XG4gICAgLy8gRGVmZXJyZWQgdHlwZVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5nZXRUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQuX19kZWZlcnJlZFR5cGVfXyA9IHRhcmdldC5oYXNPd25Qcm9wZXJ0eSgnX19kZWZlcnJlZFR5cGVfXycpID8gdGFyZ2V0Ll9fZGVmZXJyZWRUeXBlX18gOiB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2RlZmVycmVkVHlwZV9fW3RhcmdldEtleV0gPSBwcm9wcy5nZXRUeXBlO1xuICAgICAgICAgICAgZGVsZXRlIHByb3BzLmdldFR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXR5cGUpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICtcbiAgICAgICAgICAgICAgICAnIC0gdHlwZSBpcyB1bmRlZmluZWQuIENpcmN1bGFyIHJlZmVyZW5jZT8gVHJ5IEBwcm9wZXJ0eSh7Z2V0VHlwZTogKCkgPT4ge3JldHVybiAnICtcbiAgICAgICAgICAgICAgICBwcm9wWzBdLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnN1YnN0cigxKSArICd9fSknO1xuXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZsZWN0aW9uVHlwZSA9PT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSBBcnJheTtcbiAgICAgICAgICAgIHByb3BzLm9mID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSB0eXBlO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5fX2Ftb3JwaGljcHJvcHNfX1t0YXJnZXRLZXldID0gcHJvcHM7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdGUoZGVmaW5lUHJvcGVydHkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSB7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=decorators.js.map

@@ -44,2 +44,2 @@ "use strict";

Object.defineProperty(exports, "remote", { enumerable: true, get: function () { return decorators_1.remote; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHOzs7QUFFSCxxREFBa0Q7QUFFbEQsK0JBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixrQkFBZSwrQkFBYyxDQUFDO0FBRTlCLElBQUksY0FBYyxHQUFHLCtCQUFjLENBQUMsY0FBYyxDQUFDO0FBSzFDLHdDQUFjO0FBSnZCLElBQUksZ0JBQWdCLEdBQUcsK0JBQWMsQ0FBQyxjQUFjLENBQUM7QUFJNUIsNENBQWdCO0FBRnpDLCtDQUE4QztBQUFyQyw0R0FBQSxZQUFZLE9BQUE7QUFHckIscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixxREFBMEU7QUFBakUsa0hBQUEsZUFBZSxPQUFBO0FBQUUsdUhBQUEsb0JBQW9CLE9BQUE7QUFDOUMseUNBQXdDO0FBQS9CLHNHQUFBLFNBQVMsT0FBQTtBQUNsQiwyQ0FBZ0U7QUFBdkQsNEdBQUEsY0FBYyxPQUFBO0FBQUUsc0dBQUEsUUFBUSxPQUFBO0FBQUUsb0dBQUEsTUFBTSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogQ29weXJpZ2h0IDIwMTEtMjAxMiBTYW0gRWxzYW1tYW5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmVcbiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsXG4gRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFXG4gTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IE9iamVjdFRlbXBsYXRlIH0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5cbk9iamVjdFRlbXBsYXRlLmluaXQoKTtcbmV4cG9ydCBkZWZhdWx0IE9iamVjdFRlbXBsYXRlO1xuXG5sZXQgYW1vcnBoaWNTdGF0aWMgPSBPYmplY3RUZW1wbGF0ZS5hbW9ycGhpY1N0YXRpYztcbmxldCBTdXBlcnR5cGVTZXNzaW9uID0gT2JqZWN0VGVtcGxhdGUuYW1vcnBoaWNTdGF0aWM7XG5leHBvcnQgeyBTdGF0c2RDbGllbnRJbnRlcmZhY2UgfSBmcm9tICcuL1N0YXRzZENsaWVudEludGVyZmFjZSc7XG5leHBvcnQgeyBTdGF0c2RIZWxwZXIgfSBmcm9tICcuL1N0YXRzZEhlbHBlcic7XG5cbmV4cG9ydCB7IGFtb3JwaGljU3RhdGljLCBTdXBlcnR5cGVTZXNzaW9uIH07XG5leHBvcnQgeyBTdXBlcnR5cGVMb2dnZXIgfSBmcm9tICcuL1N1cGVydHlwZUxvZ2dlcic7XG5leHBvcnQgeyBTdXBlcnR5cGVDb25maWcsIEJ1aWxkU3VwZXJ0eXBlQ29uZmlnIH0gZnJvbSAnLi9TdXBlcnR5cGVDb25maWcnO1xuZXhwb3J0IHsgU3VwZXJ0eXBlIH0gZnJvbSAnLi9TdXBlcnR5cGUnO1xuZXhwb3J0IHsgc3VwZXJ0eXBlQ2xhc3MsIHByb3BlcnR5LCByZW1vdGUgfSBmcm9tICcuL2RlY29yYXRvcnMnOyJdfQ==
//# sourceMappingURL=index.js.map

@@ -173,2 +173,2 @@ "use strict";

;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0g7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUc7SUFDakMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUs7WUFDNUMsSUFBSSxHQUFHLEtBQUssb0JBQW9CLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtnQkFDcEQsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUNELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDN0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNyQixLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2lCQUMvQztxQkFDSTtvQkFDRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDMUM7YUFDSjtZQUVELElBQUksRUFBRSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN6QjtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFDRCxPQUFPLENBQUMsRUFBRTtRQUNOLE1BQU0sQ0FBQyxDQUFDO0tBQ1g7QUFDTCxDQUFDO0FBM0JELG9DQTJCQztBQUVELFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRztJQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLENB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LENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUZELDRCQUVDO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT2JqZWN0VGVtcGxhdGUudG9KU09OU3RyaW5nO1xuICovXG4vKipcbiAqIENvbnZlcnQgYW4gb2JqZWN0IHRvIEpTT04sIHN0cmlwcGluZyBhbnkgcmVjdXJzaXZlIG9iamVjdCByZWZlcmVuY2VzIHNvIHRoZXkgY2FuIGJlXG4gKiByZWNvbnN0aXR1dGVkIGxhdGVyXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSBvYmogdW5rbm93blxuICogQHBhcmFtIHt1bmtub3dufSBjYiB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pTT05TdHJpbmcob2JqLCBjYj8pIHtcbiAgICB2YXIgaWRNYXAgPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIGZ1bmN0aW9uIGEoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ19fb2JqZWN0VGVtcGxhdGVfXycgfHwga2V5ID09PSAnYW1vcnBoaWMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUuX190ZW1wbGF0ZV9fICYmIHZhbHVlLl9faWRfXykge1xuICAgICAgICAgICAgICAgIGlmIChpZE1hcFt2YWx1ZS5fX2lkX19dKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0geyBfX2lkX186IHZhbHVlLl9faWRfXy50b1N0cmluZygpIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZE1hcFt2YWx1ZS5fX2lkX18udG9TdHJpbmcoKV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjYikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYihrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHByb3BYZmVyKHByb3AsIHBvam8sIG9iaikge1xuICAgIGlmIChwb2pvW3Byb3BdKSB7XG4gICAgICAgIG9ialtwcm9wXSA9IHBvam9bcHJvcF07XG4gICAgfVxufVxuXG4vKipcbiAqIE9iamVjdFRlbXBsYXRlLmZyb21QT0pPXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUE9KTyhwb2pvLCB0ZW1wbGF0ZSwgZGVmaW5lUHJvcGVydHk/LCBpZE1hcD8sIGlkUXVhbGlmaWVyPywgcGFyZW50PywgcHJvcD8sIGNyZWF0b3I/KSB7XG4gICAgZnVuY3Rpb24gZ2V0SWQoaWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiAoaWRRdWFsaWZpZXIpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIGlkICsgJy0nICsgaWRRdWFsaWZpZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgLy8gRm9yIHJlY29yZGluZyBiYWNrIHJlZnNcbiAgICBpZiAoIWlkTWFwKSB7XG4gICAgICAgIGlkTWFwID0ge307XG4gICAgfVxuXG4gICAgaWYgKCFwb2pvLl9faWRfXykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG9iajtcblxuICAgIGlmIChjcmVhdG9yKSB7XG4gICAgICAgIG9iaiA9IGNyZWF0b3IocGFyZW50LCBwcm9wLCB0ZW1wbGF0ZSwgaWRNYXBbcG9qby5fX2lkX18udG9TdHJpbmcoKV0sIHBvam8uX190cmFuc2llbnRfXyk7XG5cbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICBvYmogPSBvYmpbMF07XG4gICAgICAgICAgICBpZE1hcFtvYmouX19pZF9fLnRvU3RyaW5nKCldID0gb2JqO1xuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgKG9iaikgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICB0aGlzLm5vSW5pdCA9IHRydWU7XG4gICAgICAgICAgICBvYmogPSBuZXcgdGVtcGxhdGUoKTtcbiAgICAgICAgICAgIC8vT2JqZWN0IGlkIHNob3VsZCBiZSBzZXQgYnkgcGVyc2lzdG9yIGF0IHNhdmUuXG4gICAgICAgICAgICBpZiAob2JqICYmIG9iai5faWQpIHtcbiAgICAgICAgICAgICAgICBvYmouX2lkID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubm9Jbml0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9iaiA9IHRoaXMuX2NyZWF0ZUVtcHR5T2JqZWN0KHRlbXBsYXRlLCBnZXRJZChwb2pvLl9faWRfXy50b1N0cmluZygpKSwgZGVmaW5lUHJvcGVydHksIHBvam8uX190cmFuc2llbnRfXyk7XG4gICAgfVxuICAgXG4gICAgaWRNYXBbZ2V0SWQocG9qby5fX2lkX18udG9TdHJpbmcoKSldID0gb2JqO1xuXG4gICAgLy8gR28gdGhyb3VnaCBhbGwgdGhlIHByb3BlcnRpZXMgYW5kIHRyYW5zZmVyIHRoZW0gdG8gbmV3bHkgY3JlYXRlZCBvYmplY3RcbiAgICB2YXIgcHJvcHMgPSBvYmouX190ZW1wbGF0ZV9fLmdldFByb3BlcnRpZXMoKTtcblxuICAgIGZvciAodmFyIHByb3BiIGluIHBvam8pIHtcbiAgICAgICAgcHJvcGIgPSBwcm9wYi5yZXBsYWNlKC9eX18vLCAnJyk7XG4gICAgICAgIHZhciBkZWZpbmVQcm9wID0gcHJvcHNbcHJvcGJdO1xuICAgICAgICBpZiAoIWRlZmluZVByb3ApXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgdmFyIHR5cGUgPSBkZWZpbmVQcm9wLnR5cGU7XG5cbiAgICAgICAgLy8gQmVjYXVzZSBzZW1vdHVzIGNhbiBzZXJpYWxpemUgb25seSB0aGUgc2hhZG93IHByb3BlcnRpZXMgd2UgdHJ5IGFuZCByZXN0b3JlIHRoZW1cbiAgICAgICAgdmFyIHBvam9Qcm9wID0gKHR5cGUgJiYgdHlwZW9mIHBvam9bJ19fJyArIHByb3BiXSAhPT0gJ3VuZGVmaW5lZCcpID8gJ19fJyArIHByb3BiIDogcHJvcGI7XG5cbiAgICAgICAgaWYgKHR5cGUgJiYgcG9qb1twb2pvUHJvcF0gPT0gbnVsbCkge1xuICAgICAgICAgICAgb2JqW3Byb3BiXSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZSAmJiB0eXBlb2YgKHBvam9bcG9qb1Byb3BdKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09IEFycmF5ICYmIGRlZmluZVByb3Aub2YgJiYgZGVmaW5lUHJvcC5vZi5pc09iamVjdFRlbXBsYXRlKSB7IC8vIEFycmF5IG9mIHRlbXBsYXRlZCBvYmplY3RzXG4gICAgICAgICAgICAgICAgdmFyIGFycmF5RGlyZWN0aW9ucyA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBpZiAoY3JlYXRvcikge1xuICAgICAgICAgICAgICAgICAgICBhcnJheURpcmVjdGlvbnMgPSBjcmVhdG9yKG9iaiwgcHJvcGIsIGRlZmluZVByb3Aub2YsIGlkTWFwW3Bvam8uX19pZF9fLnRvU3RyaW5nKCldLCBwb2pvLl9fdHJhbnNpZW50X18pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGFycmF5RGlyZWN0aW9ucykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtwcm9wYl0gPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpeCA9IDA7IGl4IDwgcG9qb1twb2pvUHJvcF0ubGVuZ3RoOyArK2l4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXR5cGUgPSBwb2pvW3Bvam9Qcm9wXVtpeF0uX190ZW1wbGF0ZV9fIHx8IGRlZmluZVByb3Aub2Y7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9qb1twb2pvUHJvcF1baXhdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvam9bcG9qb1Byb3BdW2l4XS5fX2lkX18gJiYgaWRNYXBbZ2V0SWQocG9qb1twb2pvUHJvcF1baXhdLl9faWRfXy50b1N0cmluZygpKV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXVtpeF0gPSBpZE1hcFtnZXRJZChwb2pvW3Bvam9Qcm9wXVtpeF0uX19pZF9fLnRvU3RyaW5nKCkpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialtwcm9wYl1baXhdID0gdGhpcy5mcm9tUE9KTyhwb2pvW3Bvam9Qcm9wXVtpeF0sIGF0eXBlLCBkZWZpbmVQcm9wLCBpZE1hcCwgaWRRdWFsaWZpZXIsIG9iaiwgcHJvcGIsIGNyZWF0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialtwcm9wYl1baXhdID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUuaXNPYmplY3RUZW1wbGF0ZSkgeyAvLyBUZW1wbGF0ZWQgb2JqZWN0c1xuICAgICAgICAgICAgICAgIHZhciBvdHlwZSA9IHBvam9bcG9qb1Byb3BdLl9fdGVtcGxhdGVfXyB8fCB0eXBlO1xuICAgICAgICAgICAgICAgIGlmIChwb2pvW3Bvam9Qcm9wXS5fX2lkX18gJiYgaWRNYXBbZ2V0SWQocG9qb1twb2pvUHJvcF0uX19pZF9fLnRvU3RyaW5nKCkpXSkge1xuICAgICAgICAgICAgICAgICAgICBvYmpbcHJvcGJdID0gaWRNYXBbZ2V0SWQocG9qb1twb2pvUHJvcF0uX19pZF9fLnRvU3RyaW5nKCkpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtwcm9wYl0gPSB0aGlzLmZyb21QT0pPKHBvam9bcG9qb1Byb3BdLCBvdHlwZSwgZGVmaW5lUHJvcCwgaWRNYXAsIGlkUXVhbGlmaWVyLCBvYmosIHByb3BiLCBjcmVhdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IERhdGUpIHtcbiAgICAgICAgICAgICAgICBpZiAocG9qb1twb2pvUHJvcF0pIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXSA9IG5ldyBEYXRlKHBvam9bcG9qb1Byb3BdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtwcm9wYl0gPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG9ialtwcm9wYl0gPSBwb2pvW3Bvam9Qcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciB0aGUgYmVuZWZpdCBvZiBwZXJzaXN0T2JqZWN0VGVtcGxhdGVcbiAgICBpZiAoIWNyZWF0b3IgJiYgcG9qby5faWQpIHtcbiAgICAgICAgb2JqLl9pZCA9IGdldElkKHBvam8uX2lkKTtcbiAgICB9XG5cbiAgICBpZiAoIWNyZWF0b3IpIHtcbiAgICAgICAgcHJvcFhmZXIoJ19fY2hhbmdlZF9fJywgcG9qbywgb2JqKTtcbiAgICAgICAgcHJvcFhmZXIoJ19fdmVyc2lvbl9fJywgcG9qbywgb2JqKTtcbiAgICB9XG5cbiAgICBwcm9wWGZlcignX190b1NlcnZlcl9fJywgcG9qbywgb2JqKTtcbiAgICBwcm9wWGZlcignX190b0NsaWVudF9fJywgcG9qbywgb2JqKTtcblxuICAgIHJldHVybiBvYmo7XG59O1xuXG5cbi8qKlxuICogT2JqZWN0VGVtcGxhdGUuZnJvbUpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21KU09OKHN0ciwgdGVtcGxhdGUsIGlkUXVhbGlmaWVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVBPSk8oSlNPTi5wYXJzZShzdHIpLCB0ZW1wbGF0ZSwgbnVsbCwgbnVsbCwgaWRRdWFsaWZpZXIpO1xufTtcbiJdfQ==
//# sourceMappingURL=serializer.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdHNkQ2xpZW50SW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0YXRzZENsaWVudEludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdGF0c2RDbGllbnRJbnRlcmZhY2Uge1xuICAgIHRpbWluZyhzdGF0c0tleTogc3RyaW5nLCB0aW1lcjogbnVtYmVyIHwgRGF0ZSwgdGFncz86IG9iamVjdCk6IHZvaWQsXG4gICAgY291bnRlcihzdGF0c0tleTogc3RyaW5nLCBudW06IG51bWJlciwgdGFncz86IG9iamVjdCk6IHZvaWRcbn0iXX0=
//# sourceMappingURL=StatsdClientInterface.js.map

@@ -35,2 +35,2 @@ "use strict";

exports.StatsdHelper = StatsdHelper;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdHNkSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0YXRzZEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBMkM7QUFNM0M7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFFckI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxNQUFjO1FBQ3BELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCLEVBQUUsSUFBSztRQUMzRSxNQUFNLFlBQVksR0FBRyx3QkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFFbkQsSUFBRyxZQUFZO2VBQ1IsWUFBWSxDQUFDLE1BQU07ZUFDbkIsT0FBTyxZQUFZLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUU5QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9FLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztDQUNKO0FBN0JELG9DQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1cGVydHlwZVNlc3Npb24gfSBmcm9tICcuL2luZGV4JztcblxuLy8gZm9ybWF0IGZvciBocnRpbWVcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvcHJvY2Vzcy5odG1sI3Byb2Nlc3NfcHJvY2Vzc19ocnRpbWVfdGltZVxudHlwZSBoclRpbWUgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vKipcbiAqIG1vc3RseSBzdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gYXNzaXN0IHN1cGVydHlwZSBpbiBoYW5kbGluZyBzdGF0c2Qgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgU3RhdHNkSGVscGVyIHtcblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgbm9kZSB0aW1lIGZvcm1hdCBocnRpbWUgdG8gbWlsbGlzZWNvbmRzXG4gICAgICogQHBhcmFtIHtoclRpbWV9IGhyVGltZVxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb252ZXJ0SFJUaW1lVG9NaWxsaXNlY29uZHMoaHJUaW1lOiBoclRpbWUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaHJUaW1lWzBdICogMTAwMCArIGhyVGltZVsxXSAvIDEwMDAwMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2l2ZW4gYSBzdGFydCB0aW1lIGFuZCBhIGtleSwgcmVjb3JkIHRoZSB0b3RhbCBhbW91bnQgb2YgdGltZSBhbmQgc2VuZCBzdGF0IGluZm8uXG4gICAgICogQHBhcmFtIHtoclRpbWV9IGhyVGltZVN0YXJ0XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0YXRzS2V5XG4gICAgICogQHBhcmFtIHRhZ3NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNvbXB1dGVUaW1pbmdBbmRTZW5kKGhyVGltZVN0YXJ0OiBoclRpbWUsIHN0YXRzS2V5OiBzdHJpbmcsIHRhZ3M/KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRzZENsaWVudCA9IFN1cGVydHlwZVNlc3Npb24uc3RhdHNkQ2xpZW50O1xuXG4gICAgICAgIGlmKHN0YXRzZENsaWVudFxuICAgICAgICAgICAgJiYgc3RhdHNkQ2xpZW50LnRpbWluZ1xuICAgICAgICAgICAgJiYgdHlwZW9mIHN0YXRzZENsaWVudC50aW1pbmcgPT09ICdmdW5jdGlvbicpIHtcblxuICAgICAgICAgICAgY29uc3QgdGltZXJFbmRUaW1lID0gcHJvY2Vzcy5ocnRpbWUoaHJUaW1lU3RhcnQpO1xuICAgICAgICAgICAgY29uc3QgdG90YWxUaW1lSW5NaWxsaXNlY29uZHMgPSB0aGlzLmNvbnZlcnRIUlRpbWVUb01pbGxpc2Vjb25kcyh0aW1lckVuZFRpbWUpO1xuICAgICAgICAgICAgc3RhdHNkQ2xpZW50LnRpbWluZyhzdGF0c0tleSwgdG90YWxUaW1lSW5NaWxsaXNlY29uZHMsIHRhZ3MpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=StatsdHelper.js.map

@@ -135,2 +135,2 @@ "use strict";

exports.Supertype = Supertype;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N1cGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFrRDtBQUNsRCx5REFBMkM7QUFFM0MsU0FBUyxlQUFlLENBQUMsV0FBVztJQUNoQyxJQUFJLGFBQWEsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZILE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNuRCxDQUFDO0FBS0Q7Ozs7O0dBS0c7QUFFSCxNQUFhLFNBQVM7SUFJbEIsTUFBTSxDQUFDLHNCQUFzQixDQUFDLElBQVksRUFBRSxjQUFzQjtRQUM5RCwrQ0FBK0M7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBa0M7UUFDM0QsK0NBQStDO0lBQ25ELENBQUM7SUFDRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBWTtRQUNoQywrQ0FBK0M7SUFDbkQsQ0FBQztJQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWSxFQUFFLGNBQXNCO1FBQ3RELCtDQUErQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGFBQWE7UUFDaEIsK0NBQStDO0lBQ25ELENBQUM7SUFDRCxvQkFBb0I7UUFDaEIsK0NBQStDO1FBQy9DLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sQ0FBQyxRQUFRLENBQUUsSUFBWSxFQUFFLFFBQWlCO1FBQzVDLCtDQUErQztJQUVuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBRSxRQUFhO1FBQ3hCLDJFQUEyRTtJQUMvRSxDQUFDO0lBaUJE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QUNYLCtCQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQUc7UUFDZCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFJO1FBQ1QsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELGdCQUFnQixDQUFDLElBQUk7UUFDakIsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7Q0FDSjtBQWhJRCw4QkFnSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYmplY3RUZW1wbGF0ZSB9IGZyb20gJy4vT2JqZWN0VGVtcGxhdGUnO1xuaW1wb3J0ICogYXMgc2VyaWFsaXplciBmcm9tICcuL3NlcmlhbGl6ZXInO1xuXG5mdW5jdGlvbiBjb25zdHJ1Y3Rvck5hbWUoY29uc3RydWN0b3IpIHtcbiAgICB2YXIgbmFtZWRGdW5jdGlvbiA9IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2NsYXNzIChbXl1cXHcrKS8pIHx8IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2Z1bmN0aW9uIChbXihdKikvKTtcbiAgICByZXR1cm4gbmFtZWRGdW5jdGlvbiA/IG5hbWVkRnVuY3Rpb25bMV0gOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RhYmxlID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4ge307XG5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIGZvciB0eXBlc2NyaXB0IGNsYXNzZXMuIFxuICogSXQgd2lsbCBpbmplY3QgbWVtYmVycyBpbnRvIHRoZSBvYmplY3QgZnJvbSBib3RoIHRoZSB0ZW1wbGF0ZSBhbmQgb2JqZWN0VGVtcGxhdGVcbiAqIEBwYXJhbSB7T2JqZWN0VGVtcGxhdGV9IC0gb3RoZXIgbGF5ZXJzIGNhbiBwYXNzIGluIHRoZWlyIG93biBvYmplY3QgdGVtcGxhdGUgKHRoaXMgaXMgdGhlIG9iamVjdCBub3QgT2JqZWN0VGVtcGxhdGUpXG4gKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgb2JqZWN0IGl0c2VsZlxuICovXG5cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGUge1xuICAgIF9fdGVtcGxhdGVfXzogYW55O1xuICAgIGFtb3JwaGljIDogdHlwZW9mIE9iamVjdFRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGFtb3JwaGljQ3JlYXRlUHJvcGVydHkocHJvcDogU3RyaW5nLCBkZWZpbmVQcm9wZXJ0eTogT2JqZWN0KSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljR2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbFByb3BlcnRpZXM/OiBib29sZWFuKTphbnkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgYW1vcnBoaWNGcm9tSlNPTihqc29uOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZVByb3BlcnR5KHByb3A6IFN0cmluZywgZGVmaW5lUHJvcGVydHk6IE9iamVjdCkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcygpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRDbGFzc05hbWUgKCkgOiBzdHJpbmcge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tSlNPTiAoanNvbjogc3RyaW5nLCBpZFByZWZpeD86IHN0cmluZykge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBpbmplY3QgKGluamVjdG9yOiBhbnkpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gTGluZSAxMjgsIG9mIE9iamVjdFRlbXBsYXRlLnRzIChzdGF0aWMgcGVyZm9ybUluamVjdGlvbnMpXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljUHJvcGVydGllczogYW55O1xuICAgIHN0YXRpYyBhbW9ycGhpY0NoaWxkQ2xhc3NlczogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIGFtb3JwaGljUGFyZW50Q2xhc3M6IENvbnN0cnVjdGFibGU7XG4gICAgc3RhdGljIGFtb3JwaGljQ2xhc3NOYW1lIDogc3RyaW5nO1xuICAgIHN0YXRpYyBhbW9ycGhpY1N0YXRpYyA6IHR5cGVvZiBPYmplY3RUZW1wbGF0ZTtcblxuICAgIC8vIE9iamVjdCBtZW1iZXJzXG4gICAgX19pZF9fOiBTdHJpbmc7XG4gICAgYW1vcnBoaWNMZWF2ZUVtcHR5OiBib29sZWFuO1xuXG4gICAgLy8gRGVwcmVjYXRlZCBsZWdhY3kgbmFtaW5nXG4gICAgc3RhdGljIF9fY2hpbGRyZW5fXzogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIF9fcGFyZW50X186IENvbnN0cnVjdGFibGU7XG4gICAgYW1vcnBoaWNDbGFzcyA6IGFueVxuXG4gICAgY29uc3RydWN0b3Iob2JqZWN0VGVtcGxhdGUgPSBPYmplY3RUZW1wbGF0ZSkge1xuICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLl9fdGVtcGxhdGVfXztcbiAgICAgICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNvbnN0cnVjdG9yTmFtZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IpICsgJyBtaXNzaW5nIEBzdXBlcnR5cGVDbGFzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVsbCBjb25zdHJ1Y3RvciBub3QgdG8gZXhlY3V0ZSBhcyB0aGlzIGlzIGFuIGVtcHR5IG9iamVjdFxuICAgICAgICB0aGlzLmFtb3JwaGljTGVhdmVFbXB0eSA9IG9iamVjdFRlbXBsYXRlLl9zdGFzaE9iamVjdCh0aGlzLCB0ZW1wbGF0ZSk7XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGV2ZWwgaW5qZWN0aW9ucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXkgdXNlXG4gICAgICAgIHZhciB0YXJnZXRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICB3aGlsZSAodGFyZ2V0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfXy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tpeF0uY2FsbCh0aGlzLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldFRlbXBsYXRlID0gdGFyZ2V0VGVtcGxhdGUuX19wYXJlbnRfXztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdsb2JhbCBpbmplY3Rpb25zIHVzZWQgYnkgdGhlIGZyYW1ld29ya1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9iamVjdFRlbXBsYXRlLl9faW5qZWN0aW9uc19fLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tqXS5jYWxsKHRoaXMsIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbW9ycGhpYyA9IG9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIC8vQFRPRE86IGZpbGwgdGhlIHByb3BlcnRpZXMgb2YgJ3RoaXMnIGluPyBkbyBJIG5lZWQgdGhpcyBhZnRlciBkZWxldGluZyB0aGUgY2FsbGVyQ29udGV4dCBhcHByb2FjaFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzdcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGFtb3JwaGljVG9KU09OKGNiPyl7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyLnRvSlNPTlN0cmluZyh0aGlzLCBjYik7XG4gICAgfSBcblxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0eShwcm9wLCB0aGlzLl9fdGVtcGxhdGVfXyk7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlWYWx1ZXMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkudmFsdWVzKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LnZhbHVlcy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS52YWx1ZXM7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZXNjcmlwdGlvbnMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkuZGVzY3JpcHRpb25zKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmRlc2NyaXB0aW9ucy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5kZXNjcmlwdGlvbnM7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29weShjcmVhdG9yKSB7XG4gICAgICAgIHZhciBvYmogPSB0aGlzO1xuICAgICAgICByZXR1cm4gT2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ob2JqLCBvYmouX190ZW1wbGF0ZV9fLCBudWxsLCBudWxsLCB1bmRlZmluZWQsIG51bGwsIG51bGwsIGNyZWF0b3IpO1xuICAgIH1cblxuICAgIGluamVjdChpbmplY3Rvcikge1xuICAgICAgICBPYmplY3RUZW1wbGF0ZS5pbmplY3QodGhpcywgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIGNvcHlQcm9wZXJ0aWVzKG9iaikge1xuICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgdGhpc1twcm9wXSA9IG9ialtwcm9wXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfX3Byb3BfXyhwcm9wKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApO1xuICAgIH1cbiAgICBfX3ZhbHVlc19fKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eVZhbHVlcyhwcm9wKTtcbiAgICB9XG4gICAgX19kZXNjcmlwdGlvbnNfXyhwcm9wKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eURlc2NyaXB0aW9ucyhwcm9wKTtcbiAgICB9XG4gICAgdG9KU09OU3RyaW5nKGNiPykge1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY1RvSlNPTihjYilcbiAgICB9XG59Il19
//# sourceMappingURL=Supertype.js.map

@@ -111,2 +111,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N1cGVydHlwZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFJMUIsU0FBUyxzQkFBc0I7SUFDM0IsT0FBTyxJQUFJLGVBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFFeEI7UUFDSSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUk7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUFBLENBQUM7Q0FDTDtBQXBDRCwwQ0FvQ0M7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFlO0lBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDcEU7U0FDSTtR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RUFBRSxHQUFHLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTyxHQUFHLEVBQUU7UUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixPQUFPLElBQUksUUFBUSxZQUFZLENBQUMsQ0FBQztLQUNuRTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmNvbmYgZnJvbSAnbmNvbmYnO1xuaW1wb3J0IHsgQ29uZmlnLCBBcHBsaWNhdGlvbk5hbWVUb0NvbmZpZ01hcCB9IGZyb20gJ0BoYXZlbnRlY2gvYW1vcnBoaWMtY29udHJhY3RzJztcblxuXG5mdW5jdGlvbiBjcmVhdGVOZXdOQ29uZlByb3ZpZGVyKCk6IG5jb25mLlByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IG5jb25mLlByb3ZpZGVyKCkuYXJndigpLmVudih7c2VwYXJhdG9yOiAnX18nfSk7XG59XG5cbi8qKlxuICogRGVwcmVjYXRpbmcgbG9hZEZpbGUgZm9yIGp1c3QgJ2ZpbGUnXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGVDb25maWcgaW1wbGVtZW50cyBDb25maWcge1xuICAgIGludGVybmFsQ29uZmlnU3RvcmU6IG5jb25mLlByb3ZpZGVyO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmludGVybmFsQ29uZmlnU3RvcmUgPSBjcmVhdGVOZXdOQ29uZlByb3ZpZGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHZhbHVlIHdpdGggYSBrZXlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsQ29uZmlnU3RvcmUuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIHZhbHVlIHdpdGggYSBrZXlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbENvbmZpZ1N0b3JlLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIGEgY29uZmlndXJhdGlvbiBmaWxlIGludG8gc3RvcmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlS2V5XG4gICAgICogQHBhcmFtIGZpbGVcbiAgICAgKi9cbiAgICBsb2FkRmlsZShmaWxlS2V5LCBmaWxlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDb25maWdTdG9yZS5maWxlKGZpbGVLZXksIGZpbGUpO1xuICAgIH07XG59XG5cbi8qKlxuICogU2FtZSB0eXBlIGFzIHRoZSBBbW9ycGhpY0NvbmZpZ0J1aWxkZXIgYnVpbGQgZnVuY3Rpb24gYXMgc3BlY2lmaWVkIGluIGFtb3JwaGljLWNvbnRyYWN0c1xuICogQHBhcmFtIHJvb3REaXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJ1aWxkU3VwZXJ0eXBlQ29uZmlnKHJvb3REaXI6IHN0cmluZyk6IEFwcGxpY2F0aW9uTmFtZVRvQ29uZmlnTWFwIHtcbiAgICBjb25zdCByb290Q29uZmlnID0gbmV3IFN1cGVydHlwZUNvbmZpZygpO1xuICAgIGlmICghcm9vdERpcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZhbGlkIHJvb3QgcGF0aCBleHBlY3RlZC4gcm9vdERpclske3Jvb3REaXJ9XWApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgY29uZmlnU3RvcmU6IEFwcGxpY2F0aW9uTmFtZVRvQ29uZmlnTWFwID0ge307XG4gICAgICAgIGxldCBlbnZOYW1lID0gcm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLmdldCgnQVBQX0VOVicpO1xuXG4gICAgICAgIGlmIChlbnZOYW1lKSB7XG4gICAgICAgICAgICBlbnZOYW1lID0gZW52TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudk5hbWUpIHtcbiAgICAgICAgICAgIGxvYWRDb25maWdGaWxlKHJvb3RDb25maWcuaW50ZXJuYWxDb25maWdTdG9yZSwgJ3Jvb3RfZW52Jywgcm9vdERpciwgYGNvbmZpZ18ke2Vudk5hbWV9Lmpzb25gKTtcbiAgICAgICAgfVxuICAgICAgICBsb2FkQ29uZmlnRmlsZShyb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUsICdyb290X3NlY3VyZScsIHJvb3REaXIsIGBjb25maWdfc2VjdXJlLmpzb25gKTtcbiAgICAgICAgbG9hZENvbmZpZ0ZpbGUocm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLCAncm9vdCcsIHJvb3REaXIsIGBjb25maWcuanNvbmApO1xuXG5cbiAgICAgICAgY29uZmlnU3RvcmVbJ3Jvb3QnXSA9IHJvb3RDb25maWc7XG5cbiAgICAgICAgY29uc3QgYXBwTGlzdCA9IHJvb3RDb25maWcuaW50ZXJuYWxDb25maWdTdG9yZS5nZXQoJ2FwcGxpY2F0aW9ucycpIHx8IHt9O1xuXG4gICAgICAgIGZvciAobGV0IGFwcEtleSBpbiBhcHBMaXN0KSB7XG4gICAgICAgICAgICBjb25maWdTdG9yZVthcHBLZXldID0gYnVpbGRBcHBTcGVjaWZpY0NvbmZpZ1N0b3JlKGFwcExpc3RbYXBwS2V5XSwgcm9vdERpciwgZW52TmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZmlnU3RvcmU7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEFwcFNwZWNpZmljQ29uZmlnU3RvcmUoYXBwOiBzdHJpbmcsIHJvb3REaXI6IHN0cmluZywgZW52TmFtZT86IHN0cmluZyk6IFN1cGVydHlwZUNvbmZpZyB7XG4gICAgY29uc3QgYXBwUGF0aCA9IGAke3Jvb3REaXJ9LyR7YXBwfWA7IC8vIExvY2F0aW9uIG9mIHRoZSBBcHAgcmVsYXRpdmUgdG8gcm9vdFxuICAgIGNvbnN0IGFwcENvbW1vblBhdGggPSBgJHtyb290RGlyfS9hcHBzL2NvbW1vbmA7IC8vIExvY2F0aW9uIG9mIHRoZSBjb21tb24gZm9sZGVyIHJlbGF0aXZlIHRvIHJvb3RcblxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBTdXBlcnR5cGVDb25maWcoKTtcbiAgICBjb25zdCBhcHBDZmdBcGkgPSBjb25maWcuaW50ZXJuYWxDb25maWdTdG9yZTtcblxuICAgIC8vIExvYWQgdGhlIG5ldyBhcHAgZW52aXJvbm1lbnQgdmFsdWVzIGludG8gdGhlIGNvbmZpZ1xuICAgIGlmKGVudk5hbWUpIHtcbiAgICAgICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnYXBwX2VudicsIGFwcFBhdGgsIGBjb25maWdfJHtlbnZOYW1lfS5qc29uYCk7XG4gICAgfVxuICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ2FwcF9zZWN1cmUnLCBhcHBQYXRoLCBgY29uZmlnX3NlY3VyZS5qc29uYCk7XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnYXBwJywgYXBwUGF0aCwgYGNvbmZpZy5qc29uYCk7XG5cblxuICAgIC8vIExvYWQgdGhlIGNvbW1vbiBmb2xkZXIgY29uZmlncyB0byB0aGlzIGNvbmZpZyBwcm92aWRlclxuICAgIGlmKGVudk5hbWUpIHtcbiAgICAgICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnY29tbW9uX2VudicsIGFwcENvbW1vblBhdGgsIGBjb25maWdfJHtlbnZOYW1lfS5qc29uYCk7XG4gICAgfVxuICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ2NvbW1vbl9zZWN1cmUnLCBhcHBDb21tb25QYXRoLCBgY29uZmlnX3NlY3VyZS5qc29uYCk7XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnY29tbW9uJywgYXBwQ29tbW9uUGF0aCwgYGNvbmZpZy5qc29uYCk7XG5cbiAgICAvLyBMb2FkIHRoZSByb290IHZhbHVlcyBoZXJlIHRvb1xuICAgIGlmKGVudk5hbWUpIHtcbiAgICAgICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAncm9vdF9lbnYnLCByb290RGlyLCBgY29uZmlnXyR7ZW52TmFtZX0uanNvbmApO1xuICAgIH1cblxuICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ3Jvb3Rfc2VjdXJlJywgcm9vdERpciwgYGNvbmZpZ19zZWN1cmUuanNvbmApO1xuICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ3Jvb3QnLCByb290RGlyLCBgY29uZmlnLmpzb25gKTtcblxuICAgIHJldHVybiBjb25maWc7XG59XG5cblxuZnVuY3Rpb24gbG9hZENvbmZpZ0ZpbGUoY29uZmlnOiBuY29uZi5Qcm92aWRlciwgbmFtZTogc3RyaW5nLCBhcHBQYXRoOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25maWcuZmlsZShuYW1lLCBgJHthcHBQYXRofS8ke2ZpbGVOYW1lfWApO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYEVycm9yIGxvYWRpbmcgJHthcHBQYXRofS8ke2ZpbGVOYW1lfSB0byBjb25maWdgKTtcbiAgICB9XG59Il19
//# sourceMappingURL=SupertypeConfig.js.map

@@ -285,2 +285,2 @@ "use strict";

SupertypeLogger.moduleName = SupertypeLogger.name;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N1cGVydHlwZUxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDbEcsTUFBTSxVQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBRWxHLE1BQWEsZUFBZTtJQVF4QixpQkFBaUI7SUFDakIsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUU1QjtRQVZRLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO1FBVzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLElBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQUcsSUFBVztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7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b250ZW50IjpbImNvbnN0IGxldmVsVG9TdHIgPSB7IDYwOiAnZmF0YWwnLCA1MDogJ2Vycm9yJywgNDA6ICd3YXJuJywgMzA6ICdpbmZvJywgMjA6ICdkZWJ1ZycsIDEwOiAndHJhY2UnIH07XG5jb25zdCBzdHJUb0xldmVsID0geyAnZmF0YWwnOiA2MCwgJ2Vycm9yJzogNTAsICd3YXJuJzogNDAsICdpbmZvJzogMzAsICdkZWJ1Zyc6IDIwLCAndHJhY2UnOiAxMCB9O1xuXG5leHBvcnQgY2xhc3MgU3VwZXJ0eXBlTG9nZ2VyIHtcbiAgICBzdGF0aWMgbW9kdWxlTmFtZTogc3RyaW5nID0gU3VwZXJ0eXBlTG9nZ2VyLm5hbWU7XG4gICAgcHJpdmF0ZSBfYW1vcnBoaWNDb250ZXh0ID0gJ19fYW1vcnBoaWNDb250ZXh0JztcbiAgICBjb250ZXh0OiBhbnk7XG4gICAgZ3JhbnVsYXJMZXZlbHM6IGFueTtcbiAgICBsZXZlbDogYW55O1xuICAgIHByaXZhdGUgX2NsaWVudExvZ2dlcjogYW55O1xuXG4gICAgLy8gZm9yIG92ZXJyaWRpbmdcbiAgICAvLyBzZW5kVG9Mb2c6IEZ1bmN0aW9uO1xuICAgIC8vIGZvcm1hdERhdGVUaW1lOiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvbnRleHQgPSB7fTtcbiAgICAgICAgdGhpcy5ncmFudWxhckxldmVscyA9IHt9O1xuICAgICAgICB0aGlzLmxldmVsID0gJ2luZm8nO1xuICAgIH1cblxuXG4gICAgZmF0YWwoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coNjAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIGVycm9yKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDUwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICB3YXJuKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDQwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBpbmZvKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDMwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBkZWJ1ZyguLi5kYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZygyMCwgLi4uZGF0YSk7XG4gICAgfVxuXG4gICAgdHJhY2UoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coMTAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIGdldCBjbGllbnRMb2dnZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGllbnRMb2dnZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYXNzaWduIGEgY3VzdG9tIHNlbmQgdG8gbG9nIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQHBhcmFtIGxvZ2dlciAtIGxvZ2dlciBtdXN0IGZpdCB0aGUgZm9ybWF0IG9mIGluZm8vZXJyb3IvZGVidWcvd2FyblxuICAgICAqL1xuICAgIHNldExvZ2dlcihsb2dnZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuaW5mbyAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci5lcnJvciAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci5kZWJ1ZyAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci53YXJuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBzcGVjaWZ5IGEgbG9nZ2VyIHdpdGggdGhlIGluZm8sIGVycm9yLCBkZWJ1ZywgYW5kIHdhcm4gZnVuY3Rpb25zJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuY2hpbGRMb2dnZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlci5jaGlsZExvZ2dlcih7ZXJyb3I6IHtpc0h1bWFuUmVsYXRlZDogZmFsc2V9fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuY2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlci5jaGlsZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlcjtcbiAgICB9XG5cbiAgICAvLyBMb2cgYWxsIGFyZ3VtZW50cyBhc3N1bWluZyB0aGUgZmlyc3Qgb25lIGlzIGxldmVsIGFuZCB0aGUgc2Vjb25kIG9uZSBtaWdodCBiZSBhbiBvYmplY3QgKHNpbWlsYXIgdG8gYmFueWFuKVxuICAgIHByaXZhdGUgbG9nKGxldmVsOiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IGFueVtdID0gYXJncyAmJiBBcnJheS5pc0FycmF5KGFyZ3MpID8gYXJncy5zbGljZSgpIDogYXJncztcblxuICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXNbMF0gPT09ICdvYmplY3QnKSAge1xuICAgICAgICAgICAgbGV0IGxvZ09iaiA9IHByb3BlcnRpZXNbMF07XG4gICAgICAgICAgICBpZiAoIWxvZ09iai5kYXRhKSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLmRhdGEgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbG9nT2JqLmNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBsb2dPYmouY29udGV4dCA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWxvZ09iai5yZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLnJlcXVlc3QgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRMb2dzQW1vcnBoaWNDb250ZXh0KGxvZ09iai5jb250ZXh0LCBsb2dPYmoucmVxdWVzdCk7XG5cbiAgICAgICAgICAgIGxvZ09ialsnbGV2ZWwnXSA9IGxldmVsO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkKGxldmVsVG9TdHJbbG9nT2JqWydsZXZlbCddXSwgbG9nT2JqKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZFRvTG9nKGxldmVsVG9TdHJbbG9nT2JqWydsZXZlbCddXSwgbG9nT2JqLCAuLi5wcm9wZXJ0aWVzLnNsaWNlKDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BlcnRpZXNbJ2xldmVsJ10gPSBsZXZlbDtcbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkKGxldmVsVG9TdHJbcHJvcGVydGllc1snbGV2ZWwnXV0sIHByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmRUb0xvZyhsZXZlbFRvU3RyW3Byb3BlcnRpZXNbJ2xldmVsJ11dLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9UaGlzIG1ldGhvZCBleHRyYWN0cyBzZXNzaW9uSWQgZnJvbSB0aGUgZWFjaCByZXF1ZXN0J3MgY29udGV4dCBcbiAgICAvLyBhbmQgcGxhY2VzIGl0IGluIHRoZSBjb250ZXh0LnNlc3Npb25JZC4gQWxsIG90aGVyIGNvbnRleHQgcHJvcGVydGllcyBhcmUgXG4gICAgLy8gcGxhY2VkIGluIGNvbnRleHQuZGF0YSBvYmplY3QuXG4gICAgcHJpdmF0ZSBzZXRMb2dzQW1vcnBoaWNDb250ZXh0KGNvbnRleHQ6IGFueSwgcmVxdWVzdDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgT2JqZWN0LmtleXModGhpcy5jb250ZXh0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQuZGF0YSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuZGF0YSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0LmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5jb250ZXh0LnNlc3Npb247XG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZXh0LnNlc3Npb25JZCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXNzaW9uSWQgPSBzZXNzaW9uSWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0gPSB7IC4uLnRoaXMuY29udGV4dCB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtb3JwaGljQ29udGV4dE9iamVjdEV4aXN0cyA9IGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdICYmXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdKSAmJlxuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XSkubGVuZ3RoID4gMDtcblxuICAgICAgICAgICAgICAgIGlmIChhbW9ycGhpY0NvbnRleHRPYmplY3RFeGlzdHMgJiYgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFtb3JwaGljQ29udGV4dE9iamVjdEV4aXN0cyAmJiBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jbGllbnRJcEFkZHJlc3MgPSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3M7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QW1vcnBoaWNDb250ZXh0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7IF9fYW1vcnBoaWNDb250ZXh0OiB7IC4uLnRoaXMuY29udGV4dCB9IH07XG4gICAgfVxuXG4gICAgc3RhcnRDb250ZXh0KGNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB9XG5cbiAgICAvLyBTYXZlIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBjb250ZXh0IGFuZCByZXR1cm4gYSBuZXcgb2JqZWN0IHRoYXQgaGFzIHRoZSBwcm9wZXJ0aWVzIG9ubHkgc28gdGhleSBjYW4gYmUgY2xlYXJlZFxuICAgIHNldENvbnRleHRQcm9wcyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJldmVyc2UgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29udGV4dCkge1xuICAgICAgICAgICAgcmV2ZXJzZVtwcm9wXSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRbcHJvcF0gPSBjb250ZXh0W3Byb3BdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldmVyc2U7XG4gICAgfVxuICAgIC8vIFBhcnNlIGxvZyBsZXZlbHMgc3VjaCBhcyB3YXJuLmFjdGl2aXR5XG4gICAgc2V0TGV2ZWwobGV2ZWwpIHtcbiAgICAgICAgdmFyIGxldmVscyA9IGxldmVsLnNwbGl0KCc7Jyk7XG5cbiAgICAgICAgZm9yICh2YXIgaXggPSAwOyBpeCA8IGxldmVscy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgIHZhciBsZXZlbGEgPSBsZXZlbHNbaXhdO1xuXG4gICAgICAgICAgICBpZiAobGV2ZWxhLm1hdGNoKC86LykpIHtcbiAgICAgICAgICAgICAgICBpZiAobGV2ZWxzW2l4XS5tYXRjaCgvKC4qKTooLiopLykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdID0gdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW51bGFyTGV2ZWxzW1JlZ0V4cC4kMV0gPSBSZWdFeHAuJDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWxzW2l4XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWxhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBwcm9wZXJ0aWVzIHJlY29yZGVkIGJ5IHNldENvbnRleHRcbiAgICBjbGVhckNvbnRleHRQcm9wcyhjb250ZXh0VG9DbGVhcikge1xuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29udGV4dFRvQ2xlYXIpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbnRleHRbcHJvcF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgbG9nZ2VyIGFuZCBjb3B5IG92ZXIgaXQncyBjb250ZXh0XG4gICAgY3JlYXRlQ2hpbGRMb2dnZXIoY29udGV4dCwgcm9vdFZhbHVlcz8sIGRhdGFWYWx1ZXM/KTogU3VwZXJ0eXBlTG9nZ2VyIHtcbiAgICAgICAgbGV0IGNoaWxkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSksIHRoaXMpO1xuICAgICAgICBjaGlsZC5jb250ZXh0ID0gY29udGV4dCB8fCB7fTtcblxuICAgICAgICBmb3IgKGxldCBwcm9wZXIgaW4gdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICBjaGlsZC5jb250ZXh0W3Byb3Blcl0gPSB0aGlzLmNvbnRleHRbcHJvcGVyXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRMb2dnZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkTG9nZ2VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRMb2dnZXIgPSB0aGlzLl9jbGllbnRMb2dnZXIuY2hpbGRMb2dnZXIocm9vdFZhbHVlcywgZGF0YVZhbHVlcyk7XG4gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZExvZ2dlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NsaWVudExvZ2dlci5jaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkTG9nZ2VyID0gdGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkKHsuLi5yb290VmFsdWVzLCBkYXRhOiB7ZGF0YVZhbHVlc319KTtcbiAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkTG9nZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoaWxkIGFzIFN1cGVydHlwZUxvZ2dlcjsgLy8gYmFkIHByYWN0aWNlIGJ1dCBzaG91bGQgZml4XG4gICAgfVxuXG4gICAgZm9ybWF0RGF0ZVRpbWUoZGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBmKDIsIChkYXRlLmdldE1vbnRoKCkgKyAxKSwgJy8nKSArIGYoMiwgZGF0ZS5nZXREYXRlKCksICcvJykgKyBmKDQsIGRhdGUuZ2V0RnVsbFllYXIoKSwgJyAnKSArXG4gICAgICAgICAgICBmKDIsIGRhdGUuZ2V0SG91cnMoKSwgJzonKSArIGYoMiwgZGF0ZS5nZXRNaW51dGVzKCksICc6JykgKyBmKDIsIGRhdGUuZ2V0U2Vjb25kcygpLCAnOicpICtcbiAgICAgICAgICAgIGYoMywgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkgKyAnIEdNVCcgKyAoMCAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKTtcblxuICAgICAgICBmdW5jdGlvbiBmKHosIGQsIHM/KSB7XG4gICAgICAgICAgICB3aGlsZSAoU3RyaW5nKGQpLmxlbmd0aCA8IHopIHtcbiAgICAgICAgICAgICAgICBkID0gJzAnICsgZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGQgKyAocyB8fCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZUVtcHR5TG9nUHJvcGVydGllcyhsb2dPYmplY3Q6IGFueSkge1xuICAgICAgICBjb25zdCBrZXlzID0gWydjb250ZXh0JywgJ2RhdGEnXTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChsb2dPYmplY3Rba2V5XSAmJiBPYmplY3Qua2V5cyhsb2dPYmplY3Rba2V5XSkubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2dPYmplY3Rba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIHJlcGxhY2VkIGJ5IHRoZSBjb25zdW1lciBvZiB0aGlzIGNsYXNzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvZ0xldmVsIC0gbG9nIGxldmVsXG4gICAgICogQHBhcmFtIGxvZ09iamVjdCAtIGZvcm1hdHRlZCBsb2cgb2JqZWN0LCBwYXNzZWQgaW4gZnJvbSBjb25zdW1lclxuICAgICAqIEBwYXJhbSByYXdMb2dEYXRhIC0gdW5mb3JtYXR0ZWQgYW5kIHVucHJvY2Vzc2VkIHZlcnNpb24gb2YgXCJsb2dPYmplY3RcIiBwYXJhbVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZW5kVG9Mb2cobG9nTGV2ZWwsIGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSkge1xuICAgICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSB0aGlzLnNlbmRUb0xvZy5uYW1lO1xuICAgICAgICB0aGlzLmRlbGV0ZUVtcHR5TG9nUHJvcGVydGllcyhsb2dPYmplY3QpO1xuICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyKSB7XG4gICAgICAgICAgICBsZXQgbGV2ZWxGb3JMb2cgPSB0eXBlb2YgbG9nTGV2ZWwgPT09ICdzdHJpbmcnID8gc3RyVG9MZXZlbFtsb2dMZXZlbF0gOiBsb2dMZXZlbDtcbiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWxGb3JMb2cpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5kZWJ1Zyhsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2xpZW50TG9nZ2VyLmluZm8obG9nT2JqZWN0LCAuLi5yYXdMb2dEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci53YXJuKGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlIDYwOlxuICAgICAgICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5lcnJvcihsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGU6IFN1cGVydHlwZUxvZ2dlci5tb2R1bGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdpbnZhbGlkIGxldmVsIHVzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0xldmVsOiBsb2dMZXZlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dPYmplY3Q6IGxvZ09iamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucHJldHR5UHJpbnQobG9nTGV2ZWwsIGxvZ09iamVjdCkpOyAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuXG4gICAgcHJldHR5UHJpbnQobGV2ZWwsIGpzb24pIHtcbiAgICAgICAgbGV0IHNwbGl0ID0gdGhpcy5zcGxpdChqc29uLCB7dGltZTogMSwgbXNnOiAxLCBsZXZlbDogMSwgbmFtZTogMX0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdERhdGVUaW1lKGpzb24udGltZSA/IG5ldyBEYXRlKGpzb24udGltZSkgOiBuZXcgRGF0ZSgpKSArICc6ICcgK1xuICAgICAgICAgICAgbGV2ZWwudG9VcHBlckNhc2UoKSArICc6ICcgK1xuICAgICAgICAgICAgYWRkQ29sb25JZlRva2VuKHNwbGl0WzFdLm5hbWUsICc6ICcpICtcbiAgICAgICAgICAgIGFkZENvbG9uSWZUb2tlbihzcGxpdFsxXS5tc2csICc6ICcpICtcbiAgICAgICAgICAgIHh5KHNwbGl0WzBdKTtcblxuICAgICAgICBmdW5jdGlvbiBhZGRDb2xvbklmVG9rZW4gKHRva2VuLCBjb2xvbkFuZFNwYWNlKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gKyBjb2xvbkFuZFNwYWNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB4eShqKSB7XG4gICAgICAgICAgICB2YXIgc3RyID0gJyc7XG4gICAgICAgICAgICB2YXIgc2VwID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gaikge1xuICAgICAgICAgICAgICAgIHN0ciArPSBzZXAgKyBwcm9wICsgJz0nICsgSlNPTi5zdHJpbmdpZnkoaltwcm9wXSk7XG4gICAgICAgICAgICAgICAgc2VwID0gJyAnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJygnICsgc3RyICsgJyknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNwbGl0KGpzb24sIHByb3BzKTogYW55W10ge1xuICAgICAgICBjb25zdCBhID0ge307XG4gICAgICAgIGNvbnN0IGIgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4ganNvbikge1xuICAgICAgICAgICAgKHByb3BzW3Byb3BdID8gYiA6IGEpW3Byb3BdID0ganNvbltwcm9wXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbYSwgYl07XG4gICAgfVxuXG4gICAgLy8gTG9nZ2luZyBpcyBlbmFibGVkIGlmIGVpdGhlciB0aGUgbGV2ZWwgdGhyZXNob2xkIGlzIG1ldCBvciB0aGUgZ3JhbnVsYXIgbGV2ZWwgbWF0Y2hlc1xuICAgIHByaXZhdGUgaXNFbmFibGVkKGxldmVsLCBvYmopIHtcbiAgICAgICAgbGV2ZWwgPSBzdHJUb0xldmVsW2xldmVsXTtcblxuICAgICAgICBpZiAobGV2ZWwgPj0gc3RyVG9MZXZlbFt0aGlzLmxldmVsXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ncmFudWxhckxldmVscykge1xuICAgICAgICAgICAgZm9yIChsZXQgbGV2ZWxyIGluIHRoaXMuZ3JhbnVsYXJMZXZlbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqW2xldmVscl0gJiYgb2JqW2xldmVscl0gPT0gdGhpcy5ncmFudWxhckxldmVsc1tsZXZlbHJdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
//# sourceMappingURL=SupertypeLogger.js.map

@@ -182,2 +182,2 @@ export { Supertype } from "./Supertype.js";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQW9CO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsNEJBQXlCO0FBRWxELE9BQU8sa0JBQWtCLENBQUM7QUFFMUI7Ozs7Ozs7O01BUU07QUFDTixNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQVksRUFBRSxjQUFlO0lBRXhELHNGQUFzRjtJQUN0RixvRkFBb0Y7SUFDcEYsOEZBQThGO0lBRTlGLGdDQUFnQztJQUNoQyxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsd0lBQXdJO1FBQ2hMLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsbUNBQW1DO0lBQ25DLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQztJQUVqQixzQkFBc0I7SUFDdEIsU0FBUyxTQUFTLENBQUMsTUFBTTtRQUNyQixjQUFjLEdBQUcsY0FBYyxJQUFJLGNBQWMsQ0FBQztRQUVsRCxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsY0FBYyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQixNQUFNLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMzQixNQUFNLENBQUMsa0JBQWtCLEdBQUcsY0FBYyxDQUFDO1FBQzNDLElBQUksV0FBVyxHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztRQUMvQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRS9CLHlGQUF5RjtRQUN6Rix1Q0FBdUM7UUFDdkMsY0FBYyxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNsRSxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUcxQyxxR0FBcUc7UUFDckcsa0dBQWtHO1FBQ2xHLG1FQUFtRTtRQUNuRSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxPQUFPLGNBQWMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEcsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTLFFBQVEsQ0FBQyxJQUFJO1lBQ3BDLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLFFBQVEsR0FBRyxTQUFTO1lBQ3ZCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUTtnQkFDckQsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDO1FBRU4sTUFBTSxDQUFDLGFBQWEsR0FBRyxTQUFTO1lBQzVCLE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLGFBQWEsQ0FBQyxjQUFjO2dCQUNoRSxPQUFPLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQztRQUVOLE1BQU0sQ0FBQyxjQUFjLEdBQUcsU0FBUztZQUM3QixNQUFNLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxZQUFZLEVBQUUsY0FBYztnQkFDbEUsSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFO29CQUNyQixNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQzVGLGNBQWMsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNuRDtxQkFDSTtvQkFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLGNBQWMsQ0FBQztvQkFDbEUsSUFBSSxPQUFPLGNBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksY0FBYyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7d0JBQ3JGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQ2hELEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztxQkFDMUU7eUJBQ0k7d0JBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRTs0QkFDbEQsVUFBVSxFQUFFLElBQUk7NEJBQ2hCLEdBQUcsRUFBRTtnQ0FDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7d0NBQ3JCLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsRUFBRTs0Q0FDeEQsY0FBYyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztpQ0FDeEM7Z0NBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDOzRCQUNyQyxDQUFDOzRCQUNELEdBQUcsRUFBRSxVQUFVLEtBQUs7Z0NBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFDOzRCQUN0QyxDQUFDO3lCQUNKLENBQUMsQ0FBQztxQkFDTjtpQkFDSjtZQUNMLENBQUMsQ0FBQztRQUVOLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDakMsY0FBYyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUNwRSxLQUFLLElBQUksWUFBWSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFO2dCQUN0RCxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztvQkFDbkQsS0FBSyxFQUFFLE9BQU87b0JBQ2QsSUFBSSxFQUFFLFlBQVk7aUJBQ3JCLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFFRCxTQUFTLGdCQUFnQjtZQUNyQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDOUMsQ0FBQztRQUNELFNBQVMsT0FBTztZQUNaLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFDM0csT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELFNBQVMsYUFBYTtZQUNsQixjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELFNBQVMsU0FBUztZQUNkLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ25DLENBQUM7UUFDRCxTQUFTLFdBQVc7WUFDaEIsYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxNQUFNLENBQUMsa0JBQWtCLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDO0FBR0QsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFNO0lBQzNCLE9BQU8sVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM5QixLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QixNQUFNLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RyxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0UsMkdBQTJHO1FBQzNHLElBQUksT0FBTyxjQUFjLEtBQUssVUFBVSxFQUFFO1lBQ3RDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztZQUM3QixJQUFJO2dCQUNBLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbEUsWUFBWSxHQUFHLGNBQWMsRUFBRSxDQUFDO2lCQUNuQzthQUNKO1lBQUMsTUFBTTtnQkFDSixZQUFZLEdBQUcsU0FBUyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxZQUFZLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxFQUFFO2dCQUNsRCxjQUFjLEdBQUcsWUFBWSxDQUFDO2FBQ2pDO1NBQ0o7UUFDRCxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzlCLElBQUksSUFBSSxHQUFHLGNBQWMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUN4RixrQkFBa0I7UUFDZCxJQUFJLFlBQVksSUFBSSxjQUFjLElBQUksY0FBYyxLQUFLLEtBQUssRUFBRTtZQUM1RCxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxTQUFTLEVBQUUsSUFBSTtnQkFDeEQsT0FBTyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyw4Q0FBOEMsQ0FBQztZQUNuRixDQUFDLENBQUM7WUFDVixnQkFBZ0I7U0FDWDthQUNJLElBQUksT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtZQUMxQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7U0FDeEI7YUFDSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osTUFBTSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsU0FBUyxFQUFFLElBQUk7Z0JBQ3hELE9BQU8sU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJO29CQUM3QixrRkFBa0Y7b0JBQ2xGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUVuRCxDQUFDLENBQUM7U0FDTDtRQUNELElBQUksY0FBYyxLQUFLLEtBQUssRUFBRTtZQUMxQixLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNuQixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztTQUNuQjthQUNJO1lBQ0QsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDckI7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNOLENBQUM7QUFBQSxDQUFDO0FBRUYsTUFBTSxVQUFVLE1BQU0sQ0FBQyxjQUFjO0lBQ2pDLE9BQU8sVUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVU7SUFDakQsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFN1cGVydHlwZSB9IGZyb20gJy4vU3VwZXJ0eXBlJztcbmltcG9ydCB7IE9iamVjdFRlbXBsYXRlIH0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5cbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5cbi8qKlxuICAgICogXG4gICAgKiBAcGFyYW0geyp9IG9iamVjdFByb3BzLSBvcHRpb25hbCBwcm9wZXJ0eSBmb3IgcGFzc2luZyBwYXJhbXMgaW50byBzdXBlcnR5cGVjbGFzcywgaWYgbm8gcGFyYW1zLCBpcyB1bmRlZmluZWQsXG4gICAgKiAgICAgICAgICAgICAgICAgICAgICBmaXJzdCBwYXJhbSBvZiB0aGlzIGZ1bmN0aW9uIGRlZmF1bHRzIHRvIG9iamVjdFRlbXBsYXRlIGluc3RlYWRcbiAgICAqIEBwYXJhbSB7Kn0gb2JqZWN0VGVtcGxhdGUgXG4gICAgKiBcbiAgICAqIEBUT0RPOiBmaXggcmV0dXJuIHR5cGVzXG4gICAgKiBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzZcbiAgICAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1cGVydHlwZUNsYXNzKG9iamVjdFByb3BzPywgb2JqZWN0VGVtcGxhdGU/KTogYW55IHtcblxuICAgIC8vIFdoZW4gdXNlZCBhcyBAc3VwZXJ0eXBlQ2xhc3Moe2JsYSBibGEgYmxhfSksIHRoZSBkZWNvcmF0b3IgaXMgZmlyc3QgY2FsbGVkIGFzIGl0IGlzXG4gICAgLy8gaXMgYmVpbmcgcGFzc2VkIGludG8gdGhlIGRlY29yYXRvciBwcm9jZXNzb3IgYW5kIHNvIGl0IG5lZWRzIHRvIHJldHVybiBhIGZ1bmN0aW9uXG4gICAgLy8gc28gdGhhdCBpdCB3aWxsIGJlIGNhbGxlZCBhZ2FpbiB3aGVuIHRoZSBkZWNvcmF0b3JzIGFyZSBhY3R1YWxseSBwcm9jZXNzZWQuICBLaW5kYSBzcGxpZmZ5LlxuXG4gICAgLy8gQ2FsbGVkIGJ5IGRlY29yYXRvciBwcm9jZXNzb3JcbiAgICBpZiAob2JqZWN0UHJvcHMgJiYgb2JqZWN0UHJvcHMucHJvdG90eXBlKSB7IC8vIGlmIG9iamVjdFByb3BzIGlzIHRoZSBjbGFzcyAoc2Vjb25kIHBhc3MgaWYgcGFzc2VkIHdpdGgge3RvQ2xpZW50IHN0eWxlIHBhcmFtc30gb3IgZmlyc3QgcGFzcyB3aGVuIEBzdXBlcnR5cGVDbGFzcyBubyBwYXJlbiBhbmQgYXJncylcbiAgICAgICAgcmV0dXJuIGRlY29yYXRvcihvYmplY3RQcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gQ2FsbGVkIGZpcnN0IHRpbWUgd2l0aCBwYXJhbWV0ZXJcbiAgICB2YXIgcHJvcHMgPSBvYmplY3RQcm9wcztcbiAgICByZXR1cm4gZGVjb3JhdG9yO1xuXG4gICAgLy8gRGVjb3JhdG9yIFdvcmtlcmJlZVxuICAgIGZ1bmN0aW9uIGRlY29yYXRvcih0YXJnZXQpIHtcbiAgICAgICAgb2JqZWN0VGVtcGxhdGUgPSBvYmplY3RUZW1wbGF0ZSB8fCBPYmplY3RUZW1wbGF0ZTtcblxuICAgICAgICB0YXJnZXQucHJvdG90eXBlLl9fdGVtcGxhdGVfXyA9IHRhcmdldDtcbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5hbW9ycGhpY0NsYXNzID0gdGFyZ2V0O1xuICAgICAgICB0YXJnZXQucHJvdG90eXBlLmFtb3JwaGljR2V0Q2xhc3NOYW1lID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFyZ2V0Ll9fbmFtZV9fIH07XG4gICAgICAgIHRhcmdldC5pc09iamVjdFRlbXBsYXRlID0gdHJ1ZTtcbiAgICAgICAgdGFyZ2V0Ll9faW5qZWN0aW9uc19fID0gW107XG4gICAgICAgIHRhcmdldC5fX29iamVjdFRlbXBsYXRlX18gPSBvYmplY3RUZW1wbGF0ZTtcbiAgICAgICAgdmFyIGNyZWF0ZVByb3BzID0gb2JqZWN0VGVtcGxhdGUuZ2V0VGVtcGxhdGVQcm9wZXJ0aWVzKHByb3BzIHx8IHt9KTtcbiAgICAgICAgdGFyZ2V0Ll9fdG9DbGllbnRfXyA9IGNyZWF0ZVByb3BzLl9fdG9DbGllbnRfXztcbiAgICAgICAgdGFyZ2V0Ll9fdG9TZXJ2ZXJfXyA9IGNyZWF0ZVByb3BzLl9fdG9TZXJ2ZXJfXztcbiAgICAgICAgdGFyZ2V0Ll9fc2hhZG93Q2hpbGRyZW5fXyA9IFtdO1xuXG4gICAgICAgIC8vIFB1c2ggYW4gYXJyYXkgb2YgdGVtcGxhdGUgcmVmZXJlbmNlcyAod2UgY2FuJ3QgZ2V0IGF0IHRoZWlyIG5hbWVzIG5vdykuICBMYXRlciB3ZSB3aWxsXG4gICAgICAgIC8vIHVzZSB0aGlzIHRvIGNvbnN0cnVjdCBfX2RpY3Rpb25hcnlfX1xuICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX3RlbXBsYXRlc19fID0gb2JqZWN0VGVtcGxhdGUuX190ZW1wbGF0ZXNfXyB8fCBbXTtcbiAgICAgICAgb2JqZWN0VGVtcGxhdGUuX190ZW1wbGF0ZXNfXy5wdXNoKHRhcmdldCk7XG5cblxuICAgICAgICAvLyBXZSBjYW4gbmV2ZXIgcmVmZXJlbmNlIHRlbXBsYXRlIGZ1bmN0aW9ucyBhdCBjb21waWxlIHRpbWUgd2hpY2ggaXMgd2hlbiB0aGlzIGRlY29yYXRvciBpcyBleGVjdXRlZFxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgaGF2ZSB0byBzZXR1cCBnZXR0ZXJzIGZvciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCBhY2Nlc3MgdG8gdGhlIHRlbXBsYXRlIGZ1bmN0aW9ucyBzb1xuICAgICAgICAvLyB0aGF0IHdlIGNhbiBlbnN1cmUgdGhleSBhcmUgZnVsbHkgcmVzb2x2ZWQgYmVmb3JlIGFjY2Vzc2luZyB0aGVtXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdkZWZpbmVQcm9wZXJ0aWVzJywgeyBnZXQ6IGRlZmluZVByb3BlcnRpZXMgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY1Byb3BlcnRpZXMnLCB7IGdldDogZGVmaW5lUHJvcGVydGllcyB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ19fbmFtZV9fJywgeyBnZXQ6IGdldE5hbWUgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY0NsYXNzTmFtZScsIHsgZ2V0OiBnZXROYW1lIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAncGFyZW50VGVtcGxhdGUnLCB7IGdldDogZ2V0UGFyZW50IH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnX19wYXJlbnRfXycsIHsgZ2V0OiBnZXRQYXJlbnQgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdfX2NoaWxkcmVuX18nLCB7IGdldDogZ2V0Q2hpbGRyZW4gfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY1BhcmVudENsYXNzJywgeyBnZXQ6IGdldFBhcmVudCB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljQ2hpbGRDbGFzc2VzJywgeyBnZXQ6IGdldENoaWxkcmVuIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNTdGF0aWMnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gb2JqZWN0VGVtcGxhdGUgfSB9KTtcblxuICAgICAgICB0YXJnZXQuZnJvbVBPSk8gPSBmdW5jdGlvbiBmcm9tUE9KTyhwb2pvKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ocG9qbywgdGFyZ2V0KTtcbiAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQuZnJvbUpTT04gPSAvLyBMZWdhY3lcbiAgICAgICAgICAgIHRhcmdldC5hbW9ycGhpY0Zyb21KU09OID0gZnVuY3Rpb24gZnJvbUpTT04oc3RyLCBpZFByZWZpeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS5mcm9tSlNPTihzdHIsIHRhcmdldCwgaWRQcmVmaXgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQuZ2V0UHJvcGVydGllcyA9IC8vIExlZ2FjeVxuICAgICAgICAgICAgdGFyZ2V0LmFtb3JwaGljR2V0UHJvcGVydGllcyA9IGZ1bmN0aW9uIGdldFByb3BlcnRpZXMoaW5jbHVkZVZpcnR1YWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0VGVtcGxhdGUuX2dldERlZmluZVByb3BlcnRpZXModGFyZ2V0LCB1bmRlZmluZWQsIGluY2x1ZGVWaXJ0dWFsKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LmNyZWF0ZVByb3BlcnR5ID0gLy8gTGVnYWN5XG4gICAgICAgICAgICB0YXJnZXQuYW1vcnBoaWNDcmVhdGVQcm9wZXJ0eSA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5LmJvZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtwcm9wZXJ0eU5hbWVdID0gb2JqZWN0VGVtcGxhdGUuX3NldHVwRnVuY3Rpb24ocHJvcGVydHlOYW1lLCBkZWZpbmVQcm9wZXJ0eS5ib2R5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkub24sIGRlZmluZVByb3BlcnR5LnZhbGlkYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGUuX19hbW9ycGhpY3Byb3BzX19bcHJvcGVydHlOYW1lXSA9IGRlZmluZVByb3BlcnR5O1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRlZmluZVByb3BlcnR5LnZhbHVlIGluIFsnc3RyaW5nJywgJ251bWJlciddIHx8IGRlZmluZVByb3BlcnR5LnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQucHJvdG90eXBlLCBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGRlZmluZVByb3BlcnR5LnZhbHVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIHByb3BlcnR5TmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpc1snX18nICsgcHJvcGVydHlOYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1snX18nICsgcHJvcGVydHlOYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0VGVtcGxhdGUuY2xvbmUoZGVmaW5lUHJvcGVydHkudmFsdWUsIGRlZmluZVByb3BlcnR5Lm9mIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnR5cGUgfHwgbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0YXJnZXQucHJvdG90eXBlLl9fZXhjZXB0aW9uc19fKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2V4Y2VwdGlvbnNfXyA9IG9iamVjdFRlbXBsYXRlLl9fZXhjZXB0aW9uc19fIHx8IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgZXhjZXB0aW9uS2V5IGluIHRhcmdldC5wcm90b3R5cGUuX19leGNlcHRpb25zX18pIHtcbiAgICAgICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2V4Y2VwdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgZnVuYzogdGFyZ2V0LnByb3RvdHlwZS5fX2V4Y2VwdGlvbnNfX1tleGNlcHRpb25LZXldLFxuICAgICAgICAgICAgICAgICAgICBjbGFzczogZ2V0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcDogZXhjZXB0aW9uS2V5XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5wcm90b3R5cGUuX19hbW9ycGhpY3Byb3BzX187XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0TmFtZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldE5hbWUgPSB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvY2xhc3MgKFteXVxcdyspLykgfHwgdGFyZ2V0LnRvU3RyaW5nKCkubWF0Y2goL2Z1bmN0aW9uIChbXihdKikvKSBcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXROYW1lWzFdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldERpY3Rpb25hcnkoKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5nZXRDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0UGFyZW50KCkge1xuICAgICAgICAgICAgZ2V0RGljdGlvbmFyeSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5fX3NoYWRvd1BhcmVudF9fO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldENoaWxkcmVuKCkge1xuICAgICAgICAgICAgZ2V0RGljdGlvbmFyeSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5fX3NoYWRvd0NoaWxkcmVuX187XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KHByb3BzPyk6IGFueSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHRhcmdldEtleSkge1xuICAgICAgICBwcm9wcyA9IHByb3BzIHx8IHt9O1xuICAgICAgICBwcm9wcy5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGFyZ2V0Ll9fYW1vcnBoaWNwcm9wc19fID0gdGFyZ2V0Lmhhc093blByb3BlcnR5KCdfX2Ftb3JwaGljcHJvcHNfXycpID8gdGFyZ2V0Ll9fYW1vcnBoaWNwcm9wc19fIDoge307XG4gICAgICAgIHZhciByZWZsZWN0aW9uVHlwZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgdGFyZ2V0LCB0YXJnZXRLZXkpO1xuICAgICAgICAvLyBpZiB0eXBlIGlzIHNwZWNpZmllZCBhcyBhIHJlc29sdmVyICgpID0+IENsYXNzLCByZXNvbHZlIHRoZSB0eXBlIGFuZCBzZXQgdGhhdCBhcyB0aGUgZGVmaW5lUHJvcGVydHkudHlwZVxuICAgICAgICBpZiAodHlwZW9mIHJlZmxlY3Rpb25UeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWRUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVmbGVjdGlvblR5cGUpLnN0YXJ0c1dpdGgoJygnKSkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSByZWZsZWN0aW9uVHlwZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXNvbHZlZFR5cGUgJiYgdHlwZW9mIHJlc29sdmVkVHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICByZWZsZWN0aW9uVHlwZSA9IHJlc29sdmVkVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVjbGFyZWRUeXBlID0gcHJvcHMudHlwZTtcbiAgICAgICAgdmFyIHR5cGUgPSByZWZsZWN0aW9uVHlwZSAhPT0gQXJyYXkgPyBkZWNsYXJlZFR5cGUgfHwgcmVmbGVjdGlvblR5cGUgOiBkZWNsYXJlZFR5cGU7XG4gICAgLy8gVHlwZSBtaXNtYXRjaGVzXG4gICAgICAgIGlmIChkZWNsYXJlZFR5cGUgJiYgcmVmbGVjdGlvblR5cGUgJiYgcmVmbGVjdGlvblR5cGUgIT09IEFycmF5KSB7XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX18gPSB0YXJnZXQuX19leGNlcHRpb25zX18gfHwge307XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX19bdGFyZ2V0S2V5XSA9IGZ1bmN0aW9uIChjbGFzc05hbWUsIHByb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NOYW1lICsgJy4nICsgcHJvcCArICcgLSBkZWNvcmF0b3IgdHlwZSBkb2VzIG5vdCBtYXRjaCBhY3R1YWwgdHlwZSc7XG4gICAgICAgICAgICB9O1xuICAgIC8vIERlZmVycmVkIHR5cGVcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcHJvcHMuZ2V0VHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGFyZ2V0Ll9fZGVmZXJyZWRUeXBlX18gPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ19fZGVmZXJyZWRUeXBlX18nKSA/IHRhcmdldC5fX2RlZmVycmVkVHlwZV9fIDoge307XG4gICAgICAgICAgICB0YXJnZXQuX19kZWZlcnJlZFR5cGVfX1t0YXJnZXRLZXldID0gcHJvcHMuZ2V0VHlwZTtcbiAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5nZXRUeXBlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX18gPSB0YXJnZXQuX19leGNlcHRpb25zX18gfHwge307XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX19bdGFyZ2V0S2V5XSA9IGZ1bmN0aW9uIChjbGFzc05hbWUsIHByb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NOYW1lICsgJy4nICsgcHJvcCArXG4gICAgICAgICAgICAgICAgJyAtIHR5cGUgaXMgdW5kZWZpbmVkLiBDaXJjdWxhciByZWZlcmVuY2U/IFRyeSBAcHJvcGVydHkoe2dldFR5cGU6ICgpID0+IHtyZXR1cm4gJyArXG4gICAgICAgICAgICAgICAgcHJvcFswXS50b1VwcGVyQ2FzZSgpICsgcHJvcC5zdWJzdHIoMSkgKyAnfX0pJztcblxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmbGVjdGlvblR5cGUgPT09IEFycmF5KSB7XG4gICAgICAgICAgICBwcm9wcy50eXBlID0gQXJyYXk7XG4gICAgICAgICAgICBwcm9wcy5vZiA9IHR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwcm9wcy50eXBlID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX19bdGFyZ2V0S2V5XSA9IHByb3BzO1xuICAgIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3RlKGRlZmluZVByb3BlcnR5KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikge1xuICAgIH1cbn0iXX0=
//# sourceMappingURL=decorators.js.map

@@ -32,2 +32,2 @@ /* Copyright 2011-2012 Sam Elsamman

export { supertypeClass, property, remote } from "./decorators.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLDRCQUF5QjtBQUVsRCxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEIsZUFBZSxjQUFjLENBQUM7QUFFOUIsSUFBSSxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQztBQUNuRCxJQUFJLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBdUI7QUFFOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsNkJBQTBCO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsNkJBQTBCO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQW9CO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSx3QkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBDb3B5cmlnaHQgMjAxMS0yMDEyIFNhbSBFbHNhbW1hblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZ1xuIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG9cbiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cbiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZVxuIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCxcbiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0ZcbiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORFxuIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkVcbiBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OXG4gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OXG4gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgT2JqZWN0VGVtcGxhdGUgfSBmcm9tICcuL09iamVjdFRlbXBsYXRlJztcblxuT2JqZWN0VGVtcGxhdGUuaW5pdCgpO1xuZXhwb3J0IGRlZmF1bHQgT2JqZWN0VGVtcGxhdGU7XG5cbmxldCBhbW9ycGhpY1N0YXRpYyA9IE9iamVjdFRlbXBsYXRlLmFtb3JwaGljU3RhdGljO1xubGV0IFN1cGVydHlwZVNlc3Npb24gPSBPYmplY3RUZW1wbGF0ZS5hbW9ycGhpY1N0YXRpYztcbmV4cG9ydCB7IFN0YXRzZENsaWVudEludGVyZmFjZSB9IGZyb20gJy4vU3RhdHNkQ2xpZW50SW50ZXJmYWNlJztcbmV4cG9ydCB7IFN0YXRzZEhlbHBlciB9IGZyb20gJy4vU3RhdHNkSGVscGVyJztcblxuZXhwb3J0IHsgYW1vcnBoaWNTdGF0aWMsIFN1cGVydHlwZVNlc3Npb24gfTtcbmV4cG9ydCB7IFN1cGVydHlwZUxvZ2dlciB9IGZyb20gJy4vU3VwZXJ0eXBlTG9nZ2VyJztcbmV4cG9ydCB7IFN1cGVydHlwZUNvbmZpZywgQnVpbGRTdXBlcnR5cGVDb25maWcgfSBmcm9tICcuL1N1cGVydHlwZUNvbmZpZyc7XG5leHBvcnQgeyBTdXBlcnR5cGUgfSBmcm9tICcuL1N1cGVydHlwZSc7XG5leHBvcnQgeyBzdXBlcnR5cGVDbGFzcywgcHJvcGVydHksIHJlbW90ZSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7Il19
//# sourceMappingURL=index.js.map

@@ -167,2 +167,2 @@ /**

;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0g7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFHO0lBQ2pDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVmLElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLO1lBQzVDLElBQUksR0FBRyxLQUFLLG9CQUFvQixJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUU7Z0JBQ3BELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQzdDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDckIsS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztpQkFDL0M7cUJBQ0k7b0JBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7aUJBQzFDO2FBQ0o7WUFFRCxJQUFJLEVBQUUsRUFBRTtnQkFDSixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDekI7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztLQUNOO0lBQ0QsT0FBTyxDQUFDLEVBQUU7UUFDTixNQUFNLENBQUMsQ0FBQztLQUNYO0FBQ0wsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRztJQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNa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QUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPYmplY3RUZW1wbGF0ZS50b0pTT05TdHJpbmc7XG4gKi9cbi8qKlxuICogQ29udmVydCBhbiBvYmplY3QgdG8gSlNPTiwgc3RyaXBwaW5nIGFueSByZWN1cnNpdmUgb2JqZWN0IHJlZmVyZW5jZXMgc28gdGhleSBjYW4gYmVcbiAqIHJlY29uc3RpdHV0ZWQgbGF0ZXJcbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG9iaiB1bmtub3duXG4gKiBAcGFyYW0ge3Vua25vd259IGNiIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyB7dW5rbm93bn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSlNPTlN0cmluZyhvYmosIGNiPykge1xuICAgIHZhciBpZE1hcCA9IFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgZnVuY3Rpb24gYShrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnX19vYmplY3RUZW1wbGF0ZV9fJyB8fCBrZXkgPT09ICdhbW9ycGhpYycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5fX3RlbXBsYXRlX18gJiYgdmFsdWUuX19pZF9fKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlkTWFwW3ZhbHVlLl9faWRfX10pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB7IF9faWRfXzogdmFsdWUuX19pZF9fLnRvU3RyaW5nKCkgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlkTWFwW3ZhbHVlLl9faWRfXy50b1N0cmluZygpXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNiKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gcHJvcFhmZXIocHJvcCwgcG9qbywgb2JqKSB7XG4gICAgaWYgKHBvam9bcHJvcF0pIHtcbiAgICAgICAgb2JqW3Byb3BdID0gcG9qb1twcm9wXTtcbiAgICB9XG59XG5cbi8qKlxuICogT2JqZWN0VGVtcGxhdGUuZnJvbVBPSk9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21QT0pPKHBvam8sIHRlbXBsYXRlLCBkZWZpbmVQcm9wZXJ0eT8sIGlkTWFwPywgaWRRdWFsaWZpZXI/LCBwYXJlbnQ/LCBwcm9wPywgY3JlYXRvcj8pIHtcbiAgICBmdW5jdGlvbiBnZXRJZChpZCkge1xuICAgICAgICBpZiAodHlwZW9mIChpZFF1YWxpZmllcikgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gaWQgKyAnLScgKyBpZFF1YWxpZmllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG5cbiAgICAvLyBGb3IgcmVjb3JkaW5nIGJhY2sgcmVmc1xuICAgIGlmICghaWRNYXApIHtcbiAgICAgICAgaWRNYXAgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAoIXBvam8uX19pZF9fKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgb2JqO1xuXG4gICAgaWYgKGNyZWF0b3IpIHtcbiAgICAgICAgb2JqID0gY3JlYXRvcihwYXJlbnQsIHByb3AsIHRlbXBsYXRlLCBpZE1hcFtwb2pvLl9faWRfXy50b1N0cmluZygpXSwgcG9qby5fX3RyYW5zaWVudF9fKTtcblxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIG9iaiA9IG9ialswXTtcbiAgICAgICAgICAgIGlkTWFwW29iai5fX2lkX18udG9TdHJpbmcoKV0gPSBvYmo7XG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiAob2JqKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgIHRoaXMubm9Jbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgIG9iaiA9IG5ldyB0ZW1wbGF0ZSgpO1xuICAgICAgICAgICAgLy9PYmplY3QgaWQgc2hvdWxkIGJlIHNldCBieSBwZXJzaXN0b3IgYXQgc2F2ZS5cbiAgICAgICAgICAgIGlmIChvYmogJiYgb2JqLl9pZCkge1xuICAgICAgICAgICAgICAgIG9iai5faWQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ub0luaXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb2JqID0gdGhpcy5fY3JlYXRlRW1wdHlPYmplY3QodGVtcGxhdGUsIGdldElkKHBvam8uX19pZF9fLnRvU3RyaW5nKCkpLCBkZWZpbmVQcm9wZXJ0eSwgcG9qby5fX3RyYW5zaWVudF9fKTtcbiAgICB9XG4gICBcbiAgICBpZE1hcFtnZXRJZChwb2pvLl9faWRfXy50b1N0cmluZygpKV0gPSBvYmo7XG5cbiAgICAvLyBHbyB0aHJvdWdoIGFsbCB0aGUgcHJvcGVydGllcyBhbmQgdHJhbnNmZXIgdGhlbSB0byBuZXdseSBjcmVhdGVkIG9iamVjdFxuICAgIHZhciBwcm9wcyA9IG9iai5fX3RlbXBsYXRlX18uZ2V0UHJvcGVydGllcygpO1xuXG4gICAgZm9yICh2YXIgcHJvcGIgaW4gcG9qbykge1xuICAgICAgICBwcm9wYiA9IHByb3BiLnJlcGxhY2UoL15fXy8sICcnKTtcbiAgICAgICAgdmFyIGRlZmluZVByb3AgPSBwcm9wc1twcm9wYl07XG4gICAgICAgIGlmICghZGVmaW5lUHJvcClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB2YXIgdHlwZSA9IGRlZmluZVByb3AudHlwZTtcblxuICAgICAgICAvLyBCZWNhdXNlIHNlbW90dXMgY2FuIHNlcmlhbGl6ZSBvbmx5IHRoZSBzaGFkb3cgcHJvcGVydGllcyB3ZSB0cnkgYW5kIHJlc3RvcmUgdGhlbVxuICAgICAgICB2YXIgcG9qb1Byb3AgPSAodHlwZSAmJiB0eXBlb2YgcG9qb1snX18nICsgcHJvcGJdICE9PSAndW5kZWZpbmVkJykgPyAnX18nICsgcHJvcGIgOiBwcm9wYjtcblxuICAgICAgICBpZiAodHlwZSAmJiBwb2pvW3Bvam9Qcm9wXSA9PSBudWxsKSB7XG4gICAgICAgICAgICBvYmpbcHJvcGJdID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlICYmIHR5cGVvZiAocG9qb1twb2pvUHJvcF0pICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJyYXkgJiYgZGVmaW5lUHJvcC5vZiAmJiBkZWZpbmVQcm9wLm9mLmlzT2JqZWN0VGVtcGxhdGUpIHsgLy8gQXJyYXkgb2YgdGVtcGxhdGVkIG9iamVjdHNcbiAgICAgICAgICAgICAgICB2YXIgYXJyYXlEaXJlY3Rpb25zID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIGlmIChjcmVhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGFycmF5RGlyZWN0aW9ucyA9IGNyZWF0b3Iob2JqLCBwcm9wYiwgZGVmaW5lUHJvcC5vZiwgaWRNYXBbcG9qby5fX2lkX18udG9TdHJpbmcoKV0sIHBvam8uX190cmFuc2llbnRfXyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAoYXJyYXlEaXJlY3Rpb25zKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCBwb2pvW3Bvam9Qcm9wXS5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdHlwZSA9IHBvam9bcG9qb1Byb3BdW2l4XS5fX3RlbXBsYXRlX18gfHwgZGVmaW5lUHJvcC5vZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb2pvW3Bvam9Qcm9wXVtpeF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9qb1twb2pvUHJvcF1baXhdLl9faWRfXyAmJiBpZE1hcFtnZXRJZChwb2pvW3Bvam9Qcm9wXVtpeF0uX19pZF9fLnRvU3RyaW5nKCkpXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpbcHJvcGJdW2l4XSA9IGlkTWFwW2dldElkKHBvam9bcG9qb1Byb3BdW2l4XS5fX2lkX18udG9TdHJpbmcoKSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXVtpeF0gPSB0aGlzLmZyb21QT0pPKHBvam9bcG9qb1Byb3BdW2l4XSwgYXR5cGUsIGRlZmluZVByb3AsIGlkTWFwLCBpZFF1YWxpZmllciwgb2JqLCBwcm9wYiwgY3JlYXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXVtpeF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYmpbcHJvcGJdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc09iamVjdFRlbXBsYXRlKSB7IC8vIFRlbXBsYXRlZCBvYmplY3RzXG4gICAgICAgICAgICAgICAgdmFyIG90eXBlID0gcG9qb1twb2pvUHJvcF0uX190ZW1wbGF0ZV9fIHx8IHR5cGU7XG4gICAgICAgICAgICAgICAgaWYgKHBvam9bcG9qb1Byb3BdLl9faWRfXyAmJiBpZE1hcFtnZXRJZChwb2pvW3Bvam9Qcm9wXS5fX2lkX18udG9TdHJpbmcoKSldKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtwcm9wYl0gPSBpZE1hcFtnZXRJZChwb2pvW3Bvam9Qcm9wXS5fX2lkX18udG9TdHJpbmcoKSldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXSA9IHRoaXMuZnJvbVBPSk8ocG9qb1twb2pvUHJvcF0sIG90eXBlLCBkZWZpbmVQcm9wLCBpZE1hcCwgaWRRdWFsaWZpZXIsIG9iaiwgcHJvcGIsIGNyZWF0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gRGF0ZSkge1xuICAgICAgICAgICAgICAgIGlmIChwb2pvW3Bvam9Qcm9wXSkge1xuICAgICAgICAgICAgICAgICAgICBvYmpbcHJvcGJdID0gbmV3IERhdGUocG9qb1twb2pvUHJvcF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqW3Byb3BiXSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb2JqW3Byb3BiXSA9IHBvam9bcG9qb1Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yIHRoZSBiZW5lZml0IG9mIHBlcnNpc3RPYmplY3RUZW1wbGF0ZVxuICAgIGlmICghY3JlYXRvciAmJiBwb2pvLl9pZCkge1xuICAgICAgICBvYmouX2lkID0gZ2V0SWQocG9qby5faWQpO1xuICAgIH1cblxuICAgIGlmICghY3JlYXRvcikge1xuICAgICAgICBwcm9wWGZlcignX19jaGFuZ2VkX18nLCBwb2pvLCBvYmopO1xuICAgICAgICBwcm9wWGZlcignX192ZXJzaW9uX18nLCBwb2pvLCBvYmopO1xuICAgIH1cblxuICAgIHByb3BYZmVyKCdfX3RvU2VydmVyX18nLCBwb2pvLCBvYmopO1xuICAgIHByb3BYZmVyKCdfX3RvQ2xpZW50X18nLCBwb2pvLCBvYmopO1xuXG4gICAgcmV0dXJuIG9iajtcbn07XG5cblxuLyoqXG4gKiBPYmplY3RUZW1wbGF0ZS5mcm9tSlNPTlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUpTT04oc3RyLCB0ZW1wbGF0ZSwgaWRRdWFsaWZpZXIpIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tUE9KTyhKU09OLnBhcnNlKHN0ciksIHRlbXBsYXRlLCBudWxsLCBudWxsLCBpZFF1YWxpZmllcik7XG59O1xuIl19
//# sourceMappingURL=serializer.js.map
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdHNkQ2xpZW50SW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0YXRzZENsaWVudEludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdGF0c2RDbGllbnRJbnRlcmZhY2Uge1xuICAgIHRpbWluZyhzdGF0c0tleTogc3RyaW5nLCB0aW1lcjogbnVtYmVyIHwgRGF0ZSwgdGFncz86IG9iamVjdCk6IHZvaWQsXG4gICAgY291bnRlcihzdGF0c0tleTogc3RyaW5nLCBudW06IG51bWJlciwgdGFncz86IG9iamVjdCk6IHZvaWRcbn0iXX0=
//# sourceMappingURL=StatsdClientInterface.js.map

@@ -31,2 +31,2 @@ import { SupertypeSession } from "./index.js";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdHNkSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0YXRzZEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQWdCO0FBTTNDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFFckI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxNQUFjO1FBQ3BELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCLEVBQUUsSUFBSztRQUMzRSxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFFbkQsSUFBRyxZQUFZO2VBQ1IsWUFBWSxDQUFDLE1BQU07ZUFDbkIsT0FBTyxZQUFZLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUU5QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9FLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VwZXJ0eXBlU2Vzc2lvbiB9IGZyb20gJy4vaW5kZXgnO1xuXG4vLyBmb3JtYXQgZm9yIGhydGltZVxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9wcm9jZXNzLmh0bWwjcHJvY2Vzc19wcm9jZXNzX2hydGltZV90aW1lXG50eXBlIGhyVGltZSA9IFtudW1iZXIsIG51bWJlcl07XG5cbi8qKlxuICogbW9zdGx5IHN0YXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyB0byBhc3Npc3Qgc3VwZXJ0eXBlIGluIGhhbmRsaW5nIHN0YXRzZCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGF0c2RIZWxwZXIge1xuXG4gICAgLyoqXG4gICAgICogY29udmVydCBub2RlIHRpbWUgZm9ybWF0IGhydGltZSB0byBtaWxsaXNlY29uZHNcbiAgICAgKiBAcGFyYW0ge2hyVGltZX0gaHJUaW1lXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNvbnZlcnRIUlRpbWVUb01pbGxpc2Vjb25kcyhoclRpbWU6IGhyVGltZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBoclRpbWVbMF0gKiAxMDAwICsgaHJUaW1lWzFdIC8gMTAwMDAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnaXZlbiBhIHN0YXJ0IHRpbWUgYW5kIGEga2V5LCByZWNvcmQgdGhlIHRvdGFsIGFtb3VudCBvZiB0aW1lIGFuZCBzZW5kIHN0YXQgaW5mby5cbiAgICAgKiBAcGFyYW0ge2hyVGltZX0gaHJUaW1lU3RhcnRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RhdHNLZXlcbiAgICAgKiBAcGFyYW0gdGFnc1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY29tcHV0ZVRpbWluZ0FuZFNlbmQoaHJUaW1lU3RhcnQ6IGhyVGltZSwgc3RhdHNLZXk6IHN0cmluZywgdGFncz8pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdHNkQ2xpZW50ID0gU3VwZXJ0eXBlU2Vzc2lvbi5zdGF0c2RDbGllbnQ7XG5cbiAgICAgICAgaWYoc3RhdHNkQ2xpZW50XG4gICAgICAgICAgICAmJiBzdGF0c2RDbGllbnQudGltaW5nXG4gICAgICAgICAgICAmJiB0eXBlb2Ygc3RhdHNkQ2xpZW50LnRpbWluZyA9PT0gJ2Z1bmN0aW9uJykge1xuXG4gICAgICAgICAgICBjb25zdCB0aW1lckVuZFRpbWUgPSBwcm9jZXNzLmhydGltZShoclRpbWVTdGFydCk7XG4gICAgICAgICAgICBjb25zdCB0b3RhbFRpbWVJbk1pbGxpc2Vjb25kcyA9IHRoaXMuY29udmVydEhSVGltZVRvTWlsbGlzZWNvbmRzKHRpbWVyRW5kVGltZSk7XG4gICAgICAgICAgICBzdGF0c2RDbGllbnQudGltaW5nKHN0YXRzS2V5LCB0b3RhbFRpbWVJbk1pbGxpc2Vjb25kcywgdGFncyk7XG4gICAgICAgIH1cbiAgICB9XG59Il19
//# sourceMappingURL=StatsdHelper.js.map

@@ -108,2 +108,2 @@ import { ObjectTemplate } from "./ObjectTemplate.js";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N1cGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLDRCQUF5QjtBQUNsRCxPQUFPLEtBQUssVUFBVSx3QkFBcUI7QUFFM0MsU0FBUyxlQUFlLENBQUMsV0FBVztJQUNoQyxJQUFJLGFBQWEsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZILE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNuRCxDQUFDO0FBS0Q7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sU0FBUztJQUlsQixNQUFNLENBQUMsc0JBQXNCLENBQUMsSUFBWSxFQUFFLGNBQXNCO1FBQzlELCtDQUErQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLHdCQUFrQztRQUMzRCwrQ0FBK0M7SUFDbkQsQ0FBQztJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ2hDLCtDQUErQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFZLEVBQUUsY0FBc0I7UUFDdEQsK0NBQStDO0lBQ25ELENBQUM7SUFDRCxNQUFNLENBQUMsYUFBYTtRQUNoQiwrQ0FBK0M7SUFDbkQsQ0FBQztJQUNELG9CQUFvQjtRQUNoQiwrQ0FBK0M7UUFDL0MsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBRSxJQUFZLEVBQUUsUUFBaUI7UUFDNUMsK0NBQStDO0lBRW5ELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFFLFFBQWE7UUFDeEIsMkVBQTJFO0lB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Q0FBQyxRQUFRO1FBQ1gsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFHO1FBQ2QsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxZQUFZLENBQUMsRUFBRztRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYmplY3RUZW1wbGF0ZSB9IGZyb20gJy4vT2JqZWN0VGVtcGxhdGUnO1xuaW1wb3J0ICogYXMgc2VyaWFsaXplciBmcm9tICcuL3NlcmlhbGl6ZXInO1xuXG5mdW5jdGlvbiBjb25zdHJ1Y3Rvck5hbWUoY29uc3RydWN0b3IpIHtcbiAgICB2YXIgbmFtZWRGdW5jdGlvbiA9IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2NsYXNzIChbXl1cXHcrKS8pIHx8IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2Z1bmN0aW9uIChbXihdKikvKTtcbiAgICByZXR1cm4gbmFtZWRGdW5jdGlvbiA/IG5hbWVkRnVuY3Rpb25bMV0gOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RhYmxlID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4ge307XG5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIGZvciB0eXBlc2NyaXB0IGNsYXNzZXMuIFxuICogSXQgd2lsbCBpbmplY3QgbWVtYmVycyBpbnRvIHRoZSBvYmplY3QgZnJvbSBib3RoIHRoZSB0ZW1wbGF0ZSBhbmQgb2JqZWN0VGVtcGxhdGVcbiAqIEBwYXJhbSB7T2JqZWN0VGVtcGxhdGV9IC0gb3RoZXIgbGF5ZXJzIGNhbiBwYXNzIGluIHRoZWlyIG93biBvYmplY3QgdGVtcGxhdGUgKHRoaXMgaXMgdGhlIG9iamVjdCBub3QgT2JqZWN0VGVtcGxhdGUpXG4gKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgb2JqZWN0IGl0c2VsZlxuICovXG5cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGUge1xuICAgIF9fdGVtcGxhdGVfXzogYW55O1xuICAgIGFtb3JwaGljIDogdHlwZW9mIE9iamVjdFRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGFtb3JwaGljQ3JlYXRlUHJvcGVydHkocHJvcDogU3RyaW5nLCBkZWZpbmVQcm9wZXJ0eTogT2JqZWN0KSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljR2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbFByb3BlcnRpZXM/OiBib29sZWFuKTphbnkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgYW1vcnBoaWNGcm9tSlNPTihqc29uOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZVByb3BlcnR5KHByb3A6IFN0cmluZywgZGVmaW5lUHJvcGVydHk6IE9iamVjdCkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcygpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRDbGFzc05hbWUgKCkgOiBzdHJpbmcge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tSlNPTiAoanNvbjogc3RyaW5nLCBpZFByZWZpeD86IHN0cmluZykge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBpbmplY3QgKGluamVjdG9yOiBhbnkpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gTGluZSAxMjgsIG9mIE9iamVjdFRlbXBsYXRlLnRzIChzdGF0aWMgcGVyZm9ybUluamVjdGlvbnMpXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljUHJvcGVydGllczogYW55O1xuICAgIHN0YXRpYyBhbW9ycGhpY0NoaWxkQ2xhc3NlczogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIGFtb3JwaGljUGFyZW50Q2xhc3M6IENvbnN0cnVjdGFibGU7XG4gICAgc3RhdGljIGFtb3JwaGljQ2xhc3NOYW1lIDogc3RyaW5nO1xuICAgIHN0YXRpYyBhbW9ycGhpY1N0YXRpYyA6IHR5cGVvZiBPYmplY3RUZW1wbGF0ZTtcblxuICAgIC8vIE9iamVjdCBtZW1iZXJzXG4gICAgX19pZF9fOiBTdHJpbmc7XG4gICAgYW1vcnBoaWNMZWF2ZUVtcHR5OiBib29sZWFuO1xuXG4gICAgLy8gRGVwcmVjYXRlZCBsZWdhY3kgbmFtaW5nXG4gICAgc3RhdGljIF9fY2hpbGRyZW5fXzogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIF9fcGFyZW50X186IENvbnN0cnVjdGFibGU7XG4gICAgYW1vcnBoaWNDbGFzcyA6IGFueVxuXG4gICAgY29uc3RydWN0b3Iob2JqZWN0VGVtcGxhdGUgPSBPYmplY3RUZW1wbGF0ZSkge1xuICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLl9fdGVtcGxhdGVfXztcbiAgICAgICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNvbnN0cnVjdG9yTmFtZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IpICsgJyBtaXNzaW5nIEBzdXBlcnR5cGVDbGFzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVsbCBjb25zdHJ1Y3RvciBub3QgdG8gZXhlY3V0ZSBhcyB0aGlzIGlzIGFuIGVtcHR5IG9iamVjdFxuICAgICAgICB0aGlzLmFtb3JwaGljTGVhdmVFbXB0eSA9IG9iamVjdFRlbXBsYXRlLl9zdGFzaE9iamVjdCh0aGlzLCB0ZW1wbGF0ZSk7XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGV2ZWwgaW5qZWN0aW9ucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXkgdXNlXG4gICAgICAgIHZhciB0YXJnZXRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICB3aGlsZSAodGFyZ2V0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfXy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tpeF0uY2FsbCh0aGlzLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldFRlbXBsYXRlID0gdGFyZ2V0VGVtcGxhdGUuX19wYXJlbnRfXztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdsb2JhbCBpbmplY3Rpb25zIHVzZWQgYnkgdGhlIGZyYW1ld29ya1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9iamVjdFRlbXBsYXRlLl9faW5qZWN0aW9uc19fLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tqXS5jYWxsKHRoaXMsIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbW9ycGhpYyA9IG9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIC8vQFRPRE86IGZpbGwgdGhlIHByb3BlcnRpZXMgb2YgJ3RoaXMnIGluPyBkbyBJIG5lZWQgdGhpcyBhZnRlciBkZWxldGluZyB0aGUgY2FsbGVyQ29udGV4dCBhcHByb2FjaFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzdcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGFtb3JwaGljVG9KU09OKGNiPyl7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyLnRvSlNPTlN0cmluZyh0aGlzLCBjYik7XG4gICAgfSBcblxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0eShwcm9wLCB0aGlzLl9fdGVtcGxhdGVfXyk7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlWYWx1ZXMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkudmFsdWVzKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LnZhbHVlcy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS52YWx1ZXM7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZXNjcmlwdGlvbnMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkuZGVzY3JpcHRpb25zKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmRlc2NyaXB0aW9ucy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5kZXNjcmlwdGlvbnM7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29weShjcmVhdG9yKSB7XG4gICAgICAgIHZhciBvYmogPSB0aGlzO1xuICAgICAgICByZXR1cm4gT2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ob2JqLCBvYmouX190ZW1wbGF0ZV9fLCBudWxsLCBudWxsLCB1bmRlZmluZWQsIG51bGwsIG51bGwsIGNyZWF0b3IpO1xuICAgIH1cblxuICAgIGluamVjdChpbmplY3Rvcikge1xuICAgICAgICBPYmplY3RUZW1wbGF0ZS5pbmplY3QodGhpcywgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIGNvcHlQcm9wZXJ0aWVzKG9iaikge1xuICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgdGhpc1twcm9wXSA9IG9ialtwcm9wXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfX3Byb3BfXyhwcm9wKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApO1xuICAgIH1cbiAgICBfX3ZhbHVlc19fKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eVZhbHVlcyhwcm9wKTtcbiAgICB9XG4gICAgX19kZXNjcmlwdGlvbnNfXyhwcm9wKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eURlc2NyaXB0aW9ucyhwcm9wKTtcbiAgICB9XG4gICAgdG9KU09OU3RyaW5nKGNiPykge1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY1RvSlNPTihjYilcbiAgICB9XG59Il19
//# sourceMappingURL=Supertype.js.map

@@ -103,2 +103,2 @@ import nconf from 'nconf';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N1cGVydHlwZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFJMUIsU0FBUyxzQkFBc0I7SUFDM0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUV4QjtRQUNJLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBQyxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSTtRQUNsQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQUEsQ0FBQztDQUNMO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQWU7SUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNw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R0FBRyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztLQUMvQztJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsT0FBTyxJQUFJLFFBQVEsWUFBWSxDQUFDLENBQUM7S0FDbkU7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5jb25mIGZyb20gJ25jb25mJztcbmltcG9ydCB7IENvbmZpZywgQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXAgfSBmcm9tICdAaGF2ZW50ZWNoL2Ftb3JwaGljLWNvbnRyYWN0cyc7XG5cblxuZnVuY3Rpb24gY3JlYXRlTmV3TkNvbmZQcm92aWRlcigpOiBuY29uZi5Qcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBuY29uZi5Qcm92aWRlcigpLmFyZ3YoKS5lbnYoe3NlcGFyYXRvcjogJ19fJ30pO1xufVxuXG4vKipcbiAqIERlcHJlY2F0aW5nIGxvYWRGaWxlIGZvciBqdXN0ICdmaWxlJ1xuICovXG5leHBvcnQgY2xhc3MgU3VwZXJ0eXBlQ29uZmlnIGltcGxlbWVudHMgQ29uZmlnIHtcbiAgICBpbnRlcm5hbENvbmZpZ1N0b3JlOiBuY29uZi5Qcm92aWRlcjtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ1N0b3JlID0gY3JlYXRlTmV3TkNvbmZQcm92aWRlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSB2YWx1ZSB3aXRoIGEga2V5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgZ2V0KGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbENvbmZpZ1N0b3JlLmdldChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSB2YWx1ZSB3aXRoIGEga2V5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxDb25maWdTdG9yZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBpbnRvIHN0b3JlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZUtleVxuICAgICAqIEBwYXJhbSBmaWxlXG4gICAgICovXG4gICAgbG9hZEZpbGUoZmlsZUtleSwgZmlsZSkge1xuICAgICAgICB0aGlzLmludGVybmFsQ29uZmlnU3RvcmUuZmlsZShmaWxlS2V5LCBmaWxlKTtcbiAgICB9O1xufVxuXG4vKipcbiAqIFNhbWUgdHlwZSBhcyB0aGUgQW1vcnBoaWNDb25maWdCdWlsZGVyIGJ1aWxkIGZ1bmN0aW9uIGFzIHNwZWNpZmllZCBpbiBhbW9ycGhpYy1jb250cmFjdHNcbiAqIEBwYXJhbSByb290RGlyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBCdWlsZFN1cGVydHlwZUNvbmZpZyhyb290RGlyOiBzdHJpbmcpOiBBcHBsaWNhdGlvbk5hbWVUb0NvbmZpZ01hcCB7XG4gICAgY29uc3Qgcm9vdENvbmZpZyA9IG5ldyBTdXBlcnR5cGVDb25maWcoKTtcbiAgICBpZiAoIXJvb3REaXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWYWxpZCByb290IHBhdGggZXhwZWN0ZWQuIHJvb3REaXJbJHtyb290RGlyfV1gKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ1N0b3JlOiBBcHBsaWNhdGlvbk5hbWVUb0NvbmZpZ01hcCA9IHt9O1xuICAgICAgICBsZXQgZW52TmFtZSA9IHJvb3RDb25maWcuaW50ZXJuYWxDb25maWdTdG9yZS5nZXQoJ0FQUF9FTlYnKTtcblxuICAgICAgICBpZiAoZW52TmFtZSkge1xuICAgICAgICAgICAgZW52TmFtZSA9IGVudk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbnZOYW1lKSB7XG4gICAgICAgICAgICBsb2FkQ29uZmlnRmlsZShyb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUsICdyb290X2VudicsIHJvb3REaXIsIGBjb25maWdfJHtlbnZOYW1lfS5qc29uYCk7XG4gICAgICAgIH1cbiAgICAgICAgbG9hZENvbmZpZ0ZpbGUocm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLCAncm9vdF9zZWN1cmUnLCByb290RGlyLCBgY29uZmlnX3NlY3VyZS5qc29uYCk7XG4gICAgICAgIGxvYWRDb25maWdGaWxlKHJvb3RDb25maWcuaW50ZXJuYWxDb25maWdTdG9yZSwgJ3Jvb3QnLCByb290RGlyLCBgY29uZmlnLmpzb25gKTtcblxuXG4gICAgICAgIGNvbmZpZ1N0b3JlWydyb290J10gPSByb290Q29uZmlnO1xuXG4gICAgICAgIGNvbnN0IGFwcExpc3QgPSByb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUuZ2V0KCdhcHBsaWNhdGlvbnMnKSB8fCB7fTtcblxuICAgICAgICBmb3IgKGxldCBhcHBLZXkgaW4gYXBwTGlzdCkge1xuICAgICAgICAgICAgY29uZmlnU3RvcmVbYXBwS2V5XSA9IGJ1aWxkQXBwU3BlY2lmaWNDb25maWdTdG9yZShhcHBMaXN0W2FwcEtleV0sIHJvb3REaXIsIGVudk5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbmZpZ1N0b3JlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRBcHBTcGVjaWZpY0NvbmZpZ1N0b3JlKGFwcDogc3RyaW5nLCByb290RGlyOiBzdHJpbmcsIGVudk5hbWU/OiBzdHJpbmcpOiBTdXBlcnR5cGVDb25maWcge1xuICAgIGNvbnN0IGFwcFBhdGggPSBgJHtyb290RGlyfS8ke2FwcH1gOyAvLyBMb2NhdGlvbiBvZiB0aGUgQXBwIHJlbGF0aXZlIHRvIHJvb3RcbiAgICBjb25zdCBhcHBDb21tb25QYXRoID0gYCR7cm9vdERpcn0vYXBwcy9jb21tb25gOyAvLyBMb2NhdGlvbiBvZiB0aGUgY29tbW9uIGZvbGRlciByZWxhdGl2ZSB0byByb290XG5cbiAgICBjb25zdCBjb25maWcgPSBuZXcgU3VwZXJ0eXBlQ29uZmlnKCk7XG4gICAgY29uc3QgYXBwQ2ZnQXBpID0gY29uZmlnLmludGVybmFsQ29uZmlnU3RvcmU7XG5cbiAgICAvLyBMb2FkIHRoZSBuZXcgYXBwIGVudmlyb25tZW50IHZhbHVlcyBpbnRvIHRoZSBjb25maWdcbiAgICBpZihlbnZOYW1lKSB7XG4gICAgICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ2FwcF9lbnYnLCBhcHBQYXRoLCBgY29uZmlnXyR7ZW52TmFtZX0uanNvbmApO1xuICAgIH1cbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdhcHBfc2VjdXJlJywgYXBwUGF0aCwgYGNvbmZpZ19zZWN1cmUuanNvbmApO1xuICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ2FwcCcsIGFwcFBhdGgsIGBjb25maWcuanNvbmApO1xuXG5cbiAgICAvLyBMb2FkIHRoZSBjb21tb24gZm9sZGVyIGNvbmZpZ3MgdG8gdGhpcyBjb25maWcgcHJvdmlkZXJcbiAgICBpZihlbnZOYW1lKSB7XG4gICAgICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ2NvbW1vbl9lbnYnLCBhcHBDb21tb25QYXRoLCBgY29uZmlnXyR7ZW52TmFtZX0uanNvbmApO1xuICAgIH1cbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdjb21tb25fc2VjdXJlJywgYXBwQ29tbW9uUGF0aCwgYGNvbmZpZ19zZWN1cmUuanNvbmApO1xuICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ2NvbW1vbicsIGFwcENvbW1vblBhdGgsIGBjb25maWcuanNvbmApO1xuXG4gICAgLy8gTG9hZCB0aGUgcm9vdCB2YWx1ZXMgaGVyZSB0b29cbiAgICBpZihlbnZOYW1lKSB7XG4gICAgICAgIGxvYWRDb25maWdGaWxlKGFwcENmZ0FwaSwgJ3Jvb3RfZW52Jywgcm9vdERpciwgYGNvbmZpZ18ke2Vudk5hbWV9Lmpzb25gKTtcbiAgICB9XG5cbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdyb290X3NlY3VyZScsIHJvb3REaXIsIGBjb25maWdfc2VjdXJlLmpzb25gKTtcbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdyb290Jywgcm9vdERpciwgYGNvbmZpZy5qc29uYCk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xufVxuXG5cbmZ1bmN0aW9uIGxvYWRDb25maWdGaWxlKGNvbmZpZzogbmNvbmYuUHJvdmlkZXIsIG5hbWU6IHN0cmluZywgYXBwUGF0aDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uZmlnLmZpbGUobmFtZSwgYCR7YXBwUGF0aH0vJHtmaWxlTmFtZX1gKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmRlYnVnKGBFcnJvciBsb2FkaW5nICR7YXBwUGF0aH0vJHtmaWxlTmFtZX0gdG8gY29uZmlnYCk7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=SupertypeConfig.js.map

@@ -281,2 +281,2 @@ const levelToStr = { 60: 'fatal', 50: 'error', 40: 'warn', 30: 'info', 20: 'debug', 10: 'trace' };

SupertypeLogger.moduleName = SupertypeLogger.name;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N1cGVydHlwZUxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDbEcsTUFBTSxVQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBRWxHLE1BQU0sT0FBTyxlQUFlO0lBUXhCLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsNEJBQTRCO0lBRTVCO1FBVlEscUJBQWdCLEdBQUcsbUJBQW1CLENBQUM7UUFXM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUdELEtBQUssQ0FBQyxHQUFHLElBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsSUFBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FB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b25zdCBsZXZlbFRvU3RyID0geyA2MDogJ2ZhdGFsJywgNTA6ICdlcnJvcicsIDQwOiAnd2FybicsIDMwOiAnaW5mbycsIDIwOiAnZGVidWcnLCAxMDogJ3RyYWNlJyB9O1xuY29uc3Qgc3RyVG9MZXZlbCA9IHsgJ2ZhdGFsJzogNjAsICdlcnJvcic6IDUwLCAnd2Fybic6IDQwLCAnaW5mbyc6IDMwLCAnZGVidWcnOiAyMCwgJ3RyYWNlJzogMTAgfTtcblxuZXhwb3J0IGNsYXNzIFN1cGVydHlwZUxvZ2dlciB7XG4gICAgc3RhdGljIG1vZHVsZU5hbWU6IHN0cmluZyA9IFN1cGVydHlwZUxvZ2dlci5uYW1lO1xuICAgIHByaXZhdGUgX2Ftb3JwaGljQ29udGV4dCA9ICdfX2Ftb3JwaGljQ29udGV4dCc7XG4gICAgY29udGV4dDogYW55O1xuICAgIGdyYW51bGFyTGV2ZWxzOiBhbnk7XG4gICAgbGV2ZWw6IGFueTtcbiAgICBwcml2YXRlIF9jbGllbnRMb2dnZXI6IGFueTtcblxuICAgIC8vIGZvciBvdmVycmlkaW5nXG4gICAgLy8gc2VuZFRvTG9nOiBGdW5jdGlvbjtcbiAgICAvLyBmb3JtYXREYXRlVGltZTogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0ge307XG4gICAgICAgIHRoaXMuZ3JhbnVsYXJMZXZlbHMgPSB7fTtcbiAgICAgICAgdGhpcy5sZXZlbCA9ICdpbmZvJztcbiAgICB9XG5cblxuICAgIGZhdGFsKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDYwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBlcnJvciguLi5kYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZyg1MCwgLi4uZGF0YSk7XG4gICAgfVxuXG4gICAgd2FybiguLi5kYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZyg0MCwgLi4uZGF0YSk7XG4gICAgfVxuXG4gICAgaW5mbyguLi5kYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZygzMCwgLi4uZGF0YSk7XG4gICAgfVxuXG4gICAgZGVidWcoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coMjAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIHRyYWNlKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDEwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBnZXQgY2xpZW50TG9nZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xpZW50TG9nZ2VyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFzc2lnbiBhIGN1c3RvbSBzZW5kIHRvIGxvZyBmdW5jdGlvbmFsaXR5LlxuICAgICAqIEBwYXJhbSBsb2dnZXIgLSBsb2dnZXIgbXVzdCBmaXQgdGhlIGZvcm1hdCBvZiBpbmZvL2Vycm9yL2RlYnVnL3dhcm5cbiAgICAgKi9cbiAgICBzZXRMb2dnZXIobG9nZ2VyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbG9nZ2VyLmluZm8gIT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgICAgIHR5cGVvZiBsb2dnZXIuZXJyb3IgIT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgICAgIHR5cGVvZiBsb2dnZXIuZGVidWcgIT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgICAgIHR5cGVvZiBsb2dnZXIud2FybiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2Ugc3BlY2lmeSBhIGxvZ2dlciB3aXRoIHRoZSBpbmZvLCBlcnJvciwgZGVidWcsIGFuZCB3YXJuIGZ1bmN0aW9ucycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbG9nZ2VyLmNoaWxkTG9nZ2VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIgPSBsb2dnZXIuY2hpbGRMb2dnZXIoe2Vycm9yOiB7aXNIdW1hblJlbGF0ZWQ6IGZhbHNlfX0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbG9nZ2VyLmNoaWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIgPSBsb2dnZXIuY2hpbGQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIgPSBsb2dnZXI7XG4gICAgfVxuXG4gICAgLy8gTG9nIGFsbCBhcmd1bWVudHMgYXNzdW1pbmcgdGhlIGZpcnN0IG9uZSBpcyBsZXZlbCBhbmQgdGhlIHNlY29uZCBvbmUgbWlnaHQgYmUgYW4gb2JqZWN0IChzaW1pbGFyIHRvIGJhbnlhbilcbiAgICBwcml2YXRlIGxvZyhsZXZlbDogbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzOiBhbnlbXSA9IGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSA/IGFyZ3Muc2xpY2UoKSA6IGFyZ3M7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwcm9wZXJ0aWVzWzBdID09PSAnb2JqZWN0JykgIHtcbiAgICAgICAgICAgIGxldCBsb2dPYmogPSBwcm9wZXJ0aWVzWzBdO1xuICAgICAgICAgICAgaWYgKCFsb2dPYmouZGF0YSkge1xuICAgICAgICAgICAgICAgIGxvZ09iai5kYXRhID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWxvZ09iai5jb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLmNvbnRleHQgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFsb2dPYmoucmVxdWVzdCkge1xuICAgICAgICAgICAgICAgIGxvZ09iai5yZXF1ZXN0ID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2V0TG9nc0Ftb3JwaGljQ29udGV4dChsb2dPYmouY29udGV4dCwgbG9nT2JqLnJlcXVlc3QpO1xuXG4gICAgICAgICAgICBsb2dPYmpbJ2xldmVsJ10gPSBsZXZlbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZChsZXZlbFRvU3RyW2xvZ09ialsnbGV2ZWwnXV0sIGxvZ09iaikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmRUb0xvZyhsZXZlbFRvU3RyW2xvZ09ialsnbGV2ZWwnXV0sIGxvZ09iaiwgLi4ucHJvcGVydGllcy5zbGljZSgxKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwcm9wZXJ0aWVzWydsZXZlbCddID0gbGV2ZWw7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZChsZXZlbFRvU3RyW3Byb3BlcnRpZXNbJ2xldmVsJ11dLCBwcm9wZXJ0aWVzKSkge1xuICAgICAgICAgICAgdGhpcy5zZW5kVG9Mb2cobGV2ZWxUb1N0cltwcm9wZXJ0aWVzWydsZXZlbCddXSwgcHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vVGhpcyBtZXRob2QgZXh0cmFjdHMgc2Vzc2lvbklkIGZyb20gdGhlIGVhY2ggcmVxdWVzdCdzIGNvbnRleHQgXG4gICAgLy8gYW5kIHBsYWNlcyBpdCBpbiB0aGUgY29udGV4dC5zZXNzaW9uSWQuIEFsbCBvdGhlciBjb250ZXh0IHByb3BlcnRpZXMgYXJlIFxuICAgIC8vIHBsYWNlZCBpbiBjb250ZXh0LmRhdGEgb2JqZWN0LlxuICAgIHByaXZhdGUgc2V0TG9nc0Ftb3JwaGljQ29udGV4dChjb250ZXh0OiBhbnksIHJlcXVlc3Q6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKCFjb250ZXh0LmRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LmRhdGEgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29udGV4dC5kYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlc3Npb25JZCA9IHRoaXMuY29udGV4dC5zZXNzaW9uO1xuICAgICAgICAgICAgICAgIGlmICghY29udGV4dC5zZXNzaW9uSWQgJiYgc2Vzc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc2Vzc2lvbklkID0gc2Vzc2lvbklkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdID0geyAuLi50aGlzLmNvbnRleHQgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBhbW9ycGhpY0NvbnRleHRPYmplY3RFeGlzdHMgPSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XSAmJlxuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XSkgJiZcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0pLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgICAgICBpZiAoYW1vcnBoaWNDb250ZXh0T2JqZWN0RXhpc3RzICYmIGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdLnNlc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdLnNlc3Npb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhbW9ycGhpY0NvbnRleHRPYmplY3RFeGlzdHMgJiYgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uaXBhZGRyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY2xpZW50SXBBZGRyZXNzID0gY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uaXBhZGRyZXNzO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uaXBhZGRyZXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFtb3JwaGljQ29udGV4dCgpOiBhbnkge1xuICAgICAgICByZXR1cm4geyBfX2Ftb3JwaGljQ29udGV4dDogeyAuLi50aGlzLmNvbnRleHQgfSB9O1xuICAgIH1cblxuICAgIHN0YXJ0Q29udGV4dChjb250ZXh0KSB7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSB0aGUgcHJvcGVydGllcyBpbiB0aGUgY29udGV4dCBhbmQgcmV0dXJuIGEgbmV3IG9iamVjdCB0aGF0IGhhcyB0aGUgcHJvcGVydGllcyBvbmx5IHNvIHRoZXkgY2FuIGJlIGNsZWFyZWRcbiAgICBzZXRDb250ZXh0UHJvcHMoY29udGV4dCkge1xuICAgICAgICBjb25zdCByZXZlcnNlID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldmVyc2VbcHJvcF0gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0W3Byb3BdID0gY29udGV4dFtwcm9wXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXZlcnNlO1xuICAgIH1cbiAgICAvLyBQYXJzZSBsb2cgbGV2ZWxzIHN1Y2ggYXMgd2Fybi5hY3Rpdml0eVxuICAgIHNldExldmVsKGxldmVsKSB7XG4gICAgICAgIHZhciBsZXZlbHMgPSBsZXZlbC5zcGxpdCgnOycpO1xuXG4gICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCBsZXZlbHMubGVuZ3RoOyArK2l4KSB7XG4gICAgICAgICAgICB2YXIgbGV2ZWxhID0gbGV2ZWxzW2l4XTtcblxuICAgICAgICAgICAgaWYgKGxldmVsYS5tYXRjaCgvOi8pKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxldmVsc1tpeF0ubWF0Y2goLyguKik6KC4qKS8pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JhbnVsYXJMZXZlbHNbUmVnRXhwLiQxXSA9IHRoaXMuZ3JhbnVsYXJMZXZlbHNbUmVnRXhwLiQxXSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdID0gUmVnRXhwLiQyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IGxldmVsc1tpeF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCA9IGxldmVsYTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBhbnkgcHJvcGVydGllcyByZWNvcmRlZCBieSBzZXRDb250ZXh0XG4gICAgY2xlYXJDb250ZXh0UHJvcHMoY29udGV4dFRvQ2xlYXIpIHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIGNvbnRleHRUb0NsZWFyKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5jb250ZXh0W3Byb3BdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IGxvZ2dlciBhbmQgY29weSBvdmVyIGl0J3MgY29udGV4dFxuICAgIGNyZWF0ZUNoaWxkTG9nZ2VyKGNvbnRleHQsIHJvb3RWYWx1ZXM/LCBkYXRhVmFsdWVzPyk6IFN1cGVydHlwZUxvZ2dlciB7XG4gICAgICAgIGxldCBjaGlsZCA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykpLCB0aGlzKTtcbiAgICAgICAgY2hpbGQuY29udGV4dCA9IGNvbnRleHQgfHwge307XG5cbiAgICAgICAgZm9yIChsZXQgcHJvcGVyIGluIHRoaXMuY29udGV4dCkge1xuICAgICAgICAgICAgY2hpbGQuY29udGV4dFtwcm9wZXJdID0gdGhpcy5jb250ZXh0W3Byb3Blcl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2NsaWVudExvZ2dlcikge1xuICAgICAgICAgICAgbGV0IGNoaWxkTG9nZ2VyO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NsaWVudExvZ2dlci5jaGlsZExvZ2dlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkTG9nZ2VyID0gdGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkTG9nZ2VyKHJvb3RWYWx1ZXMsIGRhdGFWYWx1ZXMpO1xuICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGRMb2dnZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jbGllbnRMb2dnZXIuY2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjaGlsZExvZ2dlciA9IHRoaXMuX2NsaWVudExvZ2dlci5jaGlsZCh7Li4ucm9vdFZhbHVlcywgZGF0YToge2RhdGFWYWx1ZXN9fSk7XG4gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZExvZ2dlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaGlsZCBhcyBTdXBlcnR5cGVMb2dnZXI7IC8vIGJhZCBwcmFjdGljZSBidXQgc2hvdWxkIGZpeFxuICAgIH1cblxuICAgIGZvcm1hdERhdGVUaW1lKGRhdGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZigyLCAoZGF0ZS5nZXRNb250aCgpICsgMSksICcvJykgKyBmKDIsIGRhdGUuZ2V0RGF0ZSgpLCAnLycpICsgZig0LCBkYXRlLmdldEZ1bGxZZWFyKCksICcgJykgK1xuICAgICAgICAgICAgZigyLCBkYXRlLmdldEhvdXJzKCksICc6JykgKyBmKDIsIGRhdGUuZ2V0TWludXRlcygpLCAnOicpICsgZigyLCBkYXRlLmdldFNlY29uZHMoKSwgJzonKSArXG4gICAgICAgICAgICBmKDMsIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkpICsgJyBHTVQnICsgKDAgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCk7XG5cbiAgICAgICAgZnVuY3Rpb24gZih6LCBkLCBzPykge1xuICAgICAgICAgICAgd2hpbGUgKFN0cmluZyhkKS5sZW5ndGggPCB6KSB7XG4gICAgICAgICAgICAgICAgZCA9ICcwJyArIGQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkICsgKHMgfHwgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVFbXB0eUxvZ1Byb3BlcnRpZXMobG9nT2JqZWN0OiBhbnkpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IFsnY29udGV4dCcsICdkYXRhJ107XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAobG9nT2JqZWN0W2tleV0gJiYgT2JqZWN0LmtleXMobG9nT2JqZWN0W2tleV0pLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgbG9nT2JqZWN0W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSByZXBsYWNlZCBieSB0aGUgY29uc3VtZXIgb2YgdGhpcyBjbGFzcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsb2dMZXZlbCAtIGxvZyBsZXZlbFxuICAgICAqIEBwYXJhbSBsb2dPYmplY3QgLSBmb3JtYXR0ZWQgbG9nIG9iamVjdCwgcGFzc2VkIGluIGZyb20gY29uc3VtZXJcbiAgICAgKiBAcGFyYW0gcmF3TG9nRGF0YSAtIHVuZm9ybWF0dGVkIGFuZCB1bnByb2Nlc3NlZCB2ZXJzaW9uIG9mIFwibG9nT2JqZWN0XCIgcGFyYW1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2VuZFRvTG9nKGxvZ0xldmVsLCBsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpIHtcbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gdGhpcy5zZW5kVG9Mb2cubmFtZTtcbiAgICAgICAgdGhpcy5kZWxldGVFbXB0eUxvZ1Byb3BlcnRpZXMobG9nT2JqZWN0KTtcbiAgICAgICAgaWYgKHRoaXMuX2NsaWVudExvZ2dlcikge1xuICAgICAgICAgICAgbGV0IGxldmVsRm9yTG9nID0gdHlwZW9mIGxvZ0xldmVsID09PSAnc3RyaW5nJyA/IHN0clRvTGV2ZWxbbG9nTGV2ZWxdIDogbG9nTGV2ZWw7XG4gICAgICAgICAgICBzd2l0Y2ggKGxldmVsRm9yTG9nKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIuZGVidWcobG9nT2JqZWN0LCAuLi5yYXdMb2dEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5pbmZvKGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIud2Fybihsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICAgICAgICBjYXNlIDUwOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIuZXJyb3IobG9nT2JqZWN0LCAuLi5yYXdMb2dEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbGllbnRMb2dnZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlOiBTdXBlcnR5cGVMb2dnZXIubW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnaW52YWxpZCBsZXZlbCB1c2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dMZXZlbDogbG9nTGV2ZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nT2JqZWN0OiBsb2dPYmplY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnByZXR0eVByaW50KGxvZ0xldmVsLCBsb2dPYmplY3QpKTsgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgIH1cblxuICAgIHByZXR0eVByaW50KGxldmVsLCBqc29uKSB7XG4gICAgICAgIGxldCBzcGxpdCA9IHRoaXMuc3BsaXQoanNvbiwge3RpbWU6IDEsIG1zZzogMSwgbGV2ZWw6IDEsIG5hbWU6IDF9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXREYXRlVGltZShqc29uLnRpbWUgPyBuZXcgRGF0ZShqc29uLnRpbWUpIDogbmV3IERhdGUoKSkgKyAnOiAnICtcbiAgICAgICAgICAgIGxldmVsLnRvVXBwZXJDYXNlKCkgKyAnOiAnICtcbiAgICAgICAgICAgIGFkZENvbG9uSWZUb2tlbihzcGxpdFsxXS5uYW1lLCAnOiAnKSArXG4gICAgICAgICAgICBhZGRDb2xvbklmVG9rZW4oc3BsaXRbMV0ubXNnLCAnOiAnKSArXG4gICAgICAgICAgICB4eShzcGxpdFswXSk7XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkQ29sb25JZlRva2VuICh0b2tlbiwgY29sb25BbmRTcGFjZSkge1xuICAgICAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuICsgY29sb25BbmRTcGFjZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24geHkoaikge1xuICAgICAgICAgICAgdmFyIHN0ciA9ICcnO1xuICAgICAgICAgICAgdmFyIHNlcCA9ICcnO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIGopIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gc2VwICsgcHJvcCArICc9JyArIEpTT04uc3RyaW5naWZ5KGpbcHJvcF0pO1xuICAgICAgICAgICAgICAgIHNlcCA9ICcgJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHN0ci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcoJyArIHN0ciArICcpJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzcGxpdChqc29uLCBwcm9wcyk6IGFueVtdIHtcbiAgICAgICAgY29uc3QgYSA9IHt9O1xuICAgICAgICBjb25zdCBiID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIGpzb24pIHtcbiAgICAgICAgICAgIChwcm9wc1twcm9wXSA/IGIgOiBhKVtwcm9wXSA9IGpzb25bcHJvcF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW2EsIGJdO1xuICAgIH1cblxuICAgIC8vIExvZ2dpbmcgaXMgZW5hYmxlZCBpZiBlaXRoZXIgdGhlIGxldmVsIHRocmVzaG9sZCBpcyBtZXQgb3IgdGhlIGdyYW51bGFyIGxldmVsIG1hdGNoZXNcbiAgICBwcml2YXRlIGlzRW5hYmxlZChsZXZlbCwgb2JqKSB7XG4gICAgICAgIGxldmVsID0gc3RyVG9MZXZlbFtsZXZlbF07XG5cbiAgICAgICAgaWYgKGxldmVsID49IHN0clRvTGV2ZWxbdGhpcy5sZXZlbF0pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JhbnVsYXJMZXZlbHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGxldmVsciBpbiB0aGlzLmdyYW51bGFyTGV2ZWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9ialtsZXZlbHJdICYmIG9ialtsZXZlbHJdID09IHRoaXMuZ3JhbnVsYXJMZXZlbHNbbGV2ZWxyXSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il19
//# sourceMappingURL=SupertypeLogger.js.map
{
"name": "@haventech/supertype",
"description": "A type system for classical inheritence, mix-ins and composition.",
"version": "9.0.0",
"version": "9.0.1",
"main": "dist/cjs/index.js",

@@ -6,0 +6,0 @@ "module": "dist/esm/index.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc