Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,000,000 $VAPE
Holders
112
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
43.465379119 $VAPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Vape_ERC
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-15 */ /* VAPE ERC $VAPE The Vape_ERC contract aims to generate a sustainable, long-term fundraising ecosystem for cannabis advocacy groups while reflecting rewards back to holders. buy/sell taxes are distributed as follows: 2% donated to Smart Approaches to Marijuana non-profit through The Giving Block 2% reflected back to token holders 2% for liquidity, dev & marketing No transfer tax. No purchase necessary to recieve reflections. Wallets that receive vape from p2p transfer still receive reflections. Website: https://www.vapeerc.org/ Twitter: https://twitter.com/vape_erc Telegram: https://t.me/vapeERCportal */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract Vape_ERC is Context, IERC20, Ownable { using SafeMath for uint256; uint256 private _totalDonated; //keeps running total of donated ETH in wei uint256 private _addToDonated; string private constant _name = "Vape ERC"; string private constant _symbol = "$VAPE"; 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 = 420000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 2; //reflection to holders uint256 private _taxFeeOnBuy = 4; // total fees - is split into donation and marketing on transfer functions uint256 private _redisFeeOnSell = 2; //reflection to holders uint256 private _taxFeeOnSell = 4; //total fees - is split into donation and marketing on transfer functions //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _donationAddress = payable(0x65E2D91A9eff0A16636C0103f0D603Ac63D3D654); //donation Wallet address payable private _marketingAddress = payable(0xDEdcb8ca1D7522f78a6C56e29fE0F8626fdE27E7); //marketing & dev Wallet IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 15000000 * 10**9; uint256 public _maxWalletSize = 15000000 * 10**9; uint256 public _swapTokensAtAmount = 4200 * 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[_donationAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _totalDonated = 0; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount.mul(50).div(100)); //2% to dev & marketing _donationAddress.transfer(amount.mul(50).div(100)); //2% to donation wallet _totalDonated += amount.mul(50).div(100); //returns in wei } function viewTotalDonated() public view returns (uint256) { return uint(_totalDonated); //returns in wei } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _donationAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _donationAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { //Fee hardcaps to prevent honeypot require(_redisFeeOnBuy <= 4, "Hard cap 4%"); require(_redisFeeOnSell <= 4, "Hard cap 4%"); require(_taxFeeOnBuy <= 10, "Hard cap 10%"); require(_taxFeeOnBuy <= 10, "Hard cap 10%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function changeDonationAddress(address payable newAddress) public onlyOwner returns (bool) { _donationAddress = newAddress; return true; } function changeMarketingAddress(address payable newAddress) public onlyOwner returns (bool) { _marketingAddress = newAddress; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddress","type":"address"}],"name":"changeDonationAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddress","type":"address"}],"name":"changeMarketingAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalDonated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526705d423c655aa00006000196200001c919062000732565b6000196200002b919062000799565b6008556002600a556004600b556002600c556004600d55600c54600e55600d54600f55600e54601055600f546011557365e2d91a9eff0a16636c0103f0d603ac63d3d654601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dedcb8ca1d7522f78a6c56e29fe0f8626fde27e7601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760146101000a81548160ff0219169083151502179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff02191690831515021790555066354a6ba7a1800060185566354a6ba7a180006019556503d1e3821000601a553480156200018257600080fd5b50600062000195620006c860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600854600460006200024a620006c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035491906200083e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e291906200083e565b6040518363ffffffff1660e01b81526004016200040192919062000881565b6020604051808303816000875af115801562000421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044791906200083e565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760006200049d620006d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060028190555062000652620006c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6705d423c655aa0000604051620006b99190620008bf565b60405180910390a350620008dc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073f82620006f9565b91506200074c83620006f9565b9250826200075f576200075e62000703565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007a682620006f9565b9150620007b383620006f9565b9250828203905081811115620007ce57620007cd6200076a565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080682620007d9565b9050919050565b6200081881620007f9565b81146200082457600080fd5b50565b60008151905062000838816200080d565b92915050565b600060208284031215620008575762000856620007d4565b5b6000620008678482850162000827565b91505092915050565b6200087b81620007f9565b82525050565b600060408201905062000898600083018562000870565b620008a7602083018462000870565b9392505050565b620008b981620006f9565b82525050565b6000602082019050620008d66000830184620008ae565b92915050565b61436680620008ec6000396000f3fe6080604052600436106101f15760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd801461070b578063c492f04614610722578063dd62ed3e1461074b578063ea1644d514610788578063f2fde38b146107b1576101f8565b8063a2a957bb1461063d578063a9059cbb14610666578063b06c79ef146106a3578063bfd79284146106ce576101f8565b80638f70ccf7116100dc5780638f70ccf7146105955780638f9a55c0146105be57806395d89b41146105e957806398a5c31514610614576101f8565b806374010ece146104d95780637d1db4a5146105025780637f2feddc1461052d5780638da5cb5b1461056a576101f8565b8063313ce567116101855780636d8aa8f8116101545780636d8aa8f8146104455780636fc3eaec1461046e57806370a0823114610485578063715018a6146104c2576101f8565b8063313ce5671461038957806349bd5a5e146103b4578063641a8d75146103df5780636b9990531461041c576101f8565b80631694505e116101c15780631694505e146102cb57806318160ddd146102f657806323b872dd146103215780632fd689e31461035e576101f8565b8062b8cf2a146101fd578063048dec381461022657806306fdde0314610263578063095ea7b31461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906131f3565b6107da565b005b34801561023257600080fd5b5061024d6004803603810190610248919061327a565b610904565b60405161025a91906132c2565b60405180910390f35b34801561026f57600080fd5b506102786109e5565b604051610285919061335c565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906133b4565b610a22565b6040516102c291906132c2565b60405180910390f35b3480156102d757600080fd5b506102e0610a40565b6040516102ed9190613453565b60405180910390f35b34801561030257600080fd5b5061030b610a66565b604051610318919061347d565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190613498565b610a76565b60405161035591906132c2565b60405180910390f35b34801561036a57600080fd5b50610373610b4f565b604051610380919061347d565b60405180910390f35b34801561039557600080fd5b5061039e610b55565b6040516103ab9190613507565b60405180910390f35b3480156103c057600080fd5b506103c9610b5e565b6040516103d69190613531565b60405180910390f35b3480156103eb57600080fd5b506104066004803603810190610401919061327a565b610b84565b60405161041391906132c2565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e919061354c565b610c65565b005b34801561045157600080fd5b5061046c600480360381019061046791906135a5565b610d55565b005b34801561047a57600080fd5b50610483610e07565b005b34801561049157600080fd5b506104ac60048036038101906104a7919061354c565b610ed8565b6040516104b9919061347d565b60405180910390f35b3480156104ce57600080fd5b506104d7610f29565b005b3480156104e557600080fd5b5061050060048036038101906104fb91906135d2565b61107c565b005b34801561050e57600080fd5b5061051761111b565b604051610524919061347d565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f919061354c565b611121565b604051610561919061347d565b60405180910390f35b34801561057657600080fd5b5061057f611139565b60405161058c9190613531565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906135a5565b611162565b005b3480156105ca57600080fd5b506105d3611214565b6040516105e0919061347d565b60405180910390f35b3480156105f557600080fd5b506105fe61121a565b60405161060b919061335c565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906135d2565b611257565b005b34801561064957600080fd5b50610664600480360381019061065f91906135ff565b6112f6565b005b34801561067257600080fd5b5061068d600480360381019061068891906133b4565b6114c5565b60405161069a91906132c2565b60405180910390f35b3480156106af57600080fd5b506106b86114e3565b6040516106c5919061347d565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f0919061354c565b6114ed565b60405161070291906132c2565b60405180910390f35b34801561071757600080fd5b5061072061150d565b005b34801561072e57600080fd5b50610749600480360381019061074491906136c1565b6115e6565b005b34801561075757600080fd5b50610772600480360381019061076d9190613721565b611720565b60405161077f919061347d565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa91906135d2565b6117a7565b005b3480156107bd57600080fd5b506107d860048036038101906107d3919061354c565b611846565b005b6107e2611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610866906137ad565b60405180910390fd5b60005b815181101561090057600160126000848481518110610894576108936137cd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108f89061382b565b915050610872565b5050565b600061090e611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610992906137ad565b60405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60606040518060400160405280600881526020017f5661706520455243000000000000000000000000000000000000000000000000815250905090565b6000610a36610a2f611a07565b8484611a0f565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006705d423c655aa0000905090565b6000610a83848484611bd8565b610b4484610a8f611a07565b610b3f8560405180606001604052806028815260200161430960289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610af5611a07565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245d9092919063ffffffff16565b611a0f565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b8e611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c12906137ad565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b610c6d611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906137ad565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d5d611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de1906137ad565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e48611a07565b73ffffffffffffffffffffffffffffffffffffffff161480610ebe5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea6611a07565b73ffffffffffffffffffffffffffffffffffffffff16145b610ec757600080fd5b6000479050610ed5816124c1565b50565b6000610f22600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612621565b9050919050565b610f31611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611084611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611108906137ad565b60405180910390fd5b8060188190555050565b60185481565b60136020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61116a611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee906137ad565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600581526020017f2456415045000000000000000000000000000000000000000000000000000000815250905090565b61125f611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e3906137ad565b60405180910390fd5b80601a8190555050565b6112fe611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611382906137ad565b60405180910390fd5b6004600a5411156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c8906138bf565b60405180910390fd5b6004600c541115611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e906138bf565b60405180910390fd5b600a600b54111561145d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114549061392b565b60405180910390fd5b600a600b5411156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a9061392b565b60405180910390fd5b83600a8190555082600c8190555081600b8190555080600d8190555050505050565b60006114d96114d2611a07565b8484611bd8565b6001905092915050565b6000600254905090565b60126020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661154e611a07565b73ffffffffffffffffffffffffffffffffffffffff1614806115c45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ac611a07565b73ffffffffffffffffffffffffffffffffffffffff16145b6115cd57600080fd5b60006115d830610ed8565b90506115e38161268f565b50565b6115ee611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906137ad565b60405180910390fd5b60005b8383905081101561171a5781600760008686858181106116a1576116a06137cd565b5b90506020020160208101906116b6919061354c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806117129061382b565b91505061167e565b50505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117af611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906137ad565b60405180910390fd5b8060198190555050565b61184e611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361194a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611941906139bd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613a4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490613ae1565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bcb919061347d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613b73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613c05565b60405180910390fd5b60008111611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613c97565b60405180910390fd5b611d01611139565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d6f5750611d3f611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215c57601760149054906101000a900460ff16611dfe57611d90611139565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490613d29565b60405180910390fd5b5b601854811115611e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3a90613d95565b60405180910390fd5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ee75750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613e27565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fd35760195481611f8884610ed8565b611f929190613e47565b10611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990613eed565b60405180910390fd5b5b6000611fde30610ed8565b90506000601a5482101590506018548210611ff95760185491505b8080156120135750601760159054906101000a900460ff16155b801561206d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120855750601760169054906101000a900460ff165b80156120db5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121315750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121595761213f8261268f565b6000479050600081111561215757612156476124c1565b5b505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122035750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122b65750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122b55750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156122c4576000905061244b565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561236f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561238757600a54600e81905550600b54600f819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124325750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561244a57600c54600e81905550600d54600f819055505b5b61245784848484612908565b50505050565b60008383111582906124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c919061335c565b60405180910390fd5b50600083856124b49190613f0d565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612524606461251660328661293590919063ffffffff16565b6129af90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561254f573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125b360646125a560328661293590919063ffffffff16565b6129af90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125de573d6000803e3d6000fd5b5061260660646125f860328461293590919063ffffffff16565b6129af90919063ffffffff16565b600260008282546126179190613e47565b9250508190555050565b6000600854821115612668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265f90613fb3565b60405180910390fd5b60006126726129f9565b905061268781846129af90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126c7576126c6613052565b5b6040519080825280602002602001820160405280156126f55781602001602082028036833780820191505090505b509050308160008151811061270d5761270c6137cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d89190613fe8565b816001815181106127ec576127eb6137cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061285330601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a0f565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128b795949392919061410e565b600060405180830381600087803b1580156128d157600080fd5b505af11580156128e5573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061291657612915612a24565b5b612921848484612a61565b8061292f5761292e612c2c565b5b50505050565b600080830361294757600090506129a9565b600082846129559190614168565b905082848261296491906141d9565b146129a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299b9061427c565b60405180910390fd5b809150505b92915050565b60006129f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c40565b905092915050565b6000806000612a06612ca3565b91509150612a1d81836129af90919063ffffffff16565b9250505090565b6000600e54148015612a3857506000600f54145b612a5f57600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080612a7387612d02565b955095509550955095509550612ad186600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a90919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6685600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db490919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bb281612e12565b612bbc8483612ecf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c19919061347d565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b60008083118290612c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7e919061335c565b60405180910390fd5b5060008385612c9691906141d9565b9050809150509392505050565b6000806000600854905060006705d423c655aa00009050612cd76705d423c655aa00006008546129af90919063ffffffff16565b821015612cf5576008546705d423c655aa0000935093505050612cfe565b81819350935050505b9091565b6000806000806000806000806000612d1f8a600e54600f54612f09565b9250925092506000612d2f6129f9565b90506000806000612d428e878787612f9f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612dac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245d565b905092915050565b6000808284612dc39190613e47565b905083811015612e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dff906142e8565b60405180910390fd5b8091505092915050565b6000612e1c6129f9565b90506000612e33828461293590919063ffffffff16565b9050612e8781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db490919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ee482600854612d6a90919063ffffffff16565b600881905550612eff81600954612db490919063ffffffff16565b6009819055505050565b600080600080612f356064612f27888a61293590919063ffffffff16565b6129af90919063ffffffff16565b90506000612f5f6064612f51888b61293590919063ffffffff16565b6129af90919063ffffffff16565b90506000612f8882612f7a858c612d6a90919063ffffffff16565b612d6a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612fb8858961293590919063ffffffff16565b90506000612fcf868961293590919063ffffffff16565b90506000612fe6878961293590919063ffffffff16565b9050600061300f826130018587612d6a90919063ffffffff16565b612d6a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61308a82613041565b810181811067ffffffffffffffff821117156130a9576130a8613052565b5b80604052505050565b60006130bc613028565b90506130c88282613081565b919050565b600067ffffffffffffffff8211156130e8576130e7613052565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613129826130fe565b9050919050565b6131398161311e565b811461314457600080fd5b50565b60008135905061315681613130565b92915050565b600061316f61316a846130cd565b6130b2565b90508083825260208201905060208402830185811115613192576131916130f9565b5b835b818110156131bb57806131a78882613147565b845260208401935050602081019050613194565b5050509392505050565b600082601f8301126131da576131d961303c565b5b81356131ea84826020860161315c565b91505092915050565b60006020828403121561320957613208613032565b5b600082013567ffffffffffffffff81111561322757613226613037565b5b613233848285016131c5565b91505092915050565b6000613247826130fe565b9050919050565b6132578161323c565b811461326257600080fd5b50565b6000813590506132748161324e565b92915050565b6000602082840312156132905761328f613032565b5b600061329e84828501613265565b91505092915050565b60008115159050919050565b6132bc816132a7565b82525050565b60006020820190506132d760008301846132b3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133175780820151818401526020810190506132fc565b60008484015250505050565b600061332e826132dd565b61333881856132e8565b93506133488185602086016132f9565b61335181613041565b840191505092915050565b600060208201905081810360008301526133768184613323565b905092915050565b6000819050919050565b6133918161337e565b811461339c57600080fd5b50565b6000813590506133ae81613388565b92915050565b600080604083850312156133cb576133ca613032565b5b60006133d985828601613147565b92505060206133ea8582860161339f565b9150509250929050565b6000819050919050565b600061341961341461340f846130fe565b6133f4565b6130fe565b9050919050565b600061342b826133fe565b9050919050565b600061343d82613420565b9050919050565b61344d81613432565b82525050565b60006020820190506134686000830184613444565b92915050565b6134778161337e565b82525050565b6000602082019050613492600083018461346e565b92915050565b6000806000606084860312156134b1576134b0613032565b5b60006134bf86828701613147565b93505060206134d086828701613147565b92505060406134e18682870161339f565b9150509250925092565b600060ff82169050919050565b613501816134eb565b82525050565b600060208201905061351c60008301846134f8565b92915050565b61352b8161311e565b82525050565b60006020820190506135466000830184613522565b92915050565b60006020828403121561356257613561613032565b5b600061357084828501613147565b91505092915050565b613582816132a7565b811461358d57600080fd5b50565b60008135905061359f81613579565b92915050565b6000602082840312156135bb576135ba613032565b5b60006135c984828501613590565b91505092915050565b6000602082840312156135e8576135e7613032565b5b60006135f68482850161339f565b91505092915050565b6000806000806080858703121561361957613618613032565b5b60006136278782880161339f565b94505060206136388782880161339f565b93505060406136498782880161339f565b925050606061365a8782880161339f565b91505092959194509250565b600080fd5b60008083601f8401126136815761368061303c565b5b8235905067ffffffffffffffff81111561369e5761369d613666565b5b6020830191508360208202830111156136ba576136b96130f9565b5b9250929050565b6000806000604084860312156136da576136d9613032565b5b600084013567ffffffffffffffff8111156136f8576136f7613037565b5b6137048682870161366b565b9350935050602061371786828701613590565b9150509250925092565b6000806040838503121561373857613737613032565b5b600061374685828601613147565b925050602061375785828601613147565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137976020836132e8565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138368261337e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613868576138676137fc565b5b600182019050919050565b7f4861726420636170203425000000000000000000000000000000000000000000600082015250565b60006138a9600b836132e8565b91506138b482613873565b602082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f4861726420636170203130250000000000000000000000000000000000000000600082015250565b6000613915600c836132e8565b9150613920826138df565b602082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139a76026836132e8565b91506139b28261394b565b604082019050919050565b600060208201905081810360008301526139d68161399a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a396024836132e8565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613acb6022836132e8565b9150613ad682613a6f565b604082019050919050565b60006020820190508181036000830152613afa81613abe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b5d6025836132e8565b9150613b6882613b01565b604082019050919050565b60006020820190508181036000830152613b8c81613b50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613bef6023836132e8565b9150613bfa82613b93565b604082019050919050565b60006020820190508181036000830152613c1e81613be2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c816029836132e8565b9150613c8c82613c25565b604082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613d13603f836132e8565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613d7f601c836132e8565b9150613d8a82613d49565b602082019050919050565b60006020820190508181036000830152613dae81613d72565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613e116023836132e8565b9150613e1c82613db5565b604082019050919050565b60006020820190508181036000830152613e4081613e04565b9050919050565b6000613e528261337e565b9150613e5d8361337e565b9250828201905080821115613e7557613e746137fc565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed76023836132e8565b9150613ee282613e7b565b604082019050919050565b60006020820190508181036000830152613f0681613eca565b9050919050565b6000613f188261337e565b9150613f238361337e565b9250828203905081811115613f3b57613f3a6137fc565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613f9d602a836132e8565b9150613fa882613f41565b604082019050919050565b60006020820190508181036000830152613fcc81613f90565b9050919050565b600081519050613fe281613130565b92915050565b600060208284031215613ffe57613ffd613032565b5b600061400c84828501613fd3565b91505092915050565b6000819050919050565b600061403a61403561403084614015565b6133f4565b61337e565b9050919050565b61404a8161401f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140858161311e565b82525050565b6000614097838361407c565b60208301905092915050565b6000602082019050919050565b60006140bb82614050565b6140c5818561405b565b93506140d08361406c565b8060005b838110156141015781516140e8888261408b565b97506140f3836140a3565b9250506001810190506140d4565b5085935050505092915050565b600060a082019050614123600083018861346e565b6141306020830187614041565b818103604083015261414281866140b0565b90506141516060830185613522565b61415e608083018461346e565b9695505050505050565b60006141738261337e565b915061417e8361337e565b925082820261418c8161337e565b915082820484148315176141a3576141a26137fc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141e48261337e565b91506141ef8361337e565b9250826141ff576141fe6141aa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142666021836132e8565b91506142718261420a565b604082019050919050565b6000602082019050818103600083015261429581614259565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142d2601b836132e8565b91506142dd8261429c565b602082019050919050565b60006020820190508181036000830152614301816142c5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220156dc84ab505906b47e4af1ea79bf1732696677e390ac6d2352729fcb0bca5ef64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101f15760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd801461070b578063c492f04614610722578063dd62ed3e1461074b578063ea1644d514610788578063f2fde38b146107b1576101f8565b8063a2a957bb1461063d578063a9059cbb14610666578063b06c79ef146106a3578063bfd79284146106ce576101f8565b80638f70ccf7116100dc5780638f70ccf7146105955780638f9a55c0146105be57806395d89b41146105e957806398a5c31514610614576101f8565b806374010ece146104d95780637d1db4a5146105025780637f2feddc1461052d5780638da5cb5b1461056a576101f8565b8063313ce567116101855780636d8aa8f8116101545780636d8aa8f8146104455780636fc3eaec1461046e57806370a0823114610485578063715018a6146104c2576101f8565b8063313ce5671461038957806349bd5a5e146103b4578063641a8d75146103df5780636b9990531461041c576101f8565b80631694505e116101c15780631694505e146102cb57806318160ddd146102f657806323b872dd146103215780632fd689e31461035e576101f8565b8062b8cf2a146101fd578063048dec381461022657806306fdde0314610263578063095ea7b31461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906131f3565b6107da565b005b34801561023257600080fd5b5061024d6004803603810190610248919061327a565b610904565b60405161025a91906132c2565b60405180910390f35b34801561026f57600080fd5b506102786109e5565b604051610285919061335c565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906133b4565b610a22565b6040516102c291906132c2565b60405180910390f35b3480156102d757600080fd5b506102e0610a40565b6040516102ed9190613453565b60405180910390f35b34801561030257600080fd5b5061030b610a66565b604051610318919061347d565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190613498565b610a76565b60405161035591906132c2565b60405180910390f35b34801561036a57600080fd5b50610373610b4f565b604051610380919061347d565b60405180910390f35b34801561039557600080fd5b5061039e610b55565b6040516103ab9190613507565b60405180910390f35b3480156103c057600080fd5b506103c9610b5e565b6040516103d69190613531565b60405180910390f35b3480156103eb57600080fd5b506104066004803603810190610401919061327a565b610b84565b60405161041391906132c2565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e919061354c565b610c65565b005b34801561045157600080fd5b5061046c600480360381019061046791906135a5565b610d55565b005b34801561047a57600080fd5b50610483610e07565b005b34801561049157600080fd5b506104ac60048036038101906104a7919061354c565b610ed8565b6040516104b9919061347d565b60405180910390f35b3480156104ce57600080fd5b506104d7610f29565b005b3480156104e557600080fd5b5061050060048036038101906104fb91906135d2565b61107c565b005b34801561050e57600080fd5b5061051761111b565b604051610524919061347d565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f919061354c565b611121565b604051610561919061347d565b60405180910390f35b34801561057657600080fd5b5061057f611139565b60405161058c9190613531565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906135a5565b611162565b005b3480156105ca57600080fd5b506105d3611214565b6040516105e0919061347d565b60405180910390f35b3480156105f557600080fd5b506105fe61121a565b60405161060b919061335c565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906135d2565b611257565b005b34801561064957600080fd5b50610664600480360381019061065f91906135ff565b6112f6565b005b34801561067257600080fd5b5061068d600480360381019061068891906133b4565b6114c5565b60405161069a91906132c2565b60405180910390f35b3480156106af57600080fd5b506106b86114e3565b6040516106c5919061347d565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f0919061354c565b6114ed565b60405161070291906132c2565b60405180910390f35b34801561071757600080fd5b5061072061150d565b005b34801561072e57600080fd5b50610749600480360381019061074491906136c1565b6115e6565b005b34801561075757600080fd5b50610772600480360381019061076d9190613721565b611720565b60405161077f919061347d565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa91906135d2565b6117a7565b005b3480156107bd57600080fd5b506107d860048036038101906107d3919061354c565b611846565b005b6107e2611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610866906137ad565b60405180910390fd5b60005b815181101561090057600160126000848481518110610894576108936137cd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108f89061382b565b915050610872565b5050565b600061090e611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610992906137ad565b60405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60606040518060400160405280600881526020017f5661706520455243000000000000000000000000000000000000000000000000815250905090565b6000610a36610a2f611a07565b8484611a0f565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006705d423c655aa0000905090565b6000610a83848484611bd8565b610b4484610a8f611a07565b610b3f8560405180606001604052806028815260200161430960289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610af5611a07565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245d9092919063ffffffff16565b611a0f565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b8e611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c12906137ad565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b610c6d611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906137ad565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d5d611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de1906137ad565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e48611a07565b73ffffffffffffffffffffffffffffffffffffffff161480610ebe5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea6611a07565b73ffffffffffffffffffffffffffffffffffffffff16145b610ec757600080fd5b6000479050610ed5816124c1565b50565b6000610f22600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612621565b9050919050565b610f31611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611084611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611108906137ad565b60405180910390fd5b8060188190555050565b60185481565b60136020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61116a611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee906137ad565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600581526020017f2456415045000000000000000000000000000000000000000000000000000000815250905090565b61125f611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e3906137ad565b60405180910390fd5b80601a8190555050565b6112fe611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611382906137ad565b60405180910390fd5b6004600a5411156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c8906138bf565b60405180910390fd5b6004600c541115611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e906138bf565b60405180910390fd5b600a600b54111561145d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114549061392b565b60405180910390fd5b600a600b5411156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a9061392b565b60405180910390fd5b83600a8190555082600c8190555081600b8190555080600d8190555050505050565b60006114d96114d2611a07565b8484611bd8565b6001905092915050565b6000600254905090565b60126020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661154e611a07565b73ffffffffffffffffffffffffffffffffffffffff1614806115c45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ac611a07565b73ffffffffffffffffffffffffffffffffffffffff16145b6115cd57600080fd5b60006115d830610ed8565b90506115e38161268f565b50565b6115ee611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906137ad565b60405180910390fd5b60005b8383905081101561171a5781600760008686858181106116a1576116a06137cd565b5b90506020020160208101906116b6919061354c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806117129061382b565b91505061167e565b50505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117af611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906137ad565b60405180910390fd5b8060198190555050565b61184e611a07565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361194a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611941906139bd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613a4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490613ae1565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bcb919061347d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613b73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613c05565b60405180910390fd5b60008111611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613c97565b60405180910390fd5b611d01611139565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d6f5750611d3f611139565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215c57601760149054906101000a900460ff16611dfe57611d90611139565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490613d29565b60405180910390fd5b5b601854811115611e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3a90613d95565b60405180910390fd5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ee75750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613e27565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fd35760195481611f8884610ed8565b611f929190613e47565b10611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990613eed565b60405180910390fd5b5b6000611fde30610ed8565b90506000601a5482101590506018548210611ff95760185491505b8080156120135750601760159054906101000a900460ff16155b801561206d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120855750601760169054906101000a900460ff165b80156120db5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121315750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121595761213f8261268f565b6000479050600081111561215757612156476124c1565b5b505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122035750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122b65750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122b55750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156122c4576000905061244b565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561236f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561238757600a54600e81905550600b54600f819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124325750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561244a57600c54600e81905550600d54600f819055505b5b61245784848484612908565b50505050565b60008383111582906124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c919061335c565b60405180910390fd5b50600083856124b49190613f0d565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612524606461251660328661293590919063ffffffff16565b6129af90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561254f573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125b360646125a560328661293590919063ffffffff16565b6129af90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125de573d6000803e3d6000fd5b5061260660646125f860328461293590919063ffffffff16565b6129af90919063ffffffff16565b600260008282546126179190613e47565b9250508190555050565b6000600854821115612668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265f90613fb3565b60405180910390fd5b60006126726129f9565b905061268781846129af90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126c7576126c6613052565b5b6040519080825280602002602001820160405280156126f55781602001602082028036833780820191505090505b509050308160008151811061270d5761270c6137cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d89190613fe8565b816001815181106127ec576127eb6137cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061285330601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a0f565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128b795949392919061410e565b600060405180830381600087803b1580156128d157600080fd5b505af11580156128e5573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061291657612915612a24565b5b612921848484612a61565b8061292f5761292e612c2c565b5b50505050565b600080830361294757600090506129a9565b600082846129559190614168565b905082848261296491906141d9565b146129a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299b9061427c565b60405180910390fd5b809150505b92915050565b60006129f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c40565b905092915050565b6000806000612a06612ca3565b91509150612a1d81836129af90919063ffffffff16565b9250505090565b6000600e54148015612a3857506000600f54145b612a5f57600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080612a7387612d02565b955095509550955095509550612ad186600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6a90919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6685600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db490919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bb281612e12565b612bbc8483612ecf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c19919061347d565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b60008083118290612c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7e919061335c565b60405180910390fd5b5060008385612c9691906141d9565b9050809150509392505050565b6000806000600854905060006705d423c655aa00009050612cd76705d423c655aa00006008546129af90919063ffffffff16565b821015612cf5576008546705d423c655aa0000935093505050612cfe565b81819350935050505b9091565b6000806000806000806000806000612d1f8a600e54600f54612f09565b9250925092506000612d2f6129f9565b90506000806000612d428e878787612f9f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612dac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245d565b905092915050565b6000808284612dc39190613e47565b905083811015612e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dff906142e8565b60405180910390fd5b8091505092915050565b6000612e1c6129f9565b90506000612e33828461293590919063ffffffff16565b9050612e8781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db490919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ee482600854612d6a90919063ffffffff16565b600881905550612eff81600954612db490919063ffffffff16565b6009819055505050565b600080600080612f356064612f27888a61293590919063ffffffff16565b6129af90919063ffffffff16565b90506000612f5f6064612f51888b61293590919063ffffffff16565b6129af90919063ffffffff16565b90506000612f8882612f7a858c612d6a90919063ffffffff16565b612d6a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612fb8858961293590919063ffffffff16565b90506000612fcf868961293590919063ffffffff16565b90506000612fe6878961293590919063ffffffff16565b9050600061300f826130018587612d6a90919063ffffffff16565b612d6a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61308a82613041565b810181811067ffffffffffffffff821117156130a9576130a8613052565b5b80604052505050565b60006130bc613028565b90506130c88282613081565b919050565b600067ffffffffffffffff8211156130e8576130e7613052565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613129826130fe565b9050919050565b6131398161311e565b811461314457600080fd5b50565b60008135905061315681613130565b92915050565b600061316f61316a846130cd565b6130b2565b90508083825260208201905060208402830185811115613192576131916130f9565b5b835b818110156131bb57806131a78882613147565b845260208401935050602081019050613194565b5050509392505050565b600082601f8301126131da576131d961303c565b5b81356131ea84826020860161315c565b91505092915050565b60006020828403121561320957613208613032565b5b600082013567ffffffffffffffff81111561322757613226613037565b5b613233848285016131c5565b91505092915050565b6000613247826130fe565b9050919050565b6132578161323c565b811461326257600080fd5b50565b6000813590506132748161324e565b92915050565b6000602082840312156132905761328f613032565b5b600061329e84828501613265565b91505092915050565b60008115159050919050565b6132bc816132a7565b82525050565b60006020820190506132d760008301846132b3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133175780820151818401526020810190506132fc565b60008484015250505050565b600061332e826132dd565b61333881856132e8565b93506133488185602086016132f9565b61335181613041565b840191505092915050565b600060208201905081810360008301526133768184613323565b905092915050565b6000819050919050565b6133918161337e565b811461339c57600080fd5b50565b6000813590506133ae81613388565b92915050565b600080604083850312156133cb576133ca613032565b5b60006133d985828601613147565b92505060206133ea8582860161339f565b9150509250929050565b6000819050919050565b600061341961341461340f846130fe565b6133f4565b6130fe565b9050919050565b600061342b826133fe565b9050919050565b600061343d82613420565b9050919050565b61344d81613432565b82525050565b60006020820190506134686000830184613444565b92915050565b6134778161337e565b82525050565b6000602082019050613492600083018461346e565b92915050565b6000806000606084860312156134b1576134b0613032565b5b60006134bf86828701613147565b93505060206134d086828701613147565b92505060406134e18682870161339f565b9150509250925092565b600060ff82169050919050565b613501816134eb565b82525050565b600060208201905061351c60008301846134f8565b92915050565b61352b8161311e565b82525050565b60006020820190506135466000830184613522565b92915050565b60006020828403121561356257613561613032565b5b600061357084828501613147565b91505092915050565b613582816132a7565b811461358d57600080fd5b50565b60008135905061359f81613579565b92915050565b6000602082840312156135bb576135ba613032565b5b60006135c984828501613590565b91505092915050565b6000602082840312156135e8576135e7613032565b5b60006135f68482850161339f565b91505092915050565b6000806000806080858703121561361957613618613032565b5b60006136278782880161339f565b94505060206136388782880161339f565b93505060406136498782880161339f565b925050606061365a8782880161339f565b91505092959194509250565b600080fd5b60008083601f8401126136815761368061303c565b5b8235905067ffffffffffffffff81111561369e5761369d613666565b5b6020830191508360208202830111156136ba576136b96130f9565b5b9250929050565b6000806000604084860312156136da576136d9613032565b5b600084013567ffffffffffffffff8111156136f8576136f7613037565b5b6137048682870161366b565b9350935050602061371786828701613590565b9150509250925092565b6000806040838503121561373857613737613032565b5b600061374685828601613147565b925050602061375785828601613147565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137976020836132e8565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138368261337e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613868576138676137fc565b5b600182019050919050565b7f4861726420636170203425000000000000000000000000000000000000000000600082015250565b60006138a9600b836132e8565b91506138b482613873565b602082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f4861726420636170203130250000000000000000000000000000000000000000600082015250565b6000613915600c836132e8565b9150613920826138df565b602082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139a76026836132e8565b91506139b28261394b565b604082019050919050565b600060208201905081810360008301526139d68161399a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a396024836132e8565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613acb6022836132e8565b9150613ad682613a6f565b604082019050919050565b60006020820190508181036000830152613afa81613abe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b5d6025836132e8565b9150613b6882613b01565b604082019050919050565b60006020820190508181036000830152613b8c81613b50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613bef6023836132e8565b9150613bfa82613b93565b604082019050919050565b60006020820190508181036000830152613c1e81613be2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c816029836132e8565b9150613c8c82613c25565b604082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613d13603f836132e8565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613d7f601c836132e8565b9150613d8a82613d49565b602082019050919050565b60006020820190508181036000830152613dae81613d72565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613e116023836132e8565b9150613e1c82613db5565b604082019050919050565b60006020820190508181036000830152613e4081613e04565b9050919050565b6000613e528261337e565b9150613e5d8361337e565b9250828201905080821115613e7557613e746137fc565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed76023836132e8565b9150613ee282613e7b565b604082019050919050565b60006020820190508181036000830152613f0681613eca565b9050919050565b6000613f188261337e565b9150613f238361337e565b9250828203905081811115613f3b57613f3a6137fc565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613f9d602a836132e8565b9150613fa882613f41565b604082019050919050565b60006020820190508181036000830152613fcc81613f90565b9050919050565b600081519050613fe281613130565b92915050565b600060208284031215613ffe57613ffd613032565b5b600061400c84828501613fd3565b91505092915050565b6000819050919050565b600061403a61403561403084614015565b6133f4565b61337e565b9050919050565b61404a8161401f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140858161311e565b82525050565b6000614097838361407c565b60208301905092915050565b6000602082019050919050565b60006140bb82614050565b6140c5818561405b565b93506140d08361406c565b8060005b838110156141015781516140e8888261408b565b97506140f3836140a3565b9250506001810190506140d4565b5085935050505092915050565b600060a082019050614123600083018861346e565b6141306020830187614041565b818103604083015261414281866140b0565b90506141516060830185613522565b61415e608083018461346e565b9695505050505050565b60006141738261337e565b915061417e8361337e565b925082820261418c8161337e565b915082820484148315176141a3576141a26137fc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141e48261337e565b91506141ef8361337e565b9250826141ff576141fe6141aa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142666021836132e8565b91506142718261420a565b604082019050919050565b6000602082019050818103600083015261429581614259565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142d2601b836132e8565b91506142dd8261429c565b602082019050919050565b60006020820190508181036000830152614301816142c5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220156dc84ab505906b47e4af1ea79bf1732696677e390ac6d2352729fcb0bca5ef64736f6c63430008110033
Deployed Bytecode Sourcemap
4706:14874:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14076:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19378:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7584:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8509:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6402:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7861:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8710:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6707:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7770:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6450:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19177:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14253:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18556:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13836:232;;;;;;;;;;;;;:::i;:::-;;7964:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2193:148;;;;;;;;;;;;;:::i;:::-;;18696:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6599:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6104:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1979:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13486:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6652:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7675:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18365:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17751:562;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8110:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13355:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6066:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13595:233;;;;;;;;;;;;;:::i;:::-;;18935:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8317:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18812:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2349:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14076:169;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14152:9:::1;14147:91;14171:5;:12;14167:1;:16;14147:91;;;14222:4;14205;:14;14210:5;14216:1;14210:8;;;;;;;;:::i;:::-;;;;;;;;14205:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14185:3;;;;;:::i;:::-;;;;14147:91;;;;14076:169:::0;:::o;19378:195::-;19491:4;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19533:10:::1;19513:17;;:30;;;;;;;;;;;;;;;;;;19561:4;19554:11;;19378:195:::0;;;:::o;7584:83::-;7621:13;7654:5;;;;;;;;;;;;;;;;;7647:12;;7584:83;:::o;8509:193::-;8611:4;8633:39;8642:12;:10;:12::i;:::-;8656:7;8665:6;8633:8;:39::i;:::-;8690:4;8683:11;;8509:193;;;;:::o;6402:41::-;;;;;;;;;;;;;:::o;7861:95::-;7914:7;5372:17;7934:14;;7861:95;:::o;8710:446::-;8842:4;8859:36;8869:6;8877:9;8888:6;8859:9;:36::i;:::-;8906:220;8929:6;8950:12;:10;:12::i;:::-;8977:138;9033:6;8977:138;;;;;;;;;;;;;;;;;:11;:19;8989:6;8977:19;;;;;;;;;;;;;;;:33;8997:12;:10;:12::i;:::-;8977:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8906:8;:220::i;:::-;9144:4;9137:11;;8710:446;;;;;:::o;6707:49::-;;;;:::o;7770:83::-;7811:5;5046:1;7829:16;;7770:83;:::o;6450:28::-;;;;;;;;;;;;;:::o;19177:193::-;19289:4;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19330:10:::1;19311:16;;:29;;;;;;;;;;;;;;;;;;19358:4;19351:11;;19177:193:::0;;;:::o;14253:92::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14332:5:::1;14317:4;:12;14322:6;14317:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14253:92:::0;:::o;18556:101::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18637:12:::1;18623:11;;:26;;;;;;;;;;;;;;;;;;18556:101:::0;:::o;13836:232::-;13902:16;;;;;;;;;;;13886:32;;:12;:10;:12::i;:::-;:32;;;:69;;;;13938:17;;;;;;;;;;;13922:33;;:12;:10;:12::i;:::-;:33;;;13886:69;13878:78;;;;;;13967:26;13996:21;13967:50;;14028:32;14041:18;14028:12;:32::i;:::-;13867:201;13836:232::o;7964:138::-;8030:7;8057:37;8077:7;:16;8085:7;8077:16;;;;;;;;;;;;;;;;8057:19;:37::i;:::-;8050:44;;7964:138;;;:::o;2193:148::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2300:1:::1;2263:40;;2284:6;::::0;::::1;;;;;;;;2263:40;;;;;;;;;;;;2331:1;2314:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2193:148::o:0;18696:108::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18785:11:::1;18770:12;:26;;;;18696:108:::0;:::o;6599:46::-;;;;:::o;6104:43::-;;;;;;;;;;;;;;;;;:::o;1979:79::-;2017:7;2044:6;;;;;;;;;;;2037:13;;1979:79;:::o;13486:101::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13567:12:::1;13553:11;;:26;;;;;;;;;;;;;;;;;;13486:101:::0;:::o;6652:48::-;;;;:::o;7675:87::-;7714:13;7747:7;;;;;;;;;;;;;;;;;7740:14;;7675:87;:::o;18365:139::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18478:18:::1;18456:19;:40;;;;18365:139:::0;:::o;17751:562::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17955:1:::1;17937:14;;:19;;17929:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18010:1;17991:15;;:20;;17983:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18062:2;18046:12;;:18;;18038:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18116:2;18100:12;;:18;;18092:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18173:13;18156:14;:30;;;;18215:14;18197:15;:32;;;;18255:11;18240:12;:26;;;;18293:12;18277:13;:28;;;;17751:562:::0;;;;:::o;8110:199::-;8215:4;8237:42;8247:12;:10;:12::i;:::-;8261:9;8272:6;8237:9;:42::i;:::-;8297:4;8290:11;;8110:199;;;;:::o;13355:123::-;13404:7;13437:13;;13425:26;;13355:123;:::o;6066:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13595:233::-;13661:16;;;;;;;;;;;13645:32;;:12;:10;:12::i;:::-;:32;;;:69;;;;13697:17;;;;;;;;;;;13681:33;;:12;:10;:12::i;:::-;:33;;;13645:69;13637:78;;;;;;13726:23;13752:24;13770:4;13752:9;:24::i;:::-;13726:50;;13787:33;13804:15;13787:16;:33::i;:::-;13626:202;13595:233::o;18935:234::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19052:9:::1;19048:114;19071:8;;:15;;19067:1;:19;19048:114;;;19142:8;19108:18;:31;19127:8;;19136:1;19127:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19108:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19088:3;;;;;:::i;:::-;;;;19048:114;;;;18935:234:::0;;;:::o;8317:184::-;8434:7;8466:11;:18;8478:5;8466:18;;;;;;;;;;;;;;;:27;8485:7;8466:27;;;;;;;;;;;;;;;;8459:34;;8317:184;;;;:::o;18812:115::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18906:13:::1;18889:14;:30;;;;18812:115:::0;:::o;2349:244::-;2116:12;:10;:12::i;:::-;2106:22;;:6;;;;;;;;;;:22;;;2098:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2458:1:::1;2438:22;;:8;:22;;::::0;2430:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2548:8;2519:38;;2540:6;::::0;::::1;;;;;;;;2519:38;;;;;;;;;;;;2577:8;2568:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2349:244:::0;:::o;738:98::-;791:7;818:10;811:17;;738:98;:::o;9847:369::-;9991:1;9974:19;;:5;:19;;;9966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:1;10053:21;;:7;:21;;;10045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10154:6;10124:11;:18;10136:5;10124:18;;;;;;;;;;;;;;;:27;10143:7;10124:27;;;;;;;;;;;;;;;:36;;;;10192:7;10176:32;;10185:5;10176:32;;;10201:6;10176:32;;;;;;:::i;:::-;;;;;;;;9847:369;;;:::o;10224:2330::-;10362:1;10346:18;;:4;:18;;;10338:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10439:1;10425:16;;:2;:16;;;10417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10509:1;10500:6;:10;10492:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10581:7;:5;:7::i;:::-;10573:15;;:4;:15;;;;:32;;;;;10598:7;:5;:7::i;:::-;10592:13;;:2;:13;;;;10573:32;10569:1259;;;10662:11;;;;;;;;;;;10657:144;;10710:7;:5;:7::i;:::-;10702:15;;:4;:15;;;10694:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10657:144;10835:12;;10825:6;:22;;10817:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10904:4;:10;10909:4;10904:10;;;;;;;;;;;;;;;;;;;;;;;;;10903:11;:24;;;;;10919:4;:8;10924:2;10919:8;;;;;;;;;;;;;;;;;;;;;;;;;10918:9;10903:24;10895:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10993:13;;;;;;;;;;;10987:19;;:2;:19;;;10984:146;;11060:14;;11051:6;11035:13;11045:2;11035:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11027:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10984:146;11146:28;11177:24;11195:4;11177:9;:24::i;:::-;11146:55;;11216:12;11255:19;;11231:20;:43;;11216:58;;11318:12;;11294:20;:36;11291:124;;11387:12;;11364:35;;11291:124;11435:7;:18;;;;;11447:6;;;;;;;;;;;11446:7;11435:18;:43;;;;;11465:13;;;;;;;;;;;11457:21;;:4;:21;;;;11435:43;:58;;;;;11482:11;;;;;;;;;;;11435:58;:87;;;;;11498:18;:24;11517:4;11498:24;;;;;;;;;;;;;;;;;;;;;;;;;11497:25;11435:87;:114;;;;;11527:18;:22;11546:2;11527:22;;;;;;;;;;;;;;;;;;;;;;;;;11526:23;11435:114;11431:386;;;11570:38;11587:20;11570:16;:38::i;:::-;11627:26;11656:21;11627:50;;11721:1;11700:18;:22;11696:106;;;11747:35;11760:21;11747:12;:35::i;:::-;11696:106;11551:266;11431:386;10607:1221;;10569:1259;11840:12;11855:4;11840:19;;11904:18;:24;11923:4;11904:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11932:18;:22;11951:2;11932:22;;;;;;;;;;;;;;;;;;;;;;;;;11904:50;11903:102;;;;11968:13;;;;;;;;;;;11960:21;;:4;:21;;;;:44;;;;;11991:13;;;;;;;;;;;11985:19;;:2;:19;;;;11960:44;11903:102;11899:594;;;12032:5;12022:15;;11899:594;;;12115:13;;;;;;;;;;;12107:21;;:4;:21;;;:55;;;;;12146:15;;;;;;;;;;;12132:30;;:2;:30;;;;12107:55;12104:162;;;12195:14;;12183:9;:26;;;;12238:12;;12228:7;:22;;;;12104:162;12325:13;;;;;;;;;;;12319:19;;:2;:19;;;:55;;;;;12358:15;;;;;;;;;;;12342:32;;:4;:32;;;;12319:55;12315:165;;;12407:15;;12395:9;:27;;;;12451:13;;12441:7;:23;;;;12315:165;11899:594;12505:41;12520:4;12526:2;12530:6;12538:7;12505:14;:41::i;:::-;10327:2227;10224:2330;;;:::o;2957:224::-;3077:7;3110:1;3105;:6;;3113:12;3097:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3137:9;3153:1;3149;:5;;;;:::i;:::-;3137:17;;3172:1;3165:8;;;2957:224;;;;;:::o;13053:294::-;13110:17;;;;;;;;;;;:26;;:51;13137:23;13156:3;13137:14;13148:2;13137:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13110:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13196:16;;;;;;;;;;;:25;;:50;13222:23;13241:3;13222:14;13233:2;13222:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13196:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13298:23;13317:3;13298:14;13309:2;13298:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13281:13;;:40;;;;;;;:::i;:::-;;;;;;;;13053:294;:::o;9164:323::-;9259:7;9317;;9306;:18;;9284:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9405:19;9427:10;:8;:10::i;:::-;9405:32;;9455:24;9467:11;9455:7;:11;;:24;;;;:::i;:::-;9448:31;;;9164:323;;;:::o;12562:483::-;6859:4;6850:6;;:13;;;;;;;;;;;;;;;;;;12640:21:::1;12678:1;12664:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12640:40;;12709:4;12691;12696:1;12691:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12735:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12725:4;12730:1;12725:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12768:62;12785:4;12800:15;;;;;;;;;;;12818:11;12768:8;:62::i;:::-;12841:15;;;;;;;;;;;:66;;;12922:11;12948:1;12964:4;12991;13011:15;12841:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12629:416;6895:5:::0;6886:6;;:14;;;;;;;;;;;;;;;;;;12562:483;:::o;14353:282::-;14509:7;14504:28;;14518:14;:12;:14::i;:::-;14504:28;14543:44;14561:6;14569:9;14580:6;14543:17;:44::i;:::-;14603:7;14598:29;;14612:15;:13;:15::i;:::-;14598:29;14353:282;;;;:::o;3189:246::-;3247:7;3276:1;3271;:6;3267:47;;3301:1;3294:8;;;;3267:47;3324:9;3340:1;3336;:5;;;;:::i;:::-;3324:17;;3369:1;3364;3360;:5;;;;:::i;:::-;:10;3352:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3426:1;3419:8;;;3189:246;;;;;:::o;3443:132::-;3501:7;3528:39;3532:1;3535;3528:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3521:46;;3443:132;;;;:::o;17314:164::-;17356:7;17377:15;17394;17413:19;:17;:19::i;:::-;17376:56;;;;17450:20;17462:7;17450;:11;;:20;;;;:::i;:::-;17443:27;;;;17314:164;:::o;9495:219::-;9555:1;9542:9;;:14;:30;;;;;9571:1;9560:7;;:12;9542:30;9574:7;9538:43;9613:9;;9593:17;:29;;;;9651:7;;9633:15;:25;;;;9683:1;9671:9;:13;;;;9705:1;9695:7;:11;;;;9495:219;:::o;14643:610::-;14790:15;14820:23;14858:12;14885:23;14923:12;14950:13;14977:19;14988:7;14977:10;:19::i;:::-;14775:221;;;;;;;;;;;;15025:28;15045:7;15025;:15;15033:6;15025:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15007:7;:15;15015:6;15007:15;;;;;;;;;;;;;;;:46;;;;15085:39;15108:15;15085:7;:18;15093:9;15085:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15064:7;:18;15072:9;15064:18;;;;;;;;;;;;;;;:60;;;;15135:16;15145:5;15135:9;:16::i;:::-;15162:23;15174:4;15180;15162:11;:23::i;:::-;15218:9;15201:44;;15210:6;15201:44;;;15229:15;15201:44;;;;;;:::i;:::-;;;;;;;;14764:489;;;;;;14643:610;;;:::o;9722:117::-;9778:17;;9766:9;:29;;;;9816:15;;9806:7;:25;;;;9722:117::o;3583:223::-;3703:7;3735:1;3731;:5;3738:12;3723:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3762:9;3778:1;3774;:5;;;;:::i;:::-;3762:17;;3797:1;3790:8;;;3583:223;;;;;:::o;17486:257::-;17537:7;17546;17566:15;17584:7;;17566:25;;17602:15;5372:17;17602:25;;17652:20;5372:17;17652:7;;:11;;:20;;;;:::i;:::-;17642:7;:30;17638:61;;;17682:7;;5372:17;17674:25;;;;;;;;17638:61;17718:7;17727;17710:25;;;;;;17486:257;;;:::o;15672:615::-;15772:7;15794;15816;15838;15860;15882;15918:23;15943:12;15957:13;15987:40;15999:7;16008:9;;16019:7;;15987:11;:40::i;:::-;15917:110;;;;;;16038:19;16060:10;:8;:10::i;:::-;16038:32;;16082:15;16099:23;16124:12;16153:46;16165:7;16174:4;16180:5;16187:11;16153;:46::i;:::-;16081:118;;;;;;16218:7;16227:15;16244:4;16250:15;16267:4;16273:5;16210:69;;;;;;;;;;;;;;;;;;;15672:615;;;;;;;:::o;2813:136::-;2871:7;2898:43;2902:1;2905;2898:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2891:50;;2813:136;;;;:::o;2626:179::-;2684:7;2704:9;2720:1;2716;:5;;;;:::i;:::-;2704:17;;2745:1;2740;:6;;2732:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2796:1;2789:8;;;2626:179;;;;:::o;15261:211::-;15314:19;15336:10;:8;:10::i;:::-;15314:32;;15357:13;15373:22;15383:11;15373:5;:9;;:22;;;;:::i;:::-;15357:38;;15431:33;15458:5;15431:7;:22;15447:4;15431:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15406:7;:22;15422:4;15406:22;;;;;;;;;;;;;;;:58;;;;15303:169;;15261:211;:::o;15480:147::-;15558:17;15570:4;15558:7;;:11;;:17;;;;:::i;:::-;15548:7;:27;;;;15599:20;15614:4;15599:10;;:14;;:20;;;;:::i;:::-;15586:10;:33;;;;15480:147;;:::o;16295:469::-;16464:7;16486;16508;16543:12;16558:30;16584:3;16558:21;16570:8;16558:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16543:45;;16599:13;16615:28;16639:3;16615:19;16627:6;16615:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16599:44;;16654:23;16680:28;16702:5;16680:17;16692:4;16680:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16654:54;;16727:15;16744:4;16750:5;16719:37;;;;;;;;;16295:469;;;;;;;:::o;16772:534::-;16966:7;16988;17010;17045:15;17063:24;17075:11;17063:7;:11;;:24;;;;:::i;:::-;17045:42;;17098:12;17113:21;17122:11;17113:4;:8;;:21;;;;:::i;:::-;17098:36;;17145:13;17161:22;17171:11;17161:5;:9;;:22;;;;:::i;:::-;17145:38;;17194:23;17220:28;17242:5;17220:17;17232:4;17220:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17194:54;;17267:7;17276:15;17293:4;17259:39;;;;;;;;;;16772:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:104::-;3836:7;3865:24;3883:5;3865:24;:::i;:::-;3854:35;;3791:104;;;:::o;3901:138::-;3982:32;4008:5;3982:32;:::i;:::-;3975:5;3972:43;3962:71;;4029:1;4026;4019:12;3962:71;3901:138;:::o;4045:155::-;4099:5;4137:6;4124:20;4115:29;;4153:41;4188:5;4153:41;:::i;:::-;4045:155;;;;:::o;4206:345::-;4273:6;4322:2;4310:9;4301:7;4297:23;4293:32;4290:119;;;4328:79;;:::i;:::-;4290:119;4448:1;4473:61;4526:7;4517:6;4506:9;4502:22;4473:61;:::i;:::-;4463:71;;4419:125;4206:345;;;;:::o;4557:90::-;4591:7;4634:5;4627:13;4620:21;4609:32;;4557:90;;;:::o;4653:109::-;4734:21;4749:5;4734:21;:::i;:::-;4729:3;4722:34;4653:109;;:::o;4768:210::-;4855:4;4893:2;4882:9;4878:18;4870:26;;4906:65;4968:1;4957:9;4953:17;4944:6;4906:65;:::i;:::-;4768:210;;;;:::o;4984:99::-;5036:6;5070:5;5064:12;5054:22;;4984:99;;;:::o;5089:169::-;5173:11;5207:6;5202:3;5195:19;5247:4;5242:3;5238:14;5223:29;;5089:169;;;;:::o;5264:246::-;5345:1;5355:113;5369:6;5366:1;5363:13;5355:113;;;5454:1;5449:3;5445:11;5439:18;5435:1;5430:3;5426:11;5419:39;5391:2;5388:1;5384:10;5379:15;;5355:113;;;5502:1;5493:6;5488:3;5484:16;5477:27;5326:184;5264:246;;;:::o;5516:377::-;5604:3;5632:39;5665:5;5632:39;:::i;:::-;5687:71;5751:6;5746:3;5687:71;:::i;:::-;5680:78;;5767:65;5825:6;5820:3;5813:4;5806:5;5802:16;5767:65;:::i;:::-;5857:29;5879:6;5857:29;:::i;:::-;5852:3;5848:39;5841:46;;5608:285;5516:377;;;;:::o;5899:313::-;6012:4;6050:2;6039:9;6035:18;6027:26;;6099:9;6093:4;6089:20;6085:1;6074:9;6070:17;6063:47;6127:78;6200:4;6191:6;6127:78;:::i;:::-;6119:86;;5899:313;;;;:::o;6218:77::-;6255:7;6284:5;6273:16;;6218:77;;;:::o;6301:122::-;6374:24;6392:5;6374:24;:::i;:::-;6367:5;6364:35;6354:63;;6413:1;6410;6403:12;6354:63;6301:122;:::o;6429:139::-;6475:5;6513:6;6500:20;6491:29;;6529:33;6556:5;6529:33;:::i;:::-;6429:139;;;;:::o;6574:474::-;6642:6;6650;6699:2;6687:9;6678:7;6674:23;6670:32;6667:119;;;6705:79;;:::i;:::-;6667:119;6825:1;6850:53;6895:7;6886:6;6875:9;6871:22;6850:53;:::i;:::-;6840:63;;6796:117;6952:2;6978:53;7023:7;7014:6;7003:9;6999:22;6978:53;:::i;:::-;6968:63;;6923:118;6574:474;;;;;:::o;7054:60::-;7082:3;7103:5;7096:12;;7054:60;;;:::o;7120:142::-;7170:9;7203:53;7221:34;7230:24;7248:5;7230:24;:::i;:::-;7221:34;:::i;:::-;7203:53;:::i;:::-;7190:66;;7120:142;;;:::o;7268:126::-;7318:9;7351:37;7382:5;7351:37;:::i;:::-;7338:50;;7268:126;;;:::o;7400:152::-;7476:9;7509:37;7540:5;7509:37;:::i;:::-;7496:50;;7400:152;;;:::o;7558:183::-;7671:63;7728:5;7671:63;:::i;:::-;7666:3;7659:76;7558:183;;:::o;7747:274::-;7866:4;7904:2;7893:9;7889:18;7881:26;;7917:97;8011:1;8000:9;7996:17;7987:6;7917:97;:::i;:::-;7747:274;;;;:::o;8027:118::-;8114:24;8132:5;8114:24;:::i;:::-;8109:3;8102:37;8027:118;;:::o;8151:222::-;8244:4;8282:2;8271:9;8267:18;8259:26;;8295:71;8363:1;8352:9;8348:17;8339:6;8295:71;:::i;:::-;8151:222;;;;:::o;8379:619::-;8456:6;8464;8472;8521:2;8509:9;8500:7;8496:23;8492:32;8489:119;;;8527:79;;:::i;:::-;8489:119;8647:1;8672:53;8717:7;8708:6;8697:9;8693:22;8672:53;:::i;:::-;8662:63;;8618:117;8774:2;8800:53;8845:7;8836:6;8825:9;8821:22;8800:53;:::i;:::-;8790:63;;8745:118;8902:2;8928:53;8973:7;8964:6;8953:9;8949:22;8928:53;:::i;:::-;8918:63;;8873:118;8379:619;;;;;:::o;9004:86::-;9039:7;9079:4;9072:5;9068:16;9057:27;;9004:86;;;:::o;9096:112::-;9179:22;9195:5;9179:22;:::i;:::-;9174:3;9167:35;9096:112;;:::o;9214:214::-;9303:4;9341:2;9330:9;9326:18;9318:26;;9354:67;9418:1;9407:9;9403:17;9394:6;9354:67;:::i;:::-;9214:214;;;;:::o;9434:118::-;9521:24;9539:5;9521:24;:::i;:::-;9516:3;9509:37;9434:118;;:::o;9558:222::-;9651:4;9689:2;9678:9;9674:18;9666:26;;9702:71;9770:1;9759:9;9755:17;9746:6;9702:71;:::i;:::-;9558:222;;;;:::o;9786:329::-;9845:6;9894:2;9882:9;9873:7;9869:23;9865:32;9862:119;;;9900:79;;:::i;:::-;9862:119;10020:1;10045:53;10090:7;10081:6;10070:9;10066:22;10045:53;:::i;:::-;10035:63;;9991:117;9786:329;;;;:::o;10121:116::-;10191:21;10206:5;10191:21;:::i;:::-;10184:5;10181:32;10171:60;;10227:1;10224;10217:12;10171:60;10121:116;:::o;10243:133::-;10286:5;10324:6;10311:20;10302:29;;10340:30;10364:5;10340:30;:::i;:::-;10243:133;;;;:::o;10382:323::-;10438:6;10487:2;10475:9;10466:7;10462:23;10458:32;10455:119;;;10493:79;;:::i;:::-;10455:119;10613:1;10638:50;10680:7;10671:6;10660:9;10656:22;10638:50;:::i;:::-;10628:60;;10584:114;10382:323;;;;:::o;10711:329::-;10770:6;10819:2;10807:9;10798:7;10794:23;10790:32;10787:119;;;10825:79;;:::i;:::-;10787:119;10945:1;10970:53;11015:7;11006:6;10995:9;10991:22;10970:53;:::i;:::-;10960:63;;10916:117;10711:329;;;;:::o;11046:765::-;11132:6;11140;11148;11156;11205:3;11193:9;11184:7;11180:23;11176:33;11173:120;;;11212:79;;:::i;:::-;11173:120;11332:1;11357:53;11402:7;11393:6;11382:9;11378:22;11357:53;:::i;:::-;11347:63;;11303:117;11459:2;11485:53;11530:7;11521:6;11510:9;11506:22;11485:53;:::i;:::-;11475:63;;11430:118;11587:2;11613:53;11658:7;11649:6;11638:9;11634:22;11613:53;:::i;:::-;11603:63;;11558:118;11715:2;11741:53;11786:7;11777:6;11766:9;11762:22;11741:53;:::i;:::-;11731:63;;11686:118;11046:765;;;;;;;:::o;11817:117::-;11926:1;11923;11916:12;11957:568;12030:8;12040:6;12090:3;12083:4;12075:6;12071:17;12067:27;12057:122;;12098:79;;:::i;:::-;12057:122;12211:6;12198:20;12188:30;;12241:18;12233:6;12230:30;12227:117;;;12263:79;;:::i;:::-;12227:117;12377:4;12369:6;12365:17;12353:29;;12431:3;12423:4;12415:6;12411:17;12401:8;12397:32;12394:41;12391:128;;;12438:79;;:::i;:::-;12391:128;11957:568;;;;;:::o;12531:698::-;12623:6;12631;12639;12688:2;12676:9;12667:7;12663:23;12659:32;12656:119;;;12694:79;;:::i;:::-;12656:119;12842:1;12831:9;12827:17;12814:31;12872:18;12864:6;12861:30;12858:117;;;12894:79;;:::i;:::-;12858:117;13007:80;13079:7;13070:6;13059:9;13055:22;13007:80;:::i;:::-;12989:98;;;;12785:312;13136:2;13162:50;13204:7;13195:6;13184:9;13180:22;13162:50;:::i;:::-;13152:60;;13107:115;12531:698;;;;;:::o;13235:474::-;13303:6;13311;13360:2;13348:9;13339:7;13335:23;13331:32;13328:119;;;13366:79;;:::i;:::-;13328:119;13486:1;13511:53;13556:7;13547:6;13536:9;13532:22;13511:53;:::i;:::-;13501:63;;13457:117;13613:2;13639:53;13684:7;13675:6;13664:9;13660:22;13639:53;:::i;:::-;13629:63;;13584:118;13235:474;;;;;:::o;13715:182::-;13855:34;13851:1;13843:6;13839:14;13832:58;13715:182;:::o;13903:366::-;14045:3;14066:67;14130:2;14125:3;14066:67;:::i;:::-;14059:74;;14142:93;14231:3;14142:93;:::i;:::-;14260:2;14255:3;14251:12;14244:19;;13903:366;;;:::o;14275:419::-;14441:4;14479:2;14468:9;14464:18;14456:26;;14528:9;14522:4;14518:20;14514:1;14503:9;14499:17;14492:47;14556:131;14682:4;14556:131;:::i;:::-;14548:139;;14275:419;;;:::o;14700:180::-;14748:77;14745:1;14738:88;14845:4;14842:1;14835:15;14869:4;14866:1;14859:15;14886:180;14934:77;14931:1;14924:88;15031:4;15028:1;15021:15;15055:4;15052:1;15045:15;15072:233;15111:3;15134:24;15152:5;15134:24;:::i;:::-;15125:33;;15180:66;15173:5;15170:77;15167:103;;15250:18;;:::i;:::-;15167:103;15297:1;15290:5;15286:13;15279:20;;15072:233;;;:::o;15311:161::-;15451:13;15447:1;15439:6;15435:14;15428:37;15311:161;:::o;15478:366::-;15620:3;15641:67;15705:2;15700:3;15641:67;:::i;:::-;15634:74;;15717:93;15806:3;15717:93;:::i;:::-;15835:2;15830:3;15826:12;15819:19;;15478:366;;;:::o;15850:419::-;16016:4;16054:2;16043:9;16039:18;16031:26;;16103:9;16097:4;16093:20;16089:1;16078:9;16074:17;16067:47;16131:131;16257:4;16131:131;:::i;:::-;16123:139;;15850:419;;;:::o;16275:162::-;16415:14;16411:1;16403:6;16399:14;16392:38;16275:162;:::o;16443:366::-;16585:3;16606:67;16670:2;16665:3;16606:67;:::i;:::-;16599:74;;16682:93;16771:3;16682:93;:::i;:::-;16800:2;16795:3;16791:12;16784:19;;16443:366;;;:::o;16815:419::-;16981:4;17019:2;17008:9;17004:18;16996:26;;17068:9;17062:4;17058:20;17054:1;17043:9;17039:17;17032:47;17096:131;17222:4;17096:131;:::i;:::-;17088:139;;16815:419;;;:::o;17240:225::-;17380:34;17376:1;17368:6;17364:14;17357:58;17449:8;17444:2;17436:6;17432:15;17425:33;17240:225;:::o;17471:366::-;17613:3;17634:67;17698:2;17693:3;17634:67;:::i;:::-;17627:74;;17710:93;17799:3;17710:93;:::i;:::-;17828:2;17823:3;17819:12;17812:19;;17471:366;;;:::o;17843:419::-;18009:4;18047:2;18036:9;18032:18;18024:26;;18096:9;18090:4;18086:20;18082:1;18071:9;18067:17;18060:47;18124:131;18250:4;18124:131;:::i;:::-;18116:139;;17843:419;;;:::o;18268:223::-;18408:34;18404:1;18396:6;18392:14;18385:58;18477:6;18472:2;18464:6;18460:15;18453:31;18268:223;:::o;18497:366::-;18639:3;18660:67;18724:2;18719:3;18660:67;:::i;:::-;18653:74;;18736:93;18825:3;18736:93;:::i;:::-;18854:2;18849:3;18845:12;18838:19;;18497:366;;;:::o;18869:419::-;19035:4;19073:2;19062:9;19058:18;19050:26;;19122:9;19116:4;19112:20;19108:1;19097:9;19093:17;19086:47;19150:131;19276:4;19150:131;:::i;:::-;19142:139;;18869:419;;;:::o;19294:221::-;19434:34;19430:1;19422:6;19418:14;19411:58;19503:4;19498:2;19490:6;19486:15;19479:29;19294:221;:::o;19521:366::-;19663:3;19684:67;19748:2;19743:3;19684:67;:::i;:::-;19677:74;;19760:93;19849:3;19760:93;:::i;:::-;19878:2;19873:3;19869:12;19862:19;;19521:366;;;:::o;19893:419::-;20059:4;20097:2;20086:9;20082:18;20074:26;;20146:9;20140:4;20136:20;20132:1;20121:9;20117:17;20110:47;20174:131;20300:4;20174:131;:::i;:::-;20166:139;;19893:419;;;:::o;20318:224::-;20458:34;20454:1;20446:6;20442:14;20435:58;20527:7;20522:2;20514:6;20510:15;20503:32;20318:224;:::o;20548:366::-;20690:3;20711:67;20775:2;20770:3;20711:67;:::i;:::-;20704:74;;20787:93;20876:3;20787:93;:::i;:::-;20905:2;20900:3;20896:12;20889:19;;20548:366;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;20920:419;;;:::o;21345:222::-;21485:34;21481:1;21473:6;21469:14;21462:58;21554:5;21549:2;21541:6;21537:15;21530:30;21345:222;:::o;21573:366::-;21715:3;21736:67;21800:2;21795:3;21736:67;:::i;:::-;21729:74;;21812:93;21901:3;21812:93;:::i;:::-;21930:2;21925:3;21921:12;21914:19;;21573:366;;;:::o;21945:419::-;22111:4;22149:2;22138:9;22134:18;22126:26;;22198:9;22192:4;22188:20;22184:1;22173:9;22169:17;22162:47;22226:131;22352:4;22226:131;:::i;:::-;22218:139;;21945:419;;;:::o;22370:228::-;22510:34;22506:1;22498:6;22494:14;22487:58;22579:11;22574:2;22566:6;22562:15;22555:36;22370:228;:::o;22604:366::-;22746:3;22767:67;22831:2;22826:3;22767:67;:::i;:::-;22760:74;;22843:93;22932:3;22843:93;:::i;:::-;22961:2;22956:3;22952:12;22945:19;;22604:366;;;:::o;22976:419::-;23142:4;23180:2;23169:9;23165:18;23157:26;;23229:9;23223:4;23219:20;23215:1;23204:9;23200:17;23193:47;23257:131;23383:4;23257:131;:::i;:::-;23249:139;;22976:419;;;:::o;23401:250::-;23541:34;23537:1;23529:6;23525:14;23518:58;23610:33;23605:2;23597:6;23593:15;23586:58;23401:250;:::o;23657:366::-;23799:3;23820:67;23884:2;23879:3;23820:67;:::i;:::-;23813:74;;23896:93;23985:3;23896:93;:::i;:::-;24014:2;24009:3;24005:12;23998:19;;23657:366;;;:::o;24029:419::-;24195:4;24233:2;24222:9;24218:18;24210:26;;24282:9;24276:4;24272:20;24268:1;24257:9;24253:17;24246:47;24310:131;24436:4;24310:131;:::i;:::-;24302:139;;24029:419;;;:::o;24454:178::-;24594:30;24590:1;24582:6;24578:14;24571:54;24454:178;:::o;24638:366::-;24780:3;24801:67;24865:2;24860:3;24801:67;:::i;:::-;24794:74;;24877:93;24966:3;24877:93;:::i;:::-;24995:2;24990:3;24986:12;24979:19;;24638:366;;;:::o;25010:419::-;25176:4;25214:2;25203:9;25199:18;25191:26;;25263:9;25257:4;25253:20;25249:1;25238:9;25234:17;25227:47;25291:131;25417:4;25291:131;:::i;:::-;25283:139;;25010:419;;;:::o;25435:222::-;25575:34;25571:1;25563:6;25559:14;25552:58;25644:5;25639:2;25631:6;25627:15;25620:30;25435:222;:::o;25663:366::-;25805:3;25826:67;25890:2;25885:3;25826:67;:::i;:::-;25819:74;;25902:93;25991:3;25902:93;:::i;:::-;26020:2;26015:3;26011:12;26004:19;;25663:366;;;:::o;26035:419::-;26201:4;26239:2;26228:9;26224:18;26216:26;;26288:9;26282:4;26278:20;26274:1;26263:9;26259:17;26252:47;26316:131;26442:4;26316:131;:::i;:::-;26308:139;;26035:419;;;:::o;26460:191::-;26500:3;26519:20;26537:1;26519:20;:::i;:::-;26514:25;;26553:20;26571:1;26553:20;:::i;:::-;26548:25;;26596:1;26593;26589:9;26582:16;;26617:3;26614:1;26611:10;26608:36;;;26624:18;;:::i;:::-;26608:36;26460:191;;;;:::o;26657:222::-;26797:34;26793:1;26785:6;26781:14;26774:58;26866:5;26861:2;26853:6;26849:15;26842:30;26657:222;:::o;26885:366::-;27027:3;27048:67;27112:2;27107:3;27048:67;:::i;:::-;27041:74;;27124:93;27213:3;27124:93;:::i;:::-;27242:2;27237:3;27233:12;27226:19;;26885:366;;;:::o;27257:419::-;27423:4;27461:2;27450:9;27446:18;27438:26;;27510:9;27504:4;27500:20;27496:1;27485:9;27481:17;27474:47;27538:131;27664:4;27538:131;:::i;:::-;27530:139;;27257:419;;;:::o;27682:194::-;27722:4;27742:20;27760:1;27742:20;:::i;:::-;27737:25;;27776:20;27794:1;27776:20;:::i;:::-;27771:25;;27820:1;27817;27813:9;27805:17;;27844:1;27838:4;27835:11;27832:37;;;27849:18;;:::i;:::-;27832:37;27682:194;;;;:::o;27882:229::-;28022:34;28018:1;28010:6;28006:14;27999:58;28091:12;28086:2;28078:6;28074:15;28067:37;27882:229;:::o;28117:366::-;28259:3;28280:67;28344:2;28339:3;28280:67;:::i;:::-;28273:74;;28356:93;28445:3;28356:93;:::i;:::-;28474:2;28469:3;28465:12;28458:19;;28117:366;;;:::o;28489:419::-;28655:4;28693:2;28682:9;28678:18;28670:26;;28742:9;28736:4;28732:20;28728:1;28717:9;28713:17;28706:47;28770:131;28896:4;28770:131;:::i;:::-;28762:139;;28489:419;;;:::o;28914:143::-;28971:5;29002:6;28996:13;28987:22;;29018:33;29045:5;29018:33;:::i;:::-;28914:143;;;;:::o;29063:351::-;29133:6;29182:2;29170:9;29161:7;29157:23;29153:32;29150:119;;;29188:79;;:::i;:::-;29150:119;29308:1;29333:64;29389:7;29380:6;29369:9;29365:22;29333:64;:::i;:::-;29323:74;;29279:128;29063:351;;;;:::o;29420:85::-;29465:7;29494:5;29483:16;;29420:85;;;:::o;29511:158::-;29569:9;29602:61;29620:42;29629:32;29655:5;29629:32;:::i;:::-;29620:42;:::i;:::-;29602:61;:::i;:::-;29589:74;;29511:158;;;:::o;29675:147::-;29770:45;29809:5;29770:45;:::i;:::-;29765:3;29758:58;29675:147;;:::o;29828:114::-;29895:6;29929:5;29923:12;29913:22;;29828:114;;;:::o;29948:184::-;30047:11;30081:6;30076:3;30069:19;30121:4;30116:3;30112:14;30097:29;;29948:184;;;;:::o;30138:132::-;30205:4;30228:3;30220:11;;30258:4;30253:3;30249:14;30241:22;;30138:132;;;:::o;30276:108::-;30353:24;30371:5;30353:24;:::i;:::-;30348:3;30341:37;30276:108;;:::o;30390:179::-;30459:10;30480:46;30522:3;30514:6;30480:46;:::i;:::-;30558:4;30553:3;30549:14;30535:28;;30390:179;;;;:::o;30575:113::-;30645:4;30677;30672:3;30668:14;30660:22;;30575:113;;;:::o;30724:732::-;30843:3;30872:54;30920:5;30872:54;:::i;:::-;30942:86;31021:6;31016:3;30942:86;:::i;:::-;30935:93;;31052:56;31102:5;31052:56;:::i;:::-;31131:7;31162:1;31147:284;31172:6;31169:1;31166:13;31147:284;;;31248:6;31242:13;31275:63;31334:3;31319:13;31275:63;:::i;:::-;31268:70;;31361:60;31414:6;31361:60;:::i;:::-;31351:70;;31207:224;31194:1;31191;31187:9;31182:14;;31147:284;;;31151:14;31447:3;31440:10;;30848:608;;;30724:732;;;;:::o;31462:831::-;31725:4;31763:3;31752:9;31748:19;31740:27;;31777:71;31845:1;31834:9;31830:17;31821:6;31777:71;:::i;:::-;31858:80;31934:2;31923:9;31919:18;31910:6;31858:80;:::i;:::-;31985:9;31979:4;31975:20;31970:2;31959:9;31955:18;31948:48;32013:108;32116:4;32107:6;32013:108;:::i;:::-;32005:116;;32131:72;32199:2;32188:9;32184:18;32175:6;32131:72;:::i;:::-;32213:73;32281:3;32270:9;32266:19;32257:6;32213:73;:::i;:::-;31462:831;;;;;;;;:::o;32299:410::-;32339:7;32362:20;32380:1;32362:20;:::i;:::-;32357:25;;32396:20;32414:1;32396:20;:::i;:::-;32391:25;;32451:1;32448;32444:9;32473:30;32491:11;32473:30;:::i;:::-;32462:41;;32652:1;32643:7;32639:15;32636:1;32633:22;32613:1;32606:9;32586:83;32563:139;;32682:18;;:::i;:::-;32563:139;32347:362;32299:410;;;;:::o;32715:180::-;32763:77;32760:1;32753:88;32860:4;32857:1;32850:15;32884:4;32881:1;32874:15;32901:185;32941:1;32958:20;32976:1;32958:20;:::i;:::-;32953:25;;32992:20;33010:1;32992:20;:::i;:::-;32987:25;;33031:1;33021:35;;33036:18;;:::i;:::-;33021:35;33078:1;33075;33071:9;33066:14;;32901:185;;;;:::o;33092:220::-;33232:34;33228:1;33220:6;33216:14;33209:58;33301:3;33296:2;33288:6;33284:15;33277:28;33092:220;:::o;33318:366::-;33460:3;33481:67;33545:2;33540:3;33481:67;:::i;:::-;33474:74;;33557:93;33646:3;33557:93;:::i;:::-;33675:2;33670:3;33666:12;33659:19;;33318:366;;;:::o;33690:419::-;33856:4;33894:2;33883:9;33879:18;33871:26;;33943:9;33937:4;33933:20;33929:1;33918:9;33914:17;33907:47;33971:131;34097:4;33971:131;:::i;:::-;33963:139;;33690:419;;;:::o;34115:177::-;34255:29;34251:1;34243:6;34239:14;34232:53;34115:177;:::o;34298:366::-;34440:3;34461:67;34525:2;34520:3;34461:67;:::i;:::-;34454:74;;34537:93;34626:3;34537:93;:::i;:::-;34655:2;34650:3;34646:12;34639:19;;34298:366;;;:::o;34670:419::-;34836:4;34874:2;34863:9;34859:18;34851:26;;34923:9;34917:4;34913:20;34909:1;34898:9;34894:17;34887:47;34951:131;35077:4;34951:131;:::i;:::-;34943:139;;34670:419;;;:::o
Swarm Source
ipfs://156dc84ab505906b47e4af1ea79bf1732696677e390ac6d2352729fcb0bca5ef
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.