More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 36 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17887776 | 449 days ago | IN | 0 ETH | 0.00081447 | ||||
Approve | 17887616 | 449 days ago | IN | 0 ETH | 0.00092201 | ||||
Approve | 17887616 | 449 days ago | IN | 0 ETH | 0.00110813 | ||||
Set Fee | 17887590 | 449 days ago | IN | 0 ETH | 0.00064283 | ||||
Approve | 17887580 | 449 days ago | IN | 0 ETH | 0.00091397 | ||||
Approve | 17887580 | 449 days ago | IN | 0 ETH | 0.00091397 | ||||
Approve | 17887579 | 449 days ago | IN | 0 ETH | 0.00094673 | ||||
Approve | 17887579 | 449 days ago | IN | 0 ETH | 0.00094673 | ||||
Approve | 17887577 | 449 days ago | IN | 0 ETH | 0.00087616 | ||||
Approve | 17887577 | 449 days ago | IN | 0 ETH | 0.00097708 | ||||
Approve | 17887575 | 449 days ago | IN | 0 ETH | 0.00096817 | ||||
Approve | 17887574 | 449 days ago | IN | 0 ETH | 0.00097796 | ||||
Approve | 17887570 | 449 days ago | IN | 0 ETH | 0.00091604 | ||||
Approve | 17887570 | 449 days ago | IN | 0 ETH | 0.00101021 | ||||
Approve | 17887568 | 449 days ago | IN | 0 ETH | 0.00110034 | ||||
Approve | 17887563 | 449 days ago | IN | 0 ETH | 0.0010877 | ||||
Approve | 17887563 | 449 days ago | IN | 0 ETH | 0.0010877 | ||||
Approve | 17887563 | 449 days ago | IN | 0 ETH | 0.0010877 | ||||
Approve | 17887561 | 449 days ago | IN | 0 ETH | 0.00107201 | ||||
Approve | 17887559 | 449 days ago | IN | 0 ETH | 0.00106529 | ||||
Approve | 17887557 | 449 days ago | IN | 0 ETH | 0.00109617 | ||||
Approve | 17887556 | 449 days ago | IN | 0 ETH | 0.00108204 | ||||
Approve | 17887555 | 449 days ago | IN | 0 ETH | 0.00102791 | ||||
Approve | 17887554 | 449 days ago | IN | 0 ETH | 0.00104932 | ||||
Approve | 17887554 | 449 days ago | IN | 0 ETH | 0.00104932 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17887616 | 449 days ago | 0.01418837 ETH | ||||
17887616 | 449 days ago | 0.01418837 ETH | ||||
17887608 | 449 days ago | 0.01434251 ETH | ||||
17887608 | 449 days ago | 0.01434251 ETH | ||||
17887600 | 449 days ago | 0.01434251 ETH | ||||
17887600 | 449 days ago | 0.01434251 ETH | ||||
17887597 | 449 days ago | 0.01434251 ETH | ||||
17887597 | 449 days ago | 0.01434251 ETH | ||||
17887592 | 449 days ago | 0.01450241 ETH | ||||
17887592 | 449 days ago | 0.01450241 ETH | ||||
17887587 | 449 days ago | 0.01720599 ETH | ||||
17887587 | 449 days ago | 0.01720599 ETH | ||||
17887585 | 449 days ago | 0.01937284 ETH | ||||
17887585 | 449 days ago | 0.01937284 ETH | ||||
17887568 | 449 days ago | 0.01442999 ETH | ||||
17887568 | 449 days ago | 0.01442999 ETH | ||||
17887565 | 449 days ago | 0.01390205 ETH | ||||
17887565 | 449 days ago | 0.01390205 ETH | ||||
17887565 | 449 days ago | 0.01474216 ETH | ||||
17887565 | 449 days ago | 0.01474216 ETH | ||||
17887553 | 449 days ago | 2 ETH |
Loading...
Loading
Contract Name:
TaxCompassBot
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-10 */ /* Telegram Portal: https://t.me/tpassportal Docs: https://guide.taxcompass.tech/ Website: https://www.taxcompass.tech/ Bot: https://t.me/taxcompassbot Twitter: https://twitter.com/taxcompassbot */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract TaxCompassBot is ERC20, Ownable { using SafeMath for uint256; address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "Tax Compass Bot"; string constant _symbol = "TPASS"; uint8 constant _decimals = 9; uint256 _totalSupply = 100_000_000 * (10 ** _decimals); uint256 public _maxWalletAmount = (_totalSupply * 100) / 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 liquidityFee = 0; uint256 marketingFee = 4; uint256 totalFee = liquidityFee + marketingFee; uint256 feeDenominator = 100; address public marketingFeeReceiver = 0xC4509680795387f553cB04fC69E203C29c2Bd882; IDEXRouter public router; address public pair; bool public swapEnabled = false; uint256 public swapThreshold = _totalSupply / 1000 * 4; // 0.5% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IDEXRouter(routerAdress); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; // Exclude addresses from fee isFeeExempt[marketingFeeReceiver] = true; isFeeExempt[_owner] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD] = true; // Exclude addresses from tx limit isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD) { require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size."); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = swapThreshold; uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(MarketingSuccess, "receiver rejected ETH transfer"); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, marketingFeeReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function clearStuckBalance() external { payable(marketingFeeReceiver).transfer(address(this).balance); } function setWalletLimit(uint256 amountPercent) external onlyOwner { _maxWalletAmount = (_totalSupply * amountPercent ) / 1000; } function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = liquidityFee + marketingFee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function openTrading() external onlyOwner() { require(!swapEnabled, "trading is already enabled"); // approve router _approve(address(this), address(router), type(uint256).max); // create pair pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); // add liquidity router.addLiquidityETH{value: address(this).balance}(address(this),_totalSupply,0,0,(msg.sender),block.timestamp); // approve the router to transfer ERC20(pair).approve(address(router), type(uint256).max); swapEnabled = true; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac9190620008cd565b6305f5e100620000bd91906200091e565b600355606480600354620000d291906200091e565b620000de919062000998565b60045560006009556004600a55600a54600954620000fd9190620009d0565b600b556064600c5573c4509680795387f553cb04fc69e203c29c2bd882600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60146101000a81548160ff02191690831515021790555060046103e860035462000189919062000998565b6200019591906200091e565b601055348015620001a557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160076000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000724919062000a1c565b60405180910390a35062000a39565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007c15780860481111562000799576200079862000733565b5b6001851615620007a95780820291505b8081029050620007b98562000762565b945062000779565b94509492505050565b600082620007dc5760019050620008af565b81620007ec5760009050620008af565b8160018114620008055760028114620008105762000846565b6001915050620008af565b60ff84111562000825576200082462000733565b5b8360020a9150848211156200083f576200083e62000733565b5b50620008af565b5060208310610133831016604e8410600b8410161715620008805782820a9050838111156200087a576200087962000733565b5b620008af565b6200088f84848460016200076f565b92509050818404811115620008a957620008a862000733565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008da82620008b6565b9150620008e783620008c0565b9250620009167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007ca565b905092915050565b60006200092b82620008b6565b91506200093883620008b6565b92508282026200094881620008b6565b9150828204841483151762000962576200096162000733565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009a582620008b6565b9150620009b283620008b6565b925082620009c557620009c462000969565b5b828204905092915050565b6000620009dd82620008b6565b9150620009ea83620008b6565b925082820190508082111562000a055762000a0462000733565b5b92915050565b62000a1681620008b6565b82525050565b600060208201905062000a33600083018462000a0b565b92915050565b6130158062000a496000396000f3fe6080604052600436106101445760003560e01c80636ddd1713116100b6578063a9059cbb1161006f578063a9059cbb1461045b578063c9567bf914610498578063dd62ed3e146104af578063e96fada2146104ec578063f1d5f51714610517578063f887ea40146105405761014b565b80636ddd17131461035b57806370a0823114610386578063715018a6146103c3578063893d20e8146103da57806395d89b4114610405578063a8aa1b31146104305761014b565b80632f54bf6e116101085780632f54bf6e1461024b578063313ce56714610288578063364333f4146102b357806352f7c988146102ca578063571ac8b0146102f35780636c0a24eb146103305761014b565b80630445b6671461015057806306fdde031461017b578063095ea7b3146101a657806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561056b565b60405161017291906122fe565b60405180910390f35b34801561018757600080fd5b50610190610571565b60405161019d91906123a9565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c8919061245a565b6105ae565b6040516101da91906124b5565b60405180910390f35b3480156101ef57600080fd5b506101f86106a0565b60405161020591906122fe565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906124d0565b6106aa565b60405161024291906124b5565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d9190612523565b6108aa565b60405161027f91906124b5565b60405180910390f35b34801561029457600080fd5b5061029d610903565b6040516102aa919061256c565b60405180910390f35b3480156102bf57600080fd5b506102c861090c565b005b3480156102d657600080fd5b506102f160048036038101906102ec9190612587565b610977565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612523565b6109e7565b60405161032791906124b5565b60405180910390f35b34801561033c57600080fd5b50610345610a1a565b60405161035291906122fe565b60405180910390f35b34801561036757600080fd5b50610370610a20565b60405161037d91906124b5565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190612523565b610a33565b6040516103ba91906122fe565b60405180910390f35b3480156103cf57600080fd5b506103d8610a7c565b005b3480156103e657600080fd5b506103ef610b3f565b6040516103fc91906125d6565b60405180910390f35b34801561041157600080fd5b5061041a610b68565b60405161042791906123a9565b60405180910390f35b34801561043c57600080fd5b50610445610ba5565b60405161045291906125d6565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d919061245a565b610bcb565b60405161048f91906124b5565b60405180910390f35b3480156104a457600080fd5b506104ad610be0565b005b3480156104bb57600080fd5b506104d660048036038101906104d191906125f1565b611052565b6040516104e391906122fe565b60405180910390f35b3480156104f857600080fd5b506105016110d9565b60405161050e91906125d6565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612631565b6110ff565b005b34801561054c57600080fd5b5061055561116b565b60405161056291906126bd565b60405180910390f35b60105481565b60606040518060400160405280600f81526020017f54617820436f6d7061737320426f740000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161068e91906122fe565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461089657610815826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111919092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108a18484846111f5565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610974573d6000803e3d6000fd5b50565b610980336108aa565b6109bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b690612724565b60405180910390fd5b8160098190555080600a81905550600a546009546109dd9190612773565b600b819055505050565b6000610a13827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105ae565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a85336108aa565b610ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abb90612724565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610b3591906125d6565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5450415353000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bd83384846111f5565b905092915050565b610be9336108aa565b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90612724565b60405180910390fd5b600f60149054906101000a900460ff1615610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906127f3565b60405180910390fd5b610cc530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115be565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d569190612828565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e029190612828565b306040518363ffffffff1660e01b8152600401610e20929190612855565b6020604051808303816000875af1158015610e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e639190612828565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473060035460008033426040518863ffffffff1660e01b8152600401610f0c969594939291906128b9565b60606040518083038185885af1158015610f2a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f4f919061292f565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ff1929190612982565b6020604051808303816000875af1158015611010573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103491906129d7565b506001600f60146101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611108336108aa565b611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612724565b60405180910390fd5b6103e8816003546111589190612a04565b6111629190612a75565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d091906123a9565b60405180910390fd5b50600083856111e89190612aa6565b9050809150509392505050565b6000601160009054906101000a900460ff161561121e57611217848484611787565b90506115b7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112ca5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113b357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611373575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113709190612773565b11155b6113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990612b4c565b60405180910390fd5b5b6113bb61195a565b156113c9576113c8611a31565b5b611452826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111919092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114a085611f7b565b6114aa57826114b5565b6114b48584611fd2565b5b905061150981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115a991906122fe565b60405180910390a360019150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612bde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169390612c70565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177a91906122fe565b60405180910390a3505050565b6000611812826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111919092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118a782600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161194791906122fe565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156119c75750601160009054906101000a900460ff16155b80156119df5750600f60149054906101000a900460ff165b8015611a2c5750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff021916908315150217905550600060105490506000611a916002611a83600b54611a756009548761217490919063ffffffff16565b6121ee90919063ffffffff16565b6121ee90919063ffffffff16565b90506000611aa8828461223890919063ffffffff16565b90506000600267ffffffffffffffff811115611ac757611ac6612c90565b5b604051908082528060200260200182016040528015611af55781602001602082028036833780820191505090505b5090503081600081518110611b0d57611b0c612cbf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd89190612828565b81600181518110611bec57611beb612cbf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c8f959493929190612dac565b600060405180830381600087803b158015611ca957600080fd5b505af1158015611cbd573d6000803e3d6000fd5b505050506000611cd6824761223890919063ffffffff16565b90506000611d04611cf360026009546121ee90919063ffffffff16565b600b5461223890919063ffffffff16565b90506000611d426002611d3484611d266009548861217490919063ffffffff16565b6121ee90919063ffffffff16565b6121ee90919063ffffffff16565b90506000611d6d83611d5f600a548761217490919063ffffffff16565b6121ee90919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611dbb90612e37565b600060405180830381858888f193505050503d8060008114611df9576040519150601f19603f3d011682016040523d82523d6000602084013e611dfe565b606091505b5050905080611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990612e98565b60405180910390fd5b6000891115611f5457600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611ed4969594939291906128b9565b60606040518083038185885af1158015611ef2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f17919061292f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611f4b929190612eb8565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611ffe600c54611ff0600b548661217490919063ffffffff16565b6121ee90919063ffffffff16565b905061205281600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211690919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120f291906122fe565b60405180910390a361210d818461223890919063ffffffff16565b91505092915050565b60008082846121259190612773565b90508381101561216a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216190612f2d565b60405180910390fd5b8091505092915050565b600080830361218657600090506121e8565b600082846121949190612a04565b90508284826121a39190612a75565b146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90612fbf565b60405180910390fd5b809150505b92915050565b600061223083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612282565b905092915050565b600061227a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611191565b905092915050565b600080831182906122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c091906123a9565b60405180910390fd5b50600083856122d89190612a75565b9050809150509392505050565b6000819050919050565b6122f8816122e5565b82525050565b600060208201905061231360008301846122ef565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612353578082015181840152602081019050612338565b60008484015250505050565b6000601f19601f8301169050919050565b600061237b82612319565b6123858185612324565b9350612395818560208601612335565b61239e8161235f565b840191505092915050565b600060208201905081810360008301526123c38184612370565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123fb826123d0565b9050919050565b61240b816123f0565b811461241657600080fd5b50565b60008135905061242881612402565b92915050565b612437816122e5565b811461244257600080fd5b50565b6000813590506124548161242e565b92915050565b60008060408385031215612471576124706123cb565b5b600061247f85828601612419565b925050602061249085828601612445565b9150509250929050565b60008115159050919050565b6124af8161249a565b82525050565b60006020820190506124ca60008301846124a6565b92915050565b6000806000606084860312156124e9576124e86123cb565b5b60006124f786828701612419565b935050602061250886828701612419565b925050604061251986828701612445565b9150509250925092565b600060208284031215612539576125386123cb565b5b600061254784828501612419565b91505092915050565b600060ff82169050919050565b61256681612550565b82525050565b6000602082019050612581600083018461255d565b92915050565b6000806040838503121561259e5761259d6123cb565b5b60006125ac85828601612445565b92505060206125bd85828601612445565b9150509250929050565b6125d0816123f0565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b60008060408385031215612608576126076123cb565b5b600061261685828601612419565b925050602061262785828601612419565b9150509250929050565b600060208284031215612647576126466123cb565b5b600061265584828501612445565b91505092915050565b6000819050919050565b600061268361267e612679846123d0565b61265e565b6123d0565b9050919050565b600061269582612668565b9050919050565b60006126a78261268a565b9050919050565b6126b78161269c565b82525050565b60006020820190506126d260008301846126ae565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061270e600683612324565b9150612719826126d8565b602082019050919050565b6000602082019050818103600083015261273d81612701565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061277e826122e5565b9150612789836122e5565b92508282019050808211156127a1576127a0612744565b5b92915050565b7f74726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b60006127dd601a83612324565b91506127e8826127a7565b602082019050919050565b6000602082019050818103600083015261280c816127d0565b9050919050565b60008151905061282281612402565b92915050565b60006020828403121561283e5761283d6123cb565b5b600061284c84828501612813565b91505092915050565b600060408201905061286a60008301856125c7565b61287760208301846125c7565b9392505050565b6000819050919050565b60006128a361289e6128998461287e565b61265e565b6122e5565b9050919050565b6128b381612888565b82525050565b600060c0820190506128ce60008301896125c7565b6128db60208301886122ef565b6128e860408301876128aa565b6128f560608301866128aa565b61290260808301856125c7565b61290f60a08301846122ef565b979650505050505050565b6000815190506129298161242e565b92915050565b600080600060608486031215612948576129476123cb565b5b60006129568682870161291a565b93505060206129678682870161291a565b92505060406129788682870161291a565b9150509250925092565b600060408201905061299760008301856125c7565b6129a460208301846122ef565b9392505050565b6129b48161249a565b81146129bf57600080fd5b50565b6000815190506129d1816129ab565b92915050565b6000602082840312156129ed576129ec6123cb565b5b60006129fb848285016129c2565b91505092915050565b6000612a0f826122e5565b9150612a1a836122e5565b9250828202612a28816122e5565b91508282048414831517612a3f57612a3e612744565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a80826122e5565b9150612a8b836122e5565b925082612a9b57612a9a612a46565b5b828204905092915050565b6000612ab1826122e5565b9150612abc836122e5565b9250828203905081811115612ad457612ad3612744565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612b36602583612324565b9150612b4182612ada565b604082019050919050565b60006020820190508181036000830152612b6581612b29565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc8602483612324565b9150612bd382612b6c565b604082019050919050565b60006020820190508181036000830152612bf781612bbb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c5a602283612324565b9150612c6582612bfe565b604082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d23816123f0565b82525050565b6000612d358383612d1a565b60208301905092915050565b6000602082019050919050565b6000612d5982612cee565b612d638185612cf9565b9350612d6e83612d0a565b8060005b83811015612d9f578151612d868882612d29565b9750612d9183612d41565b925050600181019050612d72565b5085935050505092915050565b600060a082019050612dc160008301886122ef565b612dce60208301876128aa565b8181036040830152612de08186612d4e565b9050612def60608301856125c7565b612dfc60808301846122ef565b9695505050505050565b600081905092915050565b50565b6000612e21600083612e06565b9150612e2c82612e11565b600082019050919050565b6000612e4282612e14565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612e82601e83612324565b9150612e8d82612e4c565b602082019050919050565b60006020820190508181036000830152612eb181612e75565b9050919050565b6000604082019050612ecd60008301856122ef565b612eda60208301846122ef565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f17601b83612324565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fa9602183612324565b9150612fb482612f4d565b604082019050919050565b60006020820190508181036000830152612fd881612f9c565b905091905056fea2646970667358221220ec9b440d720c55308ce557ac66a2df0fa5fd754f5ca84691f2d0941b19170bc464736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101445760003560e01c80636ddd1713116100b6578063a9059cbb1161006f578063a9059cbb1461045b578063c9567bf914610498578063dd62ed3e146104af578063e96fada2146104ec578063f1d5f51714610517578063f887ea40146105405761014b565b80636ddd17131461035b57806370a0823114610386578063715018a6146103c3578063893d20e8146103da57806395d89b4114610405578063a8aa1b31146104305761014b565b80632f54bf6e116101085780632f54bf6e1461024b578063313ce56714610288578063364333f4146102b357806352f7c988146102ca578063571ac8b0146102f35780636c0a24eb146103305761014b565b80630445b6671461015057806306fdde031461017b578063095ea7b3146101a657806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561056b565b60405161017291906122fe565b60405180910390f35b34801561018757600080fd5b50610190610571565b60405161019d91906123a9565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c8919061245a565b6105ae565b6040516101da91906124b5565b60405180910390f35b3480156101ef57600080fd5b506101f86106a0565b60405161020591906122fe565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906124d0565b6106aa565b60405161024291906124b5565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d9190612523565b6108aa565b60405161027f91906124b5565b60405180910390f35b34801561029457600080fd5b5061029d610903565b6040516102aa919061256c565b60405180910390f35b3480156102bf57600080fd5b506102c861090c565b005b3480156102d657600080fd5b506102f160048036038101906102ec9190612587565b610977565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612523565b6109e7565b60405161032791906124b5565b60405180910390f35b34801561033c57600080fd5b50610345610a1a565b60405161035291906122fe565b60405180910390f35b34801561036757600080fd5b50610370610a20565b60405161037d91906124b5565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190612523565b610a33565b6040516103ba91906122fe565b60405180910390f35b3480156103cf57600080fd5b506103d8610a7c565b005b3480156103e657600080fd5b506103ef610b3f565b6040516103fc91906125d6565b60405180910390f35b34801561041157600080fd5b5061041a610b68565b60405161042791906123a9565b60405180910390f35b34801561043c57600080fd5b50610445610ba5565b60405161045291906125d6565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d919061245a565b610bcb565b60405161048f91906124b5565b60405180910390f35b3480156104a457600080fd5b506104ad610be0565b005b3480156104bb57600080fd5b506104d660048036038101906104d191906125f1565b611052565b6040516104e391906122fe565b60405180910390f35b3480156104f857600080fd5b506105016110d9565b60405161050e91906125d6565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612631565b6110ff565b005b34801561054c57600080fd5b5061055561116b565b60405161056291906126bd565b60405180910390f35b60105481565b60606040518060400160405280600f81526020017f54617820436f6d7061737320426f740000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161068e91906122fe565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461089657610815826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111919092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108a18484846111f5565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610974573d6000803e3d6000fd5b50565b610980336108aa565b6109bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b690612724565b60405180910390fd5b8160098190555080600a81905550600a546009546109dd9190612773565b600b819055505050565b6000610a13827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105ae565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a85336108aa565b610ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abb90612724565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610b3591906125d6565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5450415353000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bd83384846111f5565b905092915050565b610be9336108aa565b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90612724565b60405180910390fd5b600f60149054906101000a900460ff1615610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906127f3565b60405180910390fd5b610cc530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115be565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d569190612828565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e029190612828565b306040518363ffffffff1660e01b8152600401610e20929190612855565b6020604051808303816000875af1158015610e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e639190612828565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473060035460008033426040518863ffffffff1660e01b8152600401610f0c969594939291906128b9565b60606040518083038185885af1158015610f2a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f4f919061292f565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ff1929190612982565b6020604051808303816000875af1158015611010573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103491906129d7565b506001600f60146101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611108336108aa565b611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612724565b60405180910390fd5b6103e8816003546111589190612a04565b6111629190612a75565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d091906123a9565b60405180910390fd5b50600083856111e89190612aa6565b9050809150509392505050565b6000601160009054906101000a900460ff161561121e57611217848484611787565b90506115b7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112ca5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113b357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611373575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113709190612773565b11155b6113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990612b4c565b60405180910390fd5b5b6113bb61195a565b156113c9576113c8611a31565b5b611452826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111919092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006114a085611f7b565b6114aa57826114b5565b6114b48584611fd2565b5b905061150981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115a991906122fe565b60405180910390a360019150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612bde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169390612c70565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177a91906122fe565b60405180910390a3505050565b6000611812826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111919092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118a782600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161194791906122fe565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156119c75750601160009054906101000a900460ff16155b80156119df5750600f60149054906101000a900460ff165b8015611a2c5750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff021916908315150217905550600060105490506000611a916002611a83600b54611a756009548761217490919063ffffffff16565b6121ee90919063ffffffff16565b6121ee90919063ffffffff16565b90506000611aa8828461223890919063ffffffff16565b90506000600267ffffffffffffffff811115611ac757611ac6612c90565b5b604051908082528060200260200182016040528015611af55781602001602082028036833780820191505090505b5090503081600081518110611b0d57611b0c612cbf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd89190612828565b81600181518110611bec57611beb612cbf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c8f959493929190612dac565b600060405180830381600087803b158015611ca957600080fd5b505af1158015611cbd573d6000803e3d6000fd5b505050506000611cd6824761223890919063ffffffff16565b90506000611d04611cf360026009546121ee90919063ffffffff16565b600b5461223890919063ffffffff16565b90506000611d426002611d3484611d266009548861217490919063ffffffff16565b6121ee90919063ffffffff16565b6121ee90919063ffffffff16565b90506000611d6d83611d5f600a548761217490919063ffffffff16565b6121ee90919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611dbb90612e37565b600060405180830381858888f193505050503d8060008114611df9576040519150601f19603f3d011682016040523d82523d6000602084013e611dfe565b606091505b5050905080611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990612e98565b60405180910390fd5b6000891115611f5457600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611ed4969594939291906128b9565b60606040518083038185885af1158015611ef2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f17919061292f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611f4b929190612eb8565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611ffe600c54611ff0600b548661217490919063ffffffff16565b6121ee90919063ffffffff16565b905061205281600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211690919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120f291906122fe565b60405180910390a361210d818461223890919063ffffffff16565b91505092915050565b60008082846121259190612773565b90508381101561216a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216190612f2d565b60405180910390fd5b8091505092915050565b600080830361218657600090506121e8565b600082846121949190612a04565b90508284826121a39190612a75565b146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90612fbf565b60405180910390fd5b809150505b92915050565b600061223083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612282565b905092915050565b600061227a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611191565b905092915050565b600080831182906122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c091906123a9565b60405180910390fd5b50600083856122d89190612a75565b9050809150509392505050565b6000819050919050565b6122f8816122e5565b82525050565b600060208201905061231360008301846122ef565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612353578082015181840152602081019050612338565b60008484015250505050565b6000601f19601f8301169050919050565b600061237b82612319565b6123858185612324565b9350612395818560208601612335565b61239e8161235f565b840191505092915050565b600060208201905081810360008301526123c38184612370565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123fb826123d0565b9050919050565b61240b816123f0565b811461241657600080fd5b50565b60008135905061242881612402565b92915050565b612437816122e5565b811461244257600080fd5b50565b6000813590506124548161242e565b92915050565b60008060408385031215612471576124706123cb565b5b600061247f85828601612419565b925050602061249085828601612445565b9150509250929050565b60008115159050919050565b6124af8161249a565b82525050565b60006020820190506124ca60008301846124a6565b92915050565b6000806000606084860312156124e9576124e86123cb565b5b60006124f786828701612419565b935050602061250886828701612419565b925050604061251986828701612445565b9150509250925092565b600060208284031215612539576125386123cb565b5b600061254784828501612419565b91505092915050565b600060ff82169050919050565b61256681612550565b82525050565b6000602082019050612581600083018461255d565b92915050565b6000806040838503121561259e5761259d6123cb565b5b60006125ac85828601612445565b92505060206125bd85828601612445565b9150509250929050565b6125d0816123f0565b82525050565b60006020820190506125eb60008301846125c7565b92915050565b60008060408385031215612608576126076123cb565b5b600061261685828601612419565b925050602061262785828601612419565b9150509250929050565b600060208284031215612647576126466123cb565b5b600061265584828501612445565b91505092915050565b6000819050919050565b600061268361267e612679846123d0565b61265e565b6123d0565b9050919050565b600061269582612668565b9050919050565b60006126a78261268a565b9050919050565b6126b78161269c565b82525050565b60006020820190506126d260008301846126ae565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061270e600683612324565b9150612719826126d8565b602082019050919050565b6000602082019050818103600083015261273d81612701565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061277e826122e5565b9150612789836122e5565b92508282019050808211156127a1576127a0612744565b5b92915050565b7f74726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b60006127dd601a83612324565b91506127e8826127a7565b602082019050919050565b6000602082019050818103600083015261280c816127d0565b9050919050565b60008151905061282281612402565b92915050565b60006020828403121561283e5761283d6123cb565b5b600061284c84828501612813565b91505092915050565b600060408201905061286a60008301856125c7565b61287760208301846125c7565b9392505050565b6000819050919050565b60006128a361289e6128998461287e565b61265e565b6122e5565b9050919050565b6128b381612888565b82525050565b600060c0820190506128ce60008301896125c7565b6128db60208301886122ef565b6128e860408301876128aa565b6128f560608301866128aa565b61290260808301856125c7565b61290f60a08301846122ef565b979650505050505050565b6000815190506129298161242e565b92915050565b600080600060608486031215612948576129476123cb565b5b60006129568682870161291a565b93505060206129678682870161291a565b92505060406129788682870161291a565b9150509250925092565b600060408201905061299760008301856125c7565b6129a460208301846122ef565b9392505050565b6129b48161249a565b81146129bf57600080fd5b50565b6000815190506129d1816129ab565b92915050565b6000602082840312156129ed576129ec6123cb565b5b60006129fb848285016129c2565b91505092915050565b6000612a0f826122e5565b9150612a1a836122e5565b9250828202612a28816122e5565b91508282048414831517612a3f57612a3e612744565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a80826122e5565b9150612a8b836122e5565b925082612a9b57612a9a612a46565b5b828204905092915050565b6000612ab1826122e5565b9150612abc836122e5565b9250828203905081811115612ad457612ad3612744565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612b36602583612324565b9150612b4182612ada565b604082019050919050565b60006020820190508181036000830152612b6581612b29565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc8602483612324565b9150612bd382612b6c565b604082019050919050565b60006020820190508181036000830152612bf781612bbb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c5a602283612324565b9150612c6582612bfe565b604082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d23816123f0565b82525050565b6000612d358383612d1a565b60208301905092915050565b6000602082019050919050565b6000612d5982612cee565b612d638185612cf9565b9350612d6e83612d0a565b8060005b83811015612d9f578151612d868882612d29565b9750612d9183612d41565b925050600181019050612d72565b5085935050505092915050565b600060a082019050612dc160008301886122ef565b612dce60208301876128aa565b8181036040830152612de08186612d4e565b9050612def60608301856125c7565b612dfc60808301846122ef565b9695505050505050565b600081905092915050565b50565b6000612e21600083612e06565b9150612e2c82612e11565b600082019050919050565b6000612e4282612e14565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612e82601e83612324565b9150612e8d82612e4c565b602082019050919050565b60006020820190508181036000830152612eb181612e75565b9050919050565b6000604082019050612ecd60008301856122ef565b612eda60208301846122ef565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f17601b83612324565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fa9602183612324565b9150612fb482612f4d565b604082019050919050565b60006020820190508181036000830152612fd881612f9c565b905091905056fea2646970667358221220ec9b440d720c55308ce557ac66a2df0fa5fd754f5ca84691f2d0941b19170bc464736f6c63430008130033
Deployed Bytecode Sourcemap
4310:8820:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5332:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6536:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6958:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6266:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7476:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2548:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6360:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11596:118;;;;;;;;;;;;;:::i;:::-;;11872:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7182:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4715:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5294:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6706:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2657:131;;;;;;;;;;;;;:::i;:::-;;6622:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6446:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5266:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7312:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12447:612;;;;;;;;;;;;;:::i;:::-;;6817:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5146:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11722:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5235:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5332:54;;;;:::o;6536:80::-;6584:13;6608:5;;;;;;;;;;;;;;;;;6601:12;;6536:80;:::o;6958:216::-;7033:4;7085:6;7050:11;:23;7062:10;7050:23;;;;;;;;;;;;;;;:32;7074:7;7050:32;;;;;;;;;;;;;;;:41;;;;7128:7;7107:37;;7116:10;7107:37;;;7137:6;7107:37;;;;;;:::i;:::-;;;;;;;;7162:4;7155:11;;6958:216;;;;:::o;6266:88::-;6321:7;6339:12;;6332:19;;6266:88;:::o;7476:370::-;7576:4;7631:17;7596:11;:19;7608:6;7596:19;;;;;;;;;;;;;;;:31;7616:10;7596:31;;;;;;;;;;;;;;;;:52;7593:186;;7698:69;7734:6;7698:69;;;;;;;;;;;;;;;;;:11;:19;7710:6;7698:19;;;;;;;;;;;;;;;:31;7718:10;7698:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7664:11;:19;7676:6;7664:19;;;;;;;;;;;;;;;:31;7684:10;7664:31;;;;;;;;;;;;;;;:103;;;;7593:186;7798:40;7812:6;7820:9;7831:6;7798:13;:40::i;:::-;7791:47;;7476:370;;;;;:::o;2548:103::-;2603:4;2638:5;;;;;;;;;;;2627:16;;:7;:16;;;2620:23;;2548:103;;;:::o;6360:80::-;6412:5;4644:1;6421:16;;6360:80;:::o;11596:118::-;11653:20;;;;;;;;;;;11645:38;;:61;11684:21;11645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11596:118::o;11872:220::-;2501:19;2509:10;2501:7;:19::i;:::-;2493:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11980:13:::1;11965:12;:28;;;;12021:13;12006:12;:28;;;;12072:12;;12057;;:27;;;;:::i;:::-;12046:8;:38;;;;11872:220:::0;;:::o;7182:122::-;7237:4;7261:35;7269:7;7278:17;7261:7;:35::i;:::-;7254:42;;7182:122;;;:::o;4715:60::-;;;;:::o;5294:31::-;;;;;;;;;;;;;:::o;6706:105::-;6772:7;6790:9;:18;6800:7;6790:18;;;;;;;;;;;;;;;;6783:25;;6706:105;;;:::o;2657:131::-;2501:19;2509:10;2501:7;:19::i;:::-;2493:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2730:1:::1;2714:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2748:32;2777:1;2748:32;;;;;;:::i;:::-;;;;;;;;2657:131::o:0;6622:78::-;6674:7;6692:5;;;;;;;;;;;6685:12;;6622:78;:::o;6446:84::-;6496:13;6520:7;;;;;;;;;;;;;;;;;6513:14;;6446:84;:::o;5266:19::-;;;;;;;;;;;;;:::o;7312:156::-;7392:4;7416:44;7430:10;7442:9;7453:6;7416:13;:44::i;:::-;7409:51;;7312:156;;;;:::o;12447:612::-;2501:19;2509:10;2501:7;:19::i;:::-;2493:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12511:11:::1;;;;;;;;;;;12510:12;12502:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12592:59;12609:4;12624:6;;;;;;;;;;;12633:17;12592:8;:59::i;:::-;12705:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12693:40;;;12734:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12757:4;12693:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12686:4;;:77;;;;;;;;;;;;;;;;;;12800:6;;;;;;;;;;;:22;;;12830:21;12861:4;12867:12;;12880:1;12882::::0;12885:10:::1;12897:15;12800:113;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12973:4;;;;;;;;;;;12967:19;;;12995:6;;;;;;;;;;;13004:17;12967:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13047:4;13033:11;;:18;;;;;;;;;;;;;;;;;;12447:612::o:0;6817:133::-;6901:7;6919:11;:19;6931:6;6919:19;;;;;;;;;;;;;;;:28;6939:7;6919:28;;;;;;;;;;;;;;;;6912:35;;6817:133;;;;:::o;5146:80::-;;;;;;;;;;;;;:::o;11722:142::-;2501:19;2509:10;2501:7;:19::i;:::-;2493:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11852:4:::1;11834:13;11819:12;;:28;;;;:::i;:::-;11818:38;;;;:::i;:::-;11799:16;:57;;;;11722:142:::0;:::o;5235:24::-;;;;;;;;;;;;;:::o;637:190::-;723:7;756:1;751;:6;;759:12;743:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;783:9;799:1;795;:5;;;;:::i;:::-;783:17;;818:1;811:8;;;637:190;;;;;:::o;7854:792::-;7946:4;7966:6;;;;;;;;;;;7963:63;;;7982:41;7997:6;8005:9;8016:6;7982:14;:41::i;:::-;7975:48;;;;7963:63;8063:4;;;;;;;;;;;8050:17;;:9;:17;;;;:38;;;;;8084:4;;;;;;;;;;;8071:17;;:9;:17;;;;8050:38;8046:200;;;8113:15;:26;8129:9;8113:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8176:16;;8166:6;8143:9;:20;8153:9;8143:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8113:79;8105:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;8046:200;8269:16;:14;:16::i;:::-;8266:35;;;8288:10;:8;:10::i;:::-;8266:35;8334:53;8356:6;8334:53;;;;;;;;;;;;;;;;;:9;:17;8344:6;8334:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8314:9;:17;8324:6;8314:17;;;;;;;;;;;;;;;:73;;;;8400:22;8425:21;8439:6;8425:13;:21::i;:::-;:56;;8475:6;8425:56;;;8449:23;8457:6;8465;8449:7;:23::i;:::-;8425:56;8400:81;;8515:40;8540:14;8515:9;:20;8525:9;8515:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8492:9;:20;8502:9;8492:20;;;;;;;;;;;;;;;:63;;;;8590:9;8573:43;;8582:6;8573:43;;;8601:14;8573:43;;;;;;:::i;:::-;;;;;;;;8634:4;8627:11;;;7854:792;;;;;;:::o;12104:335::-;12214:1;12197:19;;:5;:19;;;12189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12295:1;12276:21;;:7;:21;;;12268:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12377:6;12347:11;:18;12359:5;12347:18;;;;;;;;;;;;;;;:27;12366:7;12347:27;;;;;;;;;;;;;;;:36;;;;12415:7;12399:32;;12408:5;12399:32;;;12424:6;12399:32;;;;;;:::i;:::-;;;;;;;;12104:335;;;:::o;8658:330::-;8751:4;8788:53;8810:6;8788:53;;;;;;;;;;;;;;;;;:9;:17;8798:6;8788:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8768:9;:17;8778:6;8768:17;;;;;;;;;;;;;;;:73;;;;8875:32;8900:6;8875:9;:20;8885:9;8875:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8852:9;:20;8862:9;8852:20;;;;;;;;;;;;;;;:55;;;;8940:9;8923:35;;8932:6;8923:35;;;8951:6;8923:35;;;;;;:::i;:::-;;;;;;;;8976:4;8969:11;;8658:330;;;;;:::o;9455:197::-;9504:4;9542;;;;;;;;;;;9528:18;;:10;:18;;;;:38;;;;;9560:6;;;;;;;;;;;9559:7;9528:38;:62;;;;;9579:11;;;;;;;;;;;9528:62;:116;;;;;9631:13;;9603:9;:24;9621:4;9603:24;;;;;;;;;;;;;;;;:41;;9528:116;9521:123;;9455:197;:::o;9660:1550::-;5450:4;5441:6;;:13;;;;;;;;;;;;;;;;;;9709:28:::1;9740:13;;9709:44;;9764:23;9790:59;9847:1;9790:52;9833:8;;9790:38;9815:12;;9790:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9764:85;;9860:20;9883:41;9908:15;9883:20;:24;;:41;;;;:::i;:::-;9860:64;;9937:21;9975:1;9961:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9937:40;;10006:4;9988;9993:1;9988:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10032:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10022:4;10027:1;10022:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10058:21;10082;10058:45;;10116:6;;;;;;;;;;;:57;;;10188:12;10215:1;10231:4;10258;10278:15;10116:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10315:17;10335:40;10361:13;10335:21;:25;;:40;;;;:::i;:::-;10315:60;;10386:19;10408:33;10421:19;10438:1;10421:12;;:16;;:19;;;;:::i;:::-;10408:8;;:12;;:33;;;;:::i;:::-;10386:55;;10452:26;10481:51;10530:1;10481:44;10513:11;10481:27;10495:12;;10481:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10452:80;;10543:26;10572:44;10604:11;10572:27;10586:12;;10572:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10543:73;;10632:21;10690:20;;;;;;;;;;;10682:34;;10724:18;10749:5;10682:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10631:128;;;10778:16;10770:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10863:1;10845:15;:19;10842:361;;;10880:6;;;;;;;;;;;:22;;;10910:18;10956:4;10980:15;11014:1;11034::::0;11054:20:::1;;;;;;;;;;;11093:15;10880:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11143:48;11155:18;11175:15;11143:48;;;;;;;:::i;:::-;;;;;;;;10842:361;9698:1512;;;;;;;;;;5468:5:::0;5459:6;;:14;;;;;;;;;;;;;;;;;;9660:1550::o;8996:114::-;9058:4;9083:11;:19;9095:6;9083:19;;;;;;;;;;;;;;;;;;;;;;;;;9082:20;9075:27;;8996:114;;;:::o;9118:329::-;9185:7;9205:17;9225:40;9250:14;;9225:20;9236:8;;9225:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;9205:60;;9303:39;9332:9;9303;:24;9321:4;9303:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9276:9;:24;9294:4;9276:24;;;;;;;;;;;;;;;:66;;;;9383:4;9358:42;;9367:6;9358:42;;;9390:9;9358:42;;;;;;:::i;:::-;;;;;;;;9418:21;9429:9;9418:6;:10;;:21;;;;:::i;:::-;9411:28;;;9118:329;;;;:::o;310:179::-;368:7;388:9;404:1;400;:5;;;;:::i;:::-;388:17;;429:1;424;:6;;416:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;480:1;473:8;;;310:179;;;;:::o;833:246::-;891:7;920:1;915;:6;911:47;;945:1;938:8;;;;911:47;968:9;984:1;980;:5;;;;:::i;:::-;968:17;;1013:1;1008;1004;:5;;;;:::i;:::-;:10;996:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1070:1;1063:8;;;833:246;;;;;:::o;1085:132::-;1143:7;1170:39;1174:1;1177;1170:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1163:46;;1085:132;;;;:::o;495:136::-;553:7;580:43;584:1;587;580:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;573:50;;495:136;;;;:::o;1223:189::-;1309:7;1341:1;1337;:5;1344:12;1329:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1368:9;1384:1;1380;:5;;;;:::i;:::-;1368:17;;1403:1;1396:8;;;1223:189;;;;;:::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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:329::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:60::-;6863:3;6884:5;6877:12;;6835:60;;;:::o;6901:142::-;6951:9;6984:53;7002:34;7011:24;7029:5;7011:24;:::i;:::-;7002:34;:::i;:::-;6984:53;:::i;:::-;6971:66;;6901:142;;;:::o;7049:126::-;7099:9;7132:37;7163:5;7132:37;:::i;:::-;7119:50;;7049:126;;;:::o;7181:144::-;7249:9;7282:37;7313:5;7282:37;:::i;:::-;7269:50;;7181:144;;;:::o;7331:167::-;7436:55;7485:5;7436:55;:::i;:::-;7431:3;7424:68;7331:167;;:::o;7504:258::-;7615:4;7653:2;7642:9;7638:18;7630:26;;7666:89;7752:1;7741:9;7737:17;7728:6;7666:89;:::i;:::-;7504:258;;;;:::o;7768:156::-;7908:8;7904:1;7896:6;7892:14;7885:32;7768:156;:::o;7930:365::-;8072:3;8093:66;8157:1;8152:3;8093:66;:::i;:::-;8086:73;;8168:93;8257:3;8168:93;:::i;:::-;8286:2;8281:3;8277:12;8270:19;;7930:365;;;:::o;8301:419::-;8467:4;8505:2;8494:9;8490:18;8482:26;;8554:9;8548:4;8544:20;8540:1;8529:9;8525:17;8518:47;8582:131;8708:4;8582:131;:::i;:::-;8574:139;;8301:419;;;:::o;8726:180::-;8774:77;8771:1;8764:88;8871:4;8868:1;8861:15;8895:4;8892:1;8885:15;8912:191;8952:3;8971:20;8989:1;8971:20;:::i;:::-;8966:25;;9005:20;9023:1;9005:20;:::i;:::-;9000:25;;9048:1;9045;9041:9;9034:16;;9069:3;9066:1;9063:10;9060:36;;;9076:18;;:::i;:::-;9060:36;8912:191;;;;:::o;9109:176::-;9249:28;9245:1;9237:6;9233:14;9226:52;9109:176;:::o;9291:366::-;9433:3;9454:67;9518:2;9513:3;9454:67;:::i;:::-;9447:74;;9530:93;9619:3;9530:93;:::i;:::-;9648:2;9643:3;9639:12;9632:19;;9291:366;;;:::o;9663:419::-;9829:4;9867:2;9856:9;9852:18;9844:26;;9916:9;9910:4;9906:20;9902:1;9891:9;9887:17;9880:47;9944:131;10070:4;9944:131;:::i;:::-;9936:139;;9663:419;;;:::o;10088:143::-;10145:5;10176:6;10170:13;10161:22;;10192:33;10219:5;10192:33;:::i;:::-;10088:143;;;;:::o;10237:351::-;10307:6;10356:2;10344:9;10335:7;10331:23;10327:32;10324:119;;;10362:79;;:::i;:::-;10324:119;10482:1;10507:64;10563:7;10554:6;10543:9;10539:22;10507:64;:::i;:::-;10497:74;;10453:128;10237:351;;;;:::o;10594:332::-;10715:4;10753:2;10742:9;10738:18;10730:26;;10766:71;10834:1;10823:9;10819:17;10810:6;10766:71;:::i;:::-;10847:72;10915:2;10904:9;10900:18;10891:6;10847:72;:::i;:::-;10594:332;;;;;:::o;10932:85::-;10977:7;11006:5;10995:16;;10932:85;;;:::o;11023:158::-;11081:9;11114:61;11132:42;11141:32;11167:5;11141:32;:::i;:::-;11132:42;:::i;:::-;11114:61;:::i;:::-;11101:74;;11023:158;;;:::o;11187:147::-;11282:45;11321:5;11282:45;:::i;:::-;11277:3;11270:58;11187:147;;:::o;11340:807::-;11589:4;11627:3;11616:9;11612:19;11604:27;;11641:71;11709:1;11698:9;11694:17;11685:6;11641:71;:::i;:::-;11722:72;11790:2;11779:9;11775:18;11766:6;11722:72;:::i;:::-;11804:80;11880:2;11869:9;11865:18;11856:6;11804:80;:::i;:::-;11894;11970:2;11959:9;11955:18;11946:6;11894:80;:::i;:::-;11984:73;12052:3;12041:9;12037:19;12028:6;11984:73;:::i;:::-;12067;12135:3;12124:9;12120:19;12111:6;12067:73;:::i;:::-;11340:807;;;;;;;;;:::o;12153:143::-;12210:5;12241:6;12235:13;12226:22;;12257:33;12284:5;12257:33;:::i;:::-;12153:143;;;;:::o;12302:663::-;12390:6;12398;12406;12455:2;12443:9;12434:7;12430:23;12426:32;12423:119;;;12461:79;;:::i;:::-;12423:119;12581:1;12606:64;12662:7;12653:6;12642:9;12638:22;12606:64;:::i;:::-;12596:74;;12552:128;12719:2;12745:64;12801:7;12792:6;12781:9;12777:22;12745:64;:::i;:::-;12735:74;;12690:129;12858:2;12884:64;12940:7;12931:6;12920:9;12916:22;12884:64;:::i;:::-;12874:74;;12829:129;12302:663;;;;;:::o;12971:332::-;13092:4;13130:2;13119:9;13115:18;13107:26;;13143:71;13211:1;13200:9;13196:17;13187:6;13143:71;:::i;:::-;13224:72;13292:2;13281:9;13277:18;13268:6;13224:72;:::i;:::-;12971:332;;;;;:::o;13309:116::-;13379:21;13394:5;13379:21;:::i;:::-;13372:5;13369:32;13359:60;;13415:1;13412;13405:12;13359:60;13309:116;:::o;13431:137::-;13485:5;13516:6;13510:13;13501:22;;13532:30;13556:5;13532:30;:::i;:::-;13431:137;;;;:::o;13574:345::-;13641:6;13690:2;13678:9;13669:7;13665:23;13661:32;13658:119;;;13696:79;;:::i;:::-;13658:119;13816:1;13841:61;13894:7;13885:6;13874:9;13870:22;13841:61;:::i;:::-;13831:71;;13787:125;13574:345;;;;:::o;13925:410::-;13965:7;13988:20;14006:1;13988:20;:::i;:::-;13983:25;;14022:20;14040:1;14022:20;:::i;:::-;14017:25;;14077:1;14074;14070:9;14099:30;14117:11;14099:30;:::i;:::-;14088:41;;14278:1;14269:7;14265:15;14262:1;14259:22;14239:1;14232:9;14212:83;14189:139;;14308:18;;:::i;:::-;14189:139;13973:362;13925:410;;;;:::o;14341:180::-;14389:77;14386:1;14379:88;14486:4;14483:1;14476:15;14510:4;14507:1;14500:15;14527:185;14567:1;14584:20;14602:1;14584:20;:::i;:::-;14579:25;;14618:20;14636:1;14618:20;:::i;:::-;14613:25;;14657:1;14647:35;;14662:18;;:::i;:::-;14647:35;14704:1;14701;14697:9;14692:14;;14527:185;;;;:::o;14718:194::-;14758:4;14778:20;14796:1;14778:20;:::i;:::-;14773:25;;14812:20;14830:1;14812:20;:::i;:::-;14807:25;;14856:1;14853;14849:9;14841:17;;14880:1;14874:4;14871:11;14868:37;;;14885:18;;:::i;:::-;14868:37;14718:194;;;;:::o;14918:224::-;15058:34;15054:1;15046:6;15042:14;15035:58;15127:7;15122:2;15114:6;15110:15;15103:32;14918:224;:::o;15148:366::-;15290:3;15311:67;15375:2;15370:3;15311:67;:::i;:::-;15304:74;;15387:93;15476:3;15387:93;:::i;:::-;15505:2;15500:3;15496:12;15489:19;;15148:366;;;:::o;15520:419::-;15686:4;15724:2;15713:9;15709:18;15701:26;;15773:9;15767:4;15763:20;15759:1;15748:9;15744:17;15737:47;15801:131;15927:4;15801:131;:::i;:::-;15793:139;;15520:419;;;:::o;15945:223::-;16085:34;16081:1;16073:6;16069:14;16062:58;16154:6;16149:2;16141:6;16137:15;16130:31;15945:223;:::o;16174:366::-;16316:3;16337:67;16401:2;16396:3;16337:67;:::i;:::-;16330:74;;16413:93;16502:3;16413:93;:::i;:::-;16531:2;16526:3;16522:12;16515:19;;16174:366;;;:::o;16546:419::-;16712:4;16750:2;16739:9;16735:18;16727:26;;16799:9;16793:4;16789:20;16785:1;16774:9;16770:17;16763:47;16827:131;16953:4;16827:131;:::i;:::-;16819:139;;16546:419;;;:::o;16971:221::-;17111:34;17107:1;17099:6;17095:14;17088:58;17180:4;17175:2;17167:6;17163:15;17156:29;16971:221;:::o;17198:366::-;17340:3;17361:67;17425:2;17420:3;17361:67;:::i;:::-;17354:74;;17437:93;17526:3;17437:93;:::i;:::-;17555:2;17550:3;17546:12;17539:19;;17198:366;;;:::o;17570:419::-;17736:4;17774:2;17763:9;17759:18;17751:26;;17823:9;17817:4;17813:20;17809:1;17798:9;17794:17;17787:47;17851:131;17977:4;17851:131;:::i;:::-;17843:139;;17570:419;;;:::o;17995:180::-;18043:77;18040:1;18033:88;18140:4;18137:1;18130:15;18164:4;18161:1;18154:15;18181:180;18229:77;18226:1;18219:88;18326:4;18323:1;18316:15;18350:4;18347:1;18340:15;18367:114;18434:6;18468:5;18462:12;18452:22;;18367:114;;;:::o;18487:184::-;18586:11;18620:6;18615:3;18608:19;18660:4;18655:3;18651:14;18636:29;;18487:184;;;;:::o;18677:132::-;18744:4;18767:3;18759:11;;18797:4;18792:3;18788:14;18780:22;;18677:132;;;:::o;18815:108::-;18892:24;18910:5;18892:24;:::i;:::-;18887:3;18880:37;18815:108;;:::o;18929:179::-;18998:10;19019:46;19061:3;19053:6;19019:46;:::i;:::-;19097:4;19092:3;19088:14;19074:28;;18929:179;;;;:::o;19114:113::-;19184:4;19216;19211:3;19207:14;19199:22;;19114:113;;;:::o;19263:732::-;19382:3;19411:54;19459:5;19411:54;:::i;:::-;19481:86;19560:6;19555:3;19481:86;:::i;:::-;19474:93;;19591:56;19641:5;19591:56;:::i;:::-;19670:7;19701:1;19686:284;19711:6;19708:1;19705:13;19686:284;;;19787:6;19781:13;19814:63;19873:3;19858:13;19814:63;:::i;:::-;19807:70;;19900:60;19953:6;19900:60;:::i;:::-;19890:70;;19746:224;19733:1;19730;19726:9;19721:14;;19686:284;;;19690:14;19986:3;19979:10;;19387:608;;;19263:732;;;;:::o;20001:831::-;20264:4;20302:3;20291:9;20287:19;20279:27;;20316:71;20384:1;20373:9;20369:17;20360:6;20316:71;:::i;:::-;20397:80;20473:2;20462:9;20458:18;20449:6;20397:80;:::i;:::-;20524:9;20518:4;20514:20;20509:2;20498:9;20494:18;20487:48;20552:108;20655:4;20646:6;20552:108;:::i;:::-;20544:116;;20670:72;20738:2;20727:9;20723:18;20714:6;20670:72;:::i;:::-;20752:73;20820:3;20809:9;20805:19;20796:6;20752:73;:::i;:::-;20001:831;;;;;;;;:::o;20838:147::-;20939:11;20976:3;20961:18;;20838:147;;;;:::o;20991:114::-;;:::o;21111:398::-;21270:3;21291:83;21372:1;21367:3;21291:83;:::i;:::-;21284:90;;21383:93;21472:3;21383:93;:::i;:::-;21501:1;21496:3;21492:11;21485:18;;21111:398;;;:::o;21515:379::-;21699:3;21721:147;21864:3;21721:147;:::i;:::-;21714:154;;21885:3;21878:10;;21515:379;;;:::o;21900:180::-;22040:32;22036:1;22028:6;22024:14;22017:56;21900:180;:::o;22086:366::-;22228:3;22249:67;22313:2;22308:3;22249:67;:::i;:::-;22242:74;;22325:93;22414:3;22325:93;:::i;:::-;22443:2;22438:3;22434:12;22427:19;;22086:366;;;:::o;22458:419::-;22624:4;22662:2;22651:9;22647:18;22639:26;;22711:9;22705:4;22701:20;22697:1;22686:9;22682:17;22675:47;22739:131;22865:4;22739:131;:::i;:::-;22731:139;;22458:419;;;:::o;22883:332::-;23004:4;23042:2;23031:9;23027:18;23019:26;;23055:71;23123:1;23112:9;23108:17;23099:6;23055:71;:::i;:::-;23136:72;23204:2;23193:9;23189:18;23180:6;23136:72;:::i;:::-;22883:332;;;;;:::o;23221:177::-;23361:29;23357:1;23349:6;23345:14;23338:53;23221:177;:::o;23404:366::-;23546:3;23567:67;23631:2;23626:3;23567:67;:::i;:::-;23560:74;;23643:93;23732:3;23643:93;:::i;:::-;23761:2;23756:3;23752:12;23745:19;;23404:366;;;:::o;23776:419::-;23942:4;23980:2;23969:9;23965:18;23957:26;;24029:9;24023:4;24019:20;24015:1;24004:9;24000:17;23993:47;24057:131;24183:4;24057:131;:::i;:::-;24049:139;;23776:419;;;:::o;24201:220::-;24341:34;24337:1;24329:6;24325:14;24318:58;24410:3;24405:2;24397:6;24393:15;24386:28;24201:220;:::o;24427:366::-;24569:3;24590:67;24654:2;24649:3;24590:67;:::i;:::-;24583:74;;24666:93;24755:3;24666:93;:::i;:::-;24784:2;24779:3;24775:12;24768:19;;24427:366;;;:::o;24799:419::-;24965:4;25003:2;24992:9;24988:18;24980:26;;25052:9;25046:4;25042:20;25038:1;25027:9;25023:17;25016:47;25080:131;25206:4;25080:131;:::i;:::-;25072:139;;24799:419;;;:::o
Swarm Source
ipfs://ec9b440d720c55308ce557ac66a2df0fa5fd754f5ca84691f2d0941b19170bc4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.