@bitgo-beta/sdk-coin-bcha 1.3.3-alpha.409 → 1.3.3-alpha.410

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-bcha",
3
- "version": "1.3.3-alpha.409",
3
+ "version": "1.3.3-alpha.410",
4
4
  "description": "BitGo SDK coin library for Bitcoin abc",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -11,9 +11,7 @@
11
11
  "clean": "rm -r ./dist",
12
12
  "lint": "eslint --quiet .",
13
13
  "prepare": "npm run build",
14
- "test": "npm run coverage",
15
- "coverage": "nyc -- npm run unit-test",
16
- "unit-test": "mocha"
14
+ "unit-test": "echo 'test in abstract-utxo'"
17
15
  },
18
16
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
17
  "license": "MIT",
@@ -40,16 +38,10 @@
40
38
  ]
41
39
  },
42
40
  "dependencies": {
43
- "@bitgo-beta/abstract-utxo": "1.6.1-alpha.413",
44
- "@bitgo-beta/sdk-coin-bch": "1.3.3-alpha.410",
45
- "@bitgo-beta/sdk-core": "2.4.1-alpha.413",
46
- "@bitgo-beta/utxo-lib": "4.0.1-alpha.414"
41
+ "@bitgo-beta/abstract-utxo": "1.6.1-alpha.414",
42
+ "@bitgo-beta/sdk-core": "2.4.1-alpha.414"
47
43
  },
48
- "devDependencies": {
49
- "@bitgo-beta/sdk-api": "1.6.1-alpha.413",
50
- "@bitgo-beta/sdk-test": "^9.1.7"
51
- },
52
- "gitHead": "930ca59f94921ae2bbda9e74b7f983609b2b59b1",
44
+ "gitHead": "b3bfeff4b8b9be8ffd6538204026bf8dd13e9e67",
53
45
  "files": [
54
46
  "dist"
55
47
  ]
