@rosen-bridge/abstract-extractor 3.2.1 → 3.2.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @rosen-bridge/abstract-extractor
2
2
 
3
+ ## 3.2.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Replace `await-semaphore` with `@rosen-bridge/semaphore` package
8
+
9
+ ## 3.2.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Update dependencies
14
+ - @rosen-clients/ergo-explorer@2.1.3
15
+ - @rosen-clients/ergo-node@3.1.3
16
+
3
17
  ## 3.2.1
4
18
 
5
19
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"abstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../../lib/ergo/extractors/abstractErgoExtractor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC;IAgBrD,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAC/C,SAAS,CAAC,MAAM,EAAE,cAAc;IAhBlC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAC5C,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAGxB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,MAAM,GAAE,cAAkC;IAKtD;;;;;;OAMG;IACH,IAAI,GAAU,CAAC,SAAS,YAAY,EAClC,MAAM,CAAC,EACP,UAAU,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,GAAU,MAAM,YAAY,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAaP;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAM7C;IAEF;;;;;OAKG;IACH,qBAAqB,QAAO,kBAAkB,CAAC,eAAe,CAAC,CACZ;CACpD"}
1
+ {"version":3,"file":"abstractErgoExtractor.d.ts","sourceRoot":"","sources":["../../../lib/ergo/extractors/abstractErgoExtractor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB,CACzC,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC;IAgBrD,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAC/C,SAAS,CAAC,MAAM,EAAE,cAAc;IAhBlC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAC5C,aAAa,EACb,eAAe,CAChB,CAAC;IACF,SAAS,CAAC,SAAS,EAAE;SAClB,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAKC;IACF,OAAO,CAAC,aAAa,CAAe;gBAGxB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,MAAM,GAAE,cAAkC;IAKtD;;;;;;OAMG;IACH,IAAI,GAAU,CAAC,SAAS,YAAY,EAClC,MAAM,CAAC,EACP,UAAU,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KACtC,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF;;;;;;OAMG;IACH,MAAM,GAAU,MAAM,YAAY,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAY/D;IAEF;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI;IAaP;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAM7C;IAEF;;;;;OAKG;IACH,qBAAqB,QAAO,kBAAkB,CAAC,eAAe,CAAC,CACZ;CACpD"}
@@ -1,6 +1,6 @@
1
- import { Mutex } from 'await-semaphore';
2
1
  import { v4 as uuidv4 } from 'uuid';
3
2
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
3
+ import { Mutex } from '@rosen-bridge/semaphore';
4
4
  import { AbstractExtractor } from '../../abstractExtractor';
5
5
  import { CallbackType, } from '../interfaces';
6
6
  /**
@@ -96,4 +96,4 @@ export class AbstractErgoExtractor extends AbstractExtractor {
96
96
  */
97
97
  createUsedBlocksQuery = () => this.actions.createUsedBlocksQuery(this.getId());
98
98
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vZXh0cmFjdG9ycy9hYnN0cmFjdEVyZ29FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsT0FBTyxFQUVMLFlBQVksR0FJYixNQUFNLGVBQWUsQ0FBQztBQUV2Qjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQWdCLHFCQUdwQixTQUFRLGlCQUErQztJQWdCM0M7SUFDQTtJQVpGLFNBQVMsR0FFZjtRQUNGLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO0tBQ2hDLENBQUM7SUFDTSxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUVwQyxZQUNZLGlCQUFxQyxFQUNyQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUVwRCxLQUFLLEVBQUUsQ0FBQztRQUhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7SUFHdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksR0FBRyxLQUFLLEVBQ1YsSUFBTyxFQUNQLFFBQXVDLEVBQ3RCLEVBQUU7UUFDbkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDcEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUIsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILE1BQU0sR0FBRyxLQUFLLEVBQUUsSUFBa0IsRUFBRSxFQUFVLEVBQW9CLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxxQkFBcUIsRUFBRSxpQ0FBaUMsSUFBSSxJQUFJLENBQ2pFLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ08sZ0JBQWdCLENBQ3hCLElBQU8sRUFDUCxJQUF1QztRQUV2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHVCQUF1QixJQUFJLG9CQUFvQixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FDeEUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxxQkFBcUIsR0FBRyxHQUF3QyxFQUFFLENBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Q0FDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNdXRleCB9IGZyb20gJ2F3YWl0LXNlbWFwaG9yZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV4dHJhY3RvciB9IGZyb20gJy4uLy4uL2Fic3RyYWN0RXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0RXJnb0VudGl0eSwgQWJzdHJhY3RFcmdvQWN0aW9uIH0gZnJvbSAnLi4vZGF0YWJhc2UnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBDYWxsYmFja1R5cGUsXG4gIENhbGxiYWNrTWFwLFxuICBDYWxsYmFja0RhdGFNYXAsXG4gIEluaXRpYWxpemVPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBFcmdvLXNwZWNpZmljIGV4dHJhY3RvciB0aGF0IHByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGZvciBhbGwgRXJnbyBleHRyYWN0b3JzLlxuICpcbiAqIEl0IHByb3ZpZGVzIGNhbGxiYWNrIHN1cHBvcnQgYW5kIGJsb2NrY2hhaW4gZm9yayBoYW5kbGUgZm9yIGFsbCBlcmdvIGV4dHJhY3RvcnMuXG4gKlxuICogSXQgdHJpZ2dlcnMgY2FsbGJhY2tzIGZvciB0aGUgYFVwZGF0ZWAgYW5kIGBEZWxldGVgIGFjdGlvbnMgb24gYSBmb3JrZWQgYmxvY2suXG4gKlxuICogQHRlbXBsYXRlIEV4dHJhY3RlZERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIGV4dHJhY3RlZCBmcm9tIGJsb2NrY2hhaW5cbiAqIEB0ZW1wbGF0ZSBFeHRyYWN0b3JFbnRpdHkgLSBUaGUgZGF0YWJhc2UgZW50aXR5IHR5cGUgZm9yIHN0b3JpbmcgZXh0cmFjdGVkIGRhdGFcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RXJnb0V4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRW50aXR5LFxuPiBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uLCBFeHRyYWN0b3JFbnRpdHk+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFjdGlvbnM6IEFic3RyYWN0RXJnb0FjdGlvbjxcbiAgICBFeHRyYWN0ZWREYXRhLFxuICAgIEV4dHJhY3RvckVudGl0eVxuICA+O1xuICBwcm90ZWN0ZWQgY2FsbGJhY2tzOiB7XG4gICAgW0sgaW4gQ2FsbGJhY2tUeXBlXTogTWFwPHN0cmluZywgQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bS10+O1xuICB9ID0ge1xuICAgIFtDYWxsYmFja1R5cGUuVXBkYXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuSW5zZXJ0XTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuRGVsZXRlXTogbmV3IE1hcCgpLFxuICAgIFtDYWxsYmFja1R5cGUuU3BlbmRdOiBuZXcgTWFwKCksXG4gIH07XG4gIHByaXZhdGUgY2FsbGJhY2tNdXRleCA9IG5ldyBNdXRleCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplT3B0aW9ucz86IEluaXRpYWxpemVPcHRpb25zLFxuICAgIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogaG9vayBhIG5ldyBjYWxsYmFjayBvbiBhIGNhbGxiYWNrIHR5cGVcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyBjYWxsYmFjayByZWdpc3RlcmVkIGlkXG4gICAqL1xuICBob29rID0gYXN5bmMgPFQgZXh0ZW5kcyBDYWxsYmFja1R5cGU+KFxuICAgIHR5cGU6IFQsXG4gICAgY2FsbGJhY2s6IENhbGxiYWNrTWFwPEV4dHJhY3RlZERhdGE+W1RdLFxuICApOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmNhbGxiYWNrTXV0ZXguYWNxdWlyZSgpO1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgY29uc3QgaWQgPSB1dWlkdjQoKTtcbiAgICBjYWxsYmFja01hcC5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICByZWxlYXNlKCk7XG4gICAgcmV0dXJuIGlkO1xuICB9O1xuXG4gIC8qKlxuICAgKiB1bmhvb2sgYSBjYWxsYmFjayBvbiBhIHR5cGVcbiAgICogcmV0dXJucyBmYWxzZSBpZiB0aGVyZSBpcyBubyByZWdpc3RlcmVkIGNhbGxiYWNrIHdpdGggdGhlIGlkXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcmV0dXJucyBzdWNjZXNzIHN0YXR1c1xuICAgKi9cbiAgdW5ob29rID0gYXN5bmMgKHR5cGU6IENhbGxiYWNrVHlwZSwgaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmNhbGxiYWNrTXV0ZXguYWNxdWlyZSgpO1xuICAgIGNvbnN0IGNhbGxiYWNrTWFwID0gdGhpcy5jYWxsYmFja3NbdHlwZV07XG4gICAgaWYgKCFjYWxsYmFja01hcC5oYXMoaWQpKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICBgQ2FsbGJhY2sgd2l0aCBJZCBbJHtpZH1dIGlzIG5vdCByZWdpc3RlcmVkIGZvciB0eXBlIFske3R5cGV9XS5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2FsbGJhY2tNYXAuZGVsZXRlKGlkKTtcbiAgICByZWxlYXNlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIHRyaWdnZXIgYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkIG9uIGEgc3BlY2lmaWMgdHlwZSB3aXRoIHRoZSBwcm92aWRlZCBkYXRhXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgdHJpZ2dlckNhbGxiYWNrczxUIGV4dGVuZHMgQ2FsbGJhY2tUeXBlPihcbiAgICB0eXBlOiBULFxuICAgIGRhdGE6IENhbGxiYWNrRGF0YU1hcDxFeHRyYWN0ZWREYXRhPltUXSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBjYWxsYmFja01hcC5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgYGNhbGxiYWNrIGZhaWxlZCBmb3IgJHt0eXBlfSBhY3Rpb24gb24gZGF0YSBbJHtkYXRhfV0gd2l0aCBlcnJvcjogJHtlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoIGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2tEYXRhKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gICAgaWYgKHJlc3VsdC5kZWxldGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5EZWxldGUsIHJlc3VsdC5kZWxldGVkRGF0YSk7XG4gICAgaWYgKHJlc3VsdC51cGRhdGVkRGF0YS5sZW5ndGggPiAwKVxuICAgICAgdGhpcy50cmlnZ2VyQ2FsbGJhY2tzKENhbGxiYWNrVHlwZS5VcGRhdGUsIHJlc3VsdC51cGRhdGVkRGF0YSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHF1ZXJ5IHRoYXQgcmV0dXJucyB1c2VkIGJsb2NrcyBieSBzZWxlY3RpbmcgdGhlIGBibG9ja2AgY29sdW1uIGZyb20gdGhlIGBFeHRyYWN0b3JFbnRpdHlgIHJlcG9zaXRvcnksXG4gICAqIGZpbHRlcmVkIGJ5IHRoZSBwcm92aWRlZCBgZXh0cmFjdG9ySWRgXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcXVlcnkgYnVpbGRlciBzZWxlY3RpbmcgdXNlZCBibG9ja3NcbiAgICovXG4gIGNyZWF0ZVVzZWRCbG9ja3NRdWVyeSA9ICgpOiBTZWxlY3RRdWVyeUJ1aWxkZXI8RXh0cmFjdG9yRW50aXR5PiA9PlxuICAgIHRoaXMuYWN0aW9ucy5jcmVhdGVVc2VkQmxvY2tzUXVlcnkodGhpcy5nZXRJZCgpKTtcbn1cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFcmdvRXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vZXh0cmFjdG9ycy9hYnN0cmFjdEVyZ29FeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsT0FBTyxFQUVMLFlBQVksR0FJYixNQUFNLGVBQWUsQ0FBQztBQUV2Qjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQWdCLHFCQUdwQixTQUFRLGlCQUErQztJQWdCM0M7SUFDQTtJQVpGLFNBQVMsR0FFZjtRQUNGLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2hDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFO0tBQ2hDLENBQUM7SUFDTSxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUVwQyxZQUNZLGlCQUFxQyxFQUNyQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUVwRCxLQUFLLEVBQUUsQ0FBQztRQUhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7SUFHdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksR0FBRyxLQUFLLEVBQ1YsSUFBTyxFQUNQLFFBQXVDLEVBQ3RCLEVBQUU7UUFDbkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDcEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUIsT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILE1BQU0sR0FBRyxLQUFLLEVBQUUsSUFBa0IsRUFBRSxFQUFVLEVBQW9CLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxxQkFBcUIsRUFBRSxpQ0FBaUMsSUFBSSxJQUFJLENBQ2pFLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ08sZ0JBQWdCLENBQ3hCLElBQU8sRUFDUCxJQUF1QztRQUV2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHVCQUF1QixJQUFJLG9CQUFvQixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FDeEUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBaUIsRUFBRTtRQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxxQkFBcUIsR0FBRyxHQUF3QyxFQUFFLENBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Q0FDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgTXV0ZXggfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NlbWFwaG9yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RFeHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRW50aXR5LCBBYnN0cmFjdEVyZ29BY3Rpb24gfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEVudGl0eURhdGEsXG4gIENhbGxiYWNrVHlwZSxcbiAgQ2FsbGJhY2tNYXAsXG4gIENhbGxiYWNrRGF0YU1hcCxcbiAgSW5pdGlhbGl6ZU9wdGlvbnMsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIEFic3RyYWN0IEVyZ28tc3BlY2lmaWMgZXh0cmFjdG9yIHRoYXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIGFsbCBFcmdvIGV4dHJhY3RvcnMuXG4gKlxuICogSXQgcHJvdmlkZXMgY2FsbGJhY2sgc3VwcG9ydCBhbmQgYmxvY2tjaGFpbiBmb3JrIGhhbmRsZSBmb3IgYWxsIGVyZ28gZXh0cmFjdG9ycy5cbiAqXG4gKiBJdCB0cmlnZ2VycyBjYWxsYmFja3MgZm9yIHRoZSBgVXBkYXRlYCBhbmQgYERlbGV0ZWAgYWN0aW9ucyBvbiBhIGZvcmtlZCBibG9jay5cbiAqXG4gKiBAdGVtcGxhdGUgRXh0cmFjdGVkRGF0YSAtIFRoZSB0eXBlIG9mIGRhdGEgZXh0cmFjdGVkIGZyb20gYmxvY2tjaGFpblxuICogQHRlbXBsYXRlIEV4dHJhY3RvckVudGl0eSAtIFRoZSBkYXRhYmFzZSBlbnRpdHkgdHlwZSBmb3Igc3RvcmluZyBleHRyYWN0ZWQgZGF0YVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RFcmdvRXh0cmFjdG9yPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FbnRpdHksXG4+IGV4dGVuZHMgQWJzdHJhY3RFeHRyYWN0b3I8VHJhbnNhY3Rpb24sIEV4dHJhY3RvckVudGl0eT4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aW9uczogQWJzdHJhY3RFcmdvQWN0aW9uPFxuICAgIEV4dHJhY3RlZERhdGEsXG4gICAgRXh0cmFjdG9yRW50aXR5XG4gID47XG4gIHByb3RlY3RlZCBjYWxsYmFja3M6IHtcbiAgICBbSyBpbiBDYWxsYmFja1R5cGVdOiBNYXA8c3RyaW5nLCBDYWxsYmFja01hcDxFeHRyYWN0ZWREYXRhPltLXT47XG4gIH0gPSB7XG4gICAgW0NhbGxiYWNrVHlwZS5VcGRhdGVdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5JbnNlcnRdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5EZWxldGVdOiBuZXcgTWFwKCksXG4gICAgW0NhbGxiYWNrVHlwZS5TcGVuZF06IG5ldyBNYXAoKSxcbiAgfTtcbiAgcHJpdmF0ZSBjYWxsYmFja011dGV4ID0gbmV3IE11dGV4KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVPcHRpb25zPzogSW5pdGlhbGl6ZU9wdGlvbnMsXG4gICAgcHJvdGVjdGVkIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBob29rIGEgbmV3IGNhbGxiYWNrIG9uIGEgY2FsbGJhY2sgdHlwZVxuICAgKiBAcGFyYW0gdHlwZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAqIEByZXR1cm5zIGNhbGxiYWNrIHJlZ2lzdGVyZWQgaWRcbiAgICovXG4gIGhvb2sgPSBhc3luYyA8VCBleHRlbmRzIENhbGxiYWNrVHlwZT4oXG4gICAgdHlwZTogVCxcbiAgICBjYWxsYmFjazogQ2FsbGJhY2tNYXA8RXh0cmFjdGVkRGF0YT5bVF0sXG4gICk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuY2FsbGJhY2tNdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBjb25zdCBpZCA9IHV1aWR2NCgpO1xuICAgIGNhbGxiYWNrTWFwLnNldChpZCwgY2FsbGJhY2spO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gaWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIHVuaG9vayBhIGNhbGxiYWNrIG9uIGEgdHlwZVxuICAgKiByZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgY2FsbGJhY2sgd2l0aCB0aGUgaWRcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGlkXG4gICAqIEByZXR1cm5zIHN1Y2Nlc3Mgc3RhdHVzXG4gICAqL1xuICB1bmhvb2sgPSBhc3luYyAodHlwZTogQ2FsbGJhY2tUeXBlLCBpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuY2FsbGJhY2tNdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgY2FsbGJhY2tNYXAgPSB0aGlzLmNhbGxiYWNrc1t0eXBlXTtcbiAgICBpZiAoIWNhbGxiYWNrTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgIGBDYWxsYmFjayB3aXRoIElkIFske2lkfV0gaXMgbm90IHJlZ2lzdGVyZWQgZm9yIHR5cGUgWyR7dHlwZX1dLmAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjYWxsYmFja01hcC5kZWxldGUoaWQpO1xuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogdHJpZ2dlciBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgb24gYSBzcGVjaWZpYyB0eXBlIHdpdGggdGhlIHByb3ZpZGVkIGRhdGFcbiAgICogQHBhcmFtIHR5cGVcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCB0cmlnZ2VyQ2FsbGJhY2tzPFQgZXh0ZW5kcyBDYWxsYmFja1R5cGU+KFxuICAgIHR5cGU6IFQsXG4gICAgZGF0YTogQ2FsbGJhY2tEYXRhTWFwPEV4dHJhY3RlZERhdGE+W1RdLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFja01hcCA9IHRoaXMuY2FsbGJhY2tzW3R5cGVdO1xuICAgIGNhbGxiYWNrTWFwLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICBgY2FsbGJhY2sgZmFpbGVkIGZvciAke3R5cGV9IGFjdGlvbiBvbiBkYXRhIFske2RhdGF9XSB3aXRoIGVycm9yOiAke2V9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2ggYmxvY2sgaGFzaFxuICAgKi9cbiAgZm9ya0Jsb2NrID0gYXN5bmMgKGhhc2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWN0aW9ucy5kZWxldGVCbG9ja0RhdGEoaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgICBpZiAocmVzdWx0LmRlbGV0ZWREYXRhLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLkRlbGV0ZSwgcmVzdWx0LmRlbGV0ZWREYXRhKTtcbiAgICBpZiAocmVzdWx0LnVwZGF0ZWREYXRhLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLnRyaWdnZXJDYWxsYmFja3MoQ2FsbGJhY2tUeXBlLlVwZGF0ZSwgcmVzdWx0LnVwZGF0ZWREYXRhKTtcbiAgfTtcblxuICAvKipcbiAgICogQnVpbGRzIGEgcXVlcnkgdGhhdCByZXR1cm5zIHVzZWQgYmxvY2tzIGJ5IHNlbGVjdGluZyB0aGUgYGJsb2NrYCBjb2x1bW4gZnJvbSB0aGUgYEV4dHJhY3RvckVudGl0eWAgcmVwb3NpdG9yeSxcbiAgICogZmlsdGVyZWQgYnkgdGhlIHByb3ZpZGVkIGBleHRyYWN0b3JJZGBcbiAgICpcbiAgICogQHJldHVybnMgQSBxdWVyeSBidWlsZGVyIHNlbGVjdGluZyB1c2VkIGJsb2Nrc1xuICAgKi9cbiAgY3JlYXRlVXNlZEJsb2Nrc1F1ZXJ5ID0gKCk6IFNlbGVjdFF1ZXJ5QnVpbGRlcjxFeHRyYWN0b3JFbnRpdHk+ID0+XG4gICAgdGhpcy5hY3Rpb25zLmNyZWF0ZVVzZWRCbG9ja3NRdWVyeSh0aGlzLmdldElkKCkpO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"ergoBoxInitializer.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/ergoBoxInitializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAkB,CAC7B,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC;IAQrD,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO;IACjD,SAAS,CAAC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAExE,SAAS,CAAC,MAAM,EAAE,cAAc;IAflC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,YAAY,CAAsB;gBAGxC,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,EACvC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,EACX,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,EACxE,mBAAmB,SAAwB,EACjC,MAAM,GAAE,cAAkC;IAetD;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAC1B,IAAI,mBAAmB,KACtB,iBAAiB,EAAE,CAepB;IAEF;;;OAGG;IACH,SAAS,CAAC,cAAc,GACtB,KAAK,mBAAmB,EAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CASd;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,sBAuBtB;CACH"}
1
+ {"version":3,"file":"ergoBoxInitializer.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/ergoBoxInitializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAkB,CAC7B,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB,CAC1C,SAAQ,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC;IAQrD,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO;IACjD,SAAS,CAAC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC;IAExE,SAAS,CAAC,MAAM,EAAE,cAAc;IAflC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,YAAY,CAAsB;gBAGxC,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,EACvC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,EACX,OAAO,EAAE,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,EACxE,mBAAmB,SAAwB,EACjC,MAAM,GAAE,cAAkC;IAetD;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,GAC1B,IAAI,mBAAmB,KACtB,iBAAiB,EAAE,CAepB;IAEF;;;OAGG;IACH,SAAS,CAAC,cAAc,GACtB,KAAK,mBAAmB,EAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CASd;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,sBAuBtB;CACH"}
@@ -1,6 +1,6 @@
1
- import { Mutex } from 'await-semaphore';
2
1
  import { groupBy, sortBy } from 'lodash-es';
