Contract Overview
Balance:
0 MOVR
MOVR Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
BondManager
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at moonriver.moonscan.io on 2021-12-25 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.6; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // XXX: import "./SafeMath.sol"; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IBondDepositor { function initializeBondTerms(uint _controlVariable, uint _vestingTerm, uint _minimumPrice, uint _maxPayout, uint _fee, uint _maxDebt, uint _initialDebt) external; function setBondTerms(uint8 _parameter, uint _input) external; function setAdjustment(bool _addition, uint _increment, uint _target, uint _buffer) external; function setStaking(address _staking, bool _helper) external; function pushManagement(address newOwner_) external; function pullManagement() external; } contract BondManager is Ownable { using SafeERC20 for IERC20; using SafeMath for uint256; struct Bond { address bondDepositor; uint256 minBCV; uint256 lastBlock; uint256 lastBCV; } mapping(uint256 => Bond) public bonds; uint256 public delay = 100; // 5 min uint256 public maxStep = 1; address public manager; modifier onlyManager() { require(msg.sender == manager, "onlyManager: caller is not the manager"); _; } event SetBCV(uint256 indexed _index, address indexed _bond, uint256 _bcv); // ------------------------------ // contruct // ------------------------------ constructor() { } // ------------------------------ // onlyOwner // ------------------------------ function initializeBondTerms(uint256 _index, uint _controlVariable, uint _vestingTerm, uint _minimumPrice, uint _maxPayout, uint _fee, uint _maxDebt, uint _initialDebt) external onlyOwner { Bond memory _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); IBondDepositor(_bond.bondDepositor).initializeBondTerms(_controlVariable, _vestingTerm, _minimumPrice, _maxPayout, _fee, _maxDebt, _initialDebt); } function setBondTerms(uint256 _index, uint8 _parameter, uint _input) external onlyOwner { Bond memory _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); IBondDepositor(_bond.bondDepositor).setBondTerms(_parameter, _input); } function setAdjustment(uint256 _index, bool _addition, uint _increment, uint _target, uint _buffer) external onlyOwner { Bond memory _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); IBondDepositor(_bond.bondDepositor).setAdjustment(_addition, _increment, _target, _buffer); } function setStaking(uint256 _index, address _staking, bool _helper) external onlyOwner { Bond memory _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); IBondDepositor(_bond.bondDepositor).setStaking(_staking, _helper); } function pushManagement(uint256 _index, address _newOwner) external onlyOwner { Bond memory _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); IBondDepositor(_bond.bondDepositor).pushManagement(_newOwner); } function pullManagement(uint256 _index) external onlyOwner { Bond memory _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); IBondDepositor(_bond.bondDepositor).pullManagement(); } function setManager(address _manager) external onlyOwner { require (_manager != address(0), "address invalid"); manager = _manager; } function setBond(uint256 _index, address _bondDepositor, uint256 _min) external onlyOwner { require (_min > 1, "min bcv must > 1"); Bond storage _bond = bonds[_index]; _bond.bondDepositor = _bondDepositor; _bond.minBCV = _min; _bond.lastBlock = block.number; } function removeBond(uint256 _index) external onlyOwner { Bond storage _bond = bonds[_index]; _bond.bondDepositor = address(0); _bond.minBCV = 0; _bond.lastBlock = 0; _bond.lastBCV = 0; } function setDelay(uint256 _delay) external onlyOwner { delay = _delay; } function setMaxStep(uint256 _maxStep) external onlyOwner { maxStep = _maxStep; } // ------------------------------ // onlyManager // ------------------------------ function setBCV(uint256 _index, uint256 _bcv) public onlyManager { Bond storage _bond = bonds[_index]; require (_bond.bondDepositor != address(0), "bond depositor not exists"); require (_bond.lastBlock.add(delay) <= block.number, "block in delay"); require (_bcv >= _bond.minBCV, "must >= min BCV"); if (_bond.lastBCV > 0 ) { if (_bcv > _bond.lastBCV) { require (_bcv.sub(_bond.lastBCV) <= maxStep, "limit max step"); } else { require (_bond.lastBCV.sub(_bcv) <= maxStep, "limit max step"); } } // set BCV IBondDepositor(_bond.bondDepositor).setBondTerms(5, _bcv); _bond.lastBlock = block.number; _bond.lastBCV = _bcv; emit SetBCV(_index, _bond.bondDepositor, _bcv); } }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_index","type":"uint256"},{"indexed":true,"internalType":"address","name":"_bond","type":"address"},{"indexed":false,"internalType":"uint256","name":"_bcv","type":"uint256"}],"name":"SetBCV","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bonds","outputs":[{"internalType":"address","name":"bondDepositor","type":"address"},{"internalType":"uint256","name":"minBCV","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"lastBCV","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_controlVariable","type":"uint256"},{"internalType":"uint256","name":"_vestingTerm","type":"uint256"},{"internalType":"uint256","name":"_minimumPrice","type":"uint256"},{"internalType":"uint256","name":"_maxPayout","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256","name":"_maxDebt","type":"uint256"},{"internalType":"uint256","name":"_initialDebt","type":"uint256"}],"name":"initializeBondTerms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxStep","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"pullManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"address","name":"_newOwner","type":"address"}],"name":"pushManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"removeBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"bool","name":"_addition","type":"bool"},{"internalType":"uint256","name":"_increment","type":"uint256"},{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_buffer","type":"uint256"}],"name":"setAdjustment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_bcv","type":"uint256"}],"name":"setBCV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"address","name":"_bondDepositor","type":"address"},{"internalType":"uint256","name":"_min","type":"uint256"}],"name":"setBond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint8","name":"_parameter","type":"uint8"},{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"setBondTerms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_delay","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxStep","type":"uint256"}],"name":"setMaxStep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"address","name":"_staking","type":"address"},{"internalType":"bool","name":"_helper","type":"bool"}],"name":"setStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526064600255600160035534801561001a57600080fd5b50600061002b6100ce60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100d6565b600033905090565b612852806100e56000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063d0ebdbe711610071578063d0ebdbe7146102bb578063e177246e146102d7578063e69d2a29146102f3578063f2fde38b1461030f578063fccf0ba31461032b57610121565b8063715018a61461023f57806376adbd78146102495780638da5cb5b146102655780639cc8458914610283578063c7567ee11461029f57610121565b8063481c6a75116100f4578063481c6a75146101985780635f1c17c0146101b6578063607c39bd146101e9578063695c5be6146102055780636a42b8f81461022157610121565b806312826b521461012657806317a7191f146101425780633283ad0e14610160578063402f393b1461017c575b600080fd5b610140600480360381019061013b9190611d50565b610347565b005b61014a610478565b60405161015791906123a2565b60405180910390f35b61017a60048036038101906101759190611e5e565b61047e565b005b61019660048036038101906101919190611c90565b61068a565b005b6101a0610783565b6040516101ad9190612149565b60405180910390f35b6101d060048036038101906101cb9190611c90565b6107a9565b6040516101e0949392919061218d565b60405180910390f35b61020360048036038101906101fe9190611cfd565b6107f9565b005b61021f600480360381019061021a9190611f14565b6109f6565b005b610229610bf3565b60405161023691906123a2565b60405180910390f35b610247610bf9565b005b610263600480360381019061025e9190611c90565b610d33565b005b61026d610f21565b60405161027a9190612149565b60405180910390f35b61029d60048036038101906102989190611da3565b610f4a565b005b6102b960048036038101906102b49190611c90565b61114d565b005b6102d560048036038101906102d09190611c63565b6111d3565b005b6102f160048036038101906102ec9190611c90565b611303565b005b61030d60048036038101906103089190611cbd565b611389565b005b61032960048036038101906103249190611c63565b611583565b005b61034560048036038101906103409190611e1e565b61172c565b005b61034f611afb565b73ffffffffffffffffffffffffffffffffffffffff1661036d610f21565b73ffffffffffffffffffffffffffffffffffffffff16146103c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ba90612302565b60405180910390fd5b60018111610406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fd906122c2565b60405180910390fd5b6000600160008581526020019081526020016000209050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816001018190555043816002018190555050505050565b60035481565b610486611afb565b73ffffffffffffffffffffffffffffffffffffffff166104a4610f21565b73ffffffffffffffffffffffffffffffffffffffff16146104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190612302565b60405180910390fd5b6000600160008a81526020019081526020016000206040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fb90612342565b60405180910390fd5b806000015173ffffffffffffffffffffffffffffffffffffffff166371535008898989898989896040518863ffffffff1660e01b815260040161064d97969594939291906123bd565b600060405180830381600087803b15801561066757600080fd5b505af115801561067b573d6000803e3d6000fd5b50505050505050505050505050565b610692611afb565b73ffffffffffffffffffffffffffffffffffffffff166106b0610f21565b73ffffffffffffffffffffffffffffffffffffffff1614610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612302565b60405180910390fd5b600060016000838152602001908152602001600020905060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000816001018190555060008160020181905550600081600301819055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b610801611afb565b73ffffffffffffffffffffffffffffffffffffffff1661081f610f21565b73ffffffffffffffffffffffffffffffffffffffff1614610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612302565b60405180910390fd5b6000600160008581526020019081526020016000206040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141561097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097690612342565b60405180910390fd5b806000015173ffffffffffffffffffffffffffffffffffffffff1663d4d863ce84846040518363ffffffff1660e01b81526004016109be929190612164565b600060405180830381600087803b1580156109d857600080fd5b505af11580156109ec573d6000803e3d6000fd5b5050505050505050565b6109fe611afb565b73ffffffffffffffffffffffffffffffffffffffff16610a1c610f21565b73ffffffffffffffffffffffffffffffffffffffff1614610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990612302565b60405180910390fd5b6000600160008581526020019081526020016000206040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7390612342565b60405180910390fd5b806000015173ffffffffffffffffffffffffffffffffffffffff16631e321a0f84846040518363ffffffff1660e01b8152600401610bbb92919061242c565b600060405180830381600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b5050505050505050565b60025481565b610c01611afb565b73ffffffffffffffffffffffffffffffffffffffff16610c1f610f21565b73ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90612302565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d3b611afb565b73ffffffffffffffffffffffffffffffffffffffff16610d59610f21565b73ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612302565b60405180910390fd5b6000600160008381526020019081526020016000206040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb090612342565b60405180910390fd5b806000015173ffffffffffffffffffffffffffffffffffffffff16635a96ac0a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f0557600080fd5b505af1158015610f19573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f52611afb565b73ffffffffffffffffffffffffffffffffffffffff16610f70610f21565b73ffffffffffffffffffffffffffffffffffffffff1614610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd90612302565b60405180910390fd5b6000600160008781526020019081526020016000206040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156110d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c790612342565b60405180910390fd5b806000015173ffffffffffffffffffffffffffffffffffffffff16631a3d0068868686866040518563ffffffff1660e01b815260040161111394939291906121d2565b600060405180830381600087803b15801561112d57600080fd5b505af1158015611141573d6000803e3d6000fd5b50505050505050505050565b611155611afb565b73ffffffffffffffffffffffffffffffffffffffff16611173610f21565b73ffffffffffffffffffffffffffffffffffffffff16146111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c090612302565b60405180910390fd5b8060038190555050565b6111db611afb565b73ffffffffffffffffffffffffffffffffffffffff166111f9610f21565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124690612302565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612382565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61130b611afb565b73ffffffffffffffffffffffffffffffffffffffff16611329610f21565b73ffffffffffffffffffffffffffffffffffffffff161461137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612302565b60405180910390fd5b8060028190555050565b611391611afb565b73ffffffffffffffffffffffffffffffffffffffff166113af610f21565b73ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90612302565b60405180910390fd5b6000600160008481526020019081526020016000206040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141561150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612342565b60405180910390fd5b806000015173ffffffffffffffffffffffffffffffffffffffff166346f68ee9836040518263ffffffff1660e01b815260040161154c9190612149565b600060405180830381600087803b15801561156657600080fd5b505af115801561157a573d6000803e3d6000fd5b50505050505050565b61158b611afb565b73ffffffffffffffffffffffffffffffffffffffff166115a9610f21565b73ffffffffffffffffffffffffffffffffffffffff16146115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690612302565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612282565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b390612362565b60405180910390fd5b6000600160008481526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612342565b60405180910390fd5b436118816002548360020154611b0390919063ffffffff16565b11156118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990612322565b60405180910390fd5b8060010154821015611909576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611900906122e2565b60405180910390fd5b6000816003015411156119df5780600301548211156119825760035461193c826003015484611b6190919063ffffffff16565b111561197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490612262565b60405180910390fd5b6119de565b60035461199c838360030154611b6190919063ffffffff16565b11156119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490612262565b60405180910390fd5b5b5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631e321a0f6005846040518363ffffffff1660e01b8152600401611a3f929190612217565b600060405180830381600087803b158015611a5957600080fd5b505af1158015611a6d573d6000803e3d6000fd5b505050504381600201819055508181600301819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16837f17613b90758264a8cca0a250e03ee11fc864f74fa8b6c0afdc881195bbb92fab84604051611aee91906123a2565b60405180910390a3505050565b600033905090565b6000808284611b129190612471565b905083811015611b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4e906122a2565b60405180910390fd5b8091505092915050565b6000611ba383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bab565b905092915050565b6000838311158290611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea9190612240565b60405180910390fd5b5060008385611c0291906124c7565b9050809150509392505050565b600081359050611c1e816127c0565b92915050565b600081359050611c33816127d7565b92915050565b600081359050611c48816127ee565b92915050565b600081359050611c5d81612805565b92915050565b600060208284031215611c7957611c786125c4565b5b6000611c8784828501611c0f565b91505092915050565b600060208284031215611ca657611ca56125c4565b5b6000611cb484828501611c39565b91505092915050565b60008060408385031215611cd457611cd36125c4565b5b6000611ce285828601611c39565b9250506020611cf385828601611c0f565b9150509250929050565b600080600060608486031215611d1657611d156125c4565b5b6000611d2486828701611c39565b9350506020611d3586828701611c0f565b9250506040611d4686828701611c24565b9150509250925092565b600080600060608486031215611d6957611d686125c4565b5b6000611d7786828701611c39565b9350506020611d8886828701611c0f565b9250506040611d9986828701611c39565b9150509250925092565b600080600080600060a08688031215611dbf57611dbe6125c4565b5b6000611dcd88828901611c39565b9550506020611dde88828901611c24565b9450506040611def88828901611c39565b9350506060611e0088828901611c39565b9250506080611e1188828901611c39565b9150509295509295909350565b60008060408385031215611e3557611e346125c4565b5b6000611e4385828601611c39565b9250506020611e5485828601611c39565b9150509250929050565b600080600080600080600080610100898b031215611e7f57611e7e6125c4565b5b6000611e8d8b828c01611c39565b9850506020611e9e8b828c01611c39565b9750506040611eaf8b828c01611c39565b9650506060611ec08b828c01611c39565b9550506080611ed18b828c01611c39565b94505060a0611ee28b828c01611c39565b93505060c0611ef38b828c01611c39565b92505060e0611f048b828c01611c39565b9150509295985092959890939650565b600080600060608486031215611f2d57611f2c6125c4565b5b6000611f3b86828701611c39565b9350506020611f4c86828701611c4e565b9250506040611f5d86828701611c39565b9150509250925092565b611f70816124fb565b82525050565b611f7f8161250d565b82525050565b611f8e81612550565b82525050565b6000611f9f82612455565b611fa98185612460565b9350611fb9818560208601612562565b611fc2816125c9565b840191505092915050565b6000611fda600e83612460565b9150611fe5826125da565b602082019050919050565b6000611ffd602683612460565b915061200882612603565b604082019050919050565b6000612020601b83612460565b915061202b82612652565b602082019050919050565b6000612043601083612460565b915061204e8261267b565b602082019050919050565b6000612066600f83612460565b9150612071826126a4565b602082019050919050565b6000612089602083612460565b9150612094826126cd565b602082019050919050565b60006120ac600e83612460565b91506120b7826126f6565b602082019050919050565b60006120cf601983612460565b91506120da8261271f565b602082019050919050565b60006120f2602683612460565b91506120fd82612748565b604082019050919050565b6000612115600f83612460565b915061212082612797565b602082019050919050565b61213481612539565b82525050565b61214381612543565b82525050565b600060208201905061215e6000830184611f67565b92915050565b60006040820190506121796000830185611f67565b6121866020830184611f76565b9392505050565b60006080820190506121a26000830187611f67565b6121af602083018661212b565b6121bc604083018561212b565b6121c9606083018461212b565b95945050505050565b60006080820190506121e76000830187611f76565b6121f4602083018661212b565b612201604083018561212b565b61220e606083018461212b565b95945050505050565b600060408201905061222c6000830185611f85565b612239602083018461212b565b9392505050565b6000602082019050818103600083015261225a8184611f94565b905092915050565b6000602082019050818103600083015261227b81611fcd565b9050919050565b6000602082019050818103600083015261229b81611ff0565b9050919050565b600060208201905081810360008301526122bb81612013565b9050919050565b600060208201905081810360008301526122db81612036565b9050919050565b600060208201905081810360008301526122fb81612059565b9050919050565b6000602082019050818103600083015261231b8161207c565b9050919050565b6000602082019050818103600083015261233b8161209f565b9050919050565b6000602082019050818103600083015261235b816120c2565b9050919050565b6000602082019050818103600083015261237b816120e5565b9050919050565b6000602082019050818103600083015261239b81612108565b9050919050565b60006020820190506123b7600083018461212b565b92915050565b600060e0820190506123d2600083018a61212b565b6123df602083018961212b565b6123ec604083018861212b565b6123f9606083018761212b565b612406608083018661212b565b61241360a083018561212b565b61242060c083018461212b565b98975050505050505050565b6000604082019050612441600083018561213a565b61244e602083018461212b565b9392505050565b600081519050919050565b600082825260208201905092915050565b600061247c82612539565b915061248783612539565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124bc576124bb612595565b5b828201905092915050565b60006124d282612539565b91506124dd83612539565b9250828210156124f0576124ef612595565b5b828203905092915050565b600061250682612519565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061255b82612543565b9050919050565b60005b83811015612580578082015181840152602081019050612565565b8381111561258f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f6c696d6974206d61782073746570000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f6d696e20626376206d757374203e203100000000000000000000000000000000600082015250565b7f6d757374203e3d206d696e204243560000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f626c6f636b20696e2064656c6179000000000000000000000000000000000000600082015250565b7f626f6e64206465706f7369746f72206e6f742065786973747300000000000000600082015250565b7f6f6e6c794d616e616765723a2063616c6c6572206973206e6f7420746865206d60008201527f616e616765720000000000000000000000000000000000000000000000000000602082015250565b7f6164647265737320696e76616c69640000000000000000000000000000000000600082015250565b6127c9816124fb565b81146127d457600080fd5b50565b6127e08161250d565b81146127eb57600080fd5b50565b6127f781612539565b811461280257600080fd5b50565b61280e81612543565b811461281957600080fd5b5056fea26469706673582212204a6184c27ba8061a384cfebb16ba03a2e0204b26d1bf39f6aed3f0d0d47d9ccf64736f6c63430008060033
Deployed ByteCode Sourcemap
21960:4778:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25020:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22292:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22797:480;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25340:236;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22327:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22206:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;23978:308;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23285:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22250:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16115:148;;;:::i;:::-;;24589:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15464:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23605:365;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25678:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24856:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25584:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24294:287;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16418:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25882:853;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25020:312;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25137:1:::1;25130:4;:8;25121:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25172:18;25193:5;:13;25199:6;25193:13;;;;;;;;;;;25172:34;;25239:14;25217:5;:19;;;:36;;;;;;;;;;;;;;;;;;25279:4;25264:5;:12;;:19;;;;25312:12;25294:5;:15;;:30;;;;25110:222;25020:312:::0;;;:::o;22292:26::-;;;;:::o;22797:480::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22996:17:::1;23016:5;:13;23022:6;23016:13;;;;;;;;;;;22996:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;23080:1;23049:33;;:5;:19;;;:33;;;;23040:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23140:5;:19;;;23125:55;;;23181:16;23199:12;23213:13;23228:10;23240:4;23246:8;23256:12;23125:144;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22985:292;22797:480:::0;;;;;;;;:::o;25340:236::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25406:18:::1;25427:5;:13;25433:6;25427:13;;;;;;;;;;;25406:34;;25481:1;25451:5;:19;;;:32;;;;;;;;;;;;;;;;;;25509:1;25494:5;:12;;:16;;;;25539:1;25521:5;:15;;:19;;;;25567:1;25551:5;:13;;:17;;;;25395:181;25340:236:::0;:::o;22327:22::-;;;;;;;;;;;;;:::o;22206:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23978:308::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24076:17:::1;24096:5;:13;24102:6;24096:13;;;;;;;;;;;24076:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;24160:1;24129:33;;:5;:19;;;:33;;;;24120:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24228:5;:19;;;24213:46;;;24260:8;24270:7;24213:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24065:221;23978:308:::0;;;:::o;23285:312::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23384:17:::1;23404:5;:13;23410:6;23404:13;;;;;;;;;;;23384:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;23468:1;23437:33;;:5;:19;;;:33;;;;23428:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23536:5;:19;;;23521:48;;;23570:10;23582:6;23521:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23373:224;23285:312:::0;;;:::o;22250:26::-;;;;:::o;16115:148::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16222:1:::1;16185:40;;16206:6;::::0;::::1;;;;;;;;16185:40;;;;;;;;;;;;16253:1;16236:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16115:148::o:0;24589:259::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24659:17:::1;24679:5;:13;24685:6;24679:13;;;;;;;;;;;24659:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;24743:1;24712:33;;:5;:19;;;:33;;;;24703:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24803:5;:19;;;24788:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24648:200;24589:259:::0;:::o;15464:87::-;15510:7;15537:6;;;;;;;;;;;15530:13;;15464:87;:::o;23605:365::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23735:17:::1;23755:5;:13;23761:6;23755:13;;;;;;;;;;;23735:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;23819:1;23788:33;;:5;:19;;;:33;;;;23779:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23887:5;:19;;;23872:49;;;23922:9;23933:10;23945:7;23954;23872:90;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23724:246;23605:365:::0;;;;;:::o;25678:94::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25756:8:::1;25746:7;:18;;;;25678:94:::0;:::o;24856:156::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24953:1:::1;24933:22;;:8;:22;;;;24924:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;24996:8;24986:7;;:18;;;;;;;;;;;;;;;;;;24856:156:::0;:::o;25584:86::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25656:6:::1;25648:5;:14;;;;25584:86:::0;:::o;24294:287::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24383:17:::1;24403:5;:13;24409:6;24403:13;;;;;;;;;;;24383:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;24467:1;24436:33;;:5;:19;;;:33;;;;24427:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24527:5;:19;;;24512:50;;;24563:9;24512:61;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24372:209;24294:287:::0;;:::o;16418:244::-;15695:12;:10;:12::i;:::-;15684:23;;:7;:5;:7::i;:::-;:23;;;15676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16527:1:::1;16507:22;;:8;:22;;;;16499:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16617:8;16588:38;;16609:6;::::0;::::1;;;;;;;;16588:38;;;;;;;;;;;;16646:8;16637:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16418:244:::0;:::o;25882:853::-;22414:7;;;;;;;;;;;22400:21;;:10;:21;;;22392:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;25958:18:::1;25979:5;:13;25985:6;25979:13;;;;;;;;;;;25958:34;;26045:1;26014:33;;:5;:19;;;;;;;;;;;;:33;;;;26005:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;26127:12;26097:26;26117:5;;26097;:15;;;:19;;:26;;;;:::i;:::-;:42;;26088:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;26186:5;:12;;;26178:4;:20;;26169:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;26249:1;26233:5;:13;;;:17;26229:276;;;26279:5;:13;;;26272:4;:20;26268:226;;;26349:7;;26322:23;26331:5;:13;;;26322:4;:8;;:23;;;;:::i;:::-;:34;;26313:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;26268:226;;;26452:7;;26425:23;26443:4;26425:5;:13;;;:17;;:23;;;;:::i;:::-;:34;;26416:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;26268:226;26229:276;26552:5;:19;;;;;;;;;;;;26537:48;;;26586:1;26589:4;26537:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26625:12;26607:5;:15;;:30;;;;26664:4;26648:5;:13;;:20;;;;26701:5;:19;;;;;;;;;;;;26686:41;;26693:6;26686:41;26722:4;26686:41;;;;;;:::i;:::-;;;;;;;;25947:788;25882:853:::0;;:::o;14109:98::-;14162:7;14189:10;14182:17;;14109:98;:::o;16966:181::-;17024:7;17044:9;17060:1;17056;:5;;;;:::i;:::-;17044:17;;17085:1;17080;:6;;17072:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17138:1;17131:8;;;16966:181;;;;:::o;17430:136::-;17488:7;17515:43;17519:1;17522;17515:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;17508:50;;17430:136;;;;:::o;17869:192::-;17955:7;17988:1;17983;:6;;17991:12;17975:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18015:9;18031:1;18027;:5;;;;:::i;:::-;18015:17;;18052:1;18045:8;;;17869:192;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:135::-;480:5;518:6;505:20;496:29;;534:31;559:5;534:31;:::i;:::-;486:85;;;;:::o;577:329::-;636:6;685:2;673:9;664:7;660:23;656:32;653:2;;;691:79;;:::i;:::-;653:2;811:1;836:53;881:7;872:6;861:9;857:22;836:53;:::i;:::-;826:63;;782:117;643:263;;;;:::o;912:329::-;971:6;1020:2;1008:9;999:7;995:23;991:32;988:2;;;1026:79;;:::i;:::-;988:2;1146:1;1171:53;1216:7;1207:6;1196:9;1192:22;1171:53;:::i;:::-;1161:63;;1117:117;978:263;;;;:::o;1247:474::-;1315:6;1323;1372:2;1360:9;1351:7;1347:23;1343:32;1340:2;;;1378:79;;:::i;:::-;1340:2;1498:1;1523:53;1568:7;1559:6;1548:9;1544:22;1523:53;:::i;:::-;1513:63;;1469:117;1625:2;1651:53;1696:7;1687:6;1676:9;1672:22;1651:53;:::i;:::-;1641:63;;1596:118;1330:391;;;;;:::o;1727:613::-;1801:6;1809;1817;1866:2;1854:9;1845:7;1841:23;1837:32;1834:2;;;1872:79;;:::i;:::-;1834:2;1992:1;2017:53;2062:7;2053:6;2042:9;2038:22;2017:53;:::i;:::-;2007:63;;1963:117;2119:2;2145:53;2190:7;2181:6;2170:9;2166:22;2145:53;:::i;:::-;2135:63;;2090:118;2247:2;2273:50;2315:7;2306:6;2295:9;2291:22;2273:50;:::i;:::-;2263:60;;2218:115;1824:516;;;;;:::o;2346:619::-;2423:6;2431;2439;2488:2;2476:9;2467:7;2463:23;2459:32;2456:2;;;2494:79;;:::i;:::-;2456:2;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2741:2;2767:53;2812:7;2803:6;2792:9;2788:22;2767:53;:::i;:::-;2757:63;;2712:118;2869:2;2895:53;2940:7;2931:6;2920:9;2916:22;2895:53;:::i;:::-;2885:63;;2840:118;2446:519;;;;;:::o;2971:905::-;3063:6;3071;3079;3087;3095;3144:3;3132:9;3123:7;3119:23;3115:33;3112:2;;;3151:79;;:::i;:::-;3112:2;3271:1;3296:53;3341:7;3332:6;3321:9;3317:22;3296:53;:::i;:::-;3286:63;;3242:117;3398:2;3424:50;3466:7;3457:6;3446:9;3442:22;3424:50;:::i;:::-;3414:60;;3369:115;3523:2;3549:53;3594:7;3585:6;3574:9;3570:22;3549:53;:::i;:::-;3539:63;;3494:118;3651:2;3677:53;3722:7;3713:6;3702:9;3698:22;3677:53;:::i;:::-;3667:63;;3622:118;3779:3;3806:53;3851:7;3842:6;3831:9;3827:22;3806:53;:::i;:::-;3796:63;;3750:119;3102:774;;;;;;;;:::o;3882:474::-;3950:6;3958;4007:2;3995:9;3986:7;3982:23;3978:32;3975:2;;;4013:79;;:::i;:::-;3975:2;4133:1;4158:53;4203:7;4194:6;4183:9;4179:22;4158:53;:::i;:::-;4148:63;;4104:117;4260:2;4286:53;4331:7;4322:6;4311:9;4307:22;4286:53;:::i;:::-;4276:63;;4231:118;3965:391;;;;;:::o;4362:1349::-;4484:6;4492;4500;4508;4516;4524;4532;4540;4589:3;4577:9;4568:7;4564:23;4560:33;4557:2;;;4596:79;;:::i;:::-;4557:2;4716:1;4741:53;4786:7;4777:6;4766:9;4762:22;4741:53;:::i;:::-;4731:63;;4687:117;4843:2;4869:53;4914:7;4905:6;4894:9;4890:22;4869:53;:::i;:::-;4859:63;;4814:118;4971:2;4997:53;5042:7;5033:6;5022:9;5018:22;4997:53;:::i;:::-;4987:63;;4942:118;5099:2;5125:53;5170:7;5161:6;5150:9;5146:22;5125:53;:::i;:::-;5115:63;;5070:118;5227:3;5254:53;5299:7;5290:6;5279:9;5275:22;5254:53;:::i;:::-;5244:63;;5198:119;5356:3;5383:53;5428:7;5419:6;5408:9;5404:22;5383:53;:::i;:::-;5373:63;;5327:119;5485:3;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5456:119;5614:3;5641:53;5686:7;5677:6;5666:9;5662:22;5641:53;:::i;:::-;5631:63;;5585:119;4547:1164;;;;;;;;;;;:::o;5717:615::-;5792:6;5800;5808;5857:2;5845:9;5836:7;5832:23;5828:32;5825:2;;;5863:79;;:::i;:::-;5825:2;5983:1;6008:53;6053:7;6044:6;6033:9;6029:22;6008:53;:::i;:::-;5998:63;;5954:117;6110:2;6136:51;6179:7;6170:6;6159:9;6155:22;6136:51;:::i;:::-;6126:61;;6081:116;6236:2;6262:53;6307:7;6298:6;6287:9;6283:22;6262:53;:::i;:::-;6252:63;;6207:118;5815:517;;;;;:::o;6338:118::-;6425:24;6443:5;6425:24;:::i;:::-;6420:3;6413:37;6403:53;;:::o;6462:109::-;6543:21;6558:5;6543:21;:::i;:::-;6538:3;6531:34;6521:50;;:::o;6577:143::-;6670:43;6707:5;6670:43;:::i;:::-;6665:3;6658:56;6648:72;;:::o;6726:364::-;6814:3;6842:39;6875:5;6842:39;:::i;:::-;6897:71;6961:6;6956:3;6897:71;:::i;:::-;6890:78;;6977:52;7022:6;7017:3;7010:4;7003:5;6999:16;6977:52;:::i;:::-;7054:29;7076:6;7054:29;:::i;:::-;7049:3;7045:39;7038:46;;6818:272;;;;;:::o;7096:366::-;7238:3;7259:67;7323:2;7318:3;7259:67;:::i;:::-;7252:74;;7335:93;7424:3;7335:93;:::i;:::-;7453:2;7448:3;7444:12;7437:19;;7242:220;;;:::o;7468:366::-;7610:3;7631:67;7695:2;7690:3;7631:67;:::i;:::-;7624:74;;7707:93;7796:3;7707:93;:::i;:::-;7825:2;7820:3;7816:12;7809:19;;7614:220;;;:::o;7840:366::-;7982:3;8003:67;8067:2;8062:3;8003:67;:::i;:::-;7996:74;;8079:93;8168:3;8079:93;:::i;:::-;8197:2;8192:3;8188:12;8181:19;;7986:220;;;:::o;8212:366::-;8354:3;8375:67;8439:2;8434:3;8375:67;:::i;:::-;8368:74;;8451:93;8540:3;8451:93;:::i;:::-;8569:2;8564:3;8560:12;8553:19;;8358:220;;;:::o;8584:366::-;8726:3;8747:67;8811:2;8806:3;8747:67;:::i;:::-;8740:74;;8823:93;8912:3;8823:93;:::i;:::-;8941:2;8936:3;8932:12;8925:19;;8730:220;;;:::o;8956:366::-;9098:3;9119:67;9183:2;9178:3;9119:67;:::i;:::-;9112:74;;9195:93;9284:3;9195:93;:::i;:::-;9313:2;9308:3;9304:12;9297:19;;9102:220;;;:::o;9328:366::-;9470:3;9491:67;9555:2;9550:3;9491:67;:::i;:::-;9484:74;;9567:93;9656:3;9567:93;:::i;:::-;9685:2;9680:3;9676:12;9669:19;;9474:220;;;:::o;9700:366::-;9842:3;9863:67;9927:2;9922:3;9863:67;:::i;:::-;9856:74;;9939:93;10028:3;9939:93;:::i;:::-;10057:2;10052:3;10048:12;10041:19;;9846:220;;;:::o;10072:366::-;10214:3;10235:67;10299:2;10294:3;10235:67;:::i;:::-;10228:74;;10311:93;10400:3;10311:93;:::i;:::-;10429:2;10424:3;10420:12;10413:19;;10218:220;;;:::o;10444:366::-;10586:3;10607:67;10671:2;10666:3;10607:67;:::i;:::-;10600:74;;10683:93;10772:3;10683:93;:::i;:::-;10801:2;10796:3;10792:12;10785:19;;10590:220;;;:::o;10816:118::-;10903:24;10921:5;10903:24;:::i;:::-;10898:3;10891:37;10881:53;;:::o;10940:112::-;11023:22;11039:5;11023:22;:::i;:::-;11018:3;11011:35;11001:51;;:::o;11058:222::-;11151:4;11189:2;11178:9;11174:18;11166:26;;11202:71;11270:1;11259:9;11255:17;11246:6;11202:71;:::i;:::-;11156:124;;;;:::o;11286:320::-;11401:4;11439:2;11428:9;11424:18;11416:26;;11452:71;11520:1;11509:9;11505:17;11496:6;11452:71;:::i;:::-;11533:66;11595:2;11584:9;11580:18;11571:6;11533:66;:::i;:::-;11406:200;;;;;:::o;11612:553::-;11789:4;11827:3;11816:9;11812:19;11804:27;;11841:71;11909:1;11898:9;11894:17;11885:6;11841:71;:::i;:::-;11922:72;11990:2;11979:9;11975:18;11966:6;11922:72;:::i;:::-;12004;12072:2;12061:9;12057:18;12048:6;12004:72;:::i;:::-;12086;12154:2;12143:9;12139:18;12130:6;12086:72;:::i;:::-;11794:371;;;;;;;:::o;12171:541::-;12342:4;12380:3;12369:9;12365:19;12357:27;;12394:65;12456:1;12445:9;12441:17;12432:6;12394:65;:::i;:::-;12469:72;12537:2;12526:9;12522:18;12513:6;12469:72;:::i;:::-;12551;12619:2;12608:9;12604:18;12595:6;12551:72;:::i;:::-;12633;12701:2;12690:9;12686:18;12677:6;12633:72;:::i;:::-;12347:365;;;;;;;:::o;12718:344::-;12845:4;12883:2;12872:9;12868:18;12860:26;;12896:77;12970:1;12959:9;12955:17;12946:6;12896:77;:::i;:::-;12983:72;13051:2;13040:9;13036:18;13027:6;12983:72;:::i;:::-;12850:212;;;;;:::o;13068:313::-;13181:4;13219:2;13208:9;13204:18;13196:26;;13268:9;13262:4;13258:20;13254:1;13243:9;13239:17;13232:47;13296:78;13369:4;13360:6;13296:78;:::i;:::-;13288:86;;13186:195;;;;:::o;13387:419::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:131;13794:4;13668:131;:::i;:::-;13660:139;;13558:248;;;:::o;13812:419::-;13978:4;14016:2;14005:9;14001:18;13993:26;;14065:9;14059:4;14055:20;14051:1;14040:9;14036:17;14029:47;14093:131;14219:4;14093:131;:::i;:::-;14085:139;;13983:248;;;:::o;14237:419::-;14403:4;14441:2;14430:9;14426:18;14418:26;;14490:9;14484:4;14480:20;14476:1;14465:9;14461:17;14454:47;14518:131;14644:4;14518:131;:::i;:::-;14510:139;;14408:248;;;:::o;14662:419::-;14828:4;14866:2;14855:9;14851:18;14843:26;;14915:9;14909:4;14905:20;14901:1;14890:9;14886:17;14879:47;14943:131;15069:4;14943:131;:::i;:::-;14935:139;;14833:248;;;:::o;15087:419::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:131;15494:4;15368:131;:::i;:::-;15360:139;;15258:248;;;:::o;15512:419::-;15678:4;15716:2;15705:9;15701:18;15693:26;;15765:9;15759:4;15755:20;15751:1;15740:9;15736:17;15729:47;15793:131;15919:4;15793:131;:::i;:::-;15785:139;;15683:248;;;:::o;15937:419::-;16103:4;16141:2;16130:9;16126:18;16118:26;;16190:9;16184:4;16180:20;16176:1;16165:9;16161:17;16154:47;16218:131;16344:4;16218:131;:::i;:::-;16210:139;;16108:248;;;:::o;16362:419::-;16528:4;16566:2;16555:9;16551:18;16543:26;;16615:9;16609:4;16605:20;16601:1;16590:9;16586:17;16579:47;16643:131;16769:4;16643:131;:::i;:::-;16635:139;;16533:248;;;:::o;16787:419::-;16953:4;16991:2;16980:9;16976:18;16968:26;;17040:9;17034:4;17030:20;17026:1;17015:9;17011:17;17004:47;17068:131;17194:4;17068:131;:::i;:::-;17060:139;;16958:248;;;:::o;17212:419::-;17378:4;17416:2;17405:9;17401:18;17393:26;;17465:9;17459:4;17455:20;17451:1;17440:9;17436:17;17429:47;17493:131;17619:4;17493:131;:::i;:::-;17485:139;;17383:248;;;:::o;17637:222::-;17730:4;17768:2;17757:9;17753:18;17745:26;;17781:71;17849:1;17838:9;17834:17;17825:6;17781:71;:::i;:::-;17735:124;;;;:::o;17865:886::-;18126:4;18164:3;18153:9;18149:19;18141:27;;18178:71;18246:1;18235:9;18231:17;18222:6;18178:71;:::i;:::-;18259:72;18327:2;18316:9;18312:18;18303:6;18259:72;:::i;:::-;18341;18409:2;18398:9;18394:18;18385:6;18341:72;:::i;:::-;18423;18491:2;18480:9;18476:18;18467:6;18423:72;:::i;:::-;18505:73;18573:3;18562:9;18558:19;18549:6;18505:73;:::i;:::-;18588;18656:3;18645:9;18641:19;18632:6;18588:73;:::i;:::-;18671;18739:3;18728:9;18724:19;18715:6;18671:73;:::i;:::-;18131:620;;;;;;;;;;:::o;18757:324::-;18874:4;18912:2;18901:9;18897:18;18889:26;;18925:67;18989:1;18978:9;18974:17;18965:6;18925:67;:::i;:::-;19002:72;19070:2;19059:9;19055:18;19046:6;19002:72;:::i;:::-;18879:202;;;;;:::o;19168:99::-;19220:6;19254:5;19248:12;19238:22;;19227:40;;;:::o;19273:169::-;19357:11;19391:6;19386:3;19379:19;19431:4;19426:3;19422:14;19407:29;;19369:73;;;;:::o;19448:305::-;19488:3;19507:20;19525:1;19507:20;:::i;:::-;19502:25;;19541:20;19559:1;19541:20;:::i;:::-;19536:25;;19695:1;19627:66;19623:74;19620:1;19617:81;19614:2;;;19701:18;;:::i;:::-;19614:2;19745:1;19742;19738:9;19731:16;;19492:261;;;;:::o;19759:191::-;19799:4;19819:20;19837:1;19819:20;:::i;:::-;19814:25;;19853:20;19871:1;19853:20;:::i;:::-;19848:25;;19892:1;19889;19886:8;19883:2;;;19897:18;;:::i;:::-;19883:2;19942:1;19939;19935:9;19927:17;;19804:146;;;;:::o;19956:96::-;19993:7;20022:24;20040:5;20022:24;:::i;:::-;20011:35;;20001:51;;;:::o;20058:90::-;20092:7;20135:5;20128:13;20121:21;20110:32;;20100:48;;;:::o;20154:126::-;20191:7;20231:42;20224:5;20220:54;20209:65;;20199:81;;;:::o;20286:77::-;20323:7;20352:5;20341:16;;20331:32;;;:::o;20369:86::-;20404:7;20444:4;20437:5;20433:16;20422:27;;20412:43;;;:::o;20461:117::-;20517:9;20550:22;20566:5;20550:22;:::i;:::-;20537:35;;20527:51;;;:::o;20584:307::-;20652:1;20662:113;20676:6;20673:1;20670:13;20662:113;;;20761:1;20756:3;20752:11;20746:18;20742:1;20737:3;20733:11;20726:39;20698:2;20695:1;20691:10;20686:15;;20662:113;;;20793:6;20790:1;20787:13;20784:2;;;20873:1;20864:6;20859:3;20855:16;20848:27;20784:2;20633:258;;;;:::o;20897:180::-;20945:77;20942:1;20935:88;21042:4;21039:1;21032:15;21066:4;21063:1;21056:15;21206:117;21315:1;21312;21305:12;21329:102;21370:6;21421:2;21417:7;21412:2;21405:5;21401:14;21397:28;21387:38;;21377:54;;;:::o;21437:164::-;21577:16;21573:1;21565:6;21561:14;21554:40;21543:58;:::o;21607:225::-;21747:34;21743:1;21735:6;21731:14;21724:58;21816:8;21811:2;21803:6;21799:15;21792:33;21713:119;:::o;21838:177::-;21978:29;21974:1;21966:6;21962:14;21955:53;21944:71;:::o;22021:166::-;22161:18;22157:1;22149:6;22145:14;22138:42;22127:60;:::o;22193:165::-;22333:17;22329:1;22321:6;22317:14;22310:41;22299:59;:::o;22364:182::-;22504:34;22500:1;22492:6;22488:14;22481:58;22470:76;:::o;22552:164::-;22692:16;22688:1;22680:6;22676:14;22669:40;22658:58;:::o;22722:175::-;22862:27;22858:1;22850:6;22846:14;22839:51;22828:69;:::o;22903:225::-;23043:34;23039:1;23031:6;23027:14;23020:58;23112:8;23107:2;23099:6;23095:15;23088:33;23009:119;:::o;23134:165::-;23274:17;23270:1;23262:6;23258:14;23251:41;23240:59;:::o;23305:122::-;23378:24;23396:5;23378:24;:::i;:::-;23371:5;23368:35;23358:2;;23417:1;23414;23407:12;23358:2;23348:79;:::o;23433:116::-;23503:21;23518:5;23503:21;:::i;:::-;23496:5;23493:32;23483:2;;23539:1;23536;23529:12;23483:2;23473:76;:::o;23555:122::-;23628:24;23646:5;23628:24;:::i;:::-;23621:5;23618:35;23608:2;;23667:1;23664;23657:12;23608:2;23598:79;:::o;23683:118::-;23754:22;23770:5;23754:22;:::i;:::-;23747:5;23744:33;23734:2;;23791:1;23788;23781:12;23734:2;23724:77;:::o
Swarm Source
ipfs://4a6184c27ba8061a384cfebb16ba03a2e0204b26d1bf39f6aed3f0d0d47d9ccf
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.