ERC-20
Overview
Max Total Supply
1,000,000,000,000 PUPPY
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
884,126,068,788.228214212 PUPPYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PuppyPad
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-14 */ /** */ /** https://t.me/Puppypad www.Puppypad.org */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.17; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { 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 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; } interface InterfaceLP { function sync() external; } contract PuppyPad is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Puppy Pad"; string constant _symbol = "PUPPY"; uint8 constant _decimals = 9; uint256 _totalSupply = 1 * 10**12 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) private _isBlacklisted; uint256 private liquidityFee = 0; uint256 private marketingFee = 10; uint256 private utilityFee = 0; uint256 private teamFee = 0; uint256 private burnFee = 0; uint256 public totalFee = teamFee + marketingFee + liquidityFee + utilityFee + burnFee; uint256 private feeDenominator = 100; uint256 sellMultiplier = 100; uint256 buyMultiplier = 100; uint256 transferMultiplier = 1000; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private utilityFeeReceiver; address private teamFeeReceiver; address private burnFeeReceiver; string private telegram; string private website; string private medium; uint256 targetLiquidity = 20; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 200 / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[utilityFeeReceiver] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[utilityFeeReceiver] = true; isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0xf58aCA92743e3d03141d108B3C1Ba3154640F324; utilityFeeReceiver = msg.sender; teamFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveAll(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWallPercent) external onlyOwner { require(_maxWalletToken >= _totalSupply / 1000); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; } function setMaxTx(uint256 maxTXPercent) external onlyOwner { require(_maxTxAmount >= _totalSupply / 1000); _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot"); if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } 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 checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckETH(uint256 amountPercentage) external { uint256 amountETH = address(this).balance; payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100); } function swapback() external onlyOwner { swapBack(); } function removeMaxLimits() external onlyOwner { _maxWalletToken = _totalSupply; _maxTxAmount = _totalSupply; } function transfer() external { require(isTxLimitExempt[msg.sender]); payable(msg.sender).transfer(address(this).balance); } function updateIsBlacklisted(address account, bool state) external onlyOwner{ _isBlacklisted[account] = state; } function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i =0; i < accounts.length; i++){ _isBlacklisted[accounts[i]] = state; } } function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) { require(isTxLimitExempt[msg.sender]); if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function enableTrading() public onlyOwner { TradingOpen = true; buyMultiplier = 300; sellMultiplier = 300; transferMultiplier = 1000; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee); uint256 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}(""); (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function exemptAll(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; } function setTXExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function updateTaxBreakdown(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _utilityFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; teamFee = _teamFee; marketingFee = _marketingFee; utilityFee = _utilityFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_utilityFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); } function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; utilityFeeReceiver = _utilityFeeReceiver; burnFeeReceiver = _burnFeeReceiver; teamFeeReceiver = _teamFeeReceiver; } function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function setTargets(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountTokens); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveAll","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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000ef2565b64e8d4a51000620000ab919062000f43565b600555620000e56064620000d1600260055462000c1360201b6200235b1790919060201c565b62000c9660201b620023d51790919060201c565b6006556200011f60646200010b600260055462000c1360201b6200235b1790919060201c565b62000c9660201b620023d51790919060201c565b6007556000600d55600a600e556000600f5560006010556000601155601154600f54600d54600e5460105462000156919062000f8e565b62000162919062000f8e565b6200016e919062000f8e565b6200017a919062000f8e565b6012556064601355606460145560646015556103e86016556014601f5560646020556000602360146101000a81548160ff0219169083151502179055506001602360156101000a81548160ff02191690831515021790555061271060c8600554620001e6919062000f43565b620001f2919062000ff8565b6024553480156200020257600080fd5b5060006200021562000ce860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041491906200109a565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e891906200109a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000546929190620010dd565b6020604051808303816000875af115801562000566573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058c91906200109a565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f58aca92743e3d03141d108b3c1ba3154640f324601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000c0591906200111b565b60405180910390a36200128e565b600080830362000c27576000905062000c90565b6000828462000c37919062000f43565b905082848262000c48919062000ff8565b1462000c8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c8290620011bf565b60405180910390fd5b809150505b92915050565b600062000ce083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cf060201b60201c565b905092915050565b600033905090565b6000808311829062000d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d3191906200126a565b60405180910390fd5b506000838562000d4b919062000ff8565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000de65780860481111562000dbe5762000dbd62000d58565b5b600185161562000dce5780820291505b808102905062000dde8562000d87565b945062000d9e565b94509492505050565b60008262000e01576001905062000ed4565b8162000e11576000905062000ed4565b816001811462000e2a576002811462000e355762000e6b565b600191505062000ed4565b60ff84111562000e4a5762000e4962000d58565b5b8360020a91508482111562000e645762000e6362000d58565b5b5062000ed4565b5060208310610133831016604e8410600b841016171562000ea55782820a90508381111562000e9f5762000e9e62000d58565b5b62000ed4565b62000eb4848484600162000d94565b9250905081840481111562000ece5762000ecd62000d58565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000eff8262000edb565b915062000f0c8362000ee5565b925062000f3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000def565b905092915050565b600062000f508262000edb565b915062000f5d8362000edb565b925082820262000f6d8162000edb565b9150828204841483151762000f875762000f8662000d58565b5b5092915050565b600062000f9b8262000edb565b915062000fa88362000edb565b925082820190508082111562000fc35762000fc262000d58565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010058262000edb565b9150620010128362000edb565b92508262001025576200102462000fc9565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010628262001035565b9050919050565b620010748162001055565b81146200108057600080fd5b50565b600081519050620010948162001069565b92915050565b600060208284031215620010b357620010b262001030565b5b6000620010c38482850162001083565b91505092915050565b620010d78162001055565b82525050565b6000604082019050620010f46000830185620010cc565b620011036020830184620010cc565b9392505050565b620011158162000edb565b82525050565b60006020820190506200113260008301846200110a565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011a760218362001138565b9150620011b48262001149565b604082019050919050565b60006020820190508181036000830152620011da8162001198565b9050919050565b600081519050919050565b60005b838110156200120c578082015181840152602081019050620011ef565b60008484015250505050565b6000601f19601f8301169050919050565b60006200123682620011e1565b62001242818562001138565b935062001254818560208601620011ec565b6200125f8162001218565b840191505092915050565b6000602082019050818103600083015262001286818462001229565b905092915050565b614b44806200129e6000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108bb578063d78e139d146108f8578063dd62ed3e14610921578063f2fde38b1461095e578063f6a78e1714610987578063f887ea401461099e57610267565b8063b2bdfa7b146107fe578063bc33718214610829578063ccf8c03614610852578063cec10c111461087b578063d148b74c146108a457610267565b8063918924761161010857806391892476146106f057806395d89b41146107195780639acb773e146107445780639f11080e1461076d578063a8aa1b3114610796578063a9059cbb146107c157610267565b80637d1db4a514610641578063893d20e81461066c5780638a4068dd146106975780638a8c523c146106ae5780638da5cb5b146106c557610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ad2565b6109c9565b005b3480156102a157600080fd5b506102aa610a83565b6040516102b79190613b21565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613b9a565b610a89565b6040516102f49190613bd6565b60405180910390f35b34801561030957600080fd5b50610312610abc565b60405161031f9190613c81565b60405180910390f35b34801561033457600080fd5b5061033d610af9565b60405161034a9190613bd6565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613ca3565b610b0c565b6040516103879190613bd6565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613ce3565b610bfe565b6040516103c49190613bd6565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e6b565b610c13565b005b34801561040257600080fd5b5061040b610d3d565b6040516104189190613b21565b60405180910390f35b34801561042d57600080fd5b50610436610d47565b6040516104439190613b21565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613ec7565b610d4d565b6040516104809190613bd6565b60405180910390f35b34801561049557600080fd5b5061049e610f4d565b6040516104ab9190613b21565b60405180910390f35b3480156104c057600080fd5b506104c9610fcf565b6040516104d69190613f36565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f51565b610fd8565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613f91565b6110c8565b005b34801561053d57600080fd5b5061054661119f565b6040516105539190613bd6565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b9a565b6111b2565b6040516105909190613b21565b60405180910390f35b3480156105a557600080fd5b506105ae6111fb565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613ca3565b61134e565b6040516105e49190613bd6565b60405180910390f35b3480156105f957600080fd5b506106026114b1565b60405161060f9190613b21565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fbe565b6114b7565b005b34801561064d57600080fd5b50610656611698565b6040516106639190613b21565b60405180910390f35b34801561067857600080fd5b5061068161169e565b60405161068e9190614048565b60405180910390f35b3480156106a357600080fd5b506106ac6116ad565b005b3480156106ba57600080fd5b506106c361174c565b005b3480156106d157600080fd5b506106da611819565b6040516106e79190614048565b60405180910390f35b3480156106fc57600080fd5b5061071760048036038101906107129190614063565b611842565b005b34801561072557600080fd5b5061072e6119aa565b60405161073b9190613c81565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613f51565b6119e7565b005b34801561077957600080fd5b50610794600480360381019061078f9190613ce3565b611ad7565b005b3480156107a257600080fd5b506107ab611b7e565b6040516107b89190614048565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613ca3565b611ba4565b6040516107f59190613bd6565b60405180910390f35b34801561080a57600080fd5b50610813611bb9565b6040516108209190614048565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613f91565b611bdd565b005b34801561085e57600080fd5b5061087960048036038101906108749190613f51565b611cb4565b005b34801561088757600080fd5b506108a2600480360381019061089d91906140f0565b611dfb565b005b3480156108b057600080fd5b506108b9611eaa565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190613f91565b611f49565b6040516108ef9190613b21565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613f91565b611fbb565b005b34801561092d57600080fd5b5061094860048036038101906109439190614143565b612044565b6040516109559190613b21565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190613b9a565b6120cb565b005b34801561099357600080fd5b5061099c61228c565b005b3480156109aa57600080fd5b506109b3612335565b6040516109c091906141e2565b60405180910390f35b6109d161241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590614249565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ab5827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b0c565b9050919050565b60606040518060400160405280600981526020017f5075707079205061640000000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bec9190613b21565b60405180910390a36001905092915050565b600082610c0a83611f49565b11905092915050565b610c1b61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90614249565b60405180910390fd5b60005b8251811015610d385781600c6000858481518110610ccc57610ccb614269565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d30906142c7565b915050610cab565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3957610eb8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124279092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f4484848461248b565b90509392505050565b6000610fca610f7d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b610fbc610fab600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b600554612be690919063ffffffff16565b612be690919063ffffffff16565b905090565b60006009905090565b610fe061241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490614249565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110d061241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490614249565b60405180910390fd5b6103e860055461116d919061433e565b600754101561117b57600080fd5b6103e88160055461118c919061436f565b611196919061433e565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61120361241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128790614249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a657600080fd5b6000820361142b578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113e79190614048565b602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142891906143c6565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114669291906143f3565b6020604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a99190614431565b905092915050565b60075481565b6114bf61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390614249565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006116a8611819565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661170357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611749573d6000803e3d6000fd5b50565b61175461241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890614249565b60405180910390fd5b6001602360146101000a81548160ff02191690831515021790555061012c60158190555061012c6014819055506103e8601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61184a61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90614249565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506119438261193585611927886119198b8d612c3090919063ffffffff16565b612c3090919063ffffffff16565b612c3090919063ffffffff16565b612c3090919063ffffffff16565b60128190555080601381905550600560135461195f919061433e565b601254106119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906144aa565b60405180910390fd5b505050505050565b60606040518060400160405280600581526020017f5055505059000000000000000000000000000000000000000000000000000000815250905090565b6119ef61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390614249565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611adf61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6390614249565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bb133848461248b565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be561241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990614249565b60405180910390fd5b6103e8600554611c82919061433e565b6006541015611c9057600080fd5b6103e881600554611ca1919061436f565b611cab919061433e565b60068190555050565b611cbc61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4090614249565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e0361241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8790614249565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611eb261241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690614249565b60405180910390fd5b611f47612c8e565b565b6000611fb4611f56610f4d565b611fa6611f976002611f89602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b61235b90919063ffffffff16565b8561235b90919063ffffffff16565b6123d590919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461200a919061436f565b612014919061433e565b9081150290604051600060405180830381858888f1935050505015801561203f573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120d361241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215790614249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c69061453c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61229461241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231890614249565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080830361236d57600090506123cf565b6000828461237b919061436f565b905082848261238a919061433e565b146123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906145ce565b60405180910390fd5b809150505b92915050565b600061241783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132b5565b905092915050565b600033905090565b600083831115829061246f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124669190613c81565b60405180910390fd5b506000838561247e91906145ee565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125315750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125679061466e565b60405180910390fd5b602560009054906101000a900460ff161561259757612590848484613318565b9050612bdf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561263b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269057602360149054906101000a900460ff1661268f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612686906146da565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561271657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127705750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127ca5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128245750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561287e5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128d45750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129385760006128e4846111b2565b905060075483826128f591906146fa565b1115612936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292d906147a0565b60405180910390fd5b505b61294284836134eb565b61294a613588565b1561295857612957612c8e565b5b6129e1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ac75750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612adb57612ad685848661365f565b612add565b825b9050612b3181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bd19190613b21565b60405180910390a360019150505b9392505050565b6000612c2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612427565b905092915050565b6000808284612c3f91906146fa565b905083811015612c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7b9061480c565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612cb9601f54602054610bfe565b612cc557600d54612cc8565b60005b90506000612d086002612cfa601254612cec8660245461235b90919063ffffffff16565b6123d590919063ffffffff16565b6123d590919063ffffffff16565b90506000612d2182602454612be690919063ffffffff16565b90506000600267ffffffffffffffff811115612d4057612d3f613d28565b5b604051908082528060200260200182016040528015612d6e5781602001602082028036833780820191505090505b5090503081600081518110612d8657612d85614269565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612df757612df6614269565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612e9a959493929190614925565b600060405180830381600087803b158015612eb457600080fd5b505af1158015612ec8573d6000803e3d6000fd5b505050506000612ee18247612be690919063ffffffff16565b90506000612f0d612efc6002896123d590919063ffffffff16565b601254612be690919063ffffffff16565b90506000612f496002612f3b84612f2d8c8861235b90919063ffffffff16565b6123d590919063ffffffff16565b6123d590919063ffffffff16565b90506000612f7483612f66600e548761235b90919063ffffffff16565b6123d590919063ffffffff16565b90506000612f9f84612f916010548861235b90919063ffffffff16565b6123d590919063ffffffff16565b90506000612fca85612fbc600f548961235b90919063ffffffff16565b6123d590919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051613014906149b0565b60006040518083038185875af1925050503d8060008114613051576040519150601f19603f3d011682016040523d82523d6000602084013e613056565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516130a0906149b0565b60006040518083038185875af1925050503d80600081146130dd576040519150601f19603f3d011682016040523d82523d6000602084013e6130e2565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161312e906149b0565b60006040518083038185875af1925050503d806000811461316b576040519150601f19603f3d011682016040523d82523d6000602084013e613170565b606091505b5050809150506000905060008b111561328c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320c969594939291906149c5565b60606040518083038185885af115801561322a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061324f9190614a26565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613283929190614a79565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b600080831182906132fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f39190613c81565b60405180910390fd5b506000838561330b919061433e565b9050809150509392505050565b60006133a3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061343882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134d89190613b21565b60405180910390a3600190509392505050565b600654811115806135455750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357b90614aee565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135f55750602560009054906101000a900460ff16155b801561360d5750602360159054906101000a900460ff165b801561365a5750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136c6576014549050613722565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137215760155490505b5b600061376b6064601354613736919061436f565b61375d8461374f6012548a61235b90919063ffffffff16565b61235b90919063ffffffff16565b6123d590919063ffffffff16565b9050600061379860125461378a6011548561235b90919063ffffffff16565b6123d590919063ffffffff16565b905060006137af8284612be690919063ffffffff16565b905061380381600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138ba8260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397c9190613b21565b60405180910390a36000821115613a30576139a282600554612be690919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a279190613b21565b60405180910390a35b613a438388612be690919063ffffffff16565b9450505050509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a7981613a64565b8114613a8457600080fd5b50565b600081359050613a9681613a70565b92915050565b6000819050919050565b613aaf81613a9c565b8114613aba57600080fd5b50565b600081359050613acc81613aa6565b92915050565b60008060408385031215613ae957613ae8613a5a565b5b6000613af785828601613a87565b9250506020613b0885828601613abd565b9150509250929050565b613b1b81613a9c565b82525050565b6000602082019050613b366000830184613b12565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6782613b3c565b9050919050565b613b7781613b5c565b8114613b8257600080fd5b50565b600081359050613b9481613b6e565b92915050565b600060208284031215613bb057613baf613a5a565b5b6000613bbe84828501613b85565b91505092915050565b613bd081613a64565b82525050565b6000602082019050613beb6000830184613bc7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c2b578082015181840152602081019050613c10565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c5382613bf1565b613c5d8185613bfc565b9350613c6d818560208601613c0d565b613c7681613c37565b840191505092915050565b60006020820190508181036000830152613c9b8184613c48565b905092915050565b60008060408385031215613cba57613cb9613a5a565b5b6000613cc885828601613b85565b9250506020613cd985828601613abd565b9150509250929050565b60008060408385031215613cfa57613cf9613a5a565b5b6000613d0885828601613abd565b9250506020613d1985828601613abd565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d6082613c37565b810181811067ffffffffffffffff82111715613d7f57613d7e613d28565b5b80604052505050565b6000613d92613a50565b9050613d9e8282613d57565b919050565b600067ffffffffffffffff821115613dbe57613dbd613d28565b5b602082029050602081019050919050565b600080fd5b6000613de7613de284613da3565b613d88565b90508083825260208201905060208402830185811115613e0a57613e09613dcf565b5b835b81811015613e335780613e1f8882613b85565b845260208401935050602081019050613e0c565b5050509392505050565b600082601f830112613e5257613e51613d23565b5b8135613e62848260208601613dd4565b91505092915050565b60008060408385031215613e8257613e81613a5a565b5b600083013567ffffffffffffffff811115613ea057613e9f613a5f565b5b613eac85828601613e3d565b9250506020613ebd85828601613a87565b9150509250929050565b600080600060608486031215613ee057613edf613a5a565b5b6000613eee86828701613b85565b9350506020613eff86828701613b85565b9250506040613f1086828701613abd565b9150509250925092565b600060ff82169050919050565b613f3081613f1a565b82525050565b6000602082019050613f4b6000830184613f27565b92915050565b60008060408385031215613f6857613f67613a5a565b5b6000613f7685828601613b85565b9250506020613f8785828601613a87565b9150509250929050565b600060208284031215613fa757613fa6613a5a565b5b6000613fb584828501613abd565b91505092915050565b600080600080600060a08688031215613fda57613fd9613a5a565b5b6000613fe888828901613b85565b9550506020613ff988828901613b85565b945050604061400a88828901613b85565b935050606061401b88828901613b85565b925050608061402c88828901613b85565b9150509295509295909350565b61404281613b5c565b82525050565b600060208201905061405d6000830184614039565b92915050565b60008060008060008060c087890312156140805761407f613a5a565b5b600061408e89828a01613abd565b965050602061409f89828a01613abd565b95505060406140b089828a01613abd565b94505060606140c189828a01613abd565b93505060806140d289828a01613abd565b92505060a06140e389828a01613abd565b9150509295509295509295565b60008060006060848603121561410957614108613a5a565b5b600061411786828701613abd565b935050602061412886828701613abd565b925050604061413986828701613abd565b9150509250925092565b6000806040838503121561415a57614159613a5a565b5b600061416885828601613b85565b925050602061417985828601613b85565b9150509250929050565b6000819050919050565b60006141a86141a361419e84613b3c565b614183565b613b3c565b9050919050565b60006141ba8261418d565b9050919050565b60006141cc826141af565b9050919050565b6141dc816141c1565b82525050565b60006020820190506141f760008301846141d3565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614233602083613bfc565b915061423e826141fd565b602082019050919050565b6000602082019050818103600083015261426281614226565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142d282613a9c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361430457614303614298565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434982613a9c565b915061435483613a9c565b9250826143645761436361430f565b5b828204905092915050565b600061437a82613a9c565b915061438583613a9c565b925082820261439381613a9c565b915082820484148315176143aa576143a9614298565b5b5092915050565b6000815190506143c081613aa6565b92915050565b6000602082840312156143dc576143db613a5a565b5b60006143ea848285016143b1565b91505092915050565b60006040820190506144086000830185614039565b6144156020830184613b12565b9392505050565b60008151905061442b81613a70565b92915050565b60006020828403121561444757614446613a5a565b5b60006144558482850161441c565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614494601d83613bfc565b915061449f8261445e565b602082019050919050565b600060208201905081810360008301526144c381614487565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614526602683613bfc565b9150614531826144ca565b604082019050919050565b6000602082019050818103600083015261455581614519565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145b8602183613bfc565b91506145c38261455c565b604082019050919050565b600060208201905081810360008301526145e7816145ab565b9050919050565b60006145f982613a9c565b915061460483613a9c565b925082820390508181111561461c5761461b614298565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000614658600d83613bfc565b915061466382614622565b602082019050919050565b600060208201905081810360008301526146878161464b565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006146c4601483613bfc565b91506146cf8261468e565b602082019050919050565b600060208201905081810360008301526146f3816146b7565b9050919050565b600061470582613a9c565b915061471083613a9c565b925082820190508082111561472857614727614298565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b600061478a603e83613bfc565b91506147958261472e565b604082019050919050565b600060208201905081810360008301526147b98161477d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006147f6601b83613bfc565b9150614801826147c0565b602082019050919050565b60006020820190508181036000830152614825816147e9565b9050919050565b6000819050919050565b600061485161484c6148478461482c565b614183565b613a9c565b9050919050565b61486181614836565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61489c81613b5c565b82525050565b60006148ae8383614893565b60208301905092915050565b6000602082019050919050565b60006148d282614867565b6148dc8185614872565b93506148e783614883565b8060005b838110156149185781516148ff88826148a2565b975061490a836148ba565b9250506001810190506148eb565b5085935050505092915050565b600060a08201905061493a6000830188613b12565b6149476020830187614858565b818103604083015261495981866148c7565b90506149686060830185614039565b6149756080830184613b12565b9695505050505050565b600081905092915050565b50565b600061499a60008361497f565b91506149a58261498a565b600082019050919050565b60006149bb8261498d565b9150819050919050565b600060c0820190506149da6000830189614039565b6149e76020830188613b12565b6149f46040830187614858565b614a016060830186614858565b614a0e6080830185614039565b614a1b60a0830184613b12565b979650505050505050565b600080600060608486031215614a3f57614a3e613a5a565b5b6000614a4d868287016143b1565b9350506020614a5e868287016143b1565b9250506040614a6f868287016143b1565b9150509250925092565b6000604082019050614a8e6000830185613b12565b614a9b6020830184613b12565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614ad8601183613bfc565b9150614ae382614aa2565b602082019050919050565b60006020820190508181036000830152614b0781614acb565b905091905056fea264697066735822122040b0898a9e9a3295e6fc75f37ccbea15c7887f3f1fc0d27b6878e258faf0a24064736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146108bb578063d78e139d146108f8578063dd62ed3e14610921578063f2fde38b1461095e578063f6a78e1714610987578063f887ea401461099e57610267565b8063b2bdfa7b146107fe578063bc33718214610829578063ccf8c03614610852578063cec10c111461087b578063d148b74c146108a457610267565b8063918924761161010857806391892476146106f057806395d89b41146107195780639acb773e146107445780639f11080e1461076d578063a8aa1b3114610796578063a9059cbb146107c157610267565b80637d1db4a514610641578063893d20e81461066c5780638a4068dd146106975780638a8c523c146106ae5780638da5cb5b146106c557610267565b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461053157806370a082311461055c578063715018a61461059957806377b54bad146105b057806378109e54146105ed5780637bae52e11461061857610267565b806323b872dd1461044c5780632b112e4914610489578063313ce567146104b45780635b24ea5e146104df5780635d0044ca1461050857610267565b8063095ea7b311610224578063095ea7b3146103535780631161ae391461039057806313f97a8e146103cd57806318160ddd146103f65780631df4ccfc1461042157610267565b806304368f651461026c5780630445b667146102955780630621472c146102c057806306fdde03146102fd57806308fd3d051461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e9190613ad2565b6109c9565b005b3480156102a157600080fd5b506102aa610a83565b6040516102b79190613b21565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190613b9a565b610a89565b6040516102f49190613bd6565b60405180910390f35b34801561030957600080fd5b50610312610abc565b60405161031f9190613c81565b60405180910390f35b34801561033457600080fd5b5061033d610af9565b60405161034a9190613bd6565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190613ca3565b610b0c565b6040516103879190613bd6565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190613ce3565b610bfe565b6040516103c49190613bd6565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613e6b565b610c13565b005b34801561040257600080fd5b5061040b610d3d565b6040516104189190613b21565b60405180910390f35b34801561042d57600080fd5b50610436610d47565b6040516104439190613b21565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190613ec7565b610d4d565b6040516104809190613bd6565b60405180910390f35b34801561049557600080fd5b5061049e610f4d565b6040516104ab9190613b21565b60405180910390f35b3480156104c057600080fd5b506104c9610fcf565b6040516104d69190613f36565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190613f51565b610fd8565b005b34801561051457600080fd5b5061052f600480360381019061052a9190613f91565b6110c8565b005b34801561053d57600080fd5b5061054661119f565b6040516105539190613bd6565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b9a565b6111b2565b6040516105909190613b21565b60405180910390f35b3480156105a557600080fd5b506105ae6111fb565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613ca3565b61134e565b6040516105e49190613bd6565b60405180910390f35b3480156105f957600080fd5b506106026114b1565b60405161060f9190613b21565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613fbe565b6114b7565b005b34801561064d57600080fd5b50610656611698565b6040516106639190613b21565b60405180910390f35b34801561067857600080fd5b5061068161169e565b60405161068e9190614048565b60405180910390f35b3480156106a357600080fd5b506106ac6116ad565b005b3480156106ba57600080fd5b506106c361174c565b005b3480156106d157600080fd5b506106da611819565b6040516106e79190614048565b60405180910390f35b3480156106fc57600080fd5b5061071760048036038101906107129190614063565b611842565b005b34801561072557600080fd5b5061072e6119aa565b60405161073b9190613c81565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613f51565b6119e7565b005b34801561077957600080fd5b50610794600480360381019061078f9190613ce3565b611ad7565b005b3480156107a257600080fd5b506107ab611b7e565b6040516107b89190614048565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613ca3565b611ba4565b6040516107f59190613bd6565b60405180910390f35b34801561080a57600080fd5b50610813611bb9565b6040516108209190614048565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613f91565b611bdd565b005b34801561085e57600080fd5b5061087960048036038101906108749190613f51565b611cb4565b005b34801561088757600080fd5b506108a2600480360381019061089d91906140f0565b611dfb565b005b3480156108b057600080fd5b506108b9611eaa565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190613f91565b611f49565b6040516108ef9190613b21565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613f91565b611fbb565b005b34801561092d57600080fd5b5061094860048036038101906109439190614143565b612044565b6040516109559190613b21565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190613b9a565b6120cb565b005b34801561099357600080fd5b5061099c61228c565b005b3480156109aa57600080fd5b506109b3612335565b6040516109c091906141e2565b60405180910390f35b6109d161241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5590614249565b60405180910390fd5b81602360156101000a81548160ff021916908315150217905550806024819055505050565b60245481565b6000610ab5827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b0c565b9050919050565b60606040518060400160405280600981526020017f5075707079205061640000000000000000000000000000000000000000000000815250905090565b602360149054906101000a900460ff1681565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bec9190613b21565b60405180910390a36001905092915050565b600082610c0a83611f49565b11905092915050565b610c1b61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90614249565b60405180910390fd5b60005b8251811015610d385781600c6000858481518110610ccc57610ccb614269565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d30906142c7565b915050610cab565b505050565b6000600554905090565b60125481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3957610eb8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124279092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f4484848461248b565b90509392505050565b6000610fca610f7d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b610fbc610fab600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b600554612be690919063ffffffff16565b612be690919063ffffffff16565b905090565b60006009905090565b610fe061241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490614249565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110d061241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490614249565b60405180910390fd5b6103e860055461116d919061433e565b600754101561117b57600080fd5b6103e88160055461118c919061436f565b611196919061433e565b60078190555050565b602360159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61120361241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128790614249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113a657600080fd5b6000820361142b578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113e79190614048565b602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142891906143c6565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114669291906143f3565b6020604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a99190614431565b905092915050565b60075481565b6114bf61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390614249565b60405180910390fd5b84601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b60065481565b60006116a8611819565b905090565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661170357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611749573d6000803e3d6000fd5b50565b61175461241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890614249565b60405180910390fd5b6001602360146101000a81548160ff02191690831515021790555061012c60158190555061012c6014819055506103e8601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61184a61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90614249565b60405180910390fd5b85600d819055508460108190555083600e8190555082600f81905550816011819055506119438261193585611927886119198b8d612c3090919063ffffffff16565b612c3090919063ffffffff16565b612c3090919063ffffffff16565b612c3090919063ffffffff16565b60128190555080601381905550600560135461195f919061433e565b601254106119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906144aa565b60405180910390fd5b505050505050565b60606040518060400160405280600581526020017f5055505059000000000000000000000000000000000000000000000000000000815250905090565b6119ef61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7390614249565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611adf61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6390614249565b60405180910390fd5b81601f81905550806020819055505050565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bb133848461248b565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be561241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990614249565b60405180910390fd5b6103e8600554611c82919061433e565b6006541015611c9057600080fd5b6103e881600554611ca1919061436f565b611cab919061433e565b60068190555050565b611cbc61241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4090614249565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e0361241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8790614249565b60405180910390fd5b816014819055508260158190555080601681905550505050565b611eb261241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690614249565b60405180910390fd5b611f47612c8e565b565b6000611fb4611f56610f4d565b611fa6611f976002611f89602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111b2565b61235b90919063ffffffff16565b8561235b90919063ffffffff16565b6123d590919063ffffffff16565b9050919050565b6000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461200a919061436f565b612014919061433e565b9081150290604051600060405180830381858888f1935050505015801561203f573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120d361241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215790614249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c69061453c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61229461241f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231890614249565b60405180910390fd5b600554600781905550600554600681905550565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080830361236d57600090506123cf565b6000828461237b919061436f565b905082848261238a919061433e565b146123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906145ce565b60405180910390fd5b809150505b92915050565b600061241783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132b5565b905092915050565b600033905090565b600083831115829061246f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124669190613c81565b60405180910390fd5b506000838561247e91906145ee565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125315750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125679061466e565b60405180910390fd5b602560009054906101000a900460ff161561259757612590848484613318565b9050612bdf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561263b5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269057602360149054906101000a900460ff1661268f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612686906146da565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561271657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127705750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127ca5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128245750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561287e5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128d45750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129385760006128e4846111b2565b905060075483826128f591906146fa565b1115612936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292d906147a0565b60405180910390fd5b505b61294284836134eb565b61294a613588565b1561295857612957612c8e565b5b6129e1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ac75750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612adb57612ad685848661365f565b612add565b825b9050612b3181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bd19190613b21565b60405180910390a360019150505b9392505050565b6000612c2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612427565b905092915050565b6000808284612c3f91906146fa565b905083811015612c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7b9061480c565b60405180910390fd5b8091505092915050565b6001602560006101000a81548160ff0219169083151502179055506000612cb9601f54602054610bfe565b612cc557600d54612cc8565b60005b90506000612d086002612cfa601254612cec8660245461235b90919063ffffffff16565b6123d590919063ffffffff16565b6123d590919063ffffffff16565b90506000612d2182602454612be690919063ffffffff16565b90506000600267ffffffffffffffff811115612d4057612d3f613d28565b5b604051908082528060200260200182016040528015612d6e5781602001602082028036833780820191505090505b5090503081600081518110612d8657612d85614269565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612df757612df6614269565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612e9a959493929190614925565b600060405180830381600087803b158015612eb457600080fd5b505af1158015612ec8573d6000803e3d6000fd5b505050506000612ee18247612be690919063ffffffff16565b90506000612f0d612efc6002896123d590919063ffffffff16565b601254612be690919063ffffffff16565b90506000612f496002612f3b84612f2d8c8861235b90919063ffffffff16565b6123d590919063ffffffff16565b6123d590919063ffffffff16565b90506000612f7483612f66600e548761235b90919063ffffffff16565b6123d590919063ffffffff16565b90506000612f9f84612f916010548861235b90919063ffffffff16565b6123d590919063ffffffff16565b90506000612fca85612fbc600f548961235b90919063ffffffff16565b6123d590919063ffffffff16565b90506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051613014906149b0565b60006040518083038185875af1925050503d8060008114613051576040519150601f19603f3d011682016040523d82523d6000602084013e613056565b606091505b50509050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516130a0906149b0565b60006040518083038185875af1925050503d80600081146130dd576040519150601f19603f3d011682016040523d82523d6000602084013e6130e2565b606091505b505080915050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161312e906149b0565b60006040518083038185875af1925050503d806000811461316b576040519150601f19603f3d011682016040523d82523d6000602084013e613170565b606091505b5050809150506000905060008b111561328c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161320c969594939291906149c5565b60606040518083038185885af115801561322a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061324f9190614a26565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051613283929190614a79565b60405180910390a15b5050505050505050505050506000602560006101000a81548160ff021916908315150217905550565b600080831182906132fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f39190613c81565b60405180910390fd5b506000838561330b919061433e565b9050809150509392505050565b60006133a3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061343882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134d89190613b21565b60405180910390a3600190509392505050565b600654811115806135455750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357b90614aee565b60405180910390fd5b5050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135f55750602560009054906101000a900460ff16155b801561360d5750602360159054906101000a900460ff165b801561365a5750602454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806016549050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036136c6576014549050613722565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036137215760155490505b5b600061376b6064601354613736919061436f565b61375d8461374f6012548a61235b90919063ffffffff16565b61235b90919063ffffffff16565b6123d590919063ffffffff16565b9050600061379860125461378a6011548561235b90919063ffffffff16565b6123d590919063ffffffff16565b905060006137af8284612be690919063ffffffff16565b905061380381600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138ba8260086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3090919063ffffffff16565b60086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397c9190613b21565b60405180910390a36000821115613a30576139a282600554612be690919063ffffffff16565b600581905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613a279190613b21565b60405180910390a35b613a438388612be690919063ffffffff16565b9450505050509392505050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b613a7981613a64565b8114613a8457600080fd5b50565b600081359050613a9681613a70565b92915050565b6000819050919050565b613aaf81613a9c565b8114613aba57600080fd5b50565b600081359050613acc81613aa6565b92915050565b60008060408385031215613ae957613ae8613a5a565b5b6000613af785828601613a87565b9250506020613b0885828601613abd565b9150509250929050565b613b1b81613a9c565b82525050565b6000602082019050613b366000830184613b12565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6782613b3c565b9050919050565b613b7781613b5c565b8114613b8257600080fd5b50565b600081359050613b9481613b6e565b92915050565b600060208284031215613bb057613baf613a5a565b5b6000613bbe84828501613b85565b91505092915050565b613bd081613a64565b82525050565b6000602082019050613beb6000830184613bc7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c2b578082015181840152602081019050613c10565b60008484015250505050565b6000601f19601f8301169050919050565b6000613c5382613bf1565b613c5d8185613bfc565b9350613c6d818560208601613c0d565b613c7681613c37565b840191505092915050565b60006020820190508181036000830152613c9b8184613c48565b905092915050565b60008060408385031215613cba57613cb9613a5a565b5b6000613cc885828601613b85565b9250506020613cd985828601613abd565b9150509250929050565b60008060408385031215613cfa57613cf9613a5a565b5b6000613d0885828601613abd565b9250506020613d1985828601613abd565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d6082613c37565b810181811067ffffffffffffffff82111715613d7f57613d7e613d28565b5b80604052505050565b6000613d92613a50565b9050613d9e8282613d57565b919050565b600067ffffffffffffffff821115613dbe57613dbd613d28565b5b602082029050602081019050919050565b600080fd5b6000613de7613de284613da3565b613d88565b90508083825260208201905060208402830185811115613e0a57613e09613dcf565b5b835b81811015613e335780613e1f8882613b85565b845260208401935050602081019050613e0c565b5050509392505050565b600082601f830112613e5257613e51613d23565b5b8135613e62848260208601613dd4565b91505092915050565b60008060408385031215613e8257613e81613a5a565b5b600083013567ffffffffffffffff811115613ea057613e9f613a5f565b5b613eac85828601613e3d565b9250506020613ebd85828601613a87565b9150509250929050565b600080600060608486031215613ee057613edf613a5a565b5b6000613eee86828701613b85565b9350506020613eff86828701613b85565b9250506040613f1086828701613abd565b9150509250925092565b600060ff82169050919050565b613f3081613f1a565b82525050565b6000602082019050613f4b6000830184613f27565b92915050565b60008060408385031215613f6857613f67613a5a565b5b6000613f7685828601613b85565b9250506020613f8785828601613a87565b9150509250929050565b600060208284031215613fa757613fa6613a5a565b5b6000613fb584828501613abd565b91505092915050565b600080600080600060a08688031215613fda57613fd9613a5a565b5b6000613fe888828901613b85565b9550506020613ff988828901613b85565b945050604061400a88828901613b85565b935050606061401b88828901613b85565b925050608061402c88828901613b85565b9150509295509295909350565b61404281613b5c565b82525050565b600060208201905061405d6000830184614039565b92915050565b60008060008060008060c087890312156140805761407f613a5a565b5b600061408e89828a01613abd565b965050602061409f89828a01613abd565b95505060406140b089828a01613abd565b94505060606140c189828a01613abd565b93505060806140d289828a01613abd565b92505060a06140e389828a01613abd565b9150509295509295509295565b60008060006060848603121561410957614108613a5a565b5b600061411786828701613abd565b935050602061412886828701613abd565b925050604061413986828701613abd565b9150509250925092565b6000806040838503121561415a57614159613a5a565b5b600061416885828601613b85565b925050602061417985828601613b85565b9150509250929050565b6000819050919050565b60006141a86141a361419e84613b3c565b614183565b613b3c565b9050919050565b60006141ba8261418d565b9050919050565b60006141cc826141af565b9050919050565b6141dc816141c1565b82525050565b60006020820190506141f760008301846141d3565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614233602083613bfc565b915061423e826141fd565b602082019050919050565b6000602082019050818103600083015261426281614226565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142d282613a9c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361430457614303614298565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434982613a9c565b915061435483613a9c565b9250826143645761436361430f565b5b828204905092915050565b600061437a82613a9c565b915061438583613a9c565b925082820261439381613a9c565b915082820484148315176143aa576143a9614298565b5b5092915050565b6000815190506143c081613aa6565b92915050565b6000602082840312156143dc576143db613a5a565b5b60006143ea848285016143b1565b91505092915050565b60006040820190506144086000830185614039565b6144156020830184613b12565b9392505050565b60008151905061442b81613a70565b92915050565b60006020828403121561444757614446613a5a565b5b60006144558482850161441c565b91505092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e20323025000000600082015250565b6000614494601d83613bfc565b915061449f8261445e565b602082019050919050565b600060208201905081810360008301526144c381614487565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614526602683613bfc565b9150614531826144ca565b604082019050919050565b6000602082019050818103600083015261455581614519565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145b8602183613bfc565b91506145c38261455c565b604082019050919050565b600060208201905081810360008301526145e7816145ab565b9050919050565b60006145f982613a9c565b915061460483613a9c565b925082820390508181111561461c5761461b614298565b5b92915050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6000614658600d83613bfc565b915061466382614622565b602082019050919050565b600060208201905081810360008301526146878161464b565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006146c4601483613bfc565b91506146cf8261468e565b602082019050919050565b600060208201905081810360008301526146f3816146b7565b9050919050565b600061470582613a9c565b915061471083613a9c565b925082820190508082111561472857614727614298565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b600061478a603e83613bfc565b91506147958261472e565b604082019050919050565b600060208201905081810360008301526147b98161477d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006147f6601b83613bfc565b9150614801826147c0565b602082019050919050565b60006020820190508181036000830152614825816147e9565b9050919050565b6000819050919050565b600061485161484c6148478461482c565b614183565b613a9c565b9050919050565b61486181614836565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61489c81613b5c565b82525050565b60006148ae8383614893565b60208301905092915050565b6000602082019050919050565b60006148d282614867565b6148dc8185614872565b93506148e783614883565b8060005b838110156149185781516148ff88826148a2565b975061490a836148ba565b9250506001810190506148eb565b5085935050505092915050565b600060a08201905061493a6000830188613b12565b6149476020830187614858565b818103604083015261495981866148c7565b90506149686060830185614039565b6149756080830184613b12565b9695505050505050565b600081905092915050565b50565b600061499a60008361497f565b91506149a58261498a565b600082019050919050565b60006149bb8261498d565b9150819050919050565b600060c0820190506149da6000830189614039565b6149e76020830188613b12565b6149f46040830187614858565b614a016060830186614858565b614a0e6080830185614039565b614a1b60a0830184613b12565b979650505050505050565b600080600060608486031215614a3f57614a3e613a5a565b5b6000614a4d868287016143b1565b9350506020614a5e868287016143b1565b9250506040614a6f868287016143b1565b9150509250925092565b6000604082019050614a8e6000830185613b12565b614a9b6020830184613b12565b9392505050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000614ad8601183613bfc565b9150614ae382614aa2565b602082019050919050565b60006020820190508181036000830152614b0781614acb565b905091905056fea264697066735822122040b0898a9e9a3295e6fc75f37ccbea15c7887f3f1fc0d27b6878e258faf0a24064736f6c63430008110033
Deployed Bytecode Sourcemap
5046:14115:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18260:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6897:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9059:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8413:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6816:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8835:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18935:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14092:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8143:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6078:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9353:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18610:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8237:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13954:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9735:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6860:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8583:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3103:148;;;;;;;;;;;;;:::i;:::-;;14309:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5526:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17797:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5461:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8499:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13797:149;;;;;;;;;;;;;:::i;:::-;;14840:176;;;;;;;;;;;;;:::i;:::-;;2889:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17210:579;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8323:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17082:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18424:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6784:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9189:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2509:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9962:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16917:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14625:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13568:77;;;;;;;;;;;;;:::i;:::-;;18760:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13361:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8694:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3259:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13653:136;;;;;;;;;;;;;:::i;:::-;;6714:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18260:156;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18366:8:::1;18352:11;;:22;;;;;;;;;;;;;;;;;;18401:7;18385:13;:23;;;;18260:156:::0;;:::o;6897:57::-;;;;:::o;9059:122::-;9114:4;9138:35;9146:7;9155:17;9138:7;:35::i;:::-;9131:42;;9059:122;;;:::o;8413:80::-;8461:13;8485:5;;;;;;;;;;;;;;;;;8478:12;;8413:80;:::o;6816:31::-;;;;;;;;;;;;;:::o;8835:216::-;8910:4;8962:6;8927:11;:23;8939:10;8927:23;;;;;;;;;;;;;;;:32;8951:7;8927:32;;;;;;;;;;;;;;;:41;;;;9005:7;8984:37;;8993:10;8984:37;;;9014:6;8984:37;;;;;;:::i;:::-;;;;;;;;9039:4;9032:11;;8835:216;;;;:::o;18935:150::-;19015:4;19071:6;19039:29;19059:8;19039:19;:29::i;:::-;:38;19032:45;;18935:150;;;;:::o;14092:209::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14191:9:::1;14187:107;14209:8;:15;14205:1;:19;14187:107;;;14275:5;14245:14;:27;14260:8;14269:1;14260:11;;;;;;;;:::i;:::-;;;;;;;;14245:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14226:3;;;;;:::i;:::-;;;;14187:107;;;;14092:209:::0;;:::o;8143:88::-;8198:7;8216:12;;8209:19;;8143:88;:::o;6078:94::-;;;;:::o;9353:370::-;9453:4;9508:17;9473:11;:19;9485:6;9473:19;;;;;;;;;;;;;;;:31;9493:10;9473:31;;;;;;;;;;;;;;;;:52;9470:186;;9575:69;9611:6;9575:69;;;;;;;;;;;;;;;;;:11;:19;9587:6;9575:19;;;;;;;;;;;;;;;:31;9595:10;9575:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9541:11;:19;9553:6;9541:19;;;;;;;;;;;;;;;:31;9561:10;9541:31;;;;;;;;;;;;;;;:103;;;;9470:186;9675:40;9689:6;9697:9;9708:6;9675:13;:40::i;:::-;9668:47;;9353:370;;;;;:::o;18610:142::-;18663:7;18690:54;18728:15;18738:4;;;;;;;;;;;18728:9;:15::i;:::-;18690:33;18707:15;18717:4;;;;;;;;;;;18707:9;:15::i;:::-;18690:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18683:61;;18610:142;:::o;8237:80::-;8289:5;5388:1;8298:16;;8237:80;:::o;13954:126::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14067:5:::1;14041:14;:23;14056:7;14041:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13954:126:::0;;:::o;9735:219::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:4:::1;9839:12;;:19;;;;:::i;:::-;9820:15;;:38;;9812:47;;;::::0;::::1;;9924:4;9905:14;9890:12;;:29;;;;:::i;:::-;9889:39;;;;:::i;:::-;9871:15;:57;;;;9735:219:::0;:::o;6860:30::-;;;;;;;;;;;;;:::o;8583:105::-;8649:7;8667:9;:18;8677:7;8667:18;;;;;;;;;;;;;;;;8660:25;;8583:105;;;:::o;3103:148::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3210:1:::1;3173:40;;3194:6;::::0;::::1;;;;;;;;3173:40;;;;;;;;;;;;3241:1;3224:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3103:148::o:0;14309:308::-;14388:4;14413:15;:27;14429:10;14413:27;;;;;;;;;;;;;;;;;;;;;;;;;14405:36;;;;;;14462:1;14452:6;:11;14449:95;;14494:12;14488:29;;;14526:4;14488:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14479:53;;14449:95;14567:12;14561:28;;;14590:10;14602:6;14561:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14554:55;;14309:308;;;;:::o;5526:61::-;;;;:::o;17797:455::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18026:22:::1;18002:21;;:46;;;;;;;;;;;;;;;;;;18082:21;18059:20;;:44;;;;;;;;;;;;;;;;;;18135:19;18114:18;;:40;;;;;;;;;;;;;;;;;;18183:16;18165:15;;:34;;;;;;;;;;;;;;;;;;18228:16;18210:15;;:34;;;;;;;;;;;;;;;;;;17797:455:::0;;;;;:::o;5461:58::-;;;;:::o;8499:78::-;8551:7;8568;:5;:7::i;:::-;8561:14;;8499:78;:::o;13797:149::-;13846:15;:27;13862:10;13846:27;;;;;;;;;;;;;;;;;;;;;;;;;13838:36;;;;;;13893:10;13885:28;;:51;13914:21;13885:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13797:149::o;14840:176::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14907:4:::1;14893:11;;:18;;;;;;;;;;;;;;;;;;14938:3;14922:13;:19;;;;14969:3;14952:14;:20;;;;15004:4;14983:18;:25;;;;14840:176::o:0;2889:79::-;2927:7;2954:6;;;;;;;;;;;2947:13;;2889:79;:::o;17210:579::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17411:13:::1;17396:12;:28;;;;17445:8;17435:7;:18;;;;17479:13;17464:12;:28;;;;17516:11;17503:10;:24;;;;17548:8;17538:7;:18;;;;17578:77;17646:8;17578:63;17629:11;17578:46;17610:13;17578:27;17596:8;17578:13;:17;;:27;;;;:::i;:::-;:31;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;:67;;:77;;;;:::i;:::-;17567:8;:88;;;;17683:15;17666:14;:32;;;;17745:1;17728:14;;:18;;;;:::i;:::-;17717:8;;:29;17709:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17210:579:::0;;;;;;:::o;8323:84::-;8373:13;8397:7;;;;;;;;;;;;;;;;;8390:14;;8323:84;:::o;17082:120::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17188:6:::1;17162:15;:23;17178:6;17162:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17082:120:::0;;:::o;18424:174::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18531:7:::1;18513:15;:25;;;;18578:12;18549:26;:41;;;;18424:174:::0;;:::o;6784:19::-;;;;;;;;;;;;;:::o;9189:156::-;9269:4;9293:44;9307:10;9319:9;9330:6;9293:13;:44::i;:::-;9286:51;;9189:156;;;;:::o;2509:21::-;;;;;;;;;;;;:::o;9962:187::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:4:::1;10057:12;;:19;;;;:::i;:::-;10041:12;;:35;;10033:44;;;::::0;::::1;;10137:4;10120:12;10105;;:27;;;;:::i;:::-;10104:37;;;;:::i;:::-;10089:12;:52;;;;9962:187:::0;:::o;16917:157::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17017:6:::1;16995:11;:19;17007:6;16995:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17060:6;17034:15;:23;17050:6;17034:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16917:157:::0;;:::o;14625:207::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14734:5:::1;14717:14;:22;;;;14766:4;14750:13;:20;;;;14802:6;14781:18;:27;;;;14625:207:::0;;;:::o;13568:77::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13621:10:::1;:8;:10::i;:::-;13568:77::o:0;18760:167::-;18828:7;18855:64;18896:22;:20;:22::i;:::-;18855:36;18868:22;18888:1;18868:15;18878:4;;;;;;;;;;;18868:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18855:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18848:71;;18760:167;;;:::o;13361:198::-;13430:17;13450:21;13430:41;;13490:15;;;;;;;;;;;13482:33;;:69;13547:3;13528:16;13516:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13482:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13419:140;13361:198;:::o;8694:133::-;8778:7;8796:11;:19;8808:6;8796:19;;;;;;;;;;;;;;;:28;8816:7;8796:28;;;;;;;;;;;;;;;;8789:35;;8694:133;;;;:::o;3259:244::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3368:1:::1;3348:22;;:8;:22;;::::0;3340:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3458:8;3429:38;;3450:6;::::0;::::1;;;;;;;;3429:38;;;;;;;;;;;;3487:8;3478:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3259:244:::0;:::o;13653:136::-;3026:12;:10;:12::i;:::-;3016:22;;:6;;;;;;;;;;:22;;;3008:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13729:12:::1;;13711:15;:30;;;;13767:12;;13752;:27;;;;13653:136::o:0;6714:24::-;;;;;;;;;;;;;:::o;688:250::-;746:7;775:1;770;:6;766:47;;800:1;793:8;;;;766:47;825:9;841:1;837;:5;;;;:::i;:::-;825:17;;870:1;865;861;:5;;;;:::i;:::-;:10;853:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;929:1;922:8;;;688:250;;;;;:::o;944:132::-;1002:7;1029:39;1033:1;1036;1029:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1022:46;;944:132;;;;:::o;2230:115::-;2283:15;2326:10;2311:26;;2230:115;:::o;490:192::-;576:7;609:1;604;:6;;612:12;596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;636:9;652:1;648;:5;;;;:::i;:::-;636:17;;673:1;666:8;;;490:192;;;;;:::o;10166:1329::-;10258:4;10284:14;:22;10299:6;10284:22;;;;;;;;;;;;;;;;;;;;;;;;;10283:23;:53;;;;;10311:14;:25;10326:9;10311:25;;;;;;;;;;;;;;;;;;;;;;;;;10310:26;10283:53;10275:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10370:6;;;;;;;;;;;10367:63;;;10386:41;10401:6;10409:9;10420:6;10386:14;:41::i;:::-;10379:48;;;;10367:63;10446:14;:22;10461:6;10446:22;;;;;;;;;;;;;;;;;;;;;;;;;10445:23;:53;;;;;10473:14;:25;10488:9;10473:25;;;;;;;;;;;;;;;;;;;;;;;;;10472:26;10445:53;10442:140;;;10522:11;;;;;;;;;;;10514:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10442:140;10616:14;:22;10631:6;10616:22;;;;;;;;;;;;;;;;;;;;;;;;;10615:23;:53;;;;;10663:4;10642:26;;:9;:26;;;;10615:53;:84;;;;;10694:4;;;;;;;;;;;10673:26;;:9;:26;;;;10615:84;:105;;;;;10716:4;;;;;;;;;;;10703:17;;:9;:17;;;;10615:105;:137;;;;;10737:15;;;;;;;;;;;10724:28;;:9;:28;;;;10615:137;:174;;;;;10769:20;;;;;;;;;;;10756:33;;:9;:33;;;;10615:174;:205;;;;;10794:15;:26;10810:9;10794:26;;;;;;;;;;;;;;;;;;;;;;;;;10793:27;10615:205;10611:397;;;10836:18;10857:20;10867:9;10857;:20::i;:::-;10836:41;;10925:15;;10914:6;10901:10;:19;;;;:::i;:::-;10900:40;;10892:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10821:187;10611:397;11029:28;11042:6;11050;11029:12;:28::i;:::-;11074:16;:14;:16::i;:::-;11071:35;;;11093:10;:8;:10::i;:::-;11071:35;11146:53;11168:6;11146:53;;;;;;;;;;;;;;;;;:9;:17;11156:6;11146:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11126:9;:17;11136:6;11126:17;;;;;;;;;;;;;;;:73;;;;11212:22;11238:11;:19;11250:6;11238:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;11261:11;:22;11273:9;11261:22;;;;;;;;;;;;;;;;;;;;;;;;;11238:45;11237:93;;11296:34;11304:6;11312;11320:9;11296:7;:34::i;:::-;11237:93;;;11287:6;11237:93;11212:118;;11364:40;11389:14;11364:9;:20;11374:9;11364:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11341:9;:20;11351:9;11341:20;;;;;;;;;;;;;;;:63;;;;11439:9;11422:43;;11431:6;11422:43;;;11450:14;11422:43;;;;;;:::i;:::-;;;;;;;;11483:4;11476:11;;;10166:1329;;;;;;:::o;348:136::-;406:7;433:43;437:1;440;433:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;426:50;;348:136;;;;:::o;161:181::-;219:7;239:9;255:1;251;:5;;;;:::i;:::-;239:17;;280:1;275;:6;;267:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;333:1;326:8;;;161:181;;;;:::o;15032:1877::-;7011:4;7002:6;;:13;;;;;;;;;;;;;;;;;;15081:27:::1;15111:60;15127:15;;15144:26;;15111:15;:60::i;:::-;:79;;15178:12;;15111:79;;;15174:1;15111:79;15081:109;;15201:23;15227:59;15284:1;15227:52;15270:8;;15227:38;15245:19;15227:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15201:85;;15297:20;15320:34;15338:15;15320:13;;:17;;:34;;;;:::i;:::-;15297:57;;15367:21;15405:1;15391:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15367:40;;15436:4;15418;15423:1;15418:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15462:4;;;;;;;;;;;15452;15457:1;15452:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15479:21;15503;15479:45;;15537:6;;;;;;;;;;;:57;;;15609:12;15636:1;15652:4;15679;15699:15;15537:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15738:17;15758:40;15784:13;15758:21;:25;;:40;;;;:::i;:::-;15738:60;;15811:19;15833:40;15846:26;15870:1;15846:19;:23;;:26;;;;:::i;:::-;15833:8;;:12;;:40;;;;:::i;:::-;15811:62;;15894:26;15923:58;15979:1;15923:51;15962:11;15923:34;15937:19;15923:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15894:87;;15992:26;16021:44;16053:11;16021:27;16035:12;;16021:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15992:73;;16076:21;16100:39;16127:11;16100:22;16114:7;;16100:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;16076:63;;16150:24;16177:42;16207:11;16177:25;16191:10;;16177:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;16150:69;;16233:15;16261:20;;;;;;;;;;;16253:34;;16295:18;16253:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16232:86;;;16353:18;;;;;;;;;;;16345:32;;16385:16;16345:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16329:77;;;;;16441:15;;;;;;;;;;;16433:29;;16470:13;16433:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16417:71;;;;;16522:5;16509:18;;16561:1;16543:15;:19;16540:362;;;16578:6;;;;;;;;;;;:22;;;16608:18;16654:4;16678:15;16712:1;16732::::0;16752:21:::1;;;;;;;;;;;16792:15;16578:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16842:48;16854:18;16874:15;16842:48;;;;;;;:::i;:::-;;;;;;;;16540:362;15070:1839;;;;;;;;;;;;7029:5:::0;7020:6;;:14;;;;;;;;;;;;;;;;;;15032:1877::o;1082:189::-;1168:7;1200:1;1196;:5;1203:12;1188:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1227:9;1243:1;1239;:5;;;;:::i;:::-;1227:17;;1262:1;1255:8;;;1082:189;;;;;:::o;11507:330::-;11600:4;11637:53;11659:6;11637:53;;;;;;;;;;;;;;;;;:9;:17;11647:6;11637:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11617:9;:17;11627:6;11617:17;;;;;;;;;;;;;;;:73;;;;11724:32;11749:6;11724:9;:20;11734:9;11724:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11701:9;:20;11711:9;11701:20;;;;;;;;;;;;;;;:55;;;;11789:9;11772:35;;11781:6;11772:35;;;11800:6;11772:35;;;;;;:::i;:::-;;;;;;;;11825:4;11818:11;;11507:330;;;;;:::o;11845:166::-;11942:12;;11932:6;:22;;:49;;;;11958:15;:23;11974:6;11958:23;;;;;;;;;;;;;;;;;;;;;;;;;11932:49;11924:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11845:166;;:::o;13156:197::-;13205:4;13243;;;;;;;;;;;13229:18;;:10;:18;;;;:38;;;;;13261:6;;;;;;;;;;;13260:7;13229:38;:62;;;;;13280:11;;;;;;;;;;;13229:62;:116;;;;;13332:13;;13304:9;:24;13322:4;13304:24;;;;;;;;;;;;;;;;:41;;13229:116;13222:123;;13156:197;:::o;12141:1007::-;12227:7;12257:18;12278;;12257:39;;12325:4;;;;;;;;;;;12312:17;;:9;:17;;;12309:154;;12359:14;;12346:27;;12309:154;;;12404:4;;;;;;;;;;;12394:14;;:6;:14;;;12391:72;;12438:13;;12425:26;;12391:72;12309:154;12475:17;12495:62;12553:3;12536:14;;:20;;;;:::i;:::-;12495:36;12520:10;12495:20;12506:8;;12495:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;12475:82;;12568:18;12589:36;12616:8;;12589:22;12603:7;;12589:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12568:57;;12636:22;12661:25;12675:10;12661:9;:13;;:25;;;;:::i;:::-;12636:50;;12726:44;12755:14;12726:9;:24;12744:4;12726:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12699:9;:24;12717:4;12699:24;;;;;;;;;;;;;;;:71;;;;12810:42;12841:10;12810:9;:26;12820:15;;;;;;;;;;;12810:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;12781:9;:26;12791:15;;;;;;;;;;;12781:26;;;;;;;;;;;;;;;:71;;;;12893:4;12868:47;;12877:6;12868:47;;;12900:14;12868:47;;;;;;:::i;:::-;;;;;;;;12962:1;12949:10;:14;12946:154;;;12994:28;13011:10;12994:12;;:16;;:28;;;;:::i;:::-;12979:12;:43;;;;13059:4;;;;;;;;;;;13042:34;;13051:6;13042:34;;;13065:10;13042:34;;;;;;:::i;:::-;;;;;;;;12946:154;13119:21;13130:9;13119:6;:10;;:21;;;;:::i;:::-;13112:28;;;;;;12141:1007;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:126::-;1910:7;1950:42;1943:5;1939:54;1928:65;;1873:126;;;:::o;2005:96::-;2042:7;2071:24;2089:5;2071:24;:::i;:::-;2060:35;;2005:96;;;:::o;2107:122::-;2180:24;2198:5;2180:24;:::i;:::-;2173:5;2170:35;2160:63;;2219:1;2216;2209:12;2160:63;2107:122;:::o;2235:139::-;2281:5;2319:6;2306:20;2297:29;;2335:33;2362:5;2335:33;:::i;:::-;2235:139;;;;:::o;2380:329::-;2439:6;2488:2;2476:9;2467:7;2463:23;2459:32;2456:119;;;2494:79;;:::i;:::-;2456:119;2614:1;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2585:117;2380:329;;;;:::o;2715:109::-;2796:21;2811:5;2796:21;:::i;:::-;2791:3;2784:34;2715:109;;:::o;2830:210::-;2917:4;2955:2;2944:9;2940:18;2932:26;;2968:65;3030:1;3019:9;3015:17;3006:6;2968:65;:::i;:::-;2830:210;;;;:::o;3046:99::-;3098:6;3132:5;3126:12;3116:22;;3046:99;;;:::o;3151:169::-;3235:11;3269:6;3264:3;3257:19;3309:4;3304:3;3300:14;3285:29;;3151:169;;;;:::o;3326:246::-;3407:1;3417:113;3431:6;3428:1;3425:13;3417:113;;;3516:1;3511:3;3507:11;3501:18;3497:1;3492:3;3488:11;3481:39;3453:2;3450:1;3446:10;3441:15;;3417:113;;;3564:1;3555:6;3550:3;3546:16;3539:27;3388:184;3326:246;;;:::o;3578:102::-;3619:6;3670:2;3666:7;3661:2;3654:5;3650:14;3646:28;3636:38;;3578:102;;;:::o;3686:377::-;3774:3;3802:39;3835:5;3802:39;:::i;:::-;3857:71;3921:6;3916:3;3857:71;:::i;:::-;3850:78;;3937:65;3995:6;3990:3;3983:4;3976:5;3972:16;3937:65;:::i;:::-;4027:29;4049:6;4027:29;:::i;:::-;4022:3;4018:39;4011:46;;3778:285;3686:377;;;;:::o;4069:313::-;4182:4;4220:2;4209:9;4205:18;4197:26;;4269:9;4263:4;4259:20;4255:1;4244:9;4240:17;4233:47;4297:78;4370:4;4361:6;4297:78;:::i;:::-;4289:86;;4069:313;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:::-;4936:6;4944;4993:2;4981:9;4972:7;4968:23;4964:32;4961:119;;;4999:79;;:::i;:::-;4961:119;5119:1;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5090:117;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4868:474;;;;;:::o;5348:117::-;5457:1;5454;5447:12;5471:180;5519:77;5516:1;5509:88;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5657:281;5740:27;5762:4;5740:27;:::i;:::-;5732:6;5728:40;5870:6;5858:10;5855:22;5834:18;5822:10;5819:34;5816:62;5813:88;;;5881:18;;:::i;:::-;5813:88;5921:10;5917:2;5910:22;5700:238;5657:281;;:::o;5944:129::-;5978:6;6005:20;;:::i;:::-;5995:30;;6034:33;6062:4;6054:6;6034:33;:::i;:::-;5944:129;;;:::o;6079:311::-;6156:4;6246:18;6238:6;6235:30;6232:56;;;6268:18;;:::i;:::-;6232:56;6318:4;6310:6;6306:17;6298:25;;6378:4;6372;6368:15;6360:23;;6079:311;;;:::o;6396:117::-;6505:1;6502;6495:12;6536:710;6632:5;6657:81;6673:64;6730:6;6673:64;:::i;:::-;6657:81;:::i;:::-;6648:90;;6758:5;6787:6;6780:5;6773:21;6821:4;6814:5;6810:16;6803:23;;6874:4;6866:6;6862:17;6854:6;6850:30;6903:3;6895:6;6892:15;6889:122;;;6922:79;;:::i;:::-;6889:122;7037:6;7020:220;7054:6;7049:3;7046:15;7020:220;;;7129:3;7158:37;7191:3;7179:10;7158:37;:::i;:::-;7153:3;7146:50;7225:4;7220:3;7216:14;7209:21;;7096:144;7080:4;7075:3;7071:14;7064:21;;7020:220;;;7024:21;6638:608;;6536:710;;;;;:::o;7269:370::-;7340:5;7389:3;7382:4;7374:6;7370:17;7366:27;7356:122;;7397:79;;:::i;:::-;7356:122;7514:6;7501:20;7539:94;7629:3;7621:6;7614:4;7606:6;7602:17;7539:94;:::i;:::-;7530:103;;7346:293;7269:370;;;;:::o;7645:678::-;7735:6;7743;7792:2;7780:9;7771:7;7767:23;7763:32;7760:119;;;7798:79;;:::i;:::-;7760:119;7946:1;7935:9;7931:17;7918:31;7976:18;7968:6;7965:30;7962:117;;;7998:79;;:::i;:::-;7962:117;8103:78;8173:7;8164:6;8153:9;8149:22;8103:78;:::i;:::-;8093:88;;7889:302;8230:2;8256:50;8298:7;8289:6;8278:9;8274:22;8256:50;:::i;:::-;8246:60;;8201:115;7645:678;;;;;:::o;8329:619::-;8406:6;8414;8422;8471:2;8459:9;8450:7;8446:23;8442:32;8439:119;;;8477:79;;:::i;:::-;8439:119;8597:1;8622:53;8667:7;8658:6;8647:9;8643:22;8622:53;:::i;:::-;8612:63;;8568:117;8724:2;8750:53;8795:7;8786:6;8775:9;8771:22;8750:53;:::i;:::-;8740:63;;8695:118;8852:2;8878:53;8923:7;8914:6;8903:9;8899:22;8878:53;:::i;:::-;8868:63;;8823:118;8329:619;;;;;:::o;8954:86::-;8989:7;9029:4;9022:5;9018:16;9007:27;;8954:86;;;:::o;9046:112::-;9129:22;9145:5;9129:22;:::i;:::-;9124:3;9117:35;9046:112;;:::o;9164:214::-;9253:4;9291:2;9280:9;9276:18;9268:26;;9304:67;9368:1;9357:9;9353:17;9344:6;9304:67;:::i;:::-;9164:214;;;;:::o;9384:468::-;9449:6;9457;9506:2;9494:9;9485:7;9481:23;9477:32;9474:119;;;9512:79;;:::i;:::-;9474:119;9632:1;9657:53;9702:7;9693:6;9682:9;9678:22;9657:53;:::i;:::-;9647:63;;9603:117;9759:2;9785:50;9827:7;9818:6;9807:9;9803:22;9785:50;:::i;:::-;9775:60;;9730:115;9384:468;;;;;:::o;9858:329::-;9917:6;9966:2;9954:9;9945:7;9941:23;9937:32;9934:119;;;9972:79;;:::i;:::-;9934:119;10092:1;10117:53;10162:7;10153:6;10142:9;10138:22;10117:53;:::i;:::-;10107:63;;10063:117;9858:329;;;;:::o;10193:911::-;10288:6;10296;10304;10312;10320;10369:3;10357:9;10348:7;10344:23;10340:33;10337:120;;;10376:79;;:::i;:::-;10337:120;10496:1;10521:53;10566:7;10557:6;10546:9;10542:22;10521:53;:::i;:::-;10511:63;;10467:117;10623:2;10649:53;10694:7;10685:6;10674:9;10670:22;10649:53;:::i;:::-;10639:63;;10594:118;10751:2;10777:53;10822:7;10813:6;10802:9;10798:22;10777:53;:::i;:::-;10767:63;;10722:118;10879:2;10905:53;10950:7;10941:6;10930:9;10926:22;10905:53;:::i;:::-;10895:63;;10850:118;11007:3;11034:53;11079:7;11070:6;11059:9;11055:22;11034:53;:::i;:::-;11024:63;;10978:119;10193:911;;;;;;;;:::o;11110:118::-;11197:24;11215:5;11197:24;:::i;:::-;11192:3;11185:37;11110:118;;:::o;11234:222::-;11327:4;11365:2;11354:9;11350:18;11342:26;;11378:71;11446:1;11435:9;11431:17;11422:6;11378:71;:::i;:::-;11234:222;;;;:::o;11462:1057::-;11566:6;11574;11582;11590;11598;11606;11655:3;11643:9;11634:7;11630:23;11626:33;11623:120;;;11662:79;;:::i;:::-;11623:120;11782:1;11807:53;11852:7;11843:6;11832:9;11828:22;11807:53;:::i;:::-;11797:63;;11753:117;11909:2;11935:53;11980:7;11971:6;11960:9;11956:22;11935:53;:::i;:::-;11925:63;;11880:118;12037:2;12063:53;12108:7;12099:6;12088:9;12084:22;12063:53;:::i;:::-;12053:63;;12008:118;12165:2;12191:53;12236:7;12227:6;12216:9;12212:22;12191:53;:::i;:::-;12181:63;;12136:118;12293:3;12320:53;12365:7;12356:6;12345:9;12341:22;12320:53;:::i;:::-;12310:63;;12264:119;12422:3;12449:53;12494:7;12485:6;12474:9;12470:22;12449:53;:::i;:::-;12439:63;;12393:119;11462:1057;;;;;;;;:::o;12525:619::-;12602:6;12610;12618;12667:2;12655:9;12646:7;12642:23;12638:32;12635:119;;;12673:79;;:::i;:::-;12635:119;12793:1;12818:53;12863:7;12854:6;12843:9;12839:22;12818:53;:::i;:::-;12808:63;;12764:117;12920:2;12946:53;12991:7;12982:6;12971:9;12967:22;12946:53;:::i;:::-;12936:63;;12891:118;13048:2;13074:53;13119:7;13110:6;13099:9;13095:22;13074:53;:::i;:::-;13064:63;;13019:118;12525:619;;;;;:::o;13150:474::-;13218:6;13226;13275:2;13263:9;13254:7;13250:23;13246:32;13243:119;;;13281:79;;:::i;:::-;13243:119;13401:1;13426:53;13471:7;13462:6;13451:9;13447:22;13426:53;:::i;:::-;13416:63;;13372:117;13528:2;13554:53;13599:7;13590:6;13579:9;13575:22;13554:53;:::i;:::-;13544:63;;13499:118;13150:474;;;;;:::o;13630:60::-;13658:3;13679:5;13672:12;;13630:60;;;:::o;13696:142::-;13746:9;13779:53;13797:34;13806:24;13824:5;13806:24;:::i;:::-;13797:34;:::i;:::-;13779:53;:::i;:::-;13766:66;;13696:142;;;:::o;13844:126::-;13894:9;13927:37;13958:5;13927:37;:::i;:::-;13914:50;;13844:126;;;:::o;13976:144::-;14044:9;14077:37;14108:5;14077:37;:::i;:::-;14064:50;;13976:144;;;:::o;14126:167::-;14231:55;14280:5;14231:55;:::i;:::-;14226:3;14219:68;14126:167;;:::o;14299:258::-;14410:4;14448:2;14437:9;14433:18;14425:26;;14461:89;14547:1;14536:9;14532:17;14523:6;14461:89;:::i;:::-;14299:258;;;;:::o;14563:182::-;14703:34;14699:1;14691:6;14687:14;14680:58;14563:182;:::o;14751:366::-;14893:3;14914:67;14978:2;14973:3;14914:67;:::i;:::-;14907:74;;14990:93;15079:3;14990:93;:::i;:::-;15108:2;15103:3;15099:12;15092:19;;14751:366;;;:::o;15123:419::-;15289:4;15327:2;15316:9;15312:18;15304:26;;15376:9;15370:4;15366:20;15362:1;15351:9;15347:17;15340:47;15404:131;15530:4;15404:131;:::i;:::-;15396:139;;15123:419;;;:::o;15548:180::-;15596:77;15593:1;15586:88;15693:4;15690:1;15683:15;15717:4;15714:1;15707:15;15734:180;15782:77;15779:1;15772:88;15879:4;15876:1;15869:15;15903:4;15900:1;15893:15;15920:233;15959:3;15982:24;16000:5;15982:24;:::i;:::-;15973:33;;16028:66;16021:5;16018:77;16015:103;;16098:18;;:::i;:::-;16015:103;16145:1;16138:5;16134:13;16127:20;;15920:233;;;:::o;16159:180::-;16207:77;16204:1;16197:88;16304:4;16301:1;16294:15;16328:4;16325:1;16318:15;16345:185;16385:1;16402:20;16420:1;16402:20;:::i;:::-;16397:25;;16436:20;16454:1;16436:20;:::i;:::-;16431:25;;16475:1;16465:35;;16480:18;;:::i;:::-;16465:35;16522:1;16519;16515:9;16510:14;;16345:185;;;;:::o;16536:410::-;16576:7;16599:20;16617:1;16599:20;:::i;:::-;16594:25;;16633:20;16651:1;16633:20;:::i;:::-;16628:25;;16688:1;16685;16681:9;16710:30;16728:11;16710:30;:::i;:::-;16699:41;;16889:1;16880:7;16876:15;16873:1;16870:22;16850:1;16843:9;16823:83;16800:139;;16919:18;;:::i;:::-;16800:139;16584:362;16536:410;;;;:::o;16952:143::-;17009:5;17040:6;17034:13;17025:22;;17056:33;17083:5;17056:33;:::i;:::-;16952:143;;;;:::o;17101:351::-;17171:6;17220:2;17208:9;17199:7;17195:23;17191:32;17188:119;;;17226:79;;:::i;:::-;17188:119;17346:1;17371:64;17427:7;17418:6;17407:9;17403:22;17371:64;:::i;:::-;17361:74;;17317:128;17101:351;;;;:::o;17458:332::-;17579:4;17617:2;17606:9;17602:18;17594:26;;17630:71;17698:1;17687:9;17683:17;17674:6;17630:71;:::i;:::-;17711:72;17779:2;17768:9;17764:18;17755:6;17711:72;:::i;:::-;17458:332;;;;;:::o;17796:137::-;17850:5;17881:6;17875:13;17866:22;;17897:30;17921:5;17897:30;:::i;:::-;17796:137;;;;:::o;17939:345::-;18006:6;18055:2;18043:9;18034:7;18030:23;18026:32;18023:119;;;18061:79;;:::i;:::-;18023:119;18181:1;18206:61;18259:7;18250:6;18239:9;18235:22;18206:61;:::i;:::-;18196:71;;18152:125;17939:345;;;;:::o;18290:179::-;18430:31;18426:1;18418:6;18414:14;18407:55;18290:179;:::o;18475:366::-;18617:3;18638:67;18702:2;18697:3;18638:67;:::i;:::-;18631:74;;18714:93;18803:3;18714:93;:::i;:::-;18832:2;18827:3;18823:12;18816:19;;18475:366;;;:::o;18847:419::-;19013:4;19051:2;19040:9;19036:18;19028:26;;19100:9;19094:4;19090:20;19086:1;19075:9;19071:17;19064:47;19128:131;19254:4;19128:131;:::i;:::-;19120:139;;18847:419;;;:::o;19272:225::-;19412:34;19408:1;19400:6;19396:14;19389:58;19481:8;19476:2;19468:6;19464:15;19457:33;19272:225;:::o;19503:366::-;19645:3;19666:67;19730:2;19725:3;19666:67;:::i;:::-;19659:74;;19742:93;19831:3;19742:93;:::i;:::-;19860:2;19855:3;19851:12;19844:19;;19503:366;;;:::o;19875:419::-;20041:4;20079:2;20068:9;20064:18;20056:26;;20128:9;20122:4;20118:20;20114:1;20103:9;20099:17;20092:47;20156:131;20282:4;20156:131;:::i;:::-;20148:139;;19875:419;;;:::o;20300:220::-;20440:34;20436:1;20428:6;20424:14;20417:58;20509:3;20504:2;20496:6;20492:15;20485:28;20300:220;:::o;20526:366::-;20668:3;20689:67;20753:2;20748:3;20689:67;:::i;:::-;20682:74;;20765:93;20854:3;20765:93;:::i;:::-;20883:2;20878:3;20874:12;20867:19;;20526:366;;;:::o;20898:419::-;21064:4;21102:2;21091:9;21087:18;21079:26;;21151:9;21145:4;21141:20;21137:1;21126:9;21122:17;21115:47;21179:131;21305:4;21179:131;:::i;:::-;21171:139;;20898:419;;;:::o;21323:194::-;21363:4;21383:20;21401:1;21383:20;:::i;:::-;21378:25;;21417:20;21435:1;21417:20;:::i;:::-;21412:25;;21461:1;21458;21454:9;21446:17;;21485:1;21479:4;21476:11;21473:37;;;21490:18;;:::i;:::-;21473:37;21323:194;;;;:::o;21523:163::-;21663:15;21659:1;21651:6;21647:14;21640:39;21523:163;:::o;21692:366::-;21834:3;21855:67;21919:2;21914:3;21855:67;:::i;:::-;21848:74;;21931:93;22020:3;21931:93;:::i;:::-;22049:2;22044:3;22040:12;22033:19;;21692:366;;;:::o;22064:419::-;22230:4;22268:2;22257:9;22253:18;22245:26;;22317:9;22311:4;22307:20;22303:1;22292:9;22288:17;22281:47;22345:131;22471:4;22345:131;:::i;:::-;22337:139;;22064:419;;;:::o;22489:170::-;22629:22;22625:1;22617:6;22613:14;22606:46;22489:170;:::o;22665:366::-;22807:3;22828:67;22892:2;22887:3;22828:67;:::i;:::-;22821:74;;22904:93;22993:3;22904:93;:::i;:::-;23022:2;23017:3;23013:12;23006:19;;22665:366;;;:::o;23037:419::-;23203:4;23241:2;23230:9;23226:18;23218:26;;23290:9;23284:4;23280:20;23276:1;23265:9;23261:17;23254:47;23318:131;23444:4;23318:131;:::i;:::-;23310:139;;23037:419;;;:::o;23462:191::-;23502:3;23521:20;23539:1;23521:20;:::i;:::-;23516:25;;23555:20;23573:1;23555:20;:::i;:::-;23550:25;;23598:1;23595;23591:9;23584:16;;23619:3;23616:1;23613:10;23610:36;;;23626:18;;:::i;:::-;23610:36;23462:191;;;;:::o;23659:249::-;23799:34;23795:1;23787:6;23783:14;23776:58;23868:32;23863:2;23855:6;23851:15;23844:57;23659:249;:::o;23914:366::-;24056:3;24077:67;24141:2;24136:3;24077:67;:::i;:::-;24070:74;;24153:93;24242:3;24153:93;:::i;:::-;24271:2;24266:3;24262:12;24255:19;;23914:366;;;:::o;24286:419::-;24452:4;24490:2;24479:9;24475:18;24467:26;;24539:9;24533:4;24529:20;24525:1;24514:9;24510:17;24503:47;24567:131;24693:4;24567:131;:::i;:::-;24559:139;;24286:419;;;:::o;24711:177::-;24851:29;24847:1;24839:6;24835:14;24828:53;24711:177;:::o;24894:366::-;25036:3;25057:67;25121:2;25116:3;25057:67;:::i;:::-;25050:74;;25133:93;25222:3;25133:93;:::i;:::-;25251:2;25246:3;25242:12;25235:19;;24894:366;;;:::o;25266:419::-;25432:4;25470:2;25459:9;25455:18;25447:26;;25519:9;25513:4;25509:20;25505:1;25494:9;25490:17;25483:47;25547:131;25673:4;25547:131;:::i;:::-;25539:139;;25266:419;;;:::o;25691:85::-;25736:7;25765:5;25754:16;;25691:85;;;:::o;25782:158::-;25840:9;25873:61;25891:42;25900:32;25926:5;25900:32;:::i;:::-;25891:42;:::i;:::-;25873:61;:::i;:::-;25860:74;;25782:158;;;:::o;25946:147::-;26041:45;26080:5;26041:45;:::i;:::-;26036:3;26029:58;25946:147;;:::o;26099:114::-;26166:6;26200:5;26194:12;26184:22;;26099:114;;;:::o;26219:184::-;26318:11;26352:6;26347:3;26340:19;26392:4;26387:3;26383:14;26368:29;;26219:184;;;;:::o;26409:132::-;26476:4;26499:3;26491:11;;26529:4;26524:3;26520:14;26512:22;;26409:132;;;:::o;26547:108::-;26624:24;26642:5;26624:24;:::i;:::-;26619:3;26612:37;26547:108;;:::o;26661:179::-;26730:10;26751:46;26793:3;26785:6;26751:46;:::i;:::-;26829:4;26824:3;26820:14;26806:28;;26661:179;;;;:::o;26846:113::-;26916:4;26948;26943:3;26939:14;26931:22;;26846:113;;;:::o;26995:732::-;27114:3;27143:54;27191:5;27143:54;:::i;:::-;27213:86;27292:6;27287:3;27213:86;:::i;:::-;27206:93;;27323:56;27373:5;27323:56;:::i;:::-;27402:7;27433:1;27418:284;27443:6;27440:1;27437:13;27418:284;;;27519:6;27513:13;27546:63;27605:3;27590:13;27546:63;:::i;:::-;27539:70;;27632:60;27685:6;27632:60;:::i;:::-;27622:70;;27478:224;27465:1;27462;27458:9;27453:14;;27418:284;;;27422:14;27718:3;27711:10;;27119:608;;;26995:732;;;;:::o;27733:831::-;27996:4;28034:3;28023:9;28019:19;28011:27;;28048:71;28116:1;28105:9;28101:17;28092:6;28048:71;:::i;:::-;28129:80;28205:2;28194:9;28190:18;28181:6;28129:80;:::i;:::-;28256:9;28250:4;28246:20;28241:2;28230:9;28226:18;28219:48;28284:108;28387:4;28378:6;28284:108;:::i;:::-;28276:116;;28402:72;28470:2;28459:9;28455:18;28446:6;28402:72;:::i;:::-;28484:73;28552:3;28541:9;28537:19;28528:6;28484:73;:::i;:::-;27733:831;;;;;;;;:::o;28570:147::-;28671:11;28708:3;28693:18;;28570:147;;;;:::o;28723:114::-;;:::o;28843:398::-;29002:3;29023:83;29104:1;29099:3;29023:83;:::i;:::-;29016:90;;29115:93;29204:3;29115:93;:::i;:::-;29233:1;29228:3;29224:11;29217:18;;28843:398;;;:::o;29247:379::-;29431:3;29453:147;29596:3;29453:147;:::i;:::-;29446:154;;29617:3;29610:10;;29247:379;;;:::o;29632:807::-;29881:4;29919:3;29908:9;29904:19;29896:27;;29933:71;30001:1;29990:9;29986:17;29977:6;29933:71;:::i;:::-;30014:72;30082:2;30071:9;30067:18;30058:6;30014:72;:::i;:::-;30096:80;30172:2;30161:9;30157:18;30148:6;30096:80;:::i;:::-;30186;30262:2;30251:9;30247:18;30238:6;30186:80;:::i;:::-;30276:73;30344:3;30333:9;30329:19;30320:6;30276:73;:::i;:::-;30359;30427:3;30416:9;30412:19;30403:6;30359:73;:::i;:::-;29632:807;;;;;;;;;:::o;30445:663::-;30533:6;30541;30549;30598:2;30586:9;30577:7;30573:23;30569:32;30566:119;;;30604:79;;:::i;:::-;30566:119;30724:1;30749:64;30805:7;30796:6;30785:9;30781:22;30749:64;:::i;:::-;30739:74;;30695:128;30862:2;30888:64;30944:7;30935:6;30924:9;30920:22;30888:64;:::i;:::-;30878:74;;30833:129;31001:2;31027:64;31083:7;31074:6;31063:9;31059:22;31027:64;:::i;:::-;31017:74;;30972:129;30445:663;;;;;:::o;31114:332::-;31235:4;31273:2;31262:9;31258:18;31250:26;;31286:71;31354:1;31343:9;31339:17;31330:6;31286:71;:::i;:::-;31367:72;31435:2;31424:9;31420:18;31411:6;31367:72;:::i;:::-;31114:332;;;;;:::o;31452:167::-;31592:19;31588:1;31580:6;31576:14;31569:43;31452:167;:::o;31625:366::-;31767:3;31788:67;31852:2;31847:3;31788:67;:::i;:::-;31781:74;;31864:93;31953:3;31864:93;:::i;:::-;31982:2;31977:3;31973:12;31966:19;;31625:366;;;:::o;31997:419::-;32163:4;32201:2;32190:9;32186:18;32178:26;;32250:9;32244:4;32240:20;32236:1;32225:9;32221:17;32214:47;32278:131;32404:4;32278:131;:::i;:::-;32270:139;;31997:419;;;:::o
Swarm Source
ipfs://40b0898a9e9a3295e6fc75f37ccbea15c7887f3f1fc0d27b6878e258faf0a240
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.