3
2
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
3
+ import { Mutex } from '@rosen-bridge/semaphore';
4
4
  import { MAX_PARALLEL_REQUESTS } from './constants';
5
5
  import { ErgoInitializer } from './ergoInitializer';
6
6
  export class ErgoBoxInitializer extends ErgoInitializer {
@@ -81,4 +81,4 @@ export class ErgoBoxInitializer extends ErgoInitializer {
81
81
  }
82
82
  };
83
83
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0JveEluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6ZXJzL2VyZ29Cb3hJbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQWM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sT0FBTyxrQkFHWCxTQUFRLGVBQStDO0lBUTNDO0lBQ0E7SUFDQTtJQUlBO0lBRUE7SUFmSixpQkFBaUIsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ2hDLFlBQVksQ0FBc0I7SUFFMUMsWUFDRSxXQUE0QixFQUM1QixHQUFXLEVBQ1gsT0FBZSxFQUNMLFdBQW1CLEVBQ25CLFVBQXVDLEVBQ3ZDLG1CQUdXLEVBQ1gsT0FBOEQsRUFDeEUsbUJBQW1CLEdBQUcscUJBQXFCLEVBQ2pDLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRXBELEtBQUssQ0FDSCxXQUFXLEVBQ1gsR0FBRyxFQUNILE9BQU8sRUFDUCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsTUFBTSxDQUNQLENBQUM7UUFuQlEsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7UUFDdkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUdSO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBdUQ7UUFFOUQsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7UUFZcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENB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QztZQUNULE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0ZXggfSBmcm9tICdhd2FpdC1zZW1hcGhvcmUnO1xuaW1wb3J0IHsgZ3JvdXBCeSwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRHVtbXlMb2dnZXIsIEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgQmxvY2tJbmZvLFxuICBFcmdvTmV0d29ya1R5cGUsXG4gIE91dHB1dEJveCxcbiAgVHJhbnNhY3Rpb24sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFcmdvQm94QWN0aW9uLCBBYnN0cmFjdEVyZ29FbnRpdHkgfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEVudGl0eURhdGEsXG4gIEV4dGVuZGVkU3BlbmRJbmZvLFxuICBFeHRlbmRlZFRyYW5zYWN0aW9uLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1BWF9QQVJBTExFTF9SRVFVRVNUUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEVyZ29Jbml0aWFsaXplciB9IGZyb20gJy4vZXJnb0luaXRpYWxpemVyJztcblxuZXhwb3J0IGNsYXNzIEVyZ29Cb3hJbml0aWFsaXplcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRW50aXR5LFxuPiBleHRlbmRzIEVyZ29Jbml0aWFsaXplcjxFeHRyYWN0ZWREYXRhLCBFeHRyYWN0b3JFbnRpdHk+IHtcbiAgcHJpdmF0ZSBzcGVuZFJlY29yZHNNdXRleCA9IG5ldyBNdXRleCgpO1xuICBwcml2YXRlIHNwZW5kUmVjb3JkczogRXh0ZW5kZWRTcGVuZEluZm9bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBuZXR3b3JrVHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZXh0cmFjdG9ySWQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgaGFzQm94RGF0YTogKGJveDogT3V0cHV0Qm94KSA9PiBib29sZWFuLFxuICAgIHByb3RlY3RlZCBwcm9jZXNzVHJhbnNhY3Rpb25zOiAoXG4gICAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgICBibG9jazogQmxvY2tJbmZvLFxuICAgICkgPT4gUHJvbWlzZTxib29sZWFuPixcbiAgICBwcm90ZWN0ZWQgYWN0aW9uczogQWJzdHJhY3RFcmdvQm94QWN0aW9uPEV4dHJhY3RlZERhdGEsIEV4dHJhY3RvckVudGl0eT4sXG4gICAgbWF4UGFyYWxsZWxSZXF1ZXN0cyA9IE1BWF9QQVJBTExFTF9SRVFVRVNUUyxcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIG5ldHdvcmtUeXBlLFxuICAgICAgdXJsLFxuICAgICAgYWRkcmVzcyxcbiAgICAgIGV4dHJhY3RvcklkLFxuICAgICAgcHJvY2Vzc1RyYW5zYWN0aW9ucyxcbiAgICAgIGFjdGlvbnMsXG4gICAgICBtYXhQYXJhbGxlbFJlcXVlc3RzLFxuICAgICAgbG9nZ2VyLFxuICAgICk7XG4gICAgdGhpcy5zcGVuZFJlY29yZHMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBzcGVuZGluZyBpbmZvcm1hdGlvbiBvZiBhbGwgcmVsYXRlZCBib3hlcyBpbiB0aGUgdHJhbnNhY3Rpb25cbiAgICogTm90ZTogb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiBpZiB0aGUgZXh0cmFjdG9yIG5lZWRzIGV4dHJhIHNwZW5kaW5nIGluZm9cbiAgICogQHBhcmFtIHR4XG4gICAqIEByZXR1cm5zIHRyYW5zYWN0aW9uIHNwZW5kIGluZm9cbiAgICovXG4gIHByb3RlY3RlZCBleHRyYWN0VHhTcGVuZEluZm8gPSAoXG4gICAgdHg6IEV4dGVuZGVkVHJhbnNhY3Rpb24sXG4gICk6IEV4dGVuZGVkU3BlbmRJbmZvW10gPT4ge1xuICAgIGNvbnN0IHR4U3BlbmRJbmZvID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eC5pbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGJveCA9IHR4LmlucHV0c1tpXTtcbiAgICAgIGlmICh0aGlzLmhhc0JveERhdGEoYm94KSkge1xuICAgICAgICB0eFNwZW5kSW5mby5wdXNoKHtcbiAgICAgICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGhlaWdodDogdHguaW5jbHVzaW9uSGVpZ2h0LFxuICAgICAgICAgIGJsb2NrOiB0eC5ibG9ja0lkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR4U3BlbmRJbmZvO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGFuZCBzdG9yZSBhbGwgc3BlbmRpbmcgaW5mb3JtYXRpb24gb2YgYSB0cmFuc2FjdGlvbiBiYXRjaFxuICAgKiBAcGFyYW0gdHhzXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RvcmVFeHRyYUluZm8gPSBhc3luYyAoXG4gICAgdHhzOiBFeHRlbmRlZFRyYW5zYWN0aW9uW10sXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHNwZW5kUmVjb3Jkc0JhdGNoOiBFeHRlbmRlZFNwZW5kSW5mb1tdID0gW107XG4gICAgZm9yIChjb25zdCB0eCBvZiB0eHMpIHtcbiAgICAgIHNwZW5kUmVjb3Jkc0JhdGNoLnB1c2goLi4udGhpcy5leHRyYWN0VHhTcGVuZEluZm8odHgpKTtcbiAgICB9XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuc3BlbmRSZWNvcmRzTXV0ZXguYWNxdWlyZSgpO1xuICAgIHRoaXMuc3BlbmRSZWNvcmRzLnB1c2goLi4uc3BlbmRSZWNvcmRzQmF0Y2gpO1xuICAgIHJlbGVhc2UoKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgU3RvcmVkICR7c3BlbmRSZWNvcmRzQmF0Y2gubGVuZ3RofSBuZXcgc3BlbmQgcmVjb3Jkc2ApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBcHBseSBzdG9yZWQgc3BlbmQgcmVjb3JkcyBpbnRvIGV4dHJhY3RvciBkYXRhYmFzZVxuICAgKiBOb3RlOiBBcyB0cmFuc2FjdGlvbnMgYXJlIHByb2Nlc3NlZCBvdXQgb2Ygb3JkZXIgKGR1ZSB0byBwYXJhbGxlbFxuICAgKiBwcm9jZXNzaW5nKSwgc29tZSBib3ggc3BlbmQgaW5mb3JtYXRpb24gbWF5IGJlIGludmFsaWQgYWZ0ZXIgdGhlIGZpcnN0IHBhc3NcbiAgICogVG8gYXZvaWQgcHJvY2Vzc2luZyBldmVyeXRoaW5nIHR3aWNlLCB3ZSBrZWVwIGFsbCBzcGVuZCByZWNvcmRzIGluIHRoZVxuICAgKiBmaXJzdCBwYXNzIGFuZCByZWFwcGx5IHRoZW0gYXQgdGhlIGVuZFxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGx5RXh0cmFJbmZvID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNvcnRlZFJlY29yZHMgPSBzb3J0QnkodGhpcy5zcGVuZFJlY29yZHMsIChyZWNvcmQpID0+IHJlY29yZC5oZWlnaHQpO1xuICAgIGNvbnN0IGdyb3VwZWRSZWNvcmRzID0gZ3JvdXBCeShzb3J0ZWRSZWNvcmRzLCAodHgpID0+IHR4LmJsb2NrKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBTcGVuZCByZWNvcmRzIGdyb3VwZWQgdG8gJHtPYmplY3Qua2V5cyhncm91cGVkUmVjb3JkcykubGVuZ3RofSBibG9ja3NgLFxuICAgICk7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuZGJNdXRleC5hY3F1aXJlKCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgYmxvY2tJZCBpbiBncm91cGVkUmVjb3Jkcykge1xuICAgICAgICBjb25zdCBibG9ja1JlY29yZHMgPSBncm91cGVkUmVjb3Jkc1tibG9ja0lkXTtcbiAgICAgICAgY29uc3QgYmxvY2sgPSB7IGhhc2g6IGJsb2NrSWQsIGhlaWdodDogYmxvY2tSZWNvcmRzWzBdLmhlaWdodCB9O1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgUHJvY2Vzc2luZyBzcGVuZCByZWNvcmRzIGF0IGhlaWdodCAke2Jsb2NrUmVjb3Jkc1swXS5oZWlnaHR9YCxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnVwZGF0ZVNwZW5kaW5nSW5mbyhcbiAgICAgICAgICBibG9ja1JlY29yZHMsXG4gICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgdGhpcy5leHRyYWN0b3JJZCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVsZWFzZSgpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0JveEluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6ZXJzL2VyZ29Cb3hJbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU1QyxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLCtCQUErQixDQUFDO0FBTzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVFoRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sT0FBTyxrQkFHWCxTQUFRLGVBQStDO0lBUTNDO0lBQ0E7SUFDQTtJQUlBO0lBRUE7SUFmSixpQkFBaUIsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ2hDLFlBQVksQ0FBc0I7SUFFMUMsWUFDRSxXQUE0QixFQUM1QixHQUFXLEVBQ1gsT0FBZSxFQUNMLFdBQW1CLEVBQ25CLFVBQXVDLEVBQ3ZDLG1CQUdXLEVBQ1gsT0FBOEQsRUFDeEUsbUJBQW1CLEdBQUcscUJBQXFCLEVBQ2pDLFNBQXlCLElBQUksV0FBVyxFQUFFO1FBRXBELEtBQUssQ0FDSCxXQUFXLEVBQ1gsR0FBRyxFQUNILE9BQU8sRUFDUCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsTUFBTSxDQUNQLENBQUM7UUFuQlEsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7UUFDdkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUdSO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBdUQ7UUFFOUQsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7UUFZcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENB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QztZQUNULE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JvdXBCeSwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRHVtbXlMb2dnZXIsIEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHtcbiAgQmxvY2tJbmZvLFxuICBFcmdvTmV0d29ya1R5cGUsXG4gIE91dHB1dEJveCxcbiAgVHJhbnNhY3Rpb24sXG59IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IE11dGV4IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zZW1hcGhvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29Cb3hBY3Rpb24sIEFic3RyYWN0RXJnb0VudGl0eSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0ZW5kZWRTcGVuZEluZm8sXG4gIEV4dGVuZGVkVHJhbnNhY3Rpb24sXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTUFYX1BBUkFMTEVMX1JFUVVFU1RTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRXJnb0luaXRpYWxpemVyIH0gZnJvbSAnLi9lcmdvSW5pdGlhbGl6ZXInO1xuXG5leHBvcnQgY2xhc3MgRXJnb0JveEluaXRpYWxpemVyPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FbnRpdHksXG4+IGV4dGVuZHMgRXJnb0luaXRpYWxpemVyPEV4dHJhY3RlZERhdGEsIEV4dHJhY3RvckVudGl0eT4ge1xuICBwcml2YXRlIHNwZW5kUmVjb3Jkc011dGV4ID0gbmV3IE11dGV4KCk7XG4gIHByaXZhdGUgc3BlbmRSZWNvcmRzOiBFeHRlbmRlZFNwZW5kSW5mb1tdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5ldHdvcmtUeXBlOiBFcmdvTmV0d29ya1R5cGUsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBleHRyYWN0b3JJZDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBoYXNCb3hEYXRhOiAoYm94OiBPdXRwdXRCb3gpID0+IGJvb2xlYW4sXG4gICAgcHJvdGVjdGVkIHByb2Nlc3NUcmFuc2FjdGlvbnM6IChcbiAgICAgIHR4czogVHJhbnNhY3Rpb25bXSxcbiAgICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgKSA9PiBQcm9taXNlPGJvb2xlYW4+LFxuICAgIHByb3RlY3RlZCBhY3Rpb25zOiBBYnN0cmFjdEVyZ29Cb3hBY3Rpb248RXh0cmFjdGVkRGF0YSwgRXh0cmFjdG9yRW50aXR5PixcbiAgICBtYXhQYXJhbGxlbFJlcXVlc3RzID0gTUFYX1BBUkFMTEVMX1JFUVVFU1RTLFxuICAgIHByb3RlY3RlZCBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyID0gbmV3IER1bW15TG9nZ2VyKCksXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgbmV0d29ya1R5cGUsXG4gICAgICB1cmwsXG4gICAgICBhZGRyZXNzLFxuICAgICAgZXh0cmFjdG9ySWQsXG4gICAgICBwcm9jZXNzVHJhbnNhY3Rpb25zLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIG1heFBhcmFsbGVsUmVxdWVzdHMsXG4gICAgICBsb2dnZXIsXG4gICAgKTtcbiAgICB0aGlzLnNwZW5kUmVjb3JkcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIHNwZW5kaW5nIGluZm9ybWF0aW9uIG9mIGFsbCByZWxhdGVkIGJveGVzIGluIHRoZSB0cmFuc2FjdGlvblxuICAgKiBOb3RlOiBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGlmIHRoZSBleHRyYWN0b3IgbmVlZHMgZXh0cmEgc3BlbmRpbmcgaW5mb1xuICAgKiBAcGFyYW0gdHhcbiAgICogQHJldHVybnMgdHJhbnNhY3Rpb24gc3BlbmQgaW5mb1xuICAgKi9cbiAgcHJvdGVjdGVkIGV4dHJhY3RUeFNwZW5kSW5mbyA9IChcbiAgICB0eDogRXh0ZW5kZWRUcmFuc2FjdGlvbixcbiAgKTogRXh0ZW5kZWRTcGVuZEluZm9bXSA9PiB7XG4gICAgY29uc3QgdHhTcGVuZEluZm8gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR4LmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYm94ID0gdHguaW5wdXRzW2ldO1xuICAgICAgaWYgKHRoaXMuaGFzQm94RGF0YShib3gpKSB7XG4gICAgICAgIHR4U3BlbmRJbmZvLnB1c2goe1xuICAgICAgICAgIGJveElkOiBib3guYm94SWQsXG4gICAgICAgICAgdHhJZDogYm94LnRyYW5zYWN0aW9uSWQsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgaGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgICAgICAgYmxvY2s6IHR4LmJsb2NrSWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHhTcGVuZEluZm87XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgYW5kIHN0b3JlIGFsbCBzcGVuZGluZyBpbmZvcm1hdGlvbiBvZiBhIHRyYW5zYWN0aW9uIGJhdGNoXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb3RlY3RlZCBzdG9yZUV4dHJhSW5mbyA9IGFzeW5jIChcbiAgICB0eHM6IEV4dGVuZGVkVHJhbnNhY3Rpb25bXSxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3BlbmRSZWNvcmRzQmF0Y2g6IEV4dGVuZGVkU3BlbmRJbmZvW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHR4IG9mIHR4cykge1xuICAgICAgc3BlbmRSZWNvcmRzQmF0Y2gucHVzaCguLi50aGlzLmV4dHJhY3RUeFNwZW5kSW5mbyh0eCkpO1xuICAgIH1cbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5zcGVuZFJlY29yZHNNdXRleC5hY3F1aXJlKCk7XG4gICAgdGhpcy5zcGVuZFJlY29yZHMucHVzaCguLi5zcGVuZFJlY29yZHNCYXRjaCk7XG4gICAgcmVsZWFzZSgpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBTdG9yZWQgJHtzcGVuZFJlY29yZHNCYXRjaC5sZW5ndGh9IG5ldyBzcGVuZCByZWNvcmRzYCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFwcGx5IHN0b3JlZCBzcGVuZCByZWNvcmRzIGludG8gZXh0cmFjdG9yIGRhdGFiYXNlXG4gICAqIE5vdGU6IEFzIHRyYW5zYWN0aW9ucyBhcmUgcHJvY2Vzc2VkIG91dCBvZiBvcmRlciAoZHVlIHRvIHBhcmFsbGVsXG4gICAqIHByb2Nlc3NpbmcpLCBzb21lIGJveCBzcGVuZCBpbmZvcm1hdGlvbiBtYXkgYmUgaW52YWxpZCBhZnRlciB0aGUgZmlyc3QgcGFzc1xuICAgKiBUbyBhdm9pZCBwcm9jZXNzaW5nIGV2ZXJ5dGhpbmcgdHdpY2UsIHdlIGtlZXAgYWxsIHNwZW5kIHJlY29yZHMgaW4gdGhlXG4gICAqIGZpcnN0IHBhc3MgYW5kIHJlYXBwbHkgdGhlbSBhdCB0aGUgZW5kXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBwbHlFeHRyYUluZm8gPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc29ydGVkUmVjb3JkcyA9IHNvcnRCeSh0aGlzLnNwZW5kUmVjb3JkcywgKHJlY29yZCkgPT4gcmVjb3JkLmhlaWdodCk7XG4gICAgY29uc3QgZ3JvdXBlZFJlY29yZHMgPSBncm91cEJ5KHNvcnRlZFJlY29yZHMsICh0eCkgPT4gdHguYmxvY2spO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYFNwZW5kIHJlY29yZHMgZ3JvdXBlZCB0byAke09iamVjdC5rZXlzKGdyb3VwZWRSZWNvcmRzKS5sZW5ndGh9IGJsb2Nrc2AsXG4gICAgKTtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5kYk11dGV4LmFjcXVpcmUoKTtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBibG9ja0lkIGluIGdyb3VwZWRSZWNvcmRzKSB7XG4gICAgICAgIGNvbnN0IGJsb2NrUmVjb3JkcyA9IGdyb3VwZWRSZWNvcmRzW2Jsb2NrSWRdO1xuICAgICAgICBjb25zdCBibG9jayA9IHsgaGFzaDogYmxvY2tJZCwgaGVpZ2h0OiBibG9ja1JlY29yZHNbMF0uaGVpZ2h0IH07XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBQcm9jZXNzaW5nIHNwZW5kIHJlY29yZHMgYXQgaGVpZ2h0ICR7YmxvY2tSZWNvcmRzWzBdLmhlaWdodH1gLFxuICAgICAgICApO1xuICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlU3BlbmRpbmdJbmZvKFxuICAgICAgICAgIGJsb2NrUmVjb3JkcyxcbiAgICAgICAgICBibG9jayxcbiAgICAgICAgICB0aGlzLmV4dHJhY3RvcklkLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICByZWxlYXNlKCk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,6 +1,6 @@
1
- import { Mutex } from 'await-semaphore';
2
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
2
  import { BlockInfo, ErgoNetworkType, Transaction } from '@rosen-bridge/scanner-interfaces';
