@discordeno/bot 21.0.1-next.936a09e → 21.0.1-next.9f594da

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,9 +14,11 @@ async function handleThreadMemberUpdate(bot, data, _shardId) {
14
14
  bot.events.threadMemberUpdate({
15
15
  id: bot.transformers.snowflake(payload.id),
16
16
  guildId: bot.transformers.snowflake(payload.guild_id),
17
- joinedAt: Date.parse(payload.joined_at),
17
+ // TODO: remove this in the next major version
18
+ joinedAt: 'joined_at' in payload && typeof payload.joined_at === 'string' ? Date.parse(payload.joined_at) : 0,
19
+ joinedTimestamp: Date.parse(payload.join_timestamp),
18
20
  flags: payload.flags
19
21
  });
20
22
  }
21
23
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oYW5kbGVycy9jaGFubmVscy9USFJFQURfTUVNQkVSX1VQREFURS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi8uLi9pbmRleC5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZShib3Q6IEJvdCwgZGF0YTogRGlzY29yZEdhdGV3YXlQYXlsb2FkLCBfc2hhcmRJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYm90LmV2ZW50cy50aHJlYWRNZW1iZXJVcGRhdGUpIHJldHVyblxuXG4gIGNvbnN0IHBheWxvYWQgPSBkYXRhLmQgYXMgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZVxuXG4gIGJvdC5ldmVudHMudGhyZWFkTWVtYmVyVXBkYXRlKHtcbiAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCksXG4gICAgZ3VpbGRJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCksXG4gICAgam9pbmVkQXQ6IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpLFxuICAgIGZsYWdzOiBwYXlsb2FkLmZsYWdzLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZSIsImJvdCIsImRhdGEiLCJfc2hhcmRJZCIsImV2ZW50cyIsInRocmVhZE1lbWJlclVwZGF0ZSIsInBheWxvYWQiLCJkIiwiaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJqb2luZWRBdCIsIkRhdGUiLCJwYXJzZSIsImpvaW5lZF9hdCIsImZsYWdzIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdzQkE7OztlQUFBQTs7O0FBQWYsZUFBZUEseUJBQXlCQyxHQUFRLEVBQUVDLElBQTJCLEVBQUVDLFFBQWdCO0lBQ3BHLElBQUksQ0FBQ0YsSUFBSUcsTUFBTSxDQUFDQyxrQkFBa0IsRUFBRTtJQUVwQyxNQUFNQyxVQUFVSixLQUFLSyxDQUFDO0lBRXRCTixJQUFJRyxNQUFNLENBQUNDLGtCQUFrQixDQUFDO1FBQzVCRyxJQUFJUCxJQUFJUSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUUUsRUFBRTtRQUN6Q0csU0FBU1YsSUFBSVEsWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFNLFFBQVE7UUFDcERDLFVBQVVDLEtBQUtDLEtBQUssQ0FBQ1QsUUFBUVUsU0FBUztRQUN0Q0MsT0FBT1gsUUFBUVcsS0FBSztJQUN0QjtBQUNGIn0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oYW5kbGVycy9jaGFubmVscy9USFJFQURfTUVNQkVSX1VQREFURS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi8uLi9pbmRleC5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZShib3Q6IEJvdCwgZGF0YTogRGlzY29yZEdhdGV3YXlQYXlsb2FkLCBfc2hhcmRJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYm90LmV2ZW50cy50aHJlYWRNZW1iZXJVcGRhdGUpIHJldHVyblxuXG4gIGNvbnN0IHBheWxvYWQgPSBkYXRhLmQgYXMgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZVxuXG4gIGJvdC5ldmVudHMudGhyZWFkTWVtYmVyVXBkYXRlKHtcbiAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCksXG4gICAgZ3VpbGRJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCksXG4gICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvblxuICAgIGpvaW5lZEF0OiAnam9pbmVkX2F0JyBpbiBwYXlsb2FkICYmIHR5cGVvZiBwYXlsb2FkLmpvaW5lZF9hdCA9PT0gJ3N0cmluZycgPyBEYXRlLnBhcnNlKHBheWxvYWQuam9pbmVkX2F0KSA6IDAsXG4gICAgam9pbmVkVGltZXN0YW1wOiBEYXRlLnBhcnNlKHBheWxvYWQuam9pbl90aW1lc3RhbXApLFxuICAgIGZsYWdzOiBwYXlsb2FkLmZsYWdzLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZSIsImJvdCIsImRhdGEiLCJfc2hhcmRJZCIsImV2ZW50cyIsInRocmVhZE1lbWJlclVwZGF0ZSIsInBheWxvYWQiLCJkIiwiaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsImpvaW5lZFRpbWVzdGFtcCIsImpvaW5fdGltZXN0YW1wIiwiZmxhZ3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR3NCQTs7O2VBQUFBOzs7QUFBZixlQUFlQSx5QkFBeUJDLEdBQVEsRUFBRUMsSUFBMkIsRUFBRUMsUUFBZ0I7SUFDcEcsSUFBSSxDQUFDRixJQUFJRyxNQUFNLENBQUNDLGtCQUFrQixFQUFFO0lBRXBDLE1BQU1DLFVBQVVKLEtBQUtLLENBQUM7SUFFdEJOLElBQUlHLE1BQU0sQ0FBQ0Msa0JBQWtCLENBQUM7UUFDNUJHLElBQUlQLElBQUlRLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRRSxFQUFFO1FBQ3pDRyxTQUFTVixJQUFJUSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUU0sUUFBUTtRQUNwRCw4Q0FBOEM7UUFDOUNDLFVBQVUsZUFBZVAsV0FBVyxPQUFPQSxRQUFRUSxTQUFTLEtBQUssV0FBV0MsS0FBS0MsS0FBSyxDQUFDVixRQUFRUSxTQUFTLElBQUk7UUFDNUdHLGlCQUFpQkYsS0FBS0MsS0FBSyxDQUFDVixRQUFRWSxjQUFjO1FBQ2xEQyxPQUFPYixRQUFRYSxLQUFLO0lBQ3RCO0FBQ0YifQ==
@@ -190,7 +190,8 @@ function transformMessage(bot, payload) {
190
190
  }
191
191
  message.interaction = interaction;
192
192
  }
193
- if (props.member && guildId && userId && payload.message.member) message.member = bot.transformers.member(bot, payload.message.member, guildId, userId);
193
+ if (props.member && guildId && userId && payload.message.member) // @ts-expect-error TODO: partial
194
+ message.member = bot.transformers.member(bot, payload.message.member, guildId, userId);
194
195
  if (payload.message.mention_everyone) message.mentionEveryone = true;
