@bitgo-beta/sdk-coin-mantra 1.0.1-beta.67 → 1.0.1-beta.670

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.
@@ -0,0 +1,186 @@
1
+ export declare const TEST_ACCOUNT: {
2
+ pubAddress: string;
3
+ compressedPublicKey: string;
4
+ compressedPublicKeyTwo: string;
5
+ uncompressedPublicKey: string;
6
+ privateKey: string;
7
+ extendedPrv: string;
8
+ extendedPub: string;
9
+ };
10
+ export declare const TEST_SEND_TX: {
11
+ hash: string;
12
+ signature: string;
13
+ pubKey: string;
14
+ privateKey: string;
15
+ signedTxBase64: string;
16
+ sender: string;
17
+ recipient: string;
18
+ chainId: string;
19
+ accountNumber: number;
20
+ sequence: number;
21
+ sendAmount: string;
22
+ feeAmount: string;
23
+ sendMessage: {
24
+ typeUrl: string;
25
+ value: {
26
+ amount: {
27
+ denom: string;
28
+ amount: string;
29
+ }[];
30
+ toAddress: string;
31
+ fromAddress: string;
32
+ };
33
+ };
34
+ gasBudget: {
35
+ amount: {
36
+ denom: string;
37
+ amount: string;
38
+ }[];
39
+ gasLimit: number;
40
+ };
41
+ };
42
+ export declare const TEST_SEND_TX2: {
43
+ hash: string;
44
+ signature: string;
45
+ pubKey: string;
46
+ privateKey: string;
47
+ signedTxBase64: string;
48
+ sender: string;
49
+ recipient: string;
50
+ chainId: string;
51
+ accountNumber: number;
52
+ sequence: number;
53
+ sendAmount: string;
54
+ feeAmount: string;
55
+ sendMessage: {
56
+ typeUrl: string;
57
+ value: {
58
+ amount: {
59
+ denom: string;
60
+ amount: string;
61
+ }[];
62
+ toAddress: string;
63
+ fromAddress: string;
64
+ };
65
+ };
66
+ gasBudget: {
67
+ amount: {
68
+ denom: string;
69
+ amount: string;
70
+ }[];
71
+ gasLimit: number;
72
+ };
73
+ };
74
+ export declare const TEST_SEND_MANY_TX: {
75
+ hash: string;
76
+ signature: string;
77
+ pubKey: string;
78
+ privateKey: string;
79
+ signedTxBase64: string;
80
+ sender: string;
81
+ chainId: string;
82
+ accountNumber: number;
83
+ sequence: number;
84
+ memo: string;
85
+ sendMessages: {
86
+ typeUrl: string;
87
+ value: {
88
+ amount: {
89
+ denom: string;
90
+ amount: string;
91
+ }[];
92
+ toAddress: string;
93
+ fromAddress: string;
94
+ };
95
+ }[];
96
+ gasBudget: {
97
+ amount: {
98
+ denom: string;
99
+ amount: string;
100
+ }[];
101
+ gasLimit: number;
102
+ };
103
+ };
104
+ export declare const TEST_TX_WITH_MEMO: {
105
+ hash: string;
106
+ signature: string;
107
+ pubKey: string;
108
+ privateKey: string;
109
+ signedTxBase64: string;
110
+ from: string;
111
+ to: string;
112
+ chainId: string;
113
+ accountNumber: number;
114
+ sequence: number;
115
+ feeAmount: string;
116
+ sendAmount: string;
117
+ sendMessage: {
118
+ typeUrl: string;
119
+ value: {
120
+ amount: {
121
+ denom: string;
122
+ amount: string;
123
+ }[];
124
+ fromAddress: string;
125
+ toAddress: string;
126
+ };
127
+ };
128
+ memo: string;
129
+ gasBudget: {
130
+ amount: {
131
+ denom: string;
132
+ amount: string;
133
+ }[];
134
+ gasLimit: number;
135
+ };
136
+ };
137
+ export declare const address: {
138
+ address1: string;
139
+ address2: string;
140
+ address3: string;
141
+ address4: string;
142
+ address5: string;
143
+ address6: string;
144
+ validatorAddress1: string;
145
+ validatorAddress2: string;
146
+ validatorAddress3: string;
147
+ validatorAddress4: string;
148
+ noMemoIdAddress: string;
149
+ validMemoIdAddress: string;
150
+ validMemoIdAddress2: string;
151
+ invalidMemoIdAddress: string;
152
+ invalidMemoIdAddress2: string;
153
+ multipleMemoIdAddress: string;
154
+ };
155
+ export declare const blockHash: {
156
+ hash1: string;
157
+ hash2: string;
158
+ };
159
+ export declare const txIds: {
160
+ hash1: string;
161
+ hash2: string;
162
+ hash3: string;
163
+ };
164
+ export declare const coinAmounts: {
165
+ amount1: {
166
+ amount: string;
167
+ denom: string;
168
+ };
169
+ amount2: {
170
+ amount: string;
171
+ denom: string;
172
+ };
173
+ amount3: {
174
+ amount: string;
175
+ denom: string;
176
+ };
177
+ amount4: {
178
+ amount: string;
179
+ denom: string;
180
+ };
181
+ amount5: {
182
+ amount: string;
183
+ denom: string;
184
+ };
185
+ };
186
+ //# sourceMappingURL=mantra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mantra.d.ts","sourceRoot":"","sources":["../../../test/resources/mantra.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;CAWxB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C7B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC7B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AAEF,eAAO,MAAM,SAAS;;;CAGrB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;CAIjB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;CAMvB,CAAC"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coinAmounts = exports.txIds = exports.blockHash = exports.address = exports.TEST_TX_WITH_MEMO = exports.TEST_SEND_MANY_TX = exports.TEST_SEND_TX2 = exports.TEST_SEND_TX = exports.TEST_ACCOUNT = void 0;
4
+ exports.TEST_ACCOUNT = {
5
+ pubAddress: 'mantra178596utuac8l9tkj25afvwz8l7d7684kkswjlj',
6
+ compressedPublicKey: '02bcdbd054a73aa6097c1926c87eb7d66142d2ea710584c4b3e9844e1dab1538f0',
7
+ compressedPublicKeyTwo: '02001fda4568760a99e58ee295b4a51edcc6a689297a71f7d1571cf4e1253abcde',
8
+ uncompressedPublicKey: '04bcdbd054a73aa6097c1926c87eb7d66142d2ea710584c4b3e9844e1dab1538f0a088291e83cb3438431deb5e251439e338d8edc4389ea2004f442a73cc97afc8',
9
+ privateKey: '3f020639e98e5c4953abb23d01a7c892e83b57593a7f46f37298b58cbf1cacd5',
10
+ extendedPrv: 'xprv9s21ZrQH143K3n6kDURwkfkBxB58Fxoz7cFCbpQeFws4K5iXaSUcpq18cCqJQ74MnqNrnLBHfE7YvUgKpnckmpsBLExGSRK55Ud5uuxGrxL',
11
+ extendedPub: 'xpub661MyMwAqRbcGGBDKVxx7ogvWCucfRXqUqAoQCpFpHQ3Bt3g7ynsNdKcTWvGGYrpq6VYPPgxjMfKaszXMhKmmCZEnhg9RpqcGeP9uCnZsD9',
12
+ };
13
+ exports.TEST_SEND_TX = {
14
+ hash: '8603909AFBEA9D14D2162842A298C756EB397B25B2BBA2448DBF4A8C083B3AC4',
15
+ signature: 'zc0JPNhaCap/5MYzWudOzLniUWdxOIYm8pFMQ1Ee4vN1AGw3cDb7NLjyisVPahwr9SDdDNkayIZypdXfKnxNFw==',
16
+ pubKey: 'Az+k0qZ7H0aIik2+5KOWIkWMx5BlIVCjSbrx6hyDp///',
17
+ privateKey: 'tEqy+qiR3NOJriVL2RrIon3PVDSzJ3SvrkfHr6yImKQ=',
18
+ signedTxBase64: 'Co4BCosBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEmsKLW1hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eBItbWFudHJhMThmYXZwc2owczhoZnkyajAwZTg5cHFtcHA5bmRmbDAzYTZhN3ZqGgsKA3VvbRIEMTAwMBJkCk4KRgofL2Nvc21vcy5jcnlwdG8uc2VjcDI1NmsxLlB1YktleRIjCiEDP6TSpnsfRoiKTb7ko5YiRYzHkGUhUKNJuvHqHIOn//8SBAoCCAESEgoMCgN1b20SBTEwMDAwEMCEPRpAzc0JPNhaCap/5MYzWudOzLniUWdxOIYm8pFMQ1Ee4vN1AGw3cDb7NLjyisVPahwr9SDdDNkayIZypdXfKnxNFw==',
19
+ sender: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
20
+ recipient: 'mantra18favpsj0s8hfy2j00e89pqmpp9ndfl03a6a7vj',
21
+ chainId: 'mantra-dukong-1',
22
+ accountNumber: 6,
23
+ sequence: 0,
24
+ sendAmount: '1000',
25
+ feeAmount: '10000',
26
+ sendMessage: {
27
+ typeUrl: '/cosmos.bank.v1beta1.MsgSend',
28
+ value: {
29
+ amount: [
30
+ {
31
+ denom: 'uom',
32
+ amount: '1000',
33
+ },
34
+ ],
35
+ toAddress: 'mantra18favpsj0s8hfy2j00e89pqmpp9ndfl03a6a7vj',
36
+ fromAddress: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
37
+ },
38
+ },
39
+ gasBudget: {
40
+ amount: [{ denom: 'uom', amount: '10000' }],
41
+ gasLimit: 1000000,
42
+ },
43
+ };
44
+ exports.TEST_SEND_TX2 = {
45
+ hash: '01AAD63BB1BA07029DBD70900F33AC86FC3F57EE2C15A4D673286F3A48D36CFF',
46
+ signature: 'ziYescvLMoVrj6W+WKxBV7q2VSibNscuh89+HH04R+4ZpbYLjcf3XueK8nx8FfPBrkx8blkTVUdcVxO6Y+El3g==',
47
+ pubKey: 'Ak1wvPF1Ue6scjAWNkKjmtS/9+JajLstkoZWVup9tB+c',
48
+ privateKey: 'QAzeAkPSTKyRT8/TvJcRC7VSzQHV9QhH9YTmGZbnvmk=',
49
+ signedTxBase64: 'Co4BCosBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEmsKLW1hbnRyYTE3ODU5NnV0dWFjOGw5dGtqMjVhZnZ3ejhsN2Q3Njg0a2tzd2psahItbWFudHJhMTU4anB3MHg5NnhoNDYwbXAybXhweXB6ODY3cThqeDdoaGRtbHh4GgsKA3VvbRIEMTAwMBJmClAKRgofL2Nvc21vcy5jcnlwdG8uc2VjcDI1NmsxLlB1YktleRIjCiECTXC88XVR7qxyMBY2QqOa1L/34lqMuy2ShlZW6n20H5wSBAoCCAEYAhISCgwKA3VvbRIFMTAwMDAQwIQ9GkDOJh6xy8syhWuPpb5YrEFXurZVKJs2xy6Hz34cfThH7hmltguNx/de54ryfHwV88GuTHxuWRNVR1xXE7pj4SXe',
50
+ sender: 'mantra178596utuac8l9tkj25afvwz8l7d7684kkswjlj',
51
+ recipient: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
52
+ chainId: 'mantra-dukong-1',
53
+ accountNumber: 9,
54
+ sequence: 2,
55
+ sendAmount: '1000',
56
+ feeAmount: '10000',
57
+ sendMessage: {
58
+ typeUrl: '/cosmos.bank.v1beta1.MsgSend',
59
+ value: {
60
+ amount: [
61
+ {
62
+ denom: 'uom',
63
+ amount: '1000',
64
+ },
65
+ ],
66
+ toAddress: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
67
+ fromAddress: 'mantra178596utuac8l9tkj25afvwz8l7d7684kkswjlj',
68
+ },
69
+ },
70
+ gasBudget: {
71
+ amount: [{ denom: 'uom', amount: '10000' }],
72
+ gasLimit: 1000000,
73
+ },
74
+ };
75
+ exports.TEST_SEND_MANY_TX = {
76
+ hash: '03B141CC860C02DE95FB1CFD69512E9E3894FD10A3D9F21521493804694483DE',
77
+ signature: 'f/qHRQWW4/k1FliQaZ5JEsUvS4JvMCKb55RnVHucSHhdUB69EzuFyykUf/jrV05uzO04qeYqNTdSreJY0+angw==',
78
+ pubKey: 'Az+k0qZ7H0aIik2+5KOWIkWMx5BlIVCjSbrx6hyDp///',
79
+ privateKey: 'tEqy+qiR3NOJriVL2RrIon3PVDSzJ3SvrkfHr6yImKQ=',
80
+ signedTxBase64: 'Cp4CCowBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEmwKLW1hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eBItbWFudHJhMThmYXZwc2owczhoZnkyajAwZTg5cHFtcHA5bmRmbDAzYTZhN3ZqGgwKA3VvbRIFMTAwMDAKjAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSbAotbWFudHJhMTU4anB3MHg5NnhoNDYwbXAybXhweXB6ODY3cThqeDdoaGRtbHh4Ei1tYW50cmExbTQ5M3R4dWMyamgweno4NDJ3anNhbWh0NmhzeTd0NTA2dDQwcnEaDAoDdW9tEgUxMDAwMBJmClAKRgofL2Nvc21vcy5jcnlwdG8uc2VjcDI1NmsxLlB1YktleRIjCiEDP6TSpnsfRoiKTb7ko5YiRYzHkGUhUKNJuvHqHIOn//8SBAoCCAEYChISCgwKA3VvbRIFMTAwMDAQwIQ9GkB/+odFBZbj+TUWWJBpnkkSxS9Lgm8wIpvnlGdUe5xIeF1QHr0TO4XLKRR/+OtXTm7M7Tip5io1N1Kt4ljT5qeD',
81
+ sender: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
82
+ chainId: 'mantra-dukong-1',
83
+ accountNumber: 6,
84
+ sequence: 10,
85
+ memo: '',
86
+ sendMessages: [
87
+ {
88
+ typeUrl: '/cosmos.bank.v1beta1.MsgSend',
89
+ value: {
90
+ amount: [
91
+ {
92
+ denom: 'uom',
93
+ amount: '10000',
94
+ },
95
+ ],
96
+ toAddress: 'mantra18favpsj0s8hfy2j00e89pqmpp9ndfl03a6a7vj',
97
+ fromAddress: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
98
+ },
99
+ },
100
+ {
101
+ typeUrl: '/cosmos.bank.v1beta1.MsgSend',
102
+ value: {
103
+ amount: [
104
+ {
105
+ denom: 'uom',
106
+ amount: '10000',
107
+ },
108
+ ],
109
+ toAddress: 'mantra1m493txuc2jh0zz842wjsamht6hsy7t506t40rq',
110
+ fromAddress: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
111
+ },
112
+ },
113
+ ],
114
+ gasBudget: {
115
+ amount: [{ denom: 'uom', amount: '10000' }],
116
+ gasLimit: 1000000,
117
+ },
118
+ };
119
+ exports.TEST_TX_WITH_MEMO = {
120
+ hash: '5D0FB282B1F0162392690018E1C8D20565532832EEFF8C63B4924996CC3C2E54',
121
+ signature: 'qdQ3IadfZi9Y5ZXta+/p2Hd516RevlEhBTP3WoAiiyxi2uOTonLOrnX+6tKbEJyMybBYhWnKTMsr+tO87czMOw==',
122
+ pubKey: 'Az+k0qZ7H0aIik2+5KOWIkWMx5BlIVCjSbrx6hyDp///',
123
+ privateKey: 'tEqy+qiR3NOJriVL2RrIon3PVDSzJ3SvrkfHr6yImKQ=',
124
+ signedTxBase64: 'CpgBCogBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEmgKLW1hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eBItbWFudHJhMThmYXZwc2owczhoZnkyajAwZTg5cHFtcHA5bmRmbDAzYTZhN3ZqGggKA3VvbRIBMRILMTIzYWxwaGE3ODkSZgpQCkYKHy9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkSIwohAz+k0qZ7H0aIik2+5KOWIkWMx5BlIVCjSbrx6hyDp///EgQKAggBGAgSEgoMCgN1b20SBTEwMDAwEMCEPRpAqdQ3IadfZi9Y5ZXta+/p2Hd516RevlEhBTP3WoAiiyxi2uOTonLOrnX+6tKbEJyMybBYhWnKTMsr+tO87czMOw==',
125
+ from: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
126
+ to: 'mantra18favpsj0s8hfy2j00e89pqmpp9ndfl03a6a7vj',
127
+ chainId: 'mantra-dukong-1',
128
+ accountNumber: 6,
129
+ sequence: 8,
130
+ feeAmount: '10000',
131
+ sendAmount: '1',
132
+ sendMessage: {
133
+ typeUrl: '/cosmos.bank.v1beta1.MsgSend',
134
+ value: {
135
+ amount: [
136
+ {
137
+ denom: 'uom',
138
+ amount: '1',
139
+ },
140
+ ],
141
+ fromAddress: 'mantra158jpw0x96xh460mp2mxpypz867q8jx7hhdmlxx',
142
+ toAddress: 'mantra18favpsj0s8hfy2j00e89pqmpp9ndfl03a6a7vj',
143
+ },
144
+ },
145
+ memo: '123alpha789',
146
+ gasBudget: {
147
+ amount: [{ denom: 'uom', amount: '10000' }],
148
+ gasLimit: 1000000,
149
+ },
150
+ };
151
+ exports.address = {
152
+ address1: 'mantra178596utuac8l9tkj25afvwz8l7d7684kkswjlj',
153
+ address2: 'mantra1r6yj27sh3c982dh34qkw8yvrw2l5f0z9q6u8c0',
154
+ address3: 'mantra19syhqw5qeuas365cw9pvdadzax7durfm7hlfn8',
155
+ address4: 'mantra1ukzj0eme6srq8rtghy6zatk3gshw0ysr3pmjy9',
156
+ address5: 'mantra1ea4hlqfskjvn0ldenw8gv7jjdzrljcchm9vhhu',
157
+ address6: 'mantra1q8mgs55hfgkm7d5rret439997x87s2ekwcxlv0',
158
+ validatorAddress1: 'mantravaloper1q8mgs55hfgkm7d5rret439997x87s2ek2r83q2',
159
+ validatorAddress2: 'mantravaloper1ea4hlqfskjvn0ldenw8gv7jjdzrljcchl7deme',
160
+ validatorAddress3: 'mantravaloper18@#jywgf0qt4q40tnr9rmzyjmccawyknyswhz',
161
+ validatorAddress4: 'mantravaloper1sa#@$flmge66azvp064mcxusfk5exu3ymw772',
162
+ noMemoIdAddress: 'mantra1zq5k0rcah0g4pmfqez0f6u92h39fwp4rttw4yz',
163
+ validMemoIdAddress: 'mantra1zq5k0rcah0g4pmfqez0f6u92h39fwp4rttw4yz?memoId=2',
164
+ validMemoIdAddress2: 'mantra1zq5k0rcah0g4pmfqez0f6u92h39fwp4rttw4yz?memoId=xyz123',
165
+ invalidMemoIdAddress: 'mantra1zq5k0rcah0g4pmfqez0f6u92h39fwp4rttw4yz?memoId=-1',
166
+ invalidMemoIdAddress2: 'mantra1zq5k0rcah0g4pmfqez0f6u92h39fwp4rttw4yz?memoId=1.23',
167
+ multipleMemoIdAddress: 'mantra1zq5k0rcah0g4pmfqez0f6u92h39fwp4rttw4yz?memoId=3&memoId=12',
168
+ };
169
+ exports.blockHash = {
170
+ hash1: '9D6D343A178ED6BEF8F9E8AA8B9F8D1ADE25262BDAB3F129A9ABB709207D51DF',
171
+ hash2: '2833B5EAB34985A31DDE2B61827EC0A68D5D4F9441D83996CCCCEA986FEA5BD3',
172
+ };
173
+ exports.txIds = {
174
+ hash1: '350DBA4C1626EFE60AD528553942DE065BA57D4E39C6814730E0A58A948CBC46',
175
+ hash2: '4947385C287BD976840C6FCCE8C09AF92AEC7BF9CC68087C3DC4314938646EE4',
176
+ hash3: 'E70FF78E8FF92EE7D601545B175B6756F31F2121E219241706ED6A892BF9695D',
177
+ };
178
+ exports.coinAmounts = {
179
+ amount1: { amount: '100000', denom: 'uom' },
180
+ amount2: { amount: '1000000', denom: 'uom' },
181
+ amount3: { amount: '10000000', denom: 'uom' },
182
+ amount4: { amount: '-1', denom: 'uom' },
183
+ amount5: { amount: '1000000000', denom: 'mom' },
184
+ };
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFudHJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvbWFudHJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsWUFBWSxHQUFHO0lBQzFCLFVBQVUsRUFBRSwrQ0FBK0M7SUFDM0QsbUJBQW1CLEVBQUUsb0VBQW9FO0lBQ3pGLHNCQUFzQixFQUFFLG9FQUFvRTtJQUM1RixxQkFBcUIsRUFDbkIsb0lBQW9JO0lBQ3RJLFVBQVUsRUFBRSxrRUFBa0U7SUFDOUUsV0FBVyxFQUNULGlIQUFpSDtJQUNuSCxXQUFXLEVBQ1QsaUhBQWlIO0NBQ3BILENBQUM7QUFFVyxRQUFBLFlBQVksR0FBRztJQUMxQixJQUFJLEVBQUUsa0VBQWtFO0lBQ3hFLFNBQVMsRUFBRSwwRkFBMEY7SUFDckcsTUFBTSxFQUFFLDhDQUE4QztJQUN0RCxVQUFVLEVBQUUsOENBQThDO0lBQzFELGNBQWMsRUFDWixzYUFBc2E7SUFDeGEsTUFBTSxFQUFFLCtDQUErQztJQUN2RCxTQUFTLEVBQUUsK0NBQStDO0lBQzFELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLENBQUM7SUFDWCxVQUFVLEVBQUUsTUFBTTtJQUNsQixTQUFTLEVBQUUsT0FBTztJQUNsQixXQUFXLEVBQUU7UUFDWCxPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxLQUFLLEVBQUUsS0FBSztvQkFDWixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGO1lBQ0QsU0FBUyxFQUFFLCtDQUErQztZQUMxRCxXQUFXLEVBQUUsK0NBQStDO1NBQzdEO0tBQ0Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNDLFFBQVEsRUFBRSxPQUFPO0tB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QUFFO0lBQzVDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUM3QyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDdkMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0NBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVEVTVF9BQ0NPVU5UID0ge1xuICBwdWJBZGRyZXNzOiAnbWFudHJhMTc4NTk2dXR1YWM4bDl0a2oyNWFmdnd6OGw3ZDc2ODRra3N3amxqJyxcbiAgY29tcHJlc3NlZFB1YmxpY0tleTogJzAyYmNkYmQwNTRhNzNhYTYwOTdjMTkyNmM4N2ViN2Q2NjE0MmQyZWE3MTA1ODRjNGIzZTk4NDRlMWRhYjE1MzhmMCcsXG4gIGNvbXByZXNzZWRQdWJsaWNLZXlUd286ICcwMjAwMWZkYTQ1Njg3NjBhOTllNThlZTI5NWI0YTUxZWRjYzZhNjg5Mjk3YTcxZjdkMTU3MWNmNGUxMjUzYWJjZGUnLFxuICB1bmNvbXByZXNzZWRQdWJsaWNLZXk6XG4gICAgJzA0YmNkYmQwNTRhNzNhYTYwOTdjMTkyNmM4N2ViN2Q2NjE0MmQyZWE3MTA1ODRjNGIzZTk4NDRlMWRhYjE1MzhmMGEwODgyOTFlODNjYjM0Mzg0MzFkZWI1ZTI1MTQzOWUzMzhkOGVkYzQzODllYTIwMDRmNDQyYTczY2M5N2FmYzgnLFxuICBwcml2YXRlS2V5OiAnM2YwMjA2MzllOThlNWM0OTUzYWJiMjNkMDFhN2M4OTJlODNiNTc1OTNhN2Y0NmYzNzI5OGI1OGNiZjFjYWNkNScsXG4gIGV4dGVuZGVkUHJ2OlxuICAgICd4cHJ2OXMyMVpyUUgxNDNLM242a0RVUndrZmtCeEI1OEZ4b3o3Y0ZDYnBRZUZ3czRLNWlYYVNVY3BxMThjQ3FKUTc0TW5xTnJuTEJIZkU3WXZVZ0twbmNrbXBzQkxFeEdTUks1NVVkNXV1eEdyeEwnLFxuICBleHRlbmRlZFB1YjpcbiAgICAneHB1YjY2MU15TXdBcVJiY0dHQkRLVnh4N29ndldDdWNmUlhxVXFBb1FDcEZwSFEzQnQzZzd5bnNOZEtjVFd2R0dZcnBxNlZZUFBneGpNZkthc3pYTWhLbW1DWkVuaGc5UnBxY0dlUDl1Q25ac0Q5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBURVNUX1NFTkRfVFggPSB7XG4gIGhhc2g6ICc4NjAzOTA5QUZCRUE5RDE0RDIxNjI4NDJBMjk4Qzc1NkVCMzk3QjI1QjJCQkEyNDQ4REJGNEE4QzA4M0IzQUM0JyxcbiAgc2lnbmF0dXJlOiAnemMwSlBOaGFDYXAvNU1Zeld1ZE96TG5pVVdkeE9JWW04cEZNUTFFZTR2TjFBR3czY0RiN05Manlpc1ZQYWh3cjlTRGRETmtheUlaeXBkWGZLbnhORnc9PScsXG4gIHB1YktleTogJ0F6K2swcVo3SDBhSWlrMis1S09XSWtXTXg1QmxJVkNqU2JyeDZoeURwLy8vJyxcbiAgcHJpdmF0ZUtleTogJ3RFcXkrcWlSM05PSnJpVkwyUnJJb24zUFZEU3pKM1N2cmtmSHI2eUltS1E9JyxcbiAgc2lnbmVkVHhCYXNlNjQ6XG4gICAgJ0NvNEJDb3NCQ2h3dlkyOXpiVzl6TG1KaGJtc3VkakZpWlhSaE1TNU5jMmRUWlc1a0Vtc0tMVzFoYm5SeVlURTFPR3B3ZHpCNE9UWjRhRFEyTUcxd01tMTRjSGx3ZWpnMk4zRTRhbmczYUdoa2JXeDRlQkl0YldGdWRISmhNVGhtWVhad2Myb3djemhvWm5reWFqQXdaVGc1Y0hGdGNIQTVibVJtYkRBellUWmhOM1pxR2dzS0EzVnZiUklFTVRBd01CSmtDazRLUmdvZkwyTnZjMjF2Y3k1amNubHdkRzh1YzJWamNESTFObXN4TGxCMVlrdGxlUklqQ2lFRFA2VFNwbnNmUm9pS1RiN2tvNVlpUll6SGtHVWhVS05KdXZIcUhJT24vLzhTQkFvQ0NBRVNFZ29NQ2dOMWIyMFNCVEV3TURBd0VNQ0VQUnBBemMwSlBOaGFDYXAvNU1Zeld1ZE96TG5pVVdkeE9JWW04cEZNUTFFZTR2TjFBR3czY0RiN05Manlpc1ZQYWh3cjlTRGRETmtheUlaeXBkWGZLbnhORnc9PScsXG4gIHNlbmRlcjogJ21hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eCcsXG4gIHJlY2lwaWVudDogJ21hbnRyYTE4ZmF2cHNqMHM4aGZ5MmowMGU4OXBxbXBwOW5kZmwwM2E2YTd2aicsXG4gIGNoYWluSWQ6ICdtYW50cmEtZHVrb25nLTEnLFxuICBhY2NvdW50TnVtYmVyOiA2LFxuICBzZXF1ZW5jZTogMCxcbiAgc2VuZEFtb3VudDogJzEwMDAnLFxuICBmZWVBbW91bnQ6ICcxMDAwMCcsXG4gIHNlbmRNZXNzYWdlOiB7XG4gICAgdHlwZVVybDogJy9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQnLFxuICAgIHZhbHVlOiB7XG4gICAgICBhbW91bnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRlbm9tOiAndW9tJyxcbiAgICAgICAgICBhbW91bnQ6ICcxMDAwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0b0FkZHJlc3M6ICdtYW50cmExOGZhdnBzajBzOGhmeTJqMDBlODlwcW1wcDluZGZsMDNhNmE3dmonLFxuICAgICAgZnJvbUFkZHJlc3M6ICdtYW50cmExNThqcHcweDk2eGg0NjBtcDJteHB5cHo4NjdxOGp4N2hoZG1seHgnLFxuICAgIH0sXG4gIH0sXG4gIGdhc0J1ZGdldDoge1xuICAgIGFtb3VudDogW3sgZGVub206ICd1b20nLCBhbW91bnQ6ICcxMDAwMCcgfV0sXG4gICAgZ2FzTGltaXQ6IDEwMDAwMDAsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgVEVTVF9TRU5EX1RYMiA9IHtcbiAgaGFzaDogJzAxQUFENjNCQjFCQTA3MDI5REJENzA5MDBGMzNBQzg2RkMzRjU3RUUyQzE1QTRENjczMjg2RjNBNDhEMzZDRkYnLFxuICBzaWduYXR1cmU6ICd6aVllc2N2TE1vVnJqNlcrV0t4QlY3cTJWU2liTnNjdWg4OStISDA0Uis0WnBiWUxqY2YzWHVlSzhueDhGZlBCcmt4OGJsa1RWVWRjVnhPNlkrRWwzZz09JyxcbiAgcHViS2V5OiAnQWsxd3ZQRjFVZTZzY2pBV05rS2ptdFMvOStKYWpMc3Rrb1pXVnVwOXRCK2MnLFxuICBwcml2YXRlS2V5OiAnUUF6ZUFrUFNUS3lSVDgvVHZKY1JDN1ZTelFIVjlRaEg5WVRtR1pibnZtaz0nLFxuICBzaWduZWRUeEJhc2U2NDpcbiAgICAnQ280QkNvc0JDaHd2WTI5emJXOXpMbUpoYm1zdWRqRmlaWFJoTVM1TmMyZFRaVzVrRW1zS0xXMWhiblJ5WVRFM09EVTVOblYwZFdGak9HdzVkR3RxTWpWaFpuWjNlamhzTjJRM05qZzBhMnR6ZDJwc2FoSXRiV0Z1ZEhKaE1UVTRhbkIzTUhnNU5uaG9ORFl3YlhBeWJYaHdlWEI2T0RZM2NUaHFlRGRvYUdSdGJIaDRHZ3NLQTNWdmJSSUVNVEF3TUJKbUNsQUtSZ29mTDJOdmMyMXZjeTVqY25sd2RHOHVjMlZqY0RJMU5tc3hMbEIxWWt0bGVSSWpDaUVDVFhDODhYVlI3cXh5TUJZMlFxT2ExTC8zNGxxTXV5MlNobFpXNm4yMEg1d1NCQW9DQ0FFWUFoSVNDZ3dLQTNWdmJSSUZNVEF3TURBUXdJUTlHa0RPSmg2eHk4c3loV3VQcGI1WXJFRlh1clpWS0pzMnh5Nkh6MzRjZlRoSDdobWx0Z3VOeC9kZTU0cnlmSHdWODhHdVRIeHVXUk5WUjF4WEU3cGo0U1hlJyxcbiAgc2VuZGVyOiAnbWFudHJhMTc4NTk2dXR1YWM4bDl0a2oyNWFmdnd6OGw3ZDc2ODRra3N3amxqJyxcbiAgcmVjaXBpZW50OiAnbWFudHJhMTU4anB3MHg5NnhoNDYwbXAybXhweXB6ODY3cThqeDdoaGRtbHh4JyxcbiAgY2hhaW5JZDogJ21hbnRyYS1kdWtvbmctMScsXG4gIGFjY291bnROdW1iZXI6IDksXG4gIHNlcXVlbmNlOiAyLFxuICBzZW5kQW1vdW50OiAnMTAwMCcsXG4gIGZlZUFtb3VudDogJzEwMDAwJyxcbiAgc2VuZE1lc3NhZ2U6IHtcbiAgICB0eXBlVXJsOiAnL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZCcsXG4gICAgdmFsdWU6IHtcbiAgICAgIGFtb3VudDogW1xuICAgICAgICB7XG4gICAgICAgICAgZGVub206ICd1b20nLFxuICAgICAgICAgIGFtb3VudDogJzEwMDAnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRvQWRkcmVzczogJ21hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eCcsXG4gICAgICBmcm9tQWRkcmVzczogJ21hbnRyYTE3ODU5NnV0dWFjOGw5dGtqMjVhZnZ3ejhsN2Q3Njg0a2tzd2psaicsXG4gICAgfSxcbiAgfSxcbiAgZ2FzQnVkZ2V0OiB7XG4gICAgYW1vdW50OiBbeyBkZW5vbTogJ3VvbScsIGFtb3VudDogJzEwMDAwJyB9XSxcbiAgICBnYXNMaW1pdDogMTAwMDAwMCxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBURVNUX1NFTkRfTUFOWV9UWCA9IHtcbiAgaGFzaDogJzAzQjE0MUNDODYwQzAyREU5NUZCMUNGRDY5NTEyRTlFMzg5NEZEMTBBM0Q5RjIxNTIxNDkzODA0Njk0NDgzREUnLFxuICBzaWduYXR1cmU6ICdmL3FIUlFXVzQvazFGbGlRYVo1SkVzVXZTNEp2TUNLYjU1Um5WSHVjU0hoZFVCNjlFenVGeXlrVWYvanJWMDV1ek8wNHFlWXFOVGRTcmVKWTArYW5ndz09JyxcbiAgcHViS2V5OiAnQXorazBxWjdIMGFJaWsyKzVLT1dJa1dNeDVCbElWQ2pTYnJ4Nmh5RHAvLy8nLFxuICBwcml2YXRlS2V5OiAndEVxeStxaVIzTk9KcmlWTDJScklvbjNQVkRTekozU3Zya2ZIcjZ5SW1LUT0nLFxuICBzaWduZWRUeEJhc2U2NDpcbiAgICAnQ3A0Q0Nvd0JDaHd2WTI5emJXOXpMbUpoYm1zdWRqRmlaWFJoTVM1TmMyZFRaVzVrRW13S0xXMWhiblJ5WVRFMU9HcHdkekI0T1RaNGFEUTJNRzF3TW0xNGNIbHdlamcyTjNFNGFuZzNhR2hrYld4NGVCSXRiV0Z1ZEhKaE1UaG1ZWFp3YzJvd2N6aG9abmt5YWpBd1pUZzVjSEZ0Y0hBNWJtUm1iREF6WVRaaE4zWnFHZ3dLQTNWdmJSSUZNVEF3TURBS2pBRUtIQzlqYjNOdGIzTXVZbUZ1YXk1Mk1XSmxkR0V4TGsxeloxTmxibVFTYkFvdGJXRnVkSEpoTVRVNGFuQjNNSGc1Tm5ob05EWXdiWEF5Ylhod2VYQjZPRFkzY1RocWVEZG9hR1J0YkhoNEVpMXRZVzUwY21FeGJUUTVNM1I0ZFdNeWFtZ3dlbm80TkRKM2FuTmhiV2gwTm1oemVUZDBOVEEyZERRd2NuRWFEQW9EZFc5dEVnVXhNREF3TUJKbUNsQUtSZ29mTDJOdmMyMXZjeTVqY25sd2RHOHVjMlZqY0RJMU5tc3hMbEIxWWt0bGVSSWpDaUVEUDZUU3Buc2ZSb2lLVGI3a281WWlSWXpIa0dVaFVLTkp1dkhxSElPbi8vOFNCQW9DQ0FFWUNoSVNDZ3dLQTNWdmJSSUZNVEF3TURBUXdJUTlHa0IvK29kRkJaYmorVFVXV0pCcG5ra1N4UzlMZ204d0lwdm5sR2RVZTV4SWVGMVFIcjBUTzRYTEtSUi8rT3RYVG03TTdUaXA1aW8xTjFLdDRsalQ1cWVEJyxcbiAgc2VuZGVyOiAnbWFudHJhMTU4anB3MHg5NnhoNDYwbXAybXhweXB6ODY3cThqeDdoaGRtbHh4JyxcbiAgY2hhaW5JZDogJ21hbnRyYS1kdWtvbmctMScsXG4gIGFjY291bnROdW1iZXI6IDYsXG4gIHNlcXVlbmNlOiAxMCxcbiAgbWVtbzogJycsXG4gIHNlbmRNZXNzYWdlczogW1xuICAgIHtcbiAgICAgIHR5cGVVcmw6ICcvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kJyxcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIGFtb3VudDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlbm9tOiAndW9tJyxcbiAgICAgICAgICAgIGFtb3VudDogJzEwMDAwJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0b0FkZHJlc3M6ICdtYW50cmExOGZhdnBzajBzOGhmeTJqMDBlODlwcW1wcDluZGZsMDNhNmE3dmonLFxuICAgICAgICBmcm9tQWRkcmVzczogJ21hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZVVybDogJy9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQnLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgYW1vdW50OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVub206ICd1b20nLFxuICAgICAgICAgICAgYW1vdW50OiAnMTAwMDAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRvQWRkcmVzczogJ21hbnRyYTFtNDkzdHh1YzJqaDB6ejg0Mndqc2FtaHQ2aHN5N3Q1MDZ0NDBycScsXG4gICAgICAgIGZyb21BZGRyZXNzOiAnbWFudHJhMTU4anB3MHg5NnhoNDYwbXAybXhweXB6ODY3cThqeDdoaGRtbHh4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgZ2FzQnVkZ2V0OiB7XG4gICAgYW1vdW50OiBbeyBkZW5vbTogJ3VvbScsIGFtb3VudDogJzEwMDAwJyB9XSxcbiAgICBnYXNMaW1pdDogMTAwMDAwMCxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBURVNUX1RYX1dJVEhfTUVNTyA9IHtcbiAgaGFzaDogJzVEMEZCMjgyQjFGMDE2MjM5MjY5MDAxOEUxQzhEMjA1NjU1MzI4MzJFRUZGOEM2M0I0OTI0OTk2Q0MzQzJFNTQnLFxuICBzaWduYXR1cmU6ICdxZFEzSWFkZlppOVk1Wlh0YSsvcDJIZDUxNlJldmxFaEJUUDNXb0FpaXl4aTJ1T1RvbkxPcm5YKzZ0S2JFSnlNeWJCWWhXbktUTXNyK3RPODdjek1Pdz09JyxcbiAgcHViS2V5OiAnQXorazBxWjdIMGFJaWsyKzVLT1dJa1dNeDVCbElWQ2pTYnJ4Nmh5RHAvLy8nLFxuICBwcml2YXRlS2V5OiAndEVxeStxaVIzTk9KcmlWTDJScklvbjNQVkRTekozU3Zya2ZIcjZ5SW1LUT0nLFxuICBzaWduZWRUeEJhc2U2NDpcbiAgICAnQ3BnQkNvZ0JDaHd2WTI5emJXOXpMbUpoYm1zdWRqRmlaWFJoTVM1TmMyZFRaVzVrRW1nS0xXMWhiblJ5WVRFMU9HcHdkekI0T1RaNGFEUTJNRzF3TW0xNGNIbHdlamcyTjNFNGFuZzNhR2hrYld4NGVCSXRiV0Z1ZEhKaE1UaG1ZWFp3YzJvd2N6aG9abmt5YWpBd1pUZzVjSEZ0Y0hBNWJtUm1iREF6WVRaaE4zWnFHZ2dLQTNWdmJSSUJNUklMTVRJellXeHdhR0UzT0RrU1pncFFDa1lLSHk5amIzTnRiM011WTNKNWNIUnZMbk5sWTNBeU5UWnJNUzVRZFdKTFpYa1NJd29oQXorazBxWjdIMGFJaWsyKzVLT1dJa1dNeDVCbElWQ2pTYnJ4Nmh5RHAvLy9FZ1FLQWdnQkdBZ1NFZ29NQ2dOMWIyMFNCVEV3TURBd0VNQ0VQUnBBcWRRM0lhZGZaaTlZNVpYdGErL3AySGQ1MTZSZXZsRWhCVFAzV29BaWl5eGkydU9Ub25MT3JuWCs2dEtiRUp5TXliQlloV25LVE1zcit0Tzg3Y3pNT3c9PScsXG4gIGZyb206ICdtYW50cmExNThqcHcweDk2eGg0NjBtcDJteHB5cHo4NjdxOGp4N2hoZG1seHgnLFxuICB0bzogJ21hbnRyYTE4ZmF2cHNqMHM4aGZ5MmowMGU4OXBxbXBwOW5kZmwwM2E2YTd2aicsXG4gIGNoYWluSWQ6ICdtYW50cmEtZHVrb25nLTEnLFxuICBhY2NvdW50TnVtYmVyOiA2LFxuICBzZXF1ZW5jZTogOCxcbiAgZmVlQW1vdW50OiAnMTAwMDAnLFxuICBzZW5kQW1vdW50OiAnMScsXG4gIHNlbmRNZXNzYWdlOiB7XG4gICAgdHlwZVVybDogJy9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQnLFxuICAgIHZhbHVlOiB7XG4gICAgICBhbW91bnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRlbm9tOiAndW9tJyxcbiAgICAgICAgICBhbW91bnQ6ICcxJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmcm9tQWRkcmVzczogJ21hbnRyYTE1OGpwdzB4OTZ4aDQ2MG1wMm14cHlwejg2N3E4ang3aGhkbWx4eCcsXG4gICAgICB0b0FkZHJlc3M6ICdtYW50cmExOGZhdnBzajBzOGhmeTJqMDBlODlwcW1wcDluZGZsMDNhNmE3dmonLFxuICAgIH0sXG4gIH0sXG4gIG1lbW86ICcxMjNhbHBoYTc4OScsXG4gIGdhc0J1ZGdldDoge1xuICAgIGFtb3VudDogW3sgZGVub206ICd1b20nLCBhbW91bnQ6ICcxMDAwMCcgfV0sXG4gICAgZ2FzTGltaXQ6IDEwMDAwMDAsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgYWRkcmVzcyA9IHtcbiAgYWRkcmVzczE6ICdtYW50cmExNzg1OTZ1dHVhYzhsOXRrajI1YWZ2d3o4bDdkNzY4NGtrc3dqbGonLFxuICBhZGRyZXNzMjogJ21hbnRyYTFyNnlqMjdzaDNjOTgyZGgzNHFrdzh5dnJ3Mmw1ZjB6OXE2dThjMCcsXG4gIGFkZHJlc3MzOiAnbWFudHJhMTlzeWhxdzVxZXVhczM2NWN3OXB2ZGFkemF4N2R1cmZtN2hsZm44JyxcbiAgYWRkcmVzczQ6ICdtYW50cmExdWt6ajBlbWU2c3JxOHJ0Z2h5NnphdGszZ3NodzB5c3IzcG1qeTknLFxuICBhZGRyZXNzNTogJ21hbnRyYTFlYTRobHFmc2tqdm4wbGRlbnc4Z3Y3ampkenJsamNjaG05dmhodScsXG4gIGFkZHJlc3M2OiAnbWFudHJhMXE4bWdzNTVoZmdrbTdkNXJyZXQ0Mzk5OTd4ODdzMmVrd2N4bHYwJyxcbiAgdmFsaWRhdG9yQWRkcmVzczE6ICdtYW50cmF2YWxvcGVyMXE4bWdzNTVoZmdrbTdkNXJyZXQ0Mzk5OTd4ODdzMmVrMnI4M3EyJyxcbiAgdmFsaWRhdG9yQWRkcmVzczI6ICdtYW50cmF2YWxvcGVyMWVhNGhscWZza2p2bjBsZGVudzhndjdqamR6cmxqY2NobDdkZW1lJyxcbiAgdmFsaWRhdG9yQWRkcmVzczM6ICdtYW50cmF2YWxvcGVyMThAI2p5d2dmMHF0NHE0MHRucjlybXp5am1jY2F3eWtueXN3aHonLFxuICB2YWxpZGF0b3JBZGRyZXNzNDogJ21hbnRyYXZhbG9wZXIxc2EjQCRmbG1nZTY2YXp2cDA2NG1jeHVzZms1ZXh1M3ltdzc3MicsXG4gIG5vTWVtb0lkQWRkcmVzczogJ21hbnRyYTF6cTVrMHJjYWgwZzRwbWZxZXowZjZ1OTJoMzlmd3A0cnR0dzR5eicsXG4gIHZhbGlkTWVtb0lkQWRkcmVzczogJ21hbnRyYTF6cTVrMHJjYWgwZzRwbWZxZXowZjZ1OTJoMzlmd3A0cnR0dzR5ej9tZW1vSWQ9MicsXG4gIHZhbGlkTWVtb0lkQWRkcmVzczI6ICdtYW50cmExenE1azByY2FoMGc0cG1mcWV6MGY2dTkyaDM5ZndwNHJ0dHc0eXo/bWVtb0lkPXh5ejEyMycsXG4gIGludmFsaWRNZW1vSWRBZGRyZXNzOiAnbWFudHJhMXpxNWswcmNhaDBnNHBtZnFlejBmNnU5MmgzOWZ3cDRydHR3NHl6P21lbW9JZD0tMScsXG4gIGludmFsaWRNZW1vSWRBZGRyZXNzMjogJ21hbnRyYTF6cTVrMHJjYWgwZzRwbWZxZXowZjZ1OTJoMzlmd3A0cnR0dzR5ej9tZW1vSWQ9MS4yMycsXG4gIG11bHRpcGxlTWVtb0lkQWRkcmVzczogJ21hbnRyYTF6cTVrMHJjYWgwZzRwbWZxZXowZjZ1OTJoMzlmd3A0cnR0dzR5ej9tZW1vSWQ9MyZtZW1vSWQ9MTInLFxufTtcblxuZXhwb3J0IGNvbnN0IGJsb2NrSGFzaCA9IHtcbiAgaGFzaDE6ICc5RDZEMzQzQTE3OEVENkJFRjhGOUU4QUE4QjlGOEQxQURFMjUyNjJCREFCM0YxMjlBOUFCQjcwOTIwN0Q1MURGJyxcbiAgaGFzaDI6ICcyODMzQjVFQUIzNDk4NUEzMURERTJCNjE4MjdFQzBBNjhENUQ0Rjk0NDFEODM5OTZDQ0NDRUE5ODZGRUE1QkQzJyxcbn07XG5cbmV4cG9ydCBjb25zdCB0eElkcyA9IHtcbiAgaGFzaDE6ICczNTBEQkE0QzE2MjZFRkU2MEFENTI4NTUzOTQyREUwNjVCQTU3RDRFMzlDNjgxNDczMEUwQTU4QTk0OENCQzQ2JyxcbiAgaGFzaDI6ICc0OTQ3Mzg1QzI4N0JEOTc2ODQwQzZGQ0NFOEMwOUFGOTJBRUM3QkY5Q0M2ODA4N0MzREM0MzE0OTM4NjQ2RUU0JyxcbiAgaGFzaDM6ICdFNzBGRjc4RThGRjkyRUU3RDYwMTU0NUIxNzVCNjc1NkYzMUYyMTIxRTIxOTI0MTcwNkVENkE4OTJCRjk2OTVEJyxcbn07XG5cbmV4cG9ydCBjb25zdCBjb2luQW1vdW50cyA9IHtcbiAgYW1vdW50MTogeyBhbW91bnQ6ICcxMDAwMDAnLCBkZW5vbTogJ3VvbScgfSxcbiAgYW1vdW50MjogeyBhbW91bnQ6ICcxMDAwMDAwJywgZGVub206ICd1b20nIH0sXG4gIGFtb3VudDM6IHsgYW1vdW50OiAnMTAwMDAwMDAnLCBkZW5vbTogJ3VvbScgfSxcbiAgYW1vdW50NDogeyBhbW91bnQ6ICctMScsIGRlbm9tOiAndW9tJyB9LFxuICBhbW91bnQ1OiB7IGFtb3VudDogJzEwMDAwMDAwMDAnLCBkZW5vbTogJ21vbScgfSxcbn07XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { TransactionBuilderFactory } from '../../src';
2
+ export declare const getBuilderFactory: (coin: string) => TransactionBuilderFactory;
3
+ //# sourceMappingURL=getBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBuilderFactory.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAGtD,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,yBAEhD,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBuilderFactory = void 0;
4
+ const src_1 = require("../../src");
5
+ const statics_1 = require("@bitgo-beta/statics");
6
+ const getBuilderFactory = (coin) => {
7
+ return new src_1.TransactionBuilderFactory(statics_1.coins.get(coin));
8
+ };
9
+ exports.getBuilderFactory = getBuilderFactory;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvZ2V0QnVpbGRlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNEO0FBQ3RELGlEQUE0QztBQUVyQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBWSxFQUE2QixFQUFFO0lBQzNFLE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxpQkFBaUIscUJBRTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRlckZhY3RvcnkgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSA9PiB7XG4gIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoY29pbikpO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
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
+ const encoding_1 = require("@cosmjs/encoding");
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const should_1 = __importDefault(require("should"));
9
+ const src_1 = require("../../src");
10
+ const mantra_1 = require("../resources/mantra");
11
+ describe('Mantra Key Pair', () => {
12
+ describe('should create a valid KeyPair', () => {
13
+ it('from an empty value', () => {
14
+ const keyPairObj = new src_1.KeyPair();
15
+ const keys = keyPairObj.getKeys();
16
+ should_1.default.exists(keys.prv);
17
+ should_1.default.exists(keys.pub);
18
+ should_1.default.equal(keys.prv.length, 64);
19
+ should_1.default.equal(keys.pub.length, 66);
20
+ const extendedKeys = keyPairObj.getExtendedKeys();
21
+ should_1.default.exists(extendedKeys.xprv);
22
+ should_1.default.exists(extendedKeys.xpub);
23
+ });
24
+ it('from a private key', () => {
25
+ const privateKey = mantra_1.TEST_SEND_TX.privateKey;
26
+ const keyPairObj = new src_1.KeyPair({ prv: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(privateKey)) });
27
+ const keys = keyPairObj.getKeys();
28
+ should_1.default.exists(keys.prv);
29
+ should_1.default.exists(keys.pub);
30
+ should_1.default.equal(keys.prv, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(mantra_1.TEST_SEND_TX.privateKey)));
31
+ should_1.default.equal(keys.pub, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(mantra_1.TEST_SEND_TX.pubKey)));
32
+ should_1.default.equal(keyPairObj.getAddress(), mantra_1.TEST_SEND_TX.sender);
33
+ assert_1.default.throws(() => keyPairObj.getExtendedKeys());
34
+ });
35
+ it('from a compressed public key', () => {
36
+ const publicKey = mantra_1.TEST_ACCOUNT.compressedPublicKey;
37
+ const keyPairObj = new src_1.KeyPair({ pub: publicKey });
38
+ const keys = keyPairObj.getKeys();
39
+ should_1.default.not.exist(keys.prv);
40
+ should_1.default.exists(keys.pub);
41
+ should_1.default.equal(keys.pub, mantra_1.TEST_ACCOUNT.compressedPublicKey);
42
+ assert_1.default.throws(() => keyPairObj.getExtendedKeys());
43
+ });
44
+ it('from an uncompressed public key', () => {
45
+ // Input is uncompressed, but we output the compressed key to keep
46
+ // parity with Cosmos network expectations.
47
+ const publicKey = mantra_1.TEST_ACCOUNT.uncompressedPublicKey;
48
+ const keyPairObj = new src_1.KeyPair({ pub: publicKey });
49
+ const keys = keyPairObj.getKeys();
50
+ should_1.default.not.exist(keys.prv);
51
+ should_1.default.exists(keys.pub);
52
+ should_1.default.notEqual(keys.pub, publicKey);
53
+ should_1.default.equal(keys.pub, mantra_1.TEST_ACCOUNT.compressedPublicKey);
54
+ assert_1.default.throws(() => keyPairObj.getExtendedKeys());
55
+ });
56
+ });
57
+ describe('should fail to create a KeyPair', () => {
58
+ it('from an invalid privateKey', () => {
59
+ assert_1.default.throws(() => new src_1.KeyPair({ prv: '' }), (e) => e.message === 'Unsupported private key');
60
+ });
61
+ it('from an invalid publicKey', () => {
62
+ assert_1.default.throws(() => new src_1.KeyPair({ pub: '' }), (e) => e.message.startsWith('Unsupported public key'));
63
+ });
64
+ it('from an undefined seed', () => {
65
+ const undefinedBuffer = undefined;
66
+ assert_1.default.throws(() => new src_1.KeyPair({ seed: undefinedBuffer }), (e) => e.message.startsWith('Invalid key pair options'));
67
+ });
68
+ it('from an undefined private key', () => {
69
+ const undefinedStr = undefined;
70
+ assert_1.default.throws(() => new src_1.KeyPair({ prv: undefinedStr }), (e) => e.message.startsWith('Invalid key pair options'));
71
+ });
72
+ it('from an undefined public key', () => {
73
+ const undefinedStr = undefined;
74
+ assert_1.default.throws(() => new src_1.KeyPair({ pub: undefinedStr }), (e) => e.message.startsWith('Invalid key pair options'));
75
+ });
76
+ });
77
+ describe('get unique address ', () => {
78
+ it('from a private key', () => {
79
+ const keyPair = new src_1.KeyPair({ prv: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(mantra_1.TEST_SEND_TX.privateKey)) });
80
+ should_1.default.equal(keyPair.getAddress(), mantra_1.TEST_SEND_TX.sender);
81
+ });
82
+ it('from a compressed public key', () => {
83
+ const keyPair = new src_1.KeyPair({ pub: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(mantra_1.TEST_SEND_TX.pubKey)) });
84
+ should_1.default.equal(keyPair.getAddress(), mantra_1.TEST_SEND_TX.sender);
85
+ });
86
+ it('should be different for different public keys', () => {
87
+ const keyPairOne = new src_1.KeyPair({ pub: mantra_1.TEST_ACCOUNT.compressedPublicKey });
88
+ const keyPairTwo = new src_1.KeyPair({ pub: mantra_1.TEST_ACCOUNT.compressedPublicKeyTwo });
89
+ should_1.default.notEqual(keyPairOne.getAddress(), keyPairTwo.getAddress());
90
+ });
91
+ });
92
+ });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0NBQXFEO0FBQ3JELG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsbUNBQW9DO0FBQ3BDLGdEQUFpRTtBQUVqRSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDN0MsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtZQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNsRCxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtZQUM1QixNQUFNLFVBQVUsR0FBRyxxQkFBWSxDQUFDLFVBQVUsQ0FBQztZQUMzQyxNQUFNLFVBQVUs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LFVBQVUsR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxxQkFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztZQUMxRSxNQUFNLFVBQVUsR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxxQkFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztZQUM3RSxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUJhc2U2NCwgdG9IZXggfSBmcm9tICdAY29zbWpzL2VuY29kaW5nJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBURVNUX0FDQ09VTlQsIFRFU1RfU0VORF9UWCB9IGZyb20gJy4uL3Jlc291cmNlcy9tYW50cmEnO1xuXG5kZXNjcmliZSgnTWFudHJhIEtleSBQYWlyJywgKCkgPT4ge1xuICBkZXNjcmliZSgnc2hvdWxkIGNyZWF0ZSBhIHZhbGlkIEtleVBhaXInLCAoKSA9PiB7XG4gICAgaXQoJ2Zyb20gYW4gZW1wdHkgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyT2JqID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyT2JqLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5cy5wcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnB1Yik7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5cy5wcnYhLmxlbmd0aCwgNjQpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleXMucHViLmxlbmd0aCwgNjYpO1xuXG4gICAgICBjb25zdCBleHRlbmRlZEtleXMgPSBrZXlQYWlyT2JqLmdldEV4dGVuZGVkS2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhleHRlbmRlZEtleXMueHBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGV4dGVuZGVkS2V5cy54cHViKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGEgcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcml2YXRlS2V5ID0gVEVTVF9TRU5EX1RYLnByaXZhdGVLZXk7XG4gICAgICBjb25zdCBrZXlQYWlyT2JqID0gbmV3IEtleVBhaXIoeyBwcnY6IHRvSGV4KGZyb21CYXNlNjQocHJpdmF0ZUtleSkpIH0pO1xuICAgICAgY29uc3Qga2V5cyA9IGtleVBhaXJPYmouZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleXMucHViKTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnBydiwgdG9IZXgoZnJvbUJhc2U2NChURVNUX1NFTkRfVFgucHJpdmF0ZUtleSkpKTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnB1YiwgdG9IZXgoZnJvbUJhc2U2NChURVNUX1NFTkRfVFgucHViS2V5KSkpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXJPYmouZ2V0QWRkcmVzcygpLCBURVNUX1NFTkRfVFguc2VuZGVyKTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBrZXlQYWlyT2JqLmdldEV4dGVuZGVkS2V5cygpKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGEgY29tcHJlc3NlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljS2V5ID0gVEVTVF9BQ0NPVU5ULmNvbXByZXNzZWRQdWJsaWNLZXk7XG4gICAgICBjb25zdCBrZXlQYWlyT2JqID0gbmV3IEtleVBhaXIoeyBwdWI6IHB1YmxpY0tleSB9KTtcbiAgICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyT2JqLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3Qoa2V5cy5wcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnB1Yik7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5cy5wdWIsIFRFU1RfQUNDT1VOVC5jb21wcmVzc2VkUHVibGljS2V5KTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBrZXlQYWlyT2JqLmdldEV4dGVuZGVkS2V5cygpKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGFuIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgLy8gSW5wdXQgaXMgdW5jb21wcmVzc2VkLCBidXQgd2Ugb3V0cHV0IHRoZSBjb21wcmVzc2VkIGtleSB0byBrZWVwXG4gICAgICAvLyBwYXJpdHkgd2l0aCBDb3Ntb3MgbmV0d29yayBleHBlY3RhdGlvbnMuXG4gICAgICBjb25zdCBwdWJsaWNLZXkgPSBURVNUX0FDQ09VTlQudW5jb21wcmVzc2VkUHVibGljS2V5O1xuICAgICAgY29uc3Qga2V5UGFpck9iaiA9IG5ldyBLZXlQYWlyKHsgcHViOiBwdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBrZXlzID0ga2V5UGFpck9iai5nZXRLZXlzKCk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGtleXMucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5cy5wdWIpO1xuICAgICAgc2hvdWxkLm5vdEVxdWFsKGtleXMucHViLCBwdWJsaWNLZXkpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleXMucHViLCBURVNUX0FDQ09VTlQuY29tcHJlc3NlZFB1YmxpY0tleSk7XG5cbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ga2V5UGFpck9iai5nZXRFeHRlbmRlZEtleXMoKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgZmFpbCB0byBjcmVhdGUgYSBLZXlQYWlyJywgKCkgPT4ge1xuICAgIGl0KCdmcm9tIGFuIGludmFsaWQgcHJpdmF0ZUtleScsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IG5ldyBLZXlQYWlyKHsgcHJ2OiAnJyB9KSxcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSAnVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXknXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYW4gaW52YWxpZCBwdWJsaWNLZXknLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBuZXcgS2V5UGFpcih7IHB1YjogJycgfSksXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZS5zdGFydHNXaXRoKCdVbnN1cHBvcnRlZCBwdWJsaWMga2V5JylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiB1bmRlZmluZWQgc2VlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHVuZGVmaW5lZEJ1ZmZlciA9IHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEJ1ZmZlcjtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IG5ldyBLZXlQYWlyKHsgc2VlZDogdW5kZWZpbmVkQnVmZmVyIH0pLFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiB1bmRlZmluZWQgcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCB1bmRlZmluZWRTdHI6IHN0cmluZyA9IHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIHN0cmluZztcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IG5ldyBLZXlQYWlyKHsgcHJ2OiB1bmRlZmluZWRTdHIgfSksXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZS5zdGFydHNXaXRoKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGFuIHVuZGVmaW5lZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgdW5kZWZpbmVkU3RyOiBzdHJpbmcgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBzdHJpbmc7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBuZXcgS2V5UGFpcih7IHB1YjogdW5kZWZpbmVkU3RyIH0pLFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJylcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXQgdW5pcXVlIGFkZHJlc3MgJywgKCkgPT4ge1xuICAgIGl0KCdmcm9tIGEgcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IHRvSGV4KGZyb21CYXNlNjQoVEVTVF9TRU5EX1RYLnByaXZhdGVLZXkpKSB9KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEFkZHJlc3MoKSwgVEVTVF9TRU5EX1RYLnNlbmRlcik7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhIGNvbXByZXNzZWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogdG9IZXgoZnJvbUJhc2U2NChURVNUX1NFTkRfVFgucHViS2V5KSkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRBZGRyZXNzKCksIFRFU1RfU0VORF9UWC5zZW5kZXIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBiZSBkaWZmZXJlbnQgZm9yIGRpZmZlcmVudCBwdWJsaWMga2V5cycsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXJPbmUgPSBuZXcgS2V5UGFpcih7IHB1YjogVEVTVF9BQ0NPVU5ULmNvbXByZXNzZWRQdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBrZXlQYWlyVHdvID0gbmV3IEtleVBhaXIoeyBwdWI6IFRFU1RfQUNDT1VOVC5jb21wcmVzc2VkUHVibGljS2V5VHdvIH0pO1xuICAgICAgc2hvdWxkLm5vdEVxdWFsKGtleVBhaXJPbmUuZ2V0QWRkcmVzcygpLCBrZXlQYWlyVHdvLmdldEFkZHJlc3MoKSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mantra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mantra.d.ts","sourceRoot":"","sources":["../../../test/unit/mantra.ts"],"names":[],"mappings":""}