ERC-20
Overview
Max Total Supply
1,000,000 SIKO
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,413.426129457 SIKOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SIKONU
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-21 */ /** $SIKONU is Your Next Best Move ! Decentralized, deflationary, community-driven token that has it all. Marketing Planned today : Massive Influencers push Events Buybacks to get volume Dextools social update Etherscan social update Listing platform Telegram : https://t.me/SikoInu Medium : https://medium.com/@SikoInu Web : https://www.sikoInuerc.io (will publish with the Dapps in 5 hours) Twitter : https://twitter.com/sikoinuerc/ */ // 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 SIKONU is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "SIKONU"; string private constant _symbol = "SIKO"; 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 = 1000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 2; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 25; //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(0x2716Aa8cA4B07D9b7C890af97CAdCf2Bd98Ad231); address payable public _marketingAddress = payable(0x2716Aa8cA4B07D9b7C890af97CAdCf2Bd98Ad231); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 250000* 10**9; uint256 public _maxWalletSize = 250000 * 10**9; uint256 public _swapTokensAtAmount = 15000 * 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 kill(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unkill(address notbot) public onlyOwner { bots[notbot] = false; } 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":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"kill","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"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unkill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405266038d7ea4c680006000196200001b919062000725565b6000196200002a91906200078c565b600655600060085560026009556000600a556019600b55600a54600c55600b54600d55600c54600e55600d54600f55732716aa8ca4b07d9b7c890af97cadcf2bd98ad231601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732716aa8ca4b07d9b7c890af97cadcf2bd98ad231601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555065e35fa931a00060165565e35fa931a000601755650da475abf0006018553480156200017e57600080fd5b50600062000191620006bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000246620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000831565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000831565b6040518363ffffffff1660e01b8152600401620003fd92919062000874565b6020604051808303816000875af11580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000443919062000831565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000499620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000646620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006ac9190620008b2565b60405180910390a350620008cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073282620006ec565b91506200073f83620006ec565b925082620007525762000751620006f6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079982620006ec565b9150620007a683620006ec565b925082821015620007bc57620007bb6200075d565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f982620007cc565b9050919050565b6200080b81620007ec565b81146200081757600080fd5b50565b6000815190506200082b8162000800565b92915050565b6000602082840312156200084a5762000849620007c7565b5b60006200085a848285016200081a565b91505092915050565b6200086e81620007ec565b82525050565b60006040820190506200088b600083018562000863565b6200089a602083018462000863565b9392505050565b620008ac81620006ec565b82525050565b6000602082019050620008c96000830184620008a1565b92915050565b613e6680620008df6000396000f3fe6080604052600436106101dc5760003560e01c80637d1db4a511610102578063a9059cbb11610095578063caac793411610064578063caac793414610691578063dd62ed3e146106bc578063ea1644d5146106f9578063f2fde38b14610722576101e3565b8063a9059cbb146105d7578063bfd7928414610614578063c3c8cd8014610651578063c492f04614610668576101e3565b80638f9a55c0116100d15780638f9a55c01461052f57806395d89b411461055a57806398a5c31514610585578063a2a957bb146105ae576101e3565b80637d1db4a5146104735780637f2feddc1461049e5780638da5cb5b146104db5780638f70ccf714610506576101e3565b80633c0fc6ea1161017a57806370a082311161014957806370a08231146103cd578063715018a61461040a57806372356c061461042157806374010ece1461044a576101e3565b80633c0fc6ea1461033957806349bd5a5e146103625780636d8aa8f81461038d5780636fc3eaec146103b6576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632fd689e3146102e3578063313ce5671461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61074b565b60405161020a9190612c84565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612d4e565b610788565b6040516102479190612da9565b60405180910390f35b34801561025c57600080fd5b506102656107a6565b6040516102729190612e23565b60405180910390f35b34801561028757600080fd5b506102906107cc565b60405161029d9190612e4d565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612e68565b6107db565b6040516102da9190612da9565b60405180910390f35b3480156102ef57600080fd5b506102f86108b4565b6040516103059190612e4d565b60405180910390f35b34801561031a57600080fd5b506103236108ba565b6040516103309190612ed7565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b919061303a565b6108c3565b005b34801561036e57600080fd5b506103776109ed565b6040516103849190613092565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906130d9565b610a13565b005b3480156103c257600080fd5b506103cb610ac5565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190613106565b610b96565b6040516104019190612e4d565b60405180910390f35b34801561041657600080fd5b5061041f610be7565b005b34801561042d57600080fd5b5061044860048036038101906104439190613106565b610d3a565b005b34801561045657600080fd5b50610471600480360381019061046c9190613133565b610e2a565b005b34801561047f57600080fd5b50610488610ec9565b6040516104959190612e4d565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613106565b610ecf565b6040516104d29190612e4d565b60405180910390f35b3480156104e757600080fd5b506104f0610ee7565b6040516104fd9190613092565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906130d9565b610f10565b005b34801561053b57600080fd5b50610544610fc2565b6040516105519190612e4d565b60405180910390f35b34801561056657600080fd5b5061056f610fc8565b60405161057c9190612c84565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a79190613133565b611005565b005b3480156105ba57600080fd5b506105d560048036038101906105d09190613160565b6110a4565b005b3480156105e357600080fd5b506105fe60048036038101906105f99190612d4e565b61115b565b60405161060b9190612da9565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190613106565b611179565b6040516106489190612da9565b60405180910390f35b34801561065d57600080fd5b50610666611199565b005b34801561067457600080fd5b5061068f600480360381019061068a9190613222565b611272565b005b34801561069d57600080fd5b506106a66113ac565b6040516106b391906132a3565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de91906132be565b6113d2565b6040516106f09190612e4d565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613133565b611459565b005b34801561072e57600080fd5b5061074960048036038101906107449190613106565b6114f8565b005b60606040518060400160405280600681526020017f53494b4f4e550000000000000000000000000000000000000000000000000000815250905090565b600061079c6107956116ba565b84846116c2565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006107e884848461188d565b6108a9846107f46116ba565b6108a485604051806060016040528060288152602001613e0960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061085a6116ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121129092919063ffffffff16565b6116c2565b600190509392505050565b60185481565b60006009905090565b6108cb6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f9061334a565b60405180910390fd5b60005b81518110156109e95760016010600084848151811061097d5761097c61336a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109e1906133c8565b91505061095b565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a1b6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f9061334a565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b066116ba565b73ffffffffffffffffffffffffffffffffffffffff161480610b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b646116ba565b73ffffffffffffffffffffffffffffffffffffffff16145b610b8557600080fd5b6000479050610b9381612176565b50565b6000610be0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e2565b9050919050565b610bef6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061334a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d426116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc69061334a565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e326116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb69061334a565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f186116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c9061334a565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f53494b4f00000000000000000000000000000000000000000000000000000000815250905090565b61100d6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110919061334a565b60405180910390fd5b8060188190555050565b6110ac6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111309061334a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061116f6111686116ba565b848461188d565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111da6116ba565b73ffffffffffffffffffffffffffffffffffffffff1614806112505750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112386116ba565b73ffffffffffffffffffffffffffffffffffffffff16145b61125957600080fd5b600061126430610b96565b905061126f81612250565b50565b61127a6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe9061334a565b60405180910390fd5b60005b838390508110156113a657816005600086868581811061132d5761132c61336a565b5b90506020020160208101906113429190613106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139e906133c8565b91505061130a565b50505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114616116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e59061334a565b60405180910390fd5b8060178190555050565b6115006116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115849061334a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490613483565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613515565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611799906135a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118809190612e4d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613639565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561196d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611964906136cb565b60405180910390fd5b600081116119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a79061375d565b60405180910390fd5b6119b8610ee7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2657506119f6610ee7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e1157601560149054906101000a900460ff16611ab557611a47610ee7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab906137ef565b60405180910390fd5b5b601654811115611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af19061385b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b9e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd4906138ed565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c8a5760175481611c3f84610b96565b611c49919061390d565b10611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906139d5565b60405180910390fd5b5b6000611c9530610b96565b9050600060185482101590506016548210611cb05760165491505b808015611cc8575060158054906101000a900460ff16155b8015611d225750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d3a5750601560169054906101000a900460ff165b8015611d905750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de65750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0e57611df482612250565b60004790506000811115611e0c57611e0b47612176565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb85750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f6b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f6a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f795760009050612100565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120245750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561203c57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120e75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ff57600a54600c81905550600b54600d819055505b5b61210c848484846124c7565b50505050565b600083831115829061215a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121519190612c84565b60405180910390fd5b506000838561216991906139f5565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121de573d6000803e3d6000fd5b5050565b6000600654821115612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090613a9b565b60405180910390fd5b60006122336124f4565b9050612248818461251f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561228757612286612ef7565b5b6040519080825280602002602001820160405280156122b55781602001602082028036833780820191505090505b50905030816000815181106122cd576122cc61336a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123989190613ad0565b816001815181106123ac576123ab61336a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c2565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612477959493929190613bf6565b600060405180830381600087803b15801561249157600080fd5b505af11580156124a5573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806124d5576124d4612569565b5b6124e08484846125ac565b806124ee576124ed612777565b5b50505050565b600080600061250161278b565b91509150612518818361251f90919063ffffffff16565b9250505090565b600061256183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127e7565b905092915050565b6000600c5414801561257d57506000600d54145b15612587576125aa565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806125be8761284a565b95509550955095509550955061261c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126fd8161295a565b6127078483612a17565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127649190612e4d565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506127bd66038d7ea4c6800060065461251f90919063ffffffff16565b8210156127da5760065466038d7ea4c680009350935050506127e3565b81819350935050505b9091565b6000808311829061282e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128259190612c84565b60405180910390fd5b506000838561283d9190613c7f565b9050809150509392505050565b60008060008060008060008060006128678a600c54600d54612a51565b92509250925060006128776124f4565b9050600080600061288a8e878787612ae7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612112565b905092915050565b600080828461290b919061390d565b905083811015612950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294790613cfc565b60405180910390fd5b8091505092915050565b60006129646124f4565b9050600061297b8284612b7090919063ffffffff16565b90506129cf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a2c826006546128b290919063ffffffff16565b600681905550612a47816007546128fc90919063ffffffff16565b6007819055505050565b600080600080612a7d6064612a6f888a612b7090919063ffffffff16565b61251f90919063ffffffff16565b90506000612aa76064612a99888b612b7090919063ffffffff16565b61251f90919063ffffffff16565b90506000612ad082612ac2858c6128b290919063ffffffff16565b6128b290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b008589612b7090919063ffffffff16565b90506000612b178689612b7090919063ffffffff16565b90506000612b2e8789612b7090919063ffffffff16565b90506000612b5782612b4985876128b290919063ffffffff16565b6128b290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b835760009050612be5565b60008284612b919190613d1c565b9050828482612ba09190613c7f565b14612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790613de8565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c25578082015181840152602081019050612c0a565b83811115612c34576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c5682612beb565b612c608185612bf6565b9350612c70818560208601612c07565b612c7981612c3a565b840191505092915050565b60006020820190508181036000830152612c9e8184612c4b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ce582612cba565b9050919050565b612cf581612cda565b8114612d0057600080fd5b50565b600081359050612d1281612cec565b92915050565b6000819050919050565b612d2b81612d18565b8114612d3657600080fd5b50565b600081359050612d4881612d22565b92915050565b60008060408385031215612d6557612d64612cb0565b5b6000612d7385828601612d03565b9250506020612d8485828601612d39565b9150509250929050565b60008115159050919050565b612da381612d8e565b82525050565b6000602082019050612dbe6000830184612d9a565b92915050565b6000819050919050565b6000612de9612de4612ddf84612cba565b612dc4565b612cba565b9050919050565b6000612dfb82612dce565b9050919050565b6000612e0d82612df0565b9050919050565b612e1d81612e02565b82525050565b6000602082019050612e386000830184612e14565b92915050565b612e4781612d18565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b600080600060608486031215612e8157612e80612cb0565b5b6000612e8f86828701612d03565b9350506020612ea086828701612d03565b9250506040612eb186828701612d39565b9150509250925092565b600060ff82169050919050565b612ed181612ebb565b82525050565b6000602082019050612eec6000830184612ec8565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2f82612c3a565b810181811067ffffffffffffffff82111715612f4e57612f4d612ef7565b5b80604052505050565b6000612f61612ca6565b9050612f6d8282612f26565b919050565b600067ffffffffffffffff821115612f8d57612f8c612ef7565b5b602082029050602081019050919050565b600080fd5b6000612fb6612fb184612f72565b612f57565b90508083825260208201905060208402830185811115612fd957612fd8612f9e565b5b835b818110156130025780612fee8882612d03565b845260208401935050602081019050612fdb565b5050509392505050565b600082601f83011261302157613020612ef2565b5b8135613031848260208601612fa3565b91505092915050565b6000602082840312156130505761304f612cb0565b5b600082013567ffffffffffffffff81111561306e5761306d612cb5565b5b61307a8482850161300c565b91505092915050565b61308c81612cda565b82525050565b60006020820190506130a76000830184613083565b92915050565b6130b681612d8e565b81146130c157600080fd5b50565b6000813590506130d3816130ad565b92915050565b6000602082840312156130ef576130ee612cb0565b5b60006130fd848285016130c4565b91505092915050565b60006020828403121561311c5761311b612cb0565b5b600061312a84828501612d03565b91505092915050565b60006020828403121561314957613148612cb0565b5b600061315784828501612d39565b91505092915050565b6000806000806080858703121561317a57613179612cb0565b5b600061318887828801612d39565b945050602061319987828801612d39565b93505060406131aa87828801612d39565b92505060606131bb87828801612d39565b91505092959194509250565b600080fd5b60008083601f8401126131e2576131e1612ef2565b5b8235905067ffffffffffffffff8111156131ff576131fe6131c7565b5b60208301915083602082028301111561321b5761321a612f9e565b5b9250929050565b60008060006040848603121561323b5761323a612cb0565b5b600084013567ffffffffffffffff81111561325957613258612cb5565b5b613265868287016131cc565b93509350506020613278868287016130c4565b9150509250925092565b600061328d82612cba565b9050919050565b61329d81613282565b82525050565b60006020820190506132b86000830184613294565b92915050565b600080604083850312156132d5576132d4612cb0565b5b60006132e385828601612d03565b92505060206132f485828601612d03565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613334602083612bf6565b915061333f826132fe565b602082019050919050565b6000602082019050818103600083015261336381613327565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133d382612d18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561340657613405613399565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061346d602683612bf6565b915061347882613411565b604082019050919050565b6000602082019050818103600083015261349c81613460565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134ff602483612bf6565b915061350a826134a3565b604082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613591602283612bf6565b915061359c82613535565b604082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613623602583612bf6565b915061362e826135c7565b604082019050919050565b6000602082019050818103600083015261365281613616565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136b5602383612bf6565b91506136c082613659565b604082019050919050565b600060208201905081810360008301526136e4816136a8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613747602983612bf6565b9150613752826136eb565b604082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006137d9603f83612bf6565b91506137e48261377d565b604082019050919050565b60006020820190508181036000830152613808816137cc565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613845601c83612bf6565b91506138508261380f565b602082019050919050565b6000602082019050818103600083015261387481613838565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006138d7602383612bf6565b91506138e28261387b565b604082019050919050565b60006020820190508181036000830152613906816138ca565b9050919050565b600061391882612d18565b915061392383612d18565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561395857613957613399565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006139bf602383612bf6565b91506139ca82613963565b604082019050919050565b600060208201905081810360008301526139ee816139b2565b9050919050565b6000613a0082612d18565b9150613a0b83612d18565b925082821015613a1e57613a1d613399565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a85602a83612bf6565b9150613a9082613a29565b604082019050919050565b60006020820190508181036000830152613ab481613a78565b9050919050565b600081519050613aca81612cec565b92915050565b600060208284031215613ae657613ae5612cb0565b5b6000613af484828501613abb565b91505092915050565b6000819050919050565b6000613b22613b1d613b1884613afd565b612dc4565b612d18565b9050919050565b613b3281613b07565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6d81612cda565b82525050565b6000613b7f8383613b64565b60208301905092915050565b6000602082019050919050565b6000613ba382613b38565b613bad8185613b43565b9350613bb883613b54565b8060005b83811015613be9578151613bd08882613b73565b9750613bdb83613b8b565b925050600181019050613bbc565b5085935050505092915050565b600060a082019050613c0b6000830188612e3e565b613c186020830187613b29565b8181036040830152613c2a8186613b98565b9050613c396060830185613083565b613c466080830184612e3e565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8a82612d18565b9150613c9583612d18565b925082613ca557613ca4613c50565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ce6601b83612bf6565b9150613cf182613cb0565b602082019050919050565b60006020820190508181036000830152613d1581613cd9565b9050919050565b6000613d2782612d18565b9150613d3283612d18565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d6b57613d6a613399565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dd2602183612bf6565b9150613ddd82613d76565b604082019050919050565b60006020820190508181036000830152613e0181613dc5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ca9d8ea46ee2c88cf224b9932c5be152ec86c22677ad14e015252f6cf0d20b964736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c80637d1db4a511610102578063a9059cbb11610095578063caac793411610064578063caac793414610691578063dd62ed3e146106bc578063ea1644d5146106f9578063f2fde38b14610722576101e3565b8063a9059cbb146105d7578063bfd7928414610614578063c3c8cd8014610651578063c492f04614610668576101e3565b80638f9a55c0116100d15780638f9a55c01461052f57806395d89b411461055a57806398a5c31514610585578063a2a957bb146105ae576101e3565b80637d1db4a5146104735780637f2feddc1461049e5780638da5cb5b146104db5780638f70ccf714610506576101e3565b80633c0fc6ea1161017a57806370a082311161014957806370a08231146103cd578063715018a61461040a57806372356c061461042157806374010ece1461044a576101e3565b80633c0fc6ea1461033957806349bd5a5e146103625780636d8aa8f81461038d5780636fc3eaec146103b6576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632fd689e3146102e3578063313ce5671461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61074b565b60405161020a9190612c84565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612d4e565b610788565b6040516102479190612da9565b60405180910390f35b34801561025c57600080fd5b506102656107a6565b6040516102729190612e23565b60405180910390f35b34801561028757600080fd5b506102906107cc565b60405161029d9190612e4d565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612e68565b6107db565b6040516102da9190612da9565b60405180910390f35b3480156102ef57600080fd5b506102f86108b4565b6040516103059190612e4d565b60405180910390f35b34801561031a57600080fd5b506103236108ba565b6040516103309190612ed7565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b919061303a565b6108c3565b005b34801561036e57600080fd5b506103776109ed565b6040516103849190613092565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906130d9565b610a13565b005b3480156103c257600080fd5b506103cb610ac5565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190613106565b610b96565b6040516104019190612e4d565b60405180910390f35b34801561041657600080fd5b5061041f610be7565b005b34801561042d57600080fd5b5061044860048036038101906104439190613106565b610d3a565b005b34801561045657600080fd5b50610471600480360381019061046c9190613133565b610e2a565b005b34801561047f57600080fd5b50610488610ec9565b6040516104959190612e4d565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613106565b610ecf565b6040516104d29190612e4d565b60405180910390f35b3480156104e757600080fd5b506104f0610ee7565b6040516104fd9190613092565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906130d9565b610f10565b005b34801561053b57600080fd5b50610544610fc2565b6040516105519190612e4d565b60405180910390f35b34801561056657600080fd5b5061056f610fc8565b60405161057c9190612c84565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a79190613133565b611005565b005b3480156105ba57600080fd5b506105d560048036038101906105d09190613160565b6110a4565b005b3480156105e357600080fd5b506105fe60048036038101906105f99190612d4e565b61115b565b60405161060b9190612da9565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190613106565b611179565b6040516106489190612da9565b60405180910390f35b34801561065d57600080fd5b50610666611199565b005b34801561067457600080fd5b5061068f600480360381019061068a9190613222565b611272565b005b34801561069d57600080fd5b506106a66113ac565b6040516106b391906132a3565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de91906132be565b6113d2565b6040516106f09190612e4d565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613133565b611459565b005b34801561072e57600080fd5b5061074960048036038101906107449190613106565b6114f8565b005b60606040518060400160405280600681526020017f53494b4f4e550000000000000000000000000000000000000000000000000000815250905090565b600061079c6107956116ba565b84846116c2565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006107e884848461188d565b6108a9846107f46116ba565b6108a485604051806060016040528060288152602001613e0960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061085a6116ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121129092919063ffffffff16565b6116c2565b600190509392505050565b60185481565b60006009905090565b6108cb6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f9061334a565b60405180910390fd5b60005b81518110156109e95760016010600084848151811061097d5761097c61336a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109e1906133c8565b91505061095b565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a1b6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f9061334a565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b066116ba565b73ffffffffffffffffffffffffffffffffffffffff161480610b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b646116ba565b73ffffffffffffffffffffffffffffffffffffffff16145b610b8557600080fd5b6000479050610b9381612176565b50565b6000610be0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e2565b9050919050565b610bef6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061334a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d426116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc69061334a565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e326116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb69061334a565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f186116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c9061334a565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f53494b4f00000000000000000000000000000000000000000000000000000000815250905090565b61100d6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110919061334a565b60405180910390fd5b8060188190555050565b6110ac6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111309061334a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061116f6111686116ba565b848461188d565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111da6116ba565b73ffffffffffffffffffffffffffffffffffffffff1614806112505750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112386116ba565b73ffffffffffffffffffffffffffffffffffffffff16145b61125957600080fd5b600061126430610b96565b905061126f81612250565b50565b61127a6116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe9061334a565b60405180910390fd5b60005b838390508110156113a657816005600086868581811061132d5761132c61336a565b5b90506020020160208101906113429190613106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139e906133c8565b91505061130a565b50505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114616116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e59061334a565b60405180910390fd5b8060178190555050565b6115006116ba565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115849061334a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490613483565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613515565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611799906135a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118809190612e4d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613639565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561196d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611964906136cb565b60405180910390fd5b600081116119b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a79061375d565b60405180910390fd5b6119b8610ee7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2657506119f6610ee7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e1157601560149054906101000a900460ff16611ab557611a47610ee7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab906137ef565b60405180910390fd5b5b601654811115611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af19061385b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b9e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd4906138ed565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c8a5760175481611c3f84610b96565b611c49919061390d565b10611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906139d5565b60405180910390fd5b5b6000611c9530610b96565b9050600060185482101590506016548210611cb05760165491505b808015611cc8575060158054906101000a900460ff16155b8015611d225750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d3a5750601560169054906101000a900460ff165b8015611d905750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de65750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0e57611df482612250565b60004790506000811115611e0c57611e0b47612176565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb85750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f6b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f6a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f795760009050612100565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120245750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561203c57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120e75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ff57600a54600c81905550600b54600d819055505b5b61210c848484846124c7565b50505050565b600083831115829061215a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121519190612c84565b60405180910390fd5b506000838561216991906139f5565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121de573d6000803e3d6000fd5b5050565b6000600654821115612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090613a9b565b60405180910390fd5b60006122336124f4565b9050612248818461251f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561228757612286612ef7565b5b6040519080825280602002602001820160405280156122b55781602001602082028036833780820191505090505b50905030816000815181106122cd576122cc61336a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123989190613ad0565b816001815181106123ac576123ab61336a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c2565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612477959493929190613bf6565b600060405180830381600087803b15801561249157600080fd5b505af11580156124a5573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806124d5576124d4612569565b5b6124e08484846125ac565b806124ee576124ed612777565b5b50505050565b600080600061250161278b565b91509150612518818361251f90919063ffffffff16565b9250505090565b600061256183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127e7565b905092915050565b6000600c5414801561257d57506000600d54145b15612587576125aa565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806125be8761284a565b95509550955095509550955061261c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126fd8161295a565b6127078483612a17565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127649190612e4d565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506127bd66038d7ea4c6800060065461251f90919063ffffffff16565b8210156127da5760065466038d7ea4c680009350935050506127e3565b81819350935050505b9091565b6000808311829061282e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128259190612c84565b60405180910390fd5b506000838561283d9190613c7f565b9050809150509392505050565b60008060008060008060008060006128678a600c54600d54612a51565b92509250925060006128776124f4565b9050600080600061288a8e878787612ae7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612112565b905092915050565b600080828461290b919061390d565b905083811015612950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294790613cfc565b60405180910390fd5b8091505092915050565b60006129646124f4565b9050600061297b8284612b7090919063ffffffff16565b90506129cf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612a2c826006546128b290919063ffffffff16565b600681905550612a47816007546128fc90919063ffffffff16565b6007819055505050565b600080600080612a7d6064612a6f888a612b7090919063ffffffff16565b61251f90919063ffffffff16565b90506000612aa76064612a99888b612b7090919063ffffffff16565b61251f90919063ffffffff16565b90506000612ad082612ac2858c6128b290919063ffffffff16565b6128b290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b008589612b7090919063ffffffff16565b90506000612b178689612b7090919063ffffffff16565b90506000612b2e8789612b7090919063ffffffff16565b90506000612b5782612b4985876128b290919063ffffffff16565b6128b290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b835760009050612be5565b60008284612b919190613d1c565b9050828482612ba09190613c7f565b14612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790613de8565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c25578082015181840152602081019050612c0a565b83811115612c34576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c5682612beb565b612c608185612bf6565b9350612c70818560208601612c07565b612c7981612c3a565b840191505092915050565b60006020820190508181036000830152612c9e8184612c4b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ce582612cba565b9050919050565b612cf581612cda565b8114612d0057600080fd5b50565b600081359050612d1281612cec565b92915050565b6000819050919050565b612d2b81612d18565b8114612d3657600080fd5b50565b600081359050612d4881612d22565b92915050565b60008060408385031215612d6557612d64612cb0565b5b6000612d7385828601612d03565b9250506020612d8485828601612d39565b9150509250929050565b60008115159050919050565b612da381612d8e565b82525050565b6000602082019050612dbe6000830184612d9a565b92915050565b6000819050919050565b6000612de9612de4612ddf84612cba565b612dc4565b612cba565b9050919050565b6000612dfb82612dce565b9050919050565b6000612e0d82612df0565b9050919050565b612e1d81612e02565b82525050565b6000602082019050612e386000830184612e14565b92915050565b612e4781612d18565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b600080600060608486031215612e8157612e80612cb0565b5b6000612e8f86828701612d03565b9350506020612ea086828701612d03565b9250506040612eb186828701612d39565b9150509250925092565b600060ff82169050919050565b612ed181612ebb565b82525050565b6000602082019050612eec6000830184612ec8565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2f82612c3a565b810181811067ffffffffffffffff82111715612f4e57612f4d612ef7565b5b80604052505050565b6000612f61612ca6565b9050612f6d8282612f26565b919050565b600067ffffffffffffffff821115612f8d57612f8c612ef7565b5b602082029050602081019050919050565b600080fd5b6000612fb6612fb184612f72565b612f57565b90508083825260208201905060208402830185811115612fd957612fd8612f9e565b5b835b818110156130025780612fee8882612d03565b845260208401935050602081019050612fdb565b5050509392505050565b600082601f83011261302157613020612ef2565b5b8135613031848260208601612fa3565b91505092915050565b6000602082840312156130505761304f612cb0565b5b600082013567ffffffffffffffff81111561306e5761306d612cb5565b5b61307a8482850161300c565b91505092915050565b61308c81612cda565b82525050565b60006020820190506130a76000830184613083565b92915050565b6130b681612d8e565b81146130c157600080fd5b50565b6000813590506130d3816130ad565b92915050565b6000602082840312156130ef576130ee612cb0565b5b60006130fd848285016130c4565b91505092915050565b60006020828403121561311c5761311b612cb0565b5b600061312a84828501612d03565b91505092915050565b60006020828403121561314957613148612cb0565b5b600061315784828501612d39565b91505092915050565b6000806000806080858703121561317a57613179612cb0565b5b600061318887828801612d39565b945050602061319987828801612d39565b93505060406131aa87828801612d39565b92505060606131bb87828801612d39565b91505092959194509250565b600080fd5b60008083601f8401126131e2576131e1612ef2565b5b8235905067ffffffffffffffff8111156131ff576131fe6131c7565b5b60208301915083602082028301111561321b5761321a612f9e565b5b9250929050565b60008060006040848603121561323b5761323a612cb0565b5b600084013567ffffffffffffffff81111561325957613258612cb5565b5b613265868287016131cc565b93509350506020613278868287016130c4565b9150509250925092565b600061328d82612cba565b9050919050565b61329d81613282565b82525050565b60006020820190506132b86000830184613294565b92915050565b600080604083850312156132d5576132d4612cb0565b5b60006132e385828601612d03565b92505060206132f485828601612d03565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613334602083612bf6565b915061333f826132fe565b602082019050919050565b6000602082019050818103600083015261336381613327565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133d382612d18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561340657613405613399565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061346d602683612bf6565b915061347882613411565b604082019050919050565b6000602082019050818103600083015261349c81613460565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134ff602483612bf6565b915061350a826134a3565b604082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613591602283612bf6565b915061359c82613535565b604082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613623602583612bf6565b915061362e826135c7565b604082019050919050565b6000602082019050818103600083015261365281613616565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136b5602383612bf6565b91506136c082613659565b604082019050919050565b600060208201905081810360008301526136e4816136a8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613747602983612bf6565b9150613752826136eb565b604082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006137d9603f83612bf6565b91506137e48261377d565b604082019050919050565b60006020820190508181036000830152613808816137cc565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613845601c83612bf6565b91506138508261380f565b602082019050919050565b6000602082019050818103600083015261387481613838565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006138d7602383612bf6565b91506138e28261387b565b604082019050919050565b60006020820190508181036000830152613906816138ca565b9050919050565b600061391882612d18565b915061392383612d18565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561395857613957613399565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006139bf602383612bf6565b91506139ca82613963565b604082019050919050565b600060208201905081810360008301526139ee816139b2565b9050919050565b6000613a0082612d18565b9150613a0b83612d18565b925082821015613a1e57613a1d613399565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a85602a83612bf6565b9150613a9082613a29565b604082019050919050565b60006020820190508181036000830152613ab481613a78565b9050919050565b600081519050613aca81612cec565b92915050565b600060208284031215613ae657613ae5612cb0565b5b6000613af484828501613abb565b91505092915050565b6000819050919050565b6000613b22613b1d613b1884613afd565b612dc4565b612d18565b9050919050565b613b3281613b07565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6d81612cda565b82525050565b6000613b7f8383613b64565b60208301905092915050565b6000602082019050919050565b6000613ba382613b38565b613bad8185613b43565b9350613bb883613b54565b8060005b83811015613be9578151613bd08882613b73565b9750613bdb83613b8b565b925050600181019050613bbc565b5085935050505092915050565b600060a082019050613c0b6000830188612e3e565b613c186020830187613b29565b8181036040830152613c2a8186613b98565b9050613c396060830185613083565b613c466080830184612e3e565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8a82612d18565b9150613c9583612d18565b925082613ca557613ca4613c50565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ce6601b83612bf6565b9150613cf182613cb0565b602082019050919050565b60006020820190508181036000830152613d1581613cd9565b9050919050565b6000613d2782612d18565b9150613d3283612d18565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d6b57613d6a613399565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dd2602183612bf6565b9150613ddd82613d76565b604082019050919050565b60006020820190508181036000830152613e0181613dc5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ca9d8ea46ee2c88cf224b9932c5be152ec86c22677ad14e015252f6cf0d20b964736f6c634300080a0033
Deployed Bytecode Sourcemap
3849:10792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6075:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6816:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5083:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6304:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6965:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5355:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6229:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10847:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5127:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14107:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10636:207;;;;;;;;;;;;;:::i;:::-;;6391:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1832:128;;;;;;;;;;;;;:::i;:::-;;10983:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14227:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5260:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4838;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1658:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10331:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5306:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6150:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13936:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13637:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6521:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4800:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10424:208;;;;;;;;;;;;;:::i;:::-;;14434:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4984:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6676:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14327:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1964:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6075:71;6112:13;6137:5;;;;;;;;;;;;;;;;;6130:12;;6075:71;:::o;6816:145::-;6894:4;6904:39;6913:12;:10;:12::i;:::-;6927:7;6936:6;6904:8;:39::i;:::-;6953:4;6946:11;;6816:145;;;;:::o;5083:41::-;;;;;;;;;;;;;:::o;6304:83::-;6357:7;4352:15;6369:14;;6304:83;:::o;6965:302::-;7069:4;7078:36;7088:6;7096:9;7107:6;7078:9;:36::i;:::-;7117:132;7128:6;7137:12;:10;:12::i;:::-;7152:94;7192:6;7152:94;;;;;;;;;;;;;;;;;:11;:19;7164:6;7152:19;;;;;;;;;;;;;;;:33;7172:12;:10;:12::i;:::-;7152:33;;;;;;;;;;;;;;;;:37;;:94;;;;;:::i;:::-;7117:8;:132::i;:::-;7259:4;7252:11;;6965:302;;;;;:::o;5355:50::-;;;;:::o;6229:71::-;6270:5;4050:1;6280:16;;6229:71;:::o;10847:132::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10910:9:::1;10905:71;10929:5;:12;10925:1;:16;10905:71;;;10968:4;10951;:14;10956:5;10962:1;10956:8;;;;;;;;:::i;:::-;;;;;;;;10951:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10943:3;;;;;:::i;:::-;;;;10905:71;;;;10847:132:::0;:::o;5127:28::-;;;;;;;;;;;;;:::o;14107:89::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14180:12:::1;14166:11;;:26;;;;;;;;;;;;;;;;;;14107:89:::0;:::o;10636:207::-;10694:19;;;;;;;;;;;10678:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;10733:17;;;;;;;;;;;10717:33;;:12;:10;:12::i;:::-;:33;;;10678:72;10670:81;;;;;;10754:26;10783:21;10754:50;;10807:32;10820:18;10807:12;:32::i;:::-;10667:176;10636:207::o;6391:126::-;6457:7;6476:37;6496:7;:16;6504:7;6496:16;;;;;;;;;;;;;;;;6476:19;:37::i;:::-;6469:44;;6391:126;;;:::o;1832:128::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1931:1:::1;1894:40;;1915:6;::::0;::::1;;;;;;;;1894:40;;;;;;;;;;;;1954:1;1937:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1832:128::o:0;10983:76::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11050:5:::1;11035:4;:12;11040:6;11035:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10983:76:::0;:::o;14227:96::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14308:11:::1;14293:12;:26;;;;14227:96:::0;:::o;5260:43::-;;;;:::o;4838:::-;;;;;;;;;;;;;;;;;:::o;1658:67::-;1696:7;1715:6;;;;;;;;;;;1708:13;;1658:67;:::o;10331:89::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10404:12:::1;10390:11;;:26;;;;;;;;;;;;;;;;;;10331:89:::0;:::o;5306:46::-;;;;:::o;6150:75::-;6189:13;6214:7;;;;;;;;;;;;;;;;;6207:14;;6150:75;:::o;13936:127::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14041:18:::1;14019:19;:40;;;;13936:127:::0;:::o;13637:255::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13780:13:::1;13763:14;:30;;;;13814:14;13796:15;:32;;;;13846:11;13831:12;:26;;;;13876:12;13860:13;:28;;;;13637:255:::0;;;;:::o;6521:151::-;6602:4;6612:42;6622:12;:10;:12::i;:::-;6636:9;6647:6;6612:9;:42::i;:::-;6664:4;6657:11;;6521:151;;;;:::o;4800:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;10424:208::-;10482:19;;;;;;;;;;;10466:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;10521:17;;;;;;;;;;;10505:33;;:12;:10;:12::i;:::-;:33;;;10466:72;10458:81;;;;;;10542:23;10568:24;10586:4;10568:9;:24::i;:::-;10542:50;;10595:33;10612:15;10595:16;:33::i;:::-;10455:177;10424:208::o;14434:202::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14543:9:::1;14539:94;14562:8;;:15;;14558:1;:19;14539:94;;;14621:8;14587:18;:31;14606:8;;14615:1;14606:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14587:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14579:3;;;;;:::i;:::-;;;;14539:94;;;;14434:202:::0;;;:::o;4984:94::-;;;;;;;;;;;;;:::o;6676:136::-;6761:7;6781:11;:18;6793:5;6781:18;;;;;;;;;;;;;;;:27;6800:7;6781:27;;;;;;;;;;;;;;;;6774:34;;6676:136;;;;:::o;14327:103::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14413:13:::1;14396:14;:30;;;;14327:103:::0;:::o;1964:216::-;1771:12;:10;:12::i;:::-;1761:22;;:6;;;;;;;;;;:22;;;1753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2065:1:::1;2045:22;;:8;:22;;;;2037:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2147:8;2118:38;;2139:6;::::0;::::1;;;;;;;;2118:38;;;;;;;;;;;;2168:8;2159:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1964:216:::0;:::o;585:86::-;638:7;657:10;650:17;;585:86;:::o;7790:305::-;7898:1;7881:19;;:5;:19;;;;7873:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7971:1;7952:21;;:7;:21;;;;7944:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8045:6;8015:11;:18;8027:5;8015:18;;;;;;;;;;;;;;;:27;8034:7;8015:27;;;;;;;;;;;;;;;:36;;;;8075:7;8059:32;;8068:5;8059:32;;;8084:6;8059:32;;;;;;:::i;:::-;;;;;;;;7790:305;;;:::o;8099:1762::-;8201:1;8185:18;;:4;:18;;;;8177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8270:1;8256:16;;:2;:16;;;;8248:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8332:1;8323:6;:10;8315:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8396:7;:5;:7::i;:::-;8388:15;;:4;:15;;;;:32;;;;;8413:7;:5;:7::i;:::-;8407:13;;:2;:13;;;;8388:32;8384:951;;;8453:11;;;;;;;;;;;8448:116;;8485:7;:5;:7::i;:::-;8477:15;;:4;:15;;;8469:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8448:116;8586:12;;8576:6;:22;;8568:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8643:4;:10;8648:4;8643:10;;;;;;;;;;;;;;;;;;;;;;;;;8642:11;:24;;;;;8658:4;:8;8663:2;8658:8;;;;;;;;;;;;;;;;;;;;;;;;;8657:9;8642:24;8634:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8720:13;;;;;;;;;;;8714:19;;:2;:19;;;8711:118;;8771:14;;8762:6;8746:13;8756:2;8746:9;:13::i;:::-;:22;;;;:::i;:::-;:39;8738:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8711:118;8833:28;8864:24;8882:4;8864:9;:24::i;:::-;8833:55;;8891:12;8930:19;;8906:20;:43;;8891:58;;8981:12;;8957:20;:36;8954:84;;9022:12;;8999:35;;8954:84;9046:7;:18;;;;;9058:6;;;;;;;;;;9057:7;9046:18;:43;;;;;9076:13;;;;;;;;;;;9068:21;;:4;:21;;;;9046:43;:58;;;;;9093:11;;;;;;;;;;;9046:58;:87;;;;;9109:18;:24;9128:4;9109:24;;;;;;;;;;;;;;;;;;;;;;;;;9108:25;9046:87;:114;;;;;9138:18;:22;9157:2;9138:22;;;;;;;;;;;;;;;;;;;;;;;;;9137:23;9046:114;9042:290;;;9165:38;9182:20;9165:16;:38::i;:::-;9206:26;9235:21;9206:50;;9284:1;9263:18;:22;9259:70;;;9290:35;9303:21;9290:12;:35::i;:::-;9259:70;9162:170;9042:290;8422:913;;8384:951;9339:12;9354:4;9339:19;;9387:18;:24;9406:4;9387:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9415:18;:22;9434:2;9415:22;;;;;;;;;;;;;;;;;;;;;;;;;9387:50;9386:102;;;;9451:13;;;;;;;;;;;9443:21;;:4;:21;;;;:44;;;;;9474:13;;;;;;;;;;;9468:19;;:2;:19;;;;9443:44;9386:102;9382:430;;;9503:5;9493:15;;9382:430;;;9554:13;;;;;;;;;;;9546:21;;:4;:21;;;:55;;;;;9585:15;;;;;;;;;;;9571:30;;:2;:30;;;;9546:55;9543:118;;;9618:14;;9606:9;:26;;;;9645:12;;9635:7;:22;;;;9543:118;9696:13;;;;;;;;;;;9690:19;;:2;:19;;;:55;;;;;9729:15;;;;;;;;;;;9713:32;;:4;:32;;;;9690:55;9686:121;;;9762:15;;9750:9;:27;;;;9790:13;;9780:7;:23;;;;9686:121;9382:430;9816:41;9831:4;9837:2;9841:6;9849:7;9816:14;:41::i;:::-;8174:1687;8099:1762;;;:::o;2492:168::-;2584:7;2609:1;2604;:6;;2612:12;2596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2628:9;2644:1;2640;:5;;;;:::i;:::-;2628:17;;2655:1;2648:8;;;2492:168;;;;;:::o;10240:87::-;10289:17;;;;;;;;;;;:26;;:34;10316:6;10289:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:87;:::o;7271:235::-;7342:7;7376;;7365;:18;;7355:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:19;7458:10;:8;:10::i;:::-;7436:32;;7478:24;7490:11;7478:7;:11;;:24;;;;:::i;:::-;7471:31;;;7271:235;;;:::o;9865:371::-;5492:4;5483:6;;:13;;;;;;;;;;;;;;;;;;9935:21:::1;9973:1;9959:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9935:40;;9996:4;9978;9983:1;9978:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10014:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10004:4;10009:1;10004:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10039:62;10056:4;10071:15;;;;;;;;;;;10089:11;10039:8;:62::i;:::-;10104:15;;;;;;;;;;;:66;;;10173:11;10187:1;10191:4;10206;10214:15;10104:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9932:304;5512:5:::0;5503:6;;:14;;;;;;;;;;;;;;;;;;9865:371;:::o;11063:218::-;11175:7;11170:28;;11184:14;:12;:14::i;:::-;11170:28;11201:44;11219:6;11227:9;11238:6;11201:17;:44::i;:::-;11253:7;11248:29;;11262:15;:13;:15::i;:::-;11248:29;11063:218;;;;:::o;13264:144::-;13306:7;13319:15;13336;13355:19;:17;:19::i;:::-;13318:56;;;;13384:20;13396:7;13384;:11;;:20;;;;:::i;:::-;13377:27;;;;13264:144;:::o;2858:120::-;2916:7;2935:39;2939:1;2942;2935:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2928:46;;2858:120;;;;:::o;7510:175::-;7562:1;7549:9;;:14;:30;;;;;7578:1;7567:7;;:12;7549:30;7545:43;;;7581:7;;7545:43;7612:9;;7592:17;:29;;;;7642:7;;7624:15;:25;;;;7666:1;7654:9;:13;;;;7680:1;7670:7;:11;;;;7510:175;:::o;11285:450::-;11384:15;11402:23;11428:12;11443:23;11469:12;11484:13;11503:19;11514:7;11503:10;:19::i;:::-;11381:141;;;;;;;;;;;;11543:28;11563:7;11543;:15;11551:6;11543:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11525:7;:15;11533:6;11525:15;;;;;;;;;;;;;;;:46;;;;11595:39;11618:15;11595:7;:18;11603:9;11595:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11574:7;:18;11582:9;11574:18;;;;;;;;;;;;;;;:60;;;;11637:16;11647:5;11637:9;:16::i;:::-;11656:23;11668:4;11674;11656:11;:23::i;:::-;11704:9;11687:44;;11696:6;11687:44;;;11715:15;11687:44;;;;;;:::i;:::-;;;;;;;;11378:357;;;;;;11285:450;;;:::o;7689:97::-;7737:17;;7725:9;:29;;;;7767:15;;7757:7;:25;;;;7689:97::o;13412:221::-;13463:7;13472;13484:15;13502:7;;13484:25;;13512:15;4352;13512:25;;13554:20;4352:15;13554:7;;:11;;:20;;;;:::i;:::-;13544:7;:30;13540:61;;;13584:7;;4352:15;13576:25;;;;;;;;13540:61;13612:7;13621;13604:25;;;;;;13412:221;;;:::o;2982:167::-;3074:7;3098:1;3094;:5;3101:12;3086:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3117:9;3133:1;3129;:5;;;;:::i;:::-;3117:17;;3144:1;3137:8;;;2982:167;;;;;:::o;12090:447::-;12154:7;12164;12174;12184;12194;12204;12220:23;12245:12;12259:13;12277:40;12289:7;12298:9;;12309:7;;12277:11;:40::i;:::-;12219:98;;;;;;12320:19;12342:10;:8;:10::i;:::-;12320:32;;12356:15;12373:23;12398:12;12415:46;12427:7;12436:4;12442:5;12449:11;12415;:46::i;:::-;12355:106;;;;;;12472:7;12481:15;12498:4;12504:15;12521:4;12527:5;12464:69;;;;;;;;;;;;;;;;;;;12090:447;;;;;;;:::o;2364:124::-;2422:7;2441:43;2445:1;2448;2441:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2434:50;;2364:124;;;;:::o;2209:151::-;2267:7;2279:9;2295:1;2291;:5;;;;:::i;:::-;2279:17;;2312:1;2307;:6;;2299:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2355:1;2348:8;;;2209:151;;;;:::o;11739:183::-;11784:19;11806:10;:8;:10::i;:::-;11784:32;;11819:13;11835:22;11845:11;11835:5;:9;;:22;;;;:::i;:::-;11819:38;;11885:33;11912:5;11885:7;:22;11901:4;11885:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11860:7;:22;11876:4;11860:22;;;;;;;;;;;;;;;:58;;;;11781:141;;11739:183;:::o;11926:127::-;11996:17;12008:4;11996:7;;:11;;:17;;;;:::i;:::-;11986:7;:27;;;;12029:20;12044:4;12029:10;;:14;;:20;;;;:::i;:::-;12016:10;:33;;;;11926:127;;:::o;12541:333::-;12646:7;12656;12666;12681:12;12696:30;12722:3;12696:21;12708:8;12696:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;12681:45;;12729:13;12745:28;12769:3;12745:19;12757:6;12745:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12729:44;;12776:23;12802:28;12824:5;12802:17;12814:4;12802:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12776:54;;12841:15;12858:4;12864:5;12833:37;;;;;;;;;12541:333;;;;;;;:::o;12878:382::-;13000:7;13010;13020;13035:15;13053:24;13065:11;13053:7;:11;;:24;;;;:::i;:::-;13035:42;;13080:12;13095:21;13104:11;13095:4;:8;;:21;;;;:::i;:::-;13080:36;;13119:13;13135:22;13145:11;13135:5;:9;;:22;;;;:::i;:::-;13119:38;;13160:23;13186:28;13208:5;13186:17;13198:4;13186:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13160:54;;13225:7;13234:15;13251:4;13217:39;;;;;;;;;;12878:382;;;;;;;;:::o;2664:190::-;2722:7;2743:1;2738;:6;2734:27;;;2756:1;2749:8;;;;2734:27;2763:9;2779:1;2775;:5;;;;:::i;:::-;2763:17;;2800:1;2795;2791;:5;;;;:::i;:::-;:10;2783:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2849:1;2842:8;;;2664: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;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::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:117::-;5983:1;5980;5973:12;5997:180;6045:77;6042:1;6035:88;6142:4;6139:1;6132:15;6166:4;6163:1;6156:15;6183:281;6266:27;6288:4;6266:27;:::i;:::-;6258:6;6254:40;6396:6;6384:10;6381:22;6360:18;6348:10;6345:34;6342:62;6339:88;;;6407:18;;:::i;:::-;6339:88;6447:10;6443:2;6436:22;6226:238;6183:281;;:::o;6470:129::-;6504:6;6531:20;;:::i;:::-;6521:30;;6560:33;6588:4;6580:6;6560:33;:::i;:::-;6470:129;;;:::o;6605:311::-;6682:4;6772:18;6764:6;6761:30;6758:56;;;6794:18;;:::i;:::-;6758:56;6844:4;6836:6;6832:17;6824:25;;6904:4;6898;6894:15;6886:23;;6605:311;;;:::o;6922:117::-;7031:1;7028;7021:12;7062:710;7158:5;7183:81;7199:64;7256:6;7199:64;:::i;:::-;7183:81;:::i;:::-;7174:90;;7284:5;7313:6;7306:5;7299:21;7347:4;7340:5;7336:16;7329:23;;7400:4;7392:6;7388:17;7380:6;7376:30;7429:3;7421:6;7418:15;7415:122;;;7448:79;;:::i;:::-;7415:122;7563:6;7546:220;7580:6;7575:3;7572:15;7546:220;;;7655:3;7684:37;7717:3;7705:10;7684:37;:::i;:::-;7679:3;7672:50;7751:4;7746:3;7742:14;7735:21;;7622:144;7606:4;7601:3;7597:14;7590:21;;7546:220;;;7550:21;7164:608;;7062:710;;;;;:::o;7795:370::-;7866:5;7915:3;7908:4;7900:6;7896:17;7892:27;7882:122;;7923:79;;:::i;:::-;7882:122;8040:6;8027:20;8065:94;8155:3;8147:6;8140:4;8132:6;8128:17;8065:94;:::i;:::-;8056:103;;7872:293;7795:370;;;;:::o;8171:539::-;8255:6;8304:2;8292:9;8283:7;8279:23;8275:32;8272:119;;;8310:79;;:::i;:::-;8272:119;8458:1;8447:9;8443:17;8430:31;8488:18;8480:6;8477:30;8474:117;;;8510:79;;:::i;:::-;8474:117;8615:78;8685:7;8676:6;8665:9;8661:22;8615:78;:::i;:::-;8605:88;;8401:302;8171:539;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:116::-;9138:21;9153:5;9138:21;:::i;:::-;9131:5;9128:32;9118:60;;9174:1;9171;9164:12;9118:60;9068:116;:::o;9190:133::-;9233:5;9271:6;9258:20;9249:29;;9287:30;9311:5;9287:30;:::i;:::-;9190:133;;;;:::o;9329:323::-;9385:6;9434:2;9422:9;9413:7;9409:23;9405:32;9402:119;;;9440:79;;:::i;:::-;9402:119;9560:1;9585:50;9627:7;9618:6;9607:9;9603:22;9585:50;:::i;:::-;9575:60;;9531:114;9329:323;;;;:::o;9658:329::-;9717:6;9766:2;9754:9;9745:7;9741:23;9737:32;9734:119;;;9772:79;;:::i;:::-;9734:119;9892:1;9917:53;9962:7;9953:6;9942:9;9938:22;9917:53;:::i;:::-;9907:63;;9863:117;9658:329;;;;:::o;9993:::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:765::-;10414:6;10422;10430;10438;10487:3;10475:9;10466:7;10462:23;10458:33;10455:120;;;10494:79;;:::i;:::-;10455:120;10614:1;10639:53;10684:7;10675:6;10664:9;10660:22;10639:53;:::i;:::-;10629:63;;10585:117;10741:2;10767:53;10812:7;10803:6;10792:9;10788:22;10767:53;:::i;:::-;10757:63;;10712:118;10869:2;10895:53;10940:7;10931:6;10920:9;10916:22;10895:53;:::i;:::-;10885:63;;10840:118;10997:2;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10968:118;10328:765;;;;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:104::-;12562:7;12591:24;12609:5;12591:24;:::i;:::-;12580:35;;12517:104;;;:::o;12627:142::-;12730:32;12756:5;12730:32;:::i;:::-;12725:3;12718:45;12627:142;;:::o;12775:254::-;12884:4;12922:2;12911:9;12907:18;12899:26;;12935:87;13019:1;13008:9;13004:17;12995:6;12935:87;:::i;:::-;12775:254;;;;:::o;13035:474::-;13103:6;13111;13160:2;13148:9;13139:7;13135:23;13131:32;13128:119;;;13166:79;;:::i;:::-;13128:119;13286:1;13311:53;13356:7;13347:6;13336:9;13332:22;13311:53;:::i;:::-;13301:63;;13257:117;13413:2;13439:53;13484:7;13475:6;13464:9;13460:22;13439:53;:::i;:::-;13429:63;;13384:118;13035:474;;;;;:::o;13515:182::-;13655:34;13651:1;13643:6;13639:14;13632:58;13515:182;:::o;13703:366::-;13845:3;13866:67;13930:2;13925:3;13866:67;:::i;:::-;13859:74;;13942:93;14031:3;13942:93;:::i;:::-;14060:2;14055:3;14051:12;14044:19;;13703:366;;;:::o;14075:419::-;14241:4;14279:2;14268:9;14264:18;14256:26;;14328:9;14322:4;14318:20;14314:1;14303:9;14299:17;14292:47;14356:131;14482:4;14356:131;:::i;:::-;14348:139;;14075:419;;;:::o;14500:180::-;14548:77;14545:1;14538:88;14645:4;14642:1;14635:15;14669:4;14666:1;14659:15;14686:180;14734:77;14731:1;14724:88;14831:4;14828:1;14821:15;14855:4;14852:1;14845:15;14872:233;14911:3;14934:24;14952:5;14934:24;:::i;:::-;14925:33;;14980:66;14973:5;14970:77;14967:103;;;15050:18;;:::i;:::-;14967:103;15097:1;15090:5;15086:13;15079:20;;14872:233;;;:::o;15111:225::-;15251:34;15247:1;15239:6;15235:14;15228:58;15320:8;15315:2;15307:6;15303:15;15296:33;15111:225;:::o;15342:366::-;15484:3;15505:67;15569:2;15564:3;15505:67;:::i;:::-;15498:74;;15581:93;15670:3;15581:93;:::i;:::-;15699:2;15694:3;15690:12;15683:19;;15342:366;;;:::o;15714:419::-;15880:4;15918:2;15907:9;15903:18;15895:26;;15967:9;15961:4;15957:20;15953:1;15942:9;15938:17;15931:47;15995:131;16121:4;15995:131;:::i;:::-;15987:139;;15714:419;;;:::o;16139:223::-;16279:34;16275:1;16267:6;16263:14;16256:58;16348:6;16343:2;16335:6;16331:15;16324:31;16139:223;:::o;16368:366::-;16510:3;16531:67;16595:2;16590:3;16531:67;:::i;:::-;16524:74;;16607:93;16696:3;16607:93;:::i;:::-;16725:2;16720:3;16716:12;16709:19;;16368:366;;;:::o;16740:419::-;16906:4;16944:2;16933:9;16929:18;16921:26;;16993:9;16987:4;16983:20;16979:1;16968:9;16964:17;16957:47;17021:131;17147:4;17021:131;:::i;:::-;17013:139;;16740:419;;;:::o;17165:221::-;17305:34;17301:1;17293:6;17289:14;17282:58;17374:4;17369:2;17361:6;17357:15;17350:29;17165:221;:::o;17392:366::-;17534:3;17555:67;17619:2;17614:3;17555:67;:::i;:::-;17548:74;;17631:93;17720:3;17631:93;:::i;:::-;17749:2;17744:3;17740:12;17733:19;;17392:366;;;:::o;17764:419::-;17930:4;17968:2;17957:9;17953:18;17945:26;;18017:9;18011:4;18007:20;18003:1;17992:9;17988:17;17981:47;18045:131;18171:4;18045:131;:::i;:::-;18037:139;;17764:419;;;:::o;18189:224::-;18329:34;18325:1;18317:6;18313:14;18306:58;18398:7;18393:2;18385:6;18381:15;18374:32;18189:224;:::o;18419:366::-;18561:3;18582:67;18646:2;18641:3;18582:67;:::i;:::-;18575:74;;18658:93;18747:3;18658:93;:::i;:::-;18776:2;18771:3;18767:12;18760:19;;18419:366;;;:::o;18791:419::-;18957:4;18995:2;18984:9;18980:18;18972:26;;19044:9;19038:4;19034:20;19030:1;19019:9;19015:17;19008:47;19072:131;19198:4;19072:131;:::i;:::-;19064:139;;18791:419;;;:::o;19216:222::-;19356:34;19352:1;19344:6;19340:14;19333:58;19425:5;19420:2;19412:6;19408:15;19401:30;19216:222;:::o;19444:366::-;19586:3;19607:67;19671:2;19666:3;19607:67;:::i;:::-;19600:74;;19683:93;19772:3;19683:93;:::i;:::-;19801:2;19796:3;19792:12;19785:19;;19444:366;;;:::o;19816:419::-;19982:4;20020:2;20009:9;20005:18;19997:26;;20069:9;20063:4;20059:20;20055:1;20044:9;20040:17;20033:47;20097:131;20223:4;20097:131;:::i;:::-;20089:139;;19816:419;;;:::o;20241:228::-;20381:34;20377:1;20369:6;20365:14;20358:58;20450:11;20445:2;20437:6;20433:15;20426:36;20241:228;:::o;20475:366::-;20617:3;20638:67;20702:2;20697:3;20638:67;:::i;:::-;20631:74;;20714:93;20803:3;20714:93;:::i;:::-;20832:2;20827:3;20823:12;20816:19;;20475:366;;;:::o;20847:419::-;21013:4;21051:2;21040:9;21036:18;21028:26;;21100:9;21094:4;21090:20;21086:1;21075:9;21071:17;21064:47;21128:131;21254:4;21128:131;:::i;:::-;21120:139;;20847:419;;;:::o;21272:250::-;21412:34;21408:1;21400:6;21396:14;21389:58;21481:33;21476:2;21468:6;21464:15;21457:58;21272:250;:::o;21528:366::-;21670:3;21691:67;21755:2;21750:3;21691:67;:::i;:::-;21684:74;;21767:93;21856:3;21767:93;:::i;:::-;21885:2;21880:3;21876:12;21869:19;;21528:366;;;:::o;21900:419::-;22066:4;22104:2;22093:9;22089:18;22081:26;;22153:9;22147:4;22143:20;22139:1;22128:9;22124:17;22117:47;22181:131;22307:4;22181:131;:::i;:::-;22173:139;;21900:419;;;:::o;22325:178::-;22465:30;22461:1;22453:6;22449:14;22442:54;22325:178;:::o;22509:366::-;22651:3;22672:67;22736:2;22731:3;22672:67;:::i;:::-;22665:74;;22748:93;22837:3;22748:93;:::i;:::-;22866:2;22861:3;22857:12;22850:19;;22509:366;;;:::o;22881:419::-;23047:4;23085:2;23074:9;23070:18;23062:26;;23134:9;23128:4;23124:20;23120:1;23109:9;23105:17;23098:47;23162:131;23288:4;23162:131;:::i;:::-;23154:139;;22881:419;;;:::o;23306:222::-;23446:34;23442:1;23434:6;23430:14;23423:58;23515:5;23510:2;23502:6;23498:15;23491:30;23306:222;:::o;23534:366::-;23676:3;23697:67;23761:2;23756:3;23697:67;:::i;:::-;23690:74;;23773:93;23862:3;23773:93;:::i;:::-;23891:2;23886:3;23882:12;23875:19;;23534:366;;;:::o;23906:419::-;24072:4;24110:2;24099:9;24095:18;24087:26;;24159:9;24153:4;24149:20;24145:1;24134:9;24130:17;24123:47;24187:131;24313:4;24187:131;:::i;:::-;24179:139;;23906:419;;;:::o;24331:305::-;24371:3;24390:20;24408:1;24390:20;:::i;:::-;24385:25;;24424:20;24442:1;24424:20;:::i;:::-;24419:25;;24578:1;24510:66;24506:74;24503:1;24500:81;24497:107;;;24584:18;;:::i;:::-;24497:107;24628:1;24625;24621:9;24614:16;;24331:305;;;;:::o;24642:222::-;24782:34;24778:1;24770:6;24766:14;24759:58;24851:5;24846:2;24838:6;24834:15;24827:30;24642:222;:::o;24870:366::-;25012:3;25033:67;25097:2;25092:3;25033:67;:::i;:::-;25026:74;;25109:93;25198:3;25109:93;:::i;:::-;25227:2;25222:3;25218:12;25211:19;;24870:366;;;:::o;25242:419::-;25408:4;25446:2;25435:9;25431:18;25423:26;;25495:9;25489:4;25485:20;25481:1;25470:9;25466:17;25459:47;25523:131;25649:4;25523:131;:::i;:::-;25515:139;;25242:419;;;:::o;25667:191::-;25707:4;25727:20;25745:1;25727:20;:::i;:::-;25722:25;;25761:20;25779:1;25761:20;:::i;:::-;25756:25;;25800:1;25797;25794:8;25791:34;;;25805:18;;:::i;:::-;25791:34;25850:1;25847;25843:9;25835:17;;25667:191;;;;:::o;25864:229::-;26004:34;26000:1;25992:6;25988:14;25981:58;26073:12;26068:2;26060:6;26056:15;26049:37;25864:229;:::o;26099:366::-;26241:3;26262:67;26326:2;26321:3;26262:67;:::i;:::-;26255:74;;26338:93;26427:3;26338:93;:::i;:::-;26456:2;26451:3;26447:12;26440:19;;26099:366;;;:::o;26471:419::-;26637:4;26675:2;26664:9;26660:18;26652:26;;26724:9;26718:4;26714:20;26710:1;26699:9;26695:17;26688:47;26752:131;26878:4;26752:131;:::i;:::-;26744:139;;26471:419;;;:::o;26896:143::-;26953:5;26984:6;26978:13;26969:22;;27000:33;27027:5;27000:33;:::i;:::-;26896:143;;;;:::o;27045:351::-;27115:6;27164:2;27152:9;27143:7;27139:23;27135:32;27132:119;;;27170:79;;:::i;:::-;27132:119;27290:1;27315:64;27371:7;27362:6;27351:9;27347:22;27315:64;:::i;:::-;27305:74;;27261:128;27045:351;;;;:::o;27402:85::-;27447:7;27476:5;27465:16;;27402:85;;;:::o;27493:158::-;27551:9;27584:61;27602:42;27611:32;27637:5;27611:32;:::i;:::-;27602:42;:::i;:::-;27584:61;:::i;:::-;27571:74;;27493:158;;;:::o;27657:147::-;27752:45;27791:5;27752:45;:::i;:::-;27747:3;27740:58;27657:147;;:::o;27810:114::-;27877:6;27911:5;27905:12;27895:22;;27810:114;;;:::o;27930:184::-;28029:11;28063:6;28058:3;28051:19;28103:4;28098:3;28094:14;28079:29;;27930:184;;;;:::o;28120:132::-;28187:4;28210:3;28202:11;;28240:4;28235:3;28231:14;28223:22;;28120:132;;;:::o;28258:108::-;28335:24;28353:5;28335:24;:::i;:::-;28330:3;28323:37;28258:108;;:::o;28372:179::-;28441:10;28462:46;28504:3;28496:6;28462:46;:::i;:::-;28540:4;28535:3;28531:14;28517:28;;28372:179;;;;:::o;28557:113::-;28627:4;28659;28654:3;28650:14;28642:22;;28557:113;;;:::o;28706:732::-;28825:3;28854:54;28902:5;28854:54;:::i;:::-;28924:86;29003:6;28998:3;28924:86;:::i;:::-;28917:93;;29034:56;29084:5;29034:56;:::i;:::-;29113:7;29144:1;29129:284;29154:6;29151:1;29148:13;29129:284;;;29230:6;29224:13;29257:63;29316:3;29301:13;29257:63;:::i;:::-;29250:70;;29343:60;29396:6;29343:60;:::i;:::-;29333:70;;29189:224;29176:1;29173;29169:9;29164:14;;29129:284;;;29133:14;29429:3;29422:10;;28830:608;;;28706:732;;;;:::o;29444:831::-;29707:4;29745:3;29734:9;29730:19;29722:27;;29759:71;29827:1;29816:9;29812:17;29803:6;29759:71;:::i;:::-;29840:80;29916:2;29905:9;29901:18;29892:6;29840:80;:::i;:::-;29967:9;29961:4;29957:20;29952:2;29941:9;29937:18;29930:48;29995:108;30098:4;30089:6;29995:108;:::i;:::-;29987:116;;30113:72;30181:2;30170:9;30166:18;30157:6;30113:72;:::i;:::-;30195:73;30263:3;30252:9;30248:19;30239:6;30195:73;:::i;:::-;29444:831;;;;;;;;:::o;30281:180::-;30329:77;30326:1;30319:88;30426:4;30423:1;30416:15;30450:4;30447:1;30440:15;30467:185;30507:1;30524:20;30542:1;30524:20;:::i;:::-;30519:25;;30558:20;30576:1;30558:20;:::i;:::-;30553:25;;30597:1;30587:35;;30602:18;;:::i;:::-;30587:35;30644:1;30641;30637:9;30632:14;;30467:185;;;;:::o;30658:177::-;30798:29;30794:1;30786:6;30782:14;30775:53;30658:177;:::o;30841:366::-;30983:3;31004:67;31068:2;31063:3;31004:67;:::i;:::-;30997:74;;31080:93;31169:3;31080:93;:::i;:::-;31198:2;31193:3;31189:12;31182:19;;30841:366;;;:::o;31213:419::-;31379:4;31417:2;31406:9;31402:18;31394:26;;31466:9;31460:4;31456:20;31452:1;31441:9;31437:17;31430:47;31494:131;31620:4;31494:131;:::i;:::-;31486:139;;31213:419;;;:::o;31638:348::-;31678:7;31701:20;31719:1;31701:20;:::i;:::-;31696:25;;31735:20;31753:1;31735:20;:::i;:::-;31730:25;;31923:1;31855:66;31851:74;31848:1;31845:81;31840:1;31833:9;31826:17;31822:105;31819:131;;;31930:18;;:::i;:::-;31819:131;31978:1;31975;31971:9;31960:20;;31638:348;;;;:::o;31992:220::-;32132:34;32128:1;32120:6;32116:14;32109:58;32201:3;32196:2;32188:6;32184:15;32177:28;31992:220;:::o;32218:366::-;32360:3;32381:67;32445:2;32440:3;32381:67;:::i;:::-;32374:74;;32457:93;32546:3;32457:93;:::i;:::-;32575:2;32570:3;32566:12;32559:19;;32218:366;;;:::o;32590:419::-;32756:4;32794:2;32783:9;32779:18;32771:26;;32843:9;32837:4;32833:20;32829:1;32818:9;32814:17;32807:47;32871:131;32997:4;32871:131;:::i;:::-;32863:139;;32590:419;;;:::o
Swarm Source
ipfs://9ca9d8ea46ee2c88cf224b9932c5be152ec86c22677ad14e015252f6cf0d20b9
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.