@bitgo-beta/sdk-coin-canton 1.0.1-beta.8 → 1.0.1-beta.81

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 (100) hide show
  1. package/dist/resources/hash/hash.d.ts +5 -0
  2. package/dist/resources/hash/hash.js +298 -0
  3. package/dist/resources/proto/damlTransaction.js +100 -0
  4. package/dist/resources/proto/damlTransactionNode.js +71 -0
  5. package/dist/resources/proto/damlTransactionNodeSeed.js +56 -0
  6. package/dist/resources/proto/metadata/metadataGlobalKeyMappingEntry.js +53 -0
  7. package/dist/resources/proto/metadata/metadataInputContract.js +80 -0
  8. package/dist/resources/proto/metadata/metadataSubmitterInfo.js +62 -0
  9. package/dist/resources/proto/metadata.js +189 -0
  10. package/dist/resources/proto/node/empty.js +36 -0
  11. package/dist/resources/proto/node/globalKey.js +81 -0
  12. package/dist/resources/proto/node/identifier.js +73 -0
  13. package/dist/resources/proto/node/node.js +664 -0
  14. package/dist/resources/proto/node/timestamp.js +145 -0
  15. package/dist/resources/proto/node/value.js +838 -0
  16. package/dist/resources/proto/preparedTransaction.d.ts +8 -0
  17. package/dist/resources/proto/preparedTransaction.js +66 -0
  18. package/dist/src/canton.d.ts +4 -2
  19. package/dist/src/canton.d.ts.map +1 -1
  20. package/dist/src/canton.js +44 -6
  21. package/dist/src/index.d.ts +1 -0
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +2 -1
  24. package/dist/src/lib/constant.d.ts +16 -0
  25. package/dist/src/lib/constant.d.ts.map +1 -0
  26. package/dist/src/lib/constant.js +19 -0
  27. package/dist/src/lib/iface.d.ts +101 -0
  28. package/dist/src/lib/iface.d.ts.map +1 -1
  29. package/dist/src/lib/iface.js +1 -1
  30. package/dist/src/lib/index.d.ts +7 -1
  31. package/dist/src/lib/index.d.ts.map +1 -1
  32. package/dist/src/lib/index.js +15 -3
  33. package/dist/src/lib/keyPair.d.ts +7 -1
  34. package/dist/src/lib/keyPair.d.ts.map +1 -1
  35. package/dist/src/lib/keyPair.js +24 -4
  36. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +51 -0
  37. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -0
  38. package/dist/src/lib/oneStepPreApprovalBuilder.js +101 -0
  39. package/dist/src/lib/resourcesInterface.d.ts +214 -0
  40. package/dist/src/lib/resourcesInterface.d.ts.map +1 -0
  41. package/dist/src/lib/resourcesInterface.js +3 -0
  42. package/dist/src/lib/transaction/transaction.d.ts +23 -0
  43. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction/transaction.js +168 -0
  45. package/dist/src/lib/transactionBuilder.d.ts +10 -17
  46. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  47. package/dist/src/lib/transactionBuilder.js +31 -27
  48. package/dist/src/lib/transactionBuilderFactory.d.ts +15 -3
  49. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  50. package/dist/src/lib/transactionBuilderFactory.js +56 -6
  51. package/dist/src/lib/transferAcceptanceBuilder.d.ts +59 -0
  52. package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transferAcceptanceBuilder.js +116 -0
  54. package/dist/src/lib/transferAcknowledgeBuilder.d.ts +72 -0
  55. package/dist/src/lib/transferAcknowledgeBuilder.d.ts.map +1 -0
  56. package/dist/src/lib/transferAcknowledgeBuilder.js +133 -0
  57. package/dist/src/lib/transferBuilder.d.ts +5 -1
  58. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  59. package/dist/src/lib/transferBuilder.js +8 -1
  60. package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
  61. package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
  62. package/dist/src/lib/transferRejectionBuilder.js +116 -0
  63. package/dist/src/lib/utils.d.ts +101 -0
  64. package/dist/src/lib/utils.d.ts.map +1 -1
  65. package/dist/src/lib/utils.js +258 -3
  66. package/dist/src/lib/walletInitBuilder.d.ts +101 -0
  67. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -0
  68. package/dist/src/lib/walletInitBuilder.js +232 -0
  69. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +16 -0
  70. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -0
  71. package/dist/src/lib/walletInitialization/walletInitTransaction.js +87 -0
  72. package/dist/test/resources.d.ts +76 -0
  73. package/dist/test/resources.d.ts.map +1 -0
  74. package/dist/test/resources.js +91 -0
  75. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts +2 -0
  76. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts.map +1 -0
  77. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +66 -0
  78. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts +2 -0
  79. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts.map +1 -0
  80. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +56 -0
  81. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts +2 -0
  82. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts.map +1 -0
  83. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.js +32 -0
  84. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
  85. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
  86. package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +56 -0
  87. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts +2 -0
  88. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts.map +1 -0
  89. package/dist/test/unit/builder/walletInit/walletInitBuilder.js +65 -0
  90. package/dist/test/unit/keyPair.d.ts +2 -0
  91. package/dist/test/unit/keyPair.d.ts.map +1 -0
  92. package/dist/test/unit/keyPair.js +72 -0
  93. package/dist/test/unit/utils.d.ts +2 -0
  94. package/dist/test/unit/utils.d.ts.map +1 -0
  95. package/dist/test/unit/utils.js +76 -0
  96. package/dist/tsconfig.tsbuildinfo +1 -1
  97. package/package.json +29 -10
  98. package/dist/src/lib/transaction.d.ts +0 -8
  99. package/dist/src/lib/transaction.d.ts.map +0 -1
  100. package/dist/src/lib/transaction.js +0 -17
