ERC-20
Overview
Max Total Supply
1,000,000 GACHAI
Holders
39
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.323725926 GACHAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
GachAi
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-29 */ //Twitter: https://twitter.com/gachaiclub //Website: https://gachai.club/ //TG: https://t.me/gachiaiportal // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract GachAi is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "GachAi"; string private constant _symbol = "GACHAI"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 25; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 25; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _devAddress = payable(0x4F463c78Bfed435e1153E13aebB445998E279CBd); address payable private _op1 = payable(0x9c4d5DA4a8F220311c23DA884D8c7BFcc6c5f711); address payable private _op2 = payable(0x609e47D6A3B272aD51C48a8c8B7f7AD329Fa857B); address payable private _op3 = payable(0xA60716BB021D326E31D5fC8c630a263e609DC0b3); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 10000 * 10**9; uint256 public _maxWalletSize = 20000 * 10**9; uint256 public _swapTokensAtAmount = 10000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_devAddress] = true; _isExcludedFromFee[_op1] = true; _isExcludedFromFee[_op2] = true; _isExcludedFromFee[_op3] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _swapTokensAtAmount) { contractTokenBalance = _swapTokensAtAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _devAddress.transfer(amount.mul(2).div(10)); _op1.transfer(amount.mul(4).div(10)); _op2.transfer(amount.mul(2).div(10)); _op3.transfer(amount.mul(2).div(10)); } function StickFingerInTheASS() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _devAddress || _msgSender() == _op1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _devAddress || _msgSender() == _op1); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 20, "Buy tax must be between 0% and 20%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 20, "Sell tax must be between 0% and 20%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function removeLimits() public onlyOwner { _maxWalletSize = 1000000 * 10**9; _maxTxAmount = 1000000 * 10**9; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) external { require(_msgSender() == _devAddress || _msgSender() == _op1); _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function excludeFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"StickFingerInTheASS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405266038d7ea4c680006000196200001b9190620008d9565b6000196200002a919062000940565b600655600060085560196009556000600a556019600b55600a54600c55600b54600d55600c54600e55600d54600f55734f463c78bfed435e1153e13aebb445998e279cbd601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739c4d5da4a8f220311c23da884d8c7bfcc6c5f711601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073609e47d6a3b272ad51c48a8c8b7f7ad329fa857b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a60716bb021d326e31d5fc8c630a263e609dc0b3601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506509184e72a0006018556512309ce540006019556509184e72a000601a553480156200020e57600080fd5b506000620002216200086f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002d66200086f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b557600080fd5b505afa158015620003ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f09190620009e5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045357600080fd5b505afa15801562000468573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048e9190620009e5565b6040518363ffffffff1660e01b8152600401620004ad92919062000a28565b602060405180830381600087803b158015620004c857600080fd5b505af1158015620004dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005039190620009e5565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005596200087760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007fa6200086f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c6800060405162000860919062000a66565b60405180910390a35062000a83565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008e682620008a0565b9150620008f383620008a0565b925082620009065762000905620008aa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200094d82620008a0565b91506200095a83620008a0565b92508282101562000970576200096f62000911565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009ad8262000980565b9050919050565b620009bf81620009a0565b8114620009cb57600080fd5b50565b600081519050620009df81620009b4565b92915050565b600060208284031215620009fe57620009fd6200097b565b5b600062000a0e84828501620009ce565b91505092915050565b62000a2281620009a0565b82525050565b600060408201905062000a3f600083018562000a17565b62000a4e602083018462000a17565b9392505050565b62000a6081620008a0565b82525050565b600060208201905062000a7d600083018462000a55565b92915050565b6142878062000a936000396000f3fe6080604052600436106101c55760003560e01c8063715018a6116100f757806398a5c31511610095578063bfd7928411610064578063bfd7928414610602578063c3c8cd801461063f578063dd62ed3e14610656578063f2fde38b14610693576101cc565b806398a5c3151461055c578063a9059cbb14610585578063ad29ffde146105c2578063bc849d7d146105eb576101cc565b80637f2feddc116100d15780637f2feddc1461049e5780638da5cb5b146104db5780638f9a55c01461050657806395d89b4114610531576101cc565b8063715018a614610445578063751039fc1461045c5780637d1db4a514610473576101cc565b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461039f5780636fc3eaec146103c85780636fcba377146103df57806370a0823114610408576101cc565b8063313ce5671461032057806349bd5a5e1461034b5780636b99905314610376576101cc565b80631694505e116101a05780631694505e1461026257806318160ddd1461028d57806323b872dd146102b85780632fd689e3146102f5576101cc565b8062b8cf2a146101d157806306fdde03146101fa578063095ea7b314610225576101cc565b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f860048036038101906101f39190612fcb565b6106bc565b005b34801561020657600080fd5b5061020f6107e6565b60405161021c919061309c565b60405180910390f35b34801561023157600080fd5b5061024c600480360381019061024791906130f4565b610823565b604051610259919061314f565b60405180910390f35b34801561026e57600080fd5b50610277610841565b60405161028491906131c9565b60405180910390f35b34801561029957600080fd5b506102a2610867565b6040516102af91906131f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da919061320e565b610876565b6040516102ec919061314f565b60405180910390f35b34801561030157600080fd5b5061030a61094f565b60405161031791906131f3565b60405180910390f35b34801561032c57600080fd5b50610335610955565b604051610342919061327d565b60405180910390f35b34801561035757600080fd5b5061036061095e565b60405161036d91906132a7565b60405180910390f35b34801561038257600080fd5b5061039d600480360381019061039891906132c2565b610984565b005b3480156103ab57600080fd5b506103c660048036038101906103c1919061331b565b610a74565b005b3480156103d457600080fd5b506103dd610b26565b005b3480156103eb57600080fd5b5061040660048036038101906104019190613348565b610bf7565b005b34801561041457600080fd5b5061042f600480360381019061042a91906132c2565b610df2565b60405161043c91906131f3565b60405180910390f35b34801561045157600080fd5b5061045a610e43565b005b34801561046857600080fd5b50610471610f96565b005b34801561047f57600080fd5b50610488611049565b60405161049591906131f3565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906132c2565b61104f565b6040516104d291906131f3565b60405180910390f35b3480156104e757600080fd5b506104f0611067565b6040516104fd91906132a7565b60405180910390f35b34801561051257600080fd5b5061051b611090565b60405161052891906131f3565b60405180910390f35b34801561053d57600080fd5b50610546611096565b604051610553919061309c565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e91906133af565b6110d3565b005b34801561059157600080fd5b506105ac60048036038101906105a791906130f4565b61119d565b6040516105b9919061314f565b60405180910390f35b3480156105ce57600080fd5b506105e960048036038101906105e49190613437565b6111bb565b005b3480156105f757600080fd5b506106006112f5565b005b34801561060e57600080fd5b50610629600480360381019061062491906132c2565b6113a7565b604051610636919061314f565b60405180910390f35b34801561064b57600080fd5b506106546113c7565b005b34801561066257600080fd5b5061067d60048036038101906106789190613497565b6114a0565b60405161068a91906131f3565b60405180910390f35b34801561069f57600080fd5b506106ba60048036038101906106b591906132c2565b611527565b005b6106c46116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074890613523565b60405180910390fd5b60005b81518110156107e25760016010600084848151811061077657610775613543565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107da906135a1565b915050610754565b5050565b60606040518060400160405280600681526020017f4761636841690000000000000000000000000000000000000000000000000000815250905090565b60006108376108306116e9565b84846116f1565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006108838484846118bc565b6109448461088f6116e9565b61093f8560405180606001604052806028815260200161422a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108f56116e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121439092919063ffffffff16565b6116f1565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61098c6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090613523565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a7c6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090613523565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b676116e9565b73ffffffffffffffffffffffffffffffffffffffff161480610bdd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc56116e9565b73ffffffffffffffffffffffffffffffffffffffff16145b610be657600080fd5b6000479050610bf4816121a7565b50565b610bff6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613523565b60405180910390fd5b60008410158015610c9e575060048411155b610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd49061365c565b60405180910390fd5b60008210158015610cef575060148211155b610d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d25906136ee565b60405180910390fd5b60008310158015610d40575060048311155b610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690613780565b60405180910390fd5b60008110158015610d91575060148111155b610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613812565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610e3c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e6565b9050919050565b610e4b6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90613523565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f9e6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290613523565b60405180910390fd5b66038d7ea4c6800060198190555066038d7ea4c68000601881905550565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600681526020017f4741434841490000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111146116e9565b73ffffffffffffffffffffffffffffffffffffffff16148061118a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111726116e9565b73ffffffffffffffffffffffffffffffffffffffff16145b61119357600080fd5b80601a8190555050565b60006111b16111aa6116e9565b84846118bc565b6001905092915050565b6111c36116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790613523565b60405180910390fd5b60005b838390508110156112ef57816005600086868581811061127657611275613543565b5b905060200201602081019061128b91906132c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112e7906135a1565b915050611253565b50505050565b6112fd6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613523565b60405180910390fd5b6001601760146101000a81548160ff021916908315150217905550565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114086116e9565b73ffffffffffffffffffffffffffffffffffffffff16148061147e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114666116e9565b73ffffffffffffffffffffffffffffffffffffffff16145b61148757600080fd5b600061149230610df2565b905061149d81612454565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61152f6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390613523565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561162c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611623906138a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890613936565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906139c8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118af91906131f3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561192c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192390613a5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390613aec565b60405180910390fd5b600081116119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613b7e565b60405180910390fd5b6119e7611067565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a555750611a25611067565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e4257601760149054906101000a900460ff16611ae457611a76611067565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ada90613c10565b60405180910390fd5b5b601854811115611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2090613c7c565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bcd5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390613d0e565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cb95760195481611c6e84610df2565b611c789190613d2e565b10611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613df6565b60405180910390fd5b5b6000611cc430610df2565b90506000601a548210159050601a548210611cdf57601a5491505b808015611cf95750601760159054906101000a900460ff16155b8015611d535750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6b5750601760169054906101000a900460ff165b8015611dc15750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e175750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3f57611e2582612454565b60004790506000811115611e3d57611e3c476121a7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ee95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f9c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f9b5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611faa5760009050612131565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120555750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561206d57600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121185750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561213057600a54600c81905550600b54600d819055505b5b61213d848484846126dc565b50505050565b600083831115829061218b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612182919061309c565b60405180910390fd5b506000838561219a9190613e16565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61220a600a6121fc60028661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612299600a61228b60048661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156122c4573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612328600a61231a60028661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612353573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123b7600a6123a960028661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123e2573d6000803e3d6000fd5b5050565b600060065482111561242d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242490613ebc565b60405180910390fd5b60006124376127ce565b905061244c818461278490919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561248c5761248b612e2a565b5b6040519080825280602002602001820160405280156124ba5781602001602082028036833780820191505090505b50905030816000815181106124d2576124d1613543565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561257457600080fd5b505afa158015612588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ac9190613ef1565b816001815181106125c0576125bf613543565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061262730601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116f1565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161268b959493929190614017565b600060405180830381600087803b1580156126a557600080fd5b505af11580156126b9573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b806126ea576126e96127f9565b5b6126f584848461283c565b8061270357612702612a07565b5b50505050565b60008083141561271c576000905061277e565b6000828461272a9190614071565b905082848261273991906140fa565b14612779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127709061419d565b60405180910390fd5b809150505b92915050565b60006127c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1b565b905092915050565b60008060006127db612a7e565b915091506127f2818361278490919063ffffffff16565b9250505090565b6000600c5414801561280d57506000600d54145b156128175761283a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061284e87612ada565b9550955095509550955095506128ac86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b4290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298d81612bea565b6129978483612ca7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129f491906131f3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a59919061309c565b60405180910390fd5b5060008385612a7191906140fa565b9050809150509392505050565b60008060006006549050600066038d7ea4c680009050612ab066038d7ea4c6800060065461278490919063ffffffff16565b821015612acd5760065466038d7ea4c68000935093505050612ad6565b81819350935050505b9091565b6000806000806000806000806000612af78a600c54600d54612ce1565b9250925092506000612b076127ce565b90506000806000612b1a8e878787612d77565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612143565b905092915050565b6000808284612b9b9190613d2e565b905083811015612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790614209565b60405180910390fd5b8091505092915050565b6000612bf46127ce565b90506000612c0b828461270990919063ffffffff16565b9050612c5f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cbc82600654612b4290919063ffffffff16565b600681905550612cd781600754612b8c90919063ffffffff16565b6007819055505050565b600080600080612d0d6064612cff888a61270990919063ffffffff16565b61278490919063ffffffff16565b90506000612d376064612d29888b61270990919063ffffffff16565b61278490919063ffffffff16565b90506000612d6082612d52858c612b4290919063ffffffff16565b612b4290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d90858961270990919063ffffffff16565b90506000612da7868961270990919063ffffffff16565b90506000612dbe878961270990919063ffffffff16565b90506000612de782612dd98587612b4290919063ffffffff16565b612b4290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6282612e19565b810181811067ffffffffffffffff82111715612e8157612e80612e2a565b5b80604052505050565b6000612e94612e00565b9050612ea08282612e59565b919050565b600067ffffffffffffffff821115612ec057612ebf612e2a565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f0182612ed6565b9050919050565b612f1181612ef6565b8114612f1c57600080fd5b50565b600081359050612f2e81612f08565b92915050565b6000612f47612f4284612ea5565b612e8a565b90508083825260208201905060208402830185811115612f6a57612f69612ed1565b5b835b81811015612f935780612f7f8882612f1f565b845260208401935050602081019050612f6c565b5050509392505050565b600082601f830112612fb257612fb1612e14565b5b8135612fc2848260208601612f34565b91505092915050565b600060208284031215612fe157612fe0612e0a565b5b600082013567ffffffffffffffff811115612fff57612ffe612e0f565b5b61300b84828501612f9d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561304e578082015181840152602081019050613033565b8381111561305d576000848401525b50505050565b600061306e82613014565b613078818561301f565b9350613088818560208601613030565b61309181612e19565b840191505092915050565b600060208201905081810360008301526130b68184613063565b905092915050565b6000819050919050565b6130d1816130be565b81146130dc57600080fd5b50565b6000813590506130ee816130c8565b92915050565b6000806040838503121561310b5761310a612e0a565b5b600061311985828601612f1f565b925050602061312a858286016130df565b9150509250929050565b60008115159050919050565b61314981613134565b82525050565b60006020820190506131646000830184613140565b92915050565b6000819050919050565b600061318f61318a61318584612ed6565b61316a565b612ed6565b9050919050565b60006131a182613174565b9050919050565b60006131b382613196565b9050919050565b6131c3816131a8565b82525050565b60006020820190506131de60008301846131ba565b92915050565b6131ed816130be565b82525050565b600060208201905061320860008301846131e4565b92915050565b60008060006060848603121561322757613226612e0a565b5b600061323586828701612f1f565b935050602061324686828701612f1f565b9250506040613257868287016130df565b9150509250925092565b600060ff82169050919050565b61327781613261565b82525050565b6000602082019050613292600083018461326e565b92915050565b6132a181612ef6565b82525050565b60006020820190506132bc6000830184613298565b92915050565b6000602082840312156132d8576132d7612e0a565b5b60006132e684828501612f1f565b91505092915050565b6132f881613134565b811461330357600080fd5b50565b600081359050613315816132ef565b92915050565b60006020828403121561333157613330612e0a565b5b600061333f84828501613306565b91505092915050565b6000806000806080858703121561336257613361612e0a565b5b6000613370878288016130df565b9450506020613381878288016130df565b9350506040613392878288016130df565b92505060606133a3878288016130df565b91505092959194509250565b6000602082840312156133c5576133c4612e0a565b5b60006133d3848285016130df565b91505092915050565b600080fd5b60008083601f8401126133f7576133f6612e14565b5b8235905067ffffffffffffffff811115613414576134136133dc565b5b6020830191508360208202830111156134305761342f612ed1565b5b9250929050565b6000806000604084860312156134505761344f612e0a565b5b600084013567ffffffffffffffff81111561346e5761346d612e0f565b5b61347a868287016133e1565b9350935050602061348d86828701613306565b9150509250925092565b600080604083850312156134ae576134ad612e0a565b5b60006134bc85828601612f1f565b92505060206134cd85828601612f1f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061350d60208361301f565b9150613518826134d7565b602082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135ac826130be565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135df576135de613572565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b600061364660258361301f565b9150613651826135ea565b604082019050919050565b6000602082019050818103600083015261367581613639565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203260008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006136d860228361301f565b91506136e38261367c565b604082019050919050565b60006020820190508181036000830152613707816136cb565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b600061376a60268361301f565b91506137758261370e565b604082019050919050565b600060208201905081810360008301526137998161375d565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3230250000000000000000000000000000000000000000000000000000000000602082015250565b60006137fc60238361301f565b9150613807826137a0565b604082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061388e60268361301f565b915061389982613832565b604082019050919050565b600060208201905081810360008301526138bd81613881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061392060248361301f565b915061392b826138c4565b604082019050919050565b6000602082019050818103600083015261394f81613913565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139b260228361301f565b91506139bd82613956565b604082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a4460258361301f565b9150613a4f826139e8565b604082019050919050565b60006020820190508181036000830152613a7381613a37565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad660238361301f565b9150613ae182613a7a565b604082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b6860298361301f565b9150613b7382613b0c565b604082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bfa603f8361301f565b9150613c0582613b9e565b604082019050919050565b60006020820190508181036000830152613c2981613bed565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c66601c8361301f565b9150613c7182613c30565b602082019050919050565b60006020820190508181036000830152613c9581613c59565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf860238361301f565b9150613d0382613c9c565b604082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b6000613d39826130be565b9150613d44836130be565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d7957613d78613572565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613de060238361301f565b9150613deb82613d84565b604082019050919050565b60006020820190508181036000830152613e0f81613dd3565b9050919050565b6000613e21826130be565b9150613e2c836130be565b925082821015613e3f57613e3e613572565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ea6602a8361301f565b9150613eb182613e4a565b604082019050919050565b60006020820190508181036000830152613ed581613e99565b9050919050565b600081519050613eeb81612f08565b92915050565b600060208284031215613f0757613f06612e0a565b5b6000613f1584828501613edc565b91505092915050565b6000819050919050565b6000613f43613f3e613f3984613f1e565b61316a565b6130be565b9050919050565b613f5381613f28565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8e81612ef6565b82525050565b6000613fa08383613f85565b60208301905092915050565b6000602082019050919050565b6000613fc482613f59565b613fce8185613f64565b9350613fd983613f75565b8060005b8381101561400a578151613ff18882613f94565b9750613ffc83613fac565b925050600181019050613fdd565b5085935050505092915050565b600060a08201905061402c60008301886131e4565b6140396020830187613f4a565b818103604083015261404b8186613fb9565b905061405a6060830185613298565b61406760808301846131e4565b9695505050505050565b600061407c826130be565b9150614087836130be565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140c0576140bf613572565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614105826130be565b9150614110836130be565b9250826141205761411f6140cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061418760218361301f565b91506141928261412b565b604082019050919050565b600060208201905081810360008301526141b68161417a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006141f3601b8361301f565b91506141fe826141bd565b602082019050919050565b60006020820190508181036000830152614222816141e6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aa39c0ae9cd937d61a833f6a598f32e152fe4d9dda455f8455c2ff4086bc3f2764736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101c55760003560e01c8063715018a6116100f757806398a5c31511610095578063bfd7928411610064578063bfd7928414610602578063c3c8cd801461063f578063dd62ed3e14610656578063f2fde38b14610693576101cc565b806398a5c3151461055c578063a9059cbb14610585578063ad29ffde146105c2578063bc849d7d146105eb576101cc565b80637f2feddc116100d15780637f2feddc1461049e5780638da5cb5b146104db5780638f9a55c01461050657806395d89b4114610531576101cc565b8063715018a614610445578063751039fc1461045c5780637d1db4a514610473576101cc565b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461039f5780636fc3eaec146103c85780636fcba377146103df57806370a0823114610408576101cc565b8063313ce5671461032057806349bd5a5e1461034b5780636b99905314610376576101cc565b80631694505e116101a05780631694505e1461026257806318160ddd1461028d57806323b872dd146102b85780632fd689e3146102f5576101cc565b8062b8cf2a146101d157806306fdde03146101fa578063095ea7b314610225576101cc565b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f860048036038101906101f39190612fcb565b6106bc565b005b34801561020657600080fd5b5061020f6107e6565b60405161021c919061309c565b60405180910390f35b34801561023157600080fd5b5061024c600480360381019061024791906130f4565b610823565b604051610259919061314f565b60405180910390f35b34801561026e57600080fd5b50610277610841565b60405161028491906131c9565b60405180910390f35b34801561029957600080fd5b506102a2610867565b6040516102af91906131f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da919061320e565b610876565b6040516102ec919061314f565b60405180910390f35b34801561030157600080fd5b5061030a61094f565b60405161031791906131f3565b60405180910390f35b34801561032c57600080fd5b50610335610955565b604051610342919061327d565b60405180910390f35b34801561035757600080fd5b5061036061095e565b60405161036d91906132a7565b60405180910390f35b34801561038257600080fd5b5061039d600480360381019061039891906132c2565b610984565b005b3480156103ab57600080fd5b506103c660048036038101906103c1919061331b565b610a74565b005b3480156103d457600080fd5b506103dd610b26565b005b3480156103eb57600080fd5b5061040660048036038101906104019190613348565b610bf7565b005b34801561041457600080fd5b5061042f600480360381019061042a91906132c2565b610df2565b60405161043c91906131f3565b60405180910390f35b34801561045157600080fd5b5061045a610e43565b005b34801561046857600080fd5b50610471610f96565b005b34801561047f57600080fd5b50610488611049565b60405161049591906131f3565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c091906132c2565b61104f565b6040516104d291906131f3565b60405180910390f35b3480156104e757600080fd5b506104f0611067565b6040516104fd91906132a7565b60405180910390f35b34801561051257600080fd5b5061051b611090565b60405161052891906131f3565b60405180910390f35b34801561053d57600080fd5b50610546611096565b604051610553919061309c565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e91906133af565b6110d3565b005b34801561059157600080fd5b506105ac60048036038101906105a791906130f4565b61119d565b6040516105b9919061314f565b60405180910390f35b3480156105ce57600080fd5b506105e960048036038101906105e49190613437565b6111bb565b005b3480156105f757600080fd5b506106006112f5565b005b34801561060e57600080fd5b50610629600480360381019061062491906132c2565b6113a7565b604051610636919061314f565b60405180910390f35b34801561064b57600080fd5b506106546113c7565b005b34801561066257600080fd5b5061067d60048036038101906106789190613497565b6114a0565b60405161068a91906131f3565b60405180910390f35b34801561069f57600080fd5b506106ba60048036038101906106b591906132c2565b611527565b005b6106c46116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074890613523565b60405180910390fd5b60005b81518110156107e25760016010600084848151811061077657610775613543565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107da906135a1565b915050610754565b5050565b60606040518060400160405280600681526020017f4761636841690000000000000000000000000000000000000000000000000000815250905090565b60006108376108306116e9565b84846116f1565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006108838484846118bc565b6109448461088f6116e9565b61093f8560405180606001604052806028815260200161422a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108f56116e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121439092919063ffffffff16565b6116f1565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61098c6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090613523565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a7c6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090613523565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b676116e9565b73ffffffffffffffffffffffffffffffffffffffff161480610bdd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc56116e9565b73ffffffffffffffffffffffffffffffffffffffff16145b610be657600080fd5b6000479050610bf4816121a7565b50565b610bff6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613523565b60405180910390fd5b60008410158015610c9e575060048411155b610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd49061365c565b60405180910390fd5b60008210158015610cef575060148211155b610d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d25906136ee565b60405180910390fd5b60008310158015610d40575060048311155b610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690613780565b60405180910390fd5b60008110158015610d91575060148111155b610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613812565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610e3c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e6565b9050919050565b610e4b6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90613523565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f9e6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290613523565b60405180910390fd5b66038d7ea4c6800060198190555066038d7ea4c68000601881905550565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600681526020017f4741434841490000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111146116e9565b73ffffffffffffffffffffffffffffffffffffffff16148061118a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111726116e9565b73ffffffffffffffffffffffffffffffffffffffff16145b61119357600080fd5b80601a8190555050565b60006111b16111aa6116e9565b84846118bc565b6001905092915050565b6111c36116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790613523565b60405180910390fd5b60005b838390508110156112ef57816005600086868581811061127657611275613543565b5b905060200201602081019061128b91906132c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112e7906135a1565b915050611253565b50505050565b6112fd6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613523565b60405180910390fd5b6001601760146101000a81548160ff021916908315150217905550565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114086116e9565b73ffffffffffffffffffffffffffffffffffffffff16148061147e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114666116e9565b73ffffffffffffffffffffffffffffffffffffffff16145b61148757600080fd5b600061149230610df2565b905061149d81612454565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61152f6116e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390613523565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561162c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611623906138a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890613936565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906139c8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118af91906131f3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561192c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192390613a5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390613aec565b60405180910390fd5b600081116119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613b7e565b60405180910390fd5b6119e7611067565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a555750611a25611067565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e4257601760149054906101000a900460ff16611ae457611a76611067565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ada90613c10565b60405180910390fd5b5b601854811115611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2090613c7c565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bcd5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390613d0e565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cb95760195481611c6e84610df2565b611c789190613d2e565b10611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613df6565b60405180910390fd5b5b6000611cc430610df2565b90506000601a548210159050601a548210611cdf57601a5491505b808015611cf95750601760159054906101000a900460ff16155b8015611d535750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6b5750601760169054906101000a900460ff165b8015611dc15750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e175750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3f57611e2582612454565b60004790506000811115611e3d57611e3c476121a7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ee95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f9c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f9b5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611faa5760009050612131565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120555750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561206d57600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121185750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561213057600a54600c81905550600b54600d819055505b5b61213d848484846126dc565b50505050565b600083831115829061218b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612182919061309c565b60405180910390fd5b506000838561219a9190613e16565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61220a600a6121fc60028661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612299600a61228b60048661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156122c4573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612328600a61231a60028661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612353573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123b7600a6123a960028661270990919063ffffffff16565b61278490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123e2573d6000803e3d6000fd5b5050565b600060065482111561242d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242490613ebc565b60405180910390fd5b60006124376127ce565b905061244c818461278490919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561248c5761248b612e2a565b5b6040519080825280602002602001820160405280156124ba5781602001602082028036833780820191505090505b50905030816000815181106124d2576124d1613543565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561257457600080fd5b505afa158015612588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ac9190613ef1565b816001815181106125c0576125bf613543565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061262730601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116f1565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161268b959493929190614017565b600060405180830381600087803b1580156126a557600080fd5b505af11580156126b9573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b806126ea576126e96127f9565b5b6126f584848461283c565b8061270357612702612a07565b5b50505050565b60008083141561271c576000905061277e565b6000828461272a9190614071565b905082848261273991906140fa565b14612779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127709061419d565b60405180910390fd5b809150505b92915050565b60006127c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1b565b905092915050565b60008060006127db612a7e565b915091506127f2818361278490919063ffffffff16565b9250505090565b6000600c5414801561280d57506000600d54145b156128175761283a565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061284e87612ada565b9550955095509550955095506128ac86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b4290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298d81612bea565b6129978483612ca7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129f491906131f3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a59919061309c565b60405180910390fd5b5060008385612a7191906140fa565b9050809150509392505050565b60008060006006549050600066038d7ea4c680009050612ab066038d7ea4c6800060065461278490919063ffffffff16565b821015612acd5760065466038d7ea4c68000935093505050612ad6565b81819350935050505b9091565b6000806000806000806000806000612af78a600c54600d54612ce1565b9250925092506000612b076127ce565b90506000806000612b1a8e878787612d77565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612143565b905092915050565b6000808284612b9b9190613d2e565b905083811015612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790614209565b60405180910390fd5b8091505092915050565b6000612bf46127ce565b90506000612c0b828461270990919063ffffffff16565b9050612c5f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cbc82600654612b4290919063ffffffff16565b600681905550612cd781600754612b8c90919063ffffffff16565b6007819055505050565b600080600080612d0d6064612cff888a61270990919063ffffffff16565b61278490919063ffffffff16565b90506000612d376064612d29888b61270990919063ffffffff16565b61278490919063ffffffff16565b90506000612d6082612d52858c612b4290919063ffffffff16565b612b4290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d90858961270990919063ffffffff16565b90506000612da7868961270990919063ffffffff16565b90506000612dbe878961270990919063ffffffff16565b90506000612de782612dd98587612b4290919063ffffffff16565b612b4290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6282612e19565b810181811067ffffffffffffffff82111715612e8157612e80612e2a565b5b80604052505050565b6000612e94612e00565b9050612ea08282612e59565b919050565b600067ffffffffffffffff821115612ec057612ebf612e2a565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f0182612ed6565b9050919050565b612f1181612ef6565b8114612f1c57600080fd5b50565b600081359050612f2e81612f08565b92915050565b6000612f47612f4284612ea5565b612e8a565b90508083825260208201905060208402830185811115612f6a57612f69612ed1565b5b835b81811015612f935780612f7f8882612f1f565b845260208401935050602081019050612f6c565b5050509392505050565b600082601f830112612fb257612fb1612e14565b5b8135612fc2848260208601612f34565b91505092915050565b600060208284031215612fe157612fe0612e0a565b5b600082013567ffffffffffffffff811115612fff57612ffe612e0f565b5b61300b84828501612f9d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561304e578082015181840152602081019050613033565b8381111561305d576000848401525b50505050565b600061306e82613014565b613078818561301f565b9350613088818560208601613030565b61309181612e19565b840191505092915050565b600060208201905081810360008301526130b68184613063565b905092915050565b6000819050919050565b6130d1816130be565b81146130dc57600080fd5b50565b6000813590506130ee816130c8565b92915050565b6000806040838503121561310b5761310a612e0a565b5b600061311985828601612f1f565b925050602061312a858286016130df565b9150509250929050565b60008115159050919050565b61314981613134565b82525050565b60006020820190506131646000830184613140565b92915050565b6000819050919050565b600061318f61318a61318584612ed6565b61316a565b612ed6565b9050919050565b60006131a182613174565b9050919050565b60006131b382613196565b9050919050565b6131c3816131a8565b82525050565b60006020820190506131de60008301846131ba565b92915050565b6131ed816130be565b82525050565b600060208201905061320860008301846131e4565b92915050565b60008060006060848603121561322757613226612e0a565b5b600061323586828701612f1f565b935050602061324686828701612f1f565b9250506040613257868287016130df565b9150509250925092565b600060ff82169050919050565b61327781613261565b82525050565b6000602082019050613292600083018461326e565b92915050565b6132a181612ef6565b82525050565b60006020820190506132bc6000830184613298565b92915050565b6000602082840312156132d8576132d7612e0a565b5b60006132e684828501612f1f565b91505092915050565b6132f881613134565b811461330357600080fd5b50565b600081359050613315816132ef565b92915050565b60006020828403121561333157613330612e0a565b5b600061333f84828501613306565b91505092915050565b6000806000806080858703121561336257613361612e0a565b5b6000613370878288016130df565b9450506020613381878288016130df565b9350506040613392878288016130df565b92505060606133a3878288016130df565b91505092959194509250565b6000602082840312156133c5576133c4612e0a565b5b60006133d3848285016130df565b91505092915050565b600080fd5b60008083601f8401126133f7576133f6612e14565b5b8235905067ffffffffffffffff811115613414576134136133dc565b5b6020830191508360208202830111156134305761342f612ed1565b5b9250929050565b6000806000604084860312156134505761344f612e0a565b5b600084013567ffffffffffffffff81111561346e5761346d612e0f565b5b61347a868287016133e1565b9350935050602061348d86828701613306565b9150509250925092565b600080604083850312156134ae576134ad612e0a565b5b60006134bc85828601612f1f565b92505060206134cd85828601612f1f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061350d60208361301f565b9150613518826134d7565b602082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135ac826130be565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135df576135de613572565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b600061364660258361301f565b9150613651826135ea565b604082019050919050565b6000602082019050818103600083015261367581613639565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203260008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006136d860228361301f565b91506136e38261367c565b604082019050919050565b60006020820190508181036000830152613707816136cb565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b600061376a60268361301f565b91506137758261370e565b604082019050919050565b600060208201905081810360008301526137998161375d565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3230250000000000000000000000000000000000000000000000000000000000602082015250565b60006137fc60238361301f565b9150613807826137a0565b604082019050919050565b6000602082019050818103600083015261382b816137ef565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061388e60268361301f565b915061389982613832565b604082019050919050565b600060208201905081810360008301526138bd81613881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061392060248361301f565b915061392b826138c4565b604082019050919050565b6000602082019050818103600083015261394f81613913565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139b260228361301f565b91506139bd82613956565b604082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a4460258361301f565b9150613a4f826139e8565b604082019050919050565b60006020820190508181036000830152613a7381613a37565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad660238361301f565b9150613ae182613a7a565b604082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b6860298361301f565b9150613b7382613b0c565b604082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bfa603f8361301f565b9150613c0582613b9e565b604082019050919050565b60006020820190508181036000830152613c2981613bed565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c66601c8361301f565b9150613c7182613c30565b602082019050919050565b60006020820190508181036000830152613c9581613c59565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf860238361301f565b9150613d0382613c9c565b604082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b6000613d39826130be565b9150613d44836130be565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d7957613d78613572565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613de060238361301f565b9150613deb82613d84565b604082019050919050565b60006020820190508181036000830152613e0f81613dd3565b9050919050565b6000613e21826130be565b9150613e2c836130be565b925082821015613e3f57613e3e613572565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ea6602a8361301f565b9150613eb182613e4a565b604082019050919050565b60006020820190508181036000830152613ed581613e99565b9050919050565b600081519050613eeb81612f08565b92915050565b600060208284031215613f0757613f06612e0a565b5b6000613f1584828501613edc565b91505092915050565b6000819050919050565b6000613f43613f3e613f3984613f1e565b61316a565b6130be565b9050919050565b613f5381613f28565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8e81612ef6565b82525050565b6000613fa08383613f85565b60208301905092915050565b6000602082019050919050565b6000613fc482613f59565b613fce8185613f64565b9350613fd983613f75565b8060005b8381101561400a578151613ff18882613f94565b9750613ffc83613fac565b925050600181019050613fdd565b5085935050505092915050565b600060a08201905061402c60008301886131e4565b6140396020830187613f4a565b818103604083015261404b8186613fb9565b905061405a6060830185613298565b61406760808301846131e4565b9695505050505050565b600061407c826130be565b9150614087836130be565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140c0576140bf613572565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614105826130be565b9150614110836130be565b9250826141205761411f6140cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061418760218361301f565b91506141928261412b565b604082019050919050565b600060208201905081810360008301526141b68161417a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006141f3601b8361301f565b91506141fe826141bd565b602082019050919050565b60006020820190508181036000830152614222816141e6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aa39c0ae9cd937d61a833f6a598f32e152fe4d9dda455f8455c2ff4086bc3f2764736f6c63430008090033
Deployed Bytecode Sourcemap
4207:14208:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13251:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6937:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7869:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5719:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7217:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8071:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6015:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7125:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5767:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13429:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18076:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13028:214;;;;;;;;;;;;;:::i;:::-;;16938:694;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7321:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1680:148;;;;;;;;;;;;;:::i;:::-;;17638:133;;;;;;;;;;;;;:::i;:::-;;5911:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1464:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7029:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17821:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7468:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18192:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12710:85;;;;;;;;;;;;;:::i;:::-;;5261:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:215;;;;;;;;;;;;;:::i;:::-;;7676:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1837:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13251:169;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13327:9:::1;13322:91;13346:5;:12;13342:1;:16;13322:91;;;13397:4;13380;:14;13385:5;13391:1;13385:8;;;;;;;;:::i;:::-;;;;;;;;13380:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13360:3;;;;;:::i;:::-;;;;13322:91;;;;13251:169:::0;:::o;6937:83::-;6974:13;7007:5;;;;;;;;;;;;;;;;;7000:12;;6937:83;:::o;7869:193::-;7971:4;7993:39;8002:12;:10;:12::i;:::-;8016:7;8025:6;7993:8;:39::i;:::-;8050:4;8043:11;;7869:193;;;;:::o;5719:41::-;;;;;;;;;;;;;:::o;7217:95::-;7270:7;4755:15;7290:14;;7217:95;:::o;8071:446::-;8203:4;8220:36;8230:6;8238:9;8249:6;8220:9;:36::i;:::-;8267:220;8290:6;8311:12;:10;:12::i;:::-;8338:138;8394:6;8338:138;;;;;;;;;;;;;;;;;:11;:19;8350:6;8338:19;;;;;;;;;;;;;;;:33;8358:12;:10;:12::i;:::-;8338:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8267:8;:220::i;:::-;8505:4;8498:11;;8071:446;;;;;:::o;6015:50::-;;;;:::o;7125:83::-;7166:5;4428:1;7184:16;;7125:83;:::o;5767:28::-;;;;;;;;;;;;;:::o;13429:92::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13508:5:::1;13493:4;:12;13498:6;13493:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13429:92:::0;:::o;18076:101::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18157:12:::1;18143:11;;:26;;;;;;;;;;;;;;;;;;18076:101:::0;:::o;13028:214::-;13094:11;;;;;;;;;;;13078:27;;:12;:10;:12::i;:::-;:27;;;:51;;;;13125:4;;;;;;;;;;;13109:20;;:12;:10;:12::i;:::-;:20;;;13078:51;13070:60;;;;;;13141:26;13170:21;13141:50;;13202:32;13215:18;13202:12;:32::i;:::-;13059:183;13028:214::o;16938:694::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17098:1:::1;17081:13;:18;;:40;;;;;17120:1;17103:13;:18;;17081:40;17073:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17197:1;17182:11;:16;;:37;;;;;17217:2;17202:11;:17;;17182:37;17174:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17295:1;17277:14;:19;;:42;;;;;17318:1;17300:14;:19;;17277:42;17269:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17397:1;17381:12;:17;;:39;;;;;17418:2;17402:12;:18;;17381:39;17373:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17490:13;17473:14;:30;;;;17532:14;17514:15;:32;;;;17572:11;17557:12;:26;;;;17610:12;17594:13;:28;;;;16938:694:::0;;;;:::o;7321:138::-;7387:7;7414:37;7434:7;:16;7442:7;7434:16;;;;;;;;;;;;;;;;7414:19;:37::i;:::-;7407:44;;7321:138;;;:::o;1680:148::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1787:1:::1;1750:40;;1771:6;::::0;::::1;;;;;;;;1750:40;;;;;;;;;;;;1818:1;1801:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1680:148::o:0;17638:133::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17707:15:::1;17690:14;:32;;;;17748:15;17733:12;:30;;;;17638:133::o:0;5911:43::-;;;;:::o;5299:::-;;;;;;;;;;;;;;;;;:::o;1464:79::-;1502:7;1529:6;;;;;;;;;;;1522:13;;1464:79;:::o;5962:45::-;;;;:::o;7029:87::-;7068:13;7101:7;;;;;;;;;;;;;;;;;7094:14;;7029:87;:::o;17821:202::-;17928:11;;;;;;;;;;;17912:27;;:12;:10;:12::i;:::-;:27;;;:51;;;;17959:4;;;;;;;;;;;17943:20;;:12;:10;:12::i;:::-;:20;;;17912:51;17904:60;;;;;;17997:18;17975:19;:40;;;;17821:202;:::o;7468:199::-;7573:4;7595:42;7605:12;:10;:12::i;:::-;7619:9;7630:6;7595:9;:42::i;:::-;7655:4;7648:11;;7468:199;;;;:::o;18192:218::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18293:9:::1;18289:114;18312:8;;:15;;18308:1;:19;18289:114;;;18383:8;18349:18;:31;18368:8;;18377:1;18368:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18349:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18329:3;;;;;:::i;:::-;;;;18289:114;;;;18192:218:::0;;;:::o;12710:85::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12783:4:::1;12769:11;;:18;;;;;;;;;;;;;;;;;;12710:85::o:0;5261:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12804:215::-;12870:11;;;;;;;;;;;12854:27;;:12;:10;:12::i;:::-;:27;;;:51;;;;12901:4;;;;;;;;;;;12885:20;;:12;:10;:12::i;:::-;:20;;;12854:51;12846:60;;;;;;12917:23;12943:24;12961:4;12943:9;:24::i;:::-;12917:50;;12978:33;12995:15;12978:16;:33::i;:::-;12835:184;12804:215::o;7676:184::-;7793:7;7825:11;:18;7837:5;7825:18;;;;;;;;;;;;;;;:27;7844:7;7825:27;;;;;;;;;;;;;;;;7818:34;;7676:184;;;;:::o;1837:244::-;1602:12;:10;:12::i;:::-;1592:22;;:6;;;;;;;;;;:22;;;1584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1946:1:::1;1926:22;;:8;:22;;;;1918:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2036:8;2007:38;;2028:6;::::0;::::1;;;;;;;;2007:38;;;;;;;;;;;;2065:8;2056:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1837:244:::0;:::o;213:98::-;266:7;293:10;286:17;;213:98;:::o;9214:369::-;9358:1;9341:19;;:5;:19;;;;9333:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9439:1;9420:21;;:7;:21;;;;9412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9521:6;9491:11;:18;9503:5;9491:18;;;;;;;;;;;;;;;:27;9510:7;9491:27;;;;;;;;;;;;;;;:36;;;;9559:7;9543:32;;9552:5;9543:32;;;9568:6;9543:32;;;;;;:::i;:::-;;;;;;;;9214:369;;;:::o;9592:2357::-;9730:1;9714:18;;:4;:18;;;;9706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9807:1;9793:16;;:2;:16;;;;9785:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9877:1;9868:6;:10;9860:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9950:7;:5;:7::i;:::-;9942:15;;:4;:15;;;;:32;;;;;9967:7;:5;:7::i;:::-;9961:13;;:2;:13;;;;9942:32;9938:1279;;;10032:11;;;;;;;;;;;10027:144;;10080:7;:5;:7::i;:::-;10072:15;;:4;:15;;;10064:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10027:144;10206:12;;10196:6;:22;;10188:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10275:4;:10;10280:4;10275:10;;;;;;;;;;;;;;;;;;;;;;;;;10274:11;:24;;;;;10290:4;:8;10295:2;10290:8;;;;;;;;;;;;;;;;;;;;;;;;;10289:9;10274:24;10266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10365:13;;;;;;;;;;;10359:19;;:2;:19;;;10356:146;;10432:14;;10423:6;10407:13;10417:2;10407:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10399:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10356:146;10519:28;10550:24;10568:4;10550:9;:24::i;:::-;10519:55;;10589:12;10628:19;;10604:20;:43;;10589:58;;10692:19;;10668:20;:43;10665:138;;10768:19;;10745:42;;10665:138;10824:7;:18;;;;;10836:6;;;;;;;;;;;10835:7;10824:18;:43;;;;;10854:13;;;;;;;;;;;10846:21;;:4;:21;;;;10824:43;:58;;;;;10871:11;;;;;;;;;;;10824:58;:87;;;;;10887:18;:24;10906:4;10887:24;;;;;;;;;;;;;;;;;;;;;;;;;10886:25;10824:87;:114;;;;;10916:18;:22;10935:2;10916:22;;;;;;;;;;;;;;;;;;;;;;;;;10915:23;10824:114;10820:386;;;10959:38;10976:20;10959:16;:38::i;:::-;11016:26;11045:21;11016:50;;11110:1;11089:18;:22;11085:106;;;11136:35;11149:21;11136:12;:35::i;:::-;11085:106;10940:266;10820:386;9976:1241;;9938:1279;11230:12;11245:4;11230:19;;11295:18;:24;11314:4;11295:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11323:18;:22;11342:2;11323:22;;;;;;;;;;;;;;;;;;;;;;;;;11295:50;11294:102;;;;11359:13;;;;;;;;;;;11351:21;;:4;:21;;;;:44;;;;;11382:13;;;;;;;;;;;11376:19;;:2;:19;;;;11351:44;11294:102;11290:597;;;11423:5;11413:15;;11290:597;;;11507:13;;;;;;;;;;;11499:21;;:4;:21;;;:55;;;;;11538:15;;;;;;;;;;;11524:30;;:2;:30;;;;11499:55;11496:162;;;11587:14;;11575:9;:26;;;;11630:12;;11620:7;:22;;;;11496:162;11718:13;;;;;;;;;;;11712:19;;:2;:19;;;:55;;;;;11751:15;;;;;;;;;;;11735:32;;:4;:32;;;;11712:55;11708:165;;;11800:15;;11788:9;:27;;;;11844:13;;11834:7;:23;;;;11708:165;11290:597;11900:41;11915:4;11921:2;11925:6;11933:7;11900:14;:41::i;:::-;9695:2254;9592:2357;;;:::o;2449:224::-;2569:7;2602:1;2597;:6;;2605:12;2589:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2629:9;2645:1;2641;:5;;;;:::i;:::-;2629:17;;2664:1;2657:8;;;2449:224;;;;;:::o;12450:251::-;12507:11;;;;;;;;;;;:20;;:43;12528:21;12546:2;12528:13;12539:1;12528:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12507:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12563:4;;;;;;;;;;;:13;;:36;12577:21;12595:2;12577:13;12588:1;12577:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12563:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12610:4;;;;;;;;;;;:13;;:36;12624:21;12642:2;12624:13;12635:1;12624:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12610:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12657:4;;;;;;;;;;;:13;;:36;12671:21;12689:2;12671:13;12682:1;12671:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12657:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12450:251;:::o;8526:323::-;8621:7;8679;;8668;:18;;8646:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8767:19;8789:10;:8;:10::i;:::-;8767:32;;8817:24;8829:11;8817:7;:11;;:24;;;;:::i;:::-;8810:31;;;8526:323;;;:::o;11958:483::-;6169:4;6160:6;;:13;;;;;;;;;;;;;;;;;;12036:21:::1;12074:1;12060:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12036:40;;12105:4;12087;12092:1;12087:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12131:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12121:4;12126:1;12121:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12164:62;12181:4;12196:15;;;;;;;;;;;12214:11;12164:8;:62::i;:::-;12237:15;;;;;;;;;;;:66;;;12318:11;12344:1;12360:4;12387;12407:15;12237:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12025:416;6205:5:::0;6196:6;;:14;;;;;;;;;;;;;;;;;;11958:483;:::o;13530:282::-;13686:7;13681:28;;13695:14;:12;:14::i;:::-;13681:28;13720:44;13738:6;13746:9;13757:6;13720:17;:44::i;:::-;13780:7;13775:29;;13789:15;:13;:15::i;:::-;13775:29;13530:282;;;;:::o;2682:246::-;2740:7;2769:1;2764;:6;2760:47;;;2794:1;2787:8;;;;2760:47;2817:9;2833:1;2829;:5;;;;:::i;:::-;2817:17;;2862:1;2857;2853;:5;;;;:::i;:::-;:10;2845:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2919:1;2912:8;;;2682:246;;;;;:::o;2937:132::-;2995:7;3022:39;3026:1;3029;3022:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3015:46;;2937:132;;;;:::o;16499:164::-;16541:7;16562:15;16579;16598:19;:17;:19::i;:::-;16561:56;;;;16635:20;16647:7;16635;:11;;:20;;;;:::i;:::-;16628:27;;;;16499:164;:::o;8858:221::-;8918:1;8905:9;;:14;:30;;;;;8934:1;8923:7;;:12;8905:30;8901:43;;;8937:7;;8901:43;8977:9;;8957:17;:29;;;;9015:7;;8997:15;:25;;;;9048:1;9036:9;:13;;;;9070:1;9060:7;:11;;;;8858:221;:::o;13821:610::-;13968:15;13998:23;14036:12;14063:23;14101:12;14128:13;14155:19;14166:7;14155:10;:19::i;:::-;13953:221;;;;;;;;;;;;14203:28;14223:7;14203;:15;14211:6;14203:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14185:7;:15;14193:6;14185:15;;;;;;;;;;;;;;;:46;;;;14263:39;14286:15;14263:7;:18;14271:9;14263:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14242:7;:18;14250:9;14242:18;;;;;;;;;;;;;;;:60;;;;14313:16;14323:5;14313:9;:16::i;:::-;14340:23;14352:4;14358;14340:11;:23::i;:::-;14396:9;14379:44;;14388:6;14379:44;;;14407:15;14379:44;;;;;;:::i;:::-;;;;;;;;13942:489;;;;;;13821:610;;;:::o;9088:117::-;9144:17;;9132:9;:29;;;;9182:15;;9172:7;:25;;;;9088:117::o;3078:223::-;3198:7;3230:1;3226;:5;3233:12;3218:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3257:9;3273:1;3269;:5;;;;:::i;:::-;3257:17;;3292:1;3285:8;;;3078:223;;;;;:::o;16672:257::-;16723:7;16732;16752:15;16770:7;;16752:25;;16788:15;4755;16788:25;;16838:20;4755:15;16838:7;;:11;;:20;;;;:::i;:::-;16828:7;:30;16824:61;;;16868:7;;4755:15;16860:25;;;;;;;;16824:61;16904:7;16913;16896:25;;;;;;16672:257;;;:::o;14854:615::-;14954:7;14976;14998;15020;15042;15064;15100:23;15125:12;15139:13;15169:40;15181:7;15190:9;;15201:7;;15169:11;:40::i;:::-;15099:110;;;;;;15220:19;15242:10;:8;:10::i;:::-;15220:32;;15264:15;15281:23;15306:12;15335:46;15347:7;15356:4;15362:5;15369:11;15335;:46::i;:::-;15263:118;;;;;;15400:7;15409:15;15426:4;15432:15;15449:4;15455:5;15392:69;;;;;;;;;;;;;;;;;;;14854:615;;;;;;;:::o;2304:136::-;2362:7;2389:43;2393:1;2396;2389:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2382:50;;2304:136;;;;:::o;2116:179::-;2174:7;2194:9;2210:1;2206;:5;;;;:::i;:::-;2194:17;;2235:1;2230;:6;;2222:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2286:1;2279:8;;;2116:179;;;;:::o;14440:211::-;14493:19;14515:10;:8;:10::i;:::-;14493:32;;14536:13;14552:22;14562:11;14552:5;:9;;:22;;;;:::i;:::-;14536:38;;14610:33;14637:5;14610:7;:22;14626:4;14610:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14585:7;:22;14601:4;14585:22;;;;;;;;;;;;;;;:58;;;;14482:169;;14440:211;:::o;14660:147::-;14738:17;14750:4;14738:7;;:11;;:17;;;;:::i;:::-;14728:7;:27;;;;14779:20;14794:4;14779:10;;:14;;:20;;;;:::i;:::-;14766:10;:33;;;;14660:147;;:::o;15478:469::-;15647:7;15669;15691;15726:12;15741:30;15767:3;15741:21;15753:8;15741:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15726:45;;15782:13;15798:28;15822:3;15798:19;15810:6;15798:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15782:44;;15837:23;15863:28;15885:5;15863:17;15875:4;15863:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15837:54;;15910:15;15927:4;15933:5;15902:37;;;;;;;;;15478:469;;;;;;;:::o;15956:534::-;16150:7;16172;16194;16229:15;16247:24;16259:11;16247:7;:11;;:24;;;;:::i;:::-;16229:42;;16282:12;16297:21;16306:11;16297:4;:8;;:21;;;;:::i;:::-;16282:36;;16329:13;16345:22;16355:11;16345:5;:9;;:22;;;;:::i;:::-;16329:38;;16378:23;16404:28;16426:5;16404:17;16416:4;16404:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16378:54;;16451:7;16460:15;16477:4;16443:39;;;;;;;;;;15956:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:765::-;10079:6;10087;10095;10103;10152:3;10140:9;10131:7;10127:23;10123:33;10120:120;;;10159:79;;:::i;:::-;10120:120;10279:1;10304:53;10349:7;10340:6;10329:9;10325:22;10304:53;:::i;:::-;10294:63;;10250:117;10406:2;10432:53;10477:7;10468:6;10457:9;10453:22;10432:53;:::i;:::-;10422:63;;10377:118;10534:2;10560:53;10605:7;10596:6;10585:9;10581:22;10560:53;:::i;:::-;10550:63;;10505:118;10662:2;10688:53;10733:7;10724:6;10713:9;10709:22;10688:53;:::i;:::-;10678:63;;10633:118;9993:765;;;;;;;:::o;10764:329::-;10823:6;10872:2;10860:9;10851:7;10847:23;10843:32;10840:119;;;10878:79;;:::i;:::-;10840:119;10998:1;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10969:117;10764:329;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:474::-;12585:6;12593;12642:2;12630:9;12621:7;12617:23;12613:32;12610:119;;;12648:79;;:::i;:::-;12610:119;12768:1;12793:53;12838:7;12829:6;12818:9;12814:22;12793:53;:::i;:::-;12783:63;;12739:117;12895:2;12921:53;12966:7;12957:6;12946:9;12942:22;12921:53;:::i;:::-;12911:63;;12866:118;12517:474;;;;;:::o;12997:182::-;13137:34;13133:1;13125:6;13121:14;13114:58;12997:182;:::o;13185:366::-;13327:3;13348:67;13412:2;13407:3;13348:67;:::i;:::-;13341:74;;13424:93;13513:3;13424:93;:::i;:::-;13542:2;13537:3;13533:12;13526:19;;13185:366;;;:::o;13557:419::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13810:9;13804:4;13800:20;13796:1;13785:9;13781:17;13774:47;13838:131;13964:4;13838:131;:::i;:::-;13830:139;;13557:419;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:233;14393:3;14416:24;14434:5;14416:24;:::i;:::-;14407:33;;14462:66;14455:5;14452:77;14449:103;;;14532:18;;:::i;:::-;14449:103;14579:1;14572:5;14568:13;14561:20;;14354:233;;;:::o;14593:224::-;14733:34;14729:1;14721:6;14717:14;14710:58;14802:7;14797:2;14789:6;14785:15;14778:32;14593:224;:::o;14823:366::-;14965:3;14986:67;15050:2;15045:3;14986:67;:::i;:::-;14979:74;;15062:93;15151:3;15062:93;:::i;:::-;15180:2;15175:3;15171:12;15164:19;;14823:366;;;:::o;15195:419::-;15361:4;15399:2;15388:9;15384:18;15376:26;;15448:9;15442:4;15438:20;15434:1;15423:9;15419:17;15412:47;15476:131;15602:4;15476:131;:::i;:::-;15468:139;;15195:419;;;:::o;15620:221::-;15760:34;15756:1;15748:6;15744:14;15737:58;15829:4;15824:2;15816:6;15812:15;15805:29;15620:221;:::o;15847:366::-;15989:3;16010:67;16074:2;16069:3;16010:67;:::i;:::-;16003:74;;16086:93;16175:3;16086:93;:::i;:::-;16204:2;16199:3;16195:12;16188:19;;15847:366;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16219:419;;;:::o;16644:225::-;16784:34;16780:1;16772:6;16768:14;16761:58;16853:8;16848:2;16840:6;16836:15;16829:33;16644:225;:::o;16875:366::-;17017:3;17038:67;17102:2;17097:3;17038:67;:::i;:::-;17031:74;;17114:93;17203:3;17114:93;:::i;:::-;17232:2;17227:3;17223:12;17216:19;;16875:366;;;:::o;17247:419::-;17413:4;17451:2;17440:9;17436:18;17428:26;;17500:9;17494:4;17490:20;17486:1;17475:9;17471:17;17464:47;17528:131;17654:4;17528:131;:::i;:::-;17520:139;;17247:419;;;:::o;17672:222::-;17812:34;17808:1;17800:6;17796:14;17789:58;17881:5;17876:2;17868:6;17864:15;17857:30;17672:222;:::o;17900:366::-;18042:3;18063:67;18127:2;18122:3;18063:67;:::i;:::-;18056:74;;18139:93;18228:3;18139:93;:::i;:::-;18257:2;18252:3;18248:12;18241:19;;17900:366;;;:::o;18272:419::-;18438:4;18476:2;18465:9;18461:18;18453:26;;18525:9;18519:4;18515:20;18511:1;18500:9;18496:17;18489:47;18553:131;18679:4;18553:131;:::i;:::-;18545:139;;18272:419;;;:::o;18697:225::-;18837:34;18833:1;18825:6;18821:14;18814:58;18906:8;18901:2;18893:6;18889:15;18882:33;18697:225;:::o;18928:366::-;19070:3;19091:67;19155:2;19150:3;19091:67;:::i;:::-;19084:74;;19167:93;19256:3;19167:93;:::i;:::-;19285:2;19280:3;19276:12;19269:19;;18928:366;;;:::o;19300:419::-;19466:4;19504:2;19493:9;19489:18;19481:26;;19553:9;19547:4;19543:20;19539:1;19528:9;19524:17;19517:47;19581:131;19707:4;19581:131;:::i;:::-;19573:139;;19300:419;;;:::o;19725:223::-;19865:34;19861:1;19853:6;19849:14;19842:58;19934:6;19929:2;19921:6;19917:15;19910:31;19725:223;:::o;19954:366::-;20096:3;20117:67;20181:2;20176:3;20117:67;:::i;:::-;20110:74;;20193:93;20282:3;20193:93;:::i;:::-;20311:2;20306:3;20302:12;20295:19;;19954:366;;;:::o;20326:419::-;20492:4;20530:2;20519:9;20515:18;20507:26;;20579:9;20573:4;20569:20;20565:1;20554:9;20550:17;20543:47;20607:131;20733:4;20607:131;:::i;:::-;20599:139;;20326:419;;;:::o;20751:221::-;20891:34;20887:1;20879:6;20875:14;20868:58;20960:4;20955:2;20947:6;20943:15;20936:29;20751:221;:::o;20978:366::-;21120:3;21141:67;21205:2;21200:3;21141:67;:::i;:::-;21134:74;;21217:93;21306:3;21217:93;:::i;:::-;21335:2;21330:3;21326:12;21319:19;;20978:366;;;:::o;21350:419::-;21516:4;21554:2;21543:9;21539:18;21531:26;;21603:9;21597:4;21593:20;21589:1;21578:9;21574:17;21567:47;21631:131;21757:4;21631:131;:::i;:::-;21623:139;;21350:419;;;:::o;21775:224::-;21915:34;21911:1;21903:6;21899:14;21892:58;21984:7;21979:2;21971:6;21967:15;21960:32;21775:224;:::o;22005:366::-;22147:3;22168:67;22232:2;22227:3;22168:67;:::i;:::-;22161:74;;22244:93;22333:3;22244:93;:::i;:::-;22362:2;22357:3;22353:12;22346:19;;22005:366;;;:::o;22377:419::-;22543:4;22581:2;22570:9;22566:18;22558:26;;22630:9;22624:4;22620:20;22616:1;22605:9;22601:17;22594:47;22658:131;22784:4;22658:131;:::i;:::-;22650:139;;22377:419;;;:::o;22802:222::-;22942:34;22938:1;22930:6;22926:14;22919:58;23011:5;23006:2;22998:6;22994:15;22987:30;22802:222;:::o;23030:366::-;23172:3;23193:67;23257:2;23252:3;23193:67;:::i;:::-;23186:74;;23269:93;23358:3;23269:93;:::i;:::-;23387:2;23382:3;23378:12;23371:19;;23030:366;;;:::o;23402:419::-;23568:4;23606:2;23595:9;23591:18;23583:26;;23655:9;23649:4;23645:20;23641:1;23630:9;23626:17;23619:47;23683:131;23809:4;23683:131;:::i;:::-;23675:139;;23402:419;;;:::o;23827:228::-;23967:34;23963:1;23955:6;23951:14;23944:58;24036:11;24031:2;24023:6;24019:15;24012:36;23827:228;:::o;24061:366::-;24203:3;24224:67;24288:2;24283:3;24224:67;:::i;:::-;24217:74;;24300:93;24389:3;24300:93;:::i;:::-;24418:2;24413:3;24409:12;24402:19;;24061:366;;;:::o;24433:419::-;24599:4;24637:2;24626:9;24622:18;24614:26;;24686:9;24680:4;24676:20;24672:1;24661:9;24657:17;24650:47;24714:131;24840:4;24714:131;:::i;:::-;24706:139;;24433:419;;;:::o;24858:250::-;24998:34;24994:1;24986:6;24982:14;24975:58;25067:33;25062:2;25054:6;25050:15;25043:58;24858:250;:::o;25114:366::-;25256:3;25277:67;25341:2;25336:3;25277:67;:::i;:::-;25270:74;;25353:93;25442:3;25353:93;:::i;:::-;25471:2;25466:3;25462:12;25455:19;;25114:366;;;:::o;25486:419::-;25652:4;25690:2;25679:9;25675:18;25667:26;;25739:9;25733:4;25729:20;25725:1;25714:9;25710:17;25703:47;25767:131;25893:4;25767:131;:::i;:::-;25759:139;;25486:419;;;:::o;25911:178::-;26051:30;26047:1;26039:6;26035:14;26028:54;25911:178;:::o;26095:366::-;26237:3;26258:67;26322:2;26317:3;26258:67;:::i;:::-;26251:74;;26334:93;26423:3;26334:93;:::i;:::-;26452:2;26447:3;26443:12;26436:19;;26095:366;;;:::o;26467:419::-;26633:4;26671:2;26660:9;26656:18;26648:26;;26720:9;26714:4;26710:20;26706:1;26695:9;26691:17;26684:47;26748:131;26874:4;26748:131;:::i;:::-;26740:139;;26467:419;;;:::o;26892:222::-;27032:34;27028:1;27020:6;27016:14;27009:58;27101:5;27096:2;27088:6;27084:15;27077:30;26892:222;:::o;27120:366::-;27262:3;27283:67;27347:2;27342:3;27283:67;:::i;:::-;27276:74;;27359:93;27448:3;27359:93;:::i;:::-;27477:2;27472:3;27468:12;27461:19;;27120:366;;;:::o;27492:419::-;27658:4;27696:2;27685:9;27681:18;27673:26;;27745:9;27739:4;27735:20;27731:1;27720:9;27716:17;27709:47;27773:131;27899:4;27773:131;:::i;:::-;27765:139;;27492:419;;;:::o;27917:305::-;27957:3;27976:20;27994:1;27976:20;:::i;:::-;27971:25;;28010:20;28028:1;28010:20;:::i;:::-;28005:25;;28164:1;28096:66;28092:74;28089:1;28086:81;28083:107;;;28170:18;;:::i;:::-;28083:107;28214:1;28211;28207:9;28200:16;;27917:305;;;;:::o;28228:222::-;28368:34;28364:1;28356:6;28352:14;28345:58;28437:5;28432:2;28424:6;28420:15;28413:30;28228:222;:::o;28456:366::-;28598:3;28619:67;28683:2;28678:3;28619:67;:::i;:::-;28612:74;;28695:93;28784:3;28695:93;:::i;:::-;28813:2;28808:3;28804:12;28797:19;;28456:366;;;:::o;28828:419::-;28994:4;29032:2;29021:9;29017:18;29009:26;;29081:9;29075:4;29071:20;29067:1;29056:9;29052:17;29045:47;29109:131;29235:4;29109:131;:::i;:::-;29101:139;;28828:419;;;:::o;29253:191::-;29293:4;29313:20;29331:1;29313:20;:::i;:::-;29308:25;;29347:20;29365:1;29347:20;:::i;:::-;29342:25;;29386:1;29383;29380:8;29377:34;;;29391:18;;:::i;:::-;29377:34;29436:1;29433;29429:9;29421:17;;29253:191;;;;:::o;29450:229::-;29590:34;29586:1;29578:6;29574:14;29567:58;29659:12;29654:2;29646:6;29642:15;29635:37;29450:229;:::o;29685:366::-;29827:3;29848:67;29912:2;29907:3;29848:67;:::i;:::-;29841:74;;29924:93;30013:3;29924:93;:::i;:::-;30042:2;30037:3;30033:12;30026:19;;29685:366;;;:::o;30057:419::-;30223:4;30261:2;30250:9;30246:18;30238:26;;30310:9;30304:4;30300:20;30296:1;30285:9;30281:17;30274:47;30338:131;30464:4;30338:131;:::i;:::-;30330:139;;30057:419;;;:::o;30482:143::-;30539:5;30570:6;30564:13;30555:22;;30586:33;30613:5;30586:33;:::i;:::-;30482:143;;;;:::o;30631:351::-;30701:6;30750:2;30738:9;30729:7;30725:23;30721:32;30718:119;;;30756:79;;:::i;:::-;30718:119;30876:1;30901:64;30957:7;30948:6;30937:9;30933:22;30901:64;:::i;:::-;30891:74;;30847:128;30631:351;;;;:::o;30988:85::-;31033:7;31062:5;31051:16;;30988:85;;;:::o;31079:158::-;31137:9;31170:61;31188:42;31197:32;31223:5;31197:32;:::i;:::-;31188:42;:::i;:::-;31170:61;:::i;:::-;31157:74;;31079:158;;;:::o;31243:147::-;31338:45;31377:5;31338:45;:::i;:::-;31333:3;31326:58;31243:147;;:::o;31396:114::-;31463:6;31497:5;31491:12;31481:22;;31396:114;;;:::o;31516:184::-;31615:11;31649:6;31644:3;31637:19;31689:4;31684:3;31680:14;31665:29;;31516:184;;;;:::o;31706:132::-;31773:4;31796:3;31788:11;;31826:4;31821:3;31817:14;31809:22;;31706:132;;;:::o;31844:108::-;31921:24;31939:5;31921:24;:::i;:::-;31916:3;31909:37;31844:108;;:::o;31958:179::-;32027:10;32048:46;32090:3;32082:6;32048:46;:::i;:::-;32126:4;32121:3;32117:14;32103:28;;31958:179;;;;:::o;32143:113::-;32213:4;32245;32240:3;32236:14;32228:22;;32143:113;;;:::o;32292:732::-;32411:3;32440:54;32488:5;32440:54;:::i;:::-;32510:86;32589:6;32584:3;32510:86;:::i;:::-;32503:93;;32620:56;32670:5;32620:56;:::i;:::-;32699:7;32730:1;32715:284;32740:6;32737:1;32734:13;32715:284;;;32816:6;32810:13;32843:63;32902:3;32887:13;32843:63;:::i;:::-;32836:70;;32929:60;32982:6;32929:60;:::i;:::-;32919:70;;32775:224;32762:1;32759;32755:9;32750:14;;32715:284;;;32719:14;33015:3;33008:10;;32416:608;;;32292:732;;;;:::o;33030:831::-;33293:4;33331:3;33320:9;33316:19;33308:27;;33345:71;33413:1;33402:9;33398:17;33389:6;33345:71;:::i;:::-;33426:80;33502:2;33491:9;33487:18;33478:6;33426:80;:::i;:::-;33553:9;33547:4;33543:20;33538:2;33527:9;33523:18;33516:48;33581:108;33684:4;33675:6;33581:108;:::i;:::-;33573:116;;33699:72;33767:2;33756:9;33752:18;33743:6;33699:72;:::i;:::-;33781:73;33849:3;33838:9;33834:19;33825:6;33781:73;:::i;:::-;33030:831;;;;;;;;:::o;33867:348::-;33907:7;33930:20;33948:1;33930:20;:::i;:::-;33925:25;;33964:20;33982:1;33964:20;:::i;:::-;33959:25;;34152:1;34084:66;34080:74;34077:1;34074:81;34069:1;34062:9;34055:17;34051:105;34048:131;;;34159:18;;:::i;:::-;34048:131;34207:1;34204;34200:9;34189:20;;33867:348;;;;:::o;34221:180::-;34269:77;34266:1;34259:88;34366:4;34363:1;34356:15;34390:4;34387:1;34380:15;34407:185;34447:1;34464:20;34482:1;34464:20;:::i;:::-;34459:25;;34498:20;34516:1;34498:20;:::i;:::-;34493:25;;34537:1;34527:35;;34542:18;;:::i;:::-;34527:35;34584:1;34581;34577:9;34572:14;;34407:185;;;;:::o;34598:220::-;34738:34;34734:1;34726:6;34722:14;34715:58;34807:3;34802:2;34794:6;34790:15;34783:28;34598:220;:::o;34824:366::-;34966:3;34987:67;35051:2;35046:3;34987:67;:::i;:::-;34980:74;;35063:93;35152:3;35063:93;:::i;:::-;35181:2;35176:3;35172:12;35165:19;;34824:366;;;:::o;35196:419::-;35362:4;35400:2;35389:9;35385:18;35377:26;;35449:9;35443:4;35439:20;35435:1;35424:9;35420:17;35413:47;35477:131;35603:4;35477:131;:::i;:::-;35469:139;;35196:419;;;:::o;35621:177::-;35761:29;35757:1;35749:6;35745:14;35738:53;35621:177;:::o;35804:366::-;35946:3;35967:67;36031:2;36026:3;35967:67;:::i;:::-;35960:74;;36043:93;36132:3;36043:93;:::i;:::-;36161:2;36156:3;36152:12;36145:19;;35804:366;;;:::o;36176:419::-;36342:4;36380:2;36369:9;36365:18;36357:26;;36429:9;36423:4;36419:20;36415:1;36404:9;36400:17;36393:47;36457:131;36583:4;36457:131;:::i;:::-;36449:139;;36176:419;;;:::o
Swarm Source
ipfs://aa39c0ae9cd937d61a833f6a598f32e152fe4d9dda455f8455c2ff4086bc3f27
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.