@super-protocol/sdk-js 2.1.6-beta.4 → 2.1.7-beta.0

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.
Files changed (37) hide show
  1. package/dist/cjs/TIIGenerator.d.ts +0 -2
  2. package/dist/cjs/TIIGenerator.js +16 -28
  3. package/dist/cjs/contracts/abi.d.ts +33 -107
  4. package/dist/cjs/contracts/abi.js +34 -131
  5. package/dist/cjs/crypto/Crypto.d.ts +1 -2
  6. package/dist/cjs/crypto/Crypto.js +2 -10
  7. package/dist/cjs/crypto/nodejs/ECIES.d.ts +3 -5
  8. package/dist/cjs/crypto/nodejs/ECIES.js +5 -26
  9. package/dist/cjs/index.d.ts +1 -2
  10. package/dist/cjs/index.js +4 -4
  11. package/dist/cjs/models/Order.js +32 -14
  12. package/dist/cjs/staticModels/Orders.js +58 -31
  13. package/dist/cjs/types/Order.d.ts +2 -22
  14. package/dist/cjs/types/Order.js +2 -45
  15. package/dist/cjs/utils/helpers/index.d.ts +0 -1
  16. package/dist/cjs/utils/helpers/index.js +1 -2
  17. package/dist/mjs/TIIGenerator.d.ts +0 -2
  18. package/dist/mjs/TIIGenerator.js +16 -28
  19. package/dist/mjs/contracts/abi.d.ts +33 -107
  20. package/dist/mjs/contracts/abi.js +34 -131
  21. package/dist/mjs/crypto/Crypto.d.ts +1 -2
  22. package/dist/mjs/crypto/Crypto.js +2 -10
  23. package/dist/mjs/crypto/nodejs/ECIES.d.ts +3 -5
  24. package/dist/mjs/crypto/nodejs/ECIES.js +6 -27
  25. package/dist/mjs/index.d.ts +1 -2
  26. package/dist/mjs/index.js +2 -3
  27. package/dist/mjs/models/Order.js +33 -15
  28. package/dist/mjs/staticModels/Orders.js +39 -12
  29. package/dist/mjs/types/Order.d.ts +2 -22
  30. package/dist/mjs/types/Order.js +1 -42
  31. package/dist/mjs/utils/helpers/index.d.ts +0 -1
  32. package/dist/mjs/utils/helpers/index.js +1 -2
  33. package/package.json +4 -4
  34. package/dist/cjs/utils/helpers/orderHelpers.d.ts +0 -12
  35. package/dist/cjs/utils/helpers/orderHelpers.js +0 -42
  36. package/dist/mjs/utils/helpers/orderHelpers.d.ts +0 -12
  37. package/dist/mjs/utils/helpers/orderHelpers.js +0 -34
@@ -1,4 +1,3 @@
1
- import { formatBytes32String, parseBytes32String } from 'ethers/lib/utils.js';
2
1
  export var OrderStatus;
3
2
  (function (OrderStatus) {
4
3
  OrderStatus["New"] = "0";
@@ -10,44 +9,4 @@ export var OrderStatus;
10
9
  OrderStatus["Blocked"] = "6";
11
10
  OrderStatus["Suspended"] = "7";
12
11
  })(OrderStatus || (OrderStatus = {}));
