@keep-network/tbtc-v2 0.1.0 → 0.1.1-dev
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/README.adoc +12 -0
- package/artifacts/.chainId +1 -1
- package/artifacts/Bank.json +807 -0
- package/artifacts/Bridge.json +2300 -0
- package/artifacts/Deposit.json +117 -0
- package/artifacts/DepositSweep.json +77 -0
- package/artifacts/EcdsaDkgValidator.json +532 -0
- package/artifacts/EcdsaInactivity.json +156 -0
- package/artifacts/EcdsaSortitionPool.json +1004 -0
- package/artifacts/Fraud.json +164 -0
- package/artifacts/KeepRegistry.json +99 -0
- package/artifacts/KeepStake.json +286 -0
- package/artifacts/KeepToken.json +711 -0
- package/artifacts/KeepTokenStaking.json +483 -0
- package/artifacts/MovingFunds.json +249 -0
- package/artifacts/NuCypherStakingEscrow.json +256 -0
- package/artifacts/NuCypherToken.json +711 -0
- package/artifacts/RandomBeaconStub.json +141 -0
- package/artifacts/Redemption.json +174 -0
- package/artifacts/ReimbursementPool.json +509 -0
- package/artifacts/Relay.json +123 -0
- package/artifacts/T.json +1148 -0
- package/artifacts/TBTC.json +36 -35
- package/artifacts/TBTCToken.json +738 -0
- package/artifacts/TBTCVault.json +691 -0
- package/artifacts/TokenStaking.json +2288 -0
- package/artifacts/TokenholderGovernor.json +1795 -0
- package/artifacts/TokenholderTimelock.json +1058 -0
- package/artifacts/VendingMachine.json +34 -33
- package/artifacts/VendingMachineKeep.json +400 -0
- package/artifacts/VendingMachineNuCypher.json +400 -0
- package/artifacts/WalletRegistry.json +1843 -0
- package/artifacts/WalletRegistryGovernance.json +2754 -0
- package/artifacts/Wallets.json +186 -0
- package/artifacts/solcInputs/5e62cff1ead0900b07facca4b559e818.json +314 -0
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +4 -0
- package/build/contracts/bank/Bank.sol/Bank.json +542 -0
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +4 -0
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +10 -0
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +4 -0
- package/build/contracts/bridge/Bridge.sol/Bridge.json +2686 -0
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
- package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
- package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
- package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
- package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
- package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
- package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
- package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.json +4 -4
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
- package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +4 -0
- package/build/contracts/vault/IVault.sol/IVault.json +52 -0
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +4 -0
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +449 -0
- package/contracts/GovernanceUtils.sol +4 -4
- package/contracts/bank/Bank.sol +436 -0
- package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
- package/contracts/bridge/BitcoinTx.sol +326 -0
- package/contracts/bridge/Bridge.sol +1793 -0
- package/contracts/bridge/BridgeState.sol +739 -0
- package/contracts/bridge/Deposit.sol +269 -0
- package/contracts/bridge/DepositSweep.sol +574 -0
- package/contracts/bridge/EcdsaLib.sol +45 -0
- package/contracts/bridge/Fraud.sol +579 -0
- package/contracts/bridge/Heartbeat.sol +112 -0
- package/contracts/bridge/IRelay.sol +28 -0
- package/contracts/bridge/MovingFunds.sol +1077 -0
- package/contracts/bridge/Redemption.sol +1020 -0
- package/contracts/bridge/VendingMachine.sol +2 -2
- package/contracts/bridge/Wallets.sol +719 -0
- package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
- package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
- package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
- package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
- package/contracts/token/TBTC.sol +1 -1
- package/contracts/vault/DonationVault.sol +125 -0
- package/contracts/vault/IVault.sol +44 -0
- package/contracts/vault/TBTCVault.sol +305 -0
- package/deploy/00_resolve_relay.ts +28 -0
- package/deploy/00_resolve_tbtc_v1_token.ts +1 -1
- package/deploy/01_deploy_tbtc_v2_token.ts +8 -1
- package/deploy/02_deploy_vending_machine.ts +7 -0
- package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
- package/deploy/04_deploy_bank.ts +27 -0
- package/deploy/05_deploy_bridge.ts +80 -0
- package/deploy/06_deploy_tbtc_vault.ts +30 -0
- package/deploy/07_bank_update_bridge.ts +19 -0
- package/deploy/08_transfer_bank_ownership.ts +15 -0
- package/deploy/09_transfer_tbtc_vault_ownership.ts +15 -0
- package/deploy/10_transfer_bridge_governance.ts +20 -0
- package/deploy/11_initialize_wallet_owner.ts +18 -0
- package/deploy/11_transfer_proxy_admin_ownership.ts +30 -0
- package/deploy/12_deploy_proxy_admin_with_deputy.ts +33 -0
- package/export/deploy/00_resolve_relay.js +24 -0
- package/export/deploy/00_resolve_tbtc_v1_token.js +24 -0
- package/export/deploy/01_deploy_tbtc_v2_token.js +19 -0
- package/export/deploy/02_deploy_vending_machine.js +25 -0
- package/export/deploy/03_transfer_vending_machine_roles.js +19 -0
- package/export/deploy/04_deploy_bank.js +21 -0
- package/export/deploy/05_deploy_bridge.js +69 -0
- package/export/deploy/06_deploy_tbtc_vault.js +24 -0
- package/export/deploy/07_bank_update_bridge.js +13 -0
- package/export/deploy/08_transfer_bank_ownership.js +11 -0
- package/export/deploy/09_transfer_tbtc_vault_ownership.js +11 -0
- package/export/deploy/10_transfer_bridge_governance.js +11 -0
- package/export/deploy/11_initialize_wallet_owner.js +14 -0
- package/export/deploy/11_transfer_proxy_admin_ownership.js +23 -0
- package/export/deploy/12_deploy_proxy_admin_with_deputy.js +22 -0
- package/export/hardhat.config.js +169 -0
- package/export/test/bank/Bank.test.js +1012 -0
- package/export/test/bridge/Bridge.Deployment.test.js +76 -0
- package/export/test/bridge/Bridge.Deposit.test.js +1834 -0
- package/export/test/bridge/Bridge.Frauds.test.js +1349 -0
- package/export/test/bridge/Bridge.MovingFunds.test.js +2437 -0
- package/export/test/bridge/Bridge.Parameters.test.js +400 -0
- package/export/test/bridge/Bridge.Redemption.test.js +2523 -0
- package/export/test/bridge/Bridge.Vaults.test.js +74 -0
- package/export/test/bridge/Bridge.Wallets.test.js +1017 -0
- package/export/test/bridge/EcdsaLib.test.js +46 -0
- package/export/test/bridge/Heartbeat.test.js +77 -0
- package/export/test/bridge/VendingMachine.Upgrade.test.js +160 -0
- package/export/test/bridge/VendingMachine.test.js +762 -0
- package/export/test/data/deposit-sweep.js +655 -0
- package/export/test/data/ecdsa.js +18 -0
- package/export/test/data/fraud.js +158 -0
- package/export/test/data/moving-funds.js +815 -0
- package/export/test/data/redemption.js +1011 -0
- package/export/test/fixtures/bridge.js +54 -0
- package/export/test/fixtures/index.js +57 -0
- package/export/test/helpers/contract-test-helpers.js +18 -0
- package/export/test/integration/Slashing.test.js +279 -0
- package/export/test/integration/WalleCreation.test.js +66 -0
- package/export/test/integration/utils/ecdsa-wallet-registry.js +137 -0
- package/export/test/integration/utils/fixture.js +77 -0
- package/export/test/integration/utils/gas.js +36 -0
- package/export/test/integration/utils/random-beacon.js +26 -0
- package/export/test/integration/utils/staking.js +19 -0
- package/export/test/vault/DonationVault.test.js +202 -0
- package/export/test/vault/TBTCVault.Redemption.test.js +357 -0
- package/export/test/vault/TBTCVault.test.js +768 -0
- package/export/typechain/BTCUtils.js +2 -0
- package/export/typechain/Bank.js +2 -0
- package/export/typechain/BankStub.js +2 -0
- package/export/typechain/Bridge.js +2 -0
- package/export/typechain/BridgeState.js +2 -0
- package/export/typechain/BridgeStub.js +2 -0
- package/export/typechain/Deposit.js +2 -0
- package/export/typechain/DepositSweep.js +2 -0
- package/export/typechain/DonationVault.js +2 -0
- package/export/typechain/ERC165.js +2 -0
- package/export/typechain/ERC1967Proxy.js +2 -0
- package/export/typechain/ERC1967Upgrade.js +2 -0
- package/export/typechain/ERC20WithPermit.js +2 -0
- package/export/typechain/ERC721.js +2 -0
- package/export/typechain/EcdsaAuthorization.js +2 -0
- package/export/typechain/EcdsaDkg.js +2 -0
- package/export/typechain/EcdsaDkgValidator.js +2 -0
- package/export/typechain/EcdsaInactivity.js +2 -0
- package/export/typechain/Fraud.js +2 -0
- package/export/typechain/Governable.js +2 -0
- package/export/typechain/HeartbeatStub.js +2 -0
- package/export/typechain/IApplication.js +2 -0
- package/export/typechain/IApproveAndCall.js +2 -0
- package/export/typechain/IBeacon.js +2 -0
- package/export/typechain/IERC165.js +2 -0
- package/export/typechain/IERC1822Proxiable.js +2 -0
- package/export/typechain/IERC20.js +2 -0
- package/export/typechain/IERC20Metadata.js +2 -0
- package/export/typechain/IERC20WithPermit.js +2 -0
- package/export/typechain/IERC721.js +2 -0
- package/export/typechain/IERC721Metadata.js +2 -0
- package/export/typechain/IERC721Receiver.js +2 -0
- package/export/typechain/IRandomBeacon.js +2 -0
- package/export/typechain/IRandomBeaconConsumer.js +2 -0
- package/export/typechain/IReceiveApproval.js +2 -0
- package/export/typechain/IReceiveBalanceApproval.js +2 -0
- package/export/typechain/IRelay.js +2 -0
- package/export/typechain/IStaking.js +2 -0
- package/export/typechain/IVault.js +2 -0
- package/export/typechain/IWalletOwner.js +2 -0
- package/export/typechain/IWalletRegistry.js +2 -0
- package/export/typechain/Initializable.js +2 -0
- package/export/typechain/MisfundRecovery.js +2 -0
- package/export/typechain/MovingFunds.js +2 -0
- package/export/typechain/Ownable.js +2 -0
- package/export/typechain/Proxy.js +2 -0
- package/export/typechain/ProxyAdmin.js +2 -0
- package/export/typechain/ReceiveApprovalStub.js +2 -0
- package/export/typechain/Redemption.js +2 -0
- package/export/typechain/Reimbursable.js +2 -0
- package/export/typechain/ReimbursementPool.js +2 -0
- package/export/typechain/Rewards.js +2 -0
- package/export/typechain/SortitionPool.js +2 -0
- package/export/typechain/SortitionTree.js +2 -0
- package/export/typechain/TBTC.js +2 -0
- package/export/typechain/TBTCVault.js +2 -0
- package/export/typechain/TestERC20.js +2 -0
- package/export/typechain/TestERC721.js +2 -0
- package/export/typechain/TestEcdsaLib.js +2 -0
- package/export/typechain/TestRelay.js +2 -0
- package/export/typechain/TransparentUpgradeableProxy.js +2 -0
- package/export/typechain/VendingMachine.js +2 -0
- package/export/typechain/WalletRegistry.js +2 -0
- package/export/typechain/Wallets.js +2 -0
- package/export/typechain/common.js +2 -0
- package/export/typechain/factories/BTCUtils__factory.js +94 -0
- package/export/typechain/factories/BankStub__factory.js +586 -0
- package/export/typechain/factories/Bank__factory.js +573 -0
- package/export/typechain/factories/BridgeState__factory.js +257 -0
- package/export/typechain/factories/BridgeStub__factory.js +2912 -0
- package/export/typechain/factories/Bridge__factory.js +2526 -0
- package/export/typechain/factories/DepositSweep__factory.js +61 -0
- package/export/typechain/factories/Deposit__factory.js +103 -0
- package/export/typechain/factories/DonationVault__factory.js +139 -0
- package/export/typechain/factories/ERC165__factory.js +38 -0
- package/export/typechain/factories/ERC1967Proxy__factory.js +111 -0
- package/export/typechain/factories/ERC1967Upgrade__factory.js +64 -0
- package/export/typechain/factories/ERC20WithPermit__factory.js +524 -0
- package/export/typechain/factories/ERC721__factory.js +388 -0
- package/export/typechain/factories/EcdsaAuthorization__factory.js +211 -0
- package/export/typechain/factories/EcdsaDkgValidator__factory.js +441 -0
- package/export/typechain/factories/EcdsaDkg__factory.js +192 -0
- package/export/typechain/factories/EcdsaInactivity__factory.js +134 -0
- package/export/typechain/factories/Fraud__factory.js +117 -0
- package/export/typechain/factories/Governable__factory.js +64 -0
- package/export/typechain/factories/HeartbeatStub__factory.js +61 -0
- package/export/typechain/factories/IApplication__factory.js +152 -0
- package/export/typechain/factories/IApproveAndCall__factory.js +48 -0
- package/export/typechain/factories/IBeacon__factory.js +32 -0
- package/export/typechain/factories/IERC165__factory.js +38 -0
- package/export/typechain/factories/IERC1822Proxiable__factory.js +32 -0
- package/export/typechain/factories/IERC20Metadata__factory.js +241 -0
- package/export/typechain/factories/IERC20WithPermit__factory.js +389 -0
- package/export/typechain/factories/IERC20__factory.js +202 -0
- package/export/typechain/factories/IERC721Metadata__factory.js +349 -0
- package/export/typechain/factories/IERC721Receiver__factory.js +53 -0
- package/export/typechain/factories/IERC721__factory.js +304 -0
- package/export/typechain/factories/IRandomBeaconConsumer__factory.js +37 -0
- package/export/typechain/factories/IRandomBeacon__factory.js +32 -0
- package/export/typechain/factories/IReceiveApproval__factory.js +47 -0
- package/export/typechain/factories/IReceiveBalanceApproval__factory.js +42 -0
- package/export/typechain/factories/IRelay__factory.js +45 -0
- package/export/typechain/factories/IStaking__factory.js +722 -0
- package/export/typechain/factories/IVault__factory.js +60 -0
- package/export/typechain/factories/IWalletOwner__factory.js +65 -0
- package/export/typechain/factories/IWalletRegistry__factory.js +138 -0
- package/export/typechain/factories/Initializable__factory.js +32 -0
- package/export/typechain/factories/MisfundRecovery__factory.js +145 -0
- package/export/typechain/factories/MovingFunds__factory.js +169 -0
- package/export/typechain/factories/Ownable__factory.js +71 -0
- package/export/typechain/factories/ProxyAdmin__factory.js +191 -0
- package/export/typechain/factories/Proxy__factory.js +27 -0
- package/export/typechain/factories/ReceiveApprovalStub__factory.js +127 -0
- package/export/typechain/factories/Redemption__factory.js +123 -0
- package/export/typechain/factories/Reimbursable__factory.js +58 -0
- package/export/typechain/factories/ReimbursementPool__factory.js +350 -0
- package/export/typechain/factories/Rewards__factory.js +117 -0
- package/export/typechain/factories/SortitionPool__factory.js +610 -0
- package/export/typechain/factories/SortitionTree__factory.js +149 -0
- package/export/typechain/factories/TBTCVault__factory.js +480 -0
- package/export/typechain/factories/TBTC__factory.js +564 -0
- package/export/typechain/factories/TestERC20__factory.js +539 -0
- package/export/typechain/factories/TestERC721__factory.js +421 -0
- package/export/typechain/factories/TestEcdsaLib__factory.js +66 -0
- package/export/typechain/factories/TestRelay__factory.js +94 -0
- package/export/typechain/factories/TransparentUpgradeableProxy__factory.js +186 -0
- package/export/typechain/factories/VendingMachine__factory.js +549 -0
- package/export/typechain/factories/WalletRegistry__factory.js +1919 -0
- package/export/typechain/factories/Wallets__factory.js +143 -0
- package/export/typechain/index.js +132 -0
- package/export.json +15932 -503
- package/package.json +47 -26
- package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -104
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "Fraud",
|
|
4
|
+
"sourceName": "contracts/bridge/Fraud.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"anonymous": false,
|
|
8
|
+
"inputs": [
|
|
9
|
+
{
|
|
10
|
+
"indexed": true,
|
|
11
|
+
"internalType": "bytes20",
|
|
12
|
+
"name": "walletPubKeyHash",
|
|
13
|
+
"type": "bytes20"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"indexed": false,
|
|
17
|
+
"internalType": "bytes32",
|
|
18
|
+
"name": "sighash",
|
|
19
|
+
"type": "bytes32"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"name": "FraudChallengeDefeatTimedOut",
|
|
23
|
+
"type": "event"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"anonymous": false,
|
|
27
|
+
"inputs": [
|
|
28
|
+
{
|
|
29
|
+
"indexed": true,
|
|
30
|
+
"internalType": "bytes20",
|
|
31
|
+
"name": "walletPubKeyHash",
|
|
32
|
+
"type": "bytes20"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"indexed": false,
|
|
36
|
+
"internalType": "bytes32",
|
|
37
|
+
"name": "sighash",
|
|
38
|
+
"type": "bytes32"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"name": "FraudChallengeDefeated",
|
|
42
|
+
"type": "event"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"anonymous": false,
|
|
46
|
+
"inputs": [
|
|
47
|
+
{
|
|
48
|
+
"indexed": true,
|
|
49
|
+
"internalType": "bytes20",
|
|
50
|
+
"name": "walletPubKeyHash",
|
|
51
|
+
"type": "bytes20"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"indexed": false,
|
|
55
|
+
"internalType": "bytes32",
|
|
56
|
+
"name": "sighash",
|
|
57
|
+
"type": "bytes32"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"indexed": false,
|
|
61
|
+
"internalType": "uint8",
|
|
62
|
+
"name": "v",
|
|
63
|
+
"type": "uint8"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"indexed": false,
|
|
67
|
+
"internalType": "bytes32",
|
|
68
|
+
"name": "r",
|
|
69
|
+
"type": "bytes32"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"indexed": false,
|
|
73
|
+
"internalType": "bytes32",
|
|
74
|
+
"name": "s",
|
|
75
|
+
"type": "bytes32"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"name": "FraudChallengeSubmitted",
|
|
79
|
+
"type": "event"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"bytecode": "0x61222661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063624526fe1461005b57806380ffe94a1461007d57806394fcaf8d1461009d578063eb8fdd5d146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004611cde565b6100dd565b005b81801561008957600080fd5b5061007b610098366004611e12565b6103c2565b8180156100a957600080fd5b5061007b6100b8366004611edf565b61072c565b8180156100c957600080fd5b5061007b6100d8366004611f59565b6108e3565b600061011e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3b92505050565b9050600086868360405160200161013793929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188c01909352912060028101549192509063ffffffff166101bd5760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520646f6573206e6f74206578697374000060448201526064015b60405180910390fd5b6002810154640100000000900460ff161561022c5760405162461bcd60e51b815260206004820152602960248201527f4672617564206368616c6c656e67652068617320616c7265616479206265656e604482015268081c995cdbdb1d995960ba1b60648201526084016101b4565b6102368686610e00565b63ffffffff1660011461028b5760405162461bcd60e51b815260206004820152601260248201527f57726f6e6720736967686173682074797065000000000000000000000000000060448201526064016101b4565b6000846102a15761029c8787610e80565b6102ab565b6102ab87876110c4565b600081815260068c0160205260409020600101549091507c0100000000000000000000000000000000000000000000000000000000900463ffffffff161515806103055750600081815260198b01602052604090205460ff165b80610337575060026000828152600d8c01602052604090206001015460ff16600381111561033557610335611ffb565b145b6103a95760405162461bcd60e51b815260206004820152603060248201527f5370656e74205554584f206e6f7420666f756e6420616d6f6e6720636f72726560448201527f63746c79207370656e74205554584f730000000000000000000000000000000060648201526084016101b4565b6103b68a8a8a85886111ba565b50505050505050505050565b60006002826040516103d49190612011565b602060405180830381855afa1580156103f1573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610414919061204c565b9050600086868360405160200161042d93929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188c01909352912060028101549192509063ffffffff166104ae5760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520646f6573206e6f74206578697374000060448201526064016101b4565b6002810154640100000000900460ff161561051d5760405162461bcd60e51b815260206004820152602960248201527f4672617564206368616c6c656e67652068617320616c7265616479206265656e604482015268081c995cdbdb1d995960ba1b60648201526084016101b4565b60158901546002820154610537919063ffffffff1661207b565b4210156105ac5760405162461bcd60e51b815260206004820152603260248201527f4672617564206368616c6c656e67652064656665617420706572696f6420646960448201527f64206e6f742074696d65206f757420796574000000000000000000000000000060648201526084016101b4565b60028101805464ff000000001916640100000000179055805460018201546040516001600160a01b0390921691620186a091906000818181858888f193505050503d8060008114610619576040519150601f19603f3d011682016040523d82523d6000602084013e61061e565b606091505b50505060006106ae61066a60008b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061131b9050565b604080516020601f8d018190048102820181019092528b81526106a991908d8d80838501838280828437600092019190915250929392505061131b9050565b611323565b905060006106bb826113cd565b83549091506106da908c9083908b908b906001600160a01b03166113f4565b6040518581526bffffffffffffffffffffffff198216907f635230b60143449f10a365568e2bd95e3e8aaed03855631722941c2bad634b77906020015b60405180910390a25050505050505050505050565b600061076d83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3b92505050565b9050600085858360405160200161078693929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188b01909352912060028101549192509063ffffffff166108075760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520646f6573206e6f74206578697374000060448201526064016101b4565b6002810154640100000000900460ff16156108765760405162461bcd60e51b815260206004820152602960248201527f4672617564206368616c6c656e67652068617320616c7265616479206265656e604482015268081c995cdbdb1d995960ba1b60648201526084016101b4565b61088085856115e2565b6108cc5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d65737361676500000060448201526064016101b4565b6108d988888884876111ba565b5050505050505050565b846014015434101561095d5760405162461bcd60e51b815260206004820152602660248201527f54686520616d6f756e74206f6620455448206465706f7369746564206973207460448201527f6f6f206c6f77000000000000000000000000000000000000000000000000000060648201526084016101b4565b600060028360405161096f9190612011565b602060405180830381855afa15801561098c573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906109af919061204c565b9050610a0985858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508592506109fd9150506060860160408701612093565b85356020870135611672565b610a555760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726520766572696669636174696f6e206661696c757265000060448201526064016101b4565b6000610add610a9e600088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061131b9050565b604080516020601f8a018190048102820181019092528881526106a991908a8a80838501838280828437600092019190915250929392505061131b9050565b90506000610aea826113cd565b6bffffffffffffffffffffffff1981166000908152601d8a016020526040902090915060016002820154600160c01b900460ff166005811115610b2f57610b2f611ffb565b1480610b595750600280820154600160c01b900460ff166005811115610b5757610b57611ffb565b145b80610b83575060036002820154600160c01b900460ff166005811115610b8157610b81611ffb565b145b610bf55760405162461bcd60e51b815260206004820152603660248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e6473206f7220436c6f73696e672073746174650000000000000000000060648201526084016101b4565b6000888886604051602001610c0c93929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188e01909352912060028101549192509063ffffffff1615610c8e5760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520616c726561647920657869737473000060448201526064016101b4565b805473ffffffffffffffffffffffffffffffffffffffff19163317815534600182015560028101805464ffffffffff191663ffffffff42161790556bffffffffffffffffffffffff1984167ff4aa58d09ba5de017eac597806dfcfc2cad287816cb1eb7729a032c82680c94d87610d0b60608b0160408c01612093565b6040516107179291908c359060208e01359093845260ff9290921660208401526040830152606082015260800190565b600060028083604051610d4e9190612011565b602060405180830381855afa158015610d6b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d8e919061204c565b604051602001610da091815260200190565b60408051601f1981840301815290829052610dba91612011565b602060405180830381855afa158015610dd7573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610dfa919061204c565b92915050565b600080610e50610e116004856120b6565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b905060e081901c60d882901c63ff00ff001662ff00ff60e884901c1617601081811b91901c175b95945050505050565b6000806000610ec9600486868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061178b9050565b90925090506000610edb83600561207b565b905060005b828110156110ba576000610f2d8389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119099050565b90506000610f74848a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119549050565b9150508015611099576000610fc2858b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b9050600061103261100c878d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061199b9050565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9050818160405160200161107592919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b6040516020818303038152906040528051906020012060001c9850505050506110ba565b6110a3828561207b565b9350505080806110b2906120cd565b915050610ee0565b5050505092915050565b60008061110b604485858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b9050600061115661100c604487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061199b9050565b9050818160405160200161119992919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b60408051601f19818403018152919052805160209091012095945050505050565b60028201805464ff000000001916640100000000179055600485015460018301546040516001600160a01b0390921691620186a091906000818181858888f193505050503d806000811461122a576040519150601f19603f3d011682016040523d82523d6000602084013e61122f565b606091505b50505060006112ba61127b600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061131b9050565b604080516020601f89018190048102820181019092528781526106a99190898980838501838280828437600092019190915250929392505061131b9050565b905060006112c7826113cd565b9050806bffffffffffffffffffffffff19167f6ff720470ffad78f316655e2c7fc77a76763c13de0e19ee52149916ba7e44d3b8460405161130a91815260200190565b60405180910390a250505050505050565b016020015190565b606060006113326002846120e8565b61135d57507f0200000000000000000000000000000000000000000000000000000000000000611380565b507f03000000000000000000000000000000000000000000000000000000000000005b6040517fff00000000000000000000000000000000000000000000000000000000000000821660208201526021810185905260410160405160208183030381529060405291505092915050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6bffffffffffffffffffffffff1984166000908152601d8601602052604090206002810154600160c01b900460ff16600181600581111561143757611437611ffb565b14806114545750600281600581111561145257611452611ffb565b145b806114705750600381600581111561146e5761146e611ffb565b145b156115255760028701546016880154601789015484546040517fd8dc404d0000000000000000000000000000000000000000000000000000000081526001600160a01b039094169363d8dc404d936114e4936bffffffffffffffffffffffff9091169290918991908c908c9060040161210a565b600060405180830381600087803b1580156114fe57600080fd5b505af1158015611512573d6000803e3d6000fd5b5050505061152087876119b2565b6115d9565b600581600581111561153957611539611ffb565b1415611544576115d9565b60405162461bcd60e51b8152602060048201526044602482018190527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e67908201527f46756e6473206f7220436c6f73696e67206f72205465726d696e61746564207360648201527f7461746500000000000000000000000000000000000000000000000000000000608482015260a4016101b4565b50505050505050565b6000601082146115f457506000610dfa565b611638600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b7fffffffffffffffff0000000000000000000000000000000000000000000000009081161461166957506000610dfa565b50600192915050565b600085516040146116eb5760405162461bcd60e51b815260206004820152602760248201527f526571756972657320756e636f6d7072657373656420756e707265666978656460448201527f207075626b65790000000000000000000000000000000000000000000000000060648201526084016101b4565b60006116f687611b8b565b604080516000808252602082018084528a905260ff89169282019290925260608101879052608081018690529192509060019060a0016020604051602081039080840390855afa15801561174e573d6000803e3d6000fd5b5050604051601f1901516001600160a01b0390811693169290921498975050505050505050565b60006117848383016020015190565b9392505050565b600080600061179a8585611c10565b905060ff81166117cc5760008585815181106117b8576117b8612195565b016020015190935060f81c91506119029050565b836117d88260016121ab565b60ff166117e5919061207b565b855110156117fc5760001960009250925050611902565b60008160ff16600214156118415761183661182261181b87600161207b565b8890611775565b62ffff0060e882901c1660f89190911c1790565b61ffff1690506118f8565b8160ff166004141561186b5761185e61100c61181b87600161207b565b63ffffffff1690506118f8565b8160ff16600814156118f8576118eb61188861181b87600161207b565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b60008060006119188585611954565b90925090506000198214156119335760001992505050610dfa565b8061193f83602561207b565b611949919061207b565b610e7790600461207b565b60008061196283602561207b565b84511015611977575060001990506000611902565b60008061198e8661198987602461207b565b61178b565b9097909650945050505050565b60006117846119ab83602061207b565b8490611775565b6bffffffffffffffffffffffff1981166000908152601d83016020526040902060016002820154600160c01b900460ff1660058111156119f4576119f4611ffb565b1415611a4a57601b8301805474010000000000000000000000000000000000000000900463ffffffff16906014611a2a836121d0565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b6002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff16780500000000000000000000000000000000000000000000000017905580546040516bffffffffffffffffffffffff19841691907f9272a280b0f32f70b00ad0b546499c68e3ecc6f7bb7ef43491ec5d7b99bf69ef90600090a3601b83015460601b6bffffffffffffffffffffffff199081169083161415611b0e57601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb92791611b5d9160040190815260200190565b600060405180830381600087803b158015611b7757600080fd5b505af11580156115d9573d6000803e3d6000fd5b60008151604014611c045760405162461bcd60e51b815260206004820152602d60248201527f5075626b6579206d7573742062652036342d62797465207261772c20756e636f60448201527f6d70726573736564206b65792e0000000000000000000000000000000000000060648201526084016101b4565b50805160209091012090565b6000828281518110611c2457611c24612195565b60209101015160f81c60ff1415611c3d57506008610dfa565b828281518110611c4f57611c4f612195565b60209101015160f81c60fe1415611c6857506004610dfa565b828281518110611c7a57611c7a612195565b60209101015160f81c60fd1415611c9357506002610dfa565b50600092915050565b60008083601f840112611cae57600080fd5b50813567ffffffffffffffff811115611cc657600080fd5b60208301915083602082850101111561190257600080fd5b60008060008060008060808789031215611cf757600080fd5b86359550602087013567ffffffffffffffff80821115611d1657600080fd5b611d228a838b01611c9c565b90975095506040890135915080821115611d3b57600080fd5b50611d4889828a01611c9c565b90945092505060608701358015158114611d6157600080fd5b809150509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611d9657600080fd5b813567ffffffffffffffff80821115611db157611db1611d6f565b604051601f8301601f19908116603f01168101908282118183101715611dd957611dd9611d6f565b81604052838152866020858801011115611df257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060808789031215611e2b57600080fd5b86359550602087013567ffffffffffffffff80821115611e4a57600080fd5b611e568a838b01611c9c565b90975095506040890135915080821115611e6f57600080fd5b818901915089601f830112611e8357600080fd5b813581811115611e9257600080fd5b8a60208260051b8501011115611ea757600080fd5b602083019550809450506060890135915080821115611ec557600080fd5b50611ed289828a01611d85565b9150509295509295509295565b600080600080600060608688031215611ef757600080fd5b85359450602086013567ffffffffffffffff80821115611f1657600080fd5b611f2289838a01611c9c565b90965094506040880135915080821115611f3b57600080fd5b50611f4888828901611c9c565b969995985093965092949392505050565b600080600080600085870360c0811215611f7257600080fd5b86359550602087013567ffffffffffffffff80821115611f9157600080fd5b611f9d8a838b01611c9c565b90975095506040890135915080821115611fb657600080fd5b50611fc389828a01611d85565b9350506060605f1982011215611fd857600080fd5b506060860190509295509295909350565b82848237909101908152602001919050565b634e487b7160e01b600052602160045260246000fd5b6000825160005b818110156120325760208186018101518583015201612018565b81811115612041576000828501525b509190910192915050565b60006020828403121561205e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561208e5761208e612065565b500190565b6000602082840312156120a557600080fd5b813560ff8116811461178457600080fd5b6000828210156120c8576120c8612065565b500390565b60006000198214156120e1576120e1612065565b5060010190565b60008261210557634e487b7160e01b600052601260045260246000fd5b500690565b600060a082016bffffffffffffffffffffffff89168352602088818501526001600160a01b038816604085015286606085015260a060808501528185835260c0850190508692506000805b8781101561218457843563ffffffff8116808214612171578384fd5b8452509383019391830191600101612155565b50909b9a5050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff038211156121c8576121c8612065565b019392505050565b600063ffffffff8216806121e6576121e6612065565b600019019291505056fea2646970667358221220bb720af7c3ddde76b437b31e700dd91b30a9116a3cb9275ba21214c3bfd51acd64736f6c63430008090033",
|
|
83
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063624526fe1461005b57806380ffe94a1461007d57806394fcaf8d1461009d578063eb8fdd5d146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004611cde565b6100dd565b005b81801561008957600080fd5b5061007b610098366004611e12565b6103c2565b8180156100a957600080fd5b5061007b6100b8366004611edf565b61072c565b8180156100c957600080fd5b5061007b6100d8366004611f59565b6108e3565b600061011e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3b92505050565b9050600086868360405160200161013793929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188c01909352912060028101549192509063ffffffff166101bd5760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520646f6573206e6f74206578697374000060448201526064015b60405180910390fd5b6002810154640100000000900460ff161561022c5760405162461bcd60e51b815260206004820152602960248201527f4672617564206368616c6c656e67652068617320616c7265616479206265656e604482015268081c995cdbdb1d995960ba1b60648201526084016101b4565b6102368686610e00565b63ffffffff1660011461028b5760405162461bcd60e51b815260206004820152601260248201527f57726f6e6720736967686173682074797065000000000000000000000000000060448201526064016101b4565b6000846102a15761029c8787610e80565b6102ab565b6102ab87876110c4565b600081815260068c0160205260409020600101549091507c0100000000000000000000000000000000000000000000000000000000900463ffffffff161515806103055750600081815260198b01602052604090205460ff165b80610337575060026000828152600d8c01602052604090206001015460ff16600381111561033557610335611ffb565b145b6103a95760405162461bcd60e51b815260206004820152603060248201527f5370656e74205554584f206e6f7420666f756e6420616d6f6e6720636f72726560448201527f63746c79207370656e74205554584f730000000000000000000000000000000060648201526084016101b4565b6103b68a8a8a85886111ba565b50505050505050505050565b60006002826040516103d49190612011565b602060405180830381855afa1580156103f1573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610414919061204c565b9050600086868360405160200161042d93929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188c01909352912060028101549192509063ffffffff166104ae5760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520646f6573206e6f74206578697374000060448201526064016101b4565b6002810154640100000000900460ff161561051d5760405162461bcd60e51b815260206004820152602960248201527f4672617564206368616c6c656e67652068617320616c7265616479206265656e604482015268081c995cdbdb1d995960ba1b60648201526084016101b4565b60158901546002820154610537919063ffffffff1661207b565b4210156105ac5760405162461bcd60e51b815260206004820152603260248201527f4672617564206368616c6c656e67652064656665617420706572696f6420646960448201527f64206e6f742074696d65206f757420796574000000000000000000000000000060648201526084016101b4565b60028101805464ff000000001916640100000000179055805460018201546040516001600160a01b0390921691620186a091906000818181858888f193505050503d8060008114610619576040519150601f19603f3d011682016040523d82523d6000602084013e61061e565b606091505b50505060006106ae61066a60008b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061131b9050565b604080516020601f8d018190048102820181019092528b81526106a991908d8d80838501838280828437600092019190915250929392505061131b9050565b611323565b905060006106bb826113cd565b83549091506106da908c9083908b908b906001600160a01b03166113f4565b6040518581526bffffffffffffffffffffffff198216907f635230b60143449f10a365568e2bd95e3e8aaed03855631722941c2bad634b77906020015b60405180910390a25050505050505050505050565b600061076d83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d3b92505050565b9050600085858360405160200161078693929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188b01909352912060028101549192509063ffffffff166108075760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520646f6573206e6f74206578697374000060448201526064016101b4565b6002810154640100000000900460ff16156108765760405162461bcd60e51b815260206004820152602960248201527f4672617564206368616c6c656e67652068617320616c7265616479206265656e604482015268081c995cdbdb1d995960ba1b60648201526084016101b4565b61088085856115e2565b6108cc5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d65737361676500000060448201526064016101b4565b6108d988888884876111ba565b5050505050505050565b846014015434101561095d5760405162461bcd60e51b815260206004820152602660248201527f54686520616d6f756e74206f6620455448206465706f7369746564206973207460448201527f6f6f206c6f77000000000000000000000000000000000000000000000000000060648201526084016101b4565b600060028360405161096f9190612011565b602060405180830381855afa15801561098c573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906109af919061204c565b9050610a0985858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508592506109fd9150506060860160408701612093565b85356020870135611672565b610a555760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726520766572696669636174696f6e206661696c757265000060448201526064016101b4565b6000610add610a9e600088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061131b9050565b604080516020601f8a018190048102820181019092528881526106a991908a8a80838501838280828437600092019190915250929392505061131b9050565b90506000610aea826113cd565b6bffffffffffffffffffffffff1981166000908152601d8a016020526040902090915060016002820154600160c01b900460ff166005811115610b2f57610b2f611ffb565b1480610b595750600280820154600160c01b900460ff166005811115610b5757610b57611ffb565b145b80610b83575060036002820154600160c01b900460ff166005811115610b8157610b81611ffb565b145b610bf55760405162461bcd60e51b815260206004820152603660248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e6473206f7220436c6f73696e672073746174650000000000000000000060648201526084016101b4565b6000888886604051602001610c0c93929190611fe9565b60408051601f198184030181529181528151602092830120600081815260188e01909352912060028101549192509063ffffffff1615610c8e5760405162461bcd60e51b815260206004820152601e60248201527f4672617564206368616c6c656e676520616c726561647920657869737473000060448201526064016101b4565b805473ffffffffffffffffffffffffffffffffffffffff19163317815534600182015560028101805464ffffffffff191663ffffffff42161790556bffffffffffffffffffffffff1984167ff4aa58d09ba5de017eac597806dfcfc2cad287816cb1eb7729a032c82680c94d87610d0b60608b0160408c01612093565b6040516107179291908c359060208e01359093845260ff9290921660208401526040830152606082015260800190565b600060028083604051610d4e9190612011565b602060405180830381855afa158015610d6b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d8e919061204c565b604051602001610da091815260200190565b60408051601f1981840301815290829052610dba91612011565b602060405180830381855afa158015610dd7573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610dfa919061204c565b92915050565b600080610e50610e116004856120b6565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b905060e081901c60d882901c63ff00ff001662ff00ff60e884901c1617601081811b91901c175b95945050505050565b6000806000610ec9600486868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061178b9050565b90925090506000610edb83600561207b565b905060005b828110156110ba576000610f2d8389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119099050565b90506000610f74848a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506119549050565b9150508015611099576000610fc2858b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b9050600061103261100c878d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061199b9050565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9050818160405160200161107592919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b6040516020818303038152906040528051906020012060001c9850505050506110ba565b6110a3828561207b565b9350505080806110b2906120cd565b915050610ee0565b5050505092915050565b60008061110b604485858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b9050600061115661100c604487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061199b9050565b9050818160405160200161119992919091825260e01b7fffffffff0000000000000000000000000000000000000000000000000000000016602082015260240190565b60408051601f19818403018152919052805160209091012095945050505050565b60028201805464ff000000001916640100000000179055600485015460018301546040516001600160a01b0390921691620186a091906000818181858888f193505050503d806000811461122a576040519150601f19603f3d011682016040523d82523d6000602084013e61122f565b606091505b50505060006112ba61127b600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061131b9050565b604080516020601f89018190048102820181019092528781526106a99190898980838501838280828437600092019190915250929392505061131b9050565b905060006112c7826113cd565b9050806bffffffffffffffffffffffff19167f6ff720470ffad78f316655e2c7fc77a76763c13de0e19ee52149916ba7e44d3b8460405161130a91815260200190565b60405180910390a250505050505050565b016020015190565b606060006113326002846120e8565b61135d57507f0200000000000000000000000000000000000000000000000000000000000000611380565b507f03000000000000000000000000000000000000000000000000000000000000005b6040517fff00000000000000000000000000000000000000000000000000000000000000821660208201526021810185905260410160405160208183030381529060405291505092915050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6bffffffffffffffffffffffff1984166000908152601d8601602052604090206002810154600160c01b900460ff16600181600581111561143757611437611ffb565b14806114545750600281600581111561145257611452611ffb565b145b806114705750600381600581111561146e5761146e611ffb565b145b156115255760028701546016880154601789015484546040517fd8dc404d0000000000000000000000000000000000000000000000000000000081526001600160a01b039094169363d8dc404d936114e4936bffffffffffffffffffffffff9091169290918991908c908c9060040161210a565b600060405180830381600087803b1580156114fe57600080fd5b505af1158015611512573d6000803e3d6000fd5b5050505061152087876119b2565b6115d9565b600581600581111561153957611539611ffb565b1415611544576115d9565b60405162461bcd60e51b8152602060048201526044602482018190527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e67908201527f46756e6473206f7220436c6f73696e67206f72205465726d696e61746564207360648201527f7461746500000000000000000000000000000000000000000000000000000000608482015260a4016101b4565b50505050505050565b6000601082146115f457506000610dfa565b611638600084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506117759050565b7fffffffffffffffff0000000000000000000000000000000000000000000000009081161461166957506000610dfa565b50600192915050565b600085516040146116eb5760405162461bcd60e51b815260206004820152602760248201527f526571756972657320756e636f6d7072657373656420756e707265666978656460448201527f207075626b65790000000000000000000000000000000000000000000000000060648201526084016101b4565b60006116f687611b8b565b604080516000808252602082018084528a905260ff89169282019290925260608101879052608081018690529192509060019060a0016020604051602081039080840390855afa15801561174e573d6000803e3d6000fd5b5050604051601f1901516001600160a01b0390811693169290921498975050505050505050565b60006117848383016020015190565b9392505050565b600080600061179a8585611c10565b905060ff81166117cc5760008585815181106117b8576117b8612195565b016020015190935060f81c91506119029050565b836117d88260016121ab565b60ff166117e5919061207b565b855110156117fc5760001960009250925050611902565b60008160ff16600214156118415761183661182261181b87600161207b565b8890611775565b62ffff0060e882901c1660f89190911c1790565b61ffff1690506118f8565b8160ff166004141561186b5761185e61100c61181b87600161207b565b63ffffffff1690506118f8565b8160ff16600814156118f8576118eb61188861181b87600161207b565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b60008060006119188585611954565b90925090506000198214156119335760001992505050610dfa565b8061193f83602561207b565b611949919061207b565b610e7790600461207b565b60008061196283602561207b565b84511015611977575060001990506000611902565b60008061198e8661198987602461207b565b61178b565b9097909650945050505050565b60006117846119ab83602061207b565b8490611775565b6bffffffffffffffffffffffff1981166000908152601d83016020526040902060016002820154600160c01b900460ff1660058111156119f4576119f4611ffb565b1415611a4a57601b8301805474010000000000000000000000000000000000000000900463ffffffff16906014611a2a836121d0565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b6002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff16780500000000000000000000000000000000000000000000000017905580546040516bffffffffffffffffffffffff19841691907f9272a280b0f32f70b00ad0b546499c68e3ecc6f7bb7ef43491ec5d7b99bf69ef90600090a3601b83015460601b6bffffffffffffffffffffffff199081169083161415611b0e57601b8301805473ffffffffffffffffffffffffffffffffffffffff191690555b600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb92791611b5d9160040190815260200190565b600060405180830381600087803b158015611b7757600080fd5b505af11580156115d9573d6000803e3d6000fd5b60008151604014611c045760405162461bcd60e51b815260206004820152602d60248201527f5075626b6579206d7573742062652036342d62797465207261772c20756e636f60448201527f6d70726573736564206b65792e0000000000000000000000000000000000000060648201526084016101b4565b50805160209091012090565b6000828281518110611c2457611c24612195565b60209101015160f81c60ff1415611c3d57506008610dfa565b828281518110611c4f57611c4f612195565b60209101015160f81c60fe1415611c6857506004610dfa565b828281518110611c7a57611c7a612195565b60209101015160f81c60fd1415611c9357506002610dfa565b50600092915050565b60008083601f840112611cae57600080fd5b50813567ffffffffffffffff811115611cc657600080fd5b60208301915083602082850101111561190257600080fd5b60008060008060008060808789031215611cf757600080fd5b86359550602087013567ffffffffffffffff80821115611d1657600080fd5b611d228a838b01611c9c565b90975095506040890135915080821115611d3b57600080fd5b50611d4889828a01611c9c565b90945092505060608701358015158114611d6157600080fd5b809150509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611d9657600080fd5b813567ffffffffffffffff80821115611db157611db1611d6f565b604051601f8301601f19908116603f01168101908282118183101715611dd957611dd9611d6f565b81604052838152866020858801011115611df257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060808789031215611e2b57600080fd5b86359550602087013567ffffffffffffffff80821115611e4a57600080fd5b611e568a838b01611c9c565b90975095506040890135915080821115611e6f57600080fd5b818901915089601f830112611e8357600080fd5b813581811115611e9257600080fd5b8a60208260051b8501011115611ea757600080fd5b602083019550809450506060890135915080821115611ec557600080fd5b50611ed289828a01611d85565b9150509295509295509295565b600080600080600060608688031215611ef757600080fd5b85359450602086013567ffffffffffffffff80821115611f1657600080fd5b611f2289838a01611c9c565b90965094506040880135915080821115611f3b57600080fd5b50611f4888828901611c9c565b969995985093965092949392505050565b600080600080600085870360c0811215611f7257600080fd5b86359550602087013567ffffffffffffffff80821115611f9157600080fd5b611f9d8a838b01611c9c565b90975095506040890135915080821115611fb657600080fd5b50611fc389828a01611d85565b9350506060605f1982011215611fd857600080fd5b506060860190509295509295909350565b82848237909101908152602001919050565b634e487b7160e01b600052602160045260246000fd5b6000825160005b818110156120325760208186018101518583015201612018565b81811115612041576000828501525b509190910192915050565b60006020828403121561205e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561208e5761208e612065565b500190565b6000602082840312156120a557600080fd5b813560ff8116811461178457600080fd5b6000828210156120c8576120c8612065565b500390565b60006000198214156120e1576120e1612065565b5060010190565b60008261210557634e487b7160e01b600052601260045260246000fd5b500690565b600060a082016bffffffffffffffffffffffff89168352602088818501526001600160a01b038816604085015286606085015260a060808501528185835260c0850190508692506000805b8781101561218457843563ffffffff8116808214612171578384fd5b8452509383019391830191600101612155565b50909b9a5050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff038211156121c8576121c8612065565b019392505050565b600063ffffffff8216806121e6576121e6612065565b600019019291505056fea2646970667358221220bb720af7c3ddde76b437b31e700dd91b30a9116a3cb9275ba21214c3bfd51acd64736f6c63430008090033",
|
|
84
|
+
"linkReferences": {},
|
|
85
|
+
"deployedLinkReferences": {}
|
|
86
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "Heartbeat",
|
|
4
|
+
"sourceName": "contracts/bridge/Heartbeat.sol",
|
|
5
|
+
"abi": [],
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220061b3252bac3ca2a5b0de047faff762d0d23180ec62798a17c1c2e9e0c11063f64736f6c63430008090033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220061b3252bac3ca2a5b0de047faff762d0d23180ec62798a17c1c2e9e0c11063f64736f6c63430008090033",
|
|
8
|
+
"linkReferences": {},
|
|
9
|
+
"deployedLinkReferences": {}
|
|
10
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "IRelay",
|
|
4
|
+
"sourceName": "contracts/bridge/IRelay.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "getCurrentEpochDifficulty",
|
|
9
|
+
"outputs": [
|
|
10
|
+
{
|
|
11
|
+
"internalType": "uint256",
|
|
12
|
+
"name": "",
|
|
13
|
+
"type": "uint256"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"stateMutability": "view",
|
|
17
|
+
"type": "function"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"inputs": [],
|
|
21
|
+
"name": "getPrevEpochDifficulty",
|
|
22
|
+
"outputs": [
|
|
23
|
+
{
|
|
24
|
+
"internalType": "uint256",
|
|
25
|
+
"name": "",
|
|
26
|
+
"type": "uint256"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"stateMutability": "view",
|
|
30
|
+
"type": "function"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"bytecode": "0x",
|
|
34
|
+
"deployedBytecode": "0x",
|
|
35
|
+
"linkReferences": {},
|
|
36
|
+
"deployedLinkReferences": {}
|
|
37
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "MovingFunds",
|
|
4
|
+
"sourceName": "contracts/bridge/MovingFunds.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"anonymous": false,
|
|
8
|
+
"inputs": [
|
|
9
|
+
{
|
|
10
|
+
"indexed": true,
|
|
11
|
+
"internalType": "bytes20",
|
|
12
|
+
"name": "walletPubKeyHash",
|
|
13
|
+
"type": "bytes20"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"indexed": false,
|
|
17
|
+
"internalType": "bytes32",
|
|
18
|
+
"name": "movingFundsTxHash",
|
|
19
|
+
"type": "bytes32"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"indexed": false,
|
|
23
|
+
"internalType": "uint32",
|
|
24
|
+
"name": "movingFundsTxOutputIndex",
|
|
25
|
+
"type": "uint32"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"name": "MovedFundsSweepTimedOut",
|
|
29
|
+
"type": "event"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"anonymous": false,
|
|
33
|
+
"inputs": [
|
|
34
|
+
{
|
|
35
|
+
"indexed": true,
|
|
36
|
+
"internalType": "bytes20",
|
|
37
|
+
"name": "walletPubKeyHash",
|
|
38
|
+
"type": "bytes20"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"indexed": false,
|
|
42
|
+
"internalType": "bytes32",
|
|
43
|
+
"name": "sweepTxHash",
|
|
44
|
+
"type": "bytes32"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"name": "MovedFundsSwept",
|
|
48
|
+
"type": "event"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"anonymous": false,
|
|
52
|
+
"inputs": [
|
|
53
|
+
{
|
|
54
|
+
"indexed": true,
|
|
55
|
+
"internalType": "bytes20",
|
|
56
|
+
"name": "walletPubKeyHash",
|
|
57
|
+
"type": "bytes20"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"name": "MovingFundsBelowDustReported",
|
|
61
|
+
"type": "event"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"anonymous": false,
|
|
65
|
+
"inputs": [
|
|
66
|
+
{
|
|
67
|
+
"indexed": true,
|
|
68
|
+
"internalType": "bytes20",
|
|
69
|
+
"name": "walletPubKeyHash",
|
|
70
|
+
"type": "bytes20"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"indexed": false,
|
|
74
|
+
"internalType": "bytes20[]",
|
|
75
|
+
"name": "targetWallets",
|
|
76
|
+
"type": "bytes20[]"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"indexed": false,
|
|
80
|
+
"internalType": "address",
|
|
81
|
+
"name": "submitter",
|
|
82
|
+
"type": "address"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"name": "MovingFundsCommitmentSubmitted",
|
|
86
|
+
"type": "event"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"anonymous": false,
|
|
90
|
+
"inputs": [
|
|
91
|
+
{
|
|
92
|
+
"indexed": true,
|
|
93
|
+
"internalType": "bytes20",
|
|
94
|
+
"name": "walletPubKeyHash",
|
|
95
|
+
"type": "bytes20"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"indexed": false,
|
|
99
|
+
"internalType": "bytes32",
|
|
100
|
+
"name": "movingFundsTxHash",
|
|
101
|
+
"type": "bytes32"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"name": "MovingFundsCompleted",
|
|
105
|
+
"type": "event"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"anonymous": false,
|
|
109
|
+
"inputs": [
|
|
110
|
+
{
|
|
111
|
+
"indexed": true,
|
|
112
|
+
"internalType": "bytes20",
|
|
113
|
+
"name": "walletPubKeyHash",
|
|
114
|
+
"type": "bytes20"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"name": "MovingFundsTimedOut",
|
|
118
|
+
"type": "event"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"anonymous": false,
|
|
122
|
+
"inputs": [
|
|
123
|
+
{
|
|
124
|
+
"indexed": true,
|
|
125
|
+
"internalType": "bytes20",
|
|
126
|
+
"name": "walletPubKeyHash",
|
|
127
|
+
"type": "bytes20"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"name": "MovingFundsTimeoutReset",
|
|
131
|
+
"type": "event"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"bytecode": "0x614dda61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100865760003560e01c8063899bef9d11610065578063899bef9d146100ed5780639b69e71d1461010d578063b79a97251461012d578063c8f779431461014d57600080fd5b806292bac91461008b57806307f96c42146100ad578063260b6cde146100cd575b600080fd5b81801561009757600080fd5b506100ab6100a636600461445d565b61016d565b005b8180156100b957600080fd5b506100ab6100c8366004614532565b61043d565b8180156100d957600080fd5b506100ab6100e836600461458c565b610545565b8180156100f957600080fd5b506100ab6101083660046145d4565b61062f565b81801561011957600080fd5b506100ab61012836600461463c565b610880565b81801561013957600080fd5b506100ab610148366004614668565b610afe565b81801561015957600080fd5b506100ab6101683660046146e7565b610cbd565b600061017a868686611409565b6001600160601b031983166000908152601d88016020526040902060010154909150806101ee5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064015b60405180910390fd5b808435610201604087016020880161478d565b61021160608801604089016147c0565b60405160200161024e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146102b15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101e5565b6102fe876102c260208901896147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508992506116f9915050565b6000806103618960405180604001604052808781526020018b806040019061032691906147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250611822565b60088b0154919350915067ffffffffffffffff16816103866060890160408a016147c0565b67ffffffffffffffff1661039a9190614838565b11156103e85760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016101e5565b6103f3898684611cf4565b6040518481526001600160601b03198616907fc635af1892551655b9dbb3256a0eed3e35baf4fcc5392b80e6a907b6f44a28389060200160405180910390a2505050505050505050565b6001600160601b031983166000908152601d85016020526040902060020154600885015463ffffffff600160601b90920482169161048391600160a01b9004168261484f565b63ffffffff1642116104fd5760405162461bcd60e51b815260206004820152602260248201527f4d6f76696e672066756e647320686173206e6f742074696d6564206f7574207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016101e5565b61050985858585611e8e565b6040516001600160601b03198516907f5862a5a7095622ec6e3a04e5bb6547f1e4034af0d7d4d7e9787678072fc66fb290600090a25050505050565b6000610552848484611fb5565b600885015490915067ffffffffffffffff680100000000000000009091048116908216106105ea576040805162461bcd60e51b81526020600482015260248101919091527f57616c6c6574204254432062616c616e6365206d7573742062652062656c6f7760448201527f20746865206d6f76696e672066756e64732064757374207468726573686f6c6460648201526084016101e5565b6105f484846120b8565b6040516001600160601b03198416907ff54ae1d272063b0032d7dc7af48156e7a0c9711f404de48e494122d971b9dd1690600090a250505050565b600085600d016000868660405160200161066092919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152918152815160209283012083529082019290925201600020905060018082015460ff1660038111156106a1576106a1614877565b146106fd5760405162461bcd60e51b815260206004820152602660248201527f53776565702072657175657374206d75737420626520696e2050656e64696e6760448201526520737461746560d01b60648201526084016101e5565b600b860154815461072a9163ffffffff68010000000000000000909104811691600160e01b90041661484f565b63ffffffff1642116107a45760405162461bcd60e51b815260206004820152602360248201527f5377656570207265717565737420686173206e6f742074696d6564206f75742060448201527f796574000000000000000000000000000000000000000000000000000000000060648201526084016101e5565b805460601b6107b58782868661215e565b6001600160601b031981166000908152601d88016020526040902060018301805460ff1916600317905560028101805463ffffffff600160a01b909104169060146107ff8361488d565b91906101000a81548163ffffffff021916908363ffffffff16021790555050816bffffffffffffffffffffffff19167f4c25d874672bd8dcc921a53387892a0d5c26d5dae3d368ffe83f65cc99700612888860405161086e92919091825263ffffffff16602082015260400190565b60405180910390a25050505050505050565b6001600160601b031981166000908152601d830160205260409020600280820154600160c01b900460ff1660058111156108bc576108bc614877565b146109155760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b60038101541561097b5760405162461bcd60e51b815260206004820152602b60248201527f5461726765742077616c6c65747320636f6d6d69746d656e7420616c7265616460448201526a1e481cdd589b5a5d1d195960aa1b60648201526084016101e5565b601b830154600160a01b900463ffffffff16156109da5760405162461bcd60e51b815260206004820152601f60248201527f4c6976652077616c6c65747320636f756e74206d757374206265207a65726f0060448201526064016101e5565b60088301546002820154610a129163ffffffff700100000000000000000000000000000000909104811691600160601b90041661484f565b63ffffffff164211610a8c5760405162461bcd60e51b815260206004820152602860248201527f4d6f76696e672066756e64732074696d656f75742063616e6e6f74206265207260448201527f657365742079657400000000000000000000000000000000000000000000000060648201526084016101e5565b6002810180547fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16600160601b4263ffffffff16021790556040516001600160601b03198316907fa59c6e2153c28ecd6a3507cfa44c3ab392779ff484a1aee02e40345c63a59bc090600090a2505050565b6000610b0b858585611409565b9050600080610b5b87610b2160408901896147db565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061231d92505050565b91509150600080610b6d8985886123d2565b90925090506000610bc38a610b8560208c018c6147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508a91506125c89050565b600b8b015490915067ffffffffffffffff90811690610be490861683614838565b1115610c325760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016101e5565b60408051602080820189905260008284015260c087901b6001600160c01b03191660448301528251602c818403018152604c830180855281519190920120600187015588905290516001600160601b03198716917f1650566b0cdca3878702c6b169ab429b57de91a06c61998925d0adf6227b243e9190819003606c0190a250505050505050505050565b6001600160601b031987166000908152601d890160205260409020600280820154600160c01b900460ff166005811115610cf957610cf9614877565b14610d6c5760405162461bcd60e51b815260206004820152602a60248201527f536f757263652077616c6c6574206d75737420626520696e204d6f76696e674660448201527f756e64732073746174650000000000000000000000000000000000000000000060648201526084016101e5565b600281015467ffffffffffffffff1615610dee5760405162461bcd60e51b815260206004820152603760248201527f536f757263652077616c6c6574206d7573742068616e646c6520616c6c20706560448201527f6e64696e6720726564656d7074696f6e7320666972737400000000000000000060648201526084016101e5565b6002810154600160a01b900463ffffffff1615610e995760405162461bcd60e51b815260206004820152604660248201527f536f757263652077616c6c6574206d7573742068616e646c6520616c6c20706560448201527f6e64696e67206d6f7665642066756e647320737765657020726571756573747360648201527f2066697273740000000000000000000000000000000000000000000000000000608482015260a4016101e5565b600381015415610eff5760405162461bcd60e51b815260206004820152602b60248201527f5461726765742077616c6c65747320636f6d6d69746d656e7420616c7265616460448201526a1e481cdd589b5a5d1d195960aa1b60648201526084016101e5565b600289015481546040517fdf07ce590000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163df07ce5991610f52918a908a9033908b906004016148f1565b60206040518083038186803b158015610f6a57600080fd5b505afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa29190614928565b6110145760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f742061206d656d626572206f662074686520736f60448201527f757263652077616c6c657400000000000000000000000000000000000000000060648201526084016101e5565b60006110218a8a8a611fb5565b905060008167ffffffffffffffff161161107d5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c6574204254432062616c616e6365206973207a65726f00000000000060448201526064016101e5565b601b8a01546000906110ba9063ffffffff600160a01b820416906110b59067ffffffffffffffff80871691600160c01b9004166129b3565b6129ee565b90506000811161110c5760405162461bcd60e51b815260206004820152601b60248201527f4e6f207461726765742077616c6c65747320617661696c61626c65000000000060448201526064016101e5565b8381146111815760405162461bcd60e51b815260206004820152603560248201527f5375626d6974746564207461726765742077616c6c65747320636f756e74206960448201527f73206f74686572207468616e206578706563746564000000000000000000000060648201526084016101e5565b6000805b858110156113845760008787838181106111a1576111a161494a565b90506020020160208101906111b69190614960565b90506001600160601b0319808216908e16141561123b5760405162461bcd60e51b815260206004820152603c60248201527f5375626d6974746564207461726765742077616c6c65742063616e6e6f74206260448201527f6520657175616c20746f2074686520736f757263652077616c6c65740000000060648201526084016101e5565b6001600160a01b038316606082901c116112bd5760405162461bcd60e51b815260206004820152603160248201527f5375626d6974746564207461726765742077616c6c657420627265616b73207460448201527f6865206578706563746564206f7264657200000000000000000000000000000060648201526084016101e5565b6001600160601b031981166000908152601d8f016020526040902060020154600190600160c01b900460ff1660058111156112fa576112fa614877565b1461136d5760405162461bcd60e51b815260206004820152602d60248201527f5375626d6974746564207461726765742077616c6c6574206d7573742062652060448201527f696e204c6976652073746174650000000000000000000000000000000000000060648201526084016101e5565b60601c91508061137c8161497b565b915050611185565b508585604051602001611398929190614996565b60408051601f1981840301815290829052805160209091012060038601556001600160601b03198c16907ffcab32b1dc365ef82ae9df4be019512ca536c191bd68f523b9f33d0c070e8d4a906113f3908990899033906149d7565b60405180910390a2505050505050505050505050565b600061145561141b60208501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a0492505050565b6114a15760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016101e5565b6114eb6114b160408501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ab492505050565b6115375760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016101e5565b61159a6115476020850185614a36565b61155460208601866147db565b61156160408801886147db565b61157160808a0160608b01614a36565b60405160200161158696959493929190614a60565b604051602081830303815290604052612b57565b90506116356115e96115af60408501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b7e92505050565b6115f384806147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869493925050506020860135612b8b565b6116a75760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016101e5565b6116f2846116b860408501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bc792505050565b9392505050565b60008061170584612f36565b9092509050823582148015611734575063ffffffff811661172c604085016020860161478d565b63ffffffff16145b6117a65760405162461bcd60e51b815260206004820152603f60248201527f4f7574626f756e64207472616e73616374696f6e20696e707574206d7573742060448201527f706f696e7420746f207468652077616c6c65742773206d61696e205554584f0060648201526084016101e5565b600160198601600085356117c0604088016020890161478d565b6040516020016117e792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555050505050565b6000806000806118358560200151613011565b90925090506000611847836001614aa2565b905060008267ffffffffffffffff81111561186457611864614aba565b60405190808252806020026020018201604052801561188d578160200160208202803683370190505b50905060008367ffffffffffffffff8111156118ab576118ab614aba565b6040519080825280602002602001820160405280156118d4578160200160208202803683370190505b50905060005b848163ffffffff161015611b9f5760208901516000906118fa9086613028565b60208b015190915060009061191090878461308e565b9050600061191e8d83613158565b905080868563ffffffff16815181106119395761193961494a565b6001600160601b03199092166020928302919091019091015261195b82613318565b858563ffffffff16815181106119735761197361494a565b602002602001019067ffffffffffffffff16908167ffffffffffffffff1681525050848463ffffffff16815181106119ad576119ad61494a565b602002602001015167ffffffffffffffff168a6119ca9190614aa2565b99506040518060800160405280826bffffffffffffffffffffffff19168152602001868663ffffffff1681518110611a0457611a0461494a565b602002602001015167ffffffffffffffff1681526020014263ffffffff16815260200160016003811115611a3a57611a3a614877565b90528c516040805160208101929092526001600160e01b031960e088901b1690820152600d8f019060009060440160408051601f19818403018152918152815160209283012083528282019390935290820160002083518154928501519385015163ffffffff16600160e01b027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff909516600160a01b026001600160e01b0319909416606092831c1793909317939093169190911781559082015160018083018054909160ff1990911690836003811115611b1c57611b1c614877565b021790555050506001600160601b031981166000908152601d8e01602052604090206002018054600160a01b900463ffffffff16906014611b5c83614ad0565b91906101000a81548163ffffffff021916908363ffffffff160217905550508287611b879190614aa2565b96505050508080611b9790614ad0565b9150506118da565b506000611bac8588614b0a565b9050600085611bbb838a614838565b611bc59190614b1e565b90506000611bd38383614aa2565b905060005b87811015611cba57848181518110611bf257611bf261494a565b602002602001015167ffffffffffffffff168311158015611c36575081858281518110611c2157611c2161494a565b602002602001015167ffffffffffffffff1611155b611ca85760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206973206e6f742064697374726960448201527f6275746564206576656e6c79000000000000000000000000000000000000000060648201526084016101e5565b80611cb28161497b565b915050611bd8565b5084604051602001611ccc9190614b32565b60405160208183030381529060405280519060200120995050505050505050505b9250929050565b6001600160601b031982166000908152601d840160205260409020600280820154600160c01b900460ff166005811115611d3057611d30614877565b14611d895760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b600381015480611e015760405162461bcd60e51b815260206004820152602b60248201527f5461726765742077616c6c65747320636f6d6d69746d656e74206e6f7420737560448201527f626d69747465642079657400000000000000000000000000000000000000000060648201526084016101e5565b828114611e765760405162461bcd60e51b815260206004820152603160248201527f5461726765742077616c6c65747320646f6e277420636f72726573706f6e642060448201527f746f2074686520636f6d6d69746d656e7400000000000000000000000000000060648201526084016101e5565b60006001830155611e87858561338f565b5050505050565b6001600160601b031983166000908152601d850160205260409020600280820154600160c01b900460ff166005811115611eca57611eca614877565b14611f235760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b60028501546009860154600a870154835460405163d8dc404d60e01b81526001600160a01b039094169363d8dc404d93611f79936bffffffffffffffffffffffff9091169290913391908a908a90600401614b72565b600060405180830381600087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b50505050611e87858561343c565b6001600160601b031982166000908152601d8401602052604081206001015480156120b057808335611fed604086016020870161478d565b611ffd60608701604088016147c0565b60405160200161203a9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461209d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f206461746100000060448201526064016101e5565b6120ad60608401604085016147c0565b91505b509392505050565b6001600160601b031981166000908152601d830160205260409020600290810154600160c01b900460ff16908160058111156120f6576120f6614877565b1461214f5760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b612159838361338f565b505050565b6001600160601b031983166000908152601d8501602052604090206002810154600160c01b900460ff16600181600581111561219c5761219c614877565b14806121b9575060028160058111156121b7576121b7614877565b145b806121d5575060058160058111156121d3576121d3614877565b145b6122475760405162461bcd60e51b815260206004820152603960248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e6473206f72205465726d696e617465642073746174650000000000000060648201526084016101e5565b600181600581111561225b5761225b614877565b14806122785750600281600581111561227657612276614877565b145b15612315576002860154600b870154600c880154845460405163d8dc404d60e01b81526001600160a01b039094169363d8dc404d936122d993600160601b9091046bffffffffffffffffffffffff169290913391908b908b90600401614b72565b600060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b50505050612315868661343c565b505050505050565b600080600061232b84613011565b915050806001146123a45760405162461bcd60e51b815260206004820152603760248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d7560448201527f7374206861766520612073696e676c65206f757470757400000000000000000060648201526084016101e5565b60006123b08582613609565b90506123bc8682613158565b93506123c781613318565b925050509250929050565b604080516060810182526000808252602082018190529181018290526001600160601b031984166000908152601d8601602052604090206002810154909250600160c01b900460ff16600181600581111561242f5761242f614877565b148061244c5750600281600581111561244a5761244a614877565b145b6124be5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084016101e5565b6040805160608101825260008082526020820181905291810191909152600184015490925080156125be578085356124fc604088016020890161478d565b61250c6060890160408a016147c0565b6040516020016125499392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146125ac5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101e5565b6125bb36869003860186614bc1565b92505b5050935093915050565b60008060006125d686613011565b909250905060006125e8836001614aa2565b86519091506125f85760016125fb565b60025b60ff1682146126725760405162461bcd60e51b815260206004820152603d60248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d7560448201527f7374206861766520612070726f70657220696e7075747320636f756e7400000060648201526084016101e5565b60008060006126818a856137d4565b92509250925060008b600d01600085856040516020016126b892919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152918152815160209283012083529082019290925201600020905060018082015460ff1660038111156126f9576126f9614877565b146127555760405162461bcd60e51b815260206004820152602660248201527f53776565702072657175657374206d75737420626520696e2050656e64696e6760448201526520737461746560d01b60648201526084016101e5565b805460601b6001600160601b0319908116908a16146127dc5760405162461bcd60e51b815260206004820152602760248201527f537765657020726571756573742062656c6f6e677320746f20616e6f7468657260448201527f2077616c6c65740000000000000000000000000000000000000000000000000060648201526084016101e5565b60018101805460ff1916600217905580546128099067ffffffffffffffff600160a01b9091041689614aa2565b6001600160601b03198a166000908152601d8e01602052604090206002018054919950600160a01b90910463ffffffff169060146128468361488d565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000801b8a60000151146129a3576000806128898d612884868a614aa2565b6137d4565b508d519193509150821480156128ae57508063ffffffff168c6020015163ffffffff16145b6129205760405162461bcd60e51b815260206004820152603160248201527f5365636f6e6420696e707574206d75737420706f696e7420746f20746865207760448201527f616c6c65742773206d61696e205554584f00000000000000000000000000000060648201526084016101e5565b60408c01516129399067ffffffffffffffff168b614aa2565b995060018e6019016000848460405160200161296c92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550505b505050505050505b949350505050565b60006129bf8284614b0a565b156129cb5760016129ce565b60005b60ff166129db8385614b1e565b6129e59190614aa2565b90505b92915050565b60008183106129fd57816129e5565b5090919050565b6000806000612a1284613011565b9092509050801580612a25575060001982145b15612a34575060009392505050565b6000612a41836001614aa2565b905060005b82811015612aa75785518210612a625750600095945050505050565b6000612a6e8784613806565b9050600019811415612a87575060009695505050505050565b612a918184614aa2565b9250508080612a9f9061497b565b915050612a46565b5093519093149392505050565b6000806000612ac284613011565b9092509050801580612ad5575060001982145b15612ae4575060009392505050565b6000612af1836001614aa2565b905060005b82811015612aa75785518210612b125750600095945050505050565b6000612b1e8784613028565b9050600019811415612b37575060009695505050505050565b612b418184614aa2565b9250508080612b4f9061497b565b915050612af6565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000906129e8565b60008385148015612b9a575081155b8015612ba557508251155b15612bb2575060016129ab565b612bbe85848685613851565b95945050505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b158015612c2c57600080fd5b505afa158015612c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c649190614c34565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015612ca157600080fd5b505afa158015612cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd99190614c34565b9050600080612cef612cea876138f9565b61398e565b905083811415612d0157839150612d7f565b82811415612d1157829150612d7f565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016101e5565b6000612d8a876139b6565b9050600019811415612e045760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016101e5565b600119811415612e565760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016101e5565b600219811415612ea85760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016101e5565b6003880154612eb79084614c4d565b811015612f2c5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016101e5565b5050505050505050565b6000806000612f4484613011565b91505080600114612fbd5760405162461bcd60e51b815260206004820152602d60248201527f4f7574626f756e64207472616e73616374696f6e206d7573742068617665206160448201527f2073696e676c6520696e7075740000000000000000000000000000000000000060648201526084016101e5565b6000612fc98582613bbd565b9050612fd481613d72565b9350613008612fe282613d7f565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b92505050915091565b60008061301f836000613d8c565b91509150915091565b6000613035826009614aa2565b8351101561304657506000196129e8565b60008061305d85613058866008614aa2565b613d8c565b909250905060001982141561307857600019925050506129e8565b80613084836009614aa2565b612bbe9190614aa2565b6060816130aa57506040805160208101909152600081526116f2565b60006130b68385614aa2565b905083811180156130c8575080855110155b6131145760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101e5565b604051915082604083010160405282825283850182038460208701018481015b8082101561314d57815183830152602082019150613134565b505050509392505050565b60008061316483613f09565b905080516014146131dd5760405162461bcd60e51b815260206004820152602b60248201527f4f75747075742773207075626c6963206b65792068617368206d75737420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016101e5565b6131e88160006141a7565b9150600061320660088086516131fe9190614838565b86919061308e565b8051602091820120604080517f1976a91400000000000000000000000000000000000000000000000000000000818501526001600160601b031987166024820181905261222b60f21b60388301528251601a818403018152603a830184528051908601207f1600140000000000000000000000000000000000000000000000000000000000605a840152605d8301919091528251605181840301815260719092019092528051930192909220909250818314806132c257508083145b61330e5760405162461bcd60e51b815260206004820152601e60248201527f4f7574707574206d757374206265205032504b48206f7220503257504b48000060448201526064016101e5565b5050505092915050565b600080613324836141b6565b60c01c905060006129ab8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160601b031981166000818152601d8401602052604080822060028101805463ffffffff4216700100000000000000000000000000000000027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b6001600160601b031981166000908152601d83016020526040902060016002820154600160c01b900460ff16600581111561347957613479614877565b14156134be57601b83018054600160a01b900463ffffffff1690601461349e8361488d565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b6002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff16780500000000000000000000000000000000000000000000000017905580546040516001600160601b0319841691907f9272a280b0f32f70b00ad0b546499c68e3ecc6f7bb7ef43491ec5d7b99bf69ef90600090a3601b83015460601b6001600160601b0319908116908316141561358357601b830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916135d29160040190815260200190565b600060405180830381600087803b1580156135ec57600080fd5b505af1158015613600573d6000803e3d6000fd5b50505050505050565b606060008061361785613011565b90925090506000198214156136795760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016101e5565b8084106136c85760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016101e5565b6000806136d6846001614aa2565b905060005b8681101561375f576136ed8883613028565b92506000198314156137415760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101e5565b61374b8383614aa2565b9150806137578161497b565b9150506136db565b5061376a8782613028565b91506000198214156137be5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101e5565b6137c987828461308e565b979650505050505050565b600080806137e285856141a7565b92506137f1612fe286866141c2565b91506137fd8585613806565b90509250925092565b600080600061381585856141d9565b909250905060001982141561383057600019925050506129e8565b8061383c836025614aa2565b6138469190614aa2565b612bbe906004614aa2565b6000602084516138619190614b0a565b1561386e575060006129ab565b835161387c575060006129ab565b818560005b86518110156138ec57613895600284614b0a565b600114156138ba576138b36138ad8883016020015190565b8361421b565b91506138d3565b6138d0826138cb8984016020015190565b61421b565b91505b60019290921c916138e5602082614aa2565b9050613881565b5090931495945050505050565b6000806139078360486141a7565b60e81c9050600083604b815181106139215761392161494a565b016020015160f81c9050600061395583600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000613969600384614c6c565b60ff16905061397a81610100614d73565b6139849083614c4d565b9695505050505050565b60006129e87bffff000000000000000000000000000000000000000000000000000083614227565b6000605082516139c69190614b0a565b156139d45750600019919050565b506040805160808101909152605081526000908190815b8451811015613bb5576139ff858383614233565b8015613a1f57613a0f82846142c8565b613a1f5750600119949350505050565b6000613a2a836138f9565b9050613a3583612b57565b935080613b798560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115613b8c575060021995945050505050565b613b9f613b988261398e565b86906142f1565b9450613bae9050605082614aa2565b90506139eb565b505050919050565b6060600080613bcb85613011565b9092509050600019821415613c2d5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016101e5565b808410613c7c5760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016101e5565b600080613c8a846001614aa2565b905060005b86811015613d1357613ca18883613806565b9250600019831415613cf55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016101e5565b613cff8383614aa2565b915080613d0b8161497b565b915050613c8f565b50613d1e8782613806565b91506000198214156137be5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016101e5565b60208101516000906129e8565b60006129e88260206141a7565b6000806000613d9b858561434f565b905060ff8116613dcd576000858581518110613db957613db961494a565b016020015190935060f81c9150611ced9050565b83613dd9826001614d7f565b60ff16613de69190614aa2565b85511015613dfd5760001960009250925050611ced565b60008160ff1660021415613e4257613e37613e23613e1c876001614aa2565b88906141a7565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613ef9565b8160ff1660041415613e6c57613e5f612fe2613e1c876001614aa2565b63ffffffff169050613ef9565b8160ff1660081415613ef957613eec613e89613e1c876001614aa2565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090509250929050565b6060600082600881518110613f2057613f2061494a565b0160200151835160f89190911c9150613f3a826009614d7f565b60ff1614613f58575050604080516020810190915260008152919050565b82600981518110613f6b57613f6b61494a565b016020015160f81c6140095760028160ff161015613f99575050604080516020810190915260008152919050565b600083600a81518110613fae57613fae61494a565b016020015160f81c9050613fc3600283614c6c565b60ff1681141580613fe1575080602014158015613fe1575080601414155b15613ffd57505060408051602081019091526000815292915050565b6129ab84600b8361308e565b60006140168460086141a7565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156140f35783600b815181106140755761407561494a565b60209101015160f81c60141415806140ca57506140a0600285516140999190614838565b85906141a7565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156140e657505060408051602081019091526000815292915050565b6129ab84600c601461308e565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561419057836001855161414c9190614838565b8151811061415c5761415c61494a565b60209101015160f81c60871461418357505060408051602081019091526000815292915050565b6129ab84600b601461308e565b505050604080516020810190915260008152919050565b60006129e58383016020015190565b60006129e882826141a7565b60006129e56141d2836020614aa2565b84906141a7565b6000806141e7836025614aa2565b845110156141fc575060001990506000611ced565b60008061420e86613058876024614aa2565b9097909650945050505050565b60006129e583836143db565b60006129e58284614b1e565b815160006142418284614aa2565b90508281118015614253575080855110155b61429f5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101e5565b826020860101602085018382015b80831015612f2c5782518252602092830192909101906142ad565b6000806142d484614409565b90508281146142e75760009150506129e8565b5060019392505050565b60006142fd8284614aa2565b9050828110156129e85760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016101e5565b60008282815181106143635761436361494a565b60209101015160f81c60ff141561437c575060086129e8565b82828151811061438e5761438e61494a565b60209101015160f81c60fe14156143a7575060046129e8565b8282815181106143b9576143b961494a565b60209101015160f81c60fd14156143d2575060026129e8565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906129e8565b60006080828403121561442857600080fd5b50919050565b60006060828403121561442857600080fd5b80356001600160601b03198116811461445857600080fd5b919050565b600080600080600060e0868803121561447557600080fd5b85359450602086013567ffffffffffffffff8082111561449457600080fd5b6144a089838a01614416565b955060408801359150808211156144b657600080fd5b506144c38882890161442e565b9350506144d3876060880161442e565b91506144e160c08701614440565b90509295509295909350565b60008083601f8401126144ff57600080fd5b50813567ffffffffffffffff81111561451757600080fd5b6020830191508360208260051b8501011115611ced57600080fd5b6000806000806060858703121561454857600080fd5b8435935061455860208601614440565b9250604085013567ffffffffffffffff81111561457457600080fd5b614580878288016144ed565b95989497509550505050565b600080600060a084860312156145a157600080fd5b833592506145b160208501614440565b91506137fd856040860161442e565b803563ffffffff8116811461445857600080fd5b6000806000806000608086880312156145ec57600080fd5b8535945060208601359350614603604087016145c0565b9250606086013567ffffffffffffffff81111561461f57600080fd5b61462b888289016144ed565b969995985093965092949392505050565b6000806040838503121561464f57600080fd5b8235915061465f60208401614440565b90509250929050565b60008060008060c0858703121561467e57600080fd5b84359350602085013567ffffffffffffffff8082111561469d57600080fd5b6146a988838901614416565b945060408701359150808211156146bf57600080fd5b506146cc8782880161442e565b9250506146dc866060870161442e565b905092959194509250565b600080600080600080600080610100898b03121561470457600080fd5b8835975061471460208a01614440565b96506147238a60408b0161442e565b955060a089013567ffffffffffffffff8082111561474057600080fd5b61474c8c838d016144ed565b909750955060c08b0135945060e08b013591508082111561476c57600080fd5b506147798b828c016144ed565b999c989b5096995094979396929594505050565b60006020828403121561479f57600080fd5b6129e5826145c0565b803567ffffffffffffffff8116811461445857600080fd5b6000602082840312156147d257600080fd5b6129e5826147a8565b6000808335601e198436030181126147f257600080fd5b83018035915067ffffffffffffffff82111561480d57600080fd5b602001915036819003821315611ced57600080fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561484a5761484a614822565b500390565b600063ffffffff80831681851680830382111561486e5761486e614822565b01949350505050565b634e487b7160e01b600052602160045260246000fd5b600063ffffffff8216806148a3576148a3614822565b6000190192915050565b8183526000602080850194508260005b858110156148e65763ffffffff6148d3836145c0565b16875295820195908201906001016148bd565b509495945050505050565b85815260806020820152600061490b6080830186886148ad565b6001600160a01b0394909416604083015250606001529392505050565b60006020828403121561493a57600080fd5b815180151581146116f257600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561497257600080fd5b6129e582614440565b600060001982141561498f5761498f614822565b5060010190565b60008184825b858110156149cc576001600160601b03196149b683614440565b168352602092830192919091019060010161499c565b509095945050505050565b6040808252810183905260008460608301825b86811015614a19576001600160601b0319614a0484614440565b168252602092830192909101906001016149ea565b5080925050506001600160a01b0383166020830152949350505050565b600060208284031215614a4857600080fd5b81356001600160e01b0319811681146116f257600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60008219821115614ab557614ab5614822565b500190565b634e487b7160e01b600052604160045260246000fd5b600063ffffffff80831681811415614aea57614aea614822565b6001019392505050565b634e487b7160e01b600052601260045260246000fd5b600082614b1957614b19614af4565b500690565b600082614b2d57614b2d614af4565b500490565b815160009082906020808601845b83811015614b665781516001600160601b03191685529382019390820190600101614b40565b50929695505050505050565b6bffffffffffffffffffffffff871681528560208201526001600160a01b038516604082015283606082015260a060808201526000614bb560a0830184866148ad565b98975050505050505050565b600060608284031215614bd357600080fd5b6040516060810181811067ffffffffffffffff82111715614c0457634e487b7160e01b600052604160045260246000fd5b60405282358152614c17602084016145c0565b6020820152614c28604084016147a8565b60408201529392505050565b600060208284031215614c4657600080fd5b5051919050565b6000816000190483118215151615614c6757614c67614822565b500290565b600060ff821660ff841680821015614c8657614c86614822565b90039392505050565b600181815b80851115614cca578160001904821115614cb057614cb0614822565b80851615614cbd57918102915b93841c9390800290614c94565b509250929050565b600082614ce1575060016129e8565b81614cee575060006129e8565b8160018114614d045760028114614d0e57614d2a565b60019150506129e8565b60ff841115614d1f57614d1f614822565b50506001821b6129e8565b5060208310610133831016604e8410600b8410161715614d4d575081810a6129e8565b614d578383614c8f565b8060001904821115614d6b57614d6b614822565b029392505050565b60006129e58383614cd2565b600060ff821660ff84168060ff03821115614d9c57614d9c614822565b01939250505056fea26469706673582212206e07a4192facd8aa538152a6ab96b8b81ebe91d4d86e5a3a29a5d093dad4f84264736f6c63430008090033",
|
|
135
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100865760003560e01c8063899bef9d11610065578063899bef9d146100ed5780639b69e71d1461010d578063b79a97251461012d578063c8f779431461014d57600080fd5b806292bac91461008b57806307f96c42146100ad578063260b6cde146100cd575b600080fd5b81801561009757600080fd5b506100ab6100a636600461445d565b61016d565b005b8180156100b957600080fd5b506100ab6100c8366004614532565b61043d565b8180156100d957600080fd5b506100ab6100e836600461458c565b610545565b8180156100f957600080fd5b506100ab6101083660046145d4565b61062f565b81801561011957600080fd5b506100ab61012836600461463c565b610880565b81801561013957600080fd5b506100ab610148366004614668565b610afe565b81801561015957600080fd5b506100ab6101683660046146e7565b610cbd565b600061017a868686611409565b6001600160601b031983166000908152601d88016020526040902060010154909150806101ee5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064015b60405180910390fd5b808435610201604087016020880161478d565b61021160608801604089016147c0565b60405160200161024e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146102b15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101e5565b6102fe876102c260208901896147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508992506116f9915050565b6000806103618960405180604001604052808781526020018b806040019061032691906147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250611822565b60088b0154919350915067ffffffffffffffff16816103866060890160408a016147c0565b67ffffffffffffffff1661039a9190614838565b11156103e85760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016101e5565b6103f3898684611cf4565b6040518481526001600160601b03198616907fc635af1892551655b9dbb3256a0eed3e35baf4fcc5392b80e6a907b6f44a28389060200160405180910390a2505050505050505050565b6001600160601b031983166000908152601d85016020526040902060020154600885015463ffffffff600160601b90920482169161048391600160a01b9004168261484f565b63ffffffff1642116104fd5760405162461bcd60e51b815260206004820152602260248201527f4d6f76696e672066756e647320686173206e6f742074696d6564206f7574207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016101e5565b61050985858585611e8e565b6040516001600160601b03198516907f5862a5a7095622ec6e3a04e5bb6547f1e4034af0d7d4d7e9787678072fc66fb290600090a25050505050565b6000610552848484611fb5565b600885015490915067ffffffffffffffff680100000000000000009091048116908216106105ea576040805162461bcd60e51b81526020600482015260248101919091527f57616c6c6574204254432062616c616e6365206d7573742062652062656c6f7760448201527f20746865206d6f76696e672066756e64732064757374207468726573686f6c6460648201526084016101e5565b6105f484846120b8565b6040516001600160601b03198416907ff54ae1d272063b0032d7dc7af48156e7a0c9711f404de48e494122d971b9dd1690600090a250505050565b600085600d016000868660405160200161066092919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152918152815160209283012083529082019290925201600020905060018082015460ff1660038111156106a1576106a1614877565b146106fd5760405162461bcd60e51b815260206004820152602660248201527f53776565702072657175657374206d75737420626520696e2050656e64696e6760448201526520737461746560d01b60648201526084016101e5565b600b860154815461072a9163ffffffff68010000000000000000909104811691600160e01b90041661484f565b63ffffffff1642116107a45760405162461bcd60e51b815260206004820152602360248201527f5377656570207265717565737420686173206e6f742074696d6564206f75742060448201527f796574000000000000000000000000000000000000000000000000000000000060648201526084016101e5565b805460601b6107b58782868661215e565b6001600160601b031981166000908152601d88016020526040902060018301805460ff1916600317905560028101805463ffffffff600160a01b909104169060146107ff8361488d565b91906101000a81548163ffffffff021916908363ffffffff16021790555050816bffffffffffffffffffffffff19167f4c25d874672bd8dcc921a53387892a0d5c26d5dae3d368ffe83f65cc99700612888860405161086e92919091825263ffffffff16602082015260400190565b60405180910390a25050505050505050565b6001600160601b031981166000908152601d830160205260409020600280820154600160c01b900460ff1660058111156108bc576108bc614877565b146109155760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b60038101541561097b5760405162461bcd60e51b815260206004820152602b60248201527f5461726765742077616c6c65747320636f6d6d69746d656e7420616c7265616460448201526a1e481cdd589b5a5d1d195960aa1b60648201526084016101e5565b601b830154600160a01b900463ffffffff16156109da5760405162461bcd60e51b815260206004820152601f60248201527f4c6976652077616c6c65747320636f756e74206d757374206265207a65726f0060448201526064016101e5565b60088301546002820154610a129163ffffffff700100000000000000000000000000000000909104811691600160601b90041661484f565b63ffffffff164211610a8c5760405162461bcd60e51b815260206004820152602860248201527f4d6f76696e672066756e64732074696d656f75742063616e6e6f74206265207260448201527f657365742079657400000000000000000000000000000000000000000000000060648201526084016101e5565b6002810180547fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16600160601b4263ffffffff16021790556040516001600160601b03198316907fa59c6e2153c28ecd6a3507cfa44c3ab392779ff484a1aee02e40345c63a59bc090600090a2505050565b6000610b0b858585611409565b9050600080610b5b87610b2160408901896147db565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061231d92505050565b91509150600080610b6d8985886123d2565b90925090506000610bc38a610b8560208c018c6147db565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508a91506125c89050565b600b8b015490915067ffffffffffffffff90811690610be490861683614838565b1115610c325760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016101e5565b60408051602080820189905260008284015260c087901b6001600160c01b03191660448301528251602c818403018152604c830180855281519190920120600187015588905290516001600160601b03198716917f1650566b0cdca3878702c6b169ab429b57de91a06c61998925d0adf6227b243e9190819003606c0190a250505050505050505050565b6001600160601b031987166000908152601d890160205260409020600280820154600160c01b900460ff166005811115610cf957610cf9614877565b14610d6c5760405162461bcd60e51b815260206004820152602a60248201527f536f757263652077616c6c6574206d75737420626520696e204d6f76696e674660448201527f756e64732073746174650000000000000000000000000000000000000000000060648201526084016101e5565b600281015467ffffffffffffffff1615610dee5760405162461bcd60e51b815260206004820152603760248201527f536f757263652077616c6c6574206d7573742068616e646c6520616c6c20706560448201527f6e64696e6720726564656d7074696f6e7320666972737400000000000000000060648201526084016101e5565b6002810154600160a01b900463ffffffff1615610e995760405162461bcd60e51b815260206004820152604660248201527f536f757263652077616c6c6574206d7573742068616e646c6520616c6c20706560448201527f6e64696e67206d6f7665642066756e647320737765657020726571756573747360648201527f2066697273740000000000000000000000000000000000000000000000000000608482015260a4016101e5565b600381015415610eff5760405162461bcd60e51b815260206004820152602b60248201527f5461726765742077616c6c65747320636f6d6d69746d656e7420616c7265616460448201526a1e481cdd589b5a5d1d195960aa1b60648201526084016101e5565b600289015481546040517fdf07ce590000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163df07ce5991610f52918a908a9033908b906004016148f1565b60206040518083038186803b158015610f6a57600080fd5b505afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa29190614928565b6110145760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f742061206d656d626572206f662074686520736f60448201527f757263652077616c6c657400000000000000000000000000000000000000000060648201526084016101e5565b60006110218a8a8a611fb5565b905060008167ffffffffffffffff161161107d5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c6574204254432062616c616e6365206973207a65726f00000000000060448201526064016101e5565b601b8a01546000906110ba9063ffffffff600160a01b820416906110b59067ffffffffffffffff80871691600160c01b9004166129b3565b6129ee565b90506000811161110c5760405162461bcd60e51b815260206004820152601b60248201527f4e6f207461726765742077616c6c65747320617661696c61626c65000000000060448201526064016101e5565b8381146111815760405162461bcd60e51b815260206004820152603560248201527f5375626d6974746564207461726765742077616c6c65747320636f756e74206960448201527f73206f74686572207468616e206578706563746564000000000000000000000060648201526084016101e5565b6000805b858110156113845760008787838181106111a1576111a161494a565b90506020020160208101906111b69190614960565b90506001600160601b0319808216908e16141561123b5760405162461bcd60e51b815260206004820152603c60248201527f5375626d6974746564207461726765742077616c6c65742063616e6e6f74206260448201527f6520657175616c20746f2074686520736f757263652077616c6c65740000000060648201526084016101e5565b6001600160a01b038316606082901c116112bd5760405162461bcd60e51b815260206004820152603160248201527f5375626d6974746564207461726765742077616c6c657420627265616b73207460448201527f6865206578706563746564206f7264657200000000000000000000000000000060648201526084016101e5565b6001600160601b031981166000908152601d8f016020526040902060020154600190600160c01b900460ff1660058111156112fa576112fa614877565b1461136d5760405162461bcd60e51b815260206004820152602d60248201527f5375626d6974746564207461726765742077616c6c6574206d7573742062652060448201527f696e204c6976652073746174650000000000000000000000000000000000000060648201526084016101e5565b60601c91508061137c8161497b565b915050611185565b508585604051602001611398929190614996565b60408051601f1981840301815290829052805160209091012060038601556001600160601b03198c16907ffcab32b1dc365ef82ae9df4be019512ca536c191bd68f523b9f33d0c070e8d4a906113f3908990899033906149d7565b60405180910390a2505050505050505050505050565b600061145561141b60208501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a0492505050565b6114a15760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016101e5565b6114eb6114b160408501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ab492505050565b6115375760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016101e5565b61159a6115476020850185614a36565b61155460208601866147db565b61156160408801886147db565b61157160808a0160608b01614a36565b60405160200161158696959493929190614a60565b604051602081830303815290604052612b57565b90506116356115e96115af60408501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b7e92505050565b6115f384806147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869493925050506020860135612b8b565b6116a75760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016101e5565b6116f2846116b860408501856147db565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bc792505050565b9392505050565b60008061170584612f36565b9092509050823582148015611734575063ffffffff811661172c604085016020860161478d565b63ffffffff16145b6117a65760405162461bcd60e51b815260206004820152603f60248201527f4f7574626f756e64207472616e73616374696f6e20696e707574206d7573742060448201527f706f696e7420746f207468652077616c6c65742773206d61696e205554584f0060648201526084016101e5565b600160198601600085356117c0604088016020890161478d565b6040516020016117e792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790555050505050565b6000806000806118358560200151613011565b90925090506000611847836001614aa2565b905060008267ffffffffffffffff81111561186457611864614aba565b60405190808252806020026020018201604052801561188d578160200160208202803683370190505b50905060008367ffffffffffffffff8111156118ab576118ab614aba565b6040519080825280602002602001820160405280156118d4578160200160208202803683370190505b50905060005b848163ffffffff161015611b9f5760208901516000906118fa9086613028565b60208b015190915060009061191090878461308e565b9050600061191e8d83613158565b905080868563ffffffff16815181106119395761193961494a565b6001600160601b03199092166020928302919091019091015261195b82613318565b858563ffffffff16815181106119735761197361494a565b602002602001019067ffffffffffffffff16908167ffffffffffffffff1681525050848463ffffffff16815181106119ad576119ad61494a565b602002602001015167ffffffffffffffff168a6119ca9190614aa2565b99506040518060800160405280826bffffffffffffffffffffffff19168152602001868663ffffffff1681518110611a0457611a0461494a565b602002602001015167ffffffffffffffff1681526020014263ffffffff16815260200160016003811115611a3a57611a3a614877565b90528c516040805160208101929092526001600160e01b031960e088901b1690820152600d8f019060009060440160408051601f19818403018152918152815160209283012083528282019390935290820160002083518154928501519385015163ffffffff16600160e01b027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff909516600160a01b026001600160e01b0319909416606092831c1793909317939093169190911781559082015160018083018054909160ff1990911690836003811115611b1c57611b1c614877565b021790555050506001600160601b031981166000908152601d8e01602052604090206002018054600160a01b900463ffffffff16906014611b5c83614ad0565b91906101000a81548163ffffffff021916908363ffffffff160217905550508287611b879190614aa2565b96505050508080611b9790614ad0565b9150506118da565b506000611bac8588614b0a565b9050600085611bbb838a614838565b611bc59190614b1e565b90506000611bd38383614aa2565b905060005b87811015611cba57848181518110611bf257611bf261494a565b602002602001015167ffffffffffffffff168311158015611c36575081858281518110611c2157611c2161494a565b602002602001015167ffffffffffffffff1611155b611ca85760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206973206e6f742064697374726960448201527f6275746564206576656e6c79000000000000000000000000000000000000000060648201526084016101e5565b80611cb28161497b565b915050611bd8565b5084604051602001611ccc9190614b32565b60405160208183030381529060405280519060200120995050505050505050505b9250929050565b6001600160601b031982166000908152601d840160205260409020600280820154600160c01b900460ff166005811115611d3057611d30614877565b14611d895760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b600381015480611e015760405162461bcd60e51b815260206004820152602b60248201527f5461726765742077616c6c65747320636f6d6d69746d656e74206e6f7420737560448201527f626d69747465642079657400000000000000000000000000000000000000000060648201526084016101e5565b828114611e765760405162461bcd60e51b815260206004820152603160248201527f5461726765742077616c6c65747320646f6e277420636f72726573706f6e642060448201527f746f2074686520636f6d6d69746d656e7400000000000000000000000000000060648201526084016101e5565b60006001830155611e87858561338f565b5050505050565b6001600160601b031983166000908152601d850160205260409020600280820154600160c01b900460ff166005811115611eca57611eca614877565b14611f235760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b60028501546009860154600a870154835460405163d8dc404d60e01b81526001600160a01b039094169363d8dc404d93611f79936bffffffffffffffffffffffff9091169290913391908a908a90600401614b72565b600060405180830381600087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b50505050611e87858561343c565b6001600160601b031982166000908152601d8401602052604081206001015480156120b057808335611fed604086016020870161478d565b611ffd60608701604088016147c0565b60405160200161203a9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461209d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f206461746100000060448201526064016101e5565b6120ad60608401604085016147c0565b91505b509392505050565b6001600160601b031981166000908152601d830160205260409020600290810154600160c01b900460ff16908160058111156120f6576120f6614877565b1461214f5760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d75737420626520696e204d6f76696e6746756e647320737460448201526261746560e81b60648201526084016101e5565b612159838361338f565b505050565b6001600160601b031983166000908152601d8501602052604090206002810154600160c01b900460ff16600181600581111561219c5761219c614877565b14806121b9575060028160058111156121b7576121b7614877565b145b806121d5575060058160058111156121d3576121d3614877565b145b6122475760405162461bcd60e51b815260206004820152603960248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e6473206f72205465726d696e617465642073746174650000000000000060648201526084016101e5565b600181600581111561225b5761225b614877565b14806122785750600281600581111561227657612276614877565b145b15612315576002860154600b870154600c880154845460405163d8dc404d60e01b81526001600160a01b039094169363d8dc404d936122d993600160601b9091046bffffffffffffffffffffffff169290913391908b908b90600401614b72565b600060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b50505050612315868661343c565b505050505050565b600080600061232b84613011565b915050806001146123a45760405162461bcd60e51b815260206004820152603760248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d7560448201527f7374206861766520612073696e676c65206f757470757400000000000000000060648201526084016101e5565b60006123b08582613609565b90506123bc8682613158565b93506123c781613318565b925050509250929050565b604080516060810182526000808252602082018190529181018290526001600160601b031984166000908152601d8601602052604090206002810154909250600160c01b900460ff16600181600581111561242f5761242f614877565b148061244c5750600281600581111561244a5761244a614877565b145b6124be5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084016101e5565b6040805160608101825260008082526020820181905291810191909152600184015490925080156125be578085356124fc604088016020890161478d565b61250c6060890160408a016147c0565b6040516020016125499392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146125ac5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101e5565b6125bb36869003860186614bc1565b92505b5050935093915050565b60008060006125d686613011565b909250905060006125e8836001614aa2565b86519091506125f85760016125fb565b60025b60ff1682146126725760405162461bcd60e51b815260206004820152603d60248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d7560448201527f7374206861766520612070726f70657220696e7075747320636f756e7400000060648201526084016101e5565b60008060006126818a856137d4565b92509250925060008b600d01600085856040516020016126b892919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152918152815160209283012083529082019290925201600020905060018082015460ff1660038111156126f9576126f9614877565b146127555760405162461bcd60e51b815260206004820152602660248201527f53776565702072657175657374206d75737420626520696e2050656e64696e6760448201526520737461746560d01b60648201526084016101e5565b805460601b6001600160601b0319908116908a16146127dc5760405162461bcd60e51b815260206004820152602760248201527f537765657020726571756573742062656c6f6e677320746f20616e6f7468657260448201527f2077616c6c65740000000000000000000000000000000000000000000000000060648201526084016101e5565b60018101805460ff1916600217905580546128099067ffffffffffffffff600160a01b9091041689614aa2565b6001600160601b03198a166000908152601d8e01602052604090206002018054919950600160a01b90910463ffffffff169060146128468361488d565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000801b8a60000151146129a3576000806128898d612884868a614aa2565b6137d4565b508d519193509150821480156128ae57508063ffffffff168c6020015163ffffffff16145b6129205760405162461bcd60e51b815260206004820152603160248201527f5365636f6e6420696e707574206d75737420706f696e7420746f20746865207760448201527f616c6c65742773206d61696e205554584f00000000000000000000000000000060648201526084016101e5565b60408c01516129399067ffffffffffffffff168b614aa2565b995060018e6019016000848460405160200161296c92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff191691151591909117905550505b505050505050505b949350505050565b60006129bf8284614b0a565b156129cb5760016129ce565b60005b60ff166129db8385614b1e565b6129e59190614aa2565b90505b92915050565b60008183106129fd57816129e5565b5090919050565b6000806000612a1284613011565b9092509050801580612a25575060001982145b15612a34575060009392505050565b6000612a41836001614aa2565b905060005b82811015612aa75785518210612a625750600095945050505050565b6000612a6e8784613806565b9050600019811415612a87575060009695505050505050565b612a918184614aa2565b9250508080612a9f9061497b565b915050612a46565b5093519093149392505050565b6000806000612ac284613011565b9092509050801580612ad5575060001982145b15612ae4575060009392505050565b6000612af1836001614aa2565b905060005b82811015612aa75785518210612b125750600095945050505050565b6000612b1e8784613028565b9050600019811415612b37575060009695505050505050565b612b418184614aa2565b9250508080612b4f9061497b565b915050612af6565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000906129e8565b60008385148015612b9a575081155b8015612ba557508251155b15612bb2575060016129ab565b612bbe85848685613851565b95945050505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b158015612c2c57600080fd5b505afa158015612c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c649190614c34565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015612ca157600080fd5b505afa158015612cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd99190614c34565b9050600080612cef612cea876138f9565b61398e565b905083811415612d0157839150612d7f565b82811415612d1157829150612d7f565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016101e5565b6000612d8a876139b6565b9050600019811415612e045760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016101e5565b600119811415612e565760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016101e5565b600219811415612ea85760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016101e5565b6003880154612eb79084614c4d565b811015612f2c5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016101e5565b5050505050505050565b6000806000612f4484613011565b91505080600114612fbd5760405162461bcd60e51b815260206004820152602d60248201527f4f7574626f756e64207472616e73616374696f6e206d7573742068617665206160448201527f2073696e676c6520696e7075740000000000000000000000000000000000000060648201526084016101e5565b6000612fc98582613bbd565b9050612fd481613d72565b9350613008612fe282613d7f565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b92505050915091565b60008061301f836000613d8c565b91509150915091565b6000613035826009614aa2565b8351101561304657506000196129e8565b60008061305d85613058866008614aa2565b613d8c565b909250905060001982141561307857600019925050506129e8565b80613084836009614aa2565b612bbe9190614aa2565b6060816130aa57506040805160208101909152600081526116f2565b60006130b68385614aa2565b905083811180156130c8575080855110155b6131145760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101e5565b604051915082604083010160405282825283850182038460208701018481015b8082101561314d57815183830152602082019150613134565b505050509392505050565b60008061316483613f09565b905080516014146131dd5760405162461bcd60e51b815260206004820152602b60248201527f4f75747075742773207075626c6963206b65792068617368206d75737420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016101e5565b6131e88160006141a7565b9150600061320660088086516131fe9190614838565b86919061308e565b8051602091820120604080517f1976a91400000000000000000000000000000000000000000000000000000000818501526001600160601b031987166024820181905261222b60f21b60388301528251601a818403018152603a830184528051908601207f1600140000000000000000000000000000000000000000000000000000000000605a840152605d8301919091528251605181840301815260719092019092528051930192909220909250818314806132c257508083145b61330e5760405162461bcd60e51b815260206004820152601e60248201527f4f7574707574206d757374206265205032504b48206f7220503257504b48000060448201526064016101e5565b5050505092915050565b600080613324836141b6565b60c01c905060006129ab8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160601b031981166000818152601d8401602052604080822060028101805463ffffffff4216700100000000000000000000000000000000027fffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffff909116177803000000000000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b6001600160601b031981166000908152601d83016020526040902060016002820154600160c01b900460ff16600581111561347957613479614877565b14156134be57601b83018054600160a01b900463ffffffff1690601461349e8361488d565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b6002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff16780500000000000000000000000000000000000000000000000017905580546040516001600160601b0319841691907f9272a280b0f32f70b00ad0b546499c68e3ecc6f7bb7ef43491ec5d7b99bf69ef90600090a3601b83015460601b6001600160601b0319908116908316141561358357601b830180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916135d29160040190815260200190565b600060405180830381600087803b1580156135ec57600080fd5b505af1158015613600573d6000803e3d6000fd5b50505050505050565b606060008061361785613011565b90925090506000198214156136795760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016101e5565b8084106136c85760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016101e5565b6000806136d6846001614aa2565b905060005b8681101561375f576136ed8883613028565b92506000198314156137415760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101e5565b61374b8383614aa2565b9150806137578161497b565b9150506136db565b5061376a8782613028565b91506000198214156137be5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101e5565b6137c987828461308e565b979650505050505050565b600080806137e285856141a7565b92506137f1612fe286866141c2565b91506137fd8585613806565b90509250925092565b600080600061381585856141d9565b909250905060001982141561383057600019925050506129e8565b8061383c836025614aa2565b6138469190614aa2565b612bbe906004614aa2565b6000602084516138619190614b0a565b1561386e575060006129ab565b835161387c575060006129ab565b818560005b86518110156138ec57613895600284614b0a565b600114156138ba576138b36138ad8883016020015190565b8361421b565b91506138d3565b6138d0826138cb8984016020015190565b61421b565b91505b60019290921c916138e5602082614aa2565b9050613881565b5090931495945050505050565b6000806139078360486141a7565b60e81c9050600083604b815181106139215761392161494a565b016020015160f81c9050600061395583600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000613969600384614c6c565b60ff16905061397a81610100614d73565b6139849083614c4d565b9695505050505050565b60006129e87bffff000000000000000000000000000000000000000000000000000083614227565b6000605082516139c69190614b0a565b156139d45750600019919050565b506040805160808101909152605081526000908190815b8451811015613bb5576139ff858383614233565b8015613a1f57613a0f82846142c8565b613a1f5750600119949350505050565b6000613a2a836138f9565b9050613a3583612b57565b935080613b798560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115613b8c575060021995945050505050565b613b9f613b988261398e565b86906142f1565b9450613bae9050605082614aa2565b90506139eb565b505050919050565b6060600080613bcb85613011565b9092509050600019821415613c2d5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016101e5565b808410613c7c5760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016101e5565b600080613c8a846001614aa2565b905060005b86811015613d1357613ca18883613806565b9250600019831415613cf55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016101e5565b613cff8383614aa2565b915080613d0b8161497b565b915050613c8f565b50613d1e8782613806565b91506000198214156137be5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016101e5565b60208101516000906129e8565b60006129e88260206141a7565b6000806000613d9b858561434f565b905060ff8116613dcd576000858581518110613db957613db961494a565b016020015190935060f81c9150611ced9050565b83613dd9826001614d7f565b60ff16613de69190614aa2565b85511015613dfd5760001960009250925050611ced565b60008160ff1660021415613e4257613e37613e23613e1c876001614aa2565b88906141a7565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613ef9565b8160ff1660041415613e6c57613e5f612fe2613e1c876001614aa2565b63ffffffff169050613ef9565b8160ff1660081415613ef957613eec613e89613e1c876001614aa2565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090509250929050565b6060600082600881518110613f2057613f2061494a565b0160200151835160f89190911c9150613f3a826009614d7f565b60ff1614613f58575050604080516020810190915260008152919050565b82600981518110613f6b57613f6b61494a565b016020015160f81c6140095760028160ff161015613f99575050604080516020810190915260008152919050565b600083600a81518110613fae57613fae61494a565b016020015160f81c9050613fc3600283614c6c565b60ff1681141580613fe1575080602014158015613fe1575080601414155b15613ffd57505060408051602081019091526000815292915050565b6129ab84600b8361308e565b60006140168460086141a7565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156140f35783600b815181106140755761407561494a565b60209101015160f81c60141415806140ca57506140a0600285516140999190614838565b85906141a7565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156140e657505060408051602081019091526000815292915050565b6129ab84600c601461308e565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561419057836001855161414c9190614838565b8151811061415c5761415c61494a565b60209101015160f81c60871461418357505060408051602081019091526000815292915050565b6129ab84600b601461308e565b505050604080516020810190915260008152919050565b60006129e58383016020015190565b60006129e882826141a7565b60006129e56141d2836020614aa2565b84906141a7565b6000806141e7836025614aa2565b845110156141fc575060001990506000611ced565b60008061420e86613058876024614aa2565b9097909650945050505050565b60006129e583836143db565b60006129e58284614b1e565b815160006142418284614aa2565b90508281118015614253575080855110155b61429f5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101e5565b826020860101602085018382015b80831015612f2c5782518252602092830192909101906142ad565b6000806142d484614409565b90508281146142e75760009150506129e8565b5060019392505050565b60006142fd8284614aa2565b9050828110156129e85760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016101e5565b60008282815181106143635761436361494a565b60209101015160f81c60ff141561437c575060086129e8565b82828151811061438e5761438e61494a565b60209101015160f81c60fe14156143a7575060046129e8565b8282815181106143b9576143b961494a565b60209101015160f81c60fd14156143d2575060026129e8565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906129e8565b60006080828403121561442857600080fd5b50919050565b60006060828403121561442857600080fd5b80356001600160601b03198116811461445857600080fd5b919050565b600080600080600060e0868803121561447557600080fd5b85359450602086013567ffffffffffffffff8082111561449457600080fd5b6144a089838a01614416565b955060408801359150808211156144b657600080fd5b506144c38882890161442e565b9350506144d3876060880161442e565b91506144e160c08701614440565b90509295509295909350565b60008083601f8401126144ff57600080fd5b50813567ffffffffffffffff81111561451757600080fd5b6020830191508360208260051b8501011115611ced57600080fd5b6000806000806060858703121561454857600080fd5b8435935061455860208601614440565b9250604085013567ffffffffffffffff81111561457457600080fd5b614580878288016144ed565b95989497509550505050565b600080600060a084860312156145a157600080fd5b833592506145b160208501614440565b91506137fd856040860161442e565b803563ffffffff8116811461445857600080fd5b6000806000806000608086880312156145ec57600080fd5b8535945060208601359350614603604087016145c0565b9250606086013567ffffffffffffffff81111561461f57600080fd5b61462b888289016144ed565b969995985093965092949392505050565b6000806040838503121561464f57600080fd5b8235915061465f60208401614440565b90509250929050565b60008060008060c0858703121561467e57600080fd5b84359350602085013567ffffffffffffffff8082111561469d57600080fd5b6146a988838901614416565b945060408701359150808211156146bf57600080fd5b506146cc8782880161442e565b9250506146dc866060870161442e565b905092959194509250565b600080600080600080600080610100898b03121561470457600080fd5b8835975061471460208a01614440565b96506147238a60408b0161442e565b955060a089013567ffffffffffffffff8082111561474057600080fd5b61474c8c838d016144ed565b909750955060c08b0135945060e08b013591508082111561476c57600080fd5b506147798b828c016144ed565b999c989b5096995094979396929594505050565b60006020828403121561479f57600080fd5b6129e5826145c0565b803567ffffffffffffffff8116811461445857600080fd5b6000602082840312156147d257600080fd5b6129e5826147a8565b6000808335601e198436030181126147f257600080fd5b83018035915067ffffffffffffffff82111561480d57600080fd5b602001915036819003821315611ced57600080fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561484a5761484a614822565b500390565b600063ffffffff80831681851680830382111561486e5761486e614822565b01949350505050565b634e487b7160e01b600052602160045260246000fd5b600063ffffffff8216806148a3576148a3614822565b6000190192915050565b8183526000602080850194508260005b858110156148e65763ffffffff6148d3836145c0565b16875295820195908201906001016148bd565b509495945050505050565b85815260806020820152600061490b6080830186886148ad565b6001600160a01b0394909416604083015250606001529392505050565b60006020828403121561493a57600080fd5b815180151581146116f257600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561497257600080fd5b6129e582614440565b600060001982141561498f5761498f614822565b5060010190565b60008184825b858110156149cc576001600160601b03196149b683614440565b168352602092830192919091019060010161499c565b509095945050505050565b6040808252810183905260008460608301825b86811015614a19576001600160601b0319614a0484614440565b168252602092830192909101906001016149ea565b5080925050506001600160a01b0383166020830152949350505050565b600060208284031215614a4857600080fd5b81356001600160e01b0319811681146116f257600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60008219821115614ab557614ab5614822565b500190565b634e487b7160e01b600052604160045260246000fd5b600063ffffffff80831681811415614aea57614aea614822565b6001019392505050565b634e487b7160e01b600052601260045260246000fd5b600082614b1957614b19614af4565b500690565b600082614b2d57614b2d614af4565b500490565b815160009082906020808601845b83811015614b665781516001600160601b03191685529382019390820190600101614b40565b50929695505050505050565b6bffffffffffffffffffffffff871681528560208201526001600160a01b038516604082015283606082015260a060808201526000614bb560a0830184866148ad565b98975050505050505050565b600060608284031215614bd357600080fd5b6040516060810181811067ffffffffffffffff82111715614c0457634e487b7160e01b600052604160045260246000fd5b60405282358152614c17602084016145c0565b6020820152614c28604084016147a8565b60408201529392505050565b600060208284031215614c4657600080fd5b5051919050565b6000816000190483118215151615614c6757614c67614822565b500290565b600060ff821660ff841680821015614c8657614c86614822565b90039392505050565b600181815b80851115614cca578160001904821115614cb057614cb0614822565b80851615614cbd57918102915b93841c9390800290614c94565b509250929050565b600082614ce1575060016129e8565b81614cee575060006129e8565b8160018114614d045760028114614d0e57614d2a565b60019150506129e8565b60ff841115614d1f57614d1f614822565b50506001821b6129e8565b5060208310610133831016604e8410600b8410161715614d4d575081810a6129e8565b614d578383614c8f565b8060001904821115614d6b57614d6b614822565b029392505050565b60006129e58383614cd2565b600060ff821660ff84168060ff03821115614d9c57614d9c614822565b01939250505056fea26469706673582212206e07a4192facd8aa538152a6ab96b8b81ebe91d4d86e5a3a29a5d093dad4f84264736f6c63430008090033",
|
|
136
|
+
"linkReferences": {},
|
|
137
|
+
"deployedLinkReferences": {}
|
|
138
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "OutboundTx",
|
|
4
|
+
"sourceName": "contracts/bridge/Redemption.sol",
|
|
5
|
+
"abi": [],
|
|
6
|
+
"bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209d7e3fec8f9b77ffe338dfbed650ad6f5078025f536f0a5a99ce378dd79a8f4564736f6c63430008090033",
|
|
7
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209d7e3fec8f9b77ffe338dfbed650ad6f5078025f536f0a5a99ce378dd79a8f4564736f6c63430008090033",
|
|
8
|
+
"linkReferences": {},
|
|
9
|
+
"deployedLinkReferences": {}
|
|
10
|
+
}
|