ERC-20
Overview
Max Total Supply
100,000,000 AIMEE
Holders
502
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
160,130.625693651 AIMEEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
AimeeToken
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-27 */ /* Website: www.aimee.network Twitter: https://twitter.com/Aimee_ERC Telegram: https://t.me/Aimee_ERC Gitbook: https://aimee-2.gitbook.io/v1/ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; 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 AimeeToken is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Aimee"; string private constant _symbol = "AIMEE"; 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 = 100000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private BuyFees = 30; uint256 private _redisFeeOnSell = 0; uint256 private SellFees = 60; //Original Fee uint256 private _redisFee = 0; uint256 private _taxFee = SellFees; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable public _developmentAddress; address payable public _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1300000 * 10**9; uint256 public _maxWalletSize = 1300000 * 10**9; uint256 public _swapTokensAtAmount = 500000 * 10**9; uint256 public marketing_allocation=30; uint256 public development_allocation=70; 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()); _developmentAddress = payable(0x7582b8A6C88EB1E4619C53E731294A5157D7C8D9); _marketingAddress = payable(0xD0b713ad5e65BE21971162478212997cb7809041); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: 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 = BuyFees; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = SellFees; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount*marketing_allocation/100); _developmentAddress.transfer(amount*development_allocation/100); } function launch() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function BlockWallets(address[] memory addys) public onlyOwner { for (uint256 i = 0; i < addys.length; i++) { bots[addys[i]] = true; } } function unBlockWallet(address _addy) public onlyOwner { bots[_addy] = 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 _changeFees(uint256 _buy, uint256 _sell) public onlyOwner { BuyFees = _buy; SellFees = _sell; } function _changeSwapbackThreshold(uint256 _amount) public onlyOwner { _swapTokensAtAmount = _amount; } function _toggleSwapback(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function _excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function setMaxTx(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWallet(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function removeLimits() public onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function setupWallet(address _marketing,address _development) public onlyOwner{ _marketingAddress = payable(_marketing); _developmentAddress = payable(_development); } function setupFeesAllocation(uint256 _mark , uint256 _dev) public onlyOwner{ require( _mark + _dev == 100 ,"allocation must be 100"); marketing_allocation=_mark; development_allocation=_dev; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addys","type":"address[]"}],"name":"BlockWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"_changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_changeSwapbackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"_excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"bool","name":"_swapEnabled","type":"bool"}],"name":"_toggleSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"development_allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketing_allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mark","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setupFeesAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setupWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":"_addy","type":"address"}],"name":"unBlockWallet","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
608060405267016345785d8a00005f196200001b9190620006eb565b5f196200002991906200074f565b6006555f600855601e6009555f600a55603c600b555f600c55600b54600d55600c54600e55600d54600f555f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066049e57d635400060165566049e57d63540006017556601c6bf52634000601855601e6019556046601a55348015620000bf575f80fd5b505f620000d16200068760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620001836200068760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000262573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002889190620007ee565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003149190620007ee565b6040518363ffffffff1660e01b8152600401620003339291906200082f565b6020604051808303815f875af115801562000350573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003769190620007ee565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737582b8a6c88eb1e4619c53e731294a5157d7c8d960125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d0b713ad5e65be21971162478212997cb780904160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004726200068e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006126200068760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200067891906200086b565b60405180910390a35062000886565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006f782620006b5565b91506200070483620006b5565b925082620007175762000716620006be565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200075b82620006b5565b91506200076883620006b5565b925082820390508181111562000783576200078262000722565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007b8826200078d565b9050919050565b620007ca81620007ac565b8114620007d5575f80fd5b50565b5f81519050620007e881620007bf565b92915050565b5f6020828403121562000806576200080562000789565b5b5f6200081584828501620007d8565b91505092915050565b6200082981620007ac565b82525050565b5f604082019050620008445f8301856200081e565b6200085360208301846200081e565b9392505050565b6200086581620006b5565b82525050565b5f602082019050620008805f8301846200085a565b92915050565b61412880620008945f395ff3fe60806040526004361061021d575f3560e01c80636fc3eaec11610122578063a9059cbb116100aa578063c767d9f11161006e578063c767d9f114610760578063caac793414610788578063dd62ed3e146107b2578063ecff2723146107ee578063f2fde38b1461081657610224565b8063a9059cbb14610682578063bc337182146106be578063bfd79284146106e6578063c3c2cb7e14610722578063c3c8cd801461074a57610224565b80637d1db4a5116100f15780637d1db4a51461059e5780637f2feddc146105c85780638da5cb5b146106045780638f9a55c01461062e57806395d89b411461065857610224565b80636fc3eaec1461052057806370a0823114610536578063715018a614610572578063751039fc1461058857610224565b80632fd689e3116101a55780633d6a9afe116101745780633d6a9afe1461045257806349bd5a5e1461047c5780634b21f70f146104a65780635c67d12d146104d05780635d0044ca146104f857610224565b80632fd689e3146103ac578063313ce567146103d6578063337d1fe0146104005780633424f5ff1461042857610224565b80631694505e116101ec5780631694505e146102cc57806318160ddd146102f657806323b872dd146103205780632c09ae6a1461035c5780632f10cfb11461038457610224565b806301339c211461022857806306fdde031461023e578063095ea7b3146102685780631361805c146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61083e565b005b348015610249575f80fd5b506102526108ef565b60405161025f9190613017565b60405180910390f35b348015610273575f80fd5b5061028e600480360381019061028991906130d5565b61092c565b60405161029b919061312d565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190613146565b610949565b005b3480156102d7575f80fd5b506102e06109ef565b6040516102ed91906131df565b60405180910390f35b348015610301575f80fd5b5061030a610a14565b6040516103179190613207565b60405180910390f35b34801561032b575f80fd5b5061034660048036038101906103419190613220565b610a23565b604051610353919061312d565b60405180910390f35b348015610367575f80fd5b50610382600480360381019061037d9190613270565b610af7565b005b34801561038f575f80fd5b506103aa60048036038101906103a59190613339565b610c0f565b005b3480156103b7575f80fd5b506103c0610d3e565b6040516103cd9190613207565b60405180910390f35b3480156103e1575f80fd5b506103ea610d44565b6040516103f791906133b1565b60405180910390f35b34801561040b575f80fd5b5061042660048036038101906104219190613146565b610d4c565b005b348015610433575f80fd5b5061043c610e40565b6040516104499190613207565b60405180910390f35b34801561045d575f80fd5b50610466610e46565b60405161047391906133ea565b60405180910390f35b348015610487575f80fd5b50610490610e6b565b60405161049d9190613412565b60405180910390f35b3480156104b1575f80fd5b506104ba610e90565b6040516104c79190613207565b60405180910390f35b3480156104db575f80fd5b506104f660048036038101906104f1919061342b565b610e96565b005b348015610503575f80fd5b5061051e60048036038101906105199190613456565b610f47565b005b34801561052b575f80fd5b50610534610fe5565b005b348015610541575f80fd5b5061055c60048036038101906105579190613481565b6110b2565b6040516105699190613207565b60405180910390f35b34801561057d575f80fd5b50610586611100565b005b348015610593575f80fd5b5061059c61124e565b005b3480156105a9575f80fd5b506105b2611302565b6040516105bf9190613207565b60405180910390f35b3480156105d3575f80fd5b506105ee60048036038101906105e99190613481565b611308565b6040516105fb9190613207565b60405180910390f35b34801561060f575f80fd5b5061061861131d565b6040516106259190613412565b60405180910390f35b348015610639575f80fd5b50610642611344565b60405161064f9190613207565b60405180910390f35b348015610663575f80fd5b5061066c61134a565b6040516106799190613017565b60405180910390f35b34801561068d575f80fd5b506106a860048036038101906106a391906130d5565b611387565b6040516106b5919061312d565b60405180910390f35b3480156106c9575f80fd5b506106e460048036038101906106df9190613456565b6113a4565b005b3480156106f1575f80fd5b5061070c60048036038101906107079190613481565b611442565b604051610719919061312d565b60405180910390f35b34801561072d575f80fd5b50610748600480360381019061074391906135e4565b61145f565b005b348015610755575f80fd5b5061075e61157e565b005b34801561076b575f80fd5b5061078660048036038101906107819190613481565b611653565b005b348015610793575f80fd5b5061079c61173e565b6040516107a991906133ea565b60405180910390f35b3480156107bd575f80fd5b506107d860048036038101906107d39190613270565b611763565b6040516107e59190613207565b60405180910390f35b3480156107f9575f80fd5b50610814600480360381019061080f9190613456565b6117e5565b005b348015610821575f80fd5b5061083c60048036038101906108379190613481565b611883565b005b610846611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c990613675565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f41696d6565000000000000000000000000000000000000000000000000000000815250905090565b5f61093f610938611a40565b8484611a47565b6001905092915050565b610951611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490613675565b60405180910390fd5b8160098190555080600b819055505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f610a2f848484611c0a565b610aec84610a3b611a40565b610ae7856040518060600160405280602881526020016140cb6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a9e611a40565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461246a9092919063ffffffff16565b611a47565b600190509392505050565b610aff611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613675565b60405180910390fd5b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610c17611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a90613675565b60405180910390fd5b5f5b83839050811015610d38578160055f868685818110610cc757610cc6613693565b5b9050602002016020810190610cdc9190613481565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ca5565b50505050565b60185481565b5f6009905090565b610d54611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd790613675565b60405180910390fd5b60648183610dee91906136ed565b14610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e259061376a565b60405180910390fd5b8160198190555080601a819055505050565b60195481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b610e9e611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2190613675565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b610f4f611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290613675565b60405180910390fd5b8060178190555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611025611a40565b73ffffffffffffffffffffffffffffffffffffffff16148061109a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611082611a40565b73ffffffffffffffffffffffffffffffffffffffff16145b6110a2575f80fd5b5f4790506110af816124cc565b50565b5f6110f960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125cb565b9050919050565b611108611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90613675565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611256611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990613675565b60405180910390fd5b67016345785d8a000060168190555067016345785d8a0000601781905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f41494d4545000000000000000000000000000000000000000000000000000000815250905090565b5f61139a611393611a40565b8484611c0a565b6001905092915050565b6113ac611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90613675565b60405180910390fd5b8060168190555050565b6010602052805f5260405f205f915054906101000a900460ff1681565b611467611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90613675565b60405180910390fd5b5f5b815181101561157a57600160105f84848151811061151657611515613693565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506114f5565b5050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115be611a40565b73ffffffffffffffffffffffffffffffffffffffff161480611633575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161b611a40565b73ffffffffffffffffffffffffffffffffffffffff16145b61163b575f80fd5b5f611645306110b2565b905061165081612637565b50565b61165b611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613675565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117ed611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090613675565b60405180910390fd5b8060188190555050565b61188b611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613675565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906137f8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aac90613886565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613914565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bfd9190613207565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f906139a2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90613a30565b60405180910390fd5b5f8111611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f90613abe565b60405180910390fd5b611d3061131d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d9e5750611d6e61131d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561217757601560149054906101000a900460ff16611e2d57611dbf61131d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390613b4c565b60405180910390fd5b5b601654811115611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613bb4565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f10575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4690613c42565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ffb5760175481611fb0846110b2565b611fba91906136ed565b10611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff190613cd0565b60405180910390fd5b5b5f612005306110b2565b90505f6018548210159050601854821061201f5760185491505b808015612037575060158054906101000a900460ff16155b8015612090575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120a85750601560169054906101000a900460ff165b80156120fb575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121745761215c82612637565b5f4790505f81111561217257612171476124cc565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612217575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806122c8575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122c7575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156122d5575f9050612458565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561237e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561239657600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561243f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561245757600a54600c81905550600b54600d819055505b5b612464848484846128a0565b50505050565b5f8383111582906124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a89190613017565b60405180910390fd5b505f83856124bf9190613cee565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064601954846125179190613d21565b6125219190613d8f565b90811502906040515f60405180830381858888f19350505050158015612549573d5f803e3d5ffd5b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064601a54846125959190613d21565b61259f9190613d8f565b90811502906040515f60405180830381858888f193505050501580156125c7573d5f803e3d5ffd5b5050565b5f600654821115612611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260890613e2f565b60405180910390fd5b5f61261a6128cd565b905061262f81846128f690919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561266d5761266c6134ac565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030815f815181106126b2576126b1613693565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612756573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061277a9190613e61565b8160018151811061278e5761278d613693565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127f43060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a47565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612856959493929190613f7c565b5f604051808303815f87803b15801561286d575f80fd5b505af115801561287f573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806128ae576128ad61293f565b5b6128b9848484612978565b806128c7576128c6612b38565b5b50505050565b5f805f6128d8612b4c565b915091506128ef81836128f690919063ffffffff16565b9250505090565b5f61293783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ba8565b905092915050565b5f600c5414801561295157505f600d54145b61297657600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061298787612c09565b9550955095509550955095506129e38660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612c6990919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612a748560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612cb290919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612abe81612d0f565b612ac88483612dc6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b259190613207565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a00009050612b7d67016345785d8a00006006546128f690919063ffffffff16565b821015612b9b5760065467016345785d8a0000935093505050612ba4565b81819350935050505b9091565b5f8083118290612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be59190613017565b60405180910390fd5b505f8385612bfc9190613d8f565b9050809150509392505050565b5f805f805f805f805f612c218a600c54600d54612e00565b9250925092505f612c306128cd565b90505f805f612c418e878787612e92565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612caa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061246a565b905092915050565b5f808284612cc091906136ed565b905083811015612d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfc9061401e565b60405180910390fd5b8091505092915050565b5f612d186128cd565b90505f612d2e8284612f1690919063ffffffff16565b9050612d808160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612cb290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ddb82600654612c6990919063ffffffff16565b600681905550612df681600754612cb290919063ffffffff16565b6007819055505050565b5f805f80612e2a6064612e1c888a612f1690919063ffffffff16565b6128f690919063ffffffff16565b90505f612e536064612e45888b612f1690919063ffffffff16565b6128f690919063ffffffff16565b90505f612e7b82612e6d858c612c6990919063ffffffff16565b612c6990919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612ea98589612f1690919063ffffffff16565b90505f612ebf8689612f1690919063ffffffff16565b90505f612ed58789612f1690919063ffffffff16565b90505f612efd82612eef8587612c6990919063ffffffff16565b612c6990919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612f26575f9050612f87565b5f8284612f339190613d21565b9050828482612f429190613d8f565b14612f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f79906140ac565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fc4578082015181840152602081019050612fa9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612fe982612f8d565b612ff38185612f97565b9350613003818560208601612fa7565b61300c81612fcf565b840191505092915050565b5f6020820190508181035f83015261302f8184612fdf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61307182613048565b9050919050565b61308181613067565b811461308b575f80fd5b50565b5f8135905061309c81613078565b92915050565b5f819050919050565b6130b4816130a2565b81146130be575f80fd5b50565b5f813590506130cf816130ab565b92915050565b5f80604083850312156130eb576130ea613040565b5b5f6130f88582860161308e565b9250506020613109858286016130c1565b9150509250929050565b5f8115159050919050565b61312781613113565b82525050565b5f6020820190506131405f83018461311e565b92915050565b5f806040838503121561315c5761315b613040565b5b5f613169858286016130c1565b925050602061317a858286016130c1565b9150509250929050565b5f819050919050565b5f6131a76131a261319d84613048565b613184565b613048565b9050919050565b5f6131b88261318d565b9050919050565b5f6131c9826131ae565b9050919050565b6131d9816131bf565b82525050565b5f6020820190506131f25f8301846131d0565b92915050565b613201816130a2565b82525050565b5f60208201905061321a5f8301846131f8565b92915050565b5f805f6060848603121561323757613236613040565b5b5f6132448682870161308e565b93505060206132558682870161308e565b9250506040613266868287016130c1565b9150509250925092565b5f806040838503121561328657613285613040565b5b5f6132938582860161308e565b92505060206132a48582860161308e565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126132cf576132ce6132ae565b5b8235905067ffffffffffffffff8111156132ec576132eb6132b2565b5b602083019150836020820283011115613308576133076132b6565b5b9250929050565b61331881613113565b8114613322575f80fd5b50565b5f813590506133338161330f565b92915050565b5f805f604084860312156133505761334f613040565b5b5f84013567ffffffffffffffff81111561336d5761336c613044565b5b613379868287016132ba565b9350935050602061338c86828701613325565b9150509250925092565b5f60ff82169050919050565b6133ab81613396565b82525050565b5f6020820190506133c45f8301846133a2565b92915050565b5f6133d482613048565b9050919050565b6133e4816133ca565b82525050565b5f6020820190506133fd5f8301846133db565b92915050565b61340c81613067565b82525050565b5f6020820190506134255f830184613403565b92915050565b5f602082840312156134405761343f613040565b5b5f61344d84828501613325565b91505092915050565b5f6020828403121561346b5761346a613040565b5b5f613478848285016130c1565b91505092915050565b5f6020828403121561349657613495613040565b5b5f6134a38482850161308e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6134e282612fcf565b810181811067ffffffffffffffff82111715613501576135006134ac565b5b80604052505050565b5f613513613037565b905061351f82826134d9565b919050565b5f67ffffffffffffffff82111561353e5761353d6134ac565b5b602082029050602081019050919050565b5f61356161355c84613524565b61350a565b90508083825260208201905060208402830185811115613584576135836132b6565b5b835b818110156135ad5780613599888261308e565b845260208401935050602081019050613586565b5050509392505050565b5f82601f8301126135cb576135ca6132ae565b5b81356135db84826020860161354f565b91505092915050565b5f602082840312156135f9576135f8613040565b5b5f82013567ffffffffffffffff81111561361657613615613044565b5b613622848285016135b7565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61365f602083612f97565b915061366a8261362b565b602082019050919050565b5f6020820190508181035f83015261368c81613653565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136f7826130a2565b9150613702836130a2565b925082820190508082111561371a576137196136c0565b5b92915050565b7f616c6c6f636174696f6e206d75737420626520313030000000000000000000005f82015250565b5f613754601683612f97565b915061375f82613720565b602082019050919050565b5f6020820190508181035f83015261378181613748565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137e2602683612f97565b91506137ed82613788565b604082019050919050565b5f6020820190508181035f83015261380f816137d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613870602483612f97565b915061387b82613816565b604082019050919050565b5f6020820190508181035f83015261389d81613864565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138fe602283612f97565b9150613909826138a4565b604082019050919050565b5f6020820190508181035f83015261392b816138f2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61398c602583612f97565b915061399782613932565b604082019050919050565b5f6020820190508181035f8301526139b981613980565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a1a602383612f97565b9150613a25826139c0565b604082019050919050565b5f6020820190508181035f830152613a4781613a0e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613aa8602983612f97565b9150613ab382613a4e565b604082019050919050565b5f6020820190508181035f830152613ad581613a9c565b9050919050565b7f544f4b454e3a2063616e6e6f742073656e6420746f6b656e7320756e74696c205f8201527f74726164696e6720697320656e61626c65640000000000000000000000000000602082015250565b5f613b36603283612f97565b9150613b4182613adc565b604082019050919050565b5f6020820190508181035f830152613b6381613b2a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613b9e601c83612f97565b9150613ba982613b6a565b602082019050919050565b5f6020820190508181035f830152613bcb81613b92565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613c2c602383612f97565b9150613c3782613bd2565b604082019050919050565b5f6020820190508181035f830152613c5981613c20565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613cba602383612f97565b9150613cc582613c60565b604082019050919050565b5f6020820190508181035f830152613ce781613cae565b9050919050565b5f613cf8826130a2565b9150613d03836130a2565b9250828203905081811115613d1b57613d1a6136c0565b5b92915050565b5f613d2b826130a2565b9150613d36836130a2565b9250828202613d44816130a2565b91508282048414831517613d5b57613d5a6136c0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d99826130a2565b9150613da4836130a2565b925082613db457613db3613d62565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613e19602a83612f97565b9150613e2482613dbf565b604082019050919050565b5f6020820190508181035f830152613e4681613e0d565b9050919050565b5f81519050613e5b81613078565b92915050565b5f60208284031215613e7657613e75613040565b5b5f613e8384828501613e4d565b91505092915050565b5f819050919050565b5f613eaf613eaa613ea584613e8c565b613184565b6130a2565b9050919050565b613ebf81613e95565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef781613067565b82525050565b5f613f088383613eee565b60208301905092915050565b5f602082019050919050565b5f613f2a82613ec5565b613f348185613ecf565b9350613f3f83613edf565b805f5b83811015613f6f578151613f568882613efd565b9750613f6183613f14565b925050600181019050613f42565b5085935050505092915050565b5f60a082019050613f8f5f8301886131f8565b613f9c6020830187613eb6565b8181036040830152613fae8186613f20565b9050613fbd6060830185613403565b613fca60808301846131f8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614008601b83612f97565b915061401382613fd4565b602082019050919050565b5f6020820190508181035f83015261403581613ffc565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614096602183612f97565b91506140a18261403c565b604082019050919050565b5f6020820190508181035f8301526140c38161408a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b940d59d575ac93b015c21153eb8e04b3f6c60bc3edb7e97e768159f0c037b4d64736f6c63430008180033
Deployed Bytecode
0x60806040526004361061021d575f3560e01c80636fc3eaec11610122578063a9059cbb116100aa578063c767d9f11161006e578063c767d9f114610760578063caac793414610788578063dd62ed3e146107b2578063ecff2723146107ee578063f2fde38b1461081657610224565b8063a9059cbb14610682578063bc337182146106be578063bfd79284146106e6578063c3c2cb7e14610722578063c3c8cd801461074a57610224565b80637d1db4a5116100f15780637d1db4a51461059e5780637f2feddc146105c85780638da5cb5b146106045780638f9a55c01461062e57806395d89b411461065857610224565b80636fc3eaec1461052057806370a0823114610536578063715018a614610572578063751039fc1461058857610224565b80632fd689e3116101a55780633d6a9afe116101745780633d6a9afe1461045257806349bd5a5e1461047c5780634b21f70f146104a65780635c67d12d146104d05780635d0044ca146104f857610224565b80632fd689e3146103ac578063313ce567146103d6578063337d1fe0146104005780633424f5ff1461042857610224565b80631694505e116101ec5780631694505e146102cc57806318160ddd146102f657806323b872dd146103205780632c09ae6a1461035c5780632f10cfb11461038457610224565b806301339c211461022857806306fdde031461023e578063095ea7b3146102685780631361805c146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61083e565b005b348015610249575f80fd5b506102526108ef565b60405161025f9190613017565b60405180910390f35b348015610273575f80fd5b5061028e600480360381019061028991906130d5565b61092c565b60405161029b919061312d565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190613146565b610949565b005b3480156102d7575f80fd5b506102e06109ef565b6040516102ed91906131df565b60405180910390f35b348015610301575f80fd5b5061030a610a14565b6040516103179190613207565b60405180910390f35b34801561032b575f80fd5b5061034660048036038101906103419190613220565b610a23565b604051610353919061312d565b60405180910390f35b348015610367575f80fd5b50610382600480360381019061037d9190613270565b610af7565b005b34801561038f575f80fd5b506103aa60048036038101906103a59190613339565b610c0f565b005b3480156103b7575f80fd5b506103c0610d3e565b6040516103cd9190613207565b60405180910390f35b3480156103e1575f80fd5b506103ea610d44565b6040516103f791906133b1565b60405180910390f35b34801561040b575f80fd5b5061042660048036038101906104219190613146565b610d4c565b005b348015610433575f80fd5b5061043c610e40565b6040516104499190613207565b60405180910390f35b34801561045d575f80fd5b50610466610e46565b60405161047391906133ea565b60405180910390f35b348015610487575f80fd5b50610490610e6b565b60405161049d9190613412565b60405180910390f35b3480156104b1575f80fd5b506104ba610e90565b6040516104c79190613207565b60405180910390f35b3480156104db575f80fd5b506104f660048036038101906104f1919061342b565b610e96565b005b348015610503575f80fd5b5061051e60048036038101906105199190613456565b610f47565b005b34801561052b575f80fd5b50610534610fe5565b005b348015610541575f80fd5b5061055c60048036038101906105579190613481565b6110b2565b6040516105699190613207565b60405180910390f35b34801561057d575f80fd5b50610586611100565b005b348015610593575f80fd5b5061059c61124e565b005b3480156105a9575f80fd5b506105b2611302565b6040516105bf9190613207565b60405180910390f35b3480156105d3575f80fd5b506105ee60048036038101906105e99190613481565b611308565b6040516105fb9190613207565b60405180910390f35b34801561060f575f80fd5b5061061861131d565b6040516106259190613412565b60405180910390f35b348015610639575f80fd5b50610642611344565b60405161064f9190613207565b60405180910390f35b348015610663575f80fd5b5061066c61134a565b6040516106799190613017565b60405180910390f35b34801561068d575f80fd5b506106a860048036038101906106a391906130d5565b611387565b6040516106b5919061312d565b60405180910390f35b3480156106c9575f80fd5b506106e460048036038101906106df9190613456565b6113a4565b005b3480156106f1575f80fd5b5061070c60048036038101906107079190613481565b611442565b604051610719919061312d565b60405180910390f35b34801561072d575f80fd5b50610748600480360381019061074391906135e4565b61145f565b005b348015610755575f80fd5b5061075e61157e565b005b34801561076b575f80fd5b5061078660048036038101906107819190613481565b611653565b005b348015610793575f80fd5b5061079c61173e565b6040516107a991906133ea565b60405180910390f35b3480156107bd575f80fd5b506107d860048036038101906107d39190613270565b611763565b6040516107e59190613207565b60405180910390f35b3480156107f9575f80fd5b50610814600480360381019061080f9190613456565b6117e5565b005b348015610821575f80fd5b5061083c60048036038101906108379190613481565b611883565b005b610846611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c990613675565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f41696d6565000000000000000000000000000000000000000000000000000000815250905090565b5f61093f610938611a40565b8484611a47565b6001905092915050565b610951611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490613675565b60405180910390fd5b8160098190555080600b819055505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b5f610a2f848484611c0a565b610aec84610a3b611a40565b610ae7856040518060600160405280602881526020016140cb6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a9e611a40565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461246a9092919063ffffffff16565b611a47565b600190509392505050565b610aff611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613675565b60405180910390fd5b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610c17611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a90613675565b60405180910390fd5b5f5b83839050811015610d38578160055f868685818110610cc757610cc6613693565b5b9050602002016020810190610cdc9190613481565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ca5565b50505050565b60185481565b5f6009905090565b610d54611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd790613675565b60405180910390fd5b60648183610dee91906136ed565b14610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e259061376a565b60405180910390fd5b8160198190555080601a819055505050565b60195481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b610e9e611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2190613675565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b610f4f611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290613675565b60405180910390fd5b8060178190555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611025611a40565b73ffffffffffffffffffffffffffffffffffffffff16148061109a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611082611a40565b73ffffffffffffffffffffffffffffffffffffffff16145b6110a2575f80fd5b5f4790506110af816124cc565b50565b5f6110f960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125cb565b9050919050565b611108611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90613675565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611256611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990613675565b60405180910390fd5b67016345785d8a000060168190555067016345785d8a0000601781905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f41494d4545000000000000000000000000000000000000000000000000000000815250905090565b5f61139a611393611a40565b8484611c0a565b6001905092915050565b6113ac611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90613675565b60405180910390fd5b8060168190555050565b6010602052805f5260405f205f915054906101000a900460ff1681565b611467611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90613675565b60405180910390fd5b5f5b815181101561157a57600160105f84848151811061151657611515613693565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506114f5565b5050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115be611a40565b73ffffffffffffffffffffffffffffffffffffffff161480611633575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161b611a40565b73ffffffffffffffffffffffffffffffffffffffff16145b61163b575f80fd5b5f611645306110b2565b905061165081612637565b50565b61165b611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613675565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117ed611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090613675565b60405180910390fd5b8060188190555050565b61188b611a40565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613675565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906137f8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aac90613886565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613914565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bfd9190613207565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f906139a2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdd90613a30565b60405180910390fd5b5f8111611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f90613abe565b60405180910390fd5b611d3061131d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d9e5750611d6e61131d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561217757601560149054906101000a900460ff16611e2d57611dbf61131d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390613b4c565b60405180910390fd5b5b601654811115611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613bb4565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f10575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4690613c42565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ffb5760175481611fb0846110b2565b611fba91906136ed565b10611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff190613cd0565b60405180910390fd5b5b5f612005306110b2565b90505f6018548210159050601854821061201f5760185491505b808015612037575060158054906101000a900460ff16155b8015612090575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120a85750601560169054906101000a900460ff165b80156120fb575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561214e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121745761215c82612637565b5f4790505f81111561217257612171476124cc565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612217575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806122c8575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122c7575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156122d5575f9050612458565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561237e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561239657600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561243f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561245757600a54600c81905550600b54600d819055505b5b612464848484846128a0565b50505050565b5f8383111582906124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a89190613017565b60405180910390fd5b505f83856124bf9190613cee565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064601954846125179190613d21565b6125219190613d8f565b90811502906040515f60405180830381858888f19350505050158015612549573d5f803e3d5ffd5b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064601a54846125959190613d21565b61259f9190613d8f565b90811502906040515f60405180830381858888f193505050501580156125c7573d5f803e3d5ffd5b5050565b5f600654821115612611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260890613e2f565b60405180910390fd5b5f61261a6128cd565b905061262f81846128f690919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561266d5761266c6134ac565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030815f815181106126b2576126b1613693565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612756573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061277a9190613e61565b8160018151811061278e5761278d613693565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127f43060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a47565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612856959493929190613f7c565b5f604051808303815f87803b15801561286d575f80fd5b505af115801561287f573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806128ae576128ad61293f565b5b6128b9848484612978565b806128c7576128c6612b38565b5b50505050565b5f805f6128d8612b4c565b915091506128ef81836128f690919063ffffffff16565b9250505090565b5f61293783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ba8565b905092915050565b5f600c5414801561295157505f600d54145b61297657600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061298787612c09565b9550955095509550955095506129e38660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612c6990919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612a748560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612cb290919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612abe81612d0f565b612ac88483612dc6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b259190613207565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a00009050612b7d67016345785d8a00006006546128f690919063ffffffff16565b821015612b9b5760065467016345785d8a0000935093505050612ba4565b81819350935050505b9091565b5f8083118290612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be59190613017565b60405180910390fd5b505f8385612bfc9190613d8f565b9050809150509392505050565b5f805f805f805f805f612c218a600c54600d54612e00565b9250925092505f612c306128cd565b90505f805f612c418e878787612e92565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612caa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061246a565b905092915050565b5f808284612cc091906136ed565b905083811015612d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfc9061401e565b60405180910390fd5b8091505092915050565b5f612d186128cd565b90505f612d2e8284612f1690919063ffffffff16565b9050612d808160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612cb290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ddb82600654612c6990919063ffffffff16565b600681905550612df681600754612cb290919063ffffffff16565b6007819055505050565b5f805f80612e2a6064612e1c888a612f1690919063ffffffff16565b6128f690919063ffffffff16565b90505f612e536064612e45888b612f1690919063ffffffff16565b6128f690919063ffffffff16565b90505f612e7b82612e6d858c612c6990919063ffffffff16565b612c6990919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612ea98589612f1690919063ffffffff16565b90505f612ebf8689612f1690919063ffffffff16565b90505f612ed58789612f1690919063ffffffff16565b90505f612efd82612eef8587612c6990919063ffffffff16565b612c6990919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612f26575f9050612f87565b5f8284612f339190613d21565b9050828482612f429190613d8f565b14612f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f79906140ac565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612fc4578082015181840152602081019050612fa9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612fe982612f8d565b612ff38185612f97565b9350613003818560208601612fa7565b61300c81612fcf565b840191505092915050565b5f6020820190508181035f83015261302f8184612fdf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61307182613048565b9050919050565b61308181613067565b811461308b575f80fd5b50565b5f8135905061309c81613078565b92915050565b5f819050919050565b6130b4816130a2565b81146130be575f80fd5b50565b5f813590506130cf816130ab565b92915050565b5f80604083850312156130eb576130ea613040565b5b5f6130f88582860161308e565b9250506020613109858286016130c1565b9150509250929050565b5f8115159050919050565b61312781613113565b82525050565b5f6020820190506131405f83018461311e565b92915050565b5f806040838503121561315c5761315b613040565b5b5f613169858286016130c1565b925050602061317a858286016130c1565b9150509250929050565b5f819050919050565b5f6131a76131a261319d84613048565b613184565b613048565b9050919050565b5f6131b88261318d565b9050919050565b5f6131c9826131ae565b9050919050565b6131d9816131bf565b82525050565b5f6020820190506131f25f8301846131d0565b92915050565b613201816130a2565b82525050565b5f60208201905061321a5f8301846131f8565b92915050565b5f805f6060848603121561323757613236613040565b5b5f6132448682870161308e565b93505060206132558682870161308e565b9250506040613266868287016130c1565b9150509250925092565b5f806040838503121561328657613285613040565b5b5f6132938582860161308e565b92505060206132a48582860161308e565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126132cf576132ce6132ae565b5b8235905067ffffffffffffffff8111156132ec576132eb6132b2565b5b602083019150836020820283011115613308576133076132b6565b5b9250929050565b61331881613113565b8114613322575f80fd5b50565b5f813590506133338161330f565b92915050565b5f805f604084860312156133505761334f613040565b5b5f84013567ffffffffffffffff81111561336d5761336c613044565b5b613379868287016132ba565b9350935050602061338c86828701613325565b9150509250925092565b5f60ff82169050919050565b6133ab81613396565b82525050565b5f6020820190506133c45f8301846133a2565b92915050565b5f6133d482613048565b9050919050565b6133e4816133ca565b82525050565b5f6020820190506133fd5f8301846133db565b92915050565b61340c81613067565b82525050565b5f6020820190506134255f830184613403565b92915050565b5f602082840312156134405761343f613040565b5b5f61344d84828501613325565b91505092915050565b5f6020828403121561346b5761346a613040565b5b5f613478848285016130c1565b91505092915050565b5f6020828403121561349657613495613040565b5b5f6134a38482850161308e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6134e282612fcf565b810181811067ffffffffffffffff82111715613501576135006134ac565b5b80604052505050565b5f613513613037565b905061351f82826134d9565b919050565b5f67ffffffffffffffff82111561353e5761353d6134ac565b5b602082029050602081019050919050565b5f61356161355c84613524565b61350a565b90508083825260208201905060208402830185811115613584576135836132b6565b5b835b818110156135ad5780613599888261308e565b845260208401935050602081019050613586565b5050509392505050565b5f82601f8301126135cb576135ca6132ae565b5b81356135db84826020860161354f565b91505092915050565b5f602082840312156135f9576135f8613040565b5b5f82013567ffffffffffffffff81111561361657613615613044565b5b613622848285016135b7565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61365f602083612f97565b915061366a8261362b565b602082019050919050565b5f6020820190508181035f83015261368c81613653565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136f7826130a2565b9150613702836130a2565b925082820190508082111561371a576137196136c0565b5b92915050565b7f616c6c6f636174696f6e206d75737420626520313030000000000000000000005f82015250565b5f613754601683612f97565b915061375f82613720565b602082019050919050565b5f6020820190508181035f83015261378181613748565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137e2602683612f97565b91506137ed82613788565b604082019050919050565b5f6020820190508181035f83015261380f816137d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613870602483612f97565b915061387b82613816565b604082019050919050565b5f6020820190508181035f83015261389d81613864565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138fe602283612f97565b9150613909826138a4565b604082019050919050565b5f6020820190508181035f83015261392b816138f2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61398c602583612f97565b915061399782613932565b604082019050919050565b5f6020820190508181035f8301526139b981613980565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a1a602383612f97565b9150613a25826139c0565b604082019050919050565b5f6020820190508181035f830152613a4781613a0e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613aa8602983612f97565b9150613ab382613a4e565b604082019050919050565b5f6020820190508181035f830152613ad581613a9c565b9050919050565b7f544f4b454e3a2063616e6e6f742073656e6420746f6b656e7320756e74696c205f8201527f74726164696e6720697320656e61626c65640000000000000000000000000000602082015250565b5f613b36603283612f97565b9150613b4182613adc565b604082019050919050565b5f6020820190508181035f830152613b6381613b2a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613b9e601c83612f97565b9150613ba982613b6a565b602082019050919050565b5f6020820190508181035f830152613bcb81613b92565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613c2c602383612f97565b9150613c3782613bd2565b604082019050919050565b5f6020820190508181035f830152613c5981613c20565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613cba602383612f97565b9150613cc582613c60565b604082019050919050565b5f6020820190508181035f830152613ce781613cae565b9050919050565b5f613cf8826130a2565b9150613d03836130a2565b9250828203905081811115613d1b57613d1a6136c0565b5b92915050565b5f613d2b826130a2565b9150613d36836130a2565b9250828202613d44816130a2565b91508282048414831517613d5b57613d5a6136c0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d99826130a2565b9150613da4836130a2565b925082613db457613db3613d62565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613e19602a83612f97565b9150613e2482613dbf565b604082019050919050565b5f6020820190508181035f830152613e4681613e0d565b9050919050565b5f81519050613e5b81613078565b92915050565b5f60208284031215613e7657613e75613040565b5b5f613e8384828501613e4d565b91505092915050565b5f819050919050565b5f613eaf613eaa613ea584613e8c565b613184565b6130a2565b9050919050565b613ebf81613e95565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef781613067565b82525050565b5f613f088383613eee565b60208301905092915050565b5f602082019050919050565b5f613f2a82613ec5565b613f348185613ecf565b9350613f3f83613edf565b805f5b83811015613f6f578151613f568882613efd565b9750613f6183613f14565b925050600181019050613f42565b5085935050505092915050565b5f60a082019050613f8f5f8301886131f8565b613f9c6020830187613eb6565b8181036040830152613fae8186613f20565b9050613fbd6060830185613403565b613fca60808301846131f8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614008601b83612f97565b915061401382613fd4565b602082019050919050565b5f6020820190508181035f83015261403581613ffc565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614096602183612f97565b91506140a18261403c565b604082019050919050565b5f6020820190508181035f8301526140c38161408a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b940d59d575ac93b015c21153eb8e04b3f6c60bc3edb7e97e768159f0c037b4d64736f6c63430008180033
Deployed Bytecode Sourcemap
4191:13966:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12504:72;;;;;;;;;;;;;:::i;:::-;;6800:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7732:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16756:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5400:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7080:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7934:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17727:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17123:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5700:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6988:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17923:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5300:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5448:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5806:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17011:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17487:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12827:235;;;;;;;;;;;;;:::i;:::-;;7184:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:148;;;;;;;;;;;;;:::i;:::-;;17604:117;;;;;;;;;;;;;:::i;:::-;;5592:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5249:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1493:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5645:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6892:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7331:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17370:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5211:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13071:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12582:236;;;;;;;;;;;;;:::i;:::-;;13249:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5349:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7539:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16889:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1860:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12504:72;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12564:4:::1;12550:11;;:18;;;;;;;;;;;;;;;;;;12504:72::o:0;6800:83::-;6837:13;6870:5;;;;;;;;;;;;;;;;;6863:12;;6800:83;:::o;7732:193::-;7834:4;7856:39;7865:12;:10;:12::i;:::-;7879:7;7888:6;7856:8;:39::i;:::-;7913:4;7906:11;;7732:193;;;;:::o;16756:127::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16844:4:::1;16834:7;:14;;;;16870:5;16859:8;:16;;;;16756:127:::0;;:::o;5400:41::-;;;;;;;;;;;;;:::o;7080:95::-;7133:7;4732:17;7153:14;;7080:95;:::o;7934:446::-;8066:4;8083:36;8093:6;8101:9;8112:6;8083:9;:36::i;:::-;8130:220;8153:6;8174:12;:10;:12::i;:::-;8201:138;8257:6;8201:138;;;;;;;;;;;;;;;;;:11;:19;8213:6;8201:19;;;;;;;;;;;;;;;:33;8221:12;:10;:12::i;:::-;8201:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8130:8;:220::i;:::-;8368:4;8361:11;;7934:446;;;;;:::o;17727:190::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17844:10:::1;17816:17;;:39;;;;;;;;;;;;;;;;;;17896:12;17866:19;;:43;;;;;;;;;;;;;;;;;;17727:190:::0;;:::o;17123:235::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17241:9:::1;17237:114;17260:8;;:15;;17256:1;:19;17237:114;;;17331:8;17297:18;:31;17316:8;;17325:1;17316:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17297:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17277:3;;;;;;;17237:114;;;;17123:235:::0;;;:::o;5700:51::-;;;;:::o;6988:83::-;7029:5;4408:1;7047:16;;6988:83;:::o;17923:225::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18035:3:::1;18027:4;18019:5;:12;;;;:::i;:::-;:19;18010:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18097:5;18076:20;:26;;;;18136:4;18113:22;:27;;;;17923:225:::0;;:::o;5761:38::-;;;;:::o;5300:42::-;;;;;;;;;;;;;:::o;5448:28::-;;;;;;;;;;;;;:::o;5806:40::-;;;;:::o;17011:106::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17097:12:::1;17083:11;;:26;;;;;;;;;;;;;;;;;;17011:106:::0;:::o;17487:111::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17577:13:::1;17560:14;:30;;;;17487:111:::0;:::o;12827:235::-;12893:19;;;;;;;;;;;12877:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12932:17;;;;;;;;;;;12916:33;;:12;:10;:12::i;:::-;:33;;;12877:72;12869:81;;;;;;12961:26;12990:21;12961:50;;13022:32;13035:18;13022:12;:32::i;:::-;12858:204;12827:235::o;7184:138::-;7250:7;7277:37;7297:7;:16;7305:7;7297:16;;;;;;;;;;;;;;;;7277:19;:37::i;:::-;7270:44;;7184:138;;;:::o;1703:148::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1810:1:::1;1773:40;;1794:6;::::0;::::1;;;;;;;;1773:40;;;;;;;;;;;;1841:1;1824:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1703:148::o:0;17604:117::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4732:17:::1;17656:12;:22;;;;4732:17;17689:14;:24;;;;17604:117::o:0;5592:45::-;;;;:::o;5249:43::-;;;;;;;;;;;;;;;;;:::o;1493:79::-;1531:7;1558:6;;;;;;;;;;;1551:13;;1493:79;:::o;5645:47::-;;;;:::o;6892:87::-;6931:13;6964:7;;;;;;;;;;;;;;;;;6957:14;;6892:87;:::o;7331:199::-;7436:4;7458:42;7468:12;:10;:12::i;:::-;7482:9;7493:6;7458:9;:42::i;:::-;7518:4;7511:11;;7331:199;;;;:::o;17370:111::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17455:11:::1;17440:12;:26;;;;17370:111:::0;:::o;5211:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13071:172::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13150:9:::1;13145:91;13169:5;:12;13165:1;:16;13145:91;;;13220:4;13203;:14;13208:5;13214:1;13208:8;;;;;;;;:::i;:::-;;;;;;;;13203:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13183:3;;;;;;;13145:91;;;;13071:172:::0;:::o;12582:236::-;12648:19;;;;;;;;;;;12632:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12687:17;;;;;;;;;;;12671:33;;:12;:10;:12::i;:::-;:33;;;12632:72;12624:81;;;;;;12716:23;12742:24;12760:4;12742:9;:24::i;:::-;12716:50;;12777:33;12794:15;12777:16;:33::i;:::-;12613:205;12582:236::o;13249:93::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13329:5:::1;13315:4;:11;13320:5;13315:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;13249:93:::0;:::o;5349:41::-;;;;;;;;;;;;;:::o;7539:184::-;7656:7;7688:11;:18;7700:5;7688:18;;;;;;;;;;;;;;;:27;7707:7;7688:27;;;;;;;;;;;;;;;;7681:34;;7539:184;;;;:::o;16889:116::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16990:7:::1;16968:19;:29;;;;16889:116:::0;:::o;1860:244::-;1628:12;:10;:12::i;:::-;1618:22;;:6;;;;;;;;;;:22;;;1610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1969:1:::1;1949:22;;:8;:22;;::::0;1941:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2059:8;2030:38;;2051:6;::::0;::::1;;;;;;;;2030:38;;;;;;;;;;;;2088:8;2079:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1860:244:::0;:::o;272:98::-;325:7;352:10;345:17;;272:98;:::o;9077:369::-;9221:1;9204:19;;:5;:19;;;9196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9302:1;9283:21;;:7;:21;;;9275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9384:6;9354:11;:18;9366:5;9354:18;;;;;;;;;;;;;;;:27;9373:7;9354:27;;;;;;;;;;;;;;;:36;;;;9422:7;9406:32;;9415:5;9406:32;;;9431:6;9406:32;;;;;;:::i;:::-;;;;;;;;9077:369;;;:::o;9455:2334::-;9593:1;9577:18;;:4;:18;;;9569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9670:1;9656:16;;:2;:16;;;9648:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9740:1;9731:6;:10;9723:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9813:7;:5;:7::i;:::-;9805:15;;:4;:15;;;;:32;;;;;9830:7;:5;:7::i;:::-;9824:13;;:2;:13;;;;9805:32;9801:1266;;;9895:11;;;;;;;;;;;9890:131;;9943:7;:5;:7::i;:::-;9935:15;;:4;:15;;;9927:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9890:131;10056:12;;10046:6;:22;;10038:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10125:4;:10;10130:4;10125:10;;;;;;;;;;;;;;;;;;;;;;;;;10124:11;:24;;;;;10140:4;:8;10145:2;10140:8;;;;;;;;;;;;;;;;;;;;;;;;;10139:9;10124:24;10116:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10215:13;;;;;;;;;;;10209:19;;:2;:19;;;10206:146;;10282:14;;10273:6;10257:13;10267:2;10257:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10249:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10206:146;10369:28;10400:24;10418:4;10400:9;:24::i;:::-;10369:55;;10439:12;10478:19;;10454:20;:43;;10439:58;;10542:19;;10518:20;:43;10515:138;;10618:19;;10595:42;;10515:138;10674:7;:18;;;;;10686:6;;;;;;;;;;10685:7;10674:18;:43;;;;;10704:13;;;;;;;;;;;10696:21;;:4;:21;;;;10674:43;:58;;;;;10721:11;;;;;;;;;;;10674:58;:87;;;;;10737:18;:24;10756:4;10737:24;;;;;;;;;;;;;;;;;;;;;;;;;10736:25;10674:87;:114;;;;;10766:18;:22;10785:2;10766:22;;;;;;;;;;;;;;;;;;;;;;;;;10765:23;10674:114;10670:386;;;10809:38;10826:20;10809:16;:38::i;:::-;10866:26;10895:21;10866:50;;10960:1;10939:18;:22;10935:106;;;10986:35;10999:21;10986:12;:35::i;:::-;10935:106;10790:266;10670:386;9839:1228;;9801:1266;11080:12;11095:4;11080:19;;11145:18;:24;11164:4;11145:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11173:18;:22;11192:2;11173:22;;;;;;;;;;;;;;;;;;;;;;;;;11145:50;11144:102;;;;11209:13;;;;;;;;;;;11201:21;;:4;:21;;;;:44;;;;;11232:13;;;;;;;;;;;11226:19;;:2;:19;;;;11201:44;11144:102;11140:587;;;11273:5;11263:15;;11140:587;;;11357:13;;;;;;;;;;;11349:21;;:4;:21;;;:55;;;;;11388:15;;;;;;;;;;;11374:30;;:2;:30;;;;11349:55;11346:157;;;11437:14;;11425:9;:26;;;;11480:7;;11470;:17;;;;11346:157;11563:13;;;;;;;;;;;11557:19;;:2;:19;;;:55;;;;;11596:15;;;;;;;;;;;11580:32;;:4;:32;;;;11557:55;11553:160;;;11645:15;;11633:9;:27;;;;11689:8;;11679:7;:18;;;;11553:160;11140:587;11740:41;11755:4;11761:2;11765:6;11773:7;11740:14;:41::i;:::-;9558:2231;9455:2334;;;:::o;2460:224::-;2580:7;2613:1;2608;:6;;2616:12;2600:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2640:9;2656:1;2652;:5;;;;:::i;:::-;2640:17;;2675:1;2668:8;;;2460:224;;;;;:::o;12290:208::-;12347:17;;;;;;;;;;;:26;;:59;12402:3;12381:20;;12374:6;:27;;;;:::i;:::-;:31;;;;:::i;:::-;12347:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12417:19;;;;;;;;;;;:28;;:63;12476:3;12453:22;;12446:6;:29;;;;:::i;:::-;:33;;;;:::i;:::-;12417:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12290:208;:::o;8389:323::-;8484:7;8542;;8531;:18;;8509:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8630:19;8652:10;:8;:10::i;:::-;8630:32;;8680:24;8692:11;8680:7;:11;;:24;;;;:::i;:::-;8673:31;;;8389:323;;;:::o;11798:483::-;5949:4;5940:6;;:13;;;;;;;;;;;;;;;;;;11876:21:::1;11914:1;11900:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11876:40;;11945:4;11927;11932:1;11927:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11971:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11961:4;11966:1;11961:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12004:62;12021:4;12036:15;;;;;;;;;;;12054:11;12004:8;:62::i;:::-;12077:15;;;;;;;;;;;:66;;;12158:11;12184:1;12200:4;12227;12247:15;12077:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11865:416;5985:5:::0;5976:6;;:14;;;;;;;;;;;;;;;;;;11798:483;:::o;13348:282::-;13504:7;13499:28;;13513:14;:12;:14::i;:::-;13499:28;13538:44;13556:6;13564:9;13575:6;13538:17;:44::i;:::-;13598:7;13593:29;;13607:15;:13;:15::i;:::-;13593:29;13348:282;;;;:::o;16317:164::-;16359:7;16380:15;16397;16416:19;:17;:19::i;:::-;16379:56;;;;16453:20;16465:7;16453;:11;;:20;;;;:::i;:::-;16446:27;;;;16317:164;:::o;2942:132::-;3000:7;3027:39;3031:1;3034;3027:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3020:46;;2942:132;;;;:::o;8721:221::-;8781:1;8768:9;;:14;:30;;;;;8797:1;8786:7;;:12;8768:30;8800:7;8764:43;8840:9;;8820:17;:29;;;;8878:7;;8860:15;:25;;;;8911:1;8899:9;:13;;;;8933:1;8923:7;:11;;;;8721:221;:::o;13639:610::-;13786:15;13816:23;13854:12;13881:23;13919:12;13946:13;13973:19;13984:7;13973:10;:19::i;:::-;13771:221;;;;;;;;;;;;14021:28;14041:7;14021;:15;14029:6;14021:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14003:7;:15;14011:6;14003:15;;;;;;;;;;;;;;;:46;;;;14081:39;14104:15;14081:7;:18;14089:9;14081:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14060:7;:18;14068:9;14060:18;;;;;;;;;;;;;;;:60;;;;14131:16;14141:5;14131:9;:16::i;:::-;14158:23;14170:4;14176;14158:11;:23::i;:::-;14214:9;14197:44;;14206:6;14197:44;;;14225:15;14197:44;;;;;;:::i;:::-;;;;;;;;13760:489;;;;;;13639:610;;;:::o;8951:117::-;9007:17;;8995:9;:29;;;;9045:15;;9035:7;:25;;;;8951:117::o;16490:257::-;16541:7;16550;16570:15;16588:7;;16570:25;;16606:15;4732:17;16606:25;;16656:20;4732:17;16656:7;;:11;;:20;;;;:::i;:::-;16646:7;:30;16642:61;;;16686:7;;4732:17;16678:25;;;;;;;;16642:61;16722:7;16731;16714:25;;;;;;16490:257;;;:::o;3080:223::-;3200:7;3232:1;3228;:5;3235:12;3220:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3259:9;3275:1;3271;:5;;;;:::i;:::-;3259:17;;3294:1;3287:8;;;3080:223;;;;;:::o;14672:615::-;14772:7;14794;14816;14838;14860;14882;14918:23;14943:12;14957:13;14987:40;14999:7;15008:9;;15019:7;;14987:11;:40::i;:::-;14917:110;;;;;;15038:19;15060:10;:8;:10::i;:::-;15038:32;;15082:15;15099:23;15124:12;15153:46;15165:7;15174:4;15180:5;15187:11;15153;:46::i;:::-;15081:118;;;;;;15218:7;15227:15;15244:4;15250:15;15267:4;15273:5;15210:69;;;;;;;;;;;;;;;;;;;14672:615;;;;;;;:::o;2318:136::-;2376:7;2403:43;2407:1;2410;2403:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2396:50;;2318:136;;;;:::o;2133:179::-;2191:7;2211:9;2227:1;2223;:5;;;;:::i;:::-;2211:17;;2252:1;2247;:6;;2239:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2303:1;2296:8;;;2133:179;;;;:::o;14258:211::-;14311:19;14333:10;:8;:10::i;:::-;14311:32;;14354:13;14370:22;14380:11;14370:5;:9;;:22;;;;:::i;:::-;14354:38;;14428:33;14455:5;14428:7;:22;14444:4;14428:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14403:7;:22;14419:4;14403:22;;;;;;;;;;;;;;;:58;;;;14300:169;;14258:211;:::o;14478:147::-;14556:17;14568:4;14556:7;;:11;;:17;;;;:::i;:::-;14546:7;:27;;;;14597:20;14612:4;14597:10;;:14;;:20;;;;:::i;:::-;14584:10;:33;;;;14478:147;;:::o;15296:469::-;15465:7;15487;15509;15544:12;15559:30;15585:3;15559:21;15571:8;15559:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15544:45;;15600:13;15616:28;15640:3;15616:19;15628:6;15616:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15600:44;;15655:23;15681:28;15703:5;15681:17;15693:4;15681:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15655:54;;15728:15;15745:4;15751:5;15720:37;;;;;;;;;15296:469;;;;;;;:::o;15774:534::-;15968:7;15990;16012;16047:15;16065:24;16077:11;16065:7;:11;;:24;;;;:::i;:::-;16047:42;;16100:12;16115:21;16124:11;16115:4;:8;;:21;;;;:::i;:::-;16100:36;;16147:13;16163:22;16173:11;16163:5;:9;;:22;;;;:::i;:::-;16147:38;;16196:23;16222:28;16244:5;16222:17;16234:4;16222:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16196:54;;16269:7;16278:15;16295:4;16261:39;;;;;;;;;;15774:534;;;;;;;;:::o;2690:246::-;2748:7;2777:1;2772;:6;2768:47;;2802:1;2795:8;;;;2768:47;2825:9;2841:1;2837;:5;;;;:::i;:::-;2825:17;;2870:1;2865;2861;:5;;;;:::i;:::-;:10;2853:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2927:1;2920:8;;;2690:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:152::-;4348:9;4381:37;4412:5;4381:37;:::i;:::-;4368:50;;4272:152;;;:::o;4430:183::-;4543:63;4600:5;4543:63;:::i;:::-;4538:3;4531:76;4430:183;;:::o;4619:274::-;4738:4;4776:2;4765:9;4761:18;4753:26;;4789:97;4883:1;4872:9;4868:17;4859:6;4789:97;:::i;:::-;4619:274;;;;:::o;4899:118::-;4986:24;5004:5;4986:24;:::i;:::-;4981:3;4974:37;4899:118;;:::o;5023:222::-;5116:4;5154:2;5143:9;5139:18;5131:26;;5167:71;5235:1;5224:9;5220:17;5211:6;5167:71;:::i;:::-;5023:222;;;;:::o;5251:619::-;5328:6;5336;5344;5393:2;5381:9;5372:7;5368:23;5364:32;5361:119;;;5399:79;;:::i;:::-;5361:119;5519:1;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5490:117;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5774:2;5800:53;5845:7;5836:6;5825:9;5821:22;5800:53;:::i;:::-;5790:63;;5745:118;5251:619;;;;;:::o;5876:474::-;5944:6;5952;6001:2;5989:9;5980:7;5976:23;5972:32;5969:119;;;6007:79;;:::i;:::-;5969:119;6127:1;6152:53;6197:7;6188:6;6177:9;6173:22;6152:53;:::i;:::-;6142:63;;6098:117;6254:2;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6225:118;5876:474;;;;;:::o;6356:117::-;6465:1;6462;6455:12;6479:117;6588:1;6585;6578:12;6602:117;6711:1;6708;6701:12;6742:568;6815:8;6825:6;6875:3;6868:4;6860:6;6856:17;6852:27;6842:122;;6883:79;;:::i;:::-;6842:122;6996:6;6983:20;6973:30;;7026:18;7018:6;7015:30;7012:117;;;7048:79;;:::i;:::-;7012:117;7162:4;7154:6;7150:17;7138:29;;7216:3;7208:4;7200:6;7196:17;7186:8;7182:32;7179:41;7176:128;;;7223:79;;:::i;:::-;7176:128;6742:568;;;;;:::o;7316:116::-;7386:21;7401:5;7386:21;:::i;:::-;7379:5;7376:32;7366:60;;7422:1;7419;7412:12;7366:60;7316:116;:::o;7438:133::-;7481:5;7519:6;7506:20;7497:29;;7535:30;7559:5;7535:30;:::i;:::-;7438:133;;;;:::o;7577:698::-;7669:6;7677;7685;7734:2;7722:9;7713:7;7709:23;7705:32;7702:119;;;7740:79;;:::i;:::-;7702:119;7888:1;7877:9;7873:17;7860:31;7918:18;7910:6;7907:30;7904:117;;;7940:79;;:::i;:::-;7904:117;8053:80;8125:7;8116:6;8105:9;8101:22;8053:80;:::i;:::-;8035:98;;;;7831:312;8182:2;8208:50;8250:7;8241:6;8230:9;8226:22;8208:50;:::i;:::-;8198:60;;8153:115;7577:698;;;;;:::o;8281:86::-;8316:7;8356:4;8349:5;8345:16;8334:27;;8281:86;;;:::o;8373:112::-;8456:22;8472:5;8456:22;:::i;:::-;8451:3;8444:35;8373:112;;:::o;8491:214::-;8580:4;8618:2;8607:9;8603:18;8595:26;;8631:67;8695:1;8684:9;8680:17;8671:6;8631:67;:::i;:::-;8491:214;;;;:::o;8711:104::-;8756:7;8785:24;8803:5;8785:24;:::i;:::-;8774:35;;8711:104;;;:::o;8821:142::-;8924:32;8950:5;8924:32;:::i;:::-;8919:3;8912:45;8821:142;;:::o;8969:254::-;9078:4;9116:2;9105:9;9101:18;9093:26;;9129:87;9213:1;9202:9;9198:17;9189:6;9129:87;:::i;:::-;8969:254;;;;:::o;9229:118::-;9316:24;9334:5;9316:24;:::i;:::-;9311:3;9304:37;9229:118;;:::o;9353:222::-;9446:4;9484:2;9473:9;9469:18;9461:26;;9497:71;9565:1;9554:9;9550:17;9541:6;9497:71;:::i;:::-;9353:222;;;;:::o;9581:323::-;9637:6;9686:2;9674:9;9665:7;9661:23;9657:32;9654:119;;;9692:79;;:::i;:::-;9654:119;9812:1;9837:50;9879:7;9870:6;9859:9;9855:22;9837:50;:::i;:::-;9827:60;;9783:114;9581:323;;;;:::o;9910:329::-;9969:6;10018:2;10006:9;9997:7;9993:23;9989:32;9986:119;;;10024:79;;:::i;:::-;9986:119;10144:1;10169:53;10214:7;10205:6;10194:9;10190:22;10169:53;:::i;:::-;10159:63;;10115:117;9910:329;;;;:::o;10245:::-;10304:6;10353:2;10341:9;10332:7;10328:23;10324:32;10321:119;;;10359:79;;:::i;:::-;10321:119;10479:1;10504:53;10549:7;10540:6;10529:9;10525:22;10504:53;:::i;:::-;10494:63;;10450:117;10245:329;;;;:::o;10580:180::-;10628:77;10625:1;10618:88;10725:4;10722:1;10715:15;10749:4;10746:1;10739:15;10766:281;10849:27;10871:4;10849:27;:::i;:::-;10841:6;10837:40;10979:6;10967:10;10964:22;10943:18;10931:10;10928:34;10925:62;10922:88;;;10990:18;;:::i;:::-;10922:88;11030:10;11026:2;11019:22;10809:238;10766:281;;:::o;11053:129::-;11087:6;11114:20;;:::i;:::-;11104:30;;11143:33;11171:4;11163:6;11143:33;:::i;:::-;11053:129;;;:::o;11188:311::-;11265:4;11355:18;11347:6;11344:30;11341:56;;;11377:18;;:::i;:::-;11341:56;11427:4;11419:6;11415:17;11407:25;;11487:4;11481;11477:15;11469:23;;11188:311;;;:::o;11522:710::-;11618:5;11643:81;11659:64;11716:6;11659:64;:::i;:::-;11643:81;:::i;:::-;11634:90;;11744:5;11773:6;11766:5;11759:21;11807:4;11800:5;11796:16;11789:23;;11860:4;11852:6;11848:17;11840:6;11836:30;11889:3;11881:6;11878:15;11875:122;;;11908:79;;:::i;:::-;11875:122;12023:6;12006:220;12040:6;12035:3;12032:15;12006:220;;;12115:3;12144:37;12177:3;12165:10;12144:37;:::i;:::-;12139:3;12132:50;12211:4;12206:3;12202:14;12195:21;;12082:144;12066:4;12061:3;12057:14;12050:21;;12006:220;;;12010:21;11624:608;;11522:710;;;;;:::o;12255:370::-;12326:5;12375:3;12368:4;12360:6;12356:17;12352:27;12342:122;;12383:79;;:::i;:::-;12342:122;12500:6;12487:20;12525:94;12615:3;12607:6;12600:4;12592:6;12588:17;12525:94;:::i;:::-;12516:103;;12332:293;12255:370;;;;:::o;12631:539::-;12715:6;12764:2;12752:9;12743:7;12739:23;12735:32;12732:119;;;12770:79;;:::i;:::-;12732:119;12918:1;12907:9;12903:17;12890:31;12948:18;12940:6;12937:30;12934:117;;;12970:79;;:::i;:::-;12934:117;13075:78;13145:7;13136:6;13125:9;13121:22;13075:78;:::i;:::-;13065:88;;12861:302;12631:539;;;;:::o;13176:182::-;13316:34;13312:1;13304:6;13300:14;13293:58;13176:182;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:180::-;14209:77;14206:1;14199:88;14306:4;14303:1;14296:15;14330:4;14327:1;14320:15;14347:180;14395:77;14392:1;14385:88;14492:4;14489:1;14482:15;14516:4;14513:1;14506:15;14533:191;14573:3;14592:20;14610:1;14592:20;:::i;:::-;14587:25;;14626:20;14644:1;14626:20;:::i;:::-;14621:25;;14669:1;14666;14662:9;14655:16;;14690:3;14687:1;14684:10;14681:36;;;14697:18;;:::i;:::-;14681:36;14533:191;;;;:::o;14730:172::-;14870:24;14866:1;14858:6;14854:14;14847:48;14730:172;:::o;14908:366::-;15050:3;15071:67;15135:2;15130:3;15071:67;:::i;:::-;15064:74;;15147:93;15236:3;15147:93;:::i;:::-;15265:2;15260:3;15256:12;15249:19;;14908:366;;;:::o;15280:419::-;15446:4;15484:2;15473:9;15469:18;15461:26;;15533:9;15527:4;15523:20;15519:1;15508:9;15504:17;15497:47;15561:131;15687:4;15561:131;:::i;:::-;15553:139;;15280:419;;;:::o;15705:225::-;15845:34;15841:1;15833:6;15829:14;15822:58;15914:8;15909:2;15901:6;15897:15;15890:33;15705:225;:::o;15936:366::-;16078:3;16099:67;16163:2;16158:3;16099:67;:::i;:::-;16092:74;;16175:93;16264:3;16175:93;:::i;:::-;16293:2;16288:3;16284:12;16277:19;;15936:366;;;:::o;16308:419::-;16474:4;16512:2;16501:9;16497:18;16489:26;;16561:9;16555:4;16551:20;16547:1;16536:9;16532:17;16525:47;16589:131;16715:4;16589:131;:::i;:::-;16581:139;;16308:419;;;:::o;16733:223::-;16873:34;16869:1;16861:6;16857:14;16850:58;16942:6;16937:2;16929:6;16925:15;16918:31;16733:223;:::o;16962:366::-;17104:3;17125:67;17189:2;17184:3;17125:67;:::i;:::-;17118:74;;17201:93;17290:3;17201:93;:::i;:::-;17319:2;17314:3;17310:12;17303:19;;16962:366;;;:::o;17334:419::-;17500:4;17538:2;17527:9;17523:18;17515:26;;17587:9;17581:4;17577:20;17573:1;17562:9;17558:17;17551:47;17615:131;17741:4;17615:131;:::i;:::-;17607:139;;17334:419;;;:::o;17759:221::-;17899:34;17895:1;17887:6;17883:14;17876:58;17968:4;17963:2;17955:6;17951:15;17944:29;17759:221;:::o;17986:366::-;18128:3;18149:67;18213:2;18208:3;18149:67;:::i;:::-;18142:74;;18225:93;18314:3;18225:93;:::i;:::-;18343:2;18338:3;18334:12;18327:19;;17986:366;;;:::o;18358:419::-;18524:4;18562:2;18551:9;18547:18;18539:26;;18611:9;18605:4;18601:20;18597:1;18586:9;18582:17;18575:47;18639:131;18765:4;18639:131;:::i;:::-;18631:139;;18358:419;;;:::o;18783:224::-;18923:34;18919:1;18911:6;18907:14;18900:58;18992:7;18987:2;18979:6;18975:15;18968:32;18783:224;:::o;19013:366::-;19155:3;19176:67;19240:2;19235:3;19176:67;:::i;:::-;19169:74;;19252:93;19341:3;19252:93;:::i;:::-;19370:2;19365:3;19361:12;19354:19;;19013:366;;;:::o;19385:419::-;19551:4;19589:2;19578:9;19574:18;19566:26;;19638:9;19632:4;19628:20;19624:1;19613:9;19609:17;19602:47;19666:131;19792:4;19666:131;:::i;:::-;19658:139;;19385:419;;;:::o;19810:222::-;19950:34;19946:1;19938:6;19934:14;19927:58;20019:5;20014:2;20006:6;20002:15;19995:30;19810:222;:::o;20038:366::-;20180:3;20201:67;20265:2;20260:3;20201:67;:::i;:::-;20194:74;;20277:93;20366:3;20277:93;:::i;:::-;20395:2;20390:3;20386:12;20379:19;;20038:366;;;:::o;20410:419::-;20576:4;20614:2;20603:9;20599:18;20591:26;;20663:9;20657:4;20653:20;20649:1;20638:9;20634:17;20627:47;20691:131;20817:4;20691:131;:::i;:::-;20683:139;;20410:419;;;:::o;20835:228::-;20975:34;20971:1;20963:6;20959:14;20952:58;21044:11;21039:2;21031:6;21027:15;21020:36;20835:228;:::o;21069:366::-;21211:3;21232:67;21296:2;21291:3;21232:67;:::i;:::-;21225:74;;21308:93;21397:3;21308:93;:::i;:::-;21426:2;21421:3;21417:12;21410:19;;21069:366;;;:::o;21441:419::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21694:9;21688:4;21684:20;21680:1;21669:9;21665:17;21658:47;21722:131;21848:4;21722:131;:::i;:::-;21714:139;;21441:419;;;:::o;21866:237::-;22006:34;22002:1;21994:6;21990:14;21983:58;22075:20;22070:2;22062:6;22058:15;22051:45;21866:237;:::o;22109:366::-;22251:3;22272:67;22336:2;22331:3;22272:67;:::i;:::-;22265:74;;22348:93;22437:3;22348:93;:::i;:::-;22466:2;22461:3;22457:12;22450:19;;22109:366;;;:::o;22481:419::-;22647:4;22685:2;22674:9;22670:18;22662:26;;22734:9;22728:4;22724:20;22720:1;22709:9;22705:17;22698:47;22762:131;22888:4;22762:131;:::i;:::-;22754:139;;22481:419;;;:::o;22906:178::-;23046:30;23042:1;23034:6;23030:14;23023:54;22906:178;:::o;23090:366::-;23232:3;23253:67;23317:2;23312:3;23253:67;:::i;:::-;23246:74;;23329:93;23418:3;23329:93;:::i;:::-;23447:2;23442:3;23438:12;23431:19;;23090:366;;;:::o;23462:419::-;23628:4;23666:2;23655:9;23651:18;23643:26;;23715:9;23709:4;23705:20;23701:1;23690:9;23686:17;23679:47;23743:131;23869:4;23743:131;:::i;:::-;23735:139;;23462:419;;;:::o;23887:222::-;24027:34;24023:1;24015:6;24011:14;24004:58;24096:5;24091:2;24083:6;24079:15;24072:30;23887:222;:::o;24115:366::-;24257:3;24278:67;24342:2;24337:3;24278:67;:::i;:::-;24271:74;;24354:93;24443:3;24354:93;:::i;:::-;24472:2;24467:3;24463:12;24456:19;;24115:366;;;:::o;24487:419::-;24653:4;24691:2;24680:9;24676:18;24668:26;;24740:9;24734:4;24730:20;24726:1;24715:9;24711:17;24704:47;24768:131;24894:4;24768:131;:::i;:::-;24760:139;;24487:419;;;:::o;24912:222::-;25052:34;25048:1;25040:6;25036:14;25029:58;25121:5;25116:2;25108:6;25104:15;25097:30;24912:222;:::o;25140:366::-;25282:3;25303:67;25367:2;25362:3;25303:67;:::i;:::-;25296:74;;25379:93;25468:3;25379:93;:::i;:::-;25497:2;25492:3;25488:12;25481:19;;25140:366;;;:::o;25512:419::-;25678:4;25716:2;25705:9;25701:18;25693:26;;25765:9;25759:4;25755:20;25751:1;25740:9;25736:17;25729:47;25793:131;25919:4;25793:131;:::i;:::-;25785:139;;25512:419;;;:::o;25937:194::-;25977:4;25997:20;26015:1;25997:20;:::i;:::-;25992:25;;26031:20;26049:1;26031:20;:::i;:::-;26026:25;;26075:1;26072;26068:9;26060:17;;26099:1;26093:4;26090:11;26087:37;;;26104:18;;:::i;:::-;26087:37;25937:194;;;;:::o;26137:410::-;26177:7;26200:20;26218:1;26200:20;:::i;:::-;26195:25;;26234:20;26252:1;26234:20;:::i;:::-;26229:25;;26289:1;26286;26282:9;26311:30;26329:11;26311:30;:::i;:::-;26300:41;;26490:1;26481:7;26477:15;26474:1;26471:22;26451:1;26444:9;26424:83;26401:139;;26520:18;;:::i;:::-;26401:139;26185:362;26137:410;;;;:::o;26553:180::-;26601:77;26598:1;26591:88;26698:4;26695:1;26688:15;26722:4;26719:1;26712:15;26739:185;26779:1;26796:20;26814:1;26796:20;:::i;:::-;26791:25;;26830:20;26848:1;26830:20;:::i;:::-;26825:25;;26869:1;26859:35;;26874:18;;:::i;:::-;26859:35;26916:1;26913;26909:9;26904:14;;26739:185;;;;:::o;26930:229::-;27070:34;27066:1;27058:6;27054:14;27047:58;27139:12;27134:2;27126:6;27122:15;27115:37;26930:229;:::o;27165:366::-;27307:3;27328:67;27392:2;27387:3;27328:67;:::i;:::-;27321:74;;27404:93;27493:3;27404:93;:::i;:::-;27522:2;27517:3;27513:12;27506:19;;27165:366;;;:::o;27537:419::-;27703:4;27741:2;27730:9;27726:18;27718:26;;27790:9;27784:4;27780:20;27776:1;27765:9;27761:17;27754:47;27818:131;27944:4;27818:131;:::i;:::-;27810:139;;27537:419;;;:::o;27962:143::-;28019:5;28050:6;28044:13;28035:22;;28066:33;28093:5;28066:33;:::i;:::-;27962:143;;;;:::o;28111:351::-;28181:6;28230:2;28218:9;28209:7;28205:23;28201:32;28198:119;;;28236:79;;:::i;:::-;28198:119;28356:1;28381:64;28437:7;28428:6;28417:9;28413:22;28381:64;:::i;:::-;28371:74;;28327:128;28111:351;;;;:::o;28468:85::-;28513:7;28542:5;28531:16;;28468:85;;;:::o;28559:158::-;28617:9;28650:61;28668:42;28677:32;28703:5;28677:32;:::i;:::-;28668:42;:::i;:::-;28650:61;:::i;:::-;28637:74;;28559:158;;;:::o;28723:147::-;28818:45;28857:5;28818:45;:::i;:::-;28813:3;28806:58;28723:147;;:::o;28876:114::-;28943:6;28977:5;28971:12;28961:22;;28876:114;;;:::o;28996:184::-;29095:11;29129:6;29124:3;29117:19;29169:4;29164:3;29160:14;29145:29;;28996:184;;;;:::o;29186:132::-;29253:4;29276:3;29268:11;;29306:4;29301:3;29297:14;29289:22;;29186:132;;;:::o;29324:108::-;29401:24;29419:5;29401:24;:::i;:::-;29396:3;29389:37;29324:108;;:::o;29438:179::-;29507:10;29528:46;29570:3;29562:6;29528:46;:::i;:::-;29606:4;29601:3;29597:14;29583:28;;29438:179;;;;:::o;29623:113::-;29693:4;29725;29720:3;29716:14;29708:22;;29623:113;;;:::o;29772:732::-;29891:3;29920:54;29968:5;29920:54;:::i;:::-;29990:86;30069:6;30064:3;29990:86;:::i;:::-;29983:93;;30100:56;30150:5;30100:56;:::i;:::-;30179:7;30210:1;30195:284;30220:6;30217:1;30214:13;30195:284;;;30296:6;30290:13;30323:63;30382:3;30367:13;30323:63;:::i;:::-;30316:70;;30409:60;30462:6;30409:60;:::i;:::-;30399:70;;30255:224;30242:1;30239;30235:9;30230:14;;30195:284;;;30199:14;30495:3;30488:10;;29896:608;;;29772:732;;;;:::o;30510:831::-;30773:4;30811:3;30800:9;30796:19;30788:27;;30825:71;30893:1;30882:9;30878:17;30869:6;30825:71;:::i;:::-;30906:80;30982:2;30971:9;30967:18;30958:6;30906:80;:::i;:::-;31033:9;31027:4;31023:20;31018:2;31007:9;31003:18;30996:48;31061:108;31164:4;31155:6;31061:108;:::i;:::-;31053:116;;31179:72;31247:2;31236:9;31232:18;31223:6;31179:72;:::i;:::-;31261:73;31329:3;31318:9;31314:19;31305:6;31261:73;:::i;:::-;30510:831;;;;;;;;:::o;31347:177::-;31487:29;31483:1;31475:6;31471:14;31464:53;31347:177;:::o;31530:366::-;31672:3;31693:67;31757:2;31752:3;31693:67;:::i;:::-;31686:74;;31769:93;31858:3;31769:93;:::i;:::-;31887:2;31882:3;31878:12;31871:19;;31530:366;;;:::o;31902:419::-;32068:4;32106:2;32095:9;32091:18;32083:26;;32155:9;32149:4;32145:20;32141:1;32130:9;32126:17;32119:47;32183:131;32309:4;32183:131;:::i;:::-;32175:139;;31902:419;;;:::o;32327:220::-;32467:34;32463:1;32455:6;32451:14;32444:58;32536:3;32531:2;32523:6;32519:15;32512:28;32327:220;:::o;32553:366::-;32695:3;32716:67;32780:2;32775:3;32716:67;:::i;:::-;32709:74;;32792:93;32881:3;32792:93;:::i;:::-;32910:2;32905:3;32901:12;32894:19;;32553:366;;;:::o;32925:419::-;33091:4;33129:2;33118:9;33114:18;33106:26;;33178:9;33172:4;33168:20;33164:1;33153:9;33149:17;33142:47;33206:131;33332:4;33206:131;:::i;:::-;33198:139;;32925:419;;;:::o
Swarm Source
ipfs://b940d59d575ac93b015c21153eb8e04b3f6c60bc3edb7e97e768159f0c037b4d
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.