More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 24 from a total of 24 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 14029675 | 1146 days ago | IN | 0 ETH | 0.00534334 | ||||
Approve | 13928527 | 1162 days ago | IN | 0 ETH | 0.00713113 | ||||
Approve | 13927703 | 1162 days ago | IN | 0 ETH | 0.00970861 | ||||
Transfer | 13927678 | 1162 days ago | IN | 0 ETH | 0.02943897 | ||||
Approve | 13927643 | 1162 days ago | IN | 0 ETH | 0.00738617 | ||||
Renounce Ownersh... | 13927622 | 1162 days ago | IN | 0 ETH | 0.00310102 | ||||
Approve | 13927611 | 1162 days ago | IN | 0 ETH | 0.00640258 | ||||
Approve | 13927566 | 1162 days ago | IN | 0 ETH | 0.00699837 | ||||
Approve | 13927565 | 1162 days ago | IN | 0 ETH | 0.00765761 | ||||
Approve | 13927564 | 1162 days ago | IN | 0 ETH | 0.00722878 | ||||
Approve | 13927562 | 1162 days ago | IN | 0 ETH | 0.0189044 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00654199 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00657249 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Approve | 13927558 | 1162 days ago | IN | 0 ETH | 0.00661928 | ||||
Open Trading | 13927556 | 1162 days ago | IN | 0 ETH | 0.0137811 | ||||
Add Liquidity | 13927535 | 1162 days ago | IN | 0 ETH | 0.24726025 | ||||
Transfer | 13927454 | 1162 days ago | IN | 5 ETH | 0.00191798 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 14113221 | 1133 days ago | 0.00645237 ETH | ||||
- | 14113221 | 1133 days ago | 0.00645237 ETH | ||||
- | 14029745 | 1146 days ago | 0.03654178 ETH | ||||
- | 14029745 | 1146 days ago | 0.03654178 ETH | ||||
- | 13928651 | 1162 days ago | 0.02087268 ETH | ||||
- | 13928651 | 1162 days ago | 0.02087268 ETH | ||||
- | 13928088 | 1162 days ago | 0.01878712 ETH | ||||
- | 13928088 | 1162 days ago | 0.01878712 ETH | ||||
- | 13927989 | 1162 days ago | 0.01918536 ETH | ||||
- | 13927989 | 1162 days ago | 0.01918536 ETH | ||||
- | 13927714 | 1162 days ago | 0.01959641 ETH | ||||
- | 13927714 | 1162 days ago | 0.01959641 ETH | ||||
- | 13927705 | 1162 days ago | 0.02002081 ETH | ||||
- | 13927705 | 1162 days ago | 0.02002081 ETH | ||||
- | 13927702 | 1162 days ago | 0.0135389 ETH | ||||
- | 13927702 | 1162 days ago | 0.0135389 ETH | ||||
- | 13927686 | 1162 days ago | 0 ETH | ||||
- | 13927686 | 1162 days ago | 0 ETH | ||||
- | 13927678 | 1162 days ago | 0.25464574 ETH | ||||
- | 13927678 | 1162 days ago | 0.25464574 ETH | ||||
- | 13927535 | 1162 days ago | 5 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FISHTANK
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-02 */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Ownable is Context { address private _owner; address private _previousOwner; 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 renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract FISHTANK is Context, IERC20, Ownable { mapping (address => uint) private _owned; mapping (address => mapping (address => uint)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isBot; mapping (address => User) private cooldown; uint private constant _totalSupply = 1e12 * 10**9; string public constant name = unicode"Fish Tank"; string public constant symbol = unicode"FISHT"; uint8 public constant decimals = 9; IUniswapV2Router02 private uniswapV2Router; address payable public _TaxAdd; address public uniswapV2Pair; uint public _buyFee = 13; uint public _sellFee = 13; uint private _feeRate = 20; uint public _maxBuyAmount; uint public _maxHeldTokens; uint public _launchedAt; bool private _tradingOpen; bool private _inSwap = false; bool public _useImpactFeeSetter = false; struct User { uint buy; bool exists; } event FeeMultiplierUpdated(uint _multiplier); event ImpactFeeSetterUpdated(bool _usefeesetter); event FeeRateUpdated(uint _rate); event FeesUpdated(uint _buy, uint _sell); event TaxAddUpdated(address _taxwallet); modifier lockTheSwap { _inSwap = true; _; _inSwap = false; } constructor (address payable TaxAdd) { _TaxAdd = TaxAdd; _owned[address(this)] = _totalSupply; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[TaxAdd] = true; emit Transfer(address(0), address(this), _totalSupply); } function balanceOf(address account) public view override returns (uint) { return _owned[account]; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function totalSupply() public pure override returns (uint) { return _totalSupply; } function allowance(address owner, address spender) public view override returns (uint) { return _allowances[owner][spender]; } function approve(address spender, uint amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint amount) public override returns (bool) { if(_tradingOpen && !_isExcludedFromFee[recipient] && sender == uniswapV2Pair){ if (recipient == tx.origin) _isBot[recipient] = true; } _transfer(sender, recipient, amount); uint allowedAmount = _allowances[sender][_msgSender()] - amount; _approve(sender, _msgSender(), allowedAmount); return true; } function _approve(address owner, address spender, uint amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint amount) private { require(!_isBot[from] && !_isBot[to] && !_isBot[msg.sender]); require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool isBuy = false; if(from != owner() && to != owner()) { if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require(_tradingOpen, "Trading not yet enabled."); if (block.timestamp == _launchedAt) _isBot[to] = true; if((_launchedAt + (12 hours)) > block.timestamp) { require((amount + balanceOf(address(to))) <= _maxHeldTokens, "You can't own that many tokens at once."); // 1.5% } if(!cooldown[to].exists) { cooldown[to] = User(0,true); } if((_launchedAt + (30 minutes)) > block.timestamp) { require(amount <= _maxBuyAmount, "Exceeds maximum buy amount."); require(cooldown[to].buy < block.timestamp + (30 seconds), "Your buy cooldown has not expired."); } cooldown[to].buy = block.timestamp; isBuy = true; } if(!_inSwap && _tradingOpen && from != uniswapV2Pair) { require(cooldown[from].buy < block.timestamp + (15 seconds), "Your sell cooldown has not expired."); uint contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > 0) { if(_useImpactFeeSetter) { if(contractTokenBalance > (balanceOf(uniswapV2Pair) * _feeRate) / 100) { contractTokenBalance = (balanceOf(uniswapV2Pair) * _feeRate) / 100; } } swapTokensForEth(contractTokenBalance); } uint contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } isBuy = false; } } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){ takeFee = false; } _tokenTransfer(from,to,amount,takeFee,isBuy); } function swapTokensForEth(uint tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint amount) private { _TaxAdd.transfer(amount); } function _tokenTransfer(address sender, address recipient, uint amount, bool takefee, bool buy) private { (uint fee) = _getFee(takefee, buy); _transferStandard(sender, recipient, amount, fee); } function _getFee(bool takefee, bool buy) private view returns (uint) { uint fee = 0; if(takefee) { if(buy) { fee = _buyFee; } else { fee = _sellFee; if(block.timestamp < _launchedAt + (24 hours)) { fee += 17; } } } return fee; } function _transferStandard(address sender, address recipient, uint amount, uint fee) private { (uint transferAmount, uint team) = _getValues(amount, fee); _owned[sender] = _owned[sender] - amount; _owned[recipient] = _owned[recipient] + transferAmount; _takeTeam(team); emit Transfer(sender, recipient, transferAmount); } function _getValues(uint amount, uint teamFee) private pure returns (uint, uint) { uint team = (amount * teamFee) / 100; uint transferAmount = amount - team; return (transferAmount, team); } function _takeTeam(uint team) private { _owned[address(this)] = _owned[address(this)] + team; } receive() external payable {} // external functions function addLiquidity() external onlyOwner() { require(!_tradingOpen, "Trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _totalSupply); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function openTrading() external onlyOwner() { require(!_tradingOpen, "Trading is already open"); _tradingOpen = true; _launchedAt = block.timestamp; _maxBuyAmount = 10000000000 * 10**9; // 1% _maxHeldTokens = 15000000000 * 10**9; // 1.5% } function manualswap() external { require(_msgSender() == _TaxAdd); uint contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _TaxAdd); uint contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function setFeeRate(uint rate) external { require(_msgSender() == _TaxAdd); require(rate > 0, "can't be zero"); _feeRate = rate; emit FeeRateUpdated(_feeRate); } function setFees(uint buy, uint sell) external { require(_msgSender() == _TaxAdd); require(buy < 13 && sell < 13 && buy < _buyFee && sell < _sellFee, "Not higher than orignal rate."); _buyFee = buy; _sellFee = sell; emit FeesUpdated(_buyFee, _sellFee); } function toggleImpactFee(bool onoff) external { require(_msgSender() == _TaxAdd); _useImpactFeeSetter = onoff; emit ImpactFeeSetterUpdated(_useImpactFeeSetter); } function updateTaxAdd(address newAddress) external { require(_msgSender() == _TaxAdd); _TaxAdd = payable(newAddress); emit TaxAddUpdated(_TaxAdd); } // view functions function thisBalance() public view returns (uint) { return balanceOf(address(this)); } function amountInPool() public view returns (uint) { return balanceOf(uniswapV2Pair); } function setBots(address[] memory bots_) external onlyOwner() { for (uint i = 0; i < bots_.length; i++) { if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) { _isBot[bots_[i]] = true; } } } function delBots(address[] memory bots_) external { require(_msgSender() == _TaxAdd); for (uint i = 0; i < bots_.length; i++) { _isBot[bots_[i]] = false; } } function isBot(address ad) public view returns (bool) { return _isBot[ad]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address payable","name":"TaxAdd","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_usefeesetter","type":"bool"}],"name":"ImpactFeeSetterUpdated","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":false,"internalType":"address","name":"_taxwallet","type":"address"}],"name":"TaxAddUpdated","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":"_TaxAdd","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHeldTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useImpactFeeSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","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":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleImpactFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTaxAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600d600a55600d600b556014600c556000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff0219169083151502179055503480156200005657600080fd5b50604051620043383803806200433883398181016040528101906200007c9190620003e4565b60006200008e6200034960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001d06200035160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200033a919062000431565b60405180910390a3506200044e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003ac826200037f565b9050919050565b620003be816200039f565b8114620003ca57600080fd5b50565b600081519050620003de81620003b3565b92915050565b600060208284031215620003fd57620003fc6200037a565b5b60006200040d84828501620003cd565b91505092915050565b6000819050919050565b6200042b8162000416565b82525050565b600060208201905062000448600083018462000420565b92915050565b613eda806200045e6000396000f3fe6080604052600436106101e75760003560e01c8063590f897e11610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb6146106a7578063dcb0e0ad146106d2578063dd62ed3e146106fb578063e8078d9414610738576101ee565b8063a9059cbb14610613578063b515566a14610650578063c3c8cd8014610679578063c9567bf914610690576101ee565b806373f54a11116100d157806373f54a11146105695780638da5cb5b1461059257806394b8d8f2146105bd57806395d89b41146105e8576101ee565b8063590f897e146104d35780636fc3eaec146104fe57806370a0823114610515578063715018a614610552576101ee565b806327f3a72a1161017a5780633bbac579116101495780633bbac5791461041757806340b9a54b1461045457806345596e2e1461047f57806349bd5a5e146104a8576101ee565b806327f3a72a1461036d578063313ce5671461039857806331c2d847146103c357806332d873d8146103ec576101ee565b8063104ce66d116101b6578063104ce66d146102af57806318160ddd146102da5780631940d0201461030557806323b872dd14610330576101ee565b80630492f055146101f357806306fdde031461021e578063095ea7b3146102495780630b78f9c014610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861074f565b6040516102159190612c6e565b60405180910390f35b34801561022a57600080fd5b50610233610755565b6040516102409190612d22565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612de2565b61078e565b60405161027d9190612e3d565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612e58565b6107ac565b005b3480156102bb57600080fd5b506102c46108c5565b6040516102d19190612eb9565b60405180910390f35b3480156102e657600080fd5b506102ef6108eb565b6040516102fc9190612c6e565b60405180910390f35b34801561031157600080fd5b5061031a6108fc565b6040516103279190612c6e565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612ed4565b610902565b6040516103649190612e3d565b60405180910390f35b34801561037957600080fd5b50610382610b12565b60405161038f9190612c6e565b60405180910390f35b3480156103a457600080fd5b506103ad610b22565b6040516103ba9190612f43565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e591906130a6565b610b27565b005b3480156103f857600080fd5b50610401610c1d565b60405161040e9190612c6e565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906130ef565b610c23565b60405161044b9190612e3d565b60405180910390f35b34801561046057600080fd5b50610469610c79565b6040516104769190612c6e565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a1919061311c565b610c7f565b005b3480156104b457600080fd5b506104bd610d66565b6040516104ca9190613158565b60405180910390f35b3480156104df57600080fd5b506104e8610d8c565b6040516104f59190612c6e565b60405180910390f35b34801561050a57600080fd5b50610513610d92565b005b34801561052157600080fd5b5061053c600480360381019061053791906130ef565b610e04565b6040516105499190612c6e565b60405180910390f35b34801561055e57600080fd5b50610567610e4d565b005b34801561057557600080fd5b50610590600480360381019061058b91906130ef565b610fa0565b005b34801561059e57600080fd5b506105a761109e565b6040516105b49190613158565b60405180910390f35b3480156105c957600080fd5b506105d26110c7565b6040516105df9190612e3d565b60405180910390f35b3480156105f457600080fd5b506105fd6110da565b60405161060a9190612d22565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612de2565b611113565b6040516106479190612e3d565b60405180910390f35b34801561065c57600080fd5b50610677600480360381019061067291906130a6565b611131565b005b34801561068557600080fd5b5061068e611341565b005b34801561069c57600080fd5b506106a56113bb565b005b3480156106b357600080fd5b506106bc6114e2565b6040516106c99190612c6e565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f4919061319f565b611514565b005b34801561070757600080fd5b50610722600480360381019061071d91906131cc565b6115d8565b60405161072f9190612c6e565b60405180910390f35b34801561074457600080fd5b5061074d61165f565b005b600d5481565b6040518060400160405280600981526020017f466973682054616e6b000000000000000000000000000000000000000000000081525081565b60006107a261079b611b10565b8484611b18565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611b10565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600d8210801561081d5750600d81105b801561082a5750600a5482105b80156108375750600b5481105b610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d90613258565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516108b9929190613278565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff16801561096a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156109c35750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a56573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a55576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b610a61848484611ce3565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aad611b10565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af291906132d0565b9050610b0685610b00611b10565b83611b18565b60019150509392505050565b6000610b1d30610e04565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b68611b10565b73ffffffffffffffffffffffffffffffffffffffff1614610b8857600080fd5b60005b8151811015610c1957600060056000848481518110610bad57610bac613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1190613333565b915050610b8b565b5050565b600f5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cc0611b10565b73ffffffffffffffffffffffffffffffffffffffff1614610ce057600080fd5b60008111610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a906133c8565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d5b9190612c6e565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd3611b10565b73ffffffffffffffffffffffffffffffffffffffff1614610df357600080fd5b6000479050610e0181612686565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e55611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe1611b10565b73ffffffffffffffffffffffffffffffffffffffff161461100157600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a9bcd8aea0cbf27de081c73815e420f65287b49bcf7a17ff691c61a2dd2d2d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161109391906134b3565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600581526020017f464953485400000000000000000000000000000000000000000000000000000081525081565b6000611127611120611b10565b8484611ce3565b6001905092915050565b611139611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90613434565b60405180910390fd5b60005b815181101561133d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121e5761121d613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112b25750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061129157611290613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561132a576001600560008484815181106112d0576112cf613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061133590613333565b9150506111c9565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611382611b10565b73ffffffffffffffffffffffffffffffffffffffff16146113a257600080fd5b60006113ad30610e04565b90506113b8816126f2565b50565b6113c3611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790613434565b60405180910390fd5b601060009054906101000a900460ff16156114a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114979061351a565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550678ac7230489e80000600d8190555067d02ab486cedc0000600e81905550565b600061150f600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e04565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611555611b10565b73ffffffffffffffffffffffffffffffffffffffff161461157557600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516115cd9190612e3d565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611667611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb90613434565b60405180910390fd5b601060009054906101000a900460ff1615611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b9061351a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117d430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611b18565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611843919061354f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ce919061354f565b6040518363ffffffff1660e01b81526004016118eb92919061357c565b6020604051808303816000875af115801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e919061354f565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119b730610e04565b6000806119c261109e565b426040518863ffffffff1660e01b81526004016119e4969594939291906135e0565b60606040518083038185885af1158015611a02573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a279190613656565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ac99291906136a9565b6020604051808303816000875af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c91906136e7565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7f90613786565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef90613818565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd69190612c6e565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d875750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ddd5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906138aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9061393c565b60405180910390fd5b60008111611f09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f00906139ce565b60405180910390fd5b6000611f1361109e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f815750611f5161109e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125c157600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120315750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123c157601060009054906101000a900460ff166120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d290613a3a565b60405180910390fd5b600f5442141561213e576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b4261a8c0600f5461214f9190613a5a565b11156121ae57600e5461216184610e04565b8361216c9190613a5a565b11156121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a490613b22565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166122885760405180604001604052806000815260200160011515815250600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b42610708600f546122999190613a5a565b111561237557600d548211156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db90613b8e565b60405180910390fd5b601e426122f19190613a5a565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90613c20565b60405180910390fd5b5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156123ea5750601060009054906101000a900460ff165b80156124445750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156125c057600f426124569190613a5a565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613cb2565b60405180910390fd5b60006124e430610e04565b905060008111156125a157601060029054906101000a900460ff1615612597576064600c54612534600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e04565b61253e9190613cd2565b6125489190613d5b565b811115612596576064600c5461257f600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e04565b6125899190613cd2565b6125939190613d5b565b90505b5b6125a0816126f2565b5b600047905060008111156125b9576125b847612686565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126685750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561267257600090505b61267f858585848661296b565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ee573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561272a57612729612f63565b5b6040519080825280602002602001820160405280156127585781602001602082028036833780820191505090505b50905030816000815181106127705761276f613304565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283b919061354f565b8160018151811061284f5761284e613304565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b18565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161291a959493929190613e4a565b600060405180830381600087803b15801561293457600080fd5b505af1158015612948573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612977838361298d565b9050612985868686846129e3565b505050505050565b6000806000905083156129d95782156129aa57600a5490506129d8565b600b54905062015180600f546129c09190613a5a565b4210156129d7576011816129d49190613a5a565b90505b5b5b8091505092915050565b6000806129f08484612b86565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f91906132d0565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612acd9190613a5a565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1981612bc4565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b769190612c6e565b60405180910390a3505050505050565b600080600060648486612b999190613cd2565b612ba39190613d5b565b905060008186612bb391906132d0565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f9190613a5a565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612c6881612c55565b82525050565b6000602082019050612c836000830184612c5f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cc3578082015181840152602081019050612ca8565b83811115612cd2576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cf482612c89565b612cfe8185612c94565b9350612d0e818560208601612ca5565b612d1781612cd8565b840191505092915050565b60006020820190508181036000830152612d3c8184612ce9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d8382612d58565b9050919050565b612d9381612d78565b8114612d9e57600080fd5b50565b600081359050612db081612d8a565b92915050565b612dbf81612c55565b8114612dca57600080fd5b50565b600081359050612ddc81612db6565b92915050565b60008060408385031215612df957612df8612d4e565b5b6000612e0785828601612da1565b9250506020612e1885828601612dcd565b9150509250929050565b60008115159050919050565b612e3781612e22565b82525050565b6000602082019050612e526000830184612e2e565b92915050565b60008060408385031215612e6f57612e6e612d4e565b5b6000612e7d85828601612dcd565b9250506020612e8e85828601612dcd565b9150509250929050565b6000612ea382612d58565b9050919050565b612eb381612e98565b82525050565b6000602082019050612ece6000830184612eaa565b92915050565b600080600060608486031215612eed57612eec612d4e565b5b6000612efb86828701612da1565b9350506020612f0c86828701612da1565b9250506040612f1d86828701612dcd565b9150509250925092565b600060ff82169050919050565b612f3d81612f27565b82525050565b6000602082019050612f586000830184612f34565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f9b82612cd8565b810181811067ffffffffffffffff82111715612fba57612fb9612f63565b5b80604052505050565b6000612fcd612d44565b9050612fd98282612f92565b919050565b600067ffffffffffffffff821115612ff957612ff8612f63565b5b602082029050602081019050919050565b600080fd5b600061302261301d84612fde565b612fc3565b905080838252602082019050602084028301858111156130455761304461300a565b5b835b8181101561306e578061305a8882612da1565b845260208401935050602081019050613047565b5050509392505050565b600082601f83011261308d5761308c612f5e565b5b813561309d84826020860161300f565b91505092915050565b6000602082840312156130bc576130bb612d4e565b5b600082013567ffffffffffffffff8111156130da576130d9612d53565b5b6130e684828501613078565b91505092915050565b60006020828403121561310557613104612d4e565b5b600061311384828501612da1565b91505092915050565b60006020828403121561313257613131612d4e565b5b600061314084828501612dcd565b91505092915050565b61315281612d78565b82525050565b600060208201905061316d6000830184613149565b92915050565b61317c81612e22565b811461318757600080fd5b50565b60008135905061319981613173565b92915050565b6000602082840312156131b5576131b4612d4e565b5b60006131c38482850161318a565b91505092915050565b600080604083850312156131e3576131e2612d4e565b5b60006131f185828601612da1565b925050602061320285828601612da1565b9150509250929050565b7f4e6f7420686967686572207468616e206f7269676e616c20726174652e000000600082015250565b6000613242601d83612c94565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b600060408201905061328d6000830185612c5f565b61329a6020830184612c5f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132db82612c55565b91506132e683612c55565b9250828210156132f9576132f86132a1565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061333e82612c55565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613371576133706132a1565b5b600182019050919050565b7f63616e2774206265207a65726f00000000000000000000000000000000000000600082015250565b60006133b2600d83612c94565b91506133bd8261337c565b602082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061341e602083612c94565b9150613429826133e8565b602082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b6000819050919050565b600061347961347461346f84612d58565b613454565b612d58565b9050919050565b600061348b8261345e565b9050919050565b600061349d82613480565b9050919050565b6134ad81613492565b82525050565b60006020820190506134c860008301846134a4565b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613504601783612c94565b915061350f826134ce565b602082019050919050565b60006020820190508181036000830152613533816134f7565b9050919050565b60008151905061354981612d8a565b92915050565b60006020828403121561356557613564612d4e565b5b60006135738482850161353a565b91505092915050565b60006040820190506135916000830185613149565b61359e6020830184613149565b9392505050565b6000819050919050565b60006135ca6135c56135c0846135a5565b613454565b612c55565b9050919050565b6135da816135af565b82525050565b600060c0820190506135f56000830189613149565b6136026020830188612c5f565b61360f60408301876135d1565b61361c60608301866135d1565b6136296080830185613149565b61363660a0830184612c5f565b979650505050505050565b60008151905061365081612db6565b92915050565b60008060006060848603121561366f5761366e612d4e565b5b600061367d86828701613641565b935050602061368e86828701613641565b925050604061369f86828701613641565b9150509250925092565b60006040820190506136be6000830185613149565b6136cb6020830184612c5f565b9392505050565b6000815190506136e181613173565b92915050565b6000602082840312156136fd576136fc612d4e565b5b600061370b848285016136d2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613770602483612c94565b915061377b82613714565b604082019050919050565b6000602082019050818103600083015261379f81613763565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613802602283612c94565b915061380d826137a6565b604082019050919050565b60006020820190508181036000830152613831816137f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613894602583612c94565b915061389f82613838565b604082019050919050565b600060208201905081810360008301526138c381613887565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612c94565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139b8602983612c94565b91506139c38261395c565b604082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613a24601883612c94565b9150613a2f826139ee565b602082019050919050565b60006020820190508181036000830152613a5381613a17565b9050919050565b6000613a6582612c55565b9150613a7083612c55565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aa557613aa46132a1565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b6000613b0c602783612c94565b9150613b1782613ab0565b604082019050919050565b60006020820190508181036000830152613b3b81613aff565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613b78601b83612c94565b9150613b8382613b42565b602082019050919050565b60006020820190508181036000830152613ba781613b6b565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c0a602283612c94565b9150613c1582613bae565b604082019050919050565b60006020820190508181036000830152613c3981613bfd565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613c9c602383612c94565b9150613ca782613c40565b604082019050919050565b60006020820190508181036000830152613ccb81613c8f565b9050919050565b6000613cdd82612c55565b9150613ce883612c55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d2157613d206132a1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d6682612c55565b9150613d7183612c55565b925082613d8157613d80613d2c565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dc181612d78565b82525050565b6000613dd38383613db8565b60208301905092915050565b6000602082019050919050565b6000613df782613d8c565b613e018185613d97565b9350613e0c83613da8565b8060005b83811015613e3d578151613e248882613dc7565b9750613e2f83613ddf565b925050600181019050613e10565b5085935050505092915050565b600060a082019050613e5f6000830188612c5f565b613e6c60208301876135d1565b8181036040830152613e7e8186613dec565b9050613e8d6060830185613149565b613e9a6080830184612c5f565b969550505050505056fea26469706673582212202a504e4e76d41be944d29403067f2fb7ef28e45ca5168f8d5dbef47810829f8864736f6c634300080b00330000000000000000000000005a5ea037c5a1be620b9560f4548b7f0745ad4e1b
Deployed Bytecode
0x6080604052600436106101e75760003560e01c8063590f897e11610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb6146106a7578063dcb0e0ad146106d2578063dd62ed3e146106fb578063e8078d9414610738576101ee565b8063a9059cbb14610613578063b515566a14610650578063c3c8cd8014610679578063c9567bf914610690576101ee565b806373f54a11116100d157806373f54a11146105695780638da5cb5b1461059257806394b8d8f2146105bd57806395d89b41146105e8576101ee565b8063590f897e146104d35780636fc3eaec146104fe57806370a0823114610515578063715018a614610552576101ee565b806327f3a72a1161017a5780633bbac579116101495780633bbac5791461041757806340b9a54b1461045457806345596e2e1461047f57806349bd5a5e146104a8576101ee565b806327f3a72a1461036d578063313ce5671461039857806331c2d847146103c357806332d873d8146103ec576101ee565b8063104ce66d116101b6578063104ce66d146102af57806318160ddd146102da5780631940d0201461030557806323b872dd14610330576101ee565b80630492f055146101f357806306fdde031461021e578063095ea7b3146102495780630b78f9c014610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861074f565b6040516102159190612c6e565b60405180910390f35b34801561022a57600080fd5b50610233610755565b6040516102409190612d22565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612de2565b61078e565b60405161027d9190612e3d565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612e58565b6107ac565b005b3480156102bb57600080fd5b506102c46108c5565b6040516102d19190612eb9565b60405180910390f35b3480156102e657600080fd5b506102ef6108eb565b6040516102fc9190612c6e565b60405180910390f35b34801561031157600080fd5b5061031a6108fc565b6040516103279190612c6e565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612ed4565b610902565b6040516103649190612e3d565b60405180910390f35b34801561037957600080fd5b50610382610b12565b60405161038f9190612c6e565b60405180910390f35b3480156103a457600080fd5b506103ad610b22565b6040516103ba9190612f43565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e591906130a6565b610b27565b005b3480156103f857600080fd5b50610401610c1d565b60405161040e9190612c6e565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906130ef565b610c23565b60405161044b9190612e3d565b60405180910390f35b34801561046057600080fd5b50610469610c79565b6040516104769190612c6e565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a1919061311c565b610c7f565b005b3480156104b457600080fd5b506104bd610d66565b6040516104ca9190613158565b60405180910390f35b3480156104df57600080fd5b506104e8610d8c565b6040516104f59190612c6e565b60405180910390f35b34801561050a57600080fd5b50610513610d92565b005b34801561052157600080fd5b5061053c600480360381019061053791906130ef565b610e04565b6040516105499190612c6e565b60405180910390f35b34801561055e57600080fd5b50610567610e4d565b005b34801561057557600080fd5b50610590600480360381019061058b91906130ef565b610fa0565b005b34801561059e57600080fd5b506105a761109e565b6040516105b49190613158565b60405180910390f35b3480156105c957600080fd5b506105d26110c7565b6040516105df9190612e3d565b60405180910390f35b3480156105f457600080fd5b506105fd6110da565b60405161060a9190612d22565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612de2565b611113565b6040516106479190612e3d565b60405180910390f35b34801561065c57600080fd5b50610677600480360381019061067291906130a6565b611131565b005b34801561068557600080fd5b5061068e611341565b005b34801561069c57600080fd5b506106a56113bb565b005b3480156106b357600080fd5b506106bc6114e2565b6040516106c99190612c6e565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f4919061319f565b611514565b005b34801561070757600080fd5b50610722600480360381019061071d91906131cc565b6115d8565b60405161072f9190612c6e565b60405180910390f35b34801561074457600080fd5b5061074d61165f565b005b600d5481565b6040518060400160405280600981526020017f466973682054616e6b000000000000000000000000000000000000000000000081525081565b60006107a261079b611b10565b8484611b18565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611b10565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600d8210801561081d5750600d81105b801561082a5750600a5482105b80156108375750600b5481105b610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d90613258565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516108b9929190613278565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff16801561096a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156109c35750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a56573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a55576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b610a61848484611ce3565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aad611b10565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af291906132d0565b9050610b0685610b00611b10565b83611b18565b60019150509392505050565b6000610b1d30610e04565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b68611b10565b73ffffffffffffffffffffffffffffffffffffffff1614610b8857600080fd5b60005b8151811015610c1957600060056000848481518110610bad57610bac613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1190613333565b915050610b8b565b5050565b600f5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cc0611b10565b73ffffffffffffffffffffffffffffffffffffffff1614610ce057600080fd5b60008111610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a906133c8565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d5b9190612c6e565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd3611b10565b73ffffffffffffffffffffffffffffffffffffffff1614610df357600080fd5b6000479050610e0181612686565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e55611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe1611b10565b73ffffffffffffffffffffffffffffffffffffffff161461100157600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a9bcd8aea0cbf27de081c73815e420f65287b49bcf7a17ff691c61a2dd2d2d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161109391906134b3565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600581526020017f464953485400000000000000000000000000000000000000000000000000000081525081565b6000611127611120611b10565b8484611ce3565b6001905092915050565b611139611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90613434565b60405180910390fd5b60005b815181101561133d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121e5761121d613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112b25750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061129157611290613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561132a576001600560008484815181106112d0576112cf613304565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061133590613333565b9150506111c9565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611382611b10565b73ffffffffffffffffffffffffffffffffffffffff16146113a257600080fd5b60006113ad30610e04565b90506113b8816126f2565b50565b6113c3611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790613434565b60405180910390fd5b601060009054906101000a900460ff16156114a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114979061351a565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550678ac7230489e80000600d8190555067d02ab486cedc0000600e81905550565b600061150f600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e04565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611555611b10565b73ffffffffffffffffffffffffffffffffffffffff161461157557600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516115cd9190612e3d565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611667611b10565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb90613434565b60405180910390fd5b601060009054906101000a900460ff1615611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b9061351a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117d430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611b18565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611843919061354f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ce919061354f565b6040518363ffffffff1660e01b81526004016118eb92919061357c565b6020604051808303816000875af115801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e919061354f565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119b730610e04565b6000806119c261109e565b426040518863ffffffff1660e01b81526004016119e4969594939291906135e0565b60606040518083038185885af1158015611a02573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a279190613656565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ac99291906136a9565b6020604051808303816000875af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c91906136e7565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7f90613786565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef90613818565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd69190612c6e565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d875750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ddd5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906138aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9061393c565b60405180910390fd5b60008111611f09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f00906139ce565b60405180910390fd5b6000611f1361109e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f815750611f5161109e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125c157600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120315750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123c157601060009054906101000a900460ff166120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d290613a3a565b60405180910390fd5b600f5442141561213e576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b4261a8c0600f5461214f9190613a5a565b11156121ae57600e5461216184610e04565b8361216c9190613a5a565b11156121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a490613b22565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166122885760405180604001604052806000815260200160011515815250600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b42610708600f546122999190613a5a565b111561237557600d548211156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db90613b8e565b60405180910390fd5b601e426122f19190613a5a565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90613c20565b60405180910390fd5b5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156123ea5750601060009054906101000a900460ff165b80156124445750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156125c057600f426124569190613a5a565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613cb2565b60405180910390fd5b60006124e430610e04565b905060008111156125a157601060029054906101000a900460ff1615612597576064600c54612534600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e04565b61253e9190613cd2565b6125489190613d5b565b811115612596576064600c5461257f600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e04565b6125899190613cd2565b6125939190613d5b565b90505b5b6125a0816126f2565b5b600047905060008111156125b9576125b847612686565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126685750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561267257600090505b61267f858585848661296b565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ee573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561272a57612729612f63565b5b6040519080825280602002602001820160405280156127585781602001602082028036833780820191505090505b50905030816000815181106127705761276f613304565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283b919061354f565b8160018151811061284f5761284e613304565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b18565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161291a959493929190613e4a565b600060405180830381600087803b15801561293457600080fd5b505af1158015612948573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612977838361298d565b9050612985868686846129e3565b505050505050565b6000806000905083156129d95782156129aa57600a5490506129d8565b600b54905062015180600f546129c09190613a5a565b4210156129d7576011816129d49190613a5a565b90505b5b5b8091505092915050565b6000806129f08484612b86565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f91906132d0565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612acd9190613a5a565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1981612bc4565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b769190612c6e565b60405180910390a3505050505050565b600080600060648486612b999190613cd2565b612ba39190613d5b565b905060008186612bb391906132d0565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f9190613a5a565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612c6881612c55565b82525050565b6000602082019050612c836000830184612c5f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cc3578082015181840152602081019050612ca8565b83811115612cd2576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cf482612c89565b612cfe8185612c94565b9350612d0e818560208601612ca5565b612d1781612cd8565b840191505092915050565b60006020820190508181036000830152612d3c8184612ce9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d8382612d58565b9050919050565b612d9381612d78565b8114612d9e57600080fd5b50565b600081359050612db081612d8a565b92915050565b612dbf81612c55565b8114612dca57600080fd5b50565b600081359050612ddc81612db6565b92915050565b60008060408385031215612df957612df8612d4e565b5b6000612e0785828601612da1565b9250506020612e1885828601612dcd565b9150509250929050565b60008115159050919050565b612e3781612e22565b82525050565b6000602082019050612e526000830184612e2e565b92915050565b60008060408385031215612e6f57612e6e612d4e565b5b6000612e7d85828601612dcd565b9250506020612e8e85828601612dcd565b9150509250929050565b6000612ea382612d58565b9050919050565b612eb381612e98565b82525050565b6000602082019050612ece6000830184612eaa565b92915050565b600080600060608486031215612eed57612eec612d4e565b5b6000612efb86828701612da1565b9350506020612f0c86828701612da1565b9250506040612f1d86828701612dcd565b9150509250925092565b600060ff82169050919050565b612f3d81612f27565b82525050565b6000602082019050612f586000830184612f34565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f9b82612cd8565b810181811067ffffffffffffffff82111715612fba57612fb9612f63565b5b80604052505050565b6000612fcd612d44565b9050612fd98282612f92565b919050565b600067ffffffffffffffff821115612ff957612ff8612f63565b5b602082029050602081019050919050565b600080fd5b600061302261301d84612fde565b612fc3565b905080838252602082019050602084028301858111156130455761304461300a565b5b835b8181101561306e578061305a8882612da1565b845260208401935050602081019050613047565b5050509392505050565b600082601f83011261308d5761308c612f5e565b5b813561309d84826020860161300f565b91505092915050565b6000602082840312156130bc576130bb612d4e565b5b600082013567ffffffffffffffff8111156130da576130d9612d53565b5b6130e684828501613078565b91505092915050565b60006020828403121561310557613104612d4e565b5b600061311384828501612da1565b91505092915050565b60006020828403121561313257613131612d4e565b5b600061314084828501612dcd565b91505092915050565b61315281612d78565b82525050565b600060208201905061316d6000830184613149565b92915050565b61317c81612e22565b811461318757600080fd5b50565b60008135905061319981613173565b92915050565b6000602082840312156131b5576131b4612d4e565b5b60006131c38482850161318a565b91505092915050565b600080604083850312156131e3576131e2612d4e565b5b60006131f185828601612da1565b925050602061320285828601612da1565b9150509250929050565b7f4e6f7420686967686572207468616e206f7269676e616c20726174652e000000600082015250565b6000613242601d83612c94565b915061324d8261320c565b602082019050919050565b6000602082019050818103600083015261327181613235565b9050919050565b600060408201905061328d6000830185612c5f565b61329a6020830184612c5f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132db82612c55565b91506132e683612c55565b9250828210156132f9576132f86132a1565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061333e82612c55565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613371576133706132a1565b5b600182019050919050565b7f63616e2774206265207a65726f00000000000000000000000000000000000000600082015250565b60006133b2600d83612c94565b91506133bd8261337c565b602082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061341e602083612c94565b9150613429826133e8565b602082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b6000819050919050565b600061347961347461346f84612d58565b613454565b612d58565b9050919050565b600061348b8261345e565b9050919050565b600061349d82613480565b9050919050565b6134ad81613492565b82525050565b60006020820190506134c860008301846134a4565b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613504601783612c94565b915061350f826134ce565b602082019050919050565b60006020820190508181036000830152613533816134f7565b9050919050565b60008151905061354981612d8a565b92915050565b60006020828403121561356557613564612d4e565b5b60006135738482850161353a565b91505092915050565b60006040820190506135916000830185613149565b61359e6020830184613149565b9392505050565b6000819050919050565b60006135ca6135c56135c0846135a5565b613454565b612c55565b9050919050565b6135da816135af565b82525050565b600060c0820190506135f56000830189613149565b6136026020830188612c5f565b61360f60408301876135d1565b61361c60608301866135d1565b6136296080830185613149565b61363660a0830184612c5f565b979650505050505050565b60008151905061365081612db6565b92915050565b60008060006060848603121561366f5761366e612d4e565b5b600061367d86828701613641565b935050602061368e86828701613641565b925050604061369f86828701613641565b9150509250925092565b60006040820190506136be6000830185613149565b6136cb6020830184612c5f565b9392505050565b6000815190506136e181613173565b92915050565b6000602082840312156136fd576136fc612d4e565b5b600061370b848285016136d2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613770602483612c94565b915061377b82613714565b604082019050919050565b6000602082019050818103600083015261379f81613763565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613802602283612c94565b915061380d826137a6565b604082019050919050565b60006020820190508181036000830152613831816137f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613894602583612c94565b915061389f82613838565b604082019050919050565b600060208201905081810360008301526138c381613887565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612c94565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139b8602983612c94565b91506139c38261395c565b604082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613a24601883612c94565b9150613a2f826139ee565b602082019050919050565b60006020820190508181036000830152613a5381613a17565b9050919050565b6000613a6582612c55565b9150613a7083612c55565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aa557613aa46132a1565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b6000613b0c602783612c94565b9150613b1782613ab0565b604082019050919050565b60006020820190508181036000830152613b3b81613aff565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613b78601b83612c94565b9150613b8382613b42565b602082019050919050565b60006020820190508181036000830152613ba781613b6b565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c0a602283612c94565b9150613c1582613bae565b604082019050919050565b60006020820190508181036000830152613c3981613bfd565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613c9c602383612c94565b9150613ca782613c40565b604082019050919050565b60006020820190508181036000830152613ccb81613c8f565b9050919050565b6000613cdd82612c55565b9150613ce883612c55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d2157613d206132a1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d6682612c55565b9150613d7183612c55565b925082613d8157613d80613d2c565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dc181612d78565b82525050565b6000613dd38383613db8565b60208301905092915050565b6000602082019050919050565b6000613df782613d8c565b613e018185613d97565b9350613e0c83613da8565b8060005b83811015613e3d578151613e248882613dc7565b9750613e2f83613ddf565b925050600181019050613e10565b5085935050505092915050565b600060a082019050613e5f6000830188612c5f565b613e6c60208301876135d1565b8181036040830152613e7e8186613dec565b9050613e8d6060830185613149565b613e9a6080830184612c5f565b969550505050505056fea26469706673582212202a504e4e76d41be944d29403067f2fb7ef28e45ca5168f8d5dbef47810829f8864736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005a5ea037c5a1be620b9560f4548b7f0745ad4e1b
-----Decoded View---------------
Arg [0] : TaxAdd (address): 0x5A5ea037C5A1bE620B9560F4548B7F0745Ad4E1B
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005a5ea037c5a1be620b9560f4548b7f0745ad4e1b
Deployed Bytecode Sourcemap
2373:10943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3129:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2759:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4630:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11772:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2961:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4377:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3161:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4796:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12505:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2867:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13005:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3194:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13215:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3033:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11562:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2998:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3064:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11371:183;;;;;;;;;;;;;:::i;:::-;;4082:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1454:148;;;;;;;;;;;;;:::i;:::-;;12286:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1240:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3291:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2814:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4201:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12724:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11175:184;;;;;;;;;;;;;:::i;:::-;;10878:289;;;;;;;;;;;;;:::i;:::-;;12613:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12084:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4482:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10182:688;;;;;;;;;;;;;:::i;:::-;;3129:25;;;;:::o;2759:48::-;;;;;;;;;;;;;;;;;;;:::o;4630:158::-;4702:4;4719:39;4728:12;:10;:12::i;:::-;4742:7;4751:6;4719:8;:39::i;:::-;4776:4;4769:11;;4630:158;;;;:::o;11772:304::-;11854:7;;;;;;;;;;;11838:23;;:12;:10;:12::i;:::-;:23;;;11830:32;;;;;;11887:2;11881:3;:8;:21;;;;;11900:2;11893:4;:9;11881:21;:38;;;;;11912:7;;11906:3;:13;11881:38;:57;;;;;11930:8;;11923:4;:15;11881:57;11873:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:3;11983:7;:13;;;;12018:4;12007:8;:15;;;;12038:30;12050:7;;12059:8;;12038:30;;;;;;;:::i;:::-;;;;;;;;11772:304;;:::o;2961:30::-;;;;;;;;;;;;;:::o;4377:97::-;4430:4;2738:12;4447:19;;4377:97;:::o;3161:26::-;;;;:::o;4796:475::-;4891:4;4911:12;;;;;;;;;;;:46;;;;;4928:18;:29;4947:9;4928:29;;;;;;;;;;;;;;;;;;;;;;;;;4927:30;4911:46;:73;;;;;4971:13;;;;;;;;;;;4961:23;;:6;:23;;;4911:73;4908:157;;;5017:9;5004:22;;:9;:22;;;5000:53;;;5049:4;5029:6;:17;5036:9;5029:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5000:53;4908:157;5075:36;5085:6;5093:9;5104:6;5075:9;:36::i;:::-;5122:18;5179:6;5143:11;:19;5155:6;5143:19;;;;;;;;;;;;;;;:33;5163:12;:10;:12::i;:::-;5143:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5122:63;;5196:45;5205:6;5213:12;:10;:12::i;:::-;5227:13;5196:8;:45::i;:::-;5259:4;5252:11;;;4796:475;;;;;:::o;12505:100::-;12549:4;12573:24;12591:4;12573:9;:24::i;:::-;12566:31;;12505:100;:::o;2867:34::-;2900:1;2867:34;:::o;13005:202::-;13090:7;;;;;;;;;;;13074:23;;:12;:10;:12::i;:::-;:23;;;13066:32;;;;;;13114:6;13109:91;13130:5;:12;13126:1;:16;13109:91;;;13183:5;13164:6;:16;13171:5;13177:1;13171:8;;;;;;;;:::i;:::-;;;;;;;;13164:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13144:3;;;;;:::i;:::-;;;;13109:91;;;;13005:202;:::o;3194:23::-;;;;:::o;13215:90::-;13263:4;13287:6;:10;13294:2;13287:10;;;;;;;;;;;;;;;;;;;;;;;;;13280:17;;13215:90;;;:::o;3033:24::-;;;;:::o;11562:202::-;11637:7;;;;;;;;;;;11621:23;;:12;:10;:12::i;:::-;:23;;;11613:32;;;;;;11671:1;11664:4;:8;11656:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;11712:4;11701:8;:15;;;;11732:24;11747:8;;11732:24;;;;;;:::i;:::-;;;;;;;;11562:202;:::o;2998:28::-;;;;;;;;;;;;;:::o;3064:25::-;;;;:::o;11371:183::-;11437:7;;;;;;;;;;;11421:23;;:12;:10;:12::i;:::-;:23;;;11413:32;;;;;;11456:23;11482:21;11456:47;;11514:32;11527:18;11514:12;:32::i;:::-;11402:152;11371:183::o;4082:113::-;4148:4;4172:6;:15;4179:7;4172:15;;;;;;;;;;;;;;;;4165:22;;4082:113;;;:::o;1454:148::-;1377:12;:10;:12::i;:::-;1367:22;;:6;;;;;;;;;;:22;;;1359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1561:1:::1;1524:40;;1545:6;::::0;::::1;;;;;;;;1524:40;;;;;;;;;;;;1592:1;1575:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1454:148::o:0;12286:180::-;12372:7;;;;;;;;;;;12356:23;;:12;:10;:12::i;:::-;:23;;;12348:32;;;;;;12409:10;12391:7;;:29;;;;;;;;;;;;;;;;;;12436:22;12450:7;;;;;;;;;;;12436:22;;;;;;:::i;:::-;;;;;;;;12286:180;:::o;1240:79::-;1278:7;1305:6;;;;;;;;;;;1298:13;;1240:79;:::o;3291:39::-;;;;;;;;;;;;;:::o;2814:46::-;;;;;;;;;;;;;;;;;;;:::o;4201:164::-;4276:4;4293:42;4303:12;:10;:12::i;:::-;4317:9;4328:6;4293:9;:42::i;:::-;4353:4;4346:11;;4201:164;;;;:::o;12724:275::-;1377:12;:10;:12::i;:::-;1367:22;;:6;;;;;;;;;;:22;;;1359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12802:6:::1;12797:195;12818:5;:12;12814:1;:16;12797:195;;;12868:13;;;;;;;;;;;12856:25;;:5;12862:1;12856:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;12905:15;;;;;;;;;;;12885:36;;:5;12891:1;12885:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;12856:65;12852:129;;;12961:4;12942:6;:16;12949:5;12955:1;12949:8;;;;;;;;:::i;:::-;;;;;;;;12942:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12852:129;12832:3;;;;;:::i;:::-;;;;12797:195;;;;12724:275:::0;:::o;11175:184::-;11241:7;;;;;;;;;;;11225:23;;:12;:10;:12::i;:::-;:23;;;11217:32;;;;;;11260:20;11283:24;11301:4;11283:9;:24::i;:::-;11260:47;;11318:33;11335:15;11318:16;:33::i;:::-;11206:153;11175:184::o;10878:289::-;1377:12;:10;:12::i;:::-;1367:22;;:6;;;;;;;;;;:22;;;1359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10942:12:::1;;;;;;;;;;;10941:13;10933:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11008:4;10993:12;;:19;;;;;;;;;;;;;;;;;;11037:15;11023:11;:29;;;;11079:19;11063:13;:35;;;;11132:19;11115:14;:36;;;;10878:289::o:0;12613:101::-;12658:4;12682:24;12692:13;;;;;;;;;;;12682:9;:24::i;:::-;12675:31;;12613:101;:::o;12084:194::-;12165:7;;;;;;;;;;;12149:23;;:12;:10;:12::i;:::-;:23;;;12141:32;;;;;;12206:5;12184:19;;:27;;;;;;;;;;;;;;;;;;12227:43;12250:19;;;;;;;;;;;12227:43;;;;;;:::i;:::-;;;;;;;;12084:194;:::o;4482:140::-;4563:4;4587:11;:18;4599:5;4587:18;;;;;;;;;;;;;;;:27;4606:7;4587:27;;;;;;;;;;;;;;;;4580:34;;4482:140;;;;:::o;10182:688::-;1377:12;:10;:12::i;:::-;1367:22;;:6;;;;;;;;;;:22;;;1359:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10247:12:::1;;;;;;;;;;;10246:13;10238:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10298:35;10355:42;10298:100;;10427:16;10409:15;;:34;;;;;;;;;;;;;;;;;;10454:63;10471:4;10486:15;;;;;;;;;;;2738:12;10454:8;:63::i;:::-;10562:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10544:56;;;10609:4;10616:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10544:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10528:13;;:112;;;;;;;;;;;;;;;;;;10651:15;;;;;;;;;;;:31;;;10690:21;10721:4;10727:24;10745:4;10727:9;:24::i;:::-;10752:1;10754::::0;10756:7:::1;:5;:7::i;:::-;10764:15;10651:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10798:13;;;;;;;;;;;10791:29;;;10829:15;;;;;;;;;;;10847:14;10791:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10227:643;10182:688::o:0;103:98::-;156:7;183:10;176:17;;103:98;:::o;5279:332::-;5386:1;5369:19;;:5;:19;;;;5361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5467:1;5448:21;;:7;:21;;;;5440:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:6;5519:11;:18;5531:5;5519:18;;;;;;;;;;;;;;;:27;5538:7;5519:27;;;;;;;;;;;;;;;:36;;;;5587:7;5571:32;;5580:5;5571:32;;;5596:6;5571:32;;;;;;:::i;:::-;;;;;;;;5279:332;;;:::o;5619:2536::-;5705:6;:12;5712:4;5705:12;;;;;;;;;;;;;;;;;;;;;;;;;5704:13;:28;;;;;5722:6;:10;5729:2;5722:10;;;;;;;;;;;;;;;;;;;;;;;;;5721:11;5704:28;:51;;;;;5737:6;:18;5744:10;5737:18;;;;;;;;;;;;;;;;;;;;;;;;;5736:19;5704:51;5696:60;;;;;;5791:1;5775:18;;:4;:18;;;;5767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5868:1;5854:16;;:2;:16;;;;5846:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5938:1;5929:6;:10;5921:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5996:10;6036:7;:5;:7::i;:::-;6028:15;;:4;:15;;;;:32;;;;;6053:7;:5;:7::i;:::-;6047:13;;:2;:13;;;;6028:32;6025:1932;;;6088:13;;;;;;;;;;;6080:21;;:4;:21;;;:55;;;;;6119:15;;;;;;;;;;;6105:30;;:2;:30;;;;6080:55;:82;;;;;6140:18;:22;6159:2;6140:22;;;;;;;;;;;;;;;;;;;;;;;;;6139:23;6080:82;6077:955;;;6191:12;;;;;;;;;;;6183:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6274:11;;6255:15;:30;6251:53;;;6300:4;6287:6;:10;6294:2;6287:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;6251:53;6355:15;6342:8;6327:11;;:24;;;;:::i;:::-;6326:44;6323:203;;;6440:14;;6413:22;6431:2;6413:9;:22::i;:::-;6404:6;:31;;;;:::i;:::-;6403:51;;6395:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;6323:203;6548:8;:12;6557:2;6548:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;6544:95;;6607:12;;;;;;;;6612:1;6607:12;;;;6614:4;6607:12;;;;;6592:8;:12;6601:2;6592:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6544:95;6691:15;6676:10;6661:11;;:26;;;;:::i;:::-;6660:46;6657:276;;;6749:13;;6739:6;:23;;6731:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6863:10;6844:15;:30;;;;:::i;:::-;6825:8;:12;6834:2;6825:12;;;;;;;;;;;;;;;:16;;;:49;6817:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;6657:276;6970:15;6951:8;:12;6960:2;6951:12;;;;;;;;;;;;;;;:16;;:34;;;;7012:4;7004:12;;6077:955;7050:7;;;;;;;;;;;7049:8;:24;;;;;7061:12;;;;;;;;;;;7049:24;:49;;;;;7085:13;;;;;;;;;;;7077:21;;:4;:21;;;;7049:49;7046:900;;;7167:10;7148:15;:30;;;;:::i;:::-;7127:8;:14;7136:4;7127:14;;;;;;;;;;;;;;;:18;;;:51;7119:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7237:25;7265:24;7283:4;7265:9;:24::i;:::-;7237:52;;7334:1;7311:20;:24;7308:402;;;7363:19;;;;;;;;;;;7360:270;;;7477:3;7465:8;;7438:24;7448:13;;;;;;;;;;;7438:9;:24::i;:::-;:35;;;;:::i;:::-;7437:43;;;;:::i;:::-;7414:20;:66;7411:196;;;7576:3;7564:8;;7537:24;7547:13;;;;;;;;;;;7537:9;:24::i;:::-;:35;;;;:::i;:::-;7536:43;;;;:::i;:::-;7513:66;;7411:196;7360:270;7652:38;7669:20;7652:16;:38::i;:::-;7308:402;7728:23;7754:21;7728:47;;7818:1;7797:18;:22;7794:105;;;7844:35;7857:21;7844:12;:35::i;:::-;7794:105;7925:5;7917:13;;7100:846;;7046:900;6025:1932;7967:12;7982:4;7967:19;;8000:18;:24;8019:4;8000:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8028:18;:22;8047:2;8028:22;;;;;;;;;;;;;;;;;;;;;;;;;8000:50;7997:96;;;8076:5;8066:15;;7997:96;8103:44;8118:4;8123:2;8126:6;8133:7;8141:5;8103:14;:44::i;:::-;5685:2470;;5619:2536;;;:::o;8659:86::-;8713:7;;;;;;;;;;;:16;;:24;8730:6;8713:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8659:86;:::o;8163:480::-;3694:4;3684:7;;:14;;;;;;;;;;;;;;;;;;8238:21:::1;8276:1;8262:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8238:40;;8307:4;8289;8294:1;8289:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8333:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8323:4;8328:1;8323:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8366:62;8383:4;8398:15;;;;;;;;;;;8416:11;8366:8;:62::i;:::-;8439:15;;;;;;;;;;;:66;;;8520:11;8546:1;8562:4;8589;8609:15;8439:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8227:416;3731:5:::0;3721:7;;:15;;;;;;;;;;;;;;;;;;8163:480;:::o;8757:217::-;8873:8;8885:21;8893:7;8902:3;8885:7;:21::i;:::-;8872:34;;8917:49;8935:6;8943:9;8954:6;8962:3;8917:17;:49::i;:::-;8861:113;8757:217;;;;;:::o;8982:397::-;9045:4;9062:8;9073:1;9062:12;;9088:7;9085:266;;;9115:3;9112:228;;;9145:7;;9139:13;;9112:228;;;9199:8;;9193:14;;9262:8;9247:11;;:24;;;;:::i;:::-;9229:15;:42;9226:99;;;9303:2;9296:9;;;;;:::i;:::-;;;9226:99;9112:228;9085:266;9368:3;9361:10;;;8982:397;;;;:::o;9387:372::-;9492:19;9513:9;9526:23;9537:6;9545:3;9526:10;:23::i;:::-;9491:58;;;;9594:6;9577;:14;9584:6;9577:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9560:6;:14;9567:6;9560:14;;;;;;;;;;;;;;;:40;;;;9651:14;9631:6;:17;9638:9;9631:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;9611:6;:17;9618:9;9611:17;;;;;;;;;;;;;;;:54;;;;9677:15;9687:4;9677:9;:15::i;:::-;9725:9;9708:43;;9717:6;9708:43;;;9736:14;9708:43;;;;;;:::i;:::-;;;;;;;;9480:279;;9387:372;;;;:::o;9767:222::-;9836:4;9842;9859:9;9892:3;9881:7;9872:6;:16;;;;:::i;:::-;9871:24;;;;:::i;:::-;9859:36;;9906:19;9937:4;9928:6;:13;;;;:::i;:::-;9906:35;;9960:14;9976:4;9952:29;;;;;;9767:222;;;;;:::o;9997:109::-;10094:4;10070:6;:21;10085:4;10070:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;10046:6;:21;10061:4;10046:21;;;;;;;;;;;;;;;:52;;;;9997:109;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:104::-;4371:7;4400:24;4418:5;4400:24;:::i;:::-;4389:35;;4326:104;;;:::o;4436:142::-;4539:32;4565:5;4539:32;:::i;:::-;4534:3;4527:45;4436:142;;:::o;4584:254::-;4693:4;4731:2;4720:9;4716:18;4708:26;;4744:87;4828:1;4817:9;4813:17;4804:6;4744:87;:::i;:::-;4584:254;;;;:::o;4844:619::-;4921:6;4929;4937;4986:2;4974:9;4965:7;4961:23;4957:32;4954:119;;;4992:79;;:::i;:::-;4954:119;5112:1;5137:53;5182:7;5173:6;5162:9;5158:22;5137:53;:::i;:::-;5127:63;;5083:117;5239:2;5265:53;5310:7;5301:6;5290:9;5286:22;5265:53;:::i;:::-;5255:63;;5210:118;5367:2;5393:53;5438:7;5429:6;5418:9;5414:22;5393:53;:::i;:::-;5383:63;;5338:118;4844:619;;;;;:::o;5469:86::-;5504:7;5544:4;5537:5;5533:16;5522:27;;5469:86;;;:::o;5561:112::-;5644:22;5660:5;5644:22;:::i;:::-;5639:3;5632:35;5561:112;;:::o;5679:214::-;5768:4;5806:2;5795:9;5791:18;5783:26;;5819:67;5883:1;5872:9;5868:17;5859:6;5819:67;:::i;:::-;5679:214;;;;:::o;5899:117::-;6008:1;6005;5998:12;6022:180;6070:77;6067:1;6060:88;6167:4;6164:1;6157:15;6191:4;6188:1;6181:15;6208:281;6291:27;6313:4;6291:27;:::i;:::-;6283:6;6279:40;6421:6;6409:10;6406:22;6385:18;6373:10;6370:34;6367:62;6364:88;;;6432:18;;:::i;:::-;6364:88;6472:10;6468:2;6461:22;6251:238;6208:281;;:::o;6495:129::-;6529:6;6556:20;;:::i;:::-;6546:30;;6585:33;6613:4;6605:6;6585:33;:::i;:::-;6495:129;;;:::o;6630:311::-;6707:4;6797:18;6789:6;6786:30;6783:56;;;6819:18;;:::i;:::-;6783:56;6869:4;6861:6;6857:17;6849:25;;6929:4;6923;6919:15;6911:23;;6630:311;;;:::o;6947:117::-;7056:1;7053;7046:12;7087:710;7183:5;7208:81;7224:64;7281:6;7224:64;:::i;:::-;7208:81;:::i;:::-;7199:90;;7309:5;7338:6;7331:5;7324:21;7372:4;7365:5;7361:16;7354:23;;7425:4;7417:6;7413:17;7405:6;7401:30;7454:3;7446:6;7443:15;7440:122;;;7473:79;;:::i;:::-;7440:122;7588:6;7571:220;7605:6;7600:3;7597:15;7571:220;;;7680:3;7709:37;7742:3;7730:10;7709:37;:::i;:::-;7704:3;7697:50;7776:4;7771:3;7767:14;7760:21;;7647:144;7631:4;7626:3;7622:14;7615:21;;7571:220;;;7575:21;7189:608;;7087:710;;;;;:::o;7820:370::-;7891:5;7940:3;7933:4;7925:6;7921:17;7917:27;7907:122;;7948:79;;:::i;:::-;7907:122;8065:6;8052:20;8090:94;8180:3;8172:6;8165:4;8157:6;8153:17;8090:94;:::i;:::-;8081:103;;7897:293;7820:370;;;;:::o;8196:539::-;8280:6;8329:2;8317:9;8308:7;8304:23;8300:32;8297:119;;;8335:79;;:::i;:::-;8297:119;8483:1;8472:9;8468:17;8455:31;8513:18;8505:6;8502:30;8499:117;;;8535:79;;:::i;:::-;8499:117;8640:78;8710:7;8701:6;8690:9;8686:22;8640:78;:::i;:::-;8630:88;;8426:302;8196:539;;;;:::o;8741:329::-;8800:6;8849:2;8837:9;8828:7;8824:23;8820:32;8817:119;;;8855:79;;:::i;:::-;8817:119;8975:1;9000:53;9045:7;9036:6;9025:9;9021:22;9000:53;:::i;:::-;8990:63;;8946:117;8741:329;;;;:::o;9076:::-;9135:6;9184:2;9172:9;9163:7;9159:23;9155:32;9152:119;;;9190:79;;:::i;:::-;9152:119;9310:1;9335:53;9380:7;9371:6;9360:9;9356:22;9335:53;:::i;:::-;9325:63;;9281:117;9076:329;;;;:::o;9411:118::-;9498:24;9516:5;9498:24;:::i;:::-;9493:3;9486:37;9411:118;;:::o;9535:222::-;9628:4;9666:2;9655:9;9651:18;9643:26;;9679:71;9747:1;9736:9;9732:17;9723:6;9679:71;:::i;:::-;9535:222;;;;:::o;9763:116::-;9833:21;9848:5;9833:21;:::i;:::-;9826:5;9823:32;9813:60;;9869:1;9866;9859:12;9813:60;9763:116;:::o;9885:133::-;9928:5;9966:6;9953:20;9944:29;;9982:30;10006:5;9982:30;:::i;:::-;9885:133;;;;:::o;10024:323::-;10080:6;10129:2;10117:9;10108:7;10104:23;10100:32;10097:119;;;10135:79;;:::i;:::-;10097:119;10255:1;10280:50;10322:7;10313:6;10302:9;10298:22;10280:50;:::i;:::-;10270:60;;10226:114;10024:323;;;;:::o;10353:474::-;10421:6;10429;10478:2;10466:9;10457:7;10453:23;10449:32;10446:119;;;10484:79;;:::i;:::-;10446:119;10604:1;10629:53;10674:7;10665:6;10654:9;10650:22;10629:53;:::i;:::-;10619:63;;10575:117;10731:2;10757:53;10802:7;10793:6;10782:9;10778:22;10757:53;:::i;:::-;10747:63;;10702:118;10353:474;;;;;:::o;10833:179::-;10973:31;10969:1;10961:6;10957:14;10950:55;10833:179;:::o;11018:366::-;11160:3;11181:67;11245:2;11240:3;11181:67;:::i;:::-;11174:74;;11257:93;11346:3;11257:93;:::i;:::-;11375:2;11370:3;11366:12;11359:19;;11018:366;;;:::o;11390:419::-;11556:4;11594:2;11583:9;11579:18;11571:26;;11643:9;11637:4;11633:20;11629:1;11618:9;11614:17;11607:47;11671:131;11797:4;11671:131;:::i;:::-;11663:139;;11390:419;;;:::o;11815:332::-;11936:4;11974:2;11963:9;11959:18;11951:26;;11987:71;12055:1;12044:9;12040:17;12031:6;11987:71;:::i;:::-;12068:72;12136:2;12125:9;12121:18;12112:6;12068:72;:::i;:::-;11815:332;;;;;:::o;12153:180::-;12201:77;12198:1;12191:88;12298:4;12295:1;12288:15;12322:4;12319:1;12312:15;12339:191;12379:4;12399:20;12417:1;12399:20;:::i;:::-;12394:25;;12433:20;12451:1;12433:20;:::i;:::-;12428:25;;12472:1;12469;12466:8;12463:34;;;12477:18;;:::i;:::-;12463:34;12522:1;12519;12515:9;12507:17;;12339:191;;;;:::o;12536:180::-;12584:77;12581:1;12574:88;12681:4;12678:1;12671:15;12705:4;12702:1;12695:15;12722:233;12761:3;12784:24;12802:5;12784:24;:::i;:::-;12775:33;;12830:66;12823:5;12820:77;12817:103;;;12900:18;;:::i;:::-;12817:103;12947:1;12940:5;12936:13;12929:20;;12722:233;;;:::o;12961:163::-;13101:15;13097:1;13089:6;13085:14;13078:39;12961:163;:::o;13130:366::-;13272:3;13293:67;13357:2;13352:3;13293:67;:::i;:::-;13286:74;;13369:93;13458:3;13369:93;:::i;:::-;13487:2;13482:3;13478:12;13471:19;;13130:366;;;:::o;13502:419::-;13668:4;13706:2;13695:9;13691:18;13683:26;;13755:9;13749:4;13745:20;13741:1;13730:9;13726:17;13719:47;13783:131;13909:4;13783:131;:::i;:::-;13775:139;;13502:419;;;:::o;13927:182::-;14067:34;14063:1;14055:6;14051:14;14044:58;13927:182;:::o;14115:366::-;14257:3;14278:67;14342:2;14337:3;14278:67;:::i;:::-;14271:74;;14354:93;14443:3;14354:93;:::i;:::-;14472:2;14467:3;14463:12;14456:19;;14115:366;;;:::o;14487:419::-;14653:4;14691:2;14680:9;14676:18;14668:26;;14740:9;14734:4;14730:20;14726:1;14715:9;14711:17;14704:47;14768:131;14894:4;14768:131;:::i;:::-;14760:139;;14487:419;;;:::o;14912:60::-;14940:3;14961:5;14954:12;;14912:60;;;:::o;14978:142::-;15028:9;15061:53;15079:34;15088:24;15106:5;15088:24;:::i;:::-;15079:34;:::i;:::-;15061:53;:::i;:::-;15048:66;;14978:142;;;:::o;15126:126::-;15176:9;15209:37;15240:5;15209:37;:::i;:::-;15196:50;;15126:126;;;:::o;15258:134::-;15316:9;15349:37;15380:5;15349:37;:::i;:::-;15336:50;;15258:134;;;:::o;15398:147::-;15493:45;15532:5;15493:45;:::i;:::-;15488:3;15481:58;15398:147;;:::o;15551:238::-;15652:4;15690:2;15679:9;15675:18;15667:26;;15703:79;15779:1;15768:9;15764:17;15755:6;15703:79;:::i;:::-;15551:238;;;;:::o;15795:173::-;15935:25;15931:1;15923:6;15919:14;15912:49;15795:173;:::o;15974:366::-;16116:3;16137:67;16201:2;16196:3;16137:67;:::i;:::-;16130:74;;16213:93;16302:3;16213:93;:::i;:::-;16331:2;16326:3;16322:12;16315:19;;15974:366;;;:::o;16346:419::-;16512:4;16550:2;16539:9;16535:18;16527:26;;16599:9;16593:4;16589:20;16585:1;16574:9;16570:17;16563:47;16627:131;16753:4;16627:131;:::i;:::-;16619:139;;16346:419;;;:::o;16771:143::-;16828:5;16859:6;16853:13;16844:22;;16875:33;16902:5;16875:33;:::i;:::-;16771:143;;;;:::o;16920:351::-;16990:6;17039:2;17027:9;17018:7;17014:23;17010:32;17007:119;;;17045:79;;:::i;:::-;17007:119;17165:1;17190:64;17246:7;17237:6;17226:9;17222:22;17190:64;:::i;:::-;17180:74;;17136:128;16920:351;;;;:::o;17277:332::-;17398:4;17436:2;17425:9;17421:18;17413:26;;17449:71;17517:1;17506:9;17502:17;17493:6;17449:71;:::i;:::-;17530:72;17598:2;17587:9;17583:18;17574:6;17530:72;:::i;:::-;17277:332;;;;;:::o;17615:85::-;17660:7;17689:5;17678:16;;17615:85;;;:::o;17706:158::-;17764:9;17797:61;17815:42;17824:32;17850:5;17824:32;:::i;:::-;17815:42;:::i;:::-;17797:61;:::i;:::-;17784:74;;17706:158;;;:::o;17870:147::-;17965:45;18004:5;17965:45;:::i;:::-;17960:3;17953:58;17870:147;;:::o;18023:807::-;18272:4;18310:3;18299:9;18295:19;18287:27;;18324:71;18392:1;18381:9;18377:17;18368:6;18324:71;:::i;:::-;18405:72;18473:2;18462:9;18458:18;18449:6;18405:72;:::i;:::-;18487:80;18563:2;18552:9;18548:18;18539:6;18487:80;:::i;:::-;18577;18653:2;18642:9;18638:18;18629:6;18577:80;:::i;:::-;18667:73;18735:3;18724:9;18720:19;18711:6;18667:73;:::i;:::-;18750;18818:3;18807:9;18803:19;18794:6;18750:73;:::i;:::-;18023:807;;;;;;;;;:::o;18836:143::-;18893:5;18924:6;18918:13;18909:22;;18940:33;18967:5;18940:33;:::i;:::-;18836:143;;;;:::o;18985:663::-;19073:6;19081;19089;19138:2;19126:9;19117:7;19113:23;19109:32;19106:119;;;19144:79;;:::i;:::-;19106:119;19264:1;19289:64;19345:7;19336:6;19325:9;19321:22;19289:64;:::i;:::-;19279:74;;19235:128;19402:2;19428:64;19484:7;19475:6;19464:9;19460:22;19428:64;:::i;:::-;19418:74;;19373:129;19541:2;19567:64;19623:7;19614:6;19603:9;19599:22;19567:64;:::i;:::-;19557:74;;19512:129;18985:663;;;;;:::o;19654:332::-;19775:4;19813:2;19802:9;19798:18;19790:26;;19826:71;19894:1;19883:9;19879:17;19870:6;19826:71;:::i;:::-;19907:72;19975:2;19964:9;19960:18;19951:6;19907:72;:::i;:::-;19654:332;;;;;:::o;19992:137::-;20046:5;20077:6;20071:13;20062:22;;20093:30;20117:5;20093:30;:::i;:::-;19992:137;;;;:::o;20135:345::-;20202:6;20251:2;20239:9;20230:7;20226:23;20222:32;20219:119;;;20257:79;;:::i;:::-;20219:119;20377:1;20402:61;20455:7;20446:6;20435:9;20431:22;20402:61;:::i;:::-;20392:71;;20348:125;20135:345;;;;:::o;20486:223::-;20626:34;20622:1;20614:6;20610:14;20603:58;20695:6;20690:2;20682:6;20678:15;20671:31;20486:223;:::o;20715:366::-;20857:3;20878:67;20942:2;20937:3;20878:67;:::i;:::-;20871:74;;20954:93;21043:3;20954:93;:::i;:::-;21072:2;21067:3;21063:12;21056:19;;20715:366;;;:::o;21087:419::-;21253:4;21291:2;21280:9;21276:18;21268:26;;21340:9;21334:4;21330:20;21326:1;21315:9;21311:17;21304:47;21368:131;21494:4;21368:131;:::i;:::-;21360:139;;21087:419;;;:::o;21512:221::-;21652:34;21648:1;21640:6;21636:14;21629:58;21721:4;21716:2;21708:6;21704:15;21697:29;21512:221;:::o;21739:366::-;21881:3;21902:67;21966:2;21961:3;21902:67;:::i;:::-;21895:74;;21978:93;22067:3;21978:93;:::i;:::-;22096:2;22091:3;22087:12;22080:19;;21739:366;;;:::o;22111:419::-;22277:4;22315:2;22304:9;22300:18;22292:26;;22364:9;22358:4;22354:20;22350:1;22339:9;22335:17;22328:47;22392:131;22518:4;22392:131;:::i;:::-;22384:139;;22111:419;;;:::o;22536:224::-;22676:34;22672:1;22664:6;22660:14;22653:58;22745:7;22740:2;22732:6;22728:15;22721:32;22536:224;:::o;22766:366::-;22908:3;22929:67;22993:2;22988:3;22929:67;:::i;:::-;22922:74;;23005:93;23094:3;23005:93;:::i;:::-;23123:2;23118:3;23114:12;23107:19;;22766:366;;;:::o;23138:419::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23138:419;;;:::o;23563:222::-;23703:34;23699:1;23691:6;23687:14;23680:58;23772:5;23767:2;23759:6;23755:15;23748:30;23563:222;:::o;23791:366::-;23933:3;23954:67;24018:2;24013:3;23954:67;:::i;:::-;23947:74;;24030:93;24119:3;24030:93;:::i;:::-;24148:2;24143:3;24139:12;24132:19;;23791:366;;;:::o;24163:419::-;24329:4;24367:2;24356:9;24352:18;24344:26;;24416:9;24410:4;24406:20;24402:1;24391:9;24387:17;24380:47;24444:131;24570:4;24444:131;:::i;:::-;24436:139;;24163:419;;;:::o;24588:228::-;24728:34;24724:1;24716:6;24712:14;24705:58;24797:11;24792:2;24784:6;24780:15;24773:36;24588:228;:::o;24822:366::-;24964:3;24985:67;25049:2;25044:3;24985:67;:::i;:::-;24978:74;;25061:93;25150:3;25061:93;:::i;:::-;25179:2;25174:3;25170:12;25163:19;;24822:366;;;:::o;25194:419::-;25360:4;25398:2;25387:9;25383:18;25375:26;;25447:9;25441:4;25437:20;25433:1;25422:9;25418:17;25411:47;25475:131;25601:4;25475:131;:::i;:::-;25467:139;;25194:419;;;:::o;25619:174::-;25759:26;25755:1;25747:6;25743:14;25736:50;25619:174;:::o;25799:366::-;25941:3;25962:67;26026:2;26021:3;25962:67;:::i;:::-;25955:74;;26038:93;26127:3;26038:93;:::i;:::-;26156:2;26151:3;26147:12;26140:19;;25799:366;;;:::o;26171:419::-;26337:4;26375:2;26364:9;26360:18;26352:26;;26424:9;26418:4;26414:20;26410:1;26399:9;26395:17;26388:47;26452:131;26578:4;26452:131;:::i;:::-;26444:139;;26171:419;;;:::o;26596:305::-;26636:3;26655:20;26673:1;26655:20;:::i;:::-;26650:25;;26689:20;26707:1;26689:20;:::i;:::-;26684:25;;26843:1;26775:66;26771:74;26768:1;26765:81;26762:107;;;26849:18;;:::i;:::-;26762:107;26893:1;26890;26886:9;26879:16;;26596:305;;;;:::o;26907:226::-;27047:34;27043:1;27035:6;27031:14;27024:58;27116:9;27111:2;27103:6;27099:15;27092:34;26907:226;:::o;27139:366::-;27281:3;27302:67;27366:2;27361:3;27302:67;:::i;:::-;27295:74;;27378:93;27467:3;27378:93;:::i;:::-;27496:2;27491:3;27487:12;27480:19;;27139:366;;;:::o;27511:419::-;27677:4;27715:2;27704:9;27700:18;27692:26;;27764:9;27758:4;27754:20;27750:1;27739:9;27735:17;27728:47;27792:131;27918:4;27792:131;:::i;:::-;27784:139;;27511:419;;;:::o;27936:177::-;28076:29;28072:1;28064:6;28060:14;28053:53;27936:177;:::o;28119:366::-;28261:3;28282:67;28346:2;28341:3;28282:67;:::i;:::-;28275:74;;28358:93;28447:3;28358:93;:::i;:::-;28476:2;28471:3;28467:12;28460:19;;28119:366;;;:::o;28491:419::-;28657:4;28695:2;28684:9;28680:18;28672:26;;28744:9;28738:4;28734:20;28730:1;28719:9;28715:17;28708:47;28772:131;28898:4;28772:131;:::i;:::-;28764:139;;28491:419;;;:::o;28916:221::-;29056:34;29052:1;29044:6;29040:14;29033:58;29125:4;29120:2;29112:6;29108:15;29101:29;28916:221;:::o;29143:366::-;29285:3;29306:67;29370:2;29365:3;29306:67;:::i;:::-;29299:74;;29382:93;29471:3;29382:93;:::i;:::-;29500:2;29495:3;29491:12;29484:19;;29143:366;;;:::o;29515:419::-;29681:4;29719:2;29708:9;29704:18;29696:26;;29768:9;29762:4;29758:20;29754:1;29743:9;29739:17;29732:47;29796:131;29922:4;29796:131;:::i;:::-;29788:139;;29515:419;;;:::o;29940:222::-;30080:34;30076:1;30068:6;30064:14;30057:58;30149:5;30144:2;30136:6;30132:15;30125:30;29940:222;:::o;30168:366::-;30310:3;30331:67;30395:2;30390:3;30331:67;:::i;:::-;30324:74;;30407:93;30496:3;30407:93;:::i;:::-;30525:2;30520:3;30516:12;30509:19;;30168:366;;;:::o;30540:419::-;30706:4;30744:2;30733:9;30729:18;30721:26;;30793:9;30787:4;30783:20;30779:1;30768:9;30764:17;30757:47;30821:131;30947:4;30821:131;:::i;:::-;30813:139;;30540:419;;;:::o;30965:348::-;31005:7;31028:20;31046:1;31028:20;:::i;:::-;31023:25;;31062:20;31080:1;31062:20;:::i;:::-;31057:25;;31250:1;31182:66;31178:74;31175:1;31172:81;31167:1;31160:9;31153:17;31149:105;31146:131;;;31257:18;;:::i;:::-;31146:131;31305:1;31302;31298:9;31287:20;;30965:348;;;;:::o;31319:180::-;31367:77;31364:1;31357:88;31464:4;31461:1;31454:15;31488:4;31485:1;31478:15;31505:185;31545:1;31562:20;31580:1;31562:20;:::i;:::-;31557:25;;31596:20;31614:1;31596:20;:::i;:::-;31591:25;;31635:1;31625:35;;31640:18;;:::i;:::-;31625:35;31682:1;31679;31675:9;31670:14;;31505:185;;;;:::o;31696:114::-;31763:6;31797:5;31791:12;31781:22;;31696:114;;;:::o;31816:184::-;31915:11;31949:6;31944:3;31937:19;31989:4;31984:3;31980:14;31965:29;;31816:184;;;;:::o;32006:132::-;32073:4;32096:3;32088:11;;32126:4;32121:3;32117:14;32109:22;;32006:132;;;:::o;32144:108::-;32221:24;32239:5;32221:24;:::i;:::-;32216:3;32209:37;32144:108;;:::o;32258:179::-;32327:10;32348:46;32390:3;32382:6;32348:46;:::i;:::-;32426:4;32421:3;32417:14;32403:28;;32258:179;;;;:::o;32443:113::-;32513:4;32545;32540:3;32536:14;32528:22;;32443:113;;;:::o;32592:732::-;32711:3;32740:54;32788:5;32740:54;:::i;:::-;32810:86;32889:6;32884:3;32810:86;:::i;:::-;32803:93;;32920:56;32970:5;32920:56;:::i;:::-;32999:7;33030:1;33015:284;33040:6;33037:1;33034:13;33015:284;;;33116:6;33110:13;33143:63;33202:3;33187:13;33143:63;:::i;:::-;33136:70;;33229:60;33282:6;33229:60;:::i;:::-;33219:70;;33075:224;33062:1;33059;33055:9;33050:14;;33015:284;;;33019:14;33315:3;33308:10;;32716:608;;;32592:732;;;;:::o;33330:831::-;33593:4;33631:3;33620:9;33616:19;33608:27;;33645:71;33713:1;33702:9;33698:17;33689:6;33645:71;:::i;:::-;33726:80;33802:2;33791:9;33787:18;33778:6;33726:80;:::i;:::-;33853:9;33847:4;33843:20;33838:2;33827:9;33823:18;33816:48;33881:108;33984:4;33975:6;33881:108;:::i;:::-;33873:116;;33999:72;34067:2;34056:9;34052:18;34043:6;33999:72;:::i;:::-;34081:73;34149:3;34138:9;34134:19;34125:6;34081:73;:::i;:::-;33330:831;;;;;;;;:::o
Swarm Source
ipfs://2a504e4e76d41be944d29403067f2fb7ef28e45ca5168f8d5dbef47810829f88
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.