195
196
  if (props.mentionedChannelIds && payload.message.mention_channels?.length) {
196
197
  message.mentionedChannelIds = [
@@ -310,4 +311,4 @@ function transformMessageCall(bot, payload) {
310
311
  return bot.transformers.customizers.messageCall(bot, payload, call);
311
312
  }
312
313
 
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZSIsInRyYW5zZm9ybU1lc3NhZ2VDYWxsIiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlUGluIiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwiRU1QVFlfU1RSSU5HIiwidW5kZWZpbmVkIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiTWVzc2FnZUZsYWdzIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsIlRvZ2dsZUJpdGZpZWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJjb21wb25lbnRzIiwiY29tcCIsImNvbXBvbmVudCIsImNvbnRlbnQiLCJlZGl0ZWRUaW1lc3RhbXAiLCJlZGl0ZWRfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiZW1iZWRzIiwiZW1iZWQiLCJpbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJtZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uIiwibWVzc2FnZUludGVyYWN0aW9uUHJvcHMiLCJtZXNzYWdlSW50ZXJhY3Rpb24iLCJtZW1iZXIiLCJuYW1lIiwidHlwZSIsIm1lbnRpb25fZXZlcnlvbmUiLCJtZW50aW9uZWRDaGFubmVsSWRzIiwibWVudGlvbl9jaGFubmVscyIsIm0iLCJtYXRjaCIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInRleHQiLCJzdWJzdHJpbmciLCJtZW50aW9uZWRSb2xlSWRzIiwibWVudGlvbl9yb2xlcyIsIm1lc3NhZ2VSZWZlcmVuY2UiLCJtZXNzYWdlX3JlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1lc3NhZ2VSZWZlcmVuY2VQcm9wcyIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2VfaWQiLCJyZWZlcmVuY2VkTWVzc2FnZSIsInJlZmVyZW5jZWRfbWVzc2FnZSIsIm1lc3NhZ2VTbmFwc2hvdHMiLCJtZXNzYWdlX3NuYXBzaG90cyIsInNuYXAiLCJtZXNzYWdlU25hcHNob3QiLCJub25jZSIsInJlYWN0aW9ucyIsInJlYWN0aW9uIiwibWUiLCJtZUJ1cnN0IiwibWVfYnVyc3QiLCJjb3VudCIsImNvdW50RGV0YWlscyIsImJ1cnN0IiwiY291bnRfZGV0YWlscyIsIm5vcm1hbCIsImVtb2ppIiwiYnVyc3RDb2xvcnMiLCJidXJzdF9jb2xvcnMiLCJzdGlja2VySXRlbXMiLCJzdGlja2VyX2l0ZW1zIiwiaXRlbSIsImZvcm1hdFR5cGUiLCJmb3JtYXRfdHlwZSIsInRocmVhZCIsImNoYW5uZWwiLCJ3ZWJob29rSWQiLCJ3ZWJob29rX2lkIiwicG9sbCIsImNhbGwiLCJtZXNzYWdlQ2FsbCIsImN1c3RvbWl6ZXJzIiwibWVzc2FnZVBpbiIsInBpbm5lZEF0IiwicGlubmVkX2F0IiwibWV0YWRhdGEiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkIiwib3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZCIsInRhcmdldFVzZXIiLCJ0YXJnZXRfdXNlciIsInRhcmdldE1lc3NhZ2VJZCIsInRhcmdldF9tZXNzYWdlX2lkIiwiaW50ZXJhY3RlZE1lc3NhZ2VJZCIsImludGVyYWN0ZWRfbWVzc2FnZV9pZCIsInRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUF3QmFBO2VBQUFBOztRQW9IR0M7ZUFBQUE7O1FBOExBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQXZCQUM7ZUFBQUE7O1FBVUFDO2VBQUFBOzs7dUJBMVFUOzJCQUMrQjt1QkFTL0I7Z0NBQ3dCO0FBRS9CLE1BQU1DLGVBQWU7QUFFZCxNQUFNTixjQUF3RTtJQUNuRiwyRUFBMkU7SUFDM0UsR0FBSU8sU0FBUztJQUViLElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU0MsbUJBQVksQ0FBQ0MsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUosYUFBWUssTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENBQUNLLEdBQUcsQ0FBQ0gsbUJBQVksQ0FBQ0MsV0FBVzthQUM3QyxJ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
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbFxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZSIsInRyYW5zZm9ybU1lc3NhZ2VDYWxsIiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlUGluIiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwiRU1QVFlfU1RSSU5HIiwidW5kZWZpbmVkIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiTWVzc2FnZUZsYWdzIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsIlRvZ2dsZUJpdGZpZWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJjb21wb25lbnRzIiwiY29tcCIsImNvbXBvbmVudCIsImNvbnRlbnQiLCJlZGl0ZWRUaW1lc3RhbXAiLCJlZGl0ZWRfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiZW1iZWRzIiwiZW1iZWQiLCJpbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJtZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uIiwibWVzc2FnZUludGVyYWN0aW9uUHJvcHMiLCJtZXNzYWdlSW50ZXJhY3Rpb24iLCJtZW1iZXIiLCJuYW1lIiwidHlwZSIsIm1lbnRpb25fZXZlcnlvbmUiLCJtZW50aW9uZWRDaGFubmVsSWRzIiwibWVudGlvbl9jaGFubmVscyIsIm0iLCJtYXRjaCIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInRleHQiLCJzdWJzdHJpbmciLCJtZW50aW9uZWRSb2xlSWRzIiwibWVudGlvbl9yb2xlcyIsIm1lc3NhZ2VSZWZlcmVuY2UiLCJtZXNzYWdlX3JlZmVyZW5jZSIsInJlZmVyZW5jZSIsIm1lc3NhZ2VSZWZlcmVuY2VQcm9wcyIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2VfaWQiLCJyZWZlcmVuY2VkTWVzc2FnZSIsInJlZmVyZW5jZWRfbWVzc2FnZSIsIm1lc3NhZ2VTbmFwc2hvdHMiLCJtZXNzYWdlX3NuYXBzaG90cyIsInNuYXAiLCJtZXNzYWdlU25hcHNob3QiLCJub25jZSIsInJlYWN0aW9ucyIsInJlYWN0aW9uIiwibWUiLCJtZUJ1cnN0IiwibWVfYnVyc3QiLCJjb3VudCIsImNvdW50RGV0YWlscyIsImJ1cnN0IiwiY291bnRfZGV0YWlscyIsIm5vcm1hbCIsImVtb2ppIiwiYnVyc3RDb2xvcnMiLCJidXJzdF9jb2xvcnMiLCJzdGlja2VySXRlbXMiLCJzdGlja2VyX2l0ZW1zIiwiaXRlbSIsImZvcm1hdFR5cGUiLCJmb3JtYXRfdHlwZSIsInRocmVhZCIsImNoYW5uZWwiLCJ3ZWJob29rSWQiLCJ3ZWJob29rX2lkIiwicG9sbCIsImNhbGwiLCJtZXNzYWdlQ2FsbCIsImN1c3RvbWl6ZXJzIiwibWVzc2FnZVBpbiIsInBpbm5lZEF0IiwicGlubmVkX2F0IiwibWV0YWRhdGEiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkIiwib3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZCIsInRhcmdldFVzZXIiLCJ0YXJnZXRfdXNlciIsInRhcmdldE1lc3NhZ2VJZCIsInRhcmdldF9tZXNzYWdlX2lkIiwiaW50ZXJhY3RlZE1lc3NhZ2VJZCIsImludGVyYWN0ZWRfbWVzc2FnZV9pZCIsInRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUF3QmFBO2VBQUFBOztRQW9IR0M7ZUFBQUE7O1FBK0xBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQXZCQUM7ZUFBQUE7O1FBVUFDO2VBQUFBOzs7dUJBM1FUOzJCQUMrQjt1QkFTL0I7Z0NBQ3dCO0FBRS9CLE1BQU1DLGVBQWU7QUFFZCxNQUFNTixjQUF3RTtJQUNuRiwyRUFBMkU7SUFDM0UsR0FBSU8sU0FBUztJQUViLElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU0MsbUJBQVksQ0FBQ0MsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUosYUFBWUssTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENB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
@@ -1,3 +1,3 @@
1
1
  export { };
2
2
 
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIERpc2NvcmRSZWFkeSwgRGlzY29yZFZvaWNlQ2hhbm5lbEVmZmVjdEFuaW1hdGlvblR5cGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBBdWRpdExvZ0VudHJ5LFxuICBBdXRvTW9kZXJhdGlvbkFjdGlvbkV4ZWN1dGlvbixcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBJbnRlZ3JhdGlvbixcbiAgSW50ZXJhY3Rpb24sXG4gIEludml0ZSxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxuICBQcmVzZW5jZVVwZGF0ZSxcbiAgUm9sZSxcbiAgU2NoZWR1bGVkRXZlbnQsXG4gIFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RpY2tlcixcbiAgU3Vic2NyaXB0aW9uLFxuICBUaHJlYWRNZW1iZXIsXG4gIFVzZXIsXG4gIFZvaWNlU3RhdGUsXG59IGZyb20gJy4vdHJhbnNmb3JtZXJzL3R5cGVzLmpzJ1xuXG5leHBvcnQgdHlwZSBFdmVudEhhbmRsZXJzPFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiA9IHtcbiAgZGVidWc6ICh0ZXh0OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duXG4gIGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVXBkYXRlOiAoY29tbWFuZDogR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucykgPT4gdW5rbm93blxuICBndWlsZEF1ZGl0TG9nRW50cnlDcmVhdGU6IChsb2c6IEF1ZGl0TG9nRW50cnksIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBhdXRvbW9kUnVsZUNyZWF0ZTogKHJ1bGU6IEF1dG9Nb2RlcmF0aW9uUnVsZSkgPT4gdW5rbm93blxuICBhdXRvbW9kUnVsZVVwZGF0ZTogKHJ1bGU6IEF1dG9Nb2RlcmF0aW9uUnVsZSkgPT4gdW5rbm93blxuICBhdXRvbW9kUnVsZURlbGV0ZTogKHJ1bGU6IEF1dG9Nb2RlcmF0aW9uUnVsZSkgPT4gdW5rbm93blxuICBhdXRvbW9kQWN0aW9uRXhlY3V0aW9uOiAocGF5bG9hZDogQXV0b01vZGVyYXRpb25BY3Rpb25FeGVjdXRpb24pID0+IHVua25vd25cbiAgdGhyZWFkQ3JlYXRlOiAodGhyZWFkOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgdGhyZWFkRGVsZXRlOiAodGhyZWFkOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgdGhyZWFkTGlzdFN5bmM6IChwYXlsb2FkOiB7XG4gICAgZ3VpbGRJZDogYmlnaW50XG4gICAgY2hhbm5lbElkcz86IGJpZ2ludFtdXG4gICAgdGhyZWFkczogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W11cbiAgICBtZW1iZXJzOiBUaHJlYWRNZW1iZXJbXVxuICB9KSA9PiB1bmtub3duXG4gIHRocmVhZE1lbWJlclVwZGF0ZTogKHBheWxvYWQ6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBqb2luZWRBdDogbnVtYmVyOyBmbGFnczogbnVtYmVyIH0pID0+IHVua25vd25cbiAgdGhyZWFkTWVtYmVyc1VwZGF0ZTogKHBheWxvYWQ6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBhZGRlZE1lbWJlcnM/OiBUaHJlYWRNZW1iZXJbXTsgcmVtb3ZlZE1lbWJlcklkcz86IGJpZ2ludFtdIH0pID0+IHVua25vd25cbiAgdGhyZWFkVXBkYXRlOiAodGhyZWFkOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgc2NoZWR1bGVkRXZlbnRDcmVhdGU6IChldmVudDogU2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzY2hlZHVsZWRFdmVudFVwZGF0ZTogKGV2ZW50OiBTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50RGVsZXRlOiAoZXZlbnQ6IFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgc2NoZWR1bGVkRXZlbnRVc2VyQWRkOiAocGF5bG9hZDogeyBndWlsZFNjaGVkdWxlZEV2ZW50SWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyB1c2VySWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50VXNlclJlbW92ZTogKHBheWxvYWQ6IHsgZ3VpbGRTY2hlZHVsZWRFdmVudElkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgdXNlcklkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICByZWFkeTogKFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIHNoYXJkSWQ6IG51bWJlclxuICAgICAgdjogbnVtYmVyXG4gICAgICB1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICAgIGd1aWxkczogYmlnaW50W11cbiAgICAgIHNlc3Npb25JZDogc3RyaW5nXG4gICAgICBzaGFyZD86IG51bWJlcltdXG4gICAgICBhcHBsaWNhdGlvbklkOiBiaWdpbnRcbiAgICB9LFxuICAgIHJhd1BheWxvYWQ6IERpc2NvcmRSZWFkeSxcbiAgKSA9PiB1bmtub3duXG4gIGludGVyYWN0aW9uQ3JlYXRlOiAoaW50ZXJhY3Rpb246IFNldHVwRGVzaXJlZFByb3BzPEludGVyYWN0aW9uLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgaW50ZWdyYXRpb25DcmVhdGU6IChpbnRlZ3JhdGlvbjogSW50ZWdyYXRpb24pID0+IHVua25vd25cbiAgaW50ZWdyYXRpb25EZWxldGU6IChwYXlsb2FkOiB7IGlkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgYXBwbGljYXRpb25JZD86IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIGludGVncmF0aW9uVXBkYXRlOiAocGF5bG9hZDogeyBndWlsZElkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBpbnZpdGVDcmVhdGU6IChpbnZpdGU6IFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGludml0ZURlbGV0ZTogKHBheWxvYWQ6IHsgY2hhbm5lbElkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGNvZGU6IHN0cmluZyB9KSA9PiB1bmtub3duXG4gIGd1aWxkTWVtYmVyQWRkOiAobWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPiwgdXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGd1aWxkTWVtYmVyUmVtb3ZlOiAodXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+LCBndWlsZElkOiBiaWdpbnQpID0+IHVua25vd25cbiAgZ3VpbGRNZW1iZXJVcGRhdGU6IChtZW1iZXI6IFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+LCB1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgZ3VpbGRTdGlja2Vyc1VwZGF0ZTogKHBheWxvYWQ6IHsgZ3VpbGRJZDogYmlnaW50OyBzdGlja2VyczogU2V0dXBEZXNpcmVkUHJvcHM8U3RpY2tlciwgVFByb3BzLCBUQmVoYXZpb3I+W10gfSkgPT4gdW5rbm93blxuICBtZXNzYWdlQ3JlYXRlOiAobWVzc2FnZTogU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VEZWxldGU6IChwYXlsb2FkOiB7IGlkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50IH0sIG1lc3NhZ2U/OiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgbWVzc2FnZURlbGV0ZUJ1bGs6IChwYXlsb2FkOiB7IGlkczogYmlnaW50W107IGNoYW5uZWxJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50IH0pID0+IHVua25vd25cbiAgbWVzc2FnZVVwZGF0ZTogKG1lc3NhZ2U6IFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICByZWFjdGlvbkFkZDogKHBheWxvYWQ6IHtcbiAgICB1c2VySWQ6IGJpZ2ludFxuICAgIGNoYW5uZWxJZDogYmlnaW50XG4gICAgbWVzc2FnZUlkOiBiaWdpbnRcbiAgICBndWlsZElkPzogYmlnaW50XG4gICAgbWVtYmVyPzogU2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICB1c2VyPzogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+XG4gICAgZW1vamk6IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICBtZXNzYWdlQXV0aG9ySWQ/OiBiaWdpbnRcbiAgICBidXJzdDogYm9vbGVhblxuICAgIGJ1cnN0Q29sb3JzPzogc3RyaW5nW11cbiAgfSkgPT4gdW5rbm93blxuICByZWFjdGlvblJlbW92ZTogKHBheWxvYWQ6IHtcbiAgICB1c2VySWQ6IGJpZ2ludFxuICAgIGNoYW5uZWxJZDogYmlnaW50XG4gICAgbWVzc2FnZUlkOiBiaWdpbnRcbiAgICBndWlsZElkPzogYmlnaW50XG4gICAgZW1vamk6IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICBidXJzdDogYm9vbGVhblxuICB9KSA9PiB1bmtub3duXG4gIHJlYWN0aW9uUmVtb3ZlRW1vamk6IChwYXlsb2FkOiB7XG4gICAgY2hhbm5lbElkOiBiaWdpbnRcbiAgICBtZXNzYWdlSWQ6IGJpZ2ludFxuICAgIGd1aWxkSWQ/OiBiaWdpbnRcbiAgICBlbW9qaTogU2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPlxuICB9KSA9PiB1bmtub3duXG4gIHJlYWN0aW9uUmVtb3ZlQWxsOiAocGF5bG9hZDogeyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBwcmVzZW5jZVVwZGF0ZTogKHByZXNlbmNlOiBQcmVzZW5jZVVwZGF0ZSkgPT4gdW5rbm93blxuICB2b2ljZUNoYW5uZWxFZmZlY3RTZW5kOiAocGF5bG9hZDoge1xuICAgIGNoYW5uZWxJZDogYmlnaW50XG4gICAgZ3VpbGRJZDogYmlnaW50XG4gICAgdXNlcklkOiBiaWdpbnRcbiAgICBlbW9qaT86IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgICBhbmltYXRpb25UeXBlPzogRGlzY29yZFZvaWNlQ2hhbm5lbEVmZmVjdEFuaW1hdGlvblR5cGVcbiAgICBhbmltYXRpb25JZD86IG51bWJlclxuICAgIHNvdW5kSWQ/OiBiaWdpbnQgfCBudW1iZXJcbiAgICBzb3VuZFZvbHVtZT86IG51bWJlclxuICB9KSA9PiB1bmtub3duXG4gIHZvaWNlU2VydmVyVXBkYXRlOiAocGF5bG9hZDogeyB0b2tlbjogc3RyaW5nOyBlbmRwb2ludD86IHN0cmluZzsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgdm9pY2VTdGF0ZVVwZGF0ZTogKHZvaWNlU3RhdGU6IFNldHVwRGVzaXJlZFByb3BzPFZvaWNlU3RhdGUsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBjaGFubmVsQ3JlYXRlOiAoY2hhbm5lbDogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGRpc3BhdGNoUmVxdWlyZW1lbnRzOiAoZGF0YTogRGlzY29yZEdhdGV3YXlQYXlsb2FkLCBzaGFyZElkOiBudW1iZXIpID0+IHVua25vd25cbiAgY2hhbm5lbERlbGV0ZTogKGNoYW5uZWw6IFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBjaGFubmVsUGluc1VwZGF0ZTogKGRhdGE6IHsgZ3VpbGRJZD86IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IGxhc3RQaW5UaW1lc3RhbXA/OiBudW1iZXIgfSkgPT4gdW5rbm93blxuICBjaGFubmVsVXBkYXRlOiAoY2hhbm5lbDogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHN0YWdlSW5zdGFuY2VDcmVhdGU6IChkYXRhOiB7IGlkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IHRvcGljOiBzdHJpbmcgfSkgPT4gdW5rbm93blxuICBzdGFnZUluc3RhbmNlRGVsZXRlOiAoZGF0YTogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyB0b3BpYzogc3RyaW5nIH0pID0+IHVua25vd25cbiAgc3RhZ2VJbnN0YW5jZVVwZGF0ZTogKGRhdGE6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgdG9waWM6IHN0cmluZyB9KSA9PiB1bmtub3duXG4gIGd1aWxkRW1vamlzVXBkYXRlOiAocGF5bG9hZDoge1xuICAgIGd1aWxkSWQ6IGJpZ2ludFxuICAgIGVtb2ppczogQ29sbGVjdGlvbjxiaWdpbnQsIFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIH0pID0+IHVua25vd25cbiAgZ3VpbGRCYW5BZGQ6ICh1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4sIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBndWlsZEJhblJlbW92ZTogKHVzZXI6IFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPiwgZ3VpbGRJZDogYmlnaW50KSA9PiB1bmtub3duXG4gIGd1aWxkQ3JlYXRlOiAoZ3VpbGQ6IFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgZ3VpbGREZWxldGU6IChpZDogYmlnaW50LCBzaGFyZElkOiBudW1iZXIpID0+IHVua25vd25cbiAgZ3VpbGRVbmF2YWlsYWJsZTogKGlkOiBiaWdpbnQsIHNoYXJkSWQ6IG51bWJlcikgPT4gdW5rbm93blxuICBndWlsZFVwZGF0ZTogKGd1aWxkOiBTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHJhdzogKGRhdGE6IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgc2hhcmRJZDogbnVtYmVyKSA9PiB1bmtub3duXG4gIHJvbGVDcmVhdGU6IChyb2xlOiBTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgcm9sZURlbGV0ZTogKHBheWxvYWQ6IHsgZ3VpbGRJZDogYmlnaW50OyByb2xlSWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIHJvbGVVcGRhdGU6IChyb2xlOiBTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgd2ViaG9va3NVcGRhdGU6IChwYXlsb2FkOiB7IGNoYW5uZWxJZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBib3RVcGRhdGU6ICh1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgdHlwaW5nU3RhcnQ6IChwYXlsb2FkOiB7XG4gICAgZ3VpbGRJZDogYmlnaW50IHwgdW5kZWZpbmVkXG4gICAgY2hhbm5lbElkOiBiaWdpbnRcbiAgICB1c2VySWQ6IGJpZ2ludFxuICAgIHRpbWVzdGFtcDogbnVtYmVyXG4gICAgbWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPiB8IHVuZGVmaW5lZFxuICB9KSA9PiB1bmtub3duXG4gIGVudGl0bGVtZW50Q3JlYXRlOiAoZW50aXRsZW1lbnQ6IFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgZW50aXRsZW1lbnRVcGRhdGU6IChlbnRpdGxlbWVudDogU2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBlbnRpdGxlbWVudERlbGV0ZTogKGVudGl0bGVtZW50OiBTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHN1YnNjcmlwdGlvbkNyZWF0ZTogKHN1YnNjcmlwdGlvbjogU2V0dXBEZXNpcmVkUHJvcHM8U3Vic2NyaXB0aW9uLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgc3Vic2NyaXB0aW9uVXBkYXRlOiAoc3Vic2NyaXB0aW9uOiBTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzdWJzY3JpcHRpb25EZWxldGU6IChzdWJzY3JpcHRpb246IFNldHVwRGVzaXJlZFByb3BzPFN1YnNjcmlwdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VQb2xsVm90ZUFkZDogKHBheWxvYWQ6IHsgdXNlcklkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBtZXNzYWdlSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludDsgYW5zd2VySWQ6IG51bWJlciB9KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VQb2xsVm90ZVJlbW92ZTogKHBheWxvYWQ6IHsgdXNlcklkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBtZXNzYWdlSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludDsgYW5zd2VySWQ6IG51bWJlciB9KSA9PiB1bmtub3duXG4gIHNvdW5kYm9hcmRTb3VuZENyZWF0ZTogKHBheWxvYWQ6IFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHNvdW5kYm9hcmRTb3VuZFVwZGF0ZTogKHBheWxvYWQ6IFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHNvdW5kYm9hcmRTb3VuZERlbGV0ZTogKHBheWxvYWQ6IHsgc291bmRJZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBzb3VuZGJvYXJkU291bmRzVXBkYXRlOiAocGF5bG9hZDogeyBzb3VuZGJvYXJkU291bmRzOiBTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPltdOyBndWlsZElkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBzb3VuZGJvYXJkU291bmRzOiAocGF5bG9hZDogeyBzb3VuZGJvYXJkU291bmRzOiBTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPltdOyBndWlsZElkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQSxXQXNJQyJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIERpc2NvcmRSZWFkeSwgRGlzY29yZFZvaWNlQ2hhbm5lbEVmZmVjdEFuaW1hdGlvblR5cGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBBdWRpdExvZ0VudHJ5LFxuICBBdXRvTW9kZXJhdGlvbkFjdGlvbkV4ZWN1dGlvbixcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBJbnRlZ3JhdGlvbixcbiAgSW50ZXJhY3Rpb24sXG4gIEludml0ZSxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxuICBQcmVzZW5jZVVwZGF0ZSxcbiAgUm9sZSxcbiAgU2NoZWR1bGVkRXZlbnQsXG4gIFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RpY2tlcixcbiAgU3Vic2NyaXB0aW9uLFxuICBUaHJlYWRNZW1iZXIsXG4gIFVzZXIsXG4gIFZvaWNlU3RhdGUsXG59IGZyb20gJy4vdHJhbnNmb3JtZXJzL3R5cGVzLmpzJ1xuXG5leHBvcnQgdHlwZSBFdmVudEhhbmRsZXJzPFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiA9IHtcbiAgZGVidWc6ICh0ZXh0OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duXG4gIGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVXBkYXRlOiAoY29tbWFuZDogR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucykgPT4gdW5rbm93blxuICBndWlsZEF1ZGl0TG9nRW50cnlDcmVhdGU6IChsb2c6IEF1ZGl0TG9nRW50cnksIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBhdXRvbW9kUnVsZUNyZWF0ZTogKHJ1bGU6IEF1dG9Nb2RlcmF0aW9uUnVsZSkgPT4gdW5rbm93blxuICBhdXRvbW9kUnVsZVVwZGF0ZTogKHJ1bGU6IEF1dG9Nb2RlcmF0aW9uUnVsZSkgPT4gdW5rbm93blxuICBhdXRvbW9kUnVsZURlbGV0ZTogKHJ1bGU6IEF1dG9Nb2RlcmF0aW9uUnVsZSkgPT4gdW5rbm93blxuICBhdXRvbW9kQWN0aW9uRXhlY3V0aW9uOiAocGF5bG9hZDogQXV0b01vZGVyYXRpb25BY3Rpb25FeGVjdXRpb24pID0+IHVua25vd25cbiAgdGhyZWFkQ3JlYXRlOiAodGhyZWFkOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgdGhyZWFkRGVsZXRlOiAodGhyZWFkOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgdGhyZWFkTGlzdFN5bmM6IChwYXlsb2FkOiB7XG4gICAgZ3VpbGRJZDogYmlnaW50XG4gICAgY2hhbm5lbElkcz86IGJpZ2ludFtdXG4gICAgdGhyZWFkczogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W11cbiAgICBtZW1iZXJzOiBUaHJlYWRNZW1iZXJbXVxuICB9KSA9PiB1bmtub3duXG4gIHRocmVhZE1lbWJlclVwZGF0ZTogKHBheWxvYWQ6IHtcbiAgICBpZDogYmlnaW50XG4gICAgZ3VpbGRJZDogYmlnaW50XG4gICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvblxuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugam9pbmVkVGltZXN0YW1wICovXG4gICAgam9pbmVkQXQ6IG51bWJlclxuICAgIGpvaW5lZFRpbWVzdGFtcDogbnVtYmVyXG4gICAgZmxhZ3M6IG51bWJlclxuICB9KSA9PiB1bmtub3duXG4gIHRocmVhZE1lbWJlcnNVcGRhdGU6IChwYXlsb2FkOiB7IGlkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgYWRkZWRNZW1iZXJzPzogVGhyZWFkTWVtYmVyW107IHJlbW92ZWRNZW1iZXJJZHM/OiBiaWdpbnRbXSB9KSA9PiB1bmtub3duXG4gIHRocmVhZFVwZGF0ZTogKHRocmVhZDogU2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50Q3JlYXRlOiAoZXZlbnQ6IFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgc2NoZWR1bGVkRXZlbnRVcGRhdGU6IChldmVudDogU2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzY2hlZHVsZWRFdmVudERlbGV0ZTogKGV2ZW50OiBTZXR1cERlc2lyZWRQcm9wczxTY2hlZHVsZWRFdmVudCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHNjaGVkdWxlZEV2ZW50VXNlckFkZDogKHBheWxvYWQ6IHsgZ3VpbGRTY2hlZHVsZWRFdmVudElkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgdXNlcklkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBzY2hlZHVsZWRFdmVudFVzZXJSZW1vdmU6IChwYXlsb2FkOiB7IGd1aWxkU2NoZWR1bGVkRXZlbnRJZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IHVzZXJJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgcmVhZHk6IChcbiAgICBwYXlsb2FkOiB7XG4gICAgICBzaGFyZElkOiBudW1iZXJcbiAgICAgIHY6IG51bWJlclxuICAgICAgdXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+XG4gICAgICBndWlsZHM6IGJpZ2ludFtdXG4gICAgICBzZXNzaW9uSWQ6IHN0cmluZ1xuICAgICAgc2hhcmQ/OiBudW1iZXJbXVxuICAgICAgYXBwbGljYXRpb25JZDogYmlnaW50XG4gICAgfSxcbiAgICByYXdQYXlsb2FkOiBEaXNjb3JkUmVhZHksXG4gICkgPT4gdW5rbm93blxuICBpbnRlcmFjdGlvbkNyZWF0ZTogKGludGVyYWN0aW9uOiBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGludGVncmF0aW9uQ3JlYXRlOiAoaW50ZWdyYXRpb246IEludGVncmF0aW9uKSA9PiB1bmtub3duXG4gIGludGVncmF0aW9uRGVsZXRlOiAocGF5bG9hZDogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGFwcGxpY2F0aW9uSWQ/OiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICBpbnRlZ3JhdGlvblVwZGF0ZTogKHBheWxvYWQ6IHsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgaW52aXRlQ3JlYXRlOiAoaW52aXRlOiBTZXR1cERlc2lyZWRQcm9wczxJbnZpdGUsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBpbnZpdGVEZWxldGU6IChwYXlsb2FkOiB7IGNoYW5uZWxJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50OyBjb2RlOiBzdHJpbmcgfSkgPT4gdW5rbm93blxuICBndWlsZE1lbWJlckFkZDogKG1lbWJlcjogU2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4sIHVzZXI6IFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBndWlsZE1lbWJlclJlbW92ZTogKHVzZXI6IFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPiwgZ3VpbGRJZDogYmlnaW50KSA9PiB1bmtub3duXG4gIGd1aWxkTWVtYmVyVXBkYXRlOiAobWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRQcm9wcywgVEJlaGF2aW9yPiwgdXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGd1aWxkU3RpY2tlcnNVcGRhdGU6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludDsgc3RpY2tlcnM6IFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPltdIH0pID0+IHVua25vd25cbiAgbWVzc2FnZUNyZWF0ZTogKG1lc3NhZ2U6IFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBtZXNzYWdlRGVsZXRlOiAocGF5bG9hZDogeyBpZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludCB9LCBtZXNzYWdlPzogU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VEZWxldGVCdWxrOiAocGF5bG9hZDogeyBpZHM6IGJpZ2ludFtdOyBjaGFubmVsSWQ6IGJpZ2ludDsgZ3VpbGRJZD86IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIG1lc3NhZ2VVcGRhdGU6IChtZXNzYWdlOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgcmVhY3Rpb25BZGQ6IChwYXlsb2FkOiB7XG4gICAgdXNlcklkOiBiaWdpbnRcbiAgICBjaGFubmVsSWQ6IGJpZ2ludFxuICAgIG1lc3NhZ2VJZDogYmlnaW50XG4gICAgZ3VpbGRJZD86IGJpZ2ludFxuICAgIG1lbWJlcj86IFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+XG4gICAgdXNlcj86IFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPlxuICAgIGVtb2ppOiBTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+XG4gICAgbWVzc2FnZUF1dGhvcklkPzogYmlnaW50XG4gICAgYnVyc3Q6IGJvb2xlYW5cbiAgICBidXJzdENvbG9ycz86IHN0cmluZ1tdXG4gIH0pID0+IHVua25vd25cbiAgcmVhY3Rpb25SZW1vdmU6IChwYXlsb2FkOiB7XG4gICAgdXNlcklkOiBiaWdpbnRcbiAgICBjaGFubmVsSWQ6IGJpZ2ludFxuICAgIG1lc3NhZ2VJZDogYmlnaW50XG4gICAgZ3VpbGRJZD86IGJpZ2ludFxuICAgIGVtb2ppOiBTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+XG4gICAgYnVyc3Q6IGJvb2xlYW5cbiAgfSkgPT4gdW5rbm93blxuICByZWFjdGlvblJlbW92ZUVtb2ppOiAocGF5bG9hZDoge1xuICAgIGNoYW5uZWxJZDogYmlnaW50XG4gICAgbWVzc2FnZUlkOiBiaWdpbnRcbiAgICBndWlsZElkPzogYmlnaW50XG4gICAgZW1vamk6IFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5cbiAgfSkgPT4gdW5rbm93blxuICByZWFjdGlvblJlbW92ZUFsbDogKHBheWxvYWQ6IHsgY2hhbm5lbElkOiBiaWdpbnQ7IG1lc3NhZ2VJZDogYmlnaW50OyBndWlsZElkPzogYmlnaW50IH0pID0+IHVua25vd25cbiAgcHJlc2VuY2VVcGRhdGU6IChwcmVzZW5jZTogUHJlc2VuY2VVcGRhdGUpID0+IHVua25vd25cbiAgdm9pY2VDaGFubmVsRWZmZWN0U2VuZDogKHBheWxvYWQ6IHtcbiAgICBjaGFubmVsSWQ6IGJpZ2ludFxuICAgIGd1aWxkSWQ6IGJpZ2ludFxuICAgIHVzZXJJZDogYmlnaW50XG4gICAgZW1vamk/OiBTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+XG4gICAgYW5pbWF0aW9uVHlwZT86IERpc2NvcmRWb2ljZUNoYW5uZWxFZmZlY3RBbmltYXRpb25UeXBlXG4gICAgYW5pbWF0aW9uSWQ/OiBudW1iZXJcbiAgICBzb3VuZElkPzogYmlnaW50IHwgbnVtYmVyXG4gICAgc291bmRWb2x1bWU/OiBudW1iZXJcbiAgfSkgPT4gdW5rbm93blxuICB2b2ljZVNlcnZlclVwZGF0ZTogKHBheWxvYWQ6IHsgdG9rZW46IHN0cmluZzsgZW5kcG9pbnQ/OiBzdHJpbmc7IGd1aWxkSWQ6IGJpZ2ludCB9KSA9PiB1bmtub3duXG4gIHZvaWNlU3RhdGVVcGRhdGU6ICh2b2ljZVN0YXRlOiBTZXR1cERlc2lyZWRQcm9wczxWb2ljZVN0YXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgY2hhbm5lbENyZWF0ZTogKGNoYW5uZWw6IFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBkaXNwYXRjaFJlcXVpcmVtZW50czogKGRhdGE6IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgc2hhcmRJZDogbnVtYmVyKSA9PiB1bmtub3duXG4gIGNoYW5uZWxEZWxldGU6IChjaGFubmVsOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgY2hhbm5lbFBpbnNVcGRhdGU6IChkYXRhOiB7IGd1aWxkSWQ/OiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyBsYXN0UGluVGltZXN0YW1wPzogbnVtYmVyIH0pID0+IHVua25vd25cbiAgY2hhbm5lbFVwZGF0ZTogKGNoYW5uZWw6IFNldHVwRGVzaXJlZFByb3BzPENoYW5uZWwsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzdGFnZUluc3RhbmNlQ3JlYXRlOiAoZGF0YTogeyBpZDogYmlnaW50OyBndWlsZElkOiBiaWdpbnQ7IGNoYW5uZWxJZDogYmlnaW50OyB0b3BpYzogc3RyaW5nIH0pID0+IHVua25vd25cbiAgc3RhZ2VJbnN0YW5jZURlbGV0ZTogKGRhdGE6IHsgaWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgdG9waWM6IHN0cmluZyB9KSA9PiB1bmtub3duXG4gIHN0YWdlSW5zdGFuY2VVcGRhdGU6IChkYXRhOiB7IGlkOiBiaWdpbnQ7IGd1aWxkSWQ6IGJpZ2ludDsgY2hhbm5lbElkOiBiaWdpbnQ7IHRvcGljOiBzdHJpbmcgfSkgPT4gdW5rbm93blxuICBndWlsZEVtb2ppc1VwZGF0ZTogKHBheWxvYWQ6IHtcbiAgICBndWlsZElkOiBiaWdpbnRcbiAgICBlbW9qaXM6IENvbGxlY3Rpb248YmlnaW50LCBTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICB9KSA9PiB1bmtub3duXG4gIGd1aWxkQmFuQWRkOiAodXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+LCBndWlsZElkOiBiaWdpbnQpID0+IHVua25vd25cbiAgZ3VpbGRCYW5SZW1vdmU6ICh1c2VyOiBTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4sIGd1aWxkSWQ6IGJpZ2ludCkgPT4gdW5rbm93blxuICBndWlsZENyZWF0ZTogKGd1aWxkOiBTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGd1aWxkRGVsZXRlOiAoaWQ6IGJpZ2ludCwgc2hhcmRJZDogbnVtYmVyKSA9PiB1bmtub3duXG4gIGd1aWxkVW5hdmFpbGFibGU6IChpZDogYmlnaW50LCBzaGFyZElkOiBudW1iZXIpID0+IHVua25vd25cbiAgZ3VpbGRVcGRhdGU6IChndWlsZDogU2V0dXBEZXNpcmVkUHJvcHM8R3VpbGQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICByYXc6IChkYXRhOiBEaXNjb3JkR2F0ZXdheVBheWxvYWQsIHNoYXJkSWQ6IG51bWJlcikgPT4gdW5rbm93blxuICByb2xlQ3JlYXRlOiAocm9sZTogU2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHJvbGVEZWxldGU6IChwYXlsb2FkOiB7IGd1aWxkSWQ6IGJpZ2ludDsgcm9sZUlkOiBiaWdpbnQgfSkgPT4gdW5rbm93blxuICByb2xlVXBkYXRlOiAocm9sZTogU2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHdlYmhvb2tzVXBkYXRlOiAocGF5bG9hZDogeyBjaGFubmVsSWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgYm90VXBkYXRlOiAodXNlcjogU2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHR5cGluZ1N0YXJ0OiAocGF5bG9hZDoge1xuICAgIGd1aWxkSWQ6IGJpZ2ludCB8IHVuZGVmaW5lZFxuICAgIGNoYW5uZWxJZDogYmlnaW50XG4gICAgdXNlcklkOiBiaWdpbnRcbiAgICB0aW1lc3RhbXA6IG51bWJlclxuICAgIG1lbWJlcjogU2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4gfCB1bmRlZmluZWRcbiAgfSkgPT4gdW5rbm93blxuICBlbnRpdGxlbWVudENyZWF0ZTogKGVudGl0bGVtZW50OiBTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIGVudGl0bGVtZW50VXBkYXRlOiAoZW50aXRsZW1lbnQ6IFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgZW50aXRsZW1lbnREZWxldGU6IChlbnRpdGxlbWVudDogU2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzdWJzY3JpcHRpb25DcmVhdGU6IChzdWJzY3JpcHRpb246IFNldHVwRGVzaXJlZFByb3BzPFN1YnNjcmlwdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+KSA9PiB1bmtub3duXG4gIHN1YnNjcmlwdGlvblVwZGF0ZTogKHN1YnNjcmlwdGlvbjogU2V0dXBEZXNpcmVkUHJvcHM8U3Vic2NyaXB0aW9uLCBUUHJvcHMsIFRCZWhhdmlvcj4pID0+IHVua25vd25cbiAgc3Vic2NyaXB0aW9uRGVsZXRlOiAoc3Vic2NyaXB0aW9uOiBTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBtZXNzYWdlUG9sbFZvdGVBZGQ6IChwYXlsb2FkOiB7IHVzZXJJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGFuc3dlcklkOiBudW1iZXIgfSkgPT4gdW5rbm93blxuICBtZXNzYWdlUG9sbFZvdGVSZW1vdmU6IChwYXlsb2FkOiB7IHVzZXJJZDogYmlnaW50OyBjaGFubmVsSWQ6IGJpZ2ludDsgbWVzc2FnZUlkOiBiaWdpbnQ7IGd1aWxkSWQ/OiBiaWdpbnQ7IGFuc3dlcklkOiBudW1iZXIgfSkgPT4gdW5rbm93blxuICBzb3VuZGJvYXJkU291bmRDcmVhdGU6IChwYXlsb2FkOiBTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzb3VuZGJvYXJkU291bmRVcGRhdGU6IChwYXlsb2FkOiBTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPikgPT4gdW5rbm93blxuICBzb3VuZGJvYXJkU291bmREZWxldGU6IChwYXlsb2FkOiB7IHNvdW5kSWQ6IGJpZ2ludDsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgc291bmRib2FyZFNvdW5kc1VwZGF0ZTogKHBheWxvYWQ6IHsgc291bmRib2FyZFNvdW5kczogU2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXTsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbiAgc291bmRib2FyZFNvdW5kczogKHBheWxvYWQ6IHsgc291bmRib2FyZFNvdW5kczogU2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXTsgZ3VpbGRJZDogYmlnaW50IH0pID0+IHVua25vd25cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0QkEsV0E4SUMifQ==
@@ -4,9 +4,11 @@ export async function handleThreadMemberUpdate(bot, data, _shardId) {
4
4
  bot.events.threadMemberUpdate({
5
5
  id: bot.transformers.snowflake(payload.id),
6
6
  guildId: bot.transformers.snowflake(payload.guild_id),
7
- joinedAt: Date.parse(payload.joined_at),
7
+ // TODO: remove this in the next major version
8
+ joinedAt: 'joined_at' in payload && typeof payload.joined_at === 'string' ? Date.parse(payload.joined_at) : 0,
9
+ joinedTimestamp: Date.parse(payload.join_timestamp),
8
10
  flags: payload.flags
9
11
  });
10
12
  }
11
13
 
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oYW5kbGVycy9jaGFubmVscy9USFJFQURfTUVNQkVSX1VQREFURS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi8uLi9pbmRleC5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZShib3Q6IEJvdCwgZGF0YTogRGlzY29yZEdhdGV3YXlQYXlsb2FkLCBfc2hhcmRJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYm90LmV2ZW50cy50aHJlYWRNZW1iZXJVcGRhdGUpIHJldHVyblxuXG4gIGNvbnN0IHBheWxvYWQgPSBkYXRhLmQgYXMgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZVxuXG4gIGJvdC5ldmVudHMudGhyZWFkTWVtYmVyVXBkYXRlKHtcbiAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCksXG4gICAgZ3VpbGRJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCksXG4gICAgam9pbmVkQXQ6IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpLFxuICAgIGZsYWdzOiBwYXlsb2FkLmZsYWdzLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZSIsImJvdCIsImRhdGEiLCJfc2hhcmRJZCIsImV2ZW50cyIsInRocmVhZE1lbWJlclVwZGF0ZSIsInBheWxvYWQiLCJkIiwiaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJqb2luZWRBdCIsIkRhdGUiLCJwYXJzZSIsImpvaW5lZF9hdCIsImZsYWdzIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLGVBQWVBLHlCQUF5QkMsR0FBUSxFQUFFQyxJQUEyQixFQUFFQyxRQUFnQjtJQUNwRyxJQUFJLENBQUNGLElBQUlHLE1BQU0sQ0FBQ0Msa0JBQWtCLEVBQUU7SUFFcEMsTUFBTUMsVUFBVUosS0FBS0ssQ0FBQztJQUV0Qk4sSUFBSUcsTUFBTSxDQUFDQyxrQkFBa0IsQ0FBQztRQUM1QkcsSUFBSVAsSUFBSVEsWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFFLEVBQUU7UUFDekNHLFNBQVNWLElBQUlRLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRTSxRQUFRO1FBQ3BEQyxVQUFVQyxLQUFLQyxLQUFLLENBQUNULFFBQVFVLFNBQVM7UUFDdENDLE9BQU9YLFFBQVFXLEtBQUs7SUFDdEI7QUFDRiJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oYW5kbGVycy9jaGFubmVscy9USFJFQURfTUVNQkVSX1VQREFURS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHYXRld2F5UGF5bG9hZCwgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi8uLi9pbmRleC5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZShib3Q6IEJvdCwgZGF0YTogRGlzY29yZEdhdGV3YXlQYXlsb2FkLCBfc2hhcmRJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYm90LmV2ZW50cy50aHJlYWRNZW1iZXJVcGRhdGUpIHJldHVyblxuXG4gIGNvbnN0IHBheWxvYWQgPSBkYXRhLmQgYXMgRGlzY29yZFRocmVhZE1lbWJlclVwZGF0ZVxuXG4gIGJvdC5ldmVudHMudGhyZWFkTWVtYmVyVXBkYXRlKHtcbiAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZCksXG4gICAgZ3VpbGRJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCksXG4gICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvblxuICAgIGpvaW5lZEF0OiAnam9pbmVkX2F0JyBpbiBwYXlsb2FkICYmIHR5cGVvZiBwYXlsb2FkLmpvaW5lZF9hdCA9PT0gJ3N0cmluZycgPyBEYXRlLnBhcnNlKHBheWxvYWQuam9pbmVkX2F0KSA6IDAsXG4gICAgam9pbmVkVGltZXN0YW1wOiBEYXRlLnBhcnNlKHBheWxvYWQuam9pbl90aW1lc3RhbXApLFxuICAgIGZsYWdzOiBwYXlsb2FkLmZsYWdzLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZVRocmVhZE1lbWJlclVwZGF0ZSIsImJvdCIsImRhdGEiLCJfc2hhcmRJZCIsImV2ZW50cyIsInRocmVhZE1lbWJlclVwZGF0ZSIsInBheWxvYWQiLCJkIiwiaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsImpvaW5lZFRpbWVzdGFtcCIsImpvaW5fdGltZXN0YW1wIiwiZmxhZ3MiXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sZUFBZUEseUJBQXlCQyxHQUFRLEVBQUVDLElBQTJCLEVBQUVDLFFBQWdCO0lBQ3BHLElBQUksQ0FBQ0YsSUFBSUcsTUFBTSxDQUFDQyxrQkFBa0IsRUFBRTtJQUVwQyxNQUFNQyxVQUFVSixLQUFLSyxDQUFDO0lBRXRCTixJQUFJRyxNQUFNLENBQUNDLGtCQUFrQixDQUFDO1FBQzVCRyxJQUFJUCxJQUFJUSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUUUsRUFBRTtRQUN6Q0csU0FBU1YsSUFBSVEsWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFNLFFBQVE7UUFDcEQsOENBQThDO1FBQzlDQyxVQUFVLGVBQWVQLFdBQVcsT0FBT0EsUUFBUVEsU0FBUyxLQUFLLFdBQVdDLEtBQUtDLEtBQUssQ0FBQ1YsUUFBUVEsU0FBUyxJQUFJO1FBQzVHRyxpQkFBaUJGLEtBQUtDLEtBQUssQ0FBQ1YsUUFBUVksY0FBYztRQUNsREMsT0FBT2IsUUFBUWEsS0FBSztJQUN0QjtBQUNGIn0=
@@ -160,7 +160,8 @@ export function transformMessage(bot, payload) {
160
160
  }
161
161
  message.interaction = interaction;
162
162
  }
163
- if (props.member && guildId && userId && payload.message.member) message.member = bot.transformers.member(bot, payload.message.member, guildId, userId);
163
+ if (props.member && guildId && userId && payload.message.member) // @ts-expect-error TODO: partial
164
+ message.member = bot.transformers.member(bot, payload.message.member, guildId, userId);
164
165
  if (payload.message.mention_everyone) message.mentionEveryone = true;
165
166
  if (props.mentionedChannelIds && payload.message.mention_channels?.length) {
166
167
  message.mentionedChannelIds = [
@@ -280,4 +281,4 @@ export function transformMessageCall(bot, payload) {
280
281
  return bot.transformers.customizers.messageCall(bot, payload, call);
281
282
  }
282
283
 
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiVG9nZ2xlQml0ZmllbGQiLCJFTVBUWV9TVFJJTkciLCJiYXNlTWVzc2FnZSIsInVuZGVmaW5lZCIsImNyb3NzcG9zdGVkIiwiZmxhZ3MiLCJjb250YWlucyIsIkNyb3NzcG9zdGVkIiwidmFsdWUiLCJhZGQiLCJyZW1vdmUiLCJlcGhlbWVyYWwiLCJFcGhlbWVyYWwiLCJmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsIkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiaGFzVGhyZWFkIiwiSGFzVGhyZWFkIiwiaXNDcm9zc3Bvc3QiLCJJc0Nyb3NzcG9zdCIsImxvYWRpbmciLCJMb2FkaW5nIiwibWVudGlvbmVkVXNlcklkcyIsIm1lbnRpb25zIiwibWFwIiwidXNlciIsImlkIiwibWVudGlvbkV2ZXJ5b25lIiwiYml0ZmllbGQiLCJwaW5uZWQiLCJzb3VyY2VNZXNzYWdlRGVsZXRlZCIsIlNvdXJjZU1lc3NhZ2VEZWxldGVkIiwic3VwcHJlc3NFbWJlZHMiLCJTdXBwcmVzc0VtYmVkcyIsInN1cHByZXNzTm90aWZpY2F0aW9ucyIsIlN1cHByZXNzTm90aWZpY2F0aW9ucyIsInRpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsInRyYW5zZm9ybU1lc3NhZ2UiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uX21ldGFkYXRhIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybU1lc3NhZ2VQaW4iLCJtZXNzYWdlUGluIiwicGlubmVkQXQiLCJwaW5uZWRfYXQiLCJ0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRNZXNzYWdlSWQiLCJ0YXJnZXRfbWVzc2FnZV9pZCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FFRUEsaUNBQWlDLEVBTWpDQyxZQUFZLFFBQ1Asb0JBQW1CO0FBQzFCLFNBQVNDLHFCQUFxQixRQUFRLGtCQUFpQjtBQUN2RCxTQU9FQyxvQkFBb0IsUUFDZixjQUFhO0FBQ3BCLFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFFNUQsTUFBTUMsZUFBZTtBQUVyQixPQUFPLE1BQU1DLGNBQXdFO0lBQ25GLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTVCxhQUFhVSxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNILEtBQUssQ0FBQ0ksR0FBRyxDQUFDWixhQUFhVSxXQUFXO2FBQzdD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
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbFxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiVG9nZ2xlQml0ZmllbGQiLCJFTVBUWV9TVFJJTkciLCJiYXNlTWVzc2FnZSIsInVuZGVmaW5lZCIsImNyb3NzcG9zdGVkIiwiZmxhZ3MiLCJjb250YWlucyIsIkNyb3NzcG9zdGVkIiwidmFsdWUiLCJhZGQiLCJyZW1vdmUiLCJlcGhlbWVyYWwiLCJFcGhlbWVyYWwiLCJmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsIkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiaGFzVGhyZWFkIiwiSGFzVGhyZWFkIiwiaXNDcm9zc3Bvc3QiLCJJc0Nyb3NzcG9zdCIsImxvYWRpbmciLCJMb2FkaW5nIiwibWVudGlvbmVkVXNlcklkcyIsIm1lbnRpb25zIiwibWFwIiwidXNlciIsImlkIiwibWVudGlvbkV2ZXJ5b25lIiwiYml0ZmllbGQiLCJwaW5uZWQiLCJzb3VyY2VNZXNzYWdlRGVsZXRlZCIsIlNvdXJjZU1lc3NhZ2VEZWxldGVkIiwic3VwcHJlc3NFbWJlZHMiLCJTdXBwcmVzc0VtYmVkcyIsInN1cHByZXNzTm90aWZpY2F0aW9ucyIsIlN1cHByZXNzTm90aWZpY2F0aW9ucyIsInRpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsInRyYW5zZm9ybU1lc3NhZ2UiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uX21ldGFkYXRhIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybU1lc3NhZ2VQaW4iLCJtZXNzYWdlUGluIiwicGlubmVkQXQiLCJwaW5uZWRfYXQiLCJ0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRNZXNzYWdlSWQiLCJ0YXJnZXRfbWVzc2FnZV9pZCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FFRUEsaUNBQWlDLEVBTWpDQyxZQUFZLFFBQ1Asb0JBQW1CO0FBQzFCLFNBQVNDLHFCQUFxQixRQUFRLGtCQUFpQjtBQUN2RCxTQU9FQyxvQkFBb0IsUUFDZixjQUFhO0FBQ3BCLFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFFNUQsTUFBTUMsZUFBZTtBQUVyQixPQUFPLE1BQU1DLGNBQXdFO0lBQ25GLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTVCxhQUFhVSxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNI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