13
- export const orderInfoToRaw = (orderInfo) => {
14
- const resultInfo = JSON.stringify({
15
- publicKey: orderInfo.resultInfo.publicKey,
16
- encryptedInfo: orderInfo.resultInfo.encryptedInfo,
17
- encryptedArgs: orderInfo.encryptedArgs,
18
- });
19
- return {
20
- offerId: orderInfo.offerId,
21
- resultInfo: resultInfo,
22
- encryptedRequirements_DEPRECATED: '',
23
- encryptedArgs_DEPRECATED: '',
24
- status: orderInfo.status,
25
- externalId: formatBytes32String(orderInfo.externalId),
26
- expectedPrice: orderInfo.expectedPrice ?? '0',
27
- maxPriceSlippage: orderInfo.maxPriceSlippage ?? '0',
28
- };
29
- };
30
- export const orderInfoFromRaw = (orderInfoBch, args) => {
31
- let publicKey = '';
32
- let encryptedInfo = '';
33
- let encryptedArgs = orderInfoBch.encryptedArgs_DEPRECATED;
34
- try {
35
- const parsedFields = JSON.parse(orderInfoBch.resultInfo);
36
- publicKey = parsedFields.publicKey ?? publicKey;
37
- encryptedInfo = parsedFields.encryptedInfo ?? encryptedInfo;
38
- encryptedArgs = parsedFields.encryptedArgs ?? encryptedArgs;
39
- }
40
- catch (e) { }
41
- return {
42
- resultInfo: {
43
- publicKey,
44
- encryptedInfo,
45
- },
46
- encryptedArgs,
47
- offerId: orderInfoBch.offerId,
48
- status: orderInfoBch.status,
49
- externalId: parseBytes32String(orderInfoBch.externalId),
50
- args,
51
- };
52
- };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvT3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUUsTUFBTSxDQUFOLElBQVksV0FTWDtBQVRELFdBQVksV0FBVztJQUNyQix3QkFBUyxDQUFBO0lBQ1QsK0JBQWdCLENBQUE7SUFDaEIsOEJBQWUsQ0FBQTtJQUNmLDZCQUFjLENBQUE7SUFDZCx5QkFBVSxDQUFBO0lBQ1YsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYiw4QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFUVyxXQUFXLEtBQVgsV0FBVyxRQVN0QjtBQXVDRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFvQixFQUFnQixFQUFFO0lBQ25FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUztRQUN6QyxhQUFhLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhO1FBQ2pELGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtLQUN2QyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzFCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLGdDQUFnQyxFQUFFLEVBQUU7UUFDcEMsd0JBQXdCLEVBQUUsRUFBRTtRQUM1QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDeEIsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDckQsYUFBYSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksR0FBRztRQUM3QyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsZ0JBQWdCLElBQUksR0FBRztLQUNwRCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUEwQixFQUFFLElBQWUsRUFBYSxFQUFFO0lBQ3pGLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNuQixJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxhQUFhLEdBQUcsWUFBWSxDQUFDLHdCQUF3QixDQUFDO0lBQzFELElBQUksQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQztRQUNoRCxhQUFhLEdBQUcsWUFBWSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUM7UUFDNUQsYUFBYSxHQUFHLFlBQVksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDO0lBQzlELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLE9BQU87UUFDTCxVQUFVLEVBQUU7WUFDVixTQUFTO1lBQ1QsYUFBYTtTQUNkO1FBQ0QsYUFBYTtRQUNiLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTztRQUM3QixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDM0IsVUFBVSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUMifQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvT3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksV0FTWDtBQVRELFdBQVksV0FBVztJQUNyQix3QkFBUyxDQUFBO0lBQ1QsK0JBQWdCLENBQUE7SUFDaEIsOEJBQWUsQ0FBQTtJQUNmLDZCQUFjLENBQUE7SUFDZCx5QkFBVSxDQUFBO0lBQ1YsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYiw4QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFUVyxXQUFXLEtBQVgsV0FBVyxRQVN0QiJ9
@@ -1,2 +1 @@
1
1
  export * from './tryWithInterval.js';
2
- export * from './orderHelpers.js';
@@ -1,3 +1,2 @@
1
1
  export * from './tryWithInterval.js';
2
- export * from './orderHelpers.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUMifQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-protocol/sdk-js",
3
- "version": "2.1.6-beta.4",
3
+ "version": "2.1.7-beta.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/mjs/index.js",
6
6
  "exports": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@super-protocol/eslint-config-typescript": "2.0.0",
41
- "@types/elliptic": "^6.4.18",
41
+ "@types/elliptic": "^6.4.14",
42
42
  "@types/jest": "^27.0.3",
43
43
  "@types/lodash": "^4.14.176",
44
44
  "@types/lru-cache": "^7.10.10",
@@ -47,6 +47,7 @@
47
47
  "@types/node-gzip": "^1.1.0",
48
48
  "@types/ua-parser-js": "^0.7.39",
49
49
  "@types/uuid": "^9.0.7",
50
+ "elliptic": "^6.5.4",
50
51
  "jest": "^29.7.0",
51
52
  "net": "^1.0.2",
52
53
  "ts-jest": "^29.1.2",
