@varity-labs/sdk 2.0.0-alpha.1
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/LICENSE +31 -0
- package/README.md +253 -0
- package/dist/analytics/index.d.ts +7 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +6 -0
- package/dist/analytics/tracker.d.ts +128 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +203 -0
- package/dist/blockchain/BlockchainService.d.ts +100 -0
- package/dist/blockchain/BlockchainService.d.ts.map +1 -0
- package/dist/blockchain/BlockchainService.js +188 -0
- package/dist/blockchain/NFTLicensingService.d.ts +69 -0
- package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
- package/dist/blockchain/NFTLicensingService.js +136 -0
- package/dist/blockchain/RevenueSplitService.d.ts +71 -0
- package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
- package/dist/blockchain/RevenueSplitService.js +111 -0
- package/dist/blockchain/index.d.ts +48 -0
- package/dist/blockchain/index.d.ts.map +1 -0
- package/dist/blockchain/index.js +46 -0
- package/dist/blockchain/types.d.ts +63 -0
- package/dist/blockchain/types.d.ts.map +1 -0
- package/dist/blockchain/types.js +6 -0
- package/dist/chains/arbitrum.d.ts +89 -0
- package/dist/chains/arbitrum.d.ts.map +1 -0
- package/dist/chains/arbitrum.js +134 -0
- package/dist/chains/base.d.ts +84 -0
- package/dist/chains/base.d.ts.map +1 -0
- package/dist/chains/base.js +131 -0
- package/dist/chains/index.d.ts +36 -0
- package/dist/chains/index.d.ts.map +1 -0
- package/dist/chains/index.js +32 -0
- package/dist/chains/registry.d.ts +113 -0
- package/dist/chains/registry.d.ts.map +1 -0
- package/dist/chains/registry.js +201 -0
- package/dist/chains/varityL3.d.ts +81 -0
- package/dist/chains/varityL3.d.ts.map +1 -0
- package/dist/chains/varityL3.js +125 -0
- package/dist/cli/commands/clone.d.ts +8 -0
- package/dist/cli/commands/clone.d.ts.map +1 -0
- package/dist/cli/commands/clone.js +391 -0
- package/dist/cli/commands/dev.d.ts +8 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +40 -0
- package/dist/cli/commands/generate.d.ts +8 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +303 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +317 -0
- package/dist/cli/commands/validate.d.ts +8 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +69 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/utils/logger.d.ts +17 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +35 -0
- package/dist/cli/utils/prompts.d.ts +21 -0
- package/dist/cli/utils/prompts.d.ts.map +1 -0
- package/dist/cli/utils/prompts.js +103 -0
- package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
- package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
- package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
- package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
- package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
- package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
- package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
- package/dist/contracts/addresses.d.ts +88 -0
- package/dist/contracts/addresses.d.ts.map +1 -0
- package/dist/contracts/addresses.js +94 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +6 -0
- package/dist/core/VaritySDK.d.ts +177 -0
- package/dist/core/VaritySDK.d.ts.map +1 -0
- package/dist/core/VaritySDK.js +325 -0
- package/dist/core/config.d.ts +120 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +187 -0
- package/dist/core/credentials-proxy.d.ts +157 -0
- package/dist/core/credentials-proxy.d.ts.map +1 -0
- package/dist/core/credentials-proxy.js +345 -0
- package/dist/core/credentials.d.ts +219 -0
- package/dist/core/credentials.d.ts.map +1 -0
- package/dist/core/credentials.js +345 -0
- package/dist/core/template-loader.d.ts +15 -0
- package/dist/core/template-loader.d.ts.map +1 -0
- package/dist/core/template-loader.js +380 -0
- package/dist/core/template.d.ts +321 -0
- package/dist/core/template.d.ts.map +1 -0
- package/dist/core/template.js +189 -0
- package/dist/core/types.d.ts +572 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +52 -0
- package/dist/dev/dev-server.d.ts +16 -0
- package/dist/dev/dev-server.d.ts.map +1 -0
- package/dist/dev/dev-server.js +119 -0
- package/dist/generators/contracts/generator.d.ts +21 -0
- package/dist/generators/contracts/generator.d.ts.map +1 -0
- package/dist/generators/contracts/generator.js +252 -0
- package/dist/generators/tests/generator.d.ts +20 -0
- package/dist/generators/tests/generator.d.ts.map +1 -0
- package/dist/generators/tests/generator.js +375 -0
- package/dist/generators/types/generator.d.ts +19 -0
- package/dist/generators/types/generator.d.ts.map +1 -0
- package/dist/generators/types/generator.js +165 -0
- package/dist/generators/ui/component-generator.d.ts +20 -0
- package/dist/generators/ui/component-generator.d.ts.map +1 -0
- package/dist/generators/ui/component-generator.js +749 -0
- package/dist/generators/ui/dashboard-generator.d.ts +20 -0
- package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
- package/dist/generators/ui/dashboard-generator.js +349 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
- package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
- package/dist/modules/analytics/AnalyticsModule.js +274 -0
- package/dist/modules/analytics/index.d.ts +3 -0
- package/dist/modules/analytics/index.d.ts.map +1 -0
- package/dist/modules/analytics/index.js +1 -0
- package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
- package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
- package/dist/modules/auth/AccessKeyModule.js +322 -0
- package/dist/modules/auth/AuthModule.d.ts +133 -0
- package/dist/modules/auth/AuthModule.d.ts.map +1 -0
- package/dist/modules/auth/AuthModule.js +214 -0
- package/dist/modules/auth/index.d.ts +8 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +6 -0
- package/dist/modules/cache/CacheModule.d.ts +279 -0
- package/dist/modules/cache/CacheModule.d.ts.map +1 -0
- package/dist/modules/cache/CacheModule.js +493 -0
- package/dist/modules/cache/index.d.ts +3 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +1 -0
- package/dist/modules/compute/ComputeModule.d.ts +226 -0
- package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
- package/dist/modules/compute/ComputeModule.js +379 -0
- package/dist/modules/compute/index.d.ts +6 -0
- package/dist/modules/compute/index.d.ts.map +1 -0
- package/dist/modules/compute/index.js +4 -0
- package/dist/modules/contracts/ContractsModule.d.ts +164 -0
- package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
- package/dist/modules/contracts/ContractsModule.js +242 -0
- package/dist/modules/contracts/index.d.ts +6 -0
- package/dist/modules/contracts/index.d.ts.map +1 -0
- package/dist/modules/contracts/index.js +4 -0
- package/dist/modules/export/ExportModule.d.ts +346 -0
- package/dist/modules/export/ExportModule.d.ts.map +1 -0
- package/dist/modules/export/ExportModule.js +432 -0
- package/dist/modules/export/index.d.ts +3 -0
- package/dist/modules/export/index.d.ts.map +1 -0
- package/dist/modules/export/index.js +1 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
- package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
- package/dist/modules/forecasting/ForecastingModule.js +310 -0
- package/dist/modules/forecasting/index.d.ts +3 -0
- package/dist/modules/forecasting/index.d.ts.map +1 -0
- package/dist/modules/forecasting/index.js +1 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
- package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
- package/dist/modules/monitoring/MonitoringModule.js +483 -0
- package/dist/modules/monitoring/index.d.ts +3 -0
- package/dist/modules/monitoring/index.d.ts.map +1 -0
- package/dist/modules/monitoring/index.js +1 -0
- package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
- package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationsModule.js +418 -0
- package/dist/modules/notifications/index.d.ts +3 -0
- package/dist/modules/notifications/index.d.ts.map +1 -0
- package/dist/modules/notifications/index.js +1 -0
- package/dist/modules/oracle/OracleModule.d.ts +110 -0
- package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
- package/dist/modules/oracle/OracleModule.js +151 -0
- package/dist/modules/oracle/index.d.ts +6 -0
- package/dist/modules/oracle/index.d.ts.map +1 -0
- package/dist/modules/oracle/index.js +4 -0
- package/dist/modules/storage/S3Module.d.ts +377 -0
- package/dist/modules/storage/S3Module.d.ts.map +1 -0
- package/dist/modules/storage/S3Module.js +680 -0
- package/dist/modules/storage/StorageModule.d.ts +157 -0
- package/dist/modules/storage/StorageModule.d.ts.map +1 -0
- package/dist/modules/storage/StorageModule.js +302 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
- package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
- package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
- package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
- package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
- package/dist/modules/storage/adapters/index.d.ts +12 -0
- package/dist/modules/storage/adapters/index.d.ts.map +1 -0
- package/dist/modules/storage/adapters/index.js +12 -0
- package/dist/modules/storage/index.d.ts +16 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +15 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
- package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
- package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
- package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
- package/dist/modules/storage/tiering/MetadataStore.js +535 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
- package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
- package/dist/modules/storage/tiering/TieringEngine.js +419 -0
- package/dist/modules/storage/tiering/example.d.ts +8 -0
- package/dist/modules/storage/tiering/example.d.ts.map +1 -0
- package/dist/modules/storage/tiering/example.js +250 -0
- package/dist/modules/storage/tiering/index.d.ts +17 -0
- package/dist/modules/storage/tiering/index.d.ts.map +1 -0
- package/dist/modules/storage/tiering/index.js +13 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
- package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
- package/dist/modules/webhooks/WebhooksModule.js +359 -0
- package/dist/modules/webhooks/index.d.ts +3 -0
- package/dist/modules/webhooks/index.d.ts.map +1 -0
- package/dist/modules/webhooks/index.js +1 -0
- package/dist/modules/zk/ZKModule.d.ts +153 -0
- package/dist/modules/zk/ZKModule.d.ts.map +1 -0
- package/dist/modules/zk/ZKModule.js +262 -0
- package/dist/modules/zk/index.d.ts +7 -0
- package/dist/modules/zk/index.d.ts.map +1 -0
- package/dist/modules/zk/index.js +4 -0
- package/dist/thirdweb/BridgeClient.d.ts +228 -0
- package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
- package/dist/thirdweb/BridgeClient.js +160 -0
- package/dist/thirdweb/EngineClient.d.ts +396 -0
- package/dist/thirdweb/EngineClient.d.ts.map +1 -0
- package/dist/thirdweb/EngineClient.js +386 -0
- package/dist/thirdweb/GatewayClient.d.ts +190 -0
- package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
- package/dist/thirdweb/GatewayClient.js +257 -0
- package/dist/thirdweb/NebulaClient.d.ts +292 -0
- package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
- package/dist/thirdweb/NebulaClient.js +180 -0
- package/dist/thirdweb/StorageClient.d.ts +445 -0
- package/dist/thirdweb/StorageClient.d.ts.map +1 -0
- package/dist/thirdweb/StorageClient.js +405 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
- package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
- package/dist/thirdweb/ThirdwebWrapper.js +332 -0
- package/dist/thirdweb/index.d.ts +21 -0
- package/dist/thirdweb/index.d.ts.map +1 -0
- package/dist/thirdweb/index.js +28 -0
- package/dist/thirdweb/varity-chain.d.ts +48 -0
- package/dist/thirdweb/varity-chain.d.ts.map +1 -0
- package/dist/thirdweb/varity-chain.js +64 -0
- package/dist/thirdweb/x402Client.d.ts +319 -0
- package/dist/thirdweb/x402Client.d.ts.map +1 -0
- package/dist/thirdweb/x402Client.js +223 -0
- package/dist/tracking/gasTracker.d.ts +158 -0
- package/dist/tracking/gasTracker.d.ts.map +1 -0
- package/dist/tracking/gasTracker.js +227 -0
- package/dist/tracking/index.d.ts +10 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +8 -0
- package/dist/tracking/types.d.ts +327 -0
- package/dist/tracking/types.d.ts.map +1 -0
- package/dist/tracking/types.js +8 -0
- package/dist/ui/components/ChartWidget.d.ts +36 -0
- package/dist/ui/components/ChartWidget.d.ts.map +1 -0
- package/dist/ui/components/ChartWidget.js +82 -0
- package/dist/ui/components/DashboardLayout.d.ts +41 -0
- package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
- package/dist/ui/components/DashboardLayout.js +102 -0
- package/dist/ui/components/DataTable.d.ts +49 -0
- package/dist/ui/components/DataTable.d.ts.map +1 -0
- package/dist/ui/components/DataTable.js +96 -0
- package/dist/ui/components/EntityForm.d.ts +60 -0
- package/dist/ui/components/EntityForm.d.ts.map +1 -0
- package/dist/ui/components/EntityForm.js +182 -0
- package/dist/ui/components/KPICard.d.ts +29 -0
- package/dist/ui/components/KPICard.d.ts.map +1 -0
- package/dist/ui/components/KPICard.js +61 -0
- package/dist/ui/components/Modal.d.ts +34 -0
- package/dist/ui/components/Modal.d.ts.map +1 -0
- package/dist/ui/components/Modal.js +30 -0
- package/dist/ui/components/index.d.ts +18 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +11 -0
- package/dist/validation/template-validator.d.ts +25 -0
- package/dist/validation/template-validator.d.ts.map +1 -0
- package/dist/validation/template-validator.js +305 -0
- package/package.json +102 -0
|
@@ -0,0 +1,1118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "ResidualCalculator",
|
|
4
|
+
"sourceName": "contracts/ResidualCalculator.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"stateMutability": "nonpayable",
|
|
9
|
+
"type": "constructor"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"inputs": [],
|
|
13
|
+
"name": "AccessControlBadConfirmation",
|
|
14
|
+
"type": "error"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"inputs": [
|
|
18
|
+
{
|
|
19
|
+
"internalType": "address",
|
|
20
|
+
"name": "account",
|
|
21
|
+
"type": "address"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"internalType": "bytes32",
|
|
25
|
+
"name": "neededRole",
|
|
26
|
+
"type": "bytes32"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"name": "AccessControlUnauthorizedAccount",
|
|
30
|
+
"type": "error"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"inputs": [
|
|
34
|
+
{
|
|
35
|
+
"internalType": "address",
|
|
36
|
+
"name": "target",
|
|
37
|
+
"type": "address"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"name": "AddressEmptyCode",
|
|
41
|
+
"type": "error"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"inputs": [],
|
|
45
|
+
"name": "AlreadyConfigured",
|
|
46
|
+
"type": "error"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"inputs": [
|
|
50
|
+
{
|
|
51
|
+
"internalType": "address",
|
|
52
|
+
"name": "implementation",
|
|
53
|
+
"type": "address"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"name": "ERC1967InvalidImplementation",
|
|
57
|
+
"type": "error"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"inputs": [],
|
|
61
|
+
"name": "ERC1967NonPayable",
|
|
62
|
+
"type": "error"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"inputs": [],
|
|
66
|
+
"name": "FailedCall",
|
|
67
|
+
"type": "error"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"inputs": [
|
|
71
|
+
{
|
|
72
|
+
"internalType": "uint256",
|
|
73
|
+
"name": "rate",
|
|
74
|
+
"type": "uint256"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"name": "InvalidFeeRate",
|
|
78
|
+
"type": "error"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"inputs": [],
|
|
82
|
+
"name": "InvalidInitialization",
|
|
83
|
+
"type": "error"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"inputs": [],
|
|
87
|
+
"name": "InvalidMerchantId",
|
|
88
|
+
"type": "error"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"inputs": [],
|
|
92
|
+
"name": "InvalidTierConfiguration",
|
|
93
|
+
"type": "error"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"inputs": [],
|
|
97
|
+
"name": "InvalidTransactionAmount",
|
|
98
|
+
"type": "error"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"inputs": [],
|
|
102
|
+
"name": "LookbackPeriodExceeded",
|
|
103
|
+
"type": "error"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"inputs": [
|
|
107
|
+
{
|
|
108
|
+
"internalType": "bytes32",
|
|
109
|
+
"name": "merchantId",
|
|
110
|
+
"type": "bytes32"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"name": "MerchantNotConfigured",
|
|
114
|
+
"type": "error"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"inputs": [],
|
|
118
|
+
"name": "NotInitializing",
|
|
119
|
+
"type": "error"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"inputs": [],
|
|
123
|
+
"name": "UUPSUnauthorizedCallContext",
|
|
124
|
+
"type": "error"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"inputs": [
|
|
128
|
+
{
|
|
129
|
+
"internalType": "bytes32",
|
|
130
|
+
"name": "slot",
|
|
131
|
+
"type": "bytes32"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"name": "UUPSUnsupportedProxiableUUID",
|
|
135
|
+
"type": "error"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"anonymous": false,
|
|
139
|
+
"inputs": [
|
|
140
|
+
{
|
|
141
|
+
"indexed": true,
|
|
142
|
+
"internalType": "bytes32",
|
|
143
|
+
"name": "merchantId",
|
|
144
|
+
"type": "bytes32"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"indexed": false,
|
|
148
|
+
"internalType": "string",
|
|
149
|
+
"name": "anomalyType",
|
|
150
|
+
"type": "string"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"indexed": false,
|
|
154
|
+
"internalType": "int256",
|
|
155
|
+
"name": "amount",
|
|
156
|
+
"type": "int256"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"name": "AnomalyDetected",
|
|
160
|
+
"type": "event"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"anonymous": false,
|
|
164
|
+
"inputs": [
|
|
165
|
+
{
|
|
166
|
+
"indexed": true,
|
|
167
|
+
"internalType": "bytes32",
|
|
168
|
+
"name": "companyId",
|
|
169
|
+
"type": "bytes32"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"indexed": false,
|
|
173
|
+
"internalType": "string",
|
|
174
|
+
"name": "companyName",
|
|
175
|
+
"type": "string"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"indexed": false,
|
|
179
|
+
"internalType": "string",
|
|
180
|
+
"name": "templateVersion",
|
|
181
|
+
"type": "string"
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"name": "CompanyConfigured",
|
|
185
|
+
"type": "event"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"anonymous": false,
|
|
189
|
+
"inputs": [
|
|
190
|
+
{
|
|
191
|
+
"components": [
|
|
192
|
+
{
|
|
193
|
+
"internalType": "uint256",
|
|
194
|
+
"name": "baseRateBps",
|
|
195
|
+
"type": "uint256"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"internalType": "uint256",
|
|
199
|
+
"name": "volumeTier1",
|
|
200
|
+
"type": "uint256"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"internalType": "uint256",
|
|
204
|
+
"name": "volumeTier2",
|
|
205
|
+
"type": "uint256"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"internalType": "uint256",
|
|
209
|
+
"name": "tier1RateBps",
|
|
210
|
+
"type": "uint256"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"internalType": "uint256",
|
|
214
|
+
"name": "tier2RateBps",
|
|
215
|
+
"type": "uint256"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"internalType": "uint256",
|
|
219
|
+
"name": "tier3RateBps",
|
|
220
|
+
"type": "uint256"
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"indexed": false,
|
|
224
|
+
"internalType": "struct ResidualCalculator.FeeStructure",
|
|
225
|
+
"name": "newStructure",
|
|
226
|
+
"type": "tuple"
|
|
227
|
+
}
|
|
228
|
+
],
|
|
229
|
+
"name": "DefaultFeeStructureUpdated",
|
|
230
|
+
"type": "event"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"anonymous": false,
|
|
234
|
+
"inputs": [
|
|
235
|
+
{
|
|
236
|
+
"indexed": true,
|
|
237
|
+
"internalType": "bytes32",
|
|
238
|
+
"name": "merchantId",
|
|
239
|
+
"type": "bytes32"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"components": [
|
|
243
|
+
{
|
|
244
|
+
"internalType": "uint256",
|
|
245
|
+
"name": "baseRateBps",
|
|
246
|
+
"type": "uint256"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"internalType": "uint256",
|
|
250
|
+
"name": "volumeTier1",
|
|
251
|
+
"type": "uint256"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"internalType": "uint256",
|
|
255
|
+
"name": "volumeTier2",
|
|
256
|
+
"type": "uint256"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"internalType": "uint256",
|
|
260
|
+
"name": "tier1RateBps",
|
|
261
|
+
"type": "uint256"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"internalType": "uint256",
|
|
265
|
+
"name": "tier2RateBps",
|
|
266
|
+
"type": "uint256"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"internalType": "uint256",
|
|
270
|
+
"name": "tier3RateBps",
|
|
271
|
+
"type": "uint256"
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
"indexed": false,
|
|
275
|
+
"internalType": "struct ResidualCalculator.FeeStructure",
|
|
276
|
+
"name": "newStructure",
|
|
277
|
+
"type": "tuple"
|
|
278
|
+
}
|
|
279
|
+
],
|
|
280
|
+
"name": "FeeStructureUpdated",
|
|
281
|
+
"type": "event"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"anonymous": false,
|
|
285
|
+
"inputs": [
|
|
286
|
+
{
|
|
287
|
+
"indexed": false,
|
|
288
|
+
"internalType": "uint64",
|
|
289
|
+
"name": "version",
|
|
290
|
+
"type": "uint64"
|
|
291
|
+
}
|
|
292
|
+
],
|
|
293
|
+
"name": "Initialized",
|
|
294
|
+
"type": "event"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"anonymous": false,
|
|
298
|
+
"inputs": [
|
|
299
|
+
{
|
|
300
|
+
"indexed": true,
|
|
301
|
+
"internalType": "bytes32",
|
|
302
|
+
"name": "merchantId",
|
|
303
|
+
"type": "bytes32"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"indexed": false,
|
|
307
|
+
"internalType": "uint256",
|
|
308
|
+
"name": "transactionAmount",
|
|
309
|
+
"type": "uint256"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"indexed": false,
|
|
313
|
+
"internalType": "uint256",
|
|
314
|
+
"name": "grossResidual",
|
|
315
|
+
"type": "uint256"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"indexed": false,
|
|
319
|
+
"internalType": "uint256",
|
|
320
|
+
"name": "appliedRateBps",
|
|
321
|
+
"type": "uint256"
|
|
322
|
+
}
|
|
323
|
+
],
|
|
324
|
+
"name": "ResidualCalculated",
|
|
325
|
+
"type": "event"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"anonymous": false,
|
|
329
|
+
"inputs": [
|
|
330
|
+
{
|
|
331
|
+
"indexed": true,
|
|
332
|
+
"internalType": "bytes32",
|
|
333
|
+
"name": "role",
|
|
334
|
+
"type": "bytes32"
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"indexed": true,
|
|
338
|
+
"internalType": "bytes32",
|
|
339
|
+
"name": "previousAdminRole",
|
|
340
|
+
"type": "bytes32"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"indexed": true,
|
|
344
|
+
"internalType": "bytes32",
|
|
345
|
+
"name": "newAdminRole",
|
|
346
|
+
"type": "bytes32"
|
|
347
|
+
}
|
|
348
|
+
],
|
|
349
|
+
"name": "RoleAdminChanged",
|
|
350
|
+
"type": "event"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"anonymous": false,
|
|
354
|
+
"inputs": [
|
|
355
|
+
{
|
|
356
|
+
"indexed": true,
|
|
357
|
+
"internalType": "bytes32",
|
|
358
|
+
"name": "role",
|
|
359
|
+
"type": "bytes32"
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"indexed": true,
|
|
363
|
+
"internalType": "address",
|
|
364
|
+
"name": "account",
|
|
365
|
+
"type": "address"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"indexed": true,
|
|
369
|
+
"internalType": "address",
|
|
370
|
+
"name": "sender",
|
|
371
|
+
"type": "address"
|
|
372
|
+
}
|
|
373
|
+
],
|
|
374
|
+
"name": "RoleGranted",
|
|
375
|
+
"type": "event"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"anonymous": false,
|
|
379
|
+
"inputs": [
|
|
380
|
+
{
|
|
381
|
+
"indexed": true,
|
|
382
|
+
"internalType": "bytes32",
|
|
383
|
+
"name": "role",
|
|
384
|
+
"type": "bytes32"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"indexed": true,
|
|
388
|
+
"internalType": "address",
|
|
389
|
+
"name": "account",
|
|
390
|
+
"type": "address"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"indexed": true,
|
|
394
|
+
"internalType": "address",
|
|
395
|
+
"name": "sender",
|
|
396
|
+
"type": "address"
|
|
397
|
+
}
|
|
398
|
+
],
|
|
399
|
+
"name": "RoleRevoked",
|
|
400
|
+
"type": "event"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"anonymous": false,
|
|
404
|
+
"inputs": [
|
|
405
|
+
{
|
|
406
|
+
"indexed": true,
|
|
407
|
+
"internalType": "address",
|
|
408
|
+
"name": "implementation",
|
|
409
|
+
"type": "address"
|
|
410
|
+
}
|
|
411
|
+
],
|
|
412
|
+
"name": "Upgraded",
|
|
413
|
+
"type": "event"
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"inputs": [],
|
|
417
|
+
"name": "ADMIN_ROLE",
|
|
418
|
+
"outputs": [
|
|
419
|
+
{
|
|
420
|
+
"internalType": "bytes32",
|
|
421
|
+
"name": "",
|
|
422
|
+
"type": "bytes32"
|
|
423
|
+
}
|
|
424
|
+
],
|
|
425
|
+
"stateMutability": "view",
|
|
426
|
+
"type": "function"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"inputs": [],
|
|
430
|
+
"name": "CONFIG_ROLE",
|
|
431
|
+
"outputs": [
|
|
432
|
+
{
|
|
433
|
+
"internalType": "bytes32",
|
|
434
|
+
"name": "",
|
|
435
|
+
"type": "bytes32"
|
|
436
|
+
}
|
|
437
|
+
],
|
|
438
|
+
"stateMutability": "view",
|
|
439
|
+
"type": "function"
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"inputs": [],
|
|
443
|
+
"name": "DEFAULT_ADMIN_ROLE",
|
|
444
|
+
"outputs": [
|
|
445
|
+
{
|
|
446
|
+
"internalType": "bytes32",
|
|
447
|
+
"name": "",
|
|
448
|
+
"type": "bytes32"
|
|
449
|
+
}
|
|
450
|
+
],
|
|
451
|
+
"stateMutability": "view",
|
|
452
|
+
"type": "function"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"inputs": [],
|
|
456
|
+
"name": "UPGRADE_INTERFACE_VERSION",
|
|
457
|
+
"outputs": [
|
|
458
|
+
{
|
|
459
|
+
"internalType": "string",
|
|
460
|
+
"name": "",
|
|
461
|
+
"type": "string"
|
|
462
|
+
}
|
|
463
|
+
],
|
|
464
|
+
"stateMutability": "view",
|
|
465
|
+
"type": "function"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"inputs": [
|
|
469
|
+
{
|
|
470
|
+
"internalType": "bytes32",
|
|
471
|
+
"name": "merchantId",
|
|
472
|
+
"type": "bytes32"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"internalType": "uint256",
|
|
476
|
+
"name": "lookbackDays",
|
|
477
|
+
"type": "uint256"
|
|
478
|
+
}
|
|
479
|
+
],
|
|
480
|
+
"name": "calculateAverageResidualRate",
|
|
481
|
+
"outputs": [
|
|
482
|
+
{
|
|
483
|
+
"internalType": "uint256",
|
|
484
|
+
"name": "averageRateBps",
|
|
485
|
+
"type": "uint256"
|
|
486
|
+
}
|
|
487
|
+
],
|
|
488
|
+
"stateMutability": "view",
|
|
489
|
+
"type": "function"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"inputs": [
|
|
493
|
+
{
|
|
494
|
+
"internalType": "uint256",
|
|
495
|
+
"name": "transactionAmount",
|
|
496
|
+
"type": "uint256"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"internalType": "uint256",
|
|
500
|
+
"name": "feePercentageBps",
|
|
501
|
+
"type": "uint256"
|
|
502
|
+
}
|
|
503
|
+
],
|
|
504
|
+
"name": "calculateGrossResidual",
|
|
505
|
+
"outputs": [
|
|
506
|
+
{
|
|
507
|
+
"internalType": "uint256",
|
|
508
|
+
"name": "grossResidual",
|
|
509
|
+
"type": "uint256"
|
|
510
|
+
}
|
|
511
|
+
],
|
|
512
|
+
"stateMutability": "pure",
|
|
513
|
+
"type": "function"
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"inputs": [
|
|
517
|
+
{
|
|
518
|
+
"internalType": "bytes32",
|
|
519
|
+
"name": "merchantId",
|
|
520
|
+
"type": "bytes32"
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"internalType": "uint256",
|
|
524
|
+
"name": "transactionAmount",
|
|
525
|
+
"type": "uint256"
|
|
526
|
+
}
|
|
527
|
+
],
|
|
528
|
+
"name": "calculateTieredResidual",
|
|
529
|
+
"outputs": [
|
|
530
|
+
{
|
|
531
|
+
"components": [
|
|
532
|
+
{
|
|
533
|
+
"internalType": "uint256",
|
|
534
|
+
"name": "grossResidual",
|
|
535
|
+
"type": "uint256"
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"internalType": "uint256",
|
|
539
|
+
"name": "appliedRateBps",
|
|
540
|
+
"type": "uint256"
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"internalType": "uint256",
|
|
544
|
+
"name": "tier",
|
|
545
|
+
"type": "uint256"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"internalType": "bool",
|
|
549
|
+
"name": "isValid",
|
|
550
|
+
"type": "bool"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"internalType": "string",
|
|
554
|
+
"name": "validationIssue",
|
|
555
|
+
"type": "string"
|
|
556
|
+
}
|
|
557
|
+
],
|
|
558
|
+
"internalType": "struct ResidualCalculator.ResidualResult",
|
|
559
|
+
"name": "result",
|
|
560
|
+
"type": "tuple"
|
|
561
|
+
}
|
|
562
|
+
],
|
|
563
|
+
"stateMutability": "view",
|
|
564
|
+
"type": "function"
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"inputs": [],
|
|
568
|
+
"name": "companyConfig",
|
|
569
|
+
"outputs": [
|
|
570
|
+
{
|
|
571
|
+
"internalType": "bytes32",
|
|
572
|
+
"name": "companyId",
|
|
573
|
+
"type": "bytes32"
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"internalType": "uint256",
|
|
577
|
+
"name": "deploymentTimestamp",
|
|
578
|
+
"type": "uint256"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"internalType": "address",
|
|
582
|
+
"name": "deployer",
|
|
583
|
+
"type": "address"
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"internalType": "bool",
|
|
587
|
+
"name": "isActive",
|
|
588
|
+
"type": "bool"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"internalType": "string",
|
|
592
|
+
"name": "companyName",
|
|
593
|
+
"type": "string"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"internalType": "string",
|
|
597
|
+
"name": "templateVersion",
|
|
598
|
+
"type": "string"
|
|
599
|
+
}
|
|
600
|
+
],
|
|
601
|
+
"stateMutability": "view",
|
|
602
|
+
"type": "function"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"inputs": [
|
|
606
|
+
{
|
|
607
|
+
"internalType": "bytes32",
|
|
608
|
+
"name": "merchantId",
|
|
609
|
+
"type": "bytes32"
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"name": "detectAnomalies",
|
|
613
|
+
"outputs": [
|
|
614
|
+
{
|
|
615
|
+
"components": [
|
|
616
|
+
{
|
|
617
|
+
"internalType": "bytes32",
|
|
618
|
+
"name": "merchantId",
|
|
619
|
+
"type": "bytes32"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"internalType": "string",
|
|
623
|
+
"name": "anomalyType",
|
|
624
|
+
"type": "string"
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"internalType": "uint256",
|
|
628
|
+
"name": "detectedAt",
|
|
629
|
+
"type": "uint256"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"internalType": "int256",
|
|
633
|
+
"name": "amount",
|
|
634
|
+
"type": "int256"
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"internalType": "string",
|
|
638
|
+
"name": "description",
|
|
639
|
+
"type": "string"
|
|
640
|
+
}
|
|
641
|
+
],
|
|
642
|
+
"internalType": "struct ResidualCalculator.Anomaly[]",
|
|
643
|
+
"name": "anomalies",
|
|
644
|
+
"type": "tuple[]"
|
|
645
|
+
}
|
|
646
|
+
],
|
|
647
|
+
"stateMutability": "view",
|
|
648
|
+
"type": "function"
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"inputs": [
|
|
652
|
+
{
|
|
653
|
+
"internalType": "bytes32",
|
|
654
|
+
"name": "repId",
|
|
655
|
+
"type": "bytes32"
|
|
656
|
+
}
|
|
657
|
+
],
|
|
658
|
+
"name": "forecastNextMonthResiduals",
|
|
659
|
+
"outputs": [
|
|
660
|
+
{
|
|
661
|
+
"internalType": "uint256",
|
|
662
|
+
"name": "forecastedAmount",
|
|
663
|
+
"type": "uint256"
|
|
664
|
+
}
|
|
665
|
+
],
|
|
666
|
+
"stateMutability": "view",
|
|
667
|
+
"type": "function"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"inputs": [],
|
|
671
|
+
"name": "getDefaultFeeStructure",
|
|
672
|
+
"outputs": [
|
|
673
|
+
{
|
|
674
|
+
"components": [
|
|
675
|
+
{
|
|
676
|
+
"internalType": "uint256",
|
|
677
|
+
"name": "baseRateBps",
|
|
678
|
+
"type": "uint256"
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"internalType": "uint256",
|
|
682
|
+
"name": "volumeTier1",
|
|
683
|
+
"type": "uint256"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"internalType": "uint256",
|
|
687
|
+
"name": "volumeTier2",
|
|
688
|
+
"type": "uint256"
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"internalType": "uint256",
|
|
692
|
+
"name": "tier1RateBps",
|
|
693
|
+
"type": "uint256"
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"internalType": "uint256",
|
|
697
|
+
"name": "tier2RateBps",
|
|
698
|
+
"type": "uint256"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"internalType": "uint256",
|
|
702
|
+
"name": "tier3RateBps",
|
|
703
|
+
"type": "uint256"
|
|
704
|
+
}
|
|
705
|
+
],
|
|
706
|
+
"internalType": "struct ResidualCalculator.FeeStructure",
|
|
707
|
+
"name": "",
|
|
708
|
+
"type": "tuple"
|
|
709
|
+
}
|
|
710
|
+
],
|
|
711
|
+
"stateMutability": "view",
|
|
712
|
+
"type": "function"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"inputs": [
|
|
716
|
+
{
|
|
717
|
+
"internalType": "bytes32",
|
|
718
|
+
"name": "merchantId",
|
|
719
|
+
"type": "bytes32"
|
|
720
|
+
}
|
|
721
|
+
],
|
|
722
|
+
"name": "getMerchantFeeStructure",
|
|
723
|
+
"outputs": [
|
|
724
|
+
{
|
|
725
|
+
"components": [
|
|
726
|
+
{
|
|
727
|
+
"internalType": "uint256",
|
|
728
|
+
"name": "baseRateBps",
|
|
729
|
+
"type": "uint256"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"internalType": "uint256",
|
|
733
|
+
"name": "volumeTier1",
|
|
734
|
+
"type": "uint256"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"internalType": "uint256",
|
|
738
|
+
"name": "volumeTier2",
|
|
739
|
+
"type": "uint256"
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"internalType": "uint256",
|
|
743
|
+
"name": "tier1RateBps",
|
|
744
|
+
"type": "uint256"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"internalType": "uint256",
|
|
748
|
+
"name": "tier2RateBps",
|
|
749
|
+
"type": "uint256"
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"internalType": "uint256",
|
|
753
|
+
"name": "tier3RateBps",
|
|
754
|
+
"type": "uint256"
|
|
755
|
+
}
|
|
756
|
+
],
|
|
757
|
+
"internalType": "struct ResidualCalculator.FeeStructure",
|
|
758
|
+
"name": "",
|
|
759
|
+
"type": "tuple"
|
|
760
|
+
}
|
|
761
|
+
],
|
|
762
|
+
"stateMutability": "view",
|
|
763
|
+
"type": "function"
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"inputs": [
|
|
767
|
+
{
|
|
768
|
+
"internalType": "bytes32",
|
|
769
|
+
"name": "role",
|
|
770
|
+
"type": "bytes32"
|
|
771
|
+
}
|
|
772
|
+
],
|
|
773
|
+
"name": "getRoleAdmin",
|
|
774
|
+
"outputs": [
|
|
775
|
+
{
|
|
776
|
+
"internalType": "bytes32",
|
|
777
|
+
"name": "",
|
|
778
|
+
"type": "bytes32"
|
|
779
|
+
}
|
|
780
|
+
],
|
|
781
|
+
"stateMutability": "view",
|
|
782
|
+
"type": "function"
|
|
783
|
+
},
|
|
784
|
+
{
|
|
785
|
+
"inputs": [
|
|
786
|
+
{
|
|
787
|
+
"internalType": "bytes32",
|
|
788
|
+
"name": "role",
|
|
789
|
+
"type": "bytes32"
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
"internalType": "address",
|
|
793
|
+
"name": "account",
|
|
794
|
+
"type": "address"
|
|
795
|
+
}
|
|
796
|
+
],
|
|
797
|
+
"name": "grantRole",
|
|
798
|
+
"outputs": [],
|
|
799
|
+
"stateMutability": "nonpayable",
|
|
800
|
+
"type": "function"
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"inputs": [
|
|
804
|
+
{
|
|
805
|
+
"internalType": "bytes32",
|
|
806
|
+
"name": "role",
|
|
807
|
+
"type": "bytes32"
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
"internalType": "address",
|
|
811
|
+
"name": "account",
|
|
812
|
+
"type": "address"
|
|
813
|
+
}
|
|
814
|
+
],
|
|
815
|
+
"name": "hasRole",
|
|
816
|
+
"outputs": [
|
|
817
|
+
{
|
|
818
|
+
"internalType": "bool",
|
|
819
|
+
"name": "",
|
|
820
|
+
"type": "bool"
|
|
821
|
+
}
|
|
822
|
+
],
|
|
823
|
+
"stateMutability": "view",
|
|
824
|
+
"type": "function"
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"inputs": [
|
|
828
|
+
{
|
|
829
|
+
"internalType": "address",
|
|
830
|
+
"name": "_admin",
|
|
831
|
+
"type": "address"
|
|
832
|
+
}
|
|
833
|
+
],
|
|
834
|
+
"name": "initialize",
|
|
835
|
+
"outputs": [],
|
|
836
|
+
"stateMutability": "nonpayable",
|
|
837
|
+
"type": "function"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"inputs": [],
|
|
841
|
+
"name": "proxiableUUID",
|
|
842
|
+
"outputs": [
|
|
843
|
+
{
|
|
844
|
+
"internalType": "bytes32",
|
|
845
|
+
"name": "",
|
|
846
|
+
"type": "bytes32"
|
|
847
|
+
}
|
|
848
|
+
],
|
|
849
|
+
"stateMutability": "view",
|
|
850
|
+
"type": "function"
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"inputs": [
|
|
854
|
+
{
|
|
855
|
+
"internalType": "bytes32",
|
|
856
|
+
"name": "merchantId",
|
|
857
|
+
"type": "bytes32"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"internalType": "int256",
|
|
861
|
+
"name": "residual",
|
|
862
|
+
"type": "int256"
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"internalType": "uint256",
|
|
866
|
+
"name": "rateBps",
|
|
867
|
+
"type": "uint256"
|
|
868
|
+
}
|
|
869
|
+
],
|
|
870
|
+
"name": "recordResidualHistory",
|
|
871
|
+
"outputs": [],
|
|
872
|
+
"stateMutability": "nonpayable",
|
|
873
|
+
"type": "function"
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"inputs": [
|
|
877
|
+
{
|
|
878
|
+
"internalType": "bytes32",
|
|
879
|
+
"name": "role",
|
|
880
|
+
"type": "bytes32"
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"internalType": "address",
|
|
884
|
+
"name": "callerConfirmation",
|
|
885
|
+
"type": "address"
|
|
886
|
+
}
|
|
887
|
+
],
|
|
888
|
+
"name": "renounceRole",
|
|
889
|
+
"outputs": [],
|
|
890
|
+
"stateMutability": "nonpayable",
|
|
891
|
+
"type": "function"
|
|
892
|
+
},
|
|
893
|
+
{
|
|
894
|
+
"inputs": [
|
|
895
|
+
{
|
|
896
|
+
"internalType": "bytes32",
|
|
897
|
+
"name": "role",
|
|
898
|
+
"type": "bytes32"
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"internalType": "address",
|
|
902
|
+
"name": "account",
|
|
903
|
+
"type": "address"
|
|
904
|
+
}
|
|
905
|
+
],
|
|
906
|
+
"name": "revokeRole",
|
|
907
|
+
"outputs": [],
|
|
908
|
+
"stateMutability": "nonpayable",
|
|
909
|
+
"type": "function"
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"inputs": [
|
|
913
|
+
{
|
|
914
|
+
"internalType": "bytes32",
|
|
915
|
+
"name": "_companyId",
|
|
916
|
+
"type": "bytes32"
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"internalType": "string",
|
|
920
|
+
"name": "_companyName",
|
|
921
|
+
"type": "string"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"internalType": "string",
|
|
925
|
+
"name": "_templateVersion",
|
|
926
|
+
"type": "string"
|
|
927
|
+
}
|
|
928
|
+
],
|
|
929
|
+
"name": "setCompanyConfig",
|
|
930
|
+
"outputs": [],
|
|
931
|
+
"stateMutability": "nonpayable",
|
|
932
|
+
"type": "function"
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"inputs": [
|
|
936
|
+
{
|
|
937
|
+
"components": [
|
|
938
|
+
{
|
|
939
|
+
"internalType": "uint256",
|
|
940
|
+
"name": "baseRateBps",
|
|
941
|
+
"type": "uint256"
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"internalType": "uint256",
|
|
945
|
+
"name": "volumeTier1",
|
|
946
|
+
"type": "uint256"
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"internalType": "uint256",
|
|
950
|
+
"name": "volumeTier2",
|
|
951
|
+
"type": "uint256"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"internalType": "uint256",
|
|
955
|
+
"name": "tier1RateBps",
|
|
956
|
+
"type": "uint256"
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"internalType": "uint256",
|
|
960
|
+
"name": "tier2RateBps",
|
|
961
|
+
"type": "uint256"
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"internalType": "uint256",
|
|
965
|
+
"name": "tier3RateBps",
|
|
966
|
+
"type": "uint256"
|
|
967
|
+
}
|
|
968
|
+
],
|
|
969
|
+
"internalType": "struct ResidualCalculator.FeeStructure",
|
|
970
|
+
"name": "structure",
|
|
971
|
+
"type": "tuple"
|
|
972
|
+
}
|
|
973
|
+
],
|
|
974
|
+
"name": "setDefaultFeeStructure",
|
|
975
|
+
"outputs": [],
|
|
976
|
+
"stateMutability": "nonpayable",
|
|
977
|
+
"type": "function"
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
"inputs": [
|
|
981
|
+
{
|
|
982
|
+
"internalType": "bytes32",
|
|
983
|
+
"name": "merchantId",
|
|
984
|
+
"type": "bytes32"
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"components": [
|
|
988
|
+
{
|
|
989
|
+
"internalType": "uint256",
|
|
990
|
+
"name": "baseRateBps",
|
|
991
|
+
"type": "uint256"
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
"internalType": "uint256",
|
|
995
|
+
"name": "volumeTier1",
|
|
996
|
+
"type": "uint256"
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"internalType": "uint256",
|
|
1000
|
+
"name": "volumeTier2",
|
|
1001
|
+
"type": "uint256"
|
|
1002
|
+
},
|
|
1003
|
+
{
|
|
1004
|
+
"internalType": "uint256",
|
|
1005
|
+
"name": "tier1RateBps",
|
|
1006
|
+
"type": "uint256"
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"internalType": "uint256",
|
|
1010
|
+
"name": "tier2RateBps",
|
|
1011
|
+
"type": "uint256"
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
"internalType": "uint256",
|
|
1015
|
+
"name": "tier3RateBps",
|
|
1016
|
+
"type": "uint256"
|
|
1017
|
+
}
|
|
1018
|
+
],
|
|
1019
|
+
"internalType": "struct ResidualCalculator.FeeStructure",
|
|
1020
|
+
"name": "structure",
|
|
1021
|
+
"type": "tuple"
|
|
1022
|
+
}
|
|
1023
|
+
],
|
|
1024
|
+
"name": "setMerchantFeeStructure",
|
|
1025
|
+
"outputs": [],
|
|
1026
|
+
"stateMutability": "nonpayable",
|
|
1027
|
+
"type": "function"
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
"inputs": [
|
|
1031
|
+
{
|
|
1032
|
+
"internalType": "bytes4",
|
|
1033
|
+
"name": "interfaceId",
|
|
1034
|
+
"type": "bytes4"
|
|
1035
|
+
}
|
|
1036
|
+
],
|
|
1037
|
+
"name": "supportsInterface",
|
|
1038
|
+
"outputs": [
|
|
1039
|
+
{
|
|
1040
|
+
"internalType": "bool",
|
|
1041
|
+
"name": "",
|
|
1042
|
+
"type": "bool"
|
|
1043
|
+
}
|
|
1044
|
+
],
|
|
1045
|
+
"stateMutability": "view",
|
|
1046
|
+
"type": "function"
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"inputs": [
|
|
1050
|
+
{
|
|
1051
|
+
"internalType": "bytes32",
|
|
1052
|
+
"name": "merchantId",
|
|
1053
|
+
"type": "bytes32"
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
"internalType": "uint256",
|
|
1057
|
+
"name": "volumeIncrease",
|
|
1058
|
+
"type": "uint256"
|
|
1059
|
+
}
|
|
1060
|
+
],
|
|
1061
|
+
"name": "updateMerchantVolume",
|
|
1062
|
+
"outputs": [],
|
|
1063
|
+
"stateMutability": "nonpayable",
|
|
1064
|
+
"type": "function"
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"inputs": [
|
|
1068
|
+
{
|
|
1069
|
+
"internalType": "address",
|
|
1070
|
+
"name": "newImplementation",
|
|
1071
|
+
"type": "address"
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
"internalType": "bytes",
|
|
1075
|
+
"name": "data",
|
|
1076
|
+
"type": "bytes"
|
|
1077
|
+
}
|
|
1078
|
+
],
|
|
1079
|
+
"name": "upgradeToAndCall",
|
|
1080
|
+
"outputs": [],
|
|
1081
|
+
"stateMutability": "payable",
|
|
1082
|
+
"type": "function"
|
|
1083
|
+
},
|
|
1084
|
+
{
|
|
1085
|
+
"inputs": [
|
|
1086
|
+
{
|
|
1087
|
+
"internalType": "bytes32",
|
|
1088
|
+
"name": "merchantId",
|
|
1089
|
+
"type": "bytes32"
|
|
1090
|
+
},
|
|
1091
|
+
{
|
|
1092
|
+
"internalType": "uint256",
|
|
1093
|
+
"name": "feePercentageBps",
|
|
1094
|
+
"type": "uint256"
|
|
1095
|
+
}
|
|
1096
|
+
],
|
|
1097
|
+
"name": "validateFeeStructure",
|
|
1098
|
+
"outputs": [
|
|
1099
|
+
{
|
|
1100
|
+
"internalType": "bool",
|
|
1101
|
+
"name": "isValid",
|
|
1102
|
+
"type": "bool"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"internalType": "string",
|
|
1106
|
+
"name": "issue",
|
|
1107
|
+
"type": "string"
|
|
1108
|
+
}
|
|
1109
|
+
],
|
|
1110
|
+
"stateMutability": "view",
|
|
1111
|
+
"type": "function"
|
|
1112
|
+
}
|
|
1113
|
+
],
|
|
1114
|
+
"bytecode": "0x60a0806040523461011e57604061002b913060805267784678edc72014e1602082015260208152610122565b610049604080516701e8bb29a7d52b84602082015260208152610122565b6100676040805167157e4e914d5d2f4a602082015260208152610122565b5f5160206161145f395f51905f525460ff8160401c1661010f576002600160401b03196001600160401b038216016100b9575b604051615fba908161015a8239608051818181610750015261082e0152f35b6001600160401b0319166001600160401b039081175f5160206161145f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009a565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b601f909101601f19168101906001600160401b0382119082101761014557604052565b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146101c45780630dc23993146101bf578063248a9ca3146101ba5780632b5fb016146101b55780632f2ff15d146101b057806336568abe146101ab5780634f1ef286146101a657806352d1902d146101a157806356ff4f3d1461019c5780635943cd4c146101975780636296677314610192578063633861f01461018d578063661efcd31461018857806375b238fc146101835780638d85c3d41461017e57806391d1485414610179578063929555a114610174578063a217fddf1461016f578063a4d19feb1461016a578063a56240ba14610165578063ad3cb1cc14610160578063b612f3ab1461015b578063c4d66de814610156578063d547741f14610151578063dedec9021461014c578063e4b0b21b146101475763f1d21a0214610142575f80fd5b612fbd565b612f46565b612939565b6128ef565b612766565b612543565b6124fc565b6124c9565b61248f565b612475565b612437565b6123dc565b6123bb565b612381565b61184e565b6116ee565b61126d565b610b35565b6108a0565b61081c565b610702565b6105dd565b61058c565b61044f565b610410565b610240565b3461021a57602036600319011261021a5760043563ffffffff60e01b811680910361021a57602090637965db0b60e01b8114908115610209575b506040519015158152f35b6301ffc9a760e01b1490505f6101fe565b5f80fd5b60c090600319011261021a57600490565b60c090602319011261021a57602490565b3461021a5760c036600319011261021a577f562fd8620a4e720900cae1fbf0e7dd18bcedfbe235d4e93b2340d47bf4898b5561040b61027e3661021e565b61029c604080516782d25141b9e16aae602082015260208152610670565b6102a46148d9565b6102c2604080516733e96dff25fd8e58602082015260208152610670565b6102f0604051806102e26020820190676de4783d48b442a5602083019252565b0390601f1982018152610670565b610310604051806102e26020820190670521cbb9e4dc6214602083019252565b610330604051806102e2602082019067148af5125b7a1953602083019252565b61033981614a4c565b610359604051806102e260208201906722a2ebf870cb1b54602083019252565b80356006556020810135600755604081013560085560608101356009556080810135600a5560a0810135600b556103a6604051806102e26020820190677a2d6d75f8b32ce7602083019252565b6103c6604051806102e260208201906729d5359925d5e1fc602083019252565b6040519182918291909160a08060c083019480358452602081013560208501526040810135604085015260608101356060850152608081013560808501520135910152565b0390a1005b3461021a57602036600319011261021a5760206104476004355f525f516020615f455f395f51905f52602052600160405f20015490565b604051908152f35b3461021a57604036600319011261021a5760043561055c6105546024359261048b60408051677c67282253d764ee602082015260208152610670565b6104936148d9565b6104b160408051672b1009fb0344c533602082015260208152610670565b6104cf6040805167a04f2150c607d9df602082015260208152610670565b6104ef604051806102e260208201906703ce1a50363469b0602083019252565b61050f604051806102e2602082019067840f27d2851adee2602083019252565b61054762278d00420491610539604051806102e2602082019067ad70a786d8b0feac602083019252565b5f52600e60205260405f2090565b905f5260205260405f2090565b918254613023565b9055005b602435906001600160a01b038216820361021a57565b600435906001600160a01b038216820361021a57565b3461021a57604036600319011261021a576105db6004356105ab610560565b906105d66105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b614a06565b6153bb565b005b3461021a57604036600319011261021a576004356105f9610560565b336001600160a01b03821603610612576105db91615450565b63334bd91960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761065057604052565b610621565b60c081019081106001600160401b0382111761065057604052565b90601f801991011681019081106001600160401b0382111761065057604052565b604051906106a060c083610670565b565b604051906106a060a083610670565b6001600160401b03811161065057601f01601f191660200190565b9291926106d8826106b1565b916106e66040519384610670565b82948184528183011161021a578281602093845f960137010152565b604036600319011261021a57610716610576565b6024356001600160401b03811161021a573660238201121561021a576107469036906024816004013591016106cc565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156107fa575b506107eb576105db916107a26040805167d3296d2360f1f612602082015260208152610670565b6107aa614948565b6107c860408051675dab68ba2a1a2394602082015260208152610670565b6107e66040805167ade19e7ae8d540e9602082015260208152610670565b6154f0565b63703e46dd60e11b5f5260045ffd5b5f516020615f255f395f51905f52546001600160a01b0316141590505f61077b565b3461021a575f36600319011261021a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036107eb5760206040515f516020615f255f395f51905f528152f35b9181601f8401121561021a578235916001600160401b03831161021a576020838186019501011161021a57565b3461021a57606036600319011261021a576004356024356001600160401b03811161021a576108d3903690600401610873565b6044356001600160401b03811161021a576108f2903690600401610873565b9290610912604080516769021d700d82dae8602082015260208152610670565b61091a614948565b610938604080516741c1769e04a9cf58602082015260208152610670565b610958604051806102e26020820190670f7dd0ab9bc755a4602083019252565b610978604051806102e2602082019067e9309a7f9edf1f19602083019252565b610998604051806102e2602082019067510e2a860316e944602083019252565b600154156109cf576109c0604051806102e26020820190671ed22f09b8a218f4602083019252565b6308db0db560e11b5f5260045ffd5b7f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf93610ac791610a15604051806102e2602082019067a96e4ae893420a34602083019252565b610a35604051806102e26020820190675cf53f31906e7b76602083019252565b610a7b610a40610691565b88815242602082015233604082015260016060820152610a613688886106cc565b6080820152610a713685856106cc565b60a0820152613163565b610a9b604051806102e2602082019067ead7733755d42816602083019252565b610abb604051806102e2602082019067810036624469685b602083019252565b604051948594856131eb565b0390a2005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60c06080610b329360208452805160208501526020810151604085015260408101516060850152606081015115158285015201519160a0808201520190610acc565b90565b3461021a57604036600319011261021a57600435602435610b54613212565b50610b75604051806102e2602082019067e66c3c7c651597e9602083019252565b610b95604051806102e26020820190675f0952359ae65557602083019252565b610bb5604051806102e2602082019067d6a6fdd872a96d37602083019252565b81610be957610bda604051806102e260208201906749193239de07eb80602083019252565b637ccfccc960e11b5f5260045ffd5b610c09604051806102e260208201906771c0aebe569145dd602083019252565b610c29604051806102e2602082019067dcaa84c434b641a9602083019252565b610c49604051806102e2602082019067d0ffed63934becff602083019252565b80610c7d57610c6e604051806102e2602082019067e21cd91fcd73e8a7602083019252565b63cc36378360e01b5f5260045ffd5b6110ee91610ca1604051806102e2602082019067779968546289265a602083019252565b610cc1604051806102e2602082019067e35c23ed7a89fd3c602083019252565b610ce1604051806102e26020820190675a037c874408daea602083019252565b610cfb610cf6825f52600560205260405f2090565b613278565b610d1b604051806102e260208201906715ad6e586f49d192602083019252565b610d3b604051806102e2602082019067aa6d32517ea9dbed602083019252565b80516112435750610d62604051806102e2602082019067216f4e5c30d77358602083019252565b610d82604051806102e2602082019067c30f8373fff5de5d602083019252565b610e99610d8d61323c565b915b610daf604051806102e26020820190673ca7e5b94629281d602083019252565b610dcf604051806102e2602082019067e149b5b0184d52d4602083019252565b610def604051806102e26020820190674faa03e41893b814602083019252565b610e0f604051806102e2602082019067d46a50fadc2399b0602083019252565b610e2f604051806102e260208201906783e5ad2c4866329b602083019252565b610e4f604051806102e26020820190671b408d2afcef3467602083019252565b61054762278d00420491610e79604051806102e2602082019067d61f510db0792469602083019252565b610539604051806102e2602082019067f8a404fc21776039602083019252565b54610eba604051806102e2602082019067eb2cee89a45c2fa7602083019252565b610eda604051806102e2602082019067de1f789993d27595602083019252565b602082015181101561111c5750610f07604051806102e2602082019067894ea8c95cec6982602083019252565b610f27604051806102e2602082019067dffdafbaa36c9af0602083019252565b805190610f4a604051806102e2602082019067a495f5d470134fe9602083019252565b5f915b610f6d604051806102e2602082019067e4a3f2ac2ead56d5602083019252565b610f8d604051806102e26020820190671de7c7744e7a702c602083019252565b60408201518411156110f2575060a09150610fbe604051806102e26020820190678b8d649f96d96396602083019252565b610fde604051806102e2602082019067a6236e7200cb7f45602083019252565b0151611000604051806102e26020820190674436134080e47c6e602083019252565b6110dd6003915b611027604051806102e26020820190671609f829d6adf8d2602083019252565b611047604051806102e26020820190678d408c608dc9a69a602083019252565b61109c816110558187614710565b95611076604051806102e2602082019067d06dc5e618b5f998602083019252565b611096604051806102e260208201906778ead8fab6bd7afe602083019252565b86615693565b9390916110bf604051806102e260208201906766191fcacbec3685602083019252565b6110c76106a2565b9586526020860152604085015215156060840152565b608082015260405191829182610af0565b0390f35b6110dd9150611117604051806102e2602082019067dea74d71ddd41760602083019252565b611007565b61113c604051806102e2602082019067f432c1588def59d3602083019252565b61115c604051806102e260208201906717fb2d49c5308ca8602083019252565b604082015111156111d557611187604051806102e26020820190673926627e4e2202c2602083019252565b6111a7604051806102e2602082019067d3125178c3133f4b602083019252565b6060810151906111cd604051806102e260208201906751d7864d8a452133602083019252565b600191610f4d565b6111f5604051806102e2602082019067bc9fffb1c0647dc6602083019252565b611215604051806102e260208201906710f8520fd09b63c9602083019252565b60808101519061123b604051806102e26020820190673662c14ae807f545602083019252565b600291610f4d565b90610e9990611268604051806102e26020820190674bae5a4c00765cbe602083019252565b610d8f565b3461021a57606036600319011261021a57600435602435604435906112a66040805167bae87e6e12443599602082015260208152610670565b6112ae6148d9565b6112cc6040805167c4af58c9e8e18340602082015260208152610670565b6112ec604051806102e26020820190674521406e47180748602083019252565b61130c604051806102e26020820190674e6bf22698d794b6602083019252565b61132c604051806102e26020820190675f8d3a35b05f2486602083019252565b6064611340845f52600d60205260405f2090565b541061167357611366604051806102e2602082019067f51dc9233007efa5602083019252565b611386604051806102e2602082019067fc550cc3d94e06ef602083019252565b6113a6604051806102e2602082019067635cf47fd2f61b22602083019252565b60635f5b8181106115f95750506113f9906113d7604051806102e2602082019067fb4185e61f70f120602083019252565b6113f360636113ee865f52600d60205260405f2090565b6132d2565b90613030565b611419604051806102e2602082019067da50121ebe16724e602083019252565b611439604051806102e26020820190671012d0ed46e6a92e602083019252565b606461144d835f52600c60205260405f2090565b541061158d57611473604051806102e26020820190678ecd175a239739cb602083019252565b611493604051806102e260208201906721ae2fe0f1ac207a602083019252565b6114b3604051806102e2602082019067ed98a5a8dc538881602083019252565b60635f5b8181106114fa5750506113f360636113ee6105db946114ec604051806102e2602082019067c3579c227a732157602083019252565b5f52600c60205260405f2090565b60019061151d604051806102e26020820190675e98bb510e4f9ccd602083019252565b611567611551611547611538885f52600c60205260405f2090565b61154185613010565b906132d2565b90549060031b1c90565b6113f3836113ee895f52600c60205260405f2090565b611587604051806102e26020820190679f540d25b7f2e537602083019252565b016114b7565b6115f46105db926115b4604051806102e2602082019067ef350c50efacae58602083019252565b6115d4604051806102e260208201906707b1d6fd77f8566e602083019252565b6114ec604051806102e2602082019067c7ee9be5f5510944602083019252565b6132ec565b60019061161c604051806102e260208201906752082a43677e8e4e602083019252565b61164d611637611547611538895f52600d60205260405f2090565b6113f3836113ee8a5f52600d60205260405f2090565b61166d604051806102e26020820190671fc531165359ad18602083019252565b016113aa565b6116e990611697604051806102e2602082019067e3a0b4d72ecb65dd602083019252565b6116b7604051806102e26020820190679f2bd7a297107b20602083019252565b6116d7604051806102e2602082019067e00cdbcc2aad6199602083019252565b6115f4845f52600d60205260405f2090565b6113f9565b3461021a575f36600319011261021a5761170661333f565b506117256040805167158009998c20b950602082015260208152610670565b6117436040805167a1b78267ca6b532f602082015260208152610670565b611761604080516796fec2906e101073602082015260208152610670565b6110ee61176c61323c565b6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106117e357505050505090565b909192939460208061183f600193603f1986820301875289519081518152608061181a8584015160a08785015260a0840190610acc565b9260408101516040840152606081015160608401520151906080818403910152610acc565b970193019301919392906117d4565b3461021a57602036600319011261021a57600435611882604051806102e2602082019067418bc2997876585c602083019252565b6118a2604051806102e2602082019067daaab0ea844292a2602083019252565b6118c2604051806102e2602082019067dffb2585e00fa6ed602083019252565b806118e757610bda604051806102e26020820190677d2434592fc3ea81602083019252565b611907604051806102e260208201906719c834d148c480eb602083019252565b611927604051806102e26020820190678088c2b8558debed602083019252565b611947604051806102e26020820190675844c8c639ac3268602083019252565b61194f613386565b61196f604051806102e26020820190679265711c22f96ee9602083019252565b61198f604051806102e2602082019067d4acc32796c148be602083019252565b5f6119b0604051806102e26020820190679a4cb7a937758ede602083019252565b6119d0604051806102e2602082019067750eff7dfcbe4939602083019252565b6119ea6119e5845f52600d60205260405f2090565b6133ef565b611a0a604051806102e2602082019067456d7a836f65ea1b602083019252565b611a2a604051806102e26020820190679d0a2709dec24099602083019252565b805190611a4d604051806102e2602082019067c59a152e541067a2602083019252565b611a6d604051806102e2602082019067817c634c91e114c0602083019252565b811561235a57611a93604051806102e260208201906787016a3397543afa602083019252565b611ab3604051806102e26020820190674be8777354f1ae51602083019252565b611ad3604051806102e2602082019067f35aedcfc66493eb602083019252565b601e8211801561234c575b8061233e575b1561233557611b34601e5b611b0f604051806102e2602082019067321c4bc9cb396890602083019252565b611b2e604051806102e26020820190667b4f24cd8a28d7602083019252565b83613332565b915b8083106121b9575b5050505b611b62604051806102e2602082019067ccbe8580c48a5849602083019252565b611b82604051806102e26020820190672c2be51d1dea0baa602083019252565b611b976119e5845f52600c60205260405f2090565b611bb7604051806102e26020820190673f5d5b7298cb5ef8602083019252565b611bd7604051806102e260208201906787dd42b6580bc476602083019252565b80511561219757611bfe604051806102e260208201906721ab70b013050226602083019252565b611c1e604051806102e26020820190676bdd6bf4adfa0c7e602083019252565b611c3e604051806102e2602082019067f4ba5aea2f9c218a602083019252565b611c9b611c4a856135a6565b91611c6b604051806102e260208201906734657379b933466f602083019252565b611c8b604051806102e26020820190679e4e2179c8bb421d602083019252565b611c958151613324565b90613437565b51611cbc604051806102e2602082019067e269061b9499467c602083019252565b611cdc604051806102e2602082019067ef89cceccdcfab51602083019252565b60c8611cf0611ceb84846134c3565b615cf9565b611d10604051806102e26020820190674d805cb863f590a6602083019252565b611d30604051806102e26020820190674e19ee02ef638d98602083019252565b111561216f57611df09291611d8491611d5f604051806102e2602082019067c8aa1fde715dbeb5602083019252565b611d7f604051806102e2602082019067154ab50b3dbee353602083019252565b6134c3565b611d8c6106a2565b90858252611d986134db565b60208301524260408301526060820152611db0613507565b6080820152611dbf8285613437565b52611dca8184613437565b50611deb604051806102e26020820190675f1ab85f2443a097602083019252565b6134b5565b905b611e12604051806102e26020820190676c1f9f7a6323b326602083019252565b611e32604051806102e26020820190672085665a89b085e4602083019252565b62278d004204611e58604051806102e2602082019067acc1885396438f9b602083019252565b611e78604051806102e26020820190671200219229de3819602083019252565b5f91611e9a604051806102e260208201906737bbae16c55cacc5602083019252565b611eba604051806102e2602082019067080807b4b63c5e1a602083019252565b6001925b601e84111580612165575b15611fd657611eee604051806102e2602082019067626ad3b69f38bc59602083019252565b611f0e604051806102e2602082019067c73a5639f6fa7eb3602083019252565b611f39611f23875f52600e60205260405f2090565b611f2d8686613332565b5f5260205260405f2090565b54611fad57611f84600191611f64604051806102e2602082019067d90d74e63915e5c8602083019252565b611deb604051806102e2602082019067e9901b124881a00f602083019252565b935b611fa6604051806102e26020820190678ba7ca188660aeda602083019252565b0192611ebe565b92600190611fd1604051806102e26020820190671eb3b516774b0c76602083019252565b611f86565b6110ee92508486611ffd604051806102e2602082019067bc5543b704bce202602083019252565b61201d604051806102e26020820190677a4d42a3e8bdea83602083019252565b601e831061213d576120cf92612049604051806102e260208201906777e028758fa37c05602083019252565b612069604051806102e2602082019067e41b715d98a42447602083019252565b6120716106a2565b91825261207c613542565b6020830152426040830152606082015261209461356b565b60808201526120a38285613437565b526120ae8184613437565b50611deb604051806102e26020820190674ad78555289f93b8602083019252565b6120ef604051806102e260208201906766f67d2c80b50c90602083019252565b8152612111604051806102e2602082019067f8a21a3a87ed6379602083019252565b612131604051806102e26020820190670c867953e209b12a602083019252565b604051918291826117b1565b509050612160604051806102e2602082019067f579a5065058bc0a602083019252565b6120cf565b5082841115611ec9565b505090612192604051806102e2602082019067bb6f8847a3da9fcc602083019252565b611df2565b5090612192604051806102e260208201906775d8ee3b472af2e3602083019252565b6121d9604051806102e260208201906742f56711f6416dff602083019252565b6121f9604051806102e26020820190677f89da26b7e23dac602083019252565b5f6122048484613437565b5112156122ea57506122c2929161225a91612235604051806102e260208201906745ac63ffe0927a82602083019252565b612255604051806102e260208201906767e967163fd3174c602083019252565b613437565b516122636106a2565b9085825261226f61344b565b6020830152426040830152606082015261228761347a565b60808201526122968285613437565b526122a18184613437565b50611deb604051806102e260208201906708e3af33bf51c90e602083019252565b6122e2604051806102e26020820190675021d302e37dd5cc602083019252565b5f8080611b3e565b9160019061230e604051806102e2602082019067c16103b7b6d830e8602083019252565b61232e604051806102e2602082019067d99833d8cf5aad52602083019252565b0191611b36565b611b3482611aef565b50612347615af6565b611ae4565b50612355615a8f565b611ade565b505061237c604051806102e2602082019067b5cd0ab0cdbe8944602083019252565b611b42565b3461021a575f36600319011261021a5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b3461021a57604036600319011261021a576020610447602435600435613917565b3461021a57604036600319011261021a57602060ff61242b6004356123ff610560565b905f525f516020615f455f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461021a57604036600319011261021a57612456602435600435613d6b565b906110ee60405192839215158352604060208401526040830190610acc565b3461021a575f36600319011261021a5760206040515f8152f35b3461021a575f36600319011261021a5760206040517f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f58152f35b3461021a57602036600319011261021a576110ee61176c60043561430e565b604051906124f7602083610670565b5f8252565b3461021a575f36600319011261021a576110ee60405161251d604082610670565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610acc565b3461021a5760e036600319011261021a576004356125603661022f565b61257e60408051679c3c817323d3c6e3602082015260208152610670565b612586614997565b6125a46040805167fc85a0b62c518530602082015260208152610670565b6125c4604051806102e26020820190676b3a377b8bd8629f602083019252565b6125e4604051806102e2602082019067cd75d4934ea6fe94602083019252565b612604604051806102e2602082019067c47744e73665f42c602083019252565b8161262957610bda604051806102e26020820190672d6255166c0e723e602083019252565b610ac77fe3549d384ec638cd041259730b4dcc4bc3285c48ec358bce734bfe6f7810d18f9161266e604051806102e26020820190678e662a9f994d31b7602083019252565b61268e604051806102e2602082019067db53d2d756634a30602083019252565b6126ae604051806102e26020820190676740b35096f4d7c5602083019252565b6126b781614a4c565b6126d7604051806102e2602082019067f9dbc040f2d9d5a7602083019252565b612726816126ed865f52600560205260405f2090565b9060a060059180358455602081013560018501556040810135600285015560608101356003850155608081013560048501550135910155565b612746604051806102e26020820190677c5d82eeb2414208602083019252565b6103c6604051806102e2602082019067bdf743a8535b7eb8602083019252565b3461021a57602036600319011261021a5761277f610576565b61279d60408051674e0c748a19981247602082015260208152610670565b5f516020615f655f395f51905f5254906001600160401b036127ce60ff604085901c1615936001600160401b031690565b16801590816128e7575b60011490816128dd575b1590816128d4575b506128c55761282d908261282460016001600160401b03195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b6128905761448d565b61283357005b61285d60ff60401b195f516020615f655f395f51905f5254165f516020615f655f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290806020810161040b565b6128c0600160401b60ff60401b195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b61448d565b63f92ee8a960e01b5f5260045ffd5b9050155f6127ea565b303b1591506127e2565b8391506127d8565b3461021a57604036600319011261021a576105db60043561290e610560565b906129346105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b615450565b3461021a57602036600319011261021a576004355f61296e604051806102e260208201906709b00e280b2f4249602083019252565b61298e604051806102e26020820190672d825343d87950fc602083019252565b6129ae604051806102e2602082019067e970461dd706afc6602083019252565b6129ce604051806102e2602082019067a0631502fc4008ae602083019252565b6129ee604051806102e2602082019067966c0d1306971e69602083019252565b62278d004204612a14604051806102e2602082019067f4f7187097ab858d602083019252565b612a34604051806102e2602082019067e10b51746d2d0c11602083019252565b5f612a55604051806102e2602082019067e4e61f2e4c0eb72f602083019252565b612a75604051806102e2602082019067933d87be40694000602083019252565b5f91612a97604051806102e260208201906715a054c0135a6dd3602083019252565b612ab7604051806102e2602082019067f58f47e3878a4165602083019252565b6001915b600383111580612dba575b15612c5857612aeb604051806102e2602082019067de95bb22c140930f602083019252565b612b0b604051806102e2602082019067b4979236f016fa4f602083019252565b612b4c612b47612b1b8585613332565b60408051602081018b815281830193909352908152612b3b606082610670565b519020620186a0900690565b6146c3565b90612b6d604051806102e2602082019067208af7eae6797e9d602083019252565b612b8d604051806102e2602082019067b01026801815b06a602083019252565b8115612c2d57612be2600192612c0392612bbd604051806102e26020820190675758b555cbb5fcff602083019252565b612bdd604051806102e260208201906764f1bea52e879cf7602083019252565b613023565b94611deb604051806102e2602082019067ac3ad4e261e42b6d602083019252565b925b612c25604051806102e2602082019067307171ee4d4135bc602083019252565b019192612abb565b939260019150612c53604051806102e26020820190678051d3389ec60311602083019252565b612c05565b836110ee9186612c7e604051806102e26020820190678b283fe638ce9d00602083019252565b612c9e604051806102e2602082019067e1e205883f940814602083019252565b8215612d925750612d15612d4292612d3a92612cd0604051806102e26020820190677cc4a5a2a2046453602083019252565b612cf0604051806102e2602082019067e828ae315c1bf998602083019252565b612d10604051806102e260208201906763a4b2f7c4d459a4602083019252565b612ff2565b612d35604051806102e260208201906789edd1fa6f2f6409602083019252565b6146e7565b612710900490565b612d62604051806102e26020820190670571cf30d3202ce8602083019252565b612d82604051806102e2602082019067c400dd735305664f602083019252565b6040519081529081906020820190565b915050612db5604051806102e260208201906731346adea2ac163c602083019252565b612d42565b5081831115612ac6565b90600182811c92168015612df2575b6020831014612dde57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612dd3565b604051905f8260035491612e0f83612dc4565b8083529260018116908115612e925750600114612e33575b6106a092500383610670565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818310612e765750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612e5e565b602092506106a094915060ff191682840152151560051b820101612e27565b604051905f8260045491612ec483612dc4565b8083529260018116908115612e925750600114612ee7576106a092500383610670565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310612f2a5750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612f12565b3461021a575f36600319011261021a575f54600154906110ee600254612faf612f6d612dfc565b60ff612f77612eb1565b936040519788978852602088015260018060a01b038116604088015260a01c161515606086015260c0608086015260c0850190610acc565b9083820360a0850152610acc565b3461021a57604036600319011261021a576020610447602435600435614710565b634e487b7160e01b5f52601160045260245ffd5b8115612ffc570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161301e57565b612fde565b9190820180921161301e57565b916130499183549060031b91821b915f19901b19161790565b9055565b601f821161305a57505050565b5f5260205f20906020601f840160051c83019310613092575b601f0160051c01905b818110613087575050565b5f815560010161307c565b9091508190613073565b91909182516001600160401b038111610650576130c3816130bd8454612dc4565b8461304d565b6020601f82116001146130fe5781906130499394955f926130f3575b50508160011b915f199060031b1c19161790565b015190505f806130df565b601f19821690613111845f5260205f2090565b915f5b81811061314b57509583600195969710613133575b505050811b019055565b01515f1960f88460031b161c191690555f8080613129565b9192602060018192868b015181550194019201613114565b80515f55602081015160015560408101516002805460608401516001600160a81b03199091166001600160a01b03939093169290921791151560a090811b60ff60a01b1692909217905560808201516106a092906131c290600361309c565b0151600461309c565b908060209392818452848401375f828201840152601f01601f1916010190565b929061320490610b3295936040865260408601916131cb565b9260208185039101526131cb565b6040519061321f82610635565b60606080835f81525f60208201525f60408201525f838201520152565b6040519061324982610655565b6006548252600754602083015260085460408301526009546060830152600a546080830152600b5460a0830152565b9060405161328581610655565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152600481015460808501520154910152565b634e487b7160e01b5f52603260045260245ffd5b80548210156132e7575f5260205f2001905f90565b6132be565b805490600160401b821015610650578161330e916001613049940181556132d2565b819391549060031b91821b915f19901b19161790565b5f1981019190821161301e57565b9190820391821161301e57565b6040519061334c82610655565b5f60a0838281528260208201528260408201528260608201528260808201520152565b6001600160401b0381116106505760051b60200190565b6040519061339661016083610670565b600a825281601f196133a8600a61336f565b01905f5b8281106133b857505050565b6020906040516133c781610635565b5f81526060838201525f60408201525f606082015260606080820152828285010152016133ac565b90604051918281549182825260208201905f5260205f20925f5b81811061341e5750506106a092500383610670565b8454835260019485019487945060209093019201613409565b80518210156132e75760209160051b010190565b6040519061345a604083610670565b6011825270139151d05512559157d49154d251155053607a1b6020830152565b60405190613489604083610670565b601a82527f4e6567617469766520726573696475616c2064657465637465640000000000006020830152565b5f19811461301e5760010190565b81810392915f13801582851316918412161761301e57565b604051906134ea604083610670565b600e82526d2920aa22afa222ab24a0aa24a7a760911b6020830152565b60405190613516604083610670565b601982527f556e757375616c206665652072617465206465746563746564000000000000006020830152565b60405190613551604083610670565b600b82526a5a45524f5f564f4c554d4560a81b6020830152565b6040519061357a604083610670565b601e82527f457874656e64656420706572696f64206f66207a65726f20766f6c756d6500006020830152565b6119e561366d916135cd604051806102e2602082019067805f2a16697a8783602083019252565b6135ed604051806102e260208201906791b84c61f11364ca602083019252565b61360d604051806102e2602082019067edf95dd0b362098a602083019252565b61362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b61364d604051806102e2602082019067915ee6a9d39c1fd2602083019252565b6114ec604051806102e26020820190677c5174c8b76456ed602083019252565b9061368e604051806102e260208201906790b69987b9c69080602083019252565b6136ae604051806102e26020820190673cc12b5e0eb55186602083019252565b81516136cf604051806102e260208201906603848ff88a6615602083019252565b6136ef604051806102e26020820190678c559f8fc407795c602083019252565b8061375d57509050613717604051806102e2602082019067de105720401be526602083019252565b613737604051806102e2602082019067c6db98ebde9afb2f602083019252565b613757604051806102e2602082019067ec2042e1b7b8a653602083019252565b60065490565b61377d604051806102e26020820190674632344a44d8ed90602083019252565b61379d604051806102e2602082019067bfbe0cdf53b10eec602083019252565b6137bd604051806102e2602082019067fb4702c1fd42bb8b602083019252565b80601e108015613909575b806138fb575b156138f557601e905b6137f7604051806102e2602082019067cc4a98d56cfa248f602083019252565b613817604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613839604051806102e26020820190679284464fa7a923da602083019252565b613859604051806102e26020820190674631098032230924602083019252565b6138638382613332565b905b808210613894575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b90916138cd6001916138bc604051806102e260208201906728083abdc186ac51602083019252565b6138c68589613437565b5190613023565b926138ee604051806102e26020820190670f3fe9f65028e149602083019252565b0190613865565b806137d7565b50613904615b1c565b6137ce565b50613912615ab4565b6137c8565b91909161393a604051806102e2602082019067805f2a16697a8783602083019252565b61395a604051806102e260208201906791b84c61f11364ca602083019252565b61397a604051806102e2602082019067edf95dd0b362098a602083019252565b61016d8311156139b3576139a4604051806102e2602082019067afde9ab242ff8fca602083019252565b631f17089160e31b5f5260045ffd5b6119e56139da9161362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b916139fb604051806102e260208201906790b69987b9c69080602083019252565b613a1b604051806102e26020820190673cc12b5e0eb55186602083019252565b825190613a3d604051806102e260208201906603848ff88a6615602083019252565b613a5d604051806102e26020820190678c559f8fc407795c602083019252565b81613a865750509050613717604051806102e2602082019067de105720401be526602083019252565b613aa6604051806102e26020820190674632344a44d8ed90602083019252565b613ac6604051806102e2602082019067bfbe0cdf53b10eec602083019252565b613ae6604051806102e2602082019067fb4702c1fd42bb8b602083019252565b8181108015613c1f575b80613c11575b15613c0a57905b613b1d604051806102e2602082019067cc4a98d56cfa248f602083019252565b613b3d604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613b5f604051806102e26020820190679284464fa7a923da602083019252565b613b7f604051806102e26020820190674631098032230924602083019252565b613b898382613332565b905b808210613bba575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b9091613be26001916138bc604051806102e260208201906728083abdc186ac51602083019252565b92613c03604051806102e26020820190670f3fe9f65028e149602083019252565b0190613b8b565b5080613afd565b50613c1a615b1c565b613af6565b50613c28615ab4565b613af0565b60405190613c3c604083610670565b6013825272125b9d985b1a59081b595c98da185b9d081251606a1b6020830152565b60405190613c6d604083610670565b601682527546656520726174652062656c6f77206d696e696d756d60501b6020830152565b60405190613ca1604083610670565b601882527f46656520726174652065786365656473206d6178696d756d00000000000000006020830152565b60405190613cdc606083610670565b602a8252692062617365207261746560b01b6040837f54696572203120726174652073686f756c64206265206c6f776572207468616e60208201520152565b60405190613d2a606083610670565b602c82526b20746965722031207261746560a01b6040837f54696572203220726174652073686f756c64206265206c6f776572207468616e60208201520152565b90613d8c604051806102e26020820190671bc87bab31c22488602083019252565b613dac604051806102e260208201906770999bf81ba3ae11602083019252565b613dcc604051806102e2602082019067ccce6f51c7c0f883602083019252565b81613e3d575050613df3604051806102e260208201906734f89b0ac0383546602083019252565b613e13604051806102e2602082019067f5d726a571cb776f602083019252565b613e33604051806102e2602082019067ab2abbf0da6f0e46602083019252565b5f90610b32613c2d565b613e5d604051806102e2602082019067833320855afce42a602083019252565b613e7d604051806102e26020820190672cf66f6e50d12504602083019252565b613e9d604051806102e2602082019067fb30f5b31fd7c3e1602083019252565b600a811015613f12575050613ec8604051806102e2602082019067aeee43987b823b1c602083019252565b613ee8604051806102e260208201906739d21ce56e5cacbf602083019252565b613f08604051806102e2602082019067b3f465aeae787dcb602083019252565b5f90610b32613c5e565b6101f490613f36604051806102e2602082019067febd65c6ea47c234602083019252565b613f56604051806102e26020820190671451f39cd0862425602083019252565b613f76604051806102e260208201906752be4423c520dec2602083019252565b1115613fe75750613f9d604051806102e260208201906704e8b5069863ce62602083019252565b613fbd604051806102e2602082019067fe4450be6aa220cd602083019252565b613fdd604051806102e26020820190676062618bf108132c602083019252565b5f90610b32613c92565b610cf661405c9161400e604051806102e260208201906749da9b2a0896bcf3602083019252565b61402e604051806102e26020820190676009f91191943c3c602083019252565b61404e604051806102e2602082019067d7b5e4145ceb247b602083019252565b5f52600560205260405f2090565b61407c604051806102e2602082019067d2e7fe5bff57b115602083019252565b61409c604051806102e2602082019067e293c9f1af8b08c8602083019252565b80516142e957506140c3604051806102e260208201906785f28b23052fa77e602083019252565b6140e3604051806102e2602082019067d7cbe11054bafdb2602083019252565b6140eb61323c565b61410b604051806102e26020820190672277910ed4046301602083019252565b61412b604051806102e260208201906718c171ed2acb2258602083019252565b606081019081518151105f146141a757505061415d604051806102e2602082019067237545ed7842e02b602083019252565b61417d604051806102e26020820190672b530357a716056a602083019252565b61419d604051806102e26020820190674f852ca528d8811c602083019252565b5f90610b32613ccd565b6080906141ca604051806102e26020820190670e39d2ea6602ab2a602083019252565b6141ea604051806102e26020820190672add9db82382038d602083019252565b61420a604051806102e26020820190678b67cd57f66fe1c2602083019252565b01519051101561427e57614234604051806102e26020820190674e719f9d3ddde770602083019252565b614254604051806102e260208201906732a7422734116847602083019252565b614274604051806102e260208201906748fe659cd372c85f602083019252565b5f90610b32613d1b565b61429e604051806102e26020820190678b241d68dad49a49602083019252565b6142be604051806102e2602082019067b27fcb0def21d9ca602083019252565b6142de604051806102e26020820190671333085ebf315279602083019252565b600190610b326124e8565b614309604051806102e2602082019067aa7bd1ef07c99ac1602083019252565b6140eb565b610cf661437e9161431d61333f565b5061433e604051806102e260208201906725694f3b500c8727602083019252565b61435e604051806102e260208201906755db04649f476138602083019252565b61404e604051806102e2602082019067a81dddde35cce75b602083019252565b61439e604051806102e2602082019067cfeacd5f5c30c888602083019252565b6143be604051806102e2602082019067e1de7a3989f5e996602083019252565b805161442d57506143e5604051806102e260208201906787d1a41267820b7c602083019252565b614405604051806102e2602082019067c0c9602937fe5a3a602083019252565b614425604051806102e260208201906744f4d4d1b740d7e8602083019252565b610b3261323c565b61444d604051806102e2602082019067aae439eeea9dd006602083019252565b61446d604051806102e2602082019067e5ca59cf4e90f975602083019252565b610b32604051806102e26020820190674748c734aa8669f6602083019252565b614638906144af6040805167fdff48a7aedafc9f602082015260208152610670565b6144cf604051806102e26020820190677d737efd6470c80e602083019252565b6144ef604051806102e260208201906772afa60d12e629fa602083019252565b61450f604051806102e2602082019067f985dfc4b3585931602083019252565b614517615e3b565b614537604051806102e2602082019067b8c73956ea197ee5602083019252565b614557604051806102e260208201906752cddd31306ceb86602083019252565b61455f615e3b565b61457f604051806102e26020820190679693533c22691253602083019252565b61459f604051806102e26020820190673857901a36adc5e1602083019252565b6145a88161519d565b506145c9604051806102e2602082019067b5ac84373741f43a602083019252565b6145e9604051806102e26020820190672c96be1d50cdff18602083019252565b6145f281615239565b50614613604051806102e26020820190678f332cac73ccef4f602083019252565b614633604051806102e2602082019067fac2e3f684527c44602083019252565b6152fa565b50614659604051806102e26020820190672340353ea17c29d9602083019252565b6106a0614664610691565b60fa80825269021e19e0c9bab240000060208301819052690a968163f0a57b4000006040840181905260c860608501819052609660808601819052606460a0909601869052600694909455600792909255600855600955600a55600b55565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561301e57565b9060fa82029180830460fa149015171561301e57565b8181029291811591840414171561301e57565b614730604051806102e2602082019067b5aa0b154d4b349c602083019252565b614750604051806102e260208201906777c8c2449519b995602083019252565b614770604051806102e260208201906785431a24268fc98d602083019252565b8061479557610c6e604051806102e26020820190674124440c24a4568e602083019252565b6147b5604051806102e260208201906724503fc3bc6ca44e602083019252565b6147d5604051806102e26020820190673da1c354569a0389602083019252565b6147f5604051806102e26020820190673bf1acf7c1a94357602083019252565b600a8210806148cb575b80156148b1575b15614864576148618261482f604051806102e2602082019067e9393ba0a9a1369f602083019252565b61484f604051806102e26020820190674e11ef1ca2ae2a04602083019252565b6336e6824b60e21b5f52600452602490565b5ffd5b610b3291612d3a9161488c604051806102e260208201906735c9f3bb306cedcf602083019252565b6148ac604051806102e26020820190679eba9a9efb1fb954602083019252565b6146fd565b506101f48211801561480657506148c6615b5e565b614806565b506148d4615b3d565b6147ff565b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561491157565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561498057565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16156149cf57565b63e2517d3f60e01b5f52336004527f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f560245260445ffd5b5f8181525f516020615f455f395f51905f526020908152604080832033845290915290205460ff1615614a365750565b63e2517d3f60e01b5f523360045260245260445ffd5b614a6c604051806102e26020820190674f0115ae7fd19f3d602083019252565b614a8c604051806102e2602082019067cff66ac7ad408d1b602083019252565b614aac604051806102e2602082019067e3da6b3f7c3ba141602083019252565b803590600a82108061518f575b8015615175575b15614b095761486182614ae9604051806102e2602082019067dd5b985d5b7c9e88602083019252565b61484f604051806102e26020820190673fe217f8122a1780602083019252565b90614b2a604051806102e26020820190675d43a5e7adaf87d6602083019252565b614b4a604051806102e2602082019067422081665b26b54a602083019252565b614b6a604051806102e26020820190673607006dd6fa99eb602083019252565b606082013591600a831080615167575b801561514d575b15614bca5761486183614baa604051806102e2602082019067ef64f806f1ed91b8602083019252565b61484f604051806102e2602082019067c39f6e5f9e8e96b3602083019252565b9091614bec604051806102e26020820190673b19c5cdd50d1cf9602083019252565b614c0c604051806102e2602082019067c2b5da159143ea56602083019252565b614c2c604051806102e260208201906712662010c204b827602083019252565b608082013592600a84108061513f575b8015615125575b15614c8c5761486184614c6c604051806102e2602082019067867171f66fb2943e602083019252565b61484f604051806102e260208201906794bb184101969114602083019252565b614caf604094939451806102e260208201906767fb27694bf1ede6602083019252565b614ccf604051806102e260208201906740dae8ce4bae3715602083019252565b614cef604051806102e26020820190672b7adb491e9c85a3602083019252565b60a084013593600a851080615117575b80156150fd575b15614d4f5761486185614d2f604051806102e260208201906760eeb19146f1e5d2602083019252565b61484f604051806102e2602082019067aa87fe3096faafdc602083019252565b614d72604095949551806102e2602082019067dab8c05118269ede602083019252565b614d92604051806102e2602082019067e3dee722d80841cb602083019252565b614db2604051806102e2602082019067c3a9ef9f1dbce158602083019252565b6020810135908115806150ef575b80156150d4575b15614e1b57614dec604051806102e2602082019067867fbbf32b47c64b602083019252565b614e0c604051806102e260208201906721ab90b66417e11a602083019252565b63adf8131b60e01b5f5260045ffd5b604090614e3d8251806102e26020820190673ed8dbfb8b25957d602083019252565b815167deba7507bb01d4576020820152614e5b9080604081016102e2565b815167d292367d2a5d66726020820152614e799080604081016102e2565b013511614ec057614ea0604051806102e26020820190677cd9881b96acde13602083019252565b614e0c604051806102e26020820190677e562dce734bf047602083019252565b614ee0604051806102e2602082019067a666f98b0cc1b9e3602083019252565b614f00604051806102e2602082019067fd8d2e4eb9cbf012602083019252565b614f20604051806102e2602082019067c30592a9108e6787602083019252565b811115614f6757614f47604051806102e26020820190679aac09fbf43e940b602083019252565b614e0c604051806102e26020820190670c3930840d7f3b64602083019252565b614f87604051806102e2602082019067c37a8a710defaa86602083019252565b614fa7604051806102e2602082019067da0bf8a572d49c03602083019252565b614fc7604051806102e2602082019067e49fc01267574d67602083019252565b82111561500e57614fee604051806102e2602082019067ea77b2441fd2dc3d602083019252565b614e0c604051806102e2602082019067fb7d7a71f1e61545602083019252565b61502e604051806102e260208201906708e70f837105198c602083019252565b61504e604051806102e260208201906767ea3067475fbec2602083019252565b61506e604051806102e2602082019067b100ca0f4dcfa951602083019252565b11156150b457615094604051806102e2602082019067dc08fe5523a8af65602083019252565b614e0c604051806102e260208201906718b8a5c08106f16e602083019252565b6106a0604051806102e2602082019067a6b86cb1331c34c3602083019252565b506040810135158015614dc757506150ea615ca8565b614dc7565b506150f8615c87565b614dc0565b506101f485118015614d065750615112615c66565b614d06565b50615120615c45565b614cff565b506101f484118015614c43575061513a615c24565b614c43565b50615148615c03565b614c3c565b506101f483118015614b815750615162615be2565b614b81565b50615170615bc1565b614b7a565b506101f482118015614ac0575061518a615ba0565b614ac0565b50615198615b7f565b614ab9565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16615234576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020615f055f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16615234576001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260409020805460ff1916600117905533906001600160a01b03167fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217755f516020615f055f395f51905f525f80a4600190565b6001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16615234576001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b060205260409020805460ff1916600117905533906001600160a01b03167f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f55f516020615f055f395f51905f525f80a4600190565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f516020615f055f395f51905f525f80a4600190565b50505f90565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516352d1902d60e01b81529290916020846004816001600160a01b0387165afa5f9481615570575b5061553b57634c9c8ce360e01b5f526001600160a01b03831660045260245ffd5b90915f516020615f255f395f51905f52840361555c576106a0929350615d99565b632a87526960e21b5f52600484905260245ffd5b9094506020813d60201161559c575b8161558c60209383610670565b8101031261021a5751935f61551a565b3d915061557f565b604051906155b3606083610670565b60238252621d5b9d60ea1b6040837f526573696475616c2065786365656473207472616e73616374696f6e20616d6f60208201520152565b604051906155fa604083610670565b601a82527f4170706c69656420726174652062656c6f77206d696e696d756d0000000000006020830152565b60405190615635604083610670565b601c82527f4170706c69656420726174652065786365656473206d6178696d756d000000006020830152565b60405190615670604083610670565b6014825273086c2d8c6ead8c2e8d2dedc40dad2e6dac2e8c6d60631b6020830152565b91906156b5604051806102e2602082019067d6f3bdd156aa03fc602083019252565b6156d5604051806102e260208201906785214db735c94682602083019252565b6156f5604051806102e2602082019067af91e78e8c38cc30602083019252565b8083111561576a57505050615720604051806102e2602082019067844e2b40bc6cde8a602083019252565b615740604051806102e2602082019067b570d739d42a0959602083019252565b615760604051806102e26020820190677026bcbf64586077602083019252565b5f90610b326155a4565b61578a604051806102e2602082019067663d215eb1a5f2cf602083019252565b6157aa604051806102e260208201906783dba432b2cec792602083019252565b6157ca604051806102e2602082019067b7d9deea5411b737602083019252565b600a821015615840575050506157f6604051806102e26020820190674481afd64849cffb602083019252565b615816604051806102e2602082019067021b2fc0d08c51d1602083019252565b615836604051806102e2602082019067df6cfa2a8a192ae2602083019252565b5f90610b326155eb565b615860604051806102e260208201906783b62e0eedf99a7e602083019252565b615880604051806102e2602082019067bacee8b96f63448d602083019252565b6158a0604051806102e2602082019067643890c3855b8c42602083019252565b6101f4821115615917575050506158cd604051806102e260208201906777a489e6e32f1442602083019252565b6158ed604051806102e2602082019067faa2ad1d4d3e482a602083019252565b61590d604051806102e260208201906702dde887041a31f5602083019252565b5f90610b32615626565b61597f91612d3a9161593f604051806102e2602082019067b0c173eac201e9a2602083019252565b61595f604051806102e26020820190673bf345539ddb5661602083019252565b6148ac604051806102e26020820190676735b78584117d16602083019252565b906159a0604051806102e260208201906773fa8803d756179c602083019252565b6159c0604051806102e260208201906769da72965c2cc882602083019252565b14615a2f576159e5604051806102e2602082019067b5c23461022219dc602083019252565b615a05604051806102e26020820190675339cc2beac6a70e602083019252565b615a25604051806102e26020820190673269b493f8b3fcb4602083019252565b5f90610b32615661565b615a4f604051806102e2602082019067da5d7a9ef7d7e7a7602083019252565b615a6f604051806102e2602082019067b4b7741d1f55bbca602083019252565b6142de604051806102e2602082019067b7cf7f0309fed57a602083019252565b615ab060408051679b3239249fc1469f60c01b602082015260208152610670565b5f90565b615ab06040805167722f095d6fe6690f60c11b602082015260208152610670565b615ab060408051672eb0f51321b6284360c11b602082015260208152610670565b615b17604080516711ffc15e94d1d72d60c01b602082015260208152610670565b600190565b615b17604080516707f9fef40ab6529560c31b602082015260208152610670565b615b1760408051675b2920d65bbd2e4f60c01b602082015260208152610670565b615b176040805167f6275cf06424963560c01b602082015260208152610670565b615b1760408051672afb8ece48e719cb60c11b602082015260208152610670565b615b176040805167251021355c981c8760c21b602082015260208152610670565b615b176040805167419025bbde3ab04f60c01b602082015260208152610670565b615b17604080516711be83a07bb5931560c11b602082015260208152610670565b615b17604080516701d95aaf64442f4360c41b602082015260208152610670565b615b1760408051671e8f1e62e7bb0c8760c11b602082015260208152610670565b615b176040805167c452d0152af3d3cb60c01b602082015260208152610670565b615b17604080516709a7d12eab7a400960c21b602082015260208152610670565b615b1760408051676d44ed800829005360c01b602082015260208152610670565b615b176040805166f97a7a868e65c160c01b602082015260208152610670565b615b1760408051674a6900822a6f224360c01b602082015260208152610670565b600160ff1b811461301e575f0390565b604080516702197d60f0d74c876020808301919091528152615d1b9190610670565b615d3b604051806102e2602082019067d520f05f4cc56f77602083019252565b615d5b604051806102e2602082019067c53068484663bb06602083019252565b5f8112801590615d8b575b80615d7d575b15615d745790565b610b3290615ce9565b50615d86615cc8565b615d6c565b50615d94615ad5565b615d66565b90813b15615e1a575f516020615f255f395f51905f5280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115615e0257615dff91615e66565b50565b505034615e0b57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b60ff5f516020615f655f395f51905f525460401c1615615e5757565b631afcd79f60e31b5f5260045ffd5b5f80610b3293602081519101845af43d15615ea2573d91615e86836106b1565b92615e946040519485610670565b83523d5f602085013e615ea6565b6060915b90615eca5750805115615ebb57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615efb575b615edb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ed356fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d025daeb639717c0ee4076b326607adbcc26e6daae060dc4d2d82f26d440180a64736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
|
|
1115
|
+
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146101c45780630dc23993146101bf578063248a9ca3146101ba5780632b5fb016146101b55780632f2ff15d146101b057806336568abe146101ab5780634f1ef286146101a657806352d1902d146101a157806356ff4f3d1461019c5780635943cd4c146101975780636296677314610192578063633861f01461018d578063661efcd31461018857806375b238fc146101835780638d85c3d41461017e57806391d1485414610179578063929555a114610174578063a217fddf1461016f578063a4d19feb1461016a578063a56240ba14610165578063ad3cb1cc14610160578063b612f3ab1461015b578063c4d66de814610156578063d547741f14610151578063dedec9021461014c578063e4b0b21b146101475763f1d21a0214610142575f80fd5b612fbd565b612f46565b612939565b6128ef565b612766565b612543565b6124fc565b6124c9565b61248f565b612475565b612437565b6123dc565b6123bb565b612381565b61184e565b6116ee565b61126d565b610b35565b6108a0565b61081c565b610702565b6105dd565b61058c565b61044f565b610410565b610240565b3461021a57602036600319011261021a5760043563ffffffff60e01b811680910361021a57602090637965db0b60e01b8114908115610209575b506040519015158152f35b6301ffc9a760e01b1490505f6101fe565b5f80fd5b60c090600319011261021a57600490565b60c090602319011261021a57602490565b3461021a5760c036600319011261021a577f562fd8620a4e720900cae1fbf0e7dd18bcedfbe235d4e93b2340d47bf4898b5561040b61027e3661021e565b61029c604080516782d25141b9e16aae602082015260208152610670565b6102a46148d9565b6102c2604080516733e96dff25fd8e58602082015260208152610670565b6102f0604051806102e26020820190676de4783d48b442a5602083019252565b0390601f1982018152610670565b610310604051806102e26020820190670521cbb9e4dc6214602083019252565b610330604051806102e2602082019067148af5125b7a1953602083019252565b61033981614a4c565b610359604051806102e260208201906722a2ebf870cb1b54602083019252565b80356006556020810135600755604081013560085560608101356009556080810135600a5560a0810135600b556103a6604051806102e26020820190677a2d6d75f8b32ce7602083019252565b6103c6604051806102e260208201906729d5359925d5e1fc602083019252565b6040519182918291909160a08060c083019480358452602081013560208501526040810135604085015260608101356060850152608081013560808501520135910152565b0390a1005b3461021a57602036600319011261021a5760206104476004355f525f516020615f455f395f51905f52602052600160405f20015490565b604051908152f35b3461021a57604036600319011261021a5760043561055c6105546024359261048b60408051677c67282253d764ee602082015260208152610670565b6104936148d9565b6104b160408051672b1009fb0344c533602082015260208152610670565b6104cf6040805167a04f2150c607d9df602082015260208152610670565b6104ef604051806102e260208201906703ce1a50363469b0602083019252565b61050f604051806102e2602082019067840f27d2851adee2602083019252565b61054762278d00420491610539604051806102e2602082019067ad70a786d8b0feac602083019252565b5f52600e60205260405f2090565b905f5260205260405f2090565b918254613023565b9055005b602435906001600160a01b038216820361021a57565b600435906001600160a01b038216820361021a57565b3461021a57604036600319011261021a576105db6004356105ab610560565b906105d66105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b614a06565b6153bb565b005b3461021a57604036600319011261021a576004356105f9610560565b336001600160a01b03821603610612576105db91615450565b63334bd91960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761065057604052565b610621565b60c081019081106001600160401b0382111761065057604052565b90601f801991011681019081106001600160401b0382111761065057604052565b604051906106a060c083610670565b565b604051906106a060a083610670565b6001600160401b03811161065057601f01601f191660200190565b9291926106d8826106b1565b916106e66040519384610670565b82948184528183011161021a578281602093845f960137010152565b604036600319011261021a57610716610576565b6024356001600160401b03811161021a573660238201121561021a576107469036906024816004013591016106cc565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156107fa575b506107eb576105db916107a26040805167d3296d2360f1f612602082015260208152610670565b6107aa614948565b6107c860408051675dab68ba2a1a2394602082015260208152610670565b6107e66040805167ade19e7ae8d540e9602082015260208152610670565b6154f0565b63703e46dd60e11b5f5260045ffd5b5f516020615f255f395f51905f52546001600160a01b0316141590505f61077b565b3461021a575f36600319011261021a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036107eb5760206040515f516020615f255f395f51905f528152f35b9181601f8401121561021a578235916001600160401b03831161021a576020838186019501011161021a57565b3461021a57606036600319011261021a576004356024356001600160401b03811161021a576108d3903690600401610873565b6044356001600160401b03811161021a576108f2903690600401610873565b9290610912604080516769021d700d82dae8602082015260208152610670565b61091a614948565b610938604080516741c1769e04a9cf58602082015260208152610670565b610958604051806102e26020820190670f7dd0ab9bc755a4602083019252565b610978604051806102e2602082019067e9309a7f9edf1f19602083019252565b610998604051806102e2602082019067510e2a860316e944602083019252565b600154156109cf576109c0604051806102e26020820190671ed22f09b8a218f4602083019252565b6308db0db560e11b5f5260045ffd5b7f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf93610ac791610a15604051806102e2602082019067a96e4ae893420a34602083019252565b610a35604051806102e26020820190675cf53f31906e7b76602083019252565b610a7b610a40610691565b88815242602082015233604082015260016060820152610a613688886106cc565b6080820152610a713685856106cc565b60a0820152613163565b610a9b604051806102e2602082019067ead7733755d42816602083019252565b610abb604051806102e2602082019067810036624469685b602083019252565b604051948594856131eb565b0390a2005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60c06080610b329360208452805160208501526020810151604085015260408101516060850152606081015115158285015201519160a0808201520190610acc565b90565b3461021a57604036600319011261021a57600435602435610b54613212565b50610b75604051806102e2602082019067e66c3c7c651597e9602083019252565b610b95604051806102e26020820190675f0952359ae65557602083019252565b610bb5604051806102e2602082019067d6a6fdd872a96d37602083019252565b81610be957610bda604051806102e260208201906749193239de07eb80602083019252565b637ccfccc960e11b5f5260045ffd5b610c09604051806102e260208201906771c0aebe569145dd602083019252565b610c29604051806102e2602082019067dcaa84c434b641a9602083019252565b610c49604051806102e2602082019067d0ffed63934becff602083019252565b80610c7d57610c6e604051806102e2602082019067e21cd91fcd73e8a7602083019252565b63cc36378360e01b5f5260045ffd5b6110ee91610ca1604051806102e2602082019067779968546289265a602083019252565b610cc1604051806102e2602082019067e35c23ed7a89fd3c602083019252565b610ce1604051806102e26020820190675a037c874408daea602083019252565b610cfb610cf6825f52600560205260405f2090565b613278565b610d1b604051806102e260208201906715ad6e586f49d192602083019252565b610d3b604051806102e2602082019067aa6d32517ea9dbed602083019252565b80516112435750610d62604051806102e2602082019067216f4e5c30d77358602083019252565b610d82604051806102e2602082019067c30f8373fff5de5d602083019252565b610e99610d8d61323c565b915b610daf604051806102e26020820190673ca7e5b94629281d602083019252565b610dcf604051806102e2602082019067e149b5b0184d52d4602083019252565b610def604051806102e26020820190674faa03e41893b814602083019252565b610e0f604051806102e2602082019067d46a50fadc2399b0602083019252565b610e2f604051806102e260208201906783e5ad2c4866329b602083019252565b610e4f604051806102e26020820190671b408d2afcef3467602083019252565b61054762278d00420491610e79604051806102e2602082019067d61f510db0792469602083019252565b610539604051806102e2602082019067f8a404fc21776039602083019252565b54610eba604051806102e2602082019067eb2cee89a45c2fa7602083019252565b610eda604051806102e2602082019067de1f789993d27595602083019252565b602082015181101561111c5750610f07604051806102e2602082019067894ea8c95cec6982602083019252565b610f27604051806102e2602082019067dffdafbaa36c9af0602083019252565b805190610f4a604051806102e2602082019067a495f5d470134fe9602083019252565b5f915b610f6d604051806102e2602082019067e4a3f2ac2ead56d5602083019252565b610f8d604051806102e26020820190671de7c7744e7a702c602083019252565b60408201518411156110f2575060a09150610fbe604051806102e26020820190678b8d649f96d96396602083019252565b610fde604051806102e2602082019067a6236e7200cb7f45602083019252565b0151611000604051806102e26020820190674436134080e47c6e602083019252565b6110dd6003915b611027604051806102e26020820190671609f829d6adf8d2602083019252565b611047604051806102e26020820190678d408c608dc9a69a602083019252565b61109c816110558187614710565b95611076604051806102e2602082019067d06dc5e618b5f998602083019252565b611096604051806102e260208201906778ead8fab6bd7afe602083019252565b86615693565b9390916110bf604051806102e260208201906766191fcacbec3685602083019252565b6110c76106a2565b9586526020860152604085015215156060840152565b608082015260405191829182610af0565b0390f35b6110dd9150611117604051806102e2602082019067dea74d71ddd41760602083019252565b611007565b61113c604051806102e2602082019067f432c1588def59d3602083019252565b61115c604051806102e260208201906717fb2d49c5308ca8602083019252565b604082015111156111d557611187604051806102e26020820190673926627e4e2202c2602083019252565b6111a7604051806102e2602082019067d3125178c3133f4b602083019252565b6060810151906111cd604051806102e260208201906751d7864d8a452133602083019252565b600191610f4d565b6111f5604051806102e2602082019067bc9fffb1c0647dc6602083019252565b611215604051806102e260208201906710f8520fd09b63c9602083019252565b60808101519061123b604051806102e26020820190673662c14ae807f545602083019252565b600291610f4d565b90610e9990611268604051806102e26020820190674bae5a4c00765cbe602083019252565b610d8f565b3461021a57606036600319011261021a57600435602435604435906112a66040805167bae87e6e12443599602082015260208152610670565b6112ae6148d9565b6112cc6040805167c4af58c9e8e18340602082015260208152610670565b6112ec604051806102e26020820190674521406e47180748602083019252565b61130c604051806102e26020820190674e6bf22698d794b6602083019252565b61132c604051806102e26020820190675f8d3a35b05f2486602083019252565b6064611340845f52600d60205260405f2090565b541061167357611366604051806102e2602082019067f51dc9233007efa5602083019252565b611386604051806102e2602082019067fc550cc3d94e06ef602083019252565b6113a6604051806102e2602082019067635cf47fd2f61b22602083019252565b60635f5b8181106115f95750506113f9906113d7604051806102e2602082019067fb4185e61f70f120602083019252565b6113f360636113ee865f52600d60205260405f2090565b6132d2565b90613030565b611419604051806102e2602082019067da50121ebe16724e602083019252565b611439604051806102e26020820190671012d0ed46e6a92e602083019252565b606461144d835f52600c60205260405f2090565b541061158d57611473604051806102e26020820190678ecd175a239739cb602083019252565b611493604051806102e260208201906721ae2fe0f1ac207a602083019252565b6114b3604051806102e2602082019067ed98a5a8dc538881602083019252565b60635f5b8181106114fa5750506113f360636113ee6105db946114ec604051806102e2602082019067c3579c227a732157602083019252565b5f52600c60205260405f2090565b60019061151d604051806102e26020820190675e98bb510e4f9ccd602083019252565b611567611551611547611538885f52600c60205260405f2090565b61154185613010565b906132d2565b90549060031b1c90565b6113f3836113ee895f52600c60205260405f2090565b611587604051806102e26020820190679f540d25b7f2e537602083019252565b016114b7565b6115f46105db926115b4604051806102e2602082019067ef350c50efacae58602083019252565b6115d4604051806102e260208201906707b1d6fd77f8566e602083019252565b6114ec604051806102e2602082019067c7ee9be5f5510944602083019252565b6132ec565b60019061161c604051806102e260208201906752082a43677e8e4e602083019252565b61164d611637611547611538895f52600d60205260405f2090565b6113f3836113ee8a5f52600d60205260405f2090565b61166d604051806102e26020820190671fc531165359ad18602083019252565b016113aa565b6116e990611697604051806102e2602082019067e3a0b4d72ecb65dd602083019252565b6116b7604051806102e26020820190679f2bd7a297107b20602083019252565b6116d7604051806102e2602082019067e00cdbcc2aad6199602083019252565b6115f4845f52600d60205260405f2090565b6113f9565b3461021a575f36600319011261021a5761170661333f565b506117256040805167158009998c20b950602082015260208152610670565b6117436040805167a1b78267ca6b532f602082015260208152610670565b611761604080516796fec2906e101073602082015260208152610670565b6110ee61176c61323c565b6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106117e357505050505090565b909192939460208061183f600193603f1986820301875289519081518152608061181a8584015160a08785015260a0840190610acc565b9260408101516040840152606081015160608401520151906080818403910152610acc565b970193019301919392906117d4565b3461021a57602036600319011261021a57600435611882604051806102e2602082019067418bc2997876585c602083019252565b6118a2604051806102e2602082019067daaab0ea844292a2602083019252565b6118c2604051806102e2602082019067dffb2585e00fa6ed602083019252565b806118e757610bda604051806102e26020820190677d2434592fc3ea81602083019252565b611907604051806102e260208201906719c834d148c480eb602083019252565b611927604051806102e26020820190678088c2b8558debed602083019252565b611947604051806102e26020820190675844c8c639ac3268602083019252565b61194f613386565b61196f604051806102e26020820190679265711c22f96ee9602083019252565b61198f604051806102e2602082019067d4acc32796c148be602083019252565b5f6119b0604051806102e26020820190679a4cb7a937758ede602083019252565b6119d0604051806102e2602082019067750eff7dfcbe4939602083019252565b6119ea6119e5845f52600d60205260405f2090565b6133ef565b611a0a604051806102e2602082019067456d7a836f65ea1b602083019252565b611a2a604051806102e26020820190679d0a2709dec24099602083019252565b805190611a4d604051806102e2602082019067c59a152e541067a2602083019252565b611a6d604051806102e2602082019067817c634c91e114c0602083019252565b811561235a57611a93604051806102e260208201906787016a3397543afa602083019252565b611ab3604051806102e26020820190674be8777354f1ae51602083019252565b611ad3604051806102e2602082019067f35aedcfc66493eb602083019252565b601e8211801561234c575b8061233e575b1561233557611b34601e5b611b0f604051806102e2602082019067321c4bc9cb396890602083019252565b611b2e604051806102e26020820190667b4f24cd8a28d7602083019252565b83613332565b915b8083106121b9575b5050505b611b62604051806102e2602082019067ccbe8580c48a5849602083019252565b611b82604051806102e26020820190672c2be51d1dea0baa602083019252565b611b976119e5845f52600c60205260405f2090565b611bb7604051806102e26020820190673f5d5b7298cb5ef8602083019252565b611bd7604051806102e260208201906787dd42b6580bc476602083019252565b80511561219757611bfe604051806102e260208201906721ab70b013050226602083019252565b611c1e604051806102e26020820190676bdd6bf4adfa0c7e602083019252565b611c3e604051806102e2602082019067f4ba5aea2f9c218a602083019252565b611c9b611c4a856135a6565b91611c6b604051806102e260208201906734657379b933466f602083019252565b611c8b604051806102e26020820190679e4e2179c8bb421d602083019252565b611c958151613324565b90613437565b51611cbc604051806102e2602082019067e269061b9499467c602083019252565b611cdc604051806102e2602082019067ef89cceccdcfab51602083019252565b60c8611cf0611ceb84846134c3565b615cf9565b611d10604051806102e26020820190674d805cb863f590a6602083019252565b611d30604051806102e26020820190674e19ee02ef638d98602083019252565b111561216f57611df09291611d8491611d5f604051806102e2602082019067c8aa1fde715dbeb5602083019252565b611d7f604051806102e2602082019067154ab50b3dbee353602083019252565b6134c3565b611d8c6106a2565b90858252611d986134db565b60208301524260408301526060820152611db0613507565b6080820152611dbf8285613437565b52611dca8184613437565b50611deb604051806102e26020820190675f1ab85f2443a097602083019252565b6134b5565b905b611e12604051806102e26020820190676c1f9f7a6323b326602083019252565b611e32604051806102e26020820190672085665a89b085e4602083019252565b62278d004204611e58604051806102e2602082019067acc1885396438f9b602083019252565b611e78604051806102e26020820190671200219229de3819602083019252565b5f91611e9a604051806102e260208201906737bbae16c55cacc5602083019252565b611eba604051806102e2602082019067080807b4b63c5e1a602083019252565b6001925b601e84111580612165575b15611fd657611eee604051806102e2602082019067626ad3b69f38bc59602083019252565b611f0e604051806102e2602082019067c73a5639f6fa7eb3602083019252565b611f39611f23875f52600e60205260405f2090565b611f2d8686613332565b5f5260205260405f2090565b54611fad57611f84600191611f64604051806102e2602082019067d90d74e63915e5c8602083019252565b611deb604051806102e2602082019067e9901b124881a00f602083019252565b935b611fa6604051806102e26020820190678ba7ca188660aeda602083019252565b0192611ebe565b92600190611fd1604051806102e26020820190671eb3b516774b0c76602083019252565b611f86565b6110ee92508486611ffd604051806102e2602082019067bc5543b704bce202602083019252565b61201d604051806102e26020820190677a4d42a3e8bdea83602083019252565b601e831061213d576120cf92612049604051806102e260208201906777e028758fa37c05602083019252565b612069604051806102e2602082019067e41b715d98a42447602083019252565b6120716106a2565b91825261207c613542565b6020830152426040830152606082015261209461356b565b60808201526120a38285613437565b526120ae8184613437565b50611deb604051806102e26020820190674ad78555289f93b8602083019252565b6120ef604051806102e260208201906766f67d2c80b50c90602083019252565b8152612111604051806102e2602082019067f8a21a3a87ed6379602083019252565b612131604051806102e26020820190670c867953e209b12a602083019252565b604051918291826117b1565b509050612160604051806102e2602082019067f579a5065058bc0a602083019252565b6120cf565b5082841115611ec9565b505090612192604051806102e2602082019067bb6f8847a3da9fcc602083019252565b611df2565b5090612192604051806102e260208201906775d8ee3b472af2e3602083019252565b6121d9604051806102e260208201906742f56711f6416dff602083019252565b6121f9604051806102e26020820190677f89da26b7e23dac602083019252565b5f6122048484613437565b5112156122ea57506122c2929161225a91612235604051806102e260208201906745ac63ffe0927a82602083019252565b612255604051806102e260208201906767e967163fd3174c602083019252565b613437565b516122636106a2565b9085825261226f61344b565b6020830152426040830152606082015261228761347a565b60808201526122968285613437565b526122a18184613437565b50611deb604051806102e260208201906708e3af33bf51c90e602083019252565b6122e2604051806102e26020820190675021d302e37dd5cc602083019252565b5f8080611b3e565b9160019061230e604051806102e2602082019067c16103b7b6d830e8602083019252565b61232e604051806102e2602082019067d99833d8cf5aad52602083019252565b0191611b36565b611b3482611aef565b50612347615af6565b611ae4565b50612355615a8f565b611ade565b505061237c604051806102e2602082019067b5cd0ab0cdbe8944602083019252565b611b42565b3461021a575f36600319011261021a5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b3461021a57604036600319011261021a576020610447602435600435613917565b3461021a57604036600319011261021a57602060ff61242b6004356123ff610560565b905f525f516020615f455f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461021a57604036600319011261021a57612456602435600435613d6b565b906110ee60405192839215158352604060208401526040830190610acc565b3461021a575f36600319011261021a5760206040515f8152f35b3461021a575f36600319011261021a5760206040517f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f58152f35b3461021a57602036600319011261021a576110ee61176c60043561430e565b604051906124f7602083610670565b5f8252565b3461021a575f36600319011261021a576110ee60405161251d604082610670565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610acc565b3461021a5760e036600319011261021a576004356125603661022f565b61257e60408051679c3c817323d3c6e3602082015260208152610670565b612586614997565b6125a46040805167fc85a0b62c518530602082015260208152610670565b6125c4604051806102e26020820190676b3a377b8bd8629f602083019252565b6125e4604051806102e2602082019067cd75d4934ea6fe94602083019252565b612604604051806102e2602082019067c47744e73665f42c602083019252565b8161262957610bda604051806102e26020820190672d6255166c0e723e602083019252565b610ac77fe3549d384ec638cd041259730b4dcc4bc3285c48ec358bce734bfe6f7810d18f9161266e604051806102e26020820190678e662a9f994d31b7602083019252565b61268e604051806102e2602082019067db53d2d756634a30602083019252565b6126ae604051806102e26020820190676740b35096f4d7c5602083019252565b6126b781614a4c565b6126d7604051806102e2602082019067f9dbc040f2d9d5a7602083019252565b612726816126ed865f52600560205260405f2090565b9060a060059180358455602081013560018501556040810135600285015560608101356003850155608081013560048501550135910155565b612746604051806102e26020820190677c5d82eeb2414208602083019252565b6103c6604051806102e2602082019067bdf743a8535b7eb8602083019252565b3461021a57602036600319011261021a5761277f610576565b61279d60408051674e0c748a19981247602082015260208152610670565b5f516020615f655f395f51905f5254906001600160401b036127ce60ff604085901c1615936001600160401b031690565b16801590816128e7575b60011490816128dd575b1590816128d4575b506128c55761282d908261282460016001600160401b03195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b6128905761448d565b61283357005b61285d60ff60401b195f516020615f655f395f51905f5254165f516020615f655f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290806020810161040b565b6128c0600160401b60ff60401b195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b61448d565b63f92ee8a960e01b5f5260045ffd5b9050155f6127ea565b303b1591506127e2565b8391506127d8565b3461021a57604036600319011261021a576105db60043561290e610560565b906129346105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b615450565b3461021a57602036600319011261021a576004355f61296e604051806102e260208201906709b00e280b2f4249602083019252565b61298e604051806102e26020820190672d825343d87950fc602083019252565b6129ae604051806102e2602082019067e970461dd706afc6602083019252565b6129ce604051806102e2602082019067a0631502fc4008ae602083019252565b6129ee604051806102e2602082019067966c0d1306971e69602083019252565b62278d004204612a14604051806102e2602082019067f4f7187097ab858d602083019252565b612a34604051806102e2602082019067e10b51746d2d0c11602083019252565b5f612a55604051806102e2602082019067e4e61f2e4c0eb72f602083019252565b612a75604051806102e2602082019067933d87be40694000602083019252565b5f91612a97604051806102e260208201906715a054c0135a6dd3602083019252565b612ab7604051806102e2602082019067f58f47e3878a4165602083019252565b6001915b600383111580612dba575b15612c5857612aeb604051806102e2602082019067de95bb22c140930f602083019252565b612b0b604051806102e2602082019067b4979236f016fa4f602083019252565b612b4c612b47612b1b8585613332565b60408051602081018b815281830193909352908152612b3b606082610670565b519020620186a0900690565b6146c3565b90612b6d604051806102e2602082019067208af7eae6797e9d602083019252565b612b8d604051806102e2602082019067b01026801815b06a602083019252565b8115612c2d57612be2600192612c0392612bbd604051806102e26020820190675758b555cbb5fcff602083019252565b612bdd604051806102e260208201906764f1bea52e879cf7602083019252565b613023565b94611deb604051806102e2602082019067ac3ad4e261e42b6d602083019252565b925b612c25604051806102e2602082019067307171ee4d4135bc602083019252565b019192612abb565b939260019150612c53604051806102e26020820190678051d3389ec60311602083019252565b612c05565b836110ee9186612c7e604051806102e26020820190678b283fe638ce9d00602083019252565b612c9e604051806102e2602082019067e1e205883f940814602083019252565b8215612d925750612d15612d4292612d3a92612cd0604051806102e26020820190677cc4a5a2a2046453602083019252565b612cf0604051806102e2602082019067e828ae315c1bf998602083019252565b612d10604051806102e260208201906763a4b2f7c4d459a4602083019252565b612ff2565b612d35604051806102e260208201906789edd1fa6f2f6409602083019252565b6146e7565b612710900490565b612d62604051806102e26020820190670571cf30d3202ce8602083019252565b612d82604051806102e2602082019067c400dd735305664f602083019252565b6040519081529081906020820190565b915050612db5604051806102e260208201906731346adea2ac163c602083019252565b612d42565b5081831115612ac6565b90600182811c92168015612df2575b6020831014612dde57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612dd3565b604051905f8260035491612e0f83612dc4565b8083529260018116908115612e925750600114612e33575b6106a092500383610670565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818310612e765750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612e5e565b602092506106a094915060ff191682840152151560051b820101612e27565b604051905f8260045491612ec483612dc4565b8083529260018116908115612e925750600114612ee7576106a092500383610670565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310612f2a5750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612f12565b3461021a575f36600319011261021a575f54600154906110ee600254612faf612f6d612dfc565b60ff612f77612eb1565b936040519788978852602088015260018060a01b038116604088015260a01c161515606086015260c0608086015260c0850190610acc565b9083820360a0850152610acc565b3461021a57604036600319011261021a576020610447602435600435614710565b634e487b7160e01b5f52601160045260245ffd5b8115612ffc570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161301e57565b612fde565b9190820180921161301e57565b916130499183549060031b91821b915f19901b19161790565b9055565b601f821161305a57505050565b5f5260205f20906020601f840160051c83019310613092575b601f0160051c01905b818110613087575050565b5f815560010161307c565b9091508190613073565b91909182516001600160401b038111610650576130c3816130bd8454612dc4565b8461304d565b6020601f82116001146130fe5781906130499394955f926130f3575b50508160011b915f199060031b1c19161790565b015190505f806130df565b601f19821690613111845f5260205f2090565b915f5b81811061314b57509583600195969710613133575b505050811b019055565b01515f1960f88460031b161c191690555f8080613129565b9192602060018192868b015181550194019201613114565b80515f55602081015160015560408101516002805460608401516001600160a81b03199091166001600160a01b03939093169290921791151560a090811b60ff60a01b1692909217905560808201516106a092906131c290600361309c565b0151600461309c565b908060209392818452848401375f828201840152601f01601f1916010190565b929061320490610b3295936040865260408601916131cb565b9260208185039101526131cb565b6040519061321f82610635565b60606080835f81525f60208201525f60408201525f838201520152565b6040519061324982610655565b6006548252600754602083015260085460408301526009546060830152600a546080830152600b5460a0830152565b9060405161328581610655565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152600481015460808501520154910152565b634e487b7160e01b5f52603260045260245ffd5b80548210156132e7575f5260205f2001905f90565b6132be565b805490600160401b821015610650578161330e916001613049940181556132d2565b819391549060031b91821b915f19901b19161790565b5f1981019190821161301e57565b9190820391821161301e57565b6040519061334c82610655565b5f60a0838281528260208201528260408201528260608201528260808201520152565b6001600160401b0381116106505760051b60200190565b6040519061339661016083610670565b600a825281601f196133a8600a61336f565b01905f5b8281106133b857505050565b6020906040516133c781610635565b5f81526060838201525f60408201525f606082015260606080820152828285010152016133ac565b90604051918281549182825260208201905f5260205f20925f5b81811061341e5750506106a092500383610670565b8454835260019485019487945060209093019201613409565b80518210156132e75760209160051b010190565b6040519061345a604083610670565b6011825270139151d05512559157d49154d251155053607a1b6020830152565b60405190613489604083610670565b601a82527f4e6567617469766520726573696475616c2064657465637465640000000000006020830152565b5f19811461301e5760010190565b81810392915f13801582851316918412161761301e57565b604051906134ea604083610670565b600e82526d2920aa22afa222ab24a0aa24a7a760911b6020830152565b60405190613516604083610670565b601982527f556e757375616c206665652072617465206465746563746564000000000000006020830152565b60405190613551604083610670565b600b82526a5a45524f5f564f4c554d4560a81b6020830152565b6040519061357a604083610670565b601e82527f457874656e64656420706572696f64206f66207a65726f20766f6c756d6500006020830152565b6119e561366d916135cd604051806102e2602082019067805f2a16697a8783602083019252565b6135ed604051806102e260208201906791b84c61f11364ca602083019252565b61360d604051806102e2602082019067edf95dd0b362098a602083019252565b61362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b61364d604051806102e2602082019067915ee6a9d39c1fd2602083019252565b6114ec604051806102e26020820190677c5174c8b76456ed602083019252565b9061368e604051806102e260208201906790b69987b9c69080602083019252565b6136ae604051806102e26020820190673cc12b5e0eb55186602083019252565b81516136cf604051806102e260208201906603848ff88a6615602083019252565b6136ef604051806102e26020820190678c559f8fc407795c602083019252565b8061375d57509050613717604051806102e2602082019067de105720401be526602083019252565b613737604051806102e2602082019067c6db98ebde9afb2f602083019252565b613757604051806102e2602082019067ec2042e1b7b8a653602083019252565b60065490565b61377d604051806102e26020820190674632344a44d8ed90602083019252565b61379d604051806102e2602082019067bfbe0cdf53b10eec602083019252565b6137bd604051806102e2602082019067fb4702c1fd42bb8b602083019252565b80601e108015613909575b806138fb575b156138f557601e905b6137f7604051806102e2602082019067cc4a98d56cfa248f602083019252565b613817604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613839604051806102e26020820190679284464fa7a923da602083019252565b613859604051806102e26020820190674631098032230924602083019252565b6138638382613332565b905b808210613894575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b90916138cd6001916138bc604051806102e260208201906728083abdc186ac51602083019252565b6138c68589613437565b5190613023565b926138ee604051806102e26020820190670f3fe9f65028e149602083019252565b0190613865565b806137d7565b50613904615b1c565b6137ce565b50613912615ab4565b6137c8565b91909161393a604051806102e2602082019067805f2a16697a8783602083019252565b61395a604051806102e260208201906791b84c61f11364ca602083019252565b61397a604051806102e2602082019067edf95dd0b362098a602083019252565b61016d8311156139b3576139a4604051806102e2602082019067afde9ab242ff8fca602083019252565b631f17089160e31b5f5260045ffd5b6119e56139da9161362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b916139fb604051806102e260208201906790b69987b9c69080602083019252565b613a1b604051806102e26020820190673cc12b5e0eb55186602083019252565b825190613a3d604051806102e260208201906603848ff88a6615602083019252565b613a5d604051806102e26020820190678c559f8fc407795c602083019252565b81613a865750509050613717604051806102e2602082019067de105720401be526602083019252565b613aa6604051806102e26020820190674632344a44d8ed90602083019252565b613ac6604051806102e2602082019067bfbe0cdf53b10eec602083019252565b613ae6604051806102e2602082019067fb4702c1fd42bb8b602083019252565b8181108015613c1f575b80613c11575b15613c0a57905b613b1d604051806102e2602082019067cc4a98d56cfa248f602083019252565b613b3d604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613b5f604051806102e26020820190679284464fa7a923da602083019252565b613b7f604051806102e26020820190674631098032230924602083019252565b613b898382613332565b905b808210613bba575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b9091613be26001916138bc604051806102e260208201906728083abdc186ac51602083019252565b92613c03604051806102e26020820190670f3fe9f65028e149602083019252565b0190613b8b565b5080613afd565b50613c1a615b1c565b613af6565b50613c28615ab4565b613af0565b60405190613c3c604083610670565b6013825272125b9d985b1a59081b595c98da185b9d081251606a1b6020830152565b60405190613c6d604083610670565b601682527546656520726174652062656c6f77206d696e696d756d60501b6020830152565b60405190613ca1604083610670565b601882527f46656520726174652065786365656473206d6178696d756d00000000000000006020830152565b60405190613cdc606083610670565b602a8252692062617365207261746560b01b6040837f54696572203120726174652073686f756c64206265206c6f776572207468616e60208201520152565b60405190613d2a606083610670565b602c82526b20746965722031207261746560a01b6040837f54696572203220726174652073686f756c64206265206c6f776572207468616e60208201520152565b90613d8c604051806102e26020820190671bc87bab31c22488602083019252565b613dac604051806102e260208201906770999bf81ba3ae11602083019252565b613dcc604051806102e2602082019067ccce6f51c7c0f883602083019252565b81613e3d575050613df3604051806102e260208201906734f89b0ac0383546602083019252565b613e13604051806102e2602082019067f5d726a571cb776f602083019252565b613e33604051806102e2602082019067ab2abbf0da6f0e46602083019252565b5f90610b32613c2d565b613e5d604051806102e2602082019067833320855afce42a602083019252565b613e7d604051806102e26020820190672cf66f6e50d12504602083019252565b613e9d604051806102e2602082019067fb30f5b31fd7c3e1602083019252565b600a811015613f12575050613ec8604051806102e2602082019067aeee43987b823b1c602083019252565b613ee8604051806102e260208201906739d21ce56e5cacbf602083019252565b613f08604051806102e2602082019067b3f465aeae787dcb602083019252565b5f90610b32613c5e565b6101f490613f36604051806102e2602082019067febd65c6ea47c234602083019252565b613f56604051806102e26020820190671451f39cd0862425602083019252565b613f76604051806102e260208201906752be4423c520dec2602083019252565b1115613fe75750613f9d604051806102e260208201906704e8b5069863ce62602083019252565b613fbd604051806102e2602082019067fe4450be6aa220cd602083019252565b613fdd604051806102e26020820190676062618bf108132c602083019252565b5f90610b32613c92565b610cf661405c9161400e604051806102e260208201906749da9b2a0896bcf3602083019252565b61402e604051806102e26020820190676009f91191943c3c602083019252565b61404e604051806102e2602082019067d7b5e4145ceb247b602083019252565b5f52600560205260405f2090565b61407c604051806102e2602082019067d2e7fe5bff57b115602083019252565b61409c604051806102e2602082019067e293c9f1af8b08c8602083019252565b80516142e957506140c3604051806102e260208201906785f28b23052fa77e602083019252565b6140e3604051806102e2602082019067d7cbe11054bafdb2602083019252565b6140eb61323c565b61410b604051806102e26020820190672277910ed4046301602083019252565b61412b604051806102e260208201906718c171ed2acb2258602083019252565b606081019081518151105f146141a757505061415d604051806102e2602082019067237545ed7842e02b602083019252565b61417d604051806102e26020820190672b530357a716056a602083019252565b61419d604051806102e26020820190674f852ca528d8811c602083019252565b5f90610b32613ccd565b6080906141ca604051806102e26020820190670e39d2ea6602ab2a602083019252565b6141ea604051806102e26020820190672add9db82382038d602083019252565b61420a604051806102e26020820190678b67cd57f66fe1c2602083019252565b01519051101561427e57614234604051806102e26020820190674e719f9d3ddde770602083019252565b614254604051806102e260208201906732a7422734116847602083019252565b614274604051806102e260208201906748fe659cd372c85f602083019252565b5f90610b32613d1b565b61429e604051806102e26020820190678b241d68dad49a49602083019252565b6142be604051806102e2602082019067b27fcb0def21d9ca602083019252565b6142de604051806102e26020820190671333085ebf315279602083019252565b600190610b326124e8565b614309604051806102e2602082019067aa7bd1ef07c99ac1602083019252565b6140eb565b610cf661437e9161431d61333f565b5061433e604051806102e260208201906725694f3b500c8727602083019252565b61435e604051806102e260208201906755db04649f476138602083019252565b61404e604051806102e2602082019067a81dddde35cce75b602083019252565b61439e604051806102e2602082019067cfeacd5f5c30c888602083019252565b6143be604051806102e2602082019067e1de7a3989f5e996602083019252565b805161442d57506143e5604051806102e260208201906787d1a41267820b7c602083019252565b614405604051806102e2602082019067c0c9602937fe5a3a602083019252565b614425604051806102e260208201906744f4d4d1b740d7e8602083019252565b610b3261323c565b61444d604051806102e2602082019067aae439eeea9dd006602083019252565b61446d604051806102e2602082019067e5ca59cf4e90f975602083019252565b610b32604051806102e26020820190674748c734aa8669f6602083019252565b614638906144af6040805167fdff48a7aedafc9f602082015260208152610670565b6144cf604051806102e26020820190677d737efd6470c80e602083019252565b6144ef604051806102e260208201906772afa60d12e629fa602083019252565b61450f604051806102e2602082019067f985dfc4b3585931602083019252565b614517615e3b565b614537604051806102e2602082019067b8c73956ea197ee5602083019252565b614557604051806102e260208201906752cddd31306ceb86602083019252565b61455f615e3b565b61457f604051806102e26020820190679693533c22691253602083019252565b61459f604051806102e26020820190673857901a36adc5e1602083019252565b6145a88161519d565b506145c9604051806102e2602082019067b5ac84373741f43a602083019252565b6145e9604051806102e26020820190672c96be1d50cdff18602083019252565b6145f281615239565b50614613604051806102e26020820190678f332cac73ccef4f602083019252565b614633604051806102e2602082019067fac2e3f684527c44602083019252565b6152fa565b50614659604051806102e26020820190672340353ea17c29d9602083019252565b6106a0614664610691565b60fa80825269021e19e0c9bab240000060208301819052690a968163f0a57b4000006040840181905260c860608501819052609660808601819052606460a0909601869052600694909455600792909255600855600955600a55600b55565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561301e57565b9060fa82029180830460fa149015171561301e57565b8181029291811591840414171561301e57565b614730604051806102e2602082019067b5aa0b154d4b349c602083019252565b614750604051806102e260208201906777c8c2449519b995602083019252565b614770604051806102e260208201906785431a24268fc98d602083019252565b8061479557610c6e604051806102e26020820190674124440c24a4568e602083019252565b6147b5604051806102e260208201906724503fc3bc6ca44e602083019252565b6147d5604051806102e26020820190673da1c354569a0389602083019252565b6147f5604051806102e26020820190673bf1acf7c1a94357602083019252565b600a8210806148cb575b80156148b1575b15614864576148618261482f604051806102e2602082019067e9393ba0a9a1369f602083019252565b61484f604051806102e26020820190674e11ef1ca2ae2a04602083019252565b6336e6824b60e21b5f52600452602490565b5ffd5b610b3291612d3a9161488c604051806102e260208201906735c9f3bb306cedcf602083019252565b6148ac604051806102e26020820190679eba9a9efb1fb954602083019252565b6146fd565b506101f48211801561480657506148c6615b5e565b614806565b506148d4615b3d565b6147ff565b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561491157565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561498057565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16156149cf57565b63e2517d3f60e01b5f52336004527f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f560245260445ffd5b5f8181525f516020615f455f395f51905f526020908152604080832033845290915290205460ff1615614a365750565b63e2517d3f60e01b5f523360045260245260445ffd5b614a6c604051806102e26020820190674f0115ae7fd19f3d602083019252565b614a8c604051806102e2602082019067cff66ac7ad408d1b602083019252565b614aac604051806102e2602082019067e3da6b3f7c3ba141602083019252565b803590600a82108061518f575b8015615175575b15614b095761486182614ae9604051806102e2602082019067dd5b985d5b7c9e88602083019252565b61484f604051806102e26020820190673fe217f8122a1780602083019252565b90614b2a604051806102e26020820190675d43a5e7adaf87d6602083019252565b614b4a604051806102e2602082019067422081665b26b54a602083019252565b614b6a604051806102e26020820190673607006dd6fa99eb602083019252565b606082013591600a831080615167575b801561514d575b15614bca5761486183614baa604051806102e2602082019067ef64f806f1ed91b8602083019252565b61484f604051806102e2602082019067c39f6e5f9e8e96b3602083019252565b9091614bec604051806102e26020820190673b19c5cdd50d1cf9602083019252565b614c0c604051806102e2602082019067c2b5da159143ea56602083019252565b614c2c604051806102e260208201906712662010c204b827602083019252565b608082013592600a84108061513f575b8015615125575b15614c8c5761486184614c6c604051806102e2602082019067867171f66fb2943e602083019252565b61484f604051806102e260208201906794bb184101969114602083019252565b614caf604094939451806102e260208201906767fb27694bf1ede6602083019252565b614ccf604051806102e260208201906740dae8ce4bae3715602083019252565b614cef604051806102e26020820190672b7adb491e9c85a3602083019252565b60a084013593600a851080615117575b80156150fd575b15614d4f5761486185614d2f604051806102e260208201906760eeb19146f1e5d2602083019252565b61484f604051806102e2602082019067aa87fe3096faafdc602083019252565b614d72604095949551806102e2602082019067dab8c05118269ede602083019252565b614d92604051806102e2602082019067e3dee722d80841cb602083019252565b614db2604051806102e2602082019067c3a9ef9f1dbce158602083019252565b6020810135908115806150ef575b80156150d4575b15614e1b57614dec604051806102e2602082019067867fbbf32b47c64b602083019252565b614e0c604051806102e260208201906721ab90b66417e11a602083019252565b63adf8131b60e01b5f5260045ffd5b604090614e3d8251806102e26020820190673ed8dbfb8b25957d602083019252565b815167deba7507bb01d4576020820152614e5b9080604081016102e2565b815167d292367d2a5d66726020820152614e799080604081016102e2565b013511614ec057614ea0604051806102e26020820190677cd9881b96acde13602083019252565b614e0c604051806102e26020820190677e562dce734bf047602083019252565b614ee0604051806102e2602082019067a666f98b0cc1b9e3602083019252565b614f00604051806102e2602082019067fd8d2e4eb9cbf012602083019252565b614f20604051806102e2602082019067c30592a9108e6787602083019252565b811115614f6757614f47604051806102e26020820190679aac09fbf43e940b602083019252565b614e0c604051806102e26020820190670c3930840d7f3b64602083019252565b614f87604051806102e2602082019067c37a8a710defaa86602083019252565b614fa7604051806102e2602082019067da0bf8a572d49c03602083019252565b614fc7604051806102e2602082019067e49fc01267574d67602083019252565b82111561500e57614fee604051806102e2602082019067ea77b2441fd2dc3d602083019252565b614e0c604051806102e2602082019067fb7d7a71f1e61545602083019252565b61502e604051806102e260208201906708e70f837105198c602083019252565b61504e604051806102e260208201906767ea3067475fbec2602083019252565b61506e604051806102e2602082019067b100ca0f4dcfa951602083019252565b11156150b457615094604051806102e2602082019067dc08fe5523a8af65602083019252565b614e0c604051806102e260208201906718b8a5c08106f16e602083019252565b6106a0604051806102e2602082019067a6b86cb1331c34c3602083019252565b506040810135158015614dc757506150ea615ca8565b614dc7565b506150f8615c87565b614dc0565b506101f485118015614d065750615112615c66565b614d06565b50615120615c45565b614cff565b506101f484118015614c43575061513a615c24565b614c43565b50615148615c03565b614c3c565b506101f483118015614b815750615162615be2565b614b81565b50615170615bc1565b614b7a565b506101f482118015614ac0575061518a615ba0565b614ac0565b50615198615b7f565b614ab9565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16615234576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020615f055f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16615234576001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260409020805460ff1916600117905533906001600160a01b03167fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217755f516020615f055f395f51905f525f80a4600190565b6001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16615234576001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b060205260409020805460ff1916600117905533906001600160a01b03167f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f55f516020615f055f395f51905f525f80a4600190565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f516020615f055f395f51905f525f80a4600190565b50505f90565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516352d1902d60e01b81529290916020846004816001600160a01b0387165afa5f9481615570575b5061553b57634c9c8ce360e01b5f526001600160a01b03831660045260245ffd5b90915f516020615f255f395f51905f52840361555c576106a0929350615d99565b632a87526960e21b5f52600484905260245ffd5b9094506020813d60201161559c575b8161558c60209383610670565b8101031261021a5751935f61551a565b3d915061557f565b604051906155b3606083610670565b60238252621d5b9d60ea1b6040837f526573696475616c2065786365656473207472616e73616374696f6e20616d6f60208201520152565b604051906155fa604083610670565b601a82527f4170706c69656420726174652062656c6f77206d696e696d756d0000000000006020830152565b60405190615635604083610670565b601c82527f4170706c69656420726174652065786365656473206d6178696d756d000000006020830152565b60405190615670604083610670565b6014825273086c2d8c6ead8c2e8d2dedc40dad2e6dac2e8c6d60631b6020830152565b91906156b5604051806102e2602082019067d6f3bdd156aa03fc602083019252565b6156d5604051806102e260208201906785214db735c94682602083019252565b6156f5604051806102e2602082019067af91e78e8c38cc30602083019252565b8083111561576a57505050615720604051806102e2602082019067844e2b40bc6cde8a602083019252565b615740604051806102e2602082019067b570d739d42a0959602083019252565b615760604051806102e26020820190677026bcbf64586077602083019252565b5f90610b326155a4565b61578a604051806102e2602082019067663d215eb1a5f2cf602083019252565b6157aa604051806102e260208201906783dba432b2cec792602083019252565b6157ca604051806102e2602082019067b7d9deea5411b737602083019252565b600a821015615840575050506157f6604051806102e26020820190674481afd64849cffb602083019252565b615816604051806102e2602082019067021b2fc0d08c51d1602083019252565b615836604051806102e2602082019067df6cfa2a8a192ae2602083019252565b5f90610b326155eb565b615860604051806102e260208201906783b62e0eedf99a7e602083019252565b615880604051806102e2602082019067bacee8b96f63448d602083019252565b6158a0604051806102e2602082019067643890c3855b8c42602083019252565b6101f4821115615917575050506158cd604051806102e260208201906777a489e6e32f1442602083019252565b6158ed604051806102e2602082019067faa2ad1d4d3e482a602083019252565b61590d604051806102e260208201906702dde887041a31f5602083019252565b5f90610b32615626565b61597f91612d3a9161593f604051806102e2602082019067b0c173eac201e9a2602083019252565b61595f604051806102e26020820190673bf345539ddb5661602083019252565b6148ac604051806102e26020820190676735b78584117d16602083019252565b906159a0604051806102e260208201906773fa8803d756179c602083019252565b6159c0604051806102e260208201906769da72965c2cc882602083019252565b14615a2f576159e5604051806102e2602082019067b5c23461022219dc602083019252565b615a05604051806102e26020820190675339cc2beac6a70e602083019252565b615a25604051806102e26020820190673269b493f8b3fcb4602083019252565b5f90610b32615661565b615a4f604051806102e2602082019067da5d7a9ef7d7e7a7602083019252565b615a6f604051806102e2602082019067b4b7741d1f55bbca602083019252565b6142de604051806102e2602082019067b7cf7f0309fed57a602083019252565b615ab060408051679b3239249fc1469f60c01b602082015260208152610670565b5f90565b615ab06040805167722f095d6fe6690f60c11b602082015260208152610670565b615ab060408051672eb0f51321b6284360c11b602082015260208152610670565b615b17604080516711ffc15e94d1d72d60c01b602082015260208152610670565b600190565b615b17604080516707f9fef40ab6529560c31b602082015260208152610670565b615b1760408051675b2920d65bbd2e4f60c01b602082015260208152610670565b615b176040805167f6275cf06424963560c01b602082015260208152610670565b615b1760408051672afb8ece48e719cb60c11b602082015260208152610670565b615b176040805167251021355c981c8760c21b602082015260208152610670565b615b176040805167419025bbde3ab04f60c01b602082015260208152610670565b615b17604080516711be83a07bb5931560c11b602082015260208152610670565b615b17604080516701d95aaf64442f4360c41b602082015260208152610670565b615b1760408051671e8f1e62e7bb0c8760c11b602082015260208152610670565b615b176040805167c452d0152af3d3cb60c01b602082015260208152610670565b615b17604080516709a7d12eab7a400960c21b602082015260208152610670565b615b1760408051676d44ed800829005360c01b602082015260208152610670565b615b176040805166f97a7a868e65c160c01b602082015260208152610670565b615b1760408051674a6900822a6f224360c01b602082015260208152610670565b600160ff1b811461301e575f0390565b604080516702197d60f0d74c876020808301919091528152615d1b9190610670565b615d3b604051806102e2602082019067d520f05f4cc56f77602083019252565b615d5b604051806102e2602082019067c53068484663bb06602083019252565b5f8112801590615d8b575b80615d7d575b15615d745790565b610b3290615ce9565b50615d86615cc8565b615d6c565b50615d94615ad5565b615d66565b90813b15615e1a575f516020615f255f395f51905f5280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115615e0257615dff91615e66565b50565b505034615e0b57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b60ff5f516020615f655f395f51905f525460401c1615615e5757565b631afcd79f60e31b5f5260045ffd5b5f80610b3293602081519101845af43d15615ea2573d91615e86836106b1565b92615e946040519485610670565b83523d5f602085013e615ea6565b6060915b90615eca5750805115615ebb57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615efb575b615edb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ed356fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d025daeb639717c0ee4076b326607adbcc26e6daae060dc4d2d82f26d440180a64736f6c634300081c0033",
|
|
1116
|
+
"linkReferences": {},
|
|
1117
|
+
"deployedLinkReferences": {}
|
|
1118
|
+
}
|