@rosen-bridge/fraud-extractor 2.2.3 → 3.0.0-8f3c7016

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/fraud-extractor
2
2
 
3
+ ## 3.0.0-8f3c7016
4
+
5
+ ### Major Changes
6
+
7
+ - Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
8
+
9
+ ### Patch Changes
10
+
11
+ - Update dependencies
12
+ - Update dependencies
13
+ - Update dependencies
14
+ - Update dependencies
15
+ - @rosen-bridge/abstract-extractor@3.0.0-8f3c7016
16
+
3
17
  ## 2.2.3
4
18
 
5
19
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
2
2
  import { DataSource } from '@rosen-bridge/extended-typeorm';
3
- import { Block } from '@rosen-bridge/scanner-interfaces';
3
+ import { BlockInfo } from '@rosen-bridge/scanner-interfaces';
4
4
  import { ExtractedFraud } from '../interfaces/types';
5
5
  export declare class FraudAction {
6
6
  private readonly datasource;
@@ -14,7 +14,7 @@ export declare class FraudAction {
14
14
  * @param block
15
15
  * @param extractor
16
16
  */
17
- storeBlockFrauds: (frauds: Array<ExtractedFraud>, block: Block, extractor: string) => Promise<boolean>;
17
+ storeBlockFrauds: (frauds: Array<ExtractedFraud>, block: BlockInfo, extractor: string) => Promise<boolean>;
18
18
  /**
19
19
  * Insert a new fraud into database
20
20
  * @param fraud
@@ -33,7 +33,7 @@ export declare class FraudAction {
33
33
  * @param block
34
34
  * @param extractor
35
35
  */
36
- spendFrauds: (spendIds: Array<string>, block: Block, extractor: string, txId: string) => Promise<void>;
36
+ spendFrauds: (spendIds: Array<string>, block: BlockInfo, extractor: string, txId: string) => Promise<void>;
37
37
  /**
38
38
  * Update all frauds related to an specific invalid block
39
39
  * if box had been spent in the block mark it as unspent,
@@ -1 +1 @@
1
- {"version":3,"file":"fraudAction.d.ts","sourceRoot":"","sources":["../../lib/actions/fraudAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAkB,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAIzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;gBAEzC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;;;;;OAMG;IACH,gBAAgB,GACd,QAAQ,KAAK,CAAC,cAAc,CAAC,EAC7B,OAAO,KAAK,EACZ,WAAW,MAAM,sBAgDjB;IAEF;;;;OAIG;IACH,WAAW,GAAU,OAAO,cAAc,EAAE,WAAW,MAAM,oEAY3D;IAEF;;;;OAIG;IACH,WAAW,GAAU,OAAO,cAAc,EAAE,WAAW,MAAM,oEAe3D;IAEF;;;;;OAKG;IACH,WAAW,GACT,UAAU,KAAK,CAAC,MAAM,CAAC,EACvB,OAAO,KAAK,EACZ,WAAW,MAAM,EACjB,MAAM,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAqBd;IAEF;;;;;;OAMG;IACH,WAAW,GAAU,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAgCnE;IAEF;;OAEG;IACH,YAAY,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAU9D;IAEF;;;;OAIG;IACH,WAAW,GAAU,OAAO,MAAM,EAAE,WAAW,MAAM,oEAEnD;IAEF;;;;;;OAMG;IACH,gBAAgB,GACd,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,aAAa,MAAM,oEAMnB;CACH"}
1
+ {"version":3,"file":"fraudAction.d.ts","sourceRoot":"","sources":["../../lib/actions/fraudAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAkB,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAI7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;gBAEzC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc;IAK3D;;;;;;OAMG;IACH,gBAAgB,GACd,QAAQ,KAAK,CAAC,cAAc,CAAC,EAC7B,OAAO,SAAS,EAChB,WAAW,MAAM,sBAgDjB;IAEF;;;;OAIG;IACH,WAAW,GAAU,OAAO,cAAc,EAAE,WAAW,MAAM,oEAY3D;IAEF;;;;OAIG;IACH,WAAW,GAAU,OAAO,cAAc,EAAE,WAAW,MAAM,oEAe3D;IAEF;;;;;OAKG;IACH,WAAW,GACT,UAAU,KAAK,CAAC,MAAM,CAAC,EACvB,OAAO,SAAS,EAChB,WAAW,MAAM,EACjB,MAAM,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAqBd;IAEF;;;;;;OAMG;IACH,WAAW,GAAU,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAgCnE;IAEF;;OAEG;IACH,YAAY,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAU9D;IAEF;;;;OAIG;IACH,WAAW,GAAU,OAAO,MAAM,EAAE,WAAW,MAAM,oEAEnD;IAEF;;;;;;OAMG;IACH,gBAAgB,GACd,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,aAAa,MAAM,oEAMnB;CACH"}
@@ -194,4 +194,4 @@ export class FraudAction {
194
194
  return await this.repository.update({ boxId: boxId, extractor: extractor }, { spendBlock: blockId, spendHeight: blockHeight });
195
195
  };
196
196
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhdWRBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9mcmF1ZEFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFjLEVBQUUsRUFBYyxNQUFNLGdDQUFnQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RELE1BQU0sT0FBTyxXQUFXO0lBQ0wsVUFBVSxDQUFhO0lBQ3ZCLE1BQU0sQ0FBaUI7SUFDdkIsVUFBVSxDQUEwQjtJQUVyRCxZQUFZLFVBQXNCLEVBQUUsTUFBdUI7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsTUFBNkIsRUFDN0IsS0FBWSxFQUNaLFNBQWlCLEVBQ2pCLEVBQUU7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQixTQUFT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QyxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNELEtBQUssRUFBRTtnQkFDTCxTQUFTLEVBQUUsU0FBUzthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3ZELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUN0QixLQUFhLEVBQ2IsU0FBaUIsRUFDakIsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLEVBQUU7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ2pDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQ3RDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQ2xELENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNodW5rIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSwgSW4sIFJlcG9zaXRvcnkgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2V4dGVuZGVkLXR5cGVvcm0nO1xuaW1wb3J0IHsgQmxvY2sgfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IGRiSWRDaHVua1NpemUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRnJhdWRFbnRpdHkgfSBmcm9tICcuLi9lbnRpdGllcy9mcmF1ZEVudGl0eSc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRGcmF1ZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRnJhdWRBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IERhdGFTb3VyY2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5OiBSZXBvc2l0b3J5PEZyYXVkRW50aXR5PjtcblxuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoRnJhdWRFbnRpdHkpO1xuICB9XG4gIC8qKlxuICAgKiBTdG9yZSBhIGxpc3Qgb2YgZnJhdWRzIGluIGEgc3BlY2lmaWMgYmxvY2tcbiAgICogQHBhcmFtIGZyYXVkc1xuICAgKiBAcGFyYW0gc3BlbmRCb3hlc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3RvcmVCbG9ja0ZyYXVkcyA9IGFzeW5jIChcbiAgICBmcmF1ZHM6IEFycmF5PEV4dHJhY3RlZEZyYXVkPixcbiAgICBibG9jazogQmxvY2ssXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICkgPT4ge1xuICAgIGNvbnN0IGJveElkcyA9IGZyYXVkcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYm94SWQpO1xuICAgIGNvbnN0IGRiQm94ZXMgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KEZyYXVkRW50aXR5KTtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBmcmF1ZCBvZiBmcmF1ZHMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIHRyaWdnZXJCb3hJZDogZnJhdWQudHJpZ2dlckJveElkLFxuICAgICAgICAgIGJveElkOiBmcmF1ZC5ib3hJZCxcbiAgICAgICAgICB3aWQ6IGZyYXVkLndpZCxcbiAgICAgICAgICByd3RDb3VudDogZnJhdWQucnd0Q291bnQsXG4gICAgICAgICAgY3JlYXRpb25CbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBjcmVhdGlvbkhlaWdodDogYmxvY2suaGVpZ2h0LFxuICAgICAgICAgIGNyZWF0aW9uVHhJZDogZnJhdWQudHhJZCxcbiAgICAgICAgICBzZXJpYWxpemVkOiBmcmF1ZC5zZXJpYWxpemVkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzcGVuZEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICAgIHNwZW5kVHhJZDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYkJveCA9IGRiQm94ZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmJveElkID09PSBmcmF1ZC5ib3hJZCk7XG4gICAgICAgIGlmIChkYkJveC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgVXBkYXRpbmcgZnJhdWQgd2l0aCBib3hJZCBbJHtmcmF1ZC5ib3hJZH1dYCk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFVwZGF0ZWQgZnJhdWQ6IFske0pTT04uc3RyaW5naWZ5KGVudGl0eSl9XWApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IGRiQm94WzBdLmlkIH0sIGVudGl0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgU3RvcmluZyBmcmF1ZCB3aXRoIGJveElkOiBbJHtmcmF1ZC5ib3hJZH1dYCk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEluc2VydGVkIGZyYXVkOiBbJHtKU09OLnN0cmluZ2lmeShlbnRpdHkpfV1gKTtcbiAgICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmluZyBmcmF1ZCBib3hlczogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgYSBuZXcgZnJhdWQgaW50byBkYXRhYmFzZVxuICAgKiBAcGFyYW0gZnJhdWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgaW5zZXJ0RnJhdWQgPSBhc3luYyAoZnJhdWQ6IEV4dHJhY3RlZEZyYXVkLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIGJveElkOiBmcmF1ZC5ib3hJZCxcbiAgICAgIHRyaWdnZXJCb3hJZDogZnJhdWQudHJpZ2dlckJveElkLFxuICAgICAgd2lkOiBmcmF1ZC53aWQsXG4gICAgICByd3RDb3VudDogZnJhdWQucnd0Q291bnQsXG4gICAgICBjcmVhdGlvbkJsb2NrOiBmcmF1ZC5ibG9ja0lkLFxuICAgICAgY3JlYXRpb25IZWlnaHQ6IGZyYXVkLmhlaWdodCxcbiAgICAgIGNyZWF0aW9uVHhJZDogZnJhdWQudHhJZCxcbiAgICAgIHNlcmlhbGl6ZWQ6IGZyYXVkLnNlcmlhbGl6ZWQsXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIGFuIHVuc3BlbnQgZnJhdWQgaW5mb3JtYXRpb24gaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBmcmF1ZFxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICB1cGRhdGVGcmF1ZCA9IGFzeW5jIChmcmF1ZDogRXh0cmFjdGVkRnJhdWQsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IGJveElkOiBmcmF1ZC5ib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgdHJpZ2dlckJveElkOiBmcmF1ZC50cmlnZ2VyQm94SWQsXG4gICAgICAgIGNyZWF0aW9uQmxvY2s6IGZyYXVkLmJsb2NrSWQsXG4gICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBmcmF1ZC5oZWlnaHQsXG4gICAgICAgIGNyZWF0aW9uVHhJZDogZnJhdWQudHhJZCxcbiAgICAgICAgc2VyaWFsaXplZDogZnJhdWQuc2VyaWFsaXplZCxcbiAgICAgICAgd2lkOiBmcmF1ZC53aWQsXG4gICAgICAgIHJ3dENvdW50OiBmcmF1ZC5yd3RDb3VudCxcbiAgICAgICAgc3BlbmRCbG9jazogbnVsbCxcbiAgICAgICAgc3BlbmRIZWlnaHQ6IDAsXG4gICAgICB9LFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzcGVuZEJsb2NrIGFuZCBzcGVuZEhlaWdodCBvZiBmcmF1ZHMgc3BlbnQgb24gdGhlIGJsb2NrXG4gICAqIEBwYXJhbSBzcGVuZElkc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3BlbmRGcmF1ZHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZHM6IEFycmF5PHN0cmluZz4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICAgIHR4SWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3BlbmRJZENodW5rcyA9IGNodW5rKHNwZW5kSWRzLCBkYklkQ2h1bmtTaXplKTtcbiAgICBmb3IgKGNvbnN0IHNwZW5kSWRDaHVuayBvZiBzcGVuZElkQ2h1bmtzKSB7XG4gICAgICBjb25zdCB1cGRhdGVSZXN1bHQgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgICB7IGJveElkOiBJbihzcGVuZElkQ2h1bmspLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgICB7IHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsIHNwZW5kSGVpZ2h0OiBibG9jay5oZWlnaHQsIHNwZW5kVHhJZDogdHhJZCB9LFxuICAgICAgKTtcblxuICAgICAgaWYgKHVwZGF0ZVJlc3VsdC5hZmZlY3RlZCAmJiB1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHNwZW50Um93cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgICAgIGJveElkOiBJbihzcGVuZElkQ2h1bmspLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgc3BlbmRUeElkOiB0eElkLFxuICAgICAgICB9KTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc3BlbnRSb3dzKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgU3BlbnQgYm94IHdpdGggYm94SWQgWyR7cm93LmJveElkfV0gYXQgdHJhbnNhY3Rpb24gWyR7dHhJZH1dIGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbGwgZnJhdWRzIHJlbGF0ZWQgdG8gYW4gc3BlY2lmaWMgaW52YWxpZCBibG9ja1xuICAgKiBpZiBib3ggaGFkIGJlZW4gc3BlbnQgaW4gdGhlIGJsb2NrIG1hcmsgaXQgYXMgdW5zcGVudCxcbiAgICogYW5kIGlmIGl0IHdhcyBjcmVhdGVkIHdpdGhpbiB0aGUgYmxvY2sgcmVtb3ZlIGl0IGZyb20gZGF0YWJhc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIGRlbGV0ZUJsb2NrID0gYXN5bmMgKGJsb2NrOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhgRGVsZXRpbmcgZnJhdWRzIGluIGJsb2NrIFske2Jsb2NrfV1gKTtcbiAgICBjb25zdCBpbnZhbGlkUm93cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICBjcmVhdGlvbkJsb2NrOiBibG9jayxcbiAgICB9KTtcbiAgICBpZiAoaW52YWxpZFJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5LmRlbGV0ZSh7XG4gICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICBjcmVhdGlvbkJsb2NrOiBibG9jayxcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCByb3cgb2YgaW52YWxpZFJvd3MpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYGRlbGV0ZWQgaW52YWxpZCBmcmF1ZCB3aXRoIGJveElkIFske3Jvdy5ib3hJZH1dIGF0IHRoZSBmb3JrZWQgYmxvY2sgWyR7YmxvY2t9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0aW5nUm93cyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kQnkoe1xuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICBzcGVuZEJsb2NrOiBibG9jayxcbiAgICB9KTtcbiAgICBpZiAodXBkYXRpbmdSb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICAgIHsgc3BlbmRCbG9jazogYmxvY2ssIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICAgIHsgc3BlbmRCbG9jazogbnVsbCwgc3BlbmRIZWlnaHQ6IDAsIHNwZW5kVHhJZDogbnVsbCB9LFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3Qgcm93IG9mIHVwZGF0aW5nUm93cykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgcmVtb3ZlZCBzcGVuZGluZyBpbmZvcm1hdGlvbiBvZiB0aGUgZnJhdWQgd2l0aCBib3hJZCBbJHtyb3cuYm94SWR9XSwgc3BlbnQgYXQgdGhlIGZvcmtlZCBibG9jayBbJHtibG9ja31dYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgc3RvcmVkIGZyYXVkIGJveCBpZHNcbiAgICovXG4gIGdldEFsbEJveElkcyA9IGFzeW5jIChleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8QXJyYXk8c3RyaW5nPj4gPT4ge1xuICAgIGNvbnN0IGJveElkcyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeS5maW5kKHtcbiAgICAgIHNlbGVjdDoge1xuICAgICAgICBib3hJZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB3aGVyZToge1xuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGJveElkcy5tYXAoKGl0ZW06IHsgYm94SWQ6IHN0cmluZyB9KSA9PiBpdGVtLmJveElkKTtcbiAgfTtcblxuICAvKipcbiAgICogUmVtb3ZlIGFuIHNwZWNpZmllZCBmcmF1ZFxuICAgKiBAcGFyYW0gYm94SWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgcmVtb3ZlRnJhdWQgPSBhc3luYyAoYm94SWQ6IHN0cmluZywgZXh0cmFjdG9yOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LmRlbGV0ZSh7IGJveElkOiBib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZnJhdWQgc3BlbmRpbmcgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIGJveElkXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICogQHBhcmFtIGJsb2NrSWRcbiAgICogQHBhcmFtIGJsb2NrSGVpZ2h0XG4gICAqL1xuICB1cGRhdGVTcGVuZEJsb2NrID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmcsXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICAgYmxvY2tJZDogc3RyaW5nLFxuICAgIGJsb2NrSGVpZ2h0OiBudW1iZXIsXG4gICkgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgeyBib3hJZDogYm94SWQsIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0sXG4gICAgICB7IHNwZW5kQmxvY2s6IGJsb2NrSWQsIHNwZW5kSGVpZ2h0OiBibG9ja0hlaWdodCB9LFxuICAgICk7XG4gIH07XG59XG4iXX0=
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhdWRBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYWN0aW9ucy9mcmF1ZEFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFjLEVBQUUsRUFBYyxNQUFNLGdDQUFnQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RELE1BQU0sT0FBTyxXQUFXO0lBQ0wsVUFBVSxDQUFhO0lBQ3ZCLE1BQU0sQ0FBaUI7SUFDdkIsVUFBVSxDQUEwQjtJQUVyRCxZQUFZLFVBQXNCLEVBQUUsTUFBdUI7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsTUFBNkIsRUFDN0IsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDakIsRUFBRTtRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQzNDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2pCLFNB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WUFDeEMsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLFNBQVM7YUFDckI7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILFdBQVcsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUN2RCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFDdEIsS0FBYSxFQUNiLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixXQUFtQixFQUNuQixFQUFFO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUNqQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUN0QyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUNsRCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaHVuayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvYWJzdHJhY3QtbG9nZ2VyJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIEluLCBSZXBvc2l0b3J5IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgZGJJZENodW5rU2l6ZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGcmF1ZEVudGl0eSB9IGZyb20gJy4uL2VudGl0aWVzL2ZyYXVkRW50aXR5JztcbmltcG9ydCB7IEV4dHJhY3RlZEZyYXVkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBGcmF1ZEFjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk8RnJhdWRFbnRpdHk+O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyKSB7XG4gICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICAgIHRoaXMucmVwb3NpdG9yeSA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShGcmF1ZEVudGl0eSk7XG4gIH1cbiAgLyoqXG4gICAqIFN0b3JlIGEgbGlzdCBvZiBmcmF1ZHMgaW4gYSBzcGVjaWZpYyBibG9ja1xuICAgKiBAcGFyYW0gZnJhdWRzXG4gICAqIEBwYXJhbSBzcGVuZEJveGVzXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBzdG9yZUJsb2NrRnJhdWRzID0gYXN5bmMgKFxuICAgIGZyYXVkczogQXJyYXk8RXh0cmFjdGVkRnJhdWQ+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICAgZXh0cmFjdG9yOiBzdHJpbmcsXG4gICkgPT4ge1xuICAgIGNvbnN0IGJveElkcyA9IGZyYXVkcy5tYXAoKGl0ZW0pID0+IGl0ZW0uYm94SWQpO1xuICAgIGNvbnN0IGRiQm94ZXMgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGJveElkOiBJbihib3hJZHMpLFxuICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgfSk7XG4gICAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5kYXRhc291cmNlLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcbiAgICBjb25zdCByZXBvc2l0b3J5ID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KEZyYXVkRW50aXR5KTtcbiAgICB0cnkge1xuICAgICAgZm9yIChjb25zdCBmcmF1ZCBvZiBmcmF1ZHMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0ge1xuICAgICAgICAgIHRyaWdnZXJCb3hJZDogZnJhdWQudHJpZ2dlckJveElkLFxuICAgICAgICAgIGJveElkOiBmcmF1ZC5ib3hJZCxcbiAgICAgICAgICB3aWQ6IGZyYXVkLndpZCxcbiAgICAgICAgICByd3RDb3VudDogZnJhdWQucnd0Q291bnQsXG4gICAgICAgICAgY3JlYXRpb25CbG9jazogYmxvY2suaGFzaCxcbiAgICAgICAgICBjcmVhdGlvbkhlaWdodDogYmxvY2suaGVpZ2h0LFxuICAgICAgICAgIGNyZWF0aW9uVHhJZDogZnJhdWQudHhJZCxcbiAgICAgICAgICBzZXJpYWxpemVkOiBmcmF1ZC5zZXJpYWxpemVkLFxuICAgICAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzcGVuZEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICAgIHNwZW5kVHhJZDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYkJveCA9IGRiQm94ZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmJveElkID09PSBmcmF1ZC5ib3hJZCk7XG4gICAgICAgIGlmIChkYkJveC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgVXBkYXRpbmcgZnJhdWQgd2l0aCBib3hJZCBbJHtmcmF1ZC5ib3hJZH1dYCk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFVwZGF0ZWQgZnJhdWQ6IFske0pTT04uc3RyaW5naWZ5KGVudGl0eSl9XWApO1xuICAgICAgICAgIGF3YWl0IHJlcG9zaXRvcnkudXBkYXRlKHsgaWQ6IGRiQm94WzBdLmlkIH0sIGVudGl0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgU3RvcmluZyBmcmF1ZCB3aXRoIGJveElkOiBbJHtmcmF1ZC5ib3hJZH1dYCk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEluc2VydGVkIGZyYXVkOiBbJHtKU09OLnN0cmluZ2lmeShlbnRpdHkpfV1gKTtcbiAgICAgICAgICBhd2FpdCByZXBvc2l0b3J5Lmluc2VydChlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgc3RvcmluZyBmcmF1ZCBib3hlczogJHtlfWApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbnNlcnQgYSBuZXcgZnJhdWQgaW50byBkYXRhYmFzZVxuICAgKiBAcGFyYW0gZnJhdWRcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgaW5zZXJ0RnJhdWQgPSBhc3luYyAoZnJhdWQ6IEV4dHJhY3RlZEZyYXVkLCBleHRyYWN0b3I6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnkuaW5zZXJ0KHtcbiAgICAgIGJveElkOiBmcmF1ZC5ib3hJZCxcbiAgICAgIHRyaWdnZXJCb3hJZDogZnJhdWQudHJpZ2dlckJveElkLFxuICAgICAgd2lkOiBmcmF1ZC53aWQsXG4gICAgICByd3RDb3VudDogZnJhdWQucnd0Q291bnQsXG4gICAgICBjcmVhdGlvbkJsb2NrOiBmcmF1ZC5ibG9ja0lkLFxuICAgICAgY3JlYXRpb25IZWlnaHQ6IGZyYXVkLmhlaWdodCxcbiAgICAgIGNyZWF0aW9uVHhJZDogZnJhdWQudHhJZCxcbiAgICAgIHNlcmlhbGl6ZWQ6IGZyYXVkLnNlcmlhbGl6ZWQsXG4gICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIGFuIHVuc3BlbnQgZnJhdWQgaW5mb3JtYXRpb24gaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBmcmF1ZFxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICB1cGRhdGVGcmF1ZCA9IGFzeW5jIChmcmF1ZDogRXh0cmFjdGVkRnJhdWQsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeS51cGRhdGUoXG4gICAgICB7IGJveElkOiBmcmF1ZC5ib3hJZCwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgdHJpZ2dlckJveElkOiBmcmF1ZC50cmlnZ2VyQm94SWQsXG4gICAgICAgIGNyZWF0aW9uQmxvY2s6IGZyYXVkLmJsb2NrSWQsXG4gICAgICAgIGNyZWF0aW9uSGVpZ2h0OiBmcmF1ZC5oZWlnaHQsXG4gICAgICAgIGNyZWF0aW9uVHhJZDogZnJhdWQudHhJZCxcbiAgICAgICAgc2VyaWFsaXplZDogZnJhdWQuc2VyaWFsaXplZCxcbiAgICAgICAgd2lkOiBmcmF1ZC53aWQsXG4gICAgICAgIHJ3dENvdW50OiBmcmF1ZC5yd3RDb3VudCxcbiAgICAgICAgc3BlbmRCbG9jazogbnVsbCxcbiAgICAgICAgc3BlbmRIZWlnaHQ6IDAsXG4gICAgICB9LFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzcGVuZEJsb2NrIGFuZCBzcGVuZEhlaWdodCBvZiBmcmF1ZHMgc3BlbnQgb24gdGhlIGJsb2NrXG4gICAqIEBwYXJhbSBzcGVuZElkc1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICogQHBhcmFtIGV4dHJhY3RvclxuICAgKi9cbiAgc3BlbmRGcmF1ZHMgPSBhc3luYyAoXG4gICAgc3BlbmRJZHM6IEFycmF5PHN0cmluZz4sXG4gICAgYmxvY2s6IEJsb2NrSW5mbyxcbiAgICBleHRyYWN0b3I6IHN0cmluZyxcbiAgICB0eElkOiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHNwZW5kSWRDaHVua3MgPSBjaHVuayhzcGVuZElkcywgZGJJZENodW5rU2l6ZSk7XG4gICAgZm9yIChjb25zdCBzcGVuZElkQ2h1bmsgb2Ygc3BlbmRJZENodW5rcykge1xuICAgICAgY29uc3QgdXBkYXRlUmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgICAgeyBib3hJZDogSW4oc3BlbmRJZENodW5rKSwgZXh0cmFjdG9yOiBleHRyYWN0b3IgfSxcbiAgICAgICAgeyBzcGVuZEJsb2NrOiBibG9jay5oYXNoLCBzcGVuZEhlaWdodDogYmxvY2suaGVpZ2h0LCBzcGVuZFR4SWQ6IHR4SWQgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICh1cGRhdGVSZXN1bHQuYWZmZWN0ZWQgJiYgdXBkYXRlUmVzdWx0LmFmZmVjdGVkID4gMCkge1xuICAgICAgICBjb25zdCBzcGVudFJvd3MgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgICAgICBib3hJZDogSW4oc3BlbmRJZENodW5rKSxcbiAgICAgICAgICBzcGVuZEJsb2NrOiBibG9jay5oYXNoLFxuICAgICAgICAgIHNwZW5kVHhJZDogdHhJZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHNwZW50Um93cykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYFNwZW50IGJveCB3aXRoIGJveElkIFske3Jvdy5ib3hJZH1dIGF0IHRyYW5zYWN0aW9uIFske3R4SWR9XSBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgYWxsIGZyYXVkcyByZWxhdGVkIHRvIGFuIHNwZWNpZmljIGludmFsaWQgYmxvY2tcbiAgICogaWYgYm94IGhhZCBiZWVuIHNwZW50IGluIHRoZSBibG9jayBtYXJrIGl0IGFzIHVuc3BlbnQsXG4gICAqIGFuZCBpZiBpdCB3YXMgY3JlYXRlZCB3aXRoaW4gdGhlIGJsb2NrIHJlbW92ZSBpdCBmcm9tIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBibG9ja1xuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqL1xuICBkZWxldGVCbG9jayA9IGFzeW5jIChibG9jazogc3RyaW5nLCBleHRyYWN0b3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oYERlbGV0aW5nIGZyYXVkcyBpbiBibG9jayBbJHtibG9ja31dYCk7XG4gICAgY29uc3QgaW52YWxpZFJvd3MgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgY3JlYXRpb25CbG9jazogYmxvY2ssXG4gICAgfSk7XG4gICAgaWYgKGludmFsaWRSb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS5kZWxldGUoe1xuICAgICAgICBleHRyYWN0b3I6IGV4dHJhY3RvcixcbiAgICAgICAgY3JlYXRpb25CbG9jazogYmxvY2ssXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3Qgcm93IG9mIGludmFsaWRSb3dzKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBkZWxldGVkIGludmFsaWQgZnJhdWQgd2l0aCBib3hJZCBbJHtyb3cuYm94SWR9XSBhdCB0aGUgZm9ya2VkIGJsb2NrIFske2Jsb2NrfV1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB1cGRhdGluZ1Jvd3MgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZEJ5KHtcbiAgICAgIGV4dHJhY3RvcjogZXh0cmFjdG9yLFxuICAgICAgc3BlbmRCbG9jazogYmxvY2ssXG4gICAgfSk7XG4gICAgaWYgKHVwZGF0aW5nUm93cy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnkudXBkYXRlKFxuICAgICAgICB7IHNwZW5kQmxvY2s6IGJsb2NrLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgICB7IHNwZW5kQmxvY2s6IG51bGwsIHNwZW5kSGVpZ2h0OiAwLCBzcGVuZFR4SWQ6IG51bGwgfSxcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiB1cGRhdGluZ1Jvd3MpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYHJlbW92ZWQgc3BlbmRpbmcgaW5mb3JtYXRpb24gb2YgdGhlIGZyYXVkIHdpdGggYm94SWQgWyR7cm93LmJveElkfV0sIHNwZW50IGF0IHRoZSBmb3JrZWQgYmxvY2sgWyR7YmxvY2t9XWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHN0b3JlZCBmcmF1ZCBib3ggaWRzXG4gICAqL1xuICBnZXRBbGxCb3hJZHMgPSBhc3luYyAoZXh0cmFjdG9yOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PHN0cmluZz4+ID0+IHtcbiAgICBjb25zdCBib3hJZHMgPSBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuZmluZCh7XG4gICAgICBzZWxlY3Q6IHtcbiAgICAgICAgYm94SWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgZXh0cmFjdG9yOiBleHRyYWN0b3IsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBib3hJZHMubWFwKChpdGVtOiB7IGJveElkOiBzdHJpbmcgfSkgPT4gaXRlbS5ib3hJZCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBzcGVjaWZpZWQgZnJhdWRcbiAgICogQHBhcmFtIGJveElkXG4gICAqIEBwYXJhbSBleHRyYWN0b3JcbiAgICovXG4gIHJlbW92ZUZyYXVkID0gYXN5bmMgKGJveElkOiBzdHJpbmcsIGV4dHJhY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwb3NpdG9yeS5kZWxldGUoeyBib3hJZDogYm94SWQsIGV4dHJhY3RvcjogZXh0cmFjdG9yIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGZyYXVkIHNwZW5kaW5nIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSBib3hJZFxuICAgKiBAcGFyYW0gZXh0cmFjdG9yXG4gICAqIEBwYXJhbSBibG9ja0lkXG4gICAqIEBwYXJhbSBibG9ja0hlaWdodFxuICAgKi9cbiAgdXBkYXRlU3BlbmRCbG9jayA9IGFzeW5jIChcbiAgICBib3hJZDogc3RyaW5nLFxuICAgIGV4dHJhY3Rvcjogc3RyaW5nLFxuICAgIGJsb2NrSWQ6IHN0cmluZyxcbiAgICBibG9ja0hlaWdodDogbnVtYmVyLFxuICApID0+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXBvc2l0b3J5LnVwZGF0ZShcbiAgICAgIHsgYm94SWQ6IGJveElkLCBleHRyYWN0b3I6IGV4dHJhY3RvciB9LFxuICAgICAgeyBzcGVuZEJsb2NrOiBibG9ja0lkLCBzcGVuZEhlaWdodDogYmxvY2tIZWlnaHQgfSxcbiAgICApO1xuICB9O1xufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { AbstractExtractor } from '@rosen-bridge/abstract-extractor';
2
2
  import { AbstractLogger } from '@rosen-bridge/abstract-logger';
3
3
  import { DataSource } from '@rosen-bridge/extended-typeorm';
4
- import { Block, BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
4
+ import { BlockInfo, Transaction } from '@rosen-bridge/scanner-interfaces';
5
5
  import { V1 } from '@rosen-clients/ergo-explorer';
6
6
  import { ExtractedFraud } from '../interfaces/types';
7
7
  export declare class FraudExtractor implements AbstractExtractor<Transaction> {
@@ -96,7 +96,7 @@ export declare class FraudExtractor implements AbstractExtractor<Transaction> {
96
96
  * @param txs
97
97
  * @param block
98
98
  */
99
- processTransactions: (txs: Array<Transaction>, block: Block) => Promise<boolean>;
99
+ processTransactions: (txs: Array<Transaction>, block: BlockInfo) => Promise<boolean>;
100
100
  /**
101
101
  * fork one block and remove all stored information for this block
102
102
  * @param hash: block hash
@@ -105,7 +105,7 @@ export declare class FraudExtractor implements AbstractExtractor<Transaction> {
105
105
  /**
106
106
  * Initializes the database with older frauds
107
107
  */
108
- initializeBoxes: (initialBlock: BlockInfo) => Promise<void>;
108
+ initializeData: (initialBlock: BlockInfo) => Promise<void>;
109
109
  /**
110
110
  * Validate all remaining boxes in the database
111
111
  * update the correct ones and remove the invalid ones
@@ -1 +1 @@
1
- {"version":3,"file":"fraudExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/fraudExtractor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EACL,KAAK,EACL,SAAS,EACT,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,cAAe,YAAW,iBAAiB,CAAC,WAAW,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,GAAG;;oDAtBZ,CAAC;gEAES,CAAC;gEAMsB,CAAC;8CAEa,CAAC;+CAIJ,CAAC;;mCAO7C,CAAC;;;qEAcG,CAAJ;oEAIsB,CAAC;;;2EAmBL,CAAC;oDAIP,CAAA;4DAIoB,CAAC;;;;;;;;;;;;;;iFAiCK,CAAC;;;;;;;gEA6ClC,CAAA;yDAIK,CAAC;;0DAKK,CAAC;sEAGO,CAAC;iEAII,CAAC;6EAIY,CAAC;yDAMU,CAAC;2EAIR,CAAC;gEAO9C,CAAF;;0IAU+B,CAAA;yHAGoE,CAAC;kHAO3F,CAAD;mCAGyE,CAAC;;;;mCAkBtE,CAAC;;;gEAeR,CAAC;oEAKkB,CAAC;;mCASpB,CAAF;;0CAOiB,CAAC;;gDAeH,CAAA;;uEAgBH,CAAC;;;;;;;MA3QF;gBAGX,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,cAAc;IAYzB;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;OAIG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CA2EjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,eAAe,GAAU,cAAc,SAAS,mBAkC9C;IAEF;;;;;OAKG;IACH,uBAAuB,GACrB,uBAAuB,KAAK,CAAC,MAAM,CAAC,EACpC,eAAe,MAAM,mBA2BrB;IAEF;;;OAGG;IACH,qBAAqB,GACnB,OAAO,MAAM,KACZ,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAQpC;IAEF;;;;OAIG;IACH,gBAAgB,GACd,eAAe,MAAM,KACpB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CA+B/B;IAEF;;;OAGG;IACH,UAAU,GAAU,MAAM,MAAM;;;OAM9B;IAEF;;;OAGG;IACH,eAAe,GAAU,MAAM,MAAM,iCAGnC;IAEF;;;OAGG;IACH,cAAc,GAAU,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,+BAoDjD;CACH"}
1
+ {"version":3,"file":"fraudExtractor.d.ts","sourceRoot":"","sources":["../../lib/extractor/fraudExtractor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAe,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,cAAe,YAAW,iBAAiB,CAAC,WAAW,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,GAAG;;oDAlBZ,CAAC;gEAES,CAAC;gEAGN,CAAA;8CAGI,CAAC;+CAIP,CAAC;;mCAKU,CAAC;;;qEAcF,CAAC;oEAIsB,CAAC;;;2EAmBT,CAAC;oDAIR,CAAC;4DAIoB,CAAC;;;;;;;;;;;;;;iFAiCK,CAAC;;;;;;;gEA6ClC,CAAC;yDAIM,CAAA;;0DAKK,CAAC;sEAGO,CAAC;iEAII,CAAC;6EAIY,CAAC;yDAOpD,CAAC;2EAGsD,CAAC;gEAOhD,CAAA;;0IAU8B,CAAC;yHAGoE,CAAC;kHAQxG,CAAD;mCAEsF,CAAC;;;;mCAkBtE,CAAC;;;gEAeR,CAAC;oEAMZ,CAAA;;mCASA,CAAA;;0CAOM,CAAT;;gDAc0B,CAAC;;uEAgBH,CAAC;;;;;;;MA3Qb;gBAGX,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,cAAc;IAYzB;;OAEG;IACH,KAAK,eAAsB;IAE3B;;;;OAIG;IACH,mBAAmB,GACjB,KAAK,KAAK,CAAC,WAAW,CAAC,EACvB,OAAO,SAAS,KACf,OAAO,CAAC,OAAO,CAAC,CA2EjB;IAEF;;;OAGG;IACH,SAAS,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAEF;;OAEG;IACH,cAAc,GAAU,cAAc,SAAS,mBAkC7C;IAEF;;;;;OAKG;IACH,uBAAuB,GACrB,uBAAuB,KAAK,CAAC,MAAM,CAAC,EACpC,eAAe,MAAM,mBA2BrB;IAEF;;;OAGG;IACH,qBAAqB,GACnB,OAAO,MAAM,KACZ,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAQpC;IAEF;;;;OAIG;IACH,gBAAgB,GACd,eAAe,MAAM,KACpB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CA+B/B;IAEF;;;OAGG;IACH,UAAU,GAAU,MAAM,MAAM;;;OAM9B;IAEF;;;OAGG;IACH,eAAe,GAAU,MAAM,MAAM,iCAGnC;IAEF;;;OAGG;IACH,cAAc,GAAU,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,+BAoDjD;CACH"}
@@ -99,7 +99,7 @@ export class FraudExtractor {
99
99
  /**
100
100
  * Initializes the database with older frauds
101
101
  */
102
- initializeBoxes = async (initialBlock) => {
102
+ initializeData = async (initialBlock) => {
103
103
  // Getting unspent boxes
104
104
  this.logger.debug(`Initializing fraud table. storing fraud boxes created bellow height ${initialBlock.height}.`);
105
105
  const unspentFrauds = await this.getUnspentFrauds(initialBlock.height);
@@ -259,4 +259,4 @@ export class FraudExtractor {
259
259
  return extractedFrauds;
260
260
  };
261
261
  }
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhdWRFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2ZyYXVkRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxNQUFNLE1BQU0sMkJBQTJCLENBQUM7QUFNL0MsT0FBTyx5QkFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxNQUFNLE9BQU8sY0FBYztJQUNSLE1BQU0sQ0FBaUI7SUFDdkIsT0FBTyxDQUFjO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsQ0FBUztJQUNqQixHQUFHLENBQVM7SUFDcEIsR0FBRyxDQUFDO0lBRWIsWUFDRSxVQUFzQixFQUN0QixFQUFVLEVBQ1YsV0FBbUIsRUFDbkIsWUFBb0IsRUFDcEIsR0FBVyxFQUNYLE1BQXVCO1FBRXZCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7YUFDbkQsWUFBWSxFQUFFO2FBQ2QsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xELElB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QUFDLEVBQUUsQ0FDOUUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgeyBkaWZmZXJlbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RFeHRyYWN0b3IgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWV4dHJhY3Rvcic7XG5pbXBvcnQgeyBBYnN0cmFjdExvZ2dlciwgRHVtbXlMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9leHRlbmRlZC10eXBlb3JtJztcbmltcG9ydCBKc29uQkkgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQge1xuICBCbG9jayxcbiAgQmxvY2tJbmZvLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkgZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlcic7XG5pbXBvcnQgeyBWMSB9IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuXG5pbXBvcnQgeyBGcmF1ZEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvZnJhdWRBY3Rpb24nO1xuaW1wb3J0IHsgRGVmYXVsdEFwaUxpbWl0IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEV4dHJhY3RlZEZyYXVkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBGcmF1ZEV4dHJhY3RvciBpbXBsZW1lbnRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25zOiBGcmF1ZEFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcnd0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZXhwbG9yZXJVcmw6IHN0cmluZyxcbiAgICBmcmF1ZEFkZHJlc3M6IHN0cmluZyxcbiAgICByd3Q6IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuZXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoZnJhdWRBZGRyZXNzKVxuICAgICAgLnRvX2VyZ29fdHJlZSgpXG4gICAgICAudG9fYmFzZTE2X2J5dGVzKCk7XG4gICAgdGhpcy5yd3QgPSByd3Q7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPyBsb2dnZXIgOiBuZXcgRHVtbXlMb2dnZXIoKTtcbiAgICB0aGlzLmFjdGlvbnMgPSBuZXcgRnJhdWRBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuYXBpID0gZXJnb0V4cGxvcmVyQ2xpZW50RmFjdG9yeShleHBsb3JlclVybCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IElkIGZvciBjdXJyZW50IGV4dHJhY3RvclxuICAgKi9cbiAgZ2V0SWQgPSAoKSA9PiBgJHt0aGlzLmlkfWA7XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgZnJhdWQgYm94ZXMgaW4gdGhlIHNwZWNpZmllZCBibG9jayB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIHR4c1xuICAgKiBAcGFyYW0gYmxvY2tcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrLFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbmV3RnJhdWRzOiBBcnJheTxFeHRyYWN0ZWRGcmF1ZD4gPSBbXTtcbiAgICAgICAgY29uc3QgdHhTcGVuZElkczogQXJyYXk8eyB0eElkOiBzdHJpbmc7IHNwZW5kQm94ZXM6IEFycmF5PHN0cmluZz4gfT4gPVxuICAgICAgICAgIFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG91dHB1dC5lcmdvVHJlZSAhPT0gdGhpcy5lcmdvVHJlZSB8fFxuICAgICAgICAgICAgICAhb3V0cHV0LmFzc2V0cyB8fFxuICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzWzBdLnRva2VuSWQgIT09IHRoaXMucnd0XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBib3hPdXRwdXQgPSB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKEpzb25CSS5zdHJpbmdpZnkob3V0cHV0KSk7XG4gICAgICAgICAgICBjb25zdCByNCA9IGJveE91dHB1dFxuICAgICAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgICAgICAgICA/LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICBpZiAoIXI0KSB7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBBIG5ldyBmcmF1ZCBib3ggZm91bmQgd2l0aG91dCBjb3JyZWN0IHdpZCBmb3JtYXQgYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3RnJhdWQgPSB7XG4gICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgIHR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAgICAgICB0cmlnZ2VyQm94SWQ6IHRyYW5zYWN0aW9uLmlucHV0c1swXS5ib3hJZCxcbiAgICAgICAgICAgICAgd2lkOiBCdWZmZXIuZnJvbShyNFswXSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgICAgICByd3RDb3VudDogb3V0cHV0LmFzc2V0c1swXS5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgc2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgd2FzbS5FcmdvQm94LmZyb21fanNvbihcbiAgICAgICAgICAgICAgICAgIEpzb25CSS5zdHJpbmdpZnkob3V0cHV0KSxcbiAgICAgICAgICAgICAgICApLnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpLFxuICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBuZXdGcmF1ZHMucHVzaChuZXdGcmF1ZCk7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYG5ldyBmcmF1ZCBmb3VuZCBbJHtuZXdGcmF1ZH1dIGF0IGhlaWdodCAke2Jsb2NrLmhlaWdodH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdHhTcGVuZElkcy5wdXNoKHtcbiAgICAgICAgICAgIHR4SWQ6IHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAgICAgc3BlbmRCb3hlczogdHJhbnNhY3Rpb24uaW5wdXRzLm1hcCgoYm94KSA9PiBib3guYm94SWQpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgLnN0b3JlQmxvY2tGcmF1ZHMobmV3RnJhdWRzLCBibG9jaywgdGhpcy5nZXRJZCgpKVxuICAgICAgICAgIC50aGVuKGFzeW5jIChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMpIHtcbiAgICAgICAgICAgICAgaWYgKG5ld0ZyYXVkcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgICAgYHN1Y2Nlc3NmdWxseSBzdG9yZWQgbmV3IGZyYXVkcyBhdCBoaWdodCAke2Jsb2NrLmhlaWdodH1gLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3Qgc3BlbmRJZHMgb2YgdHhTcGVuZElkcylcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMuc3BlbmRGcmF1ZHMoXG4gICAgICAgICAgICAgICAgICBzcGVuZElkcy5zcGVuZEJveGVzLFxuICAgICAgICAgICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldElkKCksXG4gICAgICAgICAgICAgICAgICBzcGVuZElkcy50eElkLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHN0YXR1cyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICBgQW4gZXJyb3Igb2NjdXJyZWQgaW4gcHJvY2Vzc2luZyBmcmF1ZHMgaW4gYmxvY2sgWyR7YmxvY2suaGFzaH1dOiAke2V9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogZm9yayBvbmUgYmxvY2sgYW5kIHJlbW92ZSBhbGwgc3RvcmVkIGluZm9ybWF0aW9uIGZvciB0aGlzIGJsb2NrXG4gICAqIEBwYXJhbSBoYXNoOiBibG9jayBoYXNoXG4gICAqL1xuICBmb3JrQmxvY2sgPSBhc3luYyAoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgdGhpcy5hY3Rpb25zLmRlbGV0ZUJsb2NrKGhhc2gsIHRoaXMuZ2V0SWQoKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhYmFzZSB3aXRoIG9sZGVyIGZyYXVkc1xuICAgKi9cbiAgaW5pdGlhbGl6ZUJveGVzID0gYXN5bmMgKGluaXRpYWxCbG9jazogQmxvY2tJbmZvKSA9PiB7XG4gICAgLy8gR2V0dGluZyB1bnNwZW50IGJveGVzXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgSW5pdGlhbGl6aW5nIGZyYXVkIHRhYmxlLiBzdG9yaW5nIGZyYXVkIGJveGVzIGNyZWF0ZWQgYmVsbG93IGhlaWdodCAke2luaXRpYWxCbG9jay5oZWlnaHR9LmAsXG4gICAgKTtcbiAgICBjb25zdCB1bnNwZW50RnJhdWRzID0gYXdhaXQgdGhpcy5nZXRVbnNwZW50RnJhdWRzKGluaXRpYWxCbG9jay5oZWlnaHQpO1xuICAgIGNvbnN0IHVuc3BlbnRCb3hJZHMgPSB1bnNwZW50RnJhdWRzLm1hcCgoYm94KSA9PiBib3guYm94SWQpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBVbnNwZW50IGZyYXVkIGJveElkcyAke3Vuc3BlbnRCb3hJZHN9YCk7XG5cbiAgICAvLyBTdG9yaW5nIGV4dHJhY3RlZCBib3hlc1xuICAgIGxldCBhbGxTdG9yZWRCb3hJZHMgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZ2V0QWxsQm94SWRzKHRoaXMuZ2V0SWQoKSk7XG4gICAgZm9yIChjb25zdCBmcmF1ZCBvZiB1bnNwZW50RnJhdWRzKSB7XG4gICAgICBpZiAoYWxsU3RvcmVkQm94SWRzLmluY2x1ZGVzKGZyYXVkLmJveElkKSkge1xuICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlRnJhdWQoZnJhdWQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFVwZGF0ZWQgdGhlIGV4aXN0aW5nIHVuc3BlbnQgZnJhdWQgd2l0aCBib3hJZCwgWyR7ZnJhdWQuYm94SWR9XWAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBVcGRhdGVkIGZyYXVkOiBbJHtKU09OLnN0cmluZ2lmeShmcmF1ZCl9XWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLmluc2VydEZyYXVkKGZyYXVkLCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBJbnNlcnRlZCBuZXcgdW5zcGVudCBmcmF1ZCB3aXRoIGJveElkLCBbJHtmcmF1ZC5ib3hJZH1dYCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEluc2VydGVkIGZyYXVkOiBbJHtKU09OLnN0cmluZ2lmeShmcmF1ZCl9XWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSB1cGRhdGVkIGJveCBpZHMgZnJvbSBleGlzdGluZyBib3hlcyBpbiBkYXRhYmFzZVxuICAgIGFsbFN0b3JlZEJveElkcyA9IGRpZmZlcmVuY2UoYWxsU3RvcmVkQm94SWRzLCB1bnNwZW50Qm94SWRzKTtcbiAgICAvLyBWYWxpZGF0aW5nIHJlbWFpbmVkIGJveGVzXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgVmFsaWRhdGluZyBhbmQgdXBkYXRpbmcgc3RvcmVkIGZyYXVkIGJveGVzIHdpdGggYm94SWRzICR7YWxsU3RvcmVkQm94SWRzfWAsXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlT2xkU3RvcmVkRnJhdWRzKGFsbFN0b3JlZEJveElkcywgaW5pdGlhbEJsb2NrLmhlaWdodCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGFsbCByZW1haW5pbmcgYm94ZXMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIHVwZGF0ZSB0aGUgY29ycmVjdCBvbmVzIGFuZCByZW1vdmUgdGhlIGludmFsaWQgb25lc1xuICAgKiBAcGFyYW0gdW5jaGFuZ2VkU3RvcmVkQm94SWRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqL1xuICB2YWxpZGF0ZU9sZFN0b3JlZEZyYXVkcyA9IGFzeW5jIChcbiAgICB1bmNoYW5nZWRTdG9yZWRCb3hJZHM6IEFycmF5PHN0cmluZz4sXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyLFxuICApID0+IHtcbiAgICBmb3IgKGNvbnN0IGJveElkIG9mIHVuY2hhbmdlZFN0b3JlZEJveElkcykge1xuICAgICAgY29uc3QgYm94ID0gYXdhaXQgdGhpcy5nZXRGcmF1ZEluZm9XaXRoQm94SWQoYm94SWQpO1xuICAgICAgaWYgKGJveCAmJiBib3guc3BlbmRCbG9jayAmJiBib3guc3BlbmRIZWlnaHQpIHtcbiAgICAgICAgaWYgKGJveC5zcGVuZEhlaWdodCA8IGluaXRpYWxIZWlnaHQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGB1cGRhdGluZyBzcGVuZGluZyBpbmZvcm1hdGlvbiBvZiBmcmF1ZCB3aXRoIGJveElkIFske2JveC5ib3hJZH1dIHNwZW50IGF0IGhlaWdodCBbJHtib3guc3BlbmRIZWlnaHR9XWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMudXBkYXRlU3BlbmRCbG9jayhcbiAgICAgICAgICAgIGJveElkLFxuICAgICAgICAgICAgdGhpcy5nZXRJZCgpLFxuICAgICAgICAgICAgYm94LnNwZW5kQmxvY2ssXG4gICAgICAgICAgICBib3guc3BlbmRIZWlnaHQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBmcmF1ZCB3aXRoIGJveElkIFske2JveC5ib3hJZH1dIGhhcyBiZWVuIHNwZW50IGFmdGVyIHRoZSBpbml0aWFsaXphdGlvbiBoZWlnaHQsIHVwZGF0aW5nIHNwZW5kaW5nIGluZm9ybWF0aW9uIHNraXBwZWQuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMucmVtb3ZlRnJhdWQoYm94SWQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFJlbW92ZWQgaW52YWxpZCBmcmF1ZCBbJHtib3hJZH1dIGluIGluaXRpYWxpemF0aW9uIHZhbGlkYXRpb25gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJuIGV4dHJhY3RlZCBpbmZvcm1hdGlvbiBvZiBhIGZyYXVkIHdpdGggaXRzIGJveElkXG4gICAqIEBwYXJhbSBib3hJZFxuICAgKi9cbiAgZ2V0RnJhdWRJbmZvV2l0aEJveElkID0gYXN5bmMgKFxuICAgIGJveElkOiBzdHJpbmcsXG4gICk6IFByb21pc2U8RXh0cmFjdGVkRnJhdWQgfCB1bmRlZmluZWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm94ID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFCb3hlc1AxKGJveElkKTtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5leHRyYWN0Qm94RGF0YShbYm94XSkpWzBdO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgQm94IHdpdGggaWQgWyR7Ym94SWR9XSBkb2VzIG5vdCBleGlzdHNgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgdW5zcGVudCBmcmF1ZHMgY3JlYXRlZCBiZWxsb3cgdGhlIGluaXRpYWwgaGVpZ2h0XG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRVbnNwZW50RnJhdWRzID0gYXN5bmMgKFxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxBcnJheTxFeHRyYWN0ZWRGcmF1ZD4+ID0+IHtcbiAgICBsZXQgYWxsQm94ZXM6IEFycmF5PEV4dHJhY3RlZEZyYXVkPiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwLFxuICAgICAgdG90YWwgPSBEZWZhdWx0QXBpTGltaXQsXG4gICAgICBib3hlczogVjEuSXRlbXNPdXRwdXRJbmZvO1xuICAgIHdoaWxlIChvZmZzZXQgPCB0b3RhbCkge1xuICAgICAgYm94ZXMgPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMUJveGVzVW5zcGVudEJ5ZXJnb3RyZWVQMShcbiAgICAgICAgdGhpcy5lcmdvVHJlZSxcbiAgICAgICAge1xuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgaWYgKCFib3hlcy5pdGVtcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIGFwaSBvdXRwdXQgaXRlbXMgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICB9XG4gICAgICBhbGxCb3hlcyA9IFtcbiAgICAgICAgLi4uYWxsQm94ZXMsXG4gICAgICAgIC4uLihhd2FpdCB0aGlzLmV4dHJhY3RCb3hEYXRhKFxuICAgICAgICAgIGJveGVzLml0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChib3gpID0+XG4gICAgICAgICAgICAgIGJveC5jcmVhdGlvbkhlaWdodCA8IGluaXRpYWxIZWlnaHQgJiZcbiAgICAgICAgICAgICAgYm94LmFzc2V0cyAmJlxuICAgICAgICAgICAgICBib3guYXNzZXRzWzBdLnRva2VuSWQgPT0gdGhpcy5yd3QsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSksXG4gICAgICBdO1xuICAgICAgdG90YWwgPSBib3hlcy50b3RhbDtcbiAgICAgIG9mZnNldCArPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgfVxuICAgIHJldHVybiBhbGxCb3hlcztcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBibG9jayBpbmZvcm1hdGlvbiBvZiB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgZ2V0VHhCbG9jayA9IGFzeW5jICh0eElkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxVHJhbnNhY3Rpb25zUDEodHhJZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0eC5ibG9ja0lkLFxuICAgICAgaGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB0cmlnZ2VyIGJveElkIGZyb20gZnJhdWQgdHJhbnNhY3Rpb24gaWRcbiAgICogQHBhcmFtIHR4SWRcbiAgICovXG4gIGdldFRyaWdnZXJCb3hJZCA9IGFzeW5jICh0eElkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxVHJhbnNhY3Rpb25zUDEodHhJZCk7XG4gICAgcmV0dXJuIHR4LmlucHV0cz8uWzBdLmJveElkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IG5lZWRlZCBpbmZvcm1hdGlvbiBmb3Igc3RvcmluZyBpbiBkYXRhYmFzZSBmcm9tIGFwaSBqc29uIG91dHB1dHNcbiAgICogQHBhcmFtIGJveGVzXG4gICAqL1xuICBleHRyYWN0Qm94RGF0YSA9IGFzeW5jIChib3hlczogQXJyYXk8VjEuT3V0cHV0SW5mbz4pID0+IHtcbiAgICBjb25zdCBleHRyYWN0ZWRGcmF1ZHM6IEFycmF5PEV4dHJhY3RlZEZyYXVkPiA9IFtdO1xuICAgIGZvciAoY29uc3QgYm94IG9mIGJveGVzKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgRXh0cmFjdGluZyBib3ggZnJhdWQgaW5mb3JtYXRpb24gZnJvbSBib3ggd2l0aCBib3hJZCBbJHtib3guYm94SWR9XWAsXG4gICAgICAgICk7XG4gICAgICAgIGxldCBzcGVuZEJsb2NrLCBzcGVuZEhlaWdodDtcbiAgICAgICAgLy8gRXh0cmFjdCBzcGVuZGluZyBpbmZvcm1hdGlvblxuICAgICAgICBpZiAoYm94LnNwZW50VHJhbnNhY3Rpb25JZCkge1xuICAgICAgICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5nZXRUeEJsb2NrKGJveC5zcGVudFRyYW5zYWN0aW9uSWQpO1xuICAgICAgICAgIHNwZW5kQmxvY2sgPSBibG9jay5pZDtcbiAgICAgICAgICBzcGVuZEhlaWdodCA9IGJsb2NrLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICAvLyBFeHRyYWN0IFdJRFxuICAgICAgICBjb25zdCBlcmdvQm94ID0gd2FzbS5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveCkpO1xuICAgICAgICBjb25zdCByNCA9IGVyZ29Cb3hcbiAgICAgICAgICAucmVnaXN0ZXJfdmFsdWUod2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0KVxuICAgICAgICAgID8udG9fY29sbF9jb2xsX2J5dGUoKTtcbiAgICAgICAgLy8gRXh0cmFjdCB0cmlnZ2VyIGJveElkXG4gICAgICAgIGNvbnN0IHRyaWdnZXJCb3hJZCA9IGF3YWl0IHRoaXMuZ2V0VHJpZ2dlckJveElkKGJveC50cmFuc2FjdGlvbklkKTtcbiAgICAgICAgaWYgKCFyNCB8fCAhdHJpZ2dlckJveElkKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBTa2lwcGluZyBzdG9yaW5nIGZyYXVkIHdpdGggYm94SWQgWyR7Ym94LmJveElkfV0sIHdpZCBvciB0cmlnZ2VyIGJveCBpZCBpcyB1bmRlZmluZWRgLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRyYWN0ZWRGcmF1ZCA9IHtcbiAgICAgICAgICBib3hJZDogZXJnb0JveC5ib3hfaWQoKS50b19zdHIoKSxcbiAgICAgICAgICB0cmlnZ2VyQm94SWQ6IHRyaWdnZXJCb3hJZCxcbiAgICAgICAgICB3aWQ6IEJ1ZmZlci5mcm9tKHI0WzBdKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgcnd0Q291bnQ6IGJveC5hc3NldHMhWzBdLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgIHNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKGVyZ29Cb3guc2lnbWFfc2VyaWFsaXplX2J5dGVzKCkpLnRvU3RyaW5nKFxuICAgICAgICAgICAgJ2Jhc2U2NCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgICBibG9ja0lkOiBib3guYmxvY2tJZCxcbiAgICAgICAgICBoZWlnaHQ6IGJveC5zZXR0bGVtZW50SGVpZ2h0LFxuICAgICAgICAgIHR4SWQ6IGJveC50cmFuc2FjdGlvbklkLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHNwZW5kQmxvY2ssXG4gICAgICAgICAgc3BlbmRIZWlnaHQ6IHNwZW5kSGVpZ2h0LFxuICAgICAgICAgIHNwZW5kVHhJZDogYm94LnNwZW50VHJhbnNhY3Rpb25JZCxcbiAgICAgICAgfTtcbiAgICAgICAgZXh0cmFjdGVkRnJhdWRzLnB1c2goZXh0cmFjdGVkRnJhdWQpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgRXh0cmFjdGVkIGZyYXVkOiBbJHtleHRyYWN0ZWRGcmF1ZH1dYCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgIGBFeHRyYWN0aW5nIGZyYXVkIGluZm9ybWF0aW9uIGZhaWxlZCBmb3IgYm94IFske2JveC5ib3hJZH1dIHdpdGggZXJyb3I6ICR7ZX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZXh0cmFjdGVkRnJhdWRzO1xuICB9O1xufVxuIl19
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhdWRFeHRyYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXh0cmFjdG9yL2ZyYXVkRXh0cmFjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxNQUFNLE1BQU0sMkJBQTJCLENBQUM7QUFFL0MsT0FBTyx5QkFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxNQUFNLE9BQU8sY0FBYztJQUNSLE1BQU0sQ0FBaUI7SUFDdkIsT0FBTyxDQUFjO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsQ0FBUztJQUNqQixHQUFHLENBQVM7SUFDcEIsR0FBRyxDQUFDO0lBRWIsWUFDRSxVQUFzQixFQUN0QixFQUFVLEVBQ1YsV0FBbUIsRUFDbkIsWUFBb0IsRUFDcEIsR0FBVyxFQUNYLE1BQXVCO1FBRXZCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7YUFDbkQsWUFBWSxFQUFFO2FBQ2QsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xELElB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Q0FBQyxFQUFFLENBQzlFLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCAqIGFzIHdhc20gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgZGlmZmVyZW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0RXh0cmFjdG9yIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1leHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIsIER1bW15TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5pbXBvcnQgSnNvbkJJIGZyb20gJ0Byb3Nlbi1icmlkZ2UvanNvbi1iaWdpbnQnO1xuaW1wb3J0IHsgQmxvY2tJbmZvLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0Byb3Nlbi1icmlkZ2Uvc2Nhbm5lci1pbnRlcmZhY2VzJztcbmltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuaW1wb3J0IHsgVjEgfSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLWV4cGxvcmVyJztcblxuaW1wb3J0IHsgRnJhdWRBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zL2ZyYXVkQWN0aW9uJztcbmltcG9ydCB7IERlZmF1bHRBcGlMaW1pdCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFeHRyYWN0ZWRGcmF1ZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRnJhdWRFeHRyYWN0b3IgaW1wbGVtZW50cyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uczogRnJhdWRBY3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJ3dDogc3RyaW5nO1xuICByZWFkb25seSBhcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBpZDogc3RyaW5nLFxuICAgIGV4cGxvcmVyVXJsOiBzdHJpbmcsXG4gICAgZnJhdWRBZGRyZXNzOiBzdHJpbmcsXG4gICAgcnd0OiBzdHJpbmcsXG4gICAgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIsXG4gICkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGZyYXVkQWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMucnd0ID0gcnd0O1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEZyYXVkQWN0aW9uKGRhdGFTb3VyY2UsIHRoaXMubG9nZ2VyKTtcbiAgICB0aGlzLmFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBJZCBmb3IgY3VycmVudCBleHRyYWN0b3JcbiAgICovXG4gIGdldElkID0gKCkgPT4gYCR7dGhpcy5pZH1gO1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGZyYXVkIGJveGVzIGluIHRoZSBzcGVjaWZpZWQgYmxvY2sgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0eHNcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqL1xuICBwcm9jZXNzVHJhbnNhY3Rpb25zID0gKFxuICAgIHR4czogQXJyYXk8VHJhbnNhY3Rpb24+LFxuICAgIGJsb2NrOiBCbG9ja0luZm8sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBuZXdGcmF1ZHM6IEFycmF5PEV4dHJhY3RlZEZyYXVkPiA9IFtdO1xuICAgICAgICBjb25zdCB0eFNwZW5kSWRzOiBBcnJheTx7IHR4SWQ6IHN0cmluZzsgc3BlbmRCb3hlczogQXJyYXk8c3RyaW5nPiB9PiA9XG4gICAgICAgICAgW107XG4gICAgICAgIHR4cy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIHRyYW5zYWN0aW9uLm91dHB1dHMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3V0cHV0LmVyZ29UcmVlICE9PSB0aGlzLmVyZ29UcmVlIHx8XG4gICAgICAgICAgICAgICFvdXRwdXQuYXNzZXRzIHx8XG4gICAgICAgICAgICAgIG91dHB1dC5hc3NldHNbMF0udG9rZW5JZCAhPT0gdGhpcy5yd3RcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGJveE91dHB1dCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShvdXRwdXQpKTtcbiAgICAgICAgICAgIGNvbnN0IHI0ID0gYm94T3V0cHV0XG4gICAgICAgICAgICAgIC5yZWdpc3Rlcl92YWx1ZSh3YXNtLk5vbk1hbmRhdG9yeVJlZ2lzdGVySWQuUjQpXG4gICAgICAgICAgICAgID8udG9fY29sbF9jb2xsX2J5dGUoKTtcbiAgICAgICAgICAgIGlmICghcjQpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgYEEgbmV3IGZyYXVkIGJveCBmb3VuZCB3aXRob3V0IGNvcnJlY3Qgd2lkIGZvcm1hdCBhdCBoZWlnaHQgJHtibG9jay5oZWlnaHR9YCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdGcmF1ZCA9IHtcbiAgICAgICAgICAgICAgYm94SWQ6IG91dHB1dC5ib3hJZCxcbiAgICAgICAgICAgICAgdHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICAgIHRyaWdnZXJCb3hJZDogdHJhbnNhY3Rpb24uaW5wdXRzWzBdLmJveElkLFxuICAgICAgICAgICAgICB3aWQ6IEJ1ZmZlci5mcm9tKHI0WzBdKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgICAgIHJ3dENvdW50OiBvdXRwdXQuYXNzZXRzWzBdLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgICBzZXJpYWxpemVkOiBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICB3YXNtLkVyZ29Cb3guZnJvbV9qc29uKFxuICAgICAgICAgICAgICAgICAgSnNvbkJJLnN0cmluZ2lmeShvdXRwdXQpLFxuICAgICAgICAgICAgICAgICkuc2lnbWFfc2VyaWFsaXplX2J5dGVzKCksXG4gICAgICAgICAgICAgICkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5ld0ZyYXVkcy5wdXNoKG5ld0ZyYXVkKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgbmV3IGZyYXVkIGZvdW5kIFske25ld0ZyYXVkfV0gYXQgaGVpZ2h0ICR7YmxvY2suaGVpZ2h0fWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0eFNwZW5kSWRzLnB1c2goe1xuICAgICAgICAgICAgdHhJZDogdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgICBzcGVuZEJveGVzOiB0cmFuc2FjdGlvbi5pbnB1dHMubWFwKChib3gpID0+IGJveC5ib3hJZCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAuc3RvcmVCbG9ja0ZyYXVkcyhuZXdGcmF1ZHMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgLnRoZW4oYXN5bmMgKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICAgICAgICBpZiAobmV3RnJhdWRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgICBgc3VjY2Vzc2Z1bGx5IHN0b3JlZCBuZXcgZnJhdWRzIGF0IGhpZ2h0ICR7YmxvY2suaGVpZ2h0fWAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBzcGVuZElkcyBvZiB0eFNwZW5kSWRzKVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5zcGVuZEZyYXVkcyhcbiAgICAgICAgICAgICAgICAgIHNwZW5kSWRzLnNwZW5kQm94ZXMsXG4gICAgICAgICAgICAgICAgICBibG9jayxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0SWQoKSxcbiAgICAgICAgICAgICAgICAgIHNwZW5kSWRzLnR4SWQsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUoc3RhdHVzKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCBpbiBwcm9jZXNzaW5nIGZyYXVkcyBpbiBibG9jayBbJHtibG9jay5oYXNofV06ICR7ZX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBmb3JrIG9uZSBibG9jayBhbmQgcmVtb3ZlIGFsbCBzdG9yZWQgaW5mb3JtYXRpb24gZm9yIHRoaXMgYmxvY2tcbiAgICogQHBhcmFtIGhhc2g6IGJsb2NrIGhhc2hcbiAgICovXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgZnJhdWRzXG4gICAqL1xuICBpbml0aWFsaXplRGF0YSA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbykgPT4ge1xuICAgIC8vIEdldHRpbmcgdW5zcGVudCBib3hlc1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYEluaXRpYWxpemluZyBmcmF1ZCB0YWJsZS4gc3RvcmluZyBmcmF1ZCBib3hlcyBjcmVhdGVkIGJlbGxvdyBoZWlnaHQgJHtpbml0aWFsQmxvY2suaGVpZ2h0fS5gLFxuICAgICk7XG4gICAgY29uc3QgdW5zcGVudEZyYXVkcyA9IGF3YWl0IHRoaXMuZ2V0VW5zcGVudEZyYXVkcyhpbml0aWFsQmxvY2suaGVpZ2h0KTtcbiAgICBjb25zdCB1bnNwZW50Qm94SWRzID0gdW5zcGVudEZyYXVkcy5tYXAoKGJveCkgPT4gYm94LmJveElkKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVW5zcGVudCBmcmF1ZCBib3hJZHMgJHt1bnNwZW50Qm94SWRzfWApO1xuXG4gICAgLy8gU3RvcmluZyBleHRyYWN0ZWQgYm94ZXNcbiAgICBsZXQgYWxsU3RvcmVkQm94SWRzID0gYXdhaXQgdGhpcy5hY3Rpb25zLmdldEFsbEJveElkcyh0aGlzLmdldElkKCkpO1xuICAgIGZvciAoY29uc3QgZnJhdWQgb2YgdW5zcGVudEZyYXVkcykge1xuICAgICAgaWYgKGFsbFN0b3JlZEJveElkcy5pbmNsdWRlcyhmcmF1ZC5ib3hJZCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnVwZGF0ZUZyYXVkKGZyYXVkLCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBVcGRhdGVkIHRoZSBleGlzdGluZyB1bnNwZW50IGZyYXVkIHdpdGggYm94SWQsIFske2ZyYXVkLmJveElkfV1gLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVXBkYXRlZCBmcmF1ZDogWyR7SlNPTi5zdHJpbmdpZnkoZnJhdWQpfV1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5pbnNlcnRGcmF1ZChmcmF1ZCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgSW5zZXJ0ZWQgbmV3IHVuc3BlbnQgZnJhdWQgd2l0aCBib3hJZCwgWyR7ZnJhdWQuYm94SWR9XWAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBJbnNlcnRlZCBmcmF1ZDogWyR7SlNPTi5zdHJpbmdpZnkoZnJhdWQpfV1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdXBkYXRlZCBib3ggaWRzIGZyb20gZXhpc3RpbmcgYm94ZXMgaW4gZGF0YWJhc2VcbiAgICBhbGxTdG9yZWRCb3hJZHMgPSBkaWZmZXJlbmNlKGFsbFN0b3JlZEJveElkcywgdW5zcGVudEJveElkcyk7XG4gICAgLy8gVmFsaWRhdGluZyByZW1haW5lZCBib3hlc1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYFZhbGlkYXRpbmcgYW5kIHVwZGF0aW5nIHN0b3JlZCBmcmF1ZCBib3hlcyB3aXRoIGJveElkcyAke2FsbFN0b3JlZEJveElkc31gLFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy52YWxpZGF0ZU9sZFN0b3JlZEZyYXVkcyhhbGxTdG9yZWRCb3hJZHMsIGluaXRpYWxCbG9jay5oZWlnaHQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhbGwgcmVtYWluaW5nIGJveGVzIGluIHRoZSBkYXRhYmFzZVxuICAgKiB1cGRhdGUgdGhlIGNvcnJlY3Qgb25lcyBhbmQgcmVtb3ZlIHRoZSBpbnZhbGlkIG9uZXNcbiAgICogQHBhcmFtIHVuY2hhbmdlZFN0b3JlZEJveElkc1xuICAgKiBAcGFyYW0gaW5pdGlhbEhlaWdodFxuICAgKi9cbiAgdmFsaWRhdGVPbGRTdG9yZWRGcmF1ZHMgPSBhc3luYyAoXG4gICAgdW5jaGFuZ2VkU3RvcmVkQm94SWRzOiBBcnJheTxzdHJpbmc+LFxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlcixcbiAgKSA9PiB7XG4gICAgZm9yIChjb25zdCBib3hJZCBvZiB1bmNoYW5nZWRTdG9yZWRCb3hJZHMpIHtcbiAgICAgIGNvbnN0IGJveCA9IGF3YWl0IHRoaXMuZ2V0RnJhdWRJbmZvV2l0aEJveElkKGJveElkKTtcbiAgICAgIGlmIChib3ggJiYgYm94LnNwZW5kQmxvY2sgJiYgYm94LnNwZW5kSGVpZ2h0KSB7XG4gICAgICAgIGlmIChib3guc3BlbmRIZWlnaHQgPCBpbml0aWFsSGVpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgdXBkYXRpbmcgc3BlbmRpbmcgaW5mb3JtYXRpb24gb2YgZnJhdWQgd2l0aCBib3hJZCBbJHtib3guYm94SWR9XSBzcGVudCBhdCBoZWlnaHQgWyR7Ym94LnNwZW5kSGVpZ2h0fV1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnVwZGF0ZVNwZW5kQmxvY2soXG4gICAgICAgICAgICBib3hJZCxcbiAgICAgICAgICAgIHRoaXMuZ2V0SWQoKSxcbiAgICAgICAgICAgIGJveC5zcGVuZEJsb2NrLFxuICAgICAgICAgICAgYm94LnNwZW5kSGVpZ2h0LFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgZnJhdWQgd2l0aCBib3hJZCBbJHtib3guYm94SWR9XSBoYXMgYmVlbiBzcGVudCBhZnRlciB0aGUgaW5pdGlhbGl6YXRpb24gaGVpZ2h0LCB1cGRhdGluZyBzcGVuZGluZyBpbmZvcm1hdGlvbiBza2lwcGVkLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnJlbW92ZUZyYXVkKGJveElkLCB0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBSZW1vdmVkIGludmFsaWQgZnJhdWQgWyR7Ym94SWR9XSBpbiBpbml0aWFsaXphdGlvbiB2YWxpZGF0aW9uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBleHRyYWN0ZWQgaW5mb3JtYXRpb24gb2YgYSBmcmF1ZCB3aXRoIGl0cyBib3hJZFxuICAgKiBAcGFyYW0gYm94SWRcbiAgICovXG4gIGdldEZyYXVkSW5mb1dpdGhCb3hJZCA9IGFzeW5jIChcbiAgICBib3hJZDogc3RyaW5nLFxuICApOiBQcm9taXNlPEV4dHJhY3RlZEZyYXVkIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveCA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxQm94ZXNQMShib3hJZCk7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZXh0cmFjdEJveERhdGEoW2JveF0pKVswXTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEJveCB3aXRoIGlkIFske2JveElkfV0gZG9lcyBub3QgZXhpc3RzYCk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogR2V0IHVuc3BlbnQgZnJhdWRzIGNyZWF0ZWQgYmVsbG93IHRoZSBpbml0aWFsIGhlaWdodFxuICAgKiBAcGFyYW0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0VW5zcGVudEZyYXVkcyA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICk6IFByb21pc2U8QXJyYXk8RXh0cmFjdGVkRnJhdWQ+PiA9PiB7XG4gICAgbGV0IGFsbEJveGVzOiBBcnJheTxFeHRyYWN0ZWRGcmF1ZD4gPSBbXTtcbiAgICBsZXQgb2Zmc2V0ID0gMCxcbiAgICAgIHRvdGFsID0gRGVmYXVsdEFwaUxpbWl0LFxuICAgICAgYm94ZXM6IFYxLkl0ZW1zT3V0cHV0SW5mbztcbiAgICB3aGlsZSAob2Zmc2V0IDwgdG90YWwpIHtcbiAgICAgIGJveGVzID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMuZXJnb1RyZWUsXG4gICAgICAgIHtcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgICBsaW1pdDogRGVmYXVsdEFwaUxpbWl0LFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGlmICghYm94ZXMuaXRlbXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBsb3JlciBhcGkgb3V0cHV0IGl0ZW1zIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuICAgICAgYWxsQm94ZXMgPSBbXG4gICAgICAgIC4uLmFsbEJveGVzLFxuICAgICAgICAuLi4oYXdhaXQgdGhpcy5leHRyYWN0Qm94RGF0YShcbiAgICAgICAgICBib3hlcy5pdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAoYm94KSA9PlxuICAgICAgICAgICAgICBib3guY3JlYXRpb25IZWlnaHQgPCBpbml0aWFsSGVpZ2h0ICYmXG4gICAgICAgICAgICAgIGJveC5hc3NldHMgJiZcbiAgICAgICAgICAgICAgYm94LmFzc2V0c1swXS50b2tlbklkID09IHRoaXMucnd0LFxuICAgICAgICAgICksXG4gICAgICAgICkpLFxuICAgICAgXTtcbiAgICAgIHRvdGFsID0gYm94ZXMudG90YWw7XG4gICAgICBvZmZzZXQgKz0gRGVmYXVsdEFwaUxpbWl0O1xuICAgIH1cbiAgICByZXR1cm4gYWxsQm94ZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYmxvY2sgaW5mb3JtYXRpb24gb2YgdHhcbiAgICogQHBhcmFtIHR4SWRcbiAgICovXG4gIGdldFR4QmxvY2sgPSBhc3luYyAodHhJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKHR4SWQpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguYmxvY2tJZCxcbiAgICAgIGhlaWdodDogdHguaW5jbHVzaW9uSGVpZ2h0LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJpZ2dlciBib3hJZCBmcm9tIGZyYXVkIHRyYW5zYWN0aW9uIGlkXG4gICAqIEBwYXJhbSB0eElkXG4gICAqL1xuICBnZXRUcmlnZ2VyQm94SWQgPSBhc3luYyAodHhJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKHR4SWQpO1xuICAgIHJldHVybiB0eC5pbnB1dHM/LlswXS5ib3hJZDtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdCBuZWVkZWQgaW5mb3JtYXRpb24gZm9yIHN0b3JpbmcgaW4gZGF0YWJhc2UgZnJvbSBhcGkganNvbiBvdXRwdXRzXG4gICAqIEBwYXJhbSBib3hlc1xuICAgKi9cbiAgZXh0cmFjdEJveERhdGEgPSBhc3luYyAoYm94ZXM6IEFycmF5PFYxLk91dHB1dEluZm8+KSA9PiB7XG4gICAgY29uc3QgZXh0cmFjdGVkRnJhdWRzOiBBcnJheTxFeHRyYWN0ZWRGcmF1ZD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEV4dHJhY3RpbmcgYm94IGZyYXVkIGluZm9ybWF0aW9uIGZyb20gYm94IHdpdGggYm94SWQgWyR7Ym94LmJveElkfV1gLFxuICAgICAgICApO1xuICAgICAgICBsZXQgc3BlbmRCbG9jaywgc3BlbmRIZWlnaHQ7XG4gICAgICAgIC8vIEV4dHJhY3Qgc3BlbmRpbmcgaW5mb3JtYXRpb25cbiAgICAgICAgaWYgKGJveC5zcGVudFRyYW5zYWN0aW9uSWQpIHtcbiAgICAgICAgICBjb25zdCBibG9jayA9IGF3YWl0IHRoaXMuZ2V0VHhCbG9jayhib3guc3BlbnRUcmFuc2FjdGlvbklkKTtcbiAgICAgICAgICBzcGVuZEJsb2NrID0gYmxvY2suaWQ7XG4gICAgICAgICAgc3BlbmRIZWlnaHQgPSBibG9jay5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXh0cmFjdCBXSURcbiAgICAgICAgY29uc3QgZXJnb0JveCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3gpKTtcbiAgICAgICAgY29uc3QgcjQgPSBlcmdvQm94XG4gICAgICAgICAgLnJlZ2lzdGVyX3ZhbHVlKHdhc20uTm9uTWFuZGF0b3J5UmVnaXN0ZXJJZC5SNClcbiAgICAgICAgICA/LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgIC8vIEV4dHJhY3QgdHJpZ2dlciBib3hJZFxuICAgICAgICBjb25zdCB0cmlnZ2VyQm94SWQgPSBhd2FpdCB0aGlzLmdldFRyaWdnZXJCb3hJZChib3gudHJhbnNhY3Rpb25JZCk7XG4gICAgICAgIGlmICghcjQgfHwgIXRyaWdnZXJCb3hJZCkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICAgICBgU2tpcHBpbmcgc3RvcmluZyBmcmF1ZCB3aXRoIGJveElkIFske2JveC5ib3hJZH1dLCB3aWQgb3IgdHJpZ2dlciBib3ggaWQgaXMgdW5kZWZpbmVkYCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXh0cmFjdGVkRnJhdWQgPSB7XG4gICAgICAgICAgYm94SWQ6IGVyZ29Cb3guYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgdHJpZ2dlckJveElkOiB0cmlnZ2VyQm94SWQsXG4gICAgICAgICAgd2lkOiBCdWZmZXIuZnJvbShyNFswXSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgIHJ3dENvdW50OiBib3guYXNzZXRzIVswXS5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICBzZXJpYWxpemVkOiBCdWZmZXIuZnJvbShlcmdvQm94LnNpZ21hX3NlcmlhbGl6ZV9ieXRlcygpKS50b1N0cmluZyhcbiAgICAgICAgICAgICdiYXNlNjQnLFxuICAgICAgICAgICksXG4gICAgICAgICAgYmxvY2tJZDogYm94LmJsb2NrSWQsXG4gICAgICAgICAgaGVpZ2h0OiBib3guc2V0dGxlbWVudEhlaWdodCxcbiAgICAgICAgICB0eElkOiBib3gudHJhbnNhY3Rpb25JZCxcbiAgICAgICAgICBzcGVuZEJsb2NrOiBzcGVuZEJsb2NrLFxuICAgICAgICAgIHNwZW5kSGVpZ2h0OiBzcGVuZEhlaWdodCxcbiAgICAgICAgICBzcGVuZFR4SWQ6IGJveC5zcGVudFRyYW5zYWN0aW9uSWQsXG4gICAgICAgIH07XG4gICAgICAgIGV4dHJhY3RlZEZyYXVkcy5wdXNoKGV4dHJhY3RlZEZyYXVkKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYEV4dHJhY3RlZCBmcmF1ZDogWyR7ZXh0cmFjdGVkRnJhdWR9XWApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICBgRXh0cmFjdGluZyBmcmF1ZCBpbmZvcm1hdGlvbiBmYWlsZWQgZm9yIGJveCBbJHtib3guYm94SWR9XSB3aXRoIGVycm9yOiAke2V9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhY3RlZEZyYXVkcztcbiAgfTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/fraud-extractor",
3
- "version": "2.2.3",
3
+ "version": "3.0.0-8f3c7016",
4
4
  "description": "fraud information extractor for watcher faulty reports",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  "type-check": "tsc --noEmit"
29
29
  },
30
30
  "dependencies": {
31
- "@rosen-bridge/abstract-extractor": "^2.1.2",
31
+ "@rosen-bridge/abstract-extractor": "3.0.0-8f3c7016",
32
32
  "@rosen-bridge/abstract-logger": "^3.0.1",
33
33
  "@rosen-bridge/extended-typeorm": "^1.0.1",
34
34
  "@rosen-bridge/json-bigint": "^1.1.0",
@@ -38,7 +38,7 @@
38
38
  "lodash-es": "^4.17.21"
39
39
  },
40
40
  "devDependencies": {
41
- "@rosen-bridge/abstract-scanner": "^0.2.2",
41
+ "@rosen-bridge/abstract-scanner": "1.0.0-8f3c7016",
42
42
  "@vitest/coverage-istanbul": "^3.1.4",
43
43
  "tsx": "^4.19.4",
44
44
  "vitest": "^3.1.4"