Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 IT
Holders
91
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.140624999 ITValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
IT
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-27 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract IT is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "InVest"; string private constant _symbol = "IT"; 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 = 100000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 80; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xf9f7f9A49CCB7695924221722513EE50793C8828); address payable private _marketingAddress = payable(0xf9f7f9A49CCB7695924221722513EE50793C8828); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 500000000 * 10**9; uint256 public _maxWalletSize = 2000000000 * 10**9; uint256 public _swapTokensAtAmount = 1000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_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: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function openIT(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } 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 blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 90%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 90, "Buy tax must be between 0% and 90%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 90%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 90, "Sell tax must be between 0% and 90%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { if (maxTxAmount > 500000000 * 10**9) { _maxTxAmount = maxTxAmount; } } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"openIT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405268056bc75e2d631000006000196200001d919062000713565b6000196200002c91906200077a565b6006556000600855600a6009556000600a556050600b55600a54600c55600b54600d55600c54600e55600d54600f5573f9f7f9a49ccb7695924221722513ee50793c8828601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f9f7f9a49ccb7695924221722513ee50793c8828601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506706f05b59d3b20000601655671bc16d674ec8000060175566038d7ea4c680006018553480156200016a57600080fd5b5060006200017d620006a960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000232620006a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000316573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033c91906200081f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ca91906200081f565b6040518363ffffffff1660e01b8152600401620003e992919062000862565b6020604051808303816000875af115801562000409573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042f91906200081f565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000485620006b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000632620006a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d631000006040516200069a9190620008a0565b60405180910390a350620008bd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072082620006da565b91506200072d83620006da565b92508262000740576200073f620006e4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078782620006da565b91506200079483620006da565b9250828203905081811115620007af57620007ae6200074b565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e782620007ba565b9050919050565b620007f981620007da565b81146200080557600080fd5b50565b6000815190506200081981620007ee565b92915050565b600060208284031215620008385762000837620007b5565b5b6000620008488482850162000808565b91505092915050565b6200085c81620007da565b82525050565b600060408201905062000879600083018562000851565b62000888602083018462000851565b9392505050565b6200089a81620006da565b82525050565b6000602082019050620008b760008301846200088f565b92915050565b61412280620008cd6000396000f3fe6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638da5cb5b116100d15780638da5cb5b146104f85780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b806374010ece146104675780637d1db4a5146104905780637f2feddc146104bb576101d7565b8063313ce5671161016f5780636d8aa8f81161013e5780636d8aa8f8146103d35780636fc3eaec146103fc57806370a0823114610413578063715018a614610450576101d7565b8063313ce5671461032b57806349bd5a5e1461035657806356eda8e2146103815780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612eaa565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612f72565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612fca565b61087b565b6040516102649190613025565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f919061309f565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba91906130c9565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906130e4565b6108d0565b6040516102f79190613025565b60405180910390f35b34801561030c57600080fd5b506103156109a9565b60405161032291906130c9565b60405180910390f35b34801561033757600080fd5b506103406109af565b60405161034d9190613153565b60405180910390f35b34801561036257600080fd5b5061036b6109b8565b604051610378919061317d565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906131c4565b6109de565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906131f1565b610a90565b005b3480156103df57600080fd5b506103fa60048036038101906103f591906131c4565b610b80565b005b34801561040857600080fd5b50610411610c32565b005b34801561041f57600080fd5b5061043a600480360381019061043591906131f1565b610d03565b60405161044791906130c9565b60405180910390f35b34801561045c57600080fd5b50610465610d54565b005b34801561047357600080fd5b5061048e6004803603810190610489919061321e565b610ea7565b005b34801561049c57600080fd5b506104a5610f57565b6040516104b291906130c9565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906131f1565b610f5d565b6040516104ef91906130c9565b60405180910390f35b34801561050457600080fd5b5061050d610f75565b60405161051a919061317d565b60405180910390f35b34801561052f57600080fd5b50610538610f9e565b60405161054591906130c9565b60405180910390f35b34801561055a57600080fd5b50610563610fa4565b6040516105709190612f72565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b919061321e565b610fe1565b005b3480156105ae57600080fd5b506105c960048036038101906105c4919061324b565b611080565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612fca565b61127b565b6040516105ff9190613025565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906131f1565b611299565b60405161063c9190613025565b60405180910390f35b34801561065157600080fd5b5061065a6112b9565b005b34801561066857600080fd5b50610683600480360381019061067e919061330d565b611392565b005b34801561069157600080fd5b506106ac60048036038101906106a7919061336d565b6114cc565b6040516106b991906130c9565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e4919061321e565b611553565b005b3480156106f757600080fd5b50610712600480360381019061070d91906131f1565b6115f2565b005b61071c6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906133f9565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd613419565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061083290613477565b9150506107ac565b5050565b60606040518060400160405280600681526020017f496e566573740000000000000000000000000000000000000000000000000000815250905090565b600061088f6108886117b3565b84846117bb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b60006108dd848484611984565b61099e846108e96117b3565b610999856040518060600160405280602881526020016140c560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094f6117b3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122079092919063ffffffff16565b6117bb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e66117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a906133f9565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b610a986117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c906133f9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b886117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c906133f9565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c736117b3565b73ffffffffffffffffffffffffffffffffffffffff161480610ce95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd16117b3565b73ffffffffffffffffffffffffffffffffffffffff16145b610cf257600080fd5b6000479050610d008161226b565b50565b6000610d4d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d7565b9050919050565b610d5c6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de0906133f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eaf6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906133f9565b60405180910390fd5b6706f05b59d3b20000811115610f5457806016819055505b50565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600281526020017f4954000000000000000000000000000000000000000000000000000000000000815250905090565b610fe96117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d906133f9565b60405180910390fd5b8060188190555050565b6110886117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c906133f9565b60405180910390fd5b60008410158015611127575060048411155b611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613531565b60405180910390fd5b600082101580156111785750605a8211155b6111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae906135c3565b60405180910390fd5b600083101580156111c9575060048311155b611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90613655565b60405180910390fd5b6000811015801561121a5750605a8111155b611259576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611250906136e7565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061128f6112886117b3565b8484611984565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112fa6117b3565b73ffffffffffffffffffffffffffffffffffffffff1614806113705750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113586117b3565b73ffffffffffffffffffffffffffffffffffffffff16145b61137957600080fd5b600061138430610d03565b905061138f81612345565b50565b61139a6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e906133f9565b60405180910390fd5b60005b838390508110156114c657816005600086868581811061144d5761144c613419565b5b905060200201602081019061146291906131f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114be90613477565b91505061142a565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61155b6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df906133f9565b60405180910390fd5b8060178190555050565b6115fa6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e906133f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90613779565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118219061380b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611899576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118909061389d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197791906130c9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea9061392f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a59906139c1565b60405180910390fd5b60008111611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90613a53565b60405180910390fd5b611aad610f75565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b1b5750611aeb610f75565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f0657601560149054906101000a900460ff16611baa57611b3c610f75565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613ae5565b60405180910390fd5b5b601654811115611bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be690613b51565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c935750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc990613be3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d7f5760175481611d3484610d03565b611d3e9190613c03565b10611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613ca9565b60405180910390fd5b5b6000611d8a30610d03565b9050600060185482101590506016548210611da55760165491505b808015611dbd575060158054906101000a900460ff16155b8015611e175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2f5750601560169054906101000a900460ff165b8015611e855750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611edb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f0357611ee982612345565b60004790506000811115611f0157611f004761226b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fad5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561205f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561206e57600090506121f5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561213157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121dc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121f457600a54600c81905550600b54600d819055505b5b612201848484846125bc565b50505050565b600083831115829061224f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122469190612f72565b60405180910390fd5b506000838561225e9190613cc9565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d3573d6000803e3d6000fd5b5050565b600060065482111561231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231590613d6f565b60405180910390fd5b60006123286125e9565b905061233d818461261490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561237c5761237b612d09565b5b6040519080825280602002602001820160405280156123aa5781602001602082028036833780820191505090505b50905030816000815181106123c2576123c1613419565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190613da4565b816001815181106124a1576124a0613419565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117bb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161256c959493929190613eca565b600060405180830381600087803b15801561258657600080fd5b505af115801561259a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806125ca576125c961265e565b5b6125d584848461269b565b806125e3576125e2612866565b5b50505050565b60008060006125f661287a565b9150915061260d818361261490919063ffffffff16565b9250505090565b600061265683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128dc565b905092915050565b6000600c5414801561267257506000600d54145b61269957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806126ad8761293f565b95509550955095509550955061270b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127a085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ec81612a4f565b6127f68483612b0c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161285391906130c9565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600068056bc75e2d6310000090506128b068056bc75e2d6310000060065461261490919063ffffffff16565b8210156128cf5760065468056bc75e2d631000009350935050506128d8565b81819350935050505b9091565b60008083118290612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a9190612f72565b60405180910390fd5b50600083856129329190613f53565b9050809150509392505050565b600080600080600080600080600061295c8a600c54600d54612b46565b925092509250600061296c6125e9565b9050600080600061297f8e878787612bdc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129e983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612207565b905092915050565b6000808284612a009190613c03565b905083811015612a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3c90613fd0565b60405180910390fd5b8091505092915050565b6000612a596125e9565b90506000612a708284612c6590919063ffffffff16565b9050612ac481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b21826006546129a790919063ffffffff16565b600681905550612b3c816007546129f190919063ffffffff16565b6007819055505050565b600080600080612b726064612b64888a612c6590919063ffffffff16565b61261490919063ffffffff16565b90506000612b9c6064612b8e888b612c6590919063ffffffff16565b61261490919063ffffffff16565b90506000612bc582612bb7858c6129a790919063ffffffff16565b6129a790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612bf58589612c6590919063ffffffff16565b90506000612c0c8689612c6590919063ffffffff16565b90506000612c238789612c6590919063ffffffff16565b90506000612c4c82612c3e85876129a790919063ffffffff16565b6129a790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612c775760009050612cd9565b60008284612c859190613ff0565b9050828482612c949190613f53565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb906140a4565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d4182612cf8565b810181811067ffffffffffffffff82111715612d6057612d5f612d09565b5b80604052505050565b6000612d73612cdf565b9050612d7f8282612d38565b919050565b600067ffffffffffffffff821115612d9f57612d9e612d09565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612de082612db5565b9050919050565b612df081612dd5565b8114612dfb57600080fd5b50565b600081359050612e0d81612de7565b92915050565b6000612e26612e2184612d84565b612d69565b90508083825260208201905060208402830185811115612e4957612e48612db0565b5b835b81811015612e725780612e5e8882612dfe565b845260208401935050602081019050612e4b565b5050509392505050565b600082601f830112612e9157612e90612cf3565b5b8135612ea1848260208601612e13565b91505092915050565b600060208284031215612ec057612ebf612ce9565b5b600082013567ffffffffffffffff811115612ede57612edd612cee565b5b612eea84828501612e7c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f2d578082015181840152602081019050612f12565b60008484015250505050565b6000612f4482612ef3565b612f4e8185612efe565b9350612f5e818560208601612f0f565b612f6781612cf8565b840191505092915050565b60006020820190508181036000830152612f8c8184612f39565b905092915050565b6000819050919050565b612fa781612f94565b8114612fb257600080fd5b50565b600081359050612fc481612f9e565b92915050565b60008060408385031215612fe157612fe0612ce9565b5b6000612fef85828601612dfe565b925050602061300085828601612fb5565b9150509250929050565b60008115159050919050565b61301f8161300a565b82525050565b600060208201905061303a6000830184613016565b92915050565b6000819050919050565b600061306561306061305b84612db5565b613040565b612db5565b9050919050565b60006130778261304a565b9050919050565b60006130898261306c565b9050919050565b6130998161307e565b82525050565b60006020820190506130b46000830184613090565b92915050565b6130c381612f94565b82525050565b60006020820190506130de60008301846130ba565b92915050565b6000806000606084860312156130fd576130fc612ce9565b5b600061310b86828701612dfe565b935050602061311c86828701612dfe565b925050604061312d86828701612fb5565b9150509250925092565b600060ff82169050919050565b61314d81613137565b82525050565b60006020820190506131686000830184613144565b92915050565b61317781612dd5565b82525050565b6000602082019050613192600083018461316e565b92915050565b6131a18161300a565b81146131ac57600080fd5b50565b6000813590506131be81613198565b92915050565b6000602082840312156131da576131d9612ce9565b5b60006131e8848285016131af565b91505092915050565b60006020828403121561320757613206612ce9565b5b600061321584828501612dfe565b91505092915050565b60006020828403121561323457613233612ce9565b5b600061324284828501612fb5565b91505092915050565b6000806000806080858703121561326557613264612ce9565b5b600061327387828801612fb5565b945050602061328487828801612fb5565b935050604061329587828801612fb5565b92505060606132a687828801612fb5565b91505092959194509250565b600080fd5b60008083601f8401126132cd576132cc612cf3565b5b8235905067ffffffffffffffff8111156132ea576132e96132b2565b5b60208301915083602082028301111561330657613305612db0565b5b9250929050565b60008060006040848603121561332657613325612ce9565b5b600084013567ffffffffffffffff81111561334457613343612cee565b5b613350868287016132b7565b93509350506020613363868287016131af565b9150509250925092565b6000806040838503121561338457613383612ce9565b5b600061339285828601612dfe565b92505060206133a385828601612dfe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133e3602083612efe565b91506133ee826133ad565b602082019050919050565b60006020820190508181036000830152613412816133d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061348282612f94565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134b4576134b3613448565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203930250000000000000000000000000000000000000000000000000000602082015250565b600061351b602683612efe565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ad602283612efe565b91506135b882613551565b604082019050919050565b600060208201905081810360008301526135dc816135a0565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642039302500000000000000000000000000000000000000000000000000602082015250565b600061363f602783612efe565b915061364a826135e3565b604082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3930250000000000000000000000000000000000000000000000000000000000602082015250565b60006136d1602383612efe565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613763602683612efe565b915061376e82613707565b604082019050919050565b6000602082019050818103600083015261379281613756565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137f5602483612efe565b915061380082613799565b604082019050919050565b60006020820190508181036000830152613824816137e8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613887602283612efe565b91506138928261382b565b604082019050919050565b600060208201905081810360008301526138b68161387a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613919602583612efe565b9150613924826138bd565b604082019050919050565b600060208201905081810360008301526139488161390c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006139ab602383612efe565b91506139b68261394f565b604082019050919050565b600060208201905081810360008301526139da8161399e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a3d602983612efe565b9150613a48826139e1565b604082019050919050565b60006020820190508181036000830152613a6c81613a30565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613acf603f83612efe565b9150613ada82613a73565b604082019050919050565b60006020820190508181036000830152613afe81613ac2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613b3b601c83612efe565b9150613b4682613b05565b602082019050919050565b60006020820190508181036000830152613b6a81613b2e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bcd602383612efe565b9150613bd882613b71565b604082019050919050565b60006020820190508181036000830152613bfc81613bc0565b9050919050565b6000613c0e82612f94565b9150613c1983612f94565b9250828201905080821115613c3157613c30613448565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c93602383612efe565b9150613c9e82613c37565b604082019050919050565b60006020820190508181036000830152613cc281613c86565b9050919050565b6000613cd482612f94565b9150613cdf83612f94565b9250828203905081811115613cf757613cf6613448565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d59602a83612efe565b9150613d6482613cfd565b604082019050919050565b60006020820190508181036000830152613d8881613d4c565b9050919050565b600081519050613d9e81612de7565b92915050565b600060208284031215613dba57613db9612ce9565b5b6000613dc884828501613d8f565b91505092915050565b6000819050919050565b6000613df6613df1613dec84613dd1565b613040565b612f94565b9050919050565b613e0681613ddb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e4181612dd5565b82525050565b6000613e538383613e38565b60208301905092915050565b6000602082019050919050565b6000613e7782613e0c565b613e818185613e17565b9350613e8c83613e28565b8060005b83811015613ebd578151613ea48882613e47565b9750613eaf83613e5f565b925050600181019050613e90565b5085935050505092915050565b600060a082019050613edf60008301886130ba565b613eec6020830187613dfd565b8181036040830152613efe8186613e6c565b9050613f0d606083018561316e565b613f1a60808301846130ba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f5e82612f94565b9150613f6983612f94565b925082613f7957613f78613f24565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613fba601b83612efe565b9150613fc582613f84565b602082019050919050565b60006020820190508181036000830152613fe981613fad565b9050919050565b6000613ffb82612f94565b915061400683612f94565b925082820261401481612f94565b9150828204841483151761402b5761402a613448565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061408e602183612efe565b915061409982614032565b604082019050919050565b600060208201905081810360008301526140bd81614081565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c6314c8dc96773b13436784cbc3257696f9aabb8cbead3e81e9c0720c1558e9564736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065c578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb146105a2578063a9059cbb146105cb578063bfd7928414610608578063c3c8cd8014610645576101d7565b80638da5cb5b116100d15780638da5cb5b146104f85780638f9a55c01461052357806395d89b411461054e57806398a5c31514610579576101d7565b806374010ece146104675780637d1db4a5146104905780637f2feddc146104bb576101d7565b8063313ce5671161016f5780636d8aa8f81161013e5780636d8aa8f8146103d35780636fc3eaec146103fc57806370a0823114610413578063715018a614610450576101d7565b8063313ce5671461032b57806349bd5a5e1461035657806356eda8e2146103815780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612eaa565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612f72565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612fca565b61087b565b6040516102649190613025565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f919061309f565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba91906130c9565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906130e4565b6108d0565b6040516102f79190613025565b60405180910390f35b34801561030c57600080fd5b506103156109a9565b60405161032291906130c9565b60405180910390f35b34801561033757600080fd5b506103406109af565b60405161034d9190613153565b60405180910390f35b34801561036257600080fd5b5061036b6109b8565b604051610378919061317d565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906131c4565b6109de565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906131f1565b610a90565b005b3480156103df57600080fd5b506103fa60048036038101906103f591906131c4565b610b80565b005b34801561040857600080fd5b50610411610c32565b005b34801561041f57600080fd5b5061043a600480360381019061043591906131f1565b610d03565b60405161044791906130c9565b60405180910390f35b34801561045c57600080fd5b50610465610d54565b005b34801561047357600080fd5b5061048e6004803603810190610489919061321e565b610ea7565b005b34801561049c57600080fd5b506104a5610f57565b6040516104b291906130c9565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906131f1565b610f5d565b6040516104ef91906130c9565b60405180910390f35b34801561050457600080fd5b5061050d610f75565b60405161051a919061317d565b60405180910390f35b34801561052f57600080fd5b50610538610f9e565b60405161054591906130c9565b60405180910390f35b34801561055a57600080fd5b50610563610fa4565b6040516105709190612f72565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b919061321e565b610fe1565b005b3480156105ae57600080fd5b506105c960048036038101906105c4919061324b565b611080565b005b3480156105d757600080fd5b506105f260048036038101906105ed9190612fca565b61127b565b6040516105ff9190613025565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906131f1565b611299565b60405161063c9190613025565b60405180910390f35b34801561065157600080fd5b5061065a6112b9565b005b34801561066857600080fd5b50610683600480360381019061067e919061330d565b611392565b005b34801561069157600080fd5b506106ac60048036038101906106a7919061336d565b6114cc565b6040516106b991906130c9565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e4919061321e565b611553565b005b3480156106f757600080fd5b50610712600480360381019061070d91906131f1565b6115f2565b005b61071c6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906133f9565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd613419565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061083290613477565b9150506107ac565b5050565b60606040518060400160405280600681526020017f496e566573740000000000000000000000000000000000000000000000000000815250905090565b600061088f6108886117b3565b84846117bb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b60006108dd848484611984565b61099e846108e96117b3565b610999856040518060600160405280602881526020016140c560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094f6117b3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122079092919063ffffffff16565b6117bb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e66117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a906133f9565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b610a986117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c906133f9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b886117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c906133f9565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c736117b3565b73ffffffffffffffffffffffffffffffffffffffff161480610ce95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd16117b3565b73ffffffffffffffffffffffffffffffffffffffff16145b610cf257600080fd5b6000479050610d008161226b565b50565b6000610d4d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d7565b9050919050565b610d5c6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de0906133f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eaf6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906133f9565b60405180910390fd5b6706f05b59d3b20000811115610f5457806016819055505b50565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600281526020017f4954000000000000000000000000000000000000000000000000000000000000815250905090565b610fe96117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106d906133f9565b60405180910390fd5b8060188190555050565b6110886117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c906133f9565b60405180910390fd5b60008410158015611127575060048411155b611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613531565b60405180910390fd5b600082101580156111785750605a8211155b6111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae906135c3565b60405180910390fd5b600083101580156111c9575060048311155b611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90613655565b60405180910390fd5b6000811015801561121a5750605a8111155b611259576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611250906136e7565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061128f6112886117b3565b8484611984565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112fa6117b3565b73ffffffffffffffffffffffffffffffffffffffff1614806113705750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113586117b3565b73ffffffffffffffffffffffffffffffffffffffff16145b61137957600080fd5b600061138430610d03565b905061138f81612345565b50565b61139a6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e906133f9565b60405180910390fd5b60005b838390508110156114c657816005600086868581811061144d5761144c613419565b5b905060200201602081019061146291906131f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114be90613477565b91505061142a565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61155b6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df906133f9565b60405180910390fd5b8060178190555050565b6115fa6117b3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e906133f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90613779565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118219061380b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611899576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118909061389d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197791906130c9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea9061392f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a59906139c1565b60405180910390fd5b60008111611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90613a53565b60405180910390fd5b611aad610f75565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b1b5750611aeb610f75565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f0657601560149054906101000a900460ff16611baa57611b3c610f75565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613ae5565b60405180910390fd5b5b601654811115611bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be690613b51565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c935750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc990613be3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d7f5760175481611d3484610d03565b611d3e9190613c03565b10611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590613ca9565b60405180910390fd5b5b6000611d8a30610d03565b9050600060185482101590506016548210611da55760165491505b808015611dbd575060158054906101000a900460ff16155b8015611e175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2f5750601560169054906101000a900460ff165b8015611e855750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611edb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f0357611ee982612345565b60004790506000811115611f0157611f004761226b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fad5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561205f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561206e57600090506121f5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561213157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121dc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121f457600a54600c81905550600b54600d819055505b5b612201848484846125bc565b50505050565b600083831115829061224f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122469190612f72565b60405180910390fd5b506000838561225e9190613cc9565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d3573d6000803e3d6000fd5b5050565b600060065482111561231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231590613d6f565b60405180910390fd5b60006123286125e9565b905061233d818461261490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561237c5761237b612d09565b5b6040519080825280602002602001820160405280156123aa5781602001602082028036833780820191505090505b50905030816000815181106123c2576123c1613419565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190613da4565b816001815181106124a1576124a0613419565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117bb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161256c959493929190613eca565b600060405180830381600087803b15801561258657600080fd5b505af115801561259a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806125ca576125c961265e565b5b6125d584848461269b565b806125e3576125e2612866565b5b50505050565b60008060006125f661287a565b9150915061260d818361261490919063ffffffff16565b9250505090565b600061265683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128dc565b905092915050565b6000600c5414801561267257506000600d54145b61269957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806126ad8761293f565b95509550955095509550955061270b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127a085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ec81612a4f565b6127f68483612b0c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161285391906130c9565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600068056bc75e2d6310000090506128b068056bc75e2d6310000060065461261490919063ffffffff16565b8210156128cf5760065468056bc75e2d631000009350935050506128d8565b81819350935050505b9091565b60008083118290612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a9190612f72565b60405180910390fd5b50600083856129329190613f53565b9050809150509392505050565b600080600080600080600080600061295c8a600c54600d54612b46565b925092509250600061296c6125e9565b9050600080600061297f8e878787612bdc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129e983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612207565b905092915050565b6000808284612a009190613c03565b905083811015612a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3c90613fd0565b60405180910390fd5b8091505092915050565b6000612a596125e9565b90506000612a708284612c6590919063ffffffff16565b9050612ac481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b21826006546129a790919063ffffffff16565b600681905550612b3c816007546129f190919063ffffffff16565b6007819055505050565b600080600080612b726064612b64888a612c6590919063ffffffff16565b61261490919063ffffffff16565b90506000612b9c6064612b8e888b612c6590919063ffffffff16565b61261490919063ffffffff16565b90506000612bc582612bb7858c6129a790919063ffffffff16565b6129a790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612bf58589612c6590919063ffffffff16565b90506000612c0c8689612c6590919063ffffffff16565b90506000612c238789612c6590919063ffffffff16565b90506000612c4c82612c3e85876129a790919063ffffffff16565b6129a790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612c775760009050612cd9565b60008284612c859190613ff0565b9050828482612c949190613f53565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb906140a4565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d4182612cf8565b810181811067ffffffffffffffff82111715612d6057612d5f612d09565b5b80604052505050565b6000612d73612cdf565b9050612d7f8282612d38565b919050565b600067ffffffffffffffff821115612d9f57612d9e612d09565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612de082612db5565b9050919050565b612df081612dd5565b8114612dfb57600080fd5b50565b600081359050612e0d81612de7565b92915050565b6000612e26612e2184612d84565b612d69565b90508083825260208201905060208402830185811115612e4957612e48612db0565b5b835b81811015612e725780612e5e8882612dfe565b845260208401935050602081019050612e4b565b5050509392505050565b600082601f830112612e9157612e90612cf3565b5b8135612ea1848260208601612e13565b91505092915050565b600060208284031215612ec057612ebf612ce9565b5b600082013567ffffffffffffffff811115612ede57612edd612cee565b5b612eea84828501612e7c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f2d578082015181840152602081019050612f12565b60008484015250505050565b6000612f4482612ef3565b612f4e8185612efe565b9350612f5e818560208601612f0f565b612f6781612cf8565b840191505092915050565b60006020820190508181036000830152612f8c8184612f39565b905092915050565b6000819050919050565b612fa781612f94565b8114612fb257600080fd5b50565b600081359050612fc481612f9e565b92915050565b60008060408385031215612fe157612fe0612ce9565b5b6000612fef85828601612dfe565b925050602061300085828601612fb5565b9150509250929050565b60008115159050919050565b61301f8161300a565b82525050565b600060208201905061303a6000830184613016565b92915050565b6000819050919050565b600061306561306061305b84612db5565b613040565b612db5565b9050919050565b60006130778261304a565b9050919050565b60006130898261306c565b9050919050565b6130998161307e565b82525050565b60006020820190506130b46000830184613090565b92915050565b6130c381612f94565b82525050565b60006020820190506130de60008301846130ba565b92915050565b6000806000606084860312156130fd576130fc612ce9565b5b600061310b86828701612dfe565b935050602061311c86828701612dfe565b925050604061312d86828701612fb5565b9150509250925092565b600060ff82169050919050565b61314d81613137565b82525050565b60006020820190506131686000830184613144565b92915050565b61317781612dd5565b82525050565b6000602082019050613192600083018461316e565b92915050565b6131a18161300a565b81146131ac57600080fd5b50565b6000813590506131be81613198565b92915050565b6000602082840312156131da576131d9612ce9565b5b60006131e8848285016131af565b91505092915050565b60006020828403121561320757613206612ce9565b5b600061321584828501612dfe565b91505092915050565b60006020828403121561323457613233612ce9565b5b600061324284828501612fb5565b91505092915050565b6000806000806080858703121561326557613264612ce9565b5b600061327387828801612fb5565b945050602061328487828801612fb5565b935050604061329587828801612fb5565b92505060606132a687828801612fb5565b91505092959194509250565b600080fd5b60008083601f8401126132cd576132cc612cf3565b5b8235905067ffffffffffffffff8111156132ea576132e96132b2565b5b60208301915083602082028301111561330657613305612db0565b5b9250929050565b60008060006040848603121561332657613325612ce9565b5b600084013567ffffffffffffffff81111561334457613343612cee565b5b613350868287016132b7565b93509350506020613363868287016131af565b9150509250925092565b6000806040838503121561338457613383612ce9565b5b600061339285828601612dfe565b92505060206133a385828601612dfe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133e3602083612efe565b91506133ee826133ad565b602082019050919050565b60006020820190508181036000830152613412816133d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061348282612f94565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134b4576134b3613448565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203930250000000000000000000000000000000000000000000000000000602082015250565b600061351b602683612efe565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ad602283612efe565b91506135b882613551565b604082019050919050565b600060208201905081810360008301526135dc816135a0565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642039302500000000000000000000000000000000000000000000000000602082015250565b600061363f602783612efe565b915061364a826135e3565b604082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3930250000000000000000000000000000000000000000000000000000000000602082015250565b60006136d1602383612efe565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613763602683612efe565b915061376e82613707565b604082019050919050565b6000602082019050818103600083015261379281613756565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137f5602483612efe565b915061380082613799565b604082019050919050565b60006020820190508181036000830152613824816137e8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613887602283612efe565b91506138928261382b565b604082019050919050565b600060208201905081810360008301526138b68161387a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613919602583612efe565b9150613924826138bd565b604082019050919050565b600060208201905081810360008301526139488161390c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006139ab602383612efe565b91506139b68261394f565b604082019050919050565b600060208201905081810360008301526139da8161399e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a3d602983612efe565b9150613a48826139e1565b604082019050919050565b60006020820190508181036000830152613a6c81613a30565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613acf603f83612efe565b9150613ada82613a73565b604082019050919050565b60006020820190508181036000830152613afe81613ac2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613b3b601c83612efe565b9150613b4682613b05565b602082019050919050565b60006020820190508181036000830152613b6a81613b2e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bcd602383612efe565b9150613bd882613b71565b604082019050919050565b60006020820190508181036000830152613bfc81613bc0565b9050919050565b6000613c0e82612f94565b9150613c1983612f94565b9250828201905080821115613c3157613c30613448565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c93602383612efe565b9150613c9e82613c37565b604082019050919050565b60006020820190508181036000830152613cc281613c86565b9050919050565b6000613cd482612f94565b9150613cdf83612f94565b9250828203905081811115613cf757613cf6613448565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d59602a83612efe565b9150613d6482613cfd565b604082019050919050565b60006020820190508181036000830152613d8881613d4c565b9050919050565b600081519050613d9e81612de7565b92915050565b600060208284031215613dba57613db9612ce9565b5b6000613dc884828501613d8f565b91505092915050565b6000819050919050565b6000613df6613df1613dec84613dd1565b613040565b612f94565b9050919050565b613e0681613ddb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e4181612dd5565b82525050565b6000613e538383613e38565b60208301905092915050565b6000602082019050919050565b6000613e7782613e0c565b613e818185613e17565b9350613e8c83613e28565b8060005b83811015613ebd578151613ea48882613e47565b9750613eaf83613e5f565b925050600181019050613e90565b5085935050505092915050565b600060a082019050613edf60008301886130ba565b613eec6020830187613dfd565b8181036040830152613efe8186613e6c565b9050613f0d606083018561316e565b613f1a60808301846130ba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f5e82612f94565b9150613f6983612f94565b925082613f7957613f78613f24565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613fba601b83612efe565b9150613fc582613f84565b602082019050919050565b60006020820190508181036000830152613fe981613fad565b9050919050565b6000613ffb82612f94565b915061400683612f94565b925082820261401481612f94565b9150828204841483151761402b5761402a613448565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061408e602183612efe565b915061409982614032565b604082019050919050565b600060208201905081810360008301526140bd81614081565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c6314c8dc96773b13436784cbc3257696f9aabb8cbead3e81e9c0720c1558e9564736f6c63430008120033
Deployed Bytecode Sourcemap
4095:14030:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12814:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6612:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7544:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5445:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6892:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7746:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5751:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5493:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12219:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12992:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17443:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12570:235;;;;;;;;;;;;;:::i;:::-;;6996:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1568:148;;;;;;;;;;;;;:::i;:::-;;17584:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5637:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5184:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1352:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6704:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17251:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16501:697;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7143:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5146:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12325:236;;;;;;;;;;;;;:::i;:::-;;17885:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7351:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17761:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1725:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12814:169;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12890:9:::1;12885:91;12909:5;:12;12905:1;:16;12885:91;;;12960:4;12943;:14;12948:5;12954:1;12948:8;;;;;;;;:::i;:::-;;;;;;;;12943:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12923:3;;;;;:::i;:::-;;;;12885:91;;;;12814:169:::0;:::o;6612:83::-;6649:13;6682:5;;;;;;;;;;;;;;;;;6675:12;;6612:83;:::o;7544:193::-;7646:4;7668:39;7677:12;:10;:12::i;:::-;7691:7;7700:6;7668:8;:39::i;:::-;7725:4;7718:11;;7544:193;;;;:::o;5445:41::-;;;;;;;;;;;;;:::o;6892:95::-;6945:7;4635:20;6965:14;;6892:95;:::o;7746:446::-;7878:4;7895:36;7905:6;7913:9;7924:6;7895:9;:36::i;:::-;7942:220;7965:6;7986:12;:10;:12::i;:::-;8013:138;8069:6;8013:138;;;;;;;;;;;;;;;;;:11;:19;8025:6;8013:19;;;;;;;;;;;;;;;:33;8033:12;:10;:12::i;:::-;8013:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7942:8;:220::i;:::-;8180:4;8173:11;;7746:446;;;;;:::o;5751:52::-;;;;:::o;6800:83::-;6841:5;4308:1;6859:16;;6800:83;:::o;5493:28::-;;;;;;;;;;;;;:::o;12219:97::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12296:12:::1;12282:11;;:26;;;;;;;;;;;;;;;;;;12219:97:::0;:::o;12992:92::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13071:5:::1;13056:4;:12;13061:6;13056:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12992:92:::0;:::o;17443:101::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17524:12:::1;17510:11;;:26;;;;;;;;;;;;;;;;;;17443:101:::0;:::o;12570:235::-;12636:19;;;;;;;;;;;12620:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12675:17;;;;;;;;;;;12659:33;;:12;:10;:12::i;:::-;:33;;;12620:72;12612:81;;;;;;12704:26;12733:21;12704:50;;12765:32;12778:18;12765:12;:32::i;:::-;12601:204;12570:235::o;6996:138::-;7062:7;7089:37;7109:7;:16;7117:7;7109:16;;;;;;;;;;;;;;;;7089:19;:37::i;:::-;7082:44;;6996:138;;;:::o;1568:148::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1675:1:::1;1638:40;;1659:6;::::0;::::1;;;;;;;;1638:40;;;;;;;;;;;;1706:1;1689:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1568:148::o:0;17584:168::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17674:17:::1;17660:11;:31;17656:89;;;17722:11;17707:12;:26;;;;17656:89;17584:168:::0;:::o;5637:48::-;;;;:::o;5184:43::-;;;;;;;;;;;;;;;;;:::o;1352:79::-;1390:7;1417:6;;;;;;;;;;;1410:13;;1352:79;:::o;5693:50::-;;;;:::o;6704:87::-;6743:13;6776:7;;;;;;;;;;;;;;;;;6769:14;;6704:87;:::o;17251:139::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17364:18:::1;17342:19;:40;;;;17251:139:::0;:::o;16501:697::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16660:1:::1;16643:13;:18;;:40;;;;;16682:1;16665:13;:18;;16643:40;16635:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;16760:1;16745:11;:16;;:37;;;;;16780:2;16765:11;:17;;16745:37;16737:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;16858:1;16840:14;:19;;:42;;;;;16881:1;16863:14;:19;;16840:42;16832:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16961:1;16945:12;:17;;:39;;;;;16982:2;16966:12;:18;;16945:39;16937:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17055:13;17038:14;:30;;;;17097:14;17079:15;:32;;;;17137:11;17122:12;:26;;;;17175:12;17159:13;:28;;;;16501:697:::0;;;;:::o;7143:199::-;7248:4;7270:42;7280:12;:10;:12::i;:::-;7294:9;7305:6;7270:9;:42::i;:::-;7330:4;7323:11;;7143:199;;;;:::o;5146:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12325:236::-;12391:19;;;;;;;;;;;12375:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12430:17;;;;;;;;;;;12414:33;;:12;:10;:12::i;:::-;:33;;;12375:72;12367:81;;;;;;12459:23;12485:24;12503:4;12485:9;:24::i;:::-;12459:50;;12520:33;12537:15;12520:16;:33::i;:::-;12356:205;12325:236::o;17885:234::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18002:9:::1;17998:114;18021:8;;:15;;18017:1;:19;17998:114;;;18092:8;18058:18;:31;18077:8;;18086:1;18077:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18058:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18038:3;;;;;:::i;:::-;;;;17998:114;;;;17885:234:::0;;;:::o;7351:184::-;7468:7;7500:11;:18;7512:5;7500:18;;;;;;;;;;;;;;;:27;7519:7;7500:27;;;;;;;;;;;;;;;;7493:34;;7351:184;;;;:::o;17761:115::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17855:13:::1;17838:14;:30;;;;17761:115:::0;:::o;1725:244::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1834:1:::1;1814:22;;:8;:22;;::::0;1806:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1924:8;1895:38;;1916:6;::::0;::::1;;;;;;;;1895:38;;;;;;;;;;;;1953:8;1944:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1725:244:::0;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;8889:369::-;9033:1;9016:19;;:5;:19;;;9008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9114:1;9095:21;;:7;:21;;;9087:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9196:6;9166:11;:18;9178:5;9166:18;;;;;;;;;;;;;;;:27;9185:7;9166:27;;;;;;;;;;;;;;;:36;;;;9234:7;9218:32;;9227:5;9218:32;;;9243:6;9218:32;;;;;;:::i;:::-;;;;;;;;8889:369;;;:::o;9267:2343::-;9405:1;9389:18;;:4;:18;;;9381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9482:1;9468:16;;:2;:16;;;9460:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9552:1;9543:6;:10;9535:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9625:7;:5;:7::i;:::-;9617:15;;:4;:15;;;;:32;;;;;9642:7;:5;:7::i;:::-;9636:13;;:2;:13;;;;9617:32;9613:1265;;;9707:11;;;;;;;;;;;9702:144;;9755:7;:5;:7::i;:::-;9747:15;;:4;:15;;;9739:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9702:144;9881:12;;9871:6;:22;;9863:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9950:4;:10;9955:4;9950:10;;;;;;;;;;;;;;;;;;;;;;;;;9949:11;:24;;;;;9965:4;:8;9970:2;9965:8;;;;;;;;;;;;;;;;;;;;;;;;;9964:9;9949:24;9941:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10040:13;;;;;;;;;;;10034:19;;:2;:19;;;10031:146;;10107:14;;10098:6;10082:13;10092:2;10082:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10074:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10031:146;10194:28;10225:24;10243:4;10225:9;:24::i;:::-;10194:55;;10264:12;10303:19;;10279:20;:43;;10264:58;;10367:12;;10343:20;:36;10340:124;;10436:12;;10413:35;;10340:124;10485:7;:18;;;;;10497:6;;;;;;;;;;10496:7;10485:18;:43;;;;;10515:13;;;;;;;;;;;10507:21;;:4;:21;;;;10485:43;:58;;;;;10532:11;;;;;;;;;;;10485:58;:87;;;;;10548:18;:24;10567:4;10548:24;;;;;;;;;;;;;;;;;;;;;;;;;10547:25;10485:87;:114;;;;;10577:18;:22;10596:2;10577:22;;;;;;;;;;;;;;;;;;;;;;;;;10576:23;10485:114;10481:386;;;10620:38;10637:20;10620:16;:38::i;:::-;10677:26;10706:21;10677:50;;10771:1;10750:18;:22;10746:106;;;10797:35;10810:21;10797:12;:35::i;:::-;10746:106;10601:266;10481:386;9651:1227;;9613:1265;10891:12;10906:4;10891:19;;10956:18;:24;10975:4;10956:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10984:18;:22;11003:2;10984:22;;;;;;;;;;;;;;;;;;;;;;;;;10956:50;10955:102;;;;11020:13;;;;;;;;;;;11012:21;;:4;:21;;;;:44;;;;;11043:13;;;;;;;;;;;11037:19;;:2;:19;;;;11012:44;10955:102;10951:597;;;11084:5;11074:15;;10951:597;;;11168:13;;;;;;;;;;;11160:21;;:4;:21;;;:55;;;;;11199:15;;;;;;;;;;;11185:30;;:2;:30;;;;11160:55;11157:162;;;11248:14;;11236:9;:26;;;;11291:12;;11281:7;:22;;;;11157:162;11379:13;;;;;;;;;;;11373:19;;:2;:19;;;:55;;;;;11412:15;;;;;;;;;;;11396:32;;:4;:32;;;;11373:55;11369:165;;;11461:15;;11449:9;:27;;;;11505:13;;11495:7;:23;;;;11369:165;10951:597;11561:41;11576:4;11582:2;11586:6;11594:7;11561:14;:41::i;:::-;9370:2240;9267:2343;;;:::o;2337:224::-;2457:7;2490:1;2485;:6;;2493:12;2477:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2517:9;2533:1;2529;:5;;;;:::i;:::-;2517:17;;2552:1;2545:8;;;2337:224;;;;;:::o;12111:99::-;12168:17;;;;;;;;;;;:26;;:34;12195:6;12168:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12111:99;:::o;8201:323::-;8296:7;8354;;8343;:18;;8321:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8442:19;8464:10;:8;:10::i;:::-;8442:32;;8492:24;8504:11;8492:7;:11;;:24;;;;:::i;:::-;8485:31;;;8201:323;;;:::o;11619:483::-;5907:4;5898:6;;:13;;;;;;;;;;;;;;;;;;11697:21:::1;11735:1;11721:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11697:40;;11766:4;11748;11753:1;11748:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11792:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11782:4;11787:1;11782:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11825:62;11842:4;11857:15;;;;;;;;;;;11875:11;11825:8;:62::i;:::-;11898:15;;;;;;;;;;;:66;;;11979:11;12005:1;12021:4;12048;12068:15;11898:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11686:416;5943:5:::0;5934:6;;:14;;;;;;;;;;;;;;;;;;11619:483;:::o;13093:282::-;13249:7;13244:28;;13258:14;:12;:14::i;:::-;13244:28;13283:44;13301:6;13309:9;13320:6;13283:17;:44::i;:::-;13343:7;13338:29;;13352:15;:13;:15::i;:::-;13338:29;13093:282;;;;:::o;16062:164::-;16104:7;16125:15;16142;16161:19;:17;:19::i;:::-;16124:56;;;;16198:20;16210:7;16198;:11;;:20;;;;:::i;:::-;16191:27;;;;16062:164;:::o;2825:132::-;2883:7;2910:39;2914:1;2917;2910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2903:46;;2825:132;;;;:::o;8533:221::-;8593:1;8580:9;;:14;:30;;;;;8609:1;8598:7;;:12;8580:30;8612:7;8576:43;8652:9;;8632:17;:29;;;;8690:7;;8672:15;:25;;;;8723:1;8711:9;:13;;;;8745:1;8735:7;:11;;;;8533:221;:::o;13384:610::-;13531:15;13561:23;13599:12;13626:23;13664:12;13691:13;13718:19;13729:7;13718:10;:19::i;:::-;13516:221;;;;;;;;;;;;13766:28;13786:7;13766;:15;13774:6;13766:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13748:7;:15;13756:6;13748:15;;;;;;;;;;;;;;;:46;;;;13826:39;13849:15;13826:7;:18;13834:9;13826:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13805:7;:18;13813:9;13805:18;;;;;;;;;;;;;;;:60;;;;13876:16;13886:5;13876:9;:16::i;:::-;13903:23;13915:4;13921;13903:11;:23::i;:::-;13959:9;13942:44;;13951:6;13942:44;;;13970:15;13942:44;;;;;;:::i;:::-;;;;;;;;13505:489;;;;;;13384:610;;;:::o;8763:117::-;8819:17;;8807:9;:29;;;;8857:15;;8847:7;:25;;;;8763:117::o;16235:257::-;16286:7;16295;16315:15;16333:7;;16315:25;;16351:15;4635:20;16351:25;;16401:20;4635;16401:7;;:11;;:20;;;;:::i;:::-;16391:7;:30;16387:61;;;16431:7;;4635:20;16423:25;;;;;;;;16387:61;16467:7;16476;16459:25;;;;;;16235:257;;;:::o;2966:223::-;3086:7;3118:1;3114;:5;3121:12;3106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3145:9;3161:1;3157;:5;;;;:::i;:::-;3145:17;;3180:1;3173:8;;;2966:223;;;;;:::o;14417:615::-;14517:7;14539;14561;14583;14605;14627;14663:23;14688:12;14702:13;14732:40;14744:7;14753:9;;14764:7;;14732:11;:40::i;:::-;14662:110;;;;;;14783:19;14805:10;:8;:10::i;:::-;14783:32;;14827:15;14844:23;14869:12;14898:46;14910:7;14919:4;14925:5;14932:11;14898;:46::i;:::-;14826:118;;;;;;14963:7;14972:15;14989:4;14995:15;15012:4;15018:5;14955:69;;;;;;;;;;;;;;;;;;;14417:615;;;;;;;:::o;2192:136::-;2250:7;2277:43;2281:1;2284;2277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2270:50;;2192:136;;;;:::o;2004:179::-;2062:7;2082:9;2098:1;2094;:5;;;;:::i;:::-;2082:17;;2123:1;2118;:6;;2110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2174:1;2167:8;;;2004:179;;;;:::o;14003:211::-;14056:19;14078:10;:8;:10::i;:::-;14056:32;;14099:13;14115:22;14125:11;14115:5;:9;;:22;;;;:::i;:::-;14099:38;;14173:33;14200:5;14173:7;:22;14189:4;14173:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14148:7;:22;14164:4;14148:22;;;;;;;;;;;;;;;:58;;;;14045:169;;14003:211;:::o;14223:147::-;14301:17;14313:4;14301:7;;:11;;:17;;;;:::i;:::-;14291:7;:27;;;;14342:20;14357:4;14342:10;;:14;;:20;;;;:::i;:::-;14329:10;:33;;;;14223:147;;:::o;15041:469::-;15210:7;15232;15254;15289:12;15304:30;15330:3;15304:21;15316:8;15304:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15289:45;;15345:13;15361:28;15385:3;15361:19;15373:6;15361:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15345:44;;15400:23;15426:28;15448:5;15426:17;15438:4;15426:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15400:54;;15473:15;15490:4;15496:5;15465:37;;;;;;;;;15041:469;;;;;;;:::o;15519:534::-;15713:7;15735;15757;15792:15;15810:24;15822:11;15810:7;:11;;:24;;;;:::i;:::-;15792:42;;15845:12;15860:21;15869:11;15860:4;:8;;:21;;;;:::i;:::-;15845:36;;15892:13;15908:22;15918:11;15908:5;:9;;:22;;;;:::i;:::-;15892:38;;15941:23;15967:28;15989:5;15967:17;15979:4;15967:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15941:54;;16014:7;16023:15;16040:4;16006:39;;;;;;;;;;15519:534;;;;;;;;:::o;2570:246::-;2628:7;2657:1;2652;:6;2648:47;;2682:1;2675:8;;;;2648:47;2705:9;2721:1;2717;:5;;;;:::i;:::-;2705:17;;2750:1;2745;2741;:5;;;;:::i;:::-;:10;2733:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1;2800:8;;;2570:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:116::-;9090:21;9105:5;9090:21;:::i;:::-;9083:5;9080:32;9070:60;;9126:1;9123;9116:12;9070:60;9020:116;:::o;9142:133::-;9185:5;9223:6;9210:20;9201:29;;9239:30;9263:5;9239:30;:::i;:::-;9142:133;;;;:::o;9281:323::-;9337:6;9386:2;9374:9;9365:7;9361:23;9357:32;9354:119;;;9392:79;;:::i;:::-;9354:119;9512:1;9537:50;9579:7;9570:6;9559:9;9555:22;9537:50;:::i;:::-;9527:60;;9483:114;9281:323;;;;:::o;9610:329::-;9669:6;9718:2;9706:9;9697:7;9693:23;9689:32;9686:119;;;9724:79;;:::i;:::-;9686:119;9844:1;9869:53;9914:7;9905:6;9894:9;9890:22;9869:53;:::i;:::-;9859:63;;9815:117;9610:329;;;;:::o;9945:::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:233;14345:3;14368:24;14386:5;14368:24;:::i;:::-;14359:33;;14414:66;14407:5;14404:77;14401:103;;14484:18;;:::i;:::-;14401:103;14531:1;14524:5;14520:13;14513:20;;14306:233;;;:::o;14545:225::-;14685:34;14681:1;14673:6;14669:14;14662:58;14754:8;14749:2;14741:6;14737:15;14730:33;14545:225;:::o;14776:366::-;14918:3;14939:67;15003:2;14998:3;14939:67;:::i;:::-;14932:74;;15015:93;15104:3;15015:93;:::i;:::-;15133:2;15128:3;15124:12;15117:19;;14776:366;;;:::o;15148:419::-;15314:4;15352:2;15341:9;15337:18;15329:26;;15401:9;15395:4;15391:20;15387:1;15376:9;15372:17;15365:47;15429:131;15555:4;15429:131;:::i;:::-;15421:139;;15148:419;;;:::o;15573:221::-;15713:34;15709:1;15701:6;15697:14;15690:58;15782:4;15777:2;15769:6;15765:15;15758:29;15573:221;:::o;15800:366::-;15942:3;15963:67;16027:2;16022:3;15963:67;:::i;:::-;15956:74;;16039:93;16128:3;16039:93;:::i;:::-;16157:2;16152:3;16148:12;16141:19;;15800:366;;;:::o;16172:419::-;16338:4;16376:2;16365:9;16361:18;16353:26;;16425:9;16419:4;16415:20;16411:1;16400:9;16396:17;16389:47;16453:131;16579:4;16453:131;:::i;:::-;16445:139;;16172:419;;;:::o;16597:226::-;16737:34;16733:1;16725:6;16721:14;16714:58;16806:9;16801:2;16793:6;16789:15;16782:34;16597:226;:::o;16829:366::-;16971:3;16992:67;17056:2;17051:3;16992:67;:::i;:::-;16985:74;;17068:93;17157:3;17068:93;:::i;:::-;17186:2;17181:3;17177:12;17170:19;;16829:366;;;:::o;17201:419::-;17367:4;17405:2;17394:9;17390:18;17382:26;;17454:9;17448:4;17444:20;17440:1;17429:9;17425:17;17418:47;17482:131;17608:4;17482:131;:::i;:::-;17474:139;;17201:419;;;:::o;17626:222::-;17766:34;17762:1;17754:6;17750:14;17743:58;17835:5;17830:2;17822:6;17818:15;17811:30;17626:222;:::o;17854:366::-;17996:3;18017:67;18081:2;18076:3;18017:67;:::i;:::-;18010:74;;18093:93;18182:3;18093:93;:::i;:::-;18211:2;18206:3;18202:12;18195:19;;17854:366;;;:::o;18226:419::-;18392:4;18430:2;18419:9;18415:18;18407:26;;18479:9;18473:4;18469:20;18465:1;18454:9;18450:17;18443:47;18507:131;18633:4;18507:131;:::i;:::-;18499:139;;18226:419;;;:::o;18651:225::-;18791:34;18787:1;18779:6;18775:14;18768:58;18860:8;18855:2;18847:6;18843:15;18836:33;18651:225;:::o;18882:366::-;19024:3;19045:67;19109:2;19104:3;19045:67;:::i;:::-;19038:74;;19121:93;19210:3;19121:93;:::i;:::-;19239:2;19234:3;19230:12;19223:19;;18882:366;;;:::o;19254:419::-;19420:4;19458:2;19447:9;19443:18;19435:26;;19507:9;19501:4;19497:20;19493:1;19482:9;19478:17;19471:47;19535:131;19661:4;19535:131;:::i;:::-;19527:139;;19254:419;;;:::o;19679:223::-;19819:34;19815:1;19807:6;19803:14;19796:58;19888:6;19883:2;19875:6;19871:15;19864:31;19679:223;:::o;19908:366::-;20050:3;20071:67;20135:2;20130:3;20071:67;:::i;:::-;20064:74;;20147:93;20236:3;20147:93;:::i;:::-;20265:2;20260:3;20256:12;20249:19;;19908:366;;;:::o;20280:419::-;20446:4;20484:2;20473:9;20469:18;20461:26;;20533:9;20527:4;20523:20;20519:1;20508:9;20504:17;20497:47;20561:131;20687:4;20561:131;:::i;:::-;20553:139;;20280:419;;;:::o;20705:221::-;20845:34;20841:1;20833:6;20829:14;20822:58;20914:4;20909:2;20901:6;20897:15;20890:29;20705:221;:::o;20932:366::-;21074:3;21095:67;21159:2;21154:3;21095:67;:::i;:::-;21088:74;;21171:93;21260:3;21171:93;:::i;:::-;21289:2;21284:3;21280:12;21273:19;;20932:366;;;:::o;21304:419::-;21470:4;21508:2;21497:9;21493:18;21485:26;;21557:9;21551:4;21547:20;21543:1;21532:9;21528:17;21521:47;21585:131;21711:4;21585:131;:::i;:::-;21577:139;;21304:419;;;:::o;21729:224::-;21869:34;21865:1;21857:6;21853:14;21846:58;21938:7;21933:2;21925:6;21921:15;21914:32;21729:224;:::o;21959:366::-;22101:3;22122:67;22186:2;22181:3;22122:67;:::i;:::-;22115:74;;22198:93;22287:3;22198:93;:::i;:::-;22316:2;22311:3;22307:12;22300:19;;21959:366;;;:::o;22331:419::-;22497:4;22535:2;22524:9;22520:18;22512:26;;22584:9;22578:4;22574:20;22570:1;22559:9;22555:17;22548:47;22612:131;22738:4;22612:131;:::i;:::-;22604:139;;22331:419;;;:::o;22756:222::-;22896:34;22892:1;22884:6;22880:14;22873:58;22965:5;22960:2;22952:6;22948:15;22941:30;22756:222;:::o;22984:366::-;23126:3;23147:67;23211:2;23206:3;23147:67;:::i;:::-;23140:74;;23223:93;23312:3;23223:93;:::i;:::-;23341:2;23336:3;23332:12;23325:19;;22984:366;;;:::o;23356:419::-;23522:4;23560:2;23549:9;23545:18;23537:26;;23609:9;23603:4;23599:20;23595:1;23584:9;23580:17;23573:47;23637:131;23763:4;23637:131;:::i;:::-;23629:139;;23356:419;;;:::o;23781:228::-;23921:34;23917:1;23909:6;23905:14;23898:58;23990:11;23985:2;23977:6;23973:15;23966:36;23781:228;:::o;24015:366::-;24157:3;24178:67;24242:2;24237:3;24178:67;:::i;:::-;24171:74;;24254:93;24343:3;24254:93;:::i;:::-;24372:2;24367:3;24363:12;24356:19;;24015:366;;;:::o;24387:419::-;24553:4;24591:2;24580:9;24576:18;24568:26;;24640:9;24634:4;24630:20;24626:1;24615:9;24611:17;24604:47;24668:131;24794:4;24668:131;:::i;:::-;24660:139;;24387:419;;;:::o;24812:250::-;24952:34;24948:1;24940:6;24936:14;24929:58;25021:33;25016:2;25008:6;25004:15;24997:58;24812:250;:::o;25068:366::-;25210:3;25231:67;25295:2;25290:3;25231:67;:::i;:::-;25224:74;;25307:93;25396:3;25307:93;:::i;:::-;25425:2;25420:3;25416:12;25409:19;;25068:366;;;:::o;25440:419::-;25606:4;25644:2;25633:9;25629:18;25621:26;;25693:9;25687:4;25683:20;25679:1;25668:9;25664:17;25657:47;25721:131;25847:4;25721:131;:::i;:::-;25713:139;;25440:419;;;:::o;25865:178::-;26005:30;26001:1;25993:6;25989:14;25982:54;25865:178;:::o;26049:366::-;26191:3;26212:67;26276:2;26271:3;26212:67;:::i;:::-;26205:74;;26288:93;26377:3;26288:93;:::i;:::-;26406:2;26401:3;26397:12;26390:19;;26049:366;;;:::o;26421:419::-;26587:4;26625:2;26614:9;26610:18;26602:26;;26674:9;26668:4;26664:20;26660:1;26649:9;26645:17;26638:47;26702:131;26828:4;26702:131;:::i;:::-;26694:139;;26421:419;;;:::o;26846:222::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:5;27050:2;27042:6;27038:15;27031:30;26846:222;:::o;27074:366::-;27216:3;27237:67;27301:2;27296:3;27237:67;:::i;:::-;27230:74;;27313:93;27402:3;27313:93;:::i;:::-;27431:2;27426:3;27422:12;27415:19;;27074:366;;;:::o;27446:419::-;27612:4;27650:2;27639:9;27635:18;27627:26;;27699:9;27693:4;27689:20;27685:1;27674:9;27670:17;27663:47;27727:131;27853:4;27727:131;:::i;:::-;27719:139;;27446:419;;;:::o;27871:191::-;27911:3;27930:20;27948:1;27930:20;:::i;:::-;27925:25;;27964:20;27982:1;27964:20;:::i;:::-;27959:25;;28007:1;28004;28000:9;27993:16;;28028:3;28025:1;28022:10;28019:36;;;28035:18;;:::i;:::-;28019:36;27871:191;;;;:::o;28068:222::-;28208:34;28204:1;28196:6;28192:14;28185:58;28277:5;28272:2;28264:6;28260:15;28253:30;28068:222;:::o;28296:366::-;28438:3;28459:67;28523:2;28518:3;28459:67;:::i;:::-;28452:74;;28535:93;28624:3;28535:93;:::i;:::-;28653:2;28648:3;28644:12;28637:19;;28296:366;;;:::o;28668:419::-;28834:4;28872:2;28861:9;28857:18;28849:26;;28921:9;28915:4;28911:20;28907:1;28896:9;28892:17;28885:47;28949:131;29075:4;28949:131;:::i;:::-;28941:139;;28668:419;;;:::o;29093:194::-;29133:4;29153:20;29171:1;29153:20;:::i;:::-;29148:25;;29187:20;29205:1;29187:20;:::i;:::-;29182:25;;29231:1;29228;29224:9;29216:17;;29255:1;29249:4;29246:11;29243:37;;;29260:18;;:::i;:::-;29243:37;29093:194;;;;:::o;29293:229::-;29433:34;29429:1;29421:6;29417:14;29410:58;29502:12;29497:2;29489:6;29485:15;29478:37;29293:229;:::o;29528:366::-;29670:3;29691:67;29755:2;29750:3;29691:67;:::i;:::-;29684:74;;29767:93;29856:3;29767:93;:::i;:::-;29885:2;29880:3;29876:12;29869:19;;29528:366;;;:::o;29900:419::-;30066:4;30104:2;30093:9;30089:18;30081:26;;30153:9;30147:4;30143:20;30139:1;30128:9;30124:17;30117:47;30181:131;30307:4;30181:131;:::i;:::-;30173:139;;29900:419;;;:::o;30325:143::-;30382:5;30413:6;30407:13;30398:22;;30429:33;30456:5;30429:33;:::i;:::-;30325:143;;;;:::o;30474:351::-;30544:6;30593:2;30581:9;30572:7;30568:23;30564:32;30561:119;;;30599:79;;:::i;:::-;30561:119;30719:1;30744:64;30800:7;30791:6;30780:9;30776:22;30744:64;:::i;:::-;30734:74;;30690:128;30474:351;;;;:::o;30831:85::-;30876:7;30905:5;30894:16;;30831:85;;;:::o;30922:158::-;30980:9;31013:61;31031:42;31040:32;31066:5;31040:32;:::i;:::-;31031:42;:::i;:::-;31013:61;:::i;:::-;31000:74;;30922:158;;;:::o;31086:147::-;31181:45;31220:5;31181:45;:::i;:::-;31176:3;31169:58;31086:147;;:::o;31239:114::-;31306:6;31340:5;31334:12;31324:22;;31239:114;;;:::o;31359:184::-;31458:11;31492:6;31487:3;31480:19;31532:4;31527:3;31523:14;31508:29;;31359:184;;;;:::o;31549:132::-;31616:4;31639:3;31631:11;;31669:4;31664:3;31660:14;31652:22;;31549:132;;;:::o;31687:108::-;31764:24;31782:5;31764:24;:::i;:::-;31759:3;31752:37;31687:108;;:::o;31801:179::-;31870:10;31891:46;31933:3;31925:6;31891:46;:::i;:::-;31969:4;31964:3;31960:14;31946:28;;31801:179;;;;:::o;31986:113::-;32056:4;32088;32083:3;32079:14;32071:22;;31986:113;;;:::o;32135:732::-;32254:3;32283:54;32331:5;32283:54;:::i;:::-;32353:86;32432:6;32427:3;32353:86;:::i;:::-;32346:93;;32463:56;32513:5;32463:56;:::i;:::-;32542:7;32573:1;32558:284;32583:6;32580:1;32577:13;32558:284;;;32659:6;32653:13;32686:63;32745:3;32730:13;32686:63;:::i;:::-;32679:70;;32772:60;32825:6;32772:60;:::i;:::-;32762:70;;32618:224;32605:1;32602;32598:9;32593:14;;32558:284;;;32562:14;32858:3;32851:10;;32259:608;;;32135:732;;;;:::o;32873:831::-;33136:4;33174:3;33163:9;33159:19;33151:27;;33188:71;33256:1;33245:9;33241:17;33232:6;33188:71;:::i;:::-;33269:80;33345:2;33334:9;33330:18;33321:6;33269:80;:::i;:::-;33396:9;33390:4;33386:20;33381:2;33370:9;33366:18;33359:48;33424:108;33527:4;33518:6;33424:108;:::i;:::-;33416:116;;33542:72;33610:2;33599:9;33595:18;33586:6;33542:72;:::i;:::-;33624:73;33692:3;33681:9;33677:19;33668:6;33624:73;:::i;:::-;32873:831;;;;;;;;:::o;33710:180::-;33758:77;33755:1;33748:88;33855:4;33852:1;33845:15;33879:4;33876:1;33869:15;33896:185;33936:1;33953:20;33971:1;33953:20;:::i;:::-;33948:25;;33987:20;34005:1;33987:20;:::i;:::-;33982:25;;34026:1;34016:35;;34031:18;;:::i;:::-;34016:35;34073:1;34070;34066:9;34061:14;;33896:185;;;;:::o;34087:177::-;34227:29;34223:1;34215:6;34211:14;34204:53;34087:177;:::o;34270:366::-;34412:3;34433:67;34497:2;34492:3;34433:67;:::i;:::-;34426:74;;34509:93;34598:3;34509:93;:::i;:::-;34627:2;34622:3;34618:12;34611:19;;34270:366;;;:::o;34642:419::-;34808:4;34846:2;34835:9;34831:18;34823:26;;34895:9;34889:4;34885:20;34881:1;34870:9;34866:17;34859:47;34923:131;35049:4;34923:131;:::i;:::-;34915:139;;34642:419;;;:::o;35067:410::-;35107:7;35130:20;35148:1;35130:20;:::i;:::-;35125:25;;35164:20;35182:1;35164:20;:::i;:::-;35159:25;;35219:1;35216;35212:9;35241:30;35259:11;35241:30;:::i;:::-;35230:41;;35420:1;35411:7;35407:15;35404:1;35401:22;35381:1;35374:9;35354:83;35331:139;;35450:18;;:::i;:::-;35331:139;35115:362;35067:410;;;;:::o;35483:220::-;35623:34;35619:1;35611:6;35607:14;35600:58;35692:3;35687:2;35679:6;35675:15;35668:28;35483:220;:::o;35709:366::-;35851:3;35872:67;35936:2;35931:3;35872:67;:::i;:::-;35865:74;;35948:93;36037:3;35948:93;:::i;:::-;36066:2;36061:3;36057:12;36050:19;;35709:366;;;:::o;36081:419::-;36247:4;36285:2;36274:9;36270:18;36262:26;;36334:9;36328:4;36324:20;36320:1;36309:9;36305:17;36298:47;36362:131;36488:4;36362:131;:::i;:::-;36354:139;;36081:419;;;:::o
Swarm Source
ipfs://c6314c8dc96773b13436784cbc3257696f9aabb8cbead3e81e9c0720c1558e95
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.