3
+ import { Mutex } from '@rosen-bridge/semaphore';
4
4
  import { AbstractErgoAction, AbstractErgoEntity } from '../database';
5
5
  import { AbstractEntityData, ExtendedTransaction } from '../interfaces';
6
6
  import { ExplorerInitializationStrategy, NodeInitializationStrategy } from './strategies';
@@ -1 +1 @@
1
- {"version":3,"file":"ergoInitializer.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/ergoInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,eAAe,EACf,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,qBAAa,eAAe,CAC1B,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB;IAWxC,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC;IAErE,SAAS,CAAC,MAAM,EAAE,cAAc;IAhBlC,SAAS,CAAC,OAAO,QAAe;IAChC,SAAS,CAAC,sBAAsB,EAC5B,8BAA8B,GAC9B,0BAA0B,CAAC;gBAG7B,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,EACX,OAAO,EAAE,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,EACrE,mBAAmB,SAAwB,EACjC,MAAM,GAAE,cAAkC;IAsBtD;;;OAGG;IACH,SAAS,CAAC,cAAc,CACtB,GAAG,EAAE,mBAAmB,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACH,SAAS,CAAC,cAAc,QAAO,OAAO,CAAC,IAAI,CAAC,CAE1C;IAEF;;;;OAIG;IACH,OAAO,CAAC,uBAAuB,CA0B7B;IAEF;;;;;;OAMG;IACH,cAAc,GAAU,cAAc,SAAS,mBAQ7C;CACH"}
1
+ {"version":3,"file":"ergoInitializer.d.ts","sourceRoot":"","sources":["../../../lib/ergo/initializers/ergoInitializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,eAAe,EACf,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,qBAAa,eAAe,CAC1B,aAAa,SAAS,kBAAkB,EACxC,eAAe,SAAS,kBAAkB;IAWxC,SAAS,CAAC,WAAW,EAAE,MAAM;IAC7B,SAAS,CAAC,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC;IACrB,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC;IAErE,SAAS,CAAC,MAAM,EAAE,cAAc;IAhBlC,SAAS,CAAC,OAAO,QAAe;IAChC,SAAS,CAAC,sBAAsB,EAC5B,8BAA8B,GAC9B,0BAA0B,CAAC;gBAG7B,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,CAC7B,GAAG,EAAE,WAAW,EAAE,EAClB,KAAK,EAAE,SAAS,KACb,OAAO,CAAC,OAAO,CAAC,EACX,OAAO,EAAE,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,EACrE,mBAAmB,SAAwB,EACjC,MAAM,GAAE,cAAkC;IAsBtD;;;OAGG;IACH,SAAS,CAAC,cAAc,CACtB,GAAG,EAAE,mBAAmB,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACH,SAAS,CAAC,cAAc,QAAO,OAAO,CAAC,IAAI,CAAC,CAE1C;IAEF;;;;OAIG;IACH,OAAO,CAAC,uBAAuB,CA0B7B;IAEF;;;;;;OAMG;IACH,cAAc,GAAU,cAAc,SAAS,mBAQ7C;CACH"}
@@ -1,7 +1,7 @@
1
- import { Mutex } from 'await-semaphore';
2
1
  import { groupBy, sortBy } from 'lodash-es';
3
2
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
4
3
  import { ErgoNetworkType, } from '@rosen-bridge/scanner-interfaces';
4
+ import { Mutex } from '@rosen-bridge/semaphore';
5
5
  import { MAX_PARALLEL_REQUESTS } from './constants';
6
6
  import { ExplorerInitializationStrategy, NodeInitializationStrategy, } from './strategies';
7
7
  export class ErgoInitializer {
@@ -77,4 +77,4 @@ export class ErgoInitializer {
77
77
  this.logger.info(`Initialization completed successfully for ${this.extractorId}`);
78
78
  };
79
79
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0luaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6ZXJzL2VyZ29Jbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBRUwsZUFBZSxHQUVoQixNQUFNLGtDQUFrQyxDQUFDO0FBSTFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLDBCQUEwQixHQUMzQixNQUFNLGNBQWMsQ0FBQztBQUV0QixNQUFNLE9BQU8sZUFBZTtJQWFkO0lBQ0E7SUFJQTtJQUVBO0lBaEJGLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3RCLHNCQUFzQixDQUVEO0lBRS9CLFlBQ0UsV0FBNEIsRUFDNUIsR0FBVyxFQUNYLE9BQWUsRUFDTCxXQUFtQixFQUNuQixtQkFHVyxFQUNYLE9BQTJELEVBQ3JFLG1CQUFtQixHQUFHLHFCQUFxQixFQUNqQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQVAxQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBR1I7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFvRDtRQUUzRCxXQUFNLEdBQU4sTUFBTSxDQUFvQztRQUVwRCxJQUFJLFdBQVcsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksOEJBQThCLENBQzlELEdBQUcsRUFDSCxPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFD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QUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDZDQUE2QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQ2hFLENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGV4IH0gZnJvbSAnYXdhaXQtc2VtYXBob3JlJztcbmltcG9ydCB7IGdyb3VwQnksIHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IER1bW15TG9nZ2VyLCBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7XG4gIEJsb2NrSW5mbyxcbiAgRXJnb05ldHdvcmtUeXBlLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29BY3Rpb24sIEFic3RyYWN0RXJnb0VudGl0eSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IEFic3RyYWN0RW50aXR5RGF0YSwgRXh0ZW5kZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTUFYX1BBUkFMTEVMX1JFUVVFU1RTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgRXhwbG9yZXJJbml0aWFsaXphdGlvblN0cmF0ZWd5LFxuICBOb2RlSW5pdGlhbGl6YXRpb25TdHJhdGVneSxcbn0gZnJvbSAnLi9zdHJhdGVnaWVzJztcblxuZXhwb3J0IGNsYXNzIEVyZ29Jbml0aWFsaXplcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEFic3RyYWN0RW50aXR5RGF0YSxcbiAgRXh0cmFjdG9yRW50aXR5IGV4dGVuZHMgQWJzdHJhY3RFcmdvRW50aXR5LFxuPiB7XG4gIHByb3RlY3RlZCBkYk11dGV4ID0gbmV3IE11dGV4KCk7XG4gIHByb3RlY3RlZCBpbml0aWFsaXphdGlvblN0cmF0ZWd5OlxuICAgIHwgRXhwbG9yZXJJbml0aWFsaXphdGlvblN0cmF0ZWd5XG4gICAgfCBOb2RlSW5pdGlhbGl6YXRpb25TdHJhdGVneTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBuZXR3b3JrVHlwZTogRXJnb05ldHdvcmtUeXBlLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZXh0cmFjdG9ySWQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc1RyYW5zYWN0aW9uczogKFxuICAgICAgdHhzOiBUcmFuc2FjdGlvbltdLFxuICAgICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICApID0+IFByb21pc2U8Ym9vbGVhbj4sXG4gICAgcHJvdGVjdGVkIGFjdGlvbnM6IEFic3RyYWN0RXJnb0FjdGlvbjxFeHRyYWN0ZWREYXRhLCBFeHRyYWN0b3JFbnRpdHk+LFxuICAgIG1heFBhcmFsbGVsUmVxdWVzdHMgPSBNQVhfUEFSQUxMRUxfUkVRVUVTVFMsXG4gICAgcHJvdGVjdGVkIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7XG4gICAgaWYgKG5ldHdvcmtUeXBlID09IEVyZ29OZXR3b3JrVHlwZS5FeHBsb3Jlcikge1xuICAgICAgdGhpcy5pbml0aWFsaXphdGlvblN0cmF0ZWd5ID0gbmV3IEV4cGxvcmVySW5pdGlhbGl6YXRpb25TdHJhdGVneShcbiAgICAgICAgdXJsLFxuICAgICAgICBhZGRyZXNzLFxuICAgICAgICBtYXhQYXJhbGxlbFJlcXVlc3RzLFxuICAgICAgICB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbnMsXG4gICAgICAgIHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9uQmF0Y2gsXG4gICAgICAgIGxvZ2dlci5jaGlsZCgnRXhwbG9yZXJJbml0aWFsaXphdGlvblN0cmF0ZWd5JyksXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAobmV0d29ya1R5cGUgPT0gRXJnb05ldHdvcmtUeXBlLk5vZGUpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6YXRpb25TdHJhdGVneSA9IG5ldyBOb2RlSW5pdGlhbGl6YXRpb25TdHJhdGVneShcbiAgICAgICAgdXJsLFxuICAgICAgICBhZGRyZXNzLFxuICAgICAgICBtYXhQYXJhbGxlbFJlcXVlc3RzLFxuICAgICAgICB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbkJhdGNoLFxuICAgICAgICBsb2dnZXIuY2hpbGQoJ05vZGVJbml0aWFsaXphdGlvblN0cmF0ZWd5JyksXG4gICAgICApO1xuICAgIH0gZWxzZSB0aHJvdyBuZXcgRXJyb3IoYE5ldHdvcmsgdHlwZSAke25ldHdvcmtUeXBlfSBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gIH1cblxuICAvKipcbiAgICogb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBzdG9yZSBleHRyYSBpbmZvcm1hdGlvbiBvZiBhIHRyYW5zYWN0aW9uIGJhdGNoXG4gICAqIEBwYXJhbSB0eHMgbGlzdCBvZiB0cmFuc2FjdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBzdG9yZUV4dHJhSW5mbyhcbiAgICB0eHM6IEV4dGVuZGVkVHJhbnNhY3Rpb25bXSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gYXBwbHkgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIGV4dHJhY3RvciBkYXRhYmFzZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGx5RXh0cmFJbmZvID0gKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfTtcblxuICAvKipcbiAgICogUHJvY2VzcyBhIGJhdGNoIG9mIHRyYW5zYWN0aW9uc1xuICAgKiBncm91cCB0eHMgaW50byBibG9ja3MgYW5kIHByb2Nlc3MgdGhlbSB1c2luZyBgcHJvY2Vzc1RyYW5zYWN0aW9uc2BcbiAgICogQHBhcmFtIHR4c1xuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzVHJhbnNhY3Rpb25CYXRjaCA9IGFzeW5jICh0eHM6IEFycmF5PEV4dGVuZGVkVHJhbnNhY3Rpb24+KSA9PiB7XG4gICAgdHhzID0gc29ydEJ5KHR4cywgKHR4KSA9PiB0eC5pbmNsdXNpb25IZWlnaHQpO1xuICAgIGNvbnN0IGdyb3VwZWRUeHMgPSBncm91cEJ5KHR4cywgKHR4KSA9PiB0eC5ibG9ja0lkKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBUaGUgdHJhbnNhY3Rpb24gYmF0Y2ggZ3JvdXBlZCB0byAke1xuICAgICAgICBPYmplY3Qua2V5cyhncm91cGVkVHhzKS5sZW5ndGhcbiAgICAgIH0gYmxvY2tzYCxcbiAgICApO1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLmRiTXV0ZXguYWNxdWlyZSgpO1xuICAgIGZvciAoY29uc3QgYmxvY2tJZCBpbiBncm91cGVkVHhzKSB7XG4gICAgICBjb25zdCBibG9ja1R4cyA9IGdyb3VwZWRUeHNbYmxvY2tJZF07XG4gICAgICBjb25zdCBibG9jayA9IHsgaGFzaDogYmxvY2tJZCwgaGVpZ2h0OiBibG9ja1R4c1swXS5pbmNsdXNpb25IZWlnaHQgfTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgYXQgaGVpZ2h0ICR7YmxvY2tUeHNbMF0uaW5jbHVzaW9uSGVpZ2h0fWAsXG4gICAgICApO1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9ucyhibG9ja1R4cywgYmxvY2spO1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIHJlbGVhc2UoKTtcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgYFByb2Nlc3NpbmcgdHJhbnNhY3Rpb25zIGZhaWxlZCBhdCBoZWlnaHQgJHtibG9ja1R4c1swXS5pbmNsdXNpb25IZWlnaHR9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVsZWFzZSgpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBzdG9yaW5nIHNwZW5kIGluZm8gb2YgdHJhbnNhY3Rpb24gYmF0Y2hgKTtcbiAgICBhd2FpdCB0aGlzLnN0b3JlRXh0cmFJbmZvKHR4cyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIHJlbW92ZSBhbGwgb2xkIGRhdGEgYW5kIGluaXRpYWxpemUgZXh0cmFjdG9yIGRhdGFiYXNlIHdpdGggZGF0YSBjcmVhdGVkXG4gICAqIGJlbG93IHRoZSBpbml0aWFsIGhlaWdodCBhbmQgZmluYWxseSBhcHBseSB0aGUgc3RvcmVkIHNwZW5kIHJlY29yZHMgdG8gbWFrZVxuICAgKiBzdXJlIGFsbCBzdG9yZWQgZGF0YSBpcyB2YWxpZFxuICAgKiBpZ25vcmUgaW5pdGlhbGl6YXRpb24gaWYgdGhpcyBmZWF0dXJlIGlzIG9mZlxuICAgKiBAcGFyYW0gaW5pdGlhbEJsb2NrXG4gICAqL1xuICBpbml0aWFsaXplRGF0YSA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbykgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oYEluaXRpYWxpemF0aW9uIHByb2Nlc3MgZm9yICR7dGhpcy5leHRyYWN0b3JJZH0gc3RhcnRlZGApO1xuICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5yZW1vdmVBbGxEYXRhKHRoaXMuZXh0cmFjdG9ySWQpO1xuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25TdHJhdGVneS5pbml0aWFsaXplKGluaXRpYWxCbG9jayk7XG4gICAgYXdhaXQgdGhpcy5hcHBseUV4dHJhSW5mbygpO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICBgSW5pdGlhbGl6YXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBmb3IgJHt0aGlzLmV4dHJhY3RvcklkfWAsXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJnb0luaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6ZXJzL2VyZ29Jbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU1QyxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFFTCxlQUFlLEdBRWhCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLDBCQUEwQixHQUMzQixNQUFNLGNBQWMsQ0FBQztBQUV0QixNQUFNLE9BQU8sZUFBZTtJQWFkO0lBQ0E7SUFJQTtJQUVBO0lBaEJGLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3RCLHNCQUFzQixDQUVEO0lBRS9CLFlBQ0UsV0FBNEIsRUFDNUIsR0FBVyxFQUNYLE9BQWUsRUFDTCxXQUFtQixFQUNuQixtQkFHVyxFQUNYLE9BQTJELEVBQ3JFLG1CQUFtQixHQUFHLHFCQUFxQixFQUNqQyxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQVAxQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBR1I7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFvRDtRQUUzRCxXQUFNLEdBQU4sTUFBTSxDQUFvQztRQUVwRCxJQUFJLFdBQVcsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksOEJBQThCLENBQzlELEdBQUcsRUFDSCxPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFD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QUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDZDQUE2QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQ2hFLENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdyb3VwQnksIHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IER1bW15TG9nZ2VyLCBBYnN0cmFjdExvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7XG4gIEJsb2NrSW5mbyxcbiAgRXJnb05ldHdvcmtUeXBlLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgTXV0ZXggfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NlbWFwaG9yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXJnb0FjdGlvbiwgQWJzdHJhY3RFcmdvRW50aXR5IH0gZnJvbSAnLi4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RFbnRpdHlEYXRhLCBFeHRlbmRlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNQVhfUEFSQUxMRUxfUkVRVUVTVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBFeHBsb3JlckluaXRpYWxpemF0aW9uU3RyYXRlZ3ksXG4gIE5vZGVJbml0aWFsaXphdGlvblN0cmF0ZWd5LFxufSBmcm9tICcuL3N0cmF0ZWdpZXMnO1xuXG5leHBvcnQgY2xhc3MgRXJnb0luaXRpYWxpemVyPFxuICBFeHRyYWN0ZWREYXRhIGV4dGVuZHMgQWJzdHJhY3RFbnRpdHlEYXRhLFxuICBFeHRyYWN0b3JFbnRpdHkgZXh0ZW5kcyBBYnN0cmFjdEVyZ29FbnRpdHksXG4+IHtcbiAgcHJvdGVjdGVkIGRiTXV0ZXggPSBuZXcgTXV0ZXgoKTtcbiAgcHJvdGVjdGVkIGluaXRpYWxpemF0aW9uU3RyYXRlZ3k6XG4gICAgfCBFeHBsb3JlckluaXRpYWxpemF0aW9uU3RyYXRlZ3lcbiAgICB8IE5vZGVJbml0aWFsaXphdGlvblN0cmF0ZWd5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5ldHdvcmtUeXBlOiBFcmdvTmV0d29ya1R5cGUsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBleHRyYWN0b3JJZDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBwcm9jZXNzVHJhbnNhY3Rpb25zOiAoXG4gICAgICB0eHM6IFRyYW5zYWN0aW9uW10sXG4gICAgICBibG9jazogQmxvY2tJbmZvLFxuICAgICkgPT4gUHJvbWlzZTxib29sZWFuPixcbiAgICBwcm90ZWN0ZWQgYWN0aW9uczogQWJzdHJhY3RFcmdvQWN0aW9uPEV4dHJhY3RlZERhdGEsIEV4dHJhY3RvckVudGl0eT4sXG4gICAgbWF4UGFyYWxsZWxSZXF1ZXN0cyA9IE1BWF9QQVJBTExFTF9SRVFVRVNUUyxcbiAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuICApIHtcbiAgICBpZiAobmV0d29ya1R5cGUgPT0gRXJnb05ldHdvcmtUeXBlLkV4cGxvcmVyKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemF0aW9uU3RyYXRlZ3kgPSBuZXcgRXhwbG9yZXJJbml0aWFsaXphdGlvblN0cmF0ZWd5KFxuICAgICAgICB1cmwsXG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIG1heFBhcmFsbGVsUmVxdWVzdHMsXG4gICAgICAgIHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9ucyxcbiAgICAgICAgdGhpcy5wcm9jZXNzVHJhbnNhY3Rpb25CYXRjaCxcbiAgICAgICAgbG9nZ2VyLmNoaWxkKCdFeHBsb3JlckluaXRpYWxpemF0aW9uU3RyYXRlZ3knKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChuZXR3b3JrVHlwZSA9PSBFcmdvTmV0d29ya1R5cGUuTm9kZSkge1xuICAgICAgdGhpcy5pbml0aWFsaXphdGlvblN0cmF0ZWd5ID0gbmV3IE5vZGVJbml0aWFsaXphdGlvblN0cmF0ZWd5KFxuICAgICAgICB1cmwsXG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIG1heFBhcmFsbGVsUmVxdWVzdHMsXG4gICAgICAgIHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9uQmF0Y2gsXG4gICAgICAgIGxvZ2dlci5jaGlsZCgnTm9kZUluaXRpYWxpemF0aW9uU3RyYXRlZ3knKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHRocm93IG5ldyBFcnJvcihgTmV0d29yayB0eXBlICR7bmV0d29ya1R5cGV9IGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIHN0b3JlIGV4dHJhIGluZm9ybWF0aW9uIG9mIGEgdHJhbnNhY3Rpb24gYmF0Y2hcbiAgICogQHBhcmFtIHR4cyBsaXN0IG9mIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIHN0b3JlRXh0cmFJbmZvKFxuICAgIHR4czogRXh0ZW5kZWRUcmFuc2FjdGlvbltdLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBhcHBseSBleHRyYSBpbmZvcm1hdGlvbiB0byB0aGUgZXh0cmFjdG9yIGRhdGFiYXNlXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBwbHlFeHRyYUluZm8gPSAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgYmF0Y2ggb2YgdHJhbnNhY3Rpb25zXG4gICAqIGdyb3VwIHR4cyBpbnRvIGJsb2NrcyBhbmQgcHJvY2VzcyB0aGVtIHVzaW5nIGBwcm9jZXNzVHJhbnNhY3Rpb25zYFxuICAgKiBAcGFyYW0gdHhzXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NUcmFuc2FjdGlvbkJhdGNoID0gYXN5bmMgKHR4czogQXJyYXk8RXh0ZW5kZWRUcmFuc2FjdGlvbj4pID0+IHtcbiAgICB0eHMgPSBzb3J0QnkodHhzLCAodHgpID0+IHR4LmluY2x1c2lvbkhlaWdodCk7XG4gICAgY29uc3QgZ3JvdXBlZFR4cyA9IGdyb3VwQnkodHhzLCAodHgpID0+IHR4LmJsb2NrSWQpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYFRoZSB0cmFuc2FjdGlvbiBiYXRjaCBncm91cGVkIHRvICR7XG4gICAgICAgIE9iamVjdC5rZXlzKGdyb3VwZWRUeHMpLmxlbmd0aFxuICAgICAgfSBibG9ja3NgLFxuICAgICk7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuZGJNdXRleC5hY3F1aXJlKCk7XG4gICAgZm9yIChjb25zdCBibG9ja0lkIGluIGdyb3VwZWRUeHMpIHtcbiAgICAgIGNvbnN0IGJsb2NrVHhzID0gZ3JvdXBlZFR4c1tibG9ja0lkXTtcbiAgICAgIGNvbnN0IGJsb2NrID0geyBoYXNoOiBibG9ja0lkLCBoZWlnaHQ6IGJsb2NrVHhzWzBdLmluY2x1c2lvbkhlaWdodCB9O1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBQcm9jZXNzaW5nIHRyYW5zYWN0aW9ucyBhdCBoZWlnaHQgJHtibG9ja1R4c1swXS5pbmNsdXNpb25IZWlnaHR9YCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5wcm9jZXNzVHJhbnNhY3Rpb25zKGJsb2NrVHhzLCBibG9jayk7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgcmVsZWFzZSgpO1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBgUHJvY2Vzc2luZyB0cmFuc2FjdGlvbnMgZmFpbGVkIGF0IGhlaWdodCAke2Jsb2NrVHhzWzBdLmluY2x1c2lvbkhlaWdodH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZWxlYXNlKCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYHN0b3Jpbmcgc3BlbmQgaW5mbyBvZiB0cmFuc2FjdGlvbiBiYXRjaGApO1xuICAgIGF3YWl0IHRoaXMuc3RvcmVFeHRyYUluZm8odHhzKTtcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlIGFsbCBvbGQgZGF0YSBhbmQgaW5pdGlhbGl6ZSBleHRyYWN0b3IgZGF0YWJhc2Ugd2l0aCBkYXRhIGNyZWF0ZWRcbiAgICogYmVsb3cgdGhlIGluaXRpYWwgaGVpZ2h0IGFuZCBmaW5hbGx5IGFwcGx5IHRoZSBzdG9yZWQgc3BlbmQgcmVjb3JkcyB0byBtYWtlXG4gICAqIHN1cmUgYWxsIHN0b3JlZCBkYXRhIGlzIHZhbGlkXG4gICAqIGlnbm9yZSBpbml0aWFsaXphdGlvbiBpZiB0aGlzIGZlYXR1cmUgaXMgb2ZmXG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2tcbiAgICovXG4gIGluaXRpYWxpemVEYXRhID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKSA9PiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhgSW5pdGlhbGl6YXRpb24gcHJvY2VzcyBmb3IgJHt0aGlzLmV4dHJhY3RvcklkfSBzdGFydGVkYCk7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLnJlbW92ZUFsbERhdGEodGhpcy5leHRyYWN0b3JJZCk7XG4gICAgYXdhaXQgdGhpcy5pbml0aWFsaXphdGlvblN0cmF0ZWd5LmluaXRpYWxpemUoaW5pdGlhbEJsb2NrKTtcbiAgICBhd2FpdCB0aGlzLmFwcGx5RXh0cmFJbmZvKCk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgIGBJbml0aWFsaXphdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGZvciAke3RoaXMuZXh0cmFjdG9ySWR9YCxcbiAgICApO1xuICB9O1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../../../lib/ergo/initializers/strategies/workerManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,aAAa;IAOtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;gBAGjB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAChE,MAAM,GAAE,cAAkC;IAGpD;;;OAGG;IACH,KAAK,GAAI,WAAW,MAAM,UAIxB;IAEF;;;;OAIG;IACH,cAAc,GAAI,aAAa,MAAM,KAAG,OAAO,CAE7C;IAEF;;;;OAIG;IACH,cAAc,GAAU,aAAa,MAAM,mBAYzC;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAapB;IAEF;;;;OAIG;IACH,cAAc,GAAU,aAAa,MAAM,mBAazC;IAEF;;;;OAIG;IACH,iBAAiB,GAAU,aAAa,MAAM,mBAU5C;IAEF;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B,CAWpC;IAEF;;;;;;OAMG;IACH,mBAAmB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CA+C/C;IAEF;;;;;;;;;;;;OAYG;IACH,YAAY,GACV,aAAa,MAAM,EACnB,gBAAgB,MAAM,KACrB,OAAO,CAAC,UAAU,CAAC,CAepB;CACH"}
1
+ {"version":3,"file":"workerManager.d.ts","sourceRoot":"","sources":["../../../../lib/ergo/initializers/strategies/workerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG5E,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,aAAa;IAOtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;gBAGjB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAChE,MAAM,GAAE,cAAkC;IAGpD;;;OAGG;IACH,KAAK,GAAI,WAAW,MAAM,UAIxB;IAEF;;;;OAIG;IACH,cAAc,GAAI,aAAa,MAAM,KAAG,OAAO,CAE7C;IAEF;;;;OAIG;IACH,cAAc,GAAU,aAAa,MAAM,mBAYzC;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAapB;IAEF;;;;OAIG;IACH,cAAc,GAAU,aAAa,MAAM,mBAazC;IAEF;;;;OAIG;IACH,iBAAiB,GAAU,aAAa,MAAM,mBAU5C;IAEF;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B,CAWpC;IAEF;;;;;;OAMG;IACH,mBAAmB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CA+C/C;IAEF;;;;;;;;;;;;OAYG;IACH,YAAY,GACV,aAAa,MAAM,EACnB,gBAAgB,MAAM,KACrB,OAAO,CAAC,UAAU,CAAC,CAepB;CACH"}
@@ -1,5 +1,5 @@
1
- import { Mutex } from 'await-semaphore';
2
1
  import { DummyLogger } from '@rosen-bridge/abstract-logger';
2
+ import { Mutex } from '@rosen-bridge/semaphore';
3
3
  export class WorkerManager {
4
4
  workerCount;
5
5
  getRangeTxCount;
@@ -179,4 +179,4 @@ export class WorkerManager {
179
179
  return lastRangeQuery;
180
180
  };
181
181
  }
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9lcmdvL2luaXRpYWxpemVycy9zdHJhdGVnaWVzL3dvcmtlck1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFJNUUsTUFBTSxPQUFPLGFBQWE7SUFPZDtJQUNBO0lBQ0E7SUFSRixnQkFBZ0IsQ0FBYztJQUM5QixLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNwQixrQkFBa0IsQ0FBUztJQUMzQixTQUFTLENBQVU7SUFFM0IsWUFDVSxXQUFtQixFQUNuQixlQUFnRSxFQUNoRSxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUYxQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUQ7UUFDaEUsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7SUFDakQsQ0FBQztJQUVKOzs7T0FHRztJQUNILEtBQUssR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekUsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQW1CLEVBQVcsRUFBRTtRQUNoRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0Is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QUFFLENBQUMsS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3pFLFNBQVMsQ0FBQyxHQUFHLEVBQUcsQ0FBQztZQUNqQixjQUFjLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNWLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTXV0ZXggfSBmcm9tICdhd2FpdC1zZW1hcGhvcmUnO1xuXG5pbXBvcnQgeyBEdW1teUxvZ2dlciwgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5cbmltcG9ydCB7IFJhbmdlTGlzdCwgUmFuZ2VRdWVyeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgV29ya2VyTWFuYWdlciB7XG4gIHByaXZhdGUgd29ya2Vyc1JhbmdlTGlzdDogUmFuZ2VMaXN0W107XG4gIHByaXZhdGUgbXV0ZXggPSBuZXcgTXV0ZXgoKTtcbiAgcHJpdmF0ZSBpbml0aWFsU2VnbWVudFNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBtYXhIZWlnaHQ/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3b3JrZXJDb3VudDogbnVtYmVyLFxuICAgIHByaXZhdGUgZ2V0UmFuZ2VUeENvdW50OiAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpID0+IFByb21pc2U8bnVtYmVyPixcbiAgICBwcml2YXRlIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBTZXR1cCB0aGUgd29ya2VyIG1hbmFnZXIgdG8gc3RhcnQgd29ya2luZ1xuICAgKiBAcGFyYW0gbWF4SGVpZ2h0XG4gICAqL1xuICBzZXR1cCA9IChtYXhIZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIHRoaXMubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0O1xuICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMud29ya2VyQ291bnQgfSwgKCkgPT4gW10pO1xuICAgIHRoaXMuaW5pdGlhbFNlZ21lbnRTaXplID0gTWF0aC5jZWlsKHRoaXMubWF4SGVpZ2h0IC8gdGhpcy53b3JrZXJDb3VudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgd29ya2VyJ3Mgc2VhcmNoIHJhbmdlIGlzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0gd29ya2VySW5kZXhcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB3b3JrZXIgaGFzIGFuIGluY29tcGxldGUgcmFuZ2UgdG8gd29yayBvblxuICAgKi9cbiAgaXNXb3JrZXJBY3RpdmUgPSAod29ya2VySW5kZXg6IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLndvcmtlcnNSYW5nZUxpc3Rbd29ya2VySW5kZXhdLmxlbmd0aCA+IDA7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIHRoZSB3b3JrZXIgZm9yIHRoZSBmaXJzdCB0aW1lXG4gICAqIHNwbGl0cyB0aGUgd2hvbGUgcmFuZ2UgZXF1YWxseSBiZXR3ZWVuIHdvcmtlcnNcbiAgICogQHBhcmFtIHdvcmtlckluZGV4XG4gICAqL1xuICByZWdpc3RlcldvcmtlciA9IGFzeW5jICh3b3JrZXJJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCF0aGlzLm1heEhlaWdodClcbiAgICAgIHRocm93IEVycm9yKCdQbGVhc2UgY2FsbCBzZXR1cCBiZWZvcmUgcmVnaXN0ZXJpbmcgd29ya2VycycpO1xuICAgIGNvbnN0IHN0YXJ0ID0gd29ya2VySW5kZXggKiB0aGlzLmluaXRpYWxTZWdtZW50U2l6ZTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihcbiAgICAgICh3b3JrZXJJbmRleCArIDEpICogdGhpcy5pbml0aWFsU2VnbWVudFNpemUgLSAxLFxuICAgICAgdGhpcy5tYXhIZWlnaHQsXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmFkZFdvcmtlclJhbmdlKHdvcmtlckluZGV4LCBzdGFydCwgZW5kKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBXb3JrZXItJHt3b3JrZXJJbmRleH0gaXMgaW5pdGlhbGl6ZWQgd2l0aCByYW5nZSBbJHtzdGFydH0sICR7ZW5kfV1gLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyByYW5nZSB0byB0aGUgd29ya2VycyByYW5nZSBsaXN0XG4gICAqIG5ldyByYW5nZSBpcyBhIHN1YnNldCBvZiBhbGwgZXhpc3RpbmcgcmFuZ2VzXG4gICAqIEBwYXJhbSB3b3JrZXJJbmRleFxuICAgKiBAcGFyYW0gc3RhcnRcbiAgICogQHBhcmFtIGVuZFxuICAgKi9cbiAgcHJpdmF0ZSBhZGRXb3JrZXJSYW5nZSA9IGFzeW5jIChcbiAgICB3b3JrZXJJbmRleDogbnVtYmVyLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgZW5kOiBudW1iZXIsXG4gICkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgdGhpcy5nZXRSYW5nZVR4Q291bnQoc3RhcnQsIGVuZCk7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMubXV0ZXguYWNxdWlyZSgpO1xuICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0ucHVzaCh7XG4gICAgICBzdGFydCxcbiAgICAgIGVuZCxcbiAgICAgIGNvdW50LFxuICAgIH0pO1xuICAgIHJlbGVhc2UoKTtcbiAgfTtcblxuICAvKipcbiAgICogTGltaXQgdGhlIGxhc3QgcmFuZ2UgYnkgYWRkaW5nIGEgbmV3IHJhbmdlIHF1ZXJ5IHRvIHRoZSB3b3JrZXJzIHJhbmdlIGxpc3RcbiAgICogdGhlIG5ldyByYW5nZSB0aGUgZmlyc3QgaGFsZiBvZiB0aGUgbGFzdCBleGlzdGluZyByYW5nZVxuICAgKiBAcGFyYW0gd29ya2VySW5kZXhcbiAgICovXG4gIGxpbWl0TGFzdFJhbmdlID0gYXN5bmMgKHdvcmtlckluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBsYXN0UmFuZ2VRdWVyeSA9IHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0uYXQoLTEpO1xuICAgIGlmICghbGFzdFJhbmdlUXVlcnkpXG4gICAgICB0aHJvdyBFcnJvcignSW1wb3NzaWJsZUJlaGF2aW9yOiB3b3JrZXIgZG9lcyBub3QgaGF2ZSBhbnkgcmFuZ2UgcXVlcnknKTtcbiAgICBjb25zdCBuZXdRdWVyeUVuZCA9XG4gICAgICBNYXRoLmZsb29yKChsYXN0UmFuZ2VRdWVyeS5lbmQgLSBsYXN0UmFuZ2VRdWVyeS5zdGFydCkgLyAyKSArXG4gICAgICBsYXN0UmFuZ2VRdWVyeS5zdGFydDtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBMaW1pdGluZyB0aGUgcmFuZ2UgYnkgYWRkaW5nIGEgbmV3IHJhbmdlIHF1ZXJ5IFske1xuICAgICAgICAobGFzdFJhbmdlUXVlcnkuc3RhcnQsIG5ld1F1ZXJ5RW5kKVxuICAgICAgfV1gLFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5hZGRXb3JrZXJSYW5nZSh3b3JrZXJJbmRleCwgbGFzdFJhbmdlUXVlcnkuc3RhcnQsIG5ld1F1ZXJ5RW5kKTtcbiAgfTtcblxuICAvKipcbiAgICogUG9wIHRoZSBsYXN0IHJhbmdlIHF1ZXJ5IGFmdGVyIGJlaW5nIHByb2Nlc3NlZFxuICAgKiBhbHNvIHVwZGF0ZSBhbGwgb2xkZXIgcmFuZ2VzIGFuZCBkZWR1Y3QgdGhlIHByb2Nlc3NlZCBudW1iZXJzXG4gICAqIEBwYXJhbSB3b3JrZXJJbmRleFxuICAgKi9cbiAgcG9wTGFzdFJhbmdlUXVlcnkgPSBhc3luYyAod29ya2VySW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLm11dGV4LmFjcXVpcmUoKTtcbiAgICBjb25zdCBsYXN0UmFuZ2VRdWVyeSA9IHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0ucG9wKCk7XG4gICAgaWYgKCFsYXN0UmFuZ2VRdWVyeSlcbiAgICAgIHRocm93IEVycm9yKCdJbXBvc3NpYmxlQmVoYXZpb3I6IHdvcmtlciBkb2VzIG5vdCBoYXZlIGFueSByYW5nZSBxdWVyeScpO1xuICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0ubWFwKChyYW5nZVF1ZXJ5KSA9PiB7XG4gICAgICByYW5nZVF1ZXJ5LmNvdW50IC09IGxhc3RSYW5nZVF1ZXJ5LmNvdW50O1xuICAgICAgcmFuZ2VRdWVyeS5zdGFydCA9IGxhc3RSYW5nZVF1ZXJ5LmVuZCArIDE7XG4gICAgfSk7XG4gICAgcmVsZWFzZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBiaWdnZXN0IGluY29tcGxldGUgcmFuZ2UgbGlzdCBjb250YWluaW5nIGF0IGxlYXN0IDIgcmFuZ2VzXG4gICAqIHRoZSByYW5nZSBsaXN0IG11c3QgaGF2ZSBhdCBsZWFzdCB0d28gcmFuZ2Ugc28gdGhhdCBpdCB3b250IGJlY29tZSBlbXB0eVxuICAgKiBhZnRlciBzcGxpdHRpbmcgdGhlIHJhbmdlIGJldHdlZW4gdHdvIHdvcmtlcnNcbiAgICogQHJldHVybnMgYmlnZ2VzdCBpbmNvbXBsZXRlIHJhbmdlIGxpc3QgaW5kZXhcbiAgICovXG4gIHByaXZhdGUgZ2V0QmlnZ2VzdEluY29tcGxldGVSYW5nZUluZGV4ID0gKCk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gICAgbGV0IGJpZ2dlc3RSYW5nZSA9IDAsXG4gICAgICBiaWdnZXN0UmFuZ2VJbmRleCA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud29ya2Vyc1JhbmdlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmFuZ2VMaXN0ID0gdGhpcy53b3JrZXJzUmFuZ2VMaXN0W2ldO1xuICAgICAgaWYgKHJhbmdlTGlzdC5sZW5ndGggPiAxICYmIHJhbmdlTGlzdFswXS5jb3VudCA+IGJpZ2dlc3RSYW5nZSkge1xuICAgICAgICBiaWdnZXN0UmFuZ2UgPSByYW5nZUxpc3RbMF0uY291bnQ7XG4gICAgICAgIGJpZ2dlc3RSYW5nZUluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJpZ2dlc3RSYW5nZUluZGV4O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVjayBhbGwgd29ya2VycyBhbmQgcmVhc3NpZ24gaW5jb21wbGV0ZSByYW5nZXMgdG8gdGhlIGlkbGUgb25lc1xuICAgKiBkbyBub3RoaW5nIGlmIGFsbCB3b3JrZXJzIGFyZSBhY3RpdmVcbiAgICogZG8gbm90aGluZyBpZiB0aGVyZSBpcyBubyBpbmNvbXBsZXRlIHJhbmdlIGxpc3RcbiAgICogc3BsaXQgdGhlIGJpZ2dlc3QgcmFuZ2UgbGlzdCBiZXR3ZWVuIHRoZSBjdXJyZW50IHdvcmtlciBhbmQgdGhlIGlkbGUgd29ya2VyXG4gICAqIEByZXR1cm5zIHJlYXNzaWduZWQgd29ya2VyIGluZGV4ZXNcbiAgICovXG4gIHJlYXNzaWduSWRsZVdvcmtlcnMgPSBhc3luYyAoKTogUHJvbWlzZTxudW1iZXJbXT4gPT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGVja2luZyBpZGxlIHdvcmtlcnMgdG8gcmVhc3NpZ24nKTtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5tdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgaWRsZVdvcmtlckluZGV4ZXMgPSB0aGlzLndvcmtlcnNSYW5nZUxpc3RcbiAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiAodGhpcy5pc1dvcmtlckFjdGl2ZShpbmRleCkgPyAtMSA6IGluZGV4KSlcbiAgICAgIC5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCAhPT0gLTEpO1xuICAgIGlmIChpZGxlV29ya2VySW5kZXhlcy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFRoZXJlIGlzIG5vIGlkbGUgd29ya2VyIHRvIHJlYXNzaWduYCk7XG4gICAgICByZWxlYXNlKCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBGb3VuZCBpZGxlIHdvcmtlcnMgJHtpZGxlV29ya2VySW5kZXhlc31gKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBXb3JrZXJzIHJhbmdlIGxpc3RzIGJlZm9yZSBzcGxpdHRpbmcgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdGhpcy53b3JrZXJzUmFuZ2VMaXN0LFxuICAgICAgKX1gLFxuICAgICk7XG4gICAgY29uc3QgbmV3V29ya2VyczogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlkbGVXb3JrZXJJbmRleCBvZiBpZGxlV29ya2VySW5kZXhlcykge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYHJlYXNzaWduaW5nIGpvYiB0byB3b3JrZXItJHtpZGxlV29ya2VySW5kZXh9YCk7XG4gICAgICBjb25zdCBiaWdnZXN0SW5jb21wbGV0ZVJhbmdlSW5kZXggPSB0aGlzLmdldEJpZ2dlc3RJbmNvbXBsZXRlUmFuZ2VJbmRleCgpO1xuICAgICAgaWYgKGJpZ2dlc3RJbmNvbXBsZXRlUmFuZ2VJbmRleCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYHRoZXJlIGlzIG5vIGluY29tcGxldGUgcmFuZ2UgdG8gcmVhc3NpZ25gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYGJpZ2dlc3QgaW5jb21wbGV0ZSByYW5nZSBpcyAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFtiaWdnZXN0SW5jb21wbGV0ZVJhbmdlSW5kZXhdLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgICAgY29uc3QgcmVtb3ZlZFJhbmdlUXVlcnkgPVxuICAgICAgICB0aGlzLndvcmtlcnNSYW5nZUxpc3RbYmlnZ2VzdEluY29tcGxldGVSYW5nZUluZGV4XS5zaGlmdCgpITtcbiAgICAgIGNvbnN0IGhlYWQgPSB0aGlzLndvcmtlcnNSYW5nZUxpc3RbYmlnZ2VzdEluY29tcGxldGVSYW5nZUluZGV4XVswXTtcbiAgICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFtpZGxlV29ya2VySW5kZXhdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc3RhcnQ6IGhlYWQuZW5kICsgMSxcbiAgICAgICAgICBlbmQ6IHJlbW92ZWRSYW5nZVF1ZXJ5LmVuZCxcbiAgICAgICAgICBjb3VudDogcmVtb3ZlZFJhbmdlUXVlcnkuY291bnQgLSBoZWFkLmNvdW50LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIG5ld1dvcmtlcnMucHVzaChpZGxlV29ya2VySW5kZXgpO1xuICAgIH1cbiAgICByZWxlYXNlKCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgUmFuZ2UgbGlzdHMgYWZ0ZXIgc3BsaXR0aW5nICR7SlNPTi5zdHJpbmdpZnkodGhpcy53b3JrZXJzUmFuZ2VMaXN0KX1gLFxuICAgICk7XG4gICAgcmV0dXJuIG5ld1dvcmtlcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGFzdCAoYmlnZ2VzdCkgcHJvY2Vzc2FibGUgcmFuZ2UgZnJvbSB0aGUgd29ya2VyJ3MgcmFuZ2UgbGlzdFxuICAgKlxuICAgKiBBZnRlciB0aGUgbGFzdCByYW5nZSBpcyBwcm9jZXNzZWQsIHRoZSBvbGRlciBvbmVzIGFyZSB1cGRhdGVkIGFuZCB1c3VhbGx5XG4gICAqIGJlY29tZSBzbWFsbGVyLiBTb21lIG9mIHRoZW0gbWlnaHQgc2hyaW5rIGJlbG93IGEgY2VydGFpbiB0aHJlc2hvbGQsIHdoaWNoXG4gICAqIG1lYW5zIHRoZXkgY2FuIG5vdyBiZSBwcm9jZXNzZWQgdG9vLlxuICAgKiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBiaWdnZXN0IHJhbmdlIHRoYXQgaXMgc21hbGwgZW5vdWdoIHRvIGJlIHByb2Nlc3NlZCxcbiAgICogYW5kIHJlbW92ZXMgYWxsIG9mIGl0cyBjaGlsZCByYW5nZXMgZnJvbSB0aGUgbGlzdC5cbiAgICogUmV0dXJucyB0aGUgbGFzdCByYW5nZSBpZiBub25lIG9mIHRoZW0gaXMgcHJvY2Vzc2FibGUuXG4gICAqIEBwYXJhbSB3b3JrZXJJbmRleFxuICAgKiBAcGFyYW0gcmFuZ2VUaHJlc2hvbGRcbiAgICogQHJldHVybnMgcmFuZ2UgcXVlcnlcbiAgICovXG4gIGdldExhc3RSYW5nZSA9IGFzeW5jIChcbiAgICB3b3JrZXJJbmRleDogbnVtYmVyLFxuICAgIHJhbmdlVGhyZXNob2xkOiBudW1iZXIsXG4gICk6IFByb21pc2U8UmFuZ2VRdWVyeT4gPT4ge1xuICAgIGNvbnN0IHJhbmdlTGlzdCA9IHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF07XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgU2VhcmNoIHJhbmdlIG9mIHdvcmtlci0ke3dvcmtlckluZGV4fSBpcyAke0pTT04uc3RyaW5naWZ5KHJhbmdlTGlzdCl9YCxcbiAgICApO1xuICAgIGxldCBsYXN0UmFuZ2VRdWVyeSA9IHJhbmdlTGlzdC5hdCgtMSkhO1xuICAgIC8vIGF2b2lkIHJhY2UgY29uZGl0aW9uIHdoZW4gdXBkYXRpbmcgdGhlIHNoYXJlZCBgcmFuZ2VMaXN0YCB2YXJpYWJsZVxuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLm11dGV4LmFjcXVpcmUoKTtcbiAgICAvLyBqdW1wIG92ZXIgc21hbGwgcmFuZ2VzIHRvIHNlbGVjdCB0aGUgYmlnZ2VzdCBwcm9jZXNzYWJsZSByYW5nZVxuICAgIHdoaWxlIChyYW5nZUxpc3QubGVuZ3RoID4gMSAmJiByYW5nZUxpc3QuYXQoLTIpIS5jb3VudCA8PSByYW5nZVRocmVzaG9sZCkge1xuICAgICAgcmFuZ2VMaXN0LnBvcCgpITtcbiAgICAgIGxhc3RSYW5nZVF1ZXJ5ID0gcmFuZ2VMaXN0LmF0KC0xKSE7XG4gICAgfVxuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gbGFzdFJhbmdlUXVlcnk7XG4gIH07XG59XG4iXX0=
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9lcmdvL2luaXRpYWxpemVycy9zdHJhdGVnaWVzL3dvcmtlck1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJaEQsTUFBTSxPQUFPLGFBQWE7SUFPZDtJQUNBO0lBQ0E7SUFSRixnQkFBZ0IsQ0FBYztJQUM5QixLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNwQixrQkFBa0IsQ0FBUztJQUMzQixTQUFTLENBQVU7SUFFM0IsWUFDVSxXQUFtQixFQUNuQixlQUFnRSxFQUNoRSxTQUF5QixJQUFJLFdBQVcsRUFBRTtRQUYxQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUQ7UUFDaEUsV0FBTSxHQUFOLE1BQU0sQ0FBb0M7SUFDakQsQ0FBQztJQUVKOzs7T0FHRztJQUNILEtBQUssR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekUsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILGNBQWMsR0FBRyxDQUFDLFdBQW1CLEVBQVcsRUFBRTtRQUNoRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0Is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QUFFLENBQUMsS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3pFLFNBQVMsQ0FBQyxHQUFHLEVBQUcsQ0FBQztZQUNqQixjQUFjLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNWLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVtbXlMb2dnZXIsIEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgTXV0ZXggfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NlbWFwaG9yZSc7XG5cbmltcG9ydCB7IFJhbmdlTGlzdCwgUmFuZ2VRdWVyeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgV29ya2VyTWFuYWdlciB7XG4gIHByaXZhdGUgd29ya2Vyc1JhbmdlTGlzdDogUmFuZ2VMaXN0W107XG4gIHByaXZhdGUgbXV0ZXggPSBuZXcgTXV0ZXgoKTtcbiAgcHJpdmF0ZSBpbml0aWFsU2VnbWVudFNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBtYXhIZWlnaHQ/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3b3JrZXJDb3VudDogbnVtYmVyLFxuICAgIHByaXZhdGUgZ2V0UmFuZ2VUeENvdW50OiAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpID0+IFByb21pc2U8bnVtYmVyPixcbiAgICBwcml2YXRlIGxvZ2dlcjogQWJzdHJhY3RMb2dnZXIgPSBuZXcgRHVtbXlMb2dnZXIoKSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBTZXR1cCB0aGUgd29ya2VyIG1hbmFnZXIgdG8gc3RhcnQgd29ya2luZ1xuICAgKiBAcGFyYW0gbWF4SGVpZ2h0XG4gICAqL1xuICBzZXR1cCA9IChtYXhIZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIHRoaXMubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0O1xuICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMud29ya2VyQ291bnQgfSwgKCkgPT4gW10pO1xuICAgIHRoaXMuaW5pdGlhbFNlZ21lbnRTaXplID0gTWF0aC5jZWlsKHRoaXMubWF4SGVpZ2h0IC8gdGhpcy53b3JrZXJDb3VudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgd29ya2VyJ3Mgc2VhcmNoIHJhbmdlIGlzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0gd29ya2VySW5kZXhcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB3b3JrZXIgaGFzIGFuIGluY29tcGxldGUgcmFuZ2UgdG8gd29yayBvblxuICAgKi9cbiAgaXNXb3JrZXJBY3RpdmUgPSAod29ya2VySW5kZXg6IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLndvcmtlcnNSYW5nZUxpc3Rbd29ya2VySW5kZXhdLmxlbmd0aCA+IDA7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIHRoZSB3b3JrZXIgZm9yIHRoZSBmaXJzdCB0aW1lXG4gICAqIHNwbGl0cyB0aGUgd2hvbGUgcmFuZ2UgZXF1YWxseSBiZXR3ZWVuIHdvcmtlcnNcbiAgICogQHBhcmFtIHdvcmtlckluZGV4XG4gICAqL1xuICByZWdpc3RlcldvcmtlciA9IGFzeW5jICh3b3JrZXJJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCF0aGlzLm1heEhlaWdodClcbiAgICAgIHRocm93IEVycm9yKCdQbGVhc2UgY2FsbCBzZXR1cCBiZWZvcmUgcmVnaXN0ZXJpbmcgd29ya2VycycpO1xuICAgIGNvbnN0IHN0YXJ0ID0gd29ya2VySW5kZXggKiB0aGlzLmluaXRpYWxTZWdtZW50U2l6ZTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihcbiAgICAgICh3b3JrZXJJbmRleCArIDEpICogdGhpcy5pbml0aWFsU2VnbWVudFNpemUgLSAxLFxuICAgICAgdGhpcy5tYXhIZWlnaHQsXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmFkZFdvcmtlclJhbmdlKHdvcmtlckluZGV4LCBzdGFydCwgZW5kKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBXb3JrZXItJHt3b3JrZXJJbmRleH0gaXMgaW5pdGlhbGl6ZWQgd2l0aCByYW5nZSBbJHtzdGFydH0sICR7ZW5kfV1gLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyByYW5nZSB0byB0aGUgd29ya2VycyByYW5nZSBsaXN0XG4gICAqIG5ldyByYW5nZSBpcyBhIHN1YnNldCBvZiBhbGwgZXhpc3RpbmcgcmFuZ2VzXG4gICAqIEBwYXJhbSB3b3JrZXJJbmRleFxuICAgKiBAcGFyYW0gc3RhcnRcbiAgICogQHBhcmFtIGVuZFxuICAgKi9cbiAgcHJpdmF0ZSBhZGRXb3JrZXJSYW5nZSA9IGFzeW5jIChcbiAgICB3b3JrZXJJbmRleDogbnVtYmVyLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgZW5kOiBudW1iZXIsXG4gICkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgdGhpcy5nZXRSYW5nZVR4Q291bnQoc3RhcnQsIGVuZCk7XG4gICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMubXV0ZXguYWNxdWlyZSgpO1xuICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0ucHVzaCh7XG4gICAgICBzdGFydCxcbiAgICAgIGVuZCxcbiAgICAgIGNvdW50LFxuICAgIH0pO1xuICAgIHJlbGVhc2UoKTtcbiAgfTtcblxuICAvKipcbiAgICogTGltaXQgdGhlIGxhc3QgcmFuZ2UgYnkgYWRkaW5nIGEgbmV3IHJhbmdlIHF1ZXJ5IHRvIHRoZSB3b3JrZXJzIHJhbmdlIGxpc3RcbiAgICogdGhlIG5ldyByYW5nZSB0aGUgZmlyc3QgaGFsZiBvZiB0aGUgbGFzdCBleGlzdGluZyByYW5nZVxuICAgKiBAcGFyYW0gd29ya2VySW5kZXhcbiAgICovXG4gIGxpbWl0TGFzdFJhbmdlID0gYXN5bmMgKHdvcmtlckluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBsYXN0UmFuZ2VRdWVyeSA9IHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0uYXQoLTEpO1xuICAgIGlmICghbGFzdFJhbmdlUXVlcnkpXG4gICAgICB0aHJvdyBFcnJvcignSW1wb3NzaWJsZUJlaGF2aW9yOiB3b3JrZXIgZG9lcyBub3QgaGF2ZSBhbnkgcmFuZ2UgcXVlcnknKTtcbiAgICBjb25zdCBuZXdRdWVyeUVuZCA9XG4gICAgICBNYXRoLmZsb29yKChsYXN0UmFuZ2VRdWVyeS5lbmQgLSBsYXN0UmFuZ2VRdWVyeS5zdGFydCkgLyAyKSArXG4gICAgICBsYXN0UmFuZ2VRdWVyeS5zdGFydDtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBMaW1pdGluZyB0aGUgcmFuZ2UgYnkgYWRkaW5nIGEgbmV3IHJhbmdlIHF1ZXJ5IFske1xuICAgICAgICAobGFzdFJhbmdlUXVlcnkuc3RhcnQsIG5ld1F1ZXJ5RW5kKVxuICAgICAgfV1gLFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5hZGRXb3JrZXJSYW5nZSh3b3JrZXJJbmRleCwgbGFzdFJhbmdlUXVlcnkuc3RhcnQsIG5ld1F1ZXJ5RW5kKTtcbiAgfTtcblxuICAvKipcbiAgICogUG9wIHRoZSBsYXN0IHJhbmdlIHF1ZXJ5IGFmdGVyIGJlaW5nIHByb2Nlc3NlZFxuICAgKiBhbHNvIHVwZGF0ZSBhbGwgb2xkZXIgcmFuZ2VzIGFuZCBkZWR1Y3QgdGhlIHByb2Nlc3NlZCBudW1iZXJzXG4gICAqIEBwYXJhbSB3b3JrZXJJbmRleFxuICAgKi9cbiAgcG9wTGFzdFJhbmdlUXVlcnkgPSBhc3luYyAod29ya2VySW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLm11dGV4LmFjcXVpcmUoKTtcbiAgICBjb25zdCBsYXN0UmFuZ2VRdWVyeSA9IHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0ucG9wKCk7XG4gICAgaWYgKCFsYXN0UmFuZ2VRdWVyeSlcbiAgICAgIHRocm93IEVycm9yKCdJbXBvc3NpYmxlQmVoYXZpb3I6IHdvcmtlciBkb2VzIG5vdCBoYXZlIGFueSByYW5nZSBxdWVyeScpO1xuICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF0ubWFwKChyYW5nZVF1ZXJ5KSA9PiB7XG4gICAgICByYW5nZVF1ZXJ5LmNvdW50IC09IGxhc3RSYW5nZVF1ZXJ5LmNvdW50O1xuICAgICAgcmFuZ2VRdWVyeS5zdGFydCA9IGxhc3RSYW5nZVF1ZXJ5LmVuZCArIDE7XG4gICAgfSk7XG4gICAgcmVsZWFzZSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBiaWdnZXN0IGluY29tcGxldGUgcmFuZ2UgbGlzdCBjb250YWluaW5nIGF0IGxlYXN0IDIgcmFuZ2VzXG4gICAqIHRoZSByYW5nZSBsaXN0IG11c3QgaGF2ZSBhdCBsZWFzdCB0d28gcmFuZ2Ugc28gdGhhdCBpdCB3b250IGJlY29tZSBlbXB0eVxuICAgKiBhZnRlciBzcGxpdHRpbmcgdGhlIHJhbmdlIGJldHdlZW4gdHdvIHdvcmtlcnNcbiAgICogQHJldHVybnMgYmlnZ2VzdCBpbmNvbXBsZXRlIHJhbmdlIGxpc3QgaW5kZXhcbiAgICovXG4gIHByaXZhdGUgZ2V0QmlnZ2VzdEluY29tcGxldGVSYW5nZUluZGV4ID0gKCk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gICAgbGV0IGJpZ2dlc3RSYW5nZSA9IDAsXG4gICAgICBiaWdnZXN0UmFuZ2VJbmRleCA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud29ya2Vyc1JhbmdlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmFuZ2VMaXN0ID0gdGhpcy53b3JrZXJzUmFuZ2VMaXN0W2ldO1xuICAgICAgaWYgKHJhbmdlTGlzdC5sZW5ndGggPiAxICYmIHJhbmdlTGlzdFswXS5jb3VudCA+IGJpZ2dlc3RSYW5nZSkge1xuICAgICAgICBiaWdnZXN0UmFuZ2UgPSByYW5nZUxpc3RbMF0uY291bnQ7XG4gICAgICAgIGJpZ2dlc3RSYW5nZUluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJpZ2dlc3RSYW5nZUluZGV4O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVjayBhbGwgd29ya2VycyBhbmQgcmVhc3NpZ24gaW5jb21wbGV0ZSByYW5nZXMgdG8gdGhlIGlkbGUgb25lc1xuICAgKiBkbyBub3RoaW5nIGlmIGFsbCB3b3JrZXJzIGFyZSBhY3RpdmVcbiAgICogZG8gbm90aGluZyBpZiB0aGVyZSBpcyBubyBpbmNvbXBsZXRlIHJhbmdlIGxpc3RcbiAgICogc3BsaXQgdGhlIGJpZ2dlc3QgcmFuZ2UgbGlzdCBiZXR3ZWVuIHRoZSBjdXJyZW50IHdvcmtlciBhbmQgdGhlIGlkbGUgd29ya2VyXG4gICAqIEByZXR1cm5zIHJlYXNzaWduZWQgd29ya2VyIGluZGV4ZXNcbiAgICovXG4gIHJlYXNzaWduSWRsZVdvcmtlcnMgPSBhc3luYyAoKTogUHJvbWlzZTxudW1iZXJbXT4gPT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGVja2luZyBpZGxlIHdvcmtlcnMgdG8gcmVhc3NpZ24nKTtcbiAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5tdXRleC5hY3F1aXJlKCk7XG4gICAgY29uc3QgaWRsZVdvcmtlckluZGV4ZXMgPSB0aGlzLndvcmtlcnNSYW5nZUxpc3RcbiAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiAodGhpcy5pc1dvcmtlckFjdGl2ZShpbmRleCkgPyAtMSA6IGluZGV4KSlcbiAgICAgIC5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCAhPT0gLTEpO1xuICAgIGlmIChpZGxlV29ya2VySW5kZXhlcy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFRoZXJlIGlzIG5vIGlkbGUgd29ya2VyIHRvIHJlYXNzaWduYCk7XG4gICAgICByZWxlYXNlKCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBGb3VuZCBpZGxlIHdvcmtlcnMgJHtpZGxlV29ya2VySW5kZXhlc31gKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBXb3JrZXJzIHJhbmdlIGxpc3RzIGJlZm9yZSBzcGxpdHRpbmcgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdGhpcy53b3JrZXJzUmFuZ2VMaXN0LFxuICAgICAgKX1gLFxuICAgICk7XG4gICAgY29uc3QgbmV3V29ya2VyczogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlkbGVXb3JrZXJJbmRleCBvZiBpZGxlV29ya2VySW5kZXhlcykge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYHJlYXNzaWduaW5nIGpvYiB0byB3b3JrZXItJHtpZGxlV29ya2VySW5kZXh9YCk7XG4gICAgICBjb25zdCBiaWdnZXN0SW5jb21wbGV0ZVJhbmdlSW5kZXggPSB0aGlzLmdldEJpZ2dlc3RJbmNvbXBsZXRlUmFuZ2VJbmRleCgpO1xuICAgICAgaWYgKGJpZ2dlc3RJbmNvbXBsZXRlUmFuZ2VJbmRleCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYHRoZXJlIGlzIG5vIGluY29tcGxldGUgcmFuZ2UgdG8gcmVhc3NpZ25gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYGJpZ2dlc3QgaW5jb21wbGV0ZSByYW5nZSBpcyAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFtiaWdnZXN0SW5jb21wbGV0ZVJhbmdlSW5kZXhdLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgICAgY29uc3QgcmVtb3ZlZFJhbmdlUXVlcnkgPVxuICAgICAgICB0aGlzLndvcmtlcnNSYW5nZUxpc3RbYmlnZ2VzdEluY29tcGxldGVSYW5nZUluZGV4XS5zaGlmdCgpITtcbiAgICAgIGNvbnN0IGhlYWQgPSB0aGlzLndvcmtlcnNSYW5nZUxpc3RbYmlnZ2VzdEluY29tcGxldGVSYW5nZUluZGV4XVswXTtcbiAgICAgIHRoaXMud29ya2Vyc1JhbmdlTGlzdFtpZGxlV29ya2VySW5kZXhdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc3RhcnQ6IGhlYWQuZW5kICsgMSxcbiAgICAgICAgICBlbmQ6IHJlbW92ZWRSYW5nZVF1ZXJ5LmVuZCxcbiAgICAgICAgICBjb3VudDogcmVtb3ZlZFJhbmdlUXVlcnkuY291bnQgLSBoZWFkLmNvdW50LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIG5ld1dvcmtlcnMucHVzaChpZGxlV29ya2VySW5kZXgpO1xuICAgIH1cbiAgICByZWxlYXNlKCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgUmFuZ2UgbGlzdHMgYWZ0ZXIgc3BsaXR0aW5nICR7SlNPTi5zdHJpbmdpZnkodGhpcy53b3JrZXJzUmFuZ2VMaXN0KX1gLFxuICAgICk7XG4gICAgcmV0dXJuIG5ld1dvcmtlcnM7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGFzdCAoYmlnZ2VzdCkgcHJvY2Vzc2FibGUgcmFuZ2UgZnJvbSB0aGUgd29ya2VyJ3MgcmFuZ2UgbGlzdFxuICAgKlxuICAgKiBBZnRlciB0aGUgbGFzdCByYW5nZSBpcyBwcm9jZXNzZWQsIHRoZSBvbGRlciBvbmVzIGFyZSB1cGRhdGVkIGFuZCB1c3VhbGx5XG4gICAqIGJlY29tZSBzbWFsbGVyLiBTb21lIG9mIHRoZW0gbWlnaHQgc2hyaW5rIGJlbG93IGEgY2VydGFpbiB0aHJlc2hvbGQsIHdoaWNoXG4gICAqIG1lYW5zIHRoZXkgY2FuIG5vdyBiZSBwcm9jZXNzZWQgdG9vLlxuICAgKiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBiaWdnZXN0IHJhbmdlIHRoYXQgaXMgc21hbGwgZW5vdWdoIHRvIGJlIHByb2Nlc3NlZCxcbiAgICogYW5kIHJlbW92ZXMgYWxsIG9mIGl0cyBjaGlsZCByYW5nZXMgZnJvbSB0aGUgbGlzdC5cbiAgICogUmV0dXJucyB0aGUgbGFzdCByYW5nZSBpZiBub25lIG9mIHRoZW0gaXMgcHJvY2Vzc2FibGUuXG4gICAqIEBwYXJhbSB3b3JrZXJJbmRleFxuICAgKiBAcGFyYW0gcmFuZ2VUaHJlc2hvbGRcbiAgICogQHJldHVybnMgcmFuZ2UgcXVlcnlcbiAgICovXG4gIGdldExhc3RSYW5nZSA9IGFzeW5jIChcbiAgICB3b3JrZXJJbmRleDogbnVtYmVyLFxuICAgIHJhbmdlVGhyZXNob2xkOiBudW1iZXIsXG4gICk6IFByb21pc2U8UmFuZ2VRdWVyeT4gPT4ge1xuICAgIGNvbnN0IHJhbmdlTGlzdCA9IHRoaXMud29ya2Vyc1JhbmdlTGlzdFt3b3JrZXJJbmRleF07XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgU2VhcmNoIHJhbmdlIG9mIHdvcmtlci0ke3dvcmtlckluZGV4fSBpcyAke0pTT04uc3RyaW5naWZ5KHJhbmdlTGlzdCl9YCxcbiAgICApO1xuICAgIGxldCBsYXN0UmFuZ2VRdWVyeSA9IHJhbmdlTGlzdC5hdCgtMSkhO1xuICAgIC8vIGF2b2lkIHJhY2UgY29uZGl0aW9uIHdoZW4gdXBkYXRpbmcgdGhlIHNoYXJlZCBgcmFuZ2VMaXN0YCB2YXJpYWJsZVxuICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLm11dGV4LmFjcXVpcmUoKTtcbiAgICAvLyBqdW1wIG92ZXIgc21hbGwgcmFuZ2VzIHRvIHNlbGVjdCB0aGUgYmlnZ2VzdCBwcm9jZXNzYWJsZSByYW5nZVxuICAgIHdoaWxlIChyYW5nZUxpc3QubGVuZ3RoID4gMSAmJiByYW5nZUxpc3QuYXQoLTIpIS5jb3VudCA8PSByYW5nZVRocmVzaG9sZCkge1xuICAgICAgcmFuZ2VMaXN0LnBvcCgpITtcbiAgICAgIGxhc3RSYW5nZVF1ZXJ5ID0gcmFuZ2VMaXN0LmF0KC0xKSE7XG4gICAgfVxuICAgIHJlbGVhc2UoKTtcbiAgICByZXR1cm4gbGFzdFJhbmdlUXVlcnk7XG4gIH07XG59XG4iXX0=