@@ -0,0 +1,232 @@
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.WalletInitBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const keyPair_1 = require("./keyPair");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ const walletInitTransaction_1 = require("./walletInitialization/walletInitTransaction");
11
+ const constant_1 = require("./constant");
12
+ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._signatures = [];
16
+ this._localParticipantObservationOnly = false;
17
+ this._otherConfirmingParticipantUids = [];
18
+ this._confirmationThreshold = 1;
19
+ this._observingParticipantUids = [];
20
+ this._transaction = new walletInitTransaction_1.WalletInitTransaction(_coinConfig);
21
+ }
22
+ initBuilder(tx) {
23
+ this._transaction = tx;
24
+ }
25
+ buildImplementation() {
26
+ throw new Error('Not implemented');
27
+ }
28
+ fromImplementation(rawTransaction, isFirstSigner) {
29
+ throw new Error('Not implemented');
30
+ }
31
+ signImplementation(key) {
32
+ throw new Error('Not implemented');
33
+ }
34
+ get transaction() {
35
+ return this._transaction;
36
+ }
37
+ set transaction(transaction) {
38
+ this._transaction.preparedParty = transaction;
39
+ }
40
+ validateAddress(address, addressFormat) {
41
+ if (!utils_1.default.isValidAddress(address.address)) {
42
+ throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
43
+ }
44
+ }
45
+ validateKey(key) {
46
+ let keyPair;
47
+ try {
48
+ keyPair = new keyPair_1.KeyPair({ prv: key.key });
49
+ }
50
+ catch {
51
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
52
+ }
53
+ if (!keyPair.getKeys().prv) {
54
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
55
+ }
56
+ }
57
+ validateRawTransaction(rawTransaction) {
58
+ if (!rawTransaction || !this._transaction.preparedParty) {
59
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction');
60
+ }
61
+ const localHash = utils_1.default.computeHashFromCreatePartyResponse(rawTransaction);
62
+ if (localHash !== this._transaction.preparedParty.multiHash) {
63
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction, hash not matching');
64
+ }
65
+ }
66
+ validateTransaction(transaction) {
67
+ if (!transaction?.preparedParty) {
68
+ return;
69
+ }
70
+ const localHash = utils_1.default.computeHashFromCreatePartyResponse(transaction.preparedParty.topologyTransactions);
71
+ if (localHash !== this._transaction.preparedParty.multiHash) {
72
+ throw new sdk_core_1.BuildTransactionError('invalid transaction');
73
+ }
74
+ }
75
+ // not implemented because wallet initialization doesn't require any value
76
+ validateValue(value) {
77
+ throw new Error('Not implemented');
78
+ }
79
+ /** @inheritDoc */
80
+ addSignature(publicKey, signature) {
81
+ if (!this.transaction) {
82
+ throw new sdk_core_1.InvalidTransactionError('transaction is empty!');
83
+ }
84
+ this._signatures.push({ publicKey, signature });
85
+ this.transaction.signatures = signature.toString('base64');
86
+ }
87
+ /**
88
+ * Sets the public key used for signing.
89
+ *
90
+ * @param key - The public key of the wallet.
91
+ * @returns The current builder instance for chaining.
92
+ * @throws Error if key is not a valid public key
93
+ */
94
+ publicKey(key) {
95
+ utils_1.default.isValidPublicKey(key);
96
+ this._publicKey = {
97
+ format: constant_1.PUBLIC_KEY_FORMAT,
98
+ keyData: key,
99
+ keySpec: constant_1.PUBLIC_KEY_SPEC,
100
+ };
101
+ return this;
102
+ }
103
+ /**
104
+ * Sets the party hint (alias or name) used during wallet initialization.
105
+ *
106
+ * @param hint - A 5-character non-empty string representing the party hint.
107
+ * @returns The current builder instance for chaining.
108
+ * @throws Error if the hint is empty or more than 5 characters long.
109
+ */
110
+ partyHint(hint) {
111
+ const trimmedHint = hint.trim();
112
+ if (!trimmedHint) {
113
+ throw new Error('partyHint cannot be empty');
114
+ }
115
+ if (trimmedHint.length > 5) {
116
+ throw new Error('partyHint must be less than 6 characters long');
117
+ }
118
+ this._partyHint = trimmedHint;
119
+ return this;
120
+ }
121
+ /**
122
+ * Sets whether the local participant should be added in observation-only mode.
123
+ *
124
+ * @param flag - Boolean flag indicating observation-only status.
125
+ * @returns The current builder instance for chaining.
126
+ */
127
+ localParticipantObservationOnly(flag) {
128
+ this._localParticipantObservationOnly = flag;
129
+ return this;
130
+ }
131
+ /**
132
+ * Adds a confirming participant UID to the list of other confirming participants.
133
+ *
134
+ * @param uid - A non-empty string UID of another confirming participant.
135
+ * @returns The current builder instance for chaining.
136
+ * @throws Error if the UID is empty.
137
+ */
138
+ otherConfirmingParticipantUid(uid) {
139
+ const trimmedUid = uid.trim();
140
+ if (!trimmedUid) {
141
+ throw new Error('otherConfirmingParticipantUid cannot be empty');
142
+ }
143
+ if (!this._otherConfirmingParticipantUids) {
144
+ this._otherConfirmingParticipantUids = [];
145
+ }
146
+ this._otherConfirmingParticipantUids.push(trimmedUid);
147
+ return this;
148
+ }
149
+ /**
150
+ * Sets the confirmation threshold for the wallet initialization.
151
+ *
152
+ * @param threshold - A positive integer indicating how many confirmations are required.
153
+ * @returns The current builder instance for chaining.
154
+ * @throws Error if the threshold is not a positive integer.
155
+ */
156
+ confirmationThreshold(threshold) {
157
+ if (!Number.isInteger(threshold) || threshold <= 0) {
158
+ throw new Error('confirmationThreshold must be a positive integer');
159
+ }
160
+ this._confirmationThreshold = threshold;
161
+ return this;
162
+ }
163
+ /**
164
+ * Adds an observing participant UID to the list of observers.
165
+ *
166
+ * @param uid - A non-empty string UID of the observing participant.
167
+ * @returns The current builder instance for chaining.
168
+ * @throws Error if the UID is empty.
169
+ */
170
+ observingParticipantUid(uid) {
171
+ const trimmedUid = uid.trim();
172
+ if (!trimmedUid) {
173
+ throw new Error('observingParticipantUid cannot be empty');
174
+ }
175
+ if (!this._observingParticipantUids) {
176
+ this._observingParticipantUids = [];
177
+ }
178
+ this._observingParticipantUids.push(trimmedUid);
179
+ return this;
180
+ }
181
+ /**
182
+ * Builds and returns the WalletInitRequest object from the builder's internal state.
183
+ *
184
+ * This method performs validation before constructing the object. If required fields are
185
+ * missing or invalid, it throws an error.
186
+ *
187
+ * @returns {WalletInitRequest} - A fully constructed and validated request object for wallet initialization.
188
+ * @throws {Error} If any required field is missing or fails validation.
189
+ */
190
+ toRequestObject() {
191
+ this.validate();
192
+ return {
193
+ publicKey: this._publicKey,
194
+ partyHint: this._partyHint,
195
+ localParticipantObservationOnly: this._localParticipantObservationOnly,
196
+ otherConfirmingParticipantUids: this._otherConfirmingParticipantUids,
197
+ confirmationThreshold: this._confirmationThreshold,
198
+ observingParticipantUids: this._observingParticipantUids,
199
+ };
200
+ }
201
+ /**
202
+ * Validates the internal state of the builder before building the request object.
203
+ *
204
+ * Checks for:
205
+ * - Presence of a synchronizer ID.
206
+ * - `partyHint` must not be empty and must be at most 5 characters long.
207
+ * - Public key must include `keyData`, `format`, and `keySpec`.
208
+ * - Confirmation threshold must be a positive integer.
209
+ * - Confirming and observing participant UID lists must be arrays.
210
+ *
211
+ * @private
212
+ * @throws {Error} If any required field is missing or invalid.
213
+ */
214
+ validate() {
215
+ if (!this._partyHint || this._partyHint.length > 5)
216
+ throw new Error('Invalid partyHint');
217
+ if (!this._publicKey || !this._publicKey.keyData || !this._publicKey.format || !this._publicKey.keySpec) {
218
+ throw new Error('Invalid publicKey');
219
+ }
220
+ if (!Number.isInteger(this._confirmationThreshold) || this._confirmationThreshold <= 0) {
221
+ throw new Error('Invalid confirmationThreshold');
222
+ }
223
+ if (!Array.isArray(this._otherConfirmingParticipantUids)) {
224
+ throw new Error('otherConfirmingParticipantUids must be an array');
225
+ }
226
+ if (!Array.isArray(this._observingParticipantUids)) {
227
+ throw new Error('observingParticipantUids must be an array');
228
+ }
229
+ }
230
+ }
231
+ exports.WalletInitBuilder = WalletInitBuilder;
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dhbGxldEluaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLG1EQVE4QjtBQUc5Qix1Q0FBb0M7QUFFcEMsb0RBQTRCO0FBQzVCLHdGQUFxRjtBQUNyRix5Q0FBZ0U7QUFFaEUsTUFBYSxpQkFBa0IsU0FBUSxpQ0FBc0I7SUFXM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFWYixnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFJOUIscUNBQWdDLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLG9DQUErQixHQUFhLEVBQUUsQ0FBQztRQUMvQywyQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsOEJBQXlCLEdBQWEsRUFBRSxDQUFDO1FBSS9DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQXlCO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxjQUFtQixFQUFFLGFBQXVCO1FBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsV0FBMEI7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFh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Q0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hHLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFqUEQsOENBaVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBJUHVibGljS2V5LCBQcmVwYXJlZFBhcnR5LCBXYWxsZXRJbml0UmVxdWVzdCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgV2FsbGV0SW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi93YWxsZXRJbml0aWFsaXphdGlvbi93YWxsZXRJbml0VHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgUFVCTElDX0tFWV9GT1JNQVQsIFBVQkxJQ19LRVlfU1BFQyB9IGZyb20gJy4vY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0SW5pdEJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFdhbGxldEluaXRUcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXTtcblxuICBwcml2YXRlIF9wdWJsaWNLZXk6IElQdWJsaWNLZXk7XG4gIHByaXZhdGUgX3BhcnR5SGludDogc3RyaW5nO1xuICBwcml2YXRlIF9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5ID0gZmFsc2U7XG4gIHByaXZhdGUgX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfY29uZmlybWF0aW9uVGhyZXNob2xkID0gMTtcbiAgcHJpdmF0ZSBfb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBXYWxsZXRJbml0VHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFdhbGxldEluaXRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFdhbGxldEluaXRUcmFuc2FjdGlvbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnksIGlzRmlyc3RTaWduZXI/OiBib29sZWFuKTogV2FsbGV0SW5pdFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBnZXQgdHJhbnNhY3Rpb24oKTogV2FsbGV0SW5pdFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFByZXBhcmVkUGFydHkpIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5wcmVwYXJlZFBhcnR5ID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MsIGFkZHJlc3NGb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzcyAnICsgYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICBsZXQga2V5UGFpcjogS2V5UGFpcjtcbiAgICB0cnkge1xuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBrZXknKTtcbiAgICB9XG4gICAgaWYgKCFrZXlQYWlyLmdldEtleXMoKS5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQga2V5Jyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uIHx8ICF0aGlzLl90cmFuc2FjdGlvbi5wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbEhhc2ggPSB1dGlscy5jb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAobG9jYWxIYXNoICE9PSB0aGlzLl90cmFuc2FjdGlvbi5wcmVwYXJlZFBhcnR5Lm11bHRpSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24sIGhhc2ggbm90IG1hdGNoaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFdhbGxldEluaXRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24/LnByZXBhcmVkUGFydHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbG9jYWxIYXNoID0gdXRpbHMuY29tcHV0ZUhhc2hGcm9tQ3JlYXRlUGFydHlSZXNwb25zZSh0cmFuc2FjdGlvbi5wcmVwYXJlZFBhcnR5LnRvcG9sb2d5VHJhbnNhY3Rpb25zKTtcbiAgICBpZiAobG9jYWxIYXNoICE9PSB0aGlzLl90cmFuc2FjdGlvbi5wcmVwYXJlZFBhcnR5Lm11bHRpSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignaW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8vIG5vdCBpbXBsZW1lbnRlZCBiZWNhdXNlIHdhbGxldCBpbml0aWFsaXphdGlvbiBkb2Vzbid0IHJlcXVpcmUgYW55IHZhbHVlXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbiBpcyBlbXB0eSEnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmVzID0gc2lnbmF0dXJlLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwdWJsaWMga2V5IHVzZWQgZm9yIHNpZ25pbmcuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgcHVibGljIGtleSBvZiB0aGUgd2FsbGV0LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiBrZXkgaXMgbm90IGEgdmFsaWQgcHVibGljIGtleVxuICAgKi9cbiAgcHVibGljS2V5KGtleTogc3RyaW5nKTogdGhpcyB7XG4gICAgdXRpbHMuaXNWYWxpZFB1YmxpY0tleShrZXkpO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHtcbiAgICAgIGZvcm1hdDogUFVCTElDX0tFWV9GT1JNQVQsXG4gICAgICBrZXlEYXRhOiBrZXksXG4gICAgICBrZXlTcGVjOiBQVUJMSUNfS0VZX1NQRUMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0eSBoaW50IChhbGlhcyBvciBuYW1lKSB1c2VkIGR1cmluZyB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBoaW50IC0gQSA1LWNoYXJhY3RlciBub24tZW1wdHkgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcGFydHkgaGludC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGhpbnQgaXMgZW1wdHkgb3IgbW9yZSB0aGFuIDUgY2hhcmFjdGVycyBsb25nLlxuICAgKi9cbiAgcGFydHlIaW50KGhpbnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGNvbnN0IHRyaW1tZWRIaW50ID0gaGludC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkSGludCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYXJ0eUhpbnQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICh0cmltbWVkSGludC5sZW5ndGggPiA1KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnR5SGludCBtdXN0IGJlIGxlc3MgdGhhbiA2IGNoYXJhY3RlcnMgbG9uZycpO1xuICAgIH1cbiAgICB0aGlzLl9wYXJ0eUhpbnQgPSB0cmltbWVkSGludDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgdGhlIGxvY2FsIHBhcnRpY2lwYW50IHNob3VsZCBiZSBhZGRlZCBpbiBvYnNlcnZhdGlvbi1vbmx5IG1vZGUuXG4gICAqXG4gICAqIEBwYXJhbSBmbGFnIC0gQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgb2JzZXJ2YXRpb24tb25seSBzdGF0dXMuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nLlxuICAgKi9cbiAgbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seShmbGFnOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seSA9IGZsYWc7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNvbmZpcm1pbmcgcGFydGljaXBhbnQgVUlEIHRvIHRoZSBsaXN0IG9mIG90aGVyIGNvbmZpcm1pbmcgcGFydGljaXBhbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gdWlkIC0gQSBub24tZW1wdHkgc3RyaW5nIFVJRCBvZiBhbm90aGVyIGNvbmZpcm1pbmcgcGFydGljaXBhbnQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBVSUQgaXMgZW1wdHkuXG4gICAqL1xuICBvdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZCh1aWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGNvbnN0IHRyaW1tZWRVaWQgPSB1aWQudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZFVpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMpIHtcbiAgICAgIHRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLl9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMucHVzaCh0cmltbWVkVWlkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb25maXJtYXRpb24gdGhyZXNob2xkIGZvciB0aGUgd2FsbGV0IGluaXRpYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gdGhyZXNob2xkIC0gQSBwb3NpdGl2ZSBpbnRlZ2VyIGluZGljYXRpbmcgaG93IG1hbnkgY29uZmlybWF0aW9ucyBhcmUgcmVxdWlyZWQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSB0aHJlc2hvbGQgaXMgbm90IGEgcG9zaXRpdmUgaW50ZWdlci5cbiAgICovXG4gIGNvbmZpcm1hdGlvblRocmVzaG9sZCh0aHJlc2hvbGQ6IG51bWJlcik6IHRoaXMge1xuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0aHJlc2hvbGQpIHx8IHRocmVzaG9sZCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvbmZpcm1hdGlvblRocmVzaG9sZCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcicpO1xuICAgIH1cbiAgICB0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQgPSB0aHJlc2hvbGQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBvYnNlcnZpbmcgcGFydGljaXBhbnQgVUlEIHRvIHRoZSBsaXN0IG9mIG9ic2VydmVycy5cbiAgICpcbiAgICogQHBhcmFtIHVpZCAtIEEgbm9uLWVtcHR5IHN0cmluZyBVSUQgb2YgdGhlIG9ic2VydmluZyBwYXJ0aWNpcGFudC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIFVJRCBpcyBlbXB0eS5cbiAgICovXG4gIG9ic2VydmluZ1BhcnRpY2lwYW50VWlkKHVpZDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZFVpZCA9IHVpZC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVWlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29ic2VydmluZ1BhcnRpY2lwYW50VWlkIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX29ic2VydmluZ1BhcnRpY2lwYW50VWlkcykge1xuICAgICAgdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzID0gW107XG4gICAgfVxuICAgIHRoaXMuX29ic2VydmluZ1BhcnRpY2lwYW50VWlkcy5wdXNoKHRyaW1tZWRVaWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbmQgcmV0dXJucyB0aGUgV2FsbGV0SW5pdFJlcXVlc3Qgb2JqZWN0IGZyb20gdGhlIGJ1aWxkZXIncyBpbnRlcm5hbCBzdGF0ZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgdmFsaWRhdGlvbiBiZWZvcmUgY29uc3RydWN0aW5nIHRoZSBvYmplY3QuIElmIHJlcXVpcmVkIGZpZWxkcyBhcmVcbiAgICogbWlzc2luZyBvciBpbnZhbGlkLCBpdCB0aHJvd3MgYW4gZXJyb3IuXG4gICAqXG4gICAqIEByZXR1cm5zIHtXYWxsZXRJbml0UmVxdWVzdH0gLSBBIGZ1bGx5IGNvbnN0cnVjdGVkIGFuZCB2YWxpZGF0ZWQgcmVxdWVzdCBvYmplY3QgZm9yIHdhbGxldCBpbml0aWFsaXphdGlvbi5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIGFueSByZXF1aXJlZCBmaWVsZCBpcyBtaXNzaW5nIG9yIGZhaWxzIHZhbGlkYXRpb24uXG4gICAqL1xuICB0b1JlcXVlc3RPYmplY3QoKTogV2FsbGV0SW5pdFJlcXVlc3Qge1xuICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICByZXR1cm4ge1xuICAgICAgcHVibGljS2V5OiB0aGlzLl9wdWJsaWNLZXksXG4gICAgICBwYXJ0eUhpbnQ6IHRoaXMuX3BhcnR5SGludCxcbiAgICAgIGxvY2FsUGFydGljaXBhbnRPYnNlcnZhdGlvbk9ubHk6IHRoaXMuX2xvY2FsUGFydGljaXBhbnRPYnNlcnZhdGlvbk9ubHksXG4gICAgICBvdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHM6IHRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcyxcbiAgICAgIGNvbmZpcm1hdGlvblRocmVzaG9sZDogdGhpcy5fY29uZmlybWF0aW9uVGhyZXNob2xkLFxuICAgICAgb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzOiB0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSBidWlsZGVyIGJlZm9yZSBidWlsZGluZyB0aGUgcmVxdWVzdCBvYmplY3QuXG4gICAqXG4gICAqIENoZWNrcyBmb3I6XG4gICAqIC0gUHJlc2VuY2Ugb2YgYSBzeW5jaHJvbml6ZXIgSUQuXG4gICAqIC0gYHBhcnR5SGludGAgbXVzdCBub3QgYmUgZW1wdHkgYW5kIG11c3QgYmUgYXQgbW9zdCA1IGNoYXJhY3RlcnMgbG9uZy5cbiAgICogLSBQdWJsaWMga2V5IG11c3QgaW5jbHVkZSBga2V5RGF0YWAsIGBmb3JtYXRgLCBhbmQgYGtleVNwZWNgLlxuICAgKiAtIENvbmZpcm1hdGlvbiB0aHJlc2hvbGQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuXG4gICAqIC0gQ29uZmlybWluZyBhbmQgb2JzZXJ2aW5nIHBhcnRpY2lwYW50IFVJRCBsaXN0cyBtdXN0IGJlIGFycmF5cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHRocm93cyB7RXJyb3J9IElmIGFueSByZXF1aXJlZCBmaWVsZCBpcyBtaXNzaW5nIG9yIGludmFsaWQuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fcGFydHlIaW50IHx8IHRoaXMuX3BhcnR5SGludC5sZW5ndGggPiA1KSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFydHlIaW50Jyk7XG4gICAgaWYgKCF0aGlzLl9wdWJsaWNLZXkgfHwgIXRoaXMuX3B1YmxpY0tleS5rZXlEYXRhIHx8ICF0aGlzLl9wdWJsaWNLZXkuZm9ybWF0IHx8ICF0aGlzLl9wdWJsaWNLZXkua2V5U3BlYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHB1YmxpY0tleScpO1xuICAgIH1cbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodGhpcy5fY29uZmlybWF0aW9uVGhyZXNob2xkKSB8fCB0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpcm1hdGlvblRocmVzaG9sZCcpO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { BaseKey, BaseTransaction } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { PreparedParty, WalletInitTxData } from '../iface';
4
+ export declare class WalletInitTransaction extends BaseTransaction {
5
+ private _preparedParty;
6
+ constructor(coinConfig: Readonly<CoinConfig>);
7
+ get preparedParty(): PreparedParty;
8
+ set preparedParty(transaction: PreparedParty);
9
+ canSign(key: BaseKey): boolean;
10
+ set signatures(signature: string);
11
+ toBroadcastFormat(): string;
12
+ toJson(): WalletInitTxData;
13
+ get signablePayload(): Buffer;
14
+ fromRawTransaction(rawTx: string): void;
15
+ }
16
+ //# sourceMappingURL=walletInitTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/walletInitialization/walletInitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAGL,aAAa,EAEb,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAGlB,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,cAAc,CAAgB;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,IAAI,aAAa,CAAC,WAAW,EAAE,aAAa,EAI3C;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,iBAAiB,IAAI,MAAM;IA6B3B,MAAM,IAAI,gBAAgB;IAY1B,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAexC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletInitTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const constant_1 = require("../constant");
6
+ class WalletInitTransaction extends sdk_core_1.BaseTransaction {
7
+ constructor(coinConfig) {
8
+ super(coinConfig);
9
+ }
10
+ get preparedParty() {
11
+ return this._preparedParty;
12
+ }
13
+ set preparedParty(transaction) {
14
+ this._preparedParty = transaction;
15
+ this._id = transaction.multiHash;
16
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
17
+ }
18
+ canSign(key) {
19
+ return false;
20
+ }
21
+ set signatures(signature) {
22
+ this._signatures.push(signature);
23
+ }
24
+ toBroadcastFormat() {
25
+ if (!this._preparedParty) {
26
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
27
+ }
28
+ const multiHashSignatures = [];
29
+ if (this.signature.length > 0) {
30
+ this.signature.map((signature) => {
31
+ const multiHashSignature = {
32
+ format: constant_1.SIGNATURE_FORMAT,
33
+ signature: signature,
34
+ signedBy: this._preparedParty.publicKeyFingerprint,
35
+ signingAlgorithmSpec: constant_1.SIGNATURE_ALGORITHM_SPEC,
36
+ };
37
+ multiHashSignatures.push(multiHashSignature);
38
+ });
39
+ }
40
+ const walletInitBroadcastData = {
41
+ preparedParty: this._preparedParty,
42
+ onboardingTransactions: this._preparedParty.topologyTransactions.map((txn) => {
43
+ const onboardingTransaction = {
44
+ transaction: txn,
45
+ };
46
+ return onboardingTransaction;
47
+ }),
48
+ multiHashSignatures: multiHashSignatures,
49
+ };
50
+ return Buffer.from(JSON.stringify(walletInitBroadcastData)).toString('base64');
51
+ }
52
+ toJson() {
53
+ if (!this._preparedParty) {
54
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
55
+ }
56
+ const result = {
57
+ id: this.id,
58
+ type: this._type,
59
+ preparedParty: this._preparedParty,
60
+ };
61
+ return result;
62
+ }
63
+ get signablePayload() {
64
+ if (!this._preparedParty) {
65
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
66
+ }
67
+ return Buffer.from(this._preparedParty.multiHash, 'base64');
68
+ }
69
+ fromRawTransaction(rawTx) {
70
+ try {
71
+ const decoded = JSON.parse(Buffer.from(rawTx, 'base64').toString('utf8'));
72
+ this._preparedParty = decoded.preparedParty;
73
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
74
+ this._id = decoded.preparedParty.multiHash;
75
+ if (decoded.multiHashSignatures.length > 0) {
76
+ decoded.multiHashSignatures.map((multiHashSignature) => {
77
+ this.signatures = multiHashSignature.signature;
78
+ });
79
+ }
80
+ }
81
+ catch (e) {
82
+ throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
83
+ }
84
+ }
85
+ }
86
+ exports.WalletInitTransaction = WalletInitTransaction;
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbi93YWxsZXRJbml0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTBHO0FBUzFHLDBDQUF5RTtBQUV6RSxNQUFhLHFCQUFzQixTQUFRLDBCQUFlO0lBR3hELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLFdBQTBCO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLG1CQUFtQixHQUF5QixFQUFFLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUMvQixNQUFNLGtCQUFrQixHQUF1QjtvQkFDN0MsTUFBTSxFQUFFLDJCQUFnQjtvQkFDeEIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQjtvQkFDbEQsb0JBQW9CLEVBQUUsbUNBQXdCO2lCQUMvQyxDQUFDO2dCQUNGLG1CQUFtQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sdUJBQXVCLEdBQTRCO1lBQ3ZELGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNsQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMzRSxNQUFNLHFCQUFxQixHQUEwQjtvQkFDbkQsV0FBVyxFQUFFLEdBQUc7aUJBQ2pCLENBQUM7Z0JBQ0YsT0FBTyxxQkFBcUIsQ0FBQztZQUMvQixDQUFDLENBQUM7WUFDRixtQkFBbUIsRUFBRSxtQkFBbUI7U0FDekMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBcUI7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUF3QjtZQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUE0QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ25HLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7WUFDbEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBc0MsRUFBRSxFQUFFO29CQUN6RSxJQUFJLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksa0NBQXVCLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBeEZELHNEQXdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VLZXksIEJhc2VUcmFuc2FjdGlvbiwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIE11bHRpSGFzaFNpZ25hdHVyZSxcbiAgT25ib2FyZGluZ1RyYW5zYWN0aW9uLFxuICBQcmVwYXJlZFBhcnR5LFxuICBXYWxsZXRJbml0QnJvYWRjYXN0RGF0YSxcbiAgV2FsbGV0SW5pdFR4RGF0YSxcbn0gZnJvbSAnLi4vaWZhY2UnO1xuaW1wb3J0IHsgU0lHTkFUVVJFX0FMR09SSVRITV9TUEVDLCBTSUdOQVRVUkVfRk9STUFUIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0SW5pdFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfcHJlcGFyZWRQYXJ0eTogUHJlcGFyZWRQYXJ0eTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHByZXBhcmVkUGFydHkoKTogUHJlcGFyZWRQYXJ0eSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmVkUGFydHk7XG4gIH1cblxuICBzZXQgcHJlcGFyZWRQYXJ0eSh0cmFuc2FjdGlvbjogUHJlcGFyZWRQYXJ0eSkge1xuICAgIHRoaXMuX3ByZXBhcmVkUGFydHkgPSB0cmFuc2FjdGlvbjtcbiAgICB0aGlzLl9pZCA9IHRyYW5zYWN0aW9uLm11bHRpSGFzaDtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICB9XG5cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXQgc2lnbmF0dXJlcyhzaWduYXR1cmU6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCBtdWx0aUhhc2hTaWduYXR1cmVzOiBNdWx0aUhhc2hTaWduYXR1cmVbXSA9IFtdO1xuICAgIGlmICh0aGlzLnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZS5tYXAoKHNpZ25hdHVyZSkgPT4ge1xuICAgICAgICBjb25zdCBtdWx0aUhhc2hTaWduYXR1cmU6IE11bHRpSGFzaFNpZ25hdHVyZSA9IHtcbiAgICAgICAgICBmb3JtYXQ6IFNJR05BVFVSRV9GT1JNQVQsXG4gICAgICAgICAgc2lnbmF0dXJlOiBzaWduYXR1cmUsXG4gICAgICAgICAgc2lnbmVkQnk6IHRoaXMuX3ByZXBhcmVkUGFydHkucHVibGljS2V5RmluZ2VycHJpbnQsXG4gICAgICAgICAgc2lnbmluZ0FsZ29yaXRobVNwZWM6IFNJR05BVFVSRV9BTEdPUklUSE1fU1BFQyxcbiAgICAgICAgfTtcbiAgICAgICAgbXVsdGlIYXNoU2lnbmF0dXJlcy5wdXNoKG11bHRpSGFzaFNpZ25hdHVyZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgd2FsbGV0SW5pdEJyb2FkY2FzdERhdGE6IFdhbGxldEluaXRCcm9hZGNhc3REYXRhID0ge1xuICAgICAgcHJlcGFyZWRQYXJ0eTogdGhpcy5fcHJlcGFyZWRQYXJ0eSxcbiAgICAgIG9uYm9hcmRpbmdUcmFuc2FjdGlvbnM6IHRoaXMuX3ByZXBhcmVkUGFydHkudG9wb2xvZ3lUcmFuc2FjdGlvbnMubWFwKCh0eG4pID0+IHtcbiAgICAgICAgY29uc3Qgb25ib2FyZGluZ1RyYW5zYWN0aW9uOiBPbmJvYXJkaW5nVHJhbnNhY3Rpb24gPSB7XG4gICAgICAgICAgdHJhbnNhY3Rpb246IHR4bixcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG9uYm9hcmRpbmdUcmFuc2FjdGlvbjtcbiAgICAgIH0pLFxuICAgICAgbXVsdGlIYXNoU2lnbmF0dXJlczogbXVsdGlIYXNoU2lnbmF0dXJlcyxcbiAgICB9O1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeSh3YWxsZXRJbml0QnJvYWRjYXN0RGF0YSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBXYWxsZXRJbml0VHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFdhbGxldEluaXRUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUgYXMgVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgcHJlcGFyZWRQYXJ0eTogdGhpcy5fcHJlcGFyZWRQYXJ0eSxcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMuX3ByZXBhcmVkUGFydHkubXVsdGlIYXNoLCAnYmFzZTY0Jyk7XG4gIH1cblxuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkOiBXYWxsZXRJbml0QnJvYWRjYXN0RGF0YSA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbiAgICAgIHRoaXMuX3ByZXBhcmVkUGFydHkgPSBkZWNvZGVkLnByZXBhcmVkUGFydHk7XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICAgICAgdGhpcy5faWQgPSBkZWNvZGVkLnByZXBhcmVkUGFydHkubXVsdGlIYXNoO1xuICAgICAgaWYgKGRlY29kZWQubXVsdGlIYXNoU2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRlY29kZWQubXVsdGlIYXNoU2lnbmF0dXJlcy5tYXAoKG11bHRpSGFzaFNpZ25hdHVyZTogTXVsdGlIYXNoU2lnbmF0dXJlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVzID0gbXVsdGlIYXNoU2lnbmF0dXJlLnNpZ25hdHVyZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbmFibGUgdG8gcGFyc2UgcmF3IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,76 @@
1
+ export declare const PreparedTransactionRawData = "CtWhAQoDMi4xEgEwGtsMCgIxMsI+0wwK0AwKAzIuMRJCMDBjYTQyYmNiNzEyYzM1NDUwYjM5MDQxNDU4ZDg0ZWI2NGY4YjVmZDhmZWQ2NGZkMjgxZmI0YmI5Yzg3MzVjNjAwGg1zcGxpY2UtYW11bGV0Il8KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaDExvY2tlZEFtdWxldCrkCHLhCApfCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgxMb2NrZWRBbXVsZXQSrgUKBmFtdWxldBKjBXKgBQpZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQSUgoDZHNvEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISVgoFb3duZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEpYDCgZhbW91bnQSiwNyiAMKXwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDkV4cGlyaW5nQW1vdW50EiAKDWluaXRpYWxBbW91bnQSDzINNDYuOTkxNzg0NTYwMBJ3CgljcmVhdGVkQXQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISiQEKDHJhdGVQZXJSb3VuZBJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAzODA1MTgwMBLMAgoEbG9jaxLDAnLAAgpbCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuRXhwaXJ5GghUaW1lTG9jaxJaCgdob2xkZXJzEk9aTQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEhYKCWV4cGlyZXNBdBIJKbjceqY/QAYAEm0KCm9wdENvbnRleHQSX1JdCltCWXRyYW5zZmVyIHRvICdhYmMtMjo6MTIyMDdlOTZhZGExOGE4NDVhZGY0ZGMwMTQxMDI2NTYzM2Q1MjY2ZGNhOWJiMjgwYzk4ZTM1YzM2OTJkYjg3ZDNlMzUnMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBrvAwoBM8I+6AMS5QMKAzIuMRKKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRoNc3BsaWNlLWFtdWxldCJhCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuUm91bmQaD09wZW5NaW5pbmdSb3VuZCpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhqVCQoCMTPCPo0JCooJCgMyLjESQjAwM2Q5NzAxNjkzYjhmYWMxMjYyYmYwNzgyMThlMDVlZjkyYzE1ZjQyZDdmYWM3NDM5MjE4NTU2MDkyYjZmOTcwYxoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqpAVyoQUKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0ElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiElYKBW93bmVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBKXAwoGYW1vdW50EowDcokDCl8KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGg5FeHBpcmluZ0Ftb3VudBIhCg1pbml0aWFsQW1vdW50EhAyDjQ0MC4wMDgyMTU0NDAwEncKCWNyZWF0ZWRBdBJqcmgKVwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlR5cGVzGgVSb3VuZBINCgZudW1iZXISAxjOAhKJAQoMcmF0ZVBlclJvdW5kEnlydwpdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoMUmF0ZVBlclJvdW5kEhYKBHJhdGUSDjIMMC4wMDM4MDUxODAwMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBrEBwoCMTHCPrwHCrkHCgMyLjESQjAwZDRkNGE3MmU3ZWE4NTlmODVlNjE5ZTIxMWNmYjg4YmY4ZjJlYzhjYTBmMWZmNTVhZmY1NjBjMjQxMDEzZGJiORoNc3BsaWNlLWFtdWxldCJiCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0Gg9BcHBSZXdhcmRDb3Vwb24qlwRylAQKYgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoPQXBwUmV3YXJkQ291cG9uElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiElkKCHByb3ZpZGVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIOCghmZWF0dXJlZBICEAASGAoGYW1vdW50Eg4yDDcuMDAwMDAwMDAwMBJzCgVyb3VuZBJqcmgKVwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlR5cGVzGgVSb3VuZBINCgZudW1iZXISAxjOAhJgCgtiZW5lZmljaWFyeRJRUk8KTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQa8QMKATHCPuoDEucDCgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhrvAwoBNMI+6AMS5QMKAzIuMRKKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRoNc3BsaWNlLWFtdWxldCJhCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuUm91bmQaD09wZW5NaW5pbmdSb3VuZCpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhrOBQoBOMI+xwUSxAUKAzIuMRKKATAwMGFhODdhMTY0MjIwMmRlYzMyMDAwNjRkOTU4MDc4ZWMxZGY1YmI3Y2ZiMDI4N2MyN2NhNTA3YzJkMTE0ZTllYmNhMTExMjIwNGY0NWZjODlkMzdmN2U1MGNiY2U0NTI3ODA4NTdhOGVmMmRkNWM5YThhNGVmNWFhYTRjMGNmZjI4ZmI3YTM0ORoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQa2gYKAjEwwj7SBgrPBgoDMi4xEkIwMDQzMjBkZWQwYTc1NmQzYjI2ZDlmN2UxNzgxZjlkNjE4MTFiNzhjYjg3MTcxMDQ0NzY5YjhlZTk4M2U5Zjc2MzgaDXNwbGljZS1hbXVsZXQiaApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoVVmFsaWRhdG9yUmV3YXJkQ291cG9uKqcDcqQDCmgKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaFVZhbGlkYXRvclJld2FyZENvdXBvbhJSCgNkc28SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhJVCgR1c2VyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIYCgZhbW91bnQSDjIMNy4wMDAwMDAwMDAwEnMKBXJvdW5kEmpyaApXCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuVHlwZXMaBVJvdW5kEg0KBm51bWJlchIDGM4CMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQayw0KAjE0wj7DDQrADQoDMi4xEkIwMGE3YjkwZjJmODIzMmNmMzg3NGM4MDQ1OGY5OTY3YTAwNWYyOGUwN2U1M2QxZWUxMGNlN2JhZjU5NDlkNjcxZTcaDXNwbGljZS1hbXVsZXQifwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24aGUFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24q5why5AgKfwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24aGUFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24SVAoMbG9ja2VkQW11bGV0EkRKQjAwY2E0MmJjYjcxMmMzNTQ1MGIzOTA0MTQ1OGQ4NGViNjRmOGI1ZmQ4ZmVkNjRmZDI4MWZiNGJiOWM4NzM1YzYwMBKKBwoIdHJhbnNmZXIS/QZy+gYKdApANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaCFRyYW5zZmVyElcKBnNlbmRlchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSWQoIcmVjZWl2ZXISTTpLYWJjLTI6OjEyMjA3ZTk2YWRhMThhODQ1YWRmNGRjMDE0MTAyNjU2MzNkNTI2NmRjYTliYjI4MGM5OGUzNWMzNjkyZGI4N2QzZTM1EhkKBmFtb3VudBIPMg0yMC4wMDAwMDAwMDAwEugBCgxpbnN0cnVtZW50SWQS1wFy1AEKbApANzE4YTBmNzdlNTA1YThkZTIyZjE4OGJkNGM4N2ZlNzQxMDEyNzRlOWQ0Y2IxYmZhYzdkMDlhZWM3MTU4ZDM1YhIaU3BsaWNlLkFwaS5Ub2tlbi5Ib2xkaW5nVjEaDEluc3RydW1lbnRJZBJUCgVhZG1pbhJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEg4KAmlkEghCBkFtdWxldBIYCgtyZXF1ZXN0ZWRBdBIJKej3oogrQAYAEhoKDWV4ZWN1dGVCZWZvcmUSCSm43HqmP0AGABJcChBpbnB1dEhvbGRpbmdDaWRzEkhaRgpESkIwMGNhNDJiY2I3MTJjMzU0NTBiMzkwNDE0NThkODRlYjY0ZjhiNWZkOGZlZDY0ZmQyODFmYjRiYjljODczNWM2MDASswEKBG1ldGESqgFypwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI6CgZ2YWx1ZXMSMGIuCiwKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvcmVhc29uEgJCADJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6S2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNRrUIAoBNsI+zSAayiAKAzIuMRKKATAwZGZlN2U4ZTk3ODdlNzU3NDY3N2U1NmQwZjlmNjdkNmVlYTkxMTAzNzdkZDc2OWM1MTkxYTRjNDg0NWQ5ZTJiZGNhMTExMjIwYzZlZDY2NmI3YmFhYTg3Y2I1NmYzYjQzOWQ3NmM1ZDI1YTNiNGJlNTRjY2YwYjdlMTYyZjFkYmY2MmEzZGFlNRoNc3BsaWNlLWFtdWxldCJjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaC0FtdWxldFJ1bGVzKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmRKFEFtdWxldFJ1bGVzX1RyYW5zZmVyUtUNctINCmwKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoUQW11bGV0UnVsZXNfVHJhbnNmZXISsAkKCHRyYW5zZmVyEqMJcqAJCmAKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoIVHJhbnNmZXISVwoGc2VuZGVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBJZCghwcm92aWRlchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSmAIKBmlucHV0cxKNAlqKAgqHAnqEAgplCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDVRyYW5zZmVySW5wdXQSC0lucHV0QW11bGV0Go0BSooBMDAwYWE4N2ExNjQyMjAyZGVjMzIwMDA2NGQ5NTgwNzhlYzFkZjViYjdjZmIwMjg3YzI3Y2E1MDdjMmQxMTRlOWViY2ExMTEyMjA0ZjQ1ZmM4OWQzN2Y3ZTUwY2JjZTQ1Mjc4MDg1N2E4ZWYyZGQ1YzlhOGE0ZWY1YWFhNGMwY2ZmMjhmYjdhMzQ5EuwECgdvdXRwdXRzEuAEWt0ECtoEctcECmYKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoOVHJhbnNmZXJPdXRwdXQSWQoIcmVjZWl2ZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEiIKEHJlY2VpdmVyRmVlUmF0aW8SDjIMMC4wMDAwMDAwMDAwEhkKBmFtb3VudBIPMg00Ni45OTE3ODQ1NjAwEtICCgRsb2NrEskCUsYCCsMCcsACClsKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5FeHBpcnkaCFRpbWVMb2NrEloKB2hvbGRlcnMST1pNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISFgoJZXhwaXJlc0F0EgkpuNx6pj9ABgASbQoKb3B0Q29udGV4dBJfUl0KW0JZdHJhbnNmZXIgdG8gJ2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNScSzgIKB2NvbnRleHQSwgJyvwIKZwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGg9UcmFuc2ZlckNvbnRleHQSoQEKD29wZW5NaW5pbmdSb3VuZBKNAUqKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRIZChNpc3N1aW5nTWluaW5nUm91bmRzEgJqABIVCg92YWxpZGF0b3JSaWdodHMSAmoAEl4KC2V4cGVjdGVkRHNvEk9STQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiYgE3YgE4YgE5YgIxMGICMTFiAjEyYgIxM2qMDnKJDgpmCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDlRyYW5zZmVyUmVzdWx0EnMKBXJvdW5kEmpyaApXCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuVHlwZXMaBVJvdW5kEg0KBm51bWJlchIDGM4CEu4GCgdzdW1tYXJ5EuIGct8GCmcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoPVHJhbnNmZXJTdW1tYXJ5EiYKFGlucHV0QXBwUmV3YXJkQW1vdW50Eg4yDDAuMDAwMDAwMDAwMBIsChppbnB1dFZhbGlkYXRvclJld2FyZEFtb3VudBIOMgwwLjAwMDAwMDAwMDASJQoTaW5wdXRTdlJld2FyZEFtb3VudBIOMgwwLjAwMDAwMDAwMDASJQoRaW5wdXRBbXVsZXRBbW91bnQSEDIONTAwLjAwMDAwMDAwMDASuAIKDmJhbGFuY2VDaGFuZ2VzEqUCaqICCp8CCk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBLNAXLKAQplCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDUJhbGFuY2VDaGFuZ2USNgoiY2hhbmdlVG9Jbml0aWFsQW1vdW50QXNPZlJvdW5kWmVybxIQMg4tMTIuMzY0NTM0OTQwMBIpChdjaGFuZ2VUb0hvbGRpbmdGZWVzUmF0ZRIOMgwwLjAwMzgwNTE4MDASHQoLaG9sZGluZ0ZlZXMSDjIMMC4wMDAwMDAwMDAwEiAKCm91dHB1dEZlZXMSEloQCg4yDDcuMDAwMDAwMDAwMBIhCg9zZW5kZXJDaGFuZ2VGZWUSDjIMNi4wMDAwMDAwMDAwEiYKEnNlbmRlckNoYW5nZUFtb3VudBIQMg40NDAuMDA4MjE1NDQwMBIdCgthbXVsZXRQcmljZRIOMgwwLjAwNTAwMDAwMDASMAoaaW5wdXRWYWxpZGF0b3JGYXVjZXRBbW91bnQSElIQCg4yDDAuMDAwMDAwMDAwMBI4CiJpbnB1dFVuY2xhaW1lZEFjdGl2aXR5UmVjb3JkQW1vdW50EhJSEAoOMgwwLjAwMDAwMDAwMDAS5QEKDmNyZWF0ZWRBbXVsZXRzEtIBWs8BCswBeskBCmUKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoNQ3JlYXRlZEFtdWxldBIaVHJhbnNmZXJSZXN1bHRMb2NrZWRBbXVsZXQaREpCMDBjYTQyYmNiNzEyYzM1NDUwYjM5MDQxNDU4ZDg0ZWI2NGY4YjVmZDhmZWQ2NGZkMjgxZmI0YmI5Yzg3MzVjNjAwEl4KEnNlbmRlckNoYW5nZUFtdWxldBJIUkYKREpCMDAzZDk3MDE2OTNiOGZhYzEyNjJiZjA3ODIxOGUwNWVmOTJjMTVmNDJkN2ZhYzc0MzkyMTg1NTYwOTJiNmY5NzBjEvACCgRtZXRhEucCUuQCCuECct4CCmkKQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoITWV0YWRhdGES8AEKBnZhbHVlcxLlAWLiAQowCiZzcGxpY2UubGZkZWNlbnRyYWxpemVkdHJ1c3Qub3JnL2J1cm5lZBIGQgQxMy4wCncKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvc2VuZGVyEk1CS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZAo1CidzcGxpY2UubGZkZWNlbnRyYWxpemVkdHJ1c3Qub3JnL3R4LWtpbmQSCkIIdHJhbnNmZXIawwwKATLCPrwMGrkMCgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkShdBbXVsZXRSdWxlc19Db21wdXRlRmVlc1KYB3KVBwpvCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaF0FtdWxldFJ1bGVzX0NvbXB1dGVGZWVzEs4CCgdjb250ZXh0EsICcr8CCmcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoPVHJhbnNmZXJDb250ZXh0EqEBCg9vcGVuTWluaW5nUm91bmQSjQFKigEwMDExZmM5NmNjZjM5YzlkMDdmMjdmYmYwNWU2NzA4MTNhNDQ0MzlmY2NkZmQ3N2Y5ZmYyZjI0MzgxN2I2NTQyYzdjYTExMTIyMDBiMjZmODJkY2UwYTA2M2U0YTEwMDEwYjY4ZjYzMGExNDE2NTllMDUxZTBhMDFjYTZjZjU2NzI3ZGRkZWYzMmUSGQoTaXNzdWluZ01pbmluZ1JvdW5kcxICagASFQoPdmFsaWRhdG9yUmlnaHRzEgJqABJXCgZzZW5kZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEpcCCgdvdXRwdXRzEosCWogCCoUCcoICCmYKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoOVHJhbnNmZXJPdXRwdXQSWQoIcmVjZWl2ZXISTTpLYWJjLTI6OjEyMjA3ZTk2YWRhMThhODQ1YWRmNGRjMDE0MTAyNjU2MzNkNTI2NmRjYTliYjI4MGM5OGUzNWMzNjkyZGI4N2QzZTM1EiIKEHJlY2VpdmVyRmVlUmF0aW8SDjIMMC4wMDAwMDAwMDAwEhkKBmFtb3VudBIPMg0yMC4wMDAwMDAwMDAwEl4KC2V4cGVjdGVkRHNvEk9STQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiYgEzapYBcpMBCnUKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxodQW11bGV0UnVsZXNfQ29tcHV0ZUZlZXNSZXN1bHQSGgoEZmVlcxISWhAKDjIMNi4yMDAwMDAwMDAwGu8DCgE3wj7oAxLlAwoDMi4xEooBMDAxMWZjOTZjY2YzOWM5ZDA3ZjI3ZmJmMDVlNjcwODEzYTQ0NDM5ZmNjZGZkNzdmOWZmMmYyNDM4MTdiNjU0MmM3Y2ExMTEyMjAwYjI2ZjgyZGNlMGEwNjNlNGExMDAxMGI2OGY2MzBhMTQxNjU5ZTA1MWUwYTAxY2E2Y2Y1NjcyN2RkZGVmMzJlGg1zcGxpY2UtYW11bGV0ImEKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5Sb3VuZBoPT3Blbk1pbmluZ1JvdW5kKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiGtUdCgEwwj7OHRrLHQoDMi4xEooBMDA0NTZlYWU2YWIyMjQ5ZWZiZmU3NGU5YTM4OThkY2E2NGU1NDg1ODBhMzBjNDFlNjI3MmYyM2Y0ZDdlOGQ5MmExY2ExMTEyMjA4YzA5OTc1MWYwMDJhODc4YWQ0MTM1NDY2MGY2Y2YxZTJiNWUxNTM3ODgxNTRmOGFmMDUxNDJjMTQzZGFkYjIzGg1zcGxpY2UtYW11bGV0In0KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSH1NwbGljZS5FeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMaGEV4dGVybmFsUGFydHlBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkQnsKQDU1YmE0ZGViMGFkNDY2MmM0MTY4YjM5ODU5NzM4YTBlOTEzODhkMjUyMjg2NDgwYzczMzFiM2Y3MWE1MTcyODESJlNwbGljZS5BcGkuVG9rZW4uVHJhbnNmZXJJbnN0cnVjdGlvblYxGg9UcmFuc2ZlckZhY3RvcnlKGFRyYW5zZmVyRmFjdG9yeV9UcmFuc2ZlclKbEXKYEQqEAQpANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaGFRyYW5zZmVyRmFjdG9yeV9UcmFuc2ZlchJcCg1leHBlY3RlZEFkbWluEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIS1wcKCHRyYW5zZmVyEsoHcscHCnQKQDU1YmE0ZGViMGFkNDY2MmM0MTY4YjM5ODU5NzM4YTBlOTEzODhkMjUyMjg2NDgwYzczMzFiM2Y3MWE1MTcyODESJlNwbGljZS5BcGkuVG9rZW4uVHJhbnNmZXJJbnN0cnVjdGlvblYxGghUcmFuc2ZlchJXCgZzZW5kZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkElkKCHJlY2VpdmVyEk06S2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNRIZCgZhbW91bnQSDzINMjAuMDAwMDAwMDAwMBLoAQoMaW5zdHJ1bWVudElkEtcBctQBCmwKQDcxOGEwZjc3ZTUwNWE4ZGUyMmYxODhiZDRjODdmZTc0MTAxMjc0ZTlkNGNiMWJmYWM3ZDA5YWVjNzE1OGQzNWISGlNwbGljZS5BcGkuVG9rZW4uSG9sZGluZ1YxGgxJbnN0cnVtZW50SWQSVAoFYWRtaW4SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhIOCgJpZBIIQgZBbXVsZXQSGAoLcmVxdWVzdGVkQXQSCSno96KIK0AGABIaCg1leGVjdXRlQmVmb3JlEgkpuNx6pj9ABgASqAEKEGlucHV0SG9sZGluZ0NpZHMSkwFakAEKjQFKigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkSswEKBG1ldGESqgFypwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI6CgZ2YWx1ZXMSMGIuCiwKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvcmVhc29uEgJCABLWBwoJZXh0cmFBcmdzEsgHcsUHCmoKQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoJRXh0cmFBcmdzEtAFCgdjb250ZXh0EsQFcsEFCm4KQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoNQ2hvaWNlQ29udGV4dBLOBAoGdmFsdWVzEsMEYsAECp4CCgxhbXVsZXQtcnVsZXMSjQJ6igIKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghBbnlWYWx1ZRINQVZfQ29udHJhY3RJZBqNAUqKATAwZGZlN2U4ZTk3ODdlNzU3NDY3N2U1NmQwZjlmNjdkNmVlYTkxMTAzNzdkZDc2OWM1MTkxYTRjNDg0NWQ5ZTJiZGNhMTExMjIwYzZlZDY2NmI3YmFhYTg3Y2I1NmYzYjQzOWQ3NmM1ZDI1YTNiNGJlNTRjY2YwYjdlMTYyZjFkYmY2MmEzZGFlNQqcAgoKb3Blbi1yb3VuZBKNAnqKAgppCkA0ZGVkNmI2NjhjYjNiNjRmN2E4OGEzMDg3NGNkNDFjNzU4MjlmNWUwNjRiM2ZiYmFkZjQxZWM3ZTgzNjMzNTRmEhtTcGxpY2UuQXBpLlRva2VuLk1ldGFkYXRhVjEaCEFueVZhbHVlEg1BVl9Db250cmFjdElkGo0BSooBMDAxMWZjOTZjY2YzOWM5ZDA3ZjI3ZmJmMDVlNjcwODEzYTQ0NDM5ZmNjZGZkNzdmOWZmMmYyNDM4MTdiNjU0MmM3Y2ExMTEyMjAwYjI2ZjgyZGNlMGEwNjNlNGExMDAxMGI2OGY2MzBhMTQxNjU5ZTA1MWUwYTAxY2E2Y2Y1NjcyN2RkZGVmMzJlEoMBCgRtZXRhEntyeQppCkA0ZGVkNmI2NjhjYjNiNjRmN2E4OGEzMDg3NGNkNDFjNzU4MjlmNWUwNjRiM2ZiYmFkZjQxZWM3ZTgzNjMzNTRmEhtTcGxpY2UuQXBpLlRva2VuLk1ldGFkYXRhVjEaCE1ldGFkYXRhEgwKBnZhbHVlcxICYgBiATFiATJiATRiATViATZiAjE0av0GcvoGCoUBCkA1NWJhNGRlYjBhZDQ2NjJjNDE2OGIzOTg1OTczOGEwZTkxMzg4ZDI1MjI4NjQ4MGM3MzMxYjNmNzFhNTE3MjgxEiZTcGxpY2UuQXBpLlRva2VuLlRyYW5zZmVySW5zdHJ1Y3Rpb25WMRoZVHJhbnNmZXJJbnN0cnVjdGlvblJlc3VsdBLXAwoGb3V0cHV0EswDeskDCowBCkA1NWJhNGRlYjBhZDQ2NjJjNDE2OGIzOTg1OTczOGEwZTkxMzg4ZDI1MjI4NjQ4MGM3MzMxYjNmNzFhNTE3MjgxEiZTcGxpY2UuQXBpLlRva2VuLlRyYW5zZmVySW5zdHJ1Y3Rpb25WMRogVHJhbnNmZXJJbnN0cnVjdGlvblJlc3VsdF9PdXRwdXQSIVRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfUGVuZGluZxqUAnKRAgquAQpANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaQlRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfT3V0cHV0LlRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfUGVuZGluZxJeChZ0cmFuc2Zlckluc3RydWN0aW9uQ2lkEkRKQjAwYTdiOTBmMmY4MjMyY2YzODc0YzgwNDU4Zjk5NjdhMDA1ZjI4ZTA3ZTUzZDFlZTEwY2U3YmFmNTk0OWQ2NzFlNxJcChBzZW5kZXJDaGFuZ2VDaWRzEkhaRgpESkIwMDNkOTcwMTY5M2I4ZmFjMTI2MmJmMDc4MjE4ZTA1ZWY5MmMxNWY0MmQ3ZmFjNzQzOTIxODU1NjA5MmI2Zjk3MGMStwEKBG1ldGESrgFyqwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI+CgZ2YWx1ZXMSNGIyCjAKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvYnVybmVkEgZCBDEzLjAaxAYKATnCPr0GGroGCgMyLjESigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkaDXNwbGljZS1hbXVsZXQiWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0KklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiKkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQySURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIyS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkSgdBcmNoaXZlUmVyYwphCkA5ZTcwYThiMzUxMGQ2MTdmOGExMzYyMTNmMzNkNmE5MDNhMTBjYTBlZWVjNzZiYjA2YmE1NWQxZWQ5NjgwZjY5EhREQS5JbnRlcm5hbC5UZW1wbGF0ZRoHQXJjaGl2ZVgBagIKABq3BgoBNcI+sAYSrQYKAzIuMRKKATAwMGFhODdhMTY0MjIwMmRlYzMyMDAwNjRkOTU4MDc4ZWMxZGY1YmI3Y2ZiMDI4N2MyN2NhNTA3YzJkMTE0ZTllYmNhMTExMjIwNGY0NWZjODlkMzdmN2U1MGNiY2U0NTI3ODA4NTdhOGVmMmRkNWM5YThhNGVmNWFhYTRjMGNmZjI4ZmI3YTM0ORoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmRCZwpANzE4YTBmNzdlNTA1YThkZTIyZjE4OGJkNGM4N2ZlNzQxMDEyNzRlOWQ0Y2IxYmZhYzdkMDlhZWM3MTU4ZDM1YhIaU3BsaWNlLkFwaS5Ub2tlbi5Ib2xkaW5nVjEaB0hvbGRpbmciIhIgx4D0qUq85aLjDcLW/xqgQlDU5EPy7kO44hBvtSdAPBIiJAgCEiAaTlp/nYjR3CjhJoCk3ZOAjaU5R8cTLJLWg6Z+L554VyIkCAYSIJDUE6VD1eRx/n2UBuUtsFvX/zc3HTzeKwPP6rMGxGIXIiQICRIgqiI4qhSuD5yIfh4mZYCdK1vF1YZ9CMHiEXKdxPwjQ8siJAgKEiAJygjowcASrLWmgPqSDvgzcxzMwsQ5qY0qFjBsS5HXBSIkCAsSIBdq09f6h0nrt8Cy2DrQGqzTnk22s5V2JQv3FF5dlQg4IiQIDBIgQ71KJaILts60r4bb45Fuxvg3lNygxOhgLd5JilpTChYiJAgNEiCPYYBtjtaHU7HB5H5ncMyOVX4X2dTVyePl3Lzb+0AZQCIkCA4SILDumoZ/Uoj3ouFJ2KSfYybDrI2ntoooLzAKADXFFDeZEod6EnMKS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIkYzJlNjUzNzQtNDg1OC00YTZmLThkZDMtZGRhNDU1ZDI1ZTZhGlNnbG9iYWwtZG9tYWluOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYiokZmViYzM5NDgtNTBiMi00MjA0LTk4ZmYtNmU5YmFiM2MyNGRiMPOKtsa4hZADOtAOCtMJCgMyLjESigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkaDXNwbGljZS1hbXVsZXQiWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0KqQFcqEFClkKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaBkFtdWxldBJSCgNkc28SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhJWCgVvd25lchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSlwMKBmFtb3VudBKMA3KJAwpfCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoORXhwaXJpbmdBbW91bnQSIQoNaW5pdGlhbEFtb3VudBIQMg41MDAuMDAwMDAwMDAwMBJ3CgljcmVhdGVkQXQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISiQEKDHJhdGVQZXJSb3VuZBJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAzODA1MTgwMDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmTAPprH4uC3hZAD0j7sBAoDMi4xEuQECkUACqh6FkIgLewyAAZNlYB47B31u3z7AofCfKUHwtEU6evKERIgT0X8idN/flDLzkUngIV6jvLdXJqKTvWqpMDP8o+3o0kSDXNwbGljZS1hbXVsZXQaWgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIGU3BsaWNlEgZBbXVsZXQaBkFtdWxldCLiAWrfAQpNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIKTwpNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQKPQo7ajkKEgoQMg41MDAuMDAwMDAwMDAwMAoLCglqBwoFCgMYzgIKFgoUahIKEAoOMgwwLjAwMzgwNTE4MDAqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDmaoxh8K0AGAEIqCiYKJAgBEiDIbmTsF2mLbs56uyDfkJkXTtqgBkwCHQDVA2WttnKwihAeOuYcCq8VCgMyLjESigEwMDExZmM5NmNjZjM5YzlkMDdmMjdmYmYwNWU2NzA4MTNhNDQ0MzlmY2NkZmQ3N2Y5ZmYyZjI0MzgxN2I2NTQyYzdjYTExMTIyMDBiMjZmODJkY2UwYTA2M2U0YTEwMDEwYjY4ZjYzMGExNDE2NTllMDUxZTBhMDFjYTZjZjU2NzI3ZGRkZWYzMmUaDXNwbGljZS1hbXVsZXQiYQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlJvdW5kGg9PcGVuTWluaW5nUm91bmQqkhJyjxIKYQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlJvdW5kGg9PcGVuTWluaW5nUm91bmQSUgoDZHNvEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIScwoFcm91bmQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISHQoLYW11bGV0UHJpY2USDjIMMC4wMDUwMDAwMDAwEhQKB29wZW5zQXQSCSmDaVNlK0AGABIbCg50YXJnZXRDbG9zZXNBdBIJKYP12awrQAYAEoUBCgppc3N1aW5nRm9yEndydQpaCkBiNzBkYjgzNjllMWM0NjFkNWM3MGYxYzg2ZjUyNmEyOWU5Nzc2YzY1NWU2ZmZjMjU2MGY5NWIwNWNjYjhiOTQ2Eg1EQS5UaW1lLlR5cGVzGgdSZWxUaW1lEhcKDG1pY3Jvc2Vjb25kcxIHGIColcbqBRLSCQoRdHJhbnNmZXJDb25maWdVc2QSvAlyuQkKZwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxITU3BsaWNlLkFtdWxldENvbmZpZxoOVHJhbnNmZXJDb25maWcSgQEKCWNyZWF0ZUZlZRJ0cnIKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaCEZpeGVkRmVlEhUKA2ZlZRIOMgwwLjAzMDAwMDAwMDAShwEKCmhvbGRpbmdGZWUSeXJ3Cl0KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGgxSYXRlUGVyUm91bmQSFgoEcmF0ZRIOMgwwLjAwMDAxOTAyNTkSwwQKC3RyYW5zZmVyRmVlErMEcrAEClwKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGgtTdGVwcGVkUmF0ZRIdCgtpbml0aWFsUmF0ZRIOMgwwLjAxMDAwMDAwMDASsAMKBXN0ZXBzEqYDWqMDCocBcoQBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISFgoCXzESEDIOMTAwLjAwMDAwMDAwMDASFAoCXzISDjIMMC4wMDEwMDAwMDAwCogBcoUBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISFwoCXzESETIPMTAwMC4wMDAwMDAwMDAwEhQKAl8yEg4yDDAuMDAwMTAwMDAwMAqLAXKIAQpUCkA1YWVlOWIyMWI4ZTlhNGM0OTc1YjVmNGM0MTk4ZTZlNmU4NDY5ZGY0OWUyMDEwODIwZTc5MmYzOTNkYjg3MGY0EghEQS5UeXBlcxoGVHVwbGUyEhoKAl8xEhQyEjEwMDAwMDAuMDAwMDAwMDAwMBIUCgJfMhIOMgwwLjAwMDAxMDAwMDAShQEKDWxvY2tIb2xkZXJGZWUSdHJyClkKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGghGaXhlZEZlZRIVCgNmZWUSDjIMMC4wMDUwMDAwMDAwEi4KHGV4dHJhRmVhdHVyZWRBcHBSZXdhcmRBbW91bnQSDjIMMS4wMDAwMDAwMDAwEhMKDG1heE51bUlucHV0cxIDGMgBEhQKDW1heE51bU91dHB1dHMSAxjIARIXChFtYXhOdW1Mb2NrSG9sZGVycxICGGQSqAMKDmlzc3VhbmNlQ29uZmlnEpUDcpIDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSMAoUYW11bGV0VG9Jc3N1ZVBlclllYXISGDIWNDAwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMDUwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuMTUwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwEoYBCgx0aWNrRHVyYXRpb24SdnJ0CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSFgoMbWljcm9zZWNvbmRzEgYYgJiavAQySURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWLAPoPHwIy0hZAD0j6mBwoDMi4xEp4HCkUAEfyWzPOcnQfyf78F5nCBOkRDn8zf13+f8vJDgXtlQsfKERIgCyb4Lc4KBj5KEAELaPYwoUFlngUeCgHKbPVnJ93e8y4SDXNwbGljZS1hbXVsZXQaYgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIGU3BsaWNlEgVSb3VuZBoPT3Blbk1pbmluZ1JvdW5kIuEEat4ECk0KSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYgoLCglqBwoFCgMYzgIKEAoOMgwwLjAwNTAwMDAwMDAKCwoJKYNpU2UrQAYACgsKCSmD9dmsK0AGAAoPCg1qCwoJCgcYgKiVxuoFCpsCCpgCapUCChYKFGoSChAKDjIMMC4wMzAwMDAwMDAwChYKFGoSChAKDjIMMC4wMDAwMTkwMjU5CqQBCqEBap4BChAKDjIMMC4wMTAwMDAwMDAwCokBCoYBWoMBCihqJgoSChAyDjEwMC4wMDAwMDAwMDAwChAKDjIMMC4wMDEwMDAwMDAwCilqJwoTChEyDzEwMDAuMDAwMDAwMDAwMAoQCg4yDDAuMDAwMTAwMDAwMAosaioKFgoUMhIxMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjAwMDAxMDAwMDAKFgoUahIKEAoOMgwwLjAwNTAwMDAwMDAKEAoOMgwxLjAwMDAwMDAwMDAKBQoDGMgBCgUKAxjIAQoECgIYZAqUAQqRAWqOAQoaChgyFjQwMDAwMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjA1MDAwMDAwMDAKEAoOMgwwLjE1MDAwMDAwMDAKEAoOMgwwLjIwMDAwMDAwMDAKEgoQMg4xMDAuMDAwMDAwMDAwMAoQCg4yDDAuNjAwMDAwMDAwMAoUChJSEAoOMgwyLjg1MDAwMDAwMDAKDgoMagoKCAoGGICYmrwEKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOYMjkEErQAYAQioKJgokCAESIO0fY7ymvrflHXvdmfRaWlT0oGGyenPoJ8ORWgqqLV5EEB460QgKjwUKAzIuMRKKATAwNDU2ZWFlNmFiMjI0OWVmYmZlNzRlOWEzODk4ZGNhNjRlNTQ4NTgwYTMwYzQxZTYyNzJmMjNmNGQ3ZThkOTJhMWNhMTExMjIwOGMwOTk3NTFmMDAyYTg3OGFkNDEzNTQ2NjBmNmNmMWUyYjVlMTUzNzg4MTU0ZjhhZjA1MTQyYzE0M2RhZGIyMxoNc3BsaWNlLWFtdWxldCJ9CkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEh9TcGxpY2UuRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzGhhFeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMq1gFy0wEKfQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIfU3BsaWNlLkV4dGVybmFsUGFydHlBbXVsZXRSdWxlcxoYRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiwD6rtIOvoICQA9I+sQMKAzIuMRKpAwpFAEVurmqyJJ77/nTpo4mNymTlSFgKMMQeYnLyP01+jZKhyhESIIwJl1HwAqh4rUE1RmD2zx4rXhU3iBVPivBRQsFD2tsjEg1zcGxpY2UtYW11bGV0Gn4KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSBlNwbGljZRIYRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzGhhFeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMiUWpPCk0KSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYipJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjkr2uAFAkAGAEIqCiYKJAgBEiDRn/8dILJok5hSCbO/ZG2q8F50JrDts+haNU3y8c6QbxAeOulDCrI0CgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcyqTMXKQMQpjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaC0FtdWxldFJ1bGVzElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEsQvCg5jb25maWdTY2hlZHVsZRKxL3KuLwpdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuU2NoZWR1bGUaCFNjaGVkdWxlErguCgxpbml0aWFsVmFsdWUSpy5ypC4KZQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxITU3BsaWNlLkFtdWxldENvbmZpZxoMQW11bGV0Q29uZmlnEs8JCg50cmFuc2ZlckNvbmZpZxK8CXK5CQpnCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhNTcGxpY2UuQW11bGV0Q29uZmlnGg5UcmFuc2ZlckNvbmZpZxKBAQoJY3JlYXRlRmVlEnRycgpZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoIRml4ZWRGZWUSFQoDZmVlEg4yDDAuMDMwMDAwMDAwMBKHAQoKaG9sZGluZ0ZlZRJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAwMDE5MDI1ORLDBAoLdHJhbnNmZXJGZWUSswRysAQKXApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaC1N0ZXBwZWRSYXRlEh0KC2luaXRpYWxSYXRlEg4yDDAuMDEwMDAwMDAwMBKwAwoFc3RlcHMSpgNaowMKhwFyhAEKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhIWCgJfMRIQMg4xMDAuMDAwMDAwMDAwMBIUCgJfMhIOMgwwLjAwMTAwMDAwMDAKiAFyhQEKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhIXCgJfMRIRMg8xMDAwLjAwMDAwMDAwMDASFAoCXzISDjIMMC4wMDAxMDAwMDAwCosBcogBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISGgoCXzESFDISMTAwMDAwMC4wMDAwMDAwMDAwEhQKAl8yEg4yDDAuMDAwMDEwMDAwMBKFAQoNbG9ja0hvbGRlckZlZRJ0cnIKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaCEZpeGVkRmVlEhUKA2ZlZRIOMgwwLjAwNTAwMDAwMDASLgocZXh0cmFGZWF0dXJlZEFwcFJld2FyZEFtb3VudBIOMgwxLjAwMDAwMDAwMDASEwoMbWF4TnVtSW5wdXRzEgMYyAESFAoNbWF4TnVtT3V0cHV0cxIDGMgBEhcKEW1heE51bUxvY2tIb2xkZXJzEgIYZBKfGAoNaXNzdWFuY2VDdXJ2ZRKNGHKKGApdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuU2NoZWR1bGUaCFNjaGVkdWxlEqYDCgxpbml0aWFsVmFsdWUSlQNykgMKYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIPU3BsaWNlLklzc3VhbmNlGg5Jc3N1YW5jZUNvbmZpZxIwChRhbXVsZXRUb0lzc3VlUGVyWWVhchIYMhY0MDAwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4wNTAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC4xNTAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDAS/xMKDGZ1dHVyZVZhbHVlcxLuE1rrEwr4BHL1BApUCkA1YWVlOWIyMWI4ZTlhNGM0OTc1YjVmNGM0MTk4ZTZlNmU4NDY5ZGY0OWUyMDEwODIwZTc5MmYzOTNkYjg3MGY0EghEQS5UeXBlcxoGVHVwbGUyEn4KAl8xEnhydgpaCkBiNzBkYjgzNjllMWM0NjFkNWM3MGYxYzg2ZjUyNmEyOWU5Nzc2YzY1NWU2ZmZjMjU2MGY5NWIwNWNjYjhiOTQ2Eg1EQS5UaW1lLlR5cGVzGgdSZWxUaW1lEhgKDG1pY3Jvc2Vjb25kcxIIGIDAz+DolQcSnAMKAl8yEpUDcpIDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSMAoUYW11bGV0VG9Jc3N1ZVBlclllYXISGDIWMjAwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMTIwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuNDAwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwCvgEcvUEClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISfgoCXzESeHJ2CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSGAoMbWljcm9zZWNvbmRzEggYgMDuobrBFRKcAwoCXzISlQNykgMKYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIPU3BsaWNlLklzc3VhbmNlGg5Jc3N1YW5jZUNvbmZpZxIwChRhbXVsZXRUb0lzc3VlUGVyWWVhchIYMhYxMDAwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4xODAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC42MjAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDAK9wRy9AQKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhJ+CgJfMRJ4cnYKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIYCgxtaWNyb3NlY29uZHMSCBiAgJvGl9pHEpsDCgJfMhKUA3KRAwpjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuSXNzdWFuY2UaDklzc3VhbmNlQ29uZmlnEi8KFGFtdWxldFRvSXNzdWVQZXJZZWFyEhcyFTUwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMjEwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuNjkwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwCvgEcvUEClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISfwoCXzESeXJ3CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSGQoMbWljcm9zZWNvbmRzEgkYgIC2jK+0jwESmwMKAl8yEpQDcpEDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSLwoUYW11bGV0VG9Jc3N1ZVBlclllYXISFzIVMjUwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4yMDAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC43NTAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDASoAgKGWRlY2VudHJhbGl6ZWRTeW5jaHJvbml6ZXISgghy/wcKiwEKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSIFNwbGljZS5EZWNlbnRyYWxpemVkU3luY2hyb25pemVyGiVBbXVsZXREZWNlbnRyYWxpemVkU3luY2hyb25pemVyQ29uZmlnEtwBChVyZXF1aXJlZFN5bmNocm9uaXplcnMSwgFyvwEKVQpAYzNiYjBjNWQwNDc5OWIzZjExYmFkN2MzYzEwMjk2M2UxMTVjZjUzZGEzZTRhZmNiY2ZkOWYwNmViZDgyYjRmZhIMREEuU2V0LlR5cGVzGgNTZXQSZgoDbWFwEl9qXQpbClVCU2dsb2JhbC1kb21haW46OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEgIKABJrChJhY3RpdmVTeW5jaHJvbml6ZXISVUJTZ2xvYmFsLWRvbWFpbjo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISogQKBGZlZXMSmQRylgQKfApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkRlY2VudHJhbGl6ZWRTeW5jaHJvbml6ZXIaFlN5bmNocm9uaXplckZlZXNDb25maWcStwIKFWJhc2VSYXRlVHJhZmZpY0xpbWl0cxKdAnKaAgp7CkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEiBTcGxpY2UuRGVjZW50cmFsaXplZFN5bmNocm9uaXplchoVQmFzZVJhdGVUcmFmZmljTGltaXRzEhMKC2J1cnN0QW1vdW50EgQYgOowEoUBCgtidXJzdFdpbmRvdxJ2cnQKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIWCgxtaWNyb3NlY29uZHMSBhiAsLT4CBIkChFleHRyYVRyYWZmaWNQcmljZRIPMg0xNi42NzAwMDAwMDAwEh4KGHJlYWRWc1dyaXRlU2NhbGluZ0ZhY3RvchICGAgSFgoObWluVG9wdXBBbW91bnQSBBiAtRgShgEKDHRpY2tEdXJhdGlvbhJ2cnQKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIWCgxtaWNyb3NlY29uZHMSBhiAmJq8BBKaAgoNcGFja2FnZUNvbmZpZxKIAnKFAgpmCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhNTcGxpY2UuQW11bGV0Q29uZmlnGg1QYWNrYWdlQ29uZmlnEhIKBmFtdWxldBIIQgYwLjEuMTMSHQoRYW11bGV0TmFtZVNlcnZpY2USCEIGMC4xLjEzEhkKDWRzb0dvdmVybmFuY2USCEIGMC4xLjE3Eh0KEnZhbGlkYXRvckxpZmVjeWNsZRIHQgUwLjEuNRISCgZ3YWxsZXQSCEIGMC4xLjEzEhoKDndhbGxldFBheW1lbnRzEghCBjAuMS4xMxISCgxmdXR1cmVWYWx1ZXMSAloAEg4KCGlzRGV2TmV0EgIQATJJRFNPOjoxMjIwMzJlMDQ1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";
2
+ export declare const GenerateTopologyResponse: {
3
+ partyId: string;
4
+ publicKeyFingerprint: string;
5
+ topologyTransactions: string[];
6
+ multiHash: string;
7
+ };
8
+ export declare const InvalidGenerateTopologyResponse: {
9
+ partyId: string;
10
+ publicKeyFingerprint: string;
11
+ topologyTransactions: string[];
12
+ multiHash: string;
13
+ };
14
+ export declare const PrepareSubmissionResponse: {
15
+ preparedTransaction: string;
16
+ preparedTransactionHash: string;
17
+ hashingSchemeVersion: string;
18
+ hashingDetails: string;
19
+ };
20
+ export declare const WalletInitRequestData: {
21
+ partyHint: string;
22
+ publicKey: string;
23
+ };
24
+ export declare const OneStepEnablement: {
25
+ partyId: string;
26
+ commandId: string;
27
+ };
28
+ export declare const OneStepPreApprovalPrepareResponse: {
29
+ preparedTransaction: string;
30
+ preparedTransactionHash: string;
31
+ hashingSchemeVersion: string;
32
+ hashingDetails: null;
33
+ };
34
+ export declare const InvalidOneStepPreApprovalPrepareResponse: {
35
+ preparedTransaction: string;
36
+ preparedTransactionHash: string;
37
+ hashingSchemeVersion: string;
38
+ hashingDetails: null;
39
+ };
40
+ export declare const CANTON_ADDRESSES: {
41
+ VALID_ADDRESS: string;
42
+ INVALID_PARTY_HINT: string;
43
+ INVALID_FINGERPRINT: string;
44
+ MISSING_PARTY_HINT: string;
45
+ MISSING_FINGERPRINT: string;
46
+ };
47
+ export declare const TransferAcceptance: {
48
+ partyId: string;
49
+ commandId: string;
50
+ contractId: string;
51
+ };
52
+ export declare const TransferRejection: {
53
+ partyId: string;
54
+ commandId: string;
55
+ contractId: string;
56
+ };
57
+ export declare const TransferAcknowledgeRequest: {
58
+ contractId: string;
59
+ senderPartyId: string;
60
+ amount: number;
61
+ updateId: string;
62
+ expiryEpoch: number;
63
+ };
64
+ export declare const TransferAcceptancePrepareResponse: {
65
+ preparedTransaction: string;
66
+ preparedTransactionHash: string;
67
+ hashingSchemeVersion: string;
68
+ hashingDetails: null;
69
+ };
70
+ export declare const TransferRejectionPrepareResponse: {
71
+ preparedTransaction: string;
72
+ preparedTransactionHash: string;
73
+ hashingSchemeVersion: string;
74
+ hashingDetails: null;
75
+ };
76
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qz+CAC6w+C,CAAC;AAErz+C,eAAO,MAAM,wBAAwB;;;;;CASpC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;CAOrC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;CAGjC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;CAM7C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;CAOpD,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;CAQ5B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;CAOtC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;CAM7C,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;CAM5C,CAAC"}