@@ -58,13 +59,12 @@
58
59
  "dependencies": {
59
60
  "@aws-sdk/client-s3": "^3.470.0",
60
61
  "@fidm/x509": "^1.2.1",
61
- "@super-protocol/dto-js": "^0.0.35",
62
+ "@super-protocol/dto-js": "^0.0.30",
62
63
  "@super-protocol/tee-lib": "^0.1.2",
63
64
  "@super-protocol/uplink-nodejs": "1.2.19",
64
65
  "asn1js": "^3.0.5",
65
66
  "axios": "^1.5.1",
66
67
  "bottleneck": "^2.19.5",
67
- "elliptic": "^6.5.5",
68
68
  "ethers": "^5.5.3",
69
69
  "js-encoding-utils": "^0.7.3",
70
70
  "lodash": "^4.17.21",
@@ -1,12 +0,0 @@
1
- import { Encryption, EncryptionKey } from '@super-protocol/dto-js';
2
- export declare function getDerivedPrivateKey(publicKeyEncryption: Encryption): Promise<Encryption>;
3
- export declare function getEncryptionKeysForOrder(params: {
4
- offerId: string;
5
- encryptionPrivateKey: EncryptionKey;
6
- pccsServiceApiUrl: string;
7
- hashes?: string[];
8
- linkage?: string;
9
- }): Promise<{
10
- publicKey: string;
11
- encryptedInfo: string;
12
- }>;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getEncryptionKeysForOrder = exports.getDerivedPrivateKey = void 0;
7
- const dto_js_1 = require("@super-protocol/dto-js");
8
- const crypto_1 = require("crypto");
9
- const TIIGenerator_js_1 = __importDefault(require("../../TIIGenerator.js"));
10
- const index_js_1 = __importDefault(require("../../crypto/index.js"));
11
- async function getDerivedPrivateKey(publicKeyEncryption) {
12
- const derivedPrivateKey = await index_js_1.default.createHash(Buffer.from(publicKeyEncryption.key, publicKeyEncryption.encoding), { encoding: dto_js_1.Encoding.base64, algo: dto_js_1.HashAlgorithm.SHA256 });
13
- return {
14
- key: derivedPrivateKey.hash,
15
- encoding: derivedPrivateKey.encoding,
16
- algo: dto_js_1.CryptoAlgorithm.ECIES,
17
- };
18
- }
19
- exports.getDerivedPrivateKey = getDerivedPrivateKey;
20
- async function getEncryptionKeysForOrder(params) {
21
- const resultEncryption = index_js_1.default.getPublicKey(params.encryptionPrivateKey);
22
- const derivedPrivateKey = await getDerivedPrivateKey(resultEncryption);
23
- const ecdh = (0, crypto_1.createECDH)('secp256k1');
24
- ecdh.setPrivateKey(Buffer.from(derivedPrivateKey.key, derivedPrivateKey.encoding));
25
- const publicKey = {
26
- key: ecdh.getPublicKey(derivedPrivateKey.encoding),
27
- encoding: dto_js_1.Encoding.base64,
28
- algo: dto_js_1.CryptoAlgorithm.ECIES,
29
- };
30
- const orderInfoToEncrypt = {
31
- publicKey: resultEncryption,
32
- hashes: params.hashes || [],
33
- linkage: params.linkage || '',
34
- };
35
- const encryptedInfo = await TIIGenerator_js_1.default.encryptByTeeBlock(params.offerId, JSON.stringify(orderInfoToEncrypt), params.pccsServiceApiUrl);
36
- return {
37
- publicKey: JSON.stringify(publicKey),
38
- encryptedInfo: JSON.stringify(encryptedInfo),
39
- };
40
- }
41
- exports.getEncryptionKeysForOrder = getEncryptionKeysForOrder;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJIZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvb3JkZXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQU1nQztBQUNoQyxtQ0FBb0M7QUFDcEMsNEVBQWlEO0FBQ2pELHFFQUEyQztBQUdwQyxLQUFLLFVBQVUsb0JBQW9CLENBQUMsbUJBQStCO0lBQ3hFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQkFBTSxDQUFDLFVBQVUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQ25FLEVBQUUsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUMxRCxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQzNCLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1FBQ3BDLElBQUksRUFBRSx3QkFBZSxDQUFDLEtBQUs7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFYRCxvREFXQztBQUVNLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxNQU0vQztJQUNDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFMUUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFdkUsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBVSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLFNBQVMsR0FBRztRQUNoQixHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7UUFDbEQsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTTtRQUN6QixJQUFJLEVBQUUsd0JBQWUsQ0FBQyxLQUFLO0tBQ2QsQ0FBQztJQUVoQixNQUFNLGtCQUFrQixHQUF1QjtRQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtLQUM5QixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSx5QkFBWSxDQUFDLGlCQUFpQixDQUN4RCxNQUFNLENBQUMsT0FBTyxFQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFDbEMsTUFBTSxDQUFDLGlCQUFpQixDQUN6QixDQUFDO0lBRUYsT0FBTztRQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFuQ0QsOERBbUNDIn0=
@@ -1,12 +0,0 @@
1
- import { Encryption, EncryptionKey } from '@super-protocol/dto-js';
2
- export declare function getDerivedPrivateKey(publicKeyEncryption: Encryption): Promise<Encryption>;
3
- export declare function getEncryptionKeysForOrder(params: {
4
- offerId: string;
5
- encryptionPrivateKey: EncryptionKey;
6
- pccsServiceApiUrl: string;
7
- hashes?: string[];
8
- linkage?: string;
9
- }): Promise<{
10
- publicKey: string;
11
- encryptedInfo: string;
12
- }>;
@@ -1,34 +0,0 @@
1
- import { CryptoAlgorithm, Encoding, HashAlgorithm, } from '@super-protocol/dto-js';
2
- import { createECDH } from 'crypto';
3
- import TIIGenerator from '../../TIIGenerator.js';
4
- import Crypto from '../../crypto/index.js';
5
- export async function getDerivedPrivateKey(publicKeyEncryption) {
6
- const derivedPrivateKey = await Crypto.createHash(Buffer.from(publicKeyEncryption.key, publicKeyEncryption.encoding), { encoding: Encoding.base64, algo: HashAlgorithm.SHA256 });
7
- return {
8
- key: derivedPrivateKey.hash,
9
- encoding: derivedPrivateKey.encoding,
10
- algo: CryptoAlgorithm.ECIES,
11
- };
12
- }
13
- export async function getEncryptionKeysForOrder(params) {
14
- const resultEncryption = Crypto.getPublicKey(params.encryptionPrivateKey);
15
- const derivedPrivateKey = await getDerivedPrivateKey(resultEncryption);
16
- const ecdh = createECDH('secp256k1');
17
- ecdh.setPrivateKey(Buffer.from(derivedPrivateKey.key, derivedPrivateKey.encoding));
18
- const publicKey = {
19
- key: ecdh.getPublicKey(derivedPrivateKey.encoding),
20
- encoding: Encoding.base64,
21
- algo: CryptoAlgorithm.ECIES,
22
- };
23
- const orderInfoToEncrypt = {
24
- publicKey: resultEncryption,
25
- hashes: params.hashes || [],
26
- linkage: params.linkage || '',
27
- };
28
- const encryptedInfo = await TIIGenerator.encryptByTeeBlock(params.offerId, JSON.stringify(orderInfoToEncrypt), params.pccsServiceApiUrl);
29
- return {
30
- publicKey: JSON.stringify(publicKey),
31
- encryptedInfo: JSON.stringify(encryptedInfo),
32
- };
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJIZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvb3JkZXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUdSLGFBQWEsR0FDZCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxZQUFZLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxNQUFNLE1BQU0sdUJBQXVCLENBQUM7QUFHM0MsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxtQkFBK0I7SUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBSSxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUNuRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQzFELENBQUM7SUFFRixPQUFPO1FBQ0wsR0FBRyxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDM0IsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7UUFDcEMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxNQU0vQztJQUNDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUxRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV2RSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUNsRCxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU07UUFDekIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLO0tBQ2QsQ0FBQztJQUVoQixNQUFNLGtCQUFrQixHQUF1QjtRQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtLQUM5QixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUMsaUJBQWlCLENBQ3hELE1BQU0sQ0FBQyxPQUFPLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNsQyxNQUFNLENBQUMsaUJBQWlCLENBQ3pCLENBQUM7SUFFRixPQUFPO1FBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3BDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztLQUM3QyxDQUFDO0FBQ0osQ0FBQyJ9