More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 251 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Eth Reward | 18377406 | 325 days ago | IN | 0 ETH | 0.00047895 | ||||
Shiba Reward | 18377403 | 325 days ago | IN | 0 ETH | 0.00045133 | ||||
Eth Rescue Token | 16642128 | 569 days ago | IN | 0 ETH | 0.00324183 | ||||
Approve | 16569760 | 579 days ago | IN | 0 ETH | 0.00092772 | ||||
Eth Rescue Token | 16561944 | 580 days ago | IN | 0 ETH | 0.00084419 | ||||
Eth Rescue Token | 16561936 | 580 days ago | IN | 0 ETH | 0.00123585 | ||||
Shiba Rescue Tok... | 16561914 | 580 days ago | IN | 0 ETH | 0.00082626 | ||||
Shiba Rescue Tok... | 16561896 | 580 days ago | IN | 0 ETH | 0.00082159 | ||||
Shiba Rescue Tok... | 16561883 | 580 days ago | IN | 0 ETH | 0.00108999 | ||||
Eth Reward | 16559770 | 581 days ago | IN | 0 ETH | 0.00214282 | ||||
Approve | 16538774 | 584 days ago | IN | 0 ETH | 0.00097916 | ||||
Approve | 16538467 | 584 days ago | IN | 0 ETH | 0.00115995 | ||||
Approve | 16538083 | 584 days ago | IN | 0 ETH | 0.00089081 | ||||
Approve | 16537738 | 584 days ago | IN | 0 ETH | 0.00142374 | ||||
Approve | 16537731 | 584 days ago | IN | 0 ETH | 0.00140198 | ||||
Approve | 16537723 | 584 days ago | IN | 0 ETH | 0.00159868 | ||||
Approve | 16537712 | 584 days ago | IN | 0 ETH | 0.00184477 | ||||
Shiba Reward | 16537603 | 584 days ago | IN | 0 ETH | 0.00135512 | ||||
Eth Reward | 16537597 | 584 days ago | IN | 0 ETH | 0.00151477 | ||||
Approve | 16536824 | 584 days ago | IN | 0 ETH | 0.00283551 | ||||
Approve | 16536795 | 584 days ago | IN | 0 ETH | 0.00326389 | ||||
Approve | 16536750 | 584 days ago | IN | 0 ETH | 0.00279762 | ||||
Approve | 16536750 | 584 days ago | IN | 0 ETH | 0.00279762 | ||||
Approve | 16536669 | 584 days ago | IN | 0 ETH | 0.0021815 | ||||
Approve | 16535926 | 584 days ago | IN | 0 ETH | 0.00140657 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16569763 | 579 days ago | 0.00029666 ETH | ||||
16569763 | 579 days ago | 0.00029666 ETH | ||||
16569763 | 579 days ago | 0.00029666 ETH | ||||
16569763 | 579 days ago | 0.00088998 ETH | ||||
16560108 | 581 days ago | 0.00142054 ETH | ||||
16560108 | 581 days ago | 0.00142054 ETH | ||||
16560108 | 581 days ago | 0.00142054 ETH | ||||
16560108 | 581 days ago | 0.00426163 ETH | ||||
16538651 | 584 days ago | 0.00122134 ETH | ||||
16538651 | 584 days ago | 0.00122134 ETH | ||||
16538651 | 584 days ago | 0.00122134 ETH | ||||
16538651 | 584 days ago | 0.00366402 ETH | ||||
16538568 | 584 days ago | 0.00593029 ETH | ||||
16538568 | 584 days ago | 0.00593029 ETH | ||||
16538568 | 584 days ago | 0.00593029 ETH | ||||
16538568 | 584 days ago | 0.01779088 ETH | ||||
16538108 | 584 days ago | 0.00086198 ETH | ||||
16538108 | 584 days ago | 0.00086198 ETH | ||||
16538108 | 584 days ago | 0.00086198 ETH | ||||
16538108 | 584 days ago | 0.00258595 ETH | ||||
16537896 | 584 days ago | 0.00345298 ETH | ||||
16537896 | 584 days ago | 0.00345298 ETH | ||||
16537896 | 584 days ago | 0.00345298 ETH | ||||
16537896 | 584 days ago | 0.01035894 ETH | ||||
16537744 | 584 days ago | 0.00280414 ETH |
Loading...
Loading
Contract Name:
SHIBETH
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-01 */ // SPDX-License-Identifier: MIT /* Website: https://shibeth.com Twitter: https://twitter.com/Shibeth_ERC Telegram: https://t.me/ShibethEntry */ pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } 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) { 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; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface WrappedETH { function deposit() external payable; } interface IDEXRouter{ 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 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; } interface IDEXFactory{ event PairCreated(address indexed token0, address indexed token1, address pair, uint); function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renouncedOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function claimReward(address shareHolder) external; function getUnpaidEarning(address shareholder) external view returns (uint256); } contract BTCDividend is IDividendDistributor { //SHIBA using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; uint256 reserved; } mapping (address => Share) public shares; IERC20 RewardToken = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); // SHIBA CA IDEXRouter router; uint256 public totalShares; uint256 public totalDividends; uint256 private totalDistributed; uint256 public dividendsPerShare; uint256 public totalReserved; uint256 public dividendsPerShareAccuracyFactor = 10 ** 16; modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(RewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = calEarning(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); shares[shareholder].reserved += amount; totalReserved += amount; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function getUnpaidEarning(address shareholder) public override view returns (uint256) { uint calReward = calEarning(shareholder); uint reservedReward = shares[shareholder].reserved; return calReward.add(reservedReward); } function rescueToken(address tokenAddress,address _receiver, uint256 tokens) external onlyToken { IERC20(tokenAddress).transfer(_receiver, tokens); } function rescueFunds(address _receiver) external onlyToken { payable(_receiver).transfer(address(this).balance); } function claimDividend() external { address user = msg.sender; transferShares(user); } function claimReward(address shareHolder) external override onlyToken { transferShares(shareHolder); } function transferShares(address user) internal { distributeDividend(user); uint subtotal = shares[user].reserved; if(subtotal > 0) { shares[user].reserved = 0; totalReserved = totalReserved.sub(subtotal); RewardToken.transfer(user, subtotal); } } function calEarning(address shareholder) internal view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } } contract ETHDividend is IDividendDistributor { //ETH using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; uint256 reserved; } mapping (address => Share) public shares; IERC20 RewardToken = IERC20(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); // WETH CA IDEXRouter router; uint256 public totalShares; uint256 public totalDividends; uint256 private totalDistributed; uint256 public dividendsPerShare; uint256 public totalReserved; uint256 public dividendsPerShareAccuracyFactor = 10 ** 26; modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); WrappedETH(address(RewardToken)).deposit{value: msg.value}(); uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = calEarning(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); shares[shareholder].reserved += amount; totalReserved += amount; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function getUnpaidEarning(address shareholder) public override view returns (uint256) { uint calReward = calEarning(shareholder); uint reservedReward = shares[shareholder].reserved; return calReward.add(reservedReward); } function rescueToken(address tokenAddress,address _receiver, uint256 tokens) external onlyToken { IERC20(tokenAddress).transfer(_receiver, tokens); } function rescueFunds(address _receiver) external onlyToken { payable(_receiver).transfer(address(this).balance); } function claimDividend() external { address user = msg.sender; transferShares(user); } function claimReward(address shareHolder) external override onlyToken { transferShares(shareHolder); } function transferShares(address user) internal { distributeDividend(user); uint subtotal = shares[user].reserved; if(subtotal > 0) { shares[user].reserved = 0; totalReserved = totalReserved.sub(subtotal); RewardToken.transfer(user, subtotal); } } function calEarning(address shareholder) internal view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } } contract SHIBETH is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Shibeth"; string private _symbol = "SHIBETH"; uint8 private _decimals = 18; uint256 public buyMarketingFee = 200; uint256 public buyShibaFee = 10; uint256 public buyWETHFee = 10; uint256 public sellMarketingFee = 200; uint256 public sellShibaFee = 10; uint256 public sellWETHFee = 10; uint256 public totalBuy; uint256 public totalSell; uint256 public feeDenominator = 1000; address public _marketingWalletAddress = 0x2bA81B44b388Ea1282072C17104A0b5A5e6241bD; address private constant deadWallet = 0x000000000000000000000000000000000000dEaD; address private constant ZeroWallet = 0x0000000000000000000000000000000000000000; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public automatedMarketMakerPairs; mapping(address => bool) public isBTCDivExempt; mapping(address => bool) public isETHDivExempt; mapping(address => bool) public blacklist; uint256 public _totalSupply = 1000000 * (10 ** _decimals); uint256 public swapTokensAtAmount = _totalSupply.mul(5).div(1e5); //0.05% uint256 public swapProtection = _totalSupply.mul(1).div(100); uint256 public MaxWalletLimit = _totalSupply.mul(20).div(feeDenominator); //2% uint256 public MaxTxLimit = _totalSupply.mul(20).div(feeDenominator); //2% bool public EnableTransactionLimit = true; bool public checkWalletLimit = true; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; bool public _autoSwapBack = true; bool public ActiveTrading = false; BTCDividend public shibadividend; ETHDividend public ethdividend; address public rewardController; IDEXRouter public router; bool inSwap = false; modifier validRecipient(address to) { require(to != address(0x0)); _; } modifier onlyRewardController { require(msg.sender == rewardController); _; } modifier swapping() { inSwap = true; _; inSwap = false; } constructor() { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address pair = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = ~uint256(0); shibadividend = new BTCDividend(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); ethdividend = new ETHDividend(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); rewardController = msg.sender; automatedMarketMakerPairs[pair] = true; isETHDivExempt[msg.sender] = true; isETHDivExempt[pair] = true; isETHDivExempt[address(this)] = true; isETHDivExempt[deadWallet] = true; isETHDivExempt[ZeroWallet] = true; isBTCDivExempt[msg.sender] = true; isBTCDivExempt[pair] = true; isBTCDivExempt[address(this)] = true; isBTCDivExempt[deadWallet] = true; isBTCDivExempt[ZeroWallet] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[pair] = true; isWalletLimitExempt[address(this)] = true; _isExcludedFromFees[msg.sender] = true; _isExcludedFromFees[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; totalBuy = buyMarketingFee.add(buyShibaFee).add(buyWETHFee); totalSell = sellMarketingFee.add(sellShibaFee).add(sellWETHFee); _balances[msg.sender] = _totalSupply; emit Transfer(address(0x0), msg.sender, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner_, address spender) external view override returns (uint256) { return _allowances[owner_][spender]; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(_balances[deadWallet]).sub(_balances[ZeroWallet]); } function isNotInSwap() external view returns (bool) { return !inSwap; } function checkFeeExempt(address _addr) external view returns (bool) { return _isExcludedFromFees[_addr]; } function approve(address spender, uint256 value) external override returns (bool) { _approve(msg.sender,spender,value); return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 to, uint256 value) external override validRecipient(to) returns (bool) { _transferFrom(msg.sender, to, value); return true; } function transferFrom( address from, address to, uint256 value ) external override validRecipient(to) returns (bool) { if (_allowances[from][msg.sender] != ~uint256(0)) { _allowances[from][msg.sender] = _allowances[from][ msg.sender ].sub(value, "Insufficient Allowance"); } _transferFrom(from, to, value); return true; } function _basicTransfer( address from, address to, uint256 amount ) internal returns (bool) { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(!blacklist[sender] && !blacklist[recipient], "in_blacklist"); if(!ActiveTrading) { require(_isExcludedFromFees[sender] || _isExcludedFromFees[recipient],"Error: Trading Paused!"); } if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= MaxTxLimit, "Transfer amount exceeds the maxTxAmount."); } if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (shouldSwapBack()) { swapBack(); } _balances[sender] = _balances[sender].sub(amount); uint256 AmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(AmountReceived) <= MaxWalletLimit); } _balances[recipient] = _balances[recipient].add(AmountReceived); if(!isBTCDivExempt[sender]){ try shibadividend.setShare(sender, balanceOf(sender)) {} catch {} } if(!isBTCDivExempt[recipient]){ try shibadividend.setShare(recipient, balanceOf(recipient)) {} catch {} } if(!isETHDivExempt[sender]){ try ethdividend.setShare(sender, balanceOf(sender)) {} catch {} } if(!isETHDivExempt[recipient]){ try ethdividend.setShare(recipient, balanceOf(recipient)) {} catch {} } emit Transfer(sender,recipient,AmountReceived); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount; if(automatedMarketMakerPairs[sender]){ feeAmount = amount.mul(totalBuy).div(feeDenominator); } else if(automatedMarketMakerPairs[recipient]){ feeAmount = amount.mul(totalSell).div(feeDenominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function swapBack() internal swapping { uint256 contractBalance = balanceOf(address(this)); uint totalShares = totalBuy.add(totalSell); if(totalShares == 0) return; if(contractBalance > swapProtection) { contractBalance = swapProtection; } uint _mshares = buyMarketingFee.add(sellMarketingFee); uint _btcshares = buyShibaFee.add(sellShibaFee); // uint _ethshares = buyWETHFee.add(sellWETHFee); uint initalBalance = address(this).balance; swapTokensForEth(contractBalance); uint recievedBalance = address(this).balance.sub(initalBalance); uint MarketingShares = recievedBalance.mul(_mshares).div(totalShares); uint BTCdividendShares = recievedBalance.mul(_btcshares).div(totalShares); uint ETHDividendShares = recievedBalance.sub(MarketingShares).sub(BTCdividendShares); if(MarketingShares > 0) { payable(_marketingWalletAddress).transfer(MarketingShares); } if(BTCdividendShares > 0) { try shibadividend.deposit { value: BTCdividendShares } () {} catch {} } if(ETHDividendShares > 0) { try ethdividend.deposit { value: ETHDividendShares } () {} catch {} } } function shouldTakeFee(address from, address to) internal view returns (bool) { if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ return false; } else{ return (automatedMarketMakerPairs[from] || automatedMarketMakerPairs[to]); } } function shouldSwapBack() internal view returns (bool) { uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; return canSwap && _autoSwapBack && !inSwap && !automatedMarketMakerPairs[msg.sender]; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 oldValue = _allowances[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowances[msg.sender][spender] = 0; } else { _allowances[msg.sender][spender] = oldValue.sub( subtractedValue ); } emit Approval( msg.sender, spender, _allowances[msg.sender][spender] ); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _allowances[msg.sender][spender] = _allowances[msg.sender][ spender ].add(addedValue); emit Approval( msg.sender, spender, _allowances[msg.sender][spender] ); return true; } function manualSwap() external onlyOwner { if(inSwap) { revert("Already in Swap"); } swapBack(); } function enableDisableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function enableDisableWalletLimit(bool _status) external onlyOwner { checkWalletLimit = _status; } function enableTrading(bool _status) external onlyOwner { ActiveTrading = _status; } function setAutoSwapBack(bool _flag) external onlyOwner { _autoSwapBack = _flag; } function setFeeReceivers(address _marketing) external onlyRewardController { _marketingWalletAddress = _marketing; } function setMaxWalletLimit(uint _value) external onlyOwner { MaxWalletLimit = _value; } function setMaxTxLimit(uint _value) external onlyOwner { MaxTxLimit = _value; } function setBuyFee( uint _newMarketing, uint _newShiba, uint _newWETH ) external onlyOwner { buyMarketingFee = _newMarketing; buyShibaFee = _newShiba; buyWETHFee = _newWETH; totalBuy = buyMarketingFee.add(buyShibaFee).add(buyWETHFee); } function setSellFee( uint _newMarketing, uint _newShiba, uint _newWETH ) external onlyOwner { sellMarketingFee = _newMarketing; sellShibaFee = _newShiba; sellWETHFee = _newWETH; totalSell = sellMarketingFee.add(sellShibaFee).add(sellWETHFee); } function setAutomaticPairMarket(address _addr,bool _status) external onlyOwner { if(_status) { require(!automatedMarketMakerPairs[_addr],"Pair Already Set!!"); } automatedMarketMakerPairs[_addr] = _status; isWalletLimitExempt[_addr] = true; isETHDivExempt[_addr] = true; isBTCDivExempt[_addr] = true; } function excludeShibaDividend(address _addr,bool _status) external onlyOwner { if(_status) { shibadividend.setShare(_addr,0); } else { shibadividend.setShare(_addr,balanceOf(_addr)); } isBTCDivExempt[_addr] = _status; } function excludeEthDividend(address _addr,bool _status) external onlyOwner { if(_status) { ethdividend.setShare(_addr,0); } else { ethdividend.setShare(_addr,balanceOf(_addr)); } isETHDivExempt[_addr] = _status; } function enableFee(address _addr,bool _status) external onlyOwner { _isExcludedFromFees[_addr] = _status; } function enableTxLimit(address _addr,bool _status) external onlyOwner { isTxLimitExempt[_addr] = _status; } function enableWalletLimit(address _addr,bool _status) external onlyOwner { isWalletLimitExempt[_addr] = _status; } function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner { blacklist[_botAddress] = _flag; } function setMinSwapAmount(uint _value) external onlyOwner { swapTokensAtAmount = _value; } function setSwapProtection(uint _value) external onlyOwner { swapProtection = _value; } //claimers function shibaReward() external { shibadividend.claimReward(msg.sender); } function ethReward() external { ethdividend.claimReward(msg.sender); } //Rescuers function getShibaRewardInfo(address _receiver) external view returns (uint) { return shibadividend.getUnpaidEarning(_receiver); } function getETHRewardInfo(address _receiver) external view returns (uint) { return ethdividend.getUnpaidEarning(_receiver); } function shibaRescueToken(address tokenAddress,address _receiver, uint256 tokens) external onlyRewardController { shibadividend.rescueToken(tokenAddress,_receiver,tokens); } function shibaRescueFunds(address _receiver) external onlyRewardController { shibadividend.rescueFunds(_receiver); } function ethRescueToken(address tokenAddress,address _receiver, uint256 tokens) external onlyRewardController { ethdividend.rescueToken(tokenAddress,_receiver,tokens); } function ethRescueFunds(address _receiver) external onlyRewardController { ethdividend.rescueFunds(_receiver); } function rescueFunds() external onlyRewardController { payable(msg.sender).transfer(address(this).balance); } function rescueToken(address _token, uint _value) external onlyRewardController { IERC20(_token).transfer(msg.sender,_value); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } receive() external payable {} }
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":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"},{"inputs":[],"name":"ActiveTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoSwapBack","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyShibaFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyWETHFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableDisableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"ethRescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ethRescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethdividend","outputs":[{"internalType":"contract ETHDividend","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeEthDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeShibaDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"getETHRewardInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"getShibaRewardInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBTCDivExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isETHDivExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellShibaFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellWETHFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAutomaticPairMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMarketing","type":"uint256"},{"internalType":"uint256","name":"_newShiba","type":"uint256"},{"internalType":"uint256","name":"_newWETH","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMinSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMarketing","type":"uint256"},{"internalType":"uint256","name":"_newShiba","type":"uint256"},{"internalType":"uint256","name":"_newWETH","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setSwapProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"shibaRescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"shibaRescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shibaReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shibadividend","outputs":[{"internalType":"contract BTCDividend","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapProtection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"totalBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSell","outputs":[{"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260076080819052660a6d0d2c4cae8d60cb1b60a09081526200002a91600191906200088d565b50604080518082019091526007808252660a69092848aa8960cb1b60209092019182526200005b916002916200088d565b506003805460ff1916601290811790915560c86004819055600a60058190556006819055600791909155600881905560098190556103e8600c55600d80546001600160a01b031916732ba81b44b388ea1282072c17104a0b5a5e6241bd179055620000c7919062000a59565b620000d690620f424062000b18565b60155562000112620186a0620000fe60056015546200071060201b62001ec71790919060201c565b620007a460201b62001f4d1790919060201c565b601655620001386064620000fe60016015546200071060201b62001ec71790919060201c565b6017556200015f600c54620000fe60146015546200071060201b62001ec71790919060201c565b60185562000186600c54620000fe60146015546200071060201b62001ec71790919060201c565b601955601a805461010161ffff1991821617909155601d805490911660011790556020805460ff60a01b19169055348015620001c157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556040805163c45a015560e01b8152905160009363c45a01559260048082019391829003018186803b1580156200026057600080fd5b505afa15801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b91906200094f565b60208054604080516315ab88c960e31b815290516001600160a01b039485169463c9c653969493169263ad5c46489260048082019391829003018186803b158015620002e657600080fd5b505afa158015620002fb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032191906200094f565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200036957600080fd5b505af11580156200037e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a491906200094f565b306000908152601c6020908152604080832082546001600160a01b0316845290915290819020600019905551909150737a250d5630b4cf539739df2c5dacb4c659f2488d90620003f4906200091c565b6001600160a01b039091168152602001604051809103906000f08015801562000421573d6000803e3d6000fd5b50601d60026101000a8154816001600160a01b0302191690836001600160a01b03160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d6040516200046b906200092a565b6001600160a01b039091168152602001604051809103906000f08015801562000498573d6000803e3d6000fd5b50601e80546001600160a01b03199081166001600160a01b0393841617909155601f8054339216821790559082166000818152601160209081526040808320805460ff19908116600190811790925586855260138452828520805482168317905585855282852080548216831790553080865283862080548316841790557f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c80548316841790557f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c8054831684179055878652601285528386208054831684179055868652838620805483168417905580865283862080548316841790557f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f780548316841790557f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b805483168417905587865260108552838620805483168417905595855282852080548216831790558585528285208054821683179055868552600e845282852080548216831790558585528285208054821683179055958452600f83528184208054871682179055938352909120805490931690911790915560065460055460045462000690936200067c9290620007ee811b62001f8f17901c565b620007ee60201b62001f8f1790919060201c565b600a81905550620006bb6009546200067c600854600754620007ee60201b62001f8f1790919060201c565b600b55601554336000818152601b6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000b8d565b60008262000721575060006200079e565b60006200072f838562000b18565b9050826200073e8583620009ed565b146200079b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200079b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200085160201b60201c565b600080620007fd8385620009d2565b9050838110156200079b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000792565b60008183620008755760405162461bcd60e51b81526004016200079291906200097a565b506000620008848486620009ed565b95945050505050565b8280546200089b9062000b3a565b90600052602060002090601f016020900481019282620008bf57600085556200090a565b82601f10620008da57805160ff19168380011785556200090a565b828001600101855582156200090a579182015b828111156200090a578251825591602001919060010190620008ed565b506200091892915062000938565b5090565b610ef08062003cad83390190565b610d618062004b9d83390190565b5b8082111562000918576000815560010162000939565b6000602082840312156200096257600080fd5b81516001600160a01b03811681146200079b57600080fd5b600060208083528351808285015260005b81811015620009a9578581018301518582016040015282016200098b565b81811115620009bc576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115620009e857620009e862000b77565b500190565b60008262000a0b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000a5157816000190482111562000a355762000a3562000b77565b8085161562000a4357918102915b93841c939080029062000a15565b509250929050565b60006200079b60ff84168360008262000a75575060016200079e565b8162000a84575060006200079e565b816001811462000a9d576002811462000aa85762000ac8565b60019150506200079e565b60ff84111562000abc5762000abc62000b77565b50506001821b6200079e565b5060208310610133831016604e8410600b841016171562000aed575081810a6200079e565b62000af9838362000a10565b806000190482111562000b105762000b1062000b77565b029392505050565b600081600019048311821515161562000b355762000b3562000b77565b500290565b600181811c9082168062000b4f57607f821691505b6020821081141562000b7157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6131108062000b9d6000396000f3fe60806040526004361061044b5760003560e01c806373129e5211610234578063d37e6ff41161012e578063e2f45605116100b6578063f2fde38b1161007a578063f2fde38b14610d28578063f872858a14610d48578063f887ea4014610d67578063f9f92be414610d87578063fdd24dfe14610db757600080fd5b8063e2f4560514610c9d578063e6b2603b14610cb3578063ea8b2c4414610cc8578063eac25cbb14610ce8578063f275f64b14610d0857600080fd5b8063dd656b63116100fd578063dd656b6314610c11578063dda9167614610c27578063e01bb68814610c47578063e0202f8714610c67578063e0de51ef14610c7d57600080fd5b8063d37e6ff414610b42578063d439979014610b72578063dbf5360c14610bab578063dd62ed3e14610bcb57600080fd5b806392136913116101bc578063b43725b111610180578063b43725b114610a7c578063b62496f514610a9c578063b8d317ec14610acc578063be479d9114610aec578063c867d60b14610b1257600080fd5b806392136913146109fb57806395d89b4114610a11578063a457c2d714610a26578063a9059cbb14610a46578063b1c09b2a14610a6657600080fd5b80638b42507f116102035780638b42507f146109575780638cc5ce99146109875780638da5cb5b146109a75780638e34b1a3146109c55780638f32d59b146109db57600080fd5b806373129e52146108e75780637bce5a041461090757806383b4ac681461091d578063852614851461093d57600080fd5b80633a5ec0fb116103455780634bf74324116102cd5780636140a51e116102915780636140a51e1461084d57806364f5a5bb1461086d57806370a082311461088d57806370ee7395146108ad578063728d41c9146108c757600080fd5b80634bf74324146107c25780634f322c51146107e257806351bc3c8514610802578063531295971461081757806355acbc331461082d57600080fd5b80633eaaf86b116103145780633eaaf86b146107145780634144d9e41461072a5780634201181114610762578063492dbf4b146107825780634bc6dd18146107a257600080fd5b80633a5ec0fb146106a45780633bb32840146106b95780633e05e01b146106cf5780633e7be973146106e457600080fd5b806323b872dd116103d3578063320d453411610397578063320d45341461060e578063334901911461062e57806333f3d6281461064457806337c9be8714610664578063395093511461068457600080fd5b806323b872dd1461057757806325519cf2146105975780632563ae83146105b75780632b112e49146105d7578063313ce567146105ec57600080fd5b806318160ddd1161041a57806318160ddd146104f85780631a032b041461050d5780631d865c301461052c57806320365d5f1461054c57806323a2f1fc1461056157600080fd5b806306fdde0314610457578063095ea7b31461048257806315bdde40146104b2578063180b0d7e146104d457600080fd5b3661045257005b600080fd5b34801561046357600080fd5b5061046c610dcd565b6040516104799190612ee5565b60405180910390f35b34801561048e57600080fd5b506104a261049d366004612e21565b610e5f565b6040519015158152602001610479565b3480156104be57600080fd5b506104d26104cd366004612d3f565b610e76565b005b3480156104e057600080fd5b506104ea600c5481565b604051908152602001610479565b34801561050457600080fd5b506015546104ea565b34801561051957600080fd5b50601d546104a290610100900460ff1681565b34801561053857600080fd5b506104d2610547366004612eb9565b610ef7565b34801561055857600080fd5b506104d2610f55565b34801561056d57600080fd5b506104ea60195481565b34801561058357600080fd5b506104a2610592366004612db2565b610fcf565b3480156105a357600080fd5b506104d26105b2366004612eb9565b6110a9565b3480156105c357600080fd5b506104d26105d2366004612e4d565b6110f8565b3480156105e357600080fd5b506104ea61113c565b3480156105f857600080fd5b5060035460405160ff9091168152602001610479565b34801561061a57600080fd5b506104d2610629366004612e87565b6111ad565b34801561063a57600080fd5b506104ea60185481565b34801561065057600080fd5b506104d261065f366004612e21565b6111dc565b34801561067057600080fd5b506104d261067f366004612df3565b611278565b34801561069057600080fd5b506104a261069f366004612e21565b6112cd565b3480156106b057600080fd5b506104d261135e565b3480156106c557600080fd5b506104ea60065481565b3480156106db57600080fd5b506104d26113c3565b3480156106f057600080fd5b506104a26106ff366004612d3f565b60136020526000908152604090205460ff1681565b34801561072057600080fd5b506104ea60155481565b34801561073657600080fd5b50600d5461074a906001600160a01b031681565b6040516001600160a01b039091168152602001610479565b34801561076e57600080fd5b506104ea61077d366004612d3f565b6113f3565b34801561078e57600080fd5b506104d261079d366004612db2565b611472565b3480156107ae57600080fd5b506104d26107bd366004612e4d565b611504565b3480156107ce57600080fd5b506104d26107dd366004612df3565b611541565b3480156107ee57600080fd5b506104d26107fd366004612db2565b611596565b34801561080e57600080fd5b506104d26115ee565b34801561082357600080fd5b506104ea60085481565b34801561083957600080fd5b506104d2610848366004612df3565b61166e565b34801561085957600080fd5b506104d2610868366004612e4d565b6116c3565b34801561087957600080fd5b506104d2610888366004612e87565b611700565b34801561089957600080fd5b506104ea6108a8366004612d3f565b61172f565b3480156108b957600080fd5b50601d546104a29060ff1681565b3480156108d357600080fd5b506104d26108e2366004612e87565b61174a565b3480156108f357600080fd5b506104d2610902366004612d3f565b611779565b34801561091357600080fd5b506104ea60045481565b34801561092957600080fd5b50602054600160a01b900460ff16156104a2565b34801561094957600080fd5b50601a546104a29060ff1681565b34801561096357600080fd5b506104a2610972366004612d3f565b600f6020526000908152604090205460ff1681565b34801561099357600080fd5b50601f5461074a906001600160a01b031681565b3480156109b357600080fd5b506000546001600160a01b031661074a565b3480156109d157600080fd5b506104ea60095481565b3480156109e757600080fd5b506000546001600160a01b031633146104a2565b348015610a0757600080fd5b506104ea60075481565b348015610a1d57600080fd5b5061046c6117c2565b348015610a3257600080fd5b506104a2610a41366004612e21565b6117d1565b348015610a5257600080fd5b506104a2610a61366004612e21565b6118b8565b348015610a7257600080fd5b506104ea600a5481565b348015610a8857600080fd5b506104ea610a97366004612d3f565b6118e4565b348015610aa857600080fd5b506104a2610ab7366004612d3f565b60116020526000908152604090205460ff1681565b348015610ad857600080fd5b506104d2610ae7366004612df3565b61191d565b348015610af857600080fd5b50601d5461074a906201000090046001600160a01b031681565b348015610b1e57600080fd5b506104a2610b2d366004612d3f565b60106020526000908152604090205460ff1681565b348015610b4e57600080fd5b506104a2610b5d366004612d3f565b60126020526000908152604090205460ff1681565b348015610b7e57600080fd5b506104a2610b8d366004612d3f565b6001600160a01b03166000908152600e602052604090205460ff1690565b348015610bb757600080fd5b506104d2610bc6366004612e87565b611a6a565b348015610bd757600080fd5b506104ea610be6366004612d79565b6001600160a01b039182166000908152601c6020908152604080832093909416825291909152205490565b348015610c1d57600080fd5b506104ea60055481565b348015610c3357600080fd5b506104d2610c42366004612df3565b611a99565b348015610c5357600080fd5b506104d2610c62366004612d3f565b611bd9565b348015610c7357600080fd5b506104ea600b5481565b348015610c8957600080fd5b506104d2610c98366004612df3565b611c12565b348015610ca957600080fd5b506104ea60165481565b348015610cbf57600080fd5b506104d2611c67565b348015610cd457600080fd5b506104d2610ce3366004612df3565b611cad565b348015610cf457600080fd5b50601e5461074a906001600160a01b031681565b348015610d1457600080fd5b506104d2610d23366004612e4d565b611d99565b348015610d3457600080fd5b506104d2610d43366004612d3f565b611ddd565b348015610d5457600080fd5b50601a546104a290610100900460ff1681565b348015610d7357600080fd5b5060205461074a906001600160a01b031681565b348015610d9357600080fd5b506104a2610da2366004612d3f565b60146020526000908152604090205460ff1681565b348015610dc357600080fd5b506104ea60175481565b606060018054610ddc90613050565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0890613050565b8015610e555780601f10610e2a57610100808354040283529160200191610e55565b820191906000526020600020905b815481529060010190602001808311610e3857829003601f168201915b5050505050905090565b6000610e6c338484611fee565b5060015b92915050565b601f546001600160a01b03163314610e8d57600080fd5b601d5460405163e53b201760e01b81526001600160a01b038381166004830152620100009092049091169063e53b2017906024015b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b8152600401610f2190612f3a565b60405180910390fd5b600783905560088290556009819055610f4d81610f478585611f8f565b90611f8f565b600b55505050565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b8152600401610f2190612f3a565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000826001600160a01b038116610fe557600080fd5b6001600160a01b0385166000908152601c6020908152604080832033845290915290205460001914611092576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601c8252838120338252909152919091205461106d918590612112565b6001600160a01b0386166000908152601c602090815260408083203384529091529020555b61109d85858561214c565b50600195945050505050565b6000546001600160a01b031633146110d35760405162461bcd60e51b8152600401610f2190612f3a565b6004839055600582905560068190556110f081610f478585611f8f565b600a55505050565b6000546001600160a01b031633146111225760405162461bcd60e51b8152600401610f2190612f3a565b601a80549115156101000261ff0019909216919091179055565b601b6020527f584f46c60af19681376031579adb04a2416e54ee5505351c2a8435e3766026ea5461dead60009081527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d216845460155491926111a89290916111a291906126e8565b906126e8565b905090565b6000546001600160a01b031633146111d75760405162461bcd60e51b8152600401610f2190612f3a565b601655565b601f546001600160a01b031633146111f357600080fd5b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612e6a565b505050565b6000546001600160a01b031633146112a25760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b336000908152601c602090815260408083206001600160a01b03861684529091528120546112fb9083611f8f565b336000818152601c602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b601d5460405163d279c19160e01b8152336004820152620100009091046001600160a01b03169063d279c191906024015b600060405180830381600087803b1580156113a957600080fd5b505af11580156113bd573d6000803e3d6000fd5b50505050565b601e5460405163d279c19160e01b81523360048201526001600160a01b039091169063d279c1919060240161138f565b601e54604051630650c78760e01b81526001600160a01b0383811660048301526000921690630650c787906024015b60206040518083038186803b15801561143a57600080fd5b505afa15801561144e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e709190612ea0565b601f546001600160a01b0316331461148957600080fd5b601d5460405163e5711e8b60e01b81526001600160a01b038581166004830152848116602483015260448201849052620100009092049091169063e5711e8b906064015b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b0316331461152e5760405162461bcd60e51b8152600401610f2190612f3a565b601d805460ff1916911515919091179055565b6000546001600160a01b0316331461156b5760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b601f546001600160a01b031633146115ad57600080fd5b601e5460405163e5711e8b60e01b81526001600160a01b0385811660048301528481166024830152604482018490529091169063e5711e8b906064016114cd565b6000546001600160a01b031633146116185760405162461bcd60e51b8152600401610f2190612f3a565b602054600160a01b900460ff16156116645760405162461bcd60e51b815260206004820152600f60248201526e0416c726561647920696e205377617608c1b6044820152606401610f21565b61166c61272a565b565b6000546001600160a01b031633146116985760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116ed5760405162461bcd60e51b8152600401610f2190612f3a565b601a805460ff1916911515919091179055565b6000546001600160a01b0316331461172a5760405162461bcd60e51b8152600401610f2190612f3a565b601955565b6001600160a01b03166000908152601b602052604090205490565b6000546001600160a01b031633146117745760405162461bcd60e51b8152600401610f2190612f3a565b601855565b601f546001600160a01b0316331461179057600080fd5b601e5460405163e53b201760e01b81526001600160a01b0383811660048301529091169063e53b201790602401610ec2565b606060028054610ddc90613050565b336000908152601c602090815260408083206001600160a01b038616845290915281205480831061182557336000908152601c602090815260408083206001600160a01b0388168452909152812055611854565b61182f81846126e8565b336000908152601c602090815260408083206001600160a01b03891684529091529020555b336000818152601c602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b0381166118ce57600080fd5b6118d933858561214c565b506001949350505050565b601d54604051630650c78760e01b81526001600160a01b0383811660048301526000926201000090041690630650c78790602401611422565b6000546001600160a01b031633146119475760405162461bcd60e51b8152600401610f2190612f3a565b80156119bf57601d54604051630a5b654b60e11b81526001600160a01b0384811660048301526000602483015262010000909204909116906314b6ca9690604401600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b50505050611a3f565b601d546201000090046001600160a01b03166314b6ca96836119e08161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611a2657600080fd5b505af1158015611a3a573d6000803e3d6000fd5b505050505b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a945760405162461bcd60e51b8152600401610f2190612f3a565b601755565b6000546001600160a01b03163314611ac35760405162461bcd60e51b8152600401610f2190612f3a565b8015611b3457601e54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401600060405180830381600087803b158015611b1757600080fd5b505af1158015611b2b573d6000803e3d6000fd5b50505050611bae565b601e546001600160a01b03166314b6ca9683611b4f8161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505050505b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b601f546001600160a01b03163314611bf057600080fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611c3c5760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b601f546001600160a01b03163314611c7e57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611caa573d6000803e3d6000fd5b50565b6000546001600160a01b03163314611cd75760405162461bcd60e51b8152600401610f2190612f3a565b8015611d3b576001600160a01b03821660009081526011602052604090205460ff1615611d3b5760405162461bcd60e51b81526020600482015260126024820152715061697220416c726561647920536574212160701b6044820152606401610f21565b6001600160a01b039091166000908152601160209081526040808320805494151560ff199586161790556010825280832080548516600190811790915560138352818420805486168217905560129092529091208054909216179055565b6000546001600160a01b03163314611dc35760405162461bcd60e51b8152600401610f2190612f3a565b601d80549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314611e075760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b038116611e6c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f21565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611ed657506000610e70565b6000611ee2838561301a565b905082611eef8583612ff8565b14611f465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610f21565b9392505050565b6000611f4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061293a565b600080611f9c8385612fe0565b905083811015611f465760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610f21565b6001600160a01b0383166120505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f21565b6001600160a01b0382166120b15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f21565b6001600160a01b038381166000818152601c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081848411156121365760405162461bcd60e51b8152600401610f219190612ee5565b5060006121438486613039565b95945050505050565b6001600160a01b03831660009081526014602052604081205460ff1615801561218e57506001600160a01b03831660009081526014602052604090205460ff16155b6121c95760405162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b6044820152606401610f21565b601d54610100900460ff1661225c576001600160a01b0384166000908152600e602052604090205460ff168061221757506001600160a01b0383166000908152600e602052604090205460ff165b61225c5760405162461bcd60e51b81526020600482015260166024820152754572726f723a2054726164696e67205061757365642160501b6044820152606401610f21565b6001600160a01b0384166000908152600f602052604090205460ff1615801561229e57506001600160a01b0383166000908152600f602052604090205460ff16155b80156122ac5750601a5460ff165b15612314576019548211156123145760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610f21565b602054600160a01b900460ff161561233857612331848484612968565b9050611f46565b6123406129dd565b1561234d5761234d61272a565b6001600160a01b0384166000908152601b602052604090205461237090836126e8565b6001600160a01b0385166000908152601b60205260408120919091556123968585612a3b565b6123a057826123ab565b6123ab858585612acd565b601a54909150610100900460ff1680156123de57506001600160a01b03841660009081526010602052604090205460ff16155b156123fe576018546123f382610f478761172f565b11156123fe57600080fd5b6001600160a01b0384166000908152601b60205260409020546124219082611f8f565b6001600160a01b038086166000908152601b602090815260408083209490945591881681526012909152205460ff166124ce57601d546201000090046001600160a01b03166314b6ca96866124758161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156124bb57600080fd5b505af19250505080156124cc575060015b505b6001600160a01b03841660009081526012602052604090205460ff1661256857601d546201000090046001600160a01b03166314b6ca968561250f8161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561255557600080fd5b505af1925050508015612566575060015b505b6001600160a01b03851660009081526013602052604090205460ff166125fc57601e546001600160a01b03166314b6ca96866125a38161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156125e957600080fd5b505af19250505080156125fa575060015b505b6001600160a01b03841660009081526013602052604090205460ff1661269057601e546001600160a01b03166314b6ca96856126378161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561267d57600080fd5b505af192505050801561268e575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126d591815260200190565b60405180910390a3506001949350505050565b6000611f4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612112565b6020805460ff60a01b1916600160a01b17905560006127483061172f565b90506000612763600b54600a54611f8f90919063ffffffff16565b90508061277157505061292b565b6017548211156127815760175491505b600061279a600754600454611f8f90919063ffffffff16565b905060006127b5600854600554611f8f90919063ffffffff16565b9050476127c185612bd5565b60006127cd47836126e8565b905060006127e5866127df8488611ec7565b90611f4d565b905060006127f7876127df8588611ec7565b90506000612809826111a286866126e8565b9050821561284d57600d546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561284b573d6000803e3d6000fd5b505b81156128b757601d60029054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156128a357600080fd5b505af1935050505080156128b5575060015b505b801561292157601e60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561290d57600080fd5b505af19350505050801561291f575060015b505b5050505050505050505b6020805460ff60a01b19169055565b6000818361295b5760405162461bcd60e51b8152600401610f219190612ee5565b5060006121438486612ff8565b6001600160a01b0383166000908152601b602052604081205461298b90836126e8565b6001600160a01b038086166000908152601b602052604080822093909355908516815220546129ba9083611f8f565b6001600160a01b0384166000908152601b60205260409020555060019392505050565b6000806129e93061172f565b60165490915081108015908190612a025750601d5460ff165b8015612a185750602054600160a01b900460ff16155b8015612a3457503360009081526011602052604090205460ff16155b9250505090565b6001600160a01b0382166000908152600e602052604081205460ff1680612a7a57506001600160a01b0382166000908152600e602052604090205460ff165b15612a8757506000610e70565b6001600160a01b03831660009081526011602052604090205460ff1680612ac657506001600160a01b03821660009081526011602052604090205460ff165b9050610e70565b6001600160a01b038316600090815260116020526040812054819060ff1615612b1257612b0b600c546127df600a5486611ec790919063ffffffff16565b9050612b51565b6001600160a01b03841660009081526011602052604090205460ff1615612b5157612b4e600c546127df600b5486611ec790919063ffffffff16565b90505b8015612bcb57306000908152601b6020526040902054612b719082611f8f565b306000818152601b6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612bc29085815260200190565b60405180910390a35b61214383826126e8565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612c0a57612c0a6130a1565b6001600160a01b039283166020918202929092018101919091528054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612c5d57600080fd5b505afa158015612c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c959190612d5c565b81600181518110612ca857612ca86130a1565b6001600160a01b0392831660209182029290920181019190915254612cd09130911684611fee565b60205460405163791ac94760e01b81526001600160a01b039091169063791ac94790612d09908590600090869030904290600401612f6f565b600060405180830381600087803b158015612d2357600080fd5b505af1158015612d37573d6000803e3d6000fd5b505050505050565b600060208284031215612d5157600080fd5b8135611f46816130b7565b600060208284031215612d6e57600080fd5b8151611f46816130b7565b60008060408385031215612d8c57600080fd5b8235612d97816130b7565b91506020830135612da7816130b7565b809150509250929050565b600080600060608486031215612dc757600080fd5b8335612dd2816130b7565b92506020840135612de2816130b7565b929592945050506040919091013590565b60008060408385031215612e0657600080fd5b8235612e11816130b7565b91506020830135612da7816130cc565b60008060408385031215612e3457600080fd5b8235612e3f816130b7565b946020939093013593505050565b600060208284031215612e5f57600080fd5b8135611f46816130cc565b600060208284031215612e7c57600080fd5b8151611f46816130cc565b600060208284031215612e9957600080fd5b5035919050565b600060208284031215612eb257600080fd5b5051919050565b600080600060608486031215612ece57600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015612f1257858101830151858201604001528201612ef6565b81811115612f24576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fbf5784516001600160a01b031683529383019391830191600101612f9a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ff357612ff361308b565b500190565b60008261301557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156130345761303461308b565b500290565b60008282101561304b5761304b61308b565b500390565b600181811c9082168061306457607f821691505b6020821081141561308557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611caa57600080fd5b8015158114611caa57600080fdfea26469706673582212206b6dd0653d592b91022c5573dbe589ba2594052a55f0190b0c3d2831247eefe064736f6c634300080700336080604052600280546001600160a01b0319167395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce179055662386f26fc1000060095534801561004157600080fd5b50604051610ef0380380610ef0833981016040819052610060916100ba565b6001600160a01b03811661008857737a250d5630b4cf539739df2c5dacb4c659f2488d61008a565b805b600380546001600160a01b03929092166001600160a01b03199283161790556000805490911633179055506100ea565b6000602082840312156100cc57600080fd5b81516001600160a01b03811681146100e357600080fd5b9392505050565b610df7806100f96000396000f3fe6080604052600436106100c25760003560e01c8063ce7c2ac21161007f578063e2d2e21911610059578063e2d2e219146101ff578063e53b201714610215578063e5711e8b14610235578063f0fc6bca1461025557600080fd5b8063ce7c2ac214610174578063d0e30db0146101d7578063d279c191146101df57600080fd5b80630650c787146100c757806311ce023d146100fa57806314b6ca96146101105780633a98ef3914610132578063997664d714610148578063c71b0e1c1461015e575b600080fd5b3480156100d357600080fd5b506100e76100e2366004610b6f565b61026a565b6040519081526020015b60405180910390f35b34801561010657600080fd5b506100e760095481565b34801561011c57600080fd5b5061013061012b366004610bea565b6102a7565b005b34801561013e57600080fd5b506100e760045481565b34801561015457600080fd5b506100e760055481565b34801561016a57600080fd5b506100e760085481565b34801561018057600080fd5b506101b761018f366004610b6f565b6001602081905260009182526040909120805491810154600282015460039092015490919084565b6040805194855260208501939093529183015260608201526080016100f1565b610130610361565b3480156101eb57600080fd5b506101306101fa366004610b6f565b61061e565b34801561020b57600080fd5b506100e760075481565b34801561022157600080fd5b50610130610230366004610b6f565b610641565b34801561024157600080fd5b50610130610250366004610ba9565b610691565b34801561026157600080fd5b50610130610730565b6000806102768361073a565b6001600160a01b03841660009081526001602052604090206003015490915061029f82826107bc565b949350505050565b6000546001600160a01b031633146102be57600080fd5b6001600160a01b038216600090815260016020526040902054156102e5576102e582610829565b6001600160a01b03821660009081526001602052604090205460045461031691839161031091610905565b906107bc565b6004556001600160a01b038216600090815260016020526040902081905561033d81610947565b6001600160a01b039092166000908152600160208190526040909120019190915550565b6000546001600160a01b0316331461037857600080fd5b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156103bc57600080fd5b505afa1580156103d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f49190610c38565b60408051600280825260608201835292935060009290916020830190803683375050600354604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561045e57600080fd5b505afa158015610472573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104969190610b8c565b816000815181106104a9576104a9610d96565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106104da576104da610d96565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061052090600090869030904290600401610c51565b6000604051808303818588803b15801561053957600080fd5b505af115801561054d573d6000803e3d6000fd5b50506002546040516370a0823160e01b8152306004820152600094506105dc93508692506001600160a01b03909116906370a082319060240160206040518083038186803b15801561059e57600080fd5b505afa1580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190610c38565b90610905565b6005549091506105ec90826107bc565b6005556004546009546106169161060d916106079085610964565b906109e3565b600754906107bc565b600755505050565b6000546001600160a01b0316331461063557600080fd5b61063e81610a25565b50565b6000546001600160a01b0316331461065857600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505015801561068d573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146106a857600080fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156106f257600080fd5b505af1158015610706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072a9190610c16565b50505050565b3361063e81610a25565b6001600160a01b03811660009081526001602052604081205461075f57506000919050565b6001600160a01b03821660009081526001602052604081205461078190610947565b6001600160a01b038416600090815260016020819052604090912001549091508082116107b2575060009392505050565b61029f8282610905565b6000806107c98385610d10565b9050838110156108205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b6001600160a01b0381166000908152600160205260409020546108495750565b60006108548261073a565b9050801561068d5760065461086990826107bc565b6006556001600160a01b03821660009081526001602052604081206003018054839290610897908490610d10565b9250508190555080600860008282546108b09190610d10565b90915550506001600160a01b0382166000908152600160205260409020600201546108db90826107bc565b6001600160a01b038316600090815260016020526040902060028101919091555461033d90610947565b600061082083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b07565b60006108236009546106076007548561096490919063ffffffff16565b60008261097357506000610823565b600061097f8385610d4a565b90508261098c8583610d28565b146108205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610817565b600061082083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b41565b610a2e81610829565b6001600160a01b038116600090815260016020526040902060030154801561068d576001600160a01b038216600090815260016020526040812060030155600854610a799082610905565b60085560025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b029190610c16565b505050565b60008184841115610b2b5760405162461bcd60e51b81526004016108179190610cbb565b506000610b388486610d69565b95945050505050565b60008183610b625760405162461bcd60e51b81526004016108179190610cbb565b506000610b388486610d28565b600060208284031215610b8157600080fd5b813561082081610dac565b600060208284031215610b9e57600080fd5b815161082081610dac565b600080600060608486031215610bbe57600080fd5b8335610bc981610dac565b92506020840135610bd981610dac565b929592945050506040919091013590565b60008060408385031215610bfd57600080fd5b8235610c0881610dac565b946020939093013593505050565b600060208284031215610c2857600080fd5b8151801515811461082057600080fd5b600060208284031215610c4a57600080fd5b5051919050565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610c9b5784516001600160a01b031683529383019391830191600101610c76565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610ce857858101830151858201604001528201610ccc565b81811115610cfa576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610d2357610d23610d80565b500190565b600082610d4557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610d6457610d64610d80565b500290565b600082821015610d7b57610d7b610d80565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461063e57600080fdfea26469706673582212203cb7c294df6fa9b6439a449090682aa08f82d85a4403b23415c2aafcc1d339cf64736f6c634300080700336080604052600280546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556a52b7d2dcc80cd2e400000060095534801561004557600080fd5b50604051610d61380380610d61833981016040819052610064916100be565b6001600160a01b03811661008c57737a250d5630b4cf539739df2c5dacb4c659f2488d61008e565b805b600380546001600160a01b03929092166001600160a01b03199283161790556000805490911633179055506100ee565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610c64806100fd6000396000f3fe6080604052600436106100c25760003560e01c8063ce7c2ac21161007f578063e2d2e21911610059578063e2d2e219146101ff578063e53b201714610215578063e5711e8b14610235578063f0fc6bca1461025557600080fd5b8063ce7c2ac214610174578063d0e30db0146101d7578063d279c191146101df57600080fd5b80630650c787146100c757806311ce023d146100fa57806314b6ca96146101105780633a98ef3914610132578063997664d714610148578063c71b0e1c1461015e575b600080fd5b3480156100d357600080fd5b506100e76100e2366004610a97565b61026a565b6040519081526020015b60405180910390f35b34801561010657600080fd5b506100e760095481565b34801561011c57600080fd5b5061013061012b366004610aee565b6102a7565b005b34801561013e57600080fd5b506100e760045481565b34801561015457600080fd5b506100e760055481565b34801561016a57600080fd5b506100e760085481565b34801561018057600080fd5b506101b761018f366004610a97565b6001602081905260009182526040909120805491810154600282015460039092015490919084565b6040805194855260208501939093529183015260608201526080016100f1565b610130610361565b3480156101eb57600080fd5b506101306101fa366004610a97565b61052a565b34801561020b57600080fd5b506100e760075481565b34801561022157600080fd5b50610130610230366004610a97565b61054d565b34801561024157600080fd5b50610130610250366004610ab2565b61059d565b34801561026157600080fd5b5061013061063c565b60008061027683610646565b6001600160a01b03841660009081526001602052604090206003015490915061029f82826106c8565b949350505050565b6000546001600160a01b031633146102be57600080fd5b6001600160a01b038216600090815260016020526040902054156102e5576102e582610735565b6001600160a01b03821660009081526001602052604090205460045461031691839161031091610811565b906106c8565b6004556001600160a01b038216600090815260016020526040902081905561033d81610853565b6001600160a01b039092166000908152600160208190526040909120019190915550565b6000546001600160a01b0316331461037857600080fd5b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156103bc57600080fd5b505afa1580156103d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f49190610b3a565b9050600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561044657600080fd5b505af115801561045a573d6000803e3d6000fd5b50506002546040516370a0823160e01b8152306004820152600094506104e993508592506001600160a01b03909116906370a082319060240160206040518083038186803b1580156104ab57600080fd5b505afa1580156104bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e39190610b3a565b90610811565b6005549091506104f990826106c8565b6005556004546009546105239161051a916105149085610870565b906108ef565b600754906106c8565b6007555050565b6000546001600160a01b0316331461054157600080fd5b61054a81610931565b50565b6000546001600160a01b0316331461056457600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610599573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146105b457600080fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156105fe57600080fd5b505af1158015610612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106369190610b18565b50505050565b3361054a81610931565b6001600160a01b03811660009081526001602052604081205461066b57506000919050565b6001600160a01b03821660009081526001602052604081205461068d90610853565b6001600160a01b038416600090815260016020819052604090912001549091508082116106be575060009392505050565b61029f8282610811565b6000806106d58385610ba8565b90508381101561072c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b6001600160a01b0381166000908152600160205260409020546107555750565b600061076082610646565b905080156105995760065461077590826106c8565b6006556001600160a01b038216600090815260016020526040812060030180548392906107a3908490610ba8565b9250508190555080600860008282546107bc9190610ba8565b90915550506001600160a01b0382166000908152600160205260409020600201546107e790826106c8565b6001600160a01b038316600090815260016020526040902060028101919091555461033d90610853565b600061072c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a13565b600061072f6009546105146007548561087090919063ffffffff16565b60008261087f5750600061072f565b600061088b8385610be2565b9050826108988583610bc0565b1461072c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610723565b600061072c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a4d565b61093a81610735565b6001600160a01b0381166000908152600160205260409020600301548015610599576001600160a01b0382166000908152600160205260408120600301556008546109859082610811565b60085560025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156109d657600080fd5b505af11580156109ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0e9190610b18565b505050565b60008184841115610a375760405162461bcd60e51b81526004016107239190610b53565b506000610a448486610c01565b95945050505050565b60008183610a6e5760405162461bcd60e51b81526004016107239190610b53565b506000610a448486610bc0565b80356001600160a01b0381168114610a9257600080fd5b919050565b600060208284031215610aa957600080fd5b61072c82610a7b565b600080600060608486031215610ac757600080fd5b610ad084610a7b565b9250610ade60208501610a7b565b9150604084013590509250925092565b60008060408385031215610b0157600080fd5b610b0a83610a7b565b946020939093013593505050565b600060208284031215610b2a57600080fd5b8151801515811461072c57600080fd5b600060208284031215610b4c57600080fd5b5051919050565b600060208083528351808285015260005b81811015610b8057858101830151858201604001528201610b64565b81811115610b92576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610bbb57610bbb610c18565b500190565b600082610bdd57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610bfc57610bfc610c18565b500290565b600082821015610c1357610c13610c18565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122062d30b99f558830faa7eda80b635ee16e8ba2da164ca030ccc75a5f1379afdeb64736f6c63430008070033
Deployed Bytecode
0x60806040526004361061044b5760003560e01c806373129e5211610234578063d37e6ff41161012e578063e2f45605116100b6578063f2fde38b1161007a578063f2fde38b14610d28578063f872858a14610d48578063f887ea4014610d67578063f9f92be414610d87578063fdd24dfe14610db757600080fd5b8063e2f4560514610c9d578063e6b2603b14610cb3578063ea8b2c4414610cc8578063eac25cbb14610ce8578063f275f64b14610d0857600080fd5b8063dd656b63116100fd578063dd656b6314610c11578063dda9167614610c27578063e01bb68814610c47578063e0202f8714610c67578063e0de51ef14610c7d57600080fd5b8063d37e6ff414610b42578063d439979014610b72578063dbf5360c14610bab578063dd62ed3e14610bcb57600080fd5b806392136913116101bc578063b43725b111610180578063b43725b114610a7c578063b62496f514610a9c578063b8d317ec14610acc578063be479d9114610aec578063c867d60b14610b1257600080fd5b806392136913146109fb57806395d89b4114610a11578063a457c2d714610a26578063a9059cbb14610a46578063b1c09b2a14610a6657600080fd5b80638b42507f116102035780638b42507f146109575780638cc5ce99146109875780638da5cb5b146109a75780638e34b1a3146109c55780638f32d59b146109db57600080fd5b806373129e52146108e75780637bce5a041461090757806383b4ac681461091d578063852614851461093d57600080fd5b80633a5ec0fb116103455780634bf74324116102cd5780636140a51e116102915780636140a51e1461084d57806364f5a5bb1461086d57806370a082311461088d57806370ee7395146108ad578063728d41c9146108c757600080fd5b80634bf74324146107c25780634f322c51146107e257806351bc3c8514610802578063531295971461081757806355acbc331461082d57600080fd5b80633eaaf86b116103145780633eaaf86b146107145780634144d9e41461072a5780634201181114610762578063492dbf4b146107825780634bc6dd18146107a257600080fd5b80633a5ec0fb146106a45780633bb32840146106b95780633e05e01b146106cf5780633e7be973146106e457600080fd5b806323b872dd116103d3578063320d453411610397578063320d45341461060e578063334901911461062e57806333f3d6281461064457806337c9be8714610664578063395093511461068457600080fd5b806323b872dd1461057757806325519cf2146105975780632563ae83146105b75780632b112e49146105d7578063313ce567146105ec57600080fd5b806318160ddd1161041a57806318160ddd146104f85780631a032b041461050d5780631d865c301461052c57806320365d5f1461054c57806323a2f1fc1461056157600080fd5b806306fdde0314610457578063095ea7b31461048257806315bdde40146104b2578063180b0d7e146104d457600080fd5b3661045257005b600080fd5b34801561046357600080fd5b5061046c610dcd565b6040516104799190612ee5565b60405180910390f35b34801561048e57600080fd5b506104a261049d366004612e21565b610e5f565b6040519015158152602001610479565b3480156104be57600080fd5b506104d26104cd366004612d3f565b610e76565b005b3480156104e057600080fd5b506104ea600c5481565b604051908152602001610479565b34801561050457600080fd5b506015546104ea565b34801561051957600080fd5b50601d546104a290610100900460ff1681565b34801561053857600080fd5b506104d2610547366004612eb9565b610ef7565b34801561055857600080fd5b506104d2610f55565b34801561056d57600080fd5b506104ea60195481565b34801561058357600080fd5b506104a2610592366004612db2565b610fcf565b3480156105a357600080fd5b506104d26105b2366004612eb9565b6110a9565b3480156105c357600080fd5b506104d26105d2366004612e4d565b6110f8565b3480156105e357600080fd5b506104ea61113c565b3480156105f857600080fd5b5060035460405160ff9091168152602001610479565b34801561061a57600080fd5b506104d2610629366004612e87565b6111ad565b34801561063a57600080fd5b506104ea60185481565b34801561065057600080fd5b506104d261065f366004612e21565b6111dc565b34801561067057600080fd5b506104d261067f366004612df3565b611278565b34801561069057600080fd5b506104a261069f366004612e21565b6112cd565b3480156106b057600080fd5b506104d261135e565b3480156106c557600080fd5b506104ea60065481565b3480156106db57600080fd5b506104d26113c3565b3480156106f057600080fd5b506104a26106ff366004612d3f565b60136020526000908152604090205460ff1681565b34801561072057600080fd5b506104ea60155481565b34801561073657600080fd5b50600d5461074a906001600160a01b031681565b6040516001600160a01b039091168152602001610479565b34801561076e57600080fd5b506104ea61077d366004612d3f565b6113f3565b34801561078e57600080fd5b506104d261079d366004612db2565b611472565b3480156107ae57600080fd5b506104d26107bd366004612e4d565b611504565b3480156107ce57600080fd5b506104d26107dd366004612df3565b611541565b3480156107ee57600080fd5b506104d26107fd366004612db2565b611596565b34801561080e57600080fd5b506104d26115ee565b34801561082357600080fd5b506104ea60085481565b34801561083957600080fd5b506104d2610848366004612df3565b61166e565b34801561085957600080fd5b506104d2610868366004612e4d565b6116c3565b34801561087957600080fd5b506104d2610888366004612e87565b611700565b34801561089957600080fd5b506104ea6108a8366004612d3f565b61172f565b3480156108b957600080fd5b50601d546104a29060ff1681565b3480156108d357600080fd5b506104d26108e2366004612e87565b61174a565b3480156108f357600080fd5b506104d2610902366004612d3f565b611779565b34801561091357600080fd5b506104ea60045481565b34801561092957600080fd5b50602054600160a01b900460ff16156104a2565b34801561094957600080fd5b50601a546104a29060ff1681565b34801561096357600080fd5b506104a2610972366004612d3f565b600f6020526000908152604090205460ff1681565b34801561099357600080fd5b50601f5461074a906001600160a01b031681565b3480156109b357600080fd5b506000546001600160a01b031661074a565b3480156109d157600080fd5b506104ea60095481565b3480156109e757600080fd5b506000546001600160a01b031633146104a2565b348015610a0757600080fd5b506104ea60075481565b348015610a1d57600080fd5b5061046c6117c2565b348015610a3257600080fd5b506104a2610a41366004612e21565b6117d1565b348015610a5257600080fd5b506104a2610a61366004612e21565b6118b8565b348015610a7257600080fd5b506104ea600a5481565b348015610a8857600080fd5b506104ea610a97366004612d3f565b6118e4565b348015610aa857600080fd5b506104a2610ab7366004612d3f565b60116020526000908152604090205460ff1681565b348015610ad857600080fd5b506104d2610ae7366004612df3565b61191d565b348015610af857600080fd5b50601d5461074a906201000090046001600160a01b031681565b348015610b1e57600080fd5b506104a2610b2d366004612d3f565b60106020526000908152604090205460ff1681565b348015610b4e57600080fd5b506104a2610b5d366004612d3f565b60126020526000908152604090205460ff1681565b348015610b7e57600080fd5b506104a2610b8d366004612d3f565b6001600160a01b03166000908152600e602052604090205460ff1690565b348015610bb757600080fd5b506104d2610bc6366004612e87565b611a6a565b348015610bd757600080fd5b506104ea610be6366004612d79565b6001600160a01b039182166000908152601c6020908152604080832093909416825291909152205490565b348015610c1d57600080fd5b506104ea60055481565b348015610c3357600080fd5b506104d2610c42366004612df3565b611a99565b348015610c5357600080fd5b506104d2610c62366004612d3f565b611bd9565b348015610c7357600080fd5b506104ea600b5481565b348015610c8957600080fd5b506104d2610c98366004612df3565b611c12565b348015610ca957600080fd5b506104ea60165481565b348015610cbf57600080fd5b506104d2611c67565b348015610cd457600080fd5b506104d2610ce3366004612df3565b611cad565b348015610cf457600080fd5b50601e5461074a906001600160a01b031681565b348015610d1457600080fd5b506104d2610d23366004612e4d565b611d99565b348015610d3457600080fd5b506104d2610d43366004612d3f565b611ddd565b348015610d5457600080fd5b50601a546104a290610100900460ff1681565b348015610d7357600080fd5b5060205461074a906001600160a01b031681565b348015610d9357600080fd5b506104a2610da2366004612d3f565b60146020526000908152604090205460ff1681565b348015610dc357600080fd5b506104ea60175481565b606060018054610ddc90613050565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0890613050565b8015610e555780601f10610e2a57610100808354040283529160200191610e55565b820191906000526020600020905b815481529060010190602001808311610e3857829003601f168201915b5050505050905090565b6000610e6c338484611fee565b5060015b92915050565b601f546001600160a01b03163314610e8d57600080fd5b601d5460405163e53b201760e01b81526001600160a01b038381166004830152620100009092049091169063e53b2017906024015b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b8152600401610f2190612f3a565b60405180910390fd5b600783905560088290556009819055610f4d81610f478585611f8f565b90611f8f565b600b55505050565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b8152600401610f2190612f3a565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000826001600160a01b038116610fe557600080fd5b6001600160a01b0385166000908152601c6020908152604080832033845290915290205460001914611092576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601c8252838120338252909152919091205461106d918590612112565b6001600160a01b0386166000908152601c602090815260408083203384529091529020555b61109d85858561214c565b50600195945050505050565b6000546001600160a01b031633146110d35760405162461bcd60e51b8152600401610f2190612f3a565b6004839055600582905560068190556110f081610f478585611f8f565b600a55505050565b6000546001600160a01b031633146111225760405162461bcd60e51b8152600401610f2190612f3a565b601a80549115156101000261ff0019909216919091179055565b601b6020527f584f46c60af19681376031579adb04a2416e54ee5505351c2a8435e3766026ea5461dead60009081527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d216845460155491926111a89290916111a291906126e8565b906126e8565b905090565b6000546001600160a01b031633146111d75760405162461bcd60e51b8152600401610f2190612f3a565b601655565b601f546001600160a01b031633146111f357600080fd5b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612e6a565b505050565b6000546001600160a01b031633146112a25760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b336000908152601c602090815260408083206001600160a01b03861684529091528120546112fb9083611f8f565b336000818152601c602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b601d5460405163d279c19160e01b8152336004820152620100009091046001600160a01b03169063d279c191906024015b600060405180830381600087803b1580156113a957600080fd5b505af11580156113bd573d6000803e3d6000fd5b50505050565b601e5460405163d279c19160e01b81523360048201526001600160a01b039091169063d279c1919060240161138f565b601e54604051630650c78760e01b81526001600160a01b0383811660048301526000921690630650c787906024015b60206040518083038186803b15801561143a57600080fd5b505afa15801561144e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e709190612ea0565b601f546001600160a01b0316331461148957600080fd5b601d5460405163e5711e8b60e01b81526001600160a01b038581166004830152848116602483015260448201849052620100009092049091169063e5711e8b906064015b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b0316331461152e5760405162461bcd60e51b8152600401610f2190612f3a565b601d805460ff1916911515919091179055565b6000546001600160a01b0316331461156b5760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b601f546001600160a01b031633146115ad57600080fd5b601e5460405163e5711e8b60e01b81526001600160a01b0385811660048301528481166024830152604482018490529091169063e5711e8b906064016114cd565b6000546001600160a01b031633146116185760405162461bcd60e51b8152600401610f2190612f3a565b602054600160a01b900460ff16156116645760405162461bcd60e51b815260206004820152600f60248201526e0416c726561647920696e205377617608c1b6044820152606401610f21565b61166c61272a565b565b6000546001600160a01b031633146116985760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116ed5760405162461bcd60e51b8152600401610f2190612f3a565b601a805460ff1916911515919091179055565b6000546001600160a01b0316331461172a5760405162461bcd60e51b8152600401610f2190612f3a565b601955565b6001600160a01b03166000908152601b602052604090205490565b6000546001600160a01b031633146117745760405162461bcd60e51b8152600401610f2190612f3a565b601855565b601f546001600160a01b0316331461179057600080fd5b601e5460405163e53b201760e01b81526001600160a01b0383811660048301529091169063e53b201790602401610ec2565b606060028054610ddc90613050565b336000908152601c602090815260408083206001600160a01b038616845290915281205480831061182557336000908152601c602090815260408083206001600160a01b0388168452909152812055611854565b61182f81846126e8565b336000908152601c602090815260408083206001600160a01b03891684529091529020555b336000818152601c602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b0381166118ce57600080fd5b6118d933858561214c565b506001949350505050565b601d54604051630650c78760e01b81526001600160a01b0383811660048301526000926201000090041690630650c78790602401611422565b6000546001600160a01b031633146119475760405162461bcd60e51b8152600401610f2190612f3a565b80156119bf57601d54604051630a5b654b60e11b81526001600160a01b0384811660048301526000602483015262010000909204909116906314b6ca9690604401600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b50505050611a3f565b601d546201000090046001600160a01b03166314b6ca96836119e08161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611a2657600080fd5b505af1158015611a3a573d6000803e3d6000fd5b505050505b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a945760405162461bcd60e51b8152600401610f2190612f3a565b601755565b6000546001600160a01b03163314611ac35760405162461bcd60e51b8152600401610f2190612f3a565b8015611b3457601e54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401600060405180830381600087803b158015611b1757600080fd5b505af1158015611b2b573d6000803e3d6000fd5b50505050611bae565b601e546001600160a01b03166314b6ca9683611b4f8161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505050505b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b601f546001600160a01b03163314611bf057600080fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611c3c5760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b601f546001600160a01b03163314611c7e57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015611caa573d6000803e3d6000fd5b50565b6000546001600160a01b03163314611cd75760405162461bcd60e51b8152600401610f2190612f3a565b8015611d3b576001600160a01b03821660009081526011602052604090205460ff1615611d3b5760405162461bcd60e51b81526020600482015260126024820152715061697220416c726561647920536574212160701b6044820152606401610f21565b6001600160a01b039091166000908152601160209081526040808320805494151560ff199586161790556010825280832080548516600190811790915560138352818420805486168217905560129092529091208054909216179055565b6000546001600160a01b03163314611dc35760405162461bcd60e51b8152600401610f2190612f3a565b601d80549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314611e075760405162461bcd60e51b8152600401610f2190612f3a565b6001600160a01b038116611e6c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f21565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611ed657506000610e70565b6000611ee2838561301a565b905082611eef8583612ff8565b14611f465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610f21565b9392505050565b6000611f4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061293a565b600080611f9c8385612fe0565b905083811015611f465760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610f21565b6001600160a01b0383166120505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f21565b6001600160a01b0382166120b15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f21565b6001600160a01b038381166000818152601c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081848411156121365760405162461bcd60e51b8152600401610f219190612ee5565b5060006121438486613039565b95945050505050565b6001600160a01b03831660009081526014602052604081205460ff1615801561218e57506001600160a01b03831660009081526014602052604090205460ff16155b6121c95760405162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b6044820152606401610f21565b601d54610100900460ff1661225c576001600160a01b0384166000908152600e602052604090205460ff168061221757506001600160a01b0383166000908152600e602052604090205460ff165b61225c5760405162461bcd60e51b81526020600482015260166024820152754572726f723a2054726164696e67205061757365642160501b6044820152606401610f21565b6001600160a01b0384166000908152600f602052604090205460ff1615801561229e57506001600160a01b0383166000908152600f602052604090205460ff16155b80156122ac5750601a5460ff165b15612314576019548211156123145760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610f21565b602054600160a01b900460ff161561233857612331848484612968565b9050611f46565b6123406129dd565b1561234d5761234d61272a565b6001600160a01b0384166000908152601b602052604090205461237090836126e8565b6001600160a01b0385166000908152601b60205260408120919091556123968585612a3b565b6123a057826123ab565b6123ab858585612acd565b601a54909150610100900460ff1680156123de57506001600160a01b03841660009081526010602052604090205460ff16155b156123fe576018546123f382610f478761172f565b11156123fe57600080fd5b6001600160a01b0384166000908152601b60205260409020546124219082611f8f565b6001600160a01b038086166000908152601b602090815260408083209490945591881681526012909152205460ff166124ce57601d546201000090046001600160a01b03166314b6ca96866124758161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156124bb57600080fd5b505af19250505080156124cc575060015b505b6001600160a01b03841660009081526012602052604090205460ff1661256857601d546201000090046001600160a01b03166314b6ca968561250f8161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561255557600080fd5b505af1925050508015612566575060015b505b6001600160a01b03851660009081526013602052604090205460ff166125fc57601e546001600160a01b03166314b6ca96866125a38161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156125e957600080fd5b505af19250505080156125fa575060015b505b6001600160a01b03841660009081526013602052604090205460ff1661269057601e546001600160a01b03166314b6ca96856126378161172f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561267d57600080fd5b505af192505050801561268e575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126d591815260200190565b60405180910390a3506001949350505050565b6000611f4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612112565b6020805460ff60a01b1916600160a01b17905560006127483061172f565b90506000612763600b54600a54611f8f90919063ffffffff16565b90508061277157505061292b565b6017548211156127815760175491505b600061279a600754600454611f8f90919063ffffffff16565b905060006127b5600854600554611f8f90919063ffffffff16565b9050476127c185612bd5565b60006127cd47836126e8565b905060006127e5866127df8488611ec7565b90611f4d565b905060006127f7876127df8588611ec7565b90506000612809826111a286866126e8565b9050821561284d57600d546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561284b573d6000803e3d6000fd5b505b81156128b757601d60029054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156128a357600080fd5b505af1935050505080156128b5575060015b505b801561292157601e60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561290d57600080fd5b505af19350505050801561291f575060015b505b5050505050505050505b6020805460ff60a01b19169055565b6000818361295b5760405162461bcd60e51b8152600401610f219190612ee5565b5060006121438486612ff8565b6001600160a01b0383166000908152601b602052604081205461298b90836126e8565b6001600160a01b038086166000908152601b602052604080822093909355908516815220546129ba9083611f8f565b6001600160a01b0384166000908152601b60205260409020555060019392505050565b6000806129e93061172f565b60165490915081108015908190612a025750601d5460ff165b8015612a185750602054600160a01b900460ff16155b8015612a3457503360009081526011602052604090205460ff16155b9250505090565b6001600160a01b0382166000908152600e602052604081205460ff1680612a7a57506001600160a01b0382166000908152600e602052604090205460ff165b15612a8757506000610e70565b6001600160a01b03831660009081526011602052604090205460ff1680612ac657506001600160a01b03821660009081526011602052604090205460ff165b9050610e70565b6001600160a01b038316600090815260116020526040812054819060ff1615612b1257612b0b600c546127df600a5486611ec790919063ffffffff16565b9050612b51565b6001600160a01b03841660009081526011602052604090205460ff1615612b5157612b4e600c546127df600b5486611ec790919063ffffffff16565b90505b8015612bcb57306000908152601b6020526040902054612b719082611f8f565b306000818152601b6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612bc29085815260200190565b60405180910390a35b61214383826126e8565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612c0a57612c0a6130a1565b6001600160a01b039283166020918202929092018101919091528054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612c5d57600080fd5b505afa158015612c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c959190612d5c565b81600181518110612ca857612ca86130a1565b6001600160a01b0392831660209182029290920181019190915254612cd09130911684611fee565b60205460405163791ac94760e01b81526001600160a01b039091169063791ac94790612d09908590600090869030904290600401612f6f565b600060405180830381600087803b158015612d2357600080fd5b505af1158015612d37573d6000803e3d6000fd5b505050505050565b600060208284031215612d5157600080fd5b8135611f46816130b7565b600060208284031215612d6e57600080fd5b8151611f46816130b7565b60008060408385031215612d8c57600080fd5b8235612d97816130b7565b91506020830135612da7816130b7565b809150509250929050565b600080600060608486031215612dc757600080fd5b8335612dd2816130b7565b92506020840135612de2816130b7565b929592945050506040919091013590565b60008060408385031215612e0657600080fd5b8235612e11816130b7565b91506020830135612da7816130cc565b60008060408385031215612e3457600080fd5b8235612e3f816130b7565b946020939093013593505050565b600060208284031215612e5f57600080fd5b8135611f46816130cc565b600060208284031215612e7c57600080fd5b8151611f46816130cc565b600060208284031215612e9957600080fd5b5035919050565b600060208284031215612eb257600080fd5b5051919050565b600080600060608486031215612ece57600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015612f1257858101830151858201604001528201612ef6565b81811115612f24576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fbf5784516001600160a01b031683529383019391830191600101612f9a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ff357612ff361308b565b500190565b60008261301557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156130345761303461308b565b500290565b60008282101561304b5761304b61308b565b500390565b600181811c9082168061306457607f821691505b6020821081141561308557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611caa57600080fd5b8015158114611caa57600080fdfea26469706673582212206b6dd0653d592b91022c5573dbe589ba2594052a55f0190b0c3d2831247eefe064736f6c63430008070033
Deployed Bytecode Sourcemap
14303:17520:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18330:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19426:189;;;;;;;;;;-1:-1:-1;19426:189:0;;;;;:::i;:::-;;:::i;:::-;;;4593:14:1;;4586:22;4568:41;;4556:2;4541:18;19426:189:0;4428:187:1;30469:130:0;;;;;;;;;;-1:-1:-1;30469:130:0;;;;;:::i;:::-;;:::i;:::-;;14815:36;;;;;;;;;;;;;;;;;;;10176:25:1;;;10164:2;10149:18;14815:36:0;10030:177:1;18607:102:0;;;;;;;;;;-1:-1:-1;18689:12:0;;18607:102;;16180:33;;;;;;;;;;-1:-1:-1;16180:33:0;;;;;;;;;;;27669:333;;;;;;;;;;-1:-1:-1;27669:333:0;;;;;:::i;:::-;;:::i;4792:231::-;;;;;;;;;;;;;:::i;15832:68::-;;;;;;;;;;;;;;;;20234:447;;;;;;;;;;-1:-1:-1;20234:447:0;;;;;:::i;:::-;;:::i;27336:325::-;;;;;;;;;;-1:-1:-1;27336:325:0;;;;;:::i;:::-;;:::i;26657:112::-;;;;;;;;;;-1:-1:-1;26657:112:0;;;;;:::i;:::-;;:::i;19043:154::-;;;;;;;;;;;;;:::i;18516:83::-;;;;;;;;;;-1:-1:-1;18582:9:0;;18516:83;;18582:9;;;;11339:36:1;;11327:2;11312:18;18516:83:0;11197:184:1;29529:104:0;;;;;;;;;;-1:-1:-1;29529:104:0;;;;;:::i;:::-;;:::i;15747:72::-;;;;;;;;;;;;;;;;31063:141;;;;;;;;;;-1:-1:-1;31063:141:0;;;;;:::i;:::-;;:::i;29391:130::-;;;;;;;;;;-1:-1:-1;29391:130:0;;;;;:::i;:::-;;:::i;25988:388::-;;;;;;;;;;-1:-1:-1;25988:388:0;;;;;:::i;:::-;;:::i;29770:88::-;;;;;;;;;;;;;:::i;14590:30::-;;;;;;;;;;;;;;;;29866:84;;;;;;;;;;;;;:::i;15430:46::-;;;;;;;;;;-1:-1:-1;15430:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15533:57;;;;;;;;;;;;;;;;14860:83;;;;;;;;;;-1:-1:-1;14860:83:0;;;;-1:-1:-1;;;;;14860:83:0;;;;;;-1:-1:-1;;;;;3438:32:1;;;3420:51;;3408:2;3393:18;14860:83:0;3274:203:1;30127:139:0;;;;;;;;;;-1:-1:-1;30127:139:0;;;;;:::i;:::-;;:::i;30274:187::-;;;;;;;;;;-1:-1:-1;30274:187:0;;;;;:::i;:::-;;:::i;26883:96::-;;;;;;;;;;-1:-1:-1;26883:96:0;;;;;:::i;:::-;;:::i;29125:121::-;;;;;;;;;;-1:-1:-1;29125:121:0;;;;;:::i;:::-;;:::i;30607:183::-;;;;;;;;;;-1:-1:-1;30607:183:0;;;;;:::i;:::-;;:::i;26384:143::-;;;;;;;;;;;;;:::i;14673:32::-;;;;;;;;;;;;;;;;29254:129;;;;;;;;;;-1:-1:-1;29254:129:0;;;;;:::i;:::-;;:::i;26535:114::-;;;;;;;;;;-1:-1:-1;26535:114:0;;;;;:::i;:::-;;:::i;27234:94::-;;;;;;;;;;-1:-1:-1;27234:94:0;;;;;:::i;:::-;;:::i;18720:119::-;;;;;;;;;;-1:-1:-1;18720:119:0;;;;;:::i;:::-;;:::i;16141:32::-;;;;;;;;;;-1:-1:-1;16141:32:0;;;;;;;;27125:101;;;;;;;;;;-1:-1:-1;27125:101:0;;;;;:::i;:::-;;:::i;30798:126::-;;;;;;;;;;-1:-1:-1;30798:126:0;;;;;:::i;:::-;;:::i;14509:36::-;;;;;;;;;;;;;;;;19205:85;;;;;;;;;;-1:-1:-1;19276:6:0;;-1:-1:-1;;;19276:6:0;;;;19275:7;19205:85;;15919:41;;;;;;;;;;-1:-1:-1;15919:41:0;;;;;;;;15190:48;;;;;;;;;;-1:-1:-1;15190:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16298:31;;;;;;;;;;-1:-1:-1;16298:31:0;;;;-1:-1:-1;;;;;16298:31:0;;;4467:79;;;;;;;;;;-1:-1:-1;4505:7:0;4532:6;-1:-1:-1;;;;;4532:6:0;4467:79;;14712:31;;;;;;;;;;;;;;;;4692:92;;;;;;;;;;-1:-1:-1;4732:4:0;4770:6;-1:-1:-1;;;;;4770:6:0;4756:10;:20;4692:92;;14629:37;;;;;;;;;;;;;;;;18421:87;;;;;;;;;;;;;:::i;25408:572::-;;;;;;;;;;-1:-1:-1;25408:572:0;;;;;:::i;:::-;;:::i;20011:215::-;;;;;;;;;;-1:-1:-1;20011:215:0;;;;;:::i;:::-;;:::i;14752:23::-;;;;;;;;;;;;;;;;29976:143;;;;;;;;;;-1:-1:-1;29976:143:0;;;;;:::i;:::-;;:::i;15310:58::-;;;;;;;;;;-1:-1:-1;15310:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;28392:295;;;;;;;;;;-1:-1:-1;28392:295:0;;;;;:::i;:::-;;:::i;16222:32::-;;;;;;;;;;-1:-1:-1;16222:32:0;;;;;;;-1:-1:-1;;;;;16222:32:0;;;15245:52;;;;;;;;;;-1:-1:-1;15245:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15377:46;;;;;;;;;;-1:-1:-1;15377:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19298:120;;;;;;;;;;-1:-1:-1;19298:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;19384:26:0;19360:4;19384:26;;;:19;:26;;;;;;;;;19298:120;29643:101;;;;;;;;;;-1:-1:-1;29643:101:0;;;;;:::i;:::-;;:::i;18847:188::-;;;;;;;;;;-1:-1:-1;18847:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;18999:19:0;;;18967:7;18999:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18847:188;14552:31;;;;;;;;;;;;;;;;28696:289;;;;;;;;;;-1:-1:-1;28696:289:0;;;;;:::i;:::-;;:::i;26987:130::-;;;;;;;;;;-1:-1:-1;26987:130:0;;;;;:::i;:::-;;:::i;14782:24::-;;;;;;;;;;;;;;;;28996:121;;;;;;;;;;-1:-1:-1;28996:121:0;;;;;:::i;:::-;;:::i;15597:64::-;;;;;;;;;;;;;;;;30932:123;;;;;;;;;;;;;:::i;28010:374::-;;;;;;;;;;-1:-1:-1;28010:374:0;;;;;:::i;:::-;;:::i;16261:30::-;;;;;;;;;;-1:-1:-1;16261:30:0;;;;-1:-1:-1;;;;;16261:30:0;;;26777:98;;;;;;;;;;-1:-1:-1;26777:98:0;;;;;:::i;:::-;;:::i;5031:244::-;;;;;;;;;;-1:-1:-1;5031:244:0;;;;;:::i;:::-;;:::i;15967:35::-;;;;;;;;;;-1:-1:-1;15967:35:0;;;;;;;;;;;16336:24;;;;;;;;;;-1:-1:-1;16336:24:0;;;;-1:-1:-1;;;;;16336:24:0;;;15483:41;;;;;;;;;;-1:-1:-1;15483:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15678:60;;;;;;;;;;;;;;;;18330:83;18367:13;18400:5;18393:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18330:83;:::o;19426:189::-;19529:4;19551:34;19560:10;19571:7;19579:5;19551:8;:34::i;:::-;-1:-1:-1;19603:4:0;19426:189;;;;;:::o;30469:130::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;30555:13:::1;::::0;:36:::1;::::0;-1:-1:-1;;;30555:36:0;;-1:-1:-1;;;;;3438:32:1;;;30555:36:0::1;::::0;::::1;3420:51:1::0;30555:13:0;;;::::1;::::0;;::::1;::::0;:25:::1;::::0;3393:18:1;;30555:36:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;30469:130:::0;:::o;27669:333::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;;;;;;;;;27820:16:::1;:32:::0;;;27863:12:::1;:24:::0;;;27898:11:::1;:22:::0;;;27943:51:::1;27912:8:::0;27943:34:::1;27839:13:::0;27878:9;27943:20:::1;:34::i;:::-;:38:::0;::::1;:51::i;:::-;27931:9;:63:::0;-1:-1:-1;;;27669:333:0:o;4792:231::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;4884:6:::1;::::0;;4863:81:::1;::::0;4900:42:::1;::::0;-1:-1:-1;;;;;4884:6:0;;::::1;::::0;4863:81:::1;::::0;::::1;4955:6;:60:::0;;-1:-1:-1;;;;;;4955:60:0::1;4972:42;4955:60;::::0;;4792:231::o;20234:447::-;20377:4;20364:2;-1:-1:-1;;;;;16456:18:0;;16448:27;;;;;;-1:-1:-1;;;;;20408:17:0;::::1;20450:1;20408:17:::0;;;:11:::1;:17;::::0;;;;;;;20426:10:::1;20408:29:::0;;;;;;;;-1:-1:-1;;20408:44:0::1;20404:207;;20501:98;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;20501:98:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;20501:17:0;::::1;-1:-1:-1::0;20501:17:0;;;:11:::1;:17:::0;;;;;20537:10:::1;20501:61:::0;;;;;;;;;;:98:::1;::::0;20567:5;;20501:65:::1;:98::i;:::-;-1:-1:-1::0;;;;;20469:17:0;::::1;;::::0;;;:11:::1;:17;::::0;;;;;;;20487:10:::1;20469:29:::0;;;;;;;:130;20404:207:::1;20621:30;20635:4;20641:2;20645:5;20621:13;:30::i;:::-;-1:-1:-1::0;20669:4:0::1;::::0;20234:447;-1:-1:-1;;;;;20234:447:0:o;27336:325::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;27486:15:::1;:31:::0;;;27528:11:::1;:23:::0;;;27562:10:::1;:21:::0;;;27605:48:::1;27575:8:::0;27605:32:::1;27504:13:::0;27542:9;27605:19:::1;:32::i;:48::-;27594:8;:59:::0;-1:-1:-1;;;27336:325:0:o;26657:112::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;26735:16:::1;:26:::0;;;::::1;;;;-1:-1:-1::0;;26735:26:0;;::::1;::::0;;;::::1;::::0;;26657:112::o;19043:154::-;19167:9;:21;;;;14990:42;19096:7;19140:21;;;;;19123:12;;19096:7;;19123:66;;19167:21;;19123:39;;:12;:16;:39::i;:::-;:43;;:66::i;:::-;19116:73;;19043:154;:::o;29529:104::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;29598:18:::1;:27:::0;29529:104::o;31063:141::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;31154:42:::1;::::0;-1:-1:-1;;;31154:42:0;;31178:10:::1;31154:42;::::0;::::1;4044:51:1::0;4111:18;;;4104:34;;;-1:-1:-1;;;;;31154:23:0;::::1;::::0;::::1;::::0;4017:18:1;;31154:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;31063:141:::0;;:::o;29391:130::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29479:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;29479:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;29391:130::o;25988:388::-;26157:10;26088:4;26145:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26145:56:0;;;;;;;;;;:72;;26206:10;26145:60;:72::i;:::-;26122:10;26110:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26110:32:0;;;;;;;;;;;;:107;;;26233:113;10176:25:1;;;26110:32:0;;26233:113;;10149:18:1;26233:113:0;;;;;;;-1:-1:-1;26364:4:0;25988:388;;;;:::o;29770:88::-;29813:13;;:37;;-1:-1:-1;;;29813:37:0;;29839:10;29813:37;;;3420:51:1;29813:13:0;;;;-1:-1:-1;;;;;29813:13:0;;:25;;3393:18:1;;29813:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29770:88::o;29866:84::-;29907:11;;:35;;-1:-1:-1;;;29907:35:0;;29931:10;29907:35;;;3420:51:1;-1:-1:-1;;;;;29907:11:0;;;;:23;;3393:18:1;;29907:35:0;3274:203:1;30127:139:0;30219:11;;:39;;-1:-1:-1;;;30219:39:0;;-1:-1:-1;;;;;3438:32:1;;;30219:39:0;;;3420:51:1;30195:4:0;;30219:11;;:28;;3393:18:1;;30219:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;30274:187::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;30397:13:::1;::::0;:56:::1;::::0;-1:-1:-1;;;30397:56:0;;-1:-1:-1;;;;;3740:15:1;;;30397:56:0::1;::::0;::::1;3722:34:1::0;3792:15;;;3772:18;;;3765:43;3824:18;;;3817:34;;;30397:13:0;;;::::1;::::0;;::::1;::::0;:25:::1;::::0;3657:18:1;;30397:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;30274:187:::0;;;:::o;26883:96::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;26950:13:::1;:21:::0;;-1:-1:-1;;26950:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26883:96::o;29125:121::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29206:22:0;;;::::1;;::::0;;;:15:::1;:22;::::0;;;;:32;;-1:-1:-1;;29206:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;29125:121::o;30607:183::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;30728:11:::1;::::0;:54:::1;::::0;-1:-1:-1;;;30728:54:0;;-1:-1:-1;;;;;3740:15:1;;;30728:54:0::1;::::0;::::1;3722:34:1::0;3792:15;;;3772:18;;;3765:43;3824:18;;;3817:34;;;30728:11:0;;::::1;::::0;:23:::1;::::0;3657:18:1;;30728:54:0::1;3482:375:1::0;26384:143:0;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;26439:6:::1;::::0;-1:-1:-1;;;26439:6:0;::::1;;;26436:63;;;26462:25;::::0;-1:-1:-1;;;26462:25:0;;8430:2:1;26462:25:0::1;::::0;::::1;8412:21:1::0;8469:2;8449:18;;;8442:30;-1:-1:-1;;;8488:18:1;;;8481:45;8543:18;;26462:25:0::1;8228:339:1::0;26436:63:0::1;26509:10;:8;:10::i;:::-;26384:143::o:0;29254:129::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29339:26:0;;;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;29339:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;29254:129::o;26535:114::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;26609:22:::1;:32:::0;;-1:-1:-1;;26609:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26535:114::o;27234:94::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;27300:10:::1;:19:::0;27234:94::o;18720:119::-;-1:-1:-1;;;;;18813:18:0;18786:7;18813:18;;;:9;:18;;;;;;;18720:119::o;27125:101::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;27195:14:::1;:23:::0;27125:101::o;30798:126::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;30882:11:::1;::::0;:34:::1;::::0;-1:-1:-1;;;30882:34:0;;-1:-1:-1;;;;;3438:32:1;;;30882:34:0::1;::::0;::::1;3420:51:1::0;30882:11:0;;::::1;::::0;:23:::1;::::0;3393:18:1;;30882:34:0::1;3274:203:1::0;18421:87:0;18460:13;18493:7;18486:14;;;;;:::i;25408:572::-;25566:10;25513:4;25554:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25554:32:0;;;;;;;;;;25601:27;;;25597:225;;25657:10;25680:1;25645:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25645:32:0;;;;;;;;;:36;25597:225;;;25749:61;:8;25780:15;25749:12;:61::i;:::-;25726:10;25714:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25714:32:0;;;;;;;;;:96;25597:225;25860:10;25907:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25837:113:0;;25907:32;;;;;;;;;;;25837:113;;10176:25:1;;;25837:113:0;;25860:10;25837:113;;10149:18:1;25837:113:0;;;;;;;-1:-1:-1;25968:4:0;;25408:572;-1:-1:-1;;;25408:572:0:o;20011:215::-;20138:4;20116:2;-1:-1:-1;;;;;16456:18:0;;16448:27;;;;;;20160:36:::1;20174:10;20186:2;20190:5;20160:13;:36::i;:::-;-1:-1:-1::0;20214:4:0::1;::::0;20011:215;-1:-1:-1;;;;20011:215:0:o;29976:143::-;30070:13;;:41;;-1:-1:-1;;;30070:41:0;;-1:-1:-1;;;;;3438:32:1;;;30070:41:0;;;3420:51:1;30046:4:0;;30070:13;;;;;:30;;3393:18:1;;30070:41:0;3274:203:1;28392:295:0;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;28483:7:::1;28480:158;;;28507:13;::::0;:31:::1;::::0;-1:-1:-1;;;28507:31:0;;-1:-1:-1;;;;;4062:32:1;;;28507:31:0::1;::::0;::::1;4044:51:1::0;28536:1:0::1;4111:18:1::0;;;4104:34;28507:13:0;;;::::1;::::0;;::::1;::::0;:22:::1;::::0;4017:18:1;;28507:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28480:158;;;28580:13;::::0;;;::::1;-1:-1:-1::0;;;;;28580:13:0::1;:22;28603:5:::0;28609:16:::1;28603:5:::0;28609:9:::1;:16::i;:::-;28580:46;::::0;-1:-1:-1;;;;;;28580:46:0::1;::::0;;;;;;-1:-1:-1;;;;;4062:32:1;;;28580:46:0::1;::::0;::::1;4044:51:1::0;4111:18;;;4104:34;4017:18;;28580:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28480:158;-1:-1:-1::0;;;;;28648:21:0;;;::::1;;::::0;;;:14:::1;:21;::::0;;;;:31;;-1:-1:-1;;28648:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28392:295::o;29643:101::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;29713:14:::1;:23:::0;29643:101::o;28696:289::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;28785:7:::1;28782:154;;;28809:11;::::0;:29:::1;::::0;-1:-1:-1;;;28809:29:0;;-1:-1:-1;;;;;4062:32:1;;;28809:29:0::1;::::0;::::1;4044:51:1::0;28809:11:0::1;4111:18:1::0;;;4104:34;28809:11:0;;::::1;::::0;:20:::1;::::0;4017:18:1;;28809:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28782:154;;;28880:11;::::0;-1:-1:-1;;;;;28880:11:0::1;:20;28901:5:::0;28907:16:::1;28901:5:::0;28907:9:::1;:16::i;:::-;28880:44;::::0;-1:-1:-1;;;;;;28880:44:0::1;::::0;;;;;;-1:-1:-1;;;;;4062:32:1;;;28880:44:0::1;::::0;::::1;4044:51:1::0;4111:18;;;4104:34;4017:18;;28880:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28782:154;-1:-1:-1::0;;;;;28946:21:0;;;::::1;;::::0;;;:14:::1;:21;::::0;;;;:31;;-1:-1:-1;;28946:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28696:289::o;26987:130::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;27073:23:::1;:36:::0;;-1:-1:-1;;;;;;27073:36:0::1;-1:-1:-1::0;;;;;27073:36:0;;;::::1;::::0;;;::::1;::::0;;26987:130::o;28996:121::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29073:26:0;;;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;29073:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28996:121::o;30932:123::-;16566:16;;-1:-1:-1;;;;;16566:16:0;16552:10;:30;16544:39;;;;;;30996:51:::1;::::0;31004:10:::1;::::0;31025:21:::1;30996:51:::0;::::1;;;::::0;::::1;::::0;;;31025:21;31004:10;30996:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;30932:123::o:0;28010:374::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;28103:7:::1;28100:102;;;-1:-1:-1::0;;;;;28136:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;::::1;;28135:33;28127:63;;;::::0;-1:-1:-1;;;28127:63:0;;6916:2:1;28127:63:0::1;::::0;::::1;6898:21:1::0;6955:2;6935:18;;;6928:30;-1:-1:-1;;;6974:18:1;;;6967:48;7032:18;;28127:63:0::1;6714:342:1::0;28127:63:0::1;-1:-1:-1::0;;;;;28212:32:0;;::::1;;::::0;;;:25:::1;:32;::::0;;;;;;;:42;;;::::1;;-1:-1:-1::0;;28212:42:0;;::::1;;::::0;;28265:19:::1;:26:::0;;;;;:33;;;::::1;28212:42:::0;28265:33;;::::1;::::0;;;28309:14:::1;:21:::0;;;;;:28;;;::::1;::::0;::::1;::::0;;28348:14:::1;:21:::0;;;;;;:28;;;;::::1;;::::0;;28010:374::o;26777:98::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;26844:13:::1;:23:::0;;;::::1;;;;-1:-1:-1::0;;26844:23:0;;::::1;::::0;;;::::1;::::0;;26777:98::o;5031:244::-;4601:6;;-1:-1:-1;;;;;4601:6:0;314:10;4601:22;4593:67;;;;-1:-1:-1;;;4593:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5120:22:0;::::1;5112:73;;;::::0;-1:-1:-1;;;5112:73:0;;6106:2:1;5112:73:0::1;::::0;::::1;6088:21:1::0;6145:2;6125:18;;;6118:30;6184:34;6164:18;;;6157:62;-1:-1:-1;;;6235:18:1;;;6228:36;6281:19;;5112:73:0::1;5904:402:1::0;5112:73:0::1;5222:6;::::0;;5201:38:::1;::::0;-1:-1:-1;;;;;5201:38:0;;::::1;::::0;5222:6;::::1;::::0;5201:38:::1;::::0;::::1;5250:6;:17:::0;;-1:-1:-1;;;;;;5250:17:0::1;-1:-1:-1::0;;;;;5250:17:0;;;::::1;::::0;;;::::1;::::0;;5031:244::o;1051:250::-;1109:7;1133:6;1129:47;;-1:-1:-1;1163:1:0;1156:8;;1129:47;1188:9;1200:5;1204:1;1200;:5;:::i;:::-;1188:17;-1:-1:-1;1233:1:0;1224:5;1228:1;1188:17;1224:5;:::i;:::-;:10;1216:56;;;;-1:-1:-1;;;1216:56:0;;8028:2:1;1216:56:0;;;8010:21:1;8067:2;8047:18;;;8040:30;8106:34;8086:18;;;8079:62;-1:-1:-1;;;8157:18:1;;;8150:31;8198:19;;1216:56:0;7826:397:1;1216:56:0;1292:1;1051:250;-1:-1:-1;;;1051:250:0:o;1309:132::-;1367:7;1394:39;1398:1;1401;1394:39;;;;;;;;;;;;;;;;;:3;:39::i;484:181::-;542:7;;574:5;578:1;574;:5;:::i;:::-;562:17;;603:1;598;:6;;590:46;;;;-1:-1:-1;;;590:46:0;;7263:2:1;590:46:0;;;7245:21:1;7302:2;7282:18;;;7275:30;7341:29;7321:18;;;7314:57;7388:18;;590:46:0;7061:351:1;19623:380:0;-1:-1:-1;;;;;19759:19:0;;19751:68;;;;-1:-1:-1;;;19751:68:0;;9476:2:1;19751:68:0;;;9458:21:1;9515:2;9495:18;;;9488:30;9554:34;9534:18;;;9527:62;-1:-1:-1;;;9605:18:1;;;9598:34;9649:19;;19751:68:0;9274:400:1;19751:68:0;-1:-1:-1;;;;;19838:21:0;;19830:68;;;;-1:-1:-1;;;19830:68:0;;6513:2:1;19830:68:0;;;6495:21:1;6552:2;6532:18;;;6525:30;6591:34;6571:18;;;6564:62;-1:-1:-1;;;6642:18:1;;;6635:32;6684:19;;19830:68:0;6311:398:1;19830:68:0;-1:-1:-1;;;;;19911:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19963:32;;10176:25:1;;;19963:32:0;;10149:18:1;19963:32:0;;;;;;;19623:380;;;:::o;817:226::-;937:7;973:12;965:6;;;;957:29;;;;-1:-1:-1;;;957:29:0;;;;;;;;:::i;:::-;-1:-1:-1;997:9:0;1009:5;1013:1;1009;:5;:::i;:::-;997:17;817:226;-1:-1:-1;;;;;817:226:0:o;20959:1733::-;-1:-1:-1;;;;;21113:17:0;;21085:4;21113:17;;;:9;:17;;;;;;;;21112:18;:43;;;;-1:-1:-1;;;;;;21135:20:0;;;;;;:9;:20;;;;;;;;21134:21;21112:43;21104:68;;;;-1:-1:-1;;;21104:68:0;;9135:2:1;21104:68:0;;;9117:21:1;9174:2;9154:18;;;9147:30;-1:-1:-1;;;9193:18:1;;;9186:42;9245:18;;21104:68:0;8933:336:1;21104:68:0;21189:13;;;;;;;21185:141;;-1:-1:-1;;;;;21226:27:0;;;;;;:19;:27;;;;;;;;;:61;;-1:-1:-1;;;;;;21257:30:0;;;;;;:19;:30;;;;;;;;21226:61;21218:95;;;;-1:-1:-1;;;21218:95:0;;9881:2:1;21218:95:0;;;9863:21:1;9920:2;9900:18;;;9893:30;-1:-1:-1;;;9939:18:1;;;9932:52;10001:18;;21218:95:0;9679:346:1;21218:95:0;-1:-1:-1;;;;;21342:23:0;;;;;;:15;:23;;;;;;;;21341:24;:55;;;;-1:-1:-1;;;;;;21370:26:0;;;;;;:15;:26;;;;;;;;21369:27;21341:55;:81;;;;-1:-1:-1;21400:22:0;;;;21341:81;21338:186;;;21457:10;;21447:6;:20;;21439:73;;;;-1:-1:-1;;;21439:73:0;;7619:2:1;21439:73:0;;;7601:21:1;7658:2;7638:18;;;7631:30;7697:34;7677:18;;;7670:62;-1:-1:-1;;;7748:18:1;;;7741:38;7796:19;;21439:73:0;7417:404:1;21439:73:0;21540:6;;-1:-1:-1;;;21540:6:0;;;;21536:87;;;21570:41;21585:6;21593:9;21604:6;21570:14;:41::i;:::-;21563:48;;;;21536:87;21639:16;:14;:16::i;:::-;21635:59;;;21672:10;:8;:10::i;:::-;-1:-1:-1;;;;;21734:17:0;;;;;;:9;:17;;;;;;:29;;21756:6;21734:21;:29::i;:::-;-1:-1:-1;;;;;21714:17:0;;;;;;:9;:17;;;;;:49;;;;21809:32;21724:6;21831:9;21809:13;:32::i;:::-;:104;;21907:6;21809:104;;;21857:34;21865:6;21873:9;21884:6;21857:7;:34::i;:::-;21929:16;;21784:129;;-1:-1:-1;21929:16:0;;;;;:51;;;;-1:-1:-1;;;;;;21950:30:0;;;;;;:19;:30;;;;;;;;21949:31;21929:51;21926:150;;;22049:14;;22005:40;22030:14;22005:20;22015:9;22005;:20::i;:40::-;:58;;21997:67;;;;;;-1:-1:-1;;;;;22119:20:0;;;;;;:9;:20;;;;;;:40;;22144:14;22119:24;:40::i;:::-;-1:-1:-1;;;;;22096:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;22176:22;;;;;:14;:22;;;;;;;22172:96;;22205:13;;;;;-1:-1:-1;;;;;22205:13:0;:22;22228:6;22236:17;22228:6;22236:9;:17::i;:::-;22205:49;;-1:-1:-1;;;;;;22205:49:0;;;;;;;-1:-1:-1;;;;;4062:32:1;;;22205:49:0;;;4044:51:1;4111:18;;;4104:34;4017:18;;22205:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22201:65;;-1:-1:-1;;;;;22282:25:0;;;;;;:14;:25;;;;;;;;22278:105;;22314:13;;;;;-1:-1:-1;;;;;22314:13:0;:22;22337:9;22348:20;22337:9;22348;:20::i;:::-;22314:55;;-1:-1:-1;;;;;;22314:55:0;;;;;;;-1:-1:-1;;;;;4062:32:1;;;22314:55:0;;;4044:51:1;4111:18;;;4104:34;4017:18;;22314:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22310:71;;-1:-1:-1;;;;;22399:22:0;;;;;;:14;:22;;;;;;;;22395:94;;22428:11;;-1:-1:-1;;;;;22428:11:0;:20;22449:6;22457:17;22449:6;22457:9;:17::i;:::-;22428:47;;-1:-1:-1;;;;;;22428:47:0;;;;;;;-1:-1:-1;;;;;4062:32:1;;;22428:47:0;;;4044:51:1;4111:18;;;4104:34;4017:18;;22428:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22424:63;;-1:-1:-1;;;;;22503:25:0;;;;;;:14;:25;;;;;;;;22499:103;;22535:11;;-1:-1:-1;;;;;22535:11:0;:20;22556:9;22567:20;22556:9;22567;:20::i;:::-;22535:53;;-1:-1:-1;;;;;;22535:53:0;;;;;;;-1:-1:-1;;;;;4062:32:1;;;22535:53:0;;;4044:51:1;4111:18;;;4104:34;4017:18;;22535:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22531:69;;22635:9;-1:-1:-1;;;;;22619:41:0;22628:6;-1:-1:-1;;;;;22619:41:0;;22645:14;22619:41;;;;10176:25:1;;10164:2;10149:18;;10030:177;22619:41:0;;;;;;;;-1:-1:-1;22680:4:0;;20959:1733;-1:-1:-1;;;;20959:1733:0:o;673:136::-;731:7;758:43;762:1;765;758:43;;;;;;;;;;;;;;;;;:3;:43::i;23373:1317::-;16642:6;:13;;-1:-1:-1;;;;16642:13:0;-1:-1:-1;;;16642:13:0;;;;23448:24:::1;23466:4;23448:9;:24::i;:::-;23422:50;;23483:16;23502:23;23515:9;;23502:8;;:12;;:23;;;;:::i;:::-;23483:42:::0;-1:-1:-1;23539:16:0;23536:28:::1;;23557:7;;;;23536:28;23597:14;;23579:15;:32;23576:96;;;23646:14;;23628:32;;23576:96;23684:13;23700:37;23720:16;;23700:15;;:19;;:37;;;;:::i;:::-;23684:53;;23748:15;23766:29;23782:12;;23766:11;;:15;;:29;;;;:::i;:::-;23748:47:::0;-1:-1:-1;23886:21:0::1;23918:33;23935:15:::0;23918:16:::1;:33::i;:::-;23962:20;23985:40;:21;24011:13:::0;23985:25:::1;:40::i;:::-;23962:63:::0;-1:-1:-1;24038:20:0::1;24061:46;24095:11:::0;24061:29:::1;23962:63:::0;24081:8;24061:19:::1;:29::i;:::-;:33:::0;::::1;:46::i;:::-;24038:69:::0;-1:-1:-1;24118:22:0::1;24143:48;24179:11:::0;24143:31:::1;:15:::0;24163:10;24143:19:::1;:31::i;:48::-;24118:73:::0;-1:-1:-1;24202:22:0::1;24227:59;24118:73:::0;24227:36:::1;:15:::0;24247;24227:19:::1;:36::i;:59::-;24202:84:::0;-1:-1:-1;24300:19:0;;24297:109:::1;;24344:23;::::0;24336:58:::1;::::0;-1:-1:-1;;;;;24344:23:0;;::::1;::::0;24336:58;::::1;;;::::0;24378:15;;24344:23:::1;24336:58:::0;24344:23;24336:58;24378:15;24344:23;24336:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24297:109;24419:21:::0;;24416:134:::1;;24461:13;;;;;;;;;-1:-1:-1::0;;;;;24461:13:0::1;-1:-1:-1::0;;;;;24461:21:0::1;;24492:17;24461:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24457:69:::0;::::1;24563:21:::0;;24560:123:::1;;24605:11;;;;;;;;;-1:-1:-1::0;;;;;24605:11:0::1;-1:-1:-1::0;;;;;24605:19:0::1;;24634:17;24605:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24601:67:::0;::::1;23411:1279;;;;;;;;;16666:1;16678:6:::0;:14;;-1:-1:-1;;;;16678:14:0;;;23373:1317::o;1449:225::-;1569:7;1604:12;1597:5;1589:28;;;;-1:-1:-1;;;1589:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1628:9:0;1640:5;1644:1;1640;:5;:::i;20689:262::-;-1:-1:-1;;;;;20842:15:0;;20807:4;20842:15;;;:9;:15;;;;;;:27;;20862:6;20842:19;:27::i;:::-;-1:-1:-1;;;;;20824:15:0;;;;;;;:9;:15;;;;;;:45;;;;20896:13;;;;;;;:25;;20914:6;20896:17;:25::i;:::-;-1:-1:-1;;;;;20880:13:0;;;;;;:9;:13;;;;;:41;-1:-1:-1;20939:4:0;20689:262;;;;;:::o;25051:349::-;25100:4;25119:28;25150:24;25168:4;25150:9;:24::i;:::-;25224:18;;25119:55;;-1:-1:-1;25200:42:0;;;;;;;25275:37;;-1:-1:-1;25299:13:0;;;;25275:37;:61;;;;-1:-1:-1;25330:6:0;;-1:-1:-1;;;25330:6:0;;;;25329:7;25275:61;:116;;;;-1:-1:-1;25380:10:0;25354:37;;;;:25;:37;;;;;;;;25353:38;25275:116;25255:136;;;;25051:349;:::o;24698:345::-;-1:-1:-1;;;;;24822:25:0;;24797:4;24822:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;24851:23:0;;;;;;:19;:23;;;;;;;;24822:52;24819:217;;;-1:-1:-1;24897:5:0;24890:12;;24819:217;-1:-1:-1;;;;;24959:31:0;;;;;;:25;:31;;;;;;;;;:64;;-1:-1:-1;;;;;;24994:29:0;;;;;;:25;:29;;;;;;;;24959:64;24951:73;;;;22700:665;-1:-1:-1;;;;;22884:33:0;;22821:7;22884:33;;;:25;:33;;;;;;22821:7;;22884:33;;22881:251;;;22945:40;22970:14;;22945:20;22956:8;;22945:6;:10;;:20;;;;:::i;:40::-;22933:52;;22881:251;;;-1:-1:-1;;;;;23015:36:0;;;;;;:25;:36;;;;;;;;23012:120;;;23079:41;23105:14;;23079:21;23090:9;;23079:6;:10;;:21;;;;:::i;:41::-;23067:53;;23012:120;23147:13;;23144:173;;23222:4;23204:24;;;;:9;:24;;;;;;:39;;23233:9;23204:28;:39::i;:::-;23195:4;23177:24;;;;:9;:24;;;;;;;:66;;;;23263:42;;-1:-1:-1;;;;;23263:42:0;;;;;;;23295:9;10176:25:1;;10164:2;10149:18;;10030:177;23263:42:0;;;;;;;;23144:173;23336:21;:6;23347:9;23336:10;:21::i;31216:562::-;31366:16;;;31380:1;31366:16;;;;;;;;31342:21;;31366:16;;;;;;;;;;-1:-1:-1;31366:16:0;31342:40;;31411:4;31393;31398:1;31393:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;31393:23:0;;;:7;;;;;;;;;;:23;;;;31437:6;;:13;;;-1:-1:-1;;;31437:13:0;;;;:6;;;;;:11;;:13;;;;;31393:7;;31437:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31427:4;31432:1;31427:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;31427:23:0;;;:7;;;;;;;;;;:23;;;;31495:6;31463:53;;31480:4;;31495:6;31504:11;31463:8;:53::i;:::-;31555:6;;:215;;-1:-1:-1;;;31555:215:0;;-1:-1:-1;;;;;31555:6:0;;;;:57;;:215;;31627:11;;31555:6;;31697:4;;31724;;31744:15;;31555:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31271:507;31216:562;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:382::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1696:30;1655:32;1696:30;:::i;1763:315::-;1831:6;1839;1892:2;1880:9;1871:7;1867:23;1863:32;1860:52;;;1908:1;1905;1898:12;1860:52;1947:9;1934:23;1966:31;1991:5;1966:31;:::i;:::-;2016:5;2068:2;2053:18;;;;2040:32;;-1:-1:-1;;;1763:315:1:o;2083:241::-;2139:6;2192:2;2180:9;2171:7;2167:23;2163:32;2160:52;;;2208:1;2205;2198:12;2160:52;2247:9;2234:23;2266:28;2288:5;2266:28;:::i;2329:245::-;2396:6;2449:2;2437:9;2428:7;2424:23;2420:32;2417:52;;;2465:1;2462;2455:12;2417:52;2497:9;2491:16;2516:28;2538:5;2516:28;:::i;2579:180::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;-1:-1:-1;2730:23:1;;2579:180;-1:-1:-1;2579:180:1:o;2764:184::-;2834:6;2887:2;2875:9;2866:7;2862:23;2858:32;2855:52;;;2903:1;2900;2893:12;2855:52;-1:-1:-1;2926:16:1;;2764:184;-1:-1:-1;2764:184:1:o;2953:316::-;3030:6;3038;3046;3099:2;3087:9;3078:7;3074:23;3070:32;3067:52;;;3115:1;3112;3105:12;3067:52;-1:-1:-1;;3138:23:1;;;3208:2;3193:18;;3180:32;;-1:-1:-1;3259:2:1;3244:18;;;3231:32;;2953:316;-1:-1:-1;2953:316:1:o;5302:597::-;5414:4;5443:2;5472;5461:9;5454:21;5504:6;5498:13;5547:6;5542:2;5531:9;5527:18;5520:34;5572:1;5582:140;5596:6;5593:1;5590:13;5582:140;;;5691:14;;;5687:23;;5681:30;5657:17;;;5676:2;5653:26;5646:66;5611:10;;5582:140;;;5740:6;5737:1;5734:13;5731:91;;;5810:1;5805:2;5796:6;5785:9;5781:22;5777:31;5770:42;5731:91;-1:-1:-1;5883:2:1;5862:15;-1:-1:-1;;5858:29:1;5843:45;;;;5890:2;5839:54;;5302:597;-1:-1:-1;;;5302:597:1:o;8572:356::-;8774:2;8756:21;;;8793:18;;;8786:30;8852:34;8847:2;8832:18;;8825:62;8919:2;8904:18;;8572:356::o;10212:980::-;10474:4;10522:3;10511:9;10507:19;10553:6;10542:9;10535:25;10579:2;10617:6;10612:2;10601:9;10597:18;10590:34;10660:3;10655:2;10644:9;10640:18;10633:31;10684:6;10719;10713:13;10750:6;10742;10735:22;10788:3;10777:9;10773:19;10766:26;;10827:2;10819:6;10815:15;10801:29;;10848:1;10858:195;10872:6;10869:1;10866:13;10858:195;;;10937:13;;-1:-1:-1;;;;;10933:39:1;10921:52;;11028:15;;;;10993:12;;;;10969:1;10887:9;10858:195;;;-1:-1:-1;;;;;;;11109:32:1;;;;11104:2;11089:18;;11082:60;-1:-1:-1;;;11173:3:1;11158:19;11151:35;11070:3;10212:980;-1:-1:-1;;;10212:980:1:o;11386:128::-;11426:3;11457:1;11453:6;11450:1;11447:13;11444:39;;;11463:18;;:::i;:::-;-1:-1:-1;11499:9:1;;11386:128::o;11519:217::-;11559:1;11585;11575:132;;11629:10;11624:3;11620:20;11617:1;11610:31;11664:4;11661:1;11654:15;11692:4;11689:1;11682:15;11575:132;-1:-1:-1;11721:9:1;;11519:217::o;11741:168::-;11781:7;11847:1;11843;11839:6;11835:14;11832:1;11829:21;11824:1;11817:9;11810:17;11806:45;11803:71;;;11854:18;;:::i;:::-;-1:-1:-1;11894:9:1;;11741:168::o;11914:125::-;11954:4;11982:1;11979;11976:8;11973:34;;;11987:18;;:::i;:::-;-1:-1:-1;12024:9:1;;11914:125::o;12044:380::-;12123:1;12119:12;;;;12166;;;12187:61;;12241:4;12233:6;12229:17;12219:27;;12187:61;12294:2;12286:6;12283:14;12263:18;12260:38;12257:161;;;12340:10;12335:3;12331:20;12328:1;12321:31;12375:4;12372:1;12365:15;12403:4;12400:1;12393:15;12257:161;;12044:380;;;:::o;12429:127::-;12490:10;12485:3;12481:20;12478:1;12471:31;12521:4;12518:1;12511:15;12545:4;12542:1;12535:15;12561:127;12622:10;12617:3;12613:20;12610:1;12603:31;12653:4;12650:1;12643:15;12677:4;12674:1;12667:15;12825:131;-1:-1:-1;;;;;12900:31:1;;12890:42;;12880:70;;12946:1;12943;12936:12;12961:118;13047:5;13040:13;13033:21;13026:5;13023:32;13013:60;;13069:1;13066;13059:12
Swarm Source
ipfs://62d30b99f558830faa7eda80b635ee16e8ba2da164ca030ccc75a5f1379afdeb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.