opnet 1.0.21 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/_version.d.ts +1 -1
- package/browser/contracts/ContractData.d.ts +5 -3
- package/browser/contracts/interfaces/IRawContract.d.ts +5 -3
- package/browser/index.js +1 -1
- package/browser/index.js.LICENSE.txt +2 -0
- package/browser/interfaces/opnet/OPNetTransactionTypes.d.ts +4 -1
- package/browser/opnet.d.ts +11 -6
- package/browser/providers/AbstractRpcProvider.d.ts +1 -1
- package/browser/scripts/testMethodsReg.d.ts +1 -0
- package/browser/transactions/Transaction.d.ts +4 -3
- package/browser/transactions/decoders/DeploymentTransaction.d.ts +17 -0
- package/browser/transactions/decoders/GenericTransaction.d.ts +6 -0
- package/browser/transactions/decoders/InteractionTransaction.d.ts +15 -0
- package/browser/transactions/decoders/WrapTransaction.d.ts +15 -0
- package/browser/transactions/interfaces/ITransaction.d.ts +8 -27
- package/browser/transactions/interfaces/transactions/ICommonTransaction.d.ts +7 -0
- package/browser/transactions/interfaces/transactions/IDeploymentTransaction.d.ts +13 -0
- package/browser/transactions/interfaces/transactions/IInteractionTransaction.d.ts +14 -0
- package/browser/transactions/interfaces/transactions/IWrapTransaction.d.ts +10 -0
- package/browser/transactions/metadata/TransactionInput.d.ts +16 -0
- package/browser/transactions/metadata/TransactionOutput.d.ts +19 -0
- package/browser/transactions/metadata/TransactionReceipt.d.ts +11 -0
- package/build/_version.d.ts +1 -1
- package/build/_version.js +1 -1
- package/build/contracts/ContractData.d.ts +5 -3
- package/build/contracts/ContractData.js +2 -0
- package/build/contracts/interfaces/IRawContract.d.ts +5 -3
- package/build/interfaces/opnet/OPNetTransactionTypes.d.ts +4 -1
- package/build/interfaces/opnet/OPNetTransactionTypes.js +2 -0
- package/build/opnet.d.ts +11 -6
- package/build/opnet.js +11 -6
- package/build/providers/AbstractRpcProvider.d.ts +1 -1
- package/build/providers/AbstractRpcProvider.js +1 -1
- package/build/scripts/testMethods.js +1 -1
- package/build/scripts/testMethodsReg.d.ts +1 -0
- package/build/scripts/testMethodsReg.js +10 -0
- package/build/transactions/Transaction.d.ts +4 -3
- package/build/transactions/Transaction.js +5 -3
- package/build/transactions/TransactionParser.js +8 -4
- package/build/transactions/decoders/DeploymentTransaction.d.ts +17 -0
- package/build/transactions/decoders/DeploymentTransaction.js +26 -0
- package/build/transactions/decoders/GenericTransaction.d.ts +6 -0
- package/build/transactions/decoders/GenericTransaction.js +6 -0
- package/build/transactions/decoders/InteractionTransaction.d.ts +15 -0
- package/build/transactions/decoders/InteractionTransaction.js +21 -0
- package/build/transactions/decoders/WrapInteractionTransaction.d.ts +15 -0
- package/build/transactions/decoders/WrapInteractionTransaction.js +21 -0
- package/build/transactions/decoders/WrapTransaction.d.ts +15 -0
- package/build/transactions/decoders/WrapTransaction.js +30 -0
- package/build/transactions/interfaces/ITransaction.d.ts +8 -27
- package/build/transactions/interfaces/IWrapTransaction.d.ts +3 -0
- package/build/transactions/interfaces/IWrapTransaction.js +1 -0
- package/build/transactions/interfaces/transactions/ICommonTransaction.d.ts +7 -0
- package/build/transactions/interfaces/transactions/ICommonTransaction.js +1 -0
- package/build/transactions/interfaces/transactions/IDeploymentTransaction.d.ts +13 -0
- package/build/transactions/interfaces/transactions/IDeploymentTransaction.js +1 -0
- package/build/transactions/interfaces/transactions/IInteractionTransaction.d.ts +14 -0
- package/build/transactions/interfaces/transactions/IInteractionTransaction.js +1 -0
- package/build/transactions/interfaces/transactions/IWrapTransaction.d.ts +10 -0
- package/build/transactions/interfaces/transactions/IWrapTransaction.js +1 -0
- package/build/transactions/metadata/TransactionInput.d.ts +16 -0
- package/build/transactions/metadata/TransactionInput.js +14 -0
- package/build/transactions/metadata/TransactionOutput.d.ts +19 -0
- package/build/transactions/metadata/TransactionOutput.js +16 -0
- package/build/transactions/metadata/TransactionReceipt.d.ts +11 -0
- package/build/transactions/metadata/TransactionReceipt.js +53 -0
- package/build/transactions/types/DeploymentTransaction.d.ts +16 -0
- package/build/transactions/types/DeploymentTransaction.js +24 -0
- package/build/transactions/types/GenericTransaction.d.ts +6 -0
- package/build/transactions/types/GenericTransaction.js +6 -0
- package/build/transactions/types/InteractionTransaction.d.ts +15 -0
- package/build/transactions/types/InteractionTransaction.js +21 -0
- package/cjs/_version.d.ts +1 -1
- package/cjs/_version.js +1 -1
- package/cjs/block/interfaces/BlockWitness.d.ts +11 -0
- package/cjs/block/interfaces/BlockWitness.js +2 -0
- package/cjs/contracts/Contract.d.ts +3 -1
- package/cjs/contracts/Contract.js +18 -12
- package/cjs/contracts/interfaces/IContract.d.ts +3 -1
- package/cjs/generator/WrappedGenerationParameters.d.ts +9 -0
- package/cjs/generator/WrappedGenerationParameters.js +18 -0
- package/cjs/opnet.d.ts +6 -1
- package/cjs/opnet.js +6 -1
- package/cjs/providers/AbstractRpcProvider.d.ts +8 -0
- package/cjs/providers/AbstractRpcProvider.js +63 -0
- package/cjs/providers/interfaces/Generate.d.ts +19 -0
- package/cjs/providers/interfaces/Generate.js +7 -0
- package/cjs/providers/interfaces/ReorgInformation.d.ts +5 -0
- package/cjs/providers/interfaces/ReorgInformation.js +2 -0
- package/cjs/scripts/ITestContract.d.ts +2 -2
- package/cjs/scripts/ITestContract.js +2 -2
- package/cjs/scripts/testContract.js +1 -1
- package/cjs/scripts/testMethods.js +8 -15
- package/cjs/transactions/TransactionReceipt.d.ts +3 -3
- package/cjs/transactions/TransactionReceipt.js +35 -16
- package/cjs/transactions/interfaces/BroadcastedTransaction.d.ts +7 -0
- package/cjs/transactions/interfaces/BroadcastedTransaction.js +2 -0
- package/cjs/transactions/interfaces/ITransaction.d.ts +2 -3
- package/cjs/transactions/interfaces/ITransactionReceipt.d.ts +9 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/AbstractRpcProvider.html +18 -18
- package/docs/classes/BaseContract.html +7 -7
- package/docs/classes/BitcoinAddress.html +2 -2
- package/docs/classes/BitcoinInterface.html +2 -2
- package/docs/classes/BitcoinUtils.html +2 -2
- package/docs/classes/Block.html +3 -3
- package/docs/classes/CallResult.html +2 -2
- package/docs/classes/ContractData.html +3 -2
- package/docs/classes/DeploymentTransaction.html +26 -22
- package/docs/classes/GenericTransaction.html +15 -13
- package/docs/classes/IBaseContract.html +7 -7
- package/docs/classes/InteractionTransaction.html +22 -20
- package/docs/classes/JSONRpcProvider.html +17 -17
- package/docs/classes/OPNetEvent.html +2 -2
- package/docs/classes/StoredValue.html +2 -2
- package/docs/classes/TransactionBase.html +15 -13
- package/docs/classes/TransactionInput.html +2 -2
- package/docs/classes/TransactionOutput.html +2 -2
- package/docs/classes/TransactionParser.html +2 -2
- package/docs/classes/TransactionReceipt.html +7 -7
- package/docs/classes/UTXO.html +2 -2
- package/docs/classes/WebSocketRpcProvider.html +17 -17
- package/docs/classes/WrapTransaction.html +229 -0
- package/docs/classes/WrappedGeneration.html +7 -7
- package/docs/enums/BitcoinAbiTypes.html +2 -2
- package/docs/enums/GenerateTarget.html +2 -2
- package/docs/enums/OPNetTransactionTypes.html +4 -2
- package/docs/functions/getContract.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/BaseContractProperties.html +2 -2
- package/docs/interfaces/BitcoinAbiValue.html +3 -3
- package/docs/interfaces/BitcoinInterfaceAbiBase.html +2 -2
- package/docs/interfaces/BroadcastedTransaction.html +6 -6
- package/docs/interfaces/ContractEvents.html +1 -1
- package/docs/interfaces/EventBaseData.html +2 -2
- package/docs/interfaces/FunctionBaseData.html +2 -2
- package/docs/interfaces/GenerationConstraints.html +7 -7
- package/docs/interfaces/IAccessList.html +1 -1
- package/docs/interfaces/IAccessListItem.html +1 -1
- package/docs/interfaces/IBlock.html +3 -3
- package/docs/interfaces/IBlockCommon.html +3 -3
- package/docs/interfaces/IBlockWitness.html +2 -2
- package/docs/interfaces/IBlockWitnessAPI.html +2 -2
- package/docs/interfaces/ICallRequestError.html +2 -2
- package/docs/interfaces/ICallResultData.html +2 -2
- package/docs/interfaces/ICommonTransaction.html +17 -15
- package/docs/interfaces/IContract.html +2 -2
- package/docs/interfaces/IDecodedEvent.html +2 -2
- package/docs/interfaces/IDeploymentTransaction.html +26 -22
- package/docs/interfaces/IGenericTransaction.html +14 -12
- package/docs/interfaces/IInteractionTransaction.html +22 -20
- package/docs/interfaces/IRawContract.html +3 -2
- package/docs/interfaces/IRawContractEvents.html +1 -1
- package/docs/interfaces/IStorageValue.html +2 -2
- package/docs/interfaces/ITransactionBase.html +14 -12
- package/docs/interfaces/ITransactionInput.html +2 -2
- package/docs/interfaces/ITransactionOutput.html +2 -2
- package/docs/interfaces/ITransactionReceipt.html +5 -5
- package/docs/interfaces/IUTXO.html +2 -2
- package/docs/interfaces/IWrapTransaction.html +228 -0
- package/docs/interfaces/NetEventDocument.html +5 -5
- package/docs/interfaces/ReorgInformation.html +2 -2
- package/docs/interfaces/WrappedGenerationParameters.html +6 -6
- package/docs/modules.html +3 -0
- package/docs/types/BaseContractProperty.html +1 -1
- package/docs/types/BitcoinAddressLike.html +1 -1
- package/docs/types/BitcoinInterfaceAbi.html +1 -1
- package/docs/types/BlockHeaderChecksumProof.html +1 -1
- package/docs/types/BlockWitnesses.html +1 -1
- package/docs/types/ContractDecodedObjectResult.html +1 -1
- package/docs/types/DecodedCallResult.html +1 -1
- package/docs/types/DecodedOutput.html +1 -1
- package/docs/types/GenerationParameters.html +1 -1
- package/docs/types/ICallResult.html +1 -1
- package/docs/types/ITransaction.html +2 -2
- package/docs/types/InteractionType.html +174 -0
- package/docs/types/PointerLike.html +1 -1
- package/docs/types/RawContractEvents.html +1 -1
- package/docs/types/UTXOs.html +1 -1
- package/docs/variables/version.html +1 -1
- package/package.json +6 -5
- package/src/_version.ts +1 -1
- package/src/contracts/ContractData.ts +11 -3
- package/src/contracts/interfaces/IRawContract.ts +7 -3
- package/src/interfaces/opnet/OPNetTransactionTypes.ts +7 -0
- package/src/opnet.ts +13 -6
- package/src/providers/AbstractRpcProvider.ts +1 -1
- package/src/scripts/testMethods.ts +54 -54
- package/src/scripts/testMethodsReg.ts +20 -0
- package/src/transactions/Transaction.ts +10 -3
- package/src/transactions/TransactionParser.ts +13 -10
- package/src/transactions/{DeploymentTransaction.ts → decoders/DeploymentTransaction.ts} +6 -3
- package/src/transactions/{GenericTransaction.ts → decoders/GenericTransaction.ts} +3 -3
- package/src/transactions/{InteractionTransaction.ts → decoders/InteractionTransaction.ts} +4 -4
- package/src/transactions/decoders/WrapTransaction.ts +69 -0
- package/src/transactions/interfaces/ITransaction.ts +16 -107
- package/src/transactions/interfaces/transactions/ICommonTransaction.ts +19 -0
- package/src/transactions/interfaces/transactions/IDeploymentTransaction.ts +50 -0
- package/src/transactions/interfaces/transactions/IInteractionTransaction.ts +50 -0
- package/src/transactions/interfaces/transactions/IWrapTransaction.ts +43 -0
- package/src/transactions/{TransactionReceipt.ts → metadata/TransactionReceipt.ts} +1 -1
- package/tsconfig.webpack.json +8 -0
- /package/src/transactions/{TransactionInput.ts → metadata/TransactionInput.ts} +0 -0
- /package/src/transactions/{TransactionOutput.ts → metadata/TransactionOutput.ts} +0 -0
package/cjs/opnet.d.ts
CHANGED
|
@@ -9,7 +9,11 @@ export * from './transactions/TransactionOutput.js';
|
|
|
9
9
|
export * from './providers/JSONRpcProvider.js';
|
|
10
10
|
export * from './providers/AbstractRpcProvider.js';
|
|
11
11
|
export * from './providers/WebsocketRpcProvider.js';
|
|
12
|
+
export * from './providers/interfaces/Generate.js';
|
|
13
|
+
export * from './providers/interfaces/ReorgInformation.js';
|
|
12
14
|
export * from './block/Block.js';
|
|
15
|
+
export * from './block/interfaces/IBlock.js';
|
|
16
|
+
export * from './block/interfaces/BlockWitness.js';
|
|
13
17
|
export * from './transactions/TransactionParser.js';
|
|
14
18
|
export * from './contracts/ContractData.js';
|
|
15
19
|
export * from './contracts/CallResult.js';
|
|
@@ -25,13 +29,14 @@ export * from './abi/BitcoinAbiTypes.js';
|
|
|
25
29
|
export * from './abi/interfaces/BaseContractProperties.js';
|
|
26
30
|
export * from './abi/BaseContractProperty.js';
|
|
27
31
|
export * from './utils/BitcoinUtils.js';
|
|
32
|
+
export * from './generator/WrappedGenerationParameters.js';
|
|
28
33
|
export * from './storage/StoredValue.js';
|
|
29
34
|
export * from './storage/interfaces/IStorageValue.js';
|
|
30
|
-
export * from './block/interfaces/IBlock.js';
|
|
31
35
|
export * from './transactions/interfaces/ITransaction.js';
|
|
32
36
|
export * from './transactions/interfaces/ITransactionReceipt.js';
|
|
33
37
|
export * from './transactions/TransactionReceipt.js';
|
|
34
38
|
export * from './contracts/interfaces/IRawContract.js';
|
|
39
|
+
export * from './transactions/interfaces/BroadcastedTransaction.js';
|
|
35
40
|
export * from './common/CommonTypes.js';
|
|
36
41
|
export * from './bitcoin/BitcoinAddress.js';
|
|
37
42
|
export * from './bitcoin/UTXOs.js';
|
package/cjs/opnet.js
CHANGED
|
@@ -27,7 +27,11 @@ __exportStar(require("./transactions/TransactionOutput.js"), exports);
|
|
|
27
27
|
__exportStar(require("./providers/JSONRpcProvider.js"), exports);
|
|
28
28
|
__exportStar(require("./providers/AbstractRpcProvider.js"), exports);
|
|
29
29
|
__exportStar(require("./providers/WebsocketRpcProvider.js"), exports);
|
|
30
|
+
__exportStar(require("./providers/interfaces/Generate.js"), exports);
|
|
31
|
+
__exportStar(require("./providers/interfaces/ReorgInformation.js"), exports);
|
|
30
32
|
__exportStar(require("./block/Block.js"), exports);
|
|
33
|
+
__exportStar(require("./block/interfaces/IBlock.js"), exports);
|
|
34
|
+
__exportStar(require("./block/interfaces/BlockWitness.js"), exports);
|
|
31
35
|
__exportStar(require("./transactions/TransactionParser.js"), exports);
|
|
32
36
|
__exportStar(require("./contracts/ContractData.js"), exports);
|
|
33
37
|
__exportStar(require("./contracts/CallResult.js"), exports);
|
|
@@ -43,13 +47,14 @@ __exportStar(require("./abi/BitcoinAbiTypes.js"), exports);
|
|
|
43
47
|
__exportStar(require("./abi/interfaces/BaseContractProperties.js"), exports);
|
|
44
48
|
__exportStar(require("./abi/BaseContractProperty.js"), exports);
|
|
45
49
|
__exportStar(require("./utils/BitcoinUtils.js"), exports);
|
|
50
|
+
__exportStar(require("./generator/WrappedGenerationParameters.js"), exports);
|
|
46
51
|
__exportStar(require("./storage/StoredValue.js"), exports);
|
|
47
52
|
__exportStar(require("./storage/interfaces/IStorageValue.js"), exports);
|
|
48
|
-
__exportStar(require("./block/interfaces/IBlock.js"), exports);
|
|
49
53
|
__exportStar(require("./transactions/interfaces/ITransaction.js"), exports);
|
|
50
54
|
__exportStar(require("./transactions/interfaces/ITransactionReceipt.js"), exports);
|
|
51
55
|
__exportStar(require("./transactions/TransactionReceipt.js"), exports);
|
|
52
56
|
__exportStar(require("./contracts/interfaces/IRawContract.js"), exports);
|
|
57
|
+
__exportStar(require("./transactions/interfaces/BroadcastedTransaction.js"), exports);
|
|
53
58
|
__exportStar(require("./common/CommonTypes.js"), exports);
|
|
54
59
|
__exportStar(require("./bitcoin/BitcoinAddress.js"), exports);
|
|
55
60
|
__exportStar(require("./bitcoin/UTXOs.js"), exports);
|
|
@@ -3,14 +3,18 @@ import '../serialize/BigInt.js';
|
|
|
3
3
|
import { Network } from 'bitcoinjs-lib';
|
|
4
4
|
import { BigNumberish, BlockTag, JsonRpcApiProvider } from 'ethers';
|
|
5
5
|
import { Block } from '../block/Block.js';
|
|
6
|
+
import { BlockWitnesses } from '../block/interfaces/BlockWitness.js';
|
|
6
7
|
import { BitcoinAddressLike } from '../common/CommonTypes.js';
|
|
7
8
|
import { CallResult } from '../contracts/CallResult.js';
|
|
8
9
|
import { ContractData } from '../contracts/ContractData.js';
|
|
9
10
|
import { ICallRequestError } from '../contracts/interfaces/ICallResult.js';
|
|
11
|
+
import { WrappedGeneration } from '../generator/WrappedGenerationParameters.js';
|
|
10
12
|
import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
|
|
11
13
|
import { StoredValue } from '../storage/StoredValue.js';
|
|
14
|
+
import { BroadcastedTransaction } from '../transactions/interfaces/BroadcastedTransaction.js';
|
|
12
15
|
import { TransactionBase } from '../transactions/Transaction.js';
|
|
13
16
|
import { TransactionReceipt } from '../transactions/TransactionReceipt.js';
|
|
17
|
+
import { ReorgInformation } from './interfaces/ReorgInformation.js';
|
|
14
18
|
export declare abstract class AbstractRpcProvider {
|
|
15
19
|
protected abstract readonly provider: JsonRpcApiProvider;
|
|
16
20
|
private nextId;
|
|
@@ -26,6 +30,10 @@ export declare abstract class AbstractRpcProvider {
|
|
|
26
30
|
getCode(address: BitcoinAddressLike, onlyBytecode?: boolean): Promise<ContractData | Buffer>;
|
|
27
31
|
getStorageAt(address: BitcoinAddressLike, rawPointer: bigint | string, proofs?: boolean, height?: BigNumberish): Promise<StoredValue>;
|
|
28
32
|
call(to: BitcoinAddressLike, data: Buffer | string, from?: BitcoinAddressLike, height?: BigNumberish): Promise<CallResult | ICallRequestError>;
|
|
33
|
+
sendRawTransaction(tx: string, psbt: boolean): Promise<BroadcastedTransaction>;
|
|
34
|
+
getBlockWitness(height?: BigNumberish | -1, trusted?: boolean, limit?: number, page?: number): Promise<BlockWitnesses>;
|
|
35
|
+
getReorg(fromBlock?: BigNumberish, toBlock?: BigNumberish): Promise<ReorgInformation[]>;
|
|
36
|
+
requestTrustedPublicKeyForBitcoinWrapping(amount: BigNumberish): Promise<WrappedGeneration>;
|
|
29
37
|
protected abstract providerUrl(url: string): string;
|
|
30
38
|
private bufferToHex;
|
|
31
39
|
private bigintToBase64;
|
|
@@ -8,9 +8,11 @@ const UTXOs_js_1 = require("../bitcoin/UTXOs.js");
|
|
|
8
8
|
const Block_js_1 = require("../block/Block.js");
|
|
9
9
|
const CallResult_js_1 = require("../contracts/CallResult.js");
|
|
10
10
|
const ContractData_js_1 = require("../contracts/ContractData.js");
|
|
11
|
+
const WrappedGenerationParameters_js_1 = require("../generator/WrappedGenerationParameters.js");
|
|
11
12
|
const StoredValue_js_1 = require("../storage/StoredValue.js");
|
|
12
13
|
const TransactionParser_js_1 = require("../transactions/TransactionParser.js");
|
|
13
14
|
const TransactionReceipt_js_1 = require("../transactions/TransactionReceipt.js");
|
|
15
|
+
const Generate_js_1 = require("./interfaces/Generate.js");
|
|
14
16
|
class AbstractRpcProvider {
|
|
15
17
|
nextId = 0;
|
|
16
18
|
constructor() { }
|
|
@@ -129,6 +131,67 @@ class AbstractRpcProvider {
|
|
|
129
131
|
}
|
|
130
132
|
return new CallResult_js_1.CallResult(result);
|
|
131
133
|
}
|
|
134
|
+
async sendRawTransaction(tx, psbt) {
|
|
135
|
+
if (!/^[0-9A-Fa-f]+$/.test(tx)) {
|
|
136
|
+
throw new Error('Invalid hex string');
|
|
137
|
+
}
|
|
138
|
+
const payload = this.buildJsonRpcPayload('btc_sendRawTransaction', [
|
|
139
|
+
tx,
|
|
140
|
+
psbt,
|
|
141
|
+
]);
|
|
142
|
+
const rawTx = await this.callPayloadSingle(payload);
|
|
143
|
+
const result = rawTx.result;
|
|
144
|
+
if (result && result.identifier) {
|
|
145
|
+
return {
|
|
146
|
+
...result,
|
|
147
|
+
identifier: BigInt(result.identifier),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
async getBlockWitness(height = -1, trusted, limit, page) {
|
|
153
|
+
const params = [height.toString()];
|
|
154
|
+
if (trusted !== undefined && trusted !== null)
|
|
155
|
+
params.push(trusted);
|
|
156
|
+
if (limit !== undefined && limit !== null)
|
|
157
|
+
params.push(limit);
|
|
158
|
+
if (page !== undefined && page !== null)
|
|
159
|
+
params.push(page);
|
|
160
|
+
const payload = this.buildJsonRpcPayload('btc_blockWitness', params);
|
|
161
|
+
const rawWitnesses = await this.callPayloadSingle(payload);
|
|
162
|
+
const result = rawWitnesses.result;
|
|
163
|
+
for (let i = 0; i < result.length; i++) {
|
|
164
|
+
result[i].blockNumber = BigInt('0x' + result[i].blockNumber);
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
async getReorg(fromBlock, toBlock) {
|
|
169
|
+
const params = [];
|
|
170
|
+
if (fromBlock !== undefined && fromBlock !== null)
|
|
171
|
+
params.push(fromBlock.toString());
|
|
172
|
+
if (toBlock !== undefined && toBlock !== null)
|
|
173
|
+
params.push(toBlock.toString());
|
|
174
|
+
const payload = this.buildJsonRpcPayload('btc_reorg', params);
|
|
175
|
+
const rawReorg = await this.callPayloadSingle(payload);
|
|
176
|
+
const result = rawReorg.result;
|
|
177
|
+
if (result.length > 0) {
|
|
178
|
+
for (let i = 0; i < result.length; i++) {
|
|
179
|
+
const res = result[i];
|
|
180
|
+
res.fromBlock = BigInt('0x' + res.fromBlock);
|
|
181
|
+
res.toBlock = BigInt('0x' + res.toBlock);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
async requestTrustedPublicKeyForBitcoinWrapping(amount) {
|
|
187
|
+
const payload = this.buildJsonRpcPayload('btc_generate', [
|
|
188
|
+
Generate_js_1.GenerateTarget.WRAP,
|
|
189
|
+
amount.toString(),
|
|
190
|
+
]);
|
|
191
|
+
const rawPublicKey = await this.callPayloadSingle(payload);
|
|
192
|
+
const result = rawPublicKey.result;
|
|
193
|
+
return new WrappedGenerationParameters_js_1.WrappedGeneration(result);
|
|
194
|
+
}
|
|
132
195
|
bufferToHex(buffer) {
|
|
133
196
|
return buffer.toString('hex');
|
|
134
197
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare enum GenerateTarget {
|
|
2
|
+
WRAP = 0
|
|
3
|
+
}
|
|
4
|
+
export interface GenerationConstraints {
|
|
5
|
+
readonly timestamp: number;
|
|
6
|
+
readonly version: string;
|
|
7
|
+
readonly minimum: number;
|
|
8
|
+
readonly transactionMinimum: number;
|
|
9
|
+
readonly minimumValidatorTransactionGeneration: number;
|
|
10
|
+
readonly maximumValidatorPerTrustedEntities: number;
|
|
11
|
+
}
|
|
12
|
+
export interface WrappedGenerationParameters {
|
|
13
|
+
readonly keys: string[];
|
|
14
|
+
readonly vault: string;
|
|
15
|
+
readonly entities: string[];
|
|
16
|
+
readonly signature: string;
|
|
17
|
+
readonly constraints: GenerationConstraints;
|
|
18
|
+
}
|
|
19
|
+
export type GenerationParameters = WrappedGenerationParameters;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenerateTarget = void 0;
|
|
4
|
+
var GenerateTarget;
|
|
5
|
+
(function (GenerateTarget) {
|
|
6
|
+
GenerateTarget[GenerateTarget["WRAP"] = 0] = "WRAP";
|
|
7
|
+
})(GenerateTarget || (exports.GenerateTarget = GenerateTarget = {}));
|
|
@@ -2,8 +2,8 @@ import { BaseContractProperty } from '../abi/BaseContractProperty.js';
|
|
|
2
2
|
import { BaseContractProperties } from '../abi/interfaces/BaseContractProperties.js';
|
|
3
3
|
import { BitcoinInterfaceAbi } from '../abi/interfaces/BitcoinInterfaceAbi.js';
|
|
4
4
|
import { BitcoinAddressLike } from '../common/CommonTypes.js';
|
|
5
|
-
export interface
|
|
5
|
+
export interface WBTCContract extends BaseContractProperties {
|
|
6
6
|
balanceOf(address: BitcoinAddressLike): Promise<BaseContractProperty>;
|
|
7
7
|
owner(): Promise<BaseContractProperty>;
|
|
8
8
|
}
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const wBTCAbi: BitcoinInterfaceAbi;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.wBTCAbi = void 0;
|
|
4
4
|
const bsi_binary_1 = require("@btc-vision/bsi-binary");
|
|
5
5
|
const BitcoinAbiTypes_js_1 = require("../abi/BitcoinAbiTypes.js");
|
|
6
|
-
exports.
|
|
6
|
+
exports.wBTCAbi = [
|
|
7
7
|
{
|
|
8
8
|
name: 'balanceOf',
|
|
9
9
|
inputs: [
|
|
@@ -5,7 +5,7 @@ const JSONRpcProvider_js_1 = require("../providers/JSONRpcProvider.js");
|
|
|
5
5
|
const ITestContract_js_1 = require("./ITestContract.js");
|
|
6
6
|
const provider = new JSONRpcProvider_js_1.JSONRpcProvider('https://testnet.opnet.org');
|
|
7
7
|
(async () => {
|
|
8
|
-
const contract = (0, Contract_js_1.getContract)('bcrt1pyrs3eqwnrmd4ql3nwvx66yzp0wc24xd2t9pf8699ln340pjs7f3sar3tum', ITestContract_js_1.
|
|
8
|
+
const contract = (0, Contract_js_1.getContract)('bcrt1pyrs3eqwnrmd4ql3nwvx66yzp0wc24xd2t9pf8699ln340pjs7f3sar3tum', ITestContract_js_1.wBTCAbi, provider);
|
|
9
9
|
const balanceExample = (await contract.balanceOf('bcrt1pyrs3eqwnrmd4ql3nwvx66yzp0wc24xd2t9pf8699ln340pjs7f3sar3tum'));
|
|
10
10
|
console.log('Balance:', balanceExample.decoded);
|
|
11
11
|
const owner = (await contract.owner());
|
|
@@ -3,20 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const Contract_js_1 = require("../contracts/Contract.js");
|
|
4
4
|
const JSONRpcProvider_js_1 = require("../providers/JSONRpcProvider.js");
|
|
5
5
|
const ITestContract_js_1 = require("./ITestContract.js");
|
|
6
|
-
const provider = new JSONRpcProvider_js_1.JSONRpcProvider('
|
|
6
|
+
const provider = new JSONRpcProvider_js_1.JSONRpcProvider('https://testnet.opnet.org');
|
|
7
7
|
(async () => {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
console.log('No events');
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
console.log('Events:', receipt, events);
|
|
19
|
-
const decodedEvents = contract.decodeEvents(events);
|
|
20
|
-
console.log('Decoded events:', decodedEvents);
|
|
21
|
-
}
|
|
8
|
+
const contract = (0, Contract_js_1.getContract)('tb1pq64lx73fwyrdp4asvl7xt5r5qvxvt9wy82x75taqtzvd64f58nasansurj', ITestContract_js_1.wBTCAbi, provider);
|
|
9
|
+
const myWBTCBalance = await contract.balanceOf('tb1pvajdvghss0tc737z72sq02cga9hd7wvdua9vcqj357a6yqhlhy4seud439');
|
|
10
|
+
if ('error' in myWBTCBalance)
|
|
11
|
+
throw new Error(myWBTCBalance.error);
|
|
12
|
+
console.log('My WBTC balance:', myWBTCBalance.decoded[0]);
|
|
13
|
+
const tx = await provider.getTransaction('9c20649349536e8a5fa3dcc7a4028e2ee0d67b08bd38b1358e53f75b6f86504d');
|
|
14
|
+
console.log('Transaction:', tx);
|
|
22
15
|
})();
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
3
|
-
import { ITransactionReceipt } from './interfaces/ITransactionReceipt.js';
|
|
2
|
+
import { ContractEvents, ITransactionReceipt } from './interfaces/ITransactionReceipt.js';
|
|
4
3
|
export declare class TransactionReceipt implements ITransactionReceipt {
|
|
5
4
|
readonly receipt?: Buffer;
|
|
6
5
|
readonly receiptProofs: string[];
|
|
7
|
-
readonly events:
|
|
6
|
+
readonly events: ContractEvents;
|
|
8
7
|
readonly revert?: Buffer;
|
|
9
8
|
constructor(receipt: ITransactionReceipt);
|
|
10
9
|
private parseEvents;
|
|
10
|
+
private decodeEvent;
|
|
11
11
|
}
|
|
@@ -12,27 +12,46 @@ class TransactionReceipt {
|
|
|
12
12
|
? Buffer.from(receipt.receipt, 'base64')
|
|
13
13
|
: undefined;
|
|
14
14
|
this.receiptProofs = receipt.receiptProofs || [];
|
|
15
|
-
this.events = receipt.events ? this.parseEvents(receipt.events) :
|
|
15
|
+
this.events = receipt.events ? this.parseEvents(receipt.events) : {};
|
|
16
16
|
this.revert = receipt.revert ? Buffer.from(receipt.revert, 'base64') : undefined;
|
|
17
17
|
}
|
|
18
18
|
parseEvents(events) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
const parsedEvents = {};
|
|
20
|
+
if (!Array.isArray(events)) {
|
|
21
|
+
for (const [key, value] of Object.entries(events)) {
|
|
22
|
+
parsedEvents[key] = value.map((event) => {
|
|
23
|
+
return this.decodeEvent(event);
|
|
24
|
+
});
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
for (const event of events) {
|
|
29
|
+
const parsedEvent = this.decodeEvent(event);
|
|
30
|
+
const contractAddress = event.contractAddress;
|
|
31
|
+
if (!parsedEvents[contractAddress]) {
|
|
32
|
+
parsedEvents[contractAddress] = [];
|
|
33
|
+
}
|
|
34
|
+
parsedEvents[contractAddress].push(parsedEvent);
|
|
27
35
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
}
|
|
37
|
+
return parsedEvents;
|
|
38
|
+
}
|
|
39
|
+
decodeEvent(event) {
|
|
40
|
+
let eventData;
|
|
41
|
+
let eventDataSelector;
|
|
42
|
+
if (typeof event.eventData === 'string') {
|
|
43
|
+
eventData = new Uint8Array(Buffer.from(event.eventData, 'base64'));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
eventData = event.eventData;
|
|
47
|
+
}
|
|
48
|
+
if (typeof event.eventDataSelector === 'string') {
|
|
49
|
+
eventDataSelector = BigInt(event.eventDataSelector);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
eventDataSelector = event.eventDataSelector;
|
|
53
|
+
}
|
|
54
|
+
return new bsi_binary_1.NetEvent(event.eventType, eventDataSelector, eventData);
|
|
36
55
|
}
|
|
37
56
|
}
|
|
38
57
|
exports.TransactionReceipt = TransactionReceipt;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { NetEvent } from '@btc-vision/bsi-binary';
|
|
3
2
|
import { BigNumberish } from 'ethers';
|
|
4
3
|
import { OPNetTransactionTypes } from '../../interfaces/opnet/OPNetTransactionTypes.js';
|
|
5
4
|
import { ITransactionInput, TransactionInput } from '../TransactionInput.js';
|
|
6
5
|
import { ITransactionOutput, TransactionOutput } from '../TransactionOutput.js';
|
|
7
|
-
import { ITransactionReceipt } from './ITransactionReceipt.js';
|
|
6
|
+
import { ContractEvents, ITransactionReceipt } from './ITransactionReceipt.js';
|
|
8
7
|
export interface ITransactionBase<T extends OPNetTransactionTypes> extends ITransactionReceipt {
|
|
9
8
|
readonly id: string;
|
|
10
9
|
readonly hash: string;
|
|
@@ -36,7 +35,7 @@ export interface IInteractionTransaction extends ICommonTransaction<OPNetTransac
|
|
|
36
35
|
readonly contractSecret: string | Buffer;
|
|
37
36
|
readonly interactionPubKey: string | Buffer;
|
|
38
37
|
readonly from: string;
|
|
39
|
-
readonly events:
|
|
38
|
+
readonly events: ContractEvents;
|
|
40
39
|
readonly receipt?: string | Buffer;
|
|
41
40
|
readonly receiptProofs?: string[];
|
|
42
41
|
}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { NetEvent } from '@btc-vision/bsi-binary';
|
|
3
3
|
export interface NetEventDocument {
|
|
4
|
+
readonly contractAddress: string;
|
|
4
5
|
readonly eventType: string;
|
|
5
6
|
readonly eventDataSelector: string;
|
|
6
7
|
readonly eventData: string;
|
|
7
8
|
}
|
|
9
|
+
export interface IRawContractEvents {
|
|
10
|
+
[key: string]: NetEventDocument[];
|
|
11
|
+
}
|
|
12
|
+
export type RawContractEvents = IRawContractEvents | NetEventDocument[];
|
|
13
|
+
export interface ContractEvents {
|
|
14
|
+
[key: string]: NetEvent[];
|
|
15
|
+
}
|
|
8
16
|
export interface ITransactionReceipt {
|
|
9
17
|
readonly receipt?: string | Buffer;
|
|
10
18
|
readonly receiptProofs?: string[];
|
|
11
|
-
readonly events?:
|
|
19
|
+
readonly events?: RawContractEvents | ContractEvents;
|
|
12
20
|
readonly revert?: string | Buffer;
|
|
13
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "data:application/octet-stream;base64,
|
|
1
|
+
window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACo3Y23KbOhQG4HfhOm3a9Jw7x+mBTqdmnPQw0+mFLFYS1YCoJNJ69vTd94CJrcPSkm6tn8+AkfSbH/8VBv6a4rxYXJSXzLDrXQ+6OCl6Zu6K8wK6odWn9tjjO9M2xUmxFV1dnL8+KXjDtC7OC6PrR0I/gr8GVMea4t/Jwb4QhkvRLTYC5b1h7xss5z10oJiBa6ZuwfiMOxpXVtVnMNeKdZpxI2SHnhMaipuLjTaKcbPueaXkvahBHcXpDoE+RUKu+PTMNi+YhqXspkNCzB4llfnm1rUCrRHHGc+Qys6AumEcotYhkaF9MaKJn9U0SiqN5Fvk8PFj6rgla5o16KFB7uxxjBTmez9ODMSwRinlEvpG7lro7Gct5NAY5U5zQXASDTOUWNKPY5n7PE4PxzynqLPDc5T88Wr1mZx/XoCypun/9h465FKPY5RwZaSC+itrBmSiWIOUYV34eHtDxwtkWmXXD8h1+YlMbTWYFLePZHoVUxr79YJIprcGDqKnT3DOUOKX6++r0Bg/pY76BpsrybdAbwxYilQV68nJ4wVSVg/1vHlGNSeSu2tVSvagjLC3V/GwObhb2DHq4mcvXqJFwptYtupmMrjDfrXYCHeehayfJXklWc2ZNlCjv5ato1EKf7hx00KE3183QmFTYrwcdzezLCdBUe+G7rAeRTU/RIHHx24pu7FAidj1okmKLhecg9afhDYoaI1nMqWBNkWNGZLzSo2tIMUGO3gp2zbypNmBNPRNmM6pjYE0J7KpRVWmtUVVkuC+ov0eQJu3SkmFi34qgxxbX/Sp9TI0N93g1LQPYwnUr1+uhbUvj7gELmuovWpjM3YiQZHd1TWT/dXDqQJry6kS67Gp9mnTOQ3U49fsD/0bWYFciFjgwxiJjq2T3UJ863QSJBVtprZGttM46NXTiIhU1Djpd9SIifXUOBoUy4iKlkuPddulDYUN0zs0WgZthSyELvjw5+ZS8qGNrRJ+iALXINVt2d1I1bLoGfohCgz6aMUUa8GAwqcJkSfrW1hPd0ffjC+EsAq788wnb149fXEWfSPzSWwhUINEpmm30whqR5LquCV/AFaDWt4B3+qhrZSUNwEdyWX585Zv/0ew1MNoyjq8cdlvX6vNL+DGf8Wzh4lo6lvmQ7DXR3s7CGSK/grlaOi6FEj0fNiDGXMgcMv41Zb511mia9TMxJem0LF25V0fTB1vOKVVclonsEloDaUUYrfeW6l9OhDHVT9Qpg9TR96D0s4tvmdKsE0D+nQecoVn9sG3YML+cjP/WdOn1rCLvHz+7+f/0FWqQ0sYAAA="
|
package/docs/assets/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "data:application/octet-stream;base64,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";
|
|
1
|
+
window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAACrV9XZPbNrL2X3lrfDs7Eb74kbtsdveszznvxpU4yalypVwciTPmWiPpUJQdb2r/+ykCBAU0u0GAoq8ysUD0QzQa3XjQaP5x1x4/n+++fffH3cfmsLv7VvD7u0P1Ut99e/epbs/N8XB3f3dp9/3/V21TPe7r8zfDLw8fupf93f3ddl+dz/X57tu7u3/f246KsZ8f3vyj7t621eFcbbvmeHj75VSfx17rw+Xl/A3aJtg/y0YB/1Ef6rbZRnf56vqA0/X93alq60NHIkZl/6U+7Y9fXvrnosV7z9yM4PWhq1vTKh6C/9DNGH5tq9MiHNMHb8by8+HzUjTYo8vw8E2ZM8UxJfVNR0hd/9w34NfwvOcFMvkcKGPfw+PfoK2CMhS7It8eD+euvWy7Y5vQ8yv/MXwQcfjOq264dHF0/Rh9t9u19fmciAU8ugKeT03bXar9AjiTJ1dAc+JduwCK/9gKOB6/dPX2uKtTQDjPrIDgc3X+/vhy6l+p3qXAgA+ugGWnG9ftm8vjf9VfUsBMnlwRzYJ5Mn10RYv+qU5TFHhuTSTVvvt7df6wCM312RUQPbXHlxQUQ/sVJDdJumh8DXTn3Z+a85+aw4e6bTqtnmUoPiRq4QMc+dWQNIdd/XvSkAwPfAUsj5f2UO/+3HTbY5Pi51/BB7/KOJ0uXdKiMj7xFdAcL10qnOsjXwGPiRfdyC8CkfvQV8D0XJ1/TvSR10e+Ap623tbNqUvBc33k6+F50x6PT0kzCT74FbDVn+pD2vQen/gqI/WpbhMVNzyxEhpnUzRs7kM7ommTVbZDRLdReyEEdbyDpgQneOd4+ahrphAk+eWEMUCdMjkMSR45HkXYHVNolvnilLFBPR89OEleLx4H5YIpIKn+Nx4J7XwpLOmeNx4N5XYpLKk+Nx4J5XApJKneNhkJ4Wpn8CT62XhUhJOl4CR62JTRQd0rPSxJvjWMw3GsLksZcK54s1UcbKDrKCdLvAHFClT7/a7qqjQY14fWwHCuDzvLAqHMRAgL8vAq4zLyL9u2nk7LGSX5j66Bp7m2Joi2ECTs6TVQhXnIEKI4IjINDconhUAECaVl84XiHWMmzBzxmDhj0hSSEEan4UBD6RCSpHA61YqwkDpsOSlhdRqacGgdQrUsvE4dKzSyDQ9WUnCbhocKtUOAUsPtNER0yB3ClB52p6GiQu8QptTwOw0RFYKHEKWG4YsQEaF4BK7EcDwNHRGSh2AlhuWpo4WG5uFhSgrP5/E4IXqfThGKzcHvqwTlWJ9R0TgESx1t14dq3/wLMVtUstv8Jrl9KsipOTz/ra6nEw4VDZ64SfquPh3PTffdy/FymM4vVDx8ZBX5RMwWBDATq0Ui+FRd9pFvbpveNs909B/5qtfGN8l8aQ7Ny+Xlp+b5UHWXNnaiYY+l4uAbeV03TlV7rndv28u5q3cJo4A8dtN4kFtufJHB9tqhtTQSxeymG0UT3G2vgGpm200tw9R+ewVE8xtvFFR4x70CrvDWG1+6yT33CnjQzTcKY7LrXnHeJC3loX33GjMnUi0JO+9IyeiWG5WdtNeOthhsk01YScruOlJ+eFuN4li2n44eD3TfSgxI0n41EgG1dUYhpO6ZIzHQm2UURfouORIHtT1GUaTuiyMxUBtiFEPqTjgNA7EFDiFJ3PtG4iE2vSiQxN1u9Iig21xiKJL2twEEzsbWafHn6jw1FPD7KhtbrE9yYzu84qk9dvUWvCIEH+8UUQgNvbWNlIQ6QVTWxAkueS/U6eGvNnF6C+SFnRwql3Zyi94X9SjEC08cygKJlBNDRWJObIFM2mmhUnGntUAu5aRQqZiTWiCTckqozFSnlIaBcEohJIlOKRIP4ZRQIIlOKXpEUKdEDEWSU6IRcOXcvHOave4NecSit7hP1bangmGj8O0uz6zb5rk5VHu3h128jFfU88QR6uRtgquN19pd4CNwUR3cCOy8bZtTN7JiCYimT94Kpf7fS33Y1kn68h66EUDntvu16Q7u1n8eCvH4AlB4EOebC2K686ayIIxzXjDmgCLaIIJ2GsaRZqMrmegMpDTzvNU6w2BiLfMGw5wBMG+Uq9hkGEWSPQbwUO7rB63zuQXCtIp3YE2MY3A6nYn/EcDBuQZI6Qj54LkFMDKlxHWI37/v3Ag5EcHD+HgskAfvBajdX5pOEEQPH5K09IC9FAGuMoRzPeus5iC6HX1FoCvB/EogP1X7S9L0sw8sMUDc04OVBVnmIlaVBb7efatEZx9eW/wxnZEcHs9ombMUSvwietsaOiM6av1MRJAme5FU7yx8ezz0e8VfUtQMnkFoweZT1dXReFwvTeX0uNacktczk1wz121Egs0EckqGzaz8qCybWAh4ms0shrhUm1QQAY9yS75NLAw/4WZWejjpJlYozLqZn34zmTexgunUm1kI8ek3sWAmeS+zGJJzX2KhkMkvs5AWJ8BEjxKeATM/VsuyYGJh0Wkws8iWp8LEgvNyT2bxJOWfxEIATPEsiNSE3YUny7M4kvOsbzpejoWTml59Y5ZQtHGlZgpFBwloMtd8lLAooSva5BOQpNweWpLENAsg7dLQokymiIUu6a7QTelMs2AWXhFalisRYddp9wGWpVZFaCjtOtDC/KpZHMn3khYnWc1CWXAdaWGm1SyU5FtIgcRvd3M5c6fbxbXgXnd8jHvbleqV7lTHAoq/V73KxerocYq8XL3W7epYXAk3rG+41ByLJnyx+abbaLEQkAD3BhChuDb1GuHtMAJR7bK7gyvYUyimXXr5PLj4rlEpIBbkwkB38YX5aKv/amDI6He9m/O3XJ2PXxaTQuI17s/HQlsYIN90dTZ+pUgLl2+62R+vy7SY9bbr/bGokkPpW+/4xwJbEFjfdtE/FlhymD0Ly4u2w/XaXZDpNduTPd8KBdOJF6KofqRGeSSgmDrlaWCI8u2ReCJLuKdBmtROjwQzWz89DQZRtDwSTGTh8mWQFmortnp5Gii0fHmigQVLmC+EA2uYp0Kaq2OeBovco6UUMw8uwSt8HSAS18JQe2n59UhUKYH28hrskWDSwuwbCrHHDk5akL1CNfbYRXtZiH1LWeZIZKkB9i1V4qO1mBbH3lQqPhJTcnB9Y734SFgLQuubisZHwkoOrG+qHB890xMPeFcoH58GLfWw95Ya8pHIUk/n5yB5G6Tvjy8v8ycRk1bxGyMyHMH7nGGLp3Bv2I8RCKL3YtFg5mMgAkpkYdJoIESsQ0hPiXOiIZAxDgEiLb6JHwkytqEGIy2uiQYyH9MQgBbGM9HAArEMgSg1jklQFhkvkNpKCxWioYRiFwJLctwSDSYcsxBwFsQr0YBCsQoBJzlOSZjAdIxCzuDE+CQVTCA2CUNKjUuigQViEgJRajwShOJcYfnPn374x4+n7Zv2+KnZ1dOrJuD3Va6vYH1GXV6BYInR7aVFyTQNY64xREo+pQzjK6c1ggGpsEKj8MscDr//HDsO/gOrYnmuuz/vj9uP/7i8PMaOy+SZuDmfiCgNy9dC8We89GIQy5/T8s4TEFX76rCdXgci0Yzt10by8/+8/WF6aZjCYVuvjQLboc1h8Z/5ioh+JKq1RAD7MdHjxuP7R919PrbxtnVtvzaS77HP81IwvofnSutg+Kk7ttVz/V28ktwnVkXTZxdGOmLTclXpfSrhj9XnZHtCn/sq6zBVpyC4EGMVCtbB9GN9bJ+jwdjWq6Jo+4oQ524oe/zm8rhvtv9Vf/nbsR22v78ONxTjYKZ0d+t7uAHud49nTSyFglykzSqBLtXvovJ62IukhqEkoORQNAHNof69Q+qQkFjG9jGBeRhHSihK4gmEozciScewpnQi9JzFgISfNyAhQs4gCiTsXI4ADzVD8qfh5nLpIZcYwkC5xFWQUKFlJCAsvFyOiwopQ2CwsHI5AjSUDImfhJPLZdMhZAgAHkYuRIGGjrRrg+HjQqkRISOJYSZsvHHdpELF2YVzrqBVGhY8RAyBmIaJC6UvDw1JeMvCw4X4QwTZbIiUQpIlYHq8PD3V7dvj35EKOCQm/6GV46XHvmRf9/bYlwbNZAIo+NzKuPoV5k31ZX+sdj81h+d9wtqMPbr2qF2a/e4/z8dD39aIStEn9vDtCL2PZ9WPPx23H+vgjghrtMqWiOw47ltaGHbq/P+MmTct37aPGe0UHORmjIaSvBubwRO9+M1DSln9UlDNbM5oYAsPC5ZgW4Dqq+IhNnDzqBIPEFKxEVu6MK7Eo4RETPgmL4go7VAhEU8orA2iWkKFLsdGbQRjIaYeNCQipbaGQXipRw6JmNDNYhBQ0uFDIhp6+xiElH4MkYIL3VAGAoOUA4kUHBFbTBrVDUcTS9Z6atM5v9inHlIkosO3oUFYaccVKXiWb0xpwOsfXMy80fV1/qM+1G3V1W+r9tmplFEfLi/nb/wfw7nB19zjX3/87s18R6+GZngUDmDhSc5Do+Z4+F4H9lVDZDyhDeNTnbvmpT531cspre9X7nPB1wRvQF20rNszkcgdAHF9agUIQ73GRAjXp1aA4NRv//+L0KAdrDc2v1T7Zld1x9ZZtq/9LBu52T7XgF/97ol6U7fDevTXQ9d0DV7WM4Q9psNlwN1FQC+N9e76yJuqrV7qrm5RwIHm8QvCR6LO6lznrz7OfdmXehNqSaAKzc4imf/QcyKUOjBLZtHUczNiAaBz6Os1s4jOs9/JWABpG3ZTs6D852+BxTdlzhRHXCliPn1dfNfUI03GtVIdj70+PB3bF3IdhG3S7iL59Mlct6/cR/CBnECmHNIxUfT1gRsFh8ISQvRsRBIS7jC8OFml/3UVDvfaUxRpa+BQN5Pq5vnDdHfqiBhbLOkd48fcvkOJDMGeT239qTlezroRSsM5YrDGt8r8/kO9/Xi+TL+4Tcl1Hlgg+7FBvoLniBp+X9Dz4YiRhU7XtsGCvmFUjvQ+F4IH+z83/wpCH35f0HP3+/derX6k82uTBf1/nrW7zzfY3blrm97R/TQ3Pn67JePUvAQlDL8v6Pml3jXV4e1M/16rBVK2g1X+eDwGtQHaLXqf9uO+npPjtVqkec0czonxmy2QM9zQmpPjN7tBP8QHSRENzRR3DM/m6xYyKAu0i5MEw0rjjepqV7ffu9hBaEk1iw4vXxv3oy+koVfenN/jw0oQOIT6mwshPICpN6inwoJVhSJE0aFFUG58kJEMYhJrxAOZjTpiwHjBR1B2MAyJEeVHI0FZ4bgkRliANJyKmwtUYgR68UpQWjByiREFA5igtLlQJkbg54QFYSa2iRpKLMQJD2lMsBM1tG5MEh7XUFwSIwoJgoICI8KhGLFoVBQUHBUfxb3xJEyaeePZgCluOk3jppnZNB9BxQjGAqmg4JiQKkXHgdv5pJbnCmjj4qdBCS014QAKi9nw/uLittcphAkhCIl4guUC4lkUSmBSxZiF1AohOxz5rARkPgaKjX6WAwrHQUQEtFzcTCxERUHLBc7GQ3QktFxoOCYioqHl4mbjIjoiWi50LjYio6IbhjUqPpqJjG4Y5mDIQkRHy8XFxEnBCGm56LhYaSZKuuXN5+OlYKR0yxSLiJnC0dJy4VFxUzhiul3nc7HTbNSUBGEaPw25Zd+9eU1juLZJial0LkJ0p6+uD4RiKgfuknNpXPT8YXSs8Ganj9rxYuSobOeJ20QfT4cafgR7Vrr/UDIAcjrNIoifSI/76Z2CYK+v/CciXor0ueZn4ou7U8Fu+zSxKLH760S8Q+eOP4ZHEv/U/ZuqPSNXNCYtwgSxdyWlb/82xH3jnb/CHsTHboo/EstSKIuQxJ7AExhiTuND4l2Ffz8UZP2L+y07K9/9cZWUgkmHUe/iYaTTetCatEHJUaVoY6QT39+ghUd+ciNGNvYhElpwzLdHYqROPu9Bi5z9okeMPLzMLy00rrpvjOThexs7x6KQMidTBNRzqyJBU1KisASPjhLQwC+rzIKY+5hKirV7XyuZN/XgB0qS5MLPkkTInvsSScqYx9t77NdiKOmuq6j2+x/rs5vtOsodf1rHTfjdxTmJKzpyKxeD/dXYbKkcUPWVkjPz3cx5OdV2W5/P/92c59/Ja7pU3k6v4oi9AWHXdkslndrjqW69TGZKmNc0QR64Idb9JfLlvKZL5T3qkglvjz83h674rm0rZPkEctFHJht85A47iiZzykr3NxON7Y8gni4HE2d/4/w6E+f7e5NxOTFj9cPjP+ttBxYPs1EJtAxKzJQS143l+/edW6o7rutX41MzayLyEvSr29a6MjlA5P126+tNO5t7IR8aeZ9hf5lsJ0lZD2PzCJEPAz6KnXj8Z7RY03aZTMenve6rl0zmvzVC79dVPNu0x0VFAn3YlH8gggQEQzX3OY4YeSPvESPRbXyDTLLqBiISLbeRLJHw7og8upY7skxTsj2/YTzrX6MRgPZpb01JThR8m9znuvvb4Ixi5PrNb7Ml8P5PzaHW30c9VHsrI1IJ1KOrzYv60A+37RqlcrD5iT21MqbXB9cJzoKxzVe2GOCLZyfu2H41HH1xg5SJDNrfgiMYSURCeHD/50/sYSbO8HsjO6KW2HfNYCy/xeB8b1u/v919urerQoHB6nFBfFjgpX5HzLxTe/y9eZpuMFD/OLSMmW63RCBxAUjo0PK2eCQ2HLkVARmdRAYnC+THxwsJ4cKKONJgrIoiFEssDyX+362TJLDaLV7sloACny4EK5//7aKIlS+4EJC9ze9EFs15Wl5ciLxkgkfJTBPpaUjzOrpmzV/b9oife8NG8Rqr0/p8ZdtTbwPRBt+qZ1i8KHYq3zaJfyNA/850OUcDQ6Rxu8U5oTOccKRQhBieExxBENPCIQP2GjkpMHzO68iDAm9OfDdie93VeGKu32RJ1zPdxnc5kE/0WuA2iJ+9gJULdvhqhpPzMeLhr/6SIe6xrz+tEvqC7qICXwdd+hECFBhxhDAvD+iHkjWjmXk5eoV4i23hoCi3ZVwQFSm9t/6f6n0dpU3sidXRxKO4TXrsoREUH3FohL+tux81Vehe05sa0CA+L8v7jHSwu/AXpCcQF+yDUalRe2FauO8cH5tIqaZlsjRvaD9UZ3rPgUr1n7hZOrHpokSHg9JYuZ/qtnn68l30SLvto7iHVBy/4KvzDJpfpov1MkxOfACbfffY9PsxzLETTeNjBv2fxI5fDQ/FTQCLnsrvJj6fHAQQZBbnAbiDbQ2pb0LtJ2Cb+OHVq1KFR3lor6+cJ/DXmwCmopvqS/W4R8cWl3x94DbB9NfCcbnIt8KXiA18GRyXi30XfIlgyoRwqRPbCUUYsRAoI8IhTKxnIQTXjLRTCNmQ12CNPc20w7nI2ceYqE1EXJIqo4RTekSEJymREj65LjBdOuGdgWmL6H3v8Kz1moFV3zZZzY95HUb5rxHlMr/lC4zxV4jASWT/3WPT79au9mDKNoNfw6M2dX0Rvb2KjTdHhKhEP9IMiIuKMRFZ3nRzOOw3062+qzO05SrUdaDrmw60nBdaSHKHkN18ypME7wZ0a4IDS+H0gS9wLUSaRN+iGubwz12zJzcd+seEPbouBvrzAa3PCHt85bcOGpoBuXin7ghN2KVDod6Hq2Dx3InoSYtVeEi817jvVU0gh7YMoPhwlPzEesMkYwYLRM8IT68JTUn2ynXPSE2r0E1JnN7xnRG7oNw0HdliNw0IuYllwAmz6b/lUu/84MsKdn5bxVRgf1FG4gKktrVH7SXm5V0bLpb1KWqkXtlmi+UQlY8ngmaKF8aMHl67cjp44apKuCT0/sKfm+fXCLs4kThpH0OoETjcs7bh+0XkjsNrEB/ywWkY7HF2Lvooo2ZjWGB4SkaJC1SXmsqbK6sZI/BEV7BARnSm7Bch0Jsazk1Hil+FbeInSIOXrMD6e9UEqlVAkJS2qOJYqMBwYdJIkc1h53ygdv4lh+a3CX28tId6N4SI8cLhY7eBaOtPdYubBip9bH/rgFMEJzXiQX4zVmyAWMXlzhGrsYL1eedbgmfBRbuP3Cb8uTr/fCbqzqCirw/cOrn8Dy1GzK60LysmAgkUFgrBSa0wFAkqkCyFoqEv2KTC8FyHDrWbLVYcxIU0bXazAyG6hD4k+JII+lS3QsFIK/4YD4R2NuSATPzNSlDmXRAFifZCK0ELOCYKE+KbVlMZ6TZonU0cx0pgQk6MQoP5sZXghF0bBQj3bitBCjk8ChDm81abyrQbpOdyoidMhhNwhjOgUv1hPLSAS6QwpXrFIJhJai/mFYfc3lhP6Dpbm/T2l+P28kIcF8A2SRkaaFGouc6ja0NN4Ednbc5CwNM3FwtHkzbjQJDZmzeBWQBiiXAvsvux+mzPdAIXRCatZk5pfAuhZRgzSezdgT8PfWHHruXCT8ETQfjQLOX2RXK/6JJPBfQW9xr7HQzEXCn6eChxuxwPw9y1kJRxiGE3wABEExyIcLy2JJxlljlOnGEL6ih6r5ZYSDFujkVLn5vet87uSPkzM3vxxJ4TPzOpF8/p+dcOzueg3GkJUeJyLSXcfybmGCQeT+iWLYVnJt0iGQ/hbef87Koh3aTj6HDOg0yd1OClPoPyI6t9xojHqn0GZccU/IwRPCn4GZQ6W/MzRiRe8zMoN67sZ4zwcNnPIIi0yp8LwZBfTImBE/5uXDwgWPwzBsdc/c8Y8Wj9z6glIFgCNEk0LAEaJ36uCmjK4CetA7GFQAkAXvJle6x226qvxD9DkuMt41f780XfwE3s+tX1MSILDX8BMr6gLo6HMMzcH0+DQN7GDyEIX8lPA3Cq3Y/RRwKwD60BwHwC4anB0zJCKLwnF0IhcukHW/rv5iOszThtkEQivDE5JUjHzi9JPQ73T8mb+ZPfU5NdqZLE/s/xCa/N+Zdq3+zeVn02CFnWHen9FfVkON98aBa4Ivvm8rhvtlitawwFfOJm6SYUTxLvPnKr/F+bp2jBpm2ixMTEY09oQurxVLC3zvTJp2+qJk7s+2vjmK1TJIIufcq/nzyzIp4T/3z6+CEJDnxkPTSHuvt8bD9Gwbi2vUk+zziTzuWgdPUEtLMEQbpCaH0skp+0EJ5uWASB3LQl8LTW8vdcd2/4r2/+6+8pQ448dNssBIgWOEbsqfUwveuOP3Vtc3h+Wz0jpczQVev6xPsF67YThPz89n9+mMjs/3EV/njsKMrRaCzUzcLgR0SucmC7dEkmweG1l1ozleO3SpeCZ9Ff+w/nKod6Pm/bnpzGPy5yFQCaRcmBsXH/Mzym0/8Wf4LmzT93Hz47ByOmB9pf5BR5nTpHcGEx8yQoik5wj50swe7R2YJLiZoxg7Df7ofktG//GL9a++0dfxAP5d393VNT73fnu2/fGRT3d9vjiz5+/m347Rd9Zt63ME2+2dzdv9vcy/yBZeVvv92/s0/oH/Q/6Gbs7v4du882DyzjXjPmNeN39+841ox7zcTd/TuBNRNeM3l3/05izaTXTN3dv1NYM+U1y+7u32VYs8xrlt/dv8uxZrnXrLi7f1dgzQqvWXl3/668F/yBc394S394+9Fmm3u5ecg3YICBIrQm2L0sH1iu/Ja+Llg/5oyjLX11sH7YmUBb+hph/cgzeS/ZQ74RfktfKawffKbQPn29sH78WYa29FXDehWwHG3pa4f1WmAF2tJXEOsVwcp7yR8KlvktfR3xXhF8cy/Kh7z03537OuK9Iji7F/mDBNI5sBdtMPxeFA+s8CcI93XEe0VwgUr3dcR7RXDZ91kq0KevI94rgiu0pa8j3iuCZ6h0X0e8VwTP0Za+jnivCF6g7+7riPeK4CXa0teR6BUhNvcie2CFL134OhK9IgTD+hS+jkSvCIGuagIsa4KyduGrSEhyKglfRUKRU0n4KhIZOZWEryKRk1NJ+CoSBTmVhK8iUZJTSfgqkhtyKklfRZKRU0n6KpKcnErSV5EU5FSSwPlIcipJX0dSkVNJ+jqSvSIE6vmkryOZU1NJ+iqSvR6ExFY66atI9noQ6IosfRUpbUXoiqx8FSltReiKrHwVKU56DuWrSAlyRVa+ipQkvaYCIYIiDU75KlIZaXDKV5HKSYNTvo5UQRqc8nWkStLglK+jbEMaXObrKGOkwWW+jjJOGlzm6ygTpMFlvo4ySRpc5usoU6TBZSCSy0iDy3wdZb0iBBqnZb6OsoIyuMxXUabNqLxX6mGjAExfRXmvB7nBWua+ivJeD5KhLX0V5b0eJEdb+irKez1INKjLfRXlOs6WaJ++ivJeD1KhLX0V5b0eJBpu5yDezskFLPdVlBfkApb7OspLcgHLfR0VG3IBK3wdFYxcwApfRwUnF7DC11EhyAWs8HVU0BFD4euooCOGwtdRQUcMha+jgo4YCrAtoiOGwtdRQUcMha+jko4YSl9HJR0xlL6OSjpiKH0dlXTEUPo6KumIofR1VNIRQ+nrqNR2hO5HS19HJRkxlL6KyoKcSiXYvJbkVCrh/nVDziXzm9uWkbPJ/Oa25eR8Mr+5bQU5o8xvbltJzinzm9tWkbPK/Oa2zch5ZX5z2+bkzDK/uW0Lcm6Z39y2JTm7zG9OW80uSNRBsgnzoL0U6vkY5B40w6BQ38cg+6A5BoV6Pwb5B80yKNT/MchAaJ5BCbwt0JtmGhRKNjHIQjDS0hikITTZQA0ZUJumG6ghA2rThAMxZICMYJpyIIaMQ8qI00MGCAmmaQeFEm8MUBLMcBL48gBICaapB4XzQYCWYJp8UDgjBIgJpukHhU91QE0wTUCoEm8L9KYpiAzlUBmgJ5gmITJ2L9WDLAu/LSAomKYhMpR3YICiYJqIwKekgFyfCEAAahMBtQGigomA2gBVwTQhkaH7YAbICqYpiQy3TEBXME1KZPiUBIQFE3QczwBlwSQdyTNAWjBJx/IM0BZM0tE8A8QFk3Q8zyRkaemIngHygkk6pmeAvmCGv0BjdQYIDKZ5CjxaZ4DDYIbEwOcOYDGYoTFwkwc8BtNsBUHuAiaDGSoD97CAy2CKjh4ZYDOYouNHBvgMFiA0mIL8uqKpeMBpMENqoCEfA6wGM7QGGvQxwGswQ2zg6wNgNpihNvCoD3AbTDMYRAQD2A1m6A08QgT8BjMEBx4hAoaDGYoDjxABx8EMyYFHiIDlYJrLyNCdMcvgyUjA3gDTwbKAvQGug2UBewN0B8sC9gYID5YH7A1QHiwP2BsgPVgesDdAe7A8YG+A+GB5wN4A9cHygL0B8oPlAXvL4ZlWwN4AAcLygL0BCoTlAXsDJAgrAvYGaBBWBOwNECGsCNgboEJYEbA3QIawImBvgA5hmvTI0B00A4QI07QHMR8AJcI08UEcrwJShGnqgzi0BbQI0+QHcRgLiBGm6Q/ikBVQI0wTIMQxKyBHmKZAiINWQI8wTYIQR62AIGGaBqEOW4HeyoC9AZKElQF7AzQJKwP2BpgSVgbsDXAlrAzYG2BL+Ia2Nw7YEr6h7Y0DtoRvaHvjgC3hG9reOGBL+Ia2Nw7YEm7YEvxYF7Al3LAl+MEuYEu4ZkRwf8EBW8I1I5KhWz0O2BK+oRMAOGBLeCBNgwO2hDOaL+aALeGaESFSCwBbwjUjQiUXAL0xev/GAVvCNSNCJBgAtoQz+gCGA7aEa0qEmL+ALuGaEiHmL6BLuKZEiPkLMzdM6gY+f2HuhknewOfvJHuD0/MX5m9oSoSYvzCDQ1MiGUo/cJjDoSkRdOvPYRKHZkTyDd4tUJtmRHKGsRocJnJoRiTn94o9ZJNhAGrTjEgu8LZAbZoRySXaFrAlXDMiucLbArVpSiTP8LYw7aZXTZ7jbYHaNCWSF3hboDZNieQl3hboTVMixQZvC/SmKZGC4W2B3jQlUuB6A3QJ15RIgesN0CVcUyIFrjdAl3BNiRS43gBdwjUlUuB6A3QJ15RIgesN0CVcUyIF7i4AXcIlbW6ALeGaESFMCLAlXDMiBW7xgC3hmhEhTAiwJVwzIoQJAbaEa0aEMCHAlnDNiBAmBNgSrhkRwoQAW8I1I0KYEGBLuGZECBMCbAnXjAhhQoAt4ZoRIUwIsCVcMyKECQG2hGtGhDAhwJZwzYgQJgTYEq4ZEcKEAFvCNSNCmBBgS7hmRAgTAmwJ14wI4QIAW8I1I1LibgiwJVwzIiWaecwBW8I1I1Li6ceALeGaESlRBpoDtoSb1BCUgeaALeEZmfDLAVnCNSFSomQ1B2QJ14QIsZQAsoRrQoRQBSBLuCZEiKUEkCVcEyLEUgLIEq4JEWIpAWQJ14QIsZQAsoRrQoRYSgBZwjUhQiwlgCzhmhAhlhJAlnBNiBBLCSBLuCZEiKUEkCVcEyLEUgLIEq4JEWIpAWQJ14QIsZQAsoRrQoRYSgBZwjUhQiwlgCzhmhAhlhJAlnBNiJQoQcoBWcI1IVKi5A4HZAnXhEiJe3lAlnBNiJTo4RAHZAnXhAh6/McBV8INV7LBlz5AlnBDlmzwtQ+wJdywJRt88QN0CS8NzYWvfoAv4ZoTYRt8+QOECdekCNugp0kcMCZcsyL4iRYHjInYmJ13hnUsAGUiNC3CNuh0E4AzEZoXYZsC7xkkeG+MAtE4TQDWRGhmhDFU2wLQJkJTI4yh2haANxGaG2EMz0kHxInQ5Ag+lwUgTsTGEJX43RzAnIgN6esEIE6EIU56NmRqJQIwJ4LR1ycEYE6EueTC0BVLAOpEmHsuDF2yBOBOhLnqwvBJBMgTYW67MNTZCMCeCM2QoAuGAOSJMDdeGOqYBGBPhLn0wlHPJAB9Isy9F466JgH4E6E5EsZR3yQAgSI0ScI46pwEYFAEN5eUUO8kAIUiNE3COK5swKEIzZMwjisbkChCMyWM48oGNIrQVEl/1RdtDDTIzTEBrkFApAhNljCBJhoIwKQIbg4K8BUD3ovRdAkjbrHAqzGCBawV3o7RhAlhrZP7MSJgrfCOjJABa4XXZIQKWCu8KSOygLXCyzKaNMGtFd6WEUXAWuGFGVEGrBUwKkJuAtYKKBUhWcBaAaciJA9YKyBVhBQBawWsipAyYK2AVhFSBawVECtCZgFrBcyKkHnAWgG1ImQRsFbArQhpDBB3loBcESYVhTBtwK4IFTJAQK8IFTBAQK8IFTJAwK8IFTJAQLAIFTJAwLAIFTJAQLEIRRsgYFiEChkgoFiEChkg4FhEFjJAQLKILGSAgGURWcgAAc0ispABAp5FZCEDBESLyEIGCJgWkYUMEFAtIgsZIOBaRBYyQEC2iMwYILo1EYBuESY3RaB8iwB8i8hDOwhAuAhNqjCB7lgFYFxEbu5ao1tWASgXYfJT8PtLAnAuwiSoCHxvAkgXoYkVJvG9CWBdhGZWmMQjDUC7CE2tMIlHGoB3EZpbYRJfQgHxIjS50lffwRoD5kVodgXfnADiRZj7OhKfGYB5EQV9xxcQL6Kgs4sEIF5EocgMEQGIF2GyVNDMEwGIF2GyVNA9tgDEizBZKuiJtQDEizBZKhLfjwPmRZg0FZmjjQH1IkyeCprTIgD1IgJ5KgJwLyKQpyIA9SIM9YLmygjAvIghTwW3UcC8CE2u4LMH8C7C8C4SXwkB7yJK+nqIALSL0NQKwy8aCMC7SMO7KNT0JeBdpOFd8KsGEvAu0vAu+F0DCXgXaXgX/H6GBLyLNLwLfjNBAt5FGt5FoYu3BLyL3NDXDSSgXaSmVphCF3oJeBepqRWqY3CN2ySsKHQmS0C8SEO84DcZJCBepElZyVCnIAHzIhl55UAC3kVqagW/ISEB7SIN7ZKh+fMS0C5SMyv4sYgErIs0OSv4fX5Au0hDu2ToEisB7SIN7ZIJHAVQnqFdMjQ1XwLaRRraBb/PIAHtIg3tgicWS0C7SEO74FmREtAu0tAueDqVBLSLNLQLnrsiAe0izVUffNoD1kUa1iVHly0JWBdpWJccX7YA6yI5efVbAs5FGs4lR4MbCTgXaS774NMeUC7SUC7EtAeUizT5K/i0B5SLNJQLMZUB5SIN5UJMZUC5SEO5EFMZUC5ShLQHKBcpjPbwOhmAdJHmzg8xykB9hnOhBgOoz3AuxGDAUiWGc8lxBwWrlRjOJUdPSSQsWGI4lxy360nNEkkHDRKWLZF0wQUJC5cYygUPGiSsXWIolxxfXWD9EkO55PjqAkuYGMolx1cXQLlIQ7kUuDsDlIs0lAvhVQHlIk0xkwJfXgDnIhW5Y5CAcZGGcSECKMC4SMO4UIiB/gzjUhA9A/1pWoUVeGgGOBdpOJcCXwYA5yIN50IEfYBzkYZzKXD3BzgXaTgXNI1XAspFZnToAggXaQiXArc+QLhIQ7gU+LwHhIs0hAuedSYB4SIN4YLnh0lAuEhDuOAJNhIQLtIQLniGjQSEizSES4mvn4BwkcNlIHTvKQHhIg3hgifZSEC4SEO44KkzEhAu0hAueD6BBISLzOnaaRLwLTKnq6dJQLdIQ7cQAwfoFmnoFmrggP4M3YKnQEhAt8g8tHUAdIs0dAuBGdAt0lRHITADwkUOBVLwqQ8IF2lqpJT41AeUizSUC4UZKNBwLhRmoEFTLAVP3ZCAdZGmXgqeuiEB7SJNyRQ8dUMC3kWaqil46oYEvIssAwEooF3kcD0IHznAu0jDuxChESBepCmggieQSMC8yNLUucFNG1AvsjRVvXDTBtSLpKkXCagXaa4IbXCbAtSLLOndA2BepGFe8FQTCZgXFcp4UYB5UUPGCxpRKsC8qCHjBSW3FWBe1Ia+dq4A8aLMNaENatcKEC9qQyZSK0C7KHNNaIOmsCjAuyhNreD1DRSgXdSQ7oKesynAu6iNqYaDhsAK8C5KUyscT+dRgHdRQ8ILugIowLuo4a4QPhiAeVGMLvagAPOihoQXfDAA86LMbSFiMAD1opipqYcuWgpwL8rcF8JL9QHqRZn7QnixPsC8KHNfCC/XB4gXZe4L4QX7AO+iOF1IVAHaRXG6mpECrIvidDUjBUgXxelqRgpwLorT1YwU4FwUp6sZKUC5KE5XM1KAcVGcpqsVoFyUKf7KUPehAOWiBF2jVwHKRQk6zUwBxkUJuk6vAoyLEnSlXgUIF6U5FWLyAL5FmVKw+OQBdIsyxWDxyQPYFmXKweKTB5AtyhSExScPIFuUKQmLTx7AtShTFBafPIBqUZIuHKAA06JMYViGVwcHTIsytWEZGk4owLQoGao9CjRnklvwzbcCTIsyTAu++VaAaVGGacE33wowLUqa1RINaxRgWpQ0Zof7clgvVhlvh8boCpaM1WQK52gkrWDV2EClFQXrxgYqrShYOVbRtfrUpHYsXa1PweqxptIKx/0+LCCryEJiClaQVXSxbAVryCq6XLYCHIvK6ILZClAsKgt4OkCxKFNpheMhDSBZlCFZ8O2EAiSLMrVWOB5MAJJFGZIFt1LAsSjDsaBH8ApQLCqjiz8owLAow7DgETQgWJQhWPAqyYBfUYZfwY/gFeBXlOFX8CN4BfgVZfgV9AheAXpFGXoFrwAN2BVl0llQ9kEBdkWZbBa8BjVgV5Qpt8LxEAGwK8rUW+G4SwDsihqSWVA+XQF2RRl2Baf1FWBXVGEKZuLOBrArytRc4fjKDdgVZYqucHzlBuyKMlVXOL5yA3ZFmbIrAl+5AbuiTB1aPD1ZAXZFGXYFT09WgF1RQzVafAUA7Ioy7AqeI6YAu6IMu4LniCnArihznwhdvQG5okxdWjxDTAFyRZnStAI3VUCuKEOuCJRSUIBcUYZcwTPEFCBXlCFXKBhAf6YACwUD6M/QK3jumQL0ijIlWPDcMwUIFmVqsOC5ZwoQLJkpWYvnnmWAYMmGKizoNMoAwZINRWvRaZQBgiXbkMdDGeBXMsOv4Ct+BviVzNRhwVf8DDAsmSZRcJ4gAwRLpkkUvNBjBgiWbGO0hxdgBwRLZggWiU7PDBAsmSFYiLEABEtmCBZiLADBkmkOhRgLwK9kpnQtPhYDv6I/2PSpbrt6Zz5W1X966f37/pted/d/3L0fvuakcvvlqD/u+tKl3/7x7/u7Pqlo+KMY/uCq/+Pf1y879f/Xy60eG7e//sxq7LA/qaKeOuvvaren7ak9fmp2/TeJr70UxbWTvhQC0Yn+tvW+OXceArW5PtwnlpkXkBnVi/0C4LWLbOMOiu2BieEPsbF/2NEpN+HOa697VbrdF8Sjj9W5zmR3fGyem4P3hj2/N3bQs3rhDi7NoSuqtq2++MMkHUVtKEX1ndhPtnuP5w6GPrVl/vFTezzVbdf4g9EfKlw7Ksr4jr743bivU5KvowezO5qxcTsonffpr/hTz+tPMFaPjf44no9g474INd2uPXwyH3lzxrQs3R7odzA9TOdtH/ZcJ0Yx9xKmg73+tLbTCS/cTni4k/HLcv4ioNxFgJygoAu4lJSFOxyxQKrHpteu35M7WTPS4kxPl67ZA826r1NSy9Fj03mP9bdSrgsRk2at6G+FmT8UqZ/9cfvR78mxEbEh8ffPfairXd1uP9Tbj+fLS/+N0yevK3eKCE6aW9/V4fLy6K/LfZr/9ek8+AKfm+4wWfr6bH6nA3LZuH6G3vm4oz9LHXvvN1tER5enp7rtjh/6rzU6xr5xjZ1U6KXZ7/55Ph56L1V92R+rndeJcDshX+XSHurdMLV8Y3UeH1yLyM1/1eBYiuH/++8TmD/U4I36WprmD+vh+mpp5mE++Kee9iVAfen0V+593TpeacDDiqFzYZEo0nq21X7v+XDv/SxI+2acXN76fnZVV7l9CXdxH3rI7djIIVjpS9PSXT5dDpNJ1OeLOk6Mmgf944P+z83hee8NW8ndWRBC0Nbny953orJwQxXKnDxj9s2Ju/bIhxERdogErayhy/4TyH6Hyu3QTktpFy/SVvTngCs/TulTZa7Dm1MLuPmScNUcwPK5cQdnw22oRS1Z3geJHf1cO7Fz2cZxw3Blw2iVdkIx+4cYhHI+mFZfa8v8kdnONqOFMPuHHbXSRtHMguc2YFQWQza+l21cDm3642jzh7K2Vw6GnZHhmg2RkOCAuUGtXSEGvVrIzP5DX4Z4WAEyu7xs7PtJ+7D9gwyXLBxoz/2tp6tuSdc+Pq4Xq93x8Z/1tkPMSLl7js0cmPpTDaZaf4RwdSaKildsB+dq332ozh/8kMcZ3cIuzeNMGP5QecB+TN/1tq29txPOy6lBB+Piby2d0ZY+dlx73ssNTsYJX3ILmFvAgZnW7y4nQWwmXTdCecVBo74W3SBtQylheBJfUHuS0IldqcG280l/ytnHkLsYwuj1PPLdibuVsbOgT2AftqB23ziOLrk/diT4RpxxV0RuRYxbU7tZLVmwZ+TVMzfa5jSwp+ZQ62D7UI1OFWB0l31OK/K0P37xAryJUUk3grarX39uEN1l488xmbnrTmk7nMHYYsup0xOzEUhpfUBpl0YyRrZdny6PH2uwM3d6VrZnu/paEYr0p6bnFzA53R3E7INE0O3MEGq52dWn47nB/I90Zm7O7foVeAndz8vx4r+Hu4HIbVQsqRlRH/rZbqfpxA1lruPg4U6aw8Ri3MWCU29SH7oGkh59fp0T29iJTS56ddv6UU1/3HOVLcfVmgqOJmtVn/jphNSUOvVz/XZ6MnSl+/J58PnJs4UbztsdgZLUcjt2cq73NYzvmLvPkGOoRNJ90zXV9RkjtTfYbzbYn7VnZgnR/tssQ6Q0/ME3uY0WR7dvXYBdIKQc92jjW1t7VmM0Rc6CHjokcPv8Duf9M9stte48HduXqrscAFnB3Rkpya3IU3t88aeBs1bZ5XR4/cIauY1aWG7/sMPJbfTc35WgJSKEiEsjkBFf/+ypbT5VXQ3WWO7uKBU5/XUHl8d9s508L9znqZnbP/+5efKfVO6TlMFi29U+s9uxWVLo8Chutq7pkY70uTpfzn54xh17txtNO3ftJsb6Jma3LiwbtxGjxu0fI0thN1dKUGp4rg91W3V1V7XPfnBcOrOWk2ocnm+OB2Kv6TKNnCTzr92cqrZ6qbu6Bau6uxsn92i6m2brDa4jPvwU4ZmF04Ogu+geq3118Mna3B3CccdrlzdOUmt9b9Auc+n2NSi4L/g89EUF5Lavxy8wBHT9XF9QfUBnuybDK9vjlMPMXV7KHu5wu5Hi5IbH9jjwml5c5IK0RsEzC5Ik4p/rDrJwhXsMYelAbpd1XpAW23eFHNMoN07YBMYf58fc1cKu71IE3udQd5+PrTcpCpdsFfZNlGVSCtrcuhP/fPr4ATvpcKNJRXJCz3XX1sf22YPjzncbOfHMao08uHmuu3N3bKvnuvKG2PW/3J4IchuIcJLceK67ruopPSxY7vMDxl4zMi7s+8AXhNxd0ewOlFvXzMmAze+xrbd1c/JeNy/djq0SbfDCyQj0ue4uv3dH7y1z16fYPWxfm33oi/JwH6rzdPPtnhlLkpH6UJ3RmV644SzJcsLVibvWavd+1p0NM72wIaTlbOzUYCODbZlHbnn3vt6o+cMuyMKOirK8ghLUWvChbp4/+IPDHEMWI5MnRsg2CLXhrWLkEPgnKcrlvchj4IY4qncnk5TU1HGebrrajz/deS4lNasb8hjbPeqXjBrRZhqBugGgoKHrB/t/BfPNc9iCsu+G8jh9cS7nHI1Slvd8dfKPV90QWGTkGxim7X8v9blDtqGugyB34Q1x/OHavyS3f87Tk3DWDV76qgRUD1oBxFLpEl+cPFxt8CwId/NJsp0+CcVdf2hN0W7+hsXChsvluN20FFM+ck0jMT+uDHbzS8+ngflEVk/XDkgGvNn1bMZT40dU3N0bKDJEMQ/7aRvMZbcFSWk1s9SUy8UwMuBqwlE0d5dJRR6ON5r+NI9TcDx2kISjG3sj6camw9SwW/pBu/ZAhlnaiHG7ybKziFlOheXjUYQNTGwegrpu18lR7xkvEJa4sdOAz7qMob/CirRHdszGVqwYqRL7x8hg2/MmZV9bkVGmM/oeMehM4Pknp7SrcCfxgK+wQ2y3MIxeJ2fnhOsxSHrK7QYwPQ4+cqFBs3Eylzaw+pdk+GDJfX+hc9eHMU9QkK/RVp+xBZO7WQ+KjLPcx7HjOldVtNMfwvXJEVV/5dVRNTkO50/VvtkFgnTXiSty49CQq43LBJFMuPs4TGzibtKGYjEIJjS2m4PAyGRCt4vp4ZG7y2Tk2VET3llw1zEqRarl0v1+9BclJ4rMNqSBfm6rE7Vcu/hJGsqmAiEJq24iCScTST7WX05V4/tO73iXPLX7WH8BVJNLOVxTBqjnX6rfm5fLi57QVXds+/zJ9tLnV+HHEy5HUlLT6qXeNdWha1785cZ1EmL0YtJubcgzz5e6/bivpxkpboQwOh1LpAvSub40h/6V/fdyQy8ySXR48tw8H6ru0vpj42Yu5JbmJNn2oatx3J35d2UTfYhuCEDy8LqFx+u6pwA2OUXaYFFaRybJM/FDbVba3XF7gWeH3D3sVGSYjXA/3E0YVGTq5KH+vfOD5MI1KHJrcDgCMpO5eRjCnp4KG0MJRc3l4+M/fd7M3ZmSq+LxZIfND6Zdh6uohV0/jBz/uoGIIOlI/bQznSb5yA4GalUwfYAww7W364UA818bydnTaGbZfJaNGYOWxtnYP8ZA0xqvIjdKx7bPz6725AG+u9QzS5IwRq3YxlNNw2w3ryCzhxUZGQmYbnzf766/dpoNL2qJX5tfwOxQMHtQwuzZGLdBMh/TRfLxiNAmDZFRlsHlOXfwpu5dCGY3ioxRPvLEOzTXgbvu3b6CzTa0GxJF5sDSNK5LY6gxS4r0OKeqPffpHdpzQZ/o5naQpxa6BySkdHdeKqNMVj9NxBB9hXAnt4RaMmAXID3aZZVILvVUfake98ABuEwIuWqcanBmxV1zVzTq+lDtm3/5R4Lu2m5dDhMk6KPeWPhMiOsd7KUjxcjhN11Mbyy43ZCJxae2/tQcL2dDyQ0JsL7zcEONkYu1u2qhKPfl9TxJYnLDfGHNR1i6WygaL3py7SbAqJJa+aa5wtxNAFX24F0xKsTAr+v0VSKdA6VhBZaBoZkGy+7VIW7PkrlN4+Y2oUJa9y1JhsL2fmm93Wru0SiW+cjGw49Ad783T743dvuSJCVk3Li/HDnLwZhNS95lw7MMpKuyklpeZzbL7hJLEtXYfszlRcd7gIOLG8bSZjIya7zMnlOwfHRx9pDInpAoG1Yo6zHVeLqhqAk9AETmtRspjkeUA0xLo1oHbHN0mD0JY/kYr9j5NzJQfEwmsqkK9imlZsZxuotx41L7/sKmoAvSderjy+Zgsnagx2Fe5hI1tQbyfvCa40R7OrbDrZR+Y3xqDv4pqXs0Z4eT2/iFk8kn2CUHNyvCHnXJMXmcPIps6z7B2HM4btbPuPQMqh7GtLR7ss1I2dlg1W6CuGVOuc3LUuPUvBLx4zEeFRWety2wmMy7QkOFIOa5aeDvZrEzG1Mye5yY2ambMcphmI7HbavXt7sbGG/3kLm55/qws6mp0J8J7zKc6Wmkme2EZuSE7rtuq89UhqlHMFs1WWqZk7vXcz/HD9va3y24vopZ4pOReZ7nukPz0l3edryHQq4A6Pj3ZQ8dU7Xnrvl47kq5pHPzL7DBda3J0ufCkvCCXD8HMnS6MLnAxp2MdcaCvNHU91fvptyqe2tHkWvSuWub06neTV6Pe4lM4+mYHTDaGC/6jNgPC11+lUwmCPG7Ls88Ju2TpMyUCXOj+TE/QI4HO5TS+47OXfVycnsrPT9nOyPvKHRHJGvSHdwNpdnu2Gvn8NxVz34w4thmRjKNAbba3XWTWzxy68/d/V1miYeM5GZCnLd7952RtLnXA3II7y4MbMzUJxPBne5QbtKNikmmLEjDu5dDGHm+43ShN6P+ib6bWCVI3zzH5Lt7FJJzI3fBXkY2H5c2WtM6svG7cDdd5P2O7vctvF/A3FMIYVkZYSNVQa77k8Rs936wtKnP0ib9SHsYKsnT6ouOzIjjTtcYqOfBrsglvzn50OR0RblmR03u/jFwVFy4z1ETaeJA3MNKZlNImd0tKxsFKRvEZDZuz0jaQMsAu1g3bWhMQldjTGl3niQF86kCYa7L3Ng9BRsDZ5v8pcis4E912zx9mVRTcWlo0hePzyJv6l51l2RU9qluz2CCOc/ZOGy8HmjjZmEzVIUie27a7lLtMVbRi0mHEbPZA6IY42/qrT9X522f398XGQC3vJyOx7wC819rdcyqmI2HOHbnwMfkOwtGkaf+n+vH83H7saYK2bjp9py8o/l5mrDHva2OXXxsRCzIOyJE1QV3TSO50X618cC7e0DypkJgjXLjr8DTp3qHH4ZxN2qWJP8x6YNKz3eVEe6tOTw/1eDgzxnD8SKLJPVAHza7nDdpkJ/PYPV279Jz3KH9dn93ak71vjnUd9++++3f//4/iw5n8gbkAQA=";
|