ERC-20
Overview
Max Total Supply
1,000,000,000 TWEETY
Holders
126
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
98.960992044 TWEETYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Tweety
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-15 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface Token { function transferFrom(address, address, uint) external returns (bool); function transfer(address, uint) external returns (bool); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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; } } contract Ownable is Context { address private _owner; address private _previousOwner; constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function transferOwnership(address newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Tweety is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private bots; mapping (address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 4; uint256 private _taxFeeOnBuy = 3; uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 7 + 20; // 20 extra for first hour to avoid bots uint256 private _redisFee; uint256 private _taxFee; string private constant _name = "Tweety Token"; string private constant _symbol = "TWEETY"; uint8 private constant _decimals = 9; address payable private _developmentAddress = payable(0xABD419e512aB24319303bBf5AD21F6AC9751f46e); address payable private _marketingAddress = payable(0x9ED6068FdC5E823430b979A95751d0F4a950DB4B); address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; uint256 private _maxWalletSize; // = 30_000_000 * 10**9; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal); } modifier onlyDev() { require(owner() == _msgSender() || _developmentAddress == _msgSender(), "Caller is not the dev"); _; } 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 _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"); _redisFee = 0; _taxFee = 0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance > 0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { _redisFee = 0; _taxFee = 0; } } _tokenTransfer(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } event tokensRescued(address indexed token, address indexed to, uint amount); function rescueForeignTokens(address _tokenAddr, address _to, uint _amount) public onlyDev() { emit tokensRescued(_tokenAddr, _to, _amount); Token(_tokenAddr).transfer(_to, _amount); } event devAddressUpdated(address indexed previous, address indexed adr); function setNewDevAddress(address payable dev) public onlyDev() { emit devAddressUpdated(_developmentAddress, dev); _developmentAddress = dev; _isExcludedFromFee[_developmentAddress] = true; } event marketingAddressUpdated(address indexed previous, address indexed adr); function setNewMarketingAddress(address payable markt) public onlyDev() { emit marketingAddressUpdated(_marketingAddress, markt); _marketingAddress = markt; _isExcludedFromFee[_marketingAddress] = true; } 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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).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 manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner()); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner()); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function addbot(address[] memory bots_) public onlyDev { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unbot(address[] memory bots_) public onlyDev { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = false; } } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyDev { require(redisFeeOnBuy < 11, "Redis cannot be more than 10."); require(redisFeeOnSell < 11, "Redis cannot be more than 10."); require(taxFeeOnBuy < 11, "Tax cannot be more than 10."); require(taxFeeOnSell < 11, "Tax cannot be more than 10."); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMaxWallet(uint256 size_) public onlyDev { _maxWalletSize = size_; } function toggleSwap(bool _swapEnabled) public onlyDev { swapEnabled = _swapEnabled; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"adr","type":"address"}],"name":"devAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"adr","type":"address"}],"name":"marketingAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensRescued","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueForeignTokens","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":"size_","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"dev","type":"address"}],"name":"setNewDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"markt","type":"address"}],"name":"setNewMarketingAddress","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":"bots_","type":"address[]"}],"name":"unbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c919062000859565b6000196200002b9190620007e0565b60075560046009556003600a556001600b55601b600c5573abd419e512ab24319303bbf5ad21f6ac9751f46e600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739ed6068fdc5e823430b979a95751d0f4a950db4b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055506001601360156101000a81548160ff0219169083151502179055503480156200018457600080fd5b506000620001976200070060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600260006200024c6200070060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033957600080fd5b505afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000374919062000748565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d757600080fd5b505afa158015620003ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000412919062000748565b6040518363ffffffff1660e01b81526004016200043192919062000796565b602060405180830381600087803b1580156200044c57600080fd5b505af115801562000461573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000487919062000748565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004dd6200070860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200068a6200070060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006f19190620007c3565b60405180910390a35062000909565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200074281620008ef565b92915050565b6000602082840312156200075b57600080fd5b60006200076b8482850162000731565b91505092915050565b6200077f816200081b565b82525050565b62000790816200084f565b82525050565b6000604082019050620007ad600083018562000774565b620007bc602083018462000774565b9392505050565b6000602082019050620007da600083018462000785565b92915050565b6000620007ed826200084f565b9150620007fa836200084f565b92508282101562000810576200080f62000891565b5b828203905092915050565b600062000828826200082f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000866826200084f565b915062000873836200084f565b925082620008865762000885620008c0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620008fa816200081b565b81146200090657600080fd5b50565b6141f980620009196000396000f3fe60806040526004361061016a5760003560e01c8063758dbe03116100d1578063bf1723581161008a578063ccfee5d611610064578063ccfee5d6146104fb578063dd62ed3e14610524578063e293d31614610561578063f2fde38b1461058a57610171565b8063bf17235814610492578063c3c8cd80146104bb578063c492f046146104d257610171565b8063758dbe03146103845780638da5cb5b146103ad57806395d89b41146103d8578063a2a957bb14610403578063a9059cbb1461042c578063aad5c0231461046957610171565b806349bd5a5e1161012357806349bd5a5e1461029c5780635d0044ca146102c75780636d8aa8f8146102f05780636fc3eaec1461031957806370a0823114610330578063715018a61461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b3565b604051610198919061382b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061331f565b6105f0565b6040516101d591906137f5565b60405180910390f35b3480156101ea57600080fd5b506101f361060e565b6040516102009190613810565b60405180910390f35b34801561021557600080fd5b5061021e610634565b60405161022b91906139ed565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906132d0565b610644565b60405161026891906137f5565b60405180910390f35b34801561027d57600080fd5b5061028661071d565b6040516102939190613a62565b60405180910390f35b3480156102a857600080fd5b506102b1610726565b6040516102be91906137b1565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190613446565b61074c565b005b3480156102fc57600080fd5b50610317600480360381019061031291906133f4565b610831565b005b34801561032557600080fd5b5061032e610929565b005b34801561033c57600080fd5b5061035760048036038101906103529190613219565b610a3e565b60405161036491906139ed565b60405180910390f35b34801561037957600080fd5b50610382610a8f565b005b34801561039057600080fd5b506103ab60048036038101906103a6919061326b565b610be2565b005b3480156103b957600080fd5b506103c2610df7565b6040516103cf91906137b1565b60405180910390f35b3480156103e457600080fd5b506103ed610e20565b6040516103fa919061382b565b60405180910390f35b34801561040f57600080fd5b5061042a6004803603810190610425919061346f565b610e5d565b005b34801561043857600080fd5b50610453600480360381019061044e919061331f565b611066565b60405161046091906137f5565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b919061326b565b611084565b005b34801561049e57600080fd5b506104b960048036038101906104b491906133b3565b611299565b005b3480156104c757600080fd5b506104d061142f565b005b3480156104de57600080fd5b506104f960048036038101906104f4919061335b565b61154c565b005b34801561050757600080fd5b50610522600480360381019061051d91906133b3565b6116ac565b005b34801561053057600080fd5b5061054b60048036038101906105469190613294565b611842565b60405161055891906139ed565b60405180910390f35b34801561056d57600080fd5b50610588600480360381019061058391906132d0565b6118c9565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613219565b611a9c565b005b60606040518060400160405280600c81526020017f54776565747920546f6b656e0000000000000000000000000000000000000000815250905090565b60006106046105fd611bee565b8484611bf6565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610651848484611dc1565b6107128461065d611bee565b61070d8560405180606001604052806028815260200161419c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c3611bee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125419092919063ffffffff16565b611bf6565b600190509392505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610754611bee565b73ffffffffffffffffffffffffffffffffffffffff16610772610df7565b73ffffffffffffffffffffffffffffffffffffffff1614806107e85750610797611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e9061392d565b60405180910390fd5b8060148190555050565b610839611bee565b73ffffffffffffffffffffffffffffffffffffffff16610857610df7565b73ffffffffffffffffffffffffffffffffffffffff1614806108cd575061087c611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061392d565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096a611bee565b73ffffffffffffffffffffffffffffffffffffffff1614806109e05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c8611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b80610a2457506109ee610df7565b73ffffffffffffffffffffffffffffffffffffffff16610a0c611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b610a2d57600080fd5b6000479050610a3b816125a5565b50565b6000610a88600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a0565b9050919050565b610a97611bee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061388d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bea611bee565b73ffffffffffffffffffffffffffffffffffffffff16610c08610df7565b73ffffffffffffffffffffffffffffffffffffffff161480610c7e5750610c2d611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb49061392d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa64373a629bc0c09eacf8a9cc2c7b070fa0a8b7e2e9b8aaee408a3c02eb1676b60405160405180910390a380601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5457454554590000000000000000000000000000000000000000000000000000815250905090565b610e65611bee565b73ffffffffffffffffffffffffffffffffffffffff16610e83610df7565b73ffffffffffffffffffffffffffffffffffffffff161480610ef95750610ea8611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f9061392d565b60405180910390fd5b600b8410610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f72906139cd565b60405180910390fd5b600b8310610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906139cd565b60405180910390fd5b600b8210611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff89061386d565b60405180910390fd5b600b8110611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b9061386d565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061107a611073611bee565b8484611dc1565b6001905092915050565b61108c611bee565b73ffffffffffffffffffffffffffffffffffffffff166110aa610df7565b73ffffffffffffffffffffffffffffffffffffffff16148061112057506110cf611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61115f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111569061392d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffbbc329437e8c79f847e170730ad6dd04106b7511cad70d06d635886d92de83c60405160405180910390a380600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112a1611bee565b73ffffffffffffffffffffffffffffffffffffffff166112bf610df7565b73ffffffffffffffffffffffffffffffffffffffff16148061133557506112e4611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b9061392d565b60405180910390fd5b60005b815181101561142b576000600560008484815181106113bf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061142390613d39565b915050611377565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611470611bee565b73ffffffffffffffffffffffffffffffffffffffff1614806114e65750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ce611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b8061152a57506114f4610df7565b73ffffffffffffffffffffffffffffffffffffffff16611512611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b61153357600080fd5b600061153e30610a3e565b90506115498161270e565b50565b611554611bee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061388d565b60405180910390fd5b60005b838390508110156116a657816006600086868581811061162d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906116429190613219565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061169e90613d39565b9150506115e4565b50505050565b6116b4611bee565b73ffffffffffffffffffffffffffffffffffffffff166116d2610df7565b73ffffffffffffffffffffffffffffffffffffffff16148061174857506116f7611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e9061392d565b60405180910390fd5b60005b815181101561183e576001600560008484815181106117d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061183690613d39565b91505061178a565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118d1611bee565b73ffffffffffffffffffffffffffffffffffffffff166118ef610df7565b73ffffffffffffffffffffffffffffffffffffffff1614806119655750611914611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b9061392d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f47c33aa230eb5fd181505aa7befeaddd9b8a6f983989cea73a7868448c3a9ed983604051611a0191906139ed565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611a449291906137cc565b602060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a96919061341d565b50505050565b611aa4611bee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b289061388d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d906139ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccd906138cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611db491906139ed565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e289061396d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e989061384d565b60405180910390fd5b60008111611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb9061394d565b60405180910390fd5b6000600d819055506000600e81905550611efc610df7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f6a5750611f3a610df7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561253157600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120135750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61201c57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561211d5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217b576014548161212f84610a3e565b6121399190613b23565b111561217a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121719061398d565b60405180910390fd5b5b600061218630610a3e565b9050601360149054906101000a900460ff161580156121f35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561220b5750601360159054906101000a900460ff165b80156122175750600081115b1561223f576122258161270e565b6000479050600081111561223d5761223c476125a5565b5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122ea5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561230257600954600d81905550600a54600e819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123ad5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123c557600b54600d81905550600c54600e819055505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124665750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125195750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125185750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561252f576000600d819055506000600e819055505b505b61253c838383612a08565b505050565b6000838311158290612589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612580919061382b565b60405180910390fd5b50600083856125989190613c04565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125f5600284612a1890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612620573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612671600284612a1890919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561269c573d6000803e3d6000fd5b5050565b60006007548211156126e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126de906138ad565b60405180910390fd5b60006126f1612a62565b90506127068184612a1890919063ffffffff16565b915050919050565b6001601360146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561276c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561279a5781602001602082028036833780820191505090505b50905030816000815181106127d8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561287a57600080fd5b505afa15801561288e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b29190613242565b816001815181106128ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061295330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bf6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129b7959493929190613a08565b600060405180830381600087803b1580156129d157600080fd5b505af11580156129e5573d6000803e3d6000fd5b50505050506000601360146101000a81548160ff02191690831515021790555050565b612a13838383612a8d565b505050565b6000612a5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c58565b905092915050565b6000806000612a6f612cbb565b91509150612a868183612a1890919063ffffffff16565b9250505090565b600080600080600080612a9f87612d1a565b955095509550955095509550612afd86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d8290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dcc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bde81612e2a565b612be88483612ee7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c4591906139ed565b60405180910390a3505050505050505050565b60008083118290612c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c96919061382b565b60405180910390fd5b5060008385612cae9190613b79565b9050809150509392505050565b600080600060075490506000670de0b6b3a76400009050612cef670de0b6b3a7640000600754612a1890919063ffffffff16565b821015612d0d57600754670de0b6b3a7640000935093505050612d16565b81819350935050505b9091565b6000806000806000806000806000612d378a600d54600e54612f21565b9250925092506000612d47612a62565b90506000806000612d5a8e878787612fb7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612dc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612541565b905092915050565b6000808284612ddb9190613b23565b905083811015612e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e17906138ed565b60405180910390fd5b8091505092915050565b6000612e34612a62565b90506000612e4b828461304090919063ffffffff16565b9050612e9f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dcc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612efc82600754612d8290919063ffffffff16565b600781905550612f1781600854612dcc90919063ffffffff16565b6008819055505050565b600080600080612f4d6064612f3f888a61304090919063ffffffff16565b612a1890919063ffffffff16565b90506000612f776064612f69888b61304090919063ffffffff16565b612a1890919063ffffffff16565b90506000612fa082612f92858c612d8290919063ffffffff16565b612d8290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612fd0858961304090919063ffffffff16565b90506000612fe7868961304090919063ffffffff16565b90506000612ffe878961304090919063ffffffff16565b90506000613027826130198587612d8290919063ffffffff16565b612d8290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561305357600090506130b5565b600082846130619190613baa565b90508284826130709190613b79565b146130b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a79061390d565b60405180910390fd5b809150505b92915050565b60006130ce6130c984613aa2565b613a7d565b905080838252602082019050828560208602820111156130ed57600080fd5b60005b8581101561311d57816131038882613127565b8452602084019350602083019250506001810190506130f0565b5050509392505050565b6000813590506131368161413f565b92915050565b60008151905061314b8161413f565b92915050565b60008135905061316081614156565b92915050565b60008083601f84011261317857600080fd5b8235905067ffffffffffffffff81111561319157600080fd5b6020830191508360208202830111156131a957600080fd5b9250929050565b600082601f8301126131c157600080fd5b81356131d18482602086016130bb565b91505092915050565b6000813590506131e98161416d565b92915050565b6000815190506131fe8161416d565b92915050565b60008135905061321381614184565b92915050565b60006020828403121561322b57600080fd5b600061323984828501613127565b91505092915050565b60006020828403121561325457600080fd5b60006132628482850161313c565b91505092915050565b60006020828403121561327d57600080fd5b600061328b84828501613151565b91505092915050565b600080604083850312156132a757600080fd5b60006132b585828601613127565b92505060206132c685828601613127565b9150509250929050565b6000806000606084860312156132e557600080fd5b60006132f386828701613127565b935050602061330486828701613127565b925050604061331586828701613204565b9150509250925092565b6000806040838503121561333257600080fd5b600061334085828601613127565b925050602061335185828601613204565b9150509250929050565b60008060006040848603121561337057600080fd5b600084013567ffffffffffffffff81111561338a57600080fd5b61339686828701613166565b935093505060206133a9868287016131da565b9150509250925092565b6000602082840312156133c557600080fd5b600082013567ffffffffffffffff8111156133df57600080fd5b6133eb848285016131b0565b91505092915050565b60006020828403121561340657600080fd5b6000613414848285016131da565b91505092915050565b60006020828403121561342f57600080fd5b600061343d848285016131ef565b91505092915050565b60006020828403121561345857600080fd5b600061346684828501613204565b91505092915050565b6000806000806080858703121561348557600080fd5b600061349387828801613204565b94505060206134a487828801613204565b93505060406134b587828801613204565b92505060606134c687828801613204565b91505092959194509250565b60006134de83836134ea565b60208301905092915050565b6134f381613c38565b82525050565b61350281613c38565b82525050565b600061351382613ade565b61351d8185613b01565b935061352883613ace565b8060005b8381101561355957815161354088826134d2565b975061354b83613af4565b92505060018101905061352c565b5085935050505092915050565b61356f81613c5c565b82525050565b61357e81613c9f565b82525050565b61358d81613cc3565b82525050565b600061359e82613ae9565b6135a88185613b12565b93506135b8818560208601613cd5565b6135c181613e0f565b840191505092915050565b60006135d9602383613b12565b91506135e482613e20565b604082019050919050565b60006135fc601b83613b12565b915061360782613e6f565b602082019050919050565b600061361f601783613b12565b915061362a82613e98565b602082019050919050565b6000613642602a83613b12565b915061364d82613ec1565b604082019050919050565b6000613665602283613b12565b915061367082613f10565b604082019050919050565b6000613688601b83613b12565b915061369382613f5f565b602082019050919050565b60006136ab602183613b12565b91506136b682613f88565b604082019050919050565b60006136ce601583613b12565b91506136d982613fd7565b602082019050919050565b60006136f1602983613b12565b91506136fc82614000565b604082019050919050565b6000613714602583613b12565b915061371f8261404f565b604082019050919050565b6000613737601a83613b12565b91506137428261409e565b602082019050919050565b600061375a602483613b12565b9150613765826140c7565b604082019050919050565b600061377d601d83613b12565b915061378882614116565b602082019050919050565b61379c81613c88565b82525050565b6137ab81613c92565b82525050565b60006020820190506137c660008301846134f9565b92915050565b60006040820190506137e160008301856134f9565b6137ee6020830184613793565b9392505050565b600060208201905061380a6000830184613566565b92915050565b60006020820190506138256000830184613575565b92915050565b600060208201905081810360008301526138458184613593565b905092915050565b60006020820190508181036000830152613866816135cc565b9050919050565b60006020820190508181036000830152613886816135ef565b9050919050565b600060208201905081810360008301526138a681613612565b9050919050565b600060208201905081810360008301526138c681613635565b9050919050565b600060208201905081810360008301526138e681613658565b9050919050565b600060208201905081810360008301526139068161367b565b9050919050565b600060208201905081810360008301526139268161369e565b9050919050565b60006020820190508181036000830152613946816136c1565b9050919050565b60006020820190508181036000830152613966816136e4565b9050919050565b6000602082019050818103600083015261398681613707565b9050919050565b600060208201905081810360008301526139a68161372a565b9050919050565b600060208201905081810360008301526139c68161374d565b9050919050565b600060208201905081810360008301526139e681613770565b9050919050565b6000602082019050613a026000830184613793565b92915050565b600060a082019050613a1d6000830188613793565b613a2a6020830187613584565b8181036040830152613a3c8186613508565b9050613a4b60608301856134f9565b613a586080830184613793565b9695505050505050565b6000602082019050613a7760008301846137a2565b92915050565b6000613a87613a98565b9050613a938282613d08565b919050565b6000604051905090565b600067ffffffffffffffff821115613abd57613abc613de0565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b2e82613c88565b9150613b3983613c88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6e57613b6d613d82565b5b828201905092915050565b6000613b8482613c88565b9150613b8f83613c88565b925082613b9f57613b9e613db1565b5b828204905092915050565b6000613bb582613c88565b9150613bc083613c88565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bf957613bf8613d82565b5b828202905092915050565b6000613c0f82613c88565b9150613c1a83613c88565b925082821015613c2d57613c2c613d82565b5b828203905092915050565b6000613c4382613c68565b9050919050565b6000613c5582613c68565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613caa82613cb1565b9050919050565b6000613cbc82613c68565b9050919050565b6000613cce82613c88565b9050919050565b60005b83811015613cf3578082015181840152602081019050613cd8565b83811115613d02576000848401525b50505050565b613d1182613e0f565b810181811067ffffffffffffffff82111715613d3057613d2f613de0565b5b80604052505050565b6000613d4482613c88565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d7757613d76613d82565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5461782063616e6e6f74206265206d6f7265207468616e2031302e0000000000600082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206465760000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f52656469732063616e6e6f74206265206d6f7265207468616e2031302e000000600082015250565b61414881613c38565b811461415357600080fd5b50565b61415f81613c4a565b811461416a57600080fd5b50565b61417681613c5c565b811461418157600080fd5b50565b61418d81613c88565b811461419857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a83a5910d69a845bce79cb8d29b7d2037e1b7a8c898310bae9547fdf288358c364736f6c63430008040033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c8063758dbe03116100d1578063bf1723581161008a578063ccfee5d611610064578063ccfee5d6146104fb578063dd62ed3e14610524578063e293d31614610561578063f2fde38b1461058a57610171565b8063bf17235814610492578063c3c8cd80146104bb578063c492f046146104d257610171565b8063758dbe03146103845780638da5cb5b146103ad57806395d89b41146103d8578063a2a957bb14610403578063a9059cbb1461042c578063aad5c0231461046957610171565b806349bd5a5e1161012357806349bd5a5e1461029c5780635d0044ca146102c75780636d8aa8f8146102f05780636fc3eaec1461031957806370a0823114610330578063715018a61461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b3565b604051610198919061382b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061331f565b6105f0565b6040516101d591906137f5565b60405180910390f35b3480156101ea57600080fd5b506101f361060e565b6040516102009190613810565b60405180910390f35b34801561021557600080fd5b5061021e610634565b60405161022b91906139ed565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906132d0565b610644565b60405161026891906137f5565b60405180910390f35b34801561027d57600080fd5b5061028661071d565b6040516102939190613a62565b60405180910390f35b3480156102a857600080fd5b506102b1610726565b6040516102be91906137b1565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190613446565b61074c565b005b3480156102fc57600080fd5b50610317600480360381019061031291906133f4565b610831565b005b34801561032557600080fd5b5061032e610929565b005b34801561033c57600080fd5b5061035760048036038101906103529190613219565b610a3e565b60405161036491906139ed565b60405180910390f35b34801561037957600080fd5b50610382610a8f565b005b34801561039057600080fd5b506103ab60048036038101906103a6919061326b565b610be2565b005b3480156103b957600080fd5b506103c2610df7565b6040516103cf91906137b1565b60405180910390f35b3480156103e457600080fd5b506103ed610e20565b6040516103fa919061382b565b60405180910390f35b34801561040f57600080fd5b5061042a6004803603810190610425919061346f565b610e5d565b005b34801561043857600080fd5b50610453600480360381019061044e919061331f565b611066565b60405161046091906137f5565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b919061326b565b611084565b005b34801561049e57600080fd5b506104b960048036038101906104b491906133b3565b611299565b005b3480156104c757600080fd5b506104d061142f565b005b3480156104de57600080fd5b506104f960048036038101906104f4919061335b565b61154c565b005b34801561050757600080fd5b50610522600480360381019061051d91906133b3565b6116ac565b005b34801561053057600080fd5b5061054b60048036038101906105469190613294565b611842565b60405161055891906139ed565b60405180910390f35b34801561056d57600080fd5b50610588600480360381019061058391906132d0565b6118c9565b005b34801561059657600080fd5b506105b160048036038101906105ac9190613219565b611a9c565b005b60606040518060400160405280600c81526020017f54776565747920546f6b656e0000000000000000000000000000000000000000815250905090565b60006106046105fd611bee565b8484611bf6565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610651848484611dc1565b6107128461065d611bee565b61070d8560405180606001604052806028815260200161419c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c3611bee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125419092919063ffffffff16565b611bf6565b600190509392505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610754611bee565b73ffffffffffffffffffffffffffffffffffffffff16610772610df7565b73ffffffffffffffffffffffffffffffffffffffff1614806107e85750610797611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e9061392d565b60405180910390fd5b8060148190555050565b610839611bee565b73ffffffffffffffffffffffffffffffffffffffff16610857610df7565b73ffffffffffffffffffffffffffffffffffffffff1614806108cd575061087c611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061392d565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096a611bee565b73ffffffffffffffffffffffffffffffffffffffff1614806109e05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c8611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b80610a2457506109ee610df7565b73ffffffffffffffffffffffffffffffffffffffff16610a0c611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b610a2d57600080fd5b6000479050610a3b816125a5565b50565b6000610a88600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a0565b9050919050565b610a97611bee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061388d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bea611bee565b73ffffffffffffffffffffffffffffffffffffffff16610c08610df7565b73ffffffffffffffffffffffffffffffffffffffff161480610c7e5750610c2d611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb49061392d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa64373a629bc0c09eacf8a9cc2c7b070fa0a8b7e2e9b8aaee408a3c02eb1676b60405160405180910390a380601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5457454554590000000000000000000000000000000000000000000000000000815250905090565b610e65611bee565b73ffffffffffffffffffffffffffffffffffffffff16610e83610df7565b73ffffffffffffffffffffffffffffffffffffffff161480610ef95750610ea8611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f9061392d565b60405180910390fd5b600b8410610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f72906139cd565b60405180910390fd5b600b8310610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906139cd565b60405180910390fd5b600b8210611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff89061386d565b60405180910390fd5b600b8110611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b9061386d565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061107a611073611bee565b8484611dc1565b6001905092915050565b61108c611bee565b73ffffffffffffffffffffffffffffffffffffffff166110aa610df7565b73ffffffffffffffffffffffffffffffffffffffff16148061112057506110cf611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61115f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111569061392d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffbbc329437e8c79f847e170730ad6dd04106b7511cad70d06d635886d92de83c60405160405180910390a380600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112a1611bee565b73ffffffffffffffffffffffffffffffffffffffff166112bf610df7565b73ffffffffffffffffffffffffffffffffffffffff16148061133557506112e4611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b9061392d565b60405180910390fd5b60005b815181101561142b576000600560008484815181106113bf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061142390613d39565b915050611377565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611470611bee565b73ffffffffffffffffffffffffffffffffffffffff1614806114e65750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ce611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b8061152a57506114f4610df7565b73ffffffffffffffffffffffffffffffffffffffff16611512611bee565b73ffffffffffffffffffffffffffffffffffffffff16145b61153357600080fd5b600061153e30610a3e565b90506115498161270e565b50565b611554611bee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061388d565b60405180910390fd5b60005b838390508110156116a657816006600086868581811061162d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906116429190613219565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061169e90613d39565b9150506115e4565b50505050565b6116b4611bee565b73ffffffffffffffffffffffffffffffffffffffff166116d2610df7565b73ffffffffffffffffffffffffffffffffffffffff16148061174857506116f7611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e9061392d565b60405180910390fd5b60005b815181101561183e576001600560008484815181106117d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061183690613d39565b91505061178a565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118d1611bee565b73ffffffffffffffffffffffffffffffffffffffff166118ef610df7565b73ffffffffffffffffffffffffffffffffffffffff1614806119655750611914611bee565b73ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b9061392d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f47c33aa230eb5fd181505aa7befeaddd9b8a6f983989cea73a7868448c3a9ed983604051611a0191906139ed565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611a449291906137cc565b602060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a96919061341d565b50505050565b611aa4611bee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b289061388d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d906139ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccd906138cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611db491906139ed565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e289061396d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e989061384d565b60405180910390fd5b60008111611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb9061394d565b60405180910390fd5b6000600d819055506000600e81905550611efc610df7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f6a5750611f3a610df7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561253157600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120135750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61201c57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561211d5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217b576014548161212f84610a3e565b6121399190613b23565b111561217a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121719061398d565b60405180910390fd5b5b600061218630610a3e565b9050601360149054906101000a900460ff161580156121f35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561220b5750601360159054906101000a900460ff165b80156122175750600081115b1561223f576122258161270e565b6000479050600081111561223d5761223c476125a5565b5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122ea5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561230257600954600d81905550600a54600e819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123ad5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123c557600b54600d81905550600c54600e819055505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124665750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125195750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125185750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561252f576000600d819055506000600e819055505b505b61253c838383612a08565b505050565b6000838311158290612589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612580919061382b565b60405180910390fd5b50600083856125989190613c04565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125f5600284612a1890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612620573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612671600284612a1890919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561269c573d6000803e3d6000fd5b5050565b60006007548211156126e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126de906138ad565b60405180910390fd5b60006126f1612a62565b90506127068184612a1890919063ffffffff16565b915050919050565b6001601360146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561276c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561279a5781602001602082028036833780820191505090505b50905030816000815181106127d8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561287a57600080fd5b505afa15801561288e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b29190613242565b816001815181106128ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061295330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bf6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129b7959493929190613a08565b600060405180830381600087803b1580156129d157600080fd5b505af11580156129e5573d6000803e3d6000fd5b50505050506000601360146101000a81548160ff02191690831515021790555050565b612a13838383612a8d565b505050565b6000612a5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c58565b905092915050565b6000806000612a6f612cbb565b91509150612a868183612a1890919063ffffffff16565b9250505090565b600080600080600080612a9f87612d1a565b955095509550955095509550612afd86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d8290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dcc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bde81612e2a565b612be88483612ee7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c4591906139ed565b60405180910390a3505050505050505050565b60008083118290612c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c96919061382b565b60405180910390fd5b5060008385612cae9190613b79565b9050809150509392505050565b600080600060075490506000670de0b6b3a76400009050612cef670de0b6b3a7640000600754612a1890919063ffffffff16565b821015612d0d57600754670de0b6b3a7640000935093505050612d16565b81819350935050505b9091565b6000806000806000806000806000612d378a600d54600e54612f21565b9250925092506000612d47612a62565b90506000806000612d5a8e878787612fb7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612dc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612541565b905092915050565b6000808284612ddb9190613b23565b905083811015612e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e17906138ed565b60405180910390fd5b8091505092915050565b6000612e34612a62565b90506000612e4b828461304090919063ffffffff16565b9050612e9f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dcc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612efc82600754612d8290919063ffffffff16565b600781905550612f1781600854612dcc90919063ffffffff16565b6008819055505050565b600080600080612f4d6064612f3f888a61304090919063ffffffff16565b612a1890919063ffffffff16565b90506000612f776064612f69888b61304090919063ffffffff16565b612a1890919063ffffffff16565b90506000612fa082612f92858c612d8290919063ffffffff16565b612d8290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612fd0858961304090919063ffffffff16565b90506000612fe7868961304090919063ffffffff16565b90506000612ffe878961304090919063ffffffff16565b90506000613027826130198587612d8290919063ffffffff16565b612d8290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561305357600090506130b5565b600082846130619190613baa565b90508284826130709190613b79565b146130b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a79061390d565b60405180910390fd5b809150505b92915050565b60006130ce6130c984613aa2565b613a7d565b905080838252602082019050828560208602820111156130ed57600080fd5b60005b8581101561311d57816131038882613127565b8452602084019350602083019250506001810190506130f0565b5050509392505050565b6000813590506131368161413f565b92915050565b60008151905061314b8161413f565b92915050565b60008135905061316081614156565b92915050565b60008083601f84011261317857600080fd5b8235905067ffffffffffffffff81111561319157600080fd5b6020830191508360208202830111156131a957600080fd5b9250929050565b600082601f8301126131c157600080fd5b81356131d18482602086016130bb565b91505092915050565b6000813590506131e98161416d565b92915050565b6000815190506131fe8161416d565b92915050565b60008135905061321381614184565b92915050565b60006020828403121561322b57600080fd5b600061323984828501613127565b91505092915050565b60006020828403121561325457600080fd5b60006132628482850161313c565b91505092915050565b60006020828403121561327d57600080fd5b600061328b84828501613151565b91505092915050565b600080604083850312156132a757600080fd5b60006132b585828601613127565b92505060206132c685828601613127565b9150509250929050565b6000806000606084860312156132e557600080fd5b60006132f386828701613127565b935050602061330486828701613127565b925050604061331586828701613204565b9150509250925092565b6000806040838503121561333257600080fd5b600061334085828601613127565b925050602061335185828601613204565b9150509250929050565b60008060006040848603121561337057600080fd5b600084013567ffffffffffffffff81111561338a57600080fd5b61339686828701613166565b935093505060206133a9868287016131da565b9150509250925092565b6000602082840312156133c557600080fd5b600082013567ffffffffffffffff8111156133df57600080fd5b6133eb848285016131b0565b91505092915050565b60006020828403121561340657600080fd5b6000613414848285016131da565b91505092915050565b60006020828403121561342f57600080fd5b600061343d848285016131ef565b91505092915050565b60006020828403121561345857600080fd5b600061346684828501613204565b91505092915050565b6000806000806080858703121561348557600080fd5b600061349387828801613204565b94505060206134a487828801613204565b93505060406134b587828801613204565b92505060606134c687828801613204565b91505092959194509250565b60006134de83836134ea565b60208301905092915050565b6134f381613c38565b82525050565b61350281613c38565b82525050565b600061351382613ade565b61351d8185613b01565b935061352883613ace565b8060005b8381101561355957815161354088826134d2565b975061354b83613af4565b92505060018101905061352c565b5085935050505092915050565b61356f81613c5c565b82525050565b61357e81613c9f565b82525050565b61358d81613cc3565b82525050565b600061359e82613ae9565b6135a88185613b12565b93506135b8818560208601613cd5565b6135c181613e0f565b840191505092915050565b60006135d9602383613b12565b91506135e482613e20565b604082019050919050565b60006135fc601b83613b12565b915061360782613e6f565b602082019050919050565b600061361f601783613b12565b915061362a82613e98565b602082019050919050565b6000613642602a83613b12565b915061364d82613ec1565b604082019050919050565b6000613665602283613b12565b915061367082613f10565b604082019050919050565b6000613688601b83613b12565b915061369382613f5f565b602082019050919050565b60006136ab602183613b12565b91506136b682613f88565b604082019050919050565b60006136ce601583613b12565b91506136d982613fd7565b602082019050919050565b60006136f1602983613b12565b91506136fc82614000565b604082019050919050565b6000613714602583613b12565b915061371f8261404f565b604082019050919050565b6000613737601a83613b12565b91506137428261409e565b602082019050919050565b600061375a602483613b12565b9150613765826140c7565b604082019050919050565b600061377d601d83613b12565b915061378882614116565b602082019050919050565b61379c81613c88565b82525050565b6137ab81613c92565b82525050565b60006020820190506137c660008301846134f9565b92915050565b60006040820190506137e160008301856134f9565b6137ee6020830184613793565b9392505050565b600060208201905061380a6000830184613566565b92915050565b60006020820190506138256000830184613575565b92915050565b600060208201905081810360008301526138458184613593565b905092915050565b60006020820190508181036000830152613866816135cc565b9050919050565b60006020820190508181036000830152613886816135ef565b9050919050565b600060208201905081810360008301526138a681613612565b9050919050565b600060208201905081810360008301526138c681613635565b9050919050565b600060208201905081810360008301526138e681613658565b9050919050565b600060208201905081810360008301526139068161367b565b9050919050565b600060208201905081810360008301526139268161369e565b9050919050565b60006020820190508181036000830152613946816136c1565b9050919050565b60006020820190508181036000830152613966816136e4565b9050919050565b6000602082019050818103600083015261398681613707565b9050919050565b600060208201905081810360008301526139a68161372a565b9050919050565b600060208201905081810360008301526139c68161374d565b9050919050565b600060208201905081810360008301526139e681613770565b9050919050565b6000602082019050613a026000830184613793565b92915050565b600060a082019050613a1d6000830188613793565b613a2a6020830187613584565b8181036040830152613a3c8186613508565b9050613a4b60608301856134f9565b613a586080830184613793565b9695505050505050565b6000602082019050613a7760008301846137a2565b92915050565b6000613a87613a98565b9050613a938282613d08565b919050565b6000604051905090565b600067ffffffffffffffff821115613abd57613abc613de0565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b2e82613c88565b9150613b3983613c88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b6e57613b6d613d82565b5b828201905092915050565b6000613b8482613c88565b9150613b8f83613c88565b925082613b9f57613b9e613db1565b5b828204905092915050565b6000613bb582613c88565b9150613bc083613c88565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bf957613bf8613d82565b5b828202905092915050565b6000613c0f82613c88565b9150613c1a83613c88565b925082821015613c2d57613c2c613d82565b5b828203905092915050565b6000613c4382613c68565b9050919050565b6000613c5582613c68565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613caa82613cb1565b9050919050565b6000613cbc82613c68565b9050919050565b6000613cce82613c88565b9050919050565b60005b83811015613cf3578082015181840152602081019050613cd8565b83811115613d02576000848401525b50505050565b613d1182613e0f565b810181811067ffffffffffffffff82111715613d3057613d2f613de0565b5b80604052505050565b6000613d4482613c88565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d7757613d76613d82565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5461782063616e6e6f74206265206d6f7265207468616e2031302e0000000000600082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206465760000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f52656469732063616e6e6f74206265206d6f7265207468616e2031302e000000600082015250565b61414881613c38565b811461415357600080fd5b50565b61415f81613c4a565b811461416a57600080fd5b50565b61417681613c5c565b811461418157600080fd5b50565b61418d81613c88565b811461419857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a83a5910d69a845bce79cb8d29b7d2037e1b7a8c898310bae9547fdf288358c364736f6c63430008040033
Deployed Bytecode Sourcemap
3845:12440:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6287:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7139:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5152:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6564:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7308:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6473:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5200:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15836:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15941:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14661:262;;;;;;;;;;;;;:::i;:::-;;6667:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3426:148;;;;;;;;;;;;;:::i;:::-;;11542:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3221:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6378:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15273:555;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6813:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11222:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15100:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14390:263;;;;;;;;;;;;;:::i;:::-;;16048:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14931:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6988:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10925:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3676:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6287:83;6324:13;6357:5;;;;;;;;;;;;;;;;;6350:12;;6287:83;:::o;7139:161::-;7214:4;7231:39;7240:12;:10;:12::i;:::-;7254:7;7263:6;7231:8;:39::i;:::-;7288:4;7281:11;;7139:161;;;;:::o;5152:41::-;;;;;;;;;;;;;:::o;6564:95::-;6617:7;4307:21;6637:14;;6564:95;:::o;7308:313::-;7406:4;7423:36;7433:6;7441:9;7452:6;7423:9;:36::i;:::-;7470:121;7479:6;7487:12;:10;:12::i;:::-;7501:89;7539:6;7501:89;;;;;;;;;;;;;;;;;:11;:19;7513:6;7501:19;;;;;;;;;;;;;;;:33;7521:12;:10;:12::i;:::-;7501:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7470:8;:121::i;:::-;7609:4;7602:11;;7308:313;;;;;:::o;6473:83::-;6514:5;4855:1;6532:16;;6473:83;:::o;5200:28::-;;;;;;;;;;;;;:::o;15836:93::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;15916:5:::1;15899:14;:22;;;;15836:93:::0;:::o;15941:99::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;16020:12:::1;16006:11;;:26;;;;;;;;;;;;;;;;;;15941:99:::0;:::o;14661:262::-;14727:19;;;;;;;;;;;14711:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14766:17;;;;;;;;;;;14750:33;;:12;:10;:12::i;:::-;:33;;;14711:72;:99;;;;14803:7;:5;:7::i;:::-;14787:23;;:12;:10;:12::i;:::-;:23;;;14711:99;14703:108;;;;;;14822:26;14851:21;14822:50;;14883:32;14896:18;14883:12;:32::i;:::-;14661:262;:::o;6667:138::-;6733:7;6760:37;6780:7;:16;6788:7;6780:16;;;;;;;;;;;;;;;;6760:19;:37::i;:::-;6753:44;;6667:138;;;:::o;3426:148::-;3358:12;:10;:12::i;:::-;3348:22;;:6;;;;;;;;;;:22;;;3340:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3533:1:::1;3496:40;;3517:6;::::0;::::1;;;;;;;;3496:40;;;;;;;;;;;;3564:1;3547:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3426:148::o:0;11542:237::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;11673:5:::1;11630:49;;11654:17;;;;;;;;;;;11630:49;;;;;;;;;;;;11711:5;11691:17;;:25;;;;;;;;;;;;;;;;;;11767:4;11727:18;:37;11746:17;;;;;;;;;;;11727:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;11542:237:::0;:::o;3221:79::-;3259:7;3286:6;;;;;;;;;;;3279:13;;3221:79;:::o;6378:87::-;6417:13;6450:7;;;;;;;;;;;;;;;;;6443:14;;6378:87;:::o;15273:555::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;15426:2:::1;15410:13;:18;15402:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15495:2;15478:14;:19;15470:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;15561:2;15547:11;:16;15539:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15626:2;15611:12;:17;15603:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;15688:13;15671:14;:30;;;;15730:14;15712:15;:32;;;;15770:11;15755:12;:26;;;;15808:12;15792:13;:28;;;;15273:555:::0;;;;:::o;6813:167::-;6891:4;6908:42;6918:12;:10;:12::i;:::-;6932:9;6943:6;6908:9;:42::i;:::-;6968:4;6961:11;;6813:167;;;;:::o;11222:225::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;11341:3:::1;11302:43;;11320:19;;;;;;;;;;;11302:43;;;;;;;;;;;;11379:3;11357:19;;:25;;;;;;;;;;;;;;;;;;11435:4;11393:18;:39;11412:19;;;;;;;;;;;11393:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11222:225:::0;:::o;15100:161::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;15170:6:::1;15165:89;15186:5;:12;15182:1;:16;15165:89;;;15237:5;15220:4;:14;15225:5;15231:1;15225:8;;;;;;;;;;;;;;;;;;;;;;15220:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15200:3;;;;;:::i;:::-;;;;15165:89;;;;15100:161:::0;:::o;14390:263::-;14456:19;;;;;;;;;;;14440:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14495:17;;;;;;;;;;;14479:33;;:12;:10;:12::i;:::-;:33;;;14440:72;:99;;;;14532:7;:5;:7::i;:::-;14516:23;;:12;:10;:12::i;:::-;:23;;;14440:99;14432:108;;;;;;14551:23;14577:24;14595:4;14577:9;:24::i;:::-;14551:50;;14612:33;14629:15;14612:16;:33::i;:::-;14390:263;:::o;16048:234::-;3358:12;:10;:12::i;:::-;3348:22;;:6;;;;;;;;;;:22;;;3340:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16165:9:::1;16161:114;16184:8;;:15;;16180:1;:19;16161:114;;;16255:8;16221:18;:31;16240:8;;16249:1;16240:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16221:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;16201:3;;;;;:::i;:::-;;;;16161:114;;;;16048:234:::0;;;:::o;14931:161::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;15002:6:::1;14997:88;15018:5;:12;15014:1;:16;14997:88;;;15069:4;15052;:14;15057:5;15063:1;15057:8;;;;;;;;;;;;;;;;;;;;;;15052:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15032:3;;;;;:::i;:::-;;;;14997:88;;;;14931:161:::0;:::o;6988:143::-;7069:7;7096:11;:18;7108:5;7096:18;;;;;;;;;;;;;;;:27;7115:7;7096:27;;;;;;;;;;;;;;;;7089:34;;6988:143;;;;:::o;10925:208::-;6180:12;:10;:12::i;:::-;6169:23;;:7;:5;:7::i;:::-;:23;;;:62;;;;6219:12;:10;:12::i;:::-;6196:35;;:19;;;;;;;;;;;:35;;;6169:62;6161:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;11060:3:::1;11034:39;;11048:10;11034:39;;;11065:7;11034:39;;;;;;:::i;:::-;;;;;;;;11091:10;11085:26;;;11112:3;11117:7;11085:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10925:208:::0;;;:::o;3676:160::-;3358:12;:10;:12::i;:::-;3348:22;;:6;;;;;;;;;;:22;;;3340:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3791:8:::1;3762:38;;3783:6;::::0;::::1;;;;;;;;3762:38;;;;;;;;;;;;3820:8;3811:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3676:160:::0;:::o;1702:98::-;1755:7;1782:10;1775:17;;1702:98;:::o;7891:335::-;8001:1;7984:19;;:5;:19;;;;7976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8082:1;8063:21;;:7;:21;;;;8055:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8164:6;8134:11;:18;8146:5;8134:18;;;;;;;;;;;;;;;:27;8153:7;8134:27;;;;;;;;;;;;;;;:36;;;;8202:7;8186:32;;8195:5;8186:32;;;8211:6;8186:32;;;;;;:::i;:::-;;;;;;;;7891:335;;;:::o;8234:1776::-;8338:1;8322:18;;:4;:18;;;;8314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8415:1;8401:16;;:2;:16;;;;8393:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8485:1;8476:6;:10;8468:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8565:1;8553:9;:13;;;;8587:1;8577:7;:11;;;;8621:7;:5;:7::i;:::-;8613:15;;:4;:15;;;;:32;;;;;8638:7;:5;:7::i;:::-;8632:13;;:2;:13;;;;8613:32;8609:1351;;;8671:4;:10;8676:4;8671:10;;;;;;;;;;;;;;;;;;;;;;;;;8670:11;:24;;;;;8686:4;:8;8691:2;8686:8;;;;;;;;;;;;;;;;;;;;;;;;;8685:9;8670:24;8662:33;;;;;;8724:13;;;;;;;;;;;8716:21;;:4;:21;;;:55;;;;;8755:15;;;;;;;;;;;8741:30;;:2;:30;;;;8716:55;:82;;;;;8776:18;:22;8795:2;8776:22;;;;;;;;;;;;;;;;;;;;;;;;;8775:23;8716:82;8712:202;;;8853:14;;8843:6;8827:13;8837:2;8827:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8819:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8712:202;8930:28;8961:24;8979:4;8961:9;:24::i;:::-;8930:55;;9005:6;;;;;;;;;;;9004:7;:32;;;;;9023:13;;;;;;;;;;;9015:21;;:4;:21;;;;9004:32;:47;;;;;9040:11;;;;;;;;;;;9004:47;:75;;;;;9078:1;9055:20;:24;9004:75;9000:346;;;9100:38;9117:20;9100:16;:38::i;:::-;9157:26;9186:21;9157:50;;9250:1;9229:18;:22;9226:105;;;9276:35;9289:21;9276:12;:35::i;:::-;9226:105;9000:346;;9385:13;;;;;;;;;;;9377:21;;:4;:21;;;:55;;;;;9416:15;;;;;;;;;;;9402:30;;:2;:30;;;;9377:55;9374:162;;;9465:14;;9453:9;:26;;;;9508:12;;9498:7;:22;;;;9374:162;9566:13;;;;;;;;;;;9560:19;;:2;:19;;;:55;;;;;9599:15;;;;;;;;;;;9583:32;;:4;:32;;;;9560:55;9556:165;;;9648:15;;9636:9;:27;;;;9692:13;;9682:7;:23;;;;9556:165;9754:18;:24;9773:4;9754:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9782:18;:22;9801:2;9782:22;;;;;;;;;;;;;;;;;;;;;;;;;9754:50;9753:102;;;;9818:13;;;;;;;;;;;9810:21;;:4;:21;;;;:44;;;;;9841:13;;;;;;;;;;;9835:19;;:2;:19;;;;9810:44;9753:102;9749:186;;;9888:1;9876:9;:13;;;;9918:1;9908:7;:11;;;;9749:186;8609:1351;;9972:30;9987:4;9992:2;9995:6;9972:14;:30::i;:::-;8234:1776;;;:::o;2166:190::-;2252:7;2285:1;2280;:6;;2288:12;2272:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2312:9;2328:1;2324;:5;;;;:::i;:::-;2312:17;;2347:1;2340:8;;;2166:190;;;;;:::o;10517:160::-;10574:19;;;;;;;;;;;:28;;:43;10603:13;10614:1;10603:6;:10;;:13;;;;:::i;:::-;10574:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10628:17;;;;;;;;;;;:26;;:41;10655:13;10666:1;10655:6;:10;;:13;;;;:::i;:::-;10628:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10517:160;:::o;7629:254::-;7696:7;7735;;7724;:18;;7716:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7800:19;7823:10;:8;:10::i;:::-;7800:33;;7851:24;7863:11;7851:7;:11;;:24;;;;:::i;:::-;7844:31;;;7629:254;;;:::o;10018:483::-;5422:4;5413:6;;:13;;;;;;;;;;;;;;;;;;10096:21:::1;10134:1;10120:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10096:40;;10165:4;10147;10152:1;10147:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10191:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10181:4;10186:1;10181:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10224:62;10241:4;10256:15;;;;;;;;;;;10274:11;10224:8;:62::i;:::-;10297:15;;;;;;;;;;;:66;;;10378:11;10404:1;10420:4;10447;10467:15;10297:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5437:1;5458:5:::0;5449:6;;:14;;;;;;;;;;;;;;;;;;10018:483;:::o;10689:146::-;10783:44;10801:6;10809:9;10820:6;10783:17;:44::i;:::-;10689:146;;;:::o;2618:132::-;2676:7;2703:39;2707:1;2710;2703:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2696:46;;2618:132;;;;:::o;13949:163::-;13990:7;14011:15;14028;14047:19;:17;:19::i;:::-;14010:56;;;;14084:20;14096:7;14084;:11;;:20;;;;:::i;:::-;14077:27;;;;13949:163;:::o;11787:488::-;11886:15;11903:23;11928:12;11942:23;11967:12;11981:13;11998:19;12009:7;11998:10;:19::i;:::-;11885:132;;;;;;;;;;;;12046:28;12066:7;12046;:15;12054:6;12046:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12028:7;:15;12036:6;12028:15;;;;;;;;;;;;;;;:46;;;;12106:39;12129:15;12106:7;:18;12114:9;12106:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12085:7;:18;12093:9;12085:18;;;;;;;;;;;;;;;:60;;;;12157:16;12167:5;12157:9;:16::i;:::-;12184:23;12196:4;12202;12184:11;:23::i;:::-;12240:9;12223:44;;12232:6;12223:44;;;12251:15;12223:44;;;;;;:::i;:::-;;;;;;;;11787:488;;;;;;;;;:::o;2758:189::-;2844:7;2876:1;2872;:5;2879:12;2864:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2903:9;2919:1;2915;:5;;;;:::i;:::-;2903:17;;2938:1;2931:8;;;2758:189;;;;;:::o;14120:262::-;14170:7;14179;14199:15;14217:7;;14199:25;;14235:15;4307:21;14235:25;;14291:20;4307:21;14291:7;;:11;;:20;;;;:::i;:::-;14281:7;:30;14277:61;;;14321:7;;4307:21;14313:25;;;;;;;;14277:61;14357:7;14366;14349:25;;;;;;14120:262;;;:::o;12699:469::-;12758:7;12767;12776;12785;12794;12803;12824:23;12849:12;12863:13;12880:40;12892:7;12901:9;;12912:7;;12880:11;:40::i;:::-;12823:97;;;;;;12931:19;12954:10;:8;:10::i;:::-;12931:33;;12976:15;12993:23;13018:12;13034:46;13046:7;13055:4;13061:5;13068:11;13034;:46::i;:::-;12975:105;;;;;;13099:7;13108:15;13125:4;13131:15;13148:4;13154:5;13091:69;;;;;;;;;;;;;;;;;;;12699:469;;;;;;;:::o;2022:136::-;2080:7;2107:43;2111:1;2114;2107:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2100:50;;2022:136;;;;:::o;1835:179::-;1893:7;1913:9;1929:1;1925;:5;;;;:::i;:::-;1913:17;;1954:1;1949;:6;;1941:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2005:1;1998:8;;;1835:179;;;;:::o;12283:212::-;12336:19;12359:10;:8;:10::i;:::-;12336:33;;12380:13;12396:22;12406:11;12396:5;:9;;:22;;;;:::i;:::-;12380:38;;12454:33;12481:5;12454:7;:22;12470:4;12454:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12429:7;:22;12445:4;12429:22;;;;;;;;;;;;;;;:58;;;;12283:212;;;:::o;12503:147::-;12581:17;12593:4;12581:7;;:11;;:17;;;;:::i;:::-;12571:7;:27;;;;12622:20;12637:4;12622:10;;:14;;:20;;;;:::i;:::-;12609:10;:33;;;;12503:147;;:::o;13176:351::-;13269:7;13278;13287;13307:12;13322:28;13346:3;13322:19;13334:6;13322:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13307:43;;13361:13;13377:29;13402:3;13377:20;13389:7;13377;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13361:45;;13417:23;13443:28;13465:5;13443:17;13455:4;13443:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13417:54;;13490:15;13507:4;13513:5;13482:37;;;;;;;;;13176:351;;;;;;;:::o;13535:409::-;13645:7;13654;13663;13683:15;13701:24;13713:11;13701:7;:11;;:24;;;;:::i;:::-;13683:42;;13736:12;13751:21;13760:11;13751:4;:8;;:21;;;;:::i;:::-;13736:36;;13783:13;13799:22;13809:11;13799:5;:9;;:22;;;;:::i;:::-;13783:38;;13832:23;13858:28;13880:5;13858:17;13870:4;13858:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13832:54;;13905:7;13914:15;13931:4;13897:39;;;;;;;;;;13535:409;;;;;;;;:::o;2364:246::-;2422:7;2451:1;2446;:6;2442:47;;;2476:1;2469:8;;;;2442:47;2499:9;2515:1;2511;:5;;;;:::i;:::-;2499:17;;2544:1;2539;2535;:5;;;;:::i;:::-;:10;2527:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2601:1;2594:8;;;2364:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:367::-;1230:8;1240:6;1290:3;1283:4;1275:6;1271:17;1267:27;1257:2;;1308:1;1305;1298:12;1257:2;1344:6;1331:20;1321:30;;1374:18;1366:6;1363:30;1360:2;;;1406:1;1403;1396:12;1360:2;1443:4;1435:6;1431:17;1419:29;;1497:3;1489:4;1481:6;1477:17;1467:8;1463:32;1460:41;1457:2;;;1514:1;1511;1504:12;1457:2;1247:277;;;;;:::o;1547:303::-;1618:5;1667:3;1660:4;1652:6;1648:17;1644:27;1634:2;;1685:1;1682;1675:12;1634:2;1725:6;1712:20;1750:94;1840:3;1832:6;1825:4;1817:6;1813:17;1750:94;:::i;:::-;1741:103;;1624:226;;;;;:::o;1856:133::-;1899:5;1937:6;1924:20;1915:29;;1953:30;1977:5;1953:30;:::i;:::-;1905:84;;;;:::o;1995:137::-;2049:5;2080:6;2074:13;2065:22;;2096:30;2120:5;2096:30;:::i;:::-;2055:77;;;;:::o;2138:139::-;2184:5;2222:6;2209:20;2200:29;;2238:33;2265:5;2238:33;:::i;:::-;2190:87;;;;:::o;2283:262::-;2342:6;2391:2;2379:9;2370:7;2366:23;2362:32;2359:2;;;2407:1;2404;2397:12;2359:2;2450:1;2475:53;2520:7;2511:6;2500:9;2496:22;2475:53;:::i;:::-;2465:63;;2421:117;2349:196;;;;:::o;2551:284::-;2621:6;2670:2;2658:9;2649:7;2645:23;2641:32;2638:2;;;2686:1;2683;2676:12;2638:2;2729:1;2754:64;2810:7;2801:6;2790:9;2786:22;2754:64;:::i;:::-;2744:74;;2700:128;2628:207;;;;:::o;2841:278::-;2908:6;2957:2;2945:9;2936:7;2932:23;2928:32;2925:2;;;2973:1;2970;2963:12;2925:2;3016:1;3041:61;3094:7;3085:6;3074:9;3070:22;3041:61;:::i;:::-;3031:71;;2987:125;2915:204;;;;:::o;3125:407::-;3193:6;3201;3250:2;3238:9;3229:7;3225:23;3221:32;3218:2;;;3266:1;3263;3256:12;3218:2;3309:1;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3280:117;3436:2;3462:53;3507:7;3498:6;3487:9;3483:22;3462:53;:::i;:::-;3452:63;;3407:118;3208:324;;;;;:::o;3538:552::-;3615:6;3623;3631;3680:2;3668:9;3659:7;3655:23;3651:32;3648:2;;;3696:1;3693;3686:12;3648:2;3739:1;3764:53;3809:7;3800:6;3789:9;3785:22;3764:53;:::i;:::-;3754:63;;3710:117;3866:2;3892:53;3937:7;3928:6;3917:9;3913:22;3892:53;:::i;:::-;3882:63;;3837:118;3994:2;4020:53;4065:7;4056:6;4045:9;4041:22;4020:53;:::i;:::-;4010:63;;3965:118;3638:452;;;;;:::o;4096:407::-;4164:6;4172;4221:2;4209:9;4200:7;4196:23;4192:32;4189:2;;;4237:1;4234;4227:12;4189:2;4280:1;4305:53;4350:7;4341:6;4330:9;4326:22;4305:53;:::i;:::-;4295:63;;4251:117;4407:2;4433:53;4478:7;4469:6;4458:9;4454:22;4433:53;:::i;:::-;4423:63;;4378:118;4179:324;;;;;:::o;4509:564::-;4601:6;4609;4617;4666:2;4654:9;4645:7;4641:23;4637:32;4634:2;;;4682:1;4679;4672:12;4634:2;4753:1;4742:9;4738:17;4725:31;4783:18;4775:6;4772:30;4769:2;;;4815:1;4812;4805:12;4769:2;4851:80;4923:7;4914:6;4903:9;4899:22;4851:80;:::i;:::-;4833:98;;;;4696:245;4980:2;5006:50;5048:7;5039:6;5028:9;5024:22;5006:50;:::i;:::-;4996:60;;4951:115;4624:449;;;;;:::o;5079:405::-;5163:6;5212:2;5200:9;5191:7;5187:23;5183:32;5180:2;;;5228:1;5225;5218:12;5180:2;5299:1;5288:9;5284:17;5271:31;5329:18;5321:6;5318:30;5315:2;;;5361:1;5358;5351:12;5315:2;5389:78;5459:7;5450:6;5439:9;5435:22;5389:78;:::i;:::-;5379:88;;5242:235;5170:314;;;;:::o;5490:256::-;5546:6;5595:2;5583:9;5574:7;5570:23;5566:32;5563:2;;;5611:1;5608;5601:12;5563:2;5654:1;5679:50;5721:7;5712:6;5701:9;5697:22;5679:50;:::i;:::-;5669:60;;5625:114;5553:193;;;;:::o;5752:278::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:2;;;5884:1;5881;5874:12;5836:2;5927:1;5952:61;6005:7;5996:6;5985:9;5981:22;5952:61;:::i;:::-;5942:71;;5898:125;5826:204;;;;:::o;6036:262::-;6095:6;6144:2;6132:9;6123:7;6119:23;6115:32;6112:2;;;6160:1;6157;6150:12;6112:2;6203:1;6228:53;6273:7;6264:6;6253:9;6249:22;6228:53;:::i;:::-;6218:63;;6174:117;6102:196;;;;:::o;6304:698::-;6390:6;6398;6406;6414;6463:3;6451:9;6442:7;6438:23;6434:33;6431:2;;;6480:1;6477;6470:12;6431:2;6523:1;6548:53;6593:7;6584:6;6573:9;6569:22;6548:53;:::i;:::-;6538:63;;6494:117;6650:2;6676:53;6721:7;6712:6;6701:9;6697:22;6676:53;:::i;:::-;6666:63;;6621:118;6778:2;6804:53;6849:7;6840:6;6829:9;6825:22;6804:53;:::i;:::-;6794:63;;6749:118;6906:2;6932:53;6977:7;6968:6;6957:9;6953:22;6932:53;:::i;:::-;6922:63;;6877:118;6421:581;;;;;;;:::o;7008:179::-;7077:10;7098:46;7140:3;7132:6;7098:46;:::i;:::-;7176:4;7171:3;7167:14;7153:28;;7088:99;;;;:::o;7193:108::-;7270:24;7288:5;7270:24;:::i;:::-;7265:3;7258:37;7248:53;;:::o;7307:118::-;7394:24;7412:5;7394:24;:::i;:::-;7389:3;7382:37;7372:53;;:::o;7461:732::-;7580:3;7609:54;7657:5;7609:54;:::i;:::-;7679:86;7758:6;7753:3;7679:86;:::i;:::-;7672:93;;7789:56;7839:5;7789:56;:::i;:::-;7868:7;7899:1;7884:284;7909:6;7906:1;7903:13;7884:284;;;7985:6;7979:13;8012:63;8071:3;8056:13;8012:63;:::i;:::-;8005:70;;8098:60;8151:6;8098:60;:::i;:::-;8088:70;;7944:224;7931:1;7928;7924:9;7919:14;;7884:284;;;7888:14;8184:3;8177:10;;7585:608;;;;;;;:::o;8199:109::-;8280:21;8295:5;8280:21;:::i;:::-;8275:3;8268:34;8258:50;;:::o;8314:183::-;8427:63;8484:5;8427:63;:::i;:::-;8422:3;8415:76;8405:92;;:::o;8503:147::-;8598:45;8637:5;8598:45;:::i;:::-;8593:3;8586:58;8576:74;;:::o;8656:364::-;8744:3;8772:39;8805:5;8772:39;:::i;:::-;8827:71;8891:6;8886:3;8827:71;:::i;:::-;8820:78;;8907:52;8952:6;8947:3;8940:4;8933:5;8929:16;8907:52;:::i;:::-;8984:29;9006:6;8984:29;:::i;:::-;8979:3;8975:39;8968:46;;8748:272;;;;;:::o;9026:366::-;9168:3;9189:67;9253:2;9248:3;9189:67;:::i;:::-;9182:74;;9265:93;9354:3;9265:93;:::i;:::-;9383:2;9378:3;9374:12;9367:19;;9172:220;;;:::o;9398:366::-;9540:3;9561:67;9625:2;9620:3;9561:67;:::i;:::-;9554:74;;9637:93;9726:3;9637:93;:::i;:::-;9755:2;9750:3;9746:12;9739:19;;9544:220;;;:::o;9770:366::-;9912:3;9933:67;9997:2;9992:3;9933:67;:::i;:::-;9926:74;;10009:93;10098:3;10009:93;:::i;:::-;10127:2;10122:3;10118:12;10111:19;;9916:220;;;:::o;10142:366::-;10284:3;10305:67;10369:2;10364:3;10305:67;:::i;:::-;10298:74;;10381:93;10470:3;10381:93;:::i;:::-;10499:2;10494:3;10490:12;10483:19;;10288:220;;;:::o;10514:366::-;10656:3;10677:67;10741:2;10736:3;10677:67;:::i;:::-;10670:74;;10753:93;10842:3;10753:93;:::i;:::-;10871:2;10866:3;10862:12;10855:19;;10660:220;;;:::o;10886:366::-;11028:3;11049:67;11113:2;11108:3;11049:67;:::i;:::-;11042:74;;11125:93;11214:3;11125:93;:::i;:::-;11243:2;11238:3;11234:12;11227:19;;11032:220;;;:::o;11258:366::-;11400:3;11421:67;11485:2;11480:3;11421:67;:::i;:::-;11414:74;;11497:93;11586:3;11497:93;:::i;:::-;11615:2;11610:3;11606:12;11599:19;;11404:220;;;:::o;11630:366::-;11772:3;11793:67;11857:2;11852:3;11793:67;:::i;:::-;11786:74;;11869:93;11958:3;11869:93;:::i;:::-;11987:2;11982:3;11978:12;11971:19;;11776:220;;;:::o;12002:366::-;12144:3;12165:67;12229:2;12224:3;12165:67;:::i;:::-;12158:74;;12241:93;12330:3;12241:93;:::i;:::-;12359:2;12354:3;12350:12;12343:19;;12148:220;;;:::o;12374:366::-;12516:3;12537:67;12601:2;12596:3;12537:67;:::i;:::-;12530:74;;12613:93;12702:3;12613:93;:::i;:::-;12731:2;12726:3;12722:12;12715:19;;12520:220;;;:::o;12746:366::-;12888:3;12909:67;12973:2;12968:3;12909:67;:::i;:::-;12902:74;;12985:93;13074:3;12985:93;:::i;:::-;13103:2;13098:3;13094:12;13087:19;;12892:220;;;:::o;13118:366::-;13260:3;13281:67;13345:2;13340:3;13281:67;:::i;:::-;13274:74;;13357:93;13446:3;13357:93;:::i;:::-;13475:2;13470:3;13466:12;13459:19;;13264:220;;;:::o;13490:366::-;13632:3;13653:67;13717:2;13712:3;13653:67;:::i;:::-;13646:74;;13729:93;13818:3;13729:93;:::i;:::-;13847:2;13842:3;13838:12;13831:19;;13636:220;;;:::o;13862:118::-;13949:24;13967:5;13949:24;:::i;:::-;13944:3;13937:37;13927:53;;:::o;13986:112::-;14069:22;14085:5;14069:22;:::i;:::-;14064:3;14057:35;14047:51;;:::o;14104:222::-;14197:4;14235:2;14224:9;14220:18;14212:26;;14248:71;14316:1;14305:9;14301:17;14292:6;14248:71;:::i;:::-;14202:124;;;;:::o;14332:332::-;14453:4;14491:2;14480:9;14476:18;14468:26;;14504:71;14572:1;14561:9;14557:17;14548:6;14504:71;:::i;:::-;14585:72;14653:2;14642:9;14638:18;14629:6;14585:72;:::i;:::-;14458:206;;;;;:::o;14670:210::-;14757:4;14795:2;14784:9;14780:18;14772:26;;14808:65;14870:1;14859:9;14855:17;14846:6;14808:65;:::i;:::-;14762:118;;;;:::o;14886:274::-;15005:4;15043:2;15032:9;15028:18;15020:26;;15056:97;15150:1;15139:9;15135:17;15126:6;15056:97;:::i;:::-;15010:150;;;;:::o;15166:313::-;15279:4;15317:2;15306:9;15302:18;15294:26;;15366:9;15360:4;15356:20;15352:1;15341:9;15337:17;15330:47;15394:78;15467:4;15458:6;15394:78;:::i;:::-;15386:86;;15284:195;;;;:::o;15485:419::-;15651:4;15689:2;15678:9;15674:18;15666:26;;15738:9;15732:4;15728:20;15724:1;15713:9;15709:17;15702:47;15766:131;15892:4;15766:131;:::i;:::-;15758:139;;15656:248;;;:::o;15910:419::-;16076:4;16114:2;16103:9;16099:18;16091:26;;16163:9;16157:4;16153:20;16149:1;16138:9;16134:17;16127:47;16191:131;16317:4;16191:131;:::i;:::-;16183:139;;16081:248;;;:::o;16335:419::-;16501:4;16539:2;16528:9;16524:18;16516:26;;16588:9;16582:4;16578:20;16574:1;16563:9;16559:17;16552:47;16616:131;16742:4;16616:131;:::i;:::-;16608:139;;16506:248;;;:::o;16760:419::-;16926:4;16964:2;16953:9;16949:18;16941:26;;17013:9;17007:4;17003:20;16999:1;16988:9;16984:17;16977:47;17041:131;17167:4;17041:131;:::i;:::-;17033:139;;16931:248;;;:::o;17185:419::-;17351:4;17389:2;17378:9;17374:18;17366:26;;17438:9;17432:4;17428:20;17424:1;17413:9;17409:17;17402:47;17466:131;17592:4;17466:131;:::i;:::-;17458:139;;17356:248;;;:::o;17610:419::-;17776:4;17814:2;17803:9;17799:18;17791:26;;17863:9;17857:4;17853:20;17849:1;17838:9;17834:17;17827:47;17891:131;18017:4;17891:131;:::i;:::-;17883:139;;17781:248;;;:::o;18035:419::-;18201:4;18239:2;18228:9;18224:18;18216:26;;18288:9;18282:4;18278:20;18274:1;18263:9;18259:17;18252:47;18316:131;18442:4;18316:131;:::i;:::-;18308:139;;18206:248;;;:::o;18460:419::-;18626:4;18664:2;18653:9;18649:18;18641:26;;18713:9;18707:4;18703:20;18699:1;18688:9;18684:17;18677:47;18741:131;18867:4;18741:131;:::i;:::-;18733:139;;18631:248;;;:::o;18885:419::-;19051:4;19089:2;19078:9;19074:18;19066:26;;19138:9;19132:4;19128:20;19124:1;19113:9;19109:17;19102:47;19166:131;19292:4;19166:131;:::i;:::-;19158:139;;19056:248;;;:::o;19310:419::-;19476:4;19514:2;19503:9;19499:18;19491:26;;19563:9;19557:4;19553:20;19549:1;19538:9;19534:17;19527:47;19591:131;19717:4;19591:131;:::i;:::-;19583:139;;19481:248;;;:::o;19735:419::-;19901:4;19939:2;19928:9;19924:18;19916:26;;19988:9;19982:4;19978:20;19974:1;19963:9;19959:17;19952:47;20016:131;20142:4;20016:131;:::i;:::-;20008:139;;19906:248;;;:::o;20160:419::-;20326:4;20364:2;20353:9;20349:18;20341:26;;20413:9;20407:4;20403:20;20399:1;20388:9;20384:17;20377:47;20441:131;20567:4;20441:131;:::i;:::-;20433:139;;20331:248;;;:::o;20585:419::-;20751:4;20789:2;20778:9;20774:18;20766:26;;20838:9;20832:4;20828:20;20824:1;20813:9;20809:17;20802:47;20866:131;20992:4;20866:131;:::i;:::-;20858:139;;20756:248;;;:::o;21010:222::-;21103:4;21141:2;21130:9;21126:18;21118:26;;21154:71;21222:1;21211:9;21207:17;21198:6;21154:71;:::i;:::-;21108:124;;;;:::o;21238:831::-;21501:4;21539:3;21528:9;21524:19;21516:27;;21553:71;21621:1;21610:9;21606:17;21597:6;21553:71;:::i;:::-;21634:80;21710:2;21699:9;21695:18;21686:6;21634:80;:::i;:::-;21761:9;21755:4;21751:20;21746:2;21735:9;21731:18;21724:48;21789:108;21892:4;21883:6;21789:108;:::i;:::-;21781:116;;21907:72;21975:2;21964:9;21960:18;21951:6;21907:72;:::i;:::-;21989:73;22057:3;22046:9;22042:19;22033:6;21989:73;:::i;:::-;21506:563;;;;;;;;:::o;22075:214::-;22164:4;22202:2;22191:9;22187:18;22179:26;;22215:67;22279:1;22268:9;22264:17;22255:6;22215:67;:::i;:::-;22169:120;;;;:::o;22295:129::-;22329:6;22356:20;;:::i;:::-;22346:30;;22385:33;22413:4;22405:6;22385:33;:::i;:::-;22336:88;;;:::o;22430:75::-;22463:6;22496:2;22490:9;22480:19;;22470:35;:::o;22511:311::-;22588:4;22678:18;22670:6;22667:30;22664:2;;;22700:18;;:::i;:::-;22664:2;22750:4;22742:6;22738:17;22730:25;;22810:4;22804;22800:15;22792:23;;22593:229;;;:::o;22828:132::-;22895:4;22918:3;22910:11;;22948:4;22943:3;22939:14;22931:22;;22900:60;;;:::o;22966:114::-;23033:6;23067:5;23061:12;23051:22;;23040:40;;;:::o;23086:99::-;23138:6;23172:5;23166:12;23156:22;;23145:40;;;:::o;23191:113::-;23261:4;23293;23288:3;23284:14;23276:22;;23266:38;;;:::o;23310:184::-;23409:11;23443:6;23438:3;23431:19;23483:4;23478:3;23474:14;23459:29;;23421:73;;;;:::o;23500:169::-;23584:11;23618:6;23613:3;23606:19;23658:4;23653:3;23649:14;23634:29;;23596:73;;;;:::o;23675:305::-;23715:3;23734:20;23752:1;23734:20;:::i;:::-;23729:25;;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23922:1;23854:66;23850:74;23847:1;23844:81;23841:2;;;23928:18;;:::i;:::-;23841:2;23972:1;23969;23965:9;23958:16;;23719:261;;;;:::o;23986:185::-;24026:1;24043:20;24061:1;24043:20;:::i;:::-;24038:25;;24077:20;24095:1;24077:20;:::i;:::-;24072:25;;24116:1;24106:2;;24121:18;;:::i;:::-;24106:2;24163:1;24160;24156:9;24151:14;;24028:143;;;;:::o;24177:348::-;24217:7;24240:20;24258:1;24240:20;:::i;:::-;24235:25;;24274:20;24292:1;24274:20;:::i;:::-;24269:25;;24462:1;24394:66;24390:74;24387:1;24384:81;24379:1;24372:9;24365:17;24361:105;24358:2;;;24469:18;;:::i;:::-;24358:2;24517:1;24514;24510:9;24499:20;;24225:300;;;;:::o;24531:191::-;24571:4;24591:20;24609:1;24591:20;:::i;:::-;24586:25;;24625:20;24643:1;24625:20;:::i;:::-;24620:25;;24664:1;24661;24658:8;24655:2;;;24669:18;;:::i;:::-;24655:2;24714:1;24711;24707:9;24699:17;;24576:146;;;;:::o;24728:96::-;24765:7;24794:24;24812:5;24794:24;:::i;:::-;24783:35;;24773:51;;;:::o;24830:104::-;24875:7;24904:24;24922:5;24904:24;:::i;:::-;24893:35;;24883:51;;;:::o;24940:90::-;24974:7;25017:5;25010:13;25003:21;24992:32;;24982:48;;;:::o;25036:126::-;25073:7;25113:42;25106:5;25102:54;25091:65;;25081:81;;;:::o;25168:77::-;25205:7;25234:5;25223:16;;25213:32;;;:::o;25251:86::-;25286:7;25326:4;25319:5;25315:16;25304:27;;25294:43;;;:::o;25343:178::-;25419:9;25452:63;25509:5;25452:63;:::i;:::-;25439:76;;25429:92;;;:::o;25527:139::-;25603:9;25636:24;25654:5;25636:24;:::i;:::-;25623:37;;25613:53;;;:::o;25672:121::-;25730:9;25763:24;25781:5;25763:24;:::i;:::-;25750:37;;25740:53;;;:::o;25799:307::-;25867:1;25877:113;25891:6;25888:1;25885:13;25877:113;;;25976:1;25971:3;25967:11;25961:18;25957:1;25952:3;25948:11;25941:39;25913:2;25910:1;25906:10;25901:15;;25877:113;;;26008:6;26005:1;26002:13;25999:2;;;26088:1;26079:6;26074:3;26070:16;26063:27;25999:2;25848:258;;;;:::o;26112:281::-;26195:27;26217:4;26195:27;:::i;:::-;26187:6;26183:40;26325:6;26313:10;26310:22;26289:18;26277:10;26274:34;26271:62;26268:2;;;26336:18;;:::i;:::-;26268:2;26376:10;26372:2;26365:22;26155:238;;;:::o;26399:233::-;26438:3;26461:24;26479:5;26461:24;:::i;:::-;26452:33;;26507:66;26500:5;26497:77;26494:2;;;26577:18;;:::i;:::-;26494:2;26624:1;26617:5;26613:13;26606:20;;26442:190;;;:::o;26638:180::-;26686:77;26683:1;26676:88;26783:4;26780:1;26773:15;26807:4;26804:1;26797:15;26824:180;26872:77;26869:1;26862:88;26969:4;26966:1;26959:15;26993:4;26990:1;26983:15;27010:180;27058:77;27055:1;27048:88;27155:4;27152:1;27145:15;27179:4;27176:1;27169:15;27196:102;27237:6;27288:2;27284:7;27279:2;27272:5;27268:14;27264:28;27254:38;;27244:54;;;:::o;27304:222::-;27444:34;27440:1;27432:6;27428:14;27421:58;27513:5;27508:2;27500:6;27496:15;27489:30;27410:116;:::o;27532:177::-;27672:29;27668:1;27660:6;27656:14;27649:53;27638:71;:::o;27715:173::-;27855:25;27851:1;27843:6;27839:14;27832:49;27821:67;:::o;27894:229::-;28034:34;28030:1;28022:6;28018:14;28011:58;28103:12;28098:2;28090:6;28086:15;28079:37;28000:123;:::o;28129:221::-;28269:34;28265:1;28257:6;28253:14;28246:58;28338:4;28333:2;28325:6;28321:15;28314:29;28235:115;:::o;28356:177::-;28496:29;28492:1;28484:6;28480:14;28473:53;28462:71;:::o;28539:220::-;28679:34;28675:1;28667:6;28663:14;28656:58;28748:3;28743:2;28735:6;28731:15;28724:28;28645:114;:::o;28765:171::-;28905:23;28901:1;28893:6;28889:14;28882:47;28871:65;:::o;28942:228::-;29082:34;29078:1;29070:6;29066:14;29059:58;29151:11;29146:2;29138:6;29134:15;29127:36;29048:122;:::o;29176:224::-;29316:34;29312:1;29304:6;29300:14;29293:58;29385:7;29380:2;29372:6;29368:15;29361:32;29282:118;:::o;29406:176::-;29546:28;29542:1;29534:6;29530:14;29523:52;29512:70;:::o;29588:223::-;29728:34;29724:1;29716:6;29712:14;29705:58;29797:6;29792:2;29784:6;29780:15;29773:31;29694:117;:::o;29817:179::-;29957:31;29953:1;29945:6;29941:14;29934:55;29923:73;:::o;30002:122::-;30075:24;30093:5;30075:24;:::i;:::-;30068:5;30065:35;30055:2;;30114:1;30111;30104:12;30055:2;30045:79;:::o;30130:138::-;30211:32;30237:5;30211:32;:::i;:::-;30204:5;30201:43;30191:2;;30258:1;30255;30248:12;30191:2;30181:87;:::o;30274:116::-;30344:21;30359:5;30344:21;:::i;:::-;30337:5;30334:32;30324:2;;30380:1;30377;30370:12;30324:2;30314:76;:::o;30396:122::-;30469:24;30487:5;30469:24;:::i;:::-;30462:5;30459:35;30449:2;;30508:1;30505;30498:12;30449:2;30439:79;:::o
Swarm Source
ipfs://a83a5910d69a845bce79cb8d29b7d2037e1b7a8c898310bae9547fdf288358c3
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.