diff --git a/build/contracts/BEMultiSigWallet.json b/build/contracts/BEMultiSigWallet.json index bcc7467..2208994 100644 --- a/build/contracts/BEMultiSigWallet.json +++ b/build/contracts/BEMultiSigWallet.json @@ -233,8 +233,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [], @@ -247,8 +246,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [], @@ -261,8 +259,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [], @@ -275,8 +272,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [], @@ -289,8 +285,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -314,8 +309,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -334,8 +328,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -359,8 +352,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -379,8 +371,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -422,8 +413,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [], @@ -436,8 +426,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -468,8 +457,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -506,13 +494,11 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "stateMutability": "payable", - "type": "receive", - "payable": true + "type": "receive" }, { "inputs": [ @@ -531,8 +517,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -551,8 +536,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -571,8 +555,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -591,8 +574,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -611,8 +593,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -631,8 +612,7 @@ } ], "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -671,8 +651,7 @@ } ], "stateMutability": "pure", - "type": "function", - "constant": true + "type": "function" }, { "inputs": [ @@ -782,8 +761,7 @@ "name": "execute", "outputs": [], "stateMutability": "payable", - "type": "function", - "payable": true + "type": "function" }, { "inputs": [ @@ -812,9 +790,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"confirmers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ScheduleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ScheduleExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CONFIRM_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"}],\"name\":\"changeDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"},\"RequirementChange(uint256,uint256)\":{\"details\":\"Emitted when the number of required confimations is modified.\"},\"ScheduleAdded(bytes32)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"ScheduleExecuted(bytes32)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'proposer' role.\"},\"changeDelay(uint256)\":{\"details\":\"Changes the minimum wallet duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the wallet itself. This can only be achieved by scheduling and later executing an operation where the wallet is the target and the data is the ABI-encoded call to this function.\"},\"changeRequirement(uint256)\":{\"details\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\",\"params\":{\"_required\":\"Number of required confirmations.\"}},\"confirmTransaction(bytes32[])\":{\"details\":\"Allows an executor to confirm multiple transactions.\"},\"constructor\":{\"details\":\"Initializes the contract with a given `minDelay`.\"},\"execute(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeConfirmation(bytes32[])\":{\"details\":\"Allows an executor to revoke multiple confirmations for a transaction.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"schedule(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {ScheduleAdded} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"MultiSigWallet with timelocker\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/BEMultiSigWallet.sol\":\"BEMultiSigWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/core/BEMultiSigWallet.sol\":{\"keccak256\":\"0x2fc77b3ec110d7bfbc59236f80c6584290b08c446fcb0897a5fd8f683a513d51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f57f605ae9513f006d1fa9e0051d6074296f8913410b1bfea160798cc128584\",\"dweb:/ipfs/QmSzfz6vLB8kNRw2cJ5XHynM9Bac9K7d5Jkn3yu2N8LtoR\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620040f9380380620040f98339818101604052810190620000379190620008fb565b620000697f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca580620003ba60201b60201c565b620000bb7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620003ba60201b60201c565b6200010d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620003ba60201b60201c565b6200015f7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620003ba60201b60201c565b620001a07f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620001946200041d60201b60201c565b6200042560201b60201c565b620001d27f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5306200042560201b60201c565b60005b835181101562000242576200022e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc18583815181106200021a5762000219620009e0565b5b60200260200101516200042560201b60201c565b806200023a9062000a3e565b9050620001d5565b5060005b8251811015620002b3576200029f7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f8483815181106200028b576200028a620009e0565b5b60200260200101516200042560201b60201c565b80620002ab9062000a3e565b905062000246565b5060005b81518110156200032457620003107fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63838381518110620002fc57620002fb620009e0565b5b60200260200101516200042560201b60201c565b806200031c9062000a3e565b9050620002b7565b50846004819055507f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560006004546040516200036292919062000aea565b60405180910390a1836005819055507fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e6000600554604051620003a792919062000aea565b60405180910390a1505050505062000b17565b6000620003cd836200043b60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b6200043782826200045a60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b620004718282620004a260201b620014d71760201c565b6200049d81600160008581526020019081526020016000206200059360201b620015b71790919060201c565b505050565b620004b48282620005cb60201b60201c565b6200058f57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005346200041d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620005c3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200063560201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000620006498383620006af60201b60201c565b620006a4578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620006a9565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620006fb81620006e6565b81146200070757600080fd5b50565b6000815190506200071b81620006f0565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620007718262000726565b810181811067ffffffffffffffff8211171562000793576200079262000737565b5b80604052505050565b6000620007a8620006d2565b9050620007b6828262000766565b919050565b600067ffffffffffffffff821115620007d957620007d862000737565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200081c82620007ef565b9050919050565b6200082e816200080f565b81146200083a57600080fd5b50565b6000815190506200084e8162000823565b92915050565b60006200086b6200086584620007bb565b6200079c565b90508083825260208201905060208402830185811115620008915762000890620007ea565b5b835b81811015620008be5780620008a988826200083d565b84526020840193505060208101905062000893565b5050509392505050565b600082601f830112620008e057620008df62000721565b5b8151620008f284826020860162000854565b91505092915050565b600080600080600060a086880312156200091a5762000919620006dc565b5b60006200092a888289016200070a565b95505060206200093d888289016200070a565b945050604086015167ffffffffffffffff811115620009615762000960620006e1565b5b6200096f88828901620008c8565b935050606086015167ffffffffffffffff811115620009935762000992620006e1565b5b620009a188828901620008c8565b925050608086015167ffffffffffffffff811115620009c557620009c4620006e1565b5b620009d388828901620008c8565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a4b82620006e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000a815762000a8062000a0f565b5b600182019050919050565b6000819050919050565b6000819050919050565b600062000ac162000abb62000ab58462000a8c565b62000a96565b620006e6565b9050919050565b62000ad38162000aa0565b82525050565b62000ae481620006e6565b82525050565b600060408201905062000b01600083018562000ac8565b62000b10602083018462000ad9565b9392505050565b6135d28062000b276000396000f3fe6080604052600436106101d15760003560e01c806383443de2116100f7578063c4d252f511610095578063d45c443511610064578063d45c443514610703578063d547741f14610740578063dc8452cd14610769578063f156883b14610794576101d8565b8063c4d252f514610649578063c63c4e9b14610672578063ca15c8731461069d578063d2082330146106da576101d8565b806391d14854116100d157806391d148541461058d578063a217fddf146105ca578063ba51a6df146105f5578063c3a6b1471461061e576101d8565b806383443de2146104fc5780638f61f4f5146105255780639010d07c14610550576101d8565b80632ab0f5291161016f5780635037ec621161013e5780635037ec6214610430578063584b153e146104595780636486aa51146104965780636a2c3723146104d3576101d8565b80632ab0f529146103645780632f2ff15d146103a157806331d50750146103ca57806336568abe14610407576101d8565b80630d3cf6fc116101ab5780630d3cf6fc1461028257806313bc9f20146102ad578063248a9ca3146102ea57806325b2060e14610327576101d8565b806301ffc9a7146101dd57806307bd02651461021a5780630c4ecab414610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612052565b6107b0565b604051610211919061209a565b60405180910390f35b34801561022657600080fd5b5061022f61082a565b60405161023c91906120ce565b60405180910390f35b34801561025157600080fd5b5061026c60048036038101906102679190612173565b61084e565b604051610279919061209a565b60405180910390f35b34801561028e57600080fd5b5061029761087d565b6040516102a491906120ce565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906121b3565b6108a1565b6040516102e1919061209a565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c91906121b3565b6108c7565b60405161031e91906120ce565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906122f1565b6108e6565b60405161035b91906120ce565b60405180910390f35b34801561037057600080fd5b5061038b600480360381019061038691906121b3565b61092b565b604051610398919061209a565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612173565b610940565b005b3480156103d657600080fd5b506103f160048036038101906103ec91906121b3565b610969565b6040516103fe919061209a565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190612173565b61097d565b005b34801561043c57600080fd5b5061045760048036038101906104529190612403565b610a00565b005b34801561046557600080fd5b50610480600480360381019061047b91906121b3565b610ab3565b60405161048d919061209a565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906121b3565b610ac8565b6040516104ca919061209a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612486565b610bd5565b005b34801561050857600080fd5b50610523600480360381019061051e91906124d3565b610d6f565b005b34801561053157600080fd5b5061053a610e99565b60405161054791906120ce565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906125c2565b610ebd565b6040516105849190612611565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612173565b610eec565b6040516105c1919061209a565b60405180910390f35b3480156105d657600080fd5b506105df610f56565b6040516105ec91906120ce565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612403565b610f5d565b005b34801561062a57600080fd5b50610633611010565b60405161064091906120ce565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906121b3565b611034565b005b34801561067e57600080fd5b50610687611106565b604051610694919061263b565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf91906121b3565b61110c565b6040516106d1919061263b565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612486565b611130565b005b34801561070f57600080fd5b5061072a600480360381019061072591906121b3565b6112ca565b604051610737919061263b565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612173565b6112e7565b005b34801561077557600080fd5b5061077e611310565b60405161078b919061263b565b60405180910390f35b6107ae60048036038101906107a991906122f1565b611316565b005b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108235750610822826115e7565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6000806108ad836112ca565b90506001811180156108bf5750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b6000888888888888888860405160200161090798979695949392919061290f565b60405160208183030381529060405280519060200120905098975050505050505050565b60006001610938836112ca565b149050919050565b610949826108c7565b61095a81610955611661565b611669565b6109648383611706565b505050565b600080610975836112ca565b119050919050565b610985611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e990612a00565b60405180910390fd5b6109fc828261173a565b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6590612a92565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610aa1929190612ab2565b60405180910390a18060048190555050565b60006001610ac0836112ca565b119050919050565b600080600090506000610afa7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361110c565b905060005b81811015610bcc57600360008681526020019081526020016000206000610b467fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6384610ebd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ba357600183610ba09190612b0a565b92505b600554831415610bb95760019350505050610bd0565b8080610bc490612b60565b915050610aff565b5050505b919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610c01816000610eec565b610c1757610c1681610c11611661565b611669565b5b60005b83839050811015610d1957610c47848483818110610c3b57610c3a612ba9565b5b90506020020135610ab3565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90612c4a565b60405180910390fd5b600060036000868685818110610c9f57610c9e612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610d1290612b60565b9050610c1a565b503373ffffffffffffffffffffffffffffffffffffffff167f05582fcff26851c2d2cf9fe1f0b6782edb93a87d5b1b517d9ec1eebd84375b608484604051610d62929190612cd7565b60405180910390a2505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610d9b816000610eec565b610db157610db081610dab611661565b611669565b5b878790508a8a905014610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612d6d565b60405180910390fd5b858590508a8a905014610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612d6d565b60405180910390fd5b6000610e538b8b8b8b8b8b8b8b6108e6565b9050610e5f818461176e565b807f53f5ffe85e69f17f4b05cdb4a95086892fb357472730cf78aff70f161564778360405160405180910390a25050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b6000610ee4826001600086815260200190815260200160002061182390919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc290612a92565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e60055482604051610ffe929190612ab2565b60405180910390a18060058190555050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f81565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1611060816000610eec565b6110765761107581611070611661565b611669565b5b61107f82610ab3565b6110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612dff565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b60006111296001600084815260200190815260200160002061183d565b9050919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f61115c816000610eec565b611172576111718161116c611661565b611669565b5b60005b83839050811015611274576111a284848381811061119657611195612ba9565b5b90506020020135610ab3565b6111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612c4a565b60405180910390fd5b6001600360008686858181106111fa576111f9612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061126d90612b60565b9050611175565b503373ffffffffffffffffffffffffffffffffffffffff167f74c16db4231424224fbb654025262461d77c15374fad9e8799b65ccf23bdffa884846040516112bd929190612cd7565b60405180910390a2505050565b600060026000838152602001908152602001600020549050919050565b6112f0826108c7565b611301816112fc611661565b611669565b61130b838361173a565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611342816000610eec565b6113585761135781611352611661565b611669565b5b8686905089899050146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612d6d565b60405180910390fd5b8484905089899050146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612d6d565b60405180910390fd5b60006113fa8a8a8a8a8a8a8a8a6108e6565b90506114068185611852565b60005b8a8a9050811015611494576114838b8b8381811061142a57611429612ba9565b5b905060200201602081019061143f9190612e1f565b8a8a8481811061145257611451612ba9565b5b9050602002013589898581811061146c5761146b612ba9565b5b905060200281019061147e9190612e5b565b61193b565b8061148d90612b60565b9050611409565b5061149e816119f2565b807fba9b5086e80f9b5280dc213cdd4a1e7e413540c6d24e73b6dc6e2044aab95b0c60405160405180910390a250505050505050505050565b6114e18282610eec565b6115b357600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611558611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006115df836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611a56565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061165a575061165982611ac6565b5b9050919050565b600033905090565b6116738282610eec565b611702576116988173ffffffffffffffffffffffffffffffffffffffff166014611b30565b6116a68360001c6020611b30565b6040516020016116b7929190612fd0565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f99190613043565b60405180910390fd5b5050565b61171082826114d7565b61173581600160008581526020019081526020016000206115b790919063ffffffff16565b505050565b6117448282611d6c565b6117698160016000858152602001908152602001600020611e4d90919063ffffffff16565b505050565b61177782610969565b156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906130d7565b60405180910390fd5b6004548110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613169565b60405180910390fd5b80426118089190612b0a565b60026000848152602001908152602001600020819055505050565b60006118328360000183611e7d565b60001c905092915050565b600061184b82600001611ea8565b9050919050565b61185b826108a1565b61189a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611891906131fb565b60405180910390fd5b6118a382610ac8565b6118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99061328d565b60405180910390fd5b6000801b8114806118f857506118f78161092b565b5b611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e9061331f565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff1684848460405161196592919061336f565b60006040518083038185875af1925050503d80600081146119a2576040519150601f19603f3d011682016040523d82523d6000602084013e6119a7565b606091505b50509050806119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906133fa565b60405180910390fd5b5050505050565b6119fb816108a1565b611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a31906131fb565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b6000611a628383611eb9565b611abb578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611ac0565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611b43919061341a565b611b4d9190612b0a565b67ffffffffffffffff811115611b6657611b65613474565b5b6040519080825280601f01601f191660200182016040528015611b985781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611bd057611bcf612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c3457611c33612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611c74919061341a565b611c7e9190612b0a565b90505b6001811115611d1e577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611cc057611cbf612ba9565b5b1a60f81b828281518110611cd757611cd6612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611d17906134a3565b9050611c81565b5060008414611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613519565b60405180910390fd5b8091505092915050565b611d768282610eec565b15611e4957600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611dee611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611e75836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611edc565b905092915050565b6000826000018281548110611e9557611e94612ba9565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611fe4576000600182611f0e9190613539565b9050600060018660000180549050611f269190613539565b9050818114611f95576000866000018281548110611f4757611f46612ba9565b5b9060005260206000200154905080876000018481548110611f6b57611f6a612ba9565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480611fa957611fa861356d565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611fea565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61202f81611ffa565b811461203a57600080fd5b50565b60008135905061204c81612026565b92915050565b60006020828403121561206857612067611ff0565b5b60006120768482850161203d565b91505092915050565b60008115159050919050565b6120948161207f565b82525050565b60006020820190506120af600083018461208b565b92915050565b6000819050919050565b6120c8816120b5565b82525050565b60006020820190506120e360008301846120bf565b92915050565b6120f2816120b5565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061214082612115565b9050919050565b61215081612135565b811461215b57600080fd5b50565b60008135905061216d81612147565b92915050565b6000806040838503121561218a57612189611ff0565b5b600061219885828601612100565b92505060206121a98582860161215e565b9150509250929050565b6000602082840312156121c9576121c8611ff0565b5b60006121d784828501612100565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612205576122046121e0565b5b8235905067ffffffffffffffff811115612222576122216121e5565b5b60208301915083602082028301111561223e5761223d6121ea565b5b9250929050565b60008083601f84011261225b5761225a6121e0565b5b8235905067ffffffffffffffff811115612278576122776121e5565b5b602083019150836020820283011115612294576122936121ea565b5b9250929050565b60008083601f8401126122b1576122b06121e0565b5b8235905067ffffffffffffffff8111156122ce576122cd6121e5565b5b6020830191508360208202830111156122ea576122e96121ea565b5b9250929050565b60008060008060008060008060a0898b03121561231157612310611ff0565b5b600089013567ffffffffffffffff81111561232f5761232e611ff5565b5b61233b8b828c016121ef565b9850985050602089013567ffffffffffffffff81111561235e5761235d611ff5565b5b61236a8b828c01612245565b9650965050604089013567ffffffffffffffff81111561238d5761238c611ff5565b5b6123998b828c0161229b565b945094505060606123ac8b828c01612100565b92505060806123bd8b828c01612100565b9150509295985092959890939650565b6000819050919050565b6123e0816123cd565b81146123eb57600080fd5b50565b6000813590506123fd816123d7565b92915050565b60006020828403121561241957612418611ff0565b5b6000612427848285016123ee565b91505092915050565b60008083601f840112612446576124456121e0565b5b8235905067ffffffffffffffff811115612463576124626121e5565b5b60208301915083602082028301111561247f5761247e6121ea565b5b9250929050565b6000806020838503121561249d5761249c611ff0565b5b600083013567ffffffffffffffff8111156124bb576124ba611ff5565b5b6124c785828601612430565b92509250509250929050565b600080600080600080600080600060c08a8c0312156124f5576124f4611ff0565b5b60008a013567ffffffffffffffff81111561251357612512611ff5565b5b61251f8c828d016121ef565b995099505060208a013567ffffffffffffffff81111561254257612541611ff5565b5b61254e8c828d01612245565b975097505060408a013567ffffffffffffffff81111561257157612570611ff5565b5b61257d8c828d0161229b565b955095505060606125908c828d01612100565b93505060806125a18c828d01612100565b92505060a06125b28c828d016123ee565b9150509295985092959850929598565b600080604083850312156125d9576125d8611ff0565b5b60006125e785828601612100565b92505060206125f8858286016123ee565b9150509250929050565b61260b81612135565b82525050565b60006020820190506126266000830184612602565b92915050565b612635816123cd565b82525050565b6000602082019050612650600083018461262c565b92915050565b600082825260208201905092915050565b6000819050919050565b61267a81612135565b82525050565b600061268c8383612671565b60208301905092915050565b60006126a7602084018461215e565b905092915050565b6000602082019050919050565b60006126c88385612656565b93506126d382612667565b8060005b8581101561270c576126e98284612698565b6126f38882612680565b97506126fe836126af565b9250506001810190506126d7565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b82818337600083830152505050565b600061274a8385612719565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561277d5761277c61272a565b5b60208302925061278e83858461272f565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b60006127e383856127b5565b93506127f083858461272f565b6127f9836127c6565b840190509392505050565b60006128118484846127d7565b90509392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261284657612845612824565b5b83810192508235915060208301925067ffffffffffffffff82111561286e5761286d61281a565b5b6001820236038413156128845761288361281f565b5b509250929050565b6000602082019050919050565b60006128a5838561279a565b9350836020840285016128b7846127ab565b8060005b878110156128fd5784840389526128d28284612829565b6128dd868284612804565b95506128e88461288c565b935060208b019a5050506001810190506128bb565b50829750879450505050509392505050565b600060a082019050818103600083015261292a818a8c6126bc565b9050818103602083015261293f81888a61273e565b90508181036040830152612954818688612899565b905061296360608301856120bf565b61297060808301846120bf565b9998505050505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006129ea602f8361297d565b91506129f58261298e565b604082019050919050565b60006020820190508181036000830152612a19816129dd565b9050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612a7c60278361297d565b9150612a8782612a20565b604082019050919050565b60006020820190508181036000830152612aab81612a6f565b9050919050565b6000604082019050612ac7600083018561262c565b612ad4602083018461262c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b15826123cd565b9150612b20836123cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b5557612b54612adb565b5b828201905092915050565b6000612b6b826123cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b9e57612b9d612adb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612c3460318361297d565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b600082825260208201905092915050565b6000612c878385612c6a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612cba57612cb961272a565b5b602083029250612ccb83858461272f565b82840190509392505050565b60006020820190508181036000830152612cf2818486612c7b565b90509392505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5760218361297d565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b6000612de9602f8361297d565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b600060208284031215612e3557612e34611ff0565b5b6000612e438482850161215e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612e7857612e77612e4c565b5b80840192508235915067ffffffffffffffff821115612e9a57612e99612e51565b5b602083019250600182023603831315612eb657612eb5612e56565b5b509250929050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612eff601783612ebe565b9150612f0a82612ec9565b601782019050919050565b600081519050919050565b60005b83811015612f3e578082015181840152602081019050612f23565b83811115612f4d576000848401525b50505050565b6000612f5e82612f15565b612f688185612ebe565b9350612f78818560208601612f20565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612fba601183612ebe565b9150612fc582612f84565b601182019050919050565b6000612fdb82612ef2565b9150612fe78285612f53565b9150612ff282612fad565b9150612ffe8284612f53565b91508190509392505050565b600061301582612f15565b61301f818561297d565b935061302f818560208601612f20565b613038816127c6565b840191505092915050565b6000602082019050818103600083015261305d818461300a565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b60006130c1602d8361297d565b91506130cc82613065565b604082019050919050565b600060208201905081810360008301526130f0816130b4565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b600061315360248361297d565b915061315e826130f7565b604082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b60006131e560288361297d565b91506131f082613189565b604082019050919050565b60006020820190508181036000830152613214816131d8565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b6000613277603c8361297d565b91506132828261321b565b604082019050919050565b600060208201905081810360008301526132a68161326a565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b600061330960248361297d565b9150613314826132ad565b604082019050919050565b60006020820190508181036000830152613338816132fc565b9050919050565b600081905092915050565b6000613356838561333f565b935061336383858461272f565b82840190509392505050565b600061337c82848661334a565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b60006133e460318361297d565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b6000613425826123cd565b9150613430836123cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346957613468612adb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006134ae826123cd565b915060008214156134c2576134c1612adb565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061350360208361297d565b915061350e826134cd565b602082019050919050565b60006020820190508181036000830152613532816134f6565b9050919050565b6000613544826123cd565b915061354f836123cd565b92508282101561356257613561612adb565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212205e3e42e7cdfc04f876c744cb261b27a2a34f3fad525eaab8e9f01efbe58f2afa64736f6c634300080a0033", - "deployedBytecode": "0x6080604052600436106101d15760003560e01c806383443de2116100f7578063c4d252f511610095578063d45c443511610064578063d45c443514610703578063d547741f14610740578063dc8452cd14610769578063f156883b14610794576101d8565b8063c4d252f514610649578063c63c4e9b14610672578063ca15c8731461069d578063d2082330146106da576101d8565b806391d14854116100d157806391d148541461058d578063a217fddf146105ca578063ba51a6df146105f5578063c3a6b1471461061e576101d8565b806383443de2146104fc5780638f61f4f5146105255780639010d07c14610550576101d8565b80632ab0f5291161016f5780635037ec621161013e5780635037ec6214610430578063584b153e146104595780636486aa51146104965780636a2c3723146104d3576101d8565b80632ab0f529146103645780632f2ff15d146103a157806331d50750146103ca57806336568abe14610407576101d8565b80630d3cf6fc116101ab5780630d3cf6fc1461028257806313bc9f20146102ad578063248a9ca3146102ea57806325b2060e14610327576101d8565b806301ffc9a7146101dd57806307bd02651461021a5780630c4ecab414610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612052565b6107b0565b604051610211919061209a565b60405180910390f35b34801561022657600080fd5b5061022f61082a565b60405161023c91906120ce565b60405180910390f35b34801561025157600080fd5b5061026c60048036038101906102679190612173565b61084e565b604051610279919061209a565b60405180910390f35b34801561028e57600080fd5b5061029761087d565b6040516102a491906120ce565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906121b3565b6108a1565b6040516102e1919061209a565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c91906121b3565b6108c7565b60405161031e91906120ce565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906122f1565b6108e6565b60405161035b91906120ce565b60405180910390f35b34801561037057600080fd5b5061038b600480360381019061038691906121b3565b61092b565b604051610398919061209a565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612173565b610940565b005b3480156103d657600080fd5b506103f160048036038101906103ec91906121b3565b610969565b6040516103fe919061209a565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190612173565b61097d565b005b34801561043c57600080fd5b5061045760048036038101906104529190612403565b610a00565b005b34801561046557600080fd5b50610480600480360381019061047b91906121b3565b610ab3565b60405161048d919061209a565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906121b3565b610ac8565b6040516104ca919061209a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612486565b610bd5565b005b34801561050857600080fd5b50610523600480360381019061051e91906124d3565b610d6f565b005b34801561053157600080fd5b5061053a610e99565b60405161054791906120ce565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906125c2565b610ebd565b6040516105849190612611565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612173565b610eec565b6040516105c1919061209a565b60405180910390f35b3480156105d657600080fd5b506105df610f56565b6040516105ec91906120ce565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612403565b610f5d565b005b34801561062a57600080fd5b50610633611010565b60405161064091906120ce565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906121b3565b611034565b005b34801561067e57600080fd5b50610687611106565b604051610694919061263b565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf91906121b3565b61110c565b6040516106d1919061263b565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612486565b611130565b005b34801561070f57600080fd5b5061072a600480360381019061072591906121b3565b6112ca565b604051610737919061263b565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612173565b6112e7565b005b34801561077557600080fd5b5061077e611310565b60405161078b919061263b565b60405180910390f35b6107ae60048036038101906107a991906122f1565b611316565b005b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108235750610822826115e7565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6000806108ad836112ca565b90506001811180156108bf5750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b6000888888888888888860405160200161090798979695949392919061290f565b60405160208183030381529060405280519060200120905098975050505050505050565b60006001610938836112ca565b149050919050565b610949826108c7565b61095a81610955611661565b611669565b6109648383611706565b505050565b600080610975836112ca565b119050919050565b610985611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e990612a00565b60405180910390fd5b6109fc828261173a565b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6590612a92565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610aa1929190612ab2565b60405180910390a18060048190555050565b60006001610ac0836112ca565b119050919050565b600080600090506000610afa7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6361110c565b905060005b81811015610bcc57600360008681526020019081526020016000206000610b467fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6384610ebd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ba357600183610ba09190612b0a565b92505b600554831415610bb95760019350505050610bd0565b8080610bc490612b60565b915050610aff565b5050505b919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610c01816000610eec565b610c1757610c1681610c11611661565b611669565b5b60005b83839050811015610d1957610c47848483818110610c3b57610c3a612ba9565b5b90506020020135610ab3565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90612c4a565b60405180910390fd5b600060036000868685818110610c9f57610c9e612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610d1290612b60565b9050610c1a565b503373ffffffffffffffffffffffffffffffffffffffff167f05582fcff26851c2d2cf9fe1f0b6782edb93a87d5b1b517d9ec1eebd84375b608484604051610d62929190612cd7565b60405180910390a2505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610d9b816000610eec565b610db157610db081610dab611661565b611669565b5b878790508a8a905014610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612d6d565b60405180910390fd5b858590508a8a905014610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612d6d565b60405180910390fd5b6000610e538b8b8b8b8b8b8b8b6108e6565b9050610e5f818461176e565b807f53f5ffe85e69f17f4b05cdb4a95086892fb357472730cf78aff70f161564778360405160405180910390a25050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b6000610ee4826001600086815260200190815260200160002061182390919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc290612a92565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e60055482604051610ffe929190612ab2565b60405180910390a18060058190555050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f81565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1611060816000610eec565b6110765761107581611070611661565b611669565b5b61107f82610ab3565b6110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612dff565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b60006111296001600084815260200190815260200160002061183d565b9050919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f61115c816000610eec565b611172576111718161116c611661565b611669565b5b60005b83839050811015611274576111a284848381811061119657611195612ba9565b5b90506020020135610ab3565b6111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612c4a565b60405180910390fd5b6001600360008686858181106111fa576111f9612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061126d90612b60565b9050611175565b503373ffffffffffffffffffffffffffffffffffffffff167f74c16db4231424224fbb654025262461d77c15374fad9e8799b65ccf23bdffa884846040516112bd929190612cd7565b60405180910390a2505050565b600060026000838152602001908152602001600020549050919050565b6112f0826108c7565b611301816112fc611661565b611669565b61130b838361173a565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611342816000610eec565b6113585761135781611352611661565b611669565b5b8686905089899050146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612d6d565b60405180910390fd5b8484905089899050146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612d6d565b60405180910390fd5b60006113fa8a8a8a8a8a8a8a8a6108e6565b90506114068185611852565b60005b8a8a9050811015611494576114838b8b8381811061142a57611429612ba9565b5b905060200201602081019061143f9190612e1f565b8a8a8481811061145257611451612ba9565b5b9050602002013589898581811061146c5761146b612ba9565b5b905060200281019061147e9190612e5b565b61193b565b8061148d90612b60565b9050611409565b5061149e816119f2565b807fba9b5086e80f9b5280dc213cdd4a1e7e413540c6d24e73b6dc6e2044aab95b0c60405160405180910390a250505050505050505050565b6114e18282610eec565b6115b357600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611558611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006115df836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611a56565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061165a575061165982611ac6565b5b9050919050565b600033905090565b6116738282610eec565b611702576116988173ffffffffffffffffffffffffffffffffffffffff166014611b30565b6116a68360001c6020611b30565b6040516020016116b7929190612fd0565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f99190613043565b60405180910390fd5b5050565b61171082826114d7565b61173581600160008581526020019081526020016000206115b790919063ffffffff16565b505050565b6117448282611d6c565b6117698160016000858152602001908152602001600020611e4d90919063ffffffff16565b505050565b61177782610969565b156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906130d7565b60405180910390fd5b6004548110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613169565b60405180910390fd5b80426118089190612b0a565b60026000848152602001908152602001600020819055505050565b60006118328360000183611e7d565b60001c905092915050565b600061184b82600001611ea8565b9050919050565b61185b826108a1565b61189a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611891906131fb565b60405180910390fd5b6118a382610ac8565b6118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99061328d565b60405180910390fd5b6000801b8114806118f857506118f78161092b565b5b611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e9061331f565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff1684848460405161196592919061336f565b60006040518083038185875af1925050503d80600081146119a2576040519150601f19603f3d011682016040523d82523d6000602084013e6119a7565b606091505b50509050806119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906133fa565b60405180910390fd5b5050505050565b6119fb816108a1565b611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a31906131fb565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b6000611a628383611eb9565b611abb578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611ac0565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611b43919061341a565b611b4d9190612b0a565b67ffffffffffffffff811115611b6657611b65613474565b5b6040519080825280601f01601f191660200182016040528015611b985781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611bd057611bcf612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c3457611c33612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611c74919061341a565b611c7e9190612b0a565b90505b6001811115611d1e577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611cc057611cbf612ba9565b5b1a60f81b828281518110611cd757611cd6612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611d17906134a3565b9050611c81565b5060008414611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613519565b60405180910390fd5b8091505092915050565b611d768282610eec565b15611e4957600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611dee611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611e75836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611edc565b905092915050565b6000826000018281548110611e9557611e94612ba9565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611fe4576000600182611f0e9190613539565b9050600060018660000180549050611f269190613539565b9050818114611f95576000866000018281548110611f4757611f46612ba9565b5b9060005260206000200154905080876000018481548110611f6b57611f6a612ba9565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480611fa957611fa861356d565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611fea565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61202f81611ffa565b811461203a57600080fd5b50565b60008135905061204c81612026565b92915050565b60006020828403121561206857612067611ff0565b5b60006120768482850161203d565b91505092915050565b60008115159050919050565b6120948161207f565b82525050565b60006020820190506120af600083018461208b565b92915050565b6000819050919050565b6120c8816120b5565b82525050565b60006020820190506120e360008301846120bf565b92915050565b6120f2816120b5565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061214082612115565b9050919050565b61215081612135565b811461215b57600080fd5b50565b60008135905061216d81612147565b92915050565b6000806040838503121561218a57612189611ff0565b5b600061219885828601612100565b92505060206121a98582860161215e565b9150509250929050565b6000602082840312156121c9576121c8611ff0565b5b60006121d784828501612100565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612205576122046121e0565b5b8235905067ffffffffffffffff811115612222576122216121e5565b5b60208301915083602082028301111561223e5761223d6121ea565b5b9250929050565b60008083601f84011261225b5761225a6121e0565b5b8235905067ffffffffffffffff811115612278576122776121e5565b5b602083019150836020820283011115612294576122936121ea565b5b9250929050565b60008083601f8401126122b1576122b06121e0565b5b8235905067ffffffffffffffff8111156122ce576122cd6121e5565b5b6020830191508360208202830111156122ea576122e96121ea565b5b9250929050565b60008060008060008060008060a0898b03121561231157612310611ff0565b5b600089013567ffffffffffffffff81111561232f5761232e611ff5565b5b61233b8b828c016121ef565b9850985050602089013567ffffffffffffffff81111561235e5761235d611ff5565b5b61236a8b828c01612245565b9650965050604089013567ffffffffffffffff81111561238d5761238c611ff5565b5b6123998b828c0161229b565b945094505060606123ac8b828c01612100565b92505060806123bd8b828c01612100565b9150509295985092959890939650565b6000819050919050565b6123e0816123cd565b81146123eb57600080fd5b50565b6000813590506123fd816123d7565b92915050565b60006020828403121561241957612418611ff0565b5b6000612427848285016123ee565b91505092915050565b60008083601f840112612446576124456121e0565b5b8235905067ffffffffffffffff811115612463576124626121e5565b5b60208301915083602082028301111561247f5761247e6121ea565b5b9250929050565b6000806020838503121561249d5761249c611ff0565b5b600083013567ffffffffffffffff8111156124bb576124ba611ff5565b5b6124c785828601612430565b92509250509250929050565b600080600080600080600080600060c08a8c0312156124f5576124f4611ff0565b5b60008a013567ffffffffffffffff81111561251357612512611ff5565b5b61251f8c828d016121ef565b995099505060208a013567ffffffffffffffff81111561254257612541611ff5565b5b61254e8c828d01612245565b975097505060408a013567ffffffffffffffff81111561257157612570611ff5565b5b61257d8c828d0161229b565b955095505060606125908c828d01612100565b93505060806125a18c828d01612100565b92505060a06125b28c828d016123ee565b9150509295985092959850929598565b600080604083850312156125d9576125d8611ff0565b5b60006125e785828601612100565b92505060206125f8858286016123ee565b9150509250929050565b61260b81612135565b82525050565b60006020820190506126266000830184612602565b92915050565b612635816123cd565b82525050565b6000602082019050612650600083018461262c565b92915050565b600082825260208201905092915050565b6000819050919050565b61267a81612135565b82525050565b600061268c8383612671565b60208301905092915050565b60006126a7602084018461215e565b905092915050565b6000602082019050919050565b60006126c88385612656565b93506126d382612667565b8060005b8581101561270c576126e98284612698565b6126f38882612680565b97506126fe836126af565b9250506001810190506126d7565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b82818337600083830152505050565b600061274a8385612719565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561277d5761277c61272a565b5b60208302925061278e83858461272f565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b60006127e383856127b5565b93506127f083858461272f565b6127f9836127c6565b840190509392505050565b60006128118484846127d7565b90509392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261284657612845612824565b5b83810192508235915060208301925067ffffffffffffffff82111561286e5761286d61281a565b5b6001820236038413156128845761288361281f565b5b509250929050565b6000602082019050919050565b60006128a5838561279a565b9350836020840285016128b7846127ab565b8060005b878110156128fd5784840389526128d28284612829565b6128dd868284612804565b95506128e88461288c565b935060208b019a5050506001810190506128bb565b50829750879450505050509392505050565b600060a082019050818103600083015261292a818a8c6126bc565b9050818103602083015261293f81888a61273e565b90508181036040830152612954818688612899565b905061296360608301856120bf565b61297060808301846120bf565b9998505050505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006129ea602f8361297d565b91506129f58261298e565b604082019050919050565b60006020820190508181036000830152612a19816129dd565b9050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612a7c60278361297d565b9150612a8782612a20565b604082019050919050565b60006020820190508181036000830152612aab81612a6f565b9050919050565b6000604082019050612ac7600083018561262c565b612ad4602083018461262c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b15826123cd565b9150612b20836123cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b5557612b54612adb565b5b828201905092915050565b6000612b6b826123cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b9e57612b9d612adb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612c3460318361297d565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b600082825260208201905092915050565b6000612c878385612c6a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612cba57612cb961272a565b5b602083029250612ccb83858461272f565b82840190509392505050565b60006020820190508181036000830152612cf2818486612c7b565b90509392505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5760218361297d565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b6000612de9602f8361297d565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b600060208284031215612e3557612e34611ff0565b5b6000612e438482850161215e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612e7857612e77612e4c565b5b80840192508235915067ffffffffffffffff821115612e9a57612e99612e51565b5b602083019250600182023603831315612eb657612eb5612e56565b5b509250929050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612eff601783612ebe565b9150612f0a82612ec9565b601782019050919050565b600081519050919050565b60005b83811015612f3e578082015181840152602081019050612f23565b83811115612f4d576000848401525b50505050565b6000612f5e82612f15565b612f688185612ebe565b9350612f78818560208601612f20565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612fba601183612ebe565b9150612fc582612f84565b601182019050919050565b6000612fdb82612ef2565b9150612fe78285612f53565b9150612ff282612fad565b9150612ffe8284612f53565b91508190509392505050565b600061301582612f15565b61301f818561297d565b935061302f818560208601612f20565b613038816127c6565b840191505092915050565b6000602082019050818103600083015261305d818461300a565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b60006130c1602d8361297d565b91506130cc82613065565b604082019050919050565b600060208201905081810360008301526130f0816130b4565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b600061315360248361297d565b915061315e826130f7565b604082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b60006131e560288361297d565b91506131f082613189565b604082019050919050565b60006020820190508181036000830152613214816131d8565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b6000613277603c8361297d565b91506132828261321b565b604082019050919050565b600060208201905081810360008301526132a68161326a565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b600061330960248361297d565b9150613314826132ad565b604082019050919050565b60006020820190508181036000830152613338816132fc565b9050919050565b600081905092915050565b6000613356838561333f565b935061336383858461272f565b82840190509392505050565b600061337c82848661334a565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b60006133e460318361297d565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b6000613425826123cd565b9150613430836123cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346957613468612adb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006134ae826123cd565b915060008214156134c2576134c1612adb565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061350360208361297d565b915061350e826134cd565b602082019050919050565b60006020820190508181036000830152613532816134f6565b9050919050565b6000613544826123cd565b915061354f836123cd565b92508282101561356257613561612adb565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212205e3e42e7cdfc04f876c744cb261b27a2a34f3fad525eaab8e9f01efbe58f2afa64736f6c634300080a0033", + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"confirmers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ScheduleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ScheduleExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CONFIRM_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minDelay\",\"type\":\"uint256\"}],\"name\":\"changeDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"datas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"},\"RequirementChange(uint256,uint256)\":{\"details\":\"Emitted when the number of required confimations is modified.\"},\"ScheduleAdded(bytes32)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"ScheduleExecuted(bytes32)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'proposer' role.\"},\"changeDelay(uint256)\":{\"details\":\"Changes the minimum wallet duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the wallet itself. This can only be achieved by scheduling and later executing an operation where the wallet is the target and the data is the ABI-encoded call to this function.\"},\"changeRequirement(uint256)\":{\"details\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\",\"params\":{\"_required\":\"Number of required confirmations.\"}},\"confirmTransaction(bytes32[])\":{\"details\":\"Allows an executor to confirm multiple transactions.\"},\"constructor\":{\"details\":\"Initializes the contract with a given `minDelay`.\"},\"execute(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isConfirmed(bytes32)\":{\"details\":\"Returns whether an operation is confirmed or not.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeConfirmation(bytes32[])\":{\"details\":\"Allows an executor to revoke multiple confirmations for a transaction.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"schedule(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {ScheduleAdded} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"MultiSigWallet with timelocker\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/BEMultiSigWallet.sol\":\"BEMultiSigWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/core/BEMultiSigWallet.sol\":{\"keccak256\":\"0x534c437f18bac67f0c99a400adda2729a68dff3cd247ee9cc1f8abacf984ffcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f166336ad716d6af251f1c6f764a049925228843f0090bc59cfe768ee84e9afe\",\"dweb:/ipfs/QmNiA9aNKaVeB685YgchgQ6iiE2kJR7inFpodLkfGXivjY\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620040f9380380620040f98339818101604052810190620000379190620008fb565b620000697f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca580620003ba60201b60201c565b620000bb7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620003ba60201b60201c565b6200010d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620003ba60201b60201c565b6200015f7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620003ba60201b60201c565b620001a07f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5620001946200041d60201b60201c565b6200042560201b60201c565b620001d27f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5306200042560201b60201c565b60005b835181101562000242576200022e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc18583815181106200021a5762000219620009e0565b5b60200260200101516200042560201b60201c565b806200023a9062000a3e565b9050620001d5565b5060005b8251811015620002b3576200029f7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f8483815181106200028b576200028a620009e0565b5b60200260200101516200042560201b60201c565b80620002ab9062000a3e565b905062000246565b5060005b81518110156200032457620003107fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63838381518110620002fc57620002fb620009e0565b5b60200260200101516200042560201b60201c565b806200031c9062000a3e565b9050620002b7565b50846004819055507f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560006004546040516200036292919062000aea565b60405180910390a1836005819055507fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e6000600554604051620003a792919062000aea565b60405180910390a1505050505062000b17565b6000620003cd836200043b60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b6200043782826200045a60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b620004718282620004a260201b620014d71760201c565b6200049d81600160008581526020019081526020016000206200059360201b620015b71790919060201c565b505050565b620004b48282620005cb60201b60201c565b6200058f57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005346200041d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620005c3836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200063560201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000620006498383620006af60201b60201c565b620006a4578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050620006a9565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620006fb81620006e6565b81146200070757600080fd5b50565b6000815190506200071b81620006f0565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620007718262000726565b810181811067ffffffffffffffff8211171562000793576200079262000737565b5b80604052505050565b6000620007a8620006d2565b9050620007b6828262000766565b919050565b600067ffffffffffffffff821115620007d957620007d862000737565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200081c82620007ef565b9050919050565b6200082e816200080f565b81146200083a57600080fd5b50565b6000815190506200084e8162000823565b92915050565b60006200086b6200086584620007bb565b6200079c565b90508083825260208201905060208402830185811115620008915762000890620007ea565b5b835b81811015620008be5780620008a988826200083d565b84526020840193505060208101905062000893565b5050509392505050565b600082601f830112620008e057620008df62000721565b5b8151620008f284826020860162000854565b91505092915050565b600080600080600060a086880312156200091a5762000919620006dc565b5b60006200092a888289016200070a565b95505060206200093d888289016200070a565b945050604086015167ffffffffffffffff811115620009615762000960620006e1565b5b6200096f88828901620008c8565b935050606086015167ffffffffffffffff811115620009935762000992620006e1565b5b620009a188828901620008c8565b925050608086015167ffffffffffffffff811115620009c557620009c4620006e1565b5b620009d388828901620008c8565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a4b82620006e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000a815762000a8062000a0f565b5b600182019050919050565b6000819050919050565b6000819050919050565b600062000ac162000abb62000ab58462000a8c565b62000a96565b620006e6565b9050919050565b62000ad38162000aa0565b82525050565b62000ae481620006e6565b82525050565b600060408201905062000b01600083018562000ac8565b62000b10602083018462000ad9565b9392505050565b6135d28062000b276000396000f3fe6080604052600436106101d15760003560e01c806383443de2116100f7578063c4d252f511610095578063d45c443511610064578063d45c443514610703578063d547741f14610740578063dc8452cd14610769578063f156883b14610794576101d8565b8063c4d252f514610649578063c63c4e9b14610672578063ca15c8731461069d578063d2082330146106da576101d8565b806391d14854116100d157806391d148541461058d578063a217fddf146105ca578063ba51a6df146105f5578063c3a6b1471461061e576101d8565b806383443de2146104fc5780638f61f4f5146105255780639010d07c14610550576101d8565b80632ab0f5291161016f5780635037ec621161013e5780635037ec6214610430578063584b153e146104595780636486aa51146104965780636a2c3723146104d3576101d8565b80632ab0f529146103645780632f2ff15d146103a157806331d50750146103ca57806336568abe14610407576101d8565b80630d3cf6fc116101ab5780630d3cf6fc1461028257806313bc9f20146102ad578063248a9ca3146102ea57806325b2060e14610327576101d8565b806301ffc9a7146101dd57806307bd02651461021a5780630c4ecab414610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612052565b6107b0565b604051610211919061209a565b60405180910390f35b34801561022657600080fd5b5061022f61082a565b60405161023c91906120ce565b60405180910390f35b34801561025157600080fd5b5061026c60048036038101906102679190612173565b61084e565b604051610279919061209a565b60405180910390f35b34801561028e57600080fd5b5061029761087d565b6040516102a491906120ce565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906121b3565b6108a1565b6040516102e1919061209a565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c91906121b3565b6108c7565b60405161031e91906120ce565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906122f1565b6108e6565b60405161035b91906120ce565b60405180910390f35b34801561037057600080fd5b5061038b600480360381019061038691906121b3565b61092b565b604051610398919061209a565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612173565b610940565b005b3480156103d657600080fd5b506103f160048036038101906103ec91906121b3565b610969565b6040516103fe919061209a565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190612173565b61097d565b005b34801561043c57600080fd5b5061045760048036038101906104529190612403565b610a00565b005b34801561046557600080fd5b50610480600480360381019061047b91906121b3565b610ab3565b60405161048d919061209a565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906121b3565b610ac8565b6040516104ca919061209a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612486565b610bd5565b005b34801561050857600080fd5b50610523600480360381019061051e91906124d3565b610d6f565b005b34801561053157600080fd5b5061053a610e99565b60405161054791906120ce565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906125c2565b610ebd565b6040516105849190612611565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612173565b610eec565b6040516105c1919061209a565b60405180910390f35b3480156105d657600080fd5b506105df610f56565b6040516105ec91906120ce565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612403565b610f5d565b005b34801561062a57600080fd5b50610633611010565b60405161064091906120ce565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906121b3565b611034565b005b34801561067e57600080fd5b50610687611106565b604051610694919061263b565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf91906121b3565b61110c565b6040516106d1919061263b565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612486565b611130565b005b34801561070f57600080fd5b5061072a600480360381019061072591906121b3565b6112ca565b604051610737919061263b565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612173565b6112e7565b005b34801561077557600080fd5b5061077e611310565b60405161078b919061263b565b60405180910390f35b6107ae60048036038101906107a991906122f1565b611316565b005b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108235750610822826115e7565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6000806108ad836112ca565b90506001811180156108bf5750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b6000888888888888888860405160200161090798979695949392919061290f565b60405160208183030381529060405280519060200120905098975050505050505050565b60006001610938836112ca565b149050919050565b610949826108c7565b61095a81610955611661565b611669565b6109648383611706565b505050565b600080610975836112ca565b119050919050565b610985611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e990612a00565b60405180910390fd5b6109fc828261173a565b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6590612a92565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610aa1929190612ab2565b60405180910390a18060048190555050565b60006001610ac0836112ca565b119050919050565b600080600090506000610afa7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f61110c565b905060005b81811015610bcc57600360008681526020019081526020016000206000610b467f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f84610ebd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ba357600183610ba09190612b0a565b92505b600554831415610bb95760019350505050610bd0565b8080610bc490612b60565b915050610aff565b5050505b919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610c01816000610eec565b610c1757610c1681610c11611661565b611669565b5b60005b83839050811015610d1957610c47848483818110610c3b57610c3a612ba9565b5b90506020020135610ab3565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90612c4a565b60405180910390fd5b600060036000868685818110610c9f57610c9e612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610d1290612b60565b9050610c1a565b503373ffffffffffffffffffffffffffffffffffffffff167f05582fcff26851c2d2cf9fe1f0b6782edb93a87d5b1b517d9ec1eebd84375b608484604051610d62929190612cd7565b60405180910390a2505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610d9b816000610eec565b610db157610db081610dab611661565b611669565b5b878790508a8a905014610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612d6d565b60405180910390fd5b858590508a8a905014610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612d6d565b60405180910390fd5b6000610e538b8b8b8b8b8b8b8b6108e6565b9050610e5f818461176e565b807f53f5ffe85e69f17f4b05cdb4a95086892fb357472730cf78aff70f161564778360405160405180910390a25050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b6000610ee4826001600086815260200190815260200160002061182390919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc290612a92565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e60055482604051610ffe929190612ab2565b60405180910390a18060058190555050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f81565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1611060816000610eec565b6110765761107581611070611661565b611669565b5b61107f82610ab3565b6110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612dff565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b60006111296001600084815260200190815260200160002061183d565b9050919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f61115c816000610eec565b611172576111718161116c611661565b611669565b5b60005b83839050811015611274576111a284848381811061119657611195612ba9565b5b90506020020135610ab3565b6111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612c4a565b60405180910390fd5b6001600360008686858181106111fa576111f9612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061126d90612b60565b9050611175565b503373ffffffffffffffffffffffffffffffffffffffff167f74c16db4231424224fbb654025262461d77c15374fad9e8799b65ccf23bdffa884846040516112bd929190612cd7565b60405180910390a2505050565b600060026000838152602001908152602001600020549050919050565b6112f0826108c7565b611301816112fc611661565b611669565b61130b838361173a565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611342816000610eec565b6113585761135781611352611661565b611669565b5b8686905089899050146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612d6d565b60405180910390fd5b8484905089899050146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612d6d565b60405180910390fd5b60006113fa8a8a8a8a8a8a8a8a6108e6565b90506114068185611852565b60005b8a8a9050811015611494576114838b8b8381811061142a57611429612ba9565b5b905060200201602081019061143f9190612e1f565b8a8a8481811061145257611451612ba9565b5b9050602002013589898581811061146c5761146b612ba9565b5b905060200281019061147e9190612e5b565b61193b565b8061148d90612b60565b9050611409565b5061149e816119f2565b807fba9b5086e80f9b5280dc213cdd4a1e7e413540c6d24e73b6dc6e2044aab95b0c60405160405180910390a250505050505050505050565b6114e18282610eec565b6115b357600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611558611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006115df836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611a56565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061165a575061165982611ac6565b5b9050919050565b600033905090565b6116738282610eec565b611702576116988173ffffffffffffffffffffffffffffffffffffffff166014611b30565b6116a68360001c6020611b30565b6040516020016116b7929190612fd0565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f99190613043565b60405180910390fd5b5050565b61171082826114d7565b61173581600160008581526020019081526020016000206115b790919063ffffffff16565b505050565b6117448282611d6c565b6117698160016000858152602001908152602001600020611e4d90919063ffffffff16565b505050565b61177782610969565b156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906130d7565b60405180910390fd5b6004548110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613169565b60405180910390fd5b80426118089190612b0a565b60026000848152602001908152602001600020819055505050565b60006118328360000183611e7d565b60001c905092915050565b600061184b82600001611ea8565b9050919050565b61185b826108a1565b61189a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611891906131fb565b60405180910390fd5b6118a382610ac8565b6118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99061328d565b60405180910390fd5b6000801b8114806118f857506118f78161092b565b5b611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e9061331f565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff1684848460405161196592919061336f565b60006040518083038185875af1925050503d80600081146119a2576040519150601f19603f3d011682016040523d82523d6000602084013e6119a7565b606091505b50509050806119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906133fa565b60405180910390fd5b5050505050565b6119fb816108a1565b611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a31906131fb565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b6000611a628383611eb9565b611abb578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611ac0565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611b43919061341a565b611b4d9190612b0a565b67ffffffffffffffff811115611b6657611b65613474565b5b6040519080825280601f01601f191660200182016040528015611b985781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611bd057611bcf612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c3457611c33612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611c74919061341a565b611c7e9190612b0a565b90505b6001811115611d1e577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611cc057611cbf612ba9565b5b1a60f81b828281518110611cd757611cd6612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611d17906134a3565b9050611c81565b5060008414611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613519565b60405180910390fd5b8091505092915050565b611d768282610eec565b15611e4957600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611dee611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611e75836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611edc565b905092915050565b6000826000018281548110611e9557611e94612ba9565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611fe4576000600182611f0e9190613539565b9050600060018660000180549050611f269190613539565b9050818114611f95576000866000018281548110611f4757611f46612ba9565b5b9060005260206000200154905080876000018481548110611f6b57611f6a612ba9565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480611fa957611fa861356d565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611fea565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61202f81611ffa565b811461203a57600080fd5b50565b60008135905061204c81612026565b92915050565b60006020828403121561206857612067611ff0565b5b60006120768482850161203d565b91505092915050565b60008115159050919050565b6120948161207f565b82525050565b60006020820190506120af600083018461208b565b92915050565b6000819050919050565b6120c8816120b5565b82525050565b60006020820190506120e360008301846120bf565b92915050565b6120f2816120b5565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061214082612115565b9050919050565b61215081612135565b811461215b57600080fd5b50565b60008135905061216d81612147565b92915050565b6000806040838503121561218a57612189611ff0565b5b600061219885828601612100565b92505060206121a98582860161215e565b9150509250929050565b6000602082840312156121c9576121c8611ff0565b5b60006121d784828501612100565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612205576122046121e0565b5b8235905067ffffffffffffffff811115612222576122216121e5565b5b60208301915083602082028301111561223e5761223d6121ea565b5b9250929050565b60008083601f84011261225b5761225a6121e0565b5b8235905067ffffffffffffffff811115612278576122776121e5565b5b602083019150836020820283011115612294576122936121ea565b5b9250929050565b60008083601f8401126122b1576122b06121e0565b5b8235905067ffffffffffffffff8111156122ce576122cd6121e5565b5b6020830191508360208202830111156122ea576122e96121ea565b5b9250929050565b60008060008060008060008060a0898b03121561231157612310611ff0565b5b600089013567ffffffffffffffff81111561232f5761232e611ff5565b5b61233b8b828c016121ef565b9850985050602089013567ffffffffffffffff81111561235e5761235d611ff5565b5b61236a8b828c01612245565b9650965050604089013567ffffffffffffffff81111561238d5761238c611ff5565b5b6123998b828c0161229b565b945094505060606123ac8b828c01612100565b92505060806123bd8b828c01612100565b9150509295985092959890939650565b6000819050919050565b6123e0816123cd565b81146123eb57600080fd5b50565b6000813590506123fd816123d7565b92915050565b60006020828403121561241957612418611ff0565b5b6000612427848285016123ee565b91505092915050565b60008083601f840112612446576124456121e0565b5b8235905067ffffffffffffffff811115612463576124626121e5565b5b60208301915083602082028301111561247f5761247e6121ea565b5b9250929050565b6000806020838503121561249d5761249c611ff0565b5b600083013567ffffffffffffffff8111156124bb576124ba611ff5565b5b6124c785828601612430565b92509250509250929050565b600080600080600080600080600060c08a8c0312156124f5576124f4611ff0565b5b60008a013567ffffffffffffffff81111561251357612512611ff5565b5b61251f8c828d016121ef565b995099505060208a013567ffffffffffffffff81111561254257612541611ff5565b5b61254e8c828d01612245565b975097505060408a013567ffffffffffffffff81111561257157612570611ff5565b5b61257d8c828d0161229b565b955095505060606125908c828d01612100565b93505060806125a18c828d01612100565b92505060a06125b28c828d016123ee565b9150509295985092959850929598565b600080604083850312156125d9576125d8611ff0565b5b60006125e785828601612100565b92505060206125f8858286016123ee565b9150509250929050565b61260b81612135565b82525050565b60006020820190506126266000830184612602565b92915050565b612635816123cd565b82525050565b6000602082019050612650600083018461262c565b92915050565b600082825260208201905092915050565b6000819050919050565b61267a81612135565b82525050565b600061268c8383612671565b60208301905092915050565b60006126a7602084018461215e565b905092915050565b6000602082019050919050565b60006126c88385612656565b93506126d382612667565b8060005b8581101561270c576126e98284612698565b6126f38882612680565b97506126fe836126af565b9250506001810190506126d7565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b82818337600083830152505050565b600061274a8385612719565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561277d5761277c61272a565b5b60208302925061278e83858461272f565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b60006127e383856127b5565b93506127f083858461272f565b6127f9836127c6565b840190509392505050565b60006128118484846127d7565b90509392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261284657612845612824565b5b83810192508235915060208301925067ffffffffffffffff82111561286e5761286d61281a565b5b6001820236038413156128845761288361281f565b5b509250929050565b6000602082019050919050565b60006128a5838561279a565b9350836020840285016128b7846127ab565b8060005b878110156128fd5784840389526128d28284612829565b6128dd868284612804565b95506128e88461288c565b935060208b019a5050506001810190506128bb565b50829750879450505050509392505050565b600060a082019050818103600083015261292a818a8c6126bc565b9050818103602083015261293f81888a61273e565b90508181036040830152612954818688612899565b905061296360608301856120bf565b61297060808301846120bf565b9998505050505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006129ea602f8361297d565b91506129f58261298e565b604082019050919050565b60006020820190508181036000830152612a19816129dd565b9050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612a7c60278361297d565b9150612a8782612a20565b604082019050919050565b60006020820190508181036000830152612aab81612a6f565b9050919050565b6000604082019050612ac7600083018561262c565b612ad4602083018461262c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b15826123cd565b9150612b20836123cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b5557612b54612adb565b5b828201905092915050565b6000612b6b826123cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b9e57612b9d612adb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612c3460318361297d565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b600082825260208201905092915050565b6000612c878385612c6a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612cba57612cb961272a565b5b602083029250612ccb83858461272f565b82840190509392505050565b60006020820190508181036000830152612cf2818486612c7b565b90509392505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5760218361297d565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b6000612de9602f8361297d565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b600060208284031215612e3557612e34611ff0565b5b6000612e438482850161215e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612e7857612e77612e4c565b5b80840192508235915067ffffffffffffffff821115612e9a57612e99612e51565b5b602083019250600182023603831315612eb657612eb5612e56565b5b509250929050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612eff601783612ebe565b9150612f0a82612ec9565b601782019050919050565b600081519050919050565b60005b83811015612f3e578082015181840152602081019050612f23565b83811115612f4d576000848401525b50505050565b6000612f5e82612f15565b612f688185612ebe565b9350612f78818560208601612f20565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612fba601183612ebe565b9150612fc582612f84565b601182019050919050565b6000612fdb82612ef2565b9150612fe78285612f53565b9150612ff282612fad565b9150612ffe8284612f53565b91508190509392505050565b600061301582612f15565b61301f818561297d565b935061302f818560208601612f20565b613038816127c6565b840191505092915050565b6000602082019050818103600083015261305d818461300a565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b60006130c1602d8361297d565b91506130cc82613065565b604082019050919050565b600060208201905081810360008301526130f0816130b4565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b600061315360248361297d565b915061315e826130f7565b604082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b60006131e560288361297d565b91506131f082613189565b604082019050919050565b60006020820190508181036000830152613214816131d8565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b6000613277603c8361297d565b91506132828261321b565b604082019050919050565b600060208201905081810360008301526132a68161326a565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b600061330960248361297d565b9150613314826132ad565b604082019050919050565b60006020820190508181036000830152613338816132fc565b9050919050565b600081905092915050565b6000613356838561333f565b935061336383858461272f565b82840190509392505050565b600061337c82848661334a565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b60006133e460318361297d565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b6000613425826123cd565b9150613430836123cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346957613468612adb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006134ae826123cd565b915060008214156134c2576134c1612adb565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061350360208361297d565b915061350e826134cd565b602082019050919050565b60006020820190508181036000830152613532816134f6565b9050919050565b6000613544826123cd565b915061354f836123cd565b92508282101561356257613561612adb565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122054ddc115958442d3f31e5e1f60d427e28afe6a122f19fa811f2d30a313fa2a7f64736f6c634300080a0033", + "deployedBytecode": "0x6080604052600436106101d15760003560e01c806383443de2116100f7578063c4d252f511610095578063d45c443511610064578063d45c443514610703578063d547741f14610740578063dc8452cd14610769578063f156883b14610794576101d8565b8063c4d252f514610649578063c63c4e9b14610672578063ca15c8731461069d578063d2082330146106da576101d8565b806391d14854116100d157806391d148541461058d578063a217fddf146105ca578063ba51a6df146105f5578063c3a6b1471461061e576101d8565b806383443de2146104fc5780638f61f4f5146105255780639010d07c14610550576101d8565b80632ab0f5291161016f5780635037ec621161013e5780635037ec6214610430578063584b153e146104595780636486aa51146104965780636a2c3723146104d3576101d8565b80632ab0f529146103645780632f2ff15d146103a157806331d50750146103ca57806336568abe14610407576101d8565b80630d3cf6fc116101ab5780630d3cf6fc1461028257806313bc9f20146102ad578063248a9ca3146102ea57806325b2060e14610327576101d8565b806301ffc9a7146101dd57806307bd02651461021a5780630c4ecab414610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612052565b6107b0565b604051610211919061209a565b60405180910390f35b34801561022657600080fd5b5061022f61082a565b60405161023c91906120ce565b60405180910390f35b34801561025157600080fd5b5061026c60048036038101906102679190612173565b61084e565b604051610279919061209a565b60405180910390f35b34801561028e57600080fd5b5061029761087d565b6040516102a491906120ce565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906121b3565b6108a1565b6040516102e1919061209a565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c91906121b3565b6108c7565b60405161031e91906120ce565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906122f1565b6108e6565b60405161035b91906120ce565b60405180910390f35b34801561037057600080fd5b5061038b600480360381019061038691906121b3565b61092b565b604051610398919061209a565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612173565b610940565b005b3480156103d657600080fd5b506103f160048036038101906103ec91906121b3565b610969565b6040516103fe919061209a565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190612173565b61097d565b005b34801561043c57600080fd5b5061045760048036038101906104529190612403565b610a00565b005b34801561046557600080fd5b50610480600480360381019061047b91906121b3565b610ab3565b60405161048d919061209a565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906121b3565b610ac8565b6040516104ca919061209a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612486565b610bd5565b005b34801561050857600080fd5b50610523600480360381019061051e91906124d3565b610d6f565b005b34801561053157600080fd5b5061053a610e99565b60405161054791906120ce565b60405180910390f35b34801561055c57600080fd5b50610577600480360381019061057291906125c2565b610ebd565b6040516105849190612611565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612173565b610eec565b6040516105c1919061209a565b60405180910390f35b3480156105d657600080fd5b506105df610f56565b6040516105ec91906120ce565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612403565b610f5d565b005b34801561062a57600080fd5b50610633611010565b60405161064091906120ce565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906121b3565b611034565b005b34801561067e57600080fd5b50610687611106565b604051610694919061263b565b60405180910390f35b3480156106a957600080fd5b506106c460048036038101906106bf91906121b3565b61110c565b6040516106d1919061263b565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612486565b611130565b005b34801561070f57600080fd5b5061072a600480360381019061072591906121b3565b6112ca565b604051610737919061263b565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190612173565b6112e7565b005b34801561077557600080fd5b5061077e611310565b60405161078b919061263b565b60405180910390f35b6107ae60048036038101906107a991906122f1565b611316565b005b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108235750610822826115e7565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6000806108ad836112ca565b90506001811180156108bf5750428111155b915050919050565b6000806000838152602001908152602001600020600101549050919050565b6000888888888888888860405160200161090798979695949392919061290f565b60405160208183030381529060405280519060200120905098975050505050505050565b60006001610938836112ca565b149050919050565b610949826108c7565b61095a81610955611661565b611669565b6109648383611706565b505050565b600080610975836112ca565b119050919050565b610985611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e990612a00565b60405180910390fd5b6109fc828261173a565b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6590612a92565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560045482604051610aa1929190612ab2565b60405180910390a18060048190555050565b60006001610ac0836112ca565b119050919050565b600080600090506000610afa7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f61110c565b905060005b81811015610bcc57600360008681526020019081526020016000206000610b467f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f84610ebd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ba357600183610ba09190612b0a565b92505b600554831415610bb95760019350505050610bd0565b8080610bc490612b60565b915050610aff565b5050505b919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f610c01816000610eec565b610c1757610c1681610c11611661565b611669565b5b60005b83839050811015610d1957610c47848483818110610c3b57610c3a612ba9565b5b90506020020135610ab3565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90612c4a565b60405180910390fd5b600060036000868685818110610c9f57610c9e612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610d1290612b60565b9050610c1a565b503373ffffffffffffffffffffffffffffffffffffffff167f05582fcff26851c2d2cf9fe1f0b6782edb93a87d5b1b517d9ec1eebd84375b608484604051610d62929190612cd7565b60405180910390a2505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610d9b816000610eec565b610db157610db081610dab611661565b611669565b5b878790508a8a905014610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612d6d565b60405180910390fd5b858590508a8a905014610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612d6d565b60405180910390fd5b6000610e538b8b8b8b8b8b8b8b6108e6565b9050610e5f818461176e565b807f53f5ffe85e69f17f4b05cdb4a95086892fb357472730cf78aff70f161564778360405160405180910390a25050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b6000610ee4826001600086815260200190815260200160002061182390919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc290612a92565b60405180910390fd5b7fdd7c0dd2de894f9cccfd27f17f4f7390a796fb28e4b1d7317e0e758fff8e672e60055482604051610ffe929190612ab2565b60405180910390a18060058190555050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f81565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1611060816000610eec565b6110765761107581611070611661565b611669565b5b61107f82610ab3565b6110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612dff565b60405180910390fd5b6002600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b60045481565b60006111296001600084815260200190815260200160002061183d565b9050919050565b7f2c8d391a59a77fe77bf684c3caa7282a9c580767b1cb8e58353f9e201a6ede3f61115c816000610eec565b611172576111718161116c611661565b611669565b5b60005b83839050811015611274576111a284848381811061119657611195612ba9565b5b90506020020135610ab3565b6111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612c4a565b60405180910390fd5b6001600360008686858181106111fa576111f9612ba9565b5b90506020020135815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061126d90612b60565b9050611175565b503373ffffffffffffffffffffffffffffffffffffffff167f74c16db4231424224fbb654025262461d77c15374fad9e8799b65ccf23bdffa884846040516112bd929190612cd7565b60405180910390a2505050565b600060026000838152602001908152602001600020549050919050565b6112f0826108c7565b611301816112fc611661565b611669565b61130b838361173a565b505050565b60055481565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611342816000610eec565b6113585761135781611352611661565b611669565b5b8686905089899050146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612d6d565b60405180910390fd5b8484905089899050146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612d6d565b60405180910390fd5b60006113fa8a8a8a8a8a8a8a8a6108e6565b90506114068185611852565b60005b8a8a9050811015611494576114838b8b8381811061142a57611429612ba9565b5b905060200201602081019061143f9190612e1f565b8a8a8481811061145257611451612ba9565b5b9050602002013589898581811061146c5761146b612ba9565b5b905060200281019061147e9190612e5b565b61193b565b8061148d90612b60565b9050611409565b5061149e816119f2565b807fba9b5086e80f9b5280dc213cdd4a1e7e413540c6d24e73b6dc6e2044aab95b0c60405160405180910390a250505050505050505050565b6114e18282610eec565b6115b357600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611558611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006115df836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611a56565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061165a575061165982611ac6565b5b9050919050565b600033905090565b6116738282610eec565b611702576116988173ffffffffffffffffffffffffffffffffffffffff166014611b30565b6116a68360001c6020611b30565b6040516020016116b7929190612fd0565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f99190613043565b60405180910390fd5b5050565b61171082826114d7565b61173581600160008581526020019081526020016000206115b790919063ffffffff16565b505050565b6117448282611d6c565b6117698160016000858152602001908152602001600020611e4d90919063ffffffff16565b505050565b61177782610969565b156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906130d7565b60405180910390fd5b6004548110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390613169565b60405180910390fd5b80426118089190612b0a565b60026000848152602001908152602001600020819055505050565b60006118328360000183611e7d565b60001c905092915050565b600061184b82600001611ea8565b9050919050565b61185b826108a1565b61189a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611891906131fb565b60405180910390fd5b6118a382610ac8565b6118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99061328d565b60405180910390fd5b6000801b8114806118f857506118f78161092b565b5b611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e9061331f565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff1684848460405161196592919061336f565b60006040518083038185875af1925050503d80600081146119a2576040519150601f19603f3d011682016040523d82523d6000602084013e6119a7565b606091505b50509050806119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906133fa565b60405180910390fd5b5050505050565b6119fb816108a1565b611a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a31906131fb565b60405180910390fd5b6001600260008381526020019081526020016000208190555050565b6000611a628383611eb9565b611abb578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611ac0565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611b43919061341a565b611b4d9190612b0a565b67ffffffffffffffff811115611b6657611b65613474565b5b6040519080825280601f01601f191660200182016040528015611b985781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611bd057611bcf612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c3457611c33612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611c74919061341a565b611c7e9190612b0a565b90505b6001811115611d1e577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611cc057611cbf612ba9565b5b1a60f81b828281518110611cd757611cd6612ba9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611d17906134a3565b9050611c81565b5060008414611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613519565b60405180910390fd5b8091505092915050565b611d768282610eec565b15611e4957600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611dee611661565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611e75836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611edc565b905092915050565b6000826000018281548110611e9557611e94612ba9565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611fe4576000600182611f0e9190613539565b9050600060018660000180549050611f269190613539565b9050818114611f95576000866000018281548110611f4757611f46612ba9565b5b9060005260206000200154905080876000018481548110611f6b57611f6a612ba9565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480611fa957611fa861356d565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611fea565b60009150505b92915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61202f81611ffa565b811461203a57600080fd5b50565b60008135905061204c81612026565b92915050565b60006020828403121561206857612067611ff0565b5b60006120768482850161203d565b91505092915050565b60008115159050919050565b6120948161207f565b82525050565b60006020820190506120af600083018461208b565b92915050565b6000819050919050565b6120c8816120b5565b82525050565b60006020820190506120e360008301846120bf565b92915050565b6120f2816120b5565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061214082612115565b9050919050565b61215081612135565b811461215b57600080fd5b50565b60008135905061216d81612147565b92915050565b6000806040838503121561218a57612189611ff0565b5b600061219885828601612100565b92505060206121a98582860161215e565b9150509250929050565b6000602082840312156121c9576121c8611ff0565b5b60006121d784828501612100565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612205576122046121e0565b5b8235905067ffffffffffffffff811115612222576122216121e5565b5b60208301915083602082028301111561223e5761223d6121ea565b5b9250929050565b60008083601f84011261225b5761225a6121e0565b5b8235905067ffffffffffffffff811115612278576122776121e5565b5b602083019150836020820283011115612294576122936121ea565b5b9250929050565b60008083601f8401126122b1576122b06121e0565b5b8235905067ffffffffffffffff8111156122ce576122cd6121e5565b5b6020830191508360208202830111156122ea576122e96121ea565b5b9250929050565b60008060008060008060008060a0898b03121561231157612310611ff0565b5b600089013567ffffffffffffffff81111561232f5761232e611ff5565b5b61233b8b828c016121ef565b9850985050602089013567ffffffffffffffff81111561235e5761235d611ff5565b5b61236a8b828c01612245565b9650965050604089013567ffffffffffffffff81111561238d5761238c611ff5565b5b6123998b828c0161229b565b945094505060606123ac8b828c01612100565b92505060806123bd8b828c01612100565b9150509295985092959890939650565b6000819050919050565b6123e0816123cd565b81146123eb57600080fd5b50565b6000813590506123fd816123d7565b92915050565b60006020828403121561241957612418611ff0565b5b6000612427848285016123ee565b91505092915050565b60008083601f840112612446576124456121e0565b5b8235905067ffffffffffffffff811115612463576124626121e5565b5b60208301915083602082028301111561247f5761247e6121ea565b5b9250929050565b6000806020838503121561249d5761249c611ff0565b5b600083013567ffffffffffffffff8111156124bb576124ba611ff5565b5b6124c785828601612430565b92509250509250929050565b600080600080600080600080600060c08a8c0312156124f5576124f4611ff0565b5b60008a013567ffffffffffffffff81111561251357612512611ff5565b5b61251f8c828d016121ef565b995099505060208a013567ffffffffffffffff81111561254257612541611ff5565b5b61254e8c828d01612245565b975097505060408a013567ffffffffffffffff81111561257157612570611ff5565b5b61257d8c828d0161229b565b955095505060606125908c828d01612100565b93505060806125a18c828d01612100565b92505060a06125b28c828d016123ee565b9150509295985092959850929598565b600080604083850312156125d9576125d8611ff0565b5b60006125e785828601612100565b92505060206125f8858286016123ee565b9150509250929050565b61260b81612135565b82525050565b60006020820190506126266000830184612602565b92915050565b612635816123cd565b82525050565b6000602082019050612650600083018461262c565b92915050565b600082825260208201905092915050565b6000819050919050565b61267a81612135565b82525050565b600061268c8383612671565b60208301905092915050565b60006126a7602084018461215e565b905092915050565b6000602082019050919050565b60006126c88385612656565b93506126d382612667565b8060005b8581101561270c576126e98284612698565b6126f38882612680565b97506126fe836126af565b9250506001810190506126d7565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b82818337600083830152505050565b600061274a8385612719565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561277d5761277c61272a565b5b60208302925061278e83858461272f565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b60006127e383856127b5565b93506127f083858461272f565b6127f9836127c6565b840190509392505050565b60006128118484846127d7565b90509392505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261284657612845612824565b5b83810192508235915060208301925067ffffffffffffffff82111561286e5761286d61281a565b5b6001820236038413156128845761288361281f565b5b509250929050565b6000602082019050919050565b60006128a5838561279a565b9350836020840285016128b7846127ab565b8060005b878110156128fd5784840389526128d28284612829565b6128dd868284612804565b95506128e88461288c565b935060208b019a5050506001810190506128bb565b50829750879450505050509392505050565b600060a082019050818103600083015261292a818a8c6126bc565b9050818103602083015261293f81888a61273e565b90508181036040830152612954818688612899565b905061296360608301856120bf565b61297060808301846120bf565b9998505050505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b60006129ea602f8361297d565b91506129f58261298e565b604082019050919050565b60006020820190508181036000830152612a19816129dd565b9050919050565b7f42454d756c746953696757616c6c65743a2063616c6c6572206d75737420626560008201527f2077616c6c657400000000000000000000000000000000000000000000000000602082015250565b6000612a7c60278361297d565b9150612a8782612a20565b604082019050919050565b60006020820190508181036000830152612aab81612a6f565b9050919050565b6000604082019050612ac7600083018561262c565b612ad4602083018461262c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b15826123cd565b9150612b20836123cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b5557612b54612adb565b5b828201905092915050565b6000612b6b826123cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b9e57612b9d612adb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f6578697374206f722066696e6973686564000000000000000000000000000000602082015250565b6000612c3460318361297d565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b600082825260208201905092915050565b6000612c878385612c6a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612cba57612cb961272a565b5b602083029250612ccb83858461272f565b82840190509392505050565b60006020820190508181036000830152612cf2818486612c7b565b90509392505050565b7f42454d756c746953696757616c6c65743a206c656e677468206d69736d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5760218361297d565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e60008201527f6f742062652063616e63656c6c65640000000000000000000000000000000000602082015250565b6000612de9602f8361297d565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b600060208284031215612e3557612e34611ff0565b5b6000612e438482850161215e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612e7857612e77612e4c565b5b80840192508235915067ffffffffffffffff821115612e9a57612e99612e51565b5b602083019250600182023603831315612eb657612eb5612e56565b5b509250929050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612eff601783612ebe565b9150612f0a82612ec9565b601782019050919050565b600081519050919050565b60005b83811015612f3e578082015181840152602081019050612f23565b83811115612f4d576000848401525b50505050565b6000612f5e82612f15565b612f688185612ebe565b9350612f78818560208601612f20565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612fba601183612ebe565b9150612fc582612f84565b601182019050919050565b6000612fdb82612ef2565b9150612fe78285612f53565b9150612ff282612fad565b9150612ffe8284612f53565b91508190509392505050565b600061301582612f15565b61301f818561297d565b935061302f818560208601612f20565b613038816127c6565b840191505092915050565b6000602082019050818103600083015261305d818461300a565b905092915050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e20616c726560008201527f616479207363686564756c656400000000000000000000000000000000000000602082015250565b60006130c1602d8361297d565b91506130cc82613065565b604082019050919050565b600060208201905081810360008301526130f0816130b4565b9050919050565b7f42454d756c746953696757616c6c65743a20696e73756666696369656e74206460008201527f656c617900000000000000000000000000000000000000000000000000000000602082015250565b600061315360248361297d565b915061315e826130f7565b604082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e60008201527f6f74207265616479000000000000000000000000000000000000000000000000602082015250565b60006131e560288361297d565b91506131f082613189565b604082019050919050565b60006020820190508181036000830152613214816131d8565b9050919050565b7f42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f742060008201527f726561636820726571756972656420636f6e6669726d6174696f6e7300000000602082015250565b6000613277603c8361297d565b91506132828261321b565b604082019050919050565b600060208201905081810360008301526132a68161326a565b9050919050565b7f42454d756c746953696757616c6c65743a206d697373696e6720646570656e6460008201527f656e637900000000000000000000000000000000000000000000000000000000602082015250565b600061330960248361297d565b9150613314826132ad565b604082019050919050565b60006020820190508181036000830152613338816132fc565b9050919050565b600081905092915050565b6000613356838561333f565b935061336383858461272f565b82840190509392505050565b600061337c82848661334a565b91508190509392505050565b7f42454d756c746953696757616c6c65743a20756e6465726c79696e672074726160008201527f6e73616374696f6e207265766572746564000000000000000000000000000000602082015250565b60006133e460318361297d565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b6000613425826123cd565b9150613430836123cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346957613468612adb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006134ae826123cd565b915060008214156134c2576134c1612adb565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061350360208361297d565b915061350e826134cd565b602082019050919050565b60006020820190508181036000830152613532816134f6565b9050919050565b6000613544826123cd565b915061354f836123cd565b92508282101561356257613561612adb565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122054ddc115958442d3f31e5e1f60d427e28afe6a122f19fa811f2d30a313fa2a7f64736f6c634300080a0033", "immutableReferences": {}, "generatedSources": [ { @@ -22322,9 +22300,9 @@ "name": "#utility.yul" } ], - "sourceMap": "168:10313:9:-:0;;;1755:1064;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1920:55;275:32;;1920:13;;;:55;;:::i;:::-;1981:49;351:26;275:32;1981:13;;;:49;;:::i;:::-;2036;421:26;275:32;2036:13;;;:49;;:::i;:::-;2091:48;490:25;275:32;2091:13;;;:48;;:::i;:::-;2184:45;275:32;2216:12;:10;;;:12;;:::i;:::-;2184:10;;;:45;;:::i;:::-;2235:46;275:32;2275:4;2235:10;;;:46;;:::i;:::-;2319:9;2314:101;2338:9;:16;2334:1;:20;2314:101;;;2369:39;351:26;2395:9;2405:1;2395:12;;;;;;;;:::i;:::-;;;;;;;;2369:10;;;:39;;:::i;:::-;2356:3;;;;:::i;:::-;;;2314:101;;;;2453:9;2448:102;2472:10;:17;2468:1;:21;2448:102;;;2504:39;490:25;2529:10;2540:1;2529:13;;;;;;;;:::i;:::-;;;;;;;;2504:10;;;:39;;:::i;:::-;2491:3;;;;:::i;:::-;;;2448:102;;;;2587:9;2582:101;2606:9;:16;2602:1;:20;2582:101;;;2637:39;421:26;2663:9;2673:1;2663:12;;;;;;;;:::i;:::-;;;;;;;;2637:10;;;:39;;:::i;:::-;2624:3;;;;:::i;:::-;;;2582:101;;;;2700:9;2689:8;:20;;;;2720:27;2735:1;2738:8;;2720:27;;;;;;;:::i;:::-;;;;;;;;2764:9;2753:8;:20;;;;2784:30;2802:1;2805:8;;2784:30;;;;;;;:::i;:::-;;;;;;;;1755:1064;;;;;168:10313;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;6257:110:0:-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;;;;;:31;;;;:::i;:::-;;1978:166;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;;;:50;;:::i;:::-;7698:57;;7612:150;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:404:8:-;1760:4;1781:21;1791:3;1796:5;1781:9;;;:21;;:::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:117::-;803:1;800;793:12;817:102;858:6;909:2;905:7;900:2;893:5;889:14;885:28;875:38;;817:102;;;:::o;925:180::-;973:77;970:1;963:88;1070:4;1067:1;1060:15;1094:4;1091:1;1084:15;1111:281;1194:27;1216:4;1194:27;:::i;:::-;1186:6;1182:40;1324:6;1312:10;1309:22;1288:18;1276:10;1273:34;1270:62;1267:88;;;1335:18;;:::i;:::-;1267:88;1375:10;1371:2;1364:22;1154:238;1111:281;;:::o;1398:129::-;1432:6;1459:20;;:::i;:::-;1449:30;;1488:33;1516:4;1508:6;1488:33;:::i;:::-;1398:129;;;:::o;1533:311::-;1610:4;1700:18;1692:6;1689:30;1686:56;;;1722:18;;:::i;:::-;1686:56;1772:4;1764:6;1760:17;1752:25;;1832:4;1826;1822:15;1814:23;;1533:311;;;:::o;1850:117::-;1959:1;1956;1949:12;1973:126;2010:7;2050:42;2043:5;2039:54;2028:65;;1973:126;;;:::o;2105:96::-;2142:7;2171:24;2189:5;2171:24;:::i;:::-;2160:35;;2105:96;;;:::o;2207:122::-;2280:24;2298:5;2280:24;:::i;:::-;2273:5;2270:35;2260:63;;2319:1;2316;2309:12;2260:63;2207:122;:::o;2335:143::-;2392:5;2423:6;2417:13;2408:22;;2439:33;2466:5;2439:33;:::i;:::-;2335:143;;;;:::o;2501:732::-;2608:5;2633:81;2649:64;2706:6;2649:64;:::i;:::-;2633:81;:::i;:::-;2624:90;;2734:5;2763:6;2756:5;2749:21;2797:4;2790:5;2786:16;2779:23;;2850:4;2842:6;2838:17;2830:6;2826:30;2879:3;2871:6;2868:15;2865:122;;;2898:79;;:::i;:::-;2865:122;3013:6;2996:231;3030:6;3025:3;3022:15;2996:231;;;3105:3;3134:48;3178:3;3166:10;3134:48;:::i;:::-;3129:3;3122:61;3212:4;3207:3;3203:14;3196:21;;3072:155;3056:4;3051:3;3047:14;3040:21;;2996:231;;;3000:21;2614:619;;2501:732;;;;;:::o;3256:385::-;3338:5;3387:3;3380:4;3372:6;3368:17;3364:27;3354:122;;3395:79;;:::i;:::-;3354:122;3505:6;3499:13;3530:105;3631:3;3623:6;3616:4;3608:6;3604:17;3530:105;:::i;:::-;3521:114;;3344:297;3256:385;;;;:::o;3647:1586::-;3828:6;3836;3844;3852;3860;3909:3;3897:9;3888:7;3884:23;3880:33;3877:120;;;3916:79;;:::i;:::-;3877:120;4036:1;4061:64;4117:7;4108:6;4097:9;4093:22;4061:64;:::i;:::-;4051:74;;4007:128;4174:2;4200:64;4256:7;4247:6;4236:9;4232:22;4200:64;:::i;:::-;4190:74;;4145:129;4334:2;4323:9;4319:18;4313:25;4365:18;4357:6;4354:30;4351:117;;;4387:79;;:::i;:::-;4351:117;4492:89;4573:7;4564:6;4553:9;4549:22;4492:89;:::i;:::-;4482:99;;4284:307;4651:2;4640:9;4636:18;4630:25;4682:18;4674:6;4671:30;4668:117;;;4704:79;;:::i;:::-;4668:117;4809:89;4890:7;4881:6;4870:9;4866:22;4809:89;:::i;:::-;4799:99;;4601:307;4968:3;4957:9;4953:19;4947:26;5000:18;4992:6;4989:30;4986:117;;;5022:79;;:::i;:::-;4986:117;5127:89;5208:7;5199:6;5188:9;5184:22;5127:89;:::i;:::-;5117:99;;4918:308;3647:1586;;;;;;;;:::o;5239:180::-;5287:77;5284:1;5277:88;5384:4;5381:1;5374:15;5408:4;5405:1;5398:15;5425:180;5473:77;5470:1;5463:88;5570:4;5567:1;5560:15;5594:4;5591:1;5584:15;5611:233;5650:3;5673:24;5691:5;5673:24;:::i;:::-;5664:33;;5719:66;5712:5;5709:77;5706:103;;;5789:18;;:::i;:::-;5706:103;5836:1;5829:5;5825:13;5818:20;;5611:233;;;:::o;5850:85::-;5895:7;5924:5;5913:16;;5850:85;;;:::o;5941:60::-;5969:3;5990:5;5983:12;;5941:60;;;:::o;6007:158::-;6065:9;6098:61;6116:42;6125:32;6151:5;6125:32;:::i;:::-;6116:42;:::i;:::-;6098:61;:::i;:::-;6085:74;;6007:158;;;:::o;6171:147::-;6266:45;6305:5;6266:45;:::i;:::-;6261:3;6254:58;6171:147;;:::o;6324:118::-;6411:24;6429:5;6411:24;:::i;:::-;6406:3;6399:37;6324:118;;:::o;6448:348::-;6577:4;6615:2;6604:9;6600:18;6592:26;;6628:79;6704:1;6693:9;6689:17;6680:6;6628:79;:::i;:::-;6717:72;6785:2;6774:9;6770:18;6761:6;6717:72;:::i;:::-;6448:348;;;;;:::o;168:10313:9:-;;;;;;;", - "deployedSourceMap": "168:10313:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;381:66:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;225:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4228:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5001:286:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4505:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3492:114:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5404:214:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10005:145:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3680:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3827:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7342:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5521:560;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;311:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1431:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10325:154:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;451:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6558:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;698:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6879:366:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4772:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;725:23:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7947:682;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;634:212:1;719:4;757:42;742:57;;;:11;:57;;;;:97;;;;803:36;827:11;803:23;:36::i;:::-;742:97;735:104;;634:212;;;:::o;381:66:9:-;421:26;381:66;:::o;629:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;225:82::-;275:32;225:82;:::o;4228:206::-;4303:10;4321:17;4341:16;4354:2;4341:12;:16::i;:::-;4321:36;;571:1;4370:9;:27;:59;;;;;4414:15;4401:9;:28;;4370:59;4363:66;;;4228:206;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;5001:286:9:-;5191:12;5239:7;;5248:6;;5256:5;;5263:11;5276:4;5228:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5218:64;;;;;;5211:71;;5001:286;;;;;;;;;;:::o;4505:130::-;4571:9;571:1;4595:16;4608:2;4595:12;:16::i;:::-;:35;4588:42;;4505:130;;;:::o;4387:145:0:-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;3492:114:9:-;3554:12;3600:1;3581:16;3594:2;3581:12;:16::i;:::-;:20;3574:27;;3492:114;;;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;10005:145:9:-;1607:4;1585:27;;:10;:27;;;1570:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10084:35:::1;10099:8;;10109:9;10084:35;;;;;;;:::i;:::-;;;;;;;;10136:9;10125:8;:20;;;;10005:145:::0;:::o;3680:143::-;3757:12;571:1;3784:16;3797:2;3784:12;:16::i;:::-;:34;3777:41;;3680:143;;;:::o;3827:329::-;3881:10;3899:13;3915:1;3899:17;;3922:21;3946:33;421:26;3946:18;:33::i;:::-;3922:57;;3990:9;3985:167;4009:13;4005:1;:17;3985:167;;;4041:13;:17;4055:2;4041:17;;;;;;;;;;;:50;4059:31;421:26;4088:1;4059:13;:31::i;:::-;4041:50;;;;;;;;;;;;;;;;;;;;;;;;;4037:66;;;4102:1;4093:10;;;;;:::i;:::-;;;4037:66;4124:8;;4115:5;:17;4111:34;;;4141:4;4134:11;;;;;;;4111:34;4024:3;;;;;:::i;:::-;;;;3985:167;;;;3893:263;;3827:329;;;;:::o;7342:365::-;490:25;3140;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;7453:9:::1;7448:217;7472:3;;:10;;7468:1;:14;7448:217;;;7514:26;7533:3;;7537:1;7533:6;;;;;;;:::i;:::-;;;;;;;;7514:18;:26::i;:::-;7497:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;7653:5;7617:13;:21;7631:3;;7635:1;7631:6;;;;;;;:::i;:::-;;;;;;;;7617:21;;;;;;;;;;;:33;7639:10;7617:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;7484:3;;;;:::i;:::-;;;7448:217;;;;7686:10;7675:27;;;7698:3;;7675:27;;;;;;;:::i;:::-;;;;;;;;7342:365:::0;;;:::o;5521:560::-;351:26;3140:25;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;5784:6:::1;;:13;;5766:7;;:14;;:31;5751:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;5885:5;;:12;;5867:7;;:14;;:30;5852:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;5953:10;5966:56;5980:7;;5989:6;;5997:5;;6004:11;6017:4;5966:13;:56::i;:::-;5953:69;;6028:20;6038:2;6042:5;6028:9;:20::i;:::-;6073:2;6059:17;;;;;;;;;;5745:336;5521:560:::0;;;;;;;;;;:::o;311:66::-;351:26;311:66;:::o;1431:151:1:-;1521:7;1547:28;1569:5;1547:12;:18;1560:4;1547:18;;;;;;;;;;;:21;;:28;;;;:::i;:::-;1540:35;;1431:151;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;2027:49::-;2072:4;2027:49;;;:::o;10325:154:9:-;1607:4;1585:27;;:10;:27;;;1570:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10410:38:::1;10428:8;;10438:9;10410:38;;;;;;;:::i;:::-;;;;;;;;10465:9;10454:8;:20;;;;10325:154:::0;:::o;451:64::-;490:25;451:64;:::o;6558:241::-;351:26;3140:25;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;6656:22:::1;6675:2;6656:18;:22::i;:::-;6641:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;6754:11;:15;6766:2;6754:15;;;;;;;;;;;6747:22;;;6791:2;6781:13;;;;;;;;;;6558:241:::0;;:::o;698:23::-;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::o;6879:366:9:-;490:25;3140;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;6990:9:::1;6985:216;7009:3;;:10;;7005:1;:14;6985:216;;;7051:26;7070:3;;7074:1;7070:6;;;;;;;:::i;:::-;;;;;;;;7051:18;:26::i;:::-;7034:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;7190:4;7154:13;:21;7168:3;;7172:1;7168:6;;;;;;;:::i;:::-;;;;;;;;7154:21;;;;;;;;;;;:33;7176:10;7154:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;7021:3;;;;:::i;:::-;;;6985:216;;;;7224:10;7211:29;;;7236:3;;7211:29;;;;;;;:::i;:::-;;;;;;;;6879:366:::0;;;:::o;4772:123::-;4843:17;4875:11;:15;4887:2;4875:15;;;;;;;;;;;;4868:22;;4772:123;;;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;725:23:9:-;;;;:::o;7947:682::-;421:26;3140:25;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;8198:6:::1;;:13;;8180:7;;:14;;:31;8165:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;8299:5;;:12;;8281:7;;:14;;:30;8266:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;8367:10;8380:56;8394:7;;8403:6;;8411:5;;8418:11;8431:4;8380:13;:56::i;:::-;8367:69;;8442:28;8454:2;8458:11;8442;:28::i;:::-;8481:9;8476:98;8500:7;;:14;;8496:1;:18;8476:98;;;8529:38;8535:7;;8543:1;8535:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8547:6;;8554:1;8547:9;;;;;;;:::i;:::-;;;;;;;;8558:5;;8564:1;8558:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;8529:5;:38::i;:::-;8516:3;;;;:::i;:::-;;;8476:98;;;;8579:14;8590:2;8579:10;:14::i;:::-;8621:2;8604:20;;;;;;;;;;8159:470;7947:682:::0;;;;;;;;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;:31;;;;:::i;:::-;;1978:166;;:::o;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:34;2389:7;2363:12;:18;2376:4;2363:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;2233:171;;:::o;6175:258:9:-;6244:15;6256:2;6244:11;:15::i;:::-;6243:16;6235:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6332:8;;6323:5;:17;;6315:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6423:5;6405:15;:23;;;;:::i;:::-;6387:11;:15;6399:2;6387:15;;;;;;;;;;;:41;;;;6175:258;;:::o;8870:156:8:-;8944:7;8994:22;8998:3;:10;;9010:5;8994:3;:22::i;:::-;8986:31;;8963:56;;8870:156;;;;:::o;8413:115::-;8476:7;8502:19;8510:3;:10;;8502:7;:19::i;:::-;8495:26;;8413:115;;;:::o;8704:393:9:-;8785:20;8802:2;8785:16;:20::i;:::-;8777:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8871:15;8883:2;8871:11;:15::i;:::-;8856:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;9006:1;8998:10;;8983:11;:25;:57;;;;9012:28;9028:11;9012:15;:28::i;:::-;8983:57;8968:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;8704:393;;:::o;9429:211::-;9511:12;9529:6;:11;;9548:5;9555:4;;9529:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9510:50;;;9574:7;9566:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9504:136;9429:211;;;;:::o;9171:163::-;9225:20;9242:2;9225:16;:20::i;:::-;9217:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;571:1;9296:11;:15;9308:2;9296:15;;;;;;;;;;;:33;;;;9171:163;:::o;1697:404:8:-;1760:4;1781:21;1791:3;1796:5;1781:9;:21::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;829:155:6:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;1588:441:5:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;7219:234:0:-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;7930:156:8:-;8003:4;8026:53;8034:3;:10;;8070:5;8054:23;;8046:32;;8026:7;:53::i;:::-;8019:60;;7930:156;;;;:::o;4395:118::-;4462:7;4488:3;:11;;4500:5;4488:18;;;;;;;;:::i;:::-;;;;;;;;;;4481:25;;4395:118;;;;:::o;3946:107::-;4002:7;4028:3;:11;;:18;;;;4021:25;;3946:107;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;2269:1388::-;2335:4;2451:18;2472:3;:12;;:19;2485:5;2472:19;;;;;;;;;;;;2451:40;;2520:1;2506:10;:15;2502:1149;;2875:21;2912:1;2899:10;:14;;;;:::i;:::-;2875:38;;2927:17;2968:1;2947:3;:11;;:18;;;;:22;;;;:::i;:::-;2927:42;;3001:13;2988:9;:26;2984:398;;3034:17;3054:3;:11;;3066:9;3054:22;;;;;;;;:::i;:::-;;;;;;;;;;3034:42;;3205:9;3176:3;:11;;3188:13;3176:26;;;;;;;;:::i;:::-;;;;;;;;;:38;;;;3314:10;3288:3;:12;;:23;3301:9;3288:23;;;;;;;;;;;:36;;;;3016:366;2984:398;3460:3;:11;;:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3552:3;:12;;:19;3565:5;3552:19;;;;;;;;;;;3545:26;;;3593:4;3586:11;;;;;;;2502:1149;3635:5;3628:12;;;2269:1388;;;;;:::o;88:117:10:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:122::-;2026:24;2044:5;2026:24;:::i;:::-;2019:5;2016:35;2006:63;;2065:1;2062;2055:12;2006:63;1953:122;:::o;2081:139::-;2127:5;2165:6;2152:20;2143:29;;2181:33;2208:5;2181:33;:::i;:::-;2081:139;;;;:::o;2226:126::-;2263:7;2303:42;2296:5;2292:54;2281:65;;2226:126;;;:::o;2358:96::-;2395:7;2424:24;2442:5;2424:24;:::i;:::-;2413:35;;2358:96;;;:::o;2460:122::-;2533:24;2551:5;2533:24;:::i;:::-;2526:5;2523:35;2513:63;;2572:1;2569;2562:12;2513:63;2460:122;:::o;2588:139::-;2634:5;2672:6;2659:20;2650:29;;2688:33;2715:5;2688:33;:::i;:::-;2588:139;;;;:::o;2733:474::-;2801:6;2809;2858:2;2846:9;2837:7;2833:23;2829:32;2826:119;;;2864:79;;:::i;:::-;2826:119;2984:1;3009:53;3054:7;3045:6;3034:9;3030:22;3009:53;:::i;:::-;2999:63;;2955:117;3111:2;3137:53;3182:7;3173:6;3162:9;3158:22;3137:53;:::i;:::-;3127:63;;3082:118;2733:474;;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:117::-;3657:1;3654;3647:12;3671:117;3780:1;3777;3770:12;3794:117;3903:1;3900;3893:12;3934:568;4007:8;4017:6;4067:3;4060:4;4052:6;4048:17;4044:27;4034:122;;4075:79;;:::i;:::-;4034:122;4188:6;4175:20;4165:30;;4218:18;4210:6;4207:30;4204:117;;;4240:79;;:::i;:::-;4204:117;4354:4;4346:6;4342:17;4330:29;;4408:3;4400:4;4392:6;4388:17;4378:8;4374:32;4371:41;4368:128;;;4415:79;;:::i;:::-;4368:128;3934:568;;;;;:::o;4525:::-;4598:8;4608:6;4658:3;4651:4;4643:6;4639:17;4635:27;4625:122;;4666:79;;:::i;:::-;4625:122;4779:6;4766:20;4756:30;;4809:18;4801:6;4798:30;4795:117;;;4831:79;;:::i;:::-;4795:117;4945:4;4937:6;4933:17;4921:29;;4999:3;4991:4;4983:6;4979:17;4969:8;4965:32;4962:41;4959:128;;;5006:79;;:::i;:::-;4959:128;4525:568;;;;;:::o;5114:579::-;5198:8;5208:6;5258:3;5251:4;5243:6;5239:17;5235:27;5225:122;;5266:79;;:::i;:::-;5225:122;5379:6;5366:20;5356:30;;5409:18;5401:6;5398:30;5395:117;;;5431:79;;:::i;:::-;5395:117;5545:4;5537:6;5533:17;5521:29;;5599:3;5591:4;5583:6;5579:17;5569:8;5565:32;5562:41;5559:128;;;5606:79;;:::i;:::-;5559:128;5114:579;;;;;:::o;5699:1623::-;5886:6;5894;5902;5910;5918;5926;5934;5942;5991:3;5979:9;5970:7;5966:23;5962:33;5959:120;;;5998:79;;:::i;:::-;5959:120;6146:1;6135:9;6131:17;6118:31;6176:18;6168:6;6165:30;6162:117;;;6198:79;;:::i;:::-;6162:117;6311:80;6383:7;6374:6;6363:9;6359:22;6311:80;:::i;:::-;6293:98;;;;6089:312;6468:2;6457:9;6453:18;6440:32;6499:18;6491:6;6488:30;6485:117;;;6521:79;;:::i;:::-;6485:117;6634:80;6706:7;6697:6;6686:9;6682:22;6634:80;:::i;:::-;6616:98;;;;6411:313;6791:2;6780:9;6776:18;6763:32;6822:18;6814:6;6811:30;6808:117;;;6844:79;;:::i;:::-;6808:117;6957:91;7040:7;7031:6;7020:9;7016:22;6957:91;:::i;:::-;6939:109;;;;6734:324;7097:2;7123:53;7168:7;7159:6;7148:9;7144:22;7123:53;:::i;:::-;7113:63;;7068:118;7225:3;7252:53;7297:7;7288:6;7277:9;7273:22;7252:53;:::i;:::-;7242:63;;7196:119;5699:1623;;;;;;;;;;;:::o;7328:77::-;7365:7;7394:5;7383:16;;7328:77;;;:::o;7411:122::-;7484:24;7502:5;7484:24;:::i;:::-;7477:5;7474:35;7464:63;;7523:1;7520;7513:12;7464:63;7411:122;:::o;7539:139::-;7585:5;7623:6;7610:20;7601:29;;7639:33;7666:5;7639:33;:::i;:::-;7539:139;;;;:::o;7684:329::-;7743:6;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7918:1;7943:53;7988:7;7979:6;7968:9;7964:22;7943:53;:::i;:::-;7933:63;;7889:117;7684:329;;;;:::o;8036:568::-;8109:8;8119:6;8169:3;8162:4;8154:6;8150:17;8146:27;8136:122;;8177:79;;:::i;:::-;8136:122;8290:6;8277:20;8267:30;;8320:18;8312:6;8309:30;8306:117;;;8342:79;;:::i;:::-;8306:117;8456:4;8448:6;8444:17;8432:29;;8510:3;8502:4;8494:6;8490:17;8480:8;8476:32;8473:41;8470:128;;;8517:79;;:::i;:::-;8470:128;8036:568;;;;;:::o;8610:559::-;8696:6;8704;8753:2;8741:9;8732:7;8728:23;8724:32;8721:119;;;8759:79;;:::i;:::-;8721:119;8907:1;8896:9;8892:17;8879:31;8937:18;8929:6;8926:30;8923:117;;;8959:79;;:::i;:::-;8923:117;9072:80;9144:7;9135:6;9124:9;9120:22;9072:80;:::i;:::-;9054:98;;;;8850:312;8610:559;;;;;:::o;9175:1769::-;9371:6;9379;9387;9395;9403;9411;9419;9427;9435;9484:3;9472:9;9463:7;9459:23;9455:33;9452:120;;;9491:79;;:::i;:::-;9452:120;9639:1;9628:9;9624:17;9611:31;9669:18;9661:6;9658:30;9655:117;;;9691:79;;:::i;:::-;9655:117;9804:80;9876:7;9867:6;9856:9;9852:22;9804:80;:::i;:::-;9786:98;;;;9582:312;9961:2;9950:9;9946:18;9933:32;9992:18;9984:6;9981:30;9978:117;;;10014:79;;:::i;:::-;9978:117;10127:80;10199:7;10190:6;10179:9;10175:22;10127:80;:::i;:::-;10109:98;;;;9904:313;10284:2;10273:9;10269:18;10256:32;10315:18;10307:6;10304:30;10301:117;;;10337:79;;:::i;:::-;10301:117;10450:91;10533:7;10524:6;10513:9;10509:22;10450:91;:::i;:::-;10432:109;;;;10227:324;10590:2;10616:53;10661:7;10652:6;10641:9;10637:22;10616:53;:::i;:::-;10606:63;;10561:118;10718:3;10745:53;10790:7;10781:6;10770:9;10766:22;10745:53;:::i;:::-;10735:63;;10689:119;10847:3;10874:53;10919:7;10910:6;10899:9;10895:22;10874:53;:::i;:::-;10864:63;;10818:119;9175:1769;;;;;;;;;;;:::o;10950:474::-;11018:6;11026;11075:2;11063:9;11054:7;11050:23;11046:32;11043:119;;;11081:79;;:::i;:::-;11043:119;11201:1;11226:53;11271:7;11262:6;11251:9;11247:22;11226:53;:::i;:::-;11216:63;;11172:117;11328:2;11354:53;11399:7;11390:6;11379:9;11375:22;11354:53;:::i;:::-;11344:63;;11299:118;10950:474;;;;;:::o;11430:118::-;11517:24;11535:5;11517:24;:::i;:::-;11512:3;11505:37;11430:118;;:::o;11554:222::-;11647:4;11685:2;11674:9;11670:18;11662:26;;11698:71;11766:1;11755:9;11751:17;11742:6;11698:71;:::i;:::-;11554:222;;;;:::o;11782:118::-;11869:24;11887:5;11869:24;:::i;:::-;11864:3;11857:37;11782:118;;:::o;11906:222::-;11999:4;12037:2;12026:9;12022:18;12014:26;;12050:71;12118:1;12107:9;12103:17;12094:6;12050:71;:::i;:::-;11906:222;;;;:::o;12134:184::-;12233:11;12267:6;12262:3;12255:19;12307:4;12302:3;12298:14;12283:29;;12134:184;;;;:::o;12324:102::-;12393:4;12416:3;12408:11;;12324:102;;;:::o;12432:108::-;12509:24;12527:5;12509:24;:::i;:::-;12504:3;12497:37;12432:108;;:::o;12546:179::-;12615:10;12636:46;12678:3;12670:6;12636:46;:::i;:::-;12714:4;12709:3;12705:14;12691:28;;12546:179;;;;:::o;12731:122::-;12783:5;12808:39;12843:2;12838:3;12834:12;12829:3;12808:39;:::i;:::-;12799:48;;12731:122;;;;:::o;12859:115::-;12931:4;12963;12958:3;12954:14;12946:22;;12859:115;;;:::o;13010:699::-;13139:3;13162:86;13241:6;13236:3;13162:86;:::i;:::-;13155:93;;13272:58;13324:5;13272:58;:::i;:::-;13353:7;13384:1;13369:315;13394:6;13391:1;13388:13;13369:315;;;13464:42;13499:6;13490:7;13464:42;:::i;:::-;13526:63;13585:3;13570:13;13526:63;:::i;:::-;13519:70;;13612:62;13667:6;13612:62;:::i;:::-;13602:72;;13429:255;13416:1;13413;13409:9;13404:14;;13369:315;;;13373:14;13700:3;13693:10;;13144:565;;13010:699;;;;;:::o;13715:184::-;13814:11;13848:6;13843:3;13836:19;13888:4;13883:3;13879:14;13864:29;;13715:184;;;;:::o;13905:117::-;14014:1;14011;14004:12;14028:154;14112:6;14107:3;14102;14089:30;14174:1;14165:6;14160:3;14156:16;14149:27;14028:154;;;:::o;14218:537::-;14346:3;14367:86;14446:6;14441:3;14367:86;:::i;:::-;14360:93;;14477:66;14469:6;14466:78;14463:165;;;14547:79;;:::i;:::-;14463:165;14659:4;14651:6;14647:17;14637:27;;14674:43;14710:6;14705:3;14698:5;14674:43;:::i;:::-;14742:6;14737:3;14733:16;14726:23;;14218:537;;;;;:::o;14761:193::-;14869:11;14903:6;14898:3;14891:19;14943:4;14938:3;14934:14;14919:29;;14761:193;;;;:::o;14960:113::-;15040:4;15063:3;15055:11;;14960:113;;;:::o;15079:158::-;15152:11;15186:6;15181:3;15174:19;15226:4;15221:3;15217:14;15202:29;;15079:158;;;;:::o;15243:102::-;15284:6;15335:2;15331:7;15326:2;15319:5;15315:14;15311:28;15301:38;;15243:102;;;:::o;15373:281::-;15459:3;15480:60;15533:6;15528:3;15480:60;:::i;:::-;15473:67;;15550:43;15586:6;15581:3;15574:5;15550:43;:::i;:::-;15618:29;15640:6;15618:29;:::i;:::-;15613:3;15609:39;15602:46;;15373:281;;;;;:::o;15660:212::-;15757:10;15792:74;15862:3;15854:6;15846;15792:74;:::i;:::-;15778:88;;15660:212;;;;;:::o;15878:117::-;15987:1;15984;15977:12;16001:117;16110:1;16107;16100:12;16124:117;16233:1;16230;16223:12;16247:714;16311:5;16318:6;16374:3;16361:17;16466:1;16460:4;16456:12;16445:8;16429:14;16425:29;16421:48;16401:18;16397:73;16387:168;;16474:79;;:::i;:::-;16387:168;16597:8;16577:18;16573:33;16564:42;;16639:5;16626:19;16616:29;;16674:4;16667:5;16663:16;16654:25;;16702:18;16694:6;16691:30;16688:117;;;16724:79;;:::i;:::-;16688:117;16863:4;16855:6;16851:17;16835:14;16831:38;16821:8;16817:53;16814:140;;;16873:79;;:::i;:::-;16814:140;16325:636;16247:714;;;;;:::o;16967:126::-;17050:4;17082;17077:3;17073:14;17065:22;;16967:126;;;:::o;17125:990::-;17274:3;17297:95;17385:6;17380:3;17297:95;:::i;:::-;17290:102;;17418:3;17463:4;17455:6;17451:17;17446:3;17442:27;17493:69;17556:5;17493:69;:::i;:::-;17585:7;17616:1;17601:469;17626:6;17623:1;17620:13;17601:469;;;17697:9;17691:4;17687:20;17682:3;17675:33;17757:53;17803:6;17794:7;17757:53;:::i;:::-;17831:99;17925:4;17910:13;17895;17831:99;:::i;:::-;17823:107;;17953:73;18019:6;17953:73;:::i;:::-;17943:83;;18055:4;18050:3;18046:14;18039:21;;17661:409;;17648:1;17645;17641:9;17636:14;;17601:469;;;17605:14;18086:4;18079:11;;18106:3;18099:10;;17279:836;;;;17125:990;;;;;:::o;18121:1217::-;18526:4;18564:3;18553:9;18549:19;18541:27;;18614:9;18608:4;18604:20;18600:1;18589:9;18585:17;18578:47;18642:118;18755:4;18746:6;18738;18642:118;:::i;:::-;18634:126;;18807:9;18801:4;18797:20;18792:2;18781:9;18777:18;18770:48;18835:118;18948:4;18939:6;18931;18835:118;:::i;:::-;18827:126;;19000:9;18994:4;18990:20;18985:2;18974:9;18970:18;18963:48;19028:138;19161:4;19152:6;19144;19028:138;:::i;:::-;19020:146;;19176:72;19244:2;19233:9;19229:18;19220:6;19176:72;:::i;:::-;19258:73;19326:3;19315:9;19311:19;19302:6;19258:73;:::i;:::-;18121:1217;;;;;;;;;;;:::o;19344:169::-;19428:11;19462:6;19457:3;19450:19;19502:4;19497:3;19493:14;19478:29;;19344:169;;;;:::o;19519:234::-;19659:34;19655:1;19647:6;19643:14;19636:58;19728:17;19723:2;19715:6;19711:15;19704:42;19519:234;:::o;19759:366::-;19901:3;19922:67;19986:2;19981:3;19922:67;:::i;:::-;19915:74;;19998:93;20087:3;19998:93;:::i;:::-;20116:2;20111:3;20107:12;20100:19;;19759:366;;;:::o;20131:419::-;20297:4;20335:2;20324:9;20320:18;20312:26;;20384:9;20378:4;20374:20;20370:1;20359:9;20355:17;20348:47;20412:131;20538:4;20412:131;:::i;:::-;20404:139;;20131:419;;;:::o;20556:226::-;20696:34;20692:1;20684:6;20680:14;20673:58;20765:9;20760:2;20752:6;20748:15;20741:34;20556:226;:::o;20788:366::-;20930:3;20951:67;21015:2;21010:3;20951:67;:::i;:::-;20944:74;;21027:93;21116:3;21027:93;:::i;:::-;21145:2;21140:3;21136:12;21129:19;;20788:366;;;:::o;21160:419::-;21326:4;21364:2;21353:9;21349:18;21341:26;;21413:9;21407:4;21403:20;21399:1;21388:9;21384:17;21377:47;21441:131;21567:4;21441:131;:::i;:::-;21433:139;;21160:419;;;:::o;21585:332::-;21706:4;21744:2;21733:9;21729:18;21721:26;;21757:71;21825:1;21814:9;21810:17;21801:6;21757:71;:::i;:::-;21838:72;21906:2;21895:9;21891:18;21882:6;21838:72;:::i;:::-;21585:332;;;;;:::o;21923:180::-;21971:77;21968:1;21961:88;22068:4;22065:1;22058:15;22092:4;22089:1;22082:15;22109:305;22149:3;22168:20;22186:1;22168:20;:::i;:::-;22163:25;;22202:20;22220:1;22202:20;:::i;:::-;22197:25;;22356:1;22288:66;22284:74;22281:1;22278:81;22275:107;;;22362:18;;:::i;:::-;22275:107;22406:1;22403;22399:9;22392:16;;22109:305;;;;:::o;22420:233::-;22459:3;22482:24;22500:5;22482:24;:::i;:::-;22473:33;;22528:66;22521:5;22518:77;22515:103;;;22598:18;;:::i;:::-;22515:103;22645:1;22638:5;22634:13;22627:20;;22420:233;;;:::o;22659:180::-;22707:77;22704:1;22697:88;22804:4;22801:1;22794:15;22828:4;22825:1;22818:15;22845:236;22985:34;22981:1;22973:6;22969:14;22962:58;23054:19;23049:2;23041:6;23037:15;23030:44;22845:236;:::o;23087:366::-;23229:3;23250:67;23314:2;23309:3;23250:67;:::i;:::-;23243:74;;23326:93;23415:3;23326:93;:::i;:::-;23444:2;23439:3;23435:12;23428:19;;23087:366;;;:::o;23459:419::-;23625:4;23663:2;23652:9;23648:18;23640:26;;23712:9;23706:4;23702:20;23698:1;23687:9;23683:17;23676:47;23740:131;23866:4;23740:131;:::i;:::-;23732:139;;23459:419;;;:::o;23884:184::-;23983:11;24017:6;24012:3;24005:19;24057:4;24052:3;24048:14;24033:29;;23884:184;;;;:::o;24104:537::-;24232:3;24253:86;24332:6;24327:3;24253:86;:::i;:::-;24246:93;;24363:66;24355:6;24352:78;24349:165;;;24433:79;;:::i;:::-;24349:165;24545:4;24537:6;24533:17;24523:27;;24560:43;24596:6;24591:3;24584:5;24560:43;:::i;:::-;24628:6;24623:3;24619:16;24612:23;;24104:537;;;;;:::o;24647:393::-;24800:4;24838:2;24827:9;24823:18;24815:26;;24887:9;24881:4;24877:20;24873:1;24862:9;24858:17;24851:47;24915:118;25028:4;25019:6;25011;24915:118;:::i;:::-;24907:126;;24647:393;;;;;:::o;25046:220::-;25186:34;25182:1;25174:6;25170:14;25163:58;25255:3;25250:2;25242:6;25238:15;25231:28;25046:220;:::o;25272:366::-;25414:3;25435:67;25499:2;25494:3;25435:67;:::i;:::-;25428:74;;25511:93;25600:3;25511:93;:::i;:::-;25629:2;25624:3;25620:12;25613:19;;25272:366;;;:::o;25644:419::-;25810:4;25848:2;25837:9;25833:18;25825:26;;25897:9;25891:4;25887:20;25883:1;25872:9;25868:17;25861:47;25925:131;26051:4;25925:131;:::i;:::-;25917:139;;25644:419;;;:::o;26069:234::-;26209:34;26205:1;26197:6;26193:14;26186:58;26278:17;26273:2;26265:6;26261:15;26254:42;26069:234;:::o;26309:366::-;26451:3;26472:67;26536:2;26531:3;26472:67;:::i;:::-;26465:74;;26548:93;26637:3;26548:93;:::i;:::-;26666:2;26661:3;26657:12;26650:19;;26309:366;;;:::o;26681:419::-;26847:4;26885:2;26874:9;26870:18;26862:26;;26934:9;26928:4;26924:20;26920:1;26909:9;26905:17;26898:47;26962:131;27088:4;26962:131;:::i;:::-;26954:139;;26681:419;;;:::o;27106:329::-;27165:6;27214:2;27202:9;27193:7;27189:23;27185:32;27182:119;;;27220:79;;:::i;:::-;27182:119;27340:1;27365:53;27410:7;27401:6;27390:9;27386:22;27365:53;:::i;:::-;27355:63;;27311:117;27106:329;;;;:::o;27441:117::-;27550:1;27547;27540:12;27564:117;27673:1;27670;27663:12;27687:117;27796:1;27793;27786:12;27810:724;27887:4;27893:6;27949:11;27936:25;28049:1;28043:4;28039:12;28028:8;28012:14;28008:29;28004:48;27984:18;27980:73;27970:168;;28057:79;;:::i;:::-;27970:168;28169:18;28159:8;28155:33;28147:41;;28221:4;28208:18;28198:28;;28249:18;28241:6;28238:30;28235:117;;;28271:79;;:::i;:::-;28235:117;28379:2;28373:4;28369:13;28361:21;;28436:4;28428:6;28424:17;28408:14;28404:38;28398:4;28394:49;28391:136;;;28446:79;;:::i;:::-;28391:136;27900:634;27810:724;;;;;:::o;28540:148::-;28642:11;28679:3;28664:18;;28540:148;;;;:::o;28694:173::-;28834:25;28830:1;28822:6;28818:14;28811:49;28694:173;:::o;28873:402::-;29033:3;29054:85;29136:2;29131:3;29054:85;:::i;:::-;29047:92;;29148:93;29237:3;29148:93;:::i;:::-;29266:2;29261:3;29257:12;29250:19;;28873:402;;;:::o;29281:99::-;29333:6;29367:5;29361:12;29351:22;;29281:99;;;:::o;29386:307::-;29454:1;29464:113;29478:6;29475:1;29472:13;29464:113;;;29563:1;29558:3;29554:11;29548:18;29544:1;29539:3;29535:11;29528:39;29500:2;29497:1;29493:10;29488:15;;29464:113;;;29595:6;29592:1;29589:13;29586:101;;;29675:1;29666:6;29661:3;29657:16;29650:27;29586:101;29435:258;29386:307;;;:::o;29699:377::-;29805:3;29833:39;29866:5;29833:39;:::i;:::-;29888:89;29970:6;29965:3;29888:89;:::i;:::-;29881:96;;29986:52;30031:6;30026:3;30019:4;30012:5;30008:16;29986:52;:::i;:::-;30063:6;30058:3;30054:16;30047:23;;29809:267;29699:377;;;;:::o;30082:167::-;30222:19;30218:1;30210:6;30206:14;30199:43;30082:167;:::o;30255:402::-;30415:3;30436:85;30518:2;30513:3;30436:85;:::i;:::-;30429:92;;30530:93;30619:3;30530:93;:::i;:::-;30648:2;30643:3;30639:12;30632:19;;30255:402;;;:::o;30663:967::-;31045:3;31067:148;31211:3;31067:148;:::i;:::-;31060:155;;31232:95;31323:3;31314:6;31232:95;:::i;:::-;31225:102;;31344:148;31488:3;31344:148;:::i;:::-;31337:155;;31509:95;31600:3;31591:6;31509:95;:::i;:::-;31502:102;;31621:3;31614:10;;30663:967;;;;;:::o;31636:364::-;31724:3;31752:39;31785:5;31752:39;:::i;:::-;31807:71;31871:6;31866:3;31807:71;:::i;:::-;31800:78;;31887:52;31932:6;31927:3;31920:4;31913:5;31909:16;31887:52;:::i;:::-;31964:29;31986:6;31964:29;:::i;:::-;31959:3;31955:39;31948:46;;31728:272;31636:364;;;;:::o;32006:313::-;32119:4;32157:2;32146:9;32142:18;32134:26;;32206:9;32200:4;32196:20;32192:1;32181:9;32177:17;32170:47;32234:78;32307:4;32298:6;32234:78;:::i;:::-;32226:86;;32006:313;;;;:::o;32325:232::-;32465:34;32461:1;32453:6;32449:14;32442:58;32534:15;32529:2;32521:6;32517:15;32510:40;32325:232;:::o;32563:366::-;32705:3;32726:67;32790:2;32785:3;32726:67;:::i;:::-;32719:74;;32802:93;32891:3;32802:93;:::i;:::-;32920:2;32915:3;32911:12;32904:19;;32563:366;;;:::o;32935:419::-;33101:4;33139:2;33128:9;33124:18;33116:26;;33188:9;33182:4;33178:20;33174:1;33163:9;33159:17;33152:47;33216:131;33342:4;33216:131;:::i;:::-;33208:139;;32935:419;;;:::o;33360:223::-;33500:34;33496:1;33488:6;33484:14;33477:58;33569:6;33564:2;33556:6;33552:15;33545:31;33360:223;:::o;33589:366::-;33731:3;33752:67;33816:2;33811:3;33752:67;:::i;:::-;33745:74;;33828:93;33917:3;33828:93;:::i;:::-;33946:2;33941:3;33937:12;33930:19;;33589:366;;;:::o;33961:419::-;34127:4;34165:2;34154:9;34150:18;34142:26;;34214:9;34208:4;34204:20;34200:1;34189:9;34185:17;34178:47;34242:131;34368:4;34242:131;:::i;:::-;34234:139;;33961:419;;;:::o;34386:227::-;34526:34;34522:1;34514:6;34510:14;34503:58;34595:10;34590:2;34582:6;34578:15;34571:35;34386:227;:::o;34619:366::-;34761:3;34782:67;34846:2;34841:3;34782:67;:::i;:::-;34775:74;;34858:93;34947:3;34858:93;:::i;:::-;34976:2;34971:3;34967:12;34960:19;;34619:366;;;:::o;34991:419::-;35157:4;35195:2;35184:9;35180:18;35172:26;;35244:9;35238:4;35234:20;35230:1;35219:9;35215:17;35208:47;35272:131;35398:4;35272:131;:::i;:::-;35264:139;;34991:419;;;:::o;35416:247::-;35556:34;35552:1;35544:6;35540:14;35533:58;35625:30;35620:2;35612:6;35608:15;35601:55;35416:247;:::o;35669:366::-;35811:3;35832:67;35896:2;35891:3;35832:67;:::i;:::-;35825:74;;35908:93;35997:3;35908:93;:::i;:::-;36026:2;36021:3;36017:12;36010:19;;35669:366;;;:::o;36041:419::-;36207:4;36245:2;36234:9;36230:18;36222:26;;36294:9;36288:4;36284:20;36280:1;36269:9;36265:17;36258:47;36322:131;36448:4;36322:131;:::i;:::-;36314:139;;36041:419;;;:::o;36466:223::-;36606:34;36602:1;36594:6;36590:14;36583:58;36675:6;36670:2;36662:6;36658:15;36651:31;36466:223;:::o;36695:366::-;36837:3;36858:67;36922:2;36917:3;36858:67;:::i;:::-;36851:74;;36934:93;37023:3;36934:93;:::i;:::-;37052:2;37047:3;37043:12;37036:19;;36695:366;;;:::o;37067:419::-;37233:4;37271:2;37260:9;37256:18;37248:26;;37320:9;37314:4;37310:20;37306:1;37295:9;37291:17;37284:47;37348:131;37474:4;37348:131;:::i;:::-;37340:139;;37067:419;;;:::o;37492:147::-;37593:11;37630:3;37615:18;;37492:147;;;;:::o;37667:314::-;37781:3;37802:88;37883:6;37878:3;37802:88;:::i;:::-;37795:95;;37900:43;37936:6;37931:3;37924:5;37900:43;:::i;:::-;37968:6;37963:3;37959:16;37952:23;;37667:314;;;;;:::o;37987:291::-;38127:3;38149:103;38248:3;38239:6;38231;38149:103;:::i;:::-;38142:110;;38269:3;38262:10;;37987:291;;;;;:::o;38284:236::-;38424:34;38420:1;38412:6;38408:14;38401:58;38493:19;38488:2;38480:6;38476:15;38469:44;38284:236;:::o;38526:366::-;38668:3;38689:67;38753:2;38748:3;38689:67;:::i;:::-;38682:74;;38765:93;38854:3;38765:93;:::i;:::-;38883:2;38878:3;38874:12;38867:19;;38526:366;;;:::o;38898:419::-;39064:4;39102:2;39091:9;39087:18;39079:26;;39151:9;39145:4;39141:20;39137:1;39126:9;39122:17;39115:47;39179:131;39305:4;39179:131;:::i;:::-;39171:139;;38898:419;;;:::o;39323:348::-;39363:7;39386:20;39404:1;39386:20;:::i;:::-;39381:25;;39420:20;39438:1;39420:20;:::i;:::-;39415:25;;39608:1;39540:66;39536:74;39533:1;39530:81;39525:1;39518:9;39511:17;39507:105;39504:131;;;39615:18;;:::i;:::-;39504:131;39663:1;39660;39656:9;39645:20;;39323:348;;;;:::o;39677:180::-;39725:77;39722:1;39715:88;39822:4;39819:1;39812:15;39846:4;39843:1;39836:15;39863:171;39902:3;39925:24;39943:5;39925:24;:::i;:::-;39916:33;;39971:4;39964:5;39961:15;39958:41;;;39979:18;;:::i;:::-;39958:41;40026:1;40019:5;40015:13;40008:20;;39863:171;;;:::o;40040:182::-;40180:34;40176:1;40168:6;40164:14;40157:58;40040:182;:::o;40228:366::-;40370:3;40391:67;40455:2;40450:3;40391:67;:::i;:::-;40384:74;;40467:93;40556:3;40467:93;:::i;:::-;40585:2;40580:3;40576:12;40569:19;;40228:366;;;:::o;40600:419::-;40766:4;40804:2;40793:9;40789:18;40781:26;;40853:9;40847:4;40843:20;40839:1;40828:9;40824:17;40817:47;40881:131;41007:4;40881:131;:::i;:::-;40873:139;;40600:419;;;:::o;41025:191::-;41065:4;41085:20;41103:1;41085:20;:::i;:::-;41080:25;;41119:20;41137:1;41119:20;:::i;:::-;41114:25;;41158:1;41155;41152:8;41149:34;;;41163:18;;:::i;:::-;41149:34;41208:1;41205;41201:9;41193:17;;41025:191;;;;:::o;41222:180::-;41270:77;41267:1;41260:88;41367:4;41364:1;41357:15;41391:4;41388:1;41381:15", - "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\n\n/**\n * MultiSigWallet with timelocker\n */\ncontract BEMultiSigWallet is AccessControlEnumerable {\n bytes32 public constant TIMELOCK_ADMIN_ROLE =\n keccak256(\"TIMELOCK_ADMIN_ROLE\");\n bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n bytes32 public constant CONFIRM_ROLE = keccak256(\"CONFIRM_ROLE\");\n uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n mapping(bytes32 => uint256) private _timestamps;\n mapping(bytes32 => mapping(address => bool)) public confirmations;\n uint256 public minDelay;\n uint256 public required;\n\n /**\n * @dev Emitted when a call is scheduled as part of operation `id`.\n */\n event ScheduleAdded(bytes32 indexed id);\n\n /**\n * @dev Emitted when a call is performed as part of operation `id`.\n */\n event ScheduleExecuted(bytes32 indexed id);\n\n /**\n * @dev Emitted when operation `id` is cancelled.\n */\n event Cancelled(bytes32 indexed id);\n\n event Confirmation(address indexed sender, bytes32[] ids);\n\n event Revocation(address indexed sender, bytes32[] ids);\n\n /**\n * @dev Emitted when the minimum delay for future operations is modified.\n */\n event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n /**\n * @dev Emitted when the number of required confimations is modified.\n */\n event RequirementChange(uint256 oldDuration, uint256 newDuration);\n\n modifier onlyWallet() {\n require(\n msg.sender == address(this),\n \"BEMultiSigWallet: caller must be wallet\"\n );\n _;\n }\n\n /**\n * @dev Initializes the contract with a given `minDelay`.\n */\n constructor(\n uint256 _minDelay,\n uint256 _required,\n address[] memory proposers,\n address[] memory confirmers,\n address[] memory executors\n ) {\n _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(CONFIRM_ROLE, TIMELOCK_ADMIN_ROLE);\n\n // deployer + self administration\n _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender());\n _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n // register proposers\n for (uint256 i = 0; i < proposers.length; ++i) {\n _setupRole(PROPOSER_ROLE, proposers[i]);\n }\n\n // register confirmers\n for (uint256 i = 0; i < confirmers.length; ++i) {\n _setupRole(CONFIRM_ROLE, confirmers[i]);\n }\n\n // register executors\n for (uint256 i = 0; i < executors.length; ++i) {\n _setupRole(EXECUTOR_ROLE, executors[i]);\n }\n\n minDelay = _minDelay;\n emit MinDelayChange(0, minDelay);\n required = _required;\n emit RequirementChange(0, required);\n }\n\n /**\n * @dev Modifier to make a function callable only by a certain role. In\n * addition to checking the sender's role, `address(0)` 's role is also\n * considered. Granting a role to `address(0)` is equivalent to enabling\n * this role for everyone.\n */\n modifier onlyRoleOrOpenRole(bytes32 role) {\n if (!hasRole(role, address(0))) {\n _checkRole(role, _msgSender());\n }\n _;\n }\n\n /**\n * @dev Contract might receive/hold ETH as part of the maintenance process.\n */\n receive() external payable {}\n\n /**\n * @dev Returns whether an id correspond to a registered operation. This\n * includes both Pending, Ready and Done operations.\n */\n function isOperation(bytes32 id) public view virtual returns (bool pending) {\n return getTimestamp(id) > 0;\n }\n\n /**\n * @dev Returns whether an operation is pending or not.\n */\n function isOperationPending(\n bytes32 id\n ) public view virtual returns (bool pending) {\n return getTimestamp(id) > _DONE_TIMESTAMP;\n }\n\n function isConfirmed(bytes32 id) public view returns (bool ready) {\n uint256 count = 0;\n uint256 executorCount = getRoleMemberCount(EXECUTOR_ROLE);\n for (uint256 i = 0; i < executorCount; i++) {\n if (confirmations[id][getRoleMember(EXECUTOR_ROLE, i)]) count += 1;\n if (count == required) return true;\n }\n }\n\n /**\n * @dev Returns whether an operation is ready or not.\n */\n function isOperationReady(\n bytes32 id\n ) public view virtual returns (bool ready) {\n uint256 timestamp = getTimestamp(id);\n return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n }\n\n /**\n * @dev Returns whether an operation is done or not.\n */\n function isOperationDone(bytes32 id) public view virtual returns (bool done) {\n return getTimestamp(id) == _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Returns the timestamp at with an operation becomes ready (0 for\n * unset operations, 1 for done operations).\n */\n function getTimestamp(\n bytes32 id\n ) public view virtual returns (uint256 timestamp) {\n return _timestamps[id];\n }\n\n /**\n * @dev Returns the identifier of an operation containing a batch of\n * transactions.\n */\n function hashOperation(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public pure virtual returns (bytes32 hash) {\n return keccak256(abi.encode(targets, values, datas, predecessor, salt));\n }\n\n /**\n * @dev Schedule an operation containing a batch of transactions.\n *\n * Emits one {ScheduleAdded} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function schedule(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt,\n uint256 delay\n ) public virtual onlyRoleOrOpenRole(PROPOSER_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperation(targets, values, datas, predecessor, salt);\n _schedule(id, delay);\n emit ScheduleAdded(id);\n }\n\n /**\n * @dev Schedule an operation that is to becomes valid after a given delay.\n */\n function _schedule(bytes32 id, uint256 delay) private {\n require(!isOperation(id), \"BEMultiSigWallet: operation already scheduled\");\n require(delay >= minDelay, \"BEMultiSigWallet: insufficient delay\");\n _timestamps[id] = block.timestamp + delay;\n }\n\n /**\n * @dev Cancel an operation.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function cancel(bytes32 id) public virtual onlyRoleOrOpenRole(PROPOSER_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation cannot be cancelled\"\n );\n delete _timestamps[id];\n\n emit Cancelled(id);\n }\n\n /**\n * @dev Allows an executor to confirm multiple transactions.\n */\n function confirmTransaction(\n bytes32[] calldata ids\n ) public onlyRoleOrOpenRole(CONFIRM_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n require(\n isOperationPending(ids[i]),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[ids[i]][msg.sender] = true;\n }\n emit Confirmation(msg.sender, ids);\n }\n\n /**\n * @dev Allows an executor to revoke multiple confirmations for a transaction.\n */\n function revokeConfirmation(\n bytes32[] calldata ids\n ) public onlyRoleOrOpenRole(CONFIRM_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n require(\n isOperationPending(ids[i]),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[ids[i]][msg.sender] = false;\n }\n emit Revocation(msg.sender, ids);\n }\n\n /**\n * @dev Execute an (ready) operation containing a batch of transactions.\n *\n * Emits one {CallExecuted} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'executor' role.\n */\n function execute(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperation(targets, values, datas, predecessor, salt);\n _beforeCall(id, predecessor);\n for (uint256 i = 0; i < targets.length; ++i) {\n _call(targets[i], values[i], datas[i]);\n }\n _afterCall(id);\n emit ScheduleExecuted(id);\n }\n\n /**\n * @dev Checks before execution of an operation's calls.\n */\n function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n require(\n isConfirmed(id),\n \"BEMultiSigWallet: operation not reach required confirmations\"\n );\n require(\n predecessor == bytes32(0) || isOperationDone(predecessor),\n \"BEMultiSigWallet: missing dependency\"\n );\n }\n\n /**\n * @dev Checks after execution of an operation's calls.\n */\n function _afterCall(bytes32 id) private {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n _timestamps[id] = _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Execute an operation's call.\n *\n * Emits a {CallExecuted} event.\n */\n function _call(address target, uint256 value, bytes calldata data) private {\n (bool success, ) = target.call{value: value}(data);\n require(success, \"BEMultiSigWallet: underlying transaction reverted\");\n }\n\n /**\n * @dev Changes the minimum wallet duration for future operations.\n *\n * Emits a {MinDelayChange} event.\n *\n * Requirements:\n *\n * - the caller must be the wallet itself. This can only be achieved by scheduling and later executing\n * an operation where the wallet is the target and the data is the ABI-encoded call to this function.\n */\n function changeDelay(uint256 _minDelay) external virtual onlyWallet {\n emit MinDelayChange(minDelay, _minDelay);\n minDelay = _minDelay;\n }\n\n /**\n * @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n * @param _required Number of required confirmations.\n */\n function changeRequirement(uint256 _required) external virtual onlyWallet {\n emit RequirementChange(required, _required);\n required = _required;\n }\n}\n", + "sourceMap": "168:10399:9:-:0;;;1755:1064;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1920:55;275:32;;1920:13;;;:55;;:::i;:::-;1981:49;351:26;275:32;1981:13;;;:49;;:::i;:::-;2036;421:26;275:32;2036:13;;;:49;;:::i;:::-;2091:48;490:25;275:32;2091:13;;;:48;;:::i;:::-;2184:45;275:32;2216:12;:10;;;:12;;:::i;:::-;2184:10;;;:45;;:::i;:::-;2235:46;275:32;2275:4;2235:10;;;:46;;:::i;:::-;2319:9;2314:101;2338:9;:16;2334:1;:20;2314:101;;;2369:39;351:26;2395:9;2405:1;2395:12;;;;;;;;:::i;:::-;;;;;;;;2369:10;;;:39;;:::i;:::-;2356:3;;;;:::i;:::-;;;2314:101;;;;2453:9;2448:102;2472:10;:17;2468:1;:21;2448:102;;;2504:39;490:25;2529:10;2540:1;2529:13;;;;;;;;:::i;:::-;;;;;;;;2504:10;;;:39;;:::i;:::-;2491:3;;;;:::i;:::-;;;2448:102;;;;2587:9;2582:101;2606:9;:16;2602:1;:20;2582:101;;;2637:39;421:26;2663:9;2673:1;2663:12;;;;;;;;:::i;:::-;;;;;;;;2637:10;;;:39;;:::i;:::-;2624:3;;;;:::i;:::-;;;2582:101;;;;2700:9;2689:8;:20;;;;2720:27;2735:1;2738:8;;2720:27;;;;;;;:::i;:::-;;;;;;;;2764:9;2753:8;:20;;;;2784:30;2802:1;2805:8;;2784:30;;;;;;;:::i;:::-;;;;;;;;1755:1064;;;;;168:10399;;6492:247:0;6575:25;6603:18;6616:4;6603:12;;;:18;;:::i;:::-;6575:46;;6656:9;6631:6;:12;6638:4;6631:12;;;;;;;;;;;:22;;:34;;;;6722:9;6703:17;6697:4;6680:52;;;;;;;;;;6565:174;6492:247;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;6257:110:0:-;6335:25;6346:4;6352:7;6335:10;;;:25;;:::i;:::-;6257:110;;:::o;4008:129::-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;;;;;:31;;;;:::i;:::-;;1978:166;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;;;:22;;:::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;;;:12;;:::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;;;:50;;:::i;:::-;7698:57;;7612:150;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;1697:404:8:-;1760:4;1781:21;1791:3;1796:5;1781:9;;;:21;;:::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;7:75:10:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:117::-;803:1;800;793:12;817:102;858:6;909:2;905:7;900:2;893:5;889:14;885:28;875:38;;817:102;;;:::o;925:180::-;973:77;970:1;963:88;1070:4;1067:1;1060:15;1094:4;1091:1;1084:15;1111:281;1194:27;1216:4;1194:27;:::i;:::-;1186:6;1182:40;1324:6;1312:10;1309:22;1288:18;1276:10;1273:34;1270:62;1267:88;;;1335:18;;:::i;:::-;1267:88;1375:10;1371:2;1364:22;1154:238;1111:281;;:::o;1398:129::-;1432:6;1459:20;;:::i;:::-;1449:30;;1488:33;1516:4;1508:6;1488:33;:::i;:::-;1398:129;;;:::o;1533:311::-;1610:4;1700:18;1692:6;1689:30;1686:56;;;1722:18;;:::i;:::-;1686:56;1772:4;1764:6;1760:17;1752:25;;1832:4;1826;1822:15;1814:23;;1533:311;;;:::o;1850:117::-;1959:1;1956;1949:12;1973:126;2010:7;2050:42;2043:5;2039:54;2028:65;;1973:126;;;:::o;2105:96::-;2142:7;2171:24;2189:5;2171:24;:::i;:::-;2160:35;;2105:96;;;:::o;2207:122::-;2280:24;2298:5;2280:24;:::i;:::-;2273:5;2270:35;2260:63;;2319:1;2316;2309:12;2260:63;2207:122;:::o;2335:143::-;2392:5;2423:6;2417:13;2408:22;;2439:33;2466:5;2439:33;:::i;:::-;2335:143;;;;:::o;2501:732::-;2608:5;2633:81;2649:64;2706:6;2649:64;:::i;:::-;2633:81;:::i;:::-;2624:90;;2734:5;2763:6;2756:5;2749:21;2797:4;2790:5;2786:16;2779:23;;2850:4;2842:6;2838:17;2830:6;2826:30;2879:3;2871:6;2868:15;2865:122;;;2898:79;;:::i;:::-;2865:122;3013:6;2996:231;3030:6;3025:3;3022:15;2996:231;;;3105:3;3134:48;3178:3;3166:10;3134:48;:::i;:::-;3129:3;3122:61;3212:4;3207:3;3203:14;3196:21;;3072:155;3056:4;3051:3;3047:14;3040:21;;2996:231;;;3000:21;2614:619;;2501:732;;;;;:::o;3256:385::-;3338:5;3387:3;3380:4;3372:6;3368:17;3364:27;3354:122;;3395:79;;:::i;:::-;3354:122;3505:6;3499:13;3530:105;3631:3;3623:6;3616:4;3608:6;3604:17;3530:105;:::i;:::-;3521:114;;3344:297;3256:385;;;;:::o;3647:1586::-;3828:6;3836;3844;3852;3860;3909:3;3897:9;3888:7;3884:23;3880:33;3877:120;;;3916:79;;:::i;:::-;3877:120;4036:1;4061:64;4117:7;4108:6;4097:9;4093:22;4061:64;:::i;:::-;4051:74;;4007:128;4174:2;4200:64;4256:7;4247:6;4236:9;4232:22;4200:64;:::i;:::-;4190:74;;4145:129;4334:2;4323:9;4319:18;4313:25;4365:18;4357:6;4354:30;4351:117;;;4387:79;;:::i;:::-;4351:117;4492:89;4573:7;4564:6;4553:9;4549:22;4492:89;:::i;:::-;4482:99;;4284:307;4651:2;4640:9;4636:18;4630:25;4682:18;4674:6;4671:30;4668:117;;;4704:79;;:::i;:::-;4668:117;4809:89;4890:7;4881:6;4870:9;4866:22;4809:89;:::i;:::-;4799:99;;4601:307;4968:3;4957:9;4953:19;4947:26;5000:18;4992:6;4989:30;4986:117;;;5022:79;;:::i;:::-;4986:117;5127:89;5208:7;5199:6;5188:9;5184:22;5127:89;:::i;:::-;5117:99;;4918:308;3647:1586;;;;;;;;:::o;5239:180::-;5287:77;5284:1;5277:88;5384:4;5381:1;5374:15;5408:4;5405:1;5398:15;5425:180;5473:77;5470:1;5463:88;5570:4;5567:1;5560:15;5594:4;5591:1;5584:15;5611:233;5650:3;5673:24;5691:5;5673:24;:::i;:::-;5664:33;;5719:66;5712:5;5709:77;5706:103;;;5789:18;;:::i;:::-;5706:103;5836:1;5829:5;5825:13;5818:20;;5611:233;;;:::o;5850:85::-;5895:7;5924:5;5913:16;;5850:85;;;:::o;5941:60::-;5969:3;5990:5;5983:12;;5941:60;;;:::o;6007:158::-;6065:9;6098:61;6116:42;6125:32;6151:5;6125:32;:::i;:::-;6116:42;:::i;:::-;6098:61;:::i;:::-;6085:74;;6007:158;;;:::o;6171:147::-;6266:45;6305:5;6266:45;:::i;:::-;6261:3;6254:58;6171:147;;:::o;6324:118::-;6411:24;6429:5;6411:24;:::i;:::-;6406:3;6399:37;6324:118;;:::o;6448:348::-;6577:4;6615:2;6604:9;6600:18;6592:26;;6628:79;6704:1;6693:9;6689:17;6680:6;6628:79;:::i;:::-;6717:72;6785:2;6774:9;6770:18;6761:6;6717:72;:::i;:::-;6448:348;;;;;:::o;168:10399:9:-;;;;;;;", + "deployedSourceMap": "168:10399:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;381:66:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;225:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4296:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4008:129:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5069:286:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4573:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3492:114:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5404:214:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10091:145:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3680:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3899:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7424:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5589:562;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;311:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1431:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:145:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10411:154:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;451:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6628:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;698:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1750:140:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:368:9;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4840:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:147:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;725:23:9;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8031:684;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;634:212:1;719:4;757:42;742:57;;;:11;:57;;;;:97;;;;803:36;827:11;803:23;:36::i;:::-;742:97;735:104;;634:212;;;:::o;381:66:9:-;421:26;381:66;:::o;629:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;225:82::-;275:32;225:82;:::o;4296:206::-;4371:10;4389:17;4409:16;4422:2;4409:12;:16::i;:::-;4389:36;;571:1;4438:9;:27;:59;;;;;4482:15;4469:9;:28;;4438:59;4431:66;;;4296:206;;;:::o;4008:129:0:-;4082:7;4108:6;:12;4115:4;4108:12;;;;;;;;;;;:22;;;4101:29;;4008:129;;;:::o;5069:286:9:-;5259:12;5307:7;;5316:6;;5324:5;;5331:11;5344:4;5296:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5286:64;;;;;;5279:71;;5069:286;;;;;;;;;;:::o;4573:130::-;4639:9;571:1;4663:16;4676:2;4663:12;:16::i;:::-;:35;4656:42;;4573:130;;;:::o;4387:145:0:-;4470:18;4483:4;4470:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;3492:114:9:-;3554:12;3600:1;3581:16;3594:2;3581:12;:16::i;:::-;:20;3574:27;;3492:114;;;:::o;5404:214:0:-;5510:12;:10;:12::i;:::-;5499:23;;:7;:23;;;5491:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;10091:145:9:-;1607:4;1585:27;;:10;:27;;;1570:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10170:35:::1;10185:8;;10195:9;10170:35;;;;;;;:::i;:::-;;;;;;;;10222:9;10211:8;:20;;;;10091:145:::0;:::o;3680:143::-;3757:12;571:1;3784:16;3797:2;3784:12;:16::i;:::-;:34;3777:41;;3680:143;;;:::o;3899:325::-;3953:10;3971:13;3987:1;3971:17;;3994:20;4017:32;490:25;4017:18;:32::i;:::-;3994:55;;4060:9;4055:165;4079:12;4075:1;:16;4055:165;;;4110:13;:17;4124:2;4110:17;;;;;;;;;;;:49;4128:30;490:25;4156:1;4128:13;:30::i;:::-;4110:49;;;;;;;;;;;;;;;;;;;;;;;;;4106:65;;;4170:1;4161:10;;;;;:::i;:::-;;;4106:65;4192:8;;4183:5;:17;4179:34;;;4209:4;4202:11;;;;;;;4179:34;4093:3;;;;;:::i;:::-;;;;4055:165;;;;3965:259;;3899:325;;;;:::o;7424:367::-;490:25;3140;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;7537:9:::1;7532:217;7556:3;;:10;;7552:1;:14;7532:217;;;7598:26;7617:3;;7621:1;7617:6;;;;;;;:::i;:::-;;;;;;;;7598:18;:26::i;:::-;7581:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;7737:5;7701:13;:21;7715:3;;7719:1;7715:6;;;;;;;:::i;:::-;;;;;;;;7701:21;;;;;;;;;;;:33;7723:10;7701:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;7568:3;;;;:::i;:::-;;;7532:217;;;;7770:10;7759:27;;;7782:3;;7759:27;;;;;;;:::i;:::-;;;;;;;;7424:367:::0;;;:::o;5589:562::-;351:26;3140:25;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;5854:6:::1;;:13;;5836:7;;:14;;:31;5821:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;5955:5;;:12;;5937:7;;:14;;:30;5922:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;6023:10;6036:56;6050:7;;6059:6;;6067:5;;6074:11;6087:4;6036:13;:56::i;:::-;6023:69;;6098:20;6108:2;6112:5;6098:9;:20::i;:::-;6143:2;6129:17;;;;;;;;;;5815:336;5589:562:::0;;;;;;;;;;:::o;311:66::-;351:26;311:66;:::o;1431:151:1:-;1521:7;1547:28;1569:5;1547:12;:18;1560:4;1547:18;;;;;;;;;;;:21;;:28;;;;:::i;:::-;1540:35;;1431:151;;;;:::o;2909:145:0:-;2995:4;3018:6;:12;3025:4;3018:12;;;;;;;;;;;:20;;:29;3039:7;3018:29;;;;;;;;;;;;;;;;;;;;;;;;;3011:36;;2909:145;;;;:::o;2027:49::-;2072:4;2027:49;;;:::o;10411:154:9:-;1607:4;1585:27;;:10;:27;;;1570:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10496:38:::1;10514:8;;10524:9;10496:38;;;;;;;:::i;:::-;;;;;;;;10551:9;10540:8;:20;;;;10411:154:::0;:::o;451:64::-;490:25;451:64;:::o;6628:251::-;351:26;3140:25;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;6736:22:::1;6755:2;6736:18;:22::i;:::-;6721:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;6834:11;:15;6846:2;6834:15;;;;;;;;;;;6827:22;;;6871:2;6861:13;;;;;;;;;;6628:251:::0;;:::o;698:23::-;;;;:::o;1750:140:1:-;1830:7;1856:27;:12;:18;1869:4;1856:18;;;;;;;;;;;:25;:27::i;:::-;1849:34;;1750:140;;;:::o;6959:368:9:-;490:25;3140;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;7072:9:::1;7067:216;7091:3;;:10;;7087:1;:14;7067:216;;;7133:26;7152:3;;7156:1;7152:6;;;;;;;:::i;:::-;;;;;;;;7133:18;:26::i;:::-;7116:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;7272:4;7236:13;:21;7250:3;;7254:1;7250:6;;;;;;;:::i;:::-;;;;;;;;7236:21;;;;;;;;;;;:33;7258:10;7236:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;7103:3;;;;:::i;:::-;;;7067:216;;;;7306:10;7293:29;;;7318:3;;7293:29;;;;;;;:::i;:::-;;;;;;;;6959:368:::0;;;:::o;4840:123::-;4911:17;4943:11;:15;4955:2;4943:15;;;;;;;;;;;;4936:22;;4840:123;;;:::o;4766:147:0:-;4850:18;4863:4;4850:12;:18::i;:::-;2505:30;2516:4;2522:12;:10;:12::i;:::-;2505:10;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;:::-;4766:147:::0;;;:::o;725:23:9:-;;;;:::o;8031:684::-;421:26;3140:25;3148:4;3162:1;3140:7;:25::i;:::-;3135:77;;3175:30;3186:4;3192:12;:10;:12::i;:::-;3175:10;:30::i;:::-;3135:77;8284:6:::1;;:13;;8266:7;;:14;;:31;8251:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;8385:5;;:12;;8367:7;;:14;;:30;8352:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;8453:10;8466:56;8480:7;;8489:6;;8497:5;;8504:11;8517:4;8466:13;:56::i;:::-;8453:69;;8528:28;8540:2;8544:11;8528;:28::i;:::-;8567:9;8562:98;8586:7;;:14;;8582:1;:18;8562:98;;;8615:38;8621:7;;8629:1;8621:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8633:6;;8640:1;8633:9;;;;;;;:::i;:::-;;;;;;;;8644:5;;8650:1;8644:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;8615:5;:38::i;:::-;8602:3;;;;:::i;:::-;;;8562:98;;;;8665:14;8676:2;8665:10;:14::i;:::-;8707:2;8690:20;;;;;;;;;;8245:470;8031:684:::0;;;;;;;;;:::o;6861:233:0:-;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;7014:4;6982:6;:12;6989:4;6982:12;;;;;;;;;;;:20;;:29;7003:7;6982:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7064:12;:10;:12::i;:::-;7037:40;;7055:7;7037:40;;7049:4;7037:40;;;;;;;;;;6939:149;6861:233;;:::o;7612:150:8:-;7682:4;7705:50;7710:3;:10;;7746:5;7730:23;;7722:32;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;:::o;2620:202:0:-;2705:4;2743:32;2728:47;;;:11;:47;;;;:87;;;;2779:36;2803:11;2779:23;:36::i;:::-;2728:87;2721:94;;2620:202;;;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;3335:492:0:-;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;3606:41;;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3738:13;;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3461:349;;;;;;;;;;;:::i;:::-;;;;;;;;3418:403;3335:492;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106;2129:7;2106:12;:18;2119:4;2106:18;;;;;;;;;;;:22;;:31;;;;:::i;:::-;;1978:166;;:::o;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:34;2389:7;2363:12;:18;2376:4;2363:18;;;;;;;;;;;:25;;:34;;;;:::i;:::-;;2233:171;;:::o;6245:258:9:-;6314:15;6326:2;6314:11;:15::i;:::-;6313:16;6305:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6402:8;;6393:5;:17;;6385:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6493:5;6475:15;:23;;;;:::i;:::-;6457:11;:15;6469:2;6457:15;;;;;;;;;;;:41;;;;6245:258;;:::o;8870:156:8:-;8944:7;8994:22;8998:3;:10;;9010:5;8994:3;:22::i;:::-;8986:31;;8963:56;;8870:156;;;;:::o;8413:115::-;8476:7;8502:19;8510:3;:10;;8502:7;:19::i;:::-;8495:26;;8413:115;;;:::o;8790:393:9:-;8871:20;8888:2;8871:16;:20::i;:::-;8863:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8957:15;8969:2;8957:11;:15::i;:::-;8942:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;9092:1;9084:10;;9069:11;:25;:57;;;;9098:28;9114:11;9098:15;:28::i;:::-;9069:57;9054:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;8790:393;;:::o;9515:211::-;9597:12;9615:6;:11;;9634:5;9641:4;;9615:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9596:50;;;9660:7;9652:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9590:136;9515:211;;;;:::o;9257:163::-;9311:20;9328:2;9311:16;:20::i;:::-;9303:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;571:1;9382:11;:15;9394:2;9382:15;;;;;;;;;;;:33;;;;9257:163;:::o;1697:404:8:-;1760:4;1781:21;1791:3;1796:5;1781:9;:21::i;:::-;1776:319;;1818:3;:11;;1835:5;1818:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:3;:11;;:18;;;;1976:3;:12;;:19;1989:5;1976:19;;;;;;;;;;;:40;;;;2037:4;2030:11;;;;1776:319;2079:5;2072:12;;1697:404;;;;;:::o;829:155:6:-;914:4;952:25;937:40;;;:11;:40;;;;930:47;;829:155;;;:::o;1588:441:5:-;1663:13;1688:19;1733:1;1724:6;1720:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:47;;1745:15;:6;1752:1;1745:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1770;:6;1777:1;1770:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1800:9;1825:1;1816:6;1812:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;1866:12;1887:3;1879:5;:11;1866:25;;;;;;;:::i;:::-;;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1915:1;1905:11;;;;;1835:3;;;;:::i;:::-;;;1795:132;;;;1953:1;1944:5;:10;1936:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2015:6;2001:21;;;1588:441;;;;:::o;7219:234:0:-;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:6;:12;7347:4;7340:12;;;;;;;;;;;:20;;:29;7361:7;7340:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7423:12;:10;:12::i;:::-;7396:40;;7414:7;7396:40;;7408:4;7396:40;;;;;;;;;;7298:149;7219:234;;:::o;7930:156:8:-;8003:4;8026:53;8034:3;:10;;8070:5;8054:23;;8046:32;;8026:7;:53::i;:::-;8019:60;;7930:156;;;;:::o;4395:118::-;4462:7;4488:3;:11;;4500:5;4488:18;;;;;;;;:::i;:::-;;;;;;;;;;4481:25;;4395:118;;;;:::o;3946:107::-;4002:7;4028:3;:11;;:18;;;;4021:25;;3946:107;;;:::o;3738:127::-;3811:4;3857:1;3834:3;:12;;:19;3847:5;3834:19;;;;;;;;;;;;:24;;3827:31;;3738:127;;;;:::o;2269:1388::-;2335:4;2451:18;2472:3;:12;;:19;2485:5;2472:19;;;;;;;;;;;;2451:40;;2520:1;2506:10;:15;2502:1149;;2875:21;2912:1;2899:10;:14;;;;:::i;:::-;2875:38;;2927:17;2968:1;2947:3;:11;;:18;;;;:22;;;;:::i;:::-;2927:42;;3001:13;2988:9;:26;2984:398;;3034:17;3054:3;:11;;3066:9;3054:22;;;;;;;;:::i;:::-;;;;;;;;;;3034:42;;3205:9;3176:3;:11;;3188:13;3176:26;;;;;;;;:::i;:::-;;;;;;;;;:38;;;;3314:10;3288:3;:12;;:23;3301:9;3288:23;;;;;;;;;;;:36;;;;3016:366;2984:398;3460:3;:11;;:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3552:3;:12;;:19;3565:5;3552:19;;;;;;;;;;;3545:26;;;3593:4;3586:11;;;;;;;2502:1149;3635:5;3628:12;;;2269:1388;;;;;:::o;88:117:10:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:122::-;2026:24;2044:5;2026:24;:::i;:::-;2019:5;2016:35;2006:63;;2065:1;2062;2055:12;2006:63;1953:122;:::o;2081:139::-;2127:5;2165:6;2152:20;2143:29;;2181:33;2208:5;2181:33;:::i;:::-;2081:139;;;;:::o;2226:126::-;2263:7;2303:42;2296:5;2292:54;2281:65;;2226:126;;;:::o;2358:96::-;2395:7;2424:24;2442:5;2424:24;:::i;:::-;2413:35;;2358:96;;;:::o;2460:122::-;2533:24;2551:5;2533:24;:::i;:::-;2526:5;2523:35;2513:63;;2572:1;2569;2562:12;2513:63;2460:122;:::o;2588:139::-;2634:5;2672:6;2659:20;2650:29;;2688:33;2715:5;2688:33;:::i;:::-;2588:139;;;;:::o;2733:474::-;2801:6;2809;2858:2;2846:9;2837:7;2833:23;2829:32;2826:119;;;2864:79;;:::i;:::-;2826:119;2984:1;3009:53;3054:7;3045:6;3034:9;3030:22;3009:53;:::i;:::-;2999:63;;2955:117;3111:2;3137:53;3182:7;3173:6;3162:9;3158:22;3137:53;:::i;:::-;3127:63;;3082:118;2733:474;;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:117::-;3657:1;3654;3647:12;3671:117;3780:1;3777;3770:12;3794:117;3903:1;3900;3893:12;3934:568;4007:8;4017:6;4067:3;4060:4;4052:6;4048:17;4044:27;4034:122;;4075:79;;:::i;:::-;4034:122;4188:6;4175:20;4165:30;;4218:18;4210:6;4207:30;4204:117;;;4240:79;;:::i;:::-;4204:117;4354:4;4346:6;4342:17;4330:29;;4408:3;4400:4;4392:6;4388:17;4378:8;4374:32;4371:41;4368:128;;;4415:79;;:::i;:::-;4368:128;3934:568;;;;;:::o;4525:::-;4598:8;4608:6;4658:3;4651:4;4643:6;4639:17;4635:27;4625:122;;4666:79;;:::i;:::-;4625:122;4779:6;4766:20;4756:30;;4809:18;4801:6;4798:30;4795:117;;;4831:79;;:::i;:::-;4795:117;4945:4;4937:6;4933:17;4921:29;;4999:3;4991:4;4983:6;4979:17;4969:8;4965:32;4962:41;4959:128;;;5006:79;;:::i;:::-;4959:128;4525:568;;;;;:::o;5114:579::-;5198:8;5208:6;5258:3;5251:4;5243:6;5239:17;5235:27;5225:122;;5266:79;;:::i;:::-;5225:122;5379:6;5366:20;5356:30;;5409:18;5401:6;5398:30;5395:117;;;5431:79;;:::i;:::-;5395:117;5545:4;5537:6;5533:17;5521:29;;5599:3;5591:4;5583:6;5579:17;5569:8;5565:32;5562:41;5559:128;;;5606:79;;:::i;:::-;5559:128;5114:579;;;;;:::o;5699:1623::-;5886:6;5894;5902;5910;5918;5926;5934;5942;5991:3;5979:9;5970:7;5966:23;5962:33;5959:120;;;5998:79;;:::i;:::-;5959:120;6146:1;6135:9;6131:17;6118:31;6176:18;6168:6;6165:30;6162:117;;;6198:79;;:::i;:::-;6162:117;6311:80;6383:7;6374:6;6363:9;6359:22;6311:80;:::i;:::-;6293:98;;;;6089:312;6468:2;6457:9;6453:18;6440:32;6499:18;6491:6;6488:30;6485:117;;;6521:79;;:::i;:::-;6485:117;6634:80;6706:7;6697:6;6686:9;6682:22;6634:80;:::i;:::-;6616:98;;;;6411:313;6791:2;6780:9;6776:18;6763:32;6822:18;6814:6;6811:30;6808:117;;;6844:79;;:::i;:::-;6808:117;6957:91;7040:7;7031:6;7020:9;7016:22;6957:91;:::i;:::-;6939:109;;;;6734:324;7097:2;7123:53;7168:7;7159:6;7148:9;7144:22;7123:53;:::i;:::-;7113:63;;7068:118;7225:3;7252:53;7297:7;7288:6;7277:9;7273:22;7252:53;:::i;:::-;7242:63;;7196:119;5699:1623;;;;;;;;;;;:::o;7328:77::-;7365:7;7394:5;7383:16;;7328:77;;;:::o;7411:122::-;7484:24;7502:5;7484:24;:::i;:::-;7477:5;7474:35;7464:63;;7523:1;7520;7513:12;7464:63;7411:122;:::o;7539:139::-;7585:5;7623:6;7610:20;7601:29;;7639:33;7666:5;7639:33;:::i;:::-;7539:139;;;;:::o;7684:329::-;7743:6;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7918:1;7943:53;7988:7;7979:6;7968:9;7964:22;7943:53;:::i;:::-;7933:63;;7889:117;7684:329;;;;:::o;8036:568::-;8109:8;8119:6;8169:3;8162:4;8154:6;8150:17;8146:27;8136:122;;8177:79;;:::i;:::-;8136:122;8290:6;8277:20;8267:30;;8320:18;8312:6;8309:30;8306:117;;;8342:79;;:::i;:::-;8306:117;8456:4;8448:6;8444:17;8432:29;;8510:3;8502:4;8494:6;8490:17;8480:8;8476:32;8473:41;8470:128;;;8517:79;;:::i;:::-;8470:128;8036:568;;;;;:::o;8610:559::-;8696:6;8704;8753:2;8741:9;8732:7;8728:23;8724:32;8721:119;;;8759:79;;:::i;:::-;8721:119;8907:1;8896:9;8892:17;8879:31;8937:18;8929:6;8926:30;8923:117;;;8959:79;;:::i;:::-;8923:117;9072:80;9144:7;9135:6;9124:9;9120:22;9072:80;:::i;:::-;9054:98;;;;8850:312;8610:559;;;;;:::o;9175:1769::-;9371:6;9379;9387;9395;9403;9411;9419;9427;9435;9484:3;9472:9;9463:7;9459:23;9455:33;9452:120;;;9491:79;;:::i;:::-;9452:120;9639:1;9628:9;9624:17;9611:31;9669:18;9661:6;9658:30;9655:117;;;9691:79;;:::i;:::-;9655:117;9804:80;9876:7;9867:6;9856:9;9852:22;9804:80;:::i;:::-;9786:98;;;;9582:312;9961:2;9950:9;9946:18;9933:32;9992:18;9984:6;9981:30;9978:117;;;10014:79;;:::i;:::-;9978:117;10127:80;10199:7;10190:6;10179:9;10175:22;10127:80;:::i;:::-;10109:98;;;;9904:313;10284:2;10273:9;10269:18;10256:32;10315:18;10307:6;10304:30;10301:117;;;10337:79;;:::i;:::-;10301:117;10450:91;10533:7;10524:6;10513:9;10509:22;10450:91;:::i;:::-;10432:109;;;;10227:324;10590:2;10616:53;10661:7;10652:6;10641:9;10637:22;10616:53;:::i;:::-;10606:63;;10561:118;10718:3;10745:53;10790:7;10781:6;10770:9;10766:22;10745:53;:::i;:::-;10735:63;;10689:119;10847:3;10874:53;10919:7;10910:6;10899:9;10895:22;10874:53;:::i;:::-;10864:63;;10818:119;9175:1769;;;;;;;;;;;:::o;10950:474::-;11018:6;11026;11075:2;11063:9;11054:7;11050:23;11046:32;11043:119;;;11081:79;;:::i;:::-;11043:119;11201:1;11226:53;11271:7;11262:6;11251:9;11247:22;11226:53;:::i;:::-;11216:63;;11172:117;11328:2;11354:53;11399:7;11390:6;11379:9;11375:22;11354:53;:::i;:::-;11344:63;;11299:118;10950:474;;;;;:::o;11430:118::-;11517:24;11535:5;11517:24;:::i;:::-;11512:3;11505:37;11430:118;;:::o;11554:222::-;11647:4;11685:2;11674:9;11670:18;11662:26;;11698:71;11766:1;11755:9;11751:17;11742:6;11698:71;:::i;:::-;11554:222;;;;:::o;11782:118::-;11869:24;11887:5;11869:24;:::i;:::-;11864:3;11857:37;11782:118;;:::o;11906:222::-;11999:4;12037:2;12026:9;12022:18;12014:26;;12050:71;12118:1;12107:9;12103:17;12094:6;12050:71;:::i;:::-;11906:222;;;;:::o;12134:184::-;12233:11;12267:6;12262:3;12255:19;12307:4;12302:3;12298:14;12283:29;;12134:184;;;;:::o;12324:102::-;12393:4;12416:3;12408:11;;12324:102;;;:::o;12432:108::-;12509:24;12527:5;12509:24;:::i;:::-;12504:3;12497:37;12432:108;;:::o;12546:179::-;12615:10;12636:46;12678:3;12670:6;12636:46;:::i;:::-;12714:4;12709:3;12705:14;12691:28;;12546:179;;;;:::o;12731:122::-;12783:5;12808:39;12843:2;12838:3;12834:12;12829:3;12808:39;:::i;:::-;12799:48;;12731:122;;;;:::o;12859:115::-;12931:4;12963;12958:3;12954:14;12946:22;;12859:115;;;:::o;13010:699::-;13139:3;13162:86;13241:6;13236:3;13162:86;:::i;:::-;13155:93;;13272:58;13324:5;13272:58;:::i;:::-;13353:7;13384:1;13369:315;13394:6;13391:1;13388:13;13369:315;;;13464:42;13499:6;13490:7;13464:42;:::i;:::-;13526:63;13585:3;13570:13;13526:63;:::i;:::-;13519:70;;13612:62;13667:6;13612:62;:::i;:::-;13602:72;;13429:255;13416:1;13413;13409:9;13404:14;;13369:315;;;13373:14;13700:3;13693:10;;13144:565;;13010:699;;;;;:::o;13715:184::-;13814:11;13848:6;13843:3;13836:19;13888:4;13883:3;13879:14;13864:29;;13715:184;;;;:::o;13905:117::-;14014:1;14011;14004:12;14028:154;14112:6;14107:3;14102;14089:30;14174:1;14165:6;14160:3;14156:16;14149:27;14028:154;;;:::o;14218:537::-;14346:3;14367:86;14446:6;14441:3;14367:86;:::i;:::-;14360:93;;14477:66;14469:6;14466:78;14463:165;;;14547:79;;:::i;:::-;14463:165;14659:4;14651:6;14647:17;14637:27;;14674:43;14710:6;14705:3;14698:5;14674:43;:::i;:::-;14742:6;14737:3;14733:16;14726:23;;14218:537;;;;;:::o;14761:193::-;14869:11;14903:6;14898:3;14891:19;14943:4;14938:3;14934:14;14919:29;;14761:193;;;;:::o;14960:113::-;15040:4;15063:3;15055:11;;14960:113;;;:::o;15079:158::-;15152:11;15186:6;15181:3;15174:19;15226:4;15221:3;15217:14;15202:29;;15079:158;;;;:::o;15243:102::-;15284:6;15335:2;15331:7;15326:2;15319:5;15315:14;15311:28;15301:38;;15243:102;;;:::o;15373:281::-;15459:3;15480:60;15533:6;15528:3;15480:60;:::i;:::-;15473:67;;15550:43;15586:6;15581:3;15574:5;15550:43;:::i;:::-;15618:29;15640:6;15618:29;:::i;:::-;15613:3;15609:39;15602:46;;15373:281;;;;;:::o;15660:212::-;15757:10;15792:74;15862:3;15854:6;15846;15792:74;:::i;:::-;15778:88;;15660:212;;;;;:::o;15878:117::-;15987:1;15984;15977:12;16001:117;16110:1;16107;16100:12;16124:117;16233:1;16230;16223:12;16247:714;16311:5;16318:6;16374:3;16361:17;16466:1;16460:4;16456:12;16445:8;16429:14;16425:29;16421:48;16401:18;16397:73;16387:168;;16474:79;;:::i;:::-;16387:168;16597:8;16577:18;16573:33;16564:42;;16639:5;16626:19;16616:29;;16674:4;16667:5;16663:16;16654:25;;16702:18;16694:6;16691:30;16688:117;;;16724:79;;:::i;:::-;16688:117;16863:4;16855:6;16851:17;16835:14;16831:38;16821:8;16817:53;16814:140;;;16873:79;;:::i;:::-;16814:140;16325:636;16247:714;;;;;:::o;16967:126::-;17050:4;17082;17077:3;17073:14;17065:22;;16967:126;;;:::o;17125:990::-;17274:3;17297:95;17385:6;17380:3;17297:95;:::i;:::-;17290:102;;17418:3;17463:4;17455:6;17451:17;17446:3;17442:27;17493:69;17556:5;17493:69;:::i;:::-;17585:7;17616:1;17601:469;17626:6;17623:1;17620:13;17601:469;;;17697:9;17691:4;17687:20;17682:3;17675:33;17757:53;17803:6;17794:7;17757:53;:::i;:::-;17831:99;17925:4;17910:13;17895;17831:99;:::i;:::-;17823:107;;17953:73;18019:6;17953:73;:::i;:::-;17943:83;;18055:4;18050:3;18046:14;18039:21;;17661:409;;17648:1;17645;17641:9;17636:14;;17601:469;;;17605:14;18086:4;18079:11;;18106:3;18099:10;;17279:836;;;;17125:990;;;;;:::o;18121:1217::-;18526:4;18564:3;18553:9;18549:19;18541:27;;18614:9;18608:4;18604:20;18600:1;18589:9;18585:17;18578:47;18642:118;18755:4;18746:6;18738;18642:118;:::i;:::-;18634:126;;18807:9;18801:4;18797:20;18792:2;18781:9;18777:18;18770:48;18835:118;18948:4;18939:6;18931;18835:118;:::i;:::-;18827:126;;19000:9;18994:4;18990:20;18985:2;18974:9;18970:18;18963:48;19028:138;19161:4;19152:6;19144;19028:138;:::i;:::-;19020:146;;19176:72;19244:2;19233:9;19229:18;19220:6;19176:72;:::i;:::-;19258:73;19326:3;19315:9;19311:19;19302:6;19258:73;:::i;:::-;18121:1217;;;;;;;;;;;:::o;19344:169::-;19428:11;19462:6;19457:3;19450:19;19502:4;19497:3;19493:14;19478:29;;19344:169;;;;:::o;19519:234::-;19659:34;19655:1;19647:6;19643:14;19636:58;19728:17;19723:2;19715:6;19711:15;19704:42;19519:234;:::o;19759:366::-;19901:3;19922:67;19986:2;19981:3;19922:67;:::i;:::-;19915:74;;19998:93;20087:3;19998:93;:::i;:::-;20116:2;20111:3;20107:12;20100:19;;19759:366;;;:::o;20131:419::-;20297:4;20335:2;20324:9;20320:18;20312:26;;20384:9;20378:4;20374:20;20370:1;20359:9;20355:17;20348:47;20412:131;20538:4;20412:131;:::i;:::-;20404:139;;20131:419;;;:::o;20556:226::-;20696:34;20692:1;20684:6;20680:14;20673:58;20765:9;20760:2;20752:6;20748:15;20741:34;20556:226;:::o;20788:366::-;20930:3;20951:67;21015:2;21010:3;20951:67;:::i;:::-;20944:74;;21027:93;21116:3;21027:93;:::i;:::-;21145:2;21140:3;21136:12;21129:19;;20788:366;;;:::o;21160:419::-;21326:4;21364:2;21353:9;21349:18;21341:26;;21413:9;21407:4;21403:20;21399:1;21388:9;21384:17;21377:47;21441:131;21567:4;21441:131;:::i;:::-;21433:139;;21160:419;;;:::o;21585:332::-;21706:4;21744:2;21733:9;21729:18;21721:26;;21757:71;21825:1;21814:9;21810:17;21801:6;21757:71;:::i;:::-;21838:72;21906:2;21895:9;21891:18;21882:6;21838:72;:::i;:::-;21585:332;;;;;:::o;21923:180::-;21971:77;21968:1;21961:88;22068:4;22065:1;22058:15;22092:4;22089:1;22082:15;22109:305;22149:3;22168:20;22186:1;22168:20;:::i;:::-;22163:25;;22202:20;22220:1;22202:20;:::i;:::-;22197:25;;22356:1;22288:66;22284:74;22281:1;22278:81;22275:107;;;22362:18;;:::i;:::-;22275:107;22406:1;22403;22399:9;22392:16;;22109:305;;;;:::o;22420:233::-;22459:3;22482:24;22500:5;22482:24;:::i;:::-;22473:33;;22528:66;22521:5;22518:77;22515:103;;;22598:18;;:::i;:::-;22515:103;22645:1;22638:5;22634:13;22627:20;;22420:233;;;:::o;22659:180::-;22707:77;22704:1;22697:88;22804:4;22801:1;22794:15;22828:4;22825:1;22818:15;22845:236;22985:34;22981:1;22973:6;22969:14;22962:58;23054:19;23049:2;23041:6;23037:15;23030:44;22845:236;:::o;23087:366::-;23229:3;23250:67;23314:2;23309:3;23250:67;:::i;:::-;23243:74;;23326:93;23415:3;23326:93;:::i;:::-;23444:2;23439:3;23435:12;23428:19;;23087:366;;;:::o;23459:419::-;23625:4;23663:2;23652:9;23648:18;23640:26;;23712:9;23706:4;23702:20;23698:1;23687:9;23683:17;23676:47;23740:131;23866:4;23740:131;:::i;:::-;23732:139;;23459:419;;;:::o;23884:184::-;23983:11;24017:6;24012:3;24005:19;24057:4;24052:3;24048:14;24033:29;;23884:184;;;;:::o;24104:537::-;24232:3;24253:86;24332:6;24327:3;24253:86;:::i;:::-;24246:93;;24363:66;24355:6;24352:78;24349:165;;;24433:79;;:::i;:::-;24349:165;24545:4;24537:6;24533:17;24523:27;;24560:43;24596:6;24591:3;24584:5;24560:43;:::i;:::-;24628:6;24623:3;24619:16;24612:23;;24104:537;;;;;:::o;24647:393::-;24800:4;24838:2;24827:9;24823:18;24815:26;;24887:9;24881:4;24877:20;24873:1;24862:9;24858:17;24851:47;24915:118;25028:4;25019:6;25011;24915:118;:::i;:::-;24907:126;;24647:393;;;;;:::o;25046:220::-;25186:34;25182:1;25174:6;25170:14;25163:58;25255:3;25250:2;25242:6;25238:15;25231:28;25046:220;:::o;25272:366::-;25414:3;25435:67;25499:2;25494:3;25435:67;:::i;:::-;25428:74;;25511:93;25600:3;25511:93;:::i;:::-;25629:2;25624:3;25620:12;25613:19;;25272:366;;;:::o;25644:419::-;25810:4;25848:2;25837:9;25833:18;25825:26;;25897:9;25891:4;25887:20;25883:1;25872:9;25868:17;25861:47;25925:131;26051:4;25925:131;:::i;:::-;25917:139;;25644:419;;;:::o;26069:234::-;26209:34;26205:1;26197:6;26193:14;26186:58;26278:17;26273:2;26265:6;26261:15;26254:42;26069:234;:::o;26309:366::-;26451:3;26472:67;26536:2;26531:3;26472:67;:::i;:::-;26465:74;;26548:93;26637:3;26548:93;:::i;:::-;26666:2;26661:3;26657:12;26650:19;;26309:366;;;:::o;26681:419::-;26847:4;26885:2;26874:9;26870:18;26862:26;;26934:9;26928:4;26924:20;26920:1;26909:9;26905:17;26898:47;26962:131;27088:4;26962:131;:::i;:::-;26954:139;;26681:419;;;:::o;27106:329::-;27165:6;27214:2;27202:9;27193:7;27189:23;27185:32;27182:119;;;27220:79;;:::i;:::-;27182:119;27340:1;27365:53;27410:7;27401:6;27390:9;27386:22;27365:53;:::i;:::-;27355:63;;27311:117;27106:329;;;;:::o;27441:117::-;27550:1;27547;27540:12;27564:117;27673:1;27670;27663:12;27687:117;27796:1;27793;27786:12;27810:724;27887:4;27893:6;27949:11;27936:25;28049:1;28043:4;28039:12;28028:8;28012:14;28008:29;28004:48;27984:18;27980:73;27970:168;;28057:79;;:::i;:::-;27970:168;28169:18;28159:8;28155:33;28147:41;;28221:4;28208:18;28198:28;;28249:18;28241:6;28238:30;28235:117;;;28271:79;;:::i;:::-;28235:117;28379:2;28373:4;28369:13;28361:21;;28436:4;28428:6;28424:17;28408:14;28404:38;28398:4;28394:49;28391:136;;;28446:79;;:::i;:::-;28391:136;27900:634;27810:724;;;;;:::o;28540:148::-;28642:11;28679:3;28664:18;;28540:148;;;;:::o;28694:173::-;28834:25;28830:1;28822:6;28818:14;28811:49;28694:173;:::o;28873:402::-;29033:3;29054:85;29136:2;29131:3;29054:85;:::i;:::-;29047:92;;29148:93;29237:3;29148:93;:::i;:::-;29266:2;29261:3;29257:12;29250:19;;28873:402;;;:::o;29281:99::-;29333:6;29367:5;29361:12;29351:22;;29281:99;;;:::o;29386:307::-;29454:1;29464:113;29478:6;29475:1;29472:13;29464:113;;;29563:1;29558:3;29554:11;29548:18;29544:1;29539:3;29535:11;29528:39;29500:2;29497:1;29493:10;29488:15;;29464:113;;;29595:6;29592:1;29589:13;29586:101;;;29675:1;29666:6;29661:3;29657:16;29650:27;29586:101;29435:258;29386:307;;;:::o;29699:377::-;29805:3;29833:39;29866:5;29833:39;:::i;:::-;29888:89;29970:6;29965:3;29888:89;:::i;:::-;29881:96;;29986:52;30031:6;30026:3;30019:4;30012:5;30008:16;29986:52;:::i;:::-;30063:6;30058:3;30054:16;30047:23;;29809:267;29699:377;;;;:::o;30082:167::-;30222:19;30218:1;30210:6;30206:14;30199:43;30082:167;:::o;30255:402::-;30415:3;30436:85;30518:2;30513:3;30436:85;:::i;:::-;30429:92;;30530:93;30619:3;30530:93;:::i;:::-;30648:2;30643:3;30639:12;30632:19;;30255:402;;;:::o;30663:967::-;31045:3;31067:148;31211:3;31067:148;:::i;:::-;31060:155;;31232:95;31323:3;31314:6;31232:95;:::i;:::-;31225:102;;31344:148;31488:3;31344:148;:::i;:::-;31337:155;;31509:95;31600:3;31591:6;31509:95;:::i;:::-;31502:102;;31621:3;31614:10;;30663:967;;;;;:::o;31636:364::-;31724:3;31752:39;31785:5;31752:39;:::i;:::-;31807:71;31871:6;31866:3;31807:71;:::i;:::-;31800:78;;31887:52;31932:6;31927:3;31920:4;31913:5;31909:16;31887:52;:::i;:::-;31964:29;31986:6;31964:29;:::i;:::-;31959:3;31955:39;31948:46;;31728:272;31636:364;;;;:::o;32006:313::-;32119:4;32157:2;32146:9;32142:18;32134:26;;32206:9;32200:4;32196:20;32192:1;32181:9;32177:17;32170:47;32234:78;32307:4;32298:6;32234:78;:::i;:::-;32226:86;;32006:313;;;;:::o;32325:232::-;32465:34;32461:1;32453:6;32449:14;32442:58;32534:15;32529:2;32521:6;32517:15;32510:40;32325:232;:::o;32563:366::-;32705:3;32726:67;32790:2;32785:3;32726:67;:::i;:::-;32719:74;;32802:93;32891:3;32802:93;:::i;:::-;32920:2;32915:3;32911:12;32904:19;;32563:366;;;:::o;32935:419::-;33101:4;33139:2;33128:9;33124:18;33116:26;;33188:9;33182:4;33178:20;33174:1;33163:9;33159:17;33152:47;33216:131;33342:4;33216:131;:::i;:::-;33208:139;;32935:419;;;:::o;33360:223::-;33500:34;33496:1;33488:6;33484:14;33477:58;33569:6;33564:2;33556:6;33552:15;33545:31;33360:223;:::o;33589:366::-;33731:3;33752:67;33816:2;33811:3;33752:67;:::i;:::-;33745:74;;33828:93;33917:3;33828:93;:::i;:::-;33946:2;33941:3;33937:12;33930:19;;33589:366;;;:::o;33961:419::-;34127:4;34165:2;34154:9;34150:18;34142:26;;34214:9;34208:4;34204:20;34200:1;34189:9;34185:17;34178:47;34242:131;34368:4;34242:131;:::i;:::-;34234:139;;33961:419;;;:::o;34386:227::-;34526:34;34522:1;34514:6;34510:14;34503:58;34595:10;34590:2;34582:6;34578:15;34571:35;34386:227;:::o;34619:366::-;34761:3;34782:67;34846:2;34841:3;34782:67;:::i;:::-;34775:74;;34858:93;34947:3;34858:93;:::i;:::-;34976:2;34971:3;34967:12;34960:19;;34619:366;;;:::o;34991:419::-;35157:4;35195:2;35184:9;35180:18;35172:26;;35244:9;35238:4;35234:20;35230:1;35219:9;35215:17;35208:47;35272:131;35398:4;35272:131;:::i;:::-;35264:139;;34991:419;;;:::o;35416:247::-;35556:34;35552:1;35544:6;35540:14;35533:58;35625:30;35620:2;35612:6;35608:15;35601:55;35416:247;:::o;35669:366::-;35811:3;35832:67;35896:2;35891:3;35832:67;:::i;:::-;35825:74;;35908:93;35997:3;35908:93;:::i;:::-;36026:2;36021:3;36017:12;36010:19;;35669:366;;;:::o;36041:419::-;36207:4;36245:2;36234:9;36230:18;36222:26;;36294:9;36288:4;36284:20;36280:1;36269:9;36265:17;36258:47;36322:131;36448:4;36322:131;:::i;:::-;36314:139;;36041:419;;;:::o;36466:223::-;36606:34;36602:1;36594:6;36590:14;36583:58;36675:6;36670:2;36662:6;36658:15;36651:31;36466:223;:::o;36695:366::-;36837:3;36858:67;36922:2;36917:3;36858:67;:::i;:::-;36851:74;;36934:93;37023:3;36934:93;:::i;:::-;37052:2;37047:3;37043:12;37036:19;;36695:366;;;:::o;37067:419::-;37233:4;37271:2;37260:9;37256:18;37248:26;;37320:9;37314:4;37310:20;37306:1;37295:9;37291:17;37284:47;37348:131;37474:4;37348:131;:::i;:::-;37340:139;;37067:419;;;:::o;37492:147::-;37593:11;37630:3;37615:18;;37492:147;;;;:::o;37667:314::-;37781:3;37802:88;37883:6;37878:3;37802:88;:::i;:::-;37795:95;;37900:43;37936:6;37931:3;37924:5;37900:43;:::i;:::-;37968:6;37963:3;37959:16;37952:23;;37667:314;;;;;:::o;37987:291::-;38127:3;38149:103;38248:3;38239:6;38231;38149:103;:::i;:::-;38142:110;;38269:3;38262:10;;37987:291;;;;;:::o;38284:236::-;38424:34;38420:1;38412:6;38408:14;38401:58;38493:19;38488:2;38480:6;38476:15;38469:44;38284:236;:::o;38526:366::-;38668:3;38689:67;38753:2;38748:3;38689:67;:::i;:::-;38682:74;;38765:93;38854:3;38765:93;:::i;:::-;38883:2;38878:3;38874:12;38867:19;;38526:366;;;:::o;38898:419::-;39064:4;39102:2;39091:9;39087:18;39079:26;;39151:9;39145:4;39141:20;39137:1;39126:9;39122:17;39115:47;39179:131;39305:4;39179:131;:::i;:::-;39171:139;;38898:419;;;:::o;39323:348::-;39363:7;39386:20;39404:1;39386:20;:::i;:::-;39381:25;;39420:20;39438:1;39420:20;:::i;:::-;39415:25;;39608:1;39540:66;39536:74;39533:1;39530:81;39525:1;39518:9;39511:17;39507:105;39504:131;;;39615:18;;:::i;:::-;39504:131;39663:1;39660;39656:9;39645:20;;39323:348;;;;:::o;39677:180::-;39725:77;39722:1;39715:88;39822:4;39819:1;39812:15;39846:4;39843:1;39836:15;39863:171;39902:3;39925:24;39943:5;39925:24;:::i;:::-;39916:33;;39971:4;39964:5;39961:15;39958:41;;;39979:18;;:::i;:::-;39958:41;40026:1;40019:5;40015:13;40008:20;;39863:171;;;:::o;40040:182::-;40180:34;40176:1;40168:6;40164:14;40157:58;40040:182;:::o;40228:366::-;40370:3;40391:67;40455:2;40450:3;40391:67;:::i;:::-;40384:74;;40467:93;40556:3;40467:93;:::i;:::-;40585:2;40580:3;40576:12;40569:19;;40228:366;;;:::o;40600:419::-;40766:4;40804:2;40793:9;40789:18;40781:26;;40853:9;40847:4;40843:20;40839:1;40828:9;40824:17;40817:47;40881:131;41007:4;40881:131;:::i;:::-;40873:139;;40600:419;;;:::o;41025:191::-;41065:4;41085:20;41103:1;41085:20;:::i;:::-;41080:25;;41119:20;41137:1;41119:20;:::i;:::-;41114:25;;41158:1;41155;41152:8;41149:34;;;41163:18;;:::i;:::-;41149:34;41208:1;41205;41201:9;41193:17;;41025:191;;;;:::o;41222:180::-;41270:77;41267:1;41260:88;41367:4;41364:1;41357:15;41391:4;41388:1;41381:15", + "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\n\n/**\n * MultiSigWallet with timelocker\n */\ncontract BEMultiSigWallet is AccessControlEnumerable {\n bytes32 public constant TIMELOCK_ADMIN_ROLE =\n keccak256(\"TIMELOCK_ADMIN_ROLE\");\n bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n bytes32 public constant CONFIRM_ROLE = keccak256(\"CONFIRM_ROLE\");\n uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n mapping(bytes32 => uint256) private _timestamps;\n mapping(bytes32 => mapping(address => bool)) public confirmations;\n uint256 public minDelay;\n uint256 public required;\n\n /**\n * @dev Emitted when a call is scheduled as part of operation `id`.\n */\n event ScheduleAdded(bytes32 indexed id);\n\n /**\n * @dev Emitted when a call is performed as part of operation `id`.\n */\n event ScheduleExecuted(bytes32 indexed id);\n\n /**\n * @dev Emitted when operation `id` is cancelled.\n */\n event Cancelled(bytes32 indexed id);\n\n event Confirmation(address indexed sender, bytes32[] ids);\n\n event Revocation(address indexed sender, bytes32[] ids);\n\n /**\n * @dev Emitted when the minimum delay for future operations is modified.\n */\n event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n /**\n * @dev Emitted when the number of required confimations is modified.\n */\n event RequirementChange(uint256 oldDuration, uint256 newDuration);\n\n modifier onlyWallet() {\n require(\n msg.sender == address(this),\n \"BEMultiSigWallet: caller must be wallet\"\n );\n _;\n }\n\n /**\n * @dev Initializes the contract with a given `minDelay`.\n */\n constructor(\n uint256 _minDelay,\n uint256 _required,\n address[] memory proposers,\n address[] memory confirmers,\n address[] memory executors\n ) {\n _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n _setRoleAdmin(CONFIRM_ROLE, TIMELOCK_ADMIN_ROLE);\n\n // deployer + self administration\n _setupRole(TIMELOCK_ADMIN_ROLE, _msgSender());\n _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n // register proposers\n for (uint256 i = 0; i < proposers.length; ++i) {\n _setupRole(PROPOSER_ROLE, proposers[i]);\n }\n\n // register confirmers\n for (uint256 i = 0; i < confirmers.length; ++i) {\n _setupRole(CONFIRM_ROLE, confirmers[i]);\n }\n\n // register executors\n for (uint256 i = 0; i < executors.length; ++i) {\n _setupRole(EXECUTOR_ROLE, executors[i]);\n }\n\n minDelay = _minDelay;\n emit MinDelayChange(0, minDelay);\n required = _required;\n emit RequirementChange(0, required);\n }\n\n /**\n * @dev Modifier to make a function callable only by a certain role. In\n * addition to checking the sender's role, `address(0)` 's role is also\n * considered. Granting a role to `address(0)` is equivalent to enabling\n * this role for everyone.\n */\n modifier onlyRoleOrOpenRole(bytes32 role) {\n if (!hasRole(role, address(0))) {\n _checkRole(role, _msgSender());\n }\n _;\n }\n\n /**\n * @dev Contract might receive/hold ETH as part of the maintenance process.\n */\n receive() external payable {}\n\n /**\n * @dev Returns whether an id correspond to a registered operation. This\n * includes both Pending, Ready and Done operations.\n */\n function isOperation(bytes32 id) public view virtual returns (bool pending) {\n return getTimestamp(id) > 0;\n }\n\n /**\n * @dev Returns whether an operation is pending or not.\n */\n function isOperationPending(\n bytes32 id\n ) public view virtual returns (bool pending) {\n return getTimestamp(id) > _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Returns whether an operation is confirmed or not.\n */\n function isConfirmed(bytes32 id) public view returns (bool ready) {\n uint256 count = 0;\n uint256 confirmCount = getRoleMemberCount(CONFIRM_ROLE);\n for (uint256 i = 0; i < confirmCount; i++) {\n if (confirmations[id][getRoleMember(CONFIRM_ROLE, i)]) count += 1;\n if (count == required) return true;\n }\n }\n\n /**\n * @dev Returns whether an operation is ready or not.\n */\n function isOperationReady(\n bytes32 id\n ) public view virtual returns (bool ready) {\n uint256 timestamp = getTimestamp(id);\n return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n }\n\n /**\n * @dev Returns whether an operation is done or not.\n */\n function isOperationDone(bytes32 id) public view virtual returns (bool done) {\n return getTimestamp(id) == _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Returns the timestamp at with an operation becomes ready (0 for\n * unset operations, 1 for done operations).\n */\n function getTimestamp(\n bytes32 id\n ) public view virtual returns (uint256 timestamp) {\n return _timestamps[id];\n }\n\n /**\n * @dev Returns the identifier of an operation containing a batch of\n * transactions.\n */\n function hashOperation(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) public pure virtual returns (bytes32 hash) {\n return keccak256(abi.encode(targets, values, datas, predecessor, salt));\n }\n\n /**\n * @dev Schedule an operation containing a batch of transactions.\n *\n * Emits one {ScheduleAdded} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function schedule(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt,\n uint256 delay\n ) external virtual onlyRoleOrOpenRole(PROPOSER_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperation(targets, values, datas, predecessor, salt);\n _schedule(id, delay);\n emit ScheduleAdded(id);\n }\n\n /**\n * @dev Schedule an operation that is to becomes valid after a given delay.\n */\n function _schedule(bytes32 id, uint256 delay) private {\n require(!isOperation(id), \"BEMultiSigWallet: operation already scheduled\");\n require(delay >= minDelay, \"BEMultiSigWallet: insufficient delay\");\n _timestamps[id] = block.timestamp + delay;\n }\n\n /**\n * @dev Cancel an operation.\n *\n * Requirements:\n *\n * - the caller must have the 'proposer' role.\n */\n function cancel(\n bytes32 id\n ) external virtual onlyRoleOrOpenRole(PROPOSER_ROLE) {\n require(\n isOperationPending(id),\n \"BEMultiSigWallet: operation cannot be cancelled\"\n );\n delete _timestamps[id];\n\n emit Cancelled(id);\n }\n\n /**\n * @dev Allows an executor to confirm multiple transactions.\n */\n function confirmTransaction(\n bytes32[] calldata ids\n ) external onlyRoleOrOpenRole(CONFIRM_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n require(\n isOperationPending(ids[i]),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[ids[i]][msg.sender] = true;\n }\n emit Confirmation(msg.sender, ids);\n }\n\n /**\n * @dev Allows an executor to revoke multiple confirmations for a transaction.\n */\n function revokeConfirmation(\n bytes32[] calldata ids\n ) external onlyRoleOrOpenRole(CONFIRM_ROLE) {\n for (uint256 i = 0; i < ids.length; ++i) {\n require(\n isOperationPending(ids[i]),\n \"BEMultiSigWallet: operation not exist or finished\"\n );\n confirmations[ids[i]][msg.sender] = false;\n }\n emit Revocation(msg.sender, ids);\n }\n\n /**\n * @dev Execute an (ready) operation containing a batch of transactions.\n *\n * Emits one {CallExecuted} event per transaction in the batch.\n *\n * Requirements:\n *\n * - the caller must have the 'executor' role.\n */\n function execute(\n address[] calldata targets,\n uint256[] calldata values,\n bytes[] calldata datas,\n bytes32 predecessor,\n bytes32 salt\n ) external payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n require(\n targets.length == values.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n require(\n targets.length == datas.length,\n \"BEMultiSigWallet: length mismatch\"\n );\n\n bytes32 id = hashOperation(targets, values, datas, predecessor, salt);\n _beforeCall(id, predecessor);\n for (uint256 i = 0; i < targets.length; ++i) {\n _call(targets[i], values[i], datas[i]);\n }\n _afterCall(id);\n emit ScheduleExecuted(id);\n }\n\n /**\n * @dev Checks before execution of an operation's calls.\n */\n function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n require(\n isConfirmed(id),\n \"BEMultiSigWallet: operation not reach required confirmations\"\n );\n require(\n predecessor == bytes32(0) || isOperationDone(predecessor),\n \"BEMultiSigWallet: missing dependency\"\n );\n }\n\n /**\n * @dev Checks after execution of an operation's calls.\n */\n function _afterCall(bytes32 id) private {\n require(isOperationReady(id), \"BEMultiSigWallet: operation is not ready\");\n _timestamps[id] = _DONE_TIMESTAMP;\n }\n\n /**\n * @dev Execute an operation's call.\n *\n * Emits a {CallExecuted} event.\n */\n function _call(address target, uint256 value, bytes calldata data) private {\n (bool success, ) = target.call{value: value}(data);\n require(success, \"BEMultiSigWallet: underlying transaction reverted\");\n }\n\n /**\n * @dev Changes the minimum wallet duration for future operations.\n *\n * Emits a {MinDelayChange} event.\n *\n * Requirements:\n *\n * - the caller must be the wallet itself. This can only be achieved by scheduling and later executing\n * an operation where the wallet is the target and the data is the ABI-encoded call to this function.\n */\n function changeDelay(uint256 _minDelay) external virtual onlyWallet {\n emit MinDelayChange(minDelay, _minDelay);\n minDelay = _minDelay;\n }\n\n /**\n * @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n * @param _required Number of required confirmations.\n */\n function changeRequirement(uint256 _required) external virtual onlyWallet {\n emit RequirementChange(required, _required);\n required = _required;\n }\n}\n", "sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/core/BEMultiSigWallet.sol", "ast": { "absolutePath": "project:/contracts/core/BEMultiSigWallet.sol", @@ -22336,7 +22314,7 @@ 433 ], "BEMultiSigWallet": [ - 2240 + 2241 ], "Context": [ 553 @@ -22360,7 +22338,7 @@ 756 ] }, - "id": 2241, + "id": 2242, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -22380,7 +22358,7 @@ "id": 1394, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2241, + "scope": 2242, "sourceUnit": 434, "src": "56:68:9", "symbolAliases": [], @@ -22412,9 +22390,9 @@ "text": " MultiSigWallet with timelocker" }, "fullyImplemented": true, - "id": 2240, + "id": 2241, "linearizedBaseContracts": [ - 2240, + 2241, 433, 308, 780, @@ -22435,7 +22413,7 @@ "name": "TIMELOCK_ADMIN_ROLE", "nameLocation": "249:19:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "225:82:9", "stateVariable": true, "storageLocation": "default", @@ -22515,7 +22493,7 @@ "name": "PROPOSER_ROLE", "nameLocation": "335:13:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "311:66:9", "stateVariable": true, "storageLocation": "default", @@ -22595,7 +22573,7 @@ "name": "EXECUTOR_ROLE", "nameLocation": "405:13:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "381:66:9", "stateVariable": true, "storageLocation": "default", @@ -22675,7 +22653,7 @@ "name": "CONFIRM_ROLE", "nameLocation": "475:12:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "451:64:9", "stateVariable": true, "storageLocation": "default", @@ -22754,7 +22732,7 @@ "name": "_DONE_TIMESTAMP", "nameLocation": "545:15:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "519:54:9", "stateVariable": true, "storageLocation": "default", @@ -22841,7 +22819,7 @@ "name": "_timestamps", "nameLocation": "614:11:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "578:47:9", "stateVariable": true, "storageLocation": "default", @@ -22888,7 +22866,7 @@ "name": "confirmations", "nameLocation": "681:13:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "629:65:9", "stateVariable": true, "storageLocation": "default", @@ -22954,7 +22932,7 @@ "name": "minDelay", "nameLocation": "713:8:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "698:23:9", "stateVariable": true, "storageLocation": "default", @@ -22982,7 +22960,7 @@ "name": "required", "nameLocation": "740:8:9", "nodeType": "VariableDeclaration", - "scope": 2240, + "scope": 2241, "src": "725:23:9", "stateVariable": true, "storageLocation": "default", @@ -23522,7 +23500,7 @@ "referencedDeclaration": 4294967268, "src": "1607:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2240", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2241", "typeString": "contract BEMultiSigWallet" } } @@ -23530,7 +23508,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2240", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2241", "typeString": "contract BEMultiSigWallet" } ], @@ -24050,7 +24028,7 @@ "referencedDeclaration": 4294967268, "src": "2275:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2240", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2241", "typeString": "contract BEMultiSigWallet" } } @@ -24058,7 +24036,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_BEMultiSigWallet_$2240", + "typeIdentifier": "t_contract$_BEMultiSigWallet_$2241", "typeString": "contract BEMultiSigWallet" } ], @@ -25304,7 +25282,7 @@ "parameters": [], "src": "1914:0:9" }, - "scope": 2240, + "scope": 2241, "src": "1755:1064:9", "stateMutability": "nonpayable", "virtual": false, @@ -25629,7 +25607,7 @@ "parameters": [], "src": "3344:0:9" }, - "scope": 2240, + "scope": 2241, "src": "3317:29:9", "stateMutability": "payable", "virtual": false, @@ -25678,7 +25656,7 @@ "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1784, + "referencedDeclaration": 1785, "src": "3581:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", @@ -25813,7 +25791,7 @@ ], "src": "3553:14:9" }, - "scope": 2240, + "scope": 2241, "src": "3492:114:9", "stateMutability": "view", "virtual": true, @@ -25862,7 +25840,7 @@ "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1784, + "referencedDeclaration": 1785, "src": "3784:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", @@ -25993,7 +25971,7 @@ ], "src": "3756:14:9" }, - "scope": 2240, + "scope": 2241, "src": "3680:143:9", "stateMutability": "view", "virtual": true, @@ -26001,24 +25979,24 @@ }, { "body": { - "id": 1731, + "id": 1732, "nodeType": "Block", - "src": "3893:263:9", + "src": "3965:259:9", "statements": [ { "assignments": [ - 1691 + 1692 ], "declarations": [ { "constant": false, - "id": 1691, + "id": 1692, "mutability": "mutable", "name": "count", - "nameLocation": "3907:5:9", + "nameLocation": "3979:5:9", "nodeType": "VariableDeclaration", - "scope": 1731, - "src": "3899:13:9", + "scope": 1732, + "src": "3971:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26026,10 +26004,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1690, + "id": 1691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3899:7:9", + "src": "3971:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26038,17 +26016,17 @@ "visibility": "internal" } ], - "id": 1693, + "id": 1694, "initialValue": { "hexValue": "30", - "id": 1692, + "id": 1693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3915:1:9", + "src": "3987:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -26056,22 +26034,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3899:17:9" + "src": "3971:17:9" }, { "assignments": [ - 1695 + 1696 ], "declarations": [ { "constant": false, - "id": 1695, + "id": 1696, "mutability": "mutable", - "name": "executorCount", - "nameLocation": "3930:13:9", + "name": "confirmCount", + "nameLocation": "4002:12:9", "nodeType": "VariableDeclaration", - "scope": 1731, - "src": "3922:21:9", + "scope": 1732, + "src": "3994:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26079,10 +26057,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1694, + "id": 1695, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3922:7:9", + "src": "3994:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26091,16 +26069,16 @@ "visibility": "internal" } ], - "id": 1699, + "id": 1700, "initialValue": { "arguments": [ { - "id": 1697, - "name": "EXECUTOR_ROLE", + "id": 1698, + "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3965:13:9", + "referencedDeclaration": 1417, + "src": "4036:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26114,18 +26092,18 @@ "typeString": "bytes32" } ], - "id": 1696, + "id": 1697, "name": "getRoleMemberCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 384, - "src": "3946:18:9", + "src": "4017:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1698, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": false, @@ -26133,7 +26111,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3946:33:9", + "src": "4017:32:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -26141,37 +26119,37 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3922:57:9" + "src": "3994:55:9" }, { "body": { - "id": 1729, + "id": 1730, "nodeType": "Block", - "src": "4029:123:9", + "src": "4098:122:9", "statements": [ { "condition": { "baseExpression": { "baseExpression": { - "id": 1710, + "id": 1711, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1433, - "src": "4041:13:9", + "src": "4110:13:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 1712, + "id": 1713, "indexExpression": { - "id": 1711, + "id": 1712, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1685, - "src": "4055:2:9", + "referencedDeclaration": 1686, + "src": "4124:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26182,34 +26160,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4041:17:9", + "src": "4110:17:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1717, + "id": 1718, "indexExpression": { "arguments": [ { - "id": 1714, - "name": "EXECUTOR_ROLE", + "id": 1715, + "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "4073:13:9", + "referencedDeclaration": 1417, + "src": "4142:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1715, + "id": 1716, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "4088:1:9", + "referencedDeclaration": 1702, + "src": "4156:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26227,18 +26205,18 @@ "typeString": "uint256" } ], - "id": 1713, + "id": 1714, "name": "getRoleMember", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 368, - "src": "4059:13:9", + "src": "4128:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,uint256) view returns (address)" } }, - "id": 1716, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": false, @@ -26246,7 +26224,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4059:31:9", + "src": "4128:30:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -26258,29 +26236,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4041:50:9", + "src": "4110:49:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1722, + "id": 1723, "nodeType": "IfStatement", - "src": "4037:66:9", + "src": "4106:65:9", "trueBody": { "expression": { - "id": 1720, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1718, + "id": 1719, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1691, - "src": "4093:5:9", + "referencedDeclaration": 1692, + "src": "4161:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26290,29 +26268,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 1719, + "id": 1720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4102:1:9", + "src": "4170:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "4093:10:9", + "src": "4161:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1721, + "id": 1722, "nodeType": "ExpressionStatement", - "src": "4093:10:9" + "src": "4161:10:9" } }, { @@ -26321,18 +26299,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1725, + "id": 1726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1723, + "id": 1724, "name": "count", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1691, - "src": "4115:5:9", + "referencedDeclaration": 1692, + "src": "4183:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26341,47 +26319,47 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1724, + "id": 1725, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1437, - "src": "4124:8:9", + "src": "4192:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4115:17:9", + "src": "4183:17:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1728, + "id": 1729, "nodeType": "IfStatement", - "src": "4111:34:9", + "src": "4179:34:9", "trueBody": { "expression": { "hexValue": "74727565", - "id": 1726, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4141:4:9", + "src": "4209:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 1689, - "id": 1727, + "functionReturnParameters": 1690, + "id": 1728, "nodeType": "Return", - "src": "4134:11:9" + "src": "4202:11:9" } } ] @@ -26391,18 +26369,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1706, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1704, + "id": 1705, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "4005:1:9", + "referencedDeclaration": 1702, + "src": "4075:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26411,38 +26389,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1705, - "name": "executorCount", + "id": 1706, + "name": "confirmCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1695, - "src": "4009:13:9", + "referencedDeclaration": 1696, + "src": "4079:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4005:17:9", + "src": "4075:16:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1730, + "id": 1731, "initializationExpression": { "assignments": [ - 1701 + 1702 ], "declarations": [ { "constant": false, - "id": 1701, + "id": 1702, "mutability": "mutable", "name": "i", - "nameLocation": "3998:1:9", + "nameLocation": "4068:1:9", "nodeType": "VariableDeclaration", - "scope": 1730, - "src": "3990:9:9", + "scope": 1731, + "src": "4060:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26450,10 +26428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1700, + "id": 1701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3990:7:9", + "src": "4060:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26462,17 +26440,17 @@ "visibility": "internal" } ], - "id": 1703, + "id": 1704, "initialValue": { "hexValue": "30", - "id": 1702, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4002:1:9", + "src": "4072:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -26480,11 +26458,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3990:13:9" + "src": "4060:13:9" }, "loopExpression": { "expression": { - "id": 1708, + "id": 1709, "isConstant": false, "isLValue": false, "isPure": false, @@ -26492,14 +26470,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4024:3:9", + "src": "4093:3:9", "subExpression": { - "id": 1707, + "id": 1708, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "4024:1:9", + "referencedDeclaration": 1702, + "src": "4093:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26510,36 +26488,42 @@ "typeString": "uint256" } }, - "id": 1709, + "id": 1710, "nodeType": "ExpressionStatement", - "src": "4024:3:9" + "src": "4093:3:9" }, "nodeType": "ForStatement", - "src": "3985:167:9" + "src": "4055:165:9" } ] }, + "documentation": { + "id": 1684, + "nodeType": "StructuredDocumentation", + "src": "3827:69:9", + "text": " @dev Returns whether an operation is confirmed or not." + }, "functionSelector": "6486aa51", - "id": 1732, + "id": 1733, "implemented": true, "kind": "function", "modifiers": [], "name": "isConfirmed", - "nameLocation": "3836:11:9", + "nameLocation": "3908:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1686, + "id": 1687, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1685, + "id": 1686, "mutability": "mutable", "name": "id", - "nameLocation": "3856:2:9", + "nameLocation": "3928:2:9", "nodeType": "VariableDeclaration", - "scope": 1732, - "src": "3848:10:9", + "scope": 1733, + "src": "3920:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26547,10 +26531,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1684, + "id": 1685, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3848:7:9", + "src": "3920:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26559,21 +26543,21 @@ "visibility": "internal" } ], - "src": "3847:12:9" + "src": "3919:12:9" }, "returnParameters": { - "id": 1689, + "id": 1690, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1688, + "id": 1689, "mutability": "mutable", "name": "ready", - "nameLocation": "3886:5:9", + "nameLocation": "3958:5:9", "nodeType": "VariableDeclaration", - "scope": 1732, - "src": "3881:10:9", + "scope": 1733, + "src": "3953:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26581,10 +26565,10 @@ "typeString": "bool" }, "typeName": { - "id": 1687, + "id": 1688, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3881:4:9", + "src": "3953:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26593,34 +26577,34 @@ "visibility": "internal" } ], - "src": "3880:12:9" + "src": "3952:12:9" }, - "scope": 2240, - "src": "3827:329:9", + "scope": 2241, + "src": "3899:325:9", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { - "id": 1755, + "id": 1756, "nodeType": "Block", - "src": "4315:119:9", + "src": "4383:119:9", "statements": [ { "assignments": [ - 1741 + 1742 ], "declarations": [ { "constant": false, - "id": 1741, + "id": 1742, "mutability": "mutable", "name": "timestamp", - "nameLocation": "4329:9:9", + "nameLocation": "4397:9:9", "nodeType": "VariableDeclaration", - "scope": 1755, - "src": "4321:17:9", + "scope": 1756, + "src": "4389:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26628,10 +26612,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1740, + "id": 1741, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4321:7:9", + "src": "4389:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26640,16 +26624,16 @@ "visibility": "internal" } ], - "id": 1745, + "id": 1746, "initialValue": { "arguments": [ { - "id": 1743, + "id": 1744, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "4354:2:9", + "referencedDeclaration": 1736, + "src": "4422:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26663,18 +26647,18 @@ "typeString": "bytes32" } ], - "id": 1742, + "id": 1743, "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1784, - "src": "4341:12:9", + "referencedDeclaration": 1785, + "src": "4409:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1744, + "id": 1745, "isConstant": false, "isLValue": false, "isPure": false, @@ -26682,7 +26666,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4341:16:9", + "src": "4409:16:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -26690,7 +26674,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4321:36:9" + "src": "4389:36:9" }, { "expression": { @@ -26698,7 +26682,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1753, + "id": 1754, "isConstant": false, "isLValue": false, "isPure": false, @@ -26708,18 +26692,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1748, + "id": 1749, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1746, + "id": 1747, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "4370:9:9", + "referencedDeclaration": 1742, + "src": "4438:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26728,18 +26712,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 1747, + "id": 1748, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1423, - "src": "4382:15:9", + "src": "4450:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4370:27:9", + "src": "4438:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26752,18 +26736,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1752, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1749, + "id": 1750, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "4401:9:9", + "referencedDeclaration": 1742, + "src": "4469:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26773,76 +26757,76 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 1750, + "id": 1751, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "4414:5:9", + "src": "4482:5:9", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1751, + "id": 1752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "4414:15:9", + "src": "4482:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4401:28:9", + "src": "4469:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4370:59:9", + "src": "4438:59:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1739, - "id": 1754, + "functionReturnParameters": 1740, + "id": 1755, "nodeType": "Return", - "src": "4363:66:9" + "src": "4431:66:9" } ] }, "documentation": { - "id": 1733, + "id": 1734, "nodeType": "StructuredDocumentation", - "src": "4160:65:9", + "src": "4228:65:9", "text": " @dev Returns whether an operation is ready or not." }, "functionSelector": "13bc9f20", - "id": 1756, + "id": 1757, "implemented": true, "kind": "function", "modifiers": [], "name": "isOperationReady", - "nameLocation": "4237:16:9", + "nameLocation": "4305:16:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1736, + "id": 1737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1735, + "id": 1736, "mutability": "mutable", "name": "id", - "nameLocation": "4267:2:9", + "nameLocation": "4335:2:9", "nodeType": "VariableDeclaration", - "scope": 1756, - "src": "4259:10:9", + "scope": 1757, + "src": "4327:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26850,10 +26834,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1734, + "id": 1735, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4259:7:9", + "src": "4327:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26862,21 +26846,21 @@ "visibility": "internal" } ], - "src": "4253:20:9" + "src": "4321:20:9" }, "returnParameters": { - "id": 1739, + "id": 1740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1738, + "id": 1739, "mutability": "mutable", "name": "ready", - "nameLocation": "4308:5:9", + "nameLocation": "4376:5:9", "nodeType": "VariableDeclaration", - "scope": 1756, - "src": "4303:10:9", + "scope": 1757, + "src": "4371:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26884,10 +26868,10 @@ "typeString": "bool" }, "typeName": { - "id": 1737, + "id": 1738, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4303:4:9", + "src": "4371:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26896,19 +26880,19 @@ "visibility": "internal" } ], - "src": "4302:12:9" + "src": "4370:12:9" }, - "scope": 2240, - "src": "4228:206:9", + "scope": 2241, + "src": "4296:206:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1770, + "id": 1771, "nodeType": "Block", - "src": "4582:53:9", + "src": "4650:53:9", "statements": [ { "expression": { @@ -26916,7 +26900,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1768, + "id": 1769, "isConstant": false, "isLValue": false, "isPure": false, @@ -26924,12 +26908,12 @@ "leftExpression": { "arguments": [ { - "id": 1765, + "id": 1766, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "4608:2:9", + "referencedDeclaration": 1760, + "src": "4676:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26943,18 +26927,18 @@ "typeString": "bytes32" } ], - "id": 1764, + "id": 1765, "name": "getTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1784, - "src": "4595:12:9", + "referencedDeclaration": 1785, + "src": "4663:12:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" } }, - "id": 1766, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": false, @@ -26962,7 +26946,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4595:16:9", + "src": "4663:16:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -26972,57 +26956,57 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1767, + "id": 1768, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1423, - "src": "4615:15:9", + "src": "4683:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4595:35:9", + "src": "4663:35:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1763, - "id": 1769, + "functionReturnParameters": 1764, + "id": 1770, "nodeType": "Return", - "src": "4588:42:9" + "src": "4656:42:9" } ] }, "documentation": { - "id": 1757, + "id": 1758, "nodeType": "StructuredDocumentation", - "src": "4438:64:9", + "src": "4506:64:9", "text": " @dev Returns whether an operation is done or not." }, "functionSelector": "2ab0f529", - "id": 1771, + "id": 1772, "implemented": true, "kind": "function", "modifiers": [], "name": "isOperationDone", - "nameLocation": "4514:15:9", + "nameLocation": "4582:15:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1760, + "id": 1761, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1759, + "id": 1760, "mutability": "mutable", "name": "id", - "nameLocation": "4538:2:9", + "nameLocation": "4606:2:9", "nodeType": "VariableDeclaration", - "scope": 1771, - "src": "4530:10:9", + "scope": 1772, + "src": "4598:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27030,10 +27014,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1758, + "id": 1759, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4530:7:9", + "src": "4598:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27042,21 +27026,21 @@ "visibility": "internal" } ], - "src": "4529:12:9" + "src": "4597:12:9" }, "returnParameters": { - "id": 1763, + "id": 1764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1762, + "id": 1763, "mutability": "mutable", "name": "done", - "nameLocation": "4576:4:9", + "nameLocation": "4644:4:9", "nodeType": "VariableDeclaration", - "scope": 1771, - "src": "4571:9:9", + "scope": 1772, + "src": "4639:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27064,10 +27048,10 @@ "typeString": "bool" }, "typeName": { - "id": 1761, + "id": 1762, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4571:4:9", + "src": "4639:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27076,42 +27060,42 @@ "visibility": "internal" } ], - "src": "4570:11:9" + "src": "4638:11:9" }, - "scope": 2240, - "src": "4505:130:9", + "scope": 2241, + "src": "4573:130:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1783, + "id": 1784, "nodeType": "Block", - "src": "4862:33:9", + "src": "4930:33:9", "statements": [ { "expression": { "baseExpression": { - "id": 1779, + "id": 1780, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1427, - "src": "4875:11:9", + "src": "4943:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1781, + "id": 1782, "indexExpression": { - "id": 1780, + "id": 1781, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1774, - "src": "4887:2:9", + "referencedDeclaration": 1775, + "src": "4955:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27122,46 +27106,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4875:15:9", + "src": "4943:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1778, - "id": 1782, + "functionReturnParameters": 1779, + "id": 1783, "nodeType": "Return", - "src": "4868:22:9" + "src": "4936:22:9" } ] }, "documentation": { - "id": 1772, + "id": 1773, "nodeType": "StructuredDocumentation", - "src": "4639:130:9", + "src": "4707:130:9", "text": " @dev Returns the timestamp at with an operation becomes ready (0 for\n unset operations, 1 for done operations)." }, "functionSelector": "d45c4435", - "id": 1784, + "id": 1785, "implemented": true, "kind": "function", "modifiers": [], "name": "getTimestamp", - "nameLocation": "4781:12:9", + "nameLocation": "4849:12:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1775, + "id": 1776, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1774, + "id": 1775, "mutability": "mutable", "name": "id", - "nameLocation": "4807:2:9", + "nameLocation": "4875:2:9", "nodeType": "VariableDeclaration", - "scope": 1784, - "src": "4799:10:9", + "scope": 1785, + "src": "4867:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27169,10 +27153,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1773, + "id": 1774, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4799:7:9", + "src": "4867:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27181,21 +27165,21 @@ "visibility": "internal" } ], - "src": "4793:20:9" + "src": "4861:20:9" }, "returnParameters": { - "id": 1778, + "id": 1779, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1777, + "id": 1778, "mutability": "mutable", "name": "timestamp", - "nameLocation": "4851:9:9", + "nameLocation": "4919:9:9", "nodeType": "VariableDeclaration", - "scope": 1784, - "src": "4843:17:9", + "scope": 1785, + "src": "4911:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27203,10 +27187,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1776, + "id": 1777, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4843:7:9", + "src": "4911:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27215,19 +27199,19 @@ "visibility": "internal" } ], - "src": "4842:19:9" + "src": "4910:19:9" }, - "scope": 2240, - "src": "4772:123:9", + "scope": 2241, + "src": "4840:123:9", "stateMutability": "view", "virtual": true, "visibility": "public" }, { "body": { - "id": 1814, + "id": 1815, "nodeType": "Block", - "src": "5205:82:9", + "src": "5273:82:9", "statements": [ { "expression": { @@ -27235,60 +27219,60 @@ { "arguments": [ { - "id": 1806, + "id": 1807, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1788, - "src": "5239:7:9", + "referencedDeclaration": 1789, + "src": "5307:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, { - "id": 1807, + "id": 1808, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1791, - "src": "5248:6:9", + "referencedDeclaration": 1792, + "src": "5316:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, { - "id": 1808, + "id": 1809, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1794, - "src": "5256:5:9", + "referencedDeclaration": 1795, + "src": "5324:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, { - "id": 1809, + "id": 1810, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "5263:11:9", + "referencedDeclaration": 1797, + "src": "5331:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1810, + "id": 1811, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "5276:4:9", + "referencedDeclaration": 1799, + "src": "5344:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27319,31 +27303,31 @@ } ], "expression": { - "id": 1804, + "id": 1805, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "5228:3:9", + "src": "5296:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1805, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", - "src": "5228:10:9", + "src": "5296:10:9", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1811, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": false, @@ -27351,7 +27335,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5228:53:9", + "src": "5296:53:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -27366,18 +27350,18 @@ "typeString": "bytes memory" } ], - "id": 1803, + "id": 1804, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "5218:9:9", + "src": "5286:9:9", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1812, + "id": 1813, "isConstant": false, "isLValue": false, "isPure": false, @@ -27385,47 +27369,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5218:64:9", + "src": "5286:64:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 1802, - "id": 1813, + "functionReturnParameters": 1803, + "id": 1814, "nodeType": "Return", - "src": "5211:71:9" + "src": "5279:71:9" } ] }, "documentation": { - "id": 1785, + "id": 1786, "nodeType": "StructuredDocumentation", - "src": "4899:99:9", + "src": "4967:99:9", "text": " @dev Returns the identifier of an operation containing a batch of\n transactions." }, "functionSelector": "25b2060e", - "id": 1815, + "id": 1816, "implemented": true, "kind": "function", "modifiers": [], "name": "hashOperation", - "nameLocation": "5010:13:9", + "nameLocation": "5078:13:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1799, + "id": 1800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1788, + "id": 1789, "mutability": "mutable", "name": "targets", - "nameLocation": "5048:7:9", + "nameLocation": "5116:7:9", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "5029:26:9", + "scope": 1816, + "src": "5097:26:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -27434,19 +27418,19 @@ }, "typeName": { "baseType": { - "id": 1786, + "id": 1787, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5029:7:9", + "src": "5097:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1787, + "id": 1788, "nodeType": "ArrayTypeName", - "src": "5029:9:9", + "src": "5097:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -27456,13 +27440,13 @@ }, { "constant": false, - "id": 1791, + "id": 1792, "mutability": "mutable", "name": "values", - "nameLocation": "5080:6:9", + "nameLocation": "5148:6:9", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "5061:25:9", + "scope": 1816, + "src": "5129:25:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -27471,18 +27455,18 @@ }, "typeName": { "baseType": { - "id": 1789, + "id": 1790, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5061:7:9", + "src": "5129:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1790, + "id": 1791, "nodeType": "ArrayTypeName", - "src": "5061:9:9", + "src": "5129:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -27492,13 +27476,13 @@ }, { "constant": false, - "id": 1794, + "id": 1795, "mutability": "mutable", "name": "datas", - "nameLocation": "5109:5:9", + "nameLocation": "5177:5:9", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "5092:22:9", + "scope": 1816, + "src": "5160:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -27507,18 +27491,18 @@ }, "typeName": { "baseType": { - "id": 1792, + "id": 1793, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5092:5:9", + "src": "5160:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, - "id": 1793, + "id": 1794, "nodeType": "ArrayTypeName", - "src": "5092:7:9", + "src": "5160:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" @@ -27528,13 +27512,13 @@ }, { "constant": false, - "id": 1796, + "id": 1797, "mutability": "mutable", "name": "predecessor", - "nameLocation": "5128:11:9", + "nameLocation": "5196:11:9", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "5120:19:9", + "scope": 1816, + "src": "5188:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27542,10 +27526,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1795, + "id": 1796, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5120:7:9", + "src": "5188:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27555,13 +27539,13 @@ }, { "constant": false, - "id": 1798, + "id": 1799, "mutability": "mutable", "name": "salt", - "nameLocation": "5153:4:9", + "nameLocation": "5221:4:9", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "5145:12:9", + "scope": 1816, + "src": "5213:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27569,10 +27553,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1797, + "id": 1798, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5145:7:9", + "src": "5213:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27581,21 +27565,21 @@ "visibility": "internal" } ], - "src": "5023:138:9" + "src": "5091:138:9" }, "returnParameters": { - "id": 1802, + "id": 1803, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1801, + "id": 1802, "mutability": "mutable", "name": "hash", - "nameLocation": "5199:4:9", + "nameLocation": "5267:4:9", "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "5191:12:9", + "scope": 1816, + "src": "5259:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27603,10 +27587,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1800, + "id": 1801, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5191:7:9", + "src": "5259:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27615,19 +27599,19 @@ "visibility": "internal" } ], - "src": "5190:14:9" + "src": "5258:14:9" }, - "scope": 2240, - "src": "5001:286:9", + "scope": 2241, + "src": "5069:286:9", "stateMutability": "pure", "virtual": true, "visibility": "public" }, { "body": { - "id": 1874, + "id": 1875, "nodeType": "Block", - "src": "5745:336:9", + "src": "5815:336:9", "statements": [ { "expression": { @@ -27637,32 +27621,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1842, + "id": 1843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1838, + "id": 1839, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "5766:7:9", + "referencedDeclaration": 1820, + "src": "5836:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 1839, + "id": 1840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5766:14:9", + "src": "5836:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27672,31 +27656,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1840, + "id": 1841, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "5784:6:9", + "referencedDeclaration": 1823, + "src": "5854:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 1841, + "id": 1842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5784:13:9", + "src": "5854:13:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5766:31:9", + "src": "5836:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27704,14 +27688,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 1843, + "id": 1844, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5805:35:9", + "src": "5875:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -27730,7 +27714,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 1837, + "id": 1838, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -27738,13 +27722,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5751:7:9", + "src": "5821:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1844, + "id": 1845, "isConstant": false, "isLValue": false, "isPure": false, @@ -27752,16 +27736,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5751:95:9", + "src": "5821:95:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1845, + "id": 1846, "nodeType": "ExpressionStatement", - "src": "5751:95:9" + "src": "5821:95:9" }, { "expression": { @@ -27771,32 +27755,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1851, + "id": 1852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1847, + "id": 1848, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "5867:7:9", + "referencedDeclaration": 1820, + "src": "5937:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 1848, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5867:14:9", + "src": "5937:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27806,31 +27790,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1849, + "id": 1850, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "5885:5:9", + "referencedDeclaration": 1826, + "src": "5955:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 1850, + "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5885:12:9", + "src": "5955:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5867:30:9", + "src": "5937:30:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27838,14 +27822,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 1852, + "id": 1853, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5905:35:9", + "src": "5975:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -27864,7 +27848,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 1846, + "id": 1847, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -27872,13 +27856,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5852:7:9", + "src": "5922:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1853, + "id": 1854, "isConstant": false, "isLValue": false, "isPure": false, @@ -27886,31 +27870,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5852:94:9", + "src": "5922:94:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1854, + "id": 1855, "nodeType": "ExpressionStatement", - "src": "5852:94:9" + "src": "5922:94:9" }, { "assignments": [ - 1856 + 1857 ], "declarations": [ { "constant": false, - "id": 1856, + "id": 1857, "mutability": "mutable", "name": "id", - "nameLocation": "5961:2:9", + "nameLocation": "6031:2:9", "nodeType": "VariableDeclaration", - "scope": 1874, - "src": "5953:10:9", + "scope": 1875, + "src": "6023:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27918,10 +27902,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1855, + "id": 1856, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5953:7:9", + "src": "6023:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27930,64 +27914,64 @@ "visibility": "internal" } ], - "id": 1864, + "id": 1865, "initialValue": { "arguments": [ { - "id": 1858, + "id": 1859, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "5980:7:9", + "referencedDeclaration": 1820, + "src": "6050:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, { - "id": 1859, + "id": 1860, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "5989:6:9", + "referencedDeclaration": 1823, + "src": "6059:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, { - "id": 1860, + "id": 1861, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "5997:5:9", + "referencedDeclaration": 1826, + "src": "6067:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, { - "id": 1861, + "id": 1862, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "6004:11:9", + "referencedDeclaration": 1828, + "src": "6074:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1862, + "id": 1863, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1829, - "src": "6017:4:9", + "referencedDeclaration": 1830, + "src": "6087:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28017,18 +28001,18 @@ "typeString": "bytes32" } ], - "id": 1857, + "id": 1858, "name": "hashOperation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "5966:13:9", + "referencedDeclaration": 1816, + "src": "6036:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)" } }, - "id": 1863, + "id": 1864, "isConstant": false, "isLValue": false, "isPure": false, @@ -28036,7 +28020,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5966:56:9", + "src": "6036:56:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -28044,30 +28028,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5953:69:9" + "src": "6023:69:9" }, { "expression": { "arguments": [ { - "id": 1866, + "id": 1867, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "6038:2:9", + "referencedDeclaration": 1857, + "src": "6108:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1867, + "id": 1868, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "6042:5:9", + "referencedDeclaration": 1832, + "src": "6112:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28085,18 +28069,18 @@ "typeString": "uint256" } ], - "id": 1865, + "id": 1866, "name": "_schedule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1908, - "src": "6028:9:9", + "referencedDeclaration": 1909, + "src": "6098:9:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256)" } }, - "id": 1868, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, @@ -28104,27 +28088,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6028:20:9", + "src": "6098:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1869, + "id": 1870, "nodeType": "ExpressionStatement", - "src": "6028:20:9" + "src": "6098:20:9" }, { "eventCall": { "arguments": [ { - "id": 1871, + "id": 1872, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "6073:2:9", + "referencedDeclaration": 1857, + "src": "6143:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28138,18 +28122,18 @@ "typeString": "bytes32" } ], - "id": 1870, + "id": 1871, "name": "ScheduleAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1442, - "src": "6059:13:9", + "src": "6129:13:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 1872, + "id": 1873, "isConstant": false, "isLValue": false, "isPure": false, @@ -28157,74 +28141,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6059:17:9", + "src": "6129:17:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1873, + "id": 1874, "nodeType": "EmitStatement", - "src": "6054:22:9" + "src": "6124:22:9" } ] }, "documentation": { - "id": 1816, + "id": 1817, "nodeType": "StructuredDocumentation", - "src": "5291:227:9", + "src": "5359:227:9", "text": " @dev Schedule an operation containing a batch of transactions.\n Emits one {ScheduleAdded} event per transaction in the batch.\n Requirements:\n - the caller must have the 'proposer' role." }, "functionSelector": "83443de2", - "id": 1875, + "id": 1876, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1834, + "id": 1835, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "5730:13:9", + "src": "5800:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1835, + "id": 1836, "kind": "modifierInvocation", "modifierName": { - "id": 1833, + "id": 1834, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", "referencedDeclaration": 1648, - "src": "5711:18:9" + "src": "5781:18:9" }, "nodeType": "ModifierInvocation", - "src": "5711:33:9" + "src": "5781:33:9" } ], "name": "schedule", - "nameLocation": "5530:8:9", + "nameLocation": "5598:8:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1832, + "id": 1833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1819, + "id": 1820, "mutability": "mutable", "name": "targets", - "nameLocation": "5563:7:9", + "nameLocation": "5631:7:9", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "5544:26:9", + "scope": 1876, + "src": "5612:26:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -28233,19 +28217,19 @@ }, "typeName": { "baseType": { - "id": 1817, + "id": 1818, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5544:7:9", + "src": "5612:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1818, + "id": 1819, "nodeType": "ArrayTypeName", - "src": "5544:9:9", + "src": "5612:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -28255,13 +28239,13 @@ }, { "constant": false, - "id": 1822, + "id": 1823, "mutability": "mutable", "name": "values", - "nameLocation": "5595:6:9", + "nameLocation": "5663:6:9", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "5576:25:9", + "scope": 1876, + "src": "5644:25:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -28270,18 +28254,18 @@ }, "typeName": { "baseType": { - "id": 1820, + "id": 1821, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5576:7:9", + "src": "5644:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1821, + "id": 1822, "nodeType": "ArrayTypeName", - "src": "5576:9:9", + "src": "5644:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -28291,13 +28275,13 @@ }, { "constant": false, - "id": 1825, + "id": 1826, "mutability": "mutable", "name": "datas", - "nameLocation": "5624:5:9", + "nameLocation": "5692:5:9", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "5607:22:9", + "scope": 1876, + "src": "5675:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -28306,18 +28290,18 @@ }, "typeName": { "baseType": { - "id": 1823, + "id": 1824, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5607:5:9", + "src": "5675:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, - "id": 1824, + "id": 1825, "nodeType": "ArrayTypeName", - "src": "5607:7:9", + "src": "5675:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" @@ -28327,13 +28311,13 @@ }, { "constant": false, - "id": 1827, + "id": 1828, "mutability": "mutable", "name": "predecessor", - "nameLocation": "5643:11:9", + "nameLocation": "5711:11:9", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "5635:19:9", + "scope": 1876, + "src": "5703:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28341,10 +28325,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1826, + "id": 1827, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5635:7:9", + "src": "5703:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28354,13 +28338,13 @@ }, { "constant": false, - "id": 1829, + "id": 1830, "mutability": "mutable", "name": "salt", - "nameLocation": "5668:4:9", + "nameLocation": "5736:4:9", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "5660:12:9", + "scope": 1876, + "src": "5728:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28368,10 +28352,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1828, + "id": 1829, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5660:7:9", + "src": "5728:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28381,13 +28365,13 @@ }, { "constant": false, - "id": 1831, + "id": 1832, "mutability": "mutable", "name": "delay", - "nameLocation": "5686:5:9", + "nameLocation": "5754:5:9", "nodeType": "VariableDeclaration", - "scope": 1875, - "src": "5678:13:9", + "scope": 1876, + "src": "5746:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28395,10 +28379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1830, + "id": 1831, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5678:7:9", + "src": "5746:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28407,31 +28391,31 @@ "visibility": "internal" } ], - "src": "5538:157:9" + "src": "5606:157:9" }, "returnParameters": { - "id": 1836, + "id": 1837, "nodeType": "ParameterList", "parameters": [], - "src": "5745:0:9" + "src": "5815:0:9" }, - "scope": 2240, - "src": "5521:560:9", + "scope": 2241, + "src": "5589:562:9", "stateMutability": "nonpayable", "virtual": true, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 1907, + "id": 1908, "nodeType": "Block", - "src": "6229:204:9", + "src": "6299:204:9", "statements": [ { "expression": { "arguments": [ { - "id": 1887, + "id": 1888, "isConstant": false, "isLValue": false, "isPure": false, @@ -28439,16 +28423,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6243:16:9", + "src": "6313:16:9", "subExpression": { "arguments": [ { - "id": 1885, + "id": 1886, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "6256:2:9", + "referencedDeclaration": 1879, + "src": "6326:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28462,18 +28446,18 @@ "typeString": "bytes32" } ], - "id": 1884, + "id": 1885, "name": "isOperation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1668, - "src": "6244:11:9", + "src": "6314:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1886, + "id": 1887, "isConstant": false, "isLValue": false, "isPure": false, @@ -28481,7 +28465,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6244:15:9", + "src": "6314:15:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -28495,14 +28479,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e20616c7265616479207363686564756c6564", - "id": 1888, + "id": 1889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6261:47:9", + "src": "6331:47:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_498a98edde27c28694cc7d4941f82dd71ff5085e4a93f35609f504b4979a0e12", "typeString": "literal_string \"BEMultiSigWallet: operation already scheduled\"" @@ -28521,7 +28505,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation already scheduled\"" } ], - "id": 1883, + "id": 1884, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -28529,13 +28513,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "6235:7:9", + "src": "6305:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1889, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, @@ -28543,16 +28527,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6235:74:9", + "src": "6305:74:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1890, + "id": 1891, "nodeType": "ExpressionStatement", - "src": "6235:74:9" + "src": "6305:74:9" }, { "expression": { @@ -28562,18 +28546,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1894, + "id": 1895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1892, + "id": 1893, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "6323:5:9", + "referencedDeclaration": 1881, + "src": "6393:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28582,18 +28566,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1893, + "id": 1894, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1435, - "src": "6332:8:9", + "src": "6402:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6323:17:9", + "src": "6393:17:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28601,14 +28585,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a20696e73756666696369656e742064656c6179", - "id": 1895, + "id": 1896, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6342:38:9", + "src": "6412:38:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9c4dfb173f7764cc56b8beafaf67c514b7ff532825adbcaadabf621199a1950a", "typeString": "literal_string \"BEMultiSigWallet: insufficient delay\"" @@ -28627,7 +28611,7 @@ "typeString": "literal_string \"BEMultiSigWallet: insufficient delay\"" } ], - "id": 1891, + "id": 1892, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -28635,13 +28619,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "6315:7:9", + "src": "6385:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1896, + "id": 1897, "isConstant": false, "isLValue": false, "isPure": false, @@ -28649,45 +28633,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6315:66:9", + "src": "6385:66:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1897, + "id": 1898, "nodeType": "ExpressionStatement", - "src": "6315:66:9" + "src": "6385:66:9" }, { "expression": { - "id": 1905, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1898, + "id": 1899, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1427, - "src": "6387:11:9", + "src": "6457:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1900, + "id": 1901, "indexExpression": { - "id": 1899, + "id": 1900, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "6399:2:9", + "referencedDeclaration": 1879, + "src": "6469:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28698,7 +28682,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6387:15:9", + "src": "6457:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28711,32 +28695,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1904, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1901, + "id": 1902, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "6405:5:9", + "src": "6475:5:9", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1902, + "id": 1903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "6405:15:9", + "src": "6475:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28745,61 +28729,61 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 1903, + "id": 1904, "name": "delay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "6423:5:9", + "referencedDeclaration": 1881, + "src": "6493:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6405:23:9", + "src": "6475:23:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6387:41:9", + "src": "6457:41:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1906, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "6387:41:9" + "src": "6457:41:9" } ] }, "documentation": { - "id": 1876, + "id": 1877, "nodeType": "StructuredDocumentation", - "src": "6085:87:9", + "src": "6155:87:9", "text": " @dev Schedule an operation that is to becomes valid after a given delay." }, - "id": 1908, + "id": 1909, "implemented": true, "kind": "function", "modifiers": [], "name": "_schedule", - "nameLocation": "6184:9:9", + "nameLocation": "6254:9:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1881, + "id": 1882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1878, + "id": 1879, "mutability": "mutable", "name": "id", - "nameLocation": "6202:2:9", + "nameLocation": "6272:2:9", "nodeType": "VariableDeclaration", - "scope": 1908, - "src": "6194:10:9", + "scope": 1909, + "src": "6264:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28807,10 +28791,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1877, + "id": 1878, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6194:7:9", + "src": "6264:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28820,13 +28804,13 @@ }, { "constant": false, - "id": 1880, + "id": 1881, "mutability": "mutable", "name": "delay", - "nameLocation": "6214:5:9", + "nameLocation": "6284:5:9", "nodeType": "VariableDeclaration", - "scope": 1908, - "src": "6206:13:9", + "scope": 1909, + "src": "6276:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28834,10 +28818,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1879, + "id": 1880, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6206:7:9", + "src": "6276:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28846,25 +28830,25 @@ "visibility": "internal" } ], - "src": "6193:27:9" + "src": "6263:27:9" }, "returnParameters": { - "id": 1882, + "id": 1883, "nodeType": "ParameterList", "parameters": [], - "src": "6229:0:9" + "src": "6299:0:9" }, - "scope": 2240, - "src": "6175:258:9", + "scope": 2241, + "src": "6245:258:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1933, + "id": 1934, "nodeType": "Block", - "src": "6635:164:9", + "src": "6715:164:9", "statements": [ { "expression": { @@ -28872,12 +28856,12 @@ { "arguments": [ { - "id": 1919, + "id": 1920, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, - "src": "6675:2:9", + "referencedDeclaration": 1912, + "src": "6755:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28891,18 +28875,18 @@ "typeString": "bytes32" } ], - "id": 1918, + "id": 1919, "name": "isOperationPending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1683, - "src": "6656:18:9", + "src": "6736:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1920, + "id": 1921, "isConstant": false, "isLValue": false, "isPure": false, @@ -28910,7 +28894,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6656:22:9", + "src": "6736:22:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -28919,14 +28903,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e2063616e6e6f742062652063616e63656c6c6564", - "id": 1921, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6686:49:9", + "src": "6766:49:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_18f4f64b96974e466ba9fe4c81e77d3a2e7e7ead1ec0709ce9c4a80df6bbe8e2", "typeString": "literal_string \"BEMultiSigWallet: operation cannot be cancelled\"" @@ -28945,7 +28929,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation cannot be cancelled\"" } ], - "id": 1917, + "id": 1918, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -28953,13 +28937,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "6641:7:9", + "src": "6721:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1922, + "id": 1923, "isConstant": false, "isLValue": false, "isPure": false, @@ -28967,20 +28951,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6641:100:9", + "src": "6721:100:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1923, + "id": 1924, "nodeType": "ExpressionStatement", - "src": "6641:100:9" + "src": "6721:100:9" }, { "expression": { - "id": 1927, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, @@ -28988,28 +28972,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "6747:22:9", + "src": "6827:22:9", "subExpression": { "baseExpression": { - "id": 1924, + "id": 1925, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1427, - "src": "6754:11:9", + "src": "6834:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1926, + "id": 1927, "indexExpression": { - "id": 1925, + "id": 1926, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, - "src": "6766:2:9", + "referencedDeclaration": 1912, + "src": "6846:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29020,7 +29004,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6754:15:9", + "src": "6834:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29031,20 +29015,20 @@ "typeString": "tuple()" } }, - "id": 1928, + "id": 1929, "nodeType": "ExpressionStatement", - "src": "6747:22:9" + "src": "6827:22:9" }, { "eventCall": { "arguments": [ { - "id": 1930, + "id": 1931, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1911, - "src": "6791:2:9", + "referencedDeclaration": 1912, + "src": "6871:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29058,18 +29042,18 @@ "typeString": "bytes32" } ], - "id": 1929, + "id": 1930, "name": "Cancelled", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1452, - "src": "6781:9:9", + "src": "6861:9:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 1931, + "id": 1932, "isConstant": false, "isLValue": false, "isPure": false, @@ -29077,74 +29061,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6781:13:9", + "src": "6861:13:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1932, + "id": 1933, "nodeType": "EmitStatement", - "src": "6776:18:9" + "src": "6856:18:9" } ] }, "documentation": { - "id": 1909, + "id": 1910, "nodeType": "StructuredDocumentation", - "src": "6437:118:9", + "src": "6507:118:9", "text": " @dev Cancel an operation.\n Requirements:\n - the caller must have the 'proposer' role." }, "functionSelector": "c4d252f5", - "id": 1934, + "id": 1935, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1914, + "id": 1915, "name": "PROPOSER_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1407, - "src": "6620:13:9", + "src": "6700:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1915, + "id": 1916, "kind": "modifierInvocation", "modifierName": { - "id": 1913, + "id": 1914, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", "referencedDeclaration": 1648, - "src": "6601:18:9" + "src": "6681:18:9" }, "nodeType": "ModifierInvocation", - "src": "6601:33:9" + "src": "6681:33:9" } ], "name": "cancel", - "nameLocation": "6567:6:9", + "nameLocation": "6637:6:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1912, + "id": 1913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1911, + "id": 1912, "mutability": "mutable", "name": "id", - "nameLocation": "6582:2:9", + "nameLocation": "6657:2:9", "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "6574:10:9", + "scope": 1935, + "src": "6649:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29152,10 +29136,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1910, + "id": 1911, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6574:7:9", + "src": "6649:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29164,31 +29148,31 @@ "visibility": "internal" } ], - "src": "6573:12:9" + "src": "6643:20:9" }, "returnParameters": { - "id": 1916, + "id": 1917, "nodeType": "ParameterList", "parameters": [], - "src": "6635:0:9" + "src": "6715:0:9" }, - "scope": 2240, - "src": "6558:241:9", + "scope": 2241, + "src": "6628:251:9", "stateMutability": "nonpayable", "virtual": true, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 1983, + "id": 1984, "nodeType": "Block", - "src": "6979:266:9", + "src": "7061:266:9", "statements": [ { "body": { - "id": 1975, + "id": 1976, "nodeType": "Block", - "src": "7026:175:9", + "src": "7108:175:9", "statements": [ { "expression": { @@ -29197,25 +29181,25 @@ "arguments": [ { "baseExpression": { - "id": 1957, + "id": 1958, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1938, - "src": "7070:3:9", + "referencedDeclaration": 1939, + "src": "7152:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1959, + "id": 1960, "indexExpression": { - "id": 1958, + "id": 1959, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1945, - "src": "7074:1:9", + "referencedDeclaration": 1946, + "src": "7156:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29226,7 +29210,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7070:6:9", + "src": "7152:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29240,18 +29224,18 @@ "typeString": "bytes32" } ], - "id": 1956, + "id": 1957, "name": "isOperationPending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1683, - "src": "7051:18:9", + "src": "7133:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1960, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, @@ -29259,7 +29243,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7051:26:9", + "src": "7133:26:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -29268,14 +29252,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f74206578697374206f722066696e6973686564", - "id": 1961, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7087:51:9", + "src": "7169:51:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f189764673a1904d80a5eac6f1e4952021d4400f0665b76222b6d1047bee845d", "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" @@ -29294,7 +29278,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" } ], - "id": 1955, + "id": 1956, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -29302,13 +29286,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "7034:7:9", + "src": "7116:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1962, + "id": 1963, "isConstant": false, "isLValue": false, "isPure": false, @@ -29316,20 +29300,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7034:112:9", + "src": "7116:112:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1963, + "id": 1964, "nodeType": "ExpressionStatement", - "src": "7034:112:9" + "src": "7116:112:9" }, { "expression": { - "id": 1973, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": false, @@ -29337,39 +29321,39 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 1964, + "id": 1965, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1433, - "src": "7154:13:9", + "src": "7236:13:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 1970, + "id": 1971, "indexExpression": { "baseExpression": { - "id": 1965, + "id": 1966, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1938, - "src": "7168:3:9", + "referencedDeclaration": 1939, + "src": "7250:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1967, + "id": 1968, "indexExpression": { - "id": 1966, + "id": 1967, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1945, - "src": "7172:1:9", + "referencedDeclaration": 1946, + "src": "7254:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29380,7 +29364,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7168:6:9", + "src": "7250:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29391,34 +29375,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7154:21:9", + "src": "7236:21:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1971, + "id": 1972, "indexExpression": { "expression": { - "id": 1968, + "id": 1969, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7176:3:9", + "src": "7258:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1969, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7176:10:9", + "src": "7258:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -29429,7 +29413,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7154:33:9", + "src": "7236:33:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29439,29 +29423,29 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1972, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7190:4:9", + "src": "7272:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "7154:40:9", + "src": "7236:40:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1974, + "id": 1975, "nodeType": "ExpressionStatement", - "src": "7154:40:9" + "src": "7236:40:9" } ] }, @@ -29470,18 +29454,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1951, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1948, + "id": 1949, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1945, - "src": "7005:1:9", + "referencedDeclaration": 1946, + "src": "7087:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29491,51 +29475,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1949, + "id": 1950, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1938, - "src": "7009:3:9", + "referencedDeclaration": 1939, + "src": "7091:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1950, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7009:10:9", + "src": "7091:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7005:14:9", + "src": "7087:14:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1976, + "id": 1977, "initializationExpression": { "assignments": [ - 1945 + 1946 ], "declarations": [ { "constant": false, - "id": 1945, + "id": 1946, "mutability": "mutable", "name": "i", - "nameLocation": "6998:1:9", + "nameLocation": "7080:1:9", "nodeType": "VariableDeclaration", - "scope": 1976, - "src": "6990:9:9", + "scope": 1977, + "src": "7072:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29543,10 +29527,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1944, + "id": 1945, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6990:7:9", + "src": "7072:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29555,17 +29539,17 @@ "visibility": "internal" } ], - "id": 1947, + "id": 1948, "initialValue": { "hexValue": "30", - "id": 1946, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7002:1:9", + "src": "7084:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -29573,11 +29557,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6990:13:9" + "src": "7072:13:9" }, "loopExpression": { "expression": { - "id": 1953, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, @@ -29585,14 +29569,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "7021:3:9", + "src": "7103:3:9", "subExpression": { - "id": 1952, + "id": 1953, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1945, - "src": "7023:1:9", + "referencedDeclaration": 1946, + "src": "7105:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29603,49 +29587,49 @@ "typeString": "uint256" } }, - "id": 1954, + "id": 1955, "nodeType": "ExpressionStatement", - "src": "7021:3:9" + "src": "7103:3:9" }, "nodeType": "ForStatement", - "src": "6985:216:9" + "src": "7067:216:9" }, { "eventCall": { "arguments": [ { "expression": { - "id": 1978, + "id": 1979, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7224:3:9", + "src": "7306:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1979, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7224:10:9", + "src": "7306:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1980, + "id": 1981, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1938, - "src": "7236:3:9", + "referencedDeclaration": 1939, + "src": "7318:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -29663,18 +29647,18 @@ "typeString": "bytes32[] calldata" } ], - "id": 1977, + "id": 1978, "name": "Confirmation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1459, - "src": "7211:12:9", + "src": "7293:12:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$", "typeString": "function (address,bytes32[] memory)" } }, - "id": 1981, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, @@ -29682,74 +29666,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7211:29:9", + "src": "7293:29:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1982, + "id": 1983, "nodeType": "EmitStatement", - "src": "7206:34:9" + "src": "7288:34:9" } ] }, "documentation": { - "id": 1935, + "id": 1936, "nodeType": "StructuredDocumentation", - "src": "6803:73:9", + "src": "6883:73:9", "text": " @dev Allows an executor to confirm multiple transactions." }, "functionSelector": "d2082330", - "id": 1984, + "id": 1985, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1941, + "id": 1942, "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1417, - "src": "6965:12:9", + "src": "7047:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1942, + "id": 1943, "kind": "modifierInvocation", "modifierName": { - "id": 1940, + "id": 1941, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", "referencedDeclaration": 1648, - "src": "6946:18:9" + "src": "7028:18:9" }, "nodeType": "ModifierInvocation", - "src": "6946:32:9" + "src": "7028:32:9" } ], "name": "confirmTransaction", - "nameLocation": "6888:18:9", + "nameLocation": "6968:18:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1939, + "id": 1940, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1938, + "id": 1939, "mutability": "mutable", "name": "ids", - "nameLocation": "6931:3:9", + "nameLocation": "7011:3:9", "nodeType": "VariableDeclaration", - "scope": 1984, - "src": "6912:22:9", + "scope": 1985, + "src": "6992:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -29758,18 +29742,18 @@ }, "typeName": { "baseType": { - "id": 1936, + "id": 1937, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6912:7:9", + "src": "6992:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1937, + "id": 1938, "nodeType": "ArrayTypeName", - "src": "6912:9:9", + "src": "6992:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -29778,31 +29762,31 @@ "visibility": "internal" } ], - "src": "6906:32:9" + "src": "6986:32:9" }, "returnParameters": { - "id": 1943, + "id": 1944, "nodeType": "ParameterList", "parameters": [], - "src": "6979:0:9" + "src": "7061:0:9" }, - "scope": 2240, - "src": "6879:366:9", + "scope": 2241, + "src": "6959:368:9", "stateMutability": "nonpayable", "virtual": false, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 2033, + "id": 2034, "nodeType": "Block", - "src": "7442:265:9", + "src": "7526:265:9", "statements": [ { "body": { - "id": 2025, + "id": 2026, "nodeType": "Block", - "src": "7489:176:9", + "src": "7573:176:9", "statements": [ { "expression": { @@ -29811,25 +29795,25 @@ "arguments": [ { "baseExpression": { - "id": 2007, + "id": 2008, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1988, - "src": "7533:3:9", + "referencedDeclaration": 1989, + "src": "7617:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 2009, + "id": 2010, "indexExpression": { - "id": 2008, + "id": 2009, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1995, - "src": "7537:1:9", + "referencedDeclaration": 1996, + "src": "7621:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29840,7 +29824,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7533:6:9", + "src": "7617:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29854,18 +29838,18 @@ "typeString": "bytes32" } ], - "id": 2006, + "id": 2007, "name": "isOperationPending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1683, - "src": "7514:18:9", + "src": "7598:18:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2010, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, @@ -29873,7 +29857,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7514:26:9", + "src": "7598:26:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -29882,14 +29866,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f74206578697374206f722066696e6973686564", - "id": 2011, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7550:51:9", + "src": "7634:51:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f189764673a1904d80a5eac6f1e4952021d4400f0665b76222b6d1047bee845d", "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" @@ -29908,7 +29892,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation not exist or finished\"" } ], - "id": 2005, + "id": 2006, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -29916,13 +29900,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "7497:7:9", + "src": "7581:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2012, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -29930,20 +29914,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7497:112:9", + "src": "7581:112:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2013, + "id": 2014, "nodeType": "ExpressionStatement", - "src": "7497:112:9" + "src": "7581:112:9" }, { "expression": { - "id": 2023, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, @@ -29951,39 +29935,39 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2014, + "id": 2015, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1433, - "src": "7617:13:9", + "src": "7701:13:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2020, + "id": 2021, "indexExpression": { "baseExpression": { - "id": 2015, + "id": 2016, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1988, - "src": "7631:3:9", + "referencedDeclaration": 1989, + "src": "7715:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 2017, + "id": 2018, "indexExpression": { - "id": 2016, + "id": 2017, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1995, - "src": "7635:1:9", + "referencedDeclaration": 1996, + "src": "7719:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29994,7 +29978,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7631:6:9", + "src": "7715:6:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30005,34 +29989,34 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7617:21:9", + "src": "7701:21:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2021, + "id": 2022, "indexExpression": { "expression": { - "id": 2018, + "id": 2019, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7639:3:9", + "src": "7723:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2019, + "id": 2020, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7639:10:9", + "src": "7723:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30043,7 +30027,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7617:33:9", + "src": "7701:33:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30053,29 +30037,29 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 2022, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7653:5:9", + "src": "7737:5:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "7617:41:9", + "src": "7701:41:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2024, + "id": 2025, "nodeType": "ExpressionStatement", - "src": "7617:41:9" + "src": "7701:41:9" } ] }, @@ -30084,18 +30068,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2001, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1998, + "id": 1999, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1995, - "src": "7468:1:9", + "referencedDeclaration": 1996, + "src": "7552:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30105,51 +30089,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1999, + "id": 2000, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1988, - "src": "7472:3:9", + "referencedDeclaration": 1989, + "src": "7556:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 2000, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7472:10:9", + "src": "7556:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7468:14:9", + "src": "7552:14:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2026, + "id": 2027, "initializationExpression": { "assignments": [ - 1995 + 1996 ], "declarations": [ { "constant": false, - "id": 1995, + "id": 1996, "mutability": "mutable", "name": "i", - "nameLocation": "7461:1:9", + "nameLocation": "7545:1:9", "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "7453:9:9", + "scope": 2027, + "src": "7537:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30157,10 +30141,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1994, + "id": 1995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7453:7:9", + "src": "7537:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30169,17 +30153,17 @@ "visibility": "internal" } ], - "id": 1997, + "id": 1998, "initialValue": { "hexValue": "30", - "id": 1996, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7465:1:9", + "src": "7549:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -30187,11 +30171,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7453:13:9" + "src": "7537:13:9" }, "loopExpression": { "expression": { - "id": 2003, + "id": 2004, "isConstant": false, "isLValue": false, "isPure": false, @@ -30199,14 +30183,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "7484:3:9", + "src": "7568:3:9", "subExpression": { - "id": 2002, + "id": 2003, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1995, - "src": "7486:1:9", + "referencedDeclaration": 1996, + "src": "7570:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30217,49 +30201,49 @@ "typeString": "uint256" } }, - "id": 2004, + "id": 2005, "nodeType": "ExpressionStatement", - "src": "7484:3:9" + "src": "7568:3:9" }, "nodeType": "ForStatement", - "src": "7448:217:9" + "src": "7532:217:9" }, { "eventCall": { "arguments": [ { "expression": { - "id": 2028, + "id": 2029, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "7686:3:9", + "src": "7770:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2029, + "id": 2030, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "7686:10:9", + "src": "7770:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2030, + "id": 2031, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1988, - "src": "7698:3:9", + "referencedDeclaration": 1989, + "src": "7782:3:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -30277,18 +30261,18 @@ "typeString": "bytes32[] calldata" } ], - "id": 2027, + "id": 2028, "name": "Revocation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1466, - "src": "7675:10:9", + "src": "7759:10:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$", "typeString": "function (address,bytes32[] memory)" } }, - "id": 2031, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": false, @@ -30296,74 +30280,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7675:27:9", + "src": "7759:27:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2032, + "id": 2033, "nodeType": "EmitStatement", - "src": "7670:32:9" + "src": "7754:32:9" } ] }, "documentation": { - "id": 1985, + "id": 1986, "nodeType": "StructuredDocumentation", - "src": "7249:90:9", + "src": "7331:90:9", "text": " @dev Allows an executor to revoke multiple confirmations for a transaction." }, "functionSelector": "6a2c3723", - "id": 2034, + "id": 2035, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 1991, + "id": 1992, "name": "CONFIRM_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1417, - "src": "7428:12:9", + "src": "7512:12:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1992, + "id": 1993, "kind": "modifierInvocation", "modifierName": { - "id": 1990, + "id": 1991, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", "referencedDeclaration": 1648, - "src": "7409:18:9" + "src": "7493:18:9" }, "nodeType": "ModifierInvocation", - "src": "7409:32:9" + "src": "7493:32:9" } ], "name": "revokeConfirmation", - "nameLocation": "7351:18:9", + "nameLocation": "7433:18:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 1989, + "id": 1990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1988, + "id": 1989, "mutability": "mutable", "name": "ids", - "nameLocation": "7394:3:9", + "nameLocation": "7476:3:9", "nodeType": "VariableDeclaration", - "scope": 2034, - "src": "7375:22:9", + "scope": 2035, + "src": "7457:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -30372,18 +30356,18 @@ }, "typeName": { "baseType": { - "id": 1986, + "id": 1987, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7375:7:9", + "src": "7457:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1987, + "id": 1988, "nodeType": "ArrayTypeName", - "src": "7375:9:9", + "src": "7457:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -30392,25 +30376,25 @@ "visibility": "internal" } ], - "src": "7369:32:9" + "src": "7451:32:9" }, "returnParameters": { - "id": 1993, + "id": 1994, "nodeType": "ParameterList", "parameters": [], - "src": "7442:0:9" + "src": "7526:0:9" }, - "scope": 2240, - "src": "7342:365:9", + "scope": 2241, + "src": "7424:367:9", "stateMutability": "nonpayable", "virtual": false, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 2120, + "id": 2121, "nodeType": "Block", - "src": "8159:470:9", + "src": "8245:470:9", "statements": [ { "expression": { @@ -30420,32 +30404,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2055, + "id": 2056, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "8180:7:9", + "referencedDeclaration": 2039, + "src": "8266:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2056, + "id": 2057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8180:14:9", + "src": "8266:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30455,31 +30439,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 2057, + "id": 2058, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2041, - "src": "8198:6:9", + "referencedDeclaration": 2042, + "src": "8284:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2058, + "id": 2059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8198:13:9", + "src": "8284:13:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8180:31:9", + "src": "8266:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30487,14 +30471,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 2060, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8219:35:9", + "src": "8305:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -30513,7 +30497,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 2054, + "id": 2055, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -30521,13 +30505,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8165:7:9", + "src": "8251:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2061, + "id": 2062, "isConstant": false, "isLValue": false, "isPure": false, @@ -30535,16 +30519,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8165:95:9", + "src": "8251:95:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2062, + "id": 2063, "nodeType": "ExpressionStatement", - "src": "8165:95:9" + "src": "8251:95:9" }, { "expression": { @@ -30554,32 +30538,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2068, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2064, + "id": 2065, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "8281:7:9", + "referencedDeclaration": 2039, + "src": "8367:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2065, + "id": 2066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8281:14:9", + "src": "8367:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30589,31 +30573,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 2066, + "id": 2067, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "8299:5:9", + "referencedDeclaration": 2045, + "src": "8385:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 2067, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8299:12:9", + "src": "8385:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8281:30:9", + "src": "8367:30:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30621,14 +30605,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206c656e677468206d69736d61746368", - "id": 2069, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8319:35:9", + "src": "8405:35:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a34a486f9100b008712958931fe0a50ea69be145b7a3d1e8680fe7decf64e499", "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" @@ -30647,7 +30631,7 @@ "typeString": "literal_string \"BEMultiSigWallet: length mismatch\"" } ], - "id": 2063, + "id": 2064, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -30655,13 +30639,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8266:7:9", + "src": "8352:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2070, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": false, @@ -30669,31 +30653,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8266:94:9", + "src": "8352:94:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2071, + "id": 2072, "nodeType": "ExpressionStatement", - "src": "8266:94:9" + "src": "8352:94:9" }, { "assignments": [ - 2073 + 2074 ], "declarations": [ { "constant": false, - "id": 2073, + "id": 2074, "mutability": "mutable", "name": "id", - "nameLocation": "8375:2:9", + "nameLocation": "8461:2:9", "nodeType": "VariableDeclaration", - "scope": 2120, - "src": "8367:10:9", + "scope": 2121, + "src": "8453:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30701,10 +30685,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2072, + "id": 2073, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8367:7:9", + "src": "8453:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30713,64 +30697,64 @@ "visibility": "internal" } ], - "id": 2081, + "id": 2082, "initialValue": { "arguments": [ { - "id": 2075, + "id": 2076, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "8394:7:9", + "referencedDeclaration": 2039, + "src": "8480:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, { - "id": 2076, + "id": 2077, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2041, - "src": "8403:6:9", + "referencedDeclaration": 2042, + "src": "8489:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, { - "id": 2077, + "id": 2078, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "8411:5:9", + "referencedDeclaration": 2045, + "src": "8497:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, { - "id": 2078, + "id": 2079, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "8418:11:9", + "referencedDeclaration": 2047, + "src": "8504:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2079, + "id": 2080, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2048, - "src": "8431:4:9", + "referencedDeclaration": 2049, + "src": "8517:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30800,18 +30784,18 @@ "typeString": "bytes32" } ], - "id": 2074, + "id": 2075, "name": "hashOperation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "8380:13:9", + "referencedDeclaration": 1816, + "src": "8466:13:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)" } }, - "id": 2080, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": false, @@ -30819,7 +30803,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8380:56:9", + "src": "8466:56:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30827,30 +30811,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8367:69:9" + "src": "8453:69:9" }, { "expression": { "arguments": [ { - "id": 2083, + "id": 2084, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "8454:2:9", + "referencedDeclaration": 2074, + "src": "8540:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2084, + "id": 2085, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "8458:11:9", + "referencedDeclaration": 2047, + "src": "8544:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30868,18 +30852,18 @@ "typeString": "bytes32" } ], - "id": 2082, + "id": 2083, "name": "_beforeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "8442:11:9", + "referencedDeclaration": 2159, + "src": "8528:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32,bytes32) view" } }, - "id": 2085, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, @@ -30887,47 +30871,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8442:28:9", + "src": "8528:28:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2086, + "id": 2087, "nodeType": "ExpressionStatement", - "src": "8442:28:9" + "src": "8528:28:9" }, { "body": { - "id": 2110, + "id": 2111, "nodeType": "Block", - "src": "8521:53:9", + "src": "8607:53:9", "statements": [ { "expression": { "arguments": [ { "baseExpression": { - "id": 2099, + "id": 2100, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "8535:7:9", + "referencedDeclaration": 2039, + "src": "8621:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2101, + "id": 2102, "indexExpression": { - "id": 2100, + "id": 2101, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "8543:1:9", + "referencedDeclaration": 2089, + "src": "8629:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30938,7 +30922,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8535:10:9", + "src": "8621:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30946,25 +30930,25 @@ }, { "baseExpression": { - "id": 2102, + "id": 2103, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2041, - "src": "8547:6:9", + "referencedDeclaration": 2042, + "src": "8633:6:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2104, + "id": 2105, "indexExpression": { - "id": 2103, + "id": 2104, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "8554:1:9", + "referencedDeclaration": 2089, + "src": "8640:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30975,7 +30959,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8547:9:9", + "src": "8633:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30983,25 +30967,25 @@ }, { "baseExpression": { - "id": 2105, + "id": 2106, "name": "datas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "8558:5:9", + "referencedDeclaration": 2045, + "src": "8644:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, - "id": 2107, + "id": 2108, "indexExpression": { - "id": 2106, + "id": 2107, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "8564:1:9", + "referencedDeclaration": 2089, + "src": "8650:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31012,7 +30996,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8558:8:9", + "src": "8644:8:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -31034,18 +31018,18 @@ "typeString": "bytes calldata" } ], - "id": 2098, + "id": 2099, "name": "_call", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2203, - "src": "8529:5:9", + "referencedDeclaration": 2204, + "src": "8615:5:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (address,uint256,bytes calldata)" } }, - "id": 2108, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, @@ -31053,16 +31037,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8529:38:9", + "src": "8615:38:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2109, + "id": 2110, "nodeType": "ExpressionStatement", - "src": "8529:38:9" + "src": "8615:38:9" } ] }, @@ -31071,18 +31055,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2094, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2091, + "id": 2092, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "8496:1:9", + "referencedDeclaration": 2089, + "src": "8582:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31092,51 +31076,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2092, + "id": 2093, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "8500:7:9", + "referencedDeclaration": 2039, + "src": "8586:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, - "id": 2093, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8500:14:9", + "src": "8586:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8496:18:9", + "src": "8582:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2111, + "id": 2112, "initializationExpression": { "assignments": [ - 2088 + 2089 ], "declarations": [ { "constant": false, - "id": 2088, + "id": 2089, "mutability": "mutable", "name": "i", - "nameLocation": "8489:1:9", + "nameLocation": "8575:1:9", "nodeType": "VariableDeclaration", - "scope": 2111, - "src": "8481:9:9", + "scope": 2112, + "src": "8567:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31144,10 +31128,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2087, + "id": 2088, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8481:7:9", + "src": "8567:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31156,17 +31140,17 @@ "visibility": "internal" } ], - "id": 2090, + "id": 2091, "initialValue": { "hexValue": "30", - "id": 2089, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8493:1:9", + "src": "8579:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -31174,11 +31158,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8481:13:9" + "src": "8567:13:9" }, "loopExpression": { "expression": { - "id": 2096, + "id": 2097, "isConstant": false, "isLValue": false, "isPure": false, @@ -31186,14 +31170,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "8516:3:9", + "src": "8602:3:9", "subExpression": { - "id": 2095, + "id": 2096, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "8518:1:9", + "referencedDeclaration": 2089, + "src": "8604:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31204,23 +31188,23 @@ "typeString": "uint256" } }, - "id": 2097, + "id": 2098, "nodeType": "ExpressionStatement", - "src": "8516:3:9" + "src": "8602:3:9" }, "nodeType": "ForStatement", - "src": "8476:98:9" + "src": "8562:98:9" }, { "expression": { "arguments": [ { - "id": 2113, + "id": 2114, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "8590:2:9", + "referencedDeclaration": 2074, + "src": "8676:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31234,18 +31218,18 @@ "typeString": "bytes32" } ], - "id": 2112, + "id": 2113, "name": "_afterCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "8579:10:9", + "referencedDeclaration": 2179, + "src": "8665:10:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 2114, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": false, @@ -31253,27 +31237,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8579:14:9", + "src": "8665:14:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2115, + "id": 2116, "nodeType": "ExpressionStatement", - "src": "8579:14:9" + "src": "8665:14:9" }, { "eventCall": { "arguments": [ { - "id": 2117, + "id": 2118, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "8621:2:9", + "referencedDeclaration": 2074, + "src": "8707:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31287,18 +31271,18 @@ "typeString": "bytes32" } ], - "id": 2116, + "id": 2117, "name": "ScheduleExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1447, - "src": "8604:16:9", + "src": "8690:16:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 2118, + "id": 2119, "isConstant": false, "isLValue": false, "isPure": false, @@ -31306,74 +31290,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8604:20:9", + "src": "8690:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2119, + "id": 2120, "nodeType": "EmitStatement", - "src": "8599:25:9" + "src": "8685:25:9" } ] }, "documentation": { - "id": 2035, + "id": 2036, "nodeType": "StructuredDocumentation", - "src": "7711:233:9", + "src": "7795:233:9", "text": " @dev Execute an (ready) operation containing a batch of transactions.\n Emits one {CallExecuted} event per transaction in the batch.\n Requirements:\n - the caller must have the 'executor' role." }, "functionSelector": "f156883b", - "id": 2121, + "id": 2122, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 2051, + "id": 2052, "name": "EXECUTOR_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, - "src": "8144:13:9", + "src": "8230:13:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2052, + "id": 2053, "kind": "modifierInvocation", "modifierName": { - "id": 2050, + "id": 2051, "name": "onlyRoleOrOpenRole", "nodeType": "IdentifierPath", "referencedDeclaration": 1648, - "src": "8125:18:9" + "src": "8211:18:9" }, "nodeType": "ModifierInvocation", - "src": "8125:33:9" + "src": "8211:33:9" } ], "name": "execute", - "nameLocation": "7956:7:9", + "nameLocation": "8040:7:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2049, + "id": 2050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2038, + "id": 2039, "mutability": "mutable", "name": "targets", - "nameLocation": "7988:7:9", + "nameLocation": "8072:7:9", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "7969:26:9", + "scope": 2122, + "src": "8053:26:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -31382,19 +31366,19 @@ }, "typeName": { "baseType": { - "id": 2036, + "id": 2037, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7969:7:9", + "src": "8053:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2037, + "id": 2038, "nodeType": "ArrayTypeName", - "src": "7969:9:9", + "src": "8053:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -31404,13 +31388,13 @@ }, { "constant": false, - "id": 2041, + "id": 2042, "mutability": "mutable", "name": "values", - "nameLocation": "8020:6:9", + "nameLocation": "8104:6:9", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "8001:25:9", + "scope": 2122, + "src": "8085:25:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -31419,18 +31403,18 @@ }, "typeName": { "baseType": { - "id": 2039, + "id": 2040, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8001:7:9", + "src": "8085:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2040, + "id": 2041, "nodeType": "ArrayTypeName", - "src": "8001:9:9", + "src": "8085:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -31440,13 +31424,13 @@ }, { "constant": false, - "id": 2044, + "id": 2045, "mutability": "mutable", "name": "datas", - "nameLocation": "8049:5:9", + "nameLocation": "8133:5:9", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "8032:22:9", + "scope": 2122, + "src": "8116:22:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -31455,18 +31439,18 @@ }, "typeName": { "baseType": { - "id": 2042, + "id": 2043, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8032:5:9", + "src": "8116:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, - "id": 2043, + "id": 2044, "nodeType": "ArrayTypeName", - "src": "8032:7:9", + "src": "8116:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" @@ -31476,13 +31460,13 @@ }, { "constant": false, - "id": 2046, + "id": 2047, "mutability": "mutable", "name": "predecessor", - "nameLocation": "8068:11:9", + "nameLocation": "8152:11:9", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "8060:19:9", + "scope": 2122, + "src": "8144:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31490,10 +31474,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2045, + "id": 2046, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8060:7:9", + "src": "8144:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31503,13 +31487,13 @@ }, { "constant": false, - "id": 2048, + "id": 2049, "mutability": "mutable", "name": "salt", - "nameLocation": "8093:4:9", + "nameLocation": "8177:4:9", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "8085:12:9", + "scope": 2122, + "src": "8169:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31517,10 +31501,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2047, + "id": 2048, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8085:7:9", + "src": "8169:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31529,25 +31513,25 @@ "visibility": "internal" } ], - "src": "7963:138:9" + "src": "8047:138:9" }, "returnParameters": { - "id": 2053, + "id": 2054, "nodeType": "ParameterList", "parameters": [], - "src": "8159:0:9" + "src": "8245:0:9" }, - "scope": 2240, - "src": "7947:682:9", + "scope": 2241, + "src": "8031:684:9", "stateMutability": "payable", "virtual": true, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 2157, + "id": 2158, "nodeType": "Block", - "src": "8771:326:9", + "src": "8857:326:9", "statements": [ { "expression": { @@ -31555,12 +31539,12 @@ { "arguments": [ { - "id": 2131, + "id": 2132, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "8802:2:9", + "referencedDeclaration": 2125, + "src": "8888:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31574,18 +31558,18 @@ "typeString": "bytes32" } ], - "id": 2130, + "id": 2131, "name": "isOperationReady", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1756, - "src": "8785:16:9", + "referencedDeclaration": 1757, + "src": "8871:16:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2132, + "id": 2133, "isConstant": false, "isLValue": false, "isPure": false, @@ -31593,7 +31577,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8785:20:9", + "src": "8871:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -31602,14 +31586,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e6f74207265616479", - "id": 2133, + "id": 2134, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8807:42:9", + "src": "8893:42:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3071306add2bfff75b9ab79068a1537f4356af9ed062959388101e0b120a034f", "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" @@ -31628,7 +31612,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" } ], - "id": 2129, + "id": 2130, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -31636,13 +31620,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8777:7:9", + "src": "8863:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2134, + "id": 2135, "isConstant": false, "isLValue": false, "isPure": false, @@ -31650,16 +31634,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8777:73:9", + "src": "8863:73:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2135, + "id": 2136, "nodeType": "ExpressionStatement", - "src": "8777:73:9" + "src": "8863:73:9" }, { "expression": { @@ -31667,12 +31651,12 @@ { "arguments": [ { - "id": 2138, + "id": 2139, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "8883:2:9", + "referencedDeclaration": 2125, + "src": "8969:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31686,18 +31670,18 @@ "typeString": "bytes32" } ], - "id": 2137, + "id": 2138, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "8871:11:9", + "referencedDeclaration": 1733, + "src": "8957:11:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2139, + "id": 2140, "isConstant": false, "isLValue": false, "isPure": false, @@ -31705,7 +31689,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8871:15:9", + "src": "8957:15:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -31714,14 +31698,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206e6f7420726561636820726571756972656420636f6e6669726d6174696f6e73", - "id": 2140, + "id": 2141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8894:62:9", + "src": "8980:62:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_26f3351a4289a44b9dc71972f9cd6f45d47bd0c7add4c9d1015c299b64c9cdbe", "typeString": "literal_string \"BEMultiSigWallet: operation not reach required confirmations\"" @@ -31740,7 +31724,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation not reach required confirmations\"" } ], - "id": 2136, + "id": 2137, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -31748,13 +31732,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8856:7:9", + "src": "8942:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2141, + "id": 2142, "isConstant": false, "isLValue": false, "isPure": false, @@ -31762,16 +31746,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8856:106:9", + "src": "8942:106:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2142, + "id": 2143, "nodeType": "ExpressionStatement", - "src": "8856:106:9" + "src": "8942:106:9" }, { "expression": { @@ -31781,7 +31765,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2153, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, @@ -31791,18 +31775,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2149, + "id": 2150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2144, + "id": 2145, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "8983:11:9", + "referencedDeclaration": 2127, + "src": "9069:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31814,14 +31798,14 @@ "arguments": [ { "hexValue": "30", - "id": 2147, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9006:1:9", + "src": "9092:1:9", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -31836,26 +31820,26 @@ "typeString": "int_const 0" } ], - "id": 2146, + "id": 2147, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8998:7:9", + "src": "9084:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2145, + "id": 2146, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8998:7:9", + "src": "9084:7:9", "typeDescriptions": {} } }, - "id": 2148, + "id": 2149, "isConstant": false, "isLValue": false, "isPure": true, @@ -31863,14 +31847,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8998:10:9", + "src": "9084:10:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8983:25:9", + "src": "9069:25:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31881,12 +31865,12 @@ "rightExpression": { "arguments": [ { - "id": 2151, + "id": 2152, "name": "predecessor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "9028:11:9", + "referencedDeclaration": 2127, + "src": "9114:11:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31900,18 +31884,18 @@ "typeString": "bytes32" } ], - "id": 2150, + "id": 2151, "name": "isOperationDone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1771, - "src": "9012:15:9", + "referencedDeclaration": 1772, + "src": "9098:15:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2152, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, @@ -31919,14 +31903,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9012:28:9", + "src": "9098:28:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8983:57:9", + "src": "9069:57:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31934,14 +31918,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206d697373696e6720646570656e64656e6379", - "id": 2154, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9048:38:9", + "src": "9134:38:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd941925c974bb4b37fc449c3636956979b5143840e3dd79fa264fd005e44275", "typeString": "literal_string \"BEMultiSigWallet: missing dependency\"" @@ -31960,7 +31944,7 @@ "typeString": "literal_string \"BEMultiSigWallet: missing dependency\"" } ], - "id": 2143, + "id": 2144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -31968,13 +31952,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8968:7:9", + "src": "9054:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2155, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": false, @@ -31982,45 +31966,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8968:124:9", + "src": "9054:124:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2156, + "id": 2157, "nodeType": "ExpressionStatement", - "src": "8968:124:9" + "src": "9054:124:9" } ] }, "documentation": { - "id": 2122, + "id": 2123, "nodeType": "StructuredDocumentation", - "src": "8633:68:9", + "src": "8719:68:9", "text": " @dev Checks before execution of an operation's calls." }, - "id": 2158, + "id": 2159, "implemented": true, "kind": "function", "modifiers": [], "name": "_beforeCall", - "nameLocation": "8713:11:9", + "nameLocation": "8799:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2127, + "id": 2128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2124, + "id": 2125, "mutability": "mutable", "name": "id", - "nameLocation": "8733:2:9", + "nameLocation": "8819:2:9", "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "8725:10:9", + "scope": 2159, + "src": "8811:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32028,10 +32012,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2123, + "id": 2124, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8725:7:9", + "src": "8811:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32041,13 +32025,13 @@ }, { "constant": false, - "id": 2126, + "id": 2127, "mutability": "mutable", "name": "predecessor", - "nameLocation": "8745:11:9", + "nameLocation": "8831:11:9", "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "8737:19:9", + "scope": 2159, + "src": "8823:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32055,10 +32039,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2125, + "id": 2126, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8737:7:9", + "src": "8823:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32067,25 +32051,25 @@ "visibility": "internal" } ], - "src": "8724:33:9" + "src": "8810:33:9" }, "returnParameters": { - "id": 2128, + "id": 2129, "nodeType": "ParameterList", "parameters": [], - "src": "8771:0:9" + "src": "8857:0:9" }, - "scope": 2240, - "src": "8704:393:9", + "scope": 2241, + "src": "8790:393:9", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 2177, + "id": 2178, "nodeType": "Block", - "src": "9211:123:9", + "src": "9297:123:9", "statements": [ { "expression": { @@ -32093,12 +32077,12 @@ { "arguments": [ { - "id": 2166, + "id": 2167, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2161, - "src": "9242:2:9", + "referencedDeclaration": 2162, + "src": "9328:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32112,18 +32096,18 @@ "typeString": "bytes32" } ], - "id": 2165, + "id": 2166, "name": "isOperationReady", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1756, - "src": "9225:16:9", + "referencedDeclaration": 1757, + "src": "9311:16:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2167, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, @@ -32131,7 +32115,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9225:20:9", + "src": "9311:20:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -32140,14 +32124,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a206f7065726174696f6e206973206e6f74207265616479", - "id": 2168, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9247:42:9", + "src": "9333:42:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3071306add2bfff75b9ab79068a1537f4356af9ed062959388101e0b120a034f", "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" @@ -32166,7 +32150,7 @@ "typeString": "literal_string \"BEMultiSigWallet: operation is not ready\"" } ], - "id": 2164, + "id": 2165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -32174,13 +32158,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "9217:7:9", + "src": "9303:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2169, + "id": 2170, "isConstant": false, "isLValue": false, "isPure": false, @@ -32188,45 +32172,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9217:73:9", + "src": "9303:73:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2170, + "id": 2171, "nodeType": "ExpressionStatement", - "src": "9217:73:9" + "src": "9303:73:9" }, { "expression": { - "id": 2175, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2171, + "id": 2172, "name": "_timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1427, - "src": "9296:11:9", + "src": "9382:11:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 2173, + "id": 2174, "indexExpression": { - "id": 2172, + "id": 2173, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2161, - "src": "9308:2:9", + "referencedDeclaration": 2162, + "src": "9394:2:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32237,7 +32221,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9296:15:9", + "src": "9382:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32246,55 +32230,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2174, + "id": 2175, "name": "_DONE_TIMESTAMP", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1423, - "src": "9314:15:9", + "src": "9400:15:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9296:33:9", + "src": "9382:33:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2176, + "id": 2177, "nodeType": "ExpressionStatement", - "src": "9296:33:9" + "src": "9382:33:9" } ] }, "documentation": { - "id": 2159, + "id": 2160, "nodeType": "StructuredDocumentation", - "src": "9101:67:9", + "src": "9187:67:9", "text": " @dev Checks after execution of an operation's calls." }, - "id": 2178, + "id": 2179, "implemented": true, "kind": "function", "modifiers": [], "name": "_afterCall", - "nameLocation": "9180:10:9", + "nameLocation": "9266:10:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2162, + "id": 2163, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2161, + "id": 2162, "mutability": "mutable", "name": "id", - "nameLocation": "9199:2:9", + "nameLocation": "9285:2:9", "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "9191:10:9", + "scope": 2179, + "src": "9277:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32302,10 +32286,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2160, + "id": 2161, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9191:7:9", + "src": "9277:7:9", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32314,41 +32298,41 @@ "visibility": "internal" } ], - "src": "9190:12:9" + "src": "9276:12:9" }, "returnParameters": { - "id": 2163, + "id": 2164, "nodeType": "ParameterList", "parameters": [], - "src": "9211:0:9" + "src": "9297:0:9" }, - "scope": 2240, - "src": "9171:163:9", + "scope": 2241, + "src": "9257:163:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 2202, + "id": 2203, "nodeType": "Block", - "src": "9504:136:9", + "src": "9590:136:9", "statements": [ { "assignments": [ - 2189, + 2190, null ], "declarations": [ { "constant": false, - "id": 2189, + "id": 2190, "mutability": "mutable", "name": "success", - "nameLocation": "9516:7:9", + "nameLocation": "9602:7:9", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "9511:12:9", + "scope": 2203, + "src": "9597:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32356,10 +32340,10 @@ "typeString": "bool" }, "typeName": { - "id": 2188, + "id": 2189, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9511:4:9", + "src": "9597:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32369,16 +32353,16 @@ }, null ], - "id": 2196, + "id": 2197, "initialValue": { "arguments": [ { - "id": 2194, + "id": 2195, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2185, - "src": "9555:4:9", + "referencedDeclaration": 2186, + "src": "9641:4:9", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -32400,31 +32384,31 @@ } ], "expression": { - "id": 2190, + "id": 2191, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2181, - "src": "9529:6:9", + "referencedDeclaration": 2182, + "src": "9615:6:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2191, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", - "src": "9529:11:9", + "src": "9615:11:9", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 2193, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": false, @@ -32435,25 +32419,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 2192, + "id": 2193, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2183, - "src": "9548:5:9", + "referencedDeclaration": 2184, + "src": "9634:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "9529:25:9", + "src": "9615:25:9", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 2195, + "id": 2196, "isConstant": false, "isLValue": false, "isPure": false, @@ -32461,7 +32445,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9529:31:9", + "src": "9615:31:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -32469,18 +32453,18 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9510:50:9" + "src": "9596:50:9" }, { "expression": { "arguments": [ { - "id": 2198, + "id": 2199, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "9574:7:9", + "referencedDeclaration": 2190, + "src": "9660:7:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32488,14 +32472,14 @@ }, { "hexValue": "42454d756c746953696757616c6c65743a20756e6465726c79696e67207472616e73616374696f6e207265766572746564", - "id": 2199, + "id": 2200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9583:51:9", + "src": "9669:51:9", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4887496109bd7042bc943a0ba0978efb71ff89756cc68bec9bd24ffa06316a33", "typeString": "literal_string \"BEMultiSigWallet: underlying transaction reverted\"" @@ -32514,7 +32498,7 @@ "typeString": "literal_string \"BEMultiSigWallet: underlying transaction reverted\"" } ], - "id": 2197, + "id": 2198, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -32522,13 +32506,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "9566:7:9", + "src": "9652:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2200, + "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, @@ -32536,45 +32520,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9566:69:9", + "src": "9652:69:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2201, + "id": 2202, "nodeType": "ExpressionStatement", - "src": "9566:69:9" + "src": "9652:69:9" } ] }, "documentation": { - "id": 2179, + "id": 2180, "nodeType": "StructuredDocumentation", - "src": "9338:88:9", + "src": "9424:88:9", "text": " @dev Execute an operation's call.\n Emits a {CallExecuted} event." }, - "id": 2203, + "id": 2204, "implemented": true, "kind": "function", "modifiers": [], "name": "_call", - "nameLocation": "9438:5:9", + "nameLocation": "9524:5:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2186, + "id": 2187, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2181, + "id": 2182, "mutability": "mutable", "name": "target", - "nameLocation": "9452:6:9", + "nameLocation": "9538:6:9", "nodeType": "VariableDeclaration", - "scope": 2203, - "src": "9444:14:9", + "scope": 2204, + "src": "9530:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32582,10 +32566,10 @@ "typeString": "address" }, "typeName": { - "id": 2180, + "id": 2181, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9444:7:9", + "src": "9530:7:9", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -32596,13 +32580,13 @@ }, { "constant": false, - "id": 2183, + "id": 2184, "mutability": "mutable", "name": "value", - "nameLocation": "9468:5:9", + "nameLocation": "9554:5:9", "nodeType": "VariableDeclaration", - "scope": 2203, - "src": "9460:13:9", + "scope": 2204, + "src": "9546:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32610,10 +32594,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2182, + "id": 2183, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9460:7:9", + "src": "9546:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32623,13 +32607,13 @@ }, { "constant": false, - "id": 2185, + "id": 2186, "mutability": "mutable", "name": "data", - "nameLocation": "9490:4:9", + "nameLocation": "9576:4:9", "nodeType": "VariableDeclaration", - "scope": 2203, - "src": "9475:19:9", + "scope": 2204, + "src": "9561:19:9", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -32637,10 +32621,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2184, + "id": 2185, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9475:5:9", + "src": "9561:5:9", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -32649,48 +32633,48 @@ "visibility": "internal" } ], - "src": "9443:52:9" + "src": "9529:52:9" }, "returnParameters": { - "id": 2187, + "id": 2188, "nodeType": "ParameterList", "parameters": [], - "src": "9504:0:9" + "src": "9590:0:9" }, - "scope": 2240, - "src": "9429:211:9", + "scope": 2241, + "src": "9515:211:9", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 2220, + "id": 2221, "nodeType": "Block", - "src": "10073:77:9", + "src": "10159:77:9", "statements": [ { "eventCall": { "arguments": [ { - "id": 2212, + "id": 2213, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1435, - "src": "10099:8:9", + "src": "10185:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2213, + "id": 2214, "name": "_minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "10109:9:9", + "referencedDeclaration": 2207, + "src": "10195:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32708,18 +32692,18 @@ "typeString": "uint256" } ], - "id": 2211, + "id": 2212, "name": "MinDelayChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1473, - "src": "10084:14:9", + "src": "10170:14:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 2214, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": false, @@ -32727,31 +32711,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10084:35:9", + "src": "10170:35:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2215, + "id": 2216, "nodeType": "EmitStatement", - "src": "10079:40:9" + "src": "10165:40:9" }, { "expression": { - "id": 2218, + "id": 2219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2216, + "id": 2217, "name": "minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1435, - "src": "10125:8:9", + "src": "10211:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32760,70 +32744,70 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2217, + "id": 2218, "name": "_minDelay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "10136:9:9", + "referencedDeclaration": 2207, + "src": "10222:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10125:20:9", + "src": "10211:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2219, + "id": 2220, "nodeType": "ExpressionStatement", - "src": "10125:20:9" + "src": "10211:20:9" } ] }, "documentation": { - "id": 2204, + "id": 2205, "nodeType": "StructuredDocumentation", - "src": "9644:358:9", + "src": "9730:358:9", "text": " @dev Changes the minimum wallet duration for future operations.\n Emits a {MinDelayChange} event.\n Requirements:\n - the caller must be the wallet itself. This can only be achieved by scheduling and later executing\n an operation where the wallet is the target and the data is the ABI-encoded call to this function." }, "functionSelector": "5037ec62", - "id": 2221, + "id": 2222, "implemented": true, "kind": "function", "modifiers": [ { - "id": 2209, + "id": 2210, "kind": "modifierInvocation", "modifierName": { - "id": 2208, + "id": 2209, "name": "onlyWallet", "nodeType": "IdentifierPath", "referencedDeclaration": 1495, - "src": "10062:10:9" + "src": "10148:10:9" }, "nodeType": "ModifierInvocation", - "src": "10062:10:9" + "src": "10148:10:9" } ], "name": "changeDelay", - "nameLocation": "10014:11:9", + "nameLocation": "10100:11:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2207, + "id": 2208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2206, + "id": 2207, "mutability": "mutable", "name": "_minDelay", - "nameLocation": "10034:9:9", + "nameLocation": "10120:9:9", "nodeType": "VariableDeclaration", - "scope": 2221, - "src": "10026:17:9", + "scope": 2222, + "src": "10112:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32831,10 +32815,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2205, + "id": 2206, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10026:7:9", + "src": "10112:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32843,48 +32827,48 @@ "visibility": "internal" } ], - "src": "10025:19:9" + "src": "10111:19:9" }, "returnParameters": { - "id": 2210, + "id": 2211, "nodeType": "ParameterList", "parameters": [], - "src": "10073:0:9" + "src": "10159:0:9" }, - "scope": 2240, - "src": "10005:145:9", + "scope": 2241, + "src": "10091:145:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "external" }, { "body": { - "id": 2238, + "id": 2239, "nodeType": "Block", - "src": "10399:80:9", + "src": "10485:80:9", "statements": [ { "eventCall": { "arguments": [ { - "id": 2230, + "id": 2231, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1437, - "src": "10428:8:9", + "src": "10514:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2231, + "id": 2232, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2224, - "src": "10438:9:9", + "referencedDeclaration": 2225, + "src": "10524:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32902,18 +32886,18 @@ "typeString": "uint256" } ], - "id": 2229, + "id": 2230, "name": "RequirementChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1480, - "src": "10410:17:9", + "src": "10496:17:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 2232, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -32921,31 +32905,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10410:38:9", + "src": "10496:38:9", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2233, + "id": 2234, "nodeType": "EmitStatement", - "src": "10405:43:9" + "src": "10491:43:9" }, { "expression": { - "id": 2236, + "id": 2237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2234, + "id": 2235, "name": "required", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1437, - "src": "10454:8:9", + "src": "10540:8:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32954,70 +32938,70 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2235, + "id": 2236, "name": "_required", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2224, - "src": "10465:9:9", + "referencedDeclaration": 2225, + "src": "10551:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10454:20:9", + "src": "10540:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2237, + "id": 2238, "nodeType": "ExpressionStatement", - "src": "10454:20:9" + "src": "10540:20:9" } ] }, "documentation": { - "id": 2222, + "id": 2223, "nodeType": "StructuredDocumentation", - "src": "10154:168:9", + "src": "10240:168:9", "text": " @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n @param _required Number of required confirmations." }, "functionSelector": "ba51a6df", - "id": 2239, + "id": 2240, "implemented": true, "kind": "function", "modifiers": [ { - "id": 2227, + "id": 2228, "kind": "modifierInvocation", "modifierName": { - "id": 2226, + "id": 2227, "name": "onlyWallet", "nodeType": "IdentifierPath", "referencedDeclaration": 1495, - "src": "10388:10:9" + "src": "10474:10:9" }, "nodeType": "ModifierInvocation", - "src": "10388:10:9" + "src": "10474:10:9" } ], "name": "changeRequirement", - "nameLocation": "10334:17:9", + "nameLocation": "10420:17:9", "nodeType": "FunctionDefinition", "parameters": { - "id": 2225, + "id": 2226, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2224, + "id": 2225, "mutability": "mutable", "name": "_required", - "nameLocation": "10360:9:9", + "nameLocation": "10446:9:9", "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "10352:17:9", + "scope": 2240, + "src": "10438:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33025,10 +33009,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2223, + "id": 2224, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10352:7:9", + "src": "10438:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33037,27 +33021,27 @@ "visibility": "internal" } ], - "src": "10351:19:9" + "src": "10437:19:9" }, "returnParameters": { - "id": 2228, + "id": 2229, "nodeType": "ParameterList", "parameters": [], - "src": "10399:0:9" + "src": "10485:0:9" }, - "scope": 2240, - "src": "10325:154:9", + "scope": 2241, + "src": "10411:154:9", "stateMutability": "nonpayable", "virtual": true, "visibility": "external" } ], - "scope": 2241, - "src": "168:10313:9", + "scope": 2242, + "src": "168:10399:9", "usedErrors": [] } ], - "src": "32:10450:9" + "src": "32:10536:9" }, "compiler": { "name": "solc", @@ -33387,8 +33371,7 @@ } }, "schemaVersion": "3.4.11", - "updatedAt": "2023-04-19T02:14:02.512Z", - "networkType": "ethereum", + "updatedAt": "2023-04-19T09:05:27.700Z", "devdoc": { "events": { "Cancelled(bytes32)": { @@ -33451,6 +33434,9 @@ "hashOperation(address[],uint256[],bytes[],bytes32,bytes32)": { "details": "Returns the identifier of an operation containing a batch of transactions." }, + "isConfirmed(bytes32)": { + "details": "Returns whether an operation is confirmed or not." + }, "isOperation(bytes32)": { "details": "Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations." }, diff --git a/contracts/core/BEMultiSigWallet.sol b/contracts/core/BEMultiSigWallet.sol index 5fe2834..e75d661 100644 --- a/contracts/core/BEMultiSigWallet.sol +++ b/contracts/core/BEMultiSigWallet.sol @@ -198,7 +198,7 @@ contract BEMultiSigWallet is AccessControlEnumerable { bytes32 predecessor, bytes32 salt, uint256 delay - ) public virtual onlyRoleOrOpenRole(PROPOSER_ROLE) { + ) external virtual onlyRoleOrOpenRole(PROPOSER_ROLE) { require( targets.length == values.length, "BEMultiSigWallet: length mismatch" @@ -229,7 +229,9 @@ contract BEMultiSigWallet is AccessControlEnumerable { * * - the caller must have the 'proposer' role. */ - function cancel(bytes32 id) public virtual onlyRoleOrOpenRole(PROPOSER_ROLE) { + function cancel( + bytes32 id + ) external virtual onlyRoleOrOpenRole(PROPOSER_ROLE) { require( isOperationPending(id), "BEMultiSigWallet: operation cannot be cancelled" @@ -244,7 +246,7 @@ contract BEMultiSigWallet is AccessControlEnumerable { */ function confirmTransaction( bytes32[] calldata ids - ) public onlyRoleOrOpenRole(CONFIRM_ROLE) { + ) external onlyRoleOrOpenRole(CONFIRM_ROLE) { for (uint256 i = 0; i < ids.length; ++i) { require( isOperationPending(ids[i]), @@ -260,7 +262,7 @@ contract BEMultiSigWallet is AccessControlEnumerable { */ function revokeConfirmation( bytes32[] calldata ids - ) public onlyRoleOrOpenRole(CONFIRM_ROLE) { + ) external onlyRoleOrOpenRole(CONFIRM_ROLE) { for (uint256 i = 0; i < ids.length; ++i) { require( isOperationPending(ids[i]), @@ -286,7 +288,7 @@ contract BEMultiSigWallet is AccessControlEnumerable { bytes[] calldata datas, bytes32 predecessor, bytes32 salt - ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { + ) external payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { require( targets.length == values.length, "BEMultiSigWallet: length mismatch"