Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,000,000,000 MILOODY
Holders
148
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
347,944,319.382659157 MILOODYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MILOODY
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-22 */ // https://t.me/miloodycoin // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } 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; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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 WETH() external pure returns (address); function factory() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract MILOODY is IERC20, Ownable { using SafeMath for uint256; using Address for address payable; string private constant _name = "Milady69Remilio420inu"; string private constant _symbol = "MILOODY"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 420_000_000_000 * 10**_decimals; uint256 private _maxWallet = 4_200_000_000 * 10**_decimals; uint256 private _maxBuyAmount = 4_200_000_000 * 10**_decimals; uint256 private _maxSellAmount = 4_200_000_000 * 10**_decimals; uint256 private _swapTH = 1_050_000_000 * 10**_decimals; address public Dev = 0xcc8dD3254230e06E9aB10BBa6B102E27D11D3632; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isWhiteList; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address private _owner; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; bool public _AutoSwap = true; bool public _Launch = false; bool public _transfersEnabled = false; bool private _TokenSwap = true; bool private _autoLP = true; bool private _isSelling = false; uint256 private _swapPercent = 100; uint256 private _devTaxRate = 3; uint256 private AmountBuyRate = _devTaxRate; uint256 private _devTaxSellRate = 3; uint256 private AmountSellRate = _devTaxSellRate; constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _owner = msg.sender; uint256 tsupply = _totalSupply; _balances[msg.sender] = tsupply; _isExcludedFromFee[_owner] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[Dev] = true; emit Transfer(address(0), msg.sender, _balances[msg.sender]); } function getOwner() public view returns (address) { return owner(); } 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 view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function isWhitelist(address account) public view returns (bool) { return _isWhiteList[account]; } function ViewBuyRate() public view returns ( uint256 devBuyRate, uint256 totalBuyRate, uint256 maxWallet, uint256 maxBuyAmount ) { devBuyRate = _devTaxRate; totalBuyRate = AmountBuyRate; maxWallet = _maxWallet; maxBuyAmount = _maxBuyAmount; } function ViewSellRate() public view returns ( uint256 devSellRate, uint256 totalSellRate, uint256 maxSellAmount ) { devSellRate = _devTaxSellRate; totalSellRate = AmountSellRate; maxSellAmount = _maxSellAmount; } function transfer(address recipient, uint256 amount) public override returns (bool) { if(recipient != uniswapV2Pair && recipient != owner() && !_isExcludedFromFee[recipient]){ require(_balances[recipient] + amount <= _maxWallet, "MyToken: recipient wallet balance exceeds the maximum limit"); } _transfer(msg.sender, 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(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount); _transfer(sender, recipient, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "MyToken: approve from the zero address"); require(spender != address(0), "MyToken: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "MyToken: transfer from the zero address"); require(recipient != address(0), "MyToken: transfer to the zero address"); require(amount > 0, "MyToken: transfer amount must be greater than zero"); if(!_Launch){require(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient] || _isWhiteList[sender] || _isWhiteList[recipient], "we not launch yet");} if(!_Launch && recipient != uniswapV2Pair && sender != uniswapV2Pair) {require(_transfersEnabled, "Transfers are currently disabled");} bool _AutoTaxes = true; if (recipient == uniswapV2Pair && sender == owner()) { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return; } //sell if(recipient == uniswapV2Pair && !_isExcludedFromFee[sender] && sender != owner()){ require(amount <= _maxSellAmount, "Sell amount exceeds max limit"); _isSelling = true; if(_AutoSwap && balanceOf(address(this)) >= _swapTH){ CanSwap(); } } //buy if(sender == uniswapV2Pair && !_isExcludedFromFee[recipient] && recipient != owner()){ require(amount <= _maxBuyAmount, "Buy amount exceeds max limit"); } if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _AutoTaxes = false; } if (recipient != uniswapV2Pair && sender != uniswapV2Pair) { _AutoTaxes = false; } if (_AutoTaxes) { if(!_isSelling){ uint256 totalTaxAmount = amount * AmountBuyRate / 100; uint256 transferAmount = amount - totalTaxAmount; _balances[address(this)] = _balances[address(this)].add(totalTaxAmount); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(transferAmount); emit Transfer(sender, recipient, transferAmount); emit Transfer(sender, address(this), totalTaxAmount); }else{ uint256 totalTaxAmount = amount * AmountSellRate / 100; uint256 transferAmount = amount - totalTaxAmount; _balances[address(this)] = _balances[address(this)].add(totalTaxAmount); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(transferAmount); emit Transfer(sender, recipient, transferAmount); emit Transfer(sender, address(this), totalTaxAmount); _isSelling = false; } }else{ _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } function swapTokensForEth(uint256 tokenAmount) private { // set up miloody function address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); // Approve teh transfer of miloody to the contract addressorrr _approve(address(this), address(uniswapV2Router), tokenAmount); // Make teh swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function CanSwap() private { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > 0) { if(_TokenSwap){ if(contractTokenBalance > 0){ uint256 caBalance = balanceOf(address(this)) * _swapPercent / 100; uint256 toSwap = caBalance; swapTokensForEth(toSwap); uint256 receivedBalance = address(this).balance; if (receivedBalance > 0) {payable(Dev).transfer(receivedBalance);} }else{ revert("No tokens available to swap"); } } }else{ revert("No Balance available to swap"); } } receive() external payable {} function setDevAddress(address newAddress) public onlyOwner { require(newAddress != address(0), "Invalid address"); Dev = newAddress; _isExcludedFromFee[newAddress] = true; } function enableLaunch() external { _Launch = true; _transfersEnabled = true; } function setExcludedFromFee(address account, bool status) external onlyOwner { _isExcludedFromFee[account] = status; } function setWhitelist(address account, bool status) external onlyOwner { _isWhiteList[account] = status; } function bulkwhitelist(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ _isWhiteList[accounts[i]] = state; } } function SwapEnable(bool status) external onlyOwner { _AutoSwap = status; } function SetSwapPercentage(uint256 SwapPercent) external onlyOwner { _swapPercent = SwapPercent; } function setAutoSwap(uint256 newAutoSwap) external onlyOwner { require(newAutoSwap <= (totalSupply() * 1) / 100, "Invalid value: exceeds 1% of total supply"); _swapTH = newAutoSwap * 10**_decimals; } function updateLimits(uint256 maxWallet, uint256 maxBuyAmount, uint256 maxSellAmount) external onlyOwner { _maxWallet = maxWallet * 10**_decimals; _maxBuyAmount = maxBuyAmount * 10**_decimals; _maxSellAmount = maxSellAmount * 10**_decimals; } function setBuyTaxRates(uint256 devTaxRate) external onlyOwner { _devTaxRate = devTaxRate; AmountBuyRate = _devTaxRate; } function setSellTaxRates(uint256 devTaxRate) external onlyOwner { _devTaxSellRate = devTaxRate; AmountSellRate = _devTaxSellRate; } }
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"},{"inputs":[],"name":"Dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"SwapPercent","type":"uint256"}],"name":"SetSwapPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"SwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ViewBuyRate","outputs":[{"internalType":"uint256","name":"devBuyRate","type":"uint256"},{"internalType":"uint256","name":"totalBuyRate","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ViewSellRate","outputs":[{"internalType":"uint256","name":"devSellRate","type":"uint256"},{"internalType":"uint256","name":"totalSellRate","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AutoSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transfersEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkwhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAutoSwap","type":"uint256"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setBuyTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setSellTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009600a62000014919062000885565b6461c9f36800620000269190620009c2565b6001556009600a62000039919062000885565b63fa56ea006200004a9190620009c2565b6002556009600a6200005d919062000885565b63fa56ea006200006e9190620009c2565b6003556009600a62000081919062000885565b63fa56ea00620000929190620009c2565b6004556009600a620000a5919062000885565b633e95ba80620000b69190620009c2565b60055573cc8dd3254230e06e9ab10bba6b102e27d11d3632600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055506001600e60036101000a81548160ff0219169083151502179055506001600e60046101000a81548160ff0219169083151502179055506000600e60056101000a81548160ff0219169083151502179055506064600f5560036010556010546011556003601255601254601355348015620001d857600080fd5b50620001f9620001ed620006af60201b60201c565b620006b760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029a57600080fd5b505afa158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000792565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033857600080fd5b505afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000373919062000792565b6040518363ffffffff1660e01b815260040162000392929190620007e0565b602060405180830381600087803b158015620003ad57600080fd5b505af1158015620003c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e8919062000792565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600154905080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200069f91906200080d565b60405180910390a3505062000ac4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000815190506200078c8162000aaa565b92915050565b600060208284031215620007a557600080fd5b6000620007b5848285016200077b565b91505092915050565b620007c98162000a23565b82525050565b620007da8162000a57565b82525050565b6000604082019050620007f76000830185620007be565b620008066020830184620007be565b9392505050565b6000602082019050620008246000830184620007cf565b92915050565b6000808291508390505b60018511156200087c5780860481111562000854576200085362000a6e565b5b6001851615620008645780820291505b8081029050620008748562000a9d565b945062000834565b94509492505050565b6000620008928262000a57565b91506200089f8362000a61565b9250620008ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d6565b905092915050565b600082620008e85760019050620009bb565b81620008f85760009050620009bb565b81600181146200091157600281146200091c5762000952565b6001915050620009bb565b60ff84111562000931576200093062000a6e565b5b8360020a9150848211156200094b576200094a62000a6e565b5b50620009bb565b5060208310610133831016604e8410600b84101617156200098c5782820a90508381111562000986576200098562000a6e565b5b620009bb565b6200099b84848460016200082a565b92509050818404811115620009b557620009b462000a6e565b5b81810290505b9392505050565b6000620009cf8262000a57565b9150620009dc8362000a57565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a185762000a1762000a6e565b5b828202905092915050565b600062000a308262000a37565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b62000ab58162000a23565b811462000ac157600080fd5b50565b6143318062000ad46000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063d8a0663c116100a0578063f515a55c1161006f578063f515a55c14610742578063f7de4dfd1461076b578063fcd2e04914610796578063feae65e7146107bf578063ff5211bb146107ed57610204565b8063d8a0663c1461068a578063dd62ed3e146106b3578063f18b8cba146106f0578063f2fde38b1461071957610204565b8063a9059cbb116100dc578063a9059cbb146105ba578063c683630d146105f7578063c6da305114610634578063d0d41fe11461066157610204565b80638da5cb5b14610510578063925542871461053b57806395d89b4114610566578063a14aee611461059157610204565b806336a0f8a5116101905780636612e66f1161015f5780636612e66f1461043d57806370a0823114610466578063715018a6146104a357806385438bc0146104ba578063893d20e8146104e557610204565b806336a0f8a51461038357806349bd5a5e146103ac5780635342acb4146103d757806353d6fd591461041457610204565b80631694505e116101cc5780631694505e146102c557806318160ddd146102f057806323b872dd1461031b578063313ce5671461035857610204565b806301e51ae81461020957806306fdde0314610234578063095ea7b31461025f5780630a80c0cc1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610804565b60405161022b9190613a2d565b60405180910390f35b34801561024057600080fd5b5061024961082a565b6040516102569190613a7e565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190613274565b610867565b6040516102939190613a48565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061332d565b61087e565b005b3480156102d157600080fd5b506102da61090d565b6040516102e79190613a63565b60405180910390f35b3480156102fc57600080fd5b50610305610933565b6040516103129190613cc0565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d91906131e9565b61093d565b60405161034f9190613a48565b60405180910390f35b34801561036457600080fd5b5061036d6109e7565b60405161037a9190613db1565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190613356565b6109f0565b005b3480156103b857600080fd5b506103c1610ace565b6040516103ce9190613a2d565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f9919061315b565b610af4565b60405161040b9190613a48565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190613238565b610b4a565b005b34801561044957600080fd5b50610464600480360381019061045f9190613238565b610c21565b005b34801561047257600080fd5b5061048d6004803603810190610488919061315b565b610cf8565b60405161049a9190613cc0565b60405180910390f35b3480156104af57600080fd5b506104b8610d41565b005b3480156104c657600080fd5b506104cf610dc9565b6040516104dc9190613a48565b60405180910390f35b3480156104f157600080fd5b506104fa610ddc565b6040516105079190613a2d565b60405180910390f35b34801561051c57600080fd5b50610525610deb565b6040516105329190613a2d565b60405180910390f35b34801561054757600080fd5b50610550610e14565b60405161055d9190613a48565b60405180910390f35b34801561057257600080fd5b5061057b610e27565b6040516105889190613a7e565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190613304565b610e64565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190613274565b610efd565b6040516105ee9190613a48565b60405180910390f35b34801561060357600080fd5b5061061e6004803603810190610619919061315b565b611090565b60405161062b9190613a48565b60405180910390f35b34801561064057600080fd5b506106496110e6565b60405161065893929190613d35565b60405180910390f35b34801561066d57600080fd5b506106886004803603810190610683919061315b565b6110ff565b005b34801561069657600080fd5b506106b160048036038101906106ac919061332d565b611287565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906131ad565b611387565b6040516106e79190613cc0565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906132b0565b61140e565b005b34801561072557600080fd5b50610740600480360381019061073b919061315b565b611545565b005b34801561074e57600080fd5b506107696004803603810190610764919061332d565b61163d565b005b34801561077757600080fd5b506107806116c3565b60405161078d9190613a48565b60405180910390f35b3480156107a257600080fd5b506107bd60048036038101906107b8919061332d565b6116d6565b005b3480156107cb57600080fd5b506107d4611765565b6040516107e49493929190613d6c565b60405180910390f35b3480156107f957600080fd5b50610802611785565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280601581526020017f4d696c616479363952656d696c696f343230696e750000000000000000000000815250905090565b60006108743384846117bd565b6001905092915050565b610886611988565b73ffffffffffffffffffffffffffffffffffffffff166108a4610deb565b73ffffffffffffffffffffffffffffffffffffffff16146108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190613c00565b60405180910390fd5b8060128190555060125460138190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b60006109d1843384600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109cc91906140d0565b6117bd565b6109dc848484611990565b600190509392505050565b60006009905090565b6109f8611988565b73ffffffffffffffffffffffffffffffffffffffff16610a16610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390613c00565b60405180910390fd5b6009600a610a7a9190613f58565b83610a859190614076565b6002819055506009600a610a999190613f58565b82610aa49190614076565b6003819055506009600a610ab89190613f58565b81610ac39190614076565b600481905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b52611988565b73ffffffffffffffffffffffffffffffffffffffff16610b70610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90613c00565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c29611988565b73ffffffffffffffffffffffffffffffffffffffff16610c47610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490613c00565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d49611988565b73ffffffffffffffffffffffffffffffffffffffff16610d67610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490613c00565b60405180910390fd5b610dc76000612a76565b565b600e60029054906101000a900460ff1681565b6000610de6610deb565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900460ff1681565b60606040518060400160405280600781526020017f4d494c4f4f445900000000000000000000000000000000000000000000000000815250905090565b610e6c611988565b73ffffffffffffffffffffffffffffffffffffffff16610e8a610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed790613c00565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f905750610f60610deb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610fe65750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561107b5760025482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110399190613e7e565b111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190613b80565b60405180910390fd5b5b611086338484611990565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000601254925060135491506004549050909192565b611107611988565b73ffffffffffffffffffffffffffffffffffffffff16611125610deb565b73ffffffffffffffffffffffffffffffffffffffff161461117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290613c00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e290613ae0565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61128f611988565b73ffffffffffffffffffffffffffffffffffffffff166112ad610deb565b73ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90613c00565b60405180910390fd5b6064600161130f610933565b6113199190614076565b6113239190613ed4565b811115611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90613bc0565b60405180910390fd5b6009600a6113739190613f58565b8161137e9190614076565b60058190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611416611988565b73ffffffffffffffffffffffffffffffffffffffff16611434610deb565b73ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190613c00565b60405180910390fd5b60005b82518110156115405781600860008584815181106114d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611538906141c2565b91505061148d565b505050565b61154d611988565b73ffffffffffffffffffffffffffffffffffffffff1661156b610deb565b73ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613c00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613b20565b60405180910390fd5b61163a81612a76565b50565b611645611988565b73ffffffffffffffffffffffffffffffffffffffff16611663610deb565b73ffffffffffffffffffffffffffffffffffffffff16146116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090613c00565b60405180910390fd5b80600f8190555050565b600e60019054906101000a900460ff1681565b6116de611988565b73ffffffffffffffffffffffffffffffffffffffff166116fc610deb565b73ffffffffffffffffffffffffffffffffffffffff1614611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990613c00565b60405180910390fd5b8060108190555060105460118190555050565b600080600080601054935060115492506002549150600354905090919293565b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561182d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182490613c20565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613b00565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197b9190613cc0565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790613ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6790613ac0565b60405180910390fd5b60008111611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa90613be0565b60405180910390fd5b600e60019054906101000a900460ff16611c5057600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b685750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bbc5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c105750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613c60565b60405180910390fd5b5b600e60019054906101000a900460ff16158015611cbb5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d155750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d6a57600e60029054906101000a900460ff16611d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6090613c40565b60405180910390fd5b5b600060019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dff5750611dd0610deb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611f1b5781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e5391906140d0565b9250508190555081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ea99190613e7e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0d9190613cc0565b60405180910390a350612a71565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fc25750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120015750611fd1610deb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561209b5760045482111561204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613ba0565b60405180910390fd5b6001600e60056101000a81548160ff021916908315150217905550600e60009054906101000a900460ff16801561208c575060055461208930610cf8565b10155b1561209a57612099612b3a565b5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121425750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121815750612151610deb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121cc576003548211156121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c290613aa0565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061226d5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227757600090505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123235750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232d57600090505b80156128df57600e60059054906101000a900460ff166126055760006064601154846123599190614076565b6123639190613ed4565b90506000818461237391906140d0565b90506123c782600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245c84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cff90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f181600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125919190613cc0565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125f69190613cc0565b60405180910390a350506128da565b60006064601354846126179190614076565b6126219190613ed4565b90506000818461263191906140d0565b905061268582600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271a84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cff90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127af81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161284f9190613cc0565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128b49190613cc0565b60405180910390a36000600e60056101000a81548160ff02191690831515021790555050505b612a6f565b61293182600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cff90919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c682600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a669190613cc0565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612b4530610cf8565b90506000811115612c6357600e60039054906101000a900460ff1615612c5e576000811115612c225760006064600f54612b7e30610cf8565b612b889190614076565b612b929190613ed4565b90506000819050612ba281612d49565b60004790506000811115612c1a57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c18573d6000803e3d6000fd5b505b505050612c5d565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5490613c80565b60405180910390fd5b5b612c9e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9590613b60565b60405180910390fd5b50565b6000808284612cb09190613e7e565b905083811015612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec90613b40565b60405180910390fd5b8091505092915050565b6000612d4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061300d565b905092915050565b6000600267ffffffffffffffff811115612d8c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612dba5781602001602082028036833780820191505090505b5090503081600081518110612df8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612e9a57600080fd5b505afa158015612eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed29190613184565b81600181518110612f0c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f7330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117bd565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fd7959493929190613cdb565b600060405180830381600087803b158015612ff157600080fd5b505af1158015613005573d6000803e3d6000fd5b505050505050565b6000838311158290613055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304c9190613a7e565b60405180910390fd5b506000838561306491906140d0565b9050809150509392505050565b600061308461307f84613dfd565b613dcc565b905080838252602082019050828560208602820111156130a357600080fd5b60005b858110156130d357816130b988826130dd565b8452602084019350602083019250506001810190506130a6565b5050509392505050565b6000813590506130ec816142b6565b92915050565b600081519050613101816142b6565b92915050565b600082601f83011261311857600080fd5b8135613128848260208601613071565b91505092915050565b600081359050613140816142cd565b92915050565b600081359050613155816142e4565b92915050565b60006020828403121561316d57600080fd5b600061317b848285016130dd565b91505092915050565b60006020828403121561319657600080fd5b60006131a4848285016130f2565b91505092915050565b600080604083850312156131c057600080fd5b60006131ce858286016130dd565b92505060206131df858286016130dd565b9150509250929050565b6000806000606084860312156131fe57600080fd5b600061320c868287016130dd565b935050602061321d868287016130dd565b925050604061322e86828701613146565b9150509250925092565b6000806040838503121561324b57600080fd5b6000613259858286016130dd565b925050602061326a85828601613131565b9150509250929050565b6000806040838503121561328757600080fd5b6000613295858286016130dd565b92505060206132a685828601613146565b9150509250929050565b600080604083850312156132c357600080fd5b600083013567ffffffffffffffff8111156132dd57600080fd5b6132e985828601613107565b92505060206132fa85828601613131565b9150509250929050565b60006020828403121561331657600080fd5b600061332484828501613131565b91505092915050565b60006020828403121561333f57600080fd5b600061334d84828501613146565b91505092915050565b60008060006060848603121561336b57600080fd5b600061337986828701613146565b935050602061338a86828701613146565b925050604061339b86828701613146565b9150509250925092565b60006133b183836133bd565b60208301905092915050565b6133c681614104565b82525050565b6133d581614104565b82525050565b60006133e682613e39565b6133f08185613e5c565b93506133fb83613e29565b8060005b8381101561342c57815161341388826133a5565b975061341e83613e4f565b9250506001810190506133ff565b5085935050505092915050565b61344281614116565b82525050565b61345181614159565b82525050565b6134608161417d565b82525050565b600061347182613e44565b61347b8185613e6d565b935061348b81856020860161418f565b61349481614298565b840191505092915050565b60006134ac601c83613e6d565b91507f42757920616d6f756e742065786365656473206d6178206c696d6974000000006000830152602082019050919050565b60006134ec602583613e6d565b91507f4d79546f6b656e3a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613552600f83613e6d565b91507f496e76616c6964206164647265737300000000000000000000000000000000006000830152602082019050919050565b6000613592602483613e6d565b91507f4d79546f6b656e3a20617070726f766520746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135f8602683613e6d565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061365e601b83613e6d565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061369e601c83613e6d565b91507f4e6f2042616c616e636520617661696c61626c6520746f2073776170000000006000830152602082019050919050565b60006136de603b83613e6d565b91507f4d79546f6b656e3a20726563697069656e742077616c6c65742062616c616e6360008301527f65206578636565647320746865206d6178696d756d206c696d697400000000006020830152604082019050919050565b6000613744601d83613e6d565b91507f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006000830152602082019050919050565b6000613784602983613e6d565b91507f496e76616c69642076616c75653a2065786365656473203125206f6620746f7460008301527f616c20737570706c7900000000000000000000000000000000000000000000006020830152604082019050919050565b60006137ea603283613e6d565b91507f4d79546f6b656e3a207472616e7366657220616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b6000613850602083613e6d565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613890602683613e6d565b91507f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138f6602083613e6d565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b6000613936601183613e6d565b91507f7765206e6f74206c61756e6368207965740000000000000000000000000000006000830152602082019050919050565b6000613976601b83613e6d565b91507f4e6f20746f6b656e7320617661696c61626c6520746f207377617000000000006000830152602082019050919050565b60006139b6602783613e6d565b91507f4d79546f6b656e3a207472616e736665722066726f6d20746865207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b613a1881614142565b82525050565b613a278161414c565b82525050565b6000602082019050613a4260008301846133cc565b92915050565b6000602082019050613a5d6000830184613439565b92915050565b6000602082019050613a786000830184613448565b92915050565b60006020820190508181036000830152613a988184613466565b905092915050565b60006020820190508181036000830152613ab98161349f565b9050919050565b60006020820190508181036000830152613ad9816134df565b9050919050565b60006020820190508181036000830152613af981613545565b9050919050565b60006020820190508181036000830152613b1981613585565b9050919050565b60006020820190508181036000830152613b39816135eb565b9050919050565b60006020820190508181036000830152613b5981613651565b9050919050565b60006020820190508181036000830152613b7981613691565b9050919050565b60006020820190508181036000830152613b99816136d1565b9050919050565b60006020820190508181036000830152613bb981613737565b9050919050565b60006020820190508181036000830152613bd981613777565b9050919050565b60006020820190508181036000830152613bf9816137dd565b9050919050565b60006020820190508181036000830152613c1981613843565b9050919050565b60006020820190508181036000830152613c3981613883565b9050919050565b60006020820190508181036000830152613c59816138e9565b9050919050565b60006020820190508181036000830152613c7981613929565b9050919050565b60006020820190508181036000830152613c9981613969565b9050919050565b60006020820190508181036000830152613cb9816139a9565b9050919050565b6000602082019050613cd56000830184613a0f565b92915050565b600060a082019050613cf06000830188613a0f565b613cfd6020830187613457565b8181036040830152613d0f81866133db565b9050613d1e60608301856133cc565b613d2b6080830184613a0f565b9695505050505050565b6000606082019050613d4a6000830186613a0f565b613d576020830185613a0f565b613d646040830184613a0f565b949350505050565b6000608082019050613d816000830187613a0f565b613d8e6020830186613a0f565b613d9b6040830185613a0f565b613da86060830184613a0f565b95945050505050565b6000602082019050613dc66000830184613a1e565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613df357613df2614269565b5b8060405250919050565b600067ffffffffffffffff821115613e1857613e17614269565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e8982614142565b9150613e9483614142565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ec957613ec861420b565b5b828201905092915050565b6000613edf82614142565b9150613eea83614142565b925082613efa57613ef961423a565b5b828204905092915050565b6000808291508390505b6001851115613f4f57808604811115613f2b57613f2a61420b565b5b6001851615613f3a5780820291505b8081029050613f48856142a9565b9450613f0f565b94509492505050565b6000613f6382614142565b9150613f6e8361414c565b9250613f9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613fa3565b905092915050565b600082613fb3576001905061406f565b81613fc1576000905061406f565b8160018114613fd75760028114613fe157614010565b600191505061406f565b60ff841115613ff357613ff261420b565b5b8360020a91508482111561400a5761400961420b565b5b5061406f565b5060208310610133831016604e8410600b84101617156140455782820a9050838111156140405761403f61420b565b5b61406f565b6140528484846001613f05565b925090508184048111156140695761406861420b565b5b81810290505b9392505050565b600061408182614142565b915061408c83614142565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140c5576140c461420b565b5b828202905092915050565b60006140db82614142565b91506140e683614142565b9250828210156140f9576140f861420b565b5b828203905092915050565b600061410f82614122565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006141648261416b565b9050919050565b600061417682614122565b9050919050565b600061418882614142565b9050919050565b60005b838110156141ad578082015181840152602081019050614192565b838111156141bc576000848401525b50505050565b60006141cd82614142565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614200576141ff61420b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b6142bf81614104565b81146142ca57600080fd5b50565b6142d681614116565b81146142e157600080fd5b50565b6142ed81614142565b81146142f857600080fd5b5056fea2646970667358221220be6c15fddfdb8e3a4272d762821892f49b892df914f0320d48370e9b4755bb3764736f6c63430008000033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063d8a0663c116100a0578063f515a55c1161006f578063f515a55c14610742578063f7de4dfd1461076b578063fcd2e04914610796578063feae65e7146107bf578063ff5211bb146107ed57610204565b8063d8a0663c1461068a578063dd62ed3e146106b3578063f18b8cba146106f0578063f2fde38b1461071957610204565b8063a9059cbb116100dc578063a9059cbb146105ba578063c683630d146105f7578063c6da305114610634578063d0d41fe11461066157610204565b80638da5cb5b14610510578063925542871461053b57806395d89b4114610566578063a14aee611461059157610204565b806336a0f8a5116101905780636612e66f1161015f5780636612e66f1461043d57806370a0823114610466578063715018a6146104a357806385438bc0146104ba578063893d20e8146104e557610204565b806336a0f8a51461038357806349bd5a5e146103ac5780635342acb4146103d757806353d6fd591461041457610204565b80631694505e116101cc5780631694505e146102c557806318160ddd146102f057806323b872dd1461031b578063313ce5671461035857610204565b806301e51ae81461020957806306fdde0314610234578063095ea7b31461025f5780630a80c0cc1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610804565b60405161022b9190613a2d565b60405180910390f35b34801561024057600080fd5b5061024961082a565b6040516102569190613a7e565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190613274565b610867565b6040516102939190613a48565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061332d565b61087e565b005b3480156102d157600080fd5b506102da61090d565b6040516102e79190613a63565b60405180910390f35b3480156102fc57600080fd5b50610305610933565b6040516103129190613cc0565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d91906131e9565b61093d565b60405161034f9190613a48565b60405180910390f35b34801561036457600080fd5b5061036d6109e7565b60405161037a9190613db1565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190613356565b6109f0565b005b3480156103b857600080fd5b506103c1610ace565b6040516103ce9190613a2d565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f9919061315b565b610af4565b60405161040b9190613a48565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190613238565b610b4a565b005b34801561044957600080fd5b50610464600480360381019061045f9190613238565b610c21565b005b34801561047257600080fd5b5061048d6004803603810190610488919061315b565b610cf8565b60405161049a9190613cc0565b60405180910390f35b3480156104af57600080fd5b506104b8610d41565b005b3480156104c657600080fd5b506104cf610dc9565b6040516104dc9190613a48565b60405180910390f35b3480156104f157600080fd5b506104fa610ddc565b6040516105079190613a2d565b60405180910390f35b34801561051c57600080fd5b50610525610deb565b6040516105329190613a2d565b60405180910390f35b34801561054757600080fd5b50610550610e14565b60405161055d9190613a48565b60405180910390f35b34801561057257600080fd5b5061057b610e27565b6040516105889190613a7e565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190613304565b610e64565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190613274565b610efd565b6040516105ee9190613a48565b60405180910390f35b34801561060357600080fd5b5061061e6004803603810190610619919061315b565b611090565b60405161062b9190613a48565b60405180910390f35b34801561064057600080fd5b506106496110e6565b60405161065893929190613d35565b60405180910390f35b34801561066d57600080fd5b506106886004803603810190610683919061315b565b6110ff565b005b34801561069657600080fd5b506106b160048036038101906106ac919061332d565b611287565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906131ad565b611387565b6040516106e79190613cc0565b60405180910390f35b3480156106fc57600080fd5b50610717600480360381019061071291906132b0565b61140e565b005b34801561072557600080fd5b50610740600480360381019061073b919061315b565b611545565b005b34801561074e57600080fd5b506107696004803603810190610764919061332d565b61163d565b005b34801561077757600080fd5b506107806116c3565b60405161078d9190613a48565b60405180910390f35b3480156107a257600080fd5b506107bd60048036038101906107b8919061332d565b6116d6565b005b3480156107cb57600080fd5b506107d4611765565b6040516107e49493929190613d6c565b60405180910390f35b3480156107f957600080fd5b50610802611785565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280601581526020017f4d696c616479363952656d696c696f343230696e750000000000000000000000815250905090565b60006108743384846117bd565b6001905092915050565b610886611988565b73ffffffffffffffffffffffffffffffffffffffff166108a4610deb565b73ffffffffffffffffffffffffffffffffffffffff16146108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190613c00565b60405180910390fd5b8060128190555060125460138190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b60006109d1843384600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109cc91906140d0565b6117bd565b6109dc848484611990565b600190509392505050565b60006009905090565b6109f8611988565b73ffffffffffffffffffffffffffffffffffffffff16610a16610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390613c00565b60405180910390fd5b6009600a610a7a9190613f58565b83610a859190614076565b6002819055506009600a610a999190613f58565b82610aa49190614076565b6003819055506009600a610ab89190613f58565b81610ac39190614076565b600481905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b52611988565b73ffffffffffffffffffffffffffffffffffffffff16610b70610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90613c00565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c29611988565b73ffffffffffffffffffffffffffffffffffffffff16610c47610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490613c00565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d49611988565b73ffffffffffffffffffffffffffffffffffffffff16610d67610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490613c00565b60405180910390fd5b610dc76000612a76565b565b600e60029054906101000a900460ff1681565b6000610de6610deb565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900460ff1681565b60606040518060400160405280600781526020017f4d494c4f4f445900000000000000000000000000000000000000000000000000815250905090565b610e6c611988565b73ffffffffffffffffffffffffffffffffffffffff16610e8a610deb565b73ffffffffffffffffffffffffffffffffffffffff1614610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed790613c00565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f905750610f60610deb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610fe65750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561107b5760025482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110399190613e7e565b111561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190613b80565b60405180910390fd5b5b611086338484611990565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000601254925060135491506004549050909192565b611107611988565b73ffffffffffffffffffffffffffffffffffffffff16611125610deb565b73ffffffffffffffffffffffffffffffffffffffff161461117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290613c00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e290613ae0565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61128f611988565b73ffffffffffffffffffffffffffffffffffffffff166112ad610deb565b73ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90613c00565b60405180910390fd5b6064600161130f610933565b6113199190614076565b6113239190613ed4565b811115611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90613bc0565b60405180910390fd5b6009600a6113739190613f58565b8161137e9190614076565b60058190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611416611988565b73ffffffffffffffffffffffffffffffffffffffff16611434610deb565b73ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190613c00565b60405180910390fd5b60005b82518110156115405781600860008584815181106114d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611538906141c2565b91505061148d565b505050565b61154d611988565b73ffffffffffffffffffffffffffffffffffffffff1661156b610deb565b73ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613c00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613b20565b60405180910390fd5b61163a81612a76565b50565b611645611988565b73ffffffffffffffffffffffffffffffffffffffff16611663610deb565b73ffffffffffffffffffffffffffffffffffffffff16146116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090613c00565b60405180910390fd5b80600f8190555050565b600e60019054906101000a900460ff1681565b6116de611988565b73ffffffffffffffffffffffffffffffffffffffff166116fc610deb565b73ffffffffffffffffffffffffffffffffffffffff1614611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990613c00565b60405180910390fd5b8060108190555060105460118190555050565b600080600080601054935060115492506002549150600354905090919293565b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561182d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182490613c20565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613b00565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197b9190613cc0565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790613ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6790613ac0565b60405180910390fd5b60008111611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa90613be0565b60405180910390fd5b600e60019054906101000a900460ff16611c5057600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b685750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bbc5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c105750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613c60565b60405180910390fd5b5b600e60019054906101000a900460ff16158015611cbb5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d155750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d6a57600e60029054906101000a900460ff16611d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6090613c40565b60405180910390fd5b5b600060019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dff5750611dd0610deb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611f1b5781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e5391906140d0565b9250508190555081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ea99190613e7e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0d9190613cc0565b60405180910390a350612a71565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fc25750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120015750611fd1610deb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561209b5760045482111561204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613ba0565b60405180910390fd5b6001600e60056101000a81548160ff021916908315150217905550600e60009054906101000a900460ff16801561208c575060055461208930610cf8565b10155b1561209a57612099612b3a565b5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121425750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121815750612151610deb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121cc576003548211156121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c290613aa0565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061226d5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227757600090505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123235750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232d57600090505b80156128df57600e60059054906101000a900460ff166126055760006064601154846123599190614076565b6123639190613ed4565b90506000818461237391906140d0565b90506123c782600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245c84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cff90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f181600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125919190613cc0565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125f69190613cc0565b60405180910390a350506128da565b60006064601354846126179190614076565b6126219190613ed4565b90506000818461263191906140d0565b905061268582600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271a84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cff90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127af81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161284f9190613cc0565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128b49190613cc0565b60405180910390a36000600e60056101000a81548160ff02191690831515021790555050505b612a6f565b61293182600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cff90919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c682600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca190919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a669190613cc0565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612b4530610cf8565b90506000811115612c6357600e60039054906101000a900460ff1615612c5e576000811115612c225760006064600f54612b7e30610cf8565b612b889190614076565b612b929190613ed4565b90506000819050612ba281612d49565b60004790506000811115612c1a57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c18573d6000803e3d6000fd5b505b505050612c5d565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5490613c80565b60405180910390fd5b5b612c9e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9590613b60565b60405180910390fd5b50565b6000808284612cb09190613e7e565b905083811015612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec90613b40565b60405180910390fd5b8091505092915050565b6000612d4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061300d565b905092915050565b6000600267ffffffffffffffff811115612d8c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612dba5781602001602082028036833780820191505090505b5090503081600081518110612df8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612e9a57600080fd5b505afa158015612eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed29190613184565b81600181518110612f0c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f7330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117bd565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fd7959493929190613cdb565b600060405180830381600087803b158015612ff157600080fd5b505af1158015613005573d6000803e3d6000fd5b505050505050565b6000838311158290613055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304c9190613a7e565b60405180910390fd5b506000838561306491906140d0565b9050809150509392505050565b600061308461307f84613dfd565b613dcc565b905080838252602082019050828560208602820111156130a357600080fd5b60005b858110156130d357816130b988826130dd565b8452602084019350602083019250506001810190506130a6565b5050509392505050565b6000813590506130ec816142b6565b92915050565b600081519050613101816142b6565b92915050565b600082601f83011261311857600080fd5b8135613128848260208601613071565b91505092915050565b600081359050613140816142cd565b92915050565b600081359050613155816142e4565b92915050565b60006020828403121561316d57600080fd5b600061317b848285016130dd565b91505092915050565b60006020828403121561319657600080fd5b60006131a4848285016130f2565b91505092915050565b600080604083850312156131c057600080fd5b60006131ce858286016130dd565b92505060206131df858286016130dd565b9150509250929050565b6000806000606084860312156131fe57600080fd5b600061320c868287016130dd565b935050602061321d868287016130dd565b925050604061322e86828701613146565b9150509250925092565b6000806040838503121561324b57600080fd5b6000613259858286016130dd565b925050602061326a85828601613131565b9150509250929050565b6000806040838503121561328757600080fd5b6000613295858286016130dd565b92505060206132a685828601613146565b9150509250929050565b600080604083850312156132c357600080fd5b600083013567ffffffffffffffff8111156132dd57600080fd5b6132e985828601613107565b92505060206132fa85828601613131565b9150509250929050565b60006020828403121561331657600080fd5b600061332484828501613131565b91505092915050565b60006020828403121561333f57600080fd5b600061334d84828501613146565b91505092915050565b60008060006060848603121561336b57600080fd5b600061337986828701613146565b935050602061338a86828701613146565b925050604061339b86828701613146565b9150509250925092565b60006133b183836133bd565b60208301905092915050565b6133c681614104565b82525050565b6133d581614104565b82525050565b60006133e682613e39565b6133f08185613e5c565b93506133fb83613e29565b8060005b8381101561342c57815161341388826133a5565b975061341e83613e4f565b9250506001810190506133ff565b5085935050505092915050565b61344281614116565b82525050565b61345181614159565b82525050565b6134608161417d565b82525050565b600061347182613e44565b61347b8185613e6d565b935061348b81856020860161418f565b61349481614298565b840191505092915050565b60006134ac601c83613e6d565b91507f42757920616d6f756e742065786365656473206d6178206c696d6974000000006000830152602082019050919050565b60006134ec602583613e6d565b91507f4d79546f6b656e3a207472616e7366657220746f20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613552600f83613e6d565b91507f496e76616c6964206164647265737300000000000000000000000000000000006000830152602082019050919050565b6000613592602483613e6d565b91507f4d79546f6b656e3a20617070726f766520746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135f8602683613e6d565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061365e601b83613e6d565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061369e601c83613e6d565b91507f4e6f2042616c616e636520617661696c61626c6520746f2073776170000000006000830152602082019050919050565b60006136de603b83613e6d565b91507f4d79546f6b656e3a20726563697069656e742077616c6c65742062616c616e6360008301527f65206578636565647320746865206d6178696d756d206c696d697400000000006020830152604082019050919050565b6000613744601d83613e6d565b91507f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006000830152602082019050919050565b6000613784602983613e6d565b91507f496e76616c69642076616c75653a2065786365656473203125206f6620746f7460008301527f616c20737570706c7900000000000000000000000000000000000000000000006020830152604082019050919050565b60006137ea603283613e6d565b91507f4d79546f6b656e3a207472616e7366657220616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b6000613850602083613e6d565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613890602683613e6d565b91507f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138f6602083613e6d565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b6000613936601183613e6d565b91507f7765206e6f74206c61756e6368207965740000000000000000000000000000006000830152602082019050919050565b6000613976601b83613e6d565b91507f4e6f20746f6b656e7320617661696c61626c6520746f207377617000000000006000830152602082019050919050565b60006139b6602783613e6d565b91507f4d79546f6b656e3a207472616e736665722066726f6d20746865207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b613a1881614142565b82525050565b613a278161414c565b82525050565b6000602082019050613a4260008301846133cc565b92915050565b6000602082019050613a5d6000830184613439565b92915050565b6000602082019050613a786000830184613448565b92915050565b60006020820190508181036000830152613a988184613466565b905092915050565b60006020820190508181036000830152613ab98161349f565b9050919050565b60006020820190508181036000830152613ad9816134df565b9050919050565b60006020820190508181036000830152613af981613545565b9050919050565b60006020820190508181036000830152613b1981613585565b9050919050565b60006020820190508181036000830152613b39816135eb565b9050919050565b60006020820190508181036000830152613b5981613651565b9050919050565b60006020820190508181036000830152613b7981613691565b9050919050565b60006020820190508181036000830152613b99816136d1565b9050919050565b60006020820190508181036000830152613bb981613737565b9050919050565b60006020820190508181036000830152613bd981613777565b9050919050565b60006020820190508181036000830152613bf9816137dd565b9050919050565b60006020820190508181036000830152613c1981613843565b9050919050565b60006020820190508181036000830152613c3981613883565b9050919050565b60006020820190508181036000830152613c59816138e9565b9050919050565b60006020820190508181036000830152613c7981613929565b9050919050565b60006020820190508181036000830152613c9981613969565b9050919050565b60006020820190508181036000830152613cb9816139a9565b9050919050565b6000602082019050613cd56000830184613a0f565b92915050565b600060a082019050613cf06000830188613a0f565b613cfd6020830187613457565b8181036040830152613d0f81866133db565b9050613d1e60608301856133cc565b613d2b6080830184613a0f565b9695505050505050565b6000606082019050613d4a6000830186613a0f565b613d576020830185613a0f565b613d646040830184613a0f565b949350505050565b6000608082019050613d816000830187613a0f565b613d8e6020830186613a0f565b613d9b6040830185613a0f565b613da86060830184613a0f565b95945050505050565b6000602082019050613dc66000830184613a1e565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613df357613df2614269565b5b8060405250919050565b600067ffffffffffffffff821115613e1857613e17614269565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e8982614142565b9150613e9483614142565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ec957613ec861420b565b5b828201905092915050565b6000613edf82614142565b9150613eea83614142565b925082613efa57613ef961423a565b5b828204905092915050565b6000808291508390505b6001851115613f4f57808604811115613f2b57613f2a61420b565b5b6001851615613f3a5780820291505b8081029050613f48856142a9565b9450613f0f565b94509492505050565b6000613f6382614142565b9150613f6e8361414c565b9250613f9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613fa3565b905092915050565b600082613fb3576001905061406f565b81613fc1576000905061406f565b8160018114613fd75760028114613fe157614010565b600191505061406f565b60ff841115613ff357613ff261420b565b5b8360020a91508482111561400a5761400961420b565b5b5061406f565b5060208310610133831016604e8410600b84101617156140455782820a9050838111156140405761403f61420b565b5b61406f565b6140528484846001613f05565b925090508184048111156140695761406861420b565b5b81810290505b9392505050565b600061408182614142565b915061408c83614142565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140c5576140c461420b565b5b828202905092915050565b60006140db82614142565b91506140e683614142565b9250828210156140f9576140f861420b565b5b828203905092915050565b600061410f82614122565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006141648261416b565b9050919050565b600061417682614122565b9050919050565b600061418882614142565b9050919050565b60005b838110156141ad578082015181840152602081019050614192565b838111156141bc576000848401525b50505050565b60006141cd82614142565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614200576141ff61420b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b6142bf81614104565b81146142ca57600080fd5b50565b6142d681614116565b81146142e157600080fd5b50565b6142ed81614142565b81146142f857600080fd5b5056fea2646970667358221220be6c15fddfdb8e3a4272d762821892f49b892df914f0320d48370e9b4755bb3764736f6c63430008000033
Deployed Bytecode Sourcemap
4515:11707:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5125:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6764:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8734:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16063:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5305:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7045:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8901:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6954:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15627:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5353:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7282:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14842:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14702:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7155:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2703:94;;;;;;;;;;;;;:::i;:::-;;5617:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6669:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2480:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5548:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15180:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8152:423;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7414:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7866:276;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14378:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15397:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8583:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14970:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2805:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15277:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5583:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15909:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7534:324;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14593:101;;;;;;;;;;;;;:::i;:::-;;5125:63;;;;;;;;;;;;;:::o;6764:83::-;6801:13;6834:5;;;;;;;;;;;;;;;;;6827:12;;6764:83;:::o;8734:159::-;8809:4;8826:37;8835:10;8847:7;8856:6;8826:8;:37::i;:::-;8881:4;8874:11;;8734:159;;;;:::o;16063:154::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16156:10:::1;16138:15;:28;;;;16194:15;;16177:14;:32;;;;16063:154:::0;:::o;5305:41::-;;;;;;;;;;;;;:::o;7045:100::-;7098:7;7125:12;;7118:19;;7045:100;:::o;8901:262::-;8999:4;9016:70;9025:6;9033:10;9079:6;9045:11;:19;9057:6;9045:19;;;;;;;;;;;;;;;:31;9065:10;9045:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;9016:8;:70::i;:::-;9097:36;9107:6;9115:9;9126:6;9097:9;:36::i;:::-;9151:4;9144:11;;8901:262;;;;;:::o;6954:83::-;6995:5;4780:1;7013:16;;6954:83;:::o;15627:274::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4780:1:::1;15768:2;:13;;;;:::i;:::-;15756:9;:25;;;;:::i;:::-;15743:10;:38;;;;4780:1;15823:2;:13;;;;:::i;:::-;15808:12;:28;;;;:::i;:::-;15792:13;:44;;;;4780:1;15880:2;:13;;;;:::i;:::-;15864;:29;;;;:::i;:::-;15847:14;:46;;;;15627:274:::0;;;:::o;5353:28::-;;;;;;;;;;;;;:::o;7282:124::-;7347:4;7371:18;:27;7390:7;7371:27;;;;;;;;;;;;;;;;;;;;;;;;;7364:34;;7282:124;;;:::o;14842:120::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14948:6:::1;14924:12;:21;14937:7;14924:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14842:120:::0;;:::o;14702:132::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14820:6:::1;14790:18;:27;14809:7;14790:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;14702:132:::0;;:::o;7155:119::-;7221:7;7248:9;:18;7258:7;7248:18;;;;;;;;;;;;;;;;7241:25;;7155:119;;;:::o;2703:94::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2768:21:::1;2786:1;2768:9;:21::i;:::-;2703:94::o:0;5617:37::-;;;;;;;;;;;;;:::o;6669:83::-;6710:7;6737;:5;:7::i;:::-;6730:14;;6669:83;:::o;2480:87::-;2526:7;2553:6;;;;;;;;;;;2546:13;;2480:87;:::o;5548:28::-;;;;;;;;;;;;;:::o;6859:87::-;6898:13;6931:7;;;;;;;;;;;;;;;;;6924:14;;6859:87;:::o;15180:89::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15255:6:::1;15243:9;;:18;;;;;;;;;;;;;;;;;;15180:89:::0;:::o;8152:423::-;8230:4;8265:13;;;;;;;;;;;8252:26;;:9;:26;;;;:50;;;;;8295:7;:5;:7::i;:::-;8282:20;;:9;:20;;;;8252:50;:84;;;;;8307:18;:29;8326:9;8307:29;;;;;;;;;;;;;;;;;;;;;;;;;8306:30;8252:84;8249:234;;;8395:10;;8385:6;8362:9;:20;8372:9;8362:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:43;;8354:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;8249:234;8495:40;8505:10;8517:9;8528:6;8495:9;:40::i;:::-;8563:4;8556:11;;8152:423;;;;:::o;7414:112::-;7473:4;7497:12;:21;7510:7;7497:21;;;;;;;;;;;;;;;;;;;;;;;;;7490:28;;7414:112;;;:::o;7866:276::-;7921:19;7951:21;7983;8037:15;;8023:29;;8079:14;;8063:30;;8120:14;;8104:30;;7866:276;;;:::o;14378:206::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14479:1:::1;14457:24;;:10;:24;;;;14449:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14518:10;14512:3;;:16;;;;;;;;;;;;;;;;;;14572:4;14539:18;:30;14558:10;14539:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;14378:206:::0;:::o;15397:222::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15514:3:::1;15509:1;15493:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15492:25;;;;:::i;:::-;15477:11;:40;;15469:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;4780:1;15598:2;:13;;;;:::i;:::-;15584:11;:27;;;;:::i;:::-;15574:7;:37;;;;15397:222:::0;:::o;8583:143::-;8664:7;8691:11;:18;8703:5;8691:18;;;;;;;;;;;;;;;:27;8710:7;8691:27;;;;;;;;;;;;;;;;8684:34;;8583:143;;;;:::o;14970:202::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15065:9:::1;15061:104;15084:8;:15;15080:1;:19;15061:104;;;15148:5;15120:12;:25;15133:8;15142:1;15133:11;;;;;;;;;;;;;;;;;;;;;;15120:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;15101:3;;;;;:::i;:::-;;;;15061:104;;;;14970:202:::0;;:::o;2805:192::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2914:1:::1;2894:22;;:8;:22;;;;2886:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2970:19;2980:8;2970:9;:19::i;:::-;2805:192:::0;:::o;15277:112::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15370:11:::1;15355:12;:26;;;;15277:112:::0;:::o;5583:27::-;;;;;;;;;;;;;:::o;15909:144::-;2626:12;:10;:12::i;:::-;2615:23;;:7;:5;:7::i;:::-;:23;;;2607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15997:10:::1;15983:11;:24;;;;16034:11;;16018:13;:27;;;;15909:144:::0;:::o;7534:324::-;7588:18;7617:20;7648:17;7676:20;7728:11;;7715:24;;7765:13;;7750:28;;7801:10;;7789:22;;7837:13;;7822:28;;7534:324;;;;:::o;14593:101::-;14647:4;14637:7;;:14;;;;;;;;;;;;;;;;;;14682:4;14662:17;;:24;;;;;;;;;;;;;;;;;;14593:101::o;9171:341::-;9281:1;9264:19;;:5;:19;;;;9256:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9364:1;9345:21;;:7;:21;;;;9337:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9450:6;9420:11;:18;9432:5;9420:18;;;;;;;;;;;;;;;:27;9439:7;9420:27;;;;;;;;;;;;;;;:36;;;;9488:7;9472:32;;9481:5;9472:32;;;9497:6;9472:32;;;;;;:::i;:::-;;;;;;;;9171:341;;;:::o;803:98::-;856:7;883:10;876:17;;803:98;:::o;9520:3319::-;9637:1;9619:20;;:6;:20;;;;9611:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9723:1;9702:23;;:9;:23;;;;9694:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9795:1;9786:6;:10;9778:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9866:7;;;;;;;;;;;9862:155;;9883:18;:26;9902:6;9883:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;9913:18;:29;9932:9;9913:29;;;;;;;;;;;;;;;;;;;;;;;;;9883:59;:83;;;;9946:12;:20;9959:6;9946:20;;;;;;;;;;;;;;;;;;;;;;;;;9883:83;:110;;;;9970:12;:23;9983:9;9970:23;;;;;;;;;;;;;;;;;;;;;;;;;9883:110;9875:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9862:155;10031:7;;;;;;;;;;;10030:8;:38;;;;;10055:13;;;;;;;;;;;10042:26;;:9;:26;;;;10030:38;:65;;;;;10082:13;;;;;;;;;;;10072:23;;:6;:23;;;;10030:65;10027:135;;;10106:17;;;;;;;;;;;10098:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10027:135;10174:15;10192:4;10174:22;;10228:13;;;;;;;;;;;10215:26;;:9;:26;;;:47;;;;;10255:7;:5;:7::i;:::-;10245:17;;:6;:17;;;10215:47;10211:230;;;10302:6;10281:9;:17;10291:6;10281:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;10347:6;10323:9;:20;10333:9;10323:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10390:9;10373:35;;10382:6;10373:35;;;10401:6;10373:35;;;;;;:::i;:::-;;;;;;;;10423:7;;;10211:230;10488:13;;;;;;;;;;;10475:26;;:9;:26;;;:57;;;;;10506:18;:26;10525:6;10506:26;;;;;;;;;;;;;;;;;;;;;;;;;10505:27;10475:57;:78;;;;;10546:7;:5;:7::i;:::-;10536:17;;:6;:17;;;;10475:78;10472:362;;;10593:14;;10583:6;:24;;10575:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:4;10662:10;;:17;;;;;;;;;;;;;;;;;;10718:9;;;;;;;;;;;:48;;;;;10759:7;;10731:24;10749:4;10731:9;:24::i;:::-;:35;;10718:48;10715:106;;;10792:9;:7;:9::i;:::-;10715:106;10472:362;10874:13;;;;;;;;;;;10864:23;;:6;:23;;;:57;;;;;10892:18;:29;10911:9;10892:29;;;;;;;;;;;;;;;;;;;;;;;;;10891:30;10864:57;:81;;;;;10938:7;:5;:7::i;:::-;10925:20;;:9;:20;;;;10864:81;10861:212;;;11001:13;;10991:6;:23;;10983:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10861:212;11089:18;:26;11108:6;11089:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;11119:18;:29;11138:9;11119:29;;;;;;;;;;;;;;;;;;;;;;;;;11089:59;11085:88;;;11165:5;11152:18;;11085:88;11200:13;;;;;;;;;;;11187:26;;:9;:26;;;;:53;;;;;11227:13;;;;;;;;;;;11217:23;;:6;:23;;;;11187:53;11183:82;;;11257:5;11244:18;;11183:82;11281:10;11277:1555;;;11318:10;;;;;;;;;;;11314:1270;;11354:22;11404:3;11388:13;;11379:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;11354:53;;11430:22;11464:14;11455:6;:23;;;;:::i;:::-;11430:48;;11571:44;11600:14;11571:9;:24;11589:4;11571:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;11544:9;:24;11562:4;11544:24;;;;;;;;;;;;;;;:71;;;;11658:29;11680:6;11658:9;:17;11668:6;11658:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11638:9;:17;11648:6;11638:17;;;;;;;;;;;;;;;:49;;;;11733:40;11758:14;11733:9;:20;11743:9;11733:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11710:9;:20;11720:9;11710:20;;;;;;;;;;;;;;;:63;;;;11820:9;11803:43;;11812:6;11803:43;;;11831:14;11803:43;;;;;;:::i;:::-;;;;;;;;11899:4;11874:47;;11883:6;11874:47;;;11906:14;11874:47;;;;;;:::i;:::-;;;;;;;;11314:1270;;;;;11972:22;12023:3;12006:14;;11997:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11972:54;;12049:22;12083:14;12074:6;:23;;;;:::i;:::-;12049:48;;12171:44;12200:14;12171:9;:24;12189:4;12171:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12144:9;:24;12162:4;12144:24;;;;;;;;;;;;;;;:71;;;;12258:29;12280:6;12258:9;:17;12268:6;12258:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12238:9;:17;12248:6;12238:17;;;;;;;;;;;;;;;:49;;;;12333:40;12358:14;12333:9;:20;12343:9;12333:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12310:9;:20;12320:9;12310:20;;;;;;;;;;;;;;;:63;;;;12420:9;12403:43;;12412:6;12403:43;;;12431:14;12403:43;;;;;;:::i;:::-;;;;;;;;12499:4;12474:47;;12483:6;12474:47;;;12506:14;12474:47;;;;;;:::i;:::-;;;;;;;;12559:5;12546:10;;:18;;;;;;;;;;;;;;;;;;11314:1270;;;11277:1555;;;12654:29;12676:6;12654:9;:17;12664:6;12654:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12634:9;:17;12644:6;12634:17;;;;;;;;;;;;;;;:49;;;;12725:32;12750:6;12725:9;:20;12735:9;12725:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12702:9;:20;12712:9;12702:20;;;;;;;;;;;;;;;:55;;;;12800:9;12783:35;;12792:6;12783:35;;;12811:6;12783:35;;;;;;:::i;:::-;;;;;;;;11277:1555;9520:3319;;;;;:::o;3005:173::-;3061:16;3080:6;;;;;;;;;;;3061:25;;3106:8;3097:6;;:17;;;;;;;;;;;;;;;;;;3161:8;3130:40;;3151:8;3130:40;;;;;;;;;;;;3005:173;;:::o;13498:836::-;13538:28;13569:24;13587:4;13569:9;:24::i;:::-;13538:55;;13632:1;13609:20;:24;13606:707;;;13655:10;;;;;;;;;;;13652:560;;;13713:1;13690:20;:24;13687:508;;;13760:17;13822:3;13807:12;;13780:24;13798:4;13780:9;:24::i;:::-;:39;;;;:::i;:::-;:45;;;;:::i;:::-;13760:65;;13850:14;13867:9;13850:26;;13901:24;13918:6;13901:16;:24::i;:::-;13950:23;13976:21;13950:47;;14044:1;14026:15;:19;14022:66;;;14056:3;;;;;;;;;;;14048:21;;:38;14070:15;14048:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14022:66;13687:508;;;;;;14138:37;;;;;;;;;;:::i;:::-;;;;;;;;13687:508;13652:560;13606:707;;;14245:38;;;;;;;;;;:::i;:::-;;;;;;;;13606:707;13498:836;:::o;1057:179::-;1115:7;1135:9;1151:1;1147;:5;;;;:::i;:::-;1135:17;;1176:1;1171;:6;;1163:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1227:1;1220:8;;;1057:179;;;;:::o;1245:136::-;1303:7;1330:43;1334:1;1337;1330:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1323:50;;1245:136;;;;:::o;12849:639::-;12953:21;12991:1;12977:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12953:40;;13022:4;13004;13009:1;13004:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13048:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13038:4;13043:1;13038:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;13155:62;13172:4;13187:15;;;;;;;;;;;13205:11;13155:8;:62::i;:::-;13256:15;;;;;;;;;;;:66;;;13337:11;13363:1;13407:4;13434;13454:15;13256:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12849:639;;:::o;1390:224::-;1510:7;1543:1;1538;:6;;1546:12;1530:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1570:9;1586:1;1582;:5;;;;:::i;:::-;1570:17;;1605:1;1598:8;;;1390:224;;;;;:::o;24:622:1:-;;145:80;160:64;217:6;160:64;:::i;:::-;145:80;:::i;:::-;136:89;;245:5;273:6;266:5;259:21;299:4;292:5;288:16;281:23;;324:6;374:3;366:4;358:6;354:17;349:3;345:27;342:36;339:2;;;391:1;388;381:12;339:2;419:1;404:236;429:6;426:1;423:13;404:236;;;496:3;524:37;557:3;545:10;524:37;:::i;:::-;519:3;512:50;591:4;586:3;582:14;575:21;;625:4;620:3;616:14;609:21;;464:176;451:1;448;444:9;439:14;;404:236;;;408:14;126:520;;;;;;;:::o;652:139::-;;736:6;723:20;714:29;;752:33;779:5;752:33;:::i;:::-;704:87;;;;:::o;797:143::-;;885:6;879:13;870:22;;901:33;928:5;901:33;:::i;:::-;860:80;;;;:::o;963:303::-;;1083:3;1076:4;1068:6;1064:17;1060:27;1050:2;;1101:1;1098;1091:12;1050:2;1141:6;1128:20;1166:94;1256:3;1248:6;1241:4;1233:6;1229:17;1166:94;:::i;:::-;1157:103;;1040:226;;;;;:::o;1272:133::-;;1353:6;1340:20;1331:29;;1369:30;1393:5;1369:30;:::i;:::-;1321:84;;;;:::o;1411:139::-;;1495:6;1482:20;1473:29;;1511:33;1538:5;1511:33;:::i;:::-;1463:87;;;;:::o;1556:262::-;;1664:2;1652:9;1643:7;1639:23;1635:32;1632:2;;;1680:1;1677;1670:12;1632:2;1723:1;1748:53;1793:7;1784:6;1773:9;1769:22;1748:53;:::i;:::-;1738:63;;1694:117;1622:196;;;;:::o;1824:284::-;;1943:2;1931:9;1922:7;1918:23;1914:32;1911:2;;;1959:1;1956;1949:12;1911:2;2002:1;2027:64;2083:7;2074:6;2063:9;2059:22;2027:64;:::i;:::-;2017:74;;1973:128;1901:207;;;;:::o;2114:407::-;;;2239:2;2227:9;2218:7;2214:23;2210:32;2207:2;;;2255:1;2252;2245:12;2207:2;2298:1;2323:53;2368:7;2359:6;2348:9;2344:22;2323:53;:::i;:::-;2313:63;;2269:117;2425:2;2451:53;2496:7;2487:6;2476:9;2472:22;2451:53;:::i;:::-;2441:63;;2396:118;2197:324;;;;;:::o;2527:552::-;;;;2669:2;2657:9;2648:7;2644:23;2640:32;2637:2;;;2685:1;2682;2675:12;2637:2;2728:1;2753:53;2798:7;2789:6;2778:9;2774:22;2753:53;:::i;:::-;2743:63;;2699:117;2855:2;2881:53;2926:7;2917:6;2906:9;2902:22;2881:53;:::i;:::-;2871:63;;2826:118;2983:2;3009:53;3054:7;3045:6;3034:9;3030:22;3009:53;:::i;:::-;2999:63;;2954:118;2627:452;;;;;:::o;3085:401::-;;;3207:2;3195:9;3186:7;3182:23;3178:32;3175:2;;;3223:1;3220;3213:12;3175:2;3266:1;3291:53;3336:7;3327:6;3316:9;3312:22;3291:53;:::i;:::-;3281:63;;3237:117;3393:2;3419:50;3461:7;3452:6;3441:9;3437:22;3419:50;:::i;:::-;3409:60;;3364:115;3165:321;;;;;:::o;3492:407::-;;;3617:2;3605:9;3596:7;3592:23;3588:32;3585:2;;;3633:1;3630;3623:12;3585:2;3676:1;3701:53;3746:7;3737:6;3726:9;3722:22;3701:53;:::i;:::-;3691:63;;3647:117;3803:2;3829:53;3874:7;3865:6;3854:9;3850:22;3829:53;:::i;:::-;3819:63;;3774:118;3575:324;;;;;:::o;3905:544::-;;;4052:2;4040:9;4031:7;4027:23;4023:32;4020:2;;;4068:1;4065;4058:12;4020:2;4139:1;4128:9;4124:17;4111:31;4169:18;4161:6;4158:30;4155:2;;;4201:1;4198;4191:12;4155:2;4229:78;4299:7;4290:6;4279:9;4275:22;4229:78;:::i;:::-;4219:88;;4082:235;4356:2;4382:50;4424:7;4415:6;4404:9;4400:22;4382:50;:::i;:::-;4372:60;;4327:115;4010:439;;;;;:::o;4455:256::-;;4560:2;4548:9;4539:7;4535:23;4531:32;4528:2;;;4576:1;4573;4566:12;4528:2;4619:1;4644:50;4686:7;4677:6;4666:9;4662:22;4644:50;:::i;:::-;4634:60;;4590:114;4518:193;;;;:::o;4717:262::-;;4825:2;4813:9;4804:7;4800:23;4796:32;4793:2;;;4841:1;4838;4831:12;4793:2;4884:1;4909:53;4954:7;4945:6;4934:9;4930:22;4909:53;:::i;:::-;4899:63;;4855:117;4783:196;;;;:::o;4985:552::-;;;;5127:2;5115:9;5106:7;5102:23;5098:32;5095:2;;;5143:1;5140;5133:12;5095:2;5186:1;5211:53;5256:7;5247:6;5236:9;5232:22;5211:53;:::i;:::-;5201:63;;5157:117;5313:2;5339:53;5384:7;5375:6;5364:9;5360:22;5339:53;:::i;:::-;5329:63;;5284:118;5441:2;5467:53;5512:7;5503:6;5492:9;5488:22;5467:53;:::i;:::-;5457:63;;5412:118;5085:452;;;;;:::o;5543:179::-;;5633:46;5675:3;5667:6;5633:46;:::i;:::-;5711:4;5706:3;5702:14;5688:28;;5623:99;;;;:::o;5728:108::-;5805:24;5823:5;5805:24;:::i;:::-;5800:3;5793:37;5783:53;;:::o;5842:118::-;5929:24;5947:5;5929:24;:::i;:::-;5924:3;5917:37;5907:53;;:::o;5996:732::-;;6144:54;6192:5;6144:54;:::i;:::-;6214:86;6293:6;6288:3;6214:86;:::i;:::-;6207:93;;6324:56;6374:5;6324:56;:::i;:::-;6403:7;6434:1;6419:284;6444:6;6441:1;6438:13;6419:284;;;6520:6;6514:13;6547:63;6606:3;6591:13;6547:63;:::i;:::-;6540:70;;6633:60;6686:6;6633:60;:::i;:::-;6623:70;;6479:224;6466:1;6463;6459:9;6454:14;;6419:284;;;6423:14;6719:3;6712:10;;6120:608;;;;;;;:::o;6734:109::-;6815:21;6830:5;6815:21;:::i;:::-;6810:3;6803:34;6793:50;;:::o;6849:183::-;6962:63;7019:5;6962:63;:::i;:::-;6957:3;6950:76;6940:92;;:::o;7038:147::-;7133:45;7172:5;7133:45;:::i;:::-;7128:3;7121:58;7111:74;;:::o;7191:364::-;;7307:39;7340:5;7307:39;:::i;:::-;7362:71;7426:6;7421:3;7362:71;:::i;:::-;7355:78;;7442:52;7487:6;7482:3;7475:4;7468:5;7464:16;7442:52;:::i;:::-;7519:29;7541:6;7519:29;:::i;:::-;7514:3;7510:39;7503:46;;7283:272;;;;;:::o;7561:326::-;;7724:67;7788:2;7783:3;7724:67;:::i;:::-;7717:74;;7821:30;7817:1;7812:3;7808:11;7801:51;7878:2;7873:3;7869:12;7862:19;;7707:180;;;:::o;7893:369::-;;8056:67;8120:2;8115:3;8056:67;:::i;:::-;8049:74;;8153:34;8149:1;8144:3;8140:11;8133:55;8219:7;8214:2;8209:3;8205:12;8198:29;8253:2;8248:3;8244:12;8237:19;;8039:223;;;:::o;8268:313::-;;8431:67;8495:2;8490:3;8431:67;:::i;:::-;8424:74;;8528:17;8524:1;8519:3;8515:11;8508:38;8572:2;8567:3;8563:12;8556:19;;8414:167;;;:::o;8587:368::-;;8750:67;8814:2;8809:3;8750:67;:::i;:::-;8743:74;;8847:34;8843:1;8838:3;8834:11;8827:55;8913:6;8908:2;8903:3;8899:12;8892:28;8946:2;8941:3;8937:12;8930:19;;8733:222;;;:::o;8961:370::-;;9124:67;9188:2;9183:3;9124:67;:::i;:::-;9117:74;;9221:34;9217:1;9212:3;9208:11;9201:55;9287:8;9282:2;9277:3;9273:12;9266:30;9322:2;9317:3;9313:12;9306:19;;9107:224;;;:::o;9337:325::-;;9500:67;9564:2;9559:3;9500:67;:::i;:::-;9493:74;;9597:29;9593:1;9588:3;9584:11;9577:50;9653:2;9648:3;9644:12;9637:19;;9483:179;;;:::o;9668:326::-;;9831:67;9895:2;9890:3;9831:67;:::i;:::-;9824:74;;9928:30;9924:1;9919:3;9915:11;9908:51;9985:2;9980:3;9976:12;9969:19;;9814:180;;;:::o;10000:391::-;;10163:67;10227:2;10222:3;10163:67;:::i;:::-;10156:74;;10260:34;10256:1;10251:3;10247:11;10240:55;10326:29;10321:2;10316:3;10312:12;10305:51;10382:2;10377:3;10373:12;10366:19;;10146:245;;;:::o;10397:327::-;;10560:67;10624:2;10619:3;10560:67;:::i;:::-;10553:74;;10657:31;10653:1;10648:3;10644:11;10637:52;10715:2;10710:3;10706:12;10699:19;;10543:181;;;:::o;10730:373::-;;10893:67;10957:2;10952:3;10893:67;:::i;:::-;10886:74;;10990:34;10986:1;10981:3;10977:11;10970:55;11056:11;11051:2;11046:3;11042:12;11035:33;11094:2;11089:3;11085:12;11078:19;;10876:227;;;:::o;11109:382::-;;11272:67;11336:2;11331:3;11272:67;:::i;:::-;11265:74;;11369:34;11365:1;11360:3;11356:11;11349:55;11435:20;11430:2;11425:3;11421:12;11414:42;11482:2;11477:3;11473:12;11466:19;;11255:236;;;:::o;11497:330::-;;11660:67;11724:2;11719:3;11660:67;:::i;:::-;11653:74;;11757:34;11753:1;11748:3;11744:11;11737:55;11818:2;11813:3;11809:12;11802:19;;11643:184;;;:::o;11833:370::-;;11996:67;12060:2;12055:3;11996:67;:::i;:::-;11989:74;;12093:34;12089:1;12084:3;12080:11;12073:55;12159:8;12154:2;12149:3;12145:12;12138:30;12194:2;12189:3;12185:12;12178:19;;11979:224;;;:::o;12209:330::-;;12372:67;12436:2;12431:3;12372:67;:::i;:::-;12365:74;;12469:34;12465:1;12460:3;12456:11;12449:55;12530:2;12525:3;12521:12;12514:19;;12355:184;;;:::o;12545:315::-;;12708:67;12772:2;12767:3;12708:67;:::i;:::-;12701:74;;12805:19;12801:1;12796:3;12792:11;12785:40;12851:2;12846:3;12842:12;12835:19;;12691:169;;;:::o;12866:325::-;;13029:67;13093:2;13088:3;13029:67;:::i;:::-;13022:74;;13126:29;13122:1;13117:3;13113:11;13106:50;13182:2;13177:3;13173:12;13166:19;;13012:179;;;:::o;13197:371::-;;13360:67;13424:2;13419:3;13360:67;:::i;:::-;13353:74;;13457:34;13453:1;13448:3;13444:11;13437:55;13523:9;13518:2;13513:3;13509:12;13502:31;13559:2;13554:3;13550:12;13543:19;;13343:225;;;:::o;13574:118::-;13661:24;13679:5;13661:24;:::i;:::-;13656:3;13649:37;13639:53;;:::o;13698:112::-;13781:22;13797:5;13781:22;:::i;:::-;13776:3;13769:35;13759:51;;:::o;13816:222::-;;13947:2;13936:9;13932:18;13924:26;;13960:71;14028:1;14017:9;14013:17;14004:6;13960:71;:::i;:::-;13914:124;;;;:::o;14044:210::-;;14169:2;14158:9;14154:18;14146:26;;14182:65;14244:1;14233:9;14229:17;14220:6;14182:65;:::i;:::-;14136:118;;;;:::o;14260:274::-;;14417:2;14406:9;14402:18;14394:26;;14430:97;14524:1;14513:9;14509:17;14500:6;14430:97;:::i;:::-;14384:150;;;;:::o;14540:313::-;;14691:2;14680:9;14676:18;14668:26;;14740:9;14734:4;14730:20;14726:1;14715:9;14711:17;14704:47;14768:78;14841:4;14832:6;14768:78;:::i;:::-;14760:86;;14658:195;;;;:::o;14859:419::-;;15063:2;15052:9;15048:18;15040:26;;15112:9;15106:4;15102:20;15098:1;15087:9;15083:17;15076:47;15140:131;15266:4;15140:131;:::i;:::-;15132:139;;15030:248;;;:::o;15284:419::-;;15488:2;15477:9;15473:18;15465:26;;15537:9;15531:4;15527:20;15523:1;15512:9;15508:17;15501:47;15565:131;15691:4;15565:131;:::i;:::-;15557:139;;15455:248;;;:::o;15709:419::-;;15913:2;15902:9;15898:18;15890:26;;15962:9;15956:4;15952:20;15948:1;15937:9;15933:17;15926:47;15990:131;16116:4;15990:131;:::i;:::-;15982:139;;15880:248;;;:::o;16134:419::-;;16338:2;16327:9;16323:18;16315:26;;16387:9;16381:4;16377:20;16373:1;16362:9;16358:17;16351:47;16415:131;16541:4;16415:131;:::i;:::-;16407:139;;16305:248;;;:::o;16559:419::-;;16763:2;16752:9;16748:18;16740:26;;16812:9;16806:4;16802:20;16798:1;16787:9;16783:17;16776:47;16840:131;16966:4;16840:131;:::i;:::-;16832:139;;16730:248;;;:::o;16984:419::-;;17188:2;17177:9;17173:18;17165:26;;17237:9;17231:4;17227:20;17223:1;17212:9;17208:17;17201:47;17265:131;17391:4;17265:131;:::i;:::-;17257:139;;17155:248;;;:::o;17409:419::-;;17613:2;17602:9;17598:18;17590:26;;17662:9;17656:4;17652:20;17648:1;17637:9;17633:17;17626:47;17690:131;17816:4;17690:131;:::i;:::-;17682:139;;17580:248;;;:::o;17834:419::-;;18038:2;18027:9;18023:18;18015:26;;18087:9;18081:4;18077:20;18073:1;18062:9;18058:17;18051:47;18115:131;18241:4;18115:131;:::i;:::-;18107:139;;18005:248;;;:::o;18259:419::-;;18463:2;18452:9;18448:18;18440:26;;18512:9;18506:4;18502:20;18498:1;18487:9;18483:17;18476:47;18540:131;18666:4;18540:131;:::i;:::-;18532:139;;18430:248;;;:::o;18684:419::-;;18888:2;18877:9;18873:18;18865:26;;18937:9;18931:4;18927:20;18923:1;18912:9;18908:17;18901:47;18965:131;19091:4;18965:131;:::i;:::-;18957:139;;18855:248;;;:::o;19109:419::-;;19313:2;19302:9;19298:18;19290:26;;19362:9;19356:4;19352:20;19348:1;19337:9;19333:17;19326:47;19390:131;19516:4;19390:131;:::i;:::-;19382:139;;19280:248;;;:::o;19534:419::-;;19738:2;19727:9;19723:18;19715:26;;19787:9;19781:4;19777:20;19773:1;19762:9;19758:17;19751:47;19815:131;19941:4;19815:131;:::i;:::-;19807:139;;19705:248;;;:::o;19959:419::-;;20163:2;20152:9;20148:18;20140:26;;20212:9;20206:4;20202:20;20198:1;20187:9;20183:17;20176:47;20240:131;20366:4;20240:131;:::i;:::-;20232:139;;20130:248;;;:::o;20384:419::-;;20588:2;20577:9;20573:18;20565:26;;20637:9;20631:4;20627:20;20623:1;20612:9;20608:17;20601:47;20665:131;20791:4;20665:131;:::i;:::-;20657:139;;20555:248;;;:::o;20809:419::-;;21013:2;21002:9;20998:18;20990:26;;21062:9;21056:4;21052:20;21048:1;21037:9;21033:17;21026:47;21090:131;21216:4;21090:131;:::i;:::-;21082:139;;20980:248;;;:::o;21234:419::-;;21438:2;21427:9;21423:18;21415:26;;21487:9;21481:4;21477:20;21473:1;21462:9;21458:17;21451:47;21515:131;21641:4;21515:131;:::i;:::-;21507:139;;21405:248;;;:::o;21659:419::-;;21863:2;21852:9;21848:18;21840:26;;21912:9;21906:4;21902:20;21898:1;21887:9;21883:17;21876:47;21940:131;22066:4;21940:131;:::i;:::-;21932:139;;21830:248;;;:::o;22084:222::-;;22215:2;22204:9;22200:18;22192:26;;22228:71;22296:1;22285:9;22281:17;22272:6;22228:71;:::i;:::-;22182:124;;;;:::o;22312:831::-;;22613:3;22602:9;22598:19;22590:27;;22627:71;22695:1;22684:9;22680:17;22671:6;22627:71;:::i;:::-;22708:80;22784:2;22773:9;22769:18;22760:6;22708:80;:::i;:::-;22835:9;22829:4;22825:20;22820:2;22809:9;22805:18;22798:48;22863:108;22966:4;22957:6;22863:108;:::i;:::-;22855:116;;22981:72;23049:2;23038:9;23034:18;23025:6;22981:72;:::i;:::-;23063:73;23131:3;23120:9;23116:19;23107:6;23063:73;:::i;:::-;22580:563;;;;;;;;:::o;23149:442::-;;23336:2;23325:9;23321:18;23313:26;;23349:71;23417:1;23406:9;23402:17;23393:6;23349:71;:::i;:::-;23430:72;23498:2;23487:9;23483:18;23474:6;23430:72;:::i;:::-;23512;23580:2;23569:9;23565:18;23556:6;23512:72;:::i;:::-;23303:288;;;;;;:::o;23597:553::-;;23812:3;23801:9;23797:19;23789:27;;23826:71;23894:1;23883:9;23879:17;23870:6;23826:71;:::i;:::-;23907:72;23975:2;23964:9;23960:18;23951:6;23907:72;:::i;:::-;23989;24057:2;24046:9;24042:18;24033:6;23989:72;:::i;:::-;24071;24139:2;24128:9;24124:18;24115:6;24071:72;:::i;:::-;23779:371;;;;;;;:::o;24156:214::-;;24283:2;24272:9;24268:18;24260:26;;24296:67;24360:1;24349:9;24345:17;24336:6;24296:67;:::i;:::-;24250:120;;;;:::o;24376:283::-;;24442:2;24436:9;24426:19;;24484:4;24476:6;24472:17;24591:6;24579:10;24576:22;24555:18;24543:10;24540:34;24537:62;24534:2;;;24602:18;;:::i;:::-;24534:2;24642:10;24638:2;24631:22;24416:243;;;;:::o;24665:311::-;;24832:18;24824:6;24821:30;24818:2;;;24854:18;;:::i;:::-;24818:2;24904:4;24896:6;24892:17;24884:25;;24964:4;24958;24954:15;24946:23;;24747:229;;;:::o;24982:132::-;;25072:3;25064:11;;25102:4;25097:3;25093:14;25085:22;;25054:60;;;:::o;25120:114::-;;25221:5;25215:12;25205:22;;25194:40;;;:::o;25240:99::-;;25326:5;25320:12;25310:22;;25299:40;;;:::o;25345:113::-;;25447:4;25442:3;25438:14;25430:22;;25420:38;;;:::o;25464:184::-;;25597:6;25592:3;25585:19;25637:4;25632:3;25628:14;25613:29;;25575:73;;;;:::o;25654:169::-;;25772:6;25767:3;25760:19;25812:4;25807:3;25803:14;25788:29;;25750:73;;;;:::o;25829:305::-;;25888:20;25906:1;25888:20;:::i;:::-;25883:25;;25922:20;25940:1;25922:20;:::i;:::-;25917:25;;26076:1;26008:66;26004:74;26001:1;25998:81;25995:2;;;26082:18;;:::i;:::-;25995:2;26126:1;26123;26119:9;26112:16;;25873:261;;;;:::o;26140:185::-;;26197:20;26215:1;26197:20;:::i;:::-;26192:25;;26231:20;26249:1;26231:20;:::i;:::-;26226:25;;26270:1;26260:2;;26275:18;;:::i;:::-;26260:2;26317:1;26314;26310:9;26305:14;;26182:143;;;;:::o;26331:848::-;;;26423:6;26414:15;;26447:5;26438:14;;26461:712;26482:1;26472:8;26469:15;26461:712;;;26577:4;26572:3;26568:14;26562:4;26559:24;26556:2;;;26586:18;;:::i;:::-;26556:2;26636:1;26626:8;26622:16;26619:2;;;27051:4;27044:5;27040:16;27031:25;;26619:2;27101:4;27095;27091:15;27083:23;;27131:32;27154:8;27131:32;:::i;:::-;27119:44;;26461:712;;;26404:775;;;;;;;:::o;27185:281::-;;27267:23;27285:4;27267:23;:::i;:::-;27259:31;;27311:25;27327:8;27311:25;:::i;:::-;27299:37;;27355:104;27392:66;27382:8;27376:4;27355:104;:::i;:::-;27346:113;;27249:217;;;;:::o;27472:1073::-;;27717:8;27707:2;;27738:1;27729:10;;27740:5;;27707:2;27766:4;27756:2;;27783:1;27774:10;;27785:5;;27756:2;27852:4;27900:1;27895:27;;;;27936:1;27931:191;;;;27845:277;;27895:27;27913:1;27904:10;;27915:5;;;27931:191;27976:3;27966:8;27963:17;27960:2;;;27983:18;;:::i;:::-;27960:2;28032:8;28029:1;28025:16;28016:25;;28067:3;28060:5;28057:14;28054:2;;;28074:18;;:::i;:::-;28054:2;28107:5;;;27845:277;;28231:2;28221:8;28218:16;28212:3;28206:4;28203:13;28199:36;28181:2;28171:8;28168:16;28163:2;28157:4;28154:12;28150:35;28134:111;28131:2;;;28287:8;28281:4;28277:19;28268:28;;28322:3;28315:5;28312:14;28309:2;;;28329:18;;:::i;:::-;28309:2;28362:5;;28131:2;28402:42;28440:3;28430:8;28424:4;28421:1;28402:42;:::i;:::-;28387:57;;;;28476:4;28471:3;28467:14;28460:5;28457:25;28454:2;;;28485:18;;:::i;:::-;28454:2;28534:4;28527:5;28523:16;28514:25;;27532:1013;;;;;;:::o;28551:348::-;;28614:20;28632:1;28614:20;:::i;:::-;28609:25;;28648:20;28666:1;28648:20;:::i;:::-;28643:25;;28836:1;28768:66;28764:74;28761:1;28758:81;28753:1;28746:9;28739:17;28735:105;28732:2;;;28843:18;;:::i;:::-;28732:2;28891:1;28888;28884:9;28873:20;;28599:300;;;;:::o;28905:191::-;;28965:20;28983:1;28965:20;:::i;:::-;28960:25;;28999:20;29017:1;28999:20;:::i;:::-;28994:25;;29038:1;29035;29032:8;29029:2;;;29043:18;;:::i;:::-;29029:2;29088:1;29085;29081:9;29073:17;;28950:146;;;;:::o;29102:96::-;;29168:24;29186:5;29168:24;:::i;:::-;29157:35;;29147:51;;;:::o;29204:90::-;;29281:5;29274:13;29267:21;29256:32;;29246:48;;;:::o;29300:126::-;;29377:42;29370:5;29366:54;29355:65;;29345:81;;;:::o;29432:77::-;;29498:5;29487:16;;29477:32;;;:::o;29515:86::-;;29590:4;29583:5;29579:16;29568:27;;29558:43;;;:::o;29607:178::-;;29716:63;29773:5;29716:63;:::i;:::-;29703:76;;29693:92;;;:::o;29791:139::-;;29900:24;29918:5;29900:24;:::i;:::-;29887:37;;29877:53;;;:::o;29936:121::-;;30027:24;30045:5;30027:24;:::i;:::-;30014:37;;30004:53;;;:::o;30063:307::-;30131:1;30141:113;30155:6;30152:1;30149:13;30141:113;;;30240:1;30235:3;30231:11;30225:18;30221:1;30216:3;30212:11;30205:39;30177:2;30174:1;30170:10;30165:15;;30141:113;;;30272:6;30269:1;30266:13;30263:2;;;30352:1;30343:6;30338:3;30334:16;30327:27;30263:2;30112:258;;;;:::o;30376:233::-;;30438:24;30456:5;30438:24;:::i;:::-;30429:33;;30484:66;30477:5;30474:77;30471:2;;;30554:18;;:::i;:::-;30471:2;30601:1;30594:5;30590:13;30583:20;;30419:190;;;:::o;30615:180::-;30663:77;30660:1;30653:88;30760:4;30757:1;30750:15;30784:4;30781:1;30774:15;30801:180;30849:77;30846:1;30839:88;30946:4;30943:1;30936:15;30970:4;30967:1;30960:15;30987:180;31035:77;31032:1;31025:88;31132:4;31129:1;31122:15;31156:4;31153:1;31146:15;31173:102;;31265:2;31261:7;31256:2;31249:5;31245:14;31241:28;31231:38;;31221:54;;;:::o;31281:102::-;;31370:5;31367:1;31363:13;31342:34;;31332:51;;;:::o;31389:122::-;31462:24;31480:5;31462:24;:::i;:::-;31455:5;31452:35;31442:2;;31501:1;31498;31491:12;31442:2;31432:79;:::o;31517:116::-;31587:21;31602:5;31587:21;:::i;:::-;31580:5;31577:32;31567:2;;31623:1;31620;31613:12;31567:2;31557:76;:::o;31639:122::-;31712:24;31730:5;31712:24;:::i;:::-;31705:5;31702:35;31692:2;;31751:1;31748;31741:12;31692:2;31682:79;:::o
Swarm Source
ipfs://be6c15fddfdb8e3a4272d762821892f49b892df914f0320d48370e9b4755bb37
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.