ERC-20
Overview
Max Total Supply
100,000,000,000 ERC20 ***
Holders
33
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,143,216,167.294988896 ERC20 ***Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
JohnWicksDog
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-02 */ /** While we all love John Wick, Daisy is the best dog one can wish for. TG: https://t.me/DaisyERC */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; 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 JohnWicksDog is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "John Wicks Dog";// string private constant _symbol = "DAISY";// 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 = 100000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 3; //Sell Fee uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 3; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xf411f47c8a428E83e931A3b8Cb75444B434D022d); address payable private _marketingAddress = payable(0xf411f47c8a428E83e931A3b8Cb75444B434D022d); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 750000000 * 10**9; // 0.75% max TX uint256 public _maxWalletSize = 1500000000 * 10**9; // 1.5% max wallet uint256 public _swapTokensAtAmount = 100000000 * 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"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 taxFeeOnSell) public onlyOwner { require(taxFeeOnSell < 10, "Tax fee cannot be more than 10%"); _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405268056bc75e2d631000006000196200001d919062000854565b6000196200002c9190620007db565b600655600060085560036009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f5573f411f47c8a428e83e931a3b8cb75444b434d022d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f411f47c8a428e83e931a3b8cb75444b434d022d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550670a688906bd8b00006015556714d1120d7b16000060165567016345785d8a00006017553480156200018657600080fd5b50600062000199620006f560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024e620006f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032d57600080fd5b505afa15801562000342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036891906200073d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003cb57600080fd5b505afa158015620003e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040691906200073d565b6040518363ffffffff1660e01b81526004016200042592919062000791565b602060405180830381600087803b1580156200044057600080fd5b505af115801562000455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047b91906200073d565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d1620006fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067e620006f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620006e69190620007be565b60405180910390a35062000909565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200073781620008ef565b92915050565b600060208284031215620007565762000755620008ea565b5b6000620007668482850162000726565b91505092915050565b6200077a8162000816565b82525050565b6200078b816200084a565b82525050565b6000604082019050620007a860008301856200076f565b620007b760208301846200076f565b9392505050565b6000602082019050620007d5600083018462000780565b92915050565b6000620007e8826200084a565b9150620007f5836200084a565b9250828210156200080b576200080a6200088c565b5b828203905092915050565b600062000823826200082a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000861826200084a565b91506200086e836200084a565b925082620008815762000880620008bb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008fa8162000816565b81146200090657600080fd5b50565b61381e80620009196000396000f3fe6080604052600436106101855760003560e01c806374010ece116100d157806398a5c3151161008a578063c492f04611610064578063c492f04614610533578063dd62ed3e1461055c578063ea1644d514610599578063f2fde38b146105c25761018c565b806398a5c315146104b6578063a9059cbb146104df578063c3c8cd801461051c5761018c565b806374010ece146103ca5780637c519ffb146103f35780637d1db4a51461040a5780638da5cb5b146104355780638f9a55c01461046057806395d89b411461048b5761018c565b8063313ce5671161013e5780636d8aa8f8116101185780636d8aa8f8146103365780636fc3eaec1461035f57806370a0823114610376578063715018a6146103b35761018c565b8063313ce567146102b757806349bd5a5e146102e257806369fe0e2d1461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105eb565b6040516101b39190612de6565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612999565b610628565b6040516101f09190612db0565b60405180910390f35b34801561020557600080fd5b5061020e610646565b60405161021b9190612dcb565b60405180910390f35b34801561023057600080fd5b5061023961066c565b6040516102469190612fc8565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612946565b61067d565b6040516102839190612db0565b60405180910390f35b34801561029857600080fd5b506102a1610756565b6040516102ae9190612fc8565b60405180910390f35b3480156102c357600080fd5b506102cc61075c565b6040516102d9919061303d565b60405180910390f35b3480156102ee57600080fd5b506102f7610765565b6040516103049190612d95565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612a66565b61078b565b005b34801561034257600080fd5b5061035d60048036038101906103589190612a39565b61086d565b005b34801561036b57600080fd5b5061037461091f565b005b34801561038257600080fd5b5061039d600480360381019061039891906128ac565b6109f0565b6040516103aa9190612fc8565b60405180910390f35b3480156103bf57600080fd5b506103c8610a41565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612a66565b610b94565b005b3480156103ff57600080fd5b50610408610c33565b005b34801561041657600080fd5b5061041f610ce4565b60405161042c9190612fc8565b60405180910390f35b34801561044157600080fd5b5061044a610cea565b6040516104579190612d95565b60405180910390f35b34801561046c57600080fd5b50610475610d13565b6040516104829190612fc8565b60405180910390f35b34801561049757600080fd5b506104a0610d19565b6040516104ad9190612de6565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612a66565b610d56565b005b3480156104eb57600080fd5b5061050660048036038101906105019190612999565b610df5565b6040516105139190612db0565b60405180910390f35b34801561052857600080fd5b50610531610e13565b005b34801561053f57600080fd5b5061055a600480360381019061055591906129d9565b610eec565b005b34801561056857600080fd5b50610583600480360381019061057e9190612906565b611026565b6040516105909190612fc8565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190612a66565b6110ad565b005b3480156105ce57600080fd5b506105e960048036038101906105e491906128ac565b61114c565b005b60606040518060400160405280600e81526020017f4a6f686e205769636b7320446f67000000000000000000000000000000000000815250905090565b600061063c61063561130e565b8484611316565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061068a8484846114e1565b61074b8461069661130e565b610746856040518060600160405280602881526020016137c160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fc61130e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c839092919063ffffffff16565b611316565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079361130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612f28565b60405180910390fd5b600a8110610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e28565b60405180910390fd5b80600b8190555050565b61087561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990612f28565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096061130e565b73ffffffffffffffffffffffffffffffffffffffff1614806109d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109be61130e565b73ffffffffffffffffffffffffffffffffffffffff16145b6109df57600080fd5b60004790506109ed81611ce7565b50565b6000610a3a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de2565b9050919050565b610a4961130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9c61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612f28565b60405180910390fd5b8060158190555050565b610c3b61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612f28565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600581526020017f4441495359000000000000000000000000000000000000000000000000000000815250905090565b610d5e61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290612f28565b60405180910390fd5b8060178190555050565b6000610e09610e0261130e565b84846114e1565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5461130e565b73ffffffffffffffffffffffffffffffffffffffff161480610eca5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb261130e565b73ffffffffffffffffffffffffffffffffffffffff16145b610ed357600080fd5b6000610ede306109f0565b9050610ee981611e50565b50565b610ef461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890612f28565b60405180910390fd5b60005b83839050811015611020578160056000868685818110610fa757610fa6613339565b5b9050602002016020810190610fbc91906128ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101890613292565b915050610f84565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110b561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990612f28565b60405180910390fd5b8060168190555050565b61115461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612ea8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612ec8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d49190612fc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612f68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e08565b60405180910390fd5b60008111611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f48565b60405180910390fd5b61160c610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561167a575061164a610cea565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119825760148054906101000a900460ff1661170757611699610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612e48565b60405180910390fd5b5b60155481111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612e88565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117f957601654816117ae846109f0565b6117b891906130ad565b106117f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ef90612f88565b60405180910390fd5b5b6000611804306109f0565b905060006017548210159050601554821061181f5760155491505b8080156118395750601460159054906101000a900460ff16155b80156118935750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118ab5750601460169054906101000a900460ff165b80156119015750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119575750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561197f5761196582611e50565b6000479050600081111561197d5761197c47611ce7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a295750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611adc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611adb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611aea5760009050611c71565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bad57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c7057600a54600c81905550600b54600d819055505b5b611c7d848484846120d8565b50505050565b6000838311158290611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc29190612de6565b60405180910390fd5b5060008385611cda919061318e565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d3760028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d62573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611db360028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dde573d6000803e3d6000fd5b5050565b6000600654821115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090612e68565b60405180910390fd5b6000611e3361214f565b9050611e48818461210590919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e8857611e87613368565b5b604051908082528060200260200182016040528015611eb65781602001602082028036833780820191505090505b5090503081600081518110611ece57611ecd613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7057600080fd5b505afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa891906128d9565b81600181518110611fbc57611fbb613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611316565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612087959493929190612fe3565b600060405180830381600087803b1580156120a157600080fd5b505af11580156120b5573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120e6576120e561217a565b5b6120f18484846121bd565b806120ff576120fe612388565b5b50505050565b600061214783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061239c565b905092915050565b600080600061215c6123ff565b91509150612173818361210590919063ffffffff16565b9250505090565b6000600c5414801561218e57506000600d54145b15612198576121bb565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121cf87612461565b95509550955095509550955061222d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230e81612571565b612318848361262e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123759190612fc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da9190612de6565b60405180910390fd5b50600083856123f29190613103565b9050809150509392505050565b60008060006006549050600068056bc75e2d63100000905061243568056bc75e2d6310000060065461210590919063ffffffff16565b8210156124545760065468056bc75e2d6310000093509350505061245d565b81819350935050505b9091565b600080600080600080600080600061247e8a600c54600d54612668565b925092509250600061248e61214f565b905060008060006124a18e8787876126fe565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061250b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c83565b905092915050565b600080828461252291906130ad565b905083811015612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e90612ee8565b60405180910390fd5b8091505092915050565b600061257b61214f565b90506000612592828461278790919063ffffffff16565b90506125e681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612643826006546124c990919063ffffffff16565b60068190555061265e8160075461251390919063ffffffff16565b6007819055505050565b6000806000806126946064612686888a61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126be60646126b0888b61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126e7826126d9858c6124c990919063ffffffff16565b6124c990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612717858961278790919063ffffffff16565b9050600061272e868961278790919063ffffffff16565b90506000612745878961278790919063ffffffff16565b9050600061276e8261276085876124c990919063ffffffff16565b6124c990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561279a57600090506127fc565b600082846127a89190613134565b90508284826127b79190613103565b146127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90612f08565b60405180910390fd5b809150505b92915050565b6000813590506128118161377b565b92915050565b6000815190506128268161377b565b92915050565b60008083601f8401126128425761284161339c565b5b8235905067ffffffffffffffff81111561285f5761285e613397565b5b60208301915083602082028301111561287b5761287a6133a1565b5b9250929050565b60008135905061289181613792565b92915050565b6000813590506128a6816137a9565b92915050565b6000602082840312156128c2576128c16133ab565b5b60006128d084828501612802565b91505092915050565b6000602082840312156128ef576128ee6133ab565b5b60006128fd84828501612817565b91505092915050565b6000806040838503121561291d5761291c6133ab565b5b600061292b85828601612802565b925050602061293c85828601612802565b9150509250929050565b60008060006060848603121561295f5761295e6133ab565b5b600061296d86828701612802565b935050602061297e86828701612802565b925050604061298f86828701612897565b9150509250925092565b600080604083850312156129b0576129af6133ab565b5b60006129be85828601612802565b92505060206129cf85828601612897565b9150509250929050565b6000806000604084860312156129f2576129f16133ab565b5b600084013567ffffffffffffffff811115612a1057612a0f6133a6565b5b612a1c8682870161282c565b93509350506020612a2f86828701612882565b9150509250925092565b600060208284031215612a4f57612a4e6133ab565b5b6000612a5d84828501612882565b91505092915050565b600060208284031215612a7c57612a7b6133ab565b5b6000612a8a84828501612897565b91505092915050565b6000612a9f8383612aab565b60208301905092915050565b612ab4816131c2565b82525050565b612ac3816131c2565b82525050565b6000612ad482613068565b612ade818561308b565b9350612ae983613058565b8060005b83811015612b1a578151612b018882612a93565b9750612b0c8361307e565b925050600181019050612aed565b5085935050505092915050565b612b30816131d4565b82525050565b612b3f81613217565b82525050565b612b4e81613229565b82525050565b6000612b5f82613073565b612b69818561309c565b9350612b7981856020860161325f565b612b82816133b0565b840191505092915050565b6000612b9a60238361309c565b9150612ba5826133c1565b604082019050919050565b6000612bbd601f8361309c565b9150612bc882613410565b602082019050919050565b6000612be0603f8361309c565b9150612beb82613439565b604082019050919050565b6000612c03602a8361309c565b9150612c0e82613488565b604082019050919050565b6000612c26601c8361309c565b9150612c31826134d7565b602082019050919050565b6000612c4960268361309c565b9150612c5482613500565b604082019050919050565b6000612c6c60228361309c565b9150612c778261354f565b604082019050919050565b6000612c8f601b8361309c565b9150612c9a8261359e565b602082019050919050565b6000612cb260218361309c565b9150612cbd826135c7565b604082019050919050565b6000612cd560208361309c565b9150612ce082613616565b602082019050919050565b6000612cf860298361309c565b9150612d038261363f565b604082019050919050565b6000612d1b60258361309c565b9150612d268261368e565b604082019050919050565b6000612d3e60238361309c565b9150612d49826136dd565b604082019050919050565b6000612d6160248361309c565b9150612d6c8261372c565b604082019050919050565b612d8081613200565b82525050565b612d8f8161320a565b82525050565b6000602082019050612daa6000830184612aba565b92915050565b6000602082019050612dc56000830184612b27565b92915050565b6000602082019050612de06000830184612b36565b92915050565b60006020820190508181036000830152612e008184612b54565b905092915050565b60006020820190508181036000830152612e2181612b8d565b9050919050565b60006020820190508181036000830152612e4181612bb0565b9050919050565b60006020820190508181036000830152612e6181612bd3565b9050919050565b60006020820190508181036000830152612e8181612bf6565b9050919050565b60006020820190508181036000830152612ea181612c19565b9050919050565b60006020820190508181036000830152612ec181612c3c565b9050919050565b60006020820190508181036000830152612ee181612c5f565b9050919050565b60006020820190508181036000830152612f0181612c82565b9050919050565b60006020820190508181036000830152612f2181612ca5565b9050919050565b60006020820190508181036000830152612f4181612cc8565b9050919050565b60006020820190508181036000830152612f6181612ceb565b9050919050565b60006020820190508181036000830152612f8181612d0e565b9050919050565b60006020820190508181036000830152612fa181612d31565b9050919050565b60006020820190508181036000830152612fc181612d54565b9050919050565b6000602082019050612fdd6000830184612d77565b92915050565b600060a082019050612ff86000830188612d77565b6130056020830187612b45565b81810360408301526130178186612ac9565b90506130266060830185612aba565b6130336080830184612d77565b9695505050505050565b60006020820190506130526000830184612d86565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130b882613200565b91506130c383613200565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f8576130f76132db565b5b828201905092915050565b600061310e82613200565b915061311983613200565b9250826131295761312861330a565b5b828204905092915050565b600061313f82613200565b915061314a83613200565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613183576131826132db565b5b828202905092915050565b600061319982613200565b91506131a483613200565b9250828210156131b7576131b66132db565b5b828203905092915050565b60006131cd826131e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132228261323b565b9050919050565b600061323482613200565b9050919050565b60006132468261324d565b9050919050565b6000613258826131e0565b9050919050565b60005b8381101561327d578082015181840152602081019050613262565b8381111561328c576000848401525b50505050565b600061329d82613200565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132d0576132cf6132db565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f546178206665652063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613784816131c2565b811461378f57600080fd5b50565b61379b816131d4565b81146137a657600080fd5b50565b6137b281613200565b81146137bd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024d1a6197222f6d72013429745a50b4663618f338b75a83aa562ac853fdd165364736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101855760003560e01c806374010ece116100d157806398a5c3151161008a578063c492f04611610064578063c492f04614610533578063dd62ed3e1461055c578063ea1644d514610599578063f2fde38b146105c25761018c565b806398a5c315146104b6578063a9059cbb146104df578063c3c8cd801461051c5761018c565b806374010ece146103ca5780637c519ffb146103f35780637d1db4a51461040a5780638da5cb5b146104355780638f9a55c01461046057806395d89b411461048b5761018c565b8063313ce5671161013e5780636d8aa8f8116101185780636d8aa8f8146103365780636fc3eaec1461035f57806370a0823114610376578063715018a6146103b35761018c565b8063313ce567146102b757806349bd5a5e146102e257806369fe0e2d1461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105eb565b6040516101b39190612de6565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612999565b610628565b6040516101f09190612db0565b60405180910390f35b34801561020557600080fd5b5061020e610646565b60405161021b9190612dcb565b60405180910390f35b34801561023057600080fd5b5061023961066c565b6040516102469190612fc8565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612946565b61067d565b6040516102839190612db0565b60405180910390f35b34801561029857600080fd5b506102a1610756565b6040516102ae9190612fc8565b60405180910390f35b3480156102c357600080fd5b506102cc61075c565b6040516102d9919061303d565b60405180910390f35b3480156102ee57600080fd5b506102f7610765565b6040516103049190612d95565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612a66565b61078b565b005b34801561034257600080fd5b5061035d60048036038101906103589190612a39565b61086d565b005b34801561036b57600080fd5b5061037461091f565b005b34801561038257600080fd5b5061039d600480360381019061039891906128ac565b6109f0565b6040516103aa9190612fc8565b60405180910390f35b3480156103bf57600080fd5b506103c8610a41565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612a66565b610b94565b005b3480156103ff57600080fd5b50610408610c33565b005b34801561041657600080fd5b5061041f610ce4565b60405161042c9190612fc8565b60405180910390f35b34801561044157600080fd5b5061044a610cea565b6040516104579190612d95565b60405180910390f35b34801561046c57600080fd5b50610475610d13565b6040516104829190612fc8565b60405180910390f35b34801561049757600080fd5b506104a0610d19565b6040516104ad9190612de6565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612a66565b610d56565b005b3480156104eb57600080fd5b5061050660048036038101906105019190612999565b610df5565b6040516105139190612db0565b60405180910390f35b34801561052857600080fd5b50610531610e13565b005b34801561053f57600080fd5b5061055a600480360381019061055591906129d9565b610eec565b005b34801561056857600080fd5b50610583600480360381019061057e9190612906565b611026565b6040516105909190612fc8565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190612a66565b6110ad565b005b3480156105ce57600080fd5b506105e960048036038101906105e491906128ac565b61114c565b005b60606040518060400160405280600e81526020017f4a6f686e205769636b7320446f67000000000000000000000000000000000000815250905090565b600061063c61063561130e565b8484611316565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061068a8484846114e1565b61074b8461069661130e565b610746856040518060600160405280602881526020016137c160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fc61130e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c839092919063ffffffff16565b611316565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079361130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612f28565b60405180910390fd5b600a8110610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e28565b60405180910390fd5b80600b8190555050565b61087561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990612f28565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096061130e565b73ffffffffffffffffffffffffffffffffffffffff1614806109d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109be61130e565b73ffffffffffffffffffffffffffffffffffffffff16145b6109df57600080fd5b60004790506109ed81611ce7565b50565b6000610a3a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de2565b9050919050565b610a4961130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9c61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612f28565b60405180910390fd5b8060158190555050565b610c3b61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612f28565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600581526020017f4441495359000000000000000000000000000000000000000000000000000000815250905090565b610d5e61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290612f28565b60405180910390fd5b8060178190555050565b6000610e09610e0261130e565b84846114e1565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5461130e565b73ffffffffffffffffffffffffffffffffffffffff161480610eca5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb261130e565b73ffffffffffffffffffffffffffffffffffffffff16145b610ed357600080fd5b6000610ede306109f0565b9050610ee981611e50565b50565b610ef461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890612f28565b60405180910390fd5b60005b83839050811015611020578160056000868685818110610fa757610fa6613339565b5b9050602002016020810190610fbc91906128ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101890613292565b915050610f84565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110b561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990612f28565b60405180910390fd5b8060168190555050565b61115461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612ea8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612ec8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d49190612fc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612f68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e08565b60405180910390fd5b60008111611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f48565b60405180910390fd5b61160c610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561167a575061164a610cea565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119825760148054906101000a900460ff1661170757611699610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612e48565b60405180910390fd5b5b60155481111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612e88565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117f957601654816117ae846109f0565b6117b891906130ad565b106117f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ef90612f88565b60405180910390fd5b5b6000611804306109f0565b905060006017548210159050601554821061181f5760155491505b8080156118395750601460159054906101000a900460ff16155b80156118935750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118ab5750601460169054906101000a900460ff165b80156119015750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119575750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561197f5761196582611e50565b6000479050600081111561197d5761197c47611ce7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a295750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611adc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611adb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611aea5760009050611c71565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bad57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c7057600a54600c81905550600b54600d819055505b5b611c7d848484846120d8565b50505050565b6000838311158290611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc29190612de6565b60405180910390fd5b5060008385611cda919061318e565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d3760028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d62573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611db360028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dde573d6000803e3d6000fd5b5050565b6000600654821115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090612e68565b60405180910390fd5b6000611e3361214f565b9050611e48818461210590919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e8857611e87613368565b5b604051908082528060200260200182016040528015611eb65781602001602082028036833780820191505090505b5090503081600081518110611ece57611ecd613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7057600080fd5b505afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa891906128d9565b81600181518110611fbc57611fbb613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611316565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612087959493929190612fe3565b600060405180830381600087803b1580156120a157600080fd5b505af11580156120b5573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120e6576120e561217a565b5b6120f18484846121bd565b806120ff576120fe612388565b5b50505050565b600061214783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061239c565b905092915050565b600080600061215c6123ff565b91509150612173818361210590919063ffffffff16565b9250505090565b6000600c5414801561218e57506000600d54145b15612198576121bb565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121cf87612461565b95509550955095509550955061222d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230e81612571565b612318848361262e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123759190612fc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da9190612de6565b60405180910390fd5b50600083856123f29190613103565b9050809150509392505050565b60008060006006549050600068056bc75e2d63100000905061243568056bc75e2d6310000060065461210590919063ffffffff16565b8210156124545760065468056bc75e2d6310000093509350505061245d565b81819350935050505b9091565b600080600080600080600080600061247e8a600c54600d54612668565b925092509250600061248e61214f565b905060008060006124a18e8787876126fe565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061250b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c83565b905092915050565b600080828461252291906130ad565b905083811015612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e90612ee8565b60405180910390fd5b8091505092915050565b600061257b61214f565b90506000612592828461278790919063ffffffff16565b90506125e681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612643826006546124c990919063ffffffff16565b60068190555061265e8160075461251390919063ffffffff16565b6007819055505050565b6000806000806126946064612686888a61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126be60646126b0888b61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126e7826126d9858c6124c990919063ffffffff16565b6124c990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612717858961278790919063ffffffff16565b9050600061272e868961278790919063ffffffff16565b90506000612745878961278790919063ffffffff16565b9050600061276e8261276085876124c990919063ffffffff16565b6124c990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561279a57600090506127fc565b600082846127a89190613134565b90508284826127b79190613103565b146127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90612f08565b60405180910390fd5b809150505b92915050565b6000813590506128118161377b565b92915050565b6000815190506128268161377b565b92915050565b60008083601f8401126128425761284161339c565b5b8235905067ffffffffffffffff81111561285f5761285e613397565b5b60208301915083602082028301111561287b5761287a6133a1565b5b9250929050565b60008135905061289181613792565b92915050565b6000813590506128a6816137a9565b92915050565b6000602082840312156128c2576128c16133ab565b5b60006128d084828501612802565b91505092915050565b6000602082840312156128ef576128ee6133ab565b5b60006128fd84828501612817565b91505092915050565b6000806040838503121561291d5761291c6133ab565b5b600061292b85828601612802565b925050602061293c85828601612802565b9150509250929050565b60008060006060848603121561295f5761295e6133ab565b5b600061296d86828701612802565b935050602061297e86828701612802565b925050604061298f86828701612897565b9150509250925092565b600080604083850312156129b0576129af6133ab565b5b60006129be85828601612802565b92505060206129cf85828601612897565b9150509250929050565b6000806000604084860312156129f2576129f16133ab565b5b600084013567ffffffffffffffff811115612a1057612a0f6133a6565b5b612a1c8682870161282c565b93509350506020612a2f86828701612882565b9150509250925092565b600060208284031215612a4f57612a4e6133ab565b5b6000612a5d84828501612882565b91505092915050565b600060208284031215612a7c57612a7b6133ab565b5b6000612a8a84828501612897565b91505092915050565b6000612a9f8383612aab565b60208301905092915050565b612ab4816131c2565b82525050565b612ac3816131c2565b82525050565b6000612ad482613068565b612ade818561308b565b9350612ae983613058565b8060005b83811015612b1a578151612b018882612a93565b9750612b0c8361307e565b925050600181019050612aed565b5085935050505092915050565b612b30816131d4565b82525050565b612b3f81613217565b82525050565b612b4e81613229565b82525050565b6000612b5f82613073565b612b69818561309c565b9350612b7981856020860161325f565b612b82816133b0565b840191505092915050565b6000612b9a60238361309c565b9150612ba5826133c1565b604082019050919050565b6000612bbd601f8361309c565b9150612bc882613410565b602082019050919050565b6000612be0603f8361309c565b9150612beb82613439565b604082019050919050565b6000612c03602a8361309c565b9150612c0e82613488565b604082019050919050565b6000612c26601c8361309c565b9150612c31826134d7565b602082019050919050565b6000612c4960268361309c565b9150612c5482613500565b604082019050919050565b6000612c6c60228361309c565b9150612c778261354f565b604082019050919050565b6000612c8f601b8361309c565b9150612c9a8261359e565b602082019050919050565b6000612cb260218361309c565b9150612cbd826135c7565b604082019050919050565b6000612cd560208361309c565b9150612ce082613616565b602082019050919050565b6000612cf860298361309c565b9150612d038261363f565b604082019050919050565b6000612d1b60258361309c565b9150612d268261368e565b604082019050919050565b6000612d3e60238361309c565b9150612d49826136dd565b604082019050919050565b6000612d6160248361309c565b9150612d6c8261372c565b604082019050919050565b612d8081613200565b82525050565b612d8f8161320a565b82525050565b6000602082019050612daa6000830184612aba565b92915050565b6000602082019050612dc56000830184612b27565b92915050565b6000602082019050612de06000830184612b36565b92915050565b60006020820190508181036000830152612e008184612b54565b905092915050565b60006020820190508181036000830152612e2181612b8d565b9050919050565b60006020820190508181036000830152612e4181612bb0565b9050919050565b60006020820190508181036000830152612e6181612bd3565b9050919050565b60006020820190508181036000830152612e8181612bf6565b9050919050565b60006020820190508181036000830152612ea181612c19565b9050919050565b60006020820190508181036000830152612ec181612c3c565b9050919050565b60006020820190508181036000830152612ee181612c5f565b9050919050565b60006020820190508181036000830152612f0181612c82565b9050919050565b60006020820190508181036000830152612f2181612ca5565b9050919050565b60006020820190508181036000830152612f4181612cc8565b9050919050565b60006020820190508181036000830152612f6181612ceb565b9050919050565b60006020820190508181036000830152612f8181612d0e565b9050919050565b60006020820190508181036000830152612fa181612d31565b9050919050565b60006020820190508181036000830152612fc181612d54565b9050919050565b6000602082019050612fdd6000830184612d77565b92915050565b600060a082019050612ff86000830188612d77565b6130056020830187612b45565b81810360408301526130178186612ac9565b90506130266060830185612aba565b6130336080830184612d77565b9695505050505050565b60006020820190506130526000830184612d86565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130b882613200565b91506130c383613200565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f8576130f76132db565b5b828201905092915050565b600061310e82613200565b915061311983613200565b9250826131295761312861330a565b5b828204905092915050565b600061313f82613200565b915061314a83613200565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613183576131826132db565b5b828202905092915050565b600061319982613200565b91506131a483613200565b9250828210156131b7576131b66132db565b5b828203905092915050565b60006131cd826131e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132228261323b565b9050919050565b600061323482613200565b9050919050565b60006132468261324d565b9050919050565b6000613258826131e0565b9050919050565b60005b8381101561327d578082015181840152602081019050613262565b8381111561328c576000848401525b50505050565b600061329d82613200565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132d0576132cf6132db565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f546178206665652063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613784816131c2565b811461378f57600080fd5b50565b61379b816131d4565b81146137a657600080fd5b50565b6137b281613200565b81146137bd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024d1a6197222f6d72013429745a50b4663618f338b75a83aa562ac853fdd165364736f6c63430008070033
Deployed Bytecode Sourcemap
4220:13200:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6801:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7733:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7081:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7935:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5934:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6989:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5637:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16379:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16798:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12712:235;;;;;;;;;;;;;:::i;:::-;;7185:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1693:148;;;;;;;;;;;;;:::i;:::-;;16942:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12382:76;;;;;;;;;;;;;:::i;:::-;;5788:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1477:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5858:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6893:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16606:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7332:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12467:236;;;;;;;;;;;;;:::i;:::-;;17183:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7540:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17059:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1850:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6801:83;6838:13;6871:5;;;;;;;;;;;;;;;;;6864:12;;6801:83;:::o;7733:193::-;7835:4;7857:39;7866:12;:10;:12::i;:::-;7880:7;7889:6;7857:8;:39::i;:::-;7914:4;7907:11;;7733:193;;;;:::o;5589:41::-;;;;;;;;;;;;;:::o;7081:95::-;7134:7;4785:20;7154:14;;7081:95;:::o;7935:446::-;8067:4;8084:36;8094:6;8102:9;8113:6;8084:9;:36::i;:::-;8131:220;8154:6;8175:12;:10;:12::i;:::-;8202:138;8258:6;8202:138;;;;;;;;;;;;;;;;;:11;:19;8214:6;8202:19;;;;;;;;;;;;;;;:33;8222:12;:10;:12::i;:::-;8202:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8131:8;:220::i;:::-;8369:4;8362:11;;7935:446;;;;;:::o;5934:54::-;;;;:::o;6989:83::-;7030:5;4458:1;7048:16;;6989:83;:::o;5637:28::-;;;;;;;;;;;;;:::o;16379:174::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16468:2:::1;16453:12;:17;16445:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16533:12;16517:13;:28;;;;16379:174:::0;:::o;16798:101::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16879:12:::1;16865:11;;:26;;;;;;;;;;;;;;;;;;16798:101:::0;:::o;12712:235::-;12778:19;;;;;;;;;;;12762:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12817:17;;;;;;;;;;;12801:33;;:12;:10;:12::i;:::-;:33;;;12762:72;12754:81;;;;;;12846:26;12875:21;12846:50;;12907:32;12920:18;12907:12;:32::i;:::-;12743:204;12712:235::o;7185:138::-;7251:7;7278:37;7298:7;:16;7306:7;7298:16;;;;;;;;;;;;;;;;7278:19;:37::i;:::-;7271:44;;7185:138;;;:::o;1693:148::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1800:1:::1;1763:40;;1784:6;::::0;::::1;;;;;;;;1763:40;;;;;;;;;;;;1831:1;1814:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1693:148::o:0;16942:108::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17031:11:::1;17016:12;:26;;;;16942:108:::0;:::o;12382:76::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12446:4:::1;12432:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12382:76::o:0;5788:47::-;;;;:::o;1477:79::-;1515:7;1542:6;;;;;;;;;;;1535:13;;1477:79;:::o;5858:50::-;;;;:::o;6893:87::-;6932:13;6965:7;;;;;;;;;;;;;;;;;6958:14;;6893:87;:::o;16606:139::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16719:18:::1;16697:19;:40;;;;16606:139:::0;:::o;7332:199::-;7437:4;7459:42;7469:12;:10;:12::i;:::-;7483:9;7494:6;7459:9;:42::i;:::-;7519:4;7512:11;;7332:199;;;;:::o;12467:236::-;12533:19;;;;;;;;;;;12517:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12572:17;;;;;;;;;;;12556:33;;:12;:10;:12::i;:::-;:33;;;12517:72;12509:81;;;;;;12601:23;12627:24;12645:4;12627:9;:24::i;:::-;12601:50;;12662:33;12679:15;12662:16;:33::i;:::-;12498:205;12467:236::o;17183:234::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17300:9:::1;17296:114;17319:8;;:15;;17315:1;:19;17296:114;;;17390:8;17356:18;:31;17375:8;;17384:1;17375:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17356:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17336:3;;;;;:::i;:::-;;;;17296:114;;;;17183:234:::0;;;:::o;7540:184::-;7657:7;7689:11;:18;7701:5;7689:18;;;;;;;;;;;;;;;:27;7708:7;7689:27;;;;;;;;;;;;;;;;7682:34;;7540:184;;;;:::o;17059:115::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17153:13:::1;17136:14;:30;;;;17059:115:::0;:::o;1850:244::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1959:1:::1;1939:22;;:8;:22;;;;1931:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2049:8;2020:38;;2041:6;::::0;::::1;;;;;;;;2020:38;;;;;;;;;;;;2078:8;2069:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1850:244:::0;:::o;226:98::-;279:7;306:10;299:17;;226:98;:::o;9078:369::-;9222:1;9205:19;;:5;:19;;;;9197:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9303:1;9284:21;;:7;:21;;;;9276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9385:6;9355:11;:18;9367:5;9355:18;;;;;;;;;;;;;;;:27;9374:7;9355:27;;;;;;;;;;;;;;;:36;;;;9423:7;9407:32;;9416:5;9407:32;;;9432:6;9407:32;;;;;;:::i;:::-;;;;;;;;9078:369;;;:::o;9456:2256::-;9594:1;9578:18;;:4;:18;;;;9570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9671:1;9657:16;;:2;:16;;;;9649:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9741:1;9732:6;:10;9724:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9814:7;:5;:7::i;:::-;9806:15;;:4;:15;;;;:32;;;;;9831:7;:5;:7::i;:::-;9825:13;;:2;:13;;;;9806:32;9802:1178;;;9896:11;;;;;;;;;;9891:144;;9944:7;:5;:7::i;:::-;9936:15;;:4;:15;;;9928:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9891:144;10070:12;;10060:6;:22;;10052:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10142:13;;;;;;;;;;;10136:19;;:2;:19;;;10133:146;;10209:14;;10200:6;10184:13;10194:2;10184:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10176:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10133:146;10296:28;10327:24;10345:4;10327:9;:24::i;:::-;10296:55;;10366:12;10405:19;;10381:20;:43;;10366:58;;10469:12;;10445:20;:36;10442:124;;10538:12;;10515:35;;10442:124;10587:7;:18;;;;;10599:6;;;;;;;;;;;10598:7;10587:18;:43;;;;;10617:13;;;;;;;;;;;10609:21;;:4;:21;;;;10587:43;:58;;;;;10634:11;;;;;;;;;;;10587:58;:87;;;;;10650:18;:24;10669:4;10650:24;;;;;;;;;;;;;;;;;;;;;;;;;10649:25;10587:87;:114;;;;;10679:18;:22;10698:2;10679:22;;;;;;;;;;;;;;;;;;;;;;;;;10678:23;10587:114;10583:386;;;10722:38;10739:20;10722:16;:38::i;:::-;10779:26;10808:21;10779:50;;10873:1;10852:18;:22;10848:106;;;10899:35;10912:21;10899:12;:35::i;:::-;10848:106;10703:266;10583:386;9840:1140;;9802:1178;10993:12;11008:4;10993:19;;11058:18;:24;11077:4;11058:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11086:18;:22;11105:2;11086:22;;;;;;;;;;;;;;;;;;;;;;;;;11058:50;11057:102;;;;11122:13;;;;;;;;;;;11114:21;;:4;:21;;;;:44;;;;;11145:13;;;;;;;;;;;11139:19;;:2;:19;;;;11114:44;11057:102;11053:597;;;11186:5;11176:15;;11053:597;;;11270:13;;;;;;;;;;;11262:21;;:4;:21;;;:55;;;;;11301:15;;;;;;;;;;;11287:30;;:2;:30;;;;11262:55;11259:162;;;11350:14;;11338:9;:26;;;;11393:12;;11383:7;:22;;;;11259:162;11481:13;;;;;;;;;;;11475:19;;:2;:19;;;:55;;;;;11514:15;;;;;;;;;;;11498:32;;:4;:32;;;;11475:55;11471:165;;;11563:15;;11551:9;:27;;;;11607:13;;11597:7;:23;;;;11471:165;11053:597;11663:41;11678:4;11684:2;11688:6;11696:7;11663:14;:41::i;:::-;9559:2153;9456:2256;;;:::o;2462:224::-;2582:7;2615:1;2610;:6;;2618:12;2602:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2642:9;2658:1;2654;:5;;;;:::i;:::-;2642:17;;2677:1;2670:8;;;2462:224;;;;;:::o;12213:160::-;12270:19;;;;;;;;;;;:28;;:43;12299:13;12310:1;12299:6;:10;;:13;;;;:::i;:::-;12270:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12324:17;;;;;;;;;;;:26;;:41;12351:13;12362:1;12351:6;:10;;:13;;;;:::i;:::-;12324:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12213:160;:::o;8390:323::-;8485:7;8543;;8532;:18;;8510:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8631:19;8653:10;:8;:10::i;:::-;8631:32;;8681:24;8693:11;8681:7;:11;;:24;;;;:::i;:::-;8674:31;;;8390:323;;;:::o;11721:483::-;6093:4;6084:6;;:13;;;;;;;;;;;;;;;;;;11799:21:::1;11837:1;11823:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11799:40;;11868:4;11850;11855:1;11850:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11894:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11884:4;11889:1;11884:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11927:62;11944:4;11959:15;;;;;;;;;;;11977:11;11927:8;:62::i;:::-;12000:15;;;;;;;;;;;:66;;;12081:11;12107:1;12123:4;12150;12170:15;12000:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11788:416;6129:5:::0;6120:6;;:14;;;;;;;;;;;;;;;;;;11721:483;:::o;12956:282::-;13112:7;13107:28;;13121:14;:12;:14::i;:::-;13107:28;13146:44;13164:6;13172:9;13183:6;13146:17;:44::i;:::-;13206:7;13201:29;;13215:15;:13;:15::i;:::-;13201:29;12956:282;;;;:::o;2950:132::-;3008:7;3035:39;3039:1;3042;3035:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3028:46;;2950:132;;;;:::o;15934:167::-;15976:7;15997:15;16014;16033:19;:17;:19::i;:::-;15996:56;;;;16073:20;16085:7;16073;:11;;:20;;;;:::i;:::-;16066:27;;;;15934:167;:::o;8722:221::-;8782:1;8769:9;;:14;:30;;;;;8798:1;8787:7;;:12;8769:30;8765:43;;;8801:7;;8765:43;8841:9;;8821:17;:29;;;;8879:7;;8861:15;:25;;;;8912:1;8900:9;:13;;;;8934:1;8924:7;:11;;;;8722:221;:::o;13247:610::-;13394:15;13424:23;13462:12;13489:23;13527:12;13554:13;13581:19;13592:7;13581:10;:19::i;:::-;13379:221;;;;;;;;;;;;13629:28;13649:7;13629;:15;13637:6;13629:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13611:7;:15;13619:6;13611:15;;;;;;;;;;;;;;;:46;;;;13689:39;13712:15;13689:7;:18;13697:9;13689:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13668:7;:18;13676:9;13668:18;;;;;;;;;;;;;;;:60;;;;13739:16;13749:5;13739:9;:16::i;:::-;13766:23;13778:4;13784;13766:11;:23::i;:::-;13822:9;13805:44;;13814:6;13805:44;;;13833:15;13805:44;;;;;;:::i;:::-;;;;;;;;13368:489;;;;;;13247:610;;;:::o;8952:117::-;9008:17;;8996:9;:29;;;;9046:15;;9036:7;:25;;;;8952:117::o;3091:223::-;3211:7;3243:1;3239;:5;3246:12;3231:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3270:9;3286:1;3282;:5;;;;:::i;:::-;3270:17;;3305:1;3298:8;;;3091:223;;;;;:::o;16110:260::-;16161:7;16170;16190:15;16208:7;;16190:25;;16226:15;4785:20;16226:25;;16276:20;4785;16276:7;;:11;;:20;;;;:::i;:::-;16266:7;:30;16262:61;;;16306:7;;4785:20;16298:25;;;;;;;;16262:61;16345:7;16354;16337:25;;;;;;16110:260;;;:::o;14280:618::-;14380:7;14402;14424;14446;14468;14490;14526:23;14551:12;14565:13;14595:40;14607:7;14616:9;;14627:7;;14595:11;:40::i;:::-;14525:110;;;;;;14646:19;14668:10;:8;:10::i;:::-;14646:32;;14690:15;14707:23;14732:12;14761:46;14773:7;14782:4;14788:5;14795:11;14761;:46::i;:::-;14689:118;;;;;;14829:7;14838:15;14855:4;14861:15;14878:4;14884:5;14821:69;;;;;;;;;;;;;;;;;;;14280:618;;;;;;;:::o;2317:136::-;2375:7;2402:43;2406:1;2409;2402:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2395:50;;2317:136;;;;:::o;2129:179::-;2187:7;2207:9;2223:1;2219;:5;;;;:::i;:::-;2207:17;;2248:1;2243;:6;;2235:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2299:1;2292:8;;;2129:179;;;;:::o;13866:211::-;13919:19;13941:10;:8;:10::i;:::-;13919:32;;13962:13;13978:22;13988:11;13978:5;:9;;:22;;;;:::i;:::-;13962:38;;14036:33;14063:5;14036:7;:22;14052:4;14036:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14011:7;:22;14027:4;14011:22;;;;;;;;;;;;;;;:58;;;;13908:169;;13866:211;:::o;14086:147::-;14164:17;14176:4;14164:7;;:11;;:17;;;;:::i;:::-;14154:7;:27;;;;14205:20;14220:4;14205:10;;:14;;:20;;;;:::i;:::-;14192:10;:33;;;;14086:147;;:::o;14907:472::-;15076:7;15098;15120;15155:12;15170:30;15196:3;15170:21;15182:8;15170:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15155:45;;15211:13;15227:28;15251:3;15227:19;15239:6;15227:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15211:44;;15266:23;15292:28;15314:5;15292:17;15304:4;15292:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15266:54;;15342:15;15359:4;15365:5;15334:37;;;;;;;;;14907:472;;;;;;;:::o;15388:537::-;15582:7;15604;15626;15661:15;15679:24;15691:11;15679:7;:11;;:24;;;;:::i;:::-;15661:42;;15714:12;15729:21;15738:11;15729:4;:8;;:21;;;;:::i;:::-;15714:36;;15761:13;15777:22;15787:11;15777:5;:9;;:22;;;;:::i;:::-;15761:38;;15810:23;15836:28;15858:5;15836:17;15848:4;15836:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15810:54;;15886:7;15895:15;15912:4;15878:39;;;;;;;;;;15388:537;;;;;;;;:::o;2695:246::-;2753:7;2782:1;2777;:6;2773:47;;;2807:1;2800:8;;;;2773:47;2830:9;2846:1;2842;:5;;;;:::i;:::-;2830:17;;2875:1;2870;2866;:5;;;;:::i;:::-;:10;2858:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2932:1;2925:8;;;2695:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:323::-;4213:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:119;;;4268:79;;:::i;:::-;4230:119;4388:1;4413:50;4455:7;4446:6;4435:9;4431:22;4413:50;:::i;:::-;4403:60;;4359:114;4157:323;;;;:::o;4486:329::-;4545:6;4594:2;4582:9;4573:7;4569:23;4565:32;4562:119;;;4600:79;;:::i;:::-;4562:119;4720:1;4745:53;4790:7;4781:6;4770:9;4766:22;4745:53;:::i;:::-;4735:63;;4691:117;4486:329;;;;:::o;4821:179::-;4890:10;4911:46;4953:3;4945:6;4911:46;:::i;:::-;4989:4;4984:3;4980:14;4966:28;;4821:179;;;;:::o;5006:108::-;5083:24;5101:5;5083:24;:::i;:::-;5078:3;5071:37;5006:108;;:::o;5120:118::-;5207:24;5225:5;5207:24;:::i;:::-;5202:3;5195:37;5120:118;;:::o;5274:732::-;5393:3;5422:54;5470:5;5422:54;:::i;:::-;5492:86;5571:6;5566:3;5492:86;:::i;:::-;5485:93;;5602:56;5652:5;5602:56;:::i;:::-;5681:7;5712:1;5697:284;5722:6;5719:1;5716:13;5697:284;;;5798:6;5792:13;5825:63;5884:3;5869:13;5825:63;:::i;:::-;5818:70;;5911:60;5964:6;5911:60;:::i;:::-;5901:70;;5757:224;5744:1;5741;5737:9;5732:14;;5697:284;;;5701:14;5997:3;5990:10;;5398:608;;;5274:732;;;;:::o;6012:109::-;6093:21;6108:5;6093:21;:::i;:::-;6088:3;6081:34;6012:109;;:::o;6127:183::-;6240:63;6297:5;6240:63;:::i;:::-;6235:3;6228:76;6127:183;;:::o;6316:147::-;6411:45;6450:5;6411:45;:::i;:::-;6406:3;6399:58;6316:147;;:::o;6469:364::-;6557:3;6585:39;6618:5;6585:39;:::i;:::-;6640:71;6704:6;6699:3;6640:71;:::i;:::-;6633:78;;6720:52;6765:6;6760:3;6753:4;6746:5;6742:16;6720:52;:::i;:::-;6797:29;6819:6;6797:29;:::i;:::-;6792:3;6788:39;6781:46;;6561:272;6469:364;;;;:::o;6839:366::-;6981:3;7002:67;7066:2;7061:3;7002:67;:::i;:::-;6995:74;;7078:93;7167:3;7078:93;:::i;:::-;7196:2;7191:3;7187:12;7180:19;;6839:366;;;:::o;7211:::-;7353:3;7374:67;7438:2;7433:3;7374:67;:::i;:::-;7367:74;;7450:93;7539:3;7450:93;:::i;:::-;7568:2;7563:3;7559:12;7552:19;;7211:366;;;:::o;7583:::-;7725:3;7746:67;7810:2;7805:3;7746:67;:::i;:::-;7739:74;;7822:93;7911:3;7822:93;:::i;:::-;7940:2;7935:3;7931:12;7924:19;;7583:366;;;:::o;7955:::-;8097:3;8118:67;8182:2;8177:3;8118:67;:::i;:::-;8111:74;;8194:93;8283:3;8194:93;:::i;:::-;8312:2;8307:3;8303:12;8296:19;;7955:366;;;:::o;8327:::-;8469:3;8490:67;8554:2;8549:3;8490:67;:::i;:::-;8483:74;;8566:93;8655:3;8566:93;:::i;:::-;8684:2;8679:3;8675:12;8668:19;;8327:366;;;:::o;8699:::-;8841:3;8862:67;8926:2;8921:3;8862:67;:::i;:::-;8855:74;;8938:93;9027:3;8938:93;:::i;:::-;9056:2;9051:3;9047:12;9040:19;;8699:366;;;:::o;9071:::-;9213:3;9234:67;9298:2;9293:3;9234:67;:::i;:::-;9227:74;;9310:93;9399:3;9310:93;:::i;:::-;9428:2;9423:3;9419:12;9412:19;;9071:366;;;:::o;9443:::-;9585:3;9606:67;9670:2;9665:3;9606:67;:::i;:::-;9599:74;;9682:93;9771:3;9682:93;:::i;:::-;9800:2;9795:3;9791:12;9784:19;;9443:366;;;:::o;9815:::-;9957:3;9978:67;10042:2;10037:3;9978:67;:::i;:::-;9971:74;;10054:93;10143:3;10054:93;:::i;:::-;10172:2;10167:3;10163:12;10156:19;;9815:366;;;:::o;10187:::-;10329:3;10350:67;10414:2;10409:3;10350:67;:::i;:::-;10343:74;;10426:93;10515:3;10426:93;:::i;:::-;10544:2;10539:3;10535:12;10528:19;;10187:366;;;:::o;10559:::-;10701:3;10722:67;10786:2;10781:3;10722:67;:::i;:::-;10715:74;;10798:93;10887:3;10798:93;:::i;:::-;10916:2;10911:3;10907:12;10900:19;;10559:366;;;:::o;10931:::-;11073:3;11094:67;11158:2;11153:3;11094:67;:::i;:::-;11087:74;;11170:93;11259:3;11170:93;:::i;:::-;11288:2;11283:3;11279:12;11272:19;;10931:366;;;:::o;11303:::-;11445:3;11466:67;11530:2;11525:3;11466:67;:::i;:::-;11459:74;;11542:93;11631:3;11542:93;:::i;:::-;11660:2;11655:3;11651:12;11644:19;;11303:366;;;:::o;11675:::-;11817:3;11838:67;11902:2;11897:3;11838:67;:::i;:::-;11831:74;;11914:93;12003:3;11914:93;:::i;:::-;12032:2;12027:3;12023:12;12016:19;;11675:366;;;:::o;12047:118::-;12134:24;12152:5;12134:24;:::i;:::-;12129:3;12122:37;12047:118;;:::o;12171:112::-;12254:22;12270:5;12254:22;:::i;:::-;12249:3;12242:35;12171:112;;:::o;12289:222::-;12382:4;12420:2;12409:9;12405:18;12397:26;;12433:71;12501:1;12490:9;12486:17;12477:6;12433:71;:::i;:::-;12289:222;;;;:::o;12517:210::-;12604:4;12642:2;12631:9;12627:18;12619:26;;12655:65;12717:1;12706:9;12702:17;12693:6;12655:65;:::i;:::-;12517:210;;;;:::o;12733:274::-;12852:4;12890:2;12879:9;12875:18;12867:26;;12903:97;12997:1;12986:9;12982:17;12973:6;12903:97;:::i;:::-;12733:274;;;;:::o;13013:313::-;13126:4;13164:2;13153:9;13149:18;13141:26;;13213:9;13207:4;13203:20;13199:1;13188:9;13184:17;13177:47;13241:78;13314:4;13305:6;13241:78;:::i;:::-;13233:86;;13013:313;;;;:::o;13332:419::-;13498:4;13536:2;13525:9;13521:18;13513:26;;13585:9;13579:4;13575:20;13571:1;13560:9;13556:17;13549:47;13613:131;13739:4;13613:131;:::i;:::-;13605:139;;13332:419;;;:::o;13757:::-;13923:4;13961:2;13950:9;13946:18;13938:26;;14010:9;14004:4;14000:20;13996:1;13985:9;13981:17;13974:47;14038:131;14164:4;14038:131;:::i;:::-;14030:139;;13757:419;;;:::o;14182:::-;14348:4;14386:2;14375:9;14371:18;14363:26;;14435:9;14429:4;14425:20;14421:1;14410:9;14406:17;14399:47;14463:131;14589:4;14463:131;:::i;:::-;14455:139;;14182:419;;;:::o;14607:::-;14773:4;14811:2;14800:9;14796:18;14788:26;;14860:9;14854:4;14850:20;14846:1;14835:9;14831:17;14824:47;14888:131;15014:4;14888:131;:::i;:::-;14880:139;;14607:419;;;:::o;15032:::-;15198:4;15236:2;15225:9;15221:18;15213:26;;15285:9;15279:4;15275:20;15271:1;15260:9;15256:17;15249:47;15313:131;15439:4;15313:131;:::i;:::-;15305:139;;15032:419;;;:::o;15457:::-;15623:4;15661:2;15650:9;15646:18;15638:26;;15710:9;15704:4;15700:20;15696:1;15685:9;15681:17;15674:47;15738:131;15864:4;15738:131;:::i;:::-;15730:139;;15457:419;;;:::o;15882:::-;16048:4;16086:2;16075:9;16071:18;16063:26;;16135:9;16129:4;16125:20;16121:1;16110:9;16106:17;16099:47;16163:131;16289:4;16163:131;:::i;:::-;16155:139;;15882:419;;;:::o;16307:::-;16473:4;16511:2;16500:9;16496:18;16488:26;;16560:9;16554:4;16550:20;16546:1;16535:9;16531:17;16524:47;16588:131;16714:4;16588:131;:::i;:::-;16580:139;;16307:419;;;:::o;16732:::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:::-;17323:4;17361:2;17350:9;17346:18;17338:26;;17410:9;17404:4;17400:20;17396:1;17385:9;17381:17;17374:47;17438:131;17564:4;17438:131;:::i;:::-;17430:139;;17157:419;;;:::o;17582:::-;17748:4;17786:2;17775:9;17771:18;17763:26;;17835:9;17829:4;17825:20;17821:1;17810:9;17806:17;17799:47;17863:131;17989:4;17863:131;:::i;:::-;17855:139;;17582:419;;;:::o;18007:::-;18173:4;18211:2;18200:9;18196:18;18188:26;;18260:9;18254:4;18250:20;18246:1;18235:9;18231:17;18224:47;18288:131;18414:4;18288:131;:::i;:::-;18280:139;;18007:419;;;:::o;18432:::-;18598:4;18636:2;18625:9;18621:18;18613:26;;18685:9;18679:4;18675:20;18671:1;18660:9;18656:17;18649:47;18713:131;18839:4;18713:131;:::i;:::-;18705:139;;18432:419;;;:::o;18857:::-;19023:4;19061:2;19050:9;19046:18;19038:26;;19110:9;19104:4;19100:20;19096:1;19085:9;19081:17;19074:47;19138:131;19264:4;19138:131;:::i;:::-;19130:139;;18857:419;;;:::o;19282:222::-;19375:4;19413:2;19402:9;19398:18;19390:26;;19426:71;19494:1;19483:9;19479:17;19470:6;19426:71;:::i;:::-;19282:222;;;;:::o;19510:831::-;19773:4;19811:3;19800:9;19796:19;19788:27;;19825:71;19893:1;19882:9;19878:17;19869:6;19825:71;:::i;:::-;19906:80;19982:2;19971:9;19967:18;19958:6;19906:80;:::i;:::-;20033:9;20027:4;20023:20;20018:2;20007:9;20003:18;19996:48;20061:108;20164:4;20155:6;20061:108;:::i;:::-;20053:116;;20179:72;20247:2;20236:9;20232:18;20223:6;20179:72;:::i;:::-;20261:73;20329:3;20318:9;20314:19;20305:6;20261:73;:::i;:::-;19510:831;;;;;;;;:::o;20347:214::-;20436:4;20474:2;20463:9;20459:18;20451:26;;20487:67;20551:1;20540:9;20536:17;20527:6;20487:67;:::i;:::-;20347:214;;;;:::o;20648:132::-;20715:4;20738:3;20730:11;;20768:4;20763:3;20759:14;20751:22;;20648:132;;;:::o;20786:114::-;20853:6;20887:5;20881:12;20871:22;;20786:114;;;:::o;20906:99::-;20958:6;20992:5;20986:12;20976:22;;20906:99;;;:::o;21011:113::-;21081:4;21113;21108:3;21104:14;21096:22;;21011:113;;;:::o;21130:184::-;21229:11;21263:6;21258:3;21251:19;21303:4;21298:3;21294:14;21279:29;;21130:184;;;;:::o;21320:169::-;21404:11;21438:6;21433:3;21426:19;21478:4;21473:3;21469:14;21454:29;;21320:169;;;;:::o;21495:305::-;21535:3;21554:20;21572:1;21554:20;:::i;:::-;21549:25;;21588:20;21606:1;21588:20;:::i;:::-;21583:25;;21742:1;21674:66;21670:74;21667:1;21664:81;21661:107;;;21748:18;;:::i;:::-;21661:107;21792:1;21789;21785:9;21778:16;;21495:305;;;;:::o;21806:185::-;21846:1;21863:20;21881:1;21863:20;:::i;:::-;21858:25;;21897:20;21915:1;21897:20;:::i;:::-;21892:25;;21936:1;21926:35;;21941:18;;:::i;:::-;21926:35;21983:1;21980;21976:9;21971:14;;21806:185;;;;:::o;21997:348::-;22037:7;22060:20;22078:1;22060:20;:::i;:::-;22055:25;;22094:20;22112:1;22094:20;:::i;:::-;22089:25;;22282:1;22214:66;22210:74;22207:1;22204:81;22199:1;22192:9;22185:17;22181:105;22178:131;;;22289:18;;:::i;:::-;22178:131;22337:1;22334;22330:9;22319:20;;21997:348;;;;:::o;22351:191::-;22391:4;22411:20;22429:1;22411:20;:::i;:::-;22406:25;;22445:20;22463:1;22445:20;:::i;:::-;22440:25;;22484:1;22481;22478:8;22475:34;;;22489:18;;:::i;:::-;22475:34;22534:1;22531;22527:9;22519:17;;22351:191;;;;:::o;22548:96::-;22585:7;22614:24;22632:5;22614:24;:::i;:::-;22603:35;;22548:96;;;:::o;22650:90::-;22684:7;22727:5;22720:13;22713:21;22702:32;;22650:90;;;:::o;22746:126::-;22783:7;22823:42;22816:5;22812:54;22801:65;;22746:126;;;:::o;22878:77::-;22915:7;22944:5;22933:16;;22878:77;;;:::o;22961:86::-;22996:7;23036:4;23029:5;23025:16;23014:27;;22961:86;;;:::o;23053:152::-;23129:9;23162:37;23193:5;23162:37;:::i;:::-;23149:50;;23053:152;;;:::o;23211:121::-;23269:9;23302:24;23320:5;23302:24;:::i;:::-;23289:37;;23211:121;;;:::o;23338:126::-;23388:9;23421:37;23452:5;23421:37;:::i;:::-;23408:50;;23338:126;;;:::o;23470:113::-;23520:9;23553:24;23571:5;23553:24;:::i;:::-;23540:37;;23470:113;;;:::o;23589:307::-;23657:1;23667:113;23681:6;23678:1;23675:13;23667:113;;;23766:1;23761:3;23757:11;23751:18;23747:1;23742:3;23738:11;23731:39;23703:2;23700:1;23696:10;23691:15;;23667:113;;;23798:6;23795:1;23792:13;23789:101;;;23878:1;23869:6;23864:3;23860:16;23853:27;23789:101;23638:258;23589:307;;;:::o;23902:233::-;23941:3;23964:24;23982:5;23964:24;:::i;:::-;23955:33;;24010:66;24003:5;24000:77;23997:103;;;24080:18;;:::i;:::-;23997:103;24127:1;24120:5;24116:13;24109:20;;23902:233;;;:::o;24141:180::-;24189:77;24186:1;24179:88;24286:4;24283:1;24276:15;24310:4;24307:1;24300:15;24327:180;24375:77;24372:1;24365:88;24472:4;24469:1;24462:15;24496:4;24493:1;24486:15;24513:180;24561:77;24558:1;24551:88;24658:4;24655:1;24648:15;24682:4;24679:1;24672:15;24699:180;24747:77;24744:1;24737:88;24844:4;24841:1;24834:15;24868:4;24865:1;24858:15;24885:117;24994:1;24991;24984:12;25008:117;25117:1;25114;25107:12;25131:117;25240:1;25237;25230:12;25254:117;25363:1;25360;25353:12;25377:117;25486:1;25483;25476:12;25500:102;25541:6;25592:2;25588:7;25583:2;25576:5;25572:14;25568:28;25558:38;;25500:102;;;:::o;25608:222::-;25748:34;25744:1;25736:6;25732:14;25725:58;25817:5;25812:2;25804:6;25800:15;25793:30;25608:222;:::o;25836:181::-;25976:33;25972:1;25964:6;25960:14;25953:57;25836:181;:::o;26023:250::-;26163:34;26159:1;26151:6;26147:14;26140:58;26232:33;26227:2;26219:6;26215:15;26208:58;26023:250;:::o;26279:229::-;26419:34;26415:1;26407:6;26403:14;26396:58;26488:12;26483:2;26475:6;26471:15;26464:37;26279:229;:::o;26514:178::-;26654:30;26650:1;26642:6;26638:14;26631:54;26514:178;:::o;26698:225::-;26838:34;26834:1;26826:6;26822:14;26815:58;26907:8;26902:2;26894:6;26890:15;26883:33;26698:225;:::o;26929:221::-;27069:34;27065:1;27057:6;27053:14;27046:58;27138:4;27133:2;27125:6;27121:15;27114:29;26929:221;:::o;27156:177::-;27296:29;27292:1;27284:6;27280:14;27273:53;27156:177;:::o;27339:220::-;27479:34;27475:1;27467:6;27463:14;27456:58;27548:3;27543:2;27535:6;27531:15;27524:28;27339:220;:::o;27565:182::-;27705:34;27701:1;27693:6;27689:14;27682:58;27565:182;:::o;27753:228::-;27893:34;27889:1;27881:6;27877:14;27870:58;27962:11;27957:2;27949:6;27945:15;27938:36;27753:228;:::o;27987:224::-;28127:34;28123:1;28115:6;28111:14;28104:58;28196:7;28191:2;28183:6;28179:15;28172:32;27987:224;:::o;28217:222::-;28357:34;28353:1;28345:6;28341:14;28334:58;28426:5;28421:2;28413:6;28409:15;28402:30;28217:222;:::o;28445:223::-;28585:34;28581:1;28573:6;28569:14;28562:58;28654:6;28649:2;28641:6;28637:15;28630:31;28445:223;:::o;28674:122::-;28747:24;28765:5;28747:24;:::i;:::-;28740:5;28737:35;28727:63;;28786:1;28783;28776:12;28727:63;28674:122;:::o;28802:116::-;28872:21;28887:5;28872:21;:::i;:::-;28865:5;28862:32;28852:60;;28908:1;28905;28898:12;28852:60;28802:116;:::o;28924:122::-;28997:24;29015:5;28997:24;:::i;:::-;28990:5;28987:35;28977:63;;29036:1;29033;29026:12;28977:63;28924:122;:::o
Swarm Source
ipfs://24d1a6197222f6d72013429745a50b4663618f338b75a83aa562ac853fdd1653
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.