Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 $Z
Holders
35
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
967,325.484852678 $ZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SHIZEN
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-03 */ /** Telegram https://t.me/shizencommunityerc */ // 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 SHIZEN is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Shi Zen "; string private constant _symbol = "$Z"; 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 = 100000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 0; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; address payable private _developmentAddress = payable(0xaDC7790B7da6b788c2670F18407a0694Ef27AD07); address payable private _marketingAddress = payable(0xaDC7790B7da6b788c2670F18407a0694Ef27AD07); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 100000 * 10**9; uint256 public _maxWalletSize = 100000 * 10**9; uint256 public _swapTokensAtAmount = 150000 * 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 >= _swapTokensAtAmount*4) { contractTokenBalance = _swapTokensAtAmount*4; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 50000000000000000) { 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 manualsend() external { uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(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; require ((_redisFeeOnBuy+_redisFeeOnSell+_taxFeeOnBuy+_taxFeeOnSell) <= 25); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; require (_swapTokensAtAmount <=_tTotal/100); } //Set maximum transaction & Wallet function setMaxTxAndWalletAmount(uint256 maxTxAmount,uint256 maxWalletSize) public onlyOwner { _maxTxAmount = maxTxAmount; _maxWalletSize = maxWalletSize; require (_maxTxAmount >= _tTotal/1000 && _maxWalletSize >= _tTotal/1000); } }
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":[],"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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","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":[],"name":"manualsend","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"},{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxTxAndWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405267016345785d8a00006000196200001c919062000727565b6000196200002b91906200078e565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f5573adc7790b7da6b788c2670f18407a0694ef27ad07601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073adc7790b7da6b788c2670f18407a0694ef27ad07601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550655af3107a4000601555655af3107a400060165565886c98b760006017553480156200017f57600080fd5b50600062000192620006bd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000247620006bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000351919062000833565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003df919062000833565b6040518363ffffffff1660e01b8152600401620003fe92919062000876565b6020604051808303816000875af11580156200041e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000444919062000833565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049a620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000647620006bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006ae9190620008b4565b60405180910390a350620008d1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073482620006ee565b91506200074183620006ee565b925082620007545762000753620006f8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079b82620006ee565b9150620007a883620006ee565b925082821015620007be57620007bd6200075f565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fb82620007ce565b9050919050565b6200080d81620007ee565b81146200081957600080fd5b50565b6000815190506200082d8162000802565b92915050565b6000602082840312156200084c576200084b620007c9565b5b60006200085c848285016200081c565b91505092915050565b6200087081620007ee565b82525050565b60006040820190506200088d600083018562000865565b6200089c602083018462000865565b9392505050565b620008ae81620006ee565b82525050565b6000602082019050620008cb6000830184620008a3565b92915050565b61375180620008e16000396000f3fe60806040526004361061014e5760003560e01c8063715018a6116100b6578063a2a957bb1161006f578063a2a957bb14610468578063a9059cbb14610491578063b74248dc146104ce578063bfd79284146104f7578063dd62ed3e14610534578063f2fde38b1461057157610155565b8063715018a61461037c5780637d1db4a5146103935780638da5cb5b146103be5780638f9a55c0146103e957806395d89b411461041457806398a5c3151461043f57610155565b80632fd689e3116101085780632fd689e31461027e578063313ce567146102a957806349bd5a5e146102d45780636b999053146102ff5780636fc3eaec1461032857806370a082311461033f57610155565b8062b8cf2a1461015a57806306fdde0314610183578063095ea7b3146101ae5780631694505e146101eb57806318160ddd1461021657806323b872dd1461024157610155565b3661015557005b600080fd5b34801561016657600080fd5b50610181600480360381019061017c91906127b2565b61059a565b005b34801561018f57600080fd5b506101986106c4565b6040516101a59190612883565b60405180910390f35b3480156101ba57600080fd5b506101d560048036038101906101d091906128db565b610701565b6040516101e29190612936565b60405180910390f35b3480156101f757600080fd5b5061020061071f565b60405161020d91906129b0565b60405180910390f35b34801561022257600080fd5b5061022b610745565b60405161023891906129da565b60405180910390f35b34801561024d57600080fd5b50610268600480360381019061026391906129f5565b610755565b6040516102759190612936565b60405180910390f35b34801561028a57600080fd5b5061029361082e565b6040516102a091906129da565b60405180910390f35b3480156102b557600080fd5b506102be610834565b6040516102cb9190612a64565b60405180910390f35b3480156102e057600080fd5b506102e961083d565b6040516102f69190612a8e565b60405180910390f35b34801561030b57600080fd5b5061032660048036038101906103219190612aa9565b610863565b005b34801561033457600080fd5b5061033d610953565b005b34801561034b57600080fd5b5061036660048036038101906103619190612aa9565b610964565b60405161037391906129da565b60405180910390f35b34801561038857600080fd5b506103916109b5565b005b34801561039f57600080fd5b506103a8610b08565b6040516103b591906129da565b60405180910390f35b3480156103ca57600080fd5b506103d3610b0e565b6040516103e09190612a8e565b60405180910390f35b3480156103f557600080fd5b506103fe610b37565b60405161040b91906129da565b60405180910390f35b34801561042057600080fd5b50610429610b3d565b6040516104369190612883565b60405180910390f35b34801561044b57600080fd5b5061046660048036038101906104619190612ad6565b610b7a565b005b34801561047457600080fd5b5061048f600480360381019061048a9190612b03565b610c3c565b005b34801561049d57600080fd5b506104b860048036038101906104b391906128db565b610d2a565b6040516104c59190612936565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190612b6a565b610d48565b005b34801561050357600080fd5b5061051e60048036038101906105199190612aa9565b610e36565b60405161052b9190612936565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190612baa565b610e56565b60405161056891906129da565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190612aa9565b610edd565b005b6105a261109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690612c36565b60405180910390fd5b60005b81518110156106c05760016010600084848151811061065457610653612c56565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106b890612cb4565b915050610632565b5050565b60606040518060400160405280600881526020017f536869205a656e20000000000000000000000000000000000000000000000000815250905090565b600061071561070e61109e565b84846110a6565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061076284848461126f565b6108238461076e61109e565b61081e856040518060600160405280602881526020016136f460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d461109e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b109092919063ffffffff16565b6110a6565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61086b61109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef90612c36565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600047905061096181611b74565b50565b60006109ae600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be0565b9050919050565b6109bd61109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190612c36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600281526020017f245a000000000000000000000000000000000000000000000000000000000000815250905090565b610b8261109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612c36565b60405180910390fd5b80601781905550606467016345785d8a0000610c2b9190612d2b565b6017541115610c3957600080fd5b50565b610c4461109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612c36565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506019600b54600954600a54600854610d059190612d5c565b610d0f9190612d5c565b610d199190612d5c565b1115610d2457600080fd5b50505050565b6000610d3e610d3761109e565b848461126f565b6001905092915050565b610d5061109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490612c36565b60405180910390fd5b81601581905550806016819055506103e867016345785d8a0000610e019190612d2b565b60155410158015610e2957506103e867016345785d8a0000610e239190612d2b565b60165410155b610e3257600080fd5b5050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ee561109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612c36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612e24565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612eb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612f48565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126291906129da565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590612fda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113449061306c565b60405180910390fd5b60008111611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611387906130fe565b60405180910390fd5b611398610b0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140657506113d6610b0e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561180f5760148054906101000a900460ff1661149357611425610b0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990613190565b60405180910390fd5b5b6015548111156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf906131fc565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561157c5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b29061328e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611668576016548161161d84610964565b6116279190612d5c565b10611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90613320565b60405180910390fd5b5b600061167330610964565b905060006017548210159050600460175461168e9190613340565b82106116a65760046017546116a39190613340565b91505b8080156116c05750601460159054906101000a900460ff16155b801561171a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117325750601460169054906101000a900460ff165b80156117885750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117de5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561180c576117ec82611c4e565b600047905066b1a2bc2ec5000081111561180a5761180947611b74565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118b65750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119695750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119685750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156119775760009050611afe565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a225750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a3a57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ae55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611afd57600a54600c81905550600b54600d819055505b5b611b0a84848484611ec7565b50505050565b6000838311158290611b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4f9190612883565b60405180910390fd5b5060008385611b67919061339a565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bdc573d6000803e3d6000fd5b5050565b6000600654821115611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613440565b60405180910390fd5b6000611c31611ef4565b9050611c468184611f1f90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c8657611c85612611565b5b604051908082528060200260200182016040528015611cb45781602001602082028036833780820191505090505b5090503081600081518110611ccc57611ccb612c56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190613475565b81600181518110611dab57611daa612c56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110a6565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e7695949392919061359b565b600060405180830381600087803b158015611e9057600080fd5b505af1158015611ea4573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80611ed557611ed4611f69565b5b611ee0848484611fa6565b80611eee57611eed612171565b5b50505050565b6000806000611f01612185565b91509150611f188183611f1f90919063ffffffff16565b9250505090565b6000611f6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e4565b905092915050565b6000600c54148015611f7d57506000600d54145b611fa457600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611fb887612247565b95509550955095509550955061201686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122af90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ab85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120f781612357565b6121018483612414565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161215e91906129da565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a000090506121b967016345785d8a0000600654611f1f90919063ffffffff16565b8210156121d75760065467016345785d8a00009350935050506121e0565b81819350935050505b9091565b6000808311829061222b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122229190612883565b60405180910390fd5b506000838561223a9190612d2b565b9050809150509392505050565b60008060008060008060008060006122648a600c54600d5461244e565b9250925092506000612274611ef4565b905060008060006122878e8787876124e4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122f183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b10565b905092915050565b60008082846123089190612d5c565b90508381101561234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613641565b60405180910390fd5b8091505092915050565b6000612361611ef4565b90506000612378828461256d90919063ffffffff16565b90506123cc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612429826006546122af90919063ffffffff16565b600681905550612444816007546122f990919063ffffffff16565b6007819055505050565b60008060008061247a606461246c888a61256d90919063ffffffff16565b611f1f90919063ffffffff16565b905060006124a46064612496888b61256d90919063ffffffff16565b611f1f90919063ffffffff16565b905060006124cd826124bf858c6122af90919063ffffffff16565b6122af90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fd858961256d90919063ffffffff16565b90506000612514868961256d90919063ffffffff16565b9050600061252b878961256d90919063ffffffff16565b905060006125548261254685876122af90919063ffffffff16565b6122af90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361257f57600090506125e1565b6000828461258d9190613340565b905082848261259c9190612d2b565b146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906136d3565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61264982612600565b810181811067ffffffffffffffff8211171561266857612667612611565b5b80604052505050565b600061267b6125e7565b90506126878282612640565b919050565b600067ffffffffffffffff8211156126a7576126a6612611565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126e8826126bd565b9050919050565b6126f8816126dd565b811461270357600080fd5b50565b600081359050612715816126ef565b92915050565b600061272e6127298461268c565b612671565b90508083825260208201905060208402830185811115612751576127506126b8565b5b835b8181101561277a57806127668882612706565b845260208401935050602081019050612753565b5050509392505050565b600082601f830112612799576127986125fb565b5b81356127a984826020860161271b565b91505092915050565b6000602082840312156127c8576127c76125f1565b5b600082013567ffffffffffffffff8111156127e6576127e56125f6565b5b6127f284828501612784565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561283557808201518184015260208101905061281a565b83811115612844576000848401525b50505050565b6000612855826127fb565b61285f8185612806565b935061286f818560208601612817565b61287881612600565b840191505092915050565b6000602082019050818103600083015261289d818461284a565b905092915050565b6000819050919050565b6128b8816128a5565b81146128c357600080fd5b50565b6000813590506128d5816128af565b92915050565b600080604083850312156128f2576128f16125f1565b5b600061290085828601612706565b9250506020612911858286016128c6565b9150509250929050565b60008115159050919050565b6129308161291b565b82525050565b600060208201905061294b6000830184612927565b92915050565b6000819050919050565b600061297661297161296c846126bd565b612951565b6126bd565b9050919050565b60006129888261295b565b9050919050565b600061299a8261297d565b9050919050565b6129aa8161298f565b82525050565b60006020820190506129c560008301846129a1565b92915050565b6129d4816128a5565b82525050565b60006020820190506129ef60008301846129cb565b92915050565b600080600060608486031215612a0e57612a0d6125f1565b5b6000612a1c86828701612706565b9350506020612a2d86828701612706565b9250506040612a3e868287016128c6565b9150509250925092565b600060ff82169050919050565b612a5e81612a48565b82525050565b6000602082019050612a796000830184612a55565b92915050565b612a88816126dd565b82525050565b6000602082019050612aa36000830184612a7f565b92915050565b600060208284031215612abf57612abe6125f1565b5b6000612acd84828501612706565b91505092915050565b600060208284031215612aec57612aeb6125f1565b5b6000612afa848285016128c6565b91505092915050565b60008060008060808587031215612b1d57612b1c6125f1565b5b6000612b2b878288016128c6565b9450506020612b3c878288016128c6565b9350506040612b4d878288016128c6565b9250506060612b5e878288016128c6565b91505092959194509250565b60008060408385031215612b8157612b806125f1565b5b6000612b8f858286016128c6565b9250506020612ba0858286016128c6565b9150509250929050565b60008060408385031215612bc157612bc06125f1565b5b6000612bcf85828601612706565b9250506020612be085828601612706565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c20602083612806565b9150612c2b82612bea565b602082019050919050565b60006020820190508181036000830152612c4f81612c13565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cbf826128a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cf157612cf0612c85565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d36826128a5565b9150612d41836128a5565b925082612d5157612d50612cfc565b5b828204905092915050565b6000612d67826128a5565b9150612d72836128a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da757612da6612c85565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e0e602683612806565b9150612e1982612db2565b604082019050919050565b60006020820190508181036000830152612e3d81612e01565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ea0602483612806565b9150612eab82612e44565b604082019050919050565b60006020820190508181036000830152612ecf81612e93565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f32602283612806565b9150612f3d82612ed6565b604082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fc4602583612806565b9150612fcf82612f68565b604082019050919050565b60006020820190508181036000830152612ff381612fb7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613056602383612806565b915061306182612ffa565b604082019050919050565b6000602082019050818103600083015261308581613049565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130e8602983612806565b91506130f38261308c565b604082019050919050565b60006020820190508181036000830152613117816130db565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061317a603f83612806565b91506131858261311e565b604082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006131e6601c83612806565b91506131f1826131b0565b602082019050919050565b60006020820190508181036000830152613215816131d9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613278602383612806565b91506132838261321c565b604082019050919050565b600060208201905081810360008301526132a78161326b565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061330a602383612806565b9150613315826132ae565b604082019050919050565b60006020820190508181036000830152613339816132fd565b9050919050565b600061334b826128a5565b9150613356836128a5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561338f5761338e612c85565b5b828202905092915050565b60006133a5826128a5565b91506133b0836128a5565b9250828210156133c3576133c2612c85565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061342a602a83612806565b9150613435826133ce565b604082019050919050565b600060208201905081810360008301526134598161341d565b9050919050565b60008151905061346f816126ef565b92915050565b60006020828403121561348b5761348a6125f1565b5b600061349984828501613460565b91505092915050565b6000819050919050565b60006134c76134c26134bd846134a2565b612951565b6128a5565b9050919050565b6134d7816134ac565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613512816126dd565b82525050565b60006135248383613509565b60208301905092915050565b6000602082019050919050565b6000613548826134dd565b61355281856134e8565b935061355d836134f9565b8060005b8381101561358e5781516135758882613518565b975061358083613530565b925050600181019050613561565b5085935050505092915050565b600060a0820190506135b060008301886129cb565b6135bd60208301876134ce565b81810360408301526135cf818661353d565b90506135de6060830185612a7f565b6135eb60808301846129cb565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061362b601b83612806565b9150613636826135f5565b602082019050919050565b6000602082019050818103600083015261365a8161361e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136bd602183612806565b91506136c882613661565b604082019050919050565b600060208201905081810360008301526136ec816136b0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122039100687c0b1d1159e887b83ec25fe25068d6fa1682007405d9ad999094446ef64736f6c634300080f0033
Deployed Bytecode
0x60806040526004361061014e5760003560e01c8063715018a6116100b6578063a2a957bb1161006f578063a2a957bb14610468578063a9059cbb14610491578063b74248dc146104ce578063bfd79284146104f7578063dd62ed3e14610534578063f2fde38b1461057157610155565b8063715018a61461037c5780637d1db4a5146103935780638da5cb5b146103be5780638f9a55c0146103e957806395d89b411461041457806398a5c3151461043f57610155565b80632fd689e3116101085780632fd689e31461027e578063313ce567146102a957806349bd5a5e146102d45780636b999053146102ff5780636fc3eaec1461032857806370a082311461033f57610155565b8062b8cf2a1461015a57806306fdde0314610183578063095ea7b3146101ae5780631694505e146101eb57806318160ddd1461021657806323b872dd1461024157610155565b3661015557005b600080fd5b34801561016657600080fd5b50610181600480360381019061017c91906127b2565b61059a565b005b34801561018f57600080fd5b506101986106c4565b6040516101a59190612883565b60405180910390f35b3480156101ba57600080fd5b506101d560048036038101906101d091906128db565b610701565b6040516101e29190612936565b60405180910390f35b3480156101f757600080fd5b5061020061071f565b60405161020d91906129b0565b60405180910390f35b34801561022257600080fd5b5061022b610745565b60405161023891906129da565b60405180910390f35b34801561024d57600080fd5b50610268600480360381019061026391906129f5565b610755565b6040516102759190612936565b60405180910390f35b34801561028a57600080fd5b5061029361082e565b6040516102a091906129da565b60405180910390f35b3480156102b557600080fd5b506102be610834565b6040516102cb9190612a64565b60405180910390f35b3480156102e057600080fd5b506102e961083d565b6040516102f69190612a8e565b60405180910390f35b34801561030b57600080fd5b5061032660048036038101906103219190612aa9565b610863565b005b34801561033457600080fd5b5061033d610953565b005b34801561034b57600080fd5b5061036660048036038101906103619190612aa9565b610964565b60405161037391906129da565b60405180910390f35b34801561038857600080fd5b506103916109b5565b005b34801561039f57600080fd5b506103a8610b08565b6040516103b591906129da565b60405180910390f35b3480156103ca57600080fd5b506103d3610b0e565b6040516103e09190612a8e565b60405180910390f35b3480156103f557600080fd5b506103fe610b37565b60405161040b91906129da565b60405180910390f35b34801561042057600080fd5b50610429610b3d565b6040516104369190612883565b60405180910390f35b34801561044b57600080fd5b5061046660048036038101906104619190612ad6565b610b7a565b005b34801561047457600080fd5b5061048f600480360381019061048a9190612b03565b610c3c565b005b34801561049d57600080fd5b506104b860048036038101906104b391906128db565b610d2a565b6040516104c59190612936565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190612b6a565b610d48565b005b34801561050357600080fd5b5061051e60048036038101906105199190612aa9565b610e36565b60405161052b9190612936565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190612baa565b610e56565b60405161056891906129da565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190612aa9565b610edd565b005b6105a261109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690612c36565b60405180910390fd5b60005b81518110156106c05760016010600084848151811061065457610653612c56565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106b890612cb4565b915050610632565b5050565b60606040518060400160405280600881526020017f536869205a656e20000000000000000000000000000000000000000000000000815250905090565b600061071561070e61109e565b84846110a6565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061076284848461126f565b6108238461076e61109e565b61081e856040518060600160405280602881526020016136f460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d461109e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b109092919063ffffffff16565b6110a6565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61086b61109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef90612c36565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600047905061096181611b74565b50565b60006109ae600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be0565b9050919050565b6109bd61109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190612c36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600281526020017f245a000000000000000000000000000000000000000000000000000000000000815250905090565b610b8261109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612c36565b60405180910390fd5b80601781905550606467016345785d8a0000610c2b9190612d2b565b6017541115610c3957600080fd5b50565b610c4461109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612c36565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506019600b54600954600a54600854610d059190612d5c565b610d0f9190612d5c565b610d199190612d5c565b1115610d2457600080fd5b50505050565b6000610d3e610d3761109e565b848461126f565b6001905092915050565b610d5061109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490612c36565b60405180910390fd5b81601581905550806016819055506103e867016345785d8a0000610e019190612d2b565b60155410158015610e2957506103e867016345785d8a0000610e239190612d2b565b60165410155b610e3257600080fd5b5050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ee561109e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990612c36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612e24565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612eb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612f48565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126291906129da565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590612fda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113449061306c565b60405180910390fd5b60008111611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611387906130fe565b60405180910390fd5b611398610b0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140657506113d6610b0e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561180f5760148054906101000a900460ff1661149357611425610b0e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990613190565b60405180910390fd5b5b6015548111156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf906131fc565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561157c5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b29061328e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611668576016548161161d84610964565b6116279190612d5c565b10611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90613320565b60405180910390fd5b5b600061167330610964565b905060006017548210159050600460175461168e9190613340565b82106116a65760046017546116a39190613340565b91505b8080156116c05750601460159054906101000a900460ff16155b801561171a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117325750601460169054906101000a900460ff165b80156117885750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117de5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561180c576117ec82611c4e565b600047905066b1a2bc2ec5000081111561180a5761180947611b74565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118b65750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119695750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119685750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156119775760009050611afe565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a225750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a3a57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ae55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611afd57600a54600c81905550600b54600d819055505b5b611b0a84848484611ec7565b50505050565b6000838311158290611b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4f9190612883565b60405180910390fd5b5060008385611b67919061339a565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bdc573d6000803e3d6000fd5b5050565b6000600654821115611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613440565b60405180910390fd5b6000611c31611ef4565b9050611c468184611f1f90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c8657611c85612611565b5b604051908082528060200260200182016040528015611cb45781602001602082028036833780820191505090505b5090503081600081518110611ccc57611ccb612c56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190613475565b81600181518110611dab57611daa612c56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110a6565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e7695949392919061359b565b600060405180830381600087803b158015611e9057600080fd5b505af1158015611ea4573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80611ed557611ed4611f69565b5b611ee0848484611fa6565b80611eee57611eed612171565b5b50505050565b6000806000611f01612185565b91509150611f188183611f1f90919063ffffffff16565b9250505090565b6000611f6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e4565b905092915050565b6000600c54148015611f7d57506000600d54145b611fa457600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611fb887612247565b95509550955095509550955061201686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122af90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ab85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120f781612357565b6121018483612414565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161215e91906129da565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a000090506121b967016345785d8a0000600654611f1f90919063ffffffff16565b8210156121d75760065467016345785d8a00009350935050506121e0565b81819350935050505b9091565b6000808311829061222b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122229190612883565b60405180910390fd5b506000838561223a9190612d2b565b9050809150509392505050565b60008060008060008060008060006122648a600c54600d5461244e565b9250925092506000612274611ef4565b905060008060006122878e8787876124e4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006122f183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b10565b905092915050565b60008082846123089190612d5c565b90508381101561234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613641565b60405180910390fd5b8091505092915050565b6000612361611ef4565b90506000612378828461256d90919063ffffffff16565b90506123cc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612429826006546122af90919063ffffffff16565b600681905550612444816007546122f990919063ffffffff16565b6007819055505050565b60008060008061247a606461246c888a61256d90919063ffffffff16565b611f1f90919063ffffffff16565b905060006124a46064612496888b61256d90919063ffffffff16565b611f1f90919063ffffffff16565b905060006124cd826124bf858c6122af90919063ffffffff16565b6122af90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124fd858961256d90919063ffffffff16565b90506000612514868961256d90919063ffffffff16565b9050600061252b878961256d90919063ffffffff16565b905060006125548261254685876122af90919063ffffffff16565b6122af90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361257f57600090506125e1565b6000828461258d9190613340565b905082848261259c9190612d2b565b146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906136d3565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61264982612600565b810181811067ffffffffffffffff8211171561266857612667612611565b5b80604052505050565b600061267b6125e7565b90506126878282612640565b919050565b600067ffffffffffffffff8211156126a7576126a6612611565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126e8826126bd565b9050919050565b6126f8816126dd565b811461270357600080fd5b50565b600081359050612715816126ef565b92915050565b600061272e6127298461268c565b612671565b90508083825260208201905060208402830185811115612751576127506126b8565b5b835b8181101561277a57806127668882612706565b845260208401935050602081019050612753565b5050509392505050565b600082601f830112612799576127986125fb565b5b81356127a984826020860161271b565b91505092915050565b6000602082840312156127c8576127c76125f1565b5b600082013567ffffffffffffffff8111156127e6576127e56125f6565b5b6127f284828501612784565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561283557808201518184015260208101905061281a565b83811115612844576000848401525b50505050565b6000612855826127fb565b61285f8185612806565b935061286f818560208601612817565b61287881612600565b840191505092915050565b6000602082019050818103600083015261289d818461284a565b905092915050565b6000819050919050565b6128b8816128a5565b81146128c357600080fd5b50565b6000813590506128d5816128af565b92915050565b600080604083850312156128f2576128f16125f1565b5b600061290085828601612706565b9250506020612911858286016128c6565b9150509250929050565b60008115159050919050565b6129308161291b565b82525050565b600060208201905061294b6000830184612927565b92915050565b6000819050919050565b600061297661297161296c846126bd565b612951565b6126bd565b9050919050565b60006129888261295b565b9050919050565b600061299a8261297d565b9050919050565b6129aa8161298f565b82525050565b60006020820190506129c560008301846129a1565b92915050565b6129d4816128a5565b82525050565b60006020820190506129ef60008301846129cb565b92915050565b600080600060608486031215612a0e57612a0d6125f1565b5b6000612a1c86828701612706565b9350506020612a2d86828701612706565b9250506040612a3e868287016128c6565b9150509250925092565b600060ff82169050919050565b612a5e81612a48565b82525050565b6000602082019050612a796000830184612a55565b92915050565b612a88816126dd565b82525050565b6000602082019050612aa36000830184612a7f565b92915050565b600060208284031215612abf57612abe6125f1565b5b6000612acd84828501612706565b91505092915050565b600060208284031215612aec57612aeb6125f1565b5b6000612afa848285016128c6565b91505092915050565b60008060008060808587031215612b1d57612b1c6125f1565b5b6000612b2b878288016128c6565b9450506020612b3c878288016128c6565b9350506040612b4d878288016128c6565b9250506060612b5e878288016128c6565b91505092959194509250565b60008060408385031215612b8157612b806125f1565b5b6000612b8f858286016128c6565b9250506020612ba0858286016128c6565b9150509250929050565b60008060408385031215612bc157612bc06125f1565b5b6000612bcf85828601612706565b9250506020612be085828601612706565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c20602083612806565b9150612c2b82612bea565b602082019050919050565b60006020820190508181036000830152612c4f81612c13565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cbf826128a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cf157612cf0612c85565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d36826128a5565b9150612d41836128a5565b925082612d5157612d50612cfc565b5b828204905092915050565b6000612d67826128a5565b9150612d72836128a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da757612da6612c85565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e0e602683612806565b9150612e1982612db2565b604082019050919050565b60006020820190508181036000830152612e3d81612e01565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ea0602483612806565b9150612eab82612e44565b604082019050919050565b60006020820190508181036000830152612ecf81612e93565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f32602283612806565b9150612f3d82612ed6565b604082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fc4602583612806565b9150612fcf82612f68565b604082019050919050565b60006020820190508181036000830152612ff381612fb7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613056602383612806565b915061306182612ffa565b604082019050919050565b6000602082019050818103600083015261308581613049565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130e8602983612806565b91506130f38261308c565b604082019050919050565b60006020820190508181036000830152613117816130db565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061317a603f83612806565b91506131858261311e565b604082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006131e6601c83612806565b91506131f1826131b0565b602082019050919050565b60006020820190508181036000830152613215816131d9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613278602383612806565b91506132838261321c565b604082019050919050565b600060208201905081810360008301526132a78161326b565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061330a602383612806565b9150613315826132ae565b604082019050919050565b60006020820190508181036000830152613339816132fd565b9050919050565b600061334b826128a5565b9150613356836128a5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561338f5761338e612c85565b5b828202905092915050565b60006133a5826128a5565b91506133b0836128a5565b9250828210156133c3576133c2612c85565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061342a602a83612806565b9150613435826133ce565b604082019050919050565b600060208201905081810360008301526134598161341d565b9050919050565b60008151905061346f816126ef565b92915050565b60006020828403121561348b5761348a6125f1565b5b600061349984828501613460565b91505092915050565b6000819050919050565b60006134c76134c26134bd846134a2565b612951565b6128a5565b9050919050565b6134d7816134ac565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613512816126dd565b82525050565b60006135248383613509565b60208301905092915050565b6000602082019050919050565b6000613548826134dd565b61355281856134e8565b935061355d836134f9565b8060005b8381101561358e5781516135758882613518565b975061358083613530565b925050600181019050613561565b5085935050505092915050565b600060a0820190506135b060008301886129cb565b6135bd60208301876134ce565b81810360408301526135cf818661353d565b90506135de6060830185612a7f565b6135eb60808301846129cb565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061362b601b83612806565b9150613636826135f5565b602082019050919050565b6000602082019050818103600083015261365a8161361e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136bd602183612806565b91506136c882613661565b604082019050919050565b600060208201905081810360008301526136ec816136b0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122039100687c0b1d1159e887b83ec25fe25068d6fa1682007405d9ad999094446ef64736f6c634300080f0033
Deployed Bytecode Sourcemap
4130:12807:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12325:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6564:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7489:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5410:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6841:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7690:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5711:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6750:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5458:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12502:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12174:143;;;;;;;;;;;;;:::i;:::-;;6944:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1617:148;;;;;;;;;;;;;:::i;:::-;;5607:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1403:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5658:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6655:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16429:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16000:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7090:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16670:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5159:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7297:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1773:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12325:169;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12401:9:::1;12396:91;12420:5;:12;12416:1;:16;12396:91;;;12471:4;12454;:14;12459:5;12465:1;12459:8;;;;;;;;:::i;:::-;;;;;;;;12454:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12434:3;;;;;:::i;:::-;;;;12396:91;;;;12325:169:::0;:::o;6564:83::-;6601:13;6634:5;;;;;;;;;;;;;;;;;6627:12;;6564:83;:::o;7489:193::-;7591:4;7613:39;7622:12;:10;:12::i;:::-;7636:7;7645:6;7613:8;:39::i;:::-;7670:4;7663:11;;7489:193;;;;:::o;5410:41::-;;;;;;;;;;;;;:::o;6841:95::-;6894:7;4673:17;6914:14;;6841:95;:::o;7690:446::-;7822:4;7839:36;7849:6;7857:9;7868:6;7839:9;:36::i;:::-;7886:220;7909:6;7930:12;:10;:12::i;:::-;7957:138;8013:6;7957:138;;;;;;;;;;;;;;;;;:11;:19;7969:6;7957:19;;;;;;;;;;;;;;;:33;7977:12;:10;:12::i;:::-;7957:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7886:8;:220::i;:::-;8124:4;8117:11;;7690:446;;;;;:::o;5711:51::-;;;;:::o;6750:83::-;6791:5;4347:1;6809:16;;6750:83;:::o;5458:28::-;;;;;;;;;;;;;:::o;12502:92::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12581:5:::1;12566:4;:12;12571:6;12566:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12502:92:::0;:::o;12174:143::-;12216:26;12245:21;12216:50;;12277:32;12290:18;12277:12;:32::i;:::-;12205:112;12174:143::o;6944:138::-;7010:7;7037:37;7057:7;:16;7065:7;7057:16;;;;;;;;;;;;;;;;7037:19;:37::i;:::-;7030:44;;6944:138;;;:::o;1617:148::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1724:1:::1;1687:40;;1708:6;::::0;::::1;;;;;;;;1687:40;;;;;;;;;;;;1755:1;1738:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1617:148::o:0;5607:44::-;;;;:::o;1403:79::-;1441:7;1468:6;;;;;;;;;;;1461:13;;1403:79;:::o;5658:46::-;;;;:::o;6655:87::-;6694:13;6727:7;;;;;;;;;;;;;;;;;6720:14;;6655:87;:::o;16429:193::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16542:18:::1;16520:19;:40;;;;16610:3;4673:17;16602:11;;;;:::i;:::-;16580:19;;:33;;16571:43;;;::::0;::::1;;16429:193:::0;:::o;16000:377::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16151:13:::1;16134:14;:30;;;;16193:14;16175:15;:32;;;;16233:11;16218:12;:26;;;;16271:12;16255:13;:28;;;;16366:2;16348:13;;16335:12;;16319:15;;16304:14;;:30;;;;:::i;:::-;:43;;;;:::i;:::-;:57;;;;:::i;:::-;16303:65;;16294:75;;;::::0;::::1;;16000:377:::0;;;;:::o;7090:199::-;7195:4;7217:42;7227:12;:10;:12::i;:::-;7241:9;7252:6;7217:9;:42::i;:::-;7277:4;7270:11;;7090:199;;;;:::o;16670:262::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16789:11:::1;16774:12;:26;;;;16828:13;16811:14;:30;;;;16885:4;4673:17;16877:12;;;;:::i;:::-;16861;;:28;;:62;;;;;16919:4;4673:17;16911:12;;;;:::i;:::-;16893:14;;:30;;16861:62;16852:72;;;::::0;::::1;;16670:262:::0;;:::o;5159:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;7297:184::-;7414:7;7446:11;:18;7458:5;7446:18;;;;;;;;;;;;;;;:27;7465:7;7446:27;;;;;;;;;;;;;;;;7439:34;;7297:184;;;;:::o;1773:244::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1882:1:::1;1862:22;;:8;:22;;::::0;1854:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1972:8;1943:38;;1964:6;::::0;::::1;;;;;;;;1943:38;;;;;;;;;;;;2001:8;1992:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1773:244:::0;:::o;162:98::-;215:7;242:10;235:17;;162:98;:::o;8827:369::-;8971:1;8954:19;;:5;:19;;;8946:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9052:1;9033:21;;:7;:21;;;9025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9134:6;9104:11;:18;9116:5;9104:18;;;;;;;;;;;;;;;:27;9123:7;9104:27;;;;;;;;;;;;;;;:36;;;;9172:7;9156:32;;9165:5;9156:32;;;9181:6;9156:32;;;;;;:::i;:::-;;;;;;;;8827:369;;;:::o;9204:2364::-;9342:1;9326:18;;:4;:18;;;9318:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9419:1;9405:16;;:2;:16;;;9397:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9489:1;9480:6;:10;9472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9561:7;:5;:7::i;:::-;9553:15;;:4;:15;;;;:32;;;;;9578:7;:5;:7::i;:::-;9572:13;;:2;:13;;;;9553:32;9549:1293;;;9642:11;;;;;;;;;;9637:144;;9690:7;:5;:7::i;:::-;9682:15;;:4;:15;;;9674:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9637:144;9815:12;;9805:6;:22;;9797:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9884:4;:10;9889:4;9884:10;;;;;;;;;;;;;;;;;;;;;;;;;9883:11;:24;;;;;9899:4;:8;9904:2;9899:8;;;;;;;;;;;;;;;;;;;;;;;;;9898:9;9883:24;9875:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9973:13;;;;;;;;;;;9967:19;;:2;:19;;;9964:146;;10040:14;;10031:6;10015:13;10025:2;10015:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10007:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9964:146;10126:28;10157:24;10175:4;10157:9;:24::i;:::-;10126:55;;10196:12;10235:19;;10211:20;:43;;10196:58;;10318:1;10298:19;;:21;;;;:::i;:::-;10274:20;:45;10271:142;;10396:1;10376:19;;:21;;;;:::i;:::-;10353:44;;10271:142;10433:7;:18;;;;;10445:6;;;;;;;;;;;10444:7;10433:18;:43;;;;;10463:13;;;;;;;;;;;10455:21;;:4;:21;;;;10433:43;:58;;;;;10480:11;;;;;;;;;;;10433:58;:87;;;;;10496:18;:24;10515:4;10496:24;;;;;;;;;;;;;;;;;;;;;;;;;10495:25;10433:87;:114;;;;;10525:18;:22;10544:2;10525:22;;;;;;;;;;;;;;;;;;;;;;;;;10524:23;10433:114;10429:402;;;10568:38;10585:20;10568:16;:38::i;:::-;10625:26;10654:21;10625:50;;10719:17;10698:18;:38;10694:122;;;10761:35;10774:21;10761:12;:35::i;:::-;10694:122;10549:282;10429:402;9587:1255;;9549:1293;10854:12;10869:4;10854:19;;10918:18;:24;10937:4;10918:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10946:18;:22;10965:2;10946:22;;;;;;;;;;;;;;;;;;;;;;;;;10918:50;10917:102;;;;10982:13;;;;;;;;;;;10974:21;;:4;:21;;;;:44;;;;;11005:13;;;;;;;;;;;10999:19;;:2;:19;;;;10974:44;10917:102;10913:594;;;11046:5;11036:15;;10913:594;;;11129:13;;;;;;;;;;;11121:21;;:4;:21;;;:55;;;;;11160:15;;;;;;;;;;;11146:30;;:2;:30;;;;11121:55;11118:162;;;11209:14;;11197:9;:26;;;;11252:12;;11242:7;:22;;;;11118:162;11339:13;;;;;;;;;;;11333:19;;:2;:19;;;:55;;;;;11372:15;;;;;;;;;;;11356:32;;:4;:32;;;;11333:55;11329:165;;;11421:15;;11409:9;:27;;;;11465:13;;11455:7;:23;;;;11329:165;10913:594;11519:41;11534:4;11540:2;11544:6;11552:7;11519:14;:41::i;:::-;9307:2261;9204:2364;;;:::o;2381:224::-;2501:7;2534:1;2529;:6;;2537:12;2521:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2561:9;2577:1;2573;:5;;;;:::i;:::-;2561:17;;2596:1;2589:8;;;2381:224;;;;;:::o;12067:99::-;12124:17;;;;;;;;;;;:26;;:34;12151:6;12124:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12067:99;:::o;8144:323::-;8239:7;8297;;8286;:18;;8264:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8385:19;8407:10;:8;:10::i;:::-;8385:32;;8435:24;8447:11;8435:7;:11;;:24;;;;:::i;:::-;8428:31;;;8144:323;;;:::o;11576:483::-;5865:4;5856:6;;:13;;;;;;;;;;;;;;;;;;11654:21:::1;11692:1;11678:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11654:40;;11723:4;11705;11710:1;11705:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11749:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11739:4;11744:1;11739:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11782:62;11799:4;11814:15;;;;;;;;;;;11832:11;11782:8;:62::i;:::-;11855:15;;;;;;;;;;;:66;;;11936:11;11962:1;11978:4;12005;12025:15;11855:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11643:416;5901:5:::0;5892:6;;:14;;;;;;;;;;;;;;;;;;11576:483;:::o;12602:282::-;12758:7;12753:28;;12767:14;:12;:14::i;:::-;12753:28;12792:44;12810:6;12818:9;12829:6;12792:17;:44::i;:::-;12852:7;12847:29;;12861:15;:13;:15::i;:::-;12847:29;12602:282;;;;:::o;15563:164::-;15605:7;15626:15;15643;15662:19;:17;:19::i;:::-;15625:56;;;;15699:20;15711:7;15699;:11;;:20;;;;:::i;:::-;15692:27;;;;15563:164;:::o;2867:132::-;2925:7;2952:39;2956:1;2959;2952:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2945:46;;2867:132;;;;:::o;8475:219::-;8535:1;8522:9;;:14;:30;;;;;8551:1;8540:7;;:12;8522:30;8554:7;8518:43;8593:9;;8573:17;:29;;;;8631:7;;8613:15;:25;;;;8663:1;8651:9;:13;;;;8685:1;8675:7;:11;;;;8475:219;:::o;12892:610::-;13039:15;13069:23;13107:12;13134:23;13172:12;13199:13;13226:19;13237:7;13226:10;:19::i;:::-;13024:221;;;;;;;;;;;;13274:28;13294:7;13274;:15;13282:6;13274:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13256:7;:15;13264:6;13256:15;;;;;;;;;;;;;;;:46;;;;13334:39;13357:15;13334:7;:18;13342:9;13334:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13313:7;:18;13321:9;13313:18;;;;;;;;;;;;;;;:60;;;;13384:16;13394:5;13384:9;:16::i;:::-;13411:23;13423:4;13429;13411:11;:23::i;:::-;13467:9;13450:44;;13459:6;13450:44;;;13478:15;13450:44;;;;;;:::i;:::-;;;;;;;;13013:489;;;;;;12892:610;;;:::o;8702:117::-;8758:17;;8746:9;:29;;;;8796:15;;8786:7;:25;;;;8702:117::o;15735:257::-;15786:7;15795;15815:15;15833:7;;15815:25;;15851:15;4673:17;15851:25;;15901:20;4673:17;15901:7;;:11;;:20;;;;:::i;:::-;15891:7;:30;15887:61;;;15931:7;;4673:17;15923:25;;;;;;;;15887:61;15967:7;15976;15959:25;;;;;;15735:257;;;:::o;3007:223::-;3127:7;3159:1;3155;:5;3162:12;3147:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3186:9;3202:1;3198;:5;;;;:::i;:::-;3186:17;;3221:1;3214:8;;;3007:223;;;;;:::o;13921:615::-;14021:7;14043;14065;14087;14109;14131;14167:23;14192:12;14206:13;14236:40;14248:7;14257:9;;14268:7;;14236:11;:40::i;:::-;14166:110;;;;;;14287:19;14309:10;:8;:10::i;:::-;14287:32;;14331:15;14348:23;14373:12;14402:46;14414:7;14423:4;14429:5;14436:11;14402;:46::i;:::-;14330:118;;;;;;14467:7;14476:15;14493:4;14499:15;14516:4;14522:5;14459:69;;;;;;;;;;;;;;;;;;;13921:615;;;;;;;:::o;2237:136::-;2295:7;2322:43;2326:1;2329;2322:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2315:50;;2237:136;;;;:::o;2050:179::-;2108:7;2128:9;2144:1;2140;:5;;;;:::i;:::-;2128:17;;2169:1;2164;:6;;2156:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2220:1;2213:8;;;2050:179;;;;:::o;13510:211::-;13563:19;13585:10;:8;:10::i;:::-;13563:32;;13606:13;13622:22;13632:11;13622:5;:9;;:22;;;;:::i;:::-;13606:38;;13680:33;13707:5;13680:7;:22;13696:4;13680:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13655:7;:22;13671:4;13655:22;;;;;;;;;;;;;;;:58;;;;13552:169;;13510:211;:::o;13729:147::-;13807:17;13819:4;13807:7;;:11;;:17;;;;:::i;:::-;13797:7;:27;;;;13848:20;13863:4;13848:10;;:14;;:20;;;;:::i;:::-;13835:10;:33;;;;13729:147;;:::o;14544:469::-;14713:7;14735;14757;14792:12;14807:30;14833:3;14807:21;14819:8;14807:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14792:45;;14848:13;14864:28;14888:3;14864:19;14876:6;14864:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14848:44;;14903:23;14929:28;14951:5;14929:17;14941:4;14929:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14903:54;;14976:15;14993:4;14999:5;14968:37;;;;;;;;;14544:469;;;;;;;:::o;15021:534::-;15215:7;15237;15259;15294:15;15312:24;15324:11;15312:7;:11;;:24;;;;:::i;:::-;15294:42;;15347:12;15362:21;15371:11;15362:4;:8;;:21;;;;:::i;:::-;15347:36;;15394:13;15410:22;15420:11;15410:5;:9;;:22;;;;:::i;:::-;15394:38;;15443:23;15469:28;15491:5;15469:17;15481:4;15469:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15443:54;;15516:7;15525:15;15542:4;15508:39;;;;;;;;;;15021:534;;;;;;;;:::o;2613:246::-;2671:7;2700:1;2695;:6;2691:47;;2725:1;2718:8;;;;2691:47;2748:9;2764:1;2760;:5;;;;:::i;:::-;2748:17;;2793:1;2788;2784;:5;;;;:::i;:::-;:10;2776:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2850:1;2843:8;;;2613:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::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:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:::-;9462:6;9511:2;9499:9;9490:7;9486:23;9482:32;9479:119;;;9517:79;;:::i;:::-;9479:119;9637:1;9662:53;9707:7;9698:6;9687:9;9683:22;9662:53;:::i;:::-;9652:63;;9608:117;9403:329;;;;:::o;9738:765::-;9824:6;9832;9840;9848;9897:3;9885:9;9876:7;9872:23;9868:33;9865:120;;;9904:79;;:::i;:::-;9865:120;10024:1;10049:53;10094:7;10085:6;10074:9;10070:22;10049:53;:::i;:::-;10039:63;;9995:117;10151:2;10177:53;10222:7;10213:6;10202:9;10198:22;10177:53;:::i;:::-;10167:63;;10122:118;10279:2;10305:53;10350:7;10341:6;10330:9;10326:22;10305:53;:::i;:::-;10295:63;;10250:118;10407:2;10433:53;10478:7;10469:6;10458:9;10454:22;10433:53;:::i;:::-;10423:63;;10378:118;9738:765;;;;;;;:::o;10509:474::-;10577:6;10585;10634:2;10622:9;10613:7;10609:23;10605:32;10602:119;;;10640:79;;:::i;:::-;10602:119;10760:1;10785:53;10830:7;10821:6;10810:9;10806:22;10785:53;:::i;:::-;10775:63;;10731:117;10887:2;10913:53;10958:7;10949:6;10938:9;10934:22;10913:53;:::i;:::-;10903:63;;10858:118;10509:474;;;;;:::o;10989:::-;11057:6;11065;11114:2;11102:9;11093:7;11089:23;11085:32;11082:119;;;11120:79;;:::i;:::-;11082:119;11240:1;11265:53;11310:7;11301:6;11290:9;11286:22;11265:53;:::i;:::-;11255:63;;11211:117;11367:2;11393:53;11438:7;11429:6;11418:9;11414:22;11393:53;:::i;:::-;11383:63;;11338:118;10989:474;;;;;:::o;11469:182::-;11609:34;11605:1;11597:6;11593:14;11586:58;11469:182;:::o;11657:366::-;11799:3;11820:67;11884:2;11879:3;11820:67;:::i;:::-;11813:74;;11896:93;11985:3;11896:93;:::i;:::-;12014:2;12009:3;12005:12;11998:19;;11657:366;;;:::o;12029:419::-;12195:4;12233:2;12222:9;12218:18;12210:26;;12282:9;12276:4;12272:20;12268:1;12257:9;12253:17;12246:47;12310:131;12436:4;12310:131;:::i;:::-;12302:139;;12029:419;;;:::o;12454:180::-;12502:77;12499:1;12492:88;12599:4;12596:1;12589:15;12623:4;12620:1;12613:15;12640:180;12688:77;12685:1;12678:88;12785:4;12782:1;12775:15;12809:4;12806:1;12799:15;12826:233;12865:3;12888:24;12906:5;12888:24;:::i;:::-;12879:33;;12934:66;12927:5;12924:77;12921:103;;13004:18;;:::i;:::-;12921:103;13051:1;13044:5;13040:13;13033:20;;12826:233;;;:::o;13065:180::-;13113:77;13110:1;13103:88;13210:4;13207:1;13200:15;13234:4;13231:1;13224:15;13251:185;13291:1;13308:20;13326:1;13308:20;:::i;:::-;13303:25;;13342:20;13360:1;13342:20;:::i;:::-;13337:25;;13381:1;13371:35;;13386:18;;:::i;:::-;13371:35;13428:1;13425;13421:9;13416:14;;13251:185;;;;:::o;13442:305::-;13482:3;13501:20;13519:1;13501:20;:::i;:::-;13496:25;;13535:20;13553:1;13535:20;:::i;:::-;13530:25;;13689:1;13621:66;13617:74;13614:1;13611:81;13608:107;;;13695:18;;:::i;:::-;13608:107;13739:1;13736;13732:9;13725:16;;13442:305;;;;:::o;13753:225::-;13893:34;13889:1;13881:6;13877:14;13870:58;13962:8;13957:2;13949:6;13945:15;13938:33;13753:225;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:223::-;14921:34;14917:1;14909:6;14905:14;14898:58;14990:6;14985:2;14977:6;14973:15;14966:31;14781:223;:::o;15010:366::-;15152:3;15173:67;15237:2;15232:3;15173:67;:::i;:::-;15166:74;;15249:93;15338:3;15249:93;:::i;:::-;15367:2;15362:3;15358:12;15351:19;;15010:366;;;:::o;15382:419::-;15548:4;15586:2;15575:9;15571:18;15563:26;;15635:9;15629:4;15625:20;15621:1;15610:9;15606:17;15599:47;15663:131;15789:4;15663:131;:::i;:::-;15655:139;;15382:419;;;:::o;15807:221::-;15947:34;15943:1;15935:6;15931:14;15924:58;16016:4;16011:2;16003:6;15999:15;15992:29;15807:221;:::o;16034:366::-;16176:3;16197:67;16261:2;16256:3;16197:67;:::i;:::-;16190:74;;16273:93;16362:3;16273:93;:::i;:::-;16391:2;16386:3;16382:12;16375:19;;16034:366;;;:::o;16406:419::-;16572:4;16610:2;16599:9;16595:18;16587:26;;16659:9;16653:4;16649:20;16645:1;16634:9;16630:17;16623:47;16687:131;16813:4;16687:131;:::i;:::-;16679:139;;16406:419;;;:::o;16831:224::-;16971:34;16967:1;16959:6;16955:14;16948:58;17040:7;17035:2;17027:6;17023:15;17016:32;16831:224;:::o;17061:366::-;17203:3;17224:67;17288:2;17283:3;17224:67;:::i;:::-;17217:74;;17300:93;17389:3;17300:93;:::i;:::-;17418:2;17413:3;17409:12;17402:19;;17061:366;;;:::o;17433:419::-;17599:4;17637:2;17626:9;17622:18;17614:26;;17686:9;17680:4;17676:20;17672:1;17661:9;17657:17;17650:47;17714:131;17840:4;17714:131;:::i;:::-;17706:139;;17433:419;;;:::o;17858:222::-;17998:34;17994:1;17986:6;17982:14;17975:58;18067:5;18062:2;18054:6;18050:15;18043:30;17858:222;:::o;18086:366::-;18228:3;18249:67;18313:2;18308:3;18249:67;:::i;:::-;18242:74;;18325:93;18414:3;18325:93;:::i;:::-;18443:2;18438:3;18434:12;18427:19;;18086:366;;;:::o;18458:419::-;18624:4;18662:2;18651:9;18647:18;18639:26;;18711:9;18705:4;18701:20;18697:1;18686:9;18682:17;18675:47;18739:131;18865:4;18739:131;:::i;:::-;18731:139;;18458:419;;;:::o;18883:228::-;19023:34;19019:1;19011:6;19007:14;19000:58;19092:11;19087:2;19079:6;19075:15;19068:36;18883:228;:::o;19117:366::-;19259:3;19280:67;19344:2;19339:3;19280:67;:::i;:::-;19273:74;;19356:93;19445:3;19356:93;:::i;:::-;19474:2;19469:3;19465:12;19458:19;;19117:366;;;:::o;19489:419::-;19655:4;19693:2;19682:9;19678:18;19670:26;;19742:9;19736:4;19732:20;19728:1;19717:9;19713:17;19706:47;19770:131;19896:4;19770:131;:::i;:::-;19762:139;;19489:419;;;:::o;19914:250::-;20054:34;20050:1;20042:6;20038:14;20031:58;20123:33;20118:2;20110:6;20106:15;20099:58;19914:250;:::o;20170:366::-;20312:3;20333:67;20397:2;20392:3;20333:67;:::i;:::-;20326:74;;20409:93;20498:3;20409:93;:::i;:::-;20527:2;20522:3;20518:12;20511:19;;20170:366;;;:::o;20542:419::-;20708:4;20746:2;20735:9;20731:18;20723:26;;20795:9;20789:4;20785:20;20781:1;20770:9;20766:17;20759:47;20823:131;20949:4;20823:131;:::i;:::-;20815:139;;20542:419;;;:::o;20967:178::-;21107:30;21103:1;21095:6;21091:14;21084:54;20967:178;:::o;21151:366::-;21293:3;21314:67;21378:2;21373:3;21314:67;:::i;:::-;21307:74;;21390:93;21479:3;21390:93;:::i;:::-;21508:2;21503:3;21499:12;21492:19;;21151:366;;;:::o;21523:419::-;21689:4;21727:2;21716:9;21712:18;21704:26;;21776:9;21770:4;21766:20;21762:1;21751:9;21747:17;21740:47;21804:131;21930:4;21804:131;:::i;:::-;21796:139;;21523:419;;;:::o;21948:222::-;22088:34;22084:1;22076:6;22072:14;22065:58;22157:5;22152:2;22144:6;22140:15;22133:30;21948:222;:::o;22176:366::-;22318:3;22339:67;22403:2;22398:3;22339:67;:::i;:::-;22332:74;;22415:93;22504:3;22415:93;:::i;:::-;22533:2;22528:3;22524:12;22517:19;;22176:366;;;:::o;22548:419::-;22714:4;22752:2;22741:9;22737:18;22729:26;;22801:9;22795:4;22791:20;22787:1;22776:9;22772:17;22765:47;22829:131;22955:4;22829:131;:::i;:::-;22821:139;;22548:419;;;:::o;22973:222::-;23113:34;23109:1;23101:6;23097:14;23090:58;23182:5;23177:2;23169:6;23165:15;23158:30;22973:222;:::o;23201:366::-;23343:3;23364:67;23428:2;23423:3;23364:67;:::i;:::-;23357:74;;23440:93;23529:3;23440:93;:::i;:::-;23558:2;23553:3;23549:12;23542:19;;23201:366;;;:::o;23573:419::-;23739:4;23777:2;23766:9;23762:18;23754:26;;23826:9;23820:4;23816:20;23812:1;23801:9;23797:17;23790:47;23854:131;23980:4;23854:131;:::i;:::-;23846:139;;23573:419;;;:::o;23998:348::-;24038:7;24061:20;24079:1;24061:20;:::i;:::-;24056:25;;24095:20;24113:1;24095:20;:::i;:::-;24090:25;;24283:1;24215:66;24211:74;24208:1;24205:81;24200:1;24193:9;24186:17;24182:105;24179:131;;;24290:18;;:::i;:::-;24179:131;24338:1;24335;24331:9;24320:20;;23998:348;;;;:::o;24352:191::-;24392:4;24412:20;24430:1;24412:20;:::i;:::-;24407:25;;24446:20;24464:1;24446:20;:::i;:::-;24441:25;;24485:1;24482;24479:8;24476:34;;;24490:18;;:::i;:::-;24476:34;24535:1;24532;24528:9;24520:17;;24352:191;;;;:::o;24549:229::-;24689:34;24685:1;24677:6;24673:14;24666:58;24758:12;24753:2;24745:6;24741:15;24734:37;24549:229;:::o;24784:366::-;24926:3;24947:67;25011:2;25006:3;24947:67;:::i;:::-;24940:74;;25023:93;25112:3;25023:93;:::i;:::-;25141:2;25136:3;25132:12;25125:19;;24784:366;;;:::o;25156:419::-;25322:4;25360:2;25349:9;25345:18;25337:26;;25409:9;25403:4;25399:20;25395:1;25384:9;25380:17;25373:47;25437:131;25563:4;25437:131;:::i;:::-;25429:139;;25156:419;;;:::o;25581:143::-;25638:5;25669:6;25663:13;25654:22;;25685:33;25712:5;25685:33;:::i;:::-;25581:143;;;;:::o;25730:351::-;25800:6;25849:2;25837:9;25828:7;25824:23;25820:32;25817:119;;;25855:79;;:::i;:::-;25817:119;25975:1;26000:64;26056:7;26047:6;26036:9;26032:22;26000:64;:::i;:::-;25990:74;;25946:128;25730:351;;;;:::o;26087:85::-;26132:7;26161:5;26150:16;;26087:85;;;:::o;26178:158::-;26236:9;26269:61;26287:42;26296:32;26322:5;26296:32;:::i;:::-;26287:42;:::i;:::-;26269:61;:::i;:::-;26256:74;;26178:158;;;:::o;26342:147::-;26437:45;26476:5;26437:45;:::i;:::-;26432:3;26425:58;26342:147;;:::o;26495:114::-;26562:6;26596:5;26590:12;26580:22;;26495:114;;;:::o;26615:184::-;26714:11;26748:6;26743:3;26736:19;26788:4;26783:3;26779:14;26764:29;;26615:184;;;;:::o;26805:132::-;26872:4;26895:3;26887:11;;26925:4;26920:3;26916:14;26908:22;;26805:132;;;:::o;26943:108::-;27020:24;27038:5;27020:24;:::i;:::-;27015:3;27008:37;26943:108;;:::o;27057:179::-;27126:10;27147:46;27189:3;27181:6;27147:46;:::i;:::-;27225:4;27220:3;27216:14;27202:28;;27057:179;;;;:::o;27242:113::-;27312:4;27344;27339:3;27335:14;27327:22;;27242:113;;;:::o;27391:732::-;27510:3;27539:54;27587:5;27539:54;:::i;:::-;27609:86;27688:6;27683:3;27609:86;:::i;:::-;27602:93;;27719:56;27769:5;27719:56;:::i;:::-;27798:7;27829:1;27814:284;27839:6;27836:1;27833:13;27814:284;;;27915:6;27909:13;27942:63;28001:3;27986:13;27942:63;:::i;:::-;27935:70;;28028:60;28081:6;28028:60;:::i;:::-;28018:70;;27874:224;27861:1;27858;27854:9;27849:14;;27814:284;;;27818:14;28114:3;28107:10;;27515:608;;;27391:732;;;;:::o;28129:831::-;28392:4;28430:3;28419:9;28415:19;28407:27;;28444:71;28512:1;28501:9;28497:17;28488:6;28444:71;:::i;:::-;28525:80;28601:2;28590:9;28586:18;28577:6;28525:80;:::i;:::-;28652:9;28646:4;28642:20;28637:2;28626:9;28622:18;28615:48;28680:108;28783:4;28774:6;28680:108;:::i;:::-;28672:116;;28798:72;28866:2;28855:9;28851:18;28842:6;28798:72;:::i;:::-;28880:73;28948:3;28937:9;28933:19;28924:6;28880:73;:::i;:::-;28129:831;;;;;;;;:::o;28966:177::-;29106:29;29102:1;29094:6;29090:14;29083:53;28966:177;:::o;29149:366::-;29291:3;29312:67;29376:2;29371:3;29312:67;:::i;:::-;29305:74;;29388:93;29477:3;29388:93;:::i;:::-;29506:2;29501:3;29497:12;29490:19;;29149:366;;;:::o;29521:419::-;29687:4;29725:2;29714:9;29710:18;29702:26;;29774:9;29768:4;29764:20;29760:1;29749:9;29745:17;29738:47;29802:131;29928:4;29802:131;:::i;:::-;29794:139;;29521:419;;;:::o;29946:220::-;30086:34;30082:1;30074:6;30070:14;30063:58;30155:3;30150:2;30142:6;30138:15;30131:28;29946:220;:::o;30172:366::-;30314:3;30335:67;30399:2;30394:3;30335:67;:::i;:::-;30328:74;;30411:93;30500:3;30411:93;:::i;:::-;30529:2;30524:3;30520:12;30513:19;;30172:366;;;:::o;30544:419::-;30710:4;30748:2;30737:9;30733:18;30725:26;;30797:9;30791:4;30787:20;30783:1;30772:9;30768:17;30761:47;30825:131;30951:4;30825:131;:::i;:::-;30817:139;;30544:419;;;:::o
Swarm Source
ipfs://39100687c0b1d1159e887b83ec25fe25068d6fa1682007405d9ad999094446ef
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.