jsii-release 0.2.682 → 0.2.684

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.
package/.projenrc.ts CHANGED
@@ -76,9 +76,9 @@ test?.on({
76
76
  mergeGroup: {},
77
77
  });
78
78
 
79
- // Select `IntegTestCredentials` or `IntegTestCredentialsRequireApproval` depending on the author of the PR
80
- // github.pull_request.author_association in ['OWNER', 'COLLABORATOR', 'MEMBER', 'NONE']
81
- // github.pull_request.user.login
79
+ // Select `IntegTestCredentials` or `IntegTestCredentialsRequireApproval` depending on whether this is
80
+ // a PR from a fork or not (assumption: writers can be trusted, forkers cannot).
81
+ //
82
82
  // Because we have an 'if/else' condition that is quite annoying to encode with outputs, have a mutable variable by
83
83
  // means of a file on disk, export it as an output afterwards.
84
84
  test?.addJob('determine_env', {
@@ -96,7 +96,7 @@ test?.addJob('determine_env', {
96
96
  run: 'echo IntegTestCredentialsRequireApproval > .envname',
97
97
  },
98
98
  {
99
- name: 'If not from a fork, do not need approval',
99
+ name: 'If not forked, run automatically',
100
100
  // In a mergeGroup event, `github.pull_request` will not be set and `!undefined` also counts
101
101
  if: '!github.pull_request.head.repo.fork',
102
102
  run: 'echo IntegTestCredentials > .envname',
@@ -281,11 +281,8 @@ async function retryThrottled(block) {
281
281
  }
282
282
  catch (e) {
283
283
  // eslint-disable-next-line no-console
284
- console.debug(e.message);
285
- if (e.code !== 'ThrottlingException') {
286
- throw e;
287
- }
288
- if (attempts-- === 0) {
284
+ console.debug(e);
285
+ if (!(e instanceof client_codeartifact_1.ThrottlingException) || --attempts === 0) {
289
286
  throw e;
290
287
  }
291
288
  await (0, sleep_1.sleep)(Math.floor(Math.random() * time));
@@ -296,4 +293,4 @@ async function retryThrottled(block) {
296
293
  function isResourceNotFoundException(x) {
297
294
  return x instanceof client_codeartifact_1.ResourceNotFoundException;
298
295
  }
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWFydGlmYWN0LXJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZWFydGlmYWN0L2NvZGVhcnRpZmFjdC1yZXBvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUFnYztBQUVoYyx5Q0FBc0M7QUFFdEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVO0FBTXJEOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFHM0I7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFtQyxFQUFFO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV4RSxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsU0FBUyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFZLEVBQUUsVUFBbUMsRUFBRTtRQUNwRixNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBc0IsRUFBRSxVQUFtQyxFQUFFO1FBQ2xGLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENB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RSxDQUFDO1NBQ3RCO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixJQUFJLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFBRSxNQUFNLENBQUMsQ0FBQzthQUFFO1lBQ2xDLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixNQUFNLElBQUEsYUFBSyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FBSSxLQUF1QjtJQUN0RCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7SUFDZixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDbEIsT0FBTyxJQUFJLEVBQUU7UUFDWCxJQUFJO1lBQ0YsT0FBTyxNQUFNLEtBQUssRUFBRSxDQUFDO1NBQ3RCO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQUU7WUFDbEQsSUFBSSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQUUsTUFBTSxDQUFDLENBQUM7YUFBRTtZQUNsQyxNQUFNLElBQUEsYUFBSyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUNYO0tBQ0Y7QUFDSCxDQUFDO0FBWUQsU0FBUywyQkFBMkIsQ0FBQyxDQUFNO0lBQ3pDLE9BQU8sQ0FBQyxZQUFZLCtDQUF5QixDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NvY2lhdGVFeHRlcm5hbENvbm5lY3Rpb25Db21tYW5kLCBDb2RlYXJ0aWZhY3RDbGllbnQsIENyZWF0ZURvbWFpbkNvbW1hbmQsIENyZWF0ZVJlcG9zaXRvcnlDb21tYW5kLCBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCwgRGVzY3JpYmVEb21haW5Db21tYW5kLCBEZXNjcmliZVJlcG9zaXRvcnlDb21tYW5kLCBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kLCBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kLCBMaXN0UGFja2FnZXNDb21tYW5kLCBMaXN0UGFja2FnZXNDb21tYW5kSW5wdXQsIExpc3RSZXBvc2l0b3JpZXNDb21tYW5kLCBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCwgUHV0UGFja2FnZU9yaWdpbkNvbmZpZ3VyYXRpb25Db21tYW5kLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlciwgQ29tbWFuZCwgTWV0YWRhdGFCZWFyZXIgfSBmcm9tICdAYXdzLXNkay90eXBlcyc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2hlbHAvc2xlZXAnO1xuXG5jb25zdCBDT0xMRUNUX0JZX1RBRyA9ICdjb2xsZWN0LWJ5JztcbmNvbnN0IFJFUE9fTElGRVRJTUVfTVMgPSAyNCAqIDM2MDAgKiAxMDAwOyAvLyBPbmUgZGF5XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFydGlmYWN0UmVwb09wdGlvbnMge1xuICByZWFkb25seSBjcmVkZW50aWFscz86IEF3c0NyZWRlbnRpYWxJZGVudGl0eVByb3ZpZGVyO1xufVxuXG4vKipcbiAqIEEgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVBcnRpZmFjdFJlcG8ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRE9NQUlOID0gJ3B1YmxpYi1jYSc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENvZGVBcnRpZmFjdCByZXBvIHdpdGggYSByYW5kb20gbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBjcmVhdGVSYW5kb20ob3B0aW9uczogQ29kZUFydGlmYWN0UmVwb09wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHF1YWxpZmllciA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xuXG4gICAgY29uc3QgcmVwbyA9IG5ldyBDb2RlQXJ0aWZhY3RSZXBvKGB0ZXN0LSR7cXVhbGlmaWVyfWAsIG9wdGlvbnMpO1xuICAgIGF3YWl0IHJlcG8uY3JlYXRlKCk7XG4gICAgcmV0dXJuIHJlcG87XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnkgd2l0aCBhIGdpdmVuIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlV2l0aE5hbWUobmFtZTogc3RyaW5nLCBvcHRpb25zOiBDb2RlQXJ0aWZhY3RSZXBvT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgcmVwbyA9IG5ldyBDb2RlQXJ0aWZhY3RSZXBvKG5hbWUsIG9wdGlvbnMpO1xuICAgIGF3YWl0IHJlcG8uY3JlYXRlKCk7XG4gICAgcmV0dXJuIHJlcG87XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGV4aXN0aW5nIENvZGVBcnRpZmFjdCByZXBvc2l0b3J5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4aXN0aW5nKHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IENvZGVBcnRpZmFjdFJlcG9PcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gbmV3IENvZGVBcnRpZmFjdFJlcG8ocmVwb3NpdG9yeU5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdhcmJhZ2UgY29sbGVjdCByZXBvc2l0b3JpZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZ2Mob3B0aW9uczogQ29kZUFydGlmYWN0UmVwb09wdGlvbnMgPSB7fSkge1xuICAgIGlmICghYXdhaXQgQ29kZUFydGlmYWN0UmVwby5leGlzdGluZygnKmR1bW15KicpLmRvbWFpbkV4aXN0cygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29kZUFydGlmYWN0ID0gbmV3IENvZGVhcnRpZmFjdENsaWVudCh7XG4gICAgICBjcmVkZW50aWFsczogb3B0aW9ucy5jcmVkZW50aWFscyxcbiAgICB9KTtcblxuICAgIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBkbyB7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgcmV0cnlUaHJvdHRsZWQoKCkgPT4gY29kZUFydGlmYWN0LnNlbmQobmV3IExpc3RSZXBvc2l0b3JpZXNDb21tYW5kKHsgbmV4dFRva2VuIH0pKSk7XG5cbiAgICAgIGZvciAoY29uc3QgcmVwbyBvZiBwYWdlLnJlcG9zaXRvcmllcyA/PyBbXSkge1xuICAgICAgICBjb25zdCB0YWdzID0gYXdhaXQgcmV0cnlUaHJvdHRsZWQoKCkgPT4gY29kZUFydGlmYWN0LnNlbmQobmV3IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kKHsgcmVzb3VyY2VBcm46IHJlcG8uYXJuISB9KSkpO1xuICAgICAgICBjb25zdCBjb2xsZWN0YWJsZSA9IHRhZ3M/LnRhZ3M/LmZpbmQodCA9PiB0LmtleSA9PT0gQ09MTEVDVF9CWV9UQUcgJiYgTnVtYmVyKHQudmFsdWUpIDwgRGF0ZS5ub3coKSk7XG4gICAgICAgIGlmIChjb2xsZWN0YWJsZSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRGVsZXRpbmcnLCByZXBvLm5hbWUpO1xuICAgICAgICAgIGF3YWl0IHJldHJ5VGhyb3R0bGVkKCgpID0+IGNvZGVBcnRpZmFjdC5zZW5kKG5ldyBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHJlcG8uZG9tYWluTmFtZSEsXG4gICAgICAgICAgICByZXBvc2l0b3J5OiByZXBvLm5hbWUhLFxuICAgICAgICAgIH0pKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmV4dFRva2VuID0gcGFnZS5uZXh0VG9rZW47XG4gICAgfSB3aGlsZSAobmV4dFRva2VuKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBucG1VcHN0cmVhbSA9ICducG0tdXBzdHJlYW0nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHlwaVVwc3RyZWFtID0gJ3B5cGktdXBzdHJlYW0nO1xuICBwdWJsaWMgcmVhZG9ubHkgbnVnZXRVcHN0cmVhbSA9ICdudWdldC11cHN0cmVhbSc7XG4gIHB1YmxpYyByZWFkb25seSBtYXZlblVwc3RyZWFtID0gJ21hdmVuLXVwc3RyZWFtJztcbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbiA9IENvZGVBcnRpZmFjdFJlcG8uREVGQVVMVF9ET01BSU47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlQXJ0aWZhY3Q7XG5cbiAgcHJpdmF0ZSBfbG9naW5JbmZvcm1hdGlvbjogTG9naW5JbmZvcm1hdGlvbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENvZGVBcnRpZmFjdFJlcG9PcHRpb25zID0ge30sXG4gICkge1xuICAgIHRoaXMuY29kZUFydGlmYWN0ID0gbmV3IENvZGVhcnRpZmFjdENsaWVudCh7IGNyZWRlbnRpYWxzOiBvcHRpb25zLmNyZWRlbnRpYWxzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZURvbWFpbigpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlVXBzdHJlYW1zKCk7XG5cbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5yZXBvc2l0b3J5TmFtZSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUZXN0aW5nIHJlcG9zaXRvcnknLFxuICAgICAgdXBzdHJlYW1zOiBbXG4gICAgICAgIHRoaXMubnBtVXBzdHJlYW0sXG4gICAgICAgIHRoaXMucHlwaVVwc3RyZWFtLFxuICAgICAgICB0aGlzLm51Z2V0VXBzdHJlYW0sXG4gICAgICAgIHRoaXMubWF2ZW5VcHN0cmVhbSxcbiAgICAgIF0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIFtDT0xMRUNUX0JZX1RBR106IGAke0RhdGUubm93KCkgKyBSRVBPX0xJRkVUSU1FX01TfWAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFic29yYiBvbGQgbG9naW4gaW5mb3JtYXRpb25cbiAgICovXG4gIHB1YmxpYyBzZXRMb2dpbkluZm9ybWF0aW9uKGxvZ2luSW5mbzogTG9naW5JbmZvcm1hdGlvbikge1xuICAgIGlmIChsb2dpbkluZm8ucmVwb3NpdG9yeU5hbWUgIT09IHRoaXMucmVwb3NpdG9yeU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhpcyBsb2dpbiBpbmZvIHNlZW1zIHRvIGJlIGZvciBhIGRpZmZlcmVudCByZXBvLiAnJHt0aGlzLnJlcG9zaXRvcnlOYW1lfScgIT0gJyR7bG9naW5JbmZvLnJlcG9zaXRvcnlOYW1lfSdgKTtcbiAgICB9XG4gICAgdGhpcy5fbG9naW5JbmZvcm1hdGlvbiA9IGxvZ2luSW5mbztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbigpOiBQcm9taXNlPExvZ2luSW5mb3JtYXRpb24+IHtcbiAgICBpZiAodGhpcy5fbG9naW5JbmZvcm1hdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvZ2luSW5mb3JtYXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb25TZWNvbmRzID0gMTIgKiAzNjAwO1xuICAgIGNvbnN0IGF1dGhUb2tlbiA9IGF3YWl0IHRoaXMuc2VuZChuZXcgR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZCh7IGRvbWFpbjogdGhpcy5kb21haW4sIGR1cmF0aW9uU2Vjb25kcyB9KSk7XG5cbiAgICB0aGlzLl9sb2dpbkluZm9ybWF0aW9uID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgIGF1dGhUb2tlbjogYXV0aFRva2VuLmF1dGhvcml6YXRpb25Ub2tlbiEsXG4gICAgICBleHBpcmF0aW9uVGltZU1zOiBhdXRoVG9rZW4uZXhwaXJhdGlvbj8uZ2V0VGltZSgpID8/IChEYXRlLm5vdygpICsgZHVyYXRpb25TZWNvbmRzICogMTAwMCksXG4gICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgIG5wbUVuZHBvaW50OiAoYXdhaXQgdGhpcy5zZW5kKG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSwgZm9ybWF0OiAnbnBtJyB9KSkpLnJlcG9zaXRvcnlFbmRwb2ludCEsXG4gICAgICBtYXZlbkVuZHBvaW50OiAoYXdhaXQgdGhpcy5zZW5kKG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSwgZm9ybWF0OiAnbWF2ZW4nIH0pKSkucmVwb3NpdG9yeUVuZHBvaW50ISxcbiAgICAgIG51Z2V0RW5kcG9pbnQ6IChhd2FpdCB0aGlzLnNlbmQobmV3IEdldFJlcG9zaXRvcnlFbmRwb2ludENvbW1hbmQoeyBkb21haW46IHRoaXMuZG9tYWluLCByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLCBmb3JtYXQ6ICdudWdldCcgfSkpKS5yZXBvc2l0b3J5RW5kcG9pbnQhLFxuICAgICAgcHlwaUVuZHBvaW50OiAoYXdhaXQgdGhpcy5zZW5kKG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSwgZm9ybWF0OiAncHlwaScgfSkpKS5yZXBvc2l0b3J5RW5kcG9pbnQhLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luSW5mb3JtYXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQobmV3IERlbGV0ZVJlcG9zaXRvcnlDb21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgIH0pKTtcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RlbGV0ZWQnLCB0aGlzLnJlcG9zaXRvcnlOYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghaXNSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uKGUpKSB7IHRocm93IGU7IH1cbiAgICAgIC8vIE9rYXlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhbGwgcGFja2FnZXMgYW5kIG1hcmsgdGhlbSBhcyBcImFsbG93IHVwc3RyZWFtIHZlcnNpb25zXCIuXG4gICAqXG4gICAqIElmIHdlIGRvbid0IGRvIHRoaXMgYW5kIHdlIHB1Ymxpc2ggYGZvb0AyLjMuNC1yYy4wYCwgdGhlbiB3ZSBjYW4ndFxuICAgKiBkb3dubG9hZCBgZm9vQDIuMy4wYCBhbnltb3JlIGJlY2F1c2UgYnkgZGVmYXVsdCBDb2RlQXJ0aWZhY3Qgd2lsbFxuICAgKiBibG9jayBkaWZmZXJlbnQgdmVyc2lvbnMgZnJvbSB0aGUgc2FtZSBwYWNrYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG1hcmtBbGxVcHN0cmVhbUFsbG93KCkge1xuICAgIGZvciBhd2FpdCAoY29uc3QgcGtnIG9mIHRoaXMubGlzdFBhY2thZ2VzKHsgdXBzdHJlYW06ICdCTE9DSycgfSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChuZXcgUHV0UGFja2FnZU9yaWdpbkNvbmZpZ3VyYXRpb25Db21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcblxuICAgICAgICBmb3JtYXQ6IHBrZy5mb3JtYXQhLFxuICAgICAgICBwYWNrYWdlOiBwa2cucGFja2FnZSEsXG4gICAgICAgIG5hbWVzcGFjZTogcGtnLm5hbWVzcGFjZSEsXG4gICAgICAgIHJlc3RyaWN0aW9uczoge1xuICAgICAgICAgIHB1Ymxpc2g6ICdBTExPVycsXG4gICAgICAgICAgdXBzdHJlYW06ICdBTExPVycsXG4gICAgICAgIH0sXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVEb21haW4oKSB7XG4gICAgaWYgKGF3YWl0IHRoaXMuZG9tYWluRXhpc3RzKCkpIHsgcmV0dXJuOyB9XG4gICAgYXdhaXQgdGhpcy5zZW5kKG5ldyBDcmVhdGVEb21haW5Db21tYW5kKHtcbiAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICB0YWdzOiBbeyBrZXk6ICd0ZXN0aW5nJywgdmFsdWU6ICd0cnVlJyB9XSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZVVwc3RyZWFtcygpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5ucG1VcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgTlBNJyxcbiAgICAgIGV4dGVybmFsOiAncHVibGljOm5wbWpzJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5tYXZlblVwc3RyZWFtLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGZvciBNYXZlbicsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzptYXZlbi1jZW50cmFsJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5udWdldFVwc3RyZWFtLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGZvciBOdUdldCcsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpudWdldC1vcmcnLFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVwb3NpdG9yeSh0aGlzLnB5cGlVcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgUHlQSScsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpweXBpJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlUmVwb3NpdG9yeShuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZXh0ZXJuYWw/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdXBzdHJlYW1zPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIH0pIHtcbiAgICBpZiAoYXdhaXQgdGhpcy5yZXBvc2l0b3J5RXhpc3RzKG5hbWUpKSB7IHJldHVybjsgfVxuXG4gICAgYXdhaXQgdGhpcy5zZW5kKG5ldyBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZCh7XG4gICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgcmVwb3NpdG9yeTogbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zPy5kZXNjcmlwdGlvbixcbiAgICAgIHVwc3RyZWFtczogb3B0aW9ucz8udXBzdHJlYW1zPy5tYXAocmVwb3NpdG9yeU5hbWUgPT4gKHsgcmVwb3NpdG9yeU5hbWUgfSkpLFxuICAgICAgdGFnczogb3B0aW9ucz8udGFncyA/IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMudGFncykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpIDogdW5kZWZpbmVkLFxuICAgIH0pKTtcblxuICAgIGlmIChvcHRpb25zPy5leHRlcm5hbCkge1xuICAgICAgY29uc3QgZXh0ZXJuYWxDb25uZWN0aW9uID0gb3B0aW9ucy5leHRlcm5hbDtcbiAgICAgIGF3YWl0IHJldHJ5KCgpID0+IHRoaXMuc2VuZChuZXcgQXNzb2NpYXRlRXh0ZXJuYWxDb25uZWN0aW9uQ29tbWFuZCh7XG4gICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgIHJlcG9zaXRvcnk6IG5hbWUsXG4gICAgICAgIGV4dGVybmFsQ29ubmVjdGlvbixcbiAgICAgIH0pKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkb21haW5FeGlzdHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChuZXcgRGVzY3JpYmVEb21haW5Db21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiB9KSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghaXNSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uKGUpKSB7IHRocm93IGU7IH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcG9zaXRvcnlFeGlzdHMobmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChuZXcgRGVzY3JpYmVSZXBvc2l0b3J5Q29tbWFuZCh7IGRvbWFpbjogdGhpcy5kb21haW4sIHJlcG9zaXRvcnk6IG5hbWUgfSkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoIWlzUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbihlKSkgeyB0aHJvdyBlOyB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyogbGlzdFBhY2thZ2VzKGZpbHRlcjogUGljazxMaXN0UGFja2FnZXNDb21tYW5kSW5wdXQsICd1cHN0cmVhbSd8J3B1Ymxpc2gnfCdmb3JtYXQnPiA9IHt9KSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZW5kKG5ldyBMaXN0UGFja2FnZXNDb21tYW5kKHtcbiAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgLi4uZmlsdGVyLFxuICAgIH0pKTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgcmVzcG9uc2UucGFja2FnZXMgPz8gW10pIHtcbiAgICAgICAgeWllbGQgcDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXNwb25zZS5uZXh0VG9rZW4pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZW5kKG5ldyBMaXN0UGFja2FnZXNDb21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICBuZXh0VG9rZW46IHJlc3BvbnNlLm5leHRUb2tlbixcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICBwcml2YXRlIHNlbmQ8Q2xpZW50SW5wdXQgZXh0ZW5kcyBvYmplY3QsIElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBDbGllbnRPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIGFueT4pOiBQcm9taXNlPE91dHB1dFR5cGU+IHtcbiAgICByZXR1cm4gcmV0cnlUaHJvdHRsZWQoKCkgPT4gdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChjb21tYW5kIGFzIGFueSkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5PEE+KGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KSB7XG4gIGxldCBhdHRlbXB0cyA9IDM7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGF0dGVtcHRzLS0gPT09IDApIHsgdGhyb3cgZTsgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZGVidWcoZS5tZXNzYWdlKTtcbiAgICAgIGF3YWl0IHNsZWVwKDUwMCk7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5VGhyb3R0bGVkPEE+KGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KSB7XG4gIGxldCB0aW1lID0gMTAwO1xuICBsZXQgYXR0ZW1wdHMgPSAxNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5kZWJ1ZyhlLm1lc3NhZ2UpO1xuICAgICAgaWYgKGUuY29kZSAhPT0gJ1Rocm90dGxpbmdFeGNlcHRpb24nKSB7IHRocm93IGU7IH1cbiAgICAgIGlmIChhdHRlbXB0cy0tID09PSAwKSB7IHRocm93IGU7IH1cbiAgICAgIGF3YWl0IHNsZWVwKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRpbWUpKTtcbiAgICAgIHRpbWUgKj0gMjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbkluZm9ybWF0aW9uIHtcbiAgcmVhZG9ubHkgYXV0aFRva2VuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cGlyYXRpb25UaW1lTXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbnBtRW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbWF2ZW5FbmRwb2ludDogc3RyaW5nO1xuICByZWFkb25seSBudWdldEVuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHB5cGlFbmRwb2ludDogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBpc1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24oeDogYW55KTogeCBpcyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIHtcbiAgcmV0dXJuIHggaW5zdGFuY2VvZiBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uO1xufSJdfQ==
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWFydGlmYWN0LXJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZWFydGlmYWN0L2NvZGVhcnRpZmFjdC1yZXBvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUFxZDtBQUVyZCx5Q0FBc0M7QUFFdEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVO0FBTXJEOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFHM0I7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFtQyxFQUFFO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV4RSxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsU0FBUyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFZLEVBQUUsVUFBbUMsRUFBRTtRQUNwRixNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBc0IsRUFBRSxVQUFtQyxFQUFFO1FBQ2xGLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENB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RSxDQUFDO1NBQ3RCO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixJQUFJLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFBRSxNQUFNLENBQUMsQ0FBQzthQUFFO1lBQ2xDLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixNQUFNLElBQUEsYUFBSyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FBSSxLQUF1QjtJQUN0RCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7SUFDZixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDbEIsT0FBTyxJQUFJLEVBQUU7UUFDWCxJQUFJO1lBQ0YsT0FBTyxNQUFNLEtBQUssRUFBRSxDQUFDO1NBQ3RCO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqQixJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVkseUNBQW1CLENBQUMsSUFBSSxFQUFFLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQzNELE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7WUFFRCxNQUFNLElBQUEsYUFBSyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUNYO0tBQ0Y7QUFDSCxDQUFDO0FBWUQsU0FBUywyQkFBMkIsQ0FBQyxDQUFNO0lBQ3pDLE9BQU8sQ0FBQyxZQUFZLCtDQUF5QixDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NvY2lhdGVFeHRlcm5hbENvbm5lY3Rpb25Db21tYW5kLCBDb2RlYXJ0aWZhY3RDbGllbnQsIENyZWF0ZURvbWFpbkNvbW1hbmQsIENyZWF0ZVJlcG9zaXRvcnlDb21tYW5kLCBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCwgRGVzY3JpYmVEb21haW5Db21tYW5kLCBEZXNjcmliZVJlcG9zaXRvcnlDb21tYW5kLCBHZXRBdXRob3JpemF0aW9uVG9rZW5Db21tYW5kLCBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kLCBMaXN0UGFja2FnZXNDb21tYW5kLCBMaXN0UGFja2FnZXNDb21tYW5kSW5wdXQsIExpc3RSZXBvc2l0b3JpZXNDb21tYW5kLCBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCwgUHV0UGFja2FnZU9yaWdpbkNvbmZpZ3VyYXRpb25Db21tYW5kLCBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLCBUaHJvdHRsaW5nRXhjZXB0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyBBd3NDcmVkZW50aWFsSWRlbnRpdHlQcm92aWRlciwgQ29tbWFuZCwgTWV0YWRhdGFCZWFyZXIgfSBmcm9tICdAYXdzLXNkay90eXBlcyc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2hlbHAvc2xlZXAnO1xuXG5jb25zdCBDT0xMRUNUX0JZX1RBRyA9ICdjb2xsZWN0LWJ5JztcbmNvbnN0IFJFUE9fTElGRVRJTUVfTVMgPSAyNCAqIDM2MDAgKiAxMDAwOyAvLyBPbmUgZGF5XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFydGlmYWN0UmVwb09wdGlvbnMge1xuICByZWFkb25seSBjcmVkZW50aWFscz86IEF3c0NyZWRlbnRpYWxJZGVudGl0eVByb3ZpZGVyO1xufVxuXG4vKipcbiAqIEEgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnlcbiAqL1xuZXhwb3J0IGNsYXNzIENvZGVBcnRpZmFjdFJlcG8ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRE9NQUlOID0gJ3B1YmxpYi1jYSc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENvZGVBcnRpZmFjdCByZXBvIHdpdGggYSByYW5kb20gbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBjcmVhdGVSYW5kb20ob3B0aW9uczogQ29kZUFydGlmYWN0UmVwb09wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHF1YWxpZmllciA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJycpO1xuXG4gICAgY29uc3QgcmVwbyA9IG5ldyBDb2RlQXJ0aWZhY3RSZXBvKGB0ZXN0LSR7cXVhbGlmaWVyfWAsIG9wdGlvbnMpO1xuICAgIGF3YWl0IHJlcG8uY3JlYXRlKCk7XG4gICAgcmV0dXJuIHJlcG87XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnkgd2l0aCBhIGdpdmVuIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlV2l0aE5hbWUobmFtZTogc3RyaW5nLCBvcHRpb25zOiBDb2RlQXJ0aWZhY3RSZXBvT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgcmVwbyA9IG5ldyBDb2RlQXJ0aWZhY3RSZXBvKG5hbWUsIG9wdGlvbnMpO1xuICAgIGF3YWl0IHJlcG8uY3JlYXRlKCk7XG4gICAgcmV0dXJuIHJlcG87XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGV4aXN0aW5nIENvZGVBcnRpZmFjdCByZXBvc2l0b3J5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4aXN0aW5nKHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IENvZGVBcnRpZmFjdFJlcG9PcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gbmV3IENvZGVBcnRpZmFjdFJlcG8ocmVwb3NpdG9yeU5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdhcmJhZ2UgY29sbGVjdCByZXBvc2l0b3JpZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZ2Mob3B0aW9uczogQ29kZUFydGlmYWN0UmVwb09wdGlvbnMgPSB7fSkge1xuICAgIGlmICghYXdhaXQgQ29kZUFydGlmYWN0UmVwby5leGlzdGluZygnKmR1bW15KicpLmRvbWFpbkV4aXN0cygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29kZUFydGlmYWN0ID0gbmV3IENvZGVhcnRpZmFjdENsaWVudCh7XG4gICAgICBjcmVkZW50aWFsczogb3B0aW9ucy5jcmVkZW50aWFscyxcbiAgICB9KTtcblxuICAgIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBkbyB7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgcmV0cnlUaHJvdHRsZWQoKCkgPT4gY29kZUFydGlmYWN0LnNlbmQobmV3IExpc3RSZXBvc2l0b3JpZXNDb21tYW5kKHsgbmV4dFRva2VuIH0pKSk7XG5cbiAgICAgIGZvciAoY29uc3QgcmVwbyBvZiBwYWdlLnJlcG9zaXRvcmllcyA/PyBbXSkge1xuICAgICAgICBjb25zdCB0YWdzID0gYXdhaXQgcmV0cnlUaHJvdHRsZWQoKCkgPT4gY29kZUFydGlmYWN0LnNlbmQobmV3IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kKHsgcmVzb3VyY2VBcm46IHJlcG8uYXJuISB9KSkpO1xuICAgICAgICBjb25zdCBjb2xsZWN0YWJsZSA9IHRhZ3M/LnRhZ3M/LmZpbmQodCA9PiB0LmtleSA9PT0gQ09MTEVDVF9CWV9UQUcgJiYgTnVtYmVyKHQudmFsdWUpIDwgRGF0ZS5ub3coKSk7XG4gICAgICAgIGlmIChjb2xsZWN0YWJsZSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRGVsZXRpbmcnLCByZXBvLm5hbWUpO1xuICAgICAgICAgIGF3YWl0IHJldHJ5VGhyb3R0bGVkKCgpID0+IGNvZGVBcnRpZmFjdC5zZW5kKG5ldyBEZWxldGVSZXBvc2l0b3J5Q29tbWFuZCh7XG4gICAgICAgICAgICBkb21haW46IHJlcG8uZG9tYWluTmFtZSEsXG4gICAgICAgICAgICByZXBvc2l0b3J5OiByZXBvLm5hbWUhLFxuICAgICAgICAgIH0pKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmV4dFRva2VuID0gcGFnZS5uZXh0VG9rZW47XG4gICAgfSB3aGlsZSAobmV4dFRva2VuKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBucG1VcHN0cmVhbSA9ICducG0tdXBzdHJlYW0nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHlwaVVwc3RyZWFtID0gJ3B5cGktdXBzdHJlYW0nO1xuICBwdWJsaWMgcmVhZG9ubHkgbnVnZXRVcHN0cmVhbSA9ICdudWdldC11cHN0cmVhbSc7XG4gIHB1YmxpYyByZWFkb25seSBtYXZlblVwc3RyZWFtID0gJ21hdmVuLXVwc3RyZWFtJztcbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbiA9IENvZGVBcnRpZmFjdFJlcG8uREVGQVVMVF9ET01BSU47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlQXJ0aWZhY3Q7XG5cbiAgcHJpdmF0ZSBfbG9naW5JbmZvcm1hdGlvbjogTG9naW5JbmZvcm1hdGlvbiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENvZGVBcnRpZmFjdFJlcG9PcHRpb25zID0ge30sXG4gICkge1xuICAgIHRoaXMuY29kZUFydGlmYWN0ID0gbmV3IENvZGVhcnRpZmFjdENsaWVudCh7IGNyZWRlbnRpYWxzOiBvcHRpb25zLmNyZWRlbnRpYWxzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZURvbWFpbigpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlVXBzdHJlYW1zKCk7XG5cbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5yZXBvc2l0b3J5TmFtZSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUZXN0aW5nIHJlcG9zaXRvcnknLFxuICAgICAgdXBzdHJlYW1zOiBbXG4gICAgICAgIHRoaXMubnBtVXBzdHJlYW0sXG4gICAgICAgIHRoaXMucHlwaVVwc3RyZWFtLFxuICAgICAgICB0aGlzLm51Z2V0VXBzdHJlYW0sXG4gICAgICAgIHRoaXMubWF2ZW5VcHN0cmVhbSxcbiAgICAgIF0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIFtDT0xMRUNUX0JZX1RBR106IGAke0RhdGUubm93KCkgKyBSRVBPX0xJRkVUSU1FX01TfWAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFic29yYiBvbGQgbG9naW4gaW5mb3JtYXRpb25cbiAgICovXG4gIHB1YmxpYyBzZXRMb2dpbkluZm9ybWF0aW9uKGxvZ2luSW5mbzogTG9naW5JbmZvcm1hdGlvbikge1xuICAgIGlmIChsb2dpbkluZm8ucmVwb3NpdG9yeU5hbWUgIT09IHRoaXMucmVwb3NpdG9yeU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhpcyBsb2dpbiBpbmZvIHNlZW1zIHRvIGJlIGZvciBhIGRpZmZlcmVudCByZXBvLiAnJHt0aGlzLnJlcG9zaXRvcnlOYW1lfScgIT0gJyR7bG9naW5JbmZvLnJlcG9zaXRvcnlOYW1lfSdgKTtcbiAgICB9XG4gICAgdGhpcy5fbG9naW5JbmZvcm1hdGlvbiA9IGxvZ2luSW5mbztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbigpOiBQcm9taXNlPExvZ2luSW5mb3JtYXRpb24+IHtcbiAgICBpZiAodGhpcy5fbG9naW5JbmZvcm1hdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvZ2luSW5mb3JtYXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb25TZWNvbmRzID0gMTIgKiAzNjAwO1xuICAgIGNvbnN0IGF1dGhUb2tlbiA9IGF3YWl0IHRoaXMuc2VuZChuZXcgR2V0QXV0aG9yaXphdGlvblRva2VuQ29tbWFuZCh7IGRvbWFpbjogdGhpcy5kb21haW4sIGR1cmF0aW9uU2Vjb25kcyB9KSk7XG5cbiAgICB0aGlzLl9sb2dpbkluZm9ybWF0aW9uID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgIGF1dGhUb2tlbjogYXV0aFRva2VuLmF1dGhvcml6YXRpb25Ub2tlbiEsXG4gICAgICBleHBpcmF0aW9uVGltZU1zOiBhdXRoVG9rZW4uZXhwaXJhdGlvbj8uZ2V0VGltZSgpID8/IChEYXRlLm5vdygpICsgZHVyYXRpb25TZWNvbmRzICogMTAwMCksXG4gICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgIG5wbUVuZHBvaW50OiAoYXdhaXQgdGhpcy5zZW5kKG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSwgZm9ybWF0OiAnbnBtJyB9KSkpLnJlcG9zaXRvcnlFbmRwb2ludCEsXG4gICAgICBtYXZlbkVuZHBvaW50OiAoYXdhaXQgdGhpcy5zZW5kKG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSwgZm9ybWF0OiAnbWF2ZW4nIH0pKSkucmVwb3NpdG9yeUVuZHBvaW50ISxcbiAgICAgIG51Z2V0RW5kcG9pbnQ6IChhd2FpdCB0aGlzLnNlbmQobmV3IEdldFJlcG9zaXRvcnlFbmRwb2ludENvbW1hbmQoeyBkb21haW46IHRoaXMuZG9tYWluLCByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLCBmb3JtYXQ6ICdudWdldCcgfSkpKS5yZXBvc2l0b3J5RW5kcG9pbnQhLFxuICAgICAgcHlwaUVuZHBvaW50OiAoYXdhaXQgdGhpcy5zZW5kKG5ldyBHZXRSZXBvc2l0b3J5RW5kcG9pbnRDb21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiwgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSwgZm9ybWF0OiAncHlwaScgfSkpKS5yZXBvc2l0b3J5RW5kcG9pbnQhLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luSW5mb3JtYXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQobmV3IERlbGV0ZVJlcG9zaXRvcnlDb21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgIH0pKTtcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RlbGV0ZWQnLCB0aGlzLnJlcG9zaXRvcnlOYW1lKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghaXNSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uKGUpKSB7IHRocm93IGU7IH1cbiAgICAgIC8vIE9rYXlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhbGwgcGFja2FnZXMgYW5kIG1hcmsgdGhlbSBhcyBcImFsbG93IHVwc3RyZWFtIHZlcnNpb25zXCIuXG4gICAqXG4gICAqIElmIHdlIGRvbid0IGRvIHRoaXMgYW5kIHdlIHB1Ymxpc2ggYGZvb0AyLjMuNC1yYy4wYCwgdGhlbiB3ZSBjYW4ndFxuICAgKiBkb3dubG9hZCBgZm9vQDIuMy4wYCBhbnltb3JlIGJlY2F1c2UgYnkgZGVmYXVsdCBDb2RlQXJ0aWZhY3Qgd2lsbFxuICAgKiBibG9jayBkaWZmZXJlbnQgdmVyc2lvbnMgZnJvbSB0aGUgc2FtZSBwYWNrYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG1hcmtBbGxVcHN0cmVhbUFsbG93KCkge1xuICAgIGZvciBhd2FpdCAoY29uc3QgcGtnIG9mIHRoaXMubGlzdFBhY2thZ2VzKHsgdXBzdHJlYW06ICdCTE9DSycgfSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChuZXcgUHV0UGFja2FnZU9yaWdpbkNvbmZpZ3VyYXRpb25Db21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcblxuICAgICAgICBmb3JtYXQ6IHBrZy5mb3JtYXQhLFxuICAgICAgICBwYWNrYWdlOiBwa2cucGFja2FnZSEsXG4gICAgICAgIG5hbWVzcGFjZTogcGtnLm5hbWVzcGFjZSEsXG4gICAgICAgIHJlc3RyaWN0aW9uczoge1xuICAgICAgICAgIHB1Ymxpc2g6ICdBTExPVycsXG4gICAgICAgICAgdXBzdHJlYW06ICdBTExPVycsXG4gICAgICAgIH0sXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVEb21haW4oKSB7XG4gICAgaWYgKGF3YWl0IHRoaXMuZG9tYWluRXhpc3RzKCkpIHsgcmV0dXJuOyB9XG4gICAgYXdhaXQgdGhpcy5zZW5kKG5ldyBDcmVhdGVEb21haW5Db21tYW5kKHtcbiAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICB0YWdzOiBbeyBrZXk6ICd0ZXN0aW5nJywgdmFsdWU6ICd0cnVlJyB9XSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZVVwc3RyZWFtcygpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5ucG1VcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgTlBNJyxcbiAgICAgIGV4dGVybmFsOiAncHVibGljOm5wbWpzJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5tYXZlblVwc3RyZWFtLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGZvciBNYXZlbicsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzptYXZlbi1jZW50cmFsJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlcG9zaXRvcnkodGhpcy5udWdldFVwc3RyZWFtLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGZvciBOdUdldCcsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpudWdldC1vcmcnLFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVwb3NpdG9yeSh0aGlzLnB5cGlVcHN0cmVhbSwge1xuICAgICAgZGVzY3JpcHRpb246ICdUaGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgUHlQSScsXG4gICAgICBleHRlcm5hbDogJ3B1YmxpYzpweXBpJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlUmVwb3NpdG9yeShuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZXh0ZXJuYWw/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdXBzdHJlYW1zPzogc3RyaW5nW107XG4gICAgcmVhZG9ubHkgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIH0pIHtcbiAgICBpZiAoYXdhaXQgdGhpcy5yZXBvc2l0b3J5RXhpc3RzKG5hbWUpKSB7IHJldHVybjsgfVxuXG4gICAgYXdhaXQgdGhpcy5zZW5kKG5ldyBDcmVhdGVSZXBvc2l0b3J5Q29tbWFuZCh7XG4gICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgcmVwb3NpdG9yeTogbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zPy5kZXNjcmlwdGlvbixcbiAgICAgIHVwc3RyZWFtczogb3B0aW9ucz8udXBzdHJlYW1zPy5tYXAocmVwb3NpdG9yeU5hbWUgPT4gKHsgcmVwb3NpdG9yeU5hbWUgfSkpLFxuICAgICAgdGFnczogb3B0aW9ucz8udGFncyA/IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMudGFncykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpIDogdW5kZWZpbmVkLFxuICAgIH0pKTtcblxuICAgIGlmIChvcHRpb25zPy5leHRlcm5hbCkge1xuICAgICAgY29uc3QgZXh0ZXJuYWxDb25uZWN0aW9uID0gb3B0aW9ucy5leHRlcm5hbDtcbiAgICAgIGF3YWl0IHJldHJ5KCgpID0+IHRoaXMuc2VuZChuZXcgQXNzb2NpYXRlRXh0ZXJuYWxDb25uZWN0aW9uQ29tbWFuZCh7XG4gICAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICAgIHJlcG9zaXRvcnk6IG5hbWUsXG4gICAgICAgIGV4dGVybmFsQ29ubmVjdGlvbixcbiAgICAgIH0pKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkb21haW5FeGlzdHMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChuZXcgRGVzY3JpYmVEb21haW5Db21tYW5kKHsgZG9tYWluOiB0aGlzLmRvbWFpbiB9KSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghaXNSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uKGUpKSB7IHRocm93IGU7IH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcG9zaXRvcnlFeGlzdHMobmFtZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZChuZXcgRGVzY3JpYmVSZXBvc2l0b3J5Q29tbWFuZCh7IGRvbWFpbjogdGhpcy5kb21haW4sIHJlcG9zaXRvcnk6IG5hbWUgfSkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoIWlzUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbihlKSkgeyB0aHJvdyBlOyB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyogbGlzdFBhY2thZ2VzKGZpbHRlcjogUGljazxMaXN0UGFja2FnZXNDb21tYW5kSW5wdXQsICd1cHN0cmVhbSd8J3B1Ymxpc2gnfCdmb3JtYXQnPiA9IHt9KSB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZW5kKG5ldyBMaXN0UGFja2FnZXNDb21tYW5kKHtcbiAgICAgIGRvbWFpbjogdGhpcy5kb21haW4sXG4gICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgLi4uZmlsdGVyLFxuICAgIH0pKTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgcmVzcG9uc2UucGFja2FnZXMgPz8gW10pIHtcbiAgICAgICAgeWllbGQgcDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXNwb25zZS5uZXh0VG9rZW4pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZW5kKG5ldyBMaXN0UGFja2FnZXNDb21tYW5kKHtcbiAgICAgICAgZG9tYWluOiB0aGlzLmRvbWFpbixcbiAgICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICBuZXh0VG9rZW46IHJlc3BvbnNlLm5leHRUb2tlbixcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICBwcml2YXRlIHNlbmQ8Q2xpZW50SW5wdXQgZXh0ZW5kcyBvYmplY3QsIElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBDbGllbnRPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIGFueT4pOiBQcm9taXNlPE91dHB1dFR5cGU+IHtcbiAgICByZXR1cm4gcmV0cnlUaHJvdHRsZWQoKCkgPT4gdGhpcy5jb2RlQXJ0aWZhY3Quc2VuZChjb21tYW5kIGFzIGFueSkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5PEE+KGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KSB7XG4gIGxldCBhdHRlbXB0cyA9IDM7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBibG9jaygpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGF0dGVtcHRzLS0gPT09IDApIHsgdGhyb3cgZTsgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZGVidWcoZS5tZXNzYWdlKTtcbiAgICAgIGF3YWl0IHNsZWVwKDUwMCk7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5VGhyb3R0bGVkPEE+KGJsb2NrOiAoKSA9PiBQcm9taXNlPEE+KSB7XG4gIGxldCB0aW1lID0gMTAwO1xuICBsZXQgYXR0ZW1wdHMgPSAxNTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5kZWJ1ZyhlKTtcblxuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFRocm90dGxpbmdFeGNlcHRpb24pIHx8IC0tYXR0ZW1wdHMgPT09IDApIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2xlZXAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGltZSkpO1xuICAgICAgdGltZSAqPSAyO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luSW5mb3JtYXRpb24ge1xuICByZWFkb25seSBhdXRoVG9rZW46IHN0cmluZztcbiAgcmVhZG9ubHkgZXhwaXJhdGlvblRpbWVNczogbnVtYmVyO1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBucG1FbmRwb2ludDogc3RyaW5nO1xuICByZWFkb25seSBtYXZlbkVuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG51Z2V0RW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcHlwaUVuZHBvaW50OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGlzUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbih4OiBhbnkpOiB4IGlzIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24ge1xuICByZXR1cm4geCBpbnN0YW5jZW9mIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb247XG59Il19
package/package.json CHANGED
@@ -52,7 +52,7 @@
52
52
  "organization": true
53
53
  },
54
54
  "devDependencies": {
55
- "@aws-sdk/client-sts": "^3.328.0",
55
+ "@aws-sdk/client-sts": "^3.329.0",
56
56
  "@types/glob": "^8.1.0",
57
57
  "@types/jest": "^27.5.2",
58
58
  "@types/node": "^16",
@@ -67,16 +67,16 @@
67
67
  "jest": "^27.5.1",
68
68
  "jest-junit": "^15",
69
69
  "npm-check-updates": "^16",
70
- "projen": "^0.71.45",
70
+ "projen": "^0.71.46",
71
71
  "standard-version": "^9",
72
72
  "ts-jest": "^27.1.5",
73
73
  "ts-node": "^10.9.1",
74
74
  "typescript": "~4.9.5"
75
75
  },
76
76
  "dependencies": {
77
- "@aws-sdk/client-codeartifact": "^3.328.0",
78
- "@aws-sdk/credential-providers": "^3.328.0",
79
- "@aws-sdk/types": "^3.310.0",
77
+ "@aws-sdk/client-codeartifact": "^3.329.0",
78
+ "@aws-sdk/credential-providers": "^3.329.0",
79
+ "@aws-sdk/types": "^3.329.0",
80
80
  "@types/fs-extra": "^8.0.0",
81
81
  "fs-extra": "^8.0.0",
82
82
  "glob": "10.0.0",
@@ -87,7 +87,7 @@
87
87
  "main": "lib/index.js",
88
88
  "license": "Apache-2.0",
89
89
  "homepage": "https://github.com/cdklabs/publib",
90
- "version": "0.2.682",
90
+ "version": "0.2.684",
91
91
  "jest": {
92
92
  "testMatch": [
93
93
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",
package/package.json.bak CHANGED
@@ -52,7 +52,7 @@
52
52
  "organization": true
53
53
  },
54
54
  "devDependencies": {
55
- "@aws-sdk/client-sts": "^3.328.0",
55
+ "@aws-sdk/client-sts": "^3.329.0",
56
56
  "@types/glob": "^8.1.0",
57
57
  "@types/jest": "^27.5.2",
58
58
  "@types/node": "^16",
@@ -67,16 +67,16 @@
67
67
  "jest": "^27.5.1",
68
68
  "jest-junit": "^15",
69
69
  "npm-check-updates": "^16",
70
- "projen": "^0.71.45",
70
+ "projen": "^0.71.46",
71
71
  "standard-version": "^9",
72
72
  "ts-jest": "^27.1.5",
73
73
  "ts-node": "^10.9.1",
74
74
  "typescript": "~4.9.5"
75
75
  },
76
76
  "dependencies": {
77
- "@aws-sdk/client-codeartifact": "^3.328.0",
78
- "@aws-sdk/credential-providers": "^3.328.0",
79
- "@aws-sdk/types": "^3.310.0",
77
+ "@aws-sdk/client-codeartifact": "^3.329.0",
78
+ "@aws-sdk/credential-providers": "^3.329.0",
79
+ "@aws-sdk/types": "^3.329.0",
80
80
  "@types/fs-extra": "^8.0.0",
81
81
  "fs-extra": "^8.0.0",
82
82
  "glob": "10.0.0",
@@ -87,7 +87,7 @@
87
87
  "main": "lib/index.js",
88
88
  "license": "Apache-2.0",
89
89
  "homepage": "https://github.com/cdklabs/publib",
90
- "version": "0.2.682",
90
+ "version": "0.2.684",
91
91
  "jest": {
92
92
  "testMatch": [
93
93
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",