@@ -1,9 +0,0 @@
1
- import { BitGoBase, BaseCoin } from '@bitgo-beta/sdk-core';
2
- import { Bch } from '@bitgo-beta/sdk-coin-bch';
3
- import { UtxoNetwork } from '@bitgo-beta/abstract-utxo';
4
- export declare class Bcha extends Bch {
5
- constructor(bitgo: BitGoBase, network?: UtxoNetwork);
6
- static createInstance(bitgo: BitGoBase): BaseCoin;
7
- canonicalAddress(address: string, version?: unknown): string;
8
- }
9
- //# sourceMappingURL=bcha.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bcha.d.ts","sourceRoot":"","sources":["../../src/bcha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,qBAAa,IAAK,SAAQ,GAAG;gBACf,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW;IAInD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAkB,GAAG,MAAM;CAYvE"}
package/dist/src/bcha.js DELETED
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Bcha = void 0;
37
- const sdk_coin_bch_1 = require("@bitgo-beta/sdk-coin-bch");
38
- const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
- class Bcha extends sdk_coin_bch_1.Bch {
40
- constructor(bitgo, network) {
41
- super(bitgo, network || utxolib.networks.ecash);
42
- }
43
- static createInstance(bitgo) {
44
- return new Bcha(bitgo);
45
- }
46
- canonicalAddress(address, version = 'base58') {
47
- if (version === 'base58') {
48
- return utxolib.addressFormat.toCanonicalFormat(address, this.network);
49
- }
50
- if (version === 'cashaddr') {
51
- const script = utxolib.addressFormat.toOutputScriptTryFormats(address, this.network);
52
- return utxolib.addressFormat.fromOutputScriptWithFormat(script, version, this.network);
53
- }
54
- throw new Error(`invalid version ${version}`);
55
- }
56
- }
57
- exports.Bcha = Bcha;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmNoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iY2hhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJEQUErQztBQUMvQyw4REFBZ0Q7QUFHaEQsTUFBYSxJQUFLLFNBQVEsa0JBQUc7SUFDM0IsWUFBWSxLQUFnQixFQUFFLE9BQXFCO1FBQ2pELEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZSxFQUFFLFVBQW1CLFFBQVE7UUFDM0QsSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekIsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBckJELG9CQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSwgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCY2ggfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29pbi1iY2gnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBVdHhvTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LXV0eG8nO1xuXG5leHBvcnQgY2xhc3MgQmNoYSBleHRlbmRzIEJjaCB7XG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIG5ldHdvcms/OiBVdHhvTmV0d29yaykge1xuICAgIHN1cGVyKGJpdGdvLCBuZXR3b3JrIHx8IHV0eG9saWIubmV0d29ya3MuZWNhc2gpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBCY2hhKGJpdGdvKTtcbiAgfVxuXG4gIGNhbm9uaWNhbEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCB2ZXJzaW9uOiB1bmtub3duID0gJ2Jhc2U1OCcpOiBzdHJpbmcge1xuICAgIGlmICh2ZXJzaW9uID09PSAnYmFzZTU4Jykge1xuICAgICAgcmV0dXJuIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC50b0Nhbm9uaWNhbEZvcm1hdChhZGRyZXNzLCB0aGlzLm5ldHdvcmspO1xuICAgIH1cblxuICAgIGlmICh2ZXJzaW9uID09PSAnY2FzaGFkZHInKSB7XG4gICAgICBjb25zdCBzY3JpcHQgPSB1dHhvbGliLmFkZHJlc3NGb3JtYXQudG9PdXRwdXRTY3JpcHRUcnlGb3JtYXRzKGFkZHJlc3MsIHRoaXMubmV0d29yayk7XG4gICAgICByZXR1cm4gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmZyb21PdXRwdXRTY3JpcHRXaXRoRm9ybWF0KHNjcmlwdCwgdmVyc2lvbiwgdGhpcy5uZXR3b3JrKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbiAke3ZlcnNpb259YCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { BitGoBase } from '@bitgo-beta/sdk-core';
2
- export declare const register: (sdk: BitGoBase) => void;
3
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.register = void 0;
4
- const bcha_1 = require("./bcha");
5
- const tbcha_1 = require("./tbcha");
6
- const register = (sdk) => {
7
- sdk.register('bcha', bcha_1.Bcha.createInstance);
8
- sdk.register('tbcha', tbcha_1.Tbcha.createInstance);
9
- };
10
- exports.register = register;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBQzlCLG1DQUFnQztBQUV6QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmNoYSB9IGZyb20gJy4vYmNoYSc7XG5pbXBvcnQgeyBUYmNoYSB9IGZyb20gJy4vdGJjaGEnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdiY2hhJywgQmNoYS5jcmVhdGVJbnN0YW5jZSk7XG4gIHNkay5yZWdpc3RlcigndGJjaGEnLCBUYmNoYS5jcmVhdGVJbnN0YW5jZSk7XG59O1xuIl19
@@ -1,10 +0,0 @@
1
- /**
2
- * @prettier
3
- */
4
- import { BitGoBase, BaseCoin } from '@bitgo-beta/sdk-core';
5
- import { Bcha } from './bcha';
6
- export declare class Tbcha extends Bcha {
7
- constructor(bitgo: BitGoBase);
8
- static createInstance(bitgo: BitGoBase): BaseCoin;
9
- }
10
- //# sourceMappingURL=tbcha.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tbcha.d.ts","sourceRoot":"","sources":["../../src/tbcha.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,KAAM,SAAQ,IAAI;gBACjB,KAAK,EAAE,SAAS;IAI5B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;CAGlD"}
package/dist/src/tbcha.js DELETED
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Tbcha = void 0;
37
- const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
38
- const bcha_1 = require("./bcha");
39
- class Tbcha extends bcha_1.Bcha {
40
- constructor(bitgo) {
41
- super(bitgo, utxolib.networks.ecashTest);
42
- }
43
- static createInstance(bitgo) {
44
- return new Tbcha(bitgo);
45
- }
46
- }
47
- exports.Tbcha = Tbcha;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGJjaGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGJjaGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsOERBQWdEO0FBQ2hELGlDQUE4QjtBQUU5QixNQUFhLEtBQU0sU0FBUSxXQUFJO0lBQzdCLFlBQVksS0FBZ0I7UUFDMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCO1FBQ3BDLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBUkQsc0JBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UsIEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBCY2hhIH0gZnJvbSAnLi9iY2hhJztcblxuZXhwb3J0IGNsYXNzIFRiY2hhIGV4dGVuZHMgQmNoYSB7XG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UpIHtcbiAgICBzdXBlcihiaXRnbywgdXR4b2xpYi5uZXR3b3Jrcy5lY2FzaFRlc3QpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBUYmNoYShiaXRnbyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":""}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sdk_api_1 = require("@bitgo-beta/sdk-api");
4
- const sdk_test_1 = require("@bitgo-beta/sdk-test");
5
- const src_1 = require("../../src");
6
- describe('Bcha', function () {
7
- const coinName = 'tbcha';
8
- let bitgo;
9
- let basecoin;
10
- before(function () {
11
- bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, {
12
- env: 'mock',
13
- });
14
- bitgo.initializeTestVars();
15
- bitgo.safeRegister('bcha', src_1.Bcha.createInstance);
16
- bitgo.safeRegister('tbcha', src_1.Tbcha.createInstance);
17
- basecoin = bitgo.coin(coinName);
18
- });
19
- it('should instantiate the coin', function () {
20
- let localBasecoin = bitgo.coin('tbcha');
21
- localBasecoin.should.be.an.instanceof(src_1.Tbcha);
22
- localBasecoin = bitgo.coin('bcha');
23
- localBasecoin.should.be.an.instanceof(src_1.Bcha);
24
- });
25
- it('should return tbcha', function () {
26
- basecoin.getChain().should.equal('tbcha');
27
- });
28
- it('should return full name', function () {
29
- basecoin.getFullName().should.equal('Testnet Bitcoin ABC');
30
- });
31
- it('should convert addresses', function () {
32
- const mainnetBasecoin = bitgo.coin('bcha');
33
- mainnetBasecoin
34
- .canonicalAddress('38oymyUayu35QoLLKmc8CozbcHynH6Btkn', 'cashaddr')
35
- .should.equal('ecash:pp8pnl7k6y8g073cggczfh22xrprxut5hymhjkq3er');
36
- mainnetBasecoin
37
- .canonicalAddress('ecash:pp8pnl7k6y8g073cggczfh22xrprxut5hymhjkq3er')
38
- .should.equal('38oymyUayu35QoLLKmc8CozbcHynH6Btkn');
39
- basecoin
40
- .canonicalAddress('mzopZJiBCjeAHXkShhgxfRsALgrYt3kxNP', 'cashaddr')
41
- .should.equal('ectest:qrfekq9s0c8tcuh75wpcxqnyl5e7dhqk4gq6pjct44');
42
- basecoin
43
- .canonicalAddress('ectest:qrfekq9s0c8tcuh75wpcxqnyl5e7dhqk4gq6pjct44')
44
- .should.equal('mzopZJiBCjeAHXkShhgxfRsALgrYt3kxNP');
45
- });
46
- });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBK0M7QUFDL0MsbURBQStEO0FBQy9ELG1DQUF3QztBQUV4QyxRQUFRLENBQUMsTUFBTSxFQUFFO0lBQ2YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFdBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRTtRQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBSyxDQUFDLENBQUM7UUFFN0MsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtRQUN4QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRTtRQUM1QixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDBCQUEwQixFQUFFO1FBQzdCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsZUFBZTthQUNaLGdCQUFnQixDQUFDLG9DQUFvQyxFQUFFLFVBQVUsQ0FBQzthQUNsRSxNQUFNLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDcEUsZUFBZTthQUNaLGdCQUFnQixDQUFDLGtEQUFrRCxDQUFDO2FBQ3BFLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN0RCxRQUFRO2FBQ0wsZ0JBQWdCLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxDQUFDO2FBQ2xFLE1BQU0sQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUNyRSxRQUFRO2FBQ0wsZ0JBQWdCLENBQUMsbURBQW1ELENBQUM7YUFDckUsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBCY2hhLCBUYmNoYSB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmRlc2NyaWJlKCdCY2hhJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBjb2luTmFtZSA9ICd0YmNoYSc7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW47XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwge1xuICAgICAgZW52OiAnbW9jaycsXG4gICAgfSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdiY2hhJywgQmNoYS5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0YmNoYScsIFRiY2hhLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiYXNlY29pbiA9IGJpdGdvLmNvaW4oY29pbk5hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGluc3RhbnRpYXRlIHRoZSBjb2luJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBsb2NhbEJhc2Vjb2luID0gYml0Z28uY29pbigndGJjaGEnKTtcbiAgICBsb2NhbEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKFRiY2hhKTtcblxuICAgIGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCdiY2hhJyk7XG4gICAgbG9jYWxCYXNlY29pbi5zaG91bGQuYmUuYW4uaW5zdGFuY2VvZihCY2hhKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGJjaGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgYmFzZWNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RiY2hhJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIGZ1bGwgbmFtZScsIGZ1bmN0aW9uICgpIHtcbiAgICBiYXNlY29pbi5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnVGVzdG5ldCBCaXRjb2luIEFCQycpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvbnZlcnQgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IG1haW5uZXRCYXNlY29pbiA9IGJpdGdvLmNvaW4oJ2JjaGEnKTtcblxuICAgIG1haW5uZXRCYXNlY29pblxuICAgICAgLmNhbm9uaWNhbEFkZHJlc3MoJzM4b3lteVVheXUzNVFvTExLbWM4Q296YmNIeW5INkJ0a24nLCAnY2FzaGFkZHInKVxuICAgICAgLnNob3VsZC5lcXVhbCgnZWNhc2g6cHA4cG5sN2s2eThnMDczY2dnY3pmaDIyeHJwcnh1dDVoeW1oamtxM2VyJyk7XG4gICAgbWFpbm5ldEJhc2Vjb2luXG4gICAgICAuY2Fub25pY2FsQWRkcmVzcygnZWNhc2g6cHA4cG5sN2s2eThnMDczY2dnY3pmaDIyeHJwcnh1dDVoeW1oamtxM2VyJylcbiAgICAgIC5zaG91bGQuZXF1YWwoJzM4b3lteVVheXUzNVFvTExLbWM4Q296YmNIeW5INkJ0a24nKTtcbiAgICBiYXNlY29pblxuICAgICAgLmNhbm9uaWNhbEFkZHJlc3MoJ216b3BaSmlCQ2plQUhYa1NoaGd4ZlJzQUxncll0M2t4TlAnLCAnY2FzaGFkZHInKVxuICAgICAgLnNob3VsZC5lcXVhbCgnZWN0ZXN0OnFyZmVrcTlzMGM4dGN1aDc1d3BjeHFueWw1ZTdkaHFrNGdxNnBqY3Q0NCcpO1xuICAgIGJhc2Vjb2luXG4gICAgICAuY2Fub25pY2FsQWRkcmVzcygnZWN0ZXN0OnFyZmVrcTlzMGM4dGN1aDc1d3BjeHFueWw1ZTdkaHFrNGdxNnBqY3Q0NCcpXG4gICAgICAuc2hvdWxkLmVxdWFsKCdtem9wWkppQkNqZUFIWGtTaGhneGZSc0FMZ3JZdDNreE5QJyk7XG4gIH0pO1xufSk7XG4iXX0=