ERC-20
Overview
Max Total Supply
1,000,000 DChain
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
13,793.067940294127649169 DChainValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DChainToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-06 */ /* ██████╗ ██╗███╗ ██╗ ██████╗ ███████╗██████╗ ██████╗██╗ ██╗ █████╗ ██╗███╗ ██╗ ██╔══██╗██║████╗ ██║██╔════╝ ██╔════╝██╔══██╗██╔════╝██║ ██║██╔══██╗██║████╗ ██║ ██║ ██║██║██╔██╗ ██║██║ ███╗█████╗ ██████╔╝██║ ███████║███████║██║██╔██╗ ██║ ██║ ██║██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗██║ ██╔══██║██╔══██║██║██║╚██╗██║ ██████╔╝██║██║ ╚████║╚██████╔╝███████╗██║ ██║╚██████╗██║ ██║██║ ██║██║██║ ╚████║ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝ https://twitter.com/DingerChain https://t.me/DingerChainPortal */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } 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); } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; 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 waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract DChainToken is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "DingerChain"; string private _symbol = "DChain"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0xA2Af84BA9D4Ea38A77269aEEcE4ffdD22749a076); address payable public DeveloperWallet = payable(0x9acBdB2155D4Aa31c7842fE6606A85010c07482E); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public blacklist; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 public _buyLiquidityFee = 1; uint256 public _buyMarketingFee = 3; uint256 public _buyDeveloperFee = 1; uint256 public _sellLiquidityFee = 1; uint256 public _sellMarketingFee = 3; uint256 public _sellDeveloperFee = 1; uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalSupply = 1000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1e4); //0.001% uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); //2% uint256 public _walletMax = _totalSupply.mul(2).div(100); //2% IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[DeveloperWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[DeveloperWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[DeveloperWallet] = true; isTxLimitExempt[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } 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 setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function enableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setDeveloperWalletAddress(address newAddress) external onlyOwner() { DeveloperWallet = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } function setBlacklist(address _adr, bool _status) external onlyOwner { blacklist[_adr] = _status; } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _buyLiquidityFee = _Liquidity; _buyMarketingFee = _Marketing; _buyDeveloperFee = _Developer; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); } function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _sellLiquidityFee = _Liquidity; _sellMarketingFee = _Marketing; _sellDeveloperFee = _Developer; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function rescueStuckedToken(address _token, uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender,_amount); } function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling); uint256 tokensForLP = tAmount.mul(_buyLiquidityFee.add(_sellLiquidityFee)).div(totalShares); uint256 tokensForMarketing = tAmount.mul(_buyMarketingFee.add(_sellMarketingFee)).div(totalShares); uint256 tokensForDeveloper = tAmount.mul(_buyDeveloperFee.add(_sellDeveloperFee)).div(totalShares); uint256 halfToken = tokensForLP.div(2); uint256 tokensForSwap = tokensForLP.sub(halfToken); uint256 initialAmount = address(this).balance; swapTokensForEth(tokensForSwap); uint256 amountETHLiquidity = address(this).balance.sub(initialAmount); address contractAddress = address(this); if(tokensForMarketing > 0) { _basicTransfer(contractAddress, marketingWallet, tokensForMarketing); } if(tokensForDeveloper > 0) { _basicTransfer(contractAddress, DeveloperWallet, tokensForDeveloper); } if(amountETHLiquidity > 0 && halfToken > 0) { addLiquidity(halfToken, amountETHLiquidity); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } /* AirDrop Function*/ function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner { address account = msg.sender; require(_address.length == _tokens.length,"Error: Mismatch Length"); uint tokenCount; for(uint i = 0; i < _tokens.length; i++) { tokenCount += _tokens[i]; } require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!"); _balances[account] = _balances[account].sub(tokenCount); for(uint j = 0; j < _address.length; j++) { _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]); emit Transfer(account, _address[j], _tokens[j]); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","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":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526040518060400160405280600b81526020017f44696e676572436861696e000000000000000000000000000000000000000000815250600190805190602001906200005192919062001003565b506040518060400160405280600681526020017f44436861696e0000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062001003565b506012600360006101000a81548160ff021916908360ff16021790555073a2af84ba9d4ea38a77269aeece4ffdd22749a076600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739acbdb2155d4aa31c7842fe6606a85010c07482e600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600c556003600d556001600e556001600f5560036010556001601155600360009054906101000a900460ff16600a6200021191906200136b565b620f4240620002219190620014a8565b6014556200025c61271062000248600160145462000e3160201b620030f71790919060201c565b62000eb560201b620031721790919060201c565b60155562000296606462000282600260145462000e3160201b620030f71790919060201c565b62000eb560201b620031721790919060201c565b601655620002d06064620002bc600260145462000e3160201b620030f71790919060201c565b62000eb560201b620031721790919060201c565b6017556001601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506001601960176101000a81548160ff0219169083151502179055506001601960186101000a81548160ff0219169083151502179055503480156200034c57600080fd5b5060006200035f62000f0760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045d57600080fd5b505afa15801562000472573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004989190620010ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004fb57600080fd5b505afa15801562000510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005369190620010ca565b6040518363ffffffff1660e01b815260040162000555929190620011ad565b602060405180830381600087803b1580156200057057600080fd5b505af115801562000585573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ab9190620010ca565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620006e762000f0f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200089a62000f0f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600062000ac762000f0f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c9d600e5462000c89600d54600c5462000f3860201b620031bc1790919060201c565b62000f3860201b620031bc1790919060201c565b60128190555062000cdc60115462000cc8601054600f5462000f3860201b620031bc1790919060201c565b62000f3860201b620031bc1790919060201c565b601381905550600160086000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506014546005600062000d7362000f0760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000dc162000f0760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000e22919062001242565b60405180910390a35062001702565b60008083141562000e46576000905062000eaf565b6000828462000e569190620014a8565b905082848262000e679190620012d8565b1462000eaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ea19062001220565b60405180910390fd5b809150505b92915050565b600062000eff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000f9b60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000f4991906200127b565b90508381101562000f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f8890620011fe565b60405180910390fd5b8091505092915050565b6000808311829062000fe5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fdc9190620011da565b60405180910390fd5b506000838562000ff69190620012d8565b9050809150509392505050565b82805462001011906200158a565b90600052602060002090601f01602090048101928262001035576000855562001081565b82601f106200105057805160ff191683800117855562001081565b8280016001018555821562001081579182015b828111156200108057825182559160200191906001019062001063565b5b50905062001090919062001094565b5090565b5b80821115620010af57600081600090555060010162001095565b5090565b600081519050620010c481620016e8565b92915050565b600060208284031215620010e357620010e26200164d565b5b6000620010f384828501620010b3565b91505092915050565b620011078162001509565b82525050565b60006200111a826200125f565b6200112681856200126a565b93506200113881856020860162001554565b620011438162001652565b840191505092915050565b60006200115d601b836200126a565b91506200116a8262001670565b602082019050919050565b6000620011846021836200126a565b9150620011918262001699565b604082019050919050565b620011a7816200153d565b82525050565b6000604082019050620011c46000830185620010fc565b620011d36020830184620010fc565b9392505050565b60006020820190508181036000830152620011f681846200110d565b905092915050565b6000602082019050818103600083015262001219816200114e565b9050919050565b600060208201905081810360008301526200123b8162001175565b9050919050565b60006020820190506200125960008301846200119c565b92915050565b600081519050919050565b600082825260208201905092915050565b600062001288826200153d565b915062001295836200153d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620012cd57620012cc620015c0565b5b828201905092915050565b6000620012e5826200153d565b9150620012f2836200153d565b925082620013055762001304620015ef565b5b828204905092915050565b6000808291508390505b600185111562001362578086048111156200133a5762001339620015c0565b5b60018516156200134a5780820291505b80810290506200135a8562001663565b94506200131a565b94509492505050565b600062001378826200153d565b9150620013858362001547565b9250620013b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013bc565b905092915050565b600082620013ce5760019050620014a1565b81620013de5760009050620014a1565b8160018114620013f75760028114620014025762001438565b6001915050620014a1565b60ff841115620014175762001416620015c0565b5b8360020a915084821115620014315762001430620015c0565b5b50620014a1565b5060208310610133831016604e8410600b8410161715620014725782820a9050838111156200146c576200146b620015c0565b5b620014a1565b62001481848484600162001310565b925090508184048111156200149b576200149a620015c0565b5b81810290505b9392505050565b6000620014b5826200153d565b9150620014c2836200153d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620014fe57620014fd620015c0565b5b828202905092915050565b600062001516826200151d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200157457808201518184015260208101905062001557565b8381111562001584576000848401525b50505050565b60006002820490506001821680620015a357607f821691505b60208210811415620015ba57620015b96200161e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b620016f38162001509565b8114620016ff57600080fd5b50565b60805160601c60a05160601c6158936200173c6000396000818161100101526114f10152600081816114c5015261151d01526158936000f3fe6080604052600436106103a65760003560e01c806385261485116101e7578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610dd1578063f8f6329014610dfc578063f9f92be414610e27578063fb4b8e6c14610e64576103ad565b8063f1d5f51714610d2d578063f2fde38b14610d56578063f455444614610d7f578063f84ba65d14610da8576103ad565b8063ec28438a116100dc578063ec28438a14610c87578063ee828db314610cb0578063ef422a1814610cd9578063f0cd1dac14610d02576103ad565b8063da00097d14610bdd578063dc44b6a014610c08578063dd62ed3e14610c33578063e6b2603b14610c70576103ad565b8063a5d69d1f11610185578063c816841b11610154578063c816841b14610b1f578063c860795214610b4a578063c867d60b14610b75578063d2d7ad8314610bb2576103ad565b8063a5d69d1f14610a65578063a9059cbb14610a8e578063c49b9a8014610acb578063c5d2418914610af4576103ad565b80638da5cb5b116101c15780638da5cb5b146109bb578063914eb66a146109e657806395d89b41146109fd578063a457c2d714610a28576103ad565b8063852614851461092857806388790a68146109535780638b42507f1461097e576103ad565b806339509351116102cc5780635881f3ef1161026a5780637d1db4a5116102395780637d1db4a51461087e578063807c2d9c146108a957806382eefb43146108d4578063844d591c146108ff576103ad565b80635881f3ef146107b057806367243482146107ed57806370a082311461081657806375f0a87414610853576103ad565b80634a74bb02116102a65780634a74bb02146106f45780634cb80fd51461071f5780635194f9bf146107485780635342acb414610773576103ad565b806339509351146106515780633b97084a1461068e5780633ecad271146106b7576103ad565b80631870517a116103445780632563ae83116103135780632563ae83146105a757806327c8f835146105d05780632b112e49146105fb578063313ce56714610626576103ad565b80631870517a146104ed5780632198cf6c1461051657806323555d571461053f57806323b872dd1461056a576103ad565b8063095ea7b311610380578063095ea7b314610431578063153b0d1e1461046e5780631694505e1461049757806318160ddd146104c2576103ad565b806306fdde03146103b257806308733214146103dd5780630930907b14610406576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610e8d565b6040516103d49190614e1a565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff919061492f565b610f1f565b005b34801561041257600080fd5b5061041b610fff565b6040516104289190614cfb565b60405180910390f35b34801561043d57600080fd5b50610458600480360381019061045391906147e7565b611023565b6040516104659190614de4565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906147a7565b611041565b005b3480156104a357600080fd5b506104ac611131565b6040516104b99190614dff565b60405180910390f35b3480156104ce57600080fd5b506104d7611157565b6040516104e49190614fdc565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061492f565b611161565b005b34801561052257600080fd5b5061053d600480360381019061053891906147a7565b611241565b005b34801561054b57600080fd5b50610554611331565b6040516105619190614fdc565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190614754565b611337565b60405161059e9190614de4565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c991906148a8565b611411565b005b3480156105dc57600080fd5b506105e56114c3565b6040516105f29190614cfb565b60405180910390f35b34801561060757600080fd5b506106106114e7565b60405161061d9190614fdc565b60405180910390f35b34801561063257600080fd5b5061063b611565565b6040516106489190615081565b60405180910390f35b34801561065d57600080fd5b50610678600480360381019061067391906147e7565b61157c565b6040516106859190614de4565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190614902565b61162f565b005b3480156106c357600080fd5b506106de60048036038101906106d991906146ba565b6116ce565b6040516106eb9190614de4565b60405180910390f35b34801561070057600080fd5b506107096116ee565b6040516107169190614de4565b60405180910390f35b34801561072b57600080fd5b50610746600480360381019061074191906146ba565b611701565b005b34801561075457600080fd5b5061075d6117da565b60405161076a9190614fdc565b60405180910390f35b34801561077f57600080fd5b5061079a600480360381019061079591906146ba565b6117e0565b6040516107a79190614de4565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d291906146ba565b611800565b6040516107e49190614cfb565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190614827565b611ce4565b005b34801561082257600080fd5b5061083d600480360381019061083891906146ba565b6120bf565b60405161084a9190614fdc565b60405180910390f35b34801561085f57600080fd5b50610868612108565b6040516108759190614d16565b60405180910390f35b34801561088a57600080fd5b5061089361212e565b6040516108a09190614fdc565b60405180910390f35b3480156108b557600080fd5b506108be612134565b6040516108cb9190614fdc565b60405180910390f35b3480156108e057600080fd5b506108e961213a565b6040516108f69190614fdc565b60405180910390f35b34801561090b57600080fd5b50610926600480360381019061092191906147a7565b612140565b005b34801561093457600080fd5b5061093d612230565b60405161094a9190614de4565b60405180910390f35b34801561095f57600080fd5b50610968612243565b6040516109759190614fdc565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a091906146ba565b612249565b6040516109b29190614de4565b60405180910390f35b3480156109c757600080fd5b506109d0612269565b6040516109dd9190614cfb565b60405180910390f35b3480156109f257600080fd5b506109fb612292565b005b348015610a0957600080fd5b50610a126123e7565b604051610a1f9190614e1a565b60405180910390f35b348015610a3457600080fd5b50610a4f6004803603810190610a4a91906147e7565b612479565b604051610a5c9190614de4565b60405180910390f35b348015610a7157600080fd5b50610a8c6004803603810190610a8791906148a8565b612546565b005b348015610a9a57600080fd5b50610ab56004803603810190610ab091906147e7565b6125f8565b604051610ac29190614de4565b60405180910390f35b348015610ad757600080fd5b50610af26004803603810190610aed91906148a8565b612617565b005b348015610b0057600080fd5b50610b09612700565b604051610b169190614fdc565b60405180910390f35b348015610b2b57600080fd5b50610b34612706565b604051610b419190614cfb565b60405180910390f35b348015610b5657600080fd5b50610b5f61272c565b604051610b6c9190614fdc565b60405180910390f35b348015610b8157600080fd5b50610b9c6004803603810190610b9791906146ba565b612732565b604051610ba99190614de4565b60405180910390f35b348015610bbe57600080fd5b50610bc7612752565b604051610bd49190614fdc565b60405180910390f35b348015610be957600080fd5b50610bf2612758565b604051610bff9190614de4565b60405180910390f35b348015610c1457600080fd5b50610c1d61276b565b604051610c2a9190614fdc565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c559190614714565b612771565b604051610c679190614fdc565b60405180910390f35b348015610c7c57600080fd5b50610c856127f8565b005b348015610c9357600080fd5b50610cae6004803603810190610ca99190614902565b612906565b005b348015610cbc57600080fd5b50610cd76004803603810190610cd291906148a8565b6129a5565b005b348015610ce557600080fd5b50610d006004803603810190610cfb91906147a7565b612a57565b005b348015610d0e57600080fd5b50610d17612b47565b604051610d249190614fdc565b60405180910390f35b348015610d3957600080fd5b50610d546004803603810190610d4f9190614902565b612b4d565b005b348015610d6257600080fd5b50610d7d6004803603810190610d7891906146ba565b612bec565b005b348015610d8b57600080fd5b50610da66004803603810190610da191906147e7565b612dae565b005b348015610db457600080fd5b50610dcf6004803603810190610dca91906147a7565b612ed5565b005b348015610ddd57600080fd5b50610de6612fc5565b604051610df39190614de4565b60405180910390f35b348015610e0857600080fd5b50610e11612fd8565b604051610e1e9190614d16565b60405180910390f35b348015610e3357600080fd5b50610e4e6004803603810190610e4991906146ba565b612ffe565b604051610e5b9190614de4565b60405180910390f35b348015610e7057600080fd5b50610e8b6004803603810190610e8691906146ba565b61301e565b005b606060018054610e9c906152f3565b80601f0160208091040260200160405190810160405280929190818152602001828054610ec8906152f3565b8015610f155780601f10610eea57610100808354040283529160200191610f15565b820191906000526020600020905b815481529060010190602001808311610ef857829003601f168201915b5050505050905090565b610f2761321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90614f7c565b60405180910390fd5b82600f819055508160108190555080601181905550610ff4601154610fe6601054600f546131bc90919063ffffffff16565b6131bc90919063ffffffff16565b601381905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061103761103061321a565b8484613222565b6001905092915050565b61104961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90614f7c565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b61116961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed90614f7c565b60405180910390fd5b82600c8190555081600d8190555080600e81905550611236600e54611228600d54600c546131bc90919063ffffffff16565b6131bc90919063ffffffff16565b601281905550505050565b61124961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd90614f7c565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b60006113448484846133ed565b506114068461135161321a565b6114018560405180606001604052806028815260200161581160289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113b761321a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b613222565b600190509392505050565b61141961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90614f7c565b60405180910390fd5b80601960176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115606115157f00000000000000000000000000000000000000000000000000000000000000006120bf565b6115526115417f00000000000000000000000000000000000000000000000000000000000000006120bf565b601454613b6790919063ffffffff16565b613b6790919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061162561158961321a565b84611620856006600061159a61321a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b613222565b6001905092915050565b61163761321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90614f7c565b60405180910390fd5b8060158190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b601960159054906101000a900460ff1681565b61170961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90614f7c565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b60076020528060005260406000206000915054906101000a900460ff1681565b600061180a61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e90614f7c565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a91906146e7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561197c57600080fd5b505afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b491906146e7565b6040518363ffffffff1660e01b81526004016119d1929190614d31565b60206040518083038186803b1580156119e957600080fd5b505afa1580156119fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2191906146e7565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611be2578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9e57600080fd5b505afa158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad691906146e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3857600080fd5b505afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7091906146e7565b6040518363ffffffff1660e01b8152600401611b8d929190614d31565b602060405180830381600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdf91906146e7565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cec61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090614f7c565b60405180910390fd5b6000339050828290508585905014611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90614f5c565b60405180910390fd5b600080600090505b84849050811015611e1357848482818110611dec57611deb6153fb565b5b9050602002013582611dfe91906150fc565b91508080611e0b90615325565b915050611dce565b5080611e1e836120bf565b1015611e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5690614e5c565b60405180910390fd5b611eb181600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b6790919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b868690508110156120b657611f94858583818110611f1857611f176153fb565b5b90506020020135600560008a8a86818110611f3657611f356153fb565b5b9050602002016020810190611f4b91906146ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b60056000898985818110611fab57611faa6153fb565b5b9050602002016020810190611fc091906146ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550868682818110612011576120106153fb565b5b905060200201602081019061202691906146ba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878785818110612087576120866153fb565b5b9050602002013560405161209b9190614fdc565b60405180910390a380806120ae90615325565b915050611ef7565b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b60135481565b61214861321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc90614f7c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960189054906101000a900460ff1681565b600f5481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61229a61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614f7c565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546123f6906152f3565b80601f0160208091040260200160405190810160405280929190818152602001828054612422906152f3565b801561246f5780601f106124445761010080835404028352916020019161246f565b820191906000526020600020905b81548152906001019060200180831161245257829003601f168201915b5050505050905090565b600061253c61248661321a565b846125378560405180606001604052806025815260200161583960259139600660006124b061321a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b613222565b6001905092915050565b61254e61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d290614f7c565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b600061260c61260561321a565b84846133ed565b506001905092915050565b61261f61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a390614f7c565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f59190614de4565b60405180910390a150565b600d5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60155481565b601960169054906101000a900460ff1681565b600c5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61280061321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461288d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288490614f7c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516128b390614ce6565b60006040518083038185875af1925050503d80600081146128f0576040519150601f19603f3d011682016040523d82523d6000602084013e6128f5565b606091505b505090508061290357600080fd5b50565b61290e61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299290614f7c565b60405180910390fd5b8060168190555050565b6129ad61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3190614f7c565b60405180910390fd5b80601960186101000a81548160ff02191690831515021790555050565b612a5f61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae390614f7c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b612b5561321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd990614f7c565b60405180910390fd5b8060178190555050565b612bf461321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7890614f7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce890614e7c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612db661321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3a90614f7c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612e7e929190614d5a565b602060405180830381600087803b158015612e9857600080fd5b505af1158015612eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed091906148d5565b505050565b612edd61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6190614f7c565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b61302661321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130aa90614f7c565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561310a576000905061316c565b600082846131189190615183565b90508284826131279190615152565b14613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e90614f3c565b60405180910390fd5b809150505b92915050565b60006131b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bb1565b905092915050565b60008082846131cb91906150fc565b905083811015613210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320790614ebc565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328990614fbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f990614e9c565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516133e09190614fdc565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561345e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345590614f9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c590614e3c565b60405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135725750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6135b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a890614efc565b60405180910390fd5b601960149054906101000a900460ff16156135d8576135d1848484613c14565b9050613afc565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561367c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156136945750601960189054906101000a900460ff165b156136df576016548211156136de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136d590614f1c565b60405180910390fd5b5b60006136ea306120bf565b9050600060155482101590508080156137105750601960149054906101000a900460ff16155b80156137665750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561377e5750601960159054906101000a900460ff165b156137a857601960169054906101000a900460ff161561379e5760155491505b6137a782613de7565b5b613831846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139175750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61392b57613926878787613fea565b61392d565b845b9050601960179054906101000a900460ff1680156139955750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156139fa576017546139b8826139aa896120bf565b6131bc90919063ffffffff16565b11156139f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f090614edc565b60405180910390fd5b5b613a4c81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613aec9190614fdc565b60405180910390a3600193505050505b9392505050565b6000838311158290613b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b429190614e1a565b60405180910390fd5b5060008385613b5a91906151dd565b9050809150509392505050565b6000613ba983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b03565b905092915050565b60008083118290613bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bef9190614e1a565b60405180910390fd5b5060008385613c079190615152565b9050809150509392505050565b6000613c9f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d3482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613dd49190614fdc565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613e1b6013546012546131bc90919063ffffffff16565b90506000613e5a82613e4c613e3d600f54600c546131bc90919063ffffffff16565b866130f790919063ffffffff16565b61317290919063ffffffff16565b90506000613e9983613e8b613e7c601054600d546131bc90919063ffffffff16565b876130f790919063ffffffff16565b61317290919063ffffffff16565b90506000613ed884613eca613ebb601154600e546131bc90919063ffffffff16565b886130f790919063ffffffff16565b61317290919063ffffffff16565b90506000613ef060028561317290919063ffffffff16565b90506000613f078286613b6790919063ffffffff16565b90506000479050613f1782614211565b6000613f2c8247613b6790919063ffffffff16565b905060003090506000871115613f6b57613f6981600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689613c14565b505b6000861115613fa357613fa181600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688613c14565b505b600082118015613fb35750600085115b15613fc357613fc2858361449c565b5b5050505050505050506000601960146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156140725761406b606461405d601254866130f790919063ffffffff16565b61317290919063ffffffff16565b90506140f0565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156140ef576140ec60646140de601354866130f790919063ffffffff16565b61317290919063ffffffff16565b90505b5b60008111156141f45761414b81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141eb9190614fdc565b60405180910390a35b6142078184613b6790919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561422e5761422d61542a565b5b60405190808252806020026020018201604052801561425c5781602001602082028036833780820191505090505b5090503081600081518110614274576142736153fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561431657600080fd5b505afa15801561432a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434e91906146e7565b81600181518110614362576143616153fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506143c930601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613222565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161442d959493929190615027565b600060405180830381600087803b15801561444757600080fd5b505af115801561445b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614490929190614ff7565b60405180910390a15050565b6144c930601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613222565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080614515612269565b426040518863ffffffff1660e01b815260040161453796959493929190614d83565b6060604051808303818588803b15801561455057600080fd5b505af1158015614564573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906145899190614982565b5050505050565b60008135905061459f816157cb565b92915050565b6000815190506145b4816157cb565b92915050565b60008083601f8401126145d0576145cf61545e565b5b8235905067ffffffffffffffff8111156145ed576145ec615459565b5b60208301915083602082028301111561460957614608615463565b5b9250929050565b60008083601f8401126146265761462561545e565b5b8235905067ffffffffffffffff81111561464357614642615459565b5b60208301915083602082028301111561465f5761465e615463565b5b9250929050565b600081359050614675816157e2565b92915050565b60008151905061468a816157e2565b92915050565b60008135905061469f816157f9565b92915050565b6000815190506146b4816157f9565b92915050565b6000602082840312156146d0576146cf61546d565b5b60006146de84828501614590565b91505092915050565b6000602082840312156146fd576146fc61546d565b5b600061470b848285016145a5565b91505092915050565b6000806040838503121561472b5761472a61546d565b5b600061473985828601614590565b925050602061474a85828601614590565b9150509250929050565b60008060006060848603121561476d5761476c61546d565b5b600061477b86828701614590565b935050602061478c86828701614590565b925050604061479d86828701614690565b9150509250925092565b600080604083850312156147be576147bd61546d565b5b60006147cc85828601614590565b92505060206147dd85828601614666565b9150509250929050565b600080604083850312156147fe576147fd61546d565b5b600061480c85828601614590565b925050602061481d85828601614690565b9150509250929050565b600080600080604085870312156148415761484061546d565b5b600085013567ffffffffffffffff81111561485f5761485e615468565b5b61486b878288016145ba565b9450945050602085013567ffffffffffffffff81111561488e5761488d615468565b5b61489a87828801614610565b925092505092959194509250565b6000602082840312156148be576148bd61546d565b5b60006148cc84828501614666565b91505092915050565b6000602082840312156148eb576148ea61546d565b5b60006148f98482850161467b565b91505092915050565b6000602082840312156149185761491761546d565b5b600061492684828501614690565b91505092915050565b6000806000606084860312156149485761494761546d565b5b600061495686828701614690565b935050602061496786828701614690565b925050604061497886828701614690565b9150509250925092565b60008060006060848603121561499b5761499a61546d565b5b60006149a9868287016146a5565b93505060206149ba868287016146a5565b92505060406149cb868287016146a5565b9150509250925092565b60006149e183836149fc565b60208301905092915050565b6149f681615223565b82525050565b614a0581615211565b82525050565b614a1481615211565b82525050565b6000614a25826150ac565b614a2f81856150cf565b9350614a3a8361509c565b8060005b83811015614a6b578151614a5288826149d5565b9750614a5d836150c2565b925050600181019050614a3e565b5085935050505092915050565b614a8181615235565b82525050565b614a9081615278565b82525050565b614a9f8161528a565b82525050565b6000614ab0826150b7565b614aba81856150eb565b9350614aca8185602086016152c0565b614ad381615472565b840191505092915050565b6000614aeb6023836150eb565b9150614af682615483565b604082019050919050565b6000614b0e601b836150eb565b9150614b19826154d2565b602082019050919050565b6000614b316026836150eb565b9150614b3c826154fb565b604082019050919050565b6000614b546022836150eb565b9150614b5f8261554a565b604082019050919050565b6000614b77601b836150eb565b9150614b8282615599565b602082019050919050565b6000614b9a6025836150eb565b9150614ba5826155c2565b604082019050919050565b6000614bbd601d836150eb565b9150614bc882615611565b602082019050919050565b6000614be06028836150eb565b9150614beb8261563a565b604082019050919050565b6000614c036021836150eb565b9150614c0e82615689565b604082019050919050565b6000614c266016836150eb565b9150614c31826156d8565b602082019050919050565b6000614c496020836150eb565b9150614c5482615701565b602082019050919050565b6000614c6c6025836150eb565b9150614c778261572a565b604082019050919050565b6000614c8f6000836150e0565b9150614c9a82615779565b600082019050919050565b6000614cb26024836150eb565b9150614cbd8261577c565b604082019050919050565b614cd181615261565b82525050565b614ce08161526b565b82525050565b6000614cf182614c82565b9150819050919050565b6000602082019050614d106000830184614a0b565b92915050565b6000602082019050614d2b60008301846149ed565b92915050565b6000604082019050614d466000830185614a0b565b614d536020830184614a0b565b9392505050565b6000604082019050614d6f6000830185614a0b565b614d7c6020830184614cc8565b9392505050565b600060c082019050614d986000830189614a0b565b614da56020830188614cc8565b614db26040830187614a96565b614dbf6060830186614a96565b614dcc6080830185614a0b565b614dd960a0830184614cc8565b979650505050505050565b6000602082019050614df96000830184614a78565b92915050565b6000602082019050614e146000830184614a87565b92915050565b60006020820190508181036000830152614e348184614aa5565b905092915050565b60006020820190508181036000830152614e5581614ade565b9050919050565b60006020820190508181036000830152614e7581614b01565b9050919050565b60006020820190508181036000830152614e9581614b24565b9050919050565b60006020820190508181036000830152614eb581614b47565b9050919050565b60006020820190508181036000830152614ed581614b6a565b9050919050565b60006020820190508181036000830152614ef581614b8d565b9050919050565b60006020820190508181036000830152614f1581614bb0565b9050919050565b60006020820190508181036000830152614f3581614bd3565b9050919050565b60006020820190508181036000830152614f5581614bf6565b9050919050565b60006020820190508181036000830152614f7581614c19565b9050919050565b60006020820190508181036000830152614f9581614c3c565b9050919050565b60006020820190508181036000830152614fb581614c5f565b9050919050565b60006020820190508181036000830152614fd581614ca5565b9050919050565b6000602082019050614ff16000830184614cc8565b92915050565b600060408201905061500c6000830185614cc8565b818103602083015261501e8184614a1a565b90509392505050565b600060a08201905061503c6000830188614cc8565b6150496020830187614a96565b818103604083015261505b8186614a1a565b905061506a6060830185614a0b565b6150776080830184614cc8565b9695505050505050565b60006020820190506150966000830184614cd7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061510782615261565b915061511283615261565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151475761514661536e565b5b828201905092915050565b600061515d82615261565b915061516883615261565b9250826151785761517761539d565b5b828204905092915050565b600061518e82615261565b915061519983615261565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156151d2576151d161536e565b5b828202905092915050565b60006151e882615261565b91506151f383615261565b9250828210156152065761520561536e565b5b828203905092915050565b600061521c82615241565b9050919050565b600061522e82615241565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006152838261529c565b9050919050565b600061529582615261565b9050919050565b60006152a7826152ae565b9050919050565b60006152b982615241565b9050919050565b60005b838110156152de5780820151818401526020810190506152c3565b838111156152ed576000848401525b50505050565b6000600282049050600182168061530b57607f821691505b6020821081141561531f5761531e6153cc565b5b50919050565b600061533082615261565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156153635761536261536e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6157d481615211565b81146157df57600080fd5b50565b6157eb81615235565b81146157f657600080fd5b50565b61580281615261565b811461580d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e384ad00468bacdecbce66f43e9305da5da694e88936f8de02548a3ecc82052764736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103a65760003560e01c806385261485116101e7578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610dd1578063f8f6329014610dfc578063f9f92be414610e27578063fb4b8e6c14610e64576103ad565b8063f1d5f51714610d2d578063f2fde38b14610d56578063f455444614610d7f578063f84ba65d14610da8576103ad565b8063ec28438a116100dc578063ec28438a14610c87578063ee828db314610cb0578063ef422a1814610cd9578063f0cd1dac14610d02576103ad565b8063da00097d14610bdd578063dc44b6a014610c08578063dd62ed3e14610c33578063e6b2603b14610c70576103ad565b8063a5d69d1f11610185578063c816841b11610154578063c816841b14610b1f578063c860795214610b4a578063c867d60b14610b75578063d2d7ad8314610bb2576103ad565b8063a5d69d1f14610a65578063a9059cbb14610a8e578063c49b9a8014610acb578063c5d2418914610af4576103ad565b80638da5cb5b116101c15780638da5cb5b146109bb578063914eb66a146109e657806395d89b41146109fd578063a457c2d714610a28576103ad565b8063852614851461092857806388790a68146109535780638b42507f1461097e576103ad565b806339509351116102cc5780635881f3ef1161026a5780637d1db4a5116102395780637d1db4a51461087e578063807c2d9c146108a957806382eefb43146108d4578063844d591c146108ff576103ad565b80635881f3ef146107b057806367243482146107ed57806370a082311461081657806375f0a87414610853576103ad565b80634a74bb02116102a65780634a74bb02146106f45780634cb80fd51461071f5780635194f9bf146107485780635342acb414610773576103ad565b806339509351146106515780633b97084a1461068e5780633ecad271146106b7576103ad565b80631870517a116103445780632563ae83116103135780632563ae83146105a757806327c8f835146105d05780632b112e49146105fb578063313ce56714610626576103ad565b80631870517a146104ed5780632198cf6c1461051657806323555d571461053f57806323b872dd1461056a576103ad565b8063095ea7b311610380578063095ea7b314610431578063153b0d1e1461046e5780631694505e1461049757806318160ddd146104c2576103ad565b806306fdde03146103b257806308733214146103dd5780630930907b14610406576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610e8d565b6040516103d49190614e1a565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff919061492f565b610f1f565b005b34801561041257600080fd5b5061041b610fff565b6040516104289190614cfb565b60405180910390f35b34801561043d57600080fd5b50610458600480360381019061045391906147e7565b611023565b6040516104659190614de4565b60405180910390f35b34801561047a57600080fd5b50610495600480360381019061049091906147a7565b611041565b005b3480156104a357600080fd5b506104ac611131565b6040516104b99190614dff565b60405180910390f35b3480156104ce57600080fd5b506104d7611157565b6040516104e49190614fdc565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f919061492f565b611161565b005b34801561052257600080fd5b5061053d600480360381019061053891906147a7565b611241565b005b34801561054b57600080fd5b50610554611331565b6040516105619190614fdc565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190614754565b611337565b60405161059e9190614de4565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c991906148a8565b611411565b005b3480156105dc57600080fd5b506105e56114c3565b6040516105f29190614cfb565b60405180910390f35b34801561060757600080fd5b506106106114e7565b60405161061d9190614fdc565b60405180910390f35b34801561063257600080fd5b5061063b611565565b6040516106489190615081565b60405180910390f35b34801561065d57600080fd5b50610678600480360381019061067391906147e7565b61157c565b6040516106859190614de4565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190614902565b61162f565b005b3480156106c357600080fd5b506106de60048036038101906106d991906146ba565b6116ce565b6040516106eb9190614de4565b60405180910390f35b34801561070057600080fd5b506107096116ee565b6040516107169190614de4565b60405180910390f35b34801561072b57600080fd5b50610746600480360381019061074191906146ba565b611701565b005b34801561075457600080fd5b5061075d6117da565b60405161076a9190614fdc565b60405180910390f35b34801561077f57600080fd5b5061079a600480360381019061079591906146ba565b6117e0565b6040516107a79190614de4565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d291906146ba565b611800565b6040516107e49190614cfb565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190614827565b611ce4565b005b34801561082257600080fd5b5061083d600480360381019061083891906146ba565b6120bf565b60405161084a9190614fdc565b60405180910390f35b34801561085f57600080fd5b50610868612108565b6040516108759190614d16565b60405180910390f35b34801561088a57600080fd5b5061089361212e565b6040516108a09190614fdc565b60405180910390f35b3480156108b557600080fd5b506108be612134565b6040516108cb9190614fdc565b60405180910390f35b3480156108e057600080fd5b506108e961213a565b6040516108f69190614fdc565b60405180910390f35b34801561090b57600080fd5b50610926600480360381019061092191906147a7565b612140565b005b34801561093457600080fd5b5061093d612230565b60405161094a9190614de4565b60405180910390f35b34801561095f57600080fd5b50610968612243565b6040516109759190614fdc565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a091906146ba565b612249565b6040516109b29190614de4565b60405180910390f35b3480156109c757600080fd5b506109d0612269565b6040516109dd9190614cfb565b60405180910390f35b3480156109f257600080fd5b506109fb612292565b005b348015610a0957600080fd5b50610a126123e7565b604051610a1f9190614e1a565b60405180910390f35b348015610a3457600080fd5b50610a4f6004803603810190610a4a91906147e7565b612479565b604051610a5c9190614de4565b60405180910390f35b348015610a7157600080fd5b50610a8c6004803603810190610a8791906148a8565b612546565b005b348015610a9a57600080fd5b50610ab56004803603810190610ab091906147e7565b6125f8565b604051610ac29190614de4565b60405180910390f35b348015610ad757600080fd5b50610af26004803603810190610aed91906148a8565b612617565b005b348015610b0057600080fd5b50610b09612700565b604051610b169190614fdc565b60405180910390f35b348015610b2b57600080fd5b50610b34612706565b604051610b419190614cfb565b60405180910390f35b348015610b5657600080fd5b50610b5f61272c565b604051610b6c9190614fdc565b60405180910390f35b348015610b8157600080fd5b50610b9c6004803603810190610b9791906146ba565b612732565b604051610ba99190614de4565b60405180910390f35b348015610bbe57600080fd5b50610bc7612752565b604051610bd49190614fdc565b60405180910390f35b348015610be957600080fd5b50610bf2612758565b604051610bff9190614de4565b60405180910390f35b348015610c1457600080fd5b50610c1d61276b565b604051610c2a9190614fdc565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c559190614714565b612771565b604051610c679190614fdc565b60405180910390f35b348015610c7c57600080fd5b50610c856127f8565b005b348015610c9357600080fd5b50610cae6004803603810190610ca99190614902565b612906565b005b348015610cbc57600080fd5b50610cd76004803603810190610cd291906148a8565b6129a5565b005b348015610ce557600080fd5b50610d006004803603810190610cfb91906147a7565b612a57565b005b348015610d0e57600080fd5b50610d17612b47565b604051610d249190614fdc565b60405180910390f35b348015610d3957600080fd5b50610d546004803603810190610d4f9190614902565b612b4d565b005b348015610d6257600080fd5b50610d7d6004803603810190610d7891906146ba565b612bec565b005b348015610d8b57600080fd5b50610da66004803603810190610da191906147e7565b612dae565b005b348015610db457600080fd5b50610dcf6004803603810190610dca91906147a7565b612ed5565b005b348015610ddd57600080fd5b50610de6612fc5565b604051610df39190614de4565b60405180910390f35b348015610e0857600080fd5b50610e11612fd8565b604051610e1e9190614d16565b60405180910390f35b348015610e3357600080fd5b50610e4e6004803603810190610e4991906146ba565b612ffe565b604051610e5b9190614de4565b60405180910390f35b348015610e7057600080fd5b50610e8b6004803603810190610e8691906146ba565b61301e565b005b606060018054610e9c906152f3565b80601f0160208091040260200160405190810160405280929190818152602001828054610ec8906152f3565b8015610f155780601f10610eea57610100808354040283529160200191610f15565b820191906000526020600020905b815481529060010190602001808311610ef857829003601f168201915b5050505050905090565b610f2761321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90614f7c565b60405180910390fd5b82600f819055508160108190555080601181905550610ff4601154610fe6601054600f546131bc90919063ffffffff16565b6131bc90919063ffffffff16565b601381905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061103761103061321a565b8484613222565b6001905092915050565b61104961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90614f7c565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b61116961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed90614f7c565b60405180910390fd5b82600c8190555081600d8190555080600e81905550611236600e54611228600d54600c546131bc90919063ffffffff16565b6131bc90919063ffffffff16565b601281905550505050565b61124961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd90614f7c565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b60006113448484846133ed565b506114068461135161321a565b6114018560405180606001604052806028815260200161581160289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113b761321a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b613222565b600190509392505050565b61141961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90614f7c565b60405180910390fd5b80601960176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006115606115157f00000000000000000000000000000000000000000000000000000000000000006120bf565b6115526115417f000000000000000000000000000000000000000000000000000000000000dead6120bf565b601454613b6790919063ffffffff16565b613b6790919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061162561158961321a565b84611620856006600061159a61321a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b613222565b6001905092915050565b61163761321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90614f7c565b60405180910390fd5b8060158190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b601960159054906101000a900460ff1681565b61170961321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90614f7c565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b60076020528060005260406000206000915054906101000a900460ff1681565b600061180a61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e90614f7c565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e257600080fd5b505afa1580156118f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191a91906146e7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561197c57600080fd5b505afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b491906146e7565b6040518363ffffffff1660e01b81526004016119d1929190614d31565b60206040518083038186803b1580156119e957600080fd5b505afa1580156119fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2191906146e7565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611be2578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9e57600080fd5b505afa158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad691906146e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3857600080fd5b505afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7091906146e7565b6040518363ffffffff1660e01b8152600401611b8d929190614d31565b602060405180830381600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdf91906146e7565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cec61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090614f7c565b60405180910390fd5b6000339050828290508585905014611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90614f5c565b60405180910390fd5b600080600090505b84849050811015611e1357848482818110611dec57611deb6153fb565b5b9050602002013582611dfe91906150fc565b91508080611e0b90615325565b915050611dce565b5080611e1e836120bf565b1015611e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5690614e5c565b60405180910390fd5b611eb181600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b6790919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b868690508110156120b657611f94858583818110611f1857611f176153fb565b5b90506020020135600560008a8a86818110611f3657611f356153fb565b5b9050602002016020810190611f4b91906146ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b60056000898985818110611fab57611faa6153fb565b5b9050602002016020810190611fc091906146ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550868682818110612011576120106153fb565b5b905060200201602081019061202691906146ba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878785818110612087576120866153fb565b5b9050602002013560405161209b9190614fdc565b60405180910390a380806120ae90615325565b915050611ef7565b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b60135481565b61214861321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc90614f7c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960189054906101000a900460ff1681565b600f5481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61229a61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614f7c565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600280546123f6906152f3565b80601f0160208091040260200160405190810160405280929190818152602001828054612422906152f3565b801561246f5780601f106124445761010080835404028352916020019161246f565b820191906000526020600020905b81548152906001019060200180831161245257829003601f168201915b5050505050905090565b600061253c61248661321a565b846125378560405180606001604052806025815260200161583960259139600660006124b061321a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b613222565b6001905092915050565b61254e61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d290614f7c565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b600061260c61260561321a565b84846133ed565b506001905092915050565b61261f61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a390614f7c565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f59190614de4565b60405180910390a150565b600d5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60155481565b601960169054906101000a900460ff1681565b600c5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61280061321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461288d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288490614f7c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516128b390614ce6565b60006040518083038185875af1925050503d80600081146128f0576040519150601f19603f3d011682016040523d82523d6000602084013e6128f5565b606091505b505090508061290357600080fd5b50565b61290e61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299290614f7c565b60405180910390fd5b8060168190555050565b6129ad61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3190614f7c565b60405180910390fd5b80601960186101000a81548160ff02191690831515021790555050565b612a5f61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae390614f7c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b612b5561321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd990614f7c565b60405180910390fd5b8060178190555050565b612bf461321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7890614f7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce890614e7c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612db661321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3a90614f7c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612e7e929190614d5a565b602060405180830381600087803b158015612e9857600080fd5b505af1158015612eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed091906148d5565b505050565b612edd61321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6190614f7c565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b61302661321a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130aa90614f7c565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561310a576000905061316c565b600082846131189190615183565b90508284826131279190615152565b14613167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315e90614f3c565b60405180910390fd5b809150505b92915050565b60006131b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bb1565b905092915050565b60008082846131cb91906150fc565b905083811015613210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320790614ebc565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328990614fbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f990614e9c565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516133e09190614fdc565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561345e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345590614f9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c590614e3c565b60405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135725750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6135b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a890614efc565b60405180910390fd5b601960149054906101000a900460ff16156135d8576135d1848484613c14565b9050613afc565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561367c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156136945750601960189054906101000a900460ff165b156136df576016548211156136de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136d590614f1c565b60405180910390fd5b5b60006136ea306120bf565b9050600060155482101590508080156137105750601960149054906101000a900460ff16155b80156137665750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561377e5750601960159054906101000a900460ff165b156137a857601960169054906101000a900460ff161561379e5760155491505b6137a782613de7565b5b613831846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139175750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61392b57613926878787613fea565b61392d565b845b9050601960179054906101000a900460ff1680156139955750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156139fa576017546139b8826139aa896120bf565b6131bc90919063ffffffff16565b11156139f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f090614edc565b60405180910390fd5b5b613a4c81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613aec9190614fdc565b60405180910390a3600193505050505b9392505050565b6000838311158290613b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b429190614e1a565b60405180910390fd5b5060008385613b5a91906151dd565b9050809150509392505050565b6000613ba983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b03565b905092915050565b60008083118290613bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bef9190614e1a565b60405180910390fd5b5060008385613c079190615152565b9050809150509392505050565b6000613c9f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b039092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d3482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613dd49190614fdc565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613e1b6013546012546131bc90919063ffffffff16565b90506000613e5a82613e4c613e3d600f54600c546131bc90919063ffffffff16565b866130f790919063ffffffff16565b61317290919063ffffffff16565b90506000613e9983613e8b613e7c601054600d546131bc90919063ffffffff16565b876130f790919063ffffffff16565b61317290919063ffffffff16565b90506000613ed884613eca613ebb601154600e546131bc90919063ffffffff16565b886130f790919063ffffffff16565b61317290919063ffffffff16565b90506000613ef060028561317290919063ffffffff16565b90506000613f078286613b6790919063ffffffff16565b90506000479050613f1782614211565b6000613f2c8247613b6790919063ffffffff16565b905060003090506000871115613f6b57613f6981600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689613c14565b505b6000861115613fa357613fa181600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688613c14565b505b600082118015613fb35750600085115b15613fc357613fc2858361449c565b5b5050505050505050506000601960146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156140725761406b606461405d601254866130f790919063ffffffff16565b61317290919063ffffffff16565b90506140f0565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156140ef576140ec60646140de601354866130f790919063ffffffff16565b61317290919063ffffffff16565b90505b5b60008111156141f45761414b81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131bc90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141eb9190614fdc565b60405180910390a35b6142078184613b6790919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561422e5761422d61542a565b5b60405190808252806020026020018201604052801561425c5781602001602082028036833780820191505090505b5090503081600081518110614274576142736153fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561431657600080fd5b505afa15801561432a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434e91906146e7565b81600181518110614362576143616153fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506143c930601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613222565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161442d959493929190615027565b600060405180830381600087803b15801561444757600080fd5b505af115801561445b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614490929190614ff7565b60405180910390a15050565b6144c930601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613222565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080614515612269565b426040518863ffffffff1660e01b815260040161453796959493929190614d83565b6060604051808303818588803b15801561455057600080fd5b505af1158015614564573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906145899190614982565b5050505050565b60008135905061459f816157cb565b92915050565b6000815190506145b4816157cb565b92915050565b60008083601f8401126145d0576145cf61545e565b5b8235905067ffffffffffffffff8111156145ed576145ec615459565b5b60208301915083602082028301111561460957614608615463565b5b9250929050565b60008083601f8401126146265761462561545e565b5b8235905067ffffffffffffffff81111561464357614642615459565b5b60208301915083602082028301111561465f5761465e615463565b5b9250929050565b600081359050614675816157e2565b92915050565b60008151905061468a816157e2565b92915050565b60008135905061469f816157f9565b92915050565b6000815190506146b4816157f9565b92915050565b6000602082840312156146d0576146cf61546d565b5b60006146de84828501614590565b91505092915050565b6000602082840312156146fd576146fc61546d565b5b600061470b848285016145a5565b91505092915050565b6000806040838503121561472b5761472a61546d565b5b600061473985828601614590565b925050602061474a85828601614590565b9150509250929050565b60008060006060848603121561476d5761476c61546d565b5b600061477b86828701614590565b935050602061478c86828701614590565b925050604061479d86828701614690565b9150509250925092565b600080604083850312156147be576147bd61546d565b5b60006147cc85828601614590565b92505060206147dd85828601614666565b9150509250929050565b600080604083850312156147fe576147fd61546d565b5b600061480c85828601614590565b925050602061481d85828601614690565b9150509250929050565b600080600080604085870312156148415761484061546d565b5b600085013567ffffffffffffffff81111561485f5761485e615468565b5b61486b878288016145ba565b9450945050602085013567ffffffffffffffff81111561488e5761488d615468565b5b61489a87828801614610565b925092505092959194509250565b6000602082840312156148be576148bd61546d565b5b60006148cc84828501614666565b91505092915050565b6000602082840312156148eb576148ea61546d565b5b60006148f98482850161467b565b91505092915050565b6000602082840312156149185761491761546d565b5b600061492684828501614690565b91505092915050565b6000806000606084860312156149485761494761546d565b5b600061495686828701614690565b935050602061496786828701614690565b925050604061497886828701614690565b9150509250925092565b60008060006060848603121561499b5761499a61546d565b5b60006149a9868287016146a5565b93505060206149ba868287016146a5565b92505060406149cb868287016146a5565b9150509250925092565b60006149e183836149fc565b60208301905092915050565b6149f681615223565b82525050565b614a0581615211565b82525050565b614a1481615211565b82525050565b6000614a25826150ac565b614a2f81856150cf565b9350614a3a8361509c565b8060005b83811015614a6b578151614a5288826149d5565b9750614a5d836150c2565b925050600181019050614a3e565b5085935050505092915050565b614a8181615235565b82525050565b614a9081615278565b82525050565b614a9f8161528a565b82525050565b6000614ab0826150b7565b614aba81856150eb565b9350614aca8185602086016152c0565b614ad381615472565b840191505092915050565b6000614aeb6023836150eb565b9150614af682615483565b604082019050919050565b6000614b0e601b836150eb565b9150614b19826154d2565b602082019050919050565b6000614b316026836150eb565b9150614b3c826154fb565b604082019050919050565b6000614b546022836150eb565b9150614b5f8261554a565b604082019050919050565b6000614b77601b836150eb565b9150614b8282615599565b602082019050919050565b6000614b9a6025836150eb565b9150614ba5826155c2565b604082019050919050565b6000614bbd601d836150eb565b9150614bc882615611565b602082019050919050565b6000614be06028836150eb565b9150614beb8261563a565b604082019050919050565b6000614c036021836150eb565b9150614c0e82615689565b604082019050919050565b6000614c266016836150eb565b9150614c31826156d8565b602082019050919050565b6000614c496020836150eb565b9150614c5482615701565b602082019050919050565b6000614c6c6025836150eb565b9150614c778261572a565b604082019050919050565b6000614c8f6000836150e0565b9150614c9a82615779565b600082019050919050565b6000614cb26024836150eb565b9150614cbd8261577c565b604082019050919050565b614cd181615261565b82525050565b614ce08161526b565b82525050565b6000614cf182614c82565b9150819050919050565b6000602082019050614d106000830184614a0b565b92915050565b6000602082019050614d2b60008301846149ed565b92915050565b6000604082019050614d466000830185614a0b565b614d536020830184614a0b565b9392505050565b6000604082019050614d6f6000830185614a0b565b614d7c6020830184614cc8565b9392505050565b600060c082019050614d986000830189614a0b565b614da56020830188614cc8565b614db26040830187614a96565b614dbf6060830186614a96565b614dcc6080830185614a0b565b614dd960a0830184614cc8565b979650505050505050565b6000602082019050614df96000830184614a78565b92915050565b6000602082019050614e146000830184614a87565b92915050565b60006020820190508181036000830152614e348184614aa5565b905092915050565b60006020820190508181036000830152614e5581614ade565b9050919050565b60006020820190508181036000830152614e7581614b01565b9050919050565b60006020820190508181036000830152614e9581614b24565b9050919050565b60006020820190508181036000830152614eb581614b47565b9050919050565b60006020820190508181036000830152614ed581614b6a565b9050919050565b60006020820190508181036000830152614ef581614b8d565b9050919050565b60006020820190508181036000830152614f1581614bb0565b9050919050565b60006020820190508181036000830152614f3581614bd3565b9050919050565b60006020820190508181036000830152614f5581614bf6565b9050919050565b60006020820190508181036000830152614f7581614c19565b9050919050565b60006020820190508181036000830152614f9581614c3c565b9050919050565b60006020820190508181036000830152614fb581614c5f565b9050919050565b60006020820190508181036000830152614fd581614ca5565b9050919050565b6000602082019050614ff16000830184614cc8565b92915050565b600060408201905061500c6000830185614cc8565b818103602083015261501e8184614a1a565b90509392505050565b600060a08201905061503c6000830188614cc8565b6150496020830187614a96565b818103604083015261505b8186614a1a565b905061506a6060830185614a0b565b6150776080830184614cc8565b9695505050505050565b60006020820190506150966000830184614cd7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061510782615261565b915061511283615261565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151475761514661536e565b5b828201905092915050565b600061515d82615261565b915061516883615261565b9250826151785761517761539d565b5b828204905092915050565b600061518e82615261565b915061519983615261565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156151d2576151d161536e565b5b828202905092915050565b60006151e882615261565b91506151f383615261565b9250828210156152065761520561536e565b5b828203905092915050565b600061521c82615241565b9050919050565b600061522e82615241565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006152838261529c565b9050919050565b600061529582615261565b9050919050565b60006152a7826152ae565b9050919050565b60006152b982615241565b9050919050565b60005b838110156152de5780820151818401526020810190506152c3565b838111156152ed576000848401525b50505050565b6000600282049050600182168061530b57607f821691505b6020821081141561531f5761531e6153cc565b5b50919050565b600061533082615261565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156153635761536261536e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6157d481615211565b81146157df57600080fd5b50565b6157eb81615235565b81146157f657600080fd5b50565b61580281615261565b811461580d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e384ad00468bacdecbce66f43e9305da5da694e88936f8de02548a3ecc82052764736f6c63430008070033
Deployed Bytecode Sourcemap
12903:16118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16827:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21758:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13416:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17993:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20426:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14549:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17104:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21441:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18926:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13991:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22352:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19303:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13328:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20262:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17013:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17490:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19534:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13690:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14664:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19666:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14125:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13633:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20685:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28313:697;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17212:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13124:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14403:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14475:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14209:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18507:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14807:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14039:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13850:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4358:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4583:227;;;;;;;;;;;;;:::i;:::-;;16918:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17716:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20125:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22177:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19946:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13949:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14597:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14082:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13791:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14314:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14711:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13907:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17339:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24714:154;;;;;;;;;;;;;:::i;:::-;;19184:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19069:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18644:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14170:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19424:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4818:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24567:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18787:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14765:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13223:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13742:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19806:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16827:83;16864:13;16897:5;16890:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16827:83;:::o;21758:317::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21880:10:::1;21860:17;:30;;;;21921:10;21901:17;:30;;;;21962:10;21942:17;:30;;;;22004:63;22049:17;;22004:40;22026:17;;22004;;:21;;:40;;;;:::i;:::-;:44;;:63;;;;:::i;:::-;21983:18;:84;;;;21758:317:::0;;;:::o;13416:81::-;;;:::o;17993:161::-;18068:4;18085:39;18094:12;:10;:12::i;:::-;18108:7;18117:6;18085:8;:39::i;:::-;18142:4;18135:11;;17993:161;;;;:::o;20426:113::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20524:7:::1;20506:9;:15;20516:4;20506:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;20426:113:::0;;:::o;14549:41::-;;;;;;;;;;;;;:::o;17104:100::-;17157:7;17184:12;;17177:19;;17104:100;:::o;21441:309::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21561:10:::1;21542:16;:29;;;;21601:10;21582:16;:29;;;;21641:10;21622:16;:29;;;;21682:60;21725:16;;21682:38;21703:16;;21682;;:20;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;21662:17;:80;;;;21441:309:::0;;;:::o;18926:135::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19047:6:::1;19017:19;:27;19037:6;19017:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18926:135:::0;;:::o;13991:35::-;;;;:::o;22352:313::-;22450:4;22467:36;22477:6;22485:9;22496:6;22467:9;:36::i;:::-;;22514:121;22523:6;22531:12;:10;:12::i;:::-;22545:89;22583:6;22545:89;;;;;;;;;;;;;;;;;:11;:19;22557:6;22545:19;;;;;;;;;;;;;;;:33;22565:12;:10;:12::i;:::-;22545:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22514:8;:121::i;:::-;22653:4;22646:11;;22352:313;;;;;:::o;19303:113::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19400:8:::1;19381:16;;:27;;;;;;;;;;;;;;;;;;19303:113:::0;:::o;13328:81::-;;;:::o;20262:156::-;20315:7;20342:68;20387:22;20397:11;20387:9;:22::i;:::-;20342:40;20359:22;20369:11;20359:9;:22::i;:::-;20342:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;20335:75;;20262:156;:::o;17013:83::-;17054:5;17079:9;;;;;;;;;;;17072:16;;17013:83;:::o;17490:218::-;17578:4;17595:83;17604:12;:10;:12::i;:::-;17618:7;17627:50;17666:10;17627:11;:25;17639:12;:10;:12::i;:::-;17627:25;;;;;;;;;;;;;;;:34;17653:7;17627:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17595:8;:83::i;:::-;17696:4;17689:11;;17490:218;;;;:::o;19534:124::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19642:8:::1;19616:23;:34;;;;19534:124:::0;:::o;13690:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14664:40::-;;;;;;;;;;;;;:::o;19666:132::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19779:10:::1;19753:15;;:37;;;;;;;;;;;;;;;;;;19666:132:::0;:::o;14125:36::-;;;;:::o;13633:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20685:748::-;20765:22;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20802:35:::1;20859:16;20802:74;;20925:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20907:53;;;20969:4;20976:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20907:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20890:110;;21042:1;21016:28;;:14;:28;;;21013:225;;;21130:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21112:74;;;21195:4;21202:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21112:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21095:131;;21013:225;21264:14;21250:11;;:28;;;;;;;;;;;;;;;;;;21330:16;21312:15;;:34;;;;;;;;;;;;;;;;;;21421:4;21384:12;:34;21405:11;;;;;;;;;;;21384:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20789:644;20685:748:::0;;;:::o;28313:697::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28413:15:::1;28431:10;28413:28;;28479:7;;:14;;28460:8;;:15;;:33;28452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28530:15;28560:6:::0;28569:1:::1;28560:10;;28556:92;28576:7;;:14;;28572:1;:18;28556:92;;;28626:7;;28634:1;28626:10;;;;;;;:::i;:::-;;;;;;;;28612:24;;;;;:::i;:::-;;;28592:3;;;;;:::i;:::-;;;;28556:92;;;;28688:10;28666:18;28676:7;28666:9;:18::i;:::-;:32;;28658:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;28761:34;28784:10;28761:9;:18;28771:7;28761:18;;;;;;;;;;;;;;;;:22;;:34;;;;:::i;:::-;28740:9;:18;28750:7;28740:18;;;;;;;;;;;;;;;:55;;;;28811:6;28807:194;28827:8;;:15;;28823:1;:19;28807:194;;;28889:38;28916:7;;28924:1;28916:10;;;;;;;:::i;:::-;;;;;;;;28889:9;:22;28899:8;;28908:1;28899:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;28889:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;28864:9;:22;28874:8;;28883:1;28874:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;28864:22;;;;;;;;;;;;;;;:63;;;;28965:8;;28974:1;28965:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;28947:42;;28956:7;28947:42;;;28978:7;;28986:1;28978:10;;;;;;;:::i;:::-;;;;;;;;28947:42;;;;;;:::i;:::-;;;;;;;;28844:3;;;;;:::i;:::-;;;;28807:194;;;;28402:608;;28313:697:::0;;;;:::o;17212:119::-;17278:7;17305:9;:18;17315:7;17305:18;;;;;;;;;;;;;;;;17298:25;;17212:119;;;:::o;13124:92::-;;;;;;;;;;;;;:::o;14403:59::-;;;;:::o;14475:58::-;;;;:::o;14209:33::-;;;;:::o;18507:129::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18620:8:::1;18596:12;:21;18609:7;18596:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18507:129:::0;;:::o;14807:41::-;;;;;;;;;;;;;:::o;14039:36::-;;;;:::o;13850:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;4358:79::-;4396:7;4423:6;;;;;;;;;;;4416:13;;4358:79;:::o;4583:227::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4687:42:::1;4650:81;;4671:6;::::0;::::1;;;;;;;;4650:81;;;;;;;;;;;;4759:42;4742:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;4583:227::o:0;16918:87::-;16957:13;16990:7;16983:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16918:87;:::o;17716:269::-;17809:4;17826:129;17835:12;:10;:12::i;:::-;17849:7;17858:96;17897:15;17858:96;;;;;;;;;;;;;;;;;:11;:25;17870:12;:10;:12::i;:::-;17858:25;;;;;;;;;;;;;;;:34;17884:7;17858:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17826:8;:129::i;:::-;17973:4;17966:11;;17716:269;;;;:::o;20125:125::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20234:8:::1;20206:25;;:36;;;;;;;;;;;;;;;;;;20125:125:::0;:::o;22177:167::-;22255:4;22272:42;22282:12;:10;:12::i;:::-;22296:9;22307:6;22272:9;:42::i;:::-;;22332:4;22325:11;;22177:167;;;;:::o;19946:171::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20047:8:::1;20023:21;;:32;;;;;;;;;;;;;;;;;;20071:38;20100:8;20071:38;;;;;;:::i;:::-;;;;;;;;19946:171:::0;:::o;13949:35::-;;;;:::o;14597:26::-;;;;;;;;;;;;;:::o;14082:36::-;;;;:::o;13791:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;14314:69::-;;;;:::o;14711:45::-;;;;;;;;;;;;;:::o;13907:35::-;;;;:::o;17339:143::-;17420:7;17447:11;:18;17459:5;17447:18;;;;;;;;;;;;;;;:27;17466:7;17447:27;;;;;;;;;;;;;;;;17440:34;;17339:143;;;;:::o;24714:154::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24768:7:::1;24788:10;24780:24;;24812:21;24780:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24767:71;;;24857:2;24849:11;;;::::0;::::1;;24756:112;24714:154::o:0;19184:111::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19276:11:::1;19261:12;:26;;;;19184:111:::0;:::o;19069:107::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19161:7:::1;19136:22;;:32;;;;;;;;;;;;;;;;;;19069:107:::0;:::o;18644:135::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18763:8:::1;18734:17;:26;18752:7;18734:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18644:135:::0;;:::o;14170:32::-;;;;:::o;19424:102::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19510:8:::1;19496:10;:22;;;;19424:102:::0;:::o;4818:244::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4927:1:::1;4907:22;;:8;:22;;;;4899:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5017:8;4988:38;;5009:6;::::0;::::1;;;;;;;;4988:38;;;;;;;;;;;;5046:8;5037:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4818:244:::0;:::o;24567:139::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24662:6:::1;24655:23;;;24679:10;24690:7;24655:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24567:139:::0;;:::o;18787:127::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18900:6:::1;18874:15;:23;18890:6;18874:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18787:127:::0;;:::o;14765:35::-;;;;;;;;;;;;;:::o;13223:92::-;;;;;;;;;;;;;:::o;13742:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;19806:132::-;4502:12;:10;:12::i;:::-;4492:22;;:6;;;;;;;;;;:22;;;4484:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19919:10:::1;19893:15;;:37;;;;;;;;;;;;;;;;;;19806:132:::0;:::o;3043:250::-;3101:7;3130:1;3125;:6;3121:47;;;3155:1;3148:8;;;;3121:47;3180:9;3196:1;3192;:5;;;;:::i;:::-;3180:17;;3225:1;3220;3216;:5;;;;:::i;:::-;:10;3208:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3284:1;3277:8;;;3043:250;;;;;:::o;3301:132::-;3359:7;3386:39;3390:1;3393;3386:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3379:46;;3301:132;;;;:::o;2510:181::-;2568:7;2588:9;2604:1;2600;:5;;;;:::i;:::-;2588:17;;2629:1;2624;:6;;2616:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2682:1;2675:8;;;2510:181;;;;:::o;1568:115::-;1621:15;1664:10;1649:26;;1568:115;:::o;18162:337::-;18272:1;18255:19;;:5;:19;;;;18247:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18353:1;18334:21;;:7;:21;;;;18326:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18437:6;18407:11;:18;18419:5;18407:18;;;;;;;;;;;;;;;:27;18426:7;18407:27;;;;;;;;;;;;;;;:36;;;;18475:7;18459:32;;18468:5;18459:32;;;18484:6;18459:32;;;;;;:::i;:::-;;;;;;;;18162:337;;;:::o;22673:1886::-;22760:4;22805:1;22787:20;;:6;:20;;;;22779:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22889:1;22868:23;;:9;:23;;;;22860:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22951:9;:17;22961:6;22951:17;;;;;;;;;;;;;;;;;;;;;;;;;22950:18;:43;;;;;22973:9;:20;22983:9;22973:20;;;;;;;;;;;;;;;;;;;;;;;;;22972:21;22950:43;22942:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;23043:16;;;;;;;;;;;23040:1502;;;23093:41;23108:6;23116:9;23127:6;23093:14;:41::i;:::-;23086:48;;;;23040:1502;23192:15;:23;23208:6;23192:23;;;;;;;;;;;;;;;;;;;;;;;;;23191:24;:55;;;;;23220:15;:26;23236:9;23220:26;;;;;;;;;;;;;;;;;;;;;;;;;23219:27;23191:55;:81;;;;;23250:22;;;;;;;;;;;23191:81;23188:196;;;23311:12;;23301:6;:22;;23293:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;23188:196;23400:28;23431:24;23449:4;23431:9;:24::i;:::-;23400:55;;23470:28;23525:23;;23501:20;:47;;23470:78;;23581:23;:44;;;;;23609:16;;;;;;;;;;;23608:17;23581:44;:69;;;;;23630:12;:20;23643:6;23630:20;;;;;;;;;;;;;;;;;;;;;;;;;23629:21;23581:69;:94;;;;;23654:21;;;;;;;;;;;23581:94;23577:305;;;23713:25;;;;;;;;;;;23710:97;;;23784:23;;23761:46;;23710:97;23826:36;23841:20;23826:14;:36::i;:::-;23577:305;23918:53;23940:6;23918:53;;;;;;;;;;;;;;;;;:9;:17;23928:6;23918:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23898:9;:17;23908:6;23898:17;;;;;;;;;;;;;;;:73;;;;23988:19;24011:17;:25;24029:6;24011:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;24040:17;:28;24058:9;24040:28;;;;;;;;;;;;;;;;;;;;;;;;;24011:57;24010:148;;24124:34;24132:6;24140:9;24151:6;24124:7;:34::i;:::-;24010:148;;;24115:6;24010:148;23988:170;;24178:16;;;;;;;;;;;:51;;;;;24199:19;:30;24219:9;24199:30;;;;;;;;;;;;;;;;;;;;;;;;;24198:31;24178:51;24175:191;;;24299:10;;24258:37;24283:11;24258:20;24268:9;24258;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;24250:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;24175:191;24405:37;24430:11;24405:9;:20;24415:9;24405:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;24382:9;:20;24392:9;24382:20;;;;;;;;;;;;;;;:60;;;;24481:9;24464:40;;24473:6;24464:40;;;24492:11;24464:40;;;;;;:::i;:::-;;;;;;;;24526:4;24519:11;;;;;22673:1886;;;;;;:::o;2843:192::-;2929:7;2962:1;2957;:6;;2965:12;2949:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2989:9;3005:1;3001;:5;;;;:::i;:::-;2989:17;;3026:1;3019:8;;;2843:192;;;;;:::o;2699:136::-;2757:7;2784:43;2788:1;2791;2784:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2777:50;;2699:136;;;;:::o;3441:278::-;3527:7;3559:1;3555;:5;3562:12;3547:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3586:9;3602:1;3598;:5;;;;:::i;:::-;3586:17;;3710:1;3703:8;;;3441:278;;;;;:::o;24876:330::-;24969:4;25006:53;25028:6;25006:53;;;;;;;;;;;;;;;;;:9;:17;25016:6;25006:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24986:9;:17;24996:6;24986:17;;;;;;;;;;;;;;;:73;;;;25093:32;25118:6;25093:9;:20;25103:9;25093:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25070:9;:20;25080:9;25070:20;;;;;;;;;;;;;;;:55;;;;25158:9;25141:35;;25150:6;25141:35;;;25169:6;25141:35;;;;;;:::i;:::-;;;;;;;;25194:4;25187:11;;24876:330;;;;;:::o;25214:1233::-;15292:4;15273:16;;:23;;;;;;;;;;;;;;;;;;25288:19:::1;25310:41;25332:18;;25310:17;;:21;;:41;;;;:::i;:::-;25288:63;;25372:19;25394:69;25451:11;25394:52;25406:39;25427:17;;25406:16;;:20;;:39;;;;:::i;:::-;25394:7;:11;;:52;;;;:::i;:::-;:56;;:69;;;;:::i;:::-;25372:91;;25474:26;25503:69;25560:11;25503:52;25515:39;25536:17;;25515:16;;:20;;:39;;;;:::i;:::-;25503:7;:11;;:52;;;;:::i;:::-;:56;;:69;;;;:::i;:::-;25474:98;;25583:26;25612:69;25669:11;25612:52;25624:39;25645:17;;25624:16;;:20;;:39;;;;:::i;:::-;25612:7;:11;;:52;;;;:::i;:::-;:56;;:69;;;;:::i;:::-;25583:98;;25702:17;25722:18;25738:1;25722:11;:15;;:18;;;;:::i;:::-;25702:38;;25751:21;25775:26;25791:9;25775:11;:15;;:26;;;;:::i;:::-;25751:50;;25814:21;25838;25814:45;;25872:31;25889:13;25872:16;:31::i;:::-;25916:26;25945:40;25971:13;25945:21;:25;;:40;;;;:::i;:::-;25916:69;;25996:23;26031:4;25996:40;;26073:1;26052:18;:22;26049:122;;;26091:68;26106:15;26123;;;;;;;;;;;26140:18;26091:14;:68::i;:::-;;26049:122;26207:1;26186:18;:22;26183:122;;;26225:68;26240:15;26257;;;;;;;;;;;26274:18;26225:14;:68::i;:::-;;26183:122;26350:1;26329:18;:22;:39;;;;;26367:1;26355:9;:13;26329:39;26326:114;;;26385:43;26398:9;26409:18;26385:12;:43::i;:::-;26326:114;25275:1172;;;;;;;;;15338:5:::0;15319:16;;:24;;;;;;;;;;;;;;;;;;25214:1233;:::o;27654:622::-;27740:7;27770:17;27790:1;27770:21;;27815:12;:20;27828:6;27815:20;;;;;;;;;;;;;;;;;;;;;;;;;27812:223;;;27864:38;27898:3;27864:29;27875:17;;27864:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;27852:50;;27812:223;;;27932:12;:23;27945:9;27932:23;;;;;;;;;;;;;;;;;;;;;;;;;27929:106;;;27984:39;28019:3;27984:30;27995:18;;27984:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;27972:51;;27929:106;27812:223;28070:1;28058:9;:13;28055:173;;;28115:39;28144:9;28115;:24;28133:4;28115:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;28088:9;:24;28106:4;28088:24;;;;;;;;;;;;;;;:66;;;;28199:4;28174:42;;28183:6;28174:42;;;28206:9;28174:42;;;;;;:::i;:::-;;;;;;;;28055:173;28247:21;28258:9;28247:6;:10;;:21;;;;:::i;:::-;28240:28;;;27654:622;;;;;:::o;26459:666::-;26585:21;26623:1;26609:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26585:40;;26654:4;26636;26641:1;26636:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;26680:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26670:4;26675:1;26670:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;26715:62;26732:4;26747:15;;;;;;;;;;;26765:11;26715:8;:62::i;:::-;26816:15;;;;;;;;;;;:66;;;26897:11;26923:1;26967:4;26994;27030:15;26816:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27082:35;27099:11;27112:4;27082:35;;;;;;;:::i;:::-;;;;;;;;26514:611;26459:666;:::o;27133:513::-;27281:62;27298:4;27313:15;;;;;;;;;;;27331:11;27281:8;:62::i;:::-;27386:15;;;;;;;;;;;:31;;;27425:9;27458:4;27478:11;27504:1;27547;27590:7;:5;:7::i;:::-;27612:15;27386:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27133:513;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;909:::-;982:8;992:6;1042:3;1035:4;1027:6;1023:17;1019:27;1009:122;;1050:79;;:::i;:::-;1009:122;1163:6;1150:20;1140:30;;1193:18;1185:6;1182:30;1179:117;;;1215:79;;:::i;:::-;1179:117;1329:4;1321:6;1317:17;1305:29;;1383:3;1375:4;1367:6;1363:17;1353:8;1349:32;1346:41;1343:128;;;1390:79;;:::i;:::-;1343:128;909:568;;;;;:::o;1483:133::-;1526:5;1564:6;1551:20;1542:29;;1580:30;1604:5;1580:30;:::i;:::-;1483:133;;;;:::o;1622:137::-;1676:5;1707:6;1701:13;1692:22;;1723:30;1747:5;1723:30;:::i;:::-;1622:137;;;;:::o;1765:139::-;1811:5;1849:6;1836:20;1827:29;;1865:33;1892:5;1865:33;:::i;:::-;1765:139;;;;:::o;1910:143::-;1967:5;1998:6;1992:13;1983:22;;2014:33;2041:5;2014:33;:::i;:::-;1910:143;;;;:::o;2059:329::-;2118:6;2167:2;2155:9;2146:7;2142:23;2138:32;2135:119;;;2173:79;;:::i;:::-;2135:119;2293:1;2318:53;2363:7;2354:6;2343:9;2339:22;2318:53;:::i;:::-;2308:63;;2264:117;2059:329;;;;:::o;2394:351::-;2464:6;2513:2;2501:9;2492:7;2488:23;2484:32;2481:119;;;2519:79;;:::i;:::-;2481:119;2639:1;2664:64;2720:7;2711:6;2700:9;2696:22;2664:64;:::i;:::-;2654:74;;2610:128;2394:351;;;;:::o;2751:474::-;2819:6;2827;2876:2;2864:9;2855:7;2851:23;2847:32;2844:119;;;2882:79;;:::i;:::-;2844:119;3002:1;3027:53;3072:7;3063:6;3052:9;3048:22;3027:53;:::i;:::-;3017:63;;2973:117;3129:2;3155:53;3200:7;3191:6;3180:9;3176:22;3155:53;:::i;:::-;3145:63;;3100:118;2751:474;;;;;:::o;3231:619::-;3308:6;3316;3324;3373:2;3361:9;3352:7;3348:23;3344:32;3341:119;;;3379:79;;:::i;:::-;3341:119;3499:1;3524:53;3569:7;3560:6;3549:9;3545:22;3524:53;:::i;:::-;3514:63;;3470:117;3626:2;3652:53;3697:7;3688:6;3677:9;3673:22;3652:53;:::i;:::-;3642:63;;3597:118;3754:2;3780:53;3825:7;3816:6;3805:9;3801:22;3780:53;:::i;:::-;3770:63;;3725:118;3231:619;;;;;:::o;3856:468::-;3921:6;3929;3978:2;3966:9;3957:7;3953:23;3949:32;3946:119;;;3984:79;;:::i;:::-;3946:119;4104:1;4129:53;4174:7;4165:6;4154:9;4150:22;4129:53;:::i;:::-;4119:63;;4075:117;4231:2;4257:50;4299:7;4290:6;4279:9;4275:22;4257:50;:::i;:::-;4247:60;;4202:115;3856:468;;;;;:::o;4330:474::-;4398:6;4406;4455:2;4443:9;4434:7;4430:23;4426:32;4423:119;;;4461:79;;:::i;:::-;4423:119;4581:1;4606:53;4651:7;4642:6;4631:9;4627:22;4606:53;:::i;:::-;4596:63;;4552:117;4708:2;4734:53;4779:7;4770:6;4759:9;4755:22;4734:53;:::i;:::-;4724:63;;4679:118;4330:474;;;;;:::o;4810:934::-;4932:6;4940;4948;4956;5005:2;4993:9;4984:7;4980:23;4976:32;4973:119;;;5011:79;;:::i;:::-;4973:119;5159:1;5148:9;5144:17;5131:31;5189:18;5181:6;5178:30;5175:117;;;5211:79;;:::i;:::-;5175:117;5324:80;5396:7;5387:6;5376:9;5372:22;5324:80;:::i;:::-;5306:98;;;;5102:312;5481:2;5470:9;5466:18;5453:32;5512:18;5504:6;5501:30;5498:117;;;5534:79;;:::i;:::-;5498:117;5647:80;5719:7;5710:6;5699:9;5695:22;5647:80;:::i;:::-;5629:98;;;;5424:313;4810:934;;;;;;;:::o;5750:323::-;5806:6;5855:2;5843:9;5834:7;5830:23;5826:32;5823:119;;;5861:79;;:::i;:::-;5823:119;5981:1;6006:50;6048:7;6039:6;6028:9;6024:22;6006:50;:::i;:::-;5996:60;;5952:114;5750:323;;;;:::o;6079:345::-;6146:6;6195:2;6183:9;6174:7;6170:23;6166:32;6163:119;;;6201:79;;:::i;:::-;6163:119;6321:1;6346:61;6399:7;6390:6;6379:9;6375:22;6346:61;:::i;:::-;6336:71;;6292:125;6079:345;;;;:::o;6430:329::-;6489:6;6538:2;6526:9;6517:7;6513:23;6509:32;6506:119;;;6544:79;;:::i;:::-;6506:119;6664:1;6689:53;6734:7;6725:6;6714:9;6710:22;6689:53;:::i;:::-;6679:63;;6635:117;6430:329;;;;:::o;6765:619::-;6842:6;6850;6858;6907:2;6895:9;6886:7;6882:23;6878:32;6875:119;;;6913:79;;:::i;:::-;6875:119;7033:1;7058:53;7103:7;7094:6;7083:9;7079:22;7058:53;:::i;:::-;7048:63;;7004:117;7160:2;7186:53;7231:7;7222:6;7211:9;7207:22;7186:53;:::i;:::-;7176:63;;7131:118;7288:2;7314:53;7359:7;7350:6;7339:9;7335:22;7314:53;:::i;:::-;7304:63;;7259:118;6765:619;;;;;:::o;7390:663::-;7478:6;7486;7494;7543:2;7531:9;7522:7;7518:23;7514:32;7511:119;;;7549:79;;:::i;:::-;7511:119;7669:1;7694:64;7750:7;7741:6;7730:9;7726:22;7694:64;:::i;:::-;7684:74;;7640:128;7807:2;7833:64;7889:7;7880:6;7869:9;7865:22;7833:64;:::i;:::-;7823:74;;7778:129;7946:2;7972:64;8028:7;8019:6;8008:9;8004:22;7972:64;:::i;:::-;7962:74;;7917:129;7390:663;;;;;:::o;8059:179::-;8128:10;8149:46;8191:3;8183:6;8149:46;:::i;:::-;8227:4;8222:3;8218:14;8204:28;;8059:179;;;;:::o;8244:142::-;8347:32;8373:5;8347:32;:::i;:::-;8342:3;8335:45;8244:142;;:::o;8392:108::-;8469:24;8487:5;8469:24;:::i;:::-;8464:3;8457:37;8392:108;;:::o;8506:118::-;8593:24;8611:5;8593:24;:::i;:::-;8588:3;8581:37;8506:118;;:::o;8660:732::-;8779:3;8808:54;8856:5;8808:54;:::i;:::-;8878:86;8957:6;8952:3;8878:86;:::i;:::-;8871:93;;8988:56;9038:5;8988:56;:::i;:::-;9067:7;9098:1;9083:284;9108:6;9105:1;9102:13;9083:284;;;9184:6;9178:13;9211:63;9270:3;9255:13;9211:63;:::i;:::-;9204:70;;9297:60;9350:6;9297:60;:::i;:::-;9287:70;;9143:224;9130:1;9127;9123:9;9118:14;;9083:284;;;9087:14;9383:3;9376:10;;8784:608;;;8660:732;;;;:::o;9398:109::-;9479:21;9494:5;9479:21;:::i;:::-;9474:3;9467:34;9398:109;;:::o;9513:185::-;9627:64;9685:5;9627:64;:::i;:::-;9622:3;9615:77;9513:185;;:::o;9704:147::-;9799:45;9838:5;9799:45;:::i;:::-;9794:3;9787:58;9704:147;;:::o;9857:364::-;9945:3;9973:39;10006:5;9973:39;:::i;:::-;10028:71;10092:6;10087:3;10028:71;:::i;:::-;10021:78;;10108:52;10153:6;10148:3;10141:4;10134:5;10130:16;10108:52;:::i;:::-;10185:29;10207:6;10185:29;:::i;:::-;10180:3;10176:39;10169:46;;9949:272;9857:364;;;;:::o;10227:366::-;10369:3;10390:67;10454:2;10449:3;10390:67;:::i;:::-;10383:74;;10466:93;10555:3;10466:93;:::i;:::-;10584:2;10579:3;10575:12;10568:19;;10227:366;;;:::o;10599:::-;10741:3;10762:67;10826:2;10821:3;10762:67;:::i;:::-;10755:74;;10838:93;10927:3;10838:93;:::i;:::-;10956:2;10951:3;10947:12;10940:19;;10599:366;;;:::o;10971:::-;11113:3;11134:67;11198:2;11193:3;11134:67;:::i;:::-;11127:74;;11210:93;11299:3;11210:93;:::i;:::-;11328:2;11323:3;11319:12;11312:19;;10971:366;;;:::o;11343:::-;11485:3;11506:67;11570:2;11565:3;11506:67;:::i;:::-;11499:74;;11582:93;11671:3;11582:93;:::i;:::-;11700:2;11695:3;11691:12;11684:19;;11343:366;;;:::o;11715:::-;11857:3;11878:67;11942:2;11937:3;11878:67;:::i;:::-;11871:74;;11954:93;12043:3;11954:93;:::i;:::-;12072:2;12067:3;12063:12;12056:19;;11715:366;;;:::o;12087:::-;12229:3;12250:67;12314:2;12309:3;12250:67;:::i;:::-;12243:74;;12326:93;12415:3;12326:93;:::i;:::-;12444:2;12439:3;12435:12;12428:19;;12087:366;;;:::o;12459:::-;12601:3;12622:67;12686:2;12681:3;12622:67;:::i;:::-;12615:74;;12698:93;12787:3;12698:93;:::i;:::-;12816:2;12811:3;12807:12;12800:19;;12459:366;;;:::o;12831:::-;12973:3;12994:67;13058:2;13053:3;12994:67;:::i;:::-;12987:74;;13070:93;13159:3;13070:93;:::i;:::-;13188:2;13183:3;13179:12;13172:19;;12831:366;;;:::o;13203:::-;13345:3;13366:67;13430:2;13425:3;13366:67;:::i;:::-;13359:74;;13442:93;13531:3;13442:93;:::i;:::-;13560:2;13555:3;13551:12;13544:19;;13203:366;;;:::o;13575:::-;13717:3;13738:67;13802:2;13797:3;13738:67;:::i;:::-;13731:74;;13814:93;13903:3;13814:93;:::i;:::-;13932:2;13927:3;13923:12;13916:19;;13575:366;;;:::o;13947:::-;14089:3;14110:67;14174:2;14169:3;14110:67;:::i;:::-;14103:74;;14186:93;14275:3;14186:93;:::i;:::-;14304:2;14299:3;14295:12;14288:19;;13947:366;;;:::o;14319:::-;14461:3;14482:67;14546:2;14541:3;14482:67;:::i;:::-;14475:74;;14558:93;14647:3;14558:93;:::i;:::-;14676:2;14671:3;14667:12;14660:19;;14319:366;;;:::o;14691:398::-;14850:3;14871:83;14952:1;14947:3;14871:83;:::i;:::-;14864:90;;14963:93;15052:3;14963:93;:::i;:::-;15081:1;15076:3;15072:11;15065:18;;14691:398;;;:::o;15095:366::-;15237:3;15258:67;15322:2;15317:3;15258:67;:::i;:::-;15251:74;;15334:93;15423:3;15334:93;:::i;:::-;15452:2;15447:3;15443:12;15436:19;;15095:366;;;:::o;15467:118::-;15554:24;15572:5;15554:24;:::i;:::-;15549:3;15542:37;15467:118;;:::o;15591:112::-;15674:22;15690:5;15674:22;:::i;:::-;15669:3;15662:35;15591:112;;:::o;15709:379::-;15893:3;15915:147;16058:3;15915:147;:::i;:::-;15908:154;;16079:3;16072:10;;15709:379;;;:::o;16094:222::-;16187:4;16225:2;16214:9;16210:18;16202:26;;16238:71;16306:1;16295:9;16291:17;16282:6;16238:71;:::i;:::-;16094:222;;;;:::o;16322:254::-;16431:4;16469:2;16458:9;16454:18;16446:26;;16482:87;16566:1;16555:9;16551:17;16542:6;16482:87;:::i;:::-;16322:254;;;;:::o;16582:332::-;16703:4;16741:2;16730:9;16726:18;16718:26;;16754:71;16822:1;16811:9;16807:17;16798:6;16754:71;:::i;:::-;16835:72;16903:2;16892:9;16888:18;16879:6;16835:72;:::i;:::-;16582:332;;;;;:::o;16920:::-;17041:4;17079:2;17068:9;17064:18;17056:26;;17092:71;17160:1;17149:9;17145:17;17136:6;17092:71;:::i;:::-;17173:72;17241:2;17230:9;17226:18;17217:6;17173:72;:::i;:::-;16920:332;;;;;:::o;17258:807::-;17507:4;17545:3;17534:9;17530:19;17522:27;;17559:71;17627:1;17616:9;17612:17;17603:6;17559:71;:::i;:::-;17640:72;17708:2;17697:9;17693:18;17684:6;17640:72;:::i;:::-;17722:80;17798:2;17787:9;17783:18;17774:6;17722:80;:::i;:::-;17812;17888:2;17877:9;17873:18;17864:6;17812:80;:::i;:::-;17902:73;17970:3;17959:9;17955:19;17946:6;17902:73;:::i;:::-;17985;18053:3;18042:9;18038:19;18029:6;17985:73;:::i;:::-;17258:807;;;;;;;;;:::o;18071:210::-;18158:4;18196:2;18185:9;18181:18;18173:26;;18209:65;18271:1;18260:9;18256:17;18247:6;18209:65;:::i;:::-;18071:210;;;;:::o;18287:276::-;18407:4;18445:2;18434:9;18430:18;18422:26;;18458:98;18553:1;18542:9;18538:17;18529:6;18458:98;:::i;:::-;18287:276;;;;:::o;18569:313::-;18682:4;18720:2;18709:9;18705:18;18697:26;;18769:9;18763:4;18759:20;18755:1;18744:9;18740:17;18733:47;18797:78;18870:4;18861:6;18797:78;:::i;:::-;18789:86;;18569:313;;;;:::o;18888:419::-;19054:4;19092:2;19081:9;19077:18;19069:26;;19141:9;19135:4;19131:20;19127:1;19116:9;19112:17;19105:47;19169:131;19295:4;19169:131;:::i;:::-;19161:139;;18888:419;;;:::o;19313:::-;19479:4;19517:2;19506:9;19502:18;19494:26;;19566:9;19560:4;19556:20;19552:1;19541:9;19537:17;19530:47;19594:131;19720:4;19594:131;:::i;:::-;19586:139;;19313:419;;;:::o;19738:::-;19904:4;19942:2;19931:9;19927:18;19919:26;;19991:9;19985:4;19981:20;19977:1;19966:9;19962:17;19955:47;20019:131;20145:4;20019:131;:::i;:::-;20011:139;;19738:419;;;:::o;20163:::-;20329:4;20367:2;20356:9;20352:18;20344:26;;20416:9;20410:4;20406:20;20402:1;20391:9;20387:17;20380:47;20444:131;20570:4;20444:131;:::i;:::-;20436:139;;20163:419;;;:::o;20588:::-;20754:4;20792:2;20781:9;20777:18;20769:26;;20841:9;20835:4;20831:20;20827:1;20816:9;20812:17;20805:47;20869:131;20995:4;20869:131;:::i;:::-;20861:139;;20588:419;;;:::o;21013:::-;21179:4;21217:2;21206:9;21202:18;21194:26;;21266:9;21260:4;21256:20;21252:1;21241:9;21237:17;21230:47;21294:131;21420:4;21294:131;:::i;:::-;21286:139;;21013:419;;;:::o;21438:::-;21604:4;21642:2;21631:9;21627:18;21619:26;;21691:9;21685:4;21681:20;21677:1;21666:9;21662:17;21655:47;21719:131;21845:4;21719:131;:::i;:::-;21711:139;;21438:419;;;:::o;21863:::-;22029:4;22067:2;22056:9;22052:18;22044:26;;22116:9;22110:4;22106:20;22102:1;22091:9;22087:17;22080:47;22144:131;22270:4;22144:131;:::i;:::-;22136:139;;21863:419;;;:::o;22288:::-;22454:4;22492:2;22481:9;22477:18;22469:26;;22541:9;22535:4;22531:20;22527:1;22516:9;22512:17;22505:47;22569:131;22695:4;22569:131;:::i;:::-;22561:139;;22288:419;;;:::o;22713:::-;22879:4;22917:2;22906:9;22902:18;22894:26;;22966:9;22960:4;22956:20;22952:1;22941:9;22937:17;22930:47;22994:131;23120:4;22994:131;:::i;:::-;22986:139;;22713:419;;;:::o;23138:::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23138:419;;;:::o;23563:::-;23729:4;23767:2;23756:9;23752:18;23744:26;;23816:9;23810:4;23806:20;23802:1;23791:9;23787:17;23780:47;23844:131;23970:4;23844:131;:::i;:::-;23836:139;;23563:419;;;:::o;23988:::-;24154:4;24192:2;24181:9;24177:18;24169:26;;24241:9;24235:4;24231:20;24227:1;24216:9;24212:17;24205:47;24269:131;24395:4;24269:131;:::i;:::-;24261:139;;23988:419;;;:::o;24413:222::-;24506:4;24544:2;24533:9;24529:18;24521:26;;24557:71;24625:1;24614:9;24610:17;24601:6;24557:71;:::i;:::-;24413:222;;;;:::o;24641:483::-;24812:4;24850:2;24839:9;24835:18;24827:26;;24863:71;24931:1;24920:9;24916:17;24907:6;24863:71;:::i;:::-;24981:9;24975:4;24971:20;24966:2;24955:9;24951:18;24944:48;25009:108;25112:4;25103:6;25009:108;:::i;:::-;25001:116;;24641:483;;;;;:::o;25130:831::-;25393:4;25431:3;25420:9;25416:19;25408:27;;25445:71;25513:1;25502:9;25498:17;25489:6;25445:71;:::i;:::-;25526:80;25602:2;25591:9;25587:18;25578:6;25526:80;:::i;:::-;25653:9;25647:4;25643:20;25638:2;25627:9;25623:18;25616:48;25681:108;25784:4;25775:6;25681:108;:::i;:::-;25673:116;;25799:72;25867:2;25856:9;25852:18;25843:6;25799:72;:::i;:::-;25881:73;25949:3;25938:9;25934:19;25925:6;25881:73;:::i;:::-;25130:831;;;;;;;;:::o;25967:214::-;26056:4;26094:2;26083:9;26079:18;26071:26;;26107:67;26171:1;26160:9;26156:17;26147:6;26107:67;:::i;:::-;25967:214;;;;:::o;26268:132::-;26335:4;26358:3;26350:11;;26388:4;26383:3;26379:14;26371:22;;26268:132;;;:::o;26406:114::-;26473:6;26507:5;26501:12;26491:22;;26406:114;;;:::o;26526:99::-;26578:6;26612:5;26606:12;26596:22;;26526:99;;;:::o;26631:113::-;26701:4;26733;26728:3;26724:14;26716:22;;26631:113;;;:::o;26750:184::-;26849:11;26883:6;26878:3;26871:19;26923:4;26918:3;26914:14;26899:29;;26750:184;;;;:::o;26940:147::-;27041:11;27078:3;27063:18;;26940:147;;;;:::o;27093:169::-;27177:11;27211:6;27206:3;27199:19;27251:4;27246:3;27242:14;27227:29;;27093:169;;;;:::o;27268:305::-;27308:3;27327:20;27345:1;27327:20;:::i;:::-;27322:25;;27361:20;27379:1;27361:20;:::i;:::-;27356:25;;27515:1;27447:66;27443:74;27440:1;27437:81;27434:107;;;27521:18;;:::i;:::-;27434:107;27565:1;27562;27558:9;27551:16;;27268:305;;;;:::o;27579:185::-;27619:1;27636:20;27654:1;27636:20;:::i;:::-;27631:25;;27670:20;27688:1;27670:20;:::i;:::-;27665:25;;27709:1;27699:35;;27714:18;;:::i;:::-;27699:35;27756:1;27753;27749:9;27744:14;;27579:185;;;;:::o;27770:348::-;27810:7;27833:20;27851:1;27833:20;:::i;:::-;27828:25;;27867:20;27885:1;27867:20;:::i;:::-;27862:25;;28055:1;27987:66;27983:74;27980:1;27977:81;27972:1;27965:9;27958:17;27954:105;27951:131;;;28062:18;;:::i;:::-;27951:131;28110:1;28107;28103:9;28092:20;;27770:348;;;;:::o;28124:191::-;28164:4;28184:20;28202:1;28184:20;:::i;:::-;28179:25;;28218:20;28236:1;28218:20;:::i;:::-;28213:25;;28257:1;28254;28251:8;28248:34;;;28262:18;;:::i;:::-;28248:34;28307:1;28304;28300:9;28292:17;;28124:191;;;;:::o;28321:96::-;28358:7;28387:24;28405:5;28387:24;:::i;:::-;28376:35;;28321:96;;;:::o;28423:104::-;28468:7;28497:24;28515:5;28497:24;:::i;:::-;28486:35;;28423:104;;;:::o;28533:90::-;28567:7;28610:5;28603:13;28596:21;28585:32;;28533:90;;;:::o;28629:126::-;28666:7;28706:42;28699:5;28695:54;28684:65;;28629:126;;;:::o;28761:77::-;28798:7;28827:5;28816:16;;28761:77;;;:::o;28844:86::-;28879:7;28919:4;28912:5;28908:16;28897:27;;28844:86;;;:::o;28936:153::-;29013:9;29046:37;29077:5;29046:37;:::i;:::-;29033:50;;28936:153;;;:::o;29095:121::-;29153:9;29186:24;29204:5;29186:24;:::i;:::-;29173:37;;29095:121;;;:::o;29222:126::-;29272:9;29305:37;29336:5;29305:37;:::i;:::-;29292:50;;29222:126;;;:::o;29354:113::-;29404:9;29437:24;29455:5;29437:24;:::i;:::-;29424:37;;29354:113;;;:::o;29473:307::-;29541:1;29551:113;29565:6;29562:1;29559:13;29551:113;;;29650:1;29645:3;29641:11;29635:18;29631:1;29626:3;29622:11;29615:39;29587:2;29584:1;29580:10;29575:15;;29551:113;;;29682:6;29679:1;29676:13;29673:101;;;29762:1;29753:6;29748:3;29744:16;29737:27;29673:101;29522:258;29473:307;;;:::o;29786:320::-;29830:6;29867:1;29861:4;29857:12;29847:22;;29914:1;29908:4;29904:12;29935:18;29925:81;;29991:4;29983:6;29979:17;29969:27;;29925:81;30053:2;30045:6;30042:14;30022:18;30019:38;30016:84;;;30072:18;;:::i;:::-;30016:84;29837:269;29786:320;;;:::o;30112:233::-;30151:3;30174:24;30192:5;30174:24;:::i;:::-;30165:33;;30220:66;30213:5;30210:77;30207:103;;;30290:18;;:::i;:::-;30207:103;30337:1;30330:5;30326:13;30319:20;;30112:233;;;:::o;30351:180::-;30399:77;30396:1;30389:88;30496:4;30493:1;30486:15;30520:4;30517:1;30510:15;30537:180;30585:77;30582:1;30575:88;30682:4;30679:1;30672:15;30706:4;30703:1;30696:15;30723:180;30771:77;30768:1;30761:88;30868:4;30865:1;30858:15;30892:4;30889:1;30882:15;30909:180;30957:77;30954:1;30947:88;31054:4;31051:1;31044:15;31078:4;31075:1;31068:15;31095:180;31143:77;31140:1;31133:88;31240:4;31237:1;31230:15;31264:4;31261:1;31254:15;31281:117;31390:1;31387;31380:12;31404:117;31513:1;31510;31503:12;31527:117;31636:1;31633;31626:12;31650:117;31759:1;31756;31749:12;31773:117;31882:1;31879;31872:12;31896:102;31937:6;31988:2;31984:7;31979:2;31972:5;31968:14;31964:28;31954:38;;31896:102;;;:::o;32004:222::-;32144:34;32140:1;32132:6;32128:14;32121:58;32213:5;32208:2;32200:6;32196:15;32189:30;32004:222;:::o;32232:177::-;32372:29;32368:1;32360:6;32356:14;32349:53;32232:177;:::o;32415:225::-;32555:34;32551:1;32543:6;32539:14;32532:58;32624:8;32619:2;32611:6;32607:15;32600:33;32415:225;:::o;32646:221::-;32786:34;32782:1;32774:6;32770:14;32763:58;32855:4;32850:2;32842:6;32838:15;32831:29;32646:221;:::o;32873:177::-;33013:29;33009:1;33001:6;32997:14;32990:53;32873:177;:::o;33056:224::-;33196:34;33192:1;33184:6;33180:14;33173:58;33265:7;33260:2;33252:6;33248:15;33241:32;33056:224;:::o;33286:179::-;33426:31;33422:1;33414:6;33410:14;33403:55;33286:179;:::o;33471:227::-;33611:34;33607:1;33599:6;33595:14;33588:58;33680:10;33675:2;33667:6;33663:15;33656:35;33471:227;:::o;33704:220::-;33844:34;33840:1;33832:6;33828:14;33821:58;33913:3;33908:2;33900:6;33896:15;33889:28;33704:220;:::o;33930:172::-;34070:24;34066:1;34058:6;34054:14;34047:48;33930:172;:::o;34108:182::-;34248:34;34244:1;34236:6;34232:14;34225:58;34108:182;:::o;34296:224::-;34436:34;34432:1;34424:6;34420:14;34413:58;34505:7;34500:2;34492:6;34488:15;34481:32;34296:224;:::o;34526:114::-;;:::o;34646:223::-;34786:34;34782:1;34774:6;34770:14;34763:58;34855:6;34850:2;34842:6;34838:15;34831:31;34646:223;:::o;34875:122::-;34948:24;34966:5;34948:24;:::i;:::-;34941:5;34938:35;34928:63;;34987:1;34984;34977:12;34928:63;34875:122;:::o;35003:116::-;35073:21;35088:5;35073:21;:::i;:::-;35066:5;35063:32;35053:60;;35109:1;35106;35099:12;35053:60;35003:116;:::o;35125:122::-;35198:24;35216:5;35198:24;:::i;:::-;35191:5;35188:35;35178:63;;35237:1;35234;35227:12;35178:63;35125:122;:::o
Swarm Source
ipfs://e384ad00468bacdecbce66f43e9305da5da694e88936f8de02548a3ecc820527
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.