ERC-20
Overview
Max Total Supply
1,000,000,000 SIPUDUO
Holders
81
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 SIPUDUOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Sipuduo
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-13 */ /** 丂工尸ㄩᗪㄩ龱 Website: https://sipuduo.xyz/ Telegram: https://t.me/sipuduo_erc X: https://x.com/sipuduo_erc **/ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract Sipuduo is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Chinese Spurdo"; string private constant _symbol = "SIPUDUO"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 30; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 35; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x40975882A0FaBA4f574be6A98181E631A51D1de1); address payable private _marketingAddress = payable(0x40975882A0FaBA4f574be6A98181E631A51D1de1); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 13000000 * 10**9; uint256 public _maxWalletSize = 13000000 * 10**9; uint256 public _swapTokensAtAmount = 13000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c91906200075a565b6000196200002b9190620007c1565b6006556000600855601e6009556000600a556023600b55600a54600c55600b54600d55600c54600e55600d54600f557340975882a0faba4f574be6a98181e631a51d1de1601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507340975882a0faba4f574be6a98181e631a51d1de1601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550662e2f6e5e148000601655662e2f6e5e148000601755662e2f6e5e1480006018553480156200018257600080fd5b50600062000195620006f060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024a620006f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032957600080fd5b505afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000866565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c757600080fd5b505afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062000866565b6040518363ffffffff1660e01b815260040162000421929190620008a9565b602060405180830381600087803b1580156200043c57600080fd5b505af115801562000451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000477919062000866565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004cd620006f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067a620006f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006e19190620008e7565b60405180910390a35062000904565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007678262000721565b9150620007748362000721565b9250826200078757620007866200072b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007ce8262000721565b9150620007db8362000721565b925082821015620007f157620007f062000792565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082e8262000801565b9050919050565b620008408162000821565b81146200084c57600080fd5b50565b600081519050620008608162000835565b92915050565b6000602082840312156200087f576200087e620007fc565b5b60006200088f848285016200084f565b91505092915050565b620008a38162000821565b82525050565b6000604082019050620008c0600083018562000898565b620008cf602083018462000898565b9392505050565b620008e18162000721565b82525050565b6000602082019050620008fe6000830184620008d6565b92915050565b6139fd80620009146000396000f3fe6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e991906129b9565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612a79565b6106ea565b6040516102269190612ad4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612b4e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612b78565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612b93565b61073e565b6040516102b99190612ad4565b60405180910390f35b3480156102ce57600080fd5b506102d7610817565b6040516102e49190612b78565b60405180910390f35b3480156102f957600080fd5b5061030261081d565b60405161030f9190612c02565b60405180910390f35b34801561032457600080fd5b5061032d610826565b60405161033a9190612c2c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612c73565b61084c565b005b34801561037857600080fd5b506103816108fe565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612ca0565b6109cf565b6040516103b79190612b78565b60405180910390f35b3480156103cc57600080fd5b506103d5610a20565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ccd565b610b73565b005b34801561040c57600080fd5b50610415610c12565b6040516104229190612b78565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612ca0565b610c18565b60405161045f9190612b78565b60405180910390f35b34801561047457600080fd5b5061047d610c30565b60405161048a9190612c2c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612c73565b610c59565b005b3480156104c857600080fd5b506104d1610d0b565b6040516104de9190612b78565b60405180910390f35b3480156104f357600080fd5b506104fc610d11565b60405161050991906129b9565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ccd565b610d4e565b005b34801561054757600080fd5b50610562600480360381019061055d9190612cfa565b610ded565b005b34801561057057600080fd5b5061058b60048036038101906105869190612a79565b610ea4565b6040516105989190612ad4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612ca0565b610ec2565b6040516105d59190612ad4565b60405180910390f35b3480156105ea57600080fd5b506105f3610ee2565b005b34801561060157600080fd5b5061061c60048036038101906106179190612dc6565b610fbb565b005b34801561062a57600080fd5b5061064560048036038101906106409190612e26565b6110f5565b6040516106529190612b78565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ccd565b61117c565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612ca0565b61121b565b005b60606040518060400160405280600e81526020017f4368696e6573652053707572646f000000000000000000000000000000000000815250905090565b60006106fe6106f76113dd565b84846113e5565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061074b8484846115b0565b61080c846107576113dd565b610807856040518060600160405280602881526020016139a060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bd6113dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e359092919063ffffffff16565b6113e5565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108546113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d890612eb2565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093f6113dd565b73ffffffffffffffffffffffffffffffffffffffff1614806109b55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099d6113dd565b73ffffffffffffffffffffffffffffffffffffffff16145b6109be57600080fd5b60004790506109cc81611e99565b50565b6000610a19600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f05565b9050919050565b610a286113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac90612eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7b6113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff90612eb2565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c616113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590612eb2565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600781526020017f5349505544554f00000000000000000000000000000000000000000000000000815250905090565b610d566113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90612eb2565b60405180910390fd5b8060188190555050565b610df56113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990612eb2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610eb8610eb16113dd565b84846115b0565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f236113dd565b73ffffffffffffffffffffffffffffffffffffffff161480610f995750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f816113dd565b73ffffffffffffffffffffffffffffffffffffffff16145b610fa257600080fd5b6000610fad306109cf565b9050610fb881611f73565b50565b610fc36113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104790612eb2565b60405180910390fd5b60005b838390508110156110ef57816005600086868581811061107657611075612ed2565b5b905060200201602081019061108b9190612ca0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110e790612f30565b915050611053565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111846113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612eb2565b60405180910390fd5b8060178190555050565b6112236113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790612feb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061307d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc9061310f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115a39190612b78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611620576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611617906131a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790613233565b60405180910390fd5b600081116116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca906132c5565b60405180910390fd5b6116db610c30565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117495750611719610c30565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b3457601560149054906101000a900460ff166117d85761176a610c30565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ce90613357565b60405180910390fd5b5b60165481111561181d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611814906133c3565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118c15750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f790613455565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146119ad5760175481611962846109cf565b61196c9190613475565b106119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061353d565b60405180910390fd5b5b60006119b8306109cf565b90506000601854821015905060165482106119d35760165491505b8080156119eb575060158054906101000a900460ff16155b8015611a455750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a5d5750601560169054906101000a900460ff165b8015611ab35750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b095750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b3157611b1782611f73565b60004790506000811115611b2f57611b2e47611e99565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bdb5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c8e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c8d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c9c5760009050611e23565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d5f57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600a54600c81905550600b54600d819055505b5b611e2f848484846121f9565b50505050565b6000838311158290611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7491906129b9565b60405180910390fd5b5060008385611e8c919061355d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f01573d6000803e3d6000fd5b5050565b6000600654821115611f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4390613603565b60405180910390fd5b6000611f56612226565b9050611f6b818461225190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611faa57611fa9613623565b5b604051908082528060200260200182016040528015611fd85781602001602082028036833780820191505090505b5090503081600081518110611ff057611fef612ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561209257600080fd5b505afa1580156120a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ca9190613667565b816001815181106120de576120dd612ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113e5565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121a995949392919061378d565b600060405180830381600087803b1580156121c357600080fd5b505af11580156121d7573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122075761220661229b565b5b6122128484846122de565b806122205761221f6124a9565b5b50505050565b60008060006122336124bd565b9150915061224a818361225190919063ffffffff16565b9250505090565b600061229383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061251c565b905092915050565b6000600c541480156122af57506000600d54145b156122b9576122dc565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806122f08761257f565b95509550955095509550955061234e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123e385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242f8161268f565b612439848361274c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124969190612b78565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506124f1670de0b6b3a764000060065461225190919063ffffffff16565b82101561250f57600654670de0b6b3a7640000935093505050612518565b81819350935050505b9091565b60008083118290612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a91906129b9565b60405180910390fd5b50600083856125729190613816565b9050809150509392505050565b600080600080600080600080600061259c8a600c54600d54612786565b92509250925060006125ac612226565b905060008060006125bf8e87878761281c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061262983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e35565b905092915050565b60008082846126409190613475565b905083811015612685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267c90613893565b60405180910390fd5b8091505092915050565b6000612699612226565b905060006126b082846128a590919063ffffffff16565b905061270481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612761826006546125e790919063ffffffff16565b60068190555061277c8160075461263190919063ffffffff16565b6007819055505050565b6000806000806127b260646127a4888a6128a590919063ffffffff16565b61225190919063ffffffff16565b905060006127dc60646127ce888b6128a590919063ffffffff16565b61225190919063ffffffff16565b90506000612805826127f7858c6125e790919063ffffffff16565b6125e790919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061283585896128a590919063ffffffff16565b9050600061284c86896128a590919063ffffffff16565b9050600061286387896128a590919063ffffffff16565b9050600061288c8261287e85876125e790919063ffffffff16565b6125e790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156128b8576000905061291a565b600082846128c691906138b3565b90508284826128d59190613816565b14612915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290c9061397f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295a57808201518184015260208101905061293f565b83811115612969576000848401525b50505050565b6000601f19601f8301169050919050565b600061298b82612920565b612995818561292b565b93506129a581856020860161293c565b6129ae8161296f565b840191505092915050565b600060208201905081810360008301526129d38184612980565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a10826129e5565b9050919050565b612a2081612a05565b8114612a2b57600080fd5b50565b600081359050612a3d81612a17565b92915050565b6000819050919050565b612a5681612a43565b8114612a6157600080fd5b50565b600081359050612a7381612a4d565b92915050565b60008060408385031215612a9057612a8f6129db565b5b6000612a9e85828601612a2e565b9250506020612aaf85828601612a64565b9150509250929050565b60008115159050919050565b612ace81612ab9565b82525050565b6000602082019050612ae96000830184612ac5565b92915050565b6000819050919050565b6000612b14612b0f612b0a846129e5565b612aef565b6129e5565b9050919050565b6000612b2682612af9565b9050919050565b6000612b3882612b1b565b9050919050565b612b4881612b2d565b82525050565b6000602082019050612b636000830184612b3f565b92915050565b612b7281612a43565b82525050565b6000602082019050612b8d6000830184612b69565b92915050565b600080600060608486031215612bac57612bab6129db565b5b6000612bba86828701612a2e565b9350506020612bcb86828701612a2e565b9250506040612bdc86828701612a64565b9150509250925092565b600060ff82169050919050565b612bfc81612be6565b82525050565b6000602082019050612c176000830184612bf3565b92915050565b612c2681612a05565b82525050565b6000602082019050612c416000830184612c1d565b92915050565b612c5081612ab9565b8114612c5b57600080fd5b50565b600081359050612c6d81612c47565b92915050565b600060208284031215612c8957612c886129db565b5b6000612c9784828501612c5e565b91505092915050565b600060208284031215612cb657612cb56129db565b5b6000612cc484828501612a2e565b91505092915050565b600060208284031215612ce357612ce26129db565b5b6000612cf184828501612a64565b91505092915050565b60008060008060808587031215612d1457612d136129db565b5b6000612d2287828801612a64565b9450506020612d3387828801612a64565b9350506040612d4487828801612a64565b9250506060612d5587828801612a64565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612d8657612d85612d61565b5b8235905067ffffffffffffffff811115612da357612da2612d66565b5b602083019150836020820283011115612dbf57612dbe612d6b565b5b9250929050565b600080600060408486031215612ddf57612dde6129db565b5b600084013567ffffffffffffffff811115612dfd57612dfc6129e0565b5b612e0986828701612d70565b93509350506020612e1c86828701612c5e565b9150509250925092565b60008060408385031215612e3d57612e3c6129db565b5b6000612e4b85828601612a2e565b9250506020612e5c85828601612a2e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e9c60208361292b565b9150612ea782612e66565b602082019050919050565b60006020820190508181036000830152612ecb81612e8f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f3b82612a43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f6e57612f6d612f01565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612fd560268361292b565b9150612fe082612f79565b604082019050919050565b6000602082019050818103600083015261300481612fc8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061306760248361292b565b91506130728261300b565b604082019050919050565b600060208201905081810360008301526130968161305a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130f960228361292b565b91506131048261309d565b604082019050919050565b60006020820190508181036000830152613128816130ec565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061318b60258361292b565b91506131968261312f565b604082019050919050565b600060208201905081810360008301526131ba8161317e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061321d60238361292b565b9150613228826131c1565b604082019050919050565b6000602082019050818103600083015261324c81613210565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132af60298361292b565b91506132ba82613253565b604082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613341603f8361292b565b915061334c826132e5565b604082019050919050565b6000602082019050818103600083015261337081613334565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133ad601c8361292b565b91506133b882613377565b602082019050919050565b600060208201905081810360008301526133dc816133a0565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061343f60238361292b565b915061344a826133e3565b604082019050919050565b6000602082019050818103600083015261346e81613432565b9050919050565b600061348082612a43565b915061348b83612a43565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134c0576134bf612f01565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061352760238361292b565b9150613532826134cb565b604082019050919050565b600060208201905081810360008301526135568161351a565b9050919050565b600061356882612a43565b915061357383612a43565b92508282101561358657613585612f01565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006135ed602a8361292b565b91506135f882613591565b604082019050919050565b6000602082019050818103600083015261361c816135e0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061366181612a17565b92915050565b60006020828403121561367d5761367c6129db565b5b600061368b84828501613652565b91505092915050565b6000819050919050565b60006136b96136b46136af84613694565b612aef565b612a43565b9050919050565b6136c98161369e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61370481612a05565b82525050565b600061371683836136fb565b60208301905092915050565b6000602082019050919050565b600061373a826136cf565b61374481856136da565b935061374f836136eb565b8060005b83811015613780578151613767888261370a565b975061377283613722565b925050600181019050613753565b5085935050505092915050565b600060a0820190506137a26000830188612b69565b6137af60208301876136c0565b81810360408301526137c1818661372f565b90506137d06060830185612c1d565b6137dd6080830184612b69565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061382182612a43565b915061382c83612a43565b92508261383c5761383b6137e7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061387d601b8361292b565b915061388882613847565b602082019050919050565b600060208201905081810360008301526138ac81613870565b9050919050565b60006138be82612a43565b91506138c983612a43565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561390257613901612f01565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061396960218361292b565b91506139748261390d565b604082019050919050565b600060208201905081810360008301526139988161395c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c04d4c74fc575aaf2eb08be73654805d8d9413f22f71a9eca3b095f799ae93df64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e991906129b9565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612a79565b6106ea565b6040516102269190612ad4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612b4e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612b78565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612b93565b61073e565b6040516102b99190612ad4565b60405180910390f35b3480156102ce57600080fd5b506102d7610817565b6040516102e49190612b78565b60405180910390f35b3480156102f957600080fd5b5061030261081d565b60405161030f9190612c02565b60405180910390f35b34801561032457600080fd5b5061032d610826565b60405161033a9190612c2c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612c73565b61084c565b005b34801561037857600080fd5b506103816108fe565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612ca0565b6109cf565b6040516103b79190612b78565b60405180910390f35b3480156103cc57600080fd5b506103d5610a20565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ccd565b610b73565b005b34801561040c57600080fd5b50610415610c12565b6040516104229190612b78565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612ca0565b610c18565b60405161045f9190612b78565b60405180910390f35b34801561047457600080fd5b5061047d610c30565b60405161048a9190612c2c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612c73565b610c59565b005b3480156104c857600080fd5b506104d1610d0b565b6040516104de9190612b78565b60405180910390f35b3480156104f357600080fd5b506104fc610d11565b60405161050991906129b9565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ccd565b610d4e565b005b34801561054757600080fd5b50610562600480360381019061055d9190612cfa565b610ded565b005b34801561057057600080fd5b5061058b60048036038101906105869190612a79565b610ea4565b6040516105989190612ad4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612ca0565b610ec2565b6040516105d59190612ad4565b60405180910390f35b3480156105ea57600080fd5b506105f3610ee2565b005b34801561060157600080fd5b5061061c60048036038101906106179190612dc6565b610fbb565b005b34801561062a57600080fd5b5061064560048036038101906106409190612e26565b6110f5565b6040516106529190612b78565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ccd565b61117c565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612ca0565b61121b565b005b60606040518060400160405280600e81526020017f4368696e6573652053707572646f000000000000000000000000000000000000815250905090565b60006106fe6106f76113dd565b84846113e5565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061074b8484846115b0565b61080c846107576113dd565b610807856040518060600160405280602881526020016139a060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bd6113dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e359092919063ffffffff16565b6113e5565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108546113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d890612eb2565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093f6113dd565b73ffffffffffffffffffffffffffffffffffffffff1614806109b55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099d6113dd565b73ffffffffffffffffffffffffffffffffffffffff16145b6109be57600080fd5b60004790506109cc81611e99565b50565b6000610a19600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f05565b9050919050565b610a286113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac90612eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7b6113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff90612eb2565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c616113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce590612eb2565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600781526020017f5349505544554f00000000000000000000000000000000000000000000000000815250905090565b610d566113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90612eb2565b60405180910390fd5b8060188190555050565b610df56113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990612eb2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610eb8610eb16113dd565b84846115b0565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f236113dd565b73ffffffffffffffffffffffffffffffffffffffff161480610f995750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f816113dd565b73ffffffffffffffffffffffffffffffffffffffff16145b610fa257600080fd5b6000610fad306109cf565b9050610fb881611f73565b50565b610fc36113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104790612eb2565b60405180910390fd5b60005b838390508110156110ef57816005600086868581811061107657611075612ed2565b5b905060200201602081019061108b9190612ca0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110e790612f30565b915050611053565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111846113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612eb2565b60405180910390fd5b8060178190555050565b6112236113dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790612feb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061307d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc9061310f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115a39190612b78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611620576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611617906131a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790613233565b60405180910390fd5b600081116116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca906132c5565b60405180910390fd5b6116db610c30565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117495750611719610c30565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b3457601560149054906101000a900460ff166117d85761176a610c30565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ce90613357565b60405180910390fd5b5b60165481111561181d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611814906133c3565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118c15750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f790613455565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146119ad5760175481611962846109cf565b61196c9190613475565b106119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061353d565b60405180910390fd5b5b60006119b8306109cf565b90506000601854821015905060165482106119d35760165491505b8080156119eb575060158054906101000a900460ff16155b8015611a455750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a5d5750601560169054906101000a900460ff165b8015611ab35750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b095750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b3157611b1782611f73565b60004790506000811115611b2f57611b2e47611e99565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bdb5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c8e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c8d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611c9c5760009050611e23565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d5f57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600a54600c81905550600b54600d819055505b5b611e2f848484846121f9565b50505050565b6000838311158290611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7491906129b9565b60405180910390fd5b5060008385611e8c919061355d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f01573d6000803e3d6000fd5b5050565b6000600654821115611f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4390613603565b60405180910390fd5b6000611f56612226565b9050611f6b818461225190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611faa57611fa9613623565b5b604051908082528060200260200182016040528015611fd85781602001602082028036833780820191505090505b5090503081600081518110611ff057611fef612ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561209257600080fd5b505afa1580156120a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ca9190613667565b816001815181106120de576120dd612ed2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113e5565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121a995949392919061378d565b600060405180830381600087803b1580156121c357600080fd5b505af11580156121d7573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122075761220661229b565b5b6122128484846122de565b806122205761221f6124a9565b5b50505050565b60008060006122336124bd565b9150915061224a818361225190919063ffffffff16565b9250505090565b600061229383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061251c565b905092915050565b6000600c541480156122af57506000600d54145b156122b9576122dc565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806122f08761257f565b95509550955095509550955061234e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123e385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242f8161268f565b612439848361274c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124969190612b78565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506124f1670de0b6b3a764000060065461225190919063ffffffff16565b82101561250f57600654670de0b6b3a7640000935093505050612518565b81819350935050505b9091565b60008083118290612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a91906129b9565b60405180910390fd5b50600083856125729190613816565b9050809150509392505050565b600080600080600080600080600061259c8a600c54600d54612786565b92509250925060006125ac612226565b905060008060006125bf8e87878761281c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061262983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e35565b905092915050565b60008082846126409190613475565b905083811015612685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267c90613893565b60405180910390fd5b8091505092915050565b6000612699612226565b905060006126b082846128a590919063ffffffff16565b905061270481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612761826006546125e790919063ffffffff16565b60068190555061277c8160075461263190919063ffffffff16565b6007819055505050565b6000806000806127b260646127a4888a6128a590919063ffffffff16565b61225190919063ffffffff16565b905060006127dc60646127ce888b6128a590919063ffffffff16565b61225190919063ffffffff16565b90506000612805826127f7858c6125e790919063ffffffff16565b6125e790919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061283585896128a590919063ffffffff16565b9050600061284c86896128a590919063ffffffff16565b9050600061286387896128a590919063ffffffff16565b9050600061288c8261287e85876125e790919063ffffffff16565b6125e790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156128b8576000905061291a565b600082846128c691906138b3565b90508284826128d59190613816565b14612915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290c9061397f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295a57808201518184015260208101905061293f565b83811115612969576000848401525b50505050565b6000601f19601f8301169050919050565b600061298b82612920565b612995818561292b565b93506129a581856020860161293c565b6129ae8161296f565b840191505092915050565b600060208201905081810360008301526129d38184612980565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a10826129e5565b9050919050565b612a2081612a05565b8114612a2b57600080fd5b50565b600081359050612a3d81612a17565b92915050565b6000819050919050565b612a5681612a43565b8114612a6157600080fd5b50565b600081359050612a7381612a4d565b92915050565b60008060408385031215612a9057612a8f6129db565b5b6000612a9e85828601612a2e565b9250506020612aaf85828601612a64565b9150509250929050565b60008115159050919050565b612ace81612ab9565b82525050565b6000602082019050612ae96000830184612ac5565b92915050565b6000819050919050565b6000612b14612b0f612b0a846129e5565b612aef565b6129e5565b9050919050565b6000612b2682612af9565b9050919050565b6000612b3882612b1b565b9050919050565b612b4881612b2d565b82525050565b6000602082019050612b636000830184612b3f565b92915050565b612b7281612a43565b82525050565b6000602082019050612b8d6000830184612b69565b92915050565b600080600060608486031215612bac57612bab6129db565b5b6000612bba86828701612a2e565b9350506020612bcb86828701612a2e565b9250506040612bdc86828701612a64565b9150509250925092565b600060ff82169050919050565b612bfc81612be6565b82525050565b6000602082019050612c176000830184612bf3565b92915050565b612c2681612a05565b82525050565b6000602082019050612c416000830184612c1d565b92915050565b612c5081612ab9565b8114612c5b57600080fd5b50565b600081359050612c6d81612c47565b92915050565b600060208284031215612c8957612c886129db565b5b6000612c9784828501612c5e565b91505092915050565b600060208284031215612cb657612cb56129db565b5b6000612cc484828501612a2e565b91505092915050565b600060208284031215612ce357612ce26129db565b5b6000612cf184828501612a64565b91505092915050565b60008060008060808587031215612d1457612d136129db565b5b6000612d2287828801612a64565b9450506020612d3387828801612a64565b9350506040612d4487828801612a64565b9250506060612d5587828801612a64565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612d8657612d85612d61565b5b8235905067ffffffffffffffff811115612da357612da2612d66565b5b602083019150836020820283011115612dbf57612dbe612d6b565b5b9250929050565b600080600060408486031215612ddf57612dde6129db565b5b600084013567ffffffffffffffff811115612dfd57612dfc6129e0565b5b612e0986828701612d70565b93509350506020612e1c86828701612c5e565b9150509250925092565b60008060408385031215612e3d57612e3c6129db565b5b6000612e4b85828601612a2e565b9250506020612e5c85828601612a2e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e9c60208361292b565b9150612ea782612e66565b602082019050919050565b60006020820190508181036000830152612ecb81612e8f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f3b82612a43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f6e57612f6d612f01565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612fd560268361292b565b9150612fe082612f79565b604082019050919050565b6000602082019050818103600083015261300481612fc8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061306760248361292b565b91506130728261300b565b604082019050919050565b600060208201905081810360008301526130968161305a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130f960228361292b565b91506131048261309d565b604082019050919050565b60006020820190508181036000830152613128816130ec565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061318b60258361292b565b91506131968261312f565b604082019050919050565b600060208201905081810360008301526131ba8161317e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061321d60238361292b565b9150613228826131c1565b604082019050919050565b6000602082019050818103600083015261324c81613210565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132af60298361292b565b91506132ba82613253565b604082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613341603f8361292b565b915061334c826132e5565b604082019050919050565b6000602082019050818103600083015261337081613334565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133ad601c8361292b565b91506133b882613377565b602082019050919050565b600060208201905081810360008301526133dc816133a0565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061343f60238361292b565b915061344a826133e3565b604082019050919050565b6000602082019050818103600083015261346e81613432565b9050919050565b600061348082612a43565b915061348b83612a43565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134c0576134bf612f01565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061352760238361292b565b9150613532826134cb565b604082019050919050565b600060208201905081810360008301526135568161351a565b9050919050565b600061356882612a43565b915061357383612a43565b92508282101561358657613585612f01565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006135ed602a8361292b565b91506135f882613591565b604082019050919050565b6000602082019050818103600083015261361c816135e0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061366181612a17565b92915050565b60006020828403121561367d5761367c6129db565b5b600061368b84828501613652565b91505092915050565b6000819050919050565b60006136b96136b46136af84613694565b612aef565b612a43565b9050919050565b6136c98161369e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61370481612a05565b82525050565b600061371683836136fb565b60208301905092915050565b6000602082019050919050565b600061373a826136cf565b61374481856136da565b935061374f836136eb565b8060005b83811015613780578151613767888261370a565b975061377283613722565b925050600181019050613753565b5085935050505092915050565b600060a0820190506137a26000830188612b69565b6137af60208301876136c0565b81810360408301526137c1818661372f565b90506137d06060830185612c1d565b6137dd6080830184612b69565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061382182612a43565b915061382c83612a43565b92508261383c5761383b6137e7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061387d601b8361292b565b915061388882613847565b602082019050919050565b600060208201905081810360008301526138ac81613870565b9050919050565b60006138be82612a43565b91506138c983612a43565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561390257613901612f01565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061396960218361292b565b91506139748261390d565b604082019050919050565b600060208201905081810360008301526139988161395c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c04d4c74fc575aaf2eb08be73654805d8d9413f22f71a9eca3b095f799ae93df64736f6c63430008090033
Deployed Bytecode Sourcemap
3499:10604:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5751:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6492:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4750:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5980:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6641:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5028:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5905:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4794:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13569:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10312:209;;;;;;;;;;;;;:::i;:::-;;6067:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1482:128;;;;;;;;;;;;;:::i;:::-;;13689:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4928:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4504:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1308:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10007:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4977:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5826:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13398:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13099:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10100:208;;;;;;;;;;;;;:::i;:::-;;13896:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6352:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13789:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1614:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5751:71;5788:13;5813:5;;;;;;;;;;;;;;;;;5806:12;;5751:71;:::o;6492:145::-;6570:4;6580:39;6589:12;:10;:12::i;:::-;6603:7;6612:6;6580:8;:39::i;:::-;6629:4;6622:11;;6492:145;;;;:::o;4750:41::-;;;;;;;;;;;;;:::o;5980:83::-;6033:7;4014:18;6045:14;;5980:83;:::o;6641:302::-;6745:4;6754:36;6764:6;6772:9;6783:6;6754:9;:36::i;:::-;6793:132;6804:6;6813:12;:10;:12::i;:::-;6828:94;6868:6;6828:94;;;;;;;;;;;;;;;;;:11;:19;6840:6;6828:19;;;;;;;;;;;;;;;:33;6848:12;:10;:12::i;:::-;6828:33;;;;;;;;;;;;;;;;:37;;:94;;;;;:::i;:::-;6793:8;:132::i;:::-;6935:4;6928:11;;6641:302;;;;;:::o;5028:53::-;;;;:::o;5905:71::-;5946:5;3712:1;5956:16;;5905:71;:::o;4794:28::-;;;;;;;;;;;;;:::o;13569:89::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13642:12:::1;13628:11;;:26;;;;;;;;;;;;;;;;;;13569:89:::0;:::o;10312:209::-;10370:19;;;;;;;;;;;10354:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;10409:17;;;;;;;;;;;10393:33;;:12;:10;:12::i;:::-;:33;;;10354:72;10346:81;;;;;;10430:26;10459:21;10430:50;;10483:32;10496:18;10483:12;:32::i;:::-;10343:178;10312:209::o;6067:126::-;6133:7;6152:37;6172:7;:16;6180:7;6172:16;;;;;;;;;;;;;;;;6152:19;:37::i;:::-;6145:44;;6067:126;;;:::o;1482:128::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1581:1:::1;1544:40;;1565:6;::::0;::::1;;;;;;;;1544:40;;;;;;;;;;;;1604:1;1587:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1482:128::o:0;13689:96::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13770:11:::1;13755:12;:26;;;;13689:96:::0;:::o;4928:46::-;;;;:::o;4504:43::-;;;;;;;;;;;;;;;;;:::o;1308:67::-;1346:7;1365:6;;;;;;;;;;;1358:13;;1308:67;:::o;10007:89::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10080:12:::1;10066:11;;:26;;;;;;;;;;;;;;;;;;10007:89:::0;:::o;4977:48::-;;;;:::o;5826:75::-;5865:13;5890:7;;;;;;;;;;;;;;;;;5883:14;;5826:75;:::o;13398:127::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13503:18:::1;13481:19;:40;;;;13398:127:::0;:::o;13099:255::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13242:13:::1;13225:14;:30;;;;13276:14;13258:15;:32;;;;13308:11;13293:12;:26;;;;13338:12;13322:13;:28;;;;13099:255:::0;;;;:::o;6197:151::-;6278:4;6288:42;6298:12;:10;:12::i;:::-;6312:9;6323:6;6288:9;:42::i;:::-;6340:4;6333:11;;6197:151;;;;:::o;4466:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;10100:208::-;10158:19;;;;;;;;;;;10142:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;10197:17;;;;;;;;;;;10181:33;;:12;:10;:12::i;:::-;:33;;;10142:72;10134:81;;;;;;10218:23;10244:24;10262:4;10244:9;:24::i;:::-;10218:50;;10271:33;10288:15;10271:16;:33::i;:::-;10131:177;10100:208::o;13896:202::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14005:9:::1;14001:94;14024:8;;:15;;14020:1;:19;14001:94;;;14083:8;14049:18;:31;14068:8;;14077:1;14068:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14049:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14041:3;;;;;:::i;:::-;;;;14001:94;;;;13896:202:::0;;;:::o;6352:136::-;6437:7;6457:11;:18;6469:5;6457:18;;;;;;;;;;;;;;;:27;6476:7;6457:27;;;;;;;;;;;;;;;;6450:34;;6352:136;;;;:::o;13789:103::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13875:13:::1;13858:14;:30;;;;13789:103:::0;:::o;1614:216::-;1421:12;:10;:12::i;:::-;1411:22;;:6;;;;;;;;;;:22;;;1403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1715:1:::1;1695:22;;:8;:22;;;;1687:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1797:8;1768:38;;1789:6;::::0;::::1;;;;;;;;1768:38;;;;;;;;;;;;1818:8;1809:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1614:216:::0;:::o;235:86::-;288:7;307:10;300:17;;235:86;:::o;7466:305::-;7574:1;7557:19;;:5;:19;;;;7549:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7647:1;7628:21;;:7;:21;;;;7620:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7721:6;7691:11;:18;7703:5;7691:18;;;;;;;;;;;;;;;:27;7710:7;7691:27;;;;;;;;;;;;;;;:36;;;;7751:7;7735:32;;7744:5;7735:32;;;7760:6;7735:32;;;;;;:::i;:::-;;;;;;;;7466:305;;;:::o;7775:1762::-;7877:1;7861:18;;:4;:18;;;;7853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7946:1;7932:16;;:2;:16;;;;7924:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8008:1;7999:6;:10;7991:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8072:7;:5;:7::i;:::-;8064:15;;:4;:15;;;;:32;;;;;8089:7;:5;:7::i;:::-;8083:13;;:2;:13;;;;8064:32;8060:951;;;8129:11;;;;;;;;;;;8124:116;;8161:7;:5;:7::i;:::-;8153:15;;:4;:15;;;8145:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8124:116;8262:12;;8252:6;:22;;8244:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8319:4;:10;8324:4;8319:10;;;;;;;;;;;;;;;;;;;;;;;;;8318:11;:24;;;;;8334:4;:8;8339:2;8334:8;;;;;;;;;;;;;;;;;;;;;;;;;8333:9;8318:24;8310:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8396:13;;;;;;;;;;;8390:19;;:2;:19;;;8387:118;;8447:14;;8438:6;8422:13;8432:2;8422:9;:13::i;:::-;:22;;;;:::i;:::-;:39;8414:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8387:118;8509:28;8540:24;8558:4;8540:9;:24::i;:::-;8509:55;;8567:12;8606:19;;8582:20;:43;;8567:58;;8657:12;;8633:20;:36;8630:84;;8698:12;;8675:35;;8630:84;8722:7;:18;;;;;8734:6;;;;;;;;;;8733:7;8722:18;:43;;;;;8752:13;;;;;;;;;;;8744:21;;:4;:21;;;;8722:43;:58;;;;;8769:11;;;;;;;;;;;8722:58;:87;;;;;8785:18;:24;8804:4;8785:24;;;;;;;;;;;;;;;;;;;;;;;;;8784:25;8722:87;:114;;;;;8814:18;:22;8833:2;8814:22;;;;;;;;;;;;;;;;;;;;;;;;;8813:23;8722:114;8718:290;;;8841:38;8858:20;8841:16;:38::i;:::-;8882:26;8911:21;8882:50;;8960:1;8939:18;:22;8935:70;;;8966:35;8979:21;8966:12;:35::i;:::-;8935:70;8838:170;8718:290;8098:913;;8060:951;9015:12;9030:4;9015:19;;9063:18;:24;9082:4;9063:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9091:18;:22;9110:2;9091:22;;;;;;;;;;;;;;;;;;;;;;;;;9063:50;9062:102;;;;9127:13;;;;;;;;;;;9119:21;;:4;:21;;;;:44;;;;;9150:13;;;;;;;;;;;9144:19;;:2;:19;;;;9119:44;9062:102;9058:430;;;9179:5;9169:15;;9058:430;;;9230:13;;;;;;;;;;;9222:21;;:4;:21;;;:55;;;;;9261:15;;;;;;;;;;;9247:30;;:2;:30;;;;9222:55;9219:118;;;9294:14;;9282:9;:26;;;;9321:12;;9311:7;:22;;;;9219:118;9372:13;;;;;;;;;;;9366:19;;:2;:19;;;:55;;;;;9405:15;;;;;;;;;;;9389:32;;:4;:32;;;;9366:55;9362:121;;;9438:15;;9426:9;:27;;;;9466:13;;9456:7;:23;;;;9362:121;9058:430;9492:41;9507:4;9513:2;9517:6;9525:7;9492:14;:41::i;:::-;7850:1687;7775:1762;;;:::o;2142:168::-;2234:7;2259:1;2254;:6;;2262:12;2246:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2278:9;2294:1;2290;:5;;;;:::i;:::-;2278:17;;2305:1;2298:8;;;2142:168;;;;;:::o;9916:87::-;9965:17;;;;;;;;;;;:26;;:34;9992:6;9965:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9916:87;:::o;6947:235::-;7018:7;7052;;7041;:18;;7031:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7112:19;7134:10;:8;:10::i;:::-;7112:32;;7154:24;7166:11;7154:7;:11;;:24;;;;:::i;:::-;7147:31;;;6947:235;;;:::o;9541:371::-;5168:4;5159:6;;:13;;;;;;;;;;;;;;;;;;9611:21:::1;9649:1;9635:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9611:40;;9672:4;9654;9659:1;9654:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9690:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9680:4;9685:1;9680:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9715:62;9732:4;9747:15;;;;;;;;;;;9765:11;9715:8;:62::i;:::-;9780:15;;;;;;;;;;;:66;;;9849:11;9863:1;9867:4;9882;9890:15;9780:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9608:304;5188:5:::0;5179:6;;:14;;;;;;;;;;;;;;;;;;9541:371;:::o;10525:218::-;10637:7;10632:28;;10646:14;:12;:14::i;:::-;10632:28;10663:44;10681:6;10689:9;10700:6;10663:17;:44::i;:::-;10715:7;10710:29;;10724:15;:13;:15::i;:::-;10710:29;10525:218;;;;:::o;12726:144::-;12768:7;12781:15;12798;12817:19;:17;:19::i;:::-;12780:56;;;;12846:20;12858:7;12846;:11;;:20;;;;:::i;:::-;12839:27;;;;12726:144;:::o;2508:120::-;2566:7;2585:39;2589:1;2592;2585:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2578:46;;2508:120;;;;:::o;7186:175::-;7238:1;7225:9;;:14;:30;;;;;7254:1;7243:7;;:12;7225:30;7221:43;;;7257:7;;7221:43;7288:9;;7268:17;:29;;;;7318:7;;7300:15;:25;;;;7342:1;7330:9;:13;;;;7356:1;7346:7;:11;;;;7186:175;:::o;10747:450::-;10846:15;10864:23;10890:12;10905:23;10931:12;10946:13;10965:19;10976:7;10965:10;:19::i;:::-;10843:141;;;;;;;;;;;;11005:28;11025:7;11005;:15;11013:6;11005:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10987:7;:15;10995:6;10987:15;;;;;;;;;;;;;;;:46;;;;11057:39;11080:15;11057:7;:18;11065:9;11057:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11036:7;:18;11044:9;11036:18;;;;;;;;;;;;;;;:60;;;;11099:16;11109:5;11099:9;:16::i;:::-;11118:23;11130:4;11136;11118:11;:23::i;:::-;11166:9;11149:44;;11158:6;11149:44;;;11177:15;11149:44;;;;;;:::i;:::-;;;;;;;;10840:357;;;;;;10747:450;;;:::o;7365:97::-;7413:17;;7401:9;:29;;;;7443:15;;7433:7;:25;;;;7365:97::o;12874:221::-;12925:7;12934;12946:15;12964:7;;12946:25;;12974:15;4014:18;12974:25;;13016:20;4014:18;13016:7;;:11;;:20;;;;:::i;:::-;13006:7;:30;13002:61;;;13046:7;;4014:18;13038:25;;;;;;;;13002:61;13074:7;13083;13066:25;;;;;;12874:221;;;:::o;2632:167::-;2724:7;2748:1;2744;:5;2751:12;2736:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2767:9;2783:1;2779;:5;;;;:::i;:::-;2767:17;;2794:1;2787:8;;;2632:167;;;;;:::o;11552:447::-;11616:7;11626;11636;11646;11656;11666;11682:23;11707:12;11721:13;11739:40;11751:7;11760:9;;11771:7;;11739:11;:40::i;:::-;11681:98;;;;;;11782:19;11804:10;:8;:10::i;:::-;11782:32;;11818:15;11835:23;11860:12;11877:46;11889:7;11898:4;11904:5;11911:11;11877;:46::i;:::-;11817:106;;;;;;11934:7;11943:15;11960:4;11966:15;11983:4;11989:5;11926:69;;;;;;;;;;;;;;;;;;;11552:447;;;;;;;:::o;2014:124::-;2072:7;2091:43;2095:1;2098;2091:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2084:50;;2014:124;;;;:::o;1859:151::-;1917:7;1929:9;1945:1;1941;:5;;;;:::i;:::-;1929:17;;1962:1;1957;:6;;1949:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2005:1;1998:8;;;1859:151;;;;:::o;11201:183::-;11246:19;11268:10;:8;:10::i;:::-;11246:32;;11281:13;11297:22;11307:11;11297:5;:9;;:22;;;;:::i;:::-;11281:38;;11347:33;11374:5;11347:7;:22;11363:4;11347:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11322:7;:22;11338:4;11322:22;;;;;;;;;;;;;;;:58;;;;11243:141;;11201:183;:::o;11388:127::-;11458:17;11470:4;11458:7;;:11;;:17;;;;:::i;:::-;11448:7;:27;;;;11491:20;11506:4;11491:10;;:14;;:20;;;;:::i;:::-;11478:10;:33;;;;11388:127;;:::o;12003:333::-;12108:7;12118;12128;12143:12;12158:30;12184:3;12158:21;12170:8;12158:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;12143:45;;12191:13;12207:28;12231:3;12207:19;12219:6;12207:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12191:44;;12238:23;12264:28;12286:5;12264:17;12276:4;12264:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12238:54;;12303:15;12320:4;12326:5;12295:37;;;;;;;;;12003:333;;;;;;;:::o;12340:382::-;12462:7;12472;12482;12497:15;12515:24;12527:11;12515:7;:11;;:24;;;;:::i;:::-;12497:42;;12542:12;12557:21;12566:11;12557:4;:8;;:21;;;;:::i;:::-;12542:36;;12581:13;12597:22;12607:11;12597:5;:9;;:22;;;;:::i;:::-;12581:38;;12622:23;12648:28;12670:5;12648:17;12660:4;12648:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12622:54;;12687:7;12696:15;12713:4;12679:39;;;;;;;;;;12340:382;;;;;;;;:::o;2314:190::-;2372:7;2393:1;2388;:6;2384:27;;;2406:1;2399:8;;;;2384:27;2413:9;2429:1;2425;:5;;;;:::i;:::-;2413:17;;2450:1;2445;2441;:5;;;;:::i;:::-;:10;2433:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2499:1;2492:8;;;2314:190;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:765::-;7572:6;7580;7588;7596;7645:3;7633:9;7624:7;7620:23;7616:33;7613:120;;;7652:79;;:::i;:::-;7613:120;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;8027:2;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7998:118;8155:2;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8126:118;7486:765;;;;;;;:::o;8257:117::-;8366:1;8363;8356:12;8380:117;8489:1;8486;8479:12;8503:117;8612:1;8609;8602:12;8643:568;8716:8;8726:6;8776:3;8769:4;8761:6;8757:17;8753:27;8743:122;;8784:79;;:::i;:::-;8743:122;8897:6;8884:20;8874:30;;8927:18;8919:6;8916:30;8913:117;;;8949:79;;:::i;:::-;8913:117;9063:4;9055:6;9051:17;9039:29;;9117:3;9109:4;9101:6;9097:17;9087:8;9083:32;9080:41;9077:128;;;9124:79;;:::i;:::-;9077:128;8643:568;;;;;:::o;9217:698::-;9309:6;9317;9325;9374:2;9362:9;9353:7;9349:23;9345:32;9342:119;;;9380:79;;:::i;:::-;9342:119;9528:1;9517:9;9513:17;9500:31;9558:18;9550:6;9547:30;9544:117;;;9580:79;;:::i;:::-;9544:117;9693:80;9765:7;9756:6;9745:9;9741:22;9693:80;:::i;:::-;9675:98;;;;9471:312;9822:2;9848:50;9890:7;9881:6;9870:9;9866:22;9848:50;:::i;:::-;9838:60;;9793:115;9217:698;;;;;:::o;9921:474::-;9989:6;9997;10046:2;10034:9;10025:7;10021:23;10017:32;10014:119;;;10052:79;;:::i;:::-;10014:119;10172:1;10197:53;10242:7;10233:6;10222:9;10218:22;10197:53;:::i;:::-;10187:63;;10143:117;10299:2;10325:53;10370:7;10361:6;10350:9;10346:22;10325:53;:::i;:::-;10315:63;;10270:118;9921:474;;;;;:::o;10401:182::-;10541:34;10537:1;10529:6;10525:14;10518:58;10401:182;:::o;10589:366::-;10731:3;10752:67;10816:2;10811:3;10752:67;:::i;:::-;10745:74;;10828:93;10917:3;10828:93;:::i;:::-;10946:2;10941:3;10937:12;10930:19;;10589:366;;;:::o;10961:419::-;11127:4;11165:2;11154:9;11150:18;11142:26;;11214:9;11208:4;11204:20;11200:1;11189:9;11185:17;11178:47;11242:131;11368:4;11242:131;:::i;:::-;11234:139;;10961:419;;;:::o;11386:180::-;11434:77;11431:1;11424:88;11531:4;11528:1;11521:15;11555:4;11552:1;11545:15;11572:180;11620:77;11617:1;11610:88;11717:4;11714:1;11707:15;11741:4;11738:1;11731:15;11758:233;11797:3;11820:24;11838:5;11820:24;:::i;:::-;11811:33;;11866:66;11859:5;11856:77;11853:103;;;11936:18;;:::i;:::-;11853:103;11983:1;11976:5;11972:13;11965:20;;11758:233;;;:::o;11997:225::-;12137:34;12133:1;12125:6;12121:14;12114:58;12206:8;12201:2;12193:6;12189:15;12182:33;11997:225;:::o;12228:366::-;12370:3;12391:67;12455:2;12450:3;12391:67;:::i;:::-;12384:74;;12467:93;12556:3;12467:93;:::i;:::-;12585:2;12580:3;12576:12;12569:19;;12228:366;;;:::o;12600:419::-;12766:4;12804:2;12793:9;12789:18;12781:26;;12853:9;12847:4;12843:20;12839:1;12828:9;12824:17;12817:47;12881:131;13007:4;12881:131;:::i;:::-;12873:139;;12600:419;;;:::o;13025:223::-;13165:34;13161:1;13153:6;13149:14;13142:58;13234:6;13229:2;13221:6;13217:15;13210:31;13025:223;:::o;13254:366::-;13396:3;13417:67;13481:2;13476:3;13417:67;:::i;:::-;13410:74;;13493:93;13582:3;13493:93;:::i;:::-;13611:2;13606:3;13602:12;13595:19;;13254:366;;;:::o;13626:419::-;13792:4;13830:2;13819:9;13815:18;13807:26;;13879:9;13873:4;13869:20;13865:1;13854:9;13850:17;13843:47;13907:131;14033:4;13907:131;:::i;:::-;13899:139;;13626:419;;;:::o;14051:221::-;14191:34;14187:1;14179:6;14175:14;14168:58;14260:4;14255:2;14247:6;14243:15;14236:29;14051:221;:::o;14278:366::-;14420:3;14441:67;14505:2;14500:3;14441:67;:::i;:::-;14434:74;;14517:93;14606:3;14517:93;:::i;:::-;14635:2;14630:3;14626:12;14619:19;;14278:366;;;:::o;14650:419::-;14816:4;14854:2;14843:9;14839:18;14831:26;;14903:9;14897:4;14893:20;14889:1;14878:9;14874:17;14867:47;14931:131;15057:4;14931:131;:::i;:::-;14923:139;;14650:419;;;:::o;15075:224::-;15215:34;15211:1;15203:6;15199:14;15192:58;15284:7;15279:2;15271:6;15267:15;15260:32;15075:224;:::o;15305:366::-;15447:3;15468:67;15532:2;15527:3;15468:67;:::i;:::-;15461:74;;15544:93;15633:3;15544:93;:::i;:::-;15662:2;15657:3;15653:12;15646:19;;15305:366;;;:::o;15677:419::-;15843:4;15881:2;15870:9;15866:18;15858:26;;15930:9;15924:4;15920:20;15916:1;15905:9;15901:17;15894:47;15958:131;16084:4;15958:131;:::i;:::-;15950:139;;15677:419;;;:::o;16102:222::-;16242:34;16238:1;16230:6;16226:14;16219:58;16311:5;16306:2;16298:6;16294:15;16287:30;16102:222;:::o;16330:366::-;16472:3;16493:67;16557:2;16552:3;16493:67;:::i;:::-;16486:74;;16569:93;16658:3;16569:93;:::i;:::-;16687:2;16682:3;16678:12;16671:19;;16330:366;;;:::o;16702:419::-;16868:4;16906:2;16895:9;16891:18;16883:26;;16955:9;16949:4;16945:20;16941:1;16930:9;16926:17;16919:47;16983:131;17109:4;16983:131;:::i;:::-;16975:139;;16702:419;;;:::o;17127:228::-;17267:34;17263:1;17255:6;17251:14;17244:58;17336:11;17331:2;17323:6;17319:15;17312:36;17127:228;:::o;17361:366::-;17503:3;17524:67;17588:2;17583:3;17524:67;:::i;:::-;17517:74;;17600:93;17689:3;17600:93;:::i;:::-;17718:2;17713:3;17709:12;17702:19;;17361:366;;;:::o;17733:419::-;17899:4;17937:2;17926:9;17922:18;17914:26;;17986:9;17980:4;17976:20;17972:1;17961:9;17957:17;17950:47;18014:131;18140:4;18014:131;:::i;:::-;18006:139;;17733:419;;;:::o;18158:250::-;18298:34;18294:1;18286:6;18282:14;18275:58;18367:33;18362:2;18354:6;18350:15;18343:58;18158:250;:::o;18414:366::-;18556:3;18577:67;18641:2;18636:3;18577:67;:::i;:::-;18570:74;;18653:93;18742:3;18653:93;:::i;:::-;18771:2;18766:3;18762:12;18755:19;;18414:366;;;:::o;18786:419::-;18952:4;18990:2;18979:9;18975:18;18967:26;;19039:9;19033:4;19029:20;19025:1;19014:9;19010:17;19003:47;19067:131;19193:4;19067:131;:::i;:::-;19059:139;;18786:419;;;:::o;19211:178::-;19351:30;19347:1;19339:6;19335:14;19328:54;19211:178;:::o;19395:366::-;19537:3;19558:67;19622:2;19617:3;19558:67;:::i;:::-;19551:74;;19634:93;19723:3;19634:93;:::i;:::-;19752:2;19747:3;19743:12;19736:19;;19395:366;;;:::o;19767:419::-;19933:4;19971:2;19960:9;19956:18;19948:26;;20020:9;20014:4;20010:20;20006:1;19995:9;19991:17;19984:47;20048:131;20174:4;20048:131;:::i;:::-;20040:139;;19767:419;;;:::o;20192:222::-;20332:34;20328:1;20320:6;20316:14;20309:58;20401:5;20396:2;20388:6;20384:15;20377:30;20192:222;:::o;20420:366::-;20562:3;20583:67;20647:2;20642:3;20583:67;:::i;:::-;20576:74;;20659:93;20748:3;20659:93;:::i;:::-;20777:2;20772:3;20768:12;20761:19;;20420:366;;;:::o;20792:419::-;20958:4;20996:2;20985:9;20981:18;20973:26;;21045:9;21039:4;21035:20;21031:1;21020:9;21016:17;21009:47;21073:131;21199:4;21073:131;:::i;:::-;21065:139;;20792:419;;;:::o;21217:305::-;21257:3;21276:20;21294:1;21276:20;:::i;:::-;21271:25;;21310:20;21328:1;21310:20;:::i;:::-;21305:25;;21464:1;21396:66;21392:74;21389:1;21386:81;21383:107;;;21470:18;;:::i;:::-;21383:107;21514:1;21511;21507:9;21500:16;;21217:305;;;;:::o;21528:222::-;21668:34;21664:1;21656:6;21652:14;21645:58;21737:5;21732:2;21724:6;21720:15;21713:30;21528:222;:::o;21756:366::-;21898:3;21919:67;21983:2;21978:3;21919:67;:::i;:::-;21912:74;;21995:93;22084:3;21995:93;:::i;:::-;22113:2;22108:3;22104:12;22097:19;;21756:366;;;:::o;22128:419::-;22294:4;22332:2;22321:9;22317:18;22309:26;;22381:9;22375:4;22371:20;22367:1;22356:9;22352:17;22345:47;22409:131;22535:4;22409:131;:::i;:::-;22401:139;;22128:419;;;:::o;22553:191::-;22593:4;22613:20;22631:1;22613:20;:::i;:::-;22608:25;;22647:20;22665:1;22647:20;:::i;:::-;22642:25;;22686:1;22683;22680:8;22677:34;;;22691:18;;:::i;:::-;22677:34;22736:1;22733;22729:9;22721:17;;22553:191;;;;:::o;22750:229::-;22890:34;22886:1;22878:6;22874:14;22867:58;22959:12;22954:2;22946:6;22942:15;22935:37;22750:229;:::o;22985:366::-;23127:3;23148:67;23212:2;23207:3;23148:67;:::i;:::-;23141:74;;23224:93;23313:3;23224:93;:::i;:::-;23342:2;23337:3;23333:12;23326:19;;22985:366;;;:::o;23357:419::-;23523:4;23561:2;23550:9;23546:18;23538:26;;23610:9;23604:4;23600:20;23596:1;23585:9;23581:17;23574:47;23638:131;23764:4;23638:131;:::i;:::-;23630:139;;23357:419;;;:::o;23782:180::-;23830:77;23827:1;23820:88;23927:4;23924:1;23917:15;23951:4;23948:1;23941:15;23968:143;24025:5;24056:6;24050:13;24041:22;;24072:33;24099:5;24072:33;:::i;:::-;23968:143;;;;:::o;24117:351::-;24187:6;24236:2;24224:9;24215:7;24211:23;24207:32;24204:119;;;24242:79;;:::i;:::-;24204:119;24362:1;24387:64;24443:7;24434:6;24423:9;24419:22;24387:64;:::i;:::-;24377:74;;24333:128;24117:351;;;;:::o;24474:85::-;24519:7;24548:5;24537:16;;24474:85;;;:::o;24565:158::-;24623:9;24656:61;24674:42;24683:32;24709:5;24683:32;:::i;:::-;24674:42;:::i;:::-;24656:61;:::i;:::-;24643:74;;24565:158;;;:::o;24729:147::-;24824:45;24863:5;24824:45;:::i;:::-;24819:3;24812:58;24729:147;;:::o;24882:114::-;24949:6;24983:5;24977:12;24967:22;;24882:114;;;:::o;25002:184::-;25101:11;25135:6;25130:3;25123:19;25175:4;25170:3;25166:14;25151:29;;25002:184;;;;:::o;25192:132::-;25259:4;25282:3;25274:11;;25312:4;25307:3;25303:14;25295:22;;25192:132;;;:::o;25330:108::-;25407:24;25425:5;25407:24;:::i;:::-;25402:3;25395:37;25330:108;;:::o;25444:179::-;25513:10;25534:46;25576:3;25568:6;25534:46;:::i;:::-;25612:4;25607:3;25603:14;25589:28;;25444:179;;;;:::o;25629:113::-;25699:4;25731;25726:3;25722:14;25714:22;;25629:113;;;:::o;25778:732::-;25897:3;25926:54;25974:5;25926:54;:::i;:::-;25996:86;26075:6;26070:3;25996:86;:::i;:::-;25989:93;;26106:56;26156:5;26106:56;:::i;:::-;26185:7;26216:1;26201:284;26226:6;26223:1;26220:13;26201:284;;;26302:6;26296:13;26329:63;26388:3;26373:13;26329:63;:::i;:::-;26322:70;;26415:60;26468:6;26415:60;:::i;:::-;26405:70;;26261:224;26248:1;26245;26241:9;26236:14;;26201:284;;;26205:14;26501:3;26494:10;;25902:608;;;25778:732;;;;:::o;26516:831::-;26779:4;26817:3;26806:9;26802:19;26794:27;;26831:71;26899:1;26888:9;26884:17;26875:6;26831:71;:::i;:::-;26912:80;26988:2;26977:9;26973:18;26964:6;26912:80;:::i;:::-;27039:9;27033:4;27029:20;27024:2;27013:9;27009:18;27002:48;27067:108;27170:4;27161:6;27067:108;:::i;:::-;27059:116;;27185:72;27253:2;27242:9;27238:18;27229:6;27185:72;:::i;:::-;27267:73;27335:3;27324:9;27320:19;27311:6;27267:73;:::i;:::-;26516:831;;;;;;;;:::o;27353:180::-;27401:77;27398:1;27391:88;27498:4;27495:1;27488:15;27522:4;27519:1;27512:15;27539:185;27579:1;27596:20;27614:1;27596:20;:::i;:::-;27591:25;;27630:20;27648:1;27630:20;:::i;:::-;27625:25;;27669:1;27659:35;;27674:18;;:::i;:::-;27659:35;27716:1;27713;27709:9;27704:14;;27539:185;;;;:::o;27730:177::-;27870:29;27866:1;27858:6;27854:14;27847:53;27730:177;:::o;27913:366::-;28055:3;28076:67;28140:2;28135:3;28076:67;:::i;:::-;28069:74;;28152:93;28241:3;28152:93;:::i;:::-;28270:2;28265:3;28261:12;28254:19;;27913:366;;;:::o;28285:419::-;28451:4;28489:2;28478:9;28474:18;28466:26;;28538:9;28532:4;28528:20;28524:1;28513:9;28509:17;28502:47;28566:131;28692:4;28566:131;:::i;:::-;28558:139;;28285:419;;;:::o;28710:348::-;28750:7;28773:20;28791:1;28773:20;:::i;:::-;28768:25;;28807:20;28825:1;28807:20;:::i;:::-;28802:25;;28995:1;28927:66;28923:74;28920:1;28917:81;28912:1;28905:9;28898:17;28894:105;28891:131;;;29002:18;;:::i;:::-;28891:131;29050:1;29047;29043:9;29032:20;;28710:348;;;;:::o;29064:220::-;29204:34;29200:1;29192:6;29188:14;29181:58;29273:3;29268:2;29260:6;29256:15;29249:28;29064:220;:::o;29290:366::-;29432:3;29453:67;29517:2;29512:3;29453:67;:::i;:::-;29446:74;;29529:93;29618:3;29529:93;:::i;:::-;29647:2;29642:3;29638:12;29631:19;;29290:366;;;:::o;29662:419::-;29828:4;29866:2;29855:9;29851:18;29843:26;;29915:9;29909:4;29905:20;29901:1;29890:9;29886:17;29879:47;29943:131;30069:4;29943:131;:::i;:::-;29935:139;;29662:419;;;:::o
Swarm Source
ipfs://c04d4c74fc575aaf2eb08be73654805d8d9413f22f71a9eca3b095f799ae93df
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.