[ Download CSV Export ]
OVERVIEW
BurgerSwap, a democratized AMM.
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
Dgas
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at BscScan.com on 2020-09-10 */ // Dependency file: contracts/interfaces/IERC20.sol // pragma solidity >=0.5.0; interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); } // Dependency file: contracts/libraries/SafeMath.sol // SPDX-License-Identifier: MIT // pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ 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; } } // Dependency file: contracts/modules/Upgradable.sol // pragma solidity >=0.5.16; contract UpgradableProduct { address public impl; event ImplChanged(address indexed _oldImpl, address indexed _newImpl); constructor() public { impl = msg.sender; } modifier requireImpl() { require(msg.sender == impl, 'FORBIDDEN'); _; } function upgradeImpl(address _newImpl) public requireImpl { require(_newImpl != address(0), 'INVALID_ADDRESS'); require(_newImpl != impl, 'NO_CHANGE'); address lastImpl = impl; impl = _newImpl; emit ImplChanged(lastImpl, _newImpl); } } contract UpgradableGovernance { address public governor; event GovernorChanged(address indexed _oldGovernor, address indexed _newGovernor); constructor() public { governor = msg.sender; } modifier requireGovernor() { require(msg.sender == governor, 'FORBIDDEN'); _; } function upgradeGovernance(address _newGovernor) public requireGovernor { require(_newGovernor != address(0), 'INVALID_ADDRESS'); require(_newGovernor != governor, 'NO_CHANGE'); address lastGovernor = governor; governor = _newGovernor; emit GovernorChanged(lastGovernor, _newGovernor); } } // Dependency file: contracts/interfaces/ERC2917-Interface.sol //SPDX-License-Identifier: MIT // pragma solidity >=0.6.6; // import '../interfaces/IERC20.sol'; interface IERC2917 is IERC20 { /// @dev This emit when interests amount per block is changed by the owner of the contract. /// It emits with the old interests amount and the new interests amount. event InterestRatePerBlockChanged (uint oldValue, uint newValue); /// @dev This emit when a users' productivity has changed /// It emits with the user's address and the the value after the change. event ProductivityIncreased (address indexed user, uint value); /// @dev This emit when a users' productivity has changed /// It emits with the user's address and the the value after the change. event ProductivityDecreased (address indexed user, uint value); /// @dev Return the current contract's interests rate per block. /// @return The amount of interests currently producing per each block. function interestsPerBlock() external view returns (uint); /// @notice Change the current contract's interests rate. /// @dev Note the best practice will be restrict the gross product provider's contract address to call this. /// @return The true/fase to notice that the value has successfully changed or not, when it succeed, it will emite the InterestRatePerBlockChanged event. function changeInterestRatePerBlock(uint value) external returns (bool); /// @notice It will get the productivity of given user. /// @dev it will return 0 if user has no productivity proved in the contract. /// @return user's productivity and overall productivity. function getProductivity(address user) external view returns (uint, uint); /// @notice increase a user's productivity. /// @dev Note the best practice will be restrict the callee to prove of productivity's contract address. /// @return true to confirm that the productivity added success. function increaseProductivity(address user, uint value) external returns (bool); /// @notice decrease a user's productivity. /// @dev Note the best practice will be restrict the callee to prove of productivity's contract address. /// @return true to confirm that the productivity removed success. function decreaseProductivity(address user, uint value) external returns (bool); /// @notice take() will return the interests that callee will get at current block height. /// @dev it will always calculated by block.number, so it will change when block height changes. /// @return amount of the interests that user are able to mint() at current block height. function take() external view returns (uint); /// @notice similar to take(), but with the block height joined to calculate return. /// @dev for instance, it returns (_amount, _block), which means at block height _block, the callee has accumulated _amount of interests. /// @return amount of interests and the block height. function takeWithBlock() external view returns (uint, uint); /// @notice mint the avaiable interests to callee. /// @dev once it mint, the amount of interests will transfer to callee's address. /// @return the amount of interests minted. function mint() external returns (uint); } // Dependency file: contracts/modules/ERC2917Impl.sol //SPDX-License-Identifier: MIT // pragma solidity >=0.6.6; // import '../interfaces/ERC2917-Interface.sol'; // import '../modules/Upgradable.sol'; // import '../libraries/SafeMath.sol'; /* The Objective of ERC2917 Demo is to implement a decentralized staking mechanism, which calculates users' share by accumulating productiviy * time. And calculates users revenue from anytime t0 to t1 by the formula below: user_accumulated_productivity(time1) - user_accumulated_productivity(time0) _____________________________________________________________________________ * (gross_product(t1) - gross_product(t0)) total_accumulated_productivity(time1) - total_accumulated_productivity(time0) */ contract ERC2917Impl is IERC2917, UpgradableProduct, UpgradableGovernance { using SafeMath for uint; uint public mintCumulation; uint public amountPerBlock; uint public nounce; function incNounce() public { nounce ++; } // implementation of ERC20 interfaces. string override public name; string override public symbol; uint8 override public decimals = 18; uint override public totalSupply; mapping(address => uint) override public balanceOf; mapping(address => mapping(address => uint)) override public allowance; function _transfer(address from, address to, uint value) internal virtual { require(balanceOf[from] >= value, 'ERC20Token: INSUFFICIENT_BALANCE'); balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); if (to == address(0)) { // burn totalSupply = totalSupply.sub(value); } emit Transfer(from, to, value); } function approve(address spender, uint value) external virtual override returns (bool) { allowance[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function transfer(address to, uint value) external virtual override returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint value) external virtual override returns (bool) { require(allowance[from][msg.sender] >= value, 'ERC20Token: INSUFFICIENT_ALLOWANCE'); allowance[from][msg.sender] = allowance[from][msg.sender].sub(value); _transfer(from, to, value); return true; } // end of implementation of ERC20 uint lastRewardBlock; uint totalProductivity; uint accAmountPerShare; struct UserInfo { uint amount; // How many LP tokens the user has provided. uint rewardDebt; // Reward debt. uint rewardEarn; // Reward earn and not minted } mapping(address => UserInfo) public users; // creation of the interests token. constructor(string memory _name, string memory _symbol, uint8 _decimals, uint _interestsRate) UpgradableProduct() UpgradableGovernance() public { name = _name; symbol = _symbol; decimals = _decimals; amountPerBlock = _interestsRate; } // External function call // This function adjust how many token will be produced by each block, eg: // changeAmountPerBlock(100) // will set the produce rate to 100/block. function changeInterestRatePerBlock(uint value) external virtual override requireGovernor returns (bool) { uint old = amountPerBlock; require(value != old, 'AMOUNT_PER_BLOCK_NO_CHANGE'); _update(); amountPerBlock = value; emit InterestRatePerBlockChanged(old, value); return true; } // Update reward variables of the given pool to be up-to-date. function _update() internal virtual { if (block.number <= lastRewardBlock) { return; } if (totalProductivity == 0) { lastRewardBlock = block.number; return; } uint256 reward = _currentReward(); balanceOf[address(this)] = balanceOf[address(this)].add(reward); totalSupply = totalSupply.add(reward); accAmountPerShare = accAmountPerShare.add(reward.mul(1e12).div(totalProductivity)); lastRewardBlock = block.number; } function _currentReward() internal virtual view returns (uint){ uint256 multiplier = block.number.sub(lastRewardBlock); return multiplier.mul(amountPerBlock); } // Audit user's reward to be up-to-date function _audit(address user) internal virtual { UserInfo storage userInfo = users[user]; if (userInfo.amount > 0) { uint pending = userInfo.amount.mul(accAmountPerShare).div(1e12).sub(userInfo.rewardDebt); userInfo.rewardEarn = userInfo.rewardEarn.add(pending); mintCumulation = mintCumulation.add(pending); userInfo.rewardDebt = userInfo.amount.mul(accAmountPerShare).div(1e12); } } // External function call // This function increase user's productivity and updates the global productivity. // the users' actual share percentage will calculated by: // Formula: user_productivity / global_productivity function increaseProductivity(address user, uint value) external virtual override requireImpl returns (bool) { require(value > 0, 'PRODUCTIVITY_VALUE_MUST_BE_GREATER_THAN_ZERO'); UserInfo storage userInfo = users[user]; _update(); _audit(user); totalProductivity = totalProductivity.add(value); userInfo.amount = userInfo.amount.add(value); userInfo.rewardDebt = userInfo.amount.mul(accAmountPerShare).div(1e12); emit ProductivityIncreased(user, value); return true; } // External function call // This function will decreases user's productivity by value, and updates the global productivity // it will record which block this is happenning and accumulates the area of (productivity * time) function decreaseProductivity(address user, uint value) external virtual override requireImpl returns (bool) { UserInfo storage userInfo = users[user]; require(value > 0 && userInfo.amount >= value, "INSUFFICIENT_PRODUCTIVITY"); _update(); _audit(user); userInfo.amount = userInfo.amount.sub(value); userInfo.rewardDebt = userInfo.amount.mul(accAmountPerShare).div(1e12); totalProductivity = totalProductivity.sub(value); emit ProductivityDecreased(user, value); return true; } function takeWithAddress(address user) public view returns (uint) { UserInfo storage userInfo = users[user]; uint _accAmountPerShare = accAmountPerShare; // uint256 lpSupply = totalProductivity; if (block.number > lastRewardBlock && totalProductivity != 0) { uint reward = _currentReward(); _accAmountPerShare = _accAmountPerShare.add(reward.mul(1e12).div(totalProductivity)); } return userInfo.amount.mul(_accAmountPerShare).div(1e12).sub(userInfo.rewardDebt).add(userInfo.rewardEarn); } function take() external override virtual view returns (uint) { return takeWithAddress(msg.sender); } // Returns how much a user could earn plus the giving block number. function takeWithBlock() external override virtual view returns (uint, uint) { uint earn = takeWithAddress(msg.sender); return (earn, block.number); } // External function call // When user calls this function, it will calculate how many token will mint to user from his productivity * time // Also it calculates global token supply from last time the user mint to this time. function mint() external override virtual returns (uint) { _update(); _audit(msg.sender); require(users[msg.sender].rewardEarn > 0, "NO_PRODUCTIVITY"); uint amount = users[msg.sender].rewardEarn; _transfer(address(this), msg.sender, users[msg.sender].rewardEarn); users[msg.sender].rewardEarn = 0; return amount; } // Returns how many productivity a user has and global has. function getProductivity(address user) external override virtual view returns (uint, uint) { return (users[user].amount, totalProductivity); } // Returns the current gorss product rate. function interestsPerBlock() external override virtual view returns (uint) { return accAmountPerShare; } } pragma solidity >=0.5.16; // import './modules/ERC2917Impl.sol'; contract Dgas is ERC2917Impl("Burger Swap", "BURGER", 18, 40 * (10 ** 18)) { }
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldGovernor","type":"address"},{"indexed":true,"internalType":"address","name":"_newGovernor","type":"address"}],"name":"GovernorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldImpl","type":"address"},{"indexed":true,"internalType":"address","name":"_newImpl","type":"address"}],"name":"ImplChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"InterestRatePerBlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ProductivityDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ProductivityIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeInterestRatePerBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"decreaseProductivity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getProductivity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"impl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incNounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"increaseProductivity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"interestsPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintCumulation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nounce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"take","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"takeWithAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeWithBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGovernor","type":"address"}],"name":"upgradeGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"}],"name":"upgradeImpl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"rewardEarn","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6007805460ff19166012908117909155600b60808181526a042757267657220537761760ac1b60a0908152610100604052600660c090815265212aa923a2a960d11b60e052600080546001600160a01b0319908116339081179092556001805490911690911790559193919268022b1c8c1227a0000091620000859160059190620000bd565b5082516200009b906006906020860190620000bd565b506007805460ff191660ff939093169290921790915560035550620001629050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010057805160ff191683800117855562000130565b8280016001018555821562000130579182015b828111156200013057825182559160200191906001019062000113565b506200013e92915062000142565b5090565b6200015f91905b808211156200013e576000815560010162000149565b90565b61159b80620001726000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80634afa66d6116100f95780638abf607711610097578063a9059cbb11610071578063a9059cbb146104cf578063bfc8b208146104fb578063cf67536514610503578063dd62ed3e1461050b576101a9565b80638abf60771461047b57806395d89b4114610483578063a87430ba1461048b576101a9565b8063616d2463116100d3578063616d24631461040a5780636622c8381461041257806370a08231146104385780637b381b351461045e576101a9565b80634afa66d6146103ce5780634c61f047146103fa5780635808b75b14610402576101a9565b806318160ddd1161016657806323b872dd1161014057806323b872dd1461032857806328e964e91461035e578063313ce5671461038457806336f04e45146103a2576101a9565b806318160ddd146102d25780631a2f1363146102da5780631fedded514610302576101a9565b806306fdde03146101ae578063095ea7b31461022b5780630c340a241461026b5780630e0b6eb51461028f5780631249c58b146102b0578063159090bd146102ca575b600080fd5b6101b6610539565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356105c7565b604080519115158252519081900360200190f35b61027361062e565b604080516001600160a01b039092168252519081900360200190f35b61029761063d565b6040805192835260208301919091528051918290030190f35b6102b8610654565b60408051918252519081900360200190f35b6102b86106f5565b6102b8610705565b610300600480360360208110156102f057600080fd5b50356001600160a01b031661070b565b005b6103006004803603602081101561031857600080fd5b50356001600160a01b0316610842565b6102576004803603606081101561033e57600080fd5b506001600160a01b0381358116916020810135909116906040013561097b565b6102976004803603602081101561037457600080fd5b50356001600160a01b0316610a4a565b61038c610a69565b6040805160ff9092168252519081900360200190f35b610257600480360360408110156103b857600080fd5b506001600160a01b038135169060200135610a72565b610257600480360360408110156103e457600080fd5b506001600160a01b038135169060200135610bc9565b6102b8610d36565b610300610d3c565b6102b8610d47565b6102b86004803603602081101561042857600080fd5b50356001600160a01b0316610d4d565b6102b86004803603602081101561044e57600080fd5b50356001600160a01b0316610e0d565b6102576004803603602081101561047457600080fd5b5035610e1f565b610273610f16565b6101b6610f25565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316610f80565b60408051938452602084019290925282820152519081900360600190f35b610257600480360360408110156104e557600080fd5b506001600160a01b038135169060200135610fa1565b6102b8610fb7565b6102b8610fbd565b6102b86004803603604081101561052157600080fd5b506001600160a01b0381358116916020013516610fc3565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b505050505081565b336000818152600a602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001546001600160a01b031681565b600080600061064b33610d4d565b93439350915050565b600061065e610fe0565b6106673361108b565b336000908152600e60205260409020600201546106bd576040805162461bcd60e51b815260206004820152600f60248201526e4e4f5f50524f44554354495649545960881b604482015290519081900360640190fd5b336000818152600e6020526040902060020154906106dd90309083611135565b336000908152600e6020526040812060020155905090565b600061070033610d4d565b905090565b60085481565b6000546001600160a01b03163314610756576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b0381166107a3576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6000546001600160a01b03828116911614156107f2576040805162461bcd60e51b81526020600482015260096024820152684e4f5f4348414e474560b81b604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917faad46b89531ed10d02d926f4d6bfe234a6126e3fffc02d3b07167575f9c143379190a35050565b6001546001600160a01b0316331461088d576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b0381166108da576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6001546001600160a01b0382811691161415610929576040805162461bcd60e51b81526020600482015260096024820152684e4f5f4348414e474560b81b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a35050565b6001600160a01b0383166000908152600a602090815260408083203384529091528120548211156109dd5760405162461bcd60e51b81526004018080602001828103825260228152602001806114f76022913960400191505060405180910390fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054610a11908363ffffffff61128716565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055610a40848484611135565b5060019392505050565b6001600160a01b03166000908152600e6020526040902054600c549091565b60075460ff1681565b600080546001600160a01b03163314610abe576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b60008211610afd5760405162461bcd60e51b815260040180806020018281038252602c81526020018061153a602c913960400191505060405180910390fd5b6001600160a01b0383166000908152600e60205260409020610b1d610fe0565b610b268461108b565b600c54610b39908463ffffffff6112d016565b600c558054610b4e908463ffffffff6112d016565b808255600d54610b7b9164e8d4a5100091610b6f919063ffffffff61132a16565b9063ffffffff61138316565b60018201556040805184815290516001600160a01b038616917f6c0a24b06ee7f1d9c3c6680c7328531c32bc59cd665436fc686f973cb8c01be7919081900360200190a25060019392505050565b600080546001600160a01b03163314610c15576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b6001600160a01b0383166000908152600e602052604090208215801590610c3d575080548311155b610c8e576040805162461bcd60e51b815260206004820152601960248201527f494e53554646494349454e545f50524f44554354495649545900000000000000604482015290519081900360640190fd5b610c96610fe0565b610c9f8461108b565b8054610cb1908463ffffffff61128716565b808255600d54610cd29164e8d4a5100091610b6f919063ffffffff61132a16565b6001820155600c54610cea908463ffffffff61128716565b600c556040805184815290516001600160a01b038616917fddb757202feefdd10c1666f1bb8f9744309ab811b6ef3ec0404a20c36e426697919081900360200190a25060019392505050565b60035481565b600480546001019055565b60045481565b6001600160a01b0381166000908152600e60205260408120600d54600b5443118015610d7a5750600c5415155b15610dbd576000610d896113c5565b9050610db9610dac600c54610b6f64e8d4a510008561132a90919063ffffffff16565b839063ffffffff6112d016565b9150505b610e058260020154610df98460010154610ded64e8d4a51000610b6f87896000015461132a90919063ffffffff16565b9063ffffffff61128716565b9063ffffffff6112d016565b949350505050565b60096020526000908152604090205481565b6001546000906001600160a01b03163314610e6d576040805162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b604482015290519081900360640190fd5b60035482811415610ec5576040805162461bcd60e51b815260206004820152601a60248201527f414d4f554e545f5045525f424c4f434b5f4e4f5f4348414e4745000000000000604482015290519081900360640190fd5b610ecd610fe0565b6003839055604080518281526020810185905281517fc44c80d7c6ac73ee13b2c62e50522dadb6c646b4509ca93e52a45abb38a78e33929181900390910190a150600192915050565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105bf5780601f10610594576101008083540402835291602001916105bf565b600e6020526000908152604090208054600182015460029092015490919083565b6000610fae338484611135565b50600192915050565b600d5490565b60025481565b600a60209081526000928352604080842090915290825290205481565b600b544311610fee57611089565b600c54610ffe5743600b55611089565b60006110086113c5565b3060009081526009602052604090205490915061102b908263ffffffff6112d016565b3060009081526009602052604090205560085461104e908263ffffffff6112d016565b600855600c546110809061107190610b6f8464e8d4a5100063ffffffff61132a16565b600d549063ffffffff6112d016565b600d555043600b555b565b6001600160a01b0381166000908152600e602052604090208054156111315760006110d68260010154610ded64e8d4a51000610b6f600d54876000015461132a90919063ffffffff16565b60028301549091506110ee908263ffffffff6112d016565b60028084019190915554611108908263ffffffff6112d016565b600255600d54825461112a9164e8d4a5100091610b6f9163ffffffff61132a16565b6001830155505b5050565b6001600160a01b0383166000908152600960205260409020548111156111a2576040805162461bcd60e51b815260206004820181905260248201527f4552433230546f6b656e3a20494e53554646494349454e545f42414c414e4345604482015290519081900360640190fd5b6001600160a01b0383166000908152600960205260409020546111cb908263ffffffff61128716565b6001600160a01b038085166000908152600960205260408082209390935590841681522054611200908263ffffffff6112d016565b6001600160a01b03831660008181526009602052604090209190915561123757600854611233908263ffffffff61128716565b6008555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006112c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113fa565b9392505050565b6000828201838110156112c9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261133957506000610628565b8282028284828161134657fe5b04146112c95760405162461bcd60e51b81526004018080602001828103825260218152602001806115196021913960400191505060405180910390fd5b60006112c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611491565b6000806113dd600b544361128790919063ffffffff16565b90506113f46003548261132a90919063ffffffff16565b91505090565b600081848411156114895760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561144e578181015183820152602001611436565b50505050905090810190601f16801561147b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836114e05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561144e578181015183820152602001611436565b5060008385816114ec57fe5b049594505050505056fe4552433230546f6b656e3a20494e53554646494349454e545f414c4c4f57414e4345536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750524f4455435449564954595f56414c55455f4d5553545f42455f475245415445525f5448414e5f5a45524fa2646970667358221220be438afe413958fc29f4bbb689e40ad200c774a93a9e6ab9a128db742981af3d64736f6c63430006060033
Deployed ByteCode Sourcemap
19940:82:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19940:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;12172:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12172:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12881:219;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12881:219:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;7041:23;;;:::i;:::-;;;;-1:-1:-1;;;;;7041:23:0;;;;;;;;;;;;;;18654:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19077:382;;;:::i;:::-;;;;;;;;;;;;;;;;18458:115;;;:::i;12284:32::-;;;:::i;6714:283::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6714:283:0;-1:-1:-1;;;;;6714:283:0;;:::i;:::-;;7342:337;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7342:337:0;-1:-1:-1;;;;;7342:337:0;;:::i;13272:341::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13272:341:0;;;;;;;;;;;;;;;;;:::i;19532:156::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19532:156:0;-1:-1:-1;;;;;19532:156:0;;:::i;12242:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16483:560;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;16483:560:0;;;;;;;;:::i;17290:575::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;17290:575:0;;;;;;;;:::i;12002:26::-;;;:::i;12064:56::-;;;:::i;12037:18::-;;;:::i;17877:573::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17877:573:0;-1:-1:-1;;;;;17877:573:0;;:::i;12325:50::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12325:50:0;-1:-1:-1;;;;;12325:50:0;;:::i;14537:345::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14537:345:0;;:::i;6441:19::-;;;:::i;12206:29::-;;;:::i;13953:41::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13953:41:0;-1:-1:-1;;;;;13953:41:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13108:156;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13108:156:0;;;;;;;;:::i;19744:118::-;;;:::i;11969:26::-;;;:::i;12382:70::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12382:70:0;;;;;;;;;;:::i;12172:27::-;;;;;;;;;;;;;;;-1:-1:-1;;12172:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12881:219::-;12990:10;12963:4;12980:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12980:30:0;;;;;;;;;;;:38;;;13034:36;;;;;;;12963:4;;12980:30;;12990:10;;13034:36;;;;;;;;-1:-1:-1;13088:4:0;12881:219;;;;;:::o;7041:23::-;;;-1:-1:-1;;;;;7041:23:0;;:::o;18654:173::-;18719:4;18725;18742:9;18754:27;18770:10;18754:15;:27::i;:::-;18742:39;18806:12;;-1:-1:-1;18654:173:0;-1:-1:-1;;18654:173:0:o;19077:382::-;19128:4;19145:9;:7;:9::i;:::-;19165:18;19172:10;19165:6;:18::i;:::-;19208:10;19233:1;19202:17;;;:5;:17;;;;;:28;;;19194:60;;;;;-1:-1:-1;;;19194:60:0;;;;;;;;;;;;-1:-1:-1;;;19194:60:0;;;;;;;;;;;;;;;19285:10;19265:11;19279:17;;;:5;:17;;;;;:28;;;;19318:66;;19336:4;;19279:28;19318:9;:66::i;:::-;19401:10;19426:1;19395:17;;;:5;:17;;;;;:28;;:32;19445:6;-1:-1:-1;19077:382:0;:::o;18458:115::-;18514:4;18538:27;18554:10;18538:15;:27::i;:::-;18531:34;;18458:115;:::o;12284:32::-;;;;:::o;6714:283::-;6668:4;;-1:-1:-1;;;;;6668:4:0;6654:10;:18;6646:40;;;;;-1:-1:-1;;;6646:40:0;;;;;;;;;;;;-1:-1:-1;;;6646:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6791:22:0;::::1;6783:50;;;::::0;;-1:-1:-1;;;6783:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6783:50:0;;;;;;;;;;;;;::::1;;6864:4;::::0;-1:-1:-1;;;;;6852:16:0;;::::1;6864:4:::0;::::1;6852:16;;6844:38;;;::::0;;-1:-1:-1;;;6844:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;6844:38:0;;;;;;;;;;;;;::::1;;6893:16;6912:4:::0;;-1:-1:-1;;;;;6927:15:0;;::::1;-1:-1:-1::0;;;;;;6927:15:0;::::1;::::0;::::1;::::0;;6958:31:::1;::::0;6912:4;;;::::1;::::0;;;6958:31:::1;::::0;6893:16;6958:31:::1;6697:1;6714:283:::0;:::o;7342:337::-;7292:8;;-1:-1:-1;;;;;7292:8:0;7278:10;:22;7270:44;;;;;-1:-1:-1;;;7270:44:0;;;;;;;;;;;;-1:-1:-1;;;7270:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7433:26:0;::::1;7425:54;;;::::0;;-1:-1:-1;;;7425:54:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;7425:54:0;;;;;;;;;;;;;::::1;;7514:8;::::0;-1:-1:-1;;;;;7498:24:0;;::::1;7514:8:::0;::::1;7498:24;;7490:46;;;::::0;;-1:-1:-1;;;7490:46:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;7490:46:0;;;;;;;;;;;;;::::1;;7570:8;::::0;;-1:-1:-1;;;;;7589:23:0;;::::1;-1:-1:-1::0;;;;;;7589:23:0;::::1;::::0;::::1;::::0;;;7628:43:::1;::::0;7570:8;::::1;::::0;7589:23;7570:8;;7628:43:::1;::::0;7547:20:::1;::::0;7628:43:::1;7325:1;7342:337:::0;:::o;13272:341::-;-1:-1:-1;;;;;13392:15:0;;13367:4;13392:15;;;:9;:15;;;;;;;;13408:10;13392:27;;;;;;;;:36;-1:-1:-1;13392:36:0;13384:83;;;;-1:-1:-1;;;13384:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13508:15:0;;;;;;:9;:15;;;;;;;;13524:10;13508:27;;;;;;;;:38;;13540:5;13508:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;13478:15:0;;;;;;:9;:15;;;;;;;;13494:10;13478:27;;;;;;;:68;13557:26;13488:4;13573:2;13577:5;13557:9;:26::i;:::-;-1:-1:-1;13601:4:0;13272:341;;;;;:::o;19532:156::-;-1:-1:-1;;;;;19642:11:0;19611:4;19642:11;;;:5;:11;;;;;:18;19662:17;;19642:18;;19532:156::o;12242:35::-;;;;;;:::o;16483:560::-;16586:4;6668;;-1:-1:-1;;;;;6668:4:0;6654:10;:18;6646:40;;;;;-1:-1:-1;;;6646:40:0;;;;;;;;;;;;-1:-1:-1;;;6646:40:0;;;;;;;;;;;;;;;16619:1:::1;16611:5;:9;16603:66;;;;-1:-1:-1::0;;;16603:66:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16710:11:0;::::1;16682:25;16710:11:::0;;;:5:::1;:11;::::0;;;;16732:9:::1;:7;:9::i;:::-;16752:12;16759:4;16752:6;:12::i;:::-;16797:17;::::0;:28:::1;::::0;16819:5;16797:28:::1;:21;:28;:::i;:::-;16777:17;:48:::0;16856:15;;:26:::1;::::0;16876:5;16856:26:::1;:19;:26;:::i;:::-;16838:44:::0;;;16935:17:::1;::::0;16915:48:::1;::::0;16958:4:::1;::::0;16915:38:::1;::::0;16838:44;16915:38:::1;:19;:38;:::i;:::-;:42:::0;:48:::1;:42;:48;:::i;:::-;16893:19;::::0;::::1;:70:::0;16979:34:::1;::::0;;;;;;;-1:-1:-1;;;;;16979:34:0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;-1:-1:-1::0;17031:4:0::1;::::0;16483:560;-1:-1:-1;;;16483:560:0:o;17290:575::-;17393:4;6668;;-1:-1:-1;;;;;6668:4:0;6654:10;:18;6646:40;;;;;-1:-1:-1;;;6646:40:0;;;;;;;;;;;;-1:-1:-1;;;6646:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17438:11:0;::::1;17410:25;17438:11:::0;;;:5:::1;:11;::::0;;;;17468:9;;;;;:37:::1;;-1:-1:-1::0;17481:15:0;;:24;-1:-1:-1;17481:24:0::1;17468:37;17460:75;;;::::0;;-1:-1:-1;;;17460:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17546:9;:7;:9::i;:::-;17566:12;17573:4;17566:6;:12::i;:::-;17617:15:::0;;:26:::1;::::0;17637:5;17617:26:::1;:19;:26;:::i;:::-;17599:44:::0;;;17696:17:::1;::::0;17676:48:::1;::::0;17719:4:::1;::::0;17676:38:::1;::::0;17599:44;17676:38:::1;:19;:38;:::i;:48::-;17654:19;::::0;::::1;:70:::0;17755:17:::1;::::0;:28:::1;::::0;17777:5;17755:28:::1;:21;:28;:::i;:::-;17735:17;:48:::0;17801:34:::1;::::0;;;;;;;-1:-1:-1;;;;;17801:34:0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;-1:-1:-1::0;17853:4:0::1;::::0;17290:575;-1:-1:-1;;;17290:575:0:o;12002:26::-;;;;:::o;12064:56::-;12103:6;:9;;;;;;12064:56::o;12037:18::-;;;;:::o;17877:573::-;-1:-1:-1;;;;;17982:11:0;;17937:4;17982:11;;;:5;:11;;;;;18030:17;;18127:15;;18112:12;:30;:56;;;;-1:-1:-1;18146:17:0;;:22;;18112:56;18108:218;;;18185:11;18199:16;:14;:16::i;:::-;18185:30;;18251:63;18274:39;18295:17;;18274:16;18285:4;18274:6;:10;;:16;;;;:::i;:39::-;18251:18;;:63;:22;:63;:::i;:::-;18230:84;;18108:218;;18343:99;18422:8;:19;;;18343:74;18397:8;:19;;;18343:49;18387:4;18343:39;18363:18;18343:8;:15;;;:19;;:39;;;;:::i;:49::-;:53;:74;:53;:74;:::i;:::-;:78;:99;:78;:99;:::i;:::-;18336:106;17877:573;-1:-1:-1;;;;17877:573:0:o;12325:50::-;;;;;;;;;;;;;:::o;14537:345::-;7292:8;;14636:4;;-1:-1:-1;;;;;7292:8:0;7278:10;:22;7270:44;;;;;-1:-1:-1;;;7270:44:0;;;;;;;;;;;;-1:-1:-1;;;7270:44:0;;;;;;;;;;;;;;;14664:14:::1;::::0;14697:12;;::::1;;14689:51;;;::::0;;-1:-1:-1;;;14689:51:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14753:9;:7;:9::i;:::-;14773:14;:22:::0;;;14813:39:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;14870:4:0::1;::::0;14537:345;-1:-1:-1;;14537:345:0:o;6441:19::-;;;-1:-1:-1;;;;;6441:19:0;;:::o;12206:29::-;;;;;;;;;;;;;;;-1:-1:-1;;12206:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13953:41;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13108:156::-;13185:4;13202:32;13212:10;13224:2;13228:5;13202:9;:32::i;:::-;-1:-1:-1;13252:4:0;13108:156;;;;:::o;19744:118::-;19837:17;;19744:118;:::o;11969:26::-;;;;:::o;12382:70::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14958:554::-;15025:15;;15009:12;:31;15005:70;;15057:7;;15005:70;15091:17;;15087:106;;15148:12;15130:15;:30;15175:7;;15087:106;15213:14;15230:16;:14;:16::i;:::-;15302:4;15284:24;;;;:9;:24;;;;;;15213:33;;-1:-1:-1;15284:36:0;;15213:33;15284:36;:28;:36;:::i;:::-;15275:4;15257:24;;;;:9;:24;;;;;:63;15345:11;;:23;;15361:6;15345:23;:15;:23;:::i;:::-;15331:11;:37;15444:17;;15401:62;;15423:39;;:16;:6;15434:4;15423:16;:10;:16;:::i;:39::-;15401:17;;;:62;:21;:62;:::i;:::-;15381:17;:82;-1:-1:-1;15492:12:0;15474:15;:30;14958:554;:::o;15764:468::-;-1:-1:-1;;;;;15850:11:0;;15822:25;15850:11;;;:5;:11;;;;;15876:15;;:19;15872:353;;15912:12;15927:73;15980:8;:19;;;15927:48;15970:4;15927:38;15947:17;;15927:8;:15;;;:19;;:38;;;;:::i;:73::-;16037:19;;;;15912:88;;-1:-1:-1;16037:32:0;;15912:88;16037:32;:23;:32;:::i;:::-;16015:19;;;;:54;;;;16101:14;:27;;16120:7;16101:27;:18;:27;:::i;:::-;16084:14;:44;16185:17;;16165:15;;:48;;16208:4;;16165:38;;;:19;:38;:::i;:48::-;16143:19;;;:70;-1:-1:-1;15872:353:0;15764:468;;:::o;12461:412::-;-1:-1:-1;;;;;12554:15:0;;;;;;:9;:15;;;;;;:24;-1:-1:-1;12554:24:0;12546:69;;;;;-1:-1:-1;;;12546:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12644:15:0;;;;;;:9;:15;;;;;;:26;;12664:5;12644:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;12626:15:0;;;;;;;:9;:15;;;;;;:44;;;;12697:13;;;;;;;:24;;12715:5;12697:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;12681:13:0;;;;;;:9;:13;;;;;:40;;;;12732:93;;12791:11;;:22;;12807:5;12791:22;:15;:22;:::i;:::-;12777:11;:36;12732:93;12855:2;-1:-1:-1;;;;;12840:25:0;12849:4;-1:-1:-1;;;;;12840:25:0;;12859:5;12840:25;;;;;;;;;;;;;;;;;;12461:412;;;:::o;2325:136::-;2383:7;2410:43;2414:1;2417;2410:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2403:50;2325:136;-1:-1:-1;;;2325:136:0:o;1861:181::-;1919:7;1951:5;;;1975:6;;;;1967:46;;;;;-1:-1:-1;;;1967:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3215:471;3273:7;3518:6;3514:47;;-1:-1:-1;3548:1:0;3541:8;;3514:47;3585:5;;;3589:1;3585;:5;:1;3609:5;;;;;:10;3601:56;;;;-1:-1:-1;;;3601:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4162:132;4220:7;4247:39;4251:1;4254;4247:39;;;;;;;;;;;;;;;;;:3;:39::i;15524:183::-;15581:4;15597:18;15618:33;15635:15;;15618:12;:16;;:33;;;;:::i;:::-;15597:54;;15669:30;15684:14;;15669:10;:14;;:30;;;;:::i;:::-;15662:37;;;15524:183;:::o;2764:192::-;2850:7;2886:12;2878:6;;;;2870:29;;;;-1:-1:-1;;;2870:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2870:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2922:5:0;;;2764:192::o;4790:278::-;4876:7;4911:12;4904:5;4896:28;;;;-1:-1:-1;;;4896:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;4896:28:0;;4935:9;4951:1;4947;:5;;;;;;;4790:278;-1:-1:-1;;;;;4790:278:0:o
Swarm Source
ipfs://be438afe413958fc29f4bbb689e40ad200c774a93a9e6ab9a128db742981af3d
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.