@super-protocol/sdk-js 2.1.6-beta.3 → 2.1.6-beta.4
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/dist/cjs/types/Order.d.ts +6 -0
- package/dist/cjs/types/Order.js +1 -1
- package/dist/cjs/utils/helpers/orderHelpers.d.ts +2 -0
- package/dist/cjs/utils/helpers/orderHelpers.js +7 -2
- package/dist/mjs/types/Order.d.ts +6 -0
- package/dist/mjs/types/Order.js +1 -1
- package/dist/mjs/utils/helpers/orderHelpers.d.ts +2 -0
- package/dist/mjs/utils/helpers/orderHelpers.js +7 -2
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TokenAmount, BlockchainId } from './Web3.js';
|
|
2
|
+
import { EncryptionKey } from '@super-protocol/dto-js';
|
|
2
3
|
export declare enum OrderStatus {
|
|
3
4
|
New = "0",
|
|
4
5
|
Processing = "1",
|
|
@@ -56,3 +57,8 @@ export type SubOrderParams = {
|
|
|
56
57
|
blockParentOrder: boolean;
|
|
57
58
|
deposit: TokenAmount;
|
|
58
59
|
};
|
|
60
|
+
export type OrderEncryptedInfo = {
|
|
61
|
+
publicKey: EncryptionKey;
|
|
62
|
+
hashes: string[];
|
|
63
|
+
linkage: string;
|
|
64
|
+
};
|
package/dist/cjs/types/Order.js
CHANGED
|
@@ -55,4 +55,4 @@ const orderInfoFromRaw = (orderInfoBch, args) => {
|
|
|
55
55
|
};
|
|
56
56
|
};
|
|
57
57
|
exports.orderInfoFromRaw = orderInfoFromRaw;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvT3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQThFO0FBSTlFLElBQVksV0FTWDtBQVRELFdBQVksV0FBVztJQUNyQix3QkFBUyxDQUFBO0lBQ1QsK0JBQWdCLENBQUE7SUFDaEIsOEJBQWUsQ0FBQTtJQUNmLDZCQUFjLENBQUE7SUFDZCx5QkFBVSxDQUFBO0lBQ1YsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYiw4QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFUVyxXQUFXLDJCQUFYLFdBQVcsUUFTdEI7QUF1Q00sTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFvQixFQUFnQixFQUFFO0lBQ25FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUztRQUN6QyxhQUFhLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhO1FBQ2pELGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtLQUN2QyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzFCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLGdDQUFnQyxFQUFFLEVBQUU7UUFDcEMsd0JBQXdCLEVBQUUsRUFBRTtRQUM1QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDeEIsVUFBVSxFQUFFLElBQUEsOEJBQW1CLEVBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUNyRCxhQUFhLEVBQUUsU0FBUyxDQUFDLGFBQWEsSUFBSSxHQUFHO1FBQzdDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHO0tBQ3BELENBQUM7QUFDSixDQUFDLENBQUM7QUFoQlcsUUFBQSxjQUFjLGtCQWdCekI7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBMEIsRUFBRSxJQUFlLEVBQWEsRUFBRTtJQUN6RixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDbkIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLElBQUksYUFBYSxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQztJQUMxRCxJQUFJLENBQUM7UUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFDaEQsYUFBYSxHQUFHLFlBQVksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDO1FBQzVELGFBQWEsR0FBRyxZQUFZLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQztJQUM5RCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7SUFFZCxPQUFPO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsU0FBUztZQUNULGFBQWE7U0FDZDtRQUNELGFBQWE7UUFDYixPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU87UUFDN0IsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQzNCLFVBQVUsRUFBRSxJQUFBLDZCQUFrQixFQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUM7QUF0QlcsUUFBQSxnQkFBZ0Isb0JBc0IzQiJ9
|
|
@@ -27,11 +27,16 @@ async function getEncryptionKeysForOrder(params) {
|
|
|
27
27
|
encoding: dto_js_1.Encoding.base64,
|
|
28
28
|
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
29
29
|
};
|
|
30
|
-
const
|
|
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);
|
|
31
36
|
return {
|
|
32
37
|
publicKey: JSON.stringify(publicKey),
|
|
33
38
|
encryptedInfo: JSON.stringify(encryptedInfo),
|
|
34
39
|
};
|
|
35
40
|
}
|
|
36
41
|
exports.getEncryptionKeysForOrder = getEncryptionKeysForOrder;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJIZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvb3JkZXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQU1nQztBQUNoQyxtQ0FBb0M7QUFDcEMsNEVBQWlEO0FBQ2pELHFFQUEyQztBQUdwQyxLQUFLLFVBQVUsb0JBQW9CLENBQUMsbUJBQStCO0lBQ3hFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQkFBTSxDQUFDLFVBQVUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQ25FLEVBQUUsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUMxRCxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQzNCLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1FBQ3BDLElBQUksRUFBRSx3QkFBZSxDQUFDLEtBQUs7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFYRCxvREFXQztBQUVNLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxNQU0vQztJQUNDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFMUUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFdkUsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBVSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLFNBQVMsR0FBRztRQUNoQixHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7UUFDbEQsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTTtRQUN6QixJQUFJLEVBQUUsd0JBQWUsQ0FBQyxLQUFLO0tBQ2QsQ0FBQztJQUVoQixNQUFNLGtCQUFrQixHQUF1QjtRQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtLQUM5QixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSx5QkFBWSxDQUFDLGlCQUFpQixDQUN4RCxNQUFNLENBQUMsT0FBTyxFQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFDbEMsTUFBTSxDQUFDLGlCQUFpQixDQUN6QixDQUFDO0lBRUYsT0FBTztRQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFuQ0QsOERBbUNDIn0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TokenAmount, BlockchainId } from './Web3.js';
|
|
2
|
+
import { EncryptionKey } from '@super-protocol/dto-js';
|
|
2
3
|
export declare enum OrderStatus {
|
|
3
4
|
New = "0",
|
|
4
5
|
Processing = "1",
|
|
@@ -56,3 +57,8 @@ export type SubOrderParams = {
|
|
|
56
57
|
blockParentOrder: boolean;
|
|
57
58
|
deposit: TokenAmount;
|
|
58
59
|
};
|
|
60
|
+
export type OrderEncryptedInfo = {
|
|
61
|
+
publicKey: EncryptionKey;
|
|
62
|
+
hashes: string[];
|
|
63
|
+
linkage: string;
|
|
64
|
+
};
|
package/dist/mjs/types/Order.js
CHANGED
|
@@ -50,4 +50,4 @@ export const orderInfoFromRaw = (orderInfoBch, args) => {
|
|
|
50
50
|
args,
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvT3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJOUUsTUFBTSxDQUFOLElBQVksV0FTWDtBQVRELFdBQVksV0FBVztJQUNyQix3QkFBUyxDQUFBO0lBQ1QsK0JBQWdCLENBQUE7SUFDaEIsOEJBQWUsQ0FBQTtJQUNmLDZCQUFjLENBQUE7SUFDZCx5QkFBVSxDQUFBO0lBQ1YsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYiw4QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFUVyxXQUFXLEtBQVgsV0FBVyxRQVN0QjtBQXVDRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFvQixFQUFnQixFQUFFO0lBQ25FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUztRQUN6QyxhQUFhLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhO1FBQ2pELGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtLQUN2QyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzFCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLGdDQUFnQyxFQUFFLEVBQUU7UUFDcEMsd0JBQXdCLEVBQUUsRUFBRTtRQUM1QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDeEIsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDckQsYUFBYSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksR0FBRztRQUM3QyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsZ0JBQWdCLElBQUksR0FBRztLQUNwRCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUEwQixFQUFFLElBQWUsRUFBYSxFQUFFO0lBQ3pGLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNuQixJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxhQUFhLEdBQUcsWUFBWSxDQUFDLHdCQUF3QixDQUFDO0lBQzFELElBQUksQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQztRQUNoRCxhQUFhLEdBQUcsWUFBWSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUM7UUFDNUQsYUFBYSxHQUFHLFlBQVksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDO0lBQzlELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLE9BQU87UUFDTCxVQUFVLEVBQUU7WUFDVixTQUFTO1lBQ1QsYUFBYTtTQUNkO1FBQ0QsYUFBYTtRQUNiLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTztRQUM3QixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDM0IsVUFBVSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -20,10 +20,15 @@ export async function getEncryptionKeysForOrder(params) {
|
|
|
20
20
|
encoding: Encoding.base64,
|
|
21
21
|
algo: CryptoAlgorithm.ECIES,
|
|
22
22
|
};
|
|
23
|
-
const
|
|
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);
|
|
24
29
|
return {
|
|
25
30
|
publicKey: JSON.stringify(publicKey),
|
|
26
31
|
encryptedInfo: JSON.stringify(encryptedInfo),
|
|
27
32
|
};
|
|
28
33
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJIZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvb3JkZXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUdSLGFBQWEsR0FDZCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxZQUFZLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxNQUFNLE1BQU0sdUJBQXVCLENBQUM7QUFHM0MsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxtQkFBK0I7SUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBSSxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUNuRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQzFELENBQUM7SUFFRixPQUFPO1FBQ0wsR0FBRyxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDM0IsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7UUFDcEMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLO0tBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxNQU0vQztJQUNDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUxRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV2RSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUNsRCxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU07UUFDekIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxLQUFLO0tBQ2QsQ0FBQztJQUVoQixNQUFNLGtCQUFrQixHQUF1QjtRQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtLQUM5QixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUMsaUJBQWlCLENBQ3hELE1BQU0sQ0FBQyxPQUFPLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNsQyxNQUFNLENBQUMsaUJBQWlCLENBQ3pCLENBQUM7SUFFRixPQUFPO1FBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3BDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztLQUM3QyxDQUFDO0FBQ0osQ0FBQyJ9
|