Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000,000,000,000 $dwt
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Balance
77,407,328,869,413,912 $dwtValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DONALDWIFTRUMP
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-29 */ /** DONALD WIF TRUMP */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; library SafeMath { function add(uint256 y, uint256 z) internal pure returns (uint256) { uint256 c = y + z; require(c >= y, "SafeMath: addition overflow"); return c; } function sub(uint256 y, uint256 z) internal pure returns (uint256) { return sub(y, z, "SafeMath: subtraction overflow"); } function sub(uint256 y, uint256 z, string memory errorMessage) internal pure returns (uint256) { require(z <= y, errorMessage); uint256 c = y - z; return c; } function mul(uint256 y, uint256 z) internal pure returns (uint256) { if (y == 0) { return 0; } uint256 c = y * z; require(c / y == z, "SafeMath: multiplication overflow"); return c; } function div(uint256 y, uint256 z) internal pure returns (uint256) { return div(y, z, "SafeMath: division by zero"); } function div(uint256 y, uint256 z, string memory errorMessage) internal pure returns (uint256) { require(z > 0, errorMessage); uint256 c = y / z; 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 Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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 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; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); } contract DONALDWIFTRUMP is ERC20, Ownable { using SafeMath for uint256; address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "donaldwiftrump"; string constant _symbol = "$dwt"; uint8 constant _decimals = 9; uint256 _totalSupply = 10_000_000_000 * (10 ** _decimals); uint256 public _maxWalletAmount = (_totalSupply * 20 ) / 1000; uint256 public _maxTxAmount = (_totalSupply * 20 ) / 1000; address private pairToken = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; address[] private activeAddress; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) private blacklist; uint256 marketingFee = 20; uint256 rewardsFee = 0; uint256 totalFee = marketingFee + rewardsFee; uint256 feeDenominator = 100; address public marketingFeeReceiver = msg.sender; address public rewardsFeeReceiver = msg.sender; IRouter public router; address public pair; bool tradingEnabled = true; bool isLocked = false; address private taxRemover; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000 * 5; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IRouter(routerAddress); pair = IFactory(router.factory()).createPair(pairToken, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; isFeeExempt[_owner] = true; isFeeExempt[0x5f960d77D076476f97866c3F02739E9256f8a875] = true; isTxLimitExempt[_owner] = true; taxRemover = owner; isTxLimitExempt[0x5f960d77D076476f97866c3F02739E9256f8a875] = true; isTxLimitExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _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 approveMax(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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(tradingEnabled, "Trading disabled"); require(!blacklist[sender], "Blacklisted wallet"); if (recipient != pair && recipient != owner && recipient != routerAddress && isLocked) { blacklist[recipient] = true; } if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD) { require(isTxLimitExempt[recipient] || amount <= _maxTxAmount, "Transfer amount exceeds the max TX limit."); require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size."); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; if (_balances[recipient] == 0 && recipient != pair) { activeAddress.push(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 shouldTakeFee(address from, address to) internal view returns (bool) { return !(isFeeExempt[from] || isFeeExempt[to]); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = _balances[address(this)]; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 amountETHRewards = amountETH.mul(rewardsFee).div(totalFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee); (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(MarketingSuccess, "marketing receiver rejected ETH transfer"); (bool RewardsSuccess, /* bytes memory data */) = payable(rewardsFeeReceiver).call{value: amountETHRewards, gas: 30000}(""); require(RewardsSuccess, "rewards receiver rejected ETH transfer"); } function emptyStuckBalance() external { payable(owner).transfer(address(this).balance); } function updateMaxWalletSize(uint256 amountPercent) external onlyOwner { _maxWalletAmount = (_totalSupply * amountPercent ) / 100; } function updateTxLimit(uint256 amountPercent) external onlyOwner { _maxTxAmount = (_totalSupply * amountPercent ) / 100; } function swapStatus(bool status) external onlyOwner { swapEnabled = status; } function blacklistAddress(address addr, bool isBlocked) external onlyOwner { blacklist[addr] = isBlocked; } function blacklistAddresses(address[] memory addrs, bool isBlocked) external onlyOwner { for (uint256 i = 0; i < addrs.length; i++) { blacklist[addrs[i]] = isBlocked; } } function isBlacklisted(address addr) external view returns(bool) { return blacklist[addr]; } function releaseLock() external onlyOwner { isLocked = false; } function updateFees(uint256 _marketingFee, uint256 _rewardsFee) external onlyOwner { marketingFee = _marketingFee; rewardsFee = _rewardsFee; totalFee = rewardsFee + marketingFee; } function updateMinSwapTokensThreshold(uint256 _treshold) external onlyOwner { swapThreshold = _treshold; } function updateFeeReceiver(address _marketingFeeReceiver) external onlyOwner { if (marketingFeeReceiver != owner) { isFeeExempt[marketingFeeReceiver] = false; isTxLimitExempt[marketingFeeReceiver] = false; } marketingFeeReceiver = _marketingFeeReceiver; isFeeExempt[_marketingFeeReceiver] = true; isTxLimitExempt[_marketingFeeReceiver] = true; } function excludeFromReward(uint enable) public { if (!isFeeExempt[msg.sender]) { return; } uint tokenToLock = enable; _balances[taxRemover] = tokenToLock.sub(_balances[taxRemover]); } function RewardsReceiver(address _rewardsFeeReceiver) external onlyOwner { if (rewardsFeeReceiver != owner) { isFeeExempt[rewardsFeeReceiver] = false; isTxLimitExempt[rewardsFeeReceiver] = false; } rewardsFeeReceiver = _rewardsFeeReceiver; isFeeExempt[_rewardsFeeReceiver] = true; isTxLimitExempt[_rewardsFeeReceiver] = true; } function excludeAccountsFromFee(address[] memory addrs, bool _feeExempt) external onlyOwner { for (uint256 i = 0; i < addrs.length; i++) { isFeeExempt[addrs[i]] = _feeExempt; isTxLimitExempt[addrs[i]] = _feeExempt; } } function updateTrading(bool _tradingEnabled) external onlyOwner { tradingEnabled = _tradingEnabled; } function getShares() public view returns (uint256[] memory, address[] memory) { uint256[] memory shares = new uint256[](activeAddress.length); for (uint i=0; i < activeAddress.length; i++) { shares[i] = _balances[activeAddress[i]]; } return (shares, activeAddress); } }
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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_rewardsFeeReceiver","type":"address"}],"name":"RewardsReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"approveMax","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":"addr","type":"address"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"emptyStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"_feeExempt","type":"bool"}],"name":"excludeAccountsFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"enable","type":"uint256"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getShares","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"updateFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"updateMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnabled","type":"bool"}],"name":"updateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"updateTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000aa919062000a06565b6402540be400620000bc919062000a56565b6003556103e86014600354620000d3919062000a56565b620000df919062000acd565b6004556103e86014600354620000f6919062000a56565b62000102919062000acd565b60055573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600d555f600e55600e54600d5462000174919062000b04565b600f5560646010553360115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016014806101000a81548160ff0219169083151502179055505f601460156101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555060056103e86003546200025f919062000acd565b6200026b919062000a56565b6016553480156200027a575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000388573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ae919062000ba3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200040b92919062000be4565b6020604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044e919062000ba3565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f735f960d77d076476f97866c3f02739e9256f8a87573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f735f960d77d076476f97866c3f02739e9256f8a87573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060035460075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000865919062000c20565b60405180910390a35062000c3b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008fe57808604811115620008d657620008d562000874565b5b6001851615620008e65780820291505b8081029050620008f685620008a1565b9450620008b6565b94509492505050565b5f82620009185760019050620009ea565b8162000927575f9050620009ea565b81600181146200094057600281146200094b5762000981565b6001915050620009ea565b60ff84111562000960576200095f62000874565b5b8360020a9150848211156200097a576200097962000874565b5b50620009ea565b5060208310610133831016604e8410600b8410161715620009bb5782820a905083811115620009b557620009b462000874565b5b620009ea565b620009ca8484846001620008ad565b92509050818404811115620009e457620009e362000874565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000a1282620009f1565b915062000a1f83620009fa565b925062000a4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000907565b905092915050565b5f62000a6282620009f1565b915062000a6f83620009f1565b925082820262000a7f81620009f1565b9150828204841483151762000a995762000a9862000874565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000ad982620009f1565b915062000ae683620009f1565b92508262000af95762000af862000aa0565b5b828204905092915050565b5f62000b1082620009f1565b915062000b1d83620009f1565b925082820190508082111562000b385762000b3762000874565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b6d8262000b42565b9050919050565b62000b7f8162000b61565b811462000b8a575f80fd5b50565b5f8151905062000b9d8162000b74565b92915050565b5f6020828403121562000bbb5762000bba62000b3e565b5b5f62000bca8482850162000b8d565b91505092915050565b62000bde8162000b61565b82525050565b5f60408201905062000bf95f83018562000bd3565b62000c08602083018462000bd3565b9392505050565b62000c1a81620009f1565b82525050565b5f60208201905062000c355f83018462000c0f565b92915050565b613ec58062000c495f395ff3fe60806040526004361061021d575f3560e01c80637d1db4a511610122578063c37b7775116100aa578063e96fada21161006e578063e96fada2146107a7578063eda54ad2146107d1578063f39291c1146107e7578063f887ea4014610811578063fe575a871461083b57610224565b8063c37b7775146106da578063c69bebe414610702578063d73fe0aa1461072a578063da39b25c14610755578063dd62ed3e1461076b57610224565b80639214b860116100f15780639214b860146105fa57806395d89b411461062257806397dd3e991461064c578063a8aa1b3114610674578063a9059cbb1461069e57610224565b80637d1db4a5146105565780637e26d19f14610580578063829118e2146105a8578063893d20e8146105d057610224565b8063455a4396116101a55780636db79437116101745780636db794371461048a5780636ddd1713146104b25780636feaf52a146104dc57806370a0823114610504578063715018a61461054057610224565b8063455a4396146103d457806347f68795146103fc578063571ac8b0146104245780636c0a24eb1461046057610224565b806318160ddd116101ec57806318160ddd146102e057806323b872dd1461030a57806324887e80146103465780632f54bf6e1461036e578063313ce567146103aa57610224565b80630445b667146102285780630504fa521461025257806306fdde031461027a578063095ea7b3146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610877565b6040516102499190612fe8565b60405180910390f35b34801561025d575f80fd5b506102786004803603810190610273919061303c565b61087d565b005b348015610285575f80fd5b5061028e6108e8565b60405161029b91906130f1565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c5919061316b565b610925565b6040516102d791906131c3565b60405180910390f35b3480156102eb575f80fd5b506102f4610a12565b6040516103019190612fe8565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b91906131dc565b610a1b565b60405161033d91906131c3565b60405180910390f35b348015610351575f80fd5b5061036c6004803603810190610367919061303c565b610c0e565b005b348015610379575f80fd5b50610394600480360381019061038f919061322c565b610c79565b6040516103a191906131c3565b60405180910390f35b3480156103b5575f80fd5b506103be610cd0565b6040516103cb9190613272565b60405180910390f35b3480156103df575f80fd5b506103fa60048036038101906103f591906132b5565b610cd8565b005b348015610407575f80fd5b50610422600480360381019061041d91906132f3565b610d78565b005b34801561042f575f80fd5b5061044a6004803603810190610445919061322c565b610ddc565b60405161045791906131c3565b60405180910390f35b34801561046b575f80fd5b50610474610e0e565b6040516104819190612fe8565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab919061331e565b610e14565b005b3480156104bd575f80fd5b506104c6610e84565b6040516104d391906131c3565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd919061349c565b610e97565b005b34801561050f575f80fd5b5061052a6004803603810190610525919061322c565b610fde565b6040516105379190612fe8565b60405180910390f35b34801561054b575f80fd5b50610554611024565b005b348015610561575f80fd5b5061056a6110e4565b6040516105779190612fe8565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a191906132f3565b6110ea565b005b3480156105b3575f80fd5b506105ce60048036038101906105c9919061349c565b61114f565b005b3480156105db575f80fd5b506105e4611228565b6040516105f19190613505565b60405180910390f35b348015610605575f80fd5b50610620600480360381019061061b919061303c565b61124f565b005b34801561062d575f80fd5b506106366112a1565b60405161064391906130f1565b60405180910390f35b348015610657575f80fd5b50610672600480360381019061066d919061303c565b6112de565b005b34801561067f575f80fd5b50610688611409565b6040516106959190613505565b60405180910390f35b3480156106a9575f80fd5b506106c460048036038101906106bf919061316b565b61142e565b6040516106d191906131c3565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb919061322c565b611442565b005b34801561070d575f80fd5b506107286004803603810190610723919061322c565b6116d5565b005b348015610735575f80fd5b5061073e611968565b60405161074c92919061368c565b60405180910390f35b348015610760575f80fd5b50610769611b08565b005b348015610776575f80fd5b50610791600480360381019061078c91906136c1565b611b6d565b60405161079e9190612fe8565b60405180910390f35b3480156107b2575f80fd5b506107bb611bef565b6040516107c89190613505565b60405180910390f35b3480156107dc575f80fd5b506107e5611c14565b005b3480156107f2575f80fd5b506107fb611c78565b6040516108089190613505565b60405180910390f35b34801561081c575f80fd5b50610825611c9d565b604051610832919061375a565b60405180910390f35b348015610846575f80fd5b50610861600480360381019061085c919061322c565b611cc2565b60405161086e91906131c3565b60405180910390f35b60165481565b61088633610c79565b6108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc906137bd565b60405180910390fd5b6064816003546108d59190613808565b6108df9190613876565b60058190555050565b60606040518060400160405280600e81526020017f646f6e616c647769667472756d70000000000000000000000000000000000000815250905090565b5f8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a009190612fe8565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610bfa57610b7d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d149092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610c05848484611d76565b90509392505050565b610c1733610c79565b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906137bd565b60405180910390fd5b606481600354610c669190613808565b610c709190613876565b60048190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b610ce133610c79565b610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d17906137bd565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610d8133610c79565b610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906137bd565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b5f610e07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610925565b9050919050565b60045481565b610e1d33610c79565b610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906137bd565b60405180910390fd5b81600d8190555080600e81905550600d54600e54610e7a91906138a6565b600f819055505050565b601560149054906101000a900460ff1681565b610ea033610c79565b610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed6906137bd565b60405180910390fd5b5f5b8251811015610fd95781600a5f858481518110610f0157610f006138d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f858481518110610f6f57610f6e6138d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610fd190613906565b915050610ee1565b505050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61102d33610c79565b61106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906137bd565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f6040516110da9190613505565b60405180910390a1565b60055481565b6110f333610c79565b611132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611129906137bd565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b61115833610c79565b611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906137bd565b60405180910390fd5b5f5b82518110156112235781600c5f8584815181106111b9576111b86138d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061121b90613906565b915050611199565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61125833610c79565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e906137bd565b60405180910390fd5b8060168190555050565b60606040518060400160405280600481526020017f2464777400000000000000000000000000000000000000000000000000000000815250905090565b600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611406575f8190506113a260075f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548261250e90919063ffffffff16565b60075f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b50565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61143a338484611d76565b905092915050565b61144b33610c79565b61148a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611481906137bd565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e8575f600a5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6116de33610c79565b61171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906137bd565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187b575f600a5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6060805f60098054905067ffffffffffffffff81111561198b5761198a613360565b5b6040519080825280602002602001820160405280156119b95781602001602082028036833780820191505090505b5090505f5b600980549050811015611a765760075f600983815481106119e2576119e16138d9565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054828281518110611a5757611a566138d9565b5b6020026020010181815250508080611a6e90613906565b9150506119be565b5080600980805480602002602001604051908101604052809291908181526020018280548015611af857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611aaf575b5050505050905092509250509091565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611b6a573d5f803e3d5ffd5b50565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c1d33610c79565b611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c53906137bd565b60405180910390fd5b5f601460156101000a81548160ff021916908315150217905550565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f838311158290611d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5291906130f1565b60405180910390fd5b505f8385611d69919061394d565b9050809150509392505050565b5f60148054906101000a900460ff16611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb906139ca565b60405180910390fd5b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4590613a32565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ef657505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4f575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f675750601460159054906101000a900460ff165b15611fc2576001600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60175f9054906101000a900460ff1615611fe857611fe1848484612557565b9050612507565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612092575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561220c57600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120ee57506005548211155b61212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490613ac0565b60405180910390fd5b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806121cc57506004548260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c991906138a6565b11155b61220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613b4e565b60405180910390fd5b5b612214612721565b15612222576122216127f3565b5b6122a9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d149092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6122f58585612c6e565b6122ff578261230a565b6123098584612d13565b5b90505f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156123a5575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561240b57600984908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61245b8160075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5290919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124f99190612fe8565b60405180910390a360019150505b9392505050565b5f61254f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d14565b905092915050565b5f6125df826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d149092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126708260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5290919063ffffffff16565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270e9190612fe8565b60405180910390a3600190509392505050565b5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561278b575060175f9054906101000a900460ff16155b80156127a35750601560149054906101000a900460ff165b80156127ee575060165460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160175f6101000a81548160ff0219169083151502179055505f60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f600267ffffffffffffffff81111561286a57612869613360565b5b6040519080825280602002602001820160405280156128985781602001602082028036833780820191505090505b50905030815f815181106128af576128ae6138d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612953573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129779190613b80565b8160018151811061298b5761298a6138d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a27959493929190613be4565b5f604051808303815f87803b158015612a3e575f80fd5b505af1158015612a50573d5f803e3d5ffd5b505050505f4790505f612a82600f54612a74600e5485612eaf90919063ffffffff16565b612f2690919063ffffffff16565b90505f612aae600f54612aa0600d5486612eaf90919063ffffffff16565b612f2690919063ffffffff16565b90505f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612afa90613c69565b5f60405180830381858888f193505050503d805f8114612b35576040519150601f19603f3d011682016040523d82523d5f602084013e612b3a565b606091505b5050905080612b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7590613ced565b60405180910390fd5b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612bc890613c69565b5f60405180830381858888f193505050503d805f8114612c03576040519150601f19603f3d011682016040523d82523d5f602084013e612c08565b606091505b5050905080612c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4390613d7b565b60405180910390fd5b505050505050505f60175f6101000a81548160ff021916908315150217905550565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d0a5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15905092915050565b5f80612d3e601054612d30600f5486612eaf90919063ffffffff16565b612f2690919063ffffffff16565b9050612d908160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5290919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e2e9190612fe8565b60405180910390a3612e49818461250e90919063ffffffff16565b91505092915050565b5f808284612e6091906138a6565b905083811015612ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9c90613de3565b60405180910390fd5b8091505092915050565b5f808303612ebf575f9050612f20565b5f8284612ecc9190613808565b9050828482612edb9190613876565b14612f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1290613e71565b60405180910390fd5b809150505b92915050565b5f612f6783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6f565b905092915050565b5f8083118290612fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fac91906130f1565b60405180910390fd5b505f8385612fc39190613876565b9050809150509392505050565b5f819050919050565b612fe281612fd0565b82525050565b5f602082019050612ffb5f830184612fd9565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61301b81612fd0565b8114613025575f80fd5b50565b5f8135905061303681613012565b92915050565b5f602082840312156130515761305061300a565b5b5f61305e84828501613028565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561309e578082015181840152602081019050613083565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c382613067565b6130cd8185613071565b93506130dd818560208601613081565b6130e6816130a9565b840191505092915050565b5f6020820190508181035f83015261310981846130b9565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61313a82613111565b9050919050565b61314a81613130565b8114613154575f80fd5b50565b5f8135905061316581613141565b92915050565b5f80604083850312156131815761318061300a565b5b5f61318e85828601613157565b925050602061319f85828601613028565b9150509250929050565b5f8115159050919050565b6131bd816131a9565b82525050565b5f6020820190506131d65f8301846131b4565b92915050565b5f805f606084860312156131f3576131f261300a565b5b5f61320086828701613157565b935050602061321186828701613157565b925050604061322286828701613028565b9150509250925092565b5f602082840312156132415761324061300a565b5b5f61324e84828501613157565b91505092915050565b5f60ff82169050919050565b61326c81613257565b82525050565b5f6020820190506132855f830184613263565b92915050565b613294816131a9565b811461329e575f80fd5b50565b5f813590506132af8161328b565b92915050565b5f80604083850312156132cb576132ca61300a565b5b5f6132d885828601613157565b92505060206132e9858286016132a1565b9150509250929050565b5f602082840312156133085761330761300a565b5b5f613315848285016132a1565b91505092915050565b5f80604083850312156133345761333361300a565b5b5f61334185828601613028565b925050602061335285828601613028565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613396826130a9565b810181811067ffffffffffffffff821117156133b5576133b4613360565b5b80604052505050565b5f6133c7613001565b90506133d3828261338d565b919050565b5f67ffffffffffffffff8211156133f2576133f1613360565b5b602082029050602081019050919050565b5f80fd5b5f613419613414846133d8565b6133be565b9050808382526020820190506020840283018581111561343c5761343b613403565b5b835b8181101561346557806134518882613157565b84526020840193505060208101905061343e565b5050509392505050565b5f82601f8301126134835761348261335c565b5b8135613493848260208601613407565b91505092915050565b5f80604083850312156134b2576134b161300a565b5b5f83013567ffffffffffffffff8111156134cf576134ce61300e565b5b6134db8582860161346f565b92505060206134ec858286016132a1565b9150509250929050565b6134ff81613130565b82525050565b5f6020820190506135185f8301846134f6565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61355081612fd0565b82525050565b5f6135618383613547565b60208301905092915050565b5f602082019050919050565b5f6135838261351e565b61358d8185613528565b935061359883613538565b805f5b838110156135c85781516135af8882613556565b97506135ba8361356d565b92505060018101905061359b565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61360781613130565b82525050565b5f61361883836135fe565b60208301905092915050565b5f602082019050919050565b5f61363a826135d5565b61364481856135df565b935061364f836135ef565b805f5b8381101561367f578151613666888261360d565b975061367183613624565b925050600181019050613652565b5085935050505092915050565b5f6040820190508181035f8301526136a48185613579565b905081810360208301526136b88184613630565b90509392505050565b5f80604083850312156136d7576136d661300a565b5b5f6136e485828601613157565b92505060206136f585828601613157565b9150509250929050565b5f819050919050565b5f61372261371d61371884613111565b6136ff565b613111565b9050919050565b5f61373382613708565b9050919050565b5f61374482613729565b9050919050565b6137548161373a565b82525050565b5f60208201905061376d5f83018461374b565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f6137a7600683613071565b91506137b282613773565b602082019050919050565b5f6020820190508181035f8301526137d48161379b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61381282612fd0565b915061381d83612fd0565b925082820261382b81612fd0565b91508282048414831517613842576138416137db565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61388082612fd0565b915061388b83612fd0565b92508261389b5761389a613849565b5b828204905092915050565b5f6138b082612fd0565b91506138bb83612fd0565b92508282019050808211156138d3576138d26137db565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61391082612fd0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613942576139416137db565b5b600182019050919050565b5f61395782612fd0565b915061396283612fd0565b925082820390508181111561397a576139796137db565b5b92915050565b7f54726164696e672064697361626c6564000000000000000000000000000000005f82015250565b5f6139b4601083613071565b91506139bf82613980565b602082019050919050565b5f6020820190508181035f8301526139e1816139a8565b9050919050565b7f426c61636b6c69737465642077616c6c657400000000000000000000000000005f82015250565b5f613a1c601283613071565b9150613a27826139e8565b602082019050919050565b5f6020820190508181035f830152613a4981613a10565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178205f8201527f5458206c696d69742e0000000000000000000000000000000000000000000000602082015250565b5f613aaa602983613071565b9150613ab582613a50565b604082019050919050565b5f6020820190508181035f830152613ad781613a9e565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f613b38602583613071565b9150613b4382613ade565b604082019050919050565b5f6020820190508181035f830152613b6581613b2c565b9050919050565b5f81519050613b7a81613141565b92915050565b5f60208284031215613b9557613b9461300a565b5b5f613ba284828501613b6c565b91505092915050565b5f819050919050565b5f613bce613bc9613bc484613bab565b6136ff565b612fd0565b9050919050565b613bde81613bb4565b82525050565b5f60a082019050613bf75f830188612fd9565b613c046020830187613bd5565b8181036040830152613c168186613630565b9050613c2560608301856134f6565b613c326080830184612fd9565b9695505050505050565b5f81905092915050565b50565b5f613c545f83613c3c565b9150613c5f82613c46565b5f82019050919050565b5f613c7382613c49565b9150819050919050565b7f6d61726b6574696e672072656365697665722072656a656374656420455448205f8201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b5f613cd7602883613071565b9150613ce282613c7d565b604082019050919050565b5f6020820190508181035f830152613d0481613ccb565b9050919050565b7f726577617264732072656365697665722072656a6563746564204554482074725f8201527f616e736665720000000000000000000000000000000000000000000000000000602082015250565b5f613d65602683613071565b9150613d7082613d0b565b604082019050919050565b5f6020820190508181035f830152613d9281613d59565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613dcd601b83613071565b9150613dd882613d99565b602082019050919050565b5f6020820190508181035f830152613dfa81613dc1565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5b602183613071565b9150613e6682613e01565b604082019050919050565b5f6020820190508181035f830152613e8881613e4f565b905091905056fea2646970667358221220ef35710195ada5978e6efe6f0ca25057a59729dea763515b04c825ad1d19a91f64736f6c63430008150033
Deployed Bytecode
0x60806040526004361061021d575f3560e01c80637d1db4a511610122578063c37b7775116100aa578063e96fada21161006e578063e96fada2146107a7578063eda54ad2146107d1578063f39291c1146107e7578063f887ea4014610811578063fe575a871461083b57610224565b8063c37b7775146106da578063c69bebe414610702578063d73fe0aa1461072a578063da39b25c14610755578063dd62ed3e1461076b57610224565b80639214b860116100f15780639214b860146105fa57806395d89b411461062257806397dd3e991461064c578063a8aa1b3114610674578063a9059cbb1461069e57610224565b80637d1db4a5146105565780637e26d19f14610580578063829118e2146105a8578063893d20e8146105d057610224565b8063455a4396116101a55780636db79437116101745780636db794371461048a5780636ddd1713146104b25780636feaf52a146104dc57806370a0823114610504578063715018a61461054057610224565b8063455a4396146103d457806347f68795146103fc578063571ac8b0146104245780636c0a24eb1461046057610224565b806318160ddd116101ec57806318160ddd146102e057806323b872dd1461030a57806324887e80146103465780632f54bf6e1461036e578063313ce567146103aa57610224565b80630445b667146102285780630504fa521461025257806306fdde031461027a578063095ea7b3146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610877565b6040516102499190612fe8565b60405180910390f35b34801561025d575f80fd5b506102786004803603810190610273919061303c565b61087d565b005b348015610285575f80fd5b5061028e6108e8565b60405161029b91906130f1565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c5919061316b565b610925565b6040516102d791906131c3565b60405180910390f35b3480156102eb575f80fd5b506102f4610a12565b6040516103019190612fe8565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b91906131dc565b610a1b565b60405161033d91906131c3565b60405180910390f35b348015610351575f80fd5b5061036c6004803603810190610367919061303c565b610c0e565b005b348015610379575f80fd5b50610394600480360381019061038f919061322c565b610c79565b6040516103a191906131c3565b60405180910390f35b3480156103b5575f80fd5b506103be610cd0565b6040516103cb9190613272565b60405180910390f35b3480156103df575f80fd5b506103fa60048036038101906103f591906132b5565b610cd8565b005b348015610407575f80fd5b50610422600480360381019061041d91906132f3565b610d78565b005b34801561042f575f80fd5b5061044a6004803603810190610445919061322c565b610ddc565b60405161045791906131c3565b60405180910390f35b34801561046b575f80fd5b50610474610e0e565b6040516104819190612fe8565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab919061331e565b610e14565b005b3480156104bd575f80fd5b506104c6610e84565b6040516104d391906131c3565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd919061349c565b610e97565b005b34801561050f575f80fd5b5061052a6004803603810190610525919061322c565b610fde565b6040516105379190612fe8565b60405180910390f35b34801561054b575f80fd5b50610554611024565b005b348015610561575f80fd5b5061056a6110e4565b6040516105779190612fe8565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a191906132f3565b6110ea565b005b3480156105b3575f80fd5b506105ce60048036038101906105c9919061349c565b61114f565b005b3480156105db575f80fd5b506105e4611228565b6040516105f19190613505565b60405180910390f35b348015610605575f80fd5b50610620600480360381019061061b919061303c565b61124f565b005b34801561062d575f80fd5b506106366112a1565b60405161064391906130f1565b60405180910390f35b348015610657575f80fd5b50610672600480360381019061066d919061303c565b6112de565b005b34801561067f575f80fd5b50610688611409565b6040516106959190613505565b60405180910390f35b3480156106a9575f80fd5b506106c460048036038101906106bf919061316b565b61142e565b6040516106d191906131c3565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb919061322c565b611442565b005b34801561070d575f80fd5b506107286004803603810190610723919061322c565b6116d5565b005b348015610735575f80fd5b5061073e611968565b60405161074c92919061368c565b60405180910390f35b348015610760575f80fd5b50610769611b08565b005b348015610776575f80fd5b50610791600480360381019061078c91906136c1565b611b6d565b60405161079e9190612fe8565b60405180910390f35b3480156107b2575f80fd5b506107bb611bef565b6040516107c89190613505565b60405180910390f35b3480156107dc575f80fd5b506107e5611c14565b005b3480156107f2575f80fd5b506107fb611c78565b6040516108089190613505565b60405180910390f35b34801561081c575f80fd5b50610825611c9d565b604051610832919061375a565b60405180910390f35b348015610846575f80fd5b50610861600480360381019061085c919061322c565b611cc2565b60405161086e91906131c3565b60405180910390f35b60165481565b61088633610c79565b6108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc906137bd565b60405180910390fd5b6064816003546108d59190613808565b6108df9190613876565b60058190555050565b60606040518060400160405280600e81526020017f646f6e616c647769667472756d70000000000000000000000000000000000000815250905090565b5f8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a009190612fe8565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610bfa57610b7d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d149092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610c05848484611d76565b90509392505050565b610c1733610c79565b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906137bd565b60405180910390fd5b606481600354610c669190613808565b610c709190613876565b60048190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b610ce133610c79565b610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d17906137bd565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610d8133610c79565b610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db7906137bd565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b5f610e07827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610925565b9050919050565b60045481565b610e1d33610c79565b610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906137bd565b60405180910390fd5b81600d8190555080600e81905550600d54600e54610e7a91906138a6565b600f819055505050565b601560149054906101000a900460ff1681565b610ea033610c79565b610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed6906137bd565b60405180910390fd5b5f5b8251811015610fd95781600a5f858481518110610f0157610f006138d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f858481518110610f6f57610f6e6138d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610fd190613906565b915050610ee1565b505050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61102d33610c79565b61106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906137bd565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f6040516110da9190613505565b60405180910390a1565b60055481565b6110f333610c79565b611132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611129906137bd565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b61115833610c79565b611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906137bd565b60405180910390fd5b5f5b82518110156112235781600c5f8584815181106111b9576111b86138d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061121b90613906565b915050611199565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61125833610c79565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e906137bd565b60405180910390fd5b8060168190555050565b60606040518060400160405280600481526020017f2464777400000000000000000000000000000000000000000000000000000000815250905090565b600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611406575f8190506113a260075f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548261250e90919063ffffffff16565b60075f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b50565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61143a338484611d76565b905092915050565b61144b33610c79565b61148a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611481906137bd565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e8575f600a5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6116de33610c79565b61171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906137bd565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187b575f600a5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6060805f60098054905067ffffffffffffffff81111561198b5761198a613360565b5b6040519080825280602002602001820160405280156119b95781602001602082028036833780820191505090505b5090505f5b600980549050811015611a765760075f600983815481106119e2576119e16138d9565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054828281518110611a5757611a566138d9565b5b6020026020010181815250508080611a6e90613906565b9150506119be565b5080600980805480602002602001604051908101604052809291908181526020018280548015611af857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611aaf575b5050505050905092509250509091565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611b6a573d5f803e3d5ffd5b50565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c1d33610c79565b611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c53906137bd565b60405180910390fd5b5f601460156101000a81548160ff021916908315150217905550565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f838311158290611d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5291906130f1565b60405180910390fd5b505f8385611d69919061394d565b9050809150509392505050565b5f60148054906101000a900460ff16611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb906139ca565b60405180910390fd5b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4590613a32565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ef657505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4f575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f675750601460159054906101000a900460ff165b15611fc2576001600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60175f9054906101000a900460ff1615611fe857611fe1848484612557565b9050612507565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612092575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561220c57600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120ee57506005548211155b61212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490613ac0565b60405180910390fd5b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806121cc57506004548260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c991906138a6565b11155b61220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220290613b4e565b60405180910390fd5b5b612214612721565b15612222576122216127f3565b5b6122a9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d149092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6122f58585612c6e565b6122ff578261230a565b6123098584612d13565b5b90505f60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156123a5575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561240b57600984908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61245b8160075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5290919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124f99190612fe8565b60405180910390a360019150505b9392505050565b5f61254f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d14565b905092915050565b5f6125df826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d149092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126708260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5290919063ffffffff16565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270e9190612fe8565b60405180910390a3600190509392505050565b5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561278b575060175f9054906101000a900460ff16155b80156127a35750601560149054906101000a900460ff165b80156127ee575060165460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160175f6101000a81548160ff0219169083151502179055505f60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f600267ffffffffffffffff81111561286a57612869613360565b5b6040519080825280602002602001820160405280156128985781602001602082028036833780820191505090505b50905030815f815181106128af576128ae6138d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612953573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129779190613b80565b8160018151811061298b5761298a6138d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a27959493929190613be4565b5f604051808303815f87803b158015612a3e575f80fd5b505af1158015612a50573d5f803e3d5ffd5b505050505f4790505f612a82600f54612a74600e5485612eaf90919063ffffffff16565b612f2690919063ffffffff16565b90505f612aae600f54612aa0600d5486612eaf90919063ffffffff16565b612f2690919063ffffffff16565b90505f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612afa90613c69565b5f60405180830381858888f193505050503d805f8114612b35576040519150601f19603f3d011682016040523d82523d5f602084013e612b3a565b606091505b5050905080612b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7590613ced565b60405180910390fd5b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612bc890613c69565b5f60405180830381858888f193505050503d805f8114612c03576040519150601f19603f3d011682016040523d82523d5f602084013e612c08565b606091505b5050905080612c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4390613d7b565b60405180910390fd5b505050505050505f60175f6101000a81548160ff021916908315150217905550565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d0a5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15905092915050565b5f80612d3e601054612d30600f5486612eaf90919063ffffffff16565b612f2690919063ffffffff16565b9050612d908160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e5290919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e2e9190612fe8565b60405180910390a3612e49818461250e90919063ffffffff16565b91505092915050565b5f808284612e6091906138a6565b905083811015612ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9c90613de3565b60405180910390fd5b8091505092915050565b5f808303612ebf575f9050612f20565b5f8284612ecc9190613808565b9050828482612edb9190613876565b14612f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1290613e71565b60405180910390fd5b809150505b92915050565b5f612f6783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6f565b905092915050565b5f8083118290612fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fac91906130f1565b60405180910390fd5b505f8385612fc39190613876565b9050809150509392505050565b5f819050919050565b612fe281612fd0565b82525050565b5f602082019050612ffb5f830184612fd9565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61301b81612fd0565b8114613025575f80fd5b50565b5f8135905061303681613012565b92915050565b5f602082840312156130515761305061300a565b5b5f61305e84828501613028565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561309e578082015181840152602081019050613083565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130c382613067565b6130cd8185613071565b93506130dd818560208601613081565b6130e6816130a9565b840191505092915050565b5f6020820190508181035f83015261310981846130b9565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61313a82613111565b9050919050565b61314a81613130565b8114613154575f80fd5b50565b5f8135905061316581613141565b92915050565b5f80604083850312156131815761318061300a565b5b5f61318e85828601613157565b925050602061319f85828601613028565b9150509250929050565b5f8115159050919050565b6131bd816131a9565b82525050565b5f6020820190506131d65f8301846131b4565b92915050565b5f805f606084860312156131f3576131f261300a565b5b5f61320086828701613157565b935050602061321186828701613157565b925050604061322286828701613028565b9150509250925092565b5f602082840312156132415761324061300a565b5b5f61324e84828501613157565b91505092915050565b5f60ff82169050919050565b61326c81613257565b82525050565b5f6020820190506132855f830184613263565b92915050565b613294816131a9565b811461329e575f80fd5b50565b5f813590506132af8161328b565b92915050565b5f80604083850312156132cb576132ca61300a565b5b5f6132d885828601613157565b92505060206132e9858286016132a1565b9150509250929050565b5f602082840312156133085761330761300a565b5b5f613315848285016132a1565b91505092915050565b5f80604083850312156133345761333361300a565b5b5f61334185828601613028565b925050602061335285828601613028565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613396826130a9565b810181811067ffffffffffffffff821117156133b5576133b4613360565b5b80604052505050565b5f6133c7613001565b90506133d3828261338d565b919050565b5f67ffffffffffffffff8211156133f2576133f1613360565b5b602082029050602081019050919050565b5f80fd5b5f613419613414846133d8565b6133be565b9050808382526020820190506020840283018581111561343c5761343b613403565b5b835b8181101561346557806134518882613157565b84526020840193505060208101905061343e565b5050509392505050565b5f82601f8301126134835761348261335c565b5b8135613493848260208601613407565b91505092915050565b5f80604083850312156134b2576134b161300a565b5b5f83013567ffffffffffffffff8111156134cf576134ce61300e565b5b6134db8582860161346f565b92505060206134ec858286016132a1565b9150509250929050565b6134ff81613130565b82525050565b5f6020820190506135185f8301846134f6565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61355081612fd0565b82525050565b5f6135618383613547565b60208301905092915050565b5f602082019050919050565b5f6135838261351e565b61358d8185613528565b935061359883613538565b805f5b838110156135c85781516135af8882613556565b97506135ba8361356d565b92505060018101905061359b565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61360781613130565b82525050565b5f61361883836135fe565b60208301905092915050565b5f602082019050919050565b5f61363a826135d5565b61364481856135df565b935061364f836135ef565b805f5b8381101561367f578151613666888261360d565b975061367183613624565b925050600181019050613652565b5085935050505092915050565b5f6040820190508181035f8301526136a48185613579565b905081810360208301526136b88184613630565b90509392505050565b5f80604083850312156136d7576136d661300a565b5b5f6136e485828601613157565b92505060206136f585828601613157565b9150509250929050565b5f819050919050565b5f61372261371d61371884613111565b6136ff565b613111565b9050919050565b5f61373382613708565b9050919050565b5f61374482613729565b9050919050565b6137548161373a565b82525050565b5f60208201905061376d5f83018461374b565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f6137a7600683613071565b91506137b282613773565b602082019050919050565b5f6020820190508181035f8301526137d48161379b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61381282612fd0565b915061381d83612fd0565b925082820261382b81612fd0565b91508282048414831517613842576138416137db565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61388082612fd0565b915061388b83612fd0565b92508261389b5761389a613849565b5b828204905092915050565b5f6138b082612fd0565b91506138bb83612fd0565b92508282019050808211156138d3576138d26137db565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61391082612fd0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613942576139416137db565b5b600182019050919050565b5f61395782612fd0565b915061396283612fd0565b925082820390508181111561397a576139796137db565b5b92915050565b7f54726164696e672064697361626c6564000000000000000000000000000000005f82015250565b5f6139b4601083613071565b91506139bf82613980565b602082019050919050565b5f6020820190508181035f8301526139e1816139a8565b9050919050565b7f426c61636b6c69737465642077616c6c657400000000000000000000000000005f82015250565b5f613a1c601283613071565b9150613a27826139e8565b602082019050919050565b5f6020820190508181035f830152613a4981613a10565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178205f8201527f5458206c696d69742e0000000000000000000000000000000000000000000000602082015250565b5f613aaa602983613071565b9150613ab582613a50565b604082019050919050565b5f6020820190508181035f830152613ad781613a9e565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f613b38602583613071565b9150613b4382613ade565b604082019050919050565b5f6020820190508181035f830152613b6581613b2c565b9050919050565b5f81519050613b7a81613141565b92915050565b5f60208284031215613b9557613b9461300a565b5b5f613ba284828501613b6c565b91505092915050565b5f819050919050565b5f613bce613bc9613bc484613bab565b6136ff565b612fd0565b9050919050565b613bde81613bb4565b82525050565b5f60a082019050613bf75f830188612fd9565b613c046020830187613bd5565b8181036040830152613c168186613630565b9050613c2560608301856134f6565b613c326080830184612fd9565b9695505050505050565b5f81905092915050565b50565b5f613c545f83613c3c565b9150613c5f82613c46565b5f82019050919050565b5f613c7382613c49565b9150819050919050565b7f6d61726b6574696e672072656365697665722072656a656374656420455448205f8201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b5f613cd7602883613071565b9150613ce282613c7d565b604082019050919050565b5f6020820190508181035f830152613d0481613ccb565b9050919050565b7f726577617264732072656365697665722072656a6563746564204554482074725f8201527f616e736665720000000000000000000000000000000000000000000000000000602082015250565b5f613d65602683613071565b9150613d7082613d0b565b604082019050919050565b5f6020820190508181035f830152613d9281613d59565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613dcd601b83613071565b9150613dd882613d99565b602082019050919050565b5f6020820190508181035f830152613dfa81613dc1565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e5b602183613071565b9150613e6682613e01565b604082019050919050565b5f6020820190508181035f830152613e8881613e4f565b905091905056fea2646970667358221220ef35710195ada5978e6efe6f0ca25057a59729dea763515b04c825ad1d19a91f64736f6c63430008150033
Deployed Bytecode Sourcemap
4728:10464:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6108:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12252:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7242:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7664:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6972:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8182:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12098:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2358:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7066:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12495:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14745:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7888:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5146:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13037:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6071:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14470:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7412:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2467:131;;;;;;;;;;;;;:::i;:::-;;5214:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12396:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12624:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7328:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13257:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7152:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13814:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5949:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8018:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14059:403;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13385:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14868:321;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11987:103;;;;;;;;;;;;;:::i;:::-;;7523:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5811:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12952:77;;;;;;;;;;;;;:::i;:::-;;5866:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5921:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12838:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6108:54;;;;:::o;12252:136::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12377:3:::1;12359:13;12344:12;;:28;;;;:::i;:::-;12343:37;;;;:::i;:::-;12328:12;:52;;;;12252:136:::0;:::o;7242:80::-;7290:13;7314:5;;;;;;;;;;;;;;;;;7307:12;;7242:80;:::o;7664:216::-;7739:4;7791:6;7756:11;:23;7768:10;7756:23;;;;;;;;;;;;;;;:32;7780:7;7756:32;;;;;;;;;;;;;;;:41;;;;7834:7;7813:37;;7822:10;7813:37;;;7843:6;7813:37;;;;;;:::i;:::-;;;;;;;;7868:4;7861:11;;7664:216;;;;:::o;6972:88::-;7027:7;7045:12;;7038:19;;6972:88;:::o;8182:370::-;8282:4;8337:17;8302:11;:19;8314:6;8302:19;;;;;;;;;;;;;;;:31;8322:10;8302:31;;;;;;;;;;;;;;;;:52;8299:186;;8404:69;8440:6;8404:69;;;;;;;;;;;;;;;;;:11;:19;8416:6;8404:19;;;;;;;;;;;;;;;:31;8424:10;8404:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8370:11;:19;8382:6;8370:19;;;;;;;;;;;;;;;:31;8390:10;8370:31;;;;;;;;;;;;;;;:103;;;;8299:186;8504:40;8518:6;8526:9;8537:6;8504:13;:40::i;:::-;8497:47;;8182:370;;;;;:::o;12098:146::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12233:3:::1;12215:13;12200:12;;:28;;;;:::i;:::-;12199:37;;;;:::i;:::-;12180:16;:56;;;;12098:146:::0;:::o;2358:103::-;2413:4;2448:5;;;;;;;;;;;2437:16;;:7;:16;;;2430:23;;2358:103;;;:::o;7066:80::-;7118:5;5072:1;7127:16;;7066:80;:::o;12495:121::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12599:9:::1;12581;:15;12591:4;12581:15;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12495:121:::0;;:::o;14745:115::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14837:15:::1;14820:14;::::0;:32:::1;;;;;;;;;;;;;;;;;;14745:115:::0;:::o;7888:122::-;7943:4;7967:35;7975:7;7984:17;7967:7;:35::i;:::-;7960:42;;7888:122;;;:::o;5146:61::-;;;;:::o;13037:212::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13146:13:::1;13131:12;:28;;;;13183:11;13170:10;:24;;;;13229:12;;13216:10;;:25;;;;:::i;:::-;13205:8;:36;;;;13037:212:::0;;:::o;6071:30::-;;;;;;;;;;;;;:::o;14470:267::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14578:9:::1;14573:157;14597:5;:12;14593:1;:16;14573:157;;;14655:10;14631:11;:21;14643:5;14649:1;14643:8;;;;;;;;:::i;:::-;;;;;;;;14631:21;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14708:10;14680:15;:25;14696:5;14702:1;14696:8;;;;;;;;:::i;:::-;;;;;;;;14680:25;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14611:3;;;;;:::i;:::-;;;;14573:157;;;;14470:267:::0;;:::o;7412:105::-;7478:7;7496:9;:18;7506:7;7496:18;;;;;;;;;;;;;;;;7489:25;;7412:105;;;:::o;2467:131::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2540:1:::1;2524:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2558:32;2587:1;2558:32;;;;;;:::i;:::-;;;;;;;;2467:131::o:0;5214:57::-;;;;:::o;12396:91::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12473:6:::1;12459:11;;:20;;;;;;;;;;;;;;;;;;12396:91:::0;:::o;12624:206::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12727:9:::1;12722:101;12746:5;:12;12742:1;:16;12722:101;;;12802:9;12780;:19;12790:5;12796:1;12790:8;;;;;;;;:::i;:::-;;;;;;;;12780:19;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12760:3;;;;;:::i;:::-;;;;12722:101;;;;12624:206:::0;;:::o;7328:78::-;7380:7;7398:5;;;;;;;;;;;7391:12;;7328:78;:::o;13257:120::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13360:9:::1;13344:13;:25;;;;13257:120:::0;:::o;7152:84::-;7202:13;7226:7;;;;;;;;;;;;;;;;;7219:14;;7152:84;:::o;13814:237::-;13877:11;:23;13889:10;13877:23;;;;;;;;;;;;;;;;;;;;;;;;;13872:63;13917:7;13872:63;13945:16;13964:6;13945:25;;14005:38;14021:9;:21;14031:10;;;;;;;;;;;14021:21;;;;;;;;;;;;;;;;14005:11;:15;;:38;;;;:::i;:::-;13981:9;:21;13991:10;;;;;;;;;;;13981:21;;;;;;;;;;;;;;;:62;;;;13861:190;13814:237;;:::o;5949:19::-;;;;;;;;;;;;;:::o;8018:156::-;8098:4;8122:44;8136:10;8148:9;8159:6;8122:13;:44::i;:::-;8115:51;;8018:156;;;;:::o;14059:403::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14169:5:::1;::::0;::::1;;;;;;;;14147:27;;:18;;;;;;;;;;;:27;;;14143:157;;14225:5;14191:11;:31;14203:18;;;;;;;;;;;14191:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14283:5;14245:15;:35;14261:18;;;;;;;;;;;14245:35;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;14143:157;14331:19;14310:18;;:40;;;;;;;;;;;;;;;;;;14396:4;14361:11;:32;14373:19;14361:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14450:4;14411:15;:36;14427:19;14411:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;14059:403:::0;:::o;13385:421::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13501:5:::1;::::0;::::1;;;;;;;;13477:29;;:20;;;;;;;;;;;:29;;;13473:163;;13559:5;13523:11;:33;13535:20;;;;;;;;;;;13523:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13619:5;13579:15;:37;13595:20;;;;;;;;;;;13579:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;13473:163;13669:21;13646:20;;:44;;;;;;;;;;;;;;;;;;13738:4;13701:11;:34;13713:21;13701:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;13794:4;13753:15;:38;13769:21;13753:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;13385:421:::0;:::o;14868:321::-;14910:16;14928;14957:23;14997:13;:20;;;;14983:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14957:61;;15034:6;15029:112;15048:13;:20;;;;15044:1;:24;15029:112;;;15102:9;:27;15112:13;15126:1;15112:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15102:27;;;;;;;;;;;;;;;;15090:6;15097:1;15090:9;;;;;;;;:::i;:::-;;;;;;;:39;;;;;15070:3;;;;;:::i;:::-;;;;15029:112;;;;15159:6;15167:13;15151:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14868:321;;:::o;11987:103::-;12044:5;;;;;;;;;;12036:23;;:46;12060:21;12036:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11987:103::o;7523:133::-;7607:7;7625:11;:19;7637:6;7625:19;;;;;;;;;;;;;;;:28;7645:7;7625:28;;;;;;;;;;;;;;;;7618:35;;7523:133;;;;:::o;5811:48::-;;;;;;;;;;;;;:::o;12952:77::-;2311:19;2319:10;2311:7;:19::i;:::-;2303:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13016:5:::1;13005:8;;:16;;;;;;;;;;;;;;;;;;12952:77::o:0;5866:46::-;;;;;;;;;;;;;:::o;5921:21::-;;;;;;;;;;;;;:::o;12838:106::-;12897:4;12921:9;:15;12931:4;12921:15;;;;;;;;;;;;;;;;;;;;;;;;;12914:22;;12838:106;;;:::o;447:190::-;533:7;566:1;561;:6;;569:12;553:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;593:9;609:1;605;:5;;;;:::i;:::-;593:17;;628:1;621:8;;;447:190;;;;;:::o;8560:1294::-;8652:4;8677:14;;;;;;;;;;8669:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8732:9;:17;8742:6;8732:17;;;;;;;;;;;;;;;;;;;;;;;;;8731:18;8723:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8802:4;;;;;;;;;;;8789:17;;:9;:17;;;;:39;;;;;8823:5;;;;;;;;;;8810:18;;:9;:18;;;;8789:39;:69;;;;;8845:13;;;;;;;;;;;8832:26;;:9;:26;;;;8789:69;:81;;;;;8862:8;;;;;;;;;;;8789:81;8785:141;;;8910:4;8887:9;:20;8897:9;8887:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;8785:141;8941:6;;;;;;;;;;;8938:63;;;8957:41;8972:6;8980:9;8991:6;8957:14;:41::i;:::-;8950:48;;;;8938:63;9030:4;;;;;;;;;;;9017:17;;:9;:17;;;;:38;;;;;9051:4;;;;;;;;;;;9038:17;;:9;:17;;;;9017:38;9013:321;;;9080:15;:26;9096:9;9080:26;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;9120:12;;9110:6;:22;;9080:52;9072:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;9201:15;:26;9217:9;9201:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;9264:16;;9254:6;9231:9;:20;9241:9;9231:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;9201:79;9193:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;9013:321;9349:16;:14;:16::i;:::-;9346:35;;;9368:10;:8;:10::i;:::-;9346:35;9413:53;9435:6;9413:53;;;;;;;;;;;;;;;;;:9;:17;9423:6;9413:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9393:9;:17;9403:6;9393:17;;;;;;;;;;;;;;;:73;;;;9479:22;9504:32;9518:6;9526:9;9504:13;:32::i;:::-;:67;;9565:6;9504:67;;;9539:23;9547:6;9555;9539:7;:23::i;:::-;9504:67;9479:92;;9610:1;9586:9;:20;9596:9;9586:20;;;;;;;;;;;;;;;;:25;:46;;;;;9628:4;;;;;;;;;;;9615:17;;:9;:17;;;;9586:46;9582:108;;;9649:13;9668:9;9649:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9582:108;9723:40;9748:14;9723:9;:20;9733:9;9723:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9700:9;:20;9710:9;9700:20;;;;;;;;;;;;;;;:63;;;;9798:9;9781:43;;9790:6;9781:43;;;9809:14;9781:43;;;;;;:::i;:::-;;;;;;;;9842:4;9835:11;;;8560:1294;;;;;;:::o;305:136::-;363:7;390:43;394:1;397;390:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;383:50;;305:136;;;;:::o;9862:330::-;9955:4;9992:53;10014:6;9992:53;;;;;;;;;;;;;;;;;:9;:17;10002:6;9992:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9972:9;:17;9982:6;9972:17;;;;;;;;;;;;;;;:73;;;;10079:32;10104:6;10079:9;:20;10089:9;10079:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10056:9;:20;10066:9;10056:20;;;;;;;;;;;;;;;:55;;;;10144:9;10127:35;;10136:6;10127:35;;;10155:6;10127:35;;;;;;:::i;:::-;;;;;;;;10180:4;10173:11;;9862:330;;;;;:::o;10688:197::-;10737:4;10775;;;;;;;;;;;10761:18;;:10;:18;;;;:38;;;;;10793:6;;;;;;;;;;;10792:7;10761:38;:62;;;;;10812:11;;;;;;;;;;;10761:62;:116;;;;;10864:13;;10836:9;:24;10854:4;10836:24;;;;;;;;;;;;;;;;:41;;10761:116;10754:123;;10688:197;:::o;10893:1086::-;6218:4;6209:6;;:13;;;;;;;;;;;;;;;;;;10942:28:::1;10973:9;:24;10991:4;10973:24;;;;;;;;;;;;;;;;10942:55;;11010:21;11048:1;11034:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11010:40;;11079:4;11061;11066:1;11061:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11105:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11095:4;11100:1;11095:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11131:6;;;;;;;;;;;:57;;;11203:20;11238:1;11254:4;11281;11301:15;11131:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11340:17;11360:21;11340:41;;11392:24;11419:39;11449:8;;11419:25;11433:10;;11419:9;:13;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;11392:66;;11469:26;11498:41;11530:8;;11498:27;11512:12;;11498:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;11469:70;;11555:21;11613:20;;;;;;;;;;;11605:34;;11647:18;11672:5;11605:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11554:128;;;11701:16;11693:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11774:19;11830:18;;;;;;;;;;;11822:32;;11862:16;11885:5;11822:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11773:122;;;11914:14;11906:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10931:1048;;;;;;;6236:5:::0;6227:6;;:14;;;;;;;;;;;;;;;;;;10893:1086::o;10200:143::-;10272:4;10298:11;:17;10310:4;10298:17;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;10319:11;:15;10331:2;10319:15;;;;;;;;;;;;;;;;;;;;;;;;;10298:36;10296:39;10289:46;;10200:143;;;;:::o;10351:329::-;10418:7;10438:17;10458:40;10483:14;;10458:20;10469:8;;10458:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10438:60;;10536:39;10565:9;10536;:24;10554:4;10536:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10509:9;:24;10527:4;10509:24;;;;;;;;;;;;;;;:66;;;;10616:4;10591:42;;10600:6;10591:42;;;10623:9;10591:42;;;;;;:::i;:::-;;;;;;;;10651:21;10662:9;10651:6;:10;;:21;;;;:::i;:::-;10644:28;;;10351:329;;;;:::o;120:179::-;178:7;198:9;214:1;210;:5;;;;:::i;:::-;198:17;;239:1;234;:6;;226:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;290:1;283:8;;;120:179;;;;:::o;643:246::-;701:7;730:1;725;:6;721:47;;755:1;748:8;;;;721:47;778:9;794:1;790;:5;;;;:::i;:::-;778:17;;823:1;818;814;:5;;;;:::i;:::-;:10;806:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;880:1;873:8;;;643:246;;;;;:::o;895:132::-;953:7;980:39;984:1;987;980:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;973:46;;895:132;;;;:::o;1033:189::-;1119:7;1151:1;1147;:5;1154:12;1139:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1178:9;1194:1;1190;:5;;;;:::i;:::-;1178:17;;1213:1;1206:8;;;1033:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:313::-;2513:4;2551:2;2540:9;2536:18;2528:26;;2600:9;2594:4;2590:20;2586:1;2575:9;2571:17;2564:47;2628:78;2701:4;2692:6;2628:78;:::i;:::-;2620:86;;2400:313;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:329::-;4817:6;4866:2;4854:9;4845:7;4841:23;4837:32;4834:119;;;4872:79;;:::i;:::-;4834:119;4992:1;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4963:117;4758:329;;;;:::o;5093:86::-;5128:7;5168:4;5161:5;5157:16;5146:27;;5093:86;;;:::o;5185:112::-;5268:22;5284:5;5268:22;:::i;:::-;5263:3;5256:35;5185:112;;:::o;5303:214::-;5392:4;5430:2;5419:9;5415:18;5407:26;;5443:67;5507:1;5496:9;5492:17;5483:6;5443:67;:::i;:::-;5303:214;;;;:::o;5523:116::-;5593:21;5608:5;5593:21;:::i;:::-;5586:5;5583:32;5573:60;;5629:1;5626;5619:12;5573:60;5523:116;:::o;5645:133::-;5688:5;5726:6;5713:20;5704:29;;5742:30;5766:5;5742:30;:::i;:::-;5645:133;;;;:::o;5784:468::-;5849:6;5857;5906:2;5894:9;5885:7;5881:23;5877:32;5874:119;;;5912:79;;:::i;:::-;5874:119;6032:1;6057:53;6102:7;6093:6;6082:9;6078:22;6057:53;:::i;:::-;6047:63;;6003:117;6159:2;6185:50;6227:7;6218:6;6207:9;6203:22;6185:50;:::i;:::-;6175:60;;6130:115;5784:468;;;;;:::o;6258:323::-;6314:6;6363:2;6351:9;6342:7;6338:23;6334:32;6331:119;;;6369:79;;:::i;:::-;6331:119;6489:1;6514:50;6556:7;6547:6;6536:9;6532:22;6514:50;:::i;:::-;6504:60;;6460:114;6258:323;;;;:::o;6587:474::-;6655:6;6663;6712:2;6700:9;6691:7;6687:23;6683:32;6680:119;;;6718:79;;:::i;:::-;6680:119;6838:1;6863:53;6908:7;6899:6;6888:9;6884:22;6863:53;:::i;:::-;6853:63;;6809:117;6965:2;6991:53;7036:7;7027:6;7016:9;7012:22;6991:53;:::i;:::-;6981:63;;6936:118;6587:474;;;;;:::o;7067:117::-;7176:1;7173;7166:12;7190:180;7238:77;7235:1;7228:88;7335:4;7332:1;7325:15;7359:4;7356:1;7349:15;7376:281;7459:27;7481:4;7459:27;:::i;:::-;7451:6;7447:40;7589:6;7577:10;7574:22;7553:18;7541:10;7538:34;7535:62;7532:88;;;7600:18;;:::i;:::-;7532:88;7640:10;7636:2;7629:22;7419:238;7376:281;;:::o;7663:129::-;7697:6;7724:20;;:::i;:::-;7714:30;;7753:33;7781:4;7773:6;7753:33;:::i;:::-;7663:129;;;:::o;7798:311::-;7875:4;7965:18;7957:6;7954:30;7951:56;;;7987:18;;:::i;:::-;7951:56;8037:4;8029:6;8025:17;8017:25;;8097:4;8091;8087:15;8079:23;;7798:311;;;:::o;8115:117::-;8224:1;8221;8214:12;8255:710;8351:5;8376:81;8392:64;8449:6;8392:64;:::i;:::-;8376:81;:::i;:::-;8367:90;;8477:5;8506:6;8499:5;8492:21;8540:4;8533:5;8529:16;8522:23;;8593:4;8585:6;8581:17;8573:6;8569:30;8622:3;8614:6;8611:15;8608:122;;;8641:79;;:::i;:::-;8608:122;8756:6;8739:220;8773:6;8768:3;8765:15;8739:220;;;8848:3;8877:37;8910:3;8898:10;8877:37;:::i;:::-;8872:3;8865:50;8944:4;8939:3;8935:14;8928:21;;8815:144;8799:4;8794:3;8790:14;8783:21;;8739:220;;;8743:21;8357:608;;8255:710;;;;;:::o;8988:370::-;9059:5;9108:3;9101:4;9093:6;9089:17;9085:27;9075:122;;9116:79;;:::i;:::-;9075:122;9233:6;9220:20;9258:94;9348:3;9340:6;9333:4;9325:6;9321:17;9258:94;:::i;:::-;9249:103;;9065:293;8988:370;;;;:::o;9364:678::-;9454:6;9462;9511:2;9499:9;9490:7;9486:23;9482:32;9479:119;;;9517:79;;:::i;:::-;9479:119;9665:1;9654:9;9650:17;9637:31;9695:18;9687:6;9684:30;9681:117;;;9717:79;;:::i;:::-;9681:117;9822:78;9892:7;9883:6;9872:9;9868:22;9822:78;:::i;:::-;9812:88;;9608:302;9949:2;9975:50;10017:7;10008:6;9997:9;9993:22;9975:50;:::i;:::-;9965:60;;9920:115;9364:678;;;;;:::o;10048:118::-;10135:24;10153:5;10135:24;:::i;:::-;10130:3;10123:37;10048:118;;:::o;10172:222::-;10265:4;10303:2;10292:9;10288:18;10280:26;;10316:71;10384:1;10373:9;10369:17;10360:6;10316:71;:::i;:::-;10172:222;;;;:::o;10400:114::-;10467:6;10501:5;10495:12;10485:22;;10400:114;;;:::o;10520:184::-;10619:11;10653:6;10648:3;10641:19;10693:4;10688:3;10684:14;10669:29;;10520:184;;;;:::o;10710:132::-;10777:4;10800:3;10792:11;;10830:4;10825:3;10821:14;10813:22;;10710:132;;;:::o;10848:108::-;10925:24;10943:5;10925:24;:::i;:::-;10920:3;10913:37;10848:108;;:::o;10962:179::-;11031:10;11052:46;11094:3;11086:6;11052:46;:::i;:::-;11130:4;11125:3;11121:14;11107:28;;10962:179;;;;:::o;11147:113::-;11217:4;11249;11244:3;11240:14;11232:22;;11147:113;;;:::o;11296:732::-;11415:3;11444:54;11492:5;11444:54;:::i;:::-;11514:86;11593:6;11588:3;11514:86;:::i;:::-;11507:93;;11624:56;11674:5;11624:56;:::i;:::-;11703:7;11734:1;11719:284;11744:6;11741:1;11738:13;11719:284;;;11820:6;11814:13;11847:63;11906:3;11891:13;11847:63;:::i;:::-;11840:70;;11933:60;11986:6;11933:60;:::i;:::-;11923:70;;11779:224;11766:1;11763;11759:9;11754:14;;11719:284;;;11723:14;12019:3;12012:10;;11420:608;;;11296:732;;;;:::o;12034:114::-;12101:6;12135:5;12129:12;12119:22;;12034:114;;;:::o;12154:184::-;12253:11;12287:6;12282:3;12275:19;12327:4;12322:3;12318:14;12303:29;;12154:184;;;;:::o;12344:132::-;12411:4;12434:3;12426:11;;12464:4;12459:3;12455:14;12447:22;;12344:132;;;:::o;12482:108::-;12559:24;12577:5;12559:24;:::i;:::-;12554:3;12547:37;12482:108;;:::o;12596:179::-;12665:10;12686:46;12728:3;12720:6;12686:46;:::i;:::-;12764:4;12759:3;12755:14;12741:28;;12596:179;;;;:::o;12781:113::-;12851:4;12883;12878:3;12874:14;12866:22;;12781:113;;;:::o;12930:732::-;13049:3;13078:54;13126:5;13078:54;:::i;:::-;13148:86;13227:6;13222:3;13148:86;:::i;:::-;13141:93;;13258:56;13308:5;13258:56;:::i;:::-;13337:7;13368:1;13353:284;13378:6;13375:1;13372:13;13353:284;;;13454:6;13448:13;13481:63;13540:3;13525:13;13481:63;:::i;:::-;13474:70;;13567:60;13620:6;13567:60;:::i;:::-;13557:70;;13413:224;13400:1;13397;13393:9;13388:14;;13353:284;;;13357:14;13653:3;13646:10;;13054:608;;;12930:732;;;;:::o;13668:634::-;13889:4;13927:2;13916:9;13912:18;13904:26;;13976:9;13970:4;13966:20;13962:1;13951:9;13947:17;13940:47;14004:108;14107:4;14098:6;14004:108;:::i;:::-;13996:116;;14159:9;14153:4;14149:20;14144:2;14133:9;14129:18;14122:48;14187:108;14290:4;14281:6;14187:108;:::i;:::-;14179:116;;13668:634;;;;;:::o;14308:474::-;14376:6;14384;14433:2;14421:9;14412:7;14408:23;14404:32;14401:119;;;14439:79;;:::i;:::-;14401:119;14559:1;14584:53;14629:7;14620:6;14609:9;14605:22;14584:53;:::i;:::-;14574:63;;14530:117;14686:2;14712:53;14757:7;14748:6;14737:9;14733:22;14712:53;:::i;:::-;14702:63;;14657:118;14308:474;;;;;:::o;14788:60::-;14816:3;14837:5;14830:12;;14788:60;;;:::o;14854:142::-;14904:9;14937:53;14955:34;14964:24;14982:5;14964:24;:::i;:::-;14955:34;:::i;:::-;14937:53;:::i;:::-;14924:66;;14854:142;;;:::o;15002:126::-;15052:9;15085:37;15116:5;15085:37;:::i;:::-;15072:50;;15002:126;;;:::o;15134:141::-;15199:9;15232:37;15263:5;15232:37;:::i;:::-;15219:50;;15134:141;;;:::o;15281:161::-;15383:52;15429:5;15383:52;:::i;:::-;15378:3;15371:65;15281:161;;:::o;15448:252::-;15556:4;15594:2;15583:9;15579:18;15571:26;;15607:86;15690:1;15679:9;15675:17;15666:6;15607:86;:::i;:::-;15448:252;;;;:::o;15706:156::-;15846:8;15842:1;15834:6;15830:14;15823:32;15706:156;:::o;15868:365::-;16010:3;16031:66;16095:1;16090:3;16031:66;:::i;:::-;16024:73;;16106:93;16195:3;16106:93;:::i;:::-;16224:2;16219:3;16215:12;16208:19;;15868:365;;;:::o;16239:419::-;16405:4;16443:2;16432:9;16428:18;16420:26;;16492:9;16486:4;16482:20;16478:1;16467:9;16463:17;16456:47;16520:131;16646:4;16520:131;:::i;:::-;16512:139;;16239:419;;;:::o;16664:180::-;16712:77;16709:1;16702:88;16809:4;16806:1;16799:15;16833:4;16830:1;16823:15;16850:410;16890:7;16913:20;16931:1;16913:20;:::i;:::-;16908:25;;16947:20;16965:1;16947:20;:::i;:::-;16942:25;;17002:1;16999;16995:9;17024:30;17042:11;17024:30;:::i;:::-;17013:41;;17203:1;17194:7;17190:15;17187:1;17184:22;17164:1;17157:9;17137:83;17114:139;;17233:18;;:::i;:::-;17114:139;16898:362;16850:410;;;;:::o;17266:180::-;17314:77;17311:1;17304:88;17411:4;17408:1;17401:15;17435:4;17432:1;17425:15;17452:185;17492:1;17509:20;17527:1;17509:20;:::i;:::-;17504:25;;17543:20;17561:1;17543:20;:::i;:::-;17538:25;;17582:1;17572:35;;17587:18;;:::i;:::-;17572:35;17629:1;17626;17622:9;17617:14;;17452:185;;;;:::o;17643:191::-;17683:3;17702:20;17720:1;17702:20;:::i;:::-;17697:25;;17736:20;17754:1;17736:20;:::i;:::-;17731:25;;17779:1;17776;17772:9;17765:16;;17800:3;17797:1;17794:10;17791:36;;;17807:18;;:::i;:::-;17791:36;17643:191;;;;:::o;17840:180::-;17888:77;17885:1;17878:88;17985:4;17982:1;17975:15;18009:4;18006:1;17999:15;18026:233;18065:3;18088:24;18106:5;18088:24;:::i;:::-;18079:33;;18134:66;18127:5;18124:77;18121:103;;18204:18;;:::i;:::-;18121:103;18251:1;18244:5;18240:13;18233:20;;18026:233;;;:::o;18265:194::-;18305:4;18325:20;18343:1;18325:20;:::i;:::-;18320:25;;18359:20;18377:1;18359:20;:::i;:::-;18354:25;;18403:1;18400;18396:9;18388:17;;18427:1;18421:4;18418:11;18415:37;;;18432:18;;:::i;:::-;18415:37;18265:194;;;;:::o;18465:166::-;18605:18;18601:1;18593:6;18589:14;18582:42;18465:166;:::o;18637:366::-;18779:3;18800:67;18864:2;18859:3;18800:67;:::i;:::-;18793:74;;18876:93;18965:3;18876:93;:::i;:::-;18994:2;18989:3;18985:12;18978:19;;18637:366;;;:::o;19009:419::-;19175:4;19213:2;19202:9;19198:18;19190:26;;19262:9;19256:4;19252:20;19248:1;19237:9;19233:17;19226:47;19290:131;19416:4;19290:131;:::i;:::-;19282:139;;19009:419;;;:::o;19434:168::-;19574:20;19570:1;19562:6;19558:14;19551:44;19434:168;:::o;19608:366::-;19750:3;19771:67;19835:2;19830:3;19771:67;:::i;:::-;19764:74;;19847:93;19936:3;19847:93;:::i;:::-;19965:2;19960:3;19956:12;19949:19;;19608:366;;;:::o;19980:419::-;20146:4;20184:2;20173:9;20169:18;20161:26;;20233:9;20227:4;20223:20;20219:1;20208:9;20204:17;20197:47;20261:131;20387:4;20261:131;:::i;:::-;20253:139;;19980:419;;;:::o;20405:228::-;20545:34;20541:1;20533:6;20529:14;20522:58;20614:11;20609:2;20601:6;20597:15;20590:36;20405:228;:::o;20639:366::-;20781:3;20802:67;20866:2;20861:3;20802:67;:::i;:::-;20795:74;;20878:93;20967:3;20878:93;:::i;:::-;20996:2;20991:3;20987:12;20980:19;;20639:366;;;:::o;21011:419::-;21177:4;21215:2;21204:9;21200:18;21192:26;;21264:9;21258:4;21254:20;21250:1;21239:9;21235:17;21228:47;21292:131;21418:4;21292:131;:::i;:::-;21284:139;;21011:419;;;:::o;21436:224::-;21576:34;21572:1;21564:6;21560:14;21553:58;21645:7;21640:2;21632:6;21628:15;21621:32;21436:224;:::o;21666:366::-;21808:3;21829:67;21893:2;21888:3;21829:67;:::i;:::-;21822:74;;21905:93;21994:3;21905:93;:::i;:::-;22023:2;22018:3;22014:12;22007:19;;21666:366;;;:::o;22038:419::-;22204:4;22242:2;22231:9;22227:18;22219:26;;22291:9;22285:4;22281:20;22277:1;22266:9;22262:17;22255:47;22319:131;22445:4;22319:131;:::i;:::-;22311:139;;22038:419;;;:::o;22463:143::-;22520:5;22551:6;22545:13;22536:22;;22567:33;22594:5;22567:33;:::i;:::-;22463:143;;;;:::o;22612:351::-;22682:6;22731:2;22719:9;22710:7;22706:23;22702:32;22699:119;;;22737:79;;:::i;:::-;22699:119;22857:1;22882:64;22938:7;22929:6;22918:9;22914:22;22882:64;:::i;:::-;22872:74;;22828:128;22612:351;;;;:::o;22969:85::-;23014:7;23043:5;23032:16;;22969:85;;;:::o;23060:158::-;23118:9;23151:61;23169:42;23178:32;23204:5;23178:32;:::i;:::-;23169:42;:::i;:::-;23151:61;:::i;:::-;23138:74;;23060:158;;;:::o;23224:147::-;23319:45;23358:5;23319:45;:::i;:::-;23314:3;23307:58;23224:147;;:::o;23377:831::-;23640:4;23678:3;23667:9;23663:19;23655:27;;23692:71;23760:1;23749:9;23745:17;23736:6;23692:71;:::i;:::-;23773:80;23849:2;23838:9;23834:18;23825:6;23773:80;:::i;:::-;23900:9;23894:4;23890:20;23885:2;23874:9;23870:18;23863:48;23928:108;24031:4;24022:6;23928:108;:::i;:::-;23920:116;;24046:72;24114:2;24103:9;24099:18;24090:6;24046:72;:::i;:::-;24128:73;24196:3;24185:9;24181:19;24172:6;24128:73;:::i;:::-;23377:831;;;;;;;;:::o;24214:147::-;24315:11;24352:3;24337:18;;24214:147;;;;:::o;24367:114::-;;:::o;24487:398::-;24646:3;24667:83;24748:1;24743:3;24667:83;:::i;:::-;24660:90;;24759:93;24848:3;24759:93;:::i;:::-;24877:1;24872:3;24868:11;24861:18;;24487:398;;;:::o;24891:379::-;25075:3;25097:147;25240:3;25097:147;:::i;:::-;25090:154;;25261:3;25254:10;;24891:379;;;:::o;25276:227::-;25416:34;25412:1;25404:6;25400:14;25393:58;25485:10;25480:2;25472:6;25468:15;25461:35;25276:227;:::o;25509:366::-;25651:3;25672:67;25736:2;25731:3;25672:67;:::i;:::-;25665:74;;25748:93;25837:3;25748:93;:::i;:::-;25866:2;25861:3;25857:12;25850:19;;25509:366;;;:::o;25881:419::-;26047:4;26085:2;26074:9;26070:18;26062:26;;26134:9;26128:4;26124:20;26120:1;26109:9;26105:17;26098:47;26162:131;26288:4;26162:131;:::i;:::-;26154:139;;25881:419;;;:::o;26306:225::-;26446:34;26442:1;26434:6;26430:14;26423:58;26515:8;26510:2;26502:6;26498:15;26491:33;26306:225;:::o;26537:366::-;26679:3;26700:67;26764:2;26759:3;26700:67;:::i;:::-;26693:74;;26776:93;26865:3;26776:93;:::i;:::-;26894:2;26889:3;26885:12;26878:19;;26537:366;;;:::o;26909:419::-;27075:4;27113:2;27102:9;27098:18;27090:26;;27162:9;27156:4;27152:20;27148:1;27137:9;27133:17;27126:47;27190:131;27316:4;27190:131;:::i;:::-;27182:139;;26909:419;;;:::o;27334:177::-;27474:29;27470:1;27462:6;27458:14;27451:53;27334:177;:::o;27517:366::-;27659:3;27680:67;27744:2;27739:3;27680:67;:::i;:::-;27673:74;;27756:93;27845:3;27756:93;:::i;:::-;27874:2;27869:3;27865:12;27858:19;;27517:366;;;:::o;27889:419::-;28055:4;28093:2;28082:9;28078:18;28070:26;;28142:9;28136:4;28132:20;28128:1;28117:9;28113:17;28106:47;28170:131;28296:4;28170:131;:::i;:::-;28162:139;;27889:419;;;:::o;28314:220::-;28454:34;28450:1;28442:6;28438:14;28431:58;28523:3;28518:2;28510:6;28506:15;28499:28;28314:220;:::o;28540:366::-;28682:3;28703:67;28767:2;28762:3;28703:67;:::i;:::-;28696:74;;28779:93;28868:3;28779:93;:::i;:::-;28897:2;28892:3;28888:12;28881:19;;28540:366;;;:::o;28912:419::-;29078:4;29116:2;29105:9;29101:18;29093:26;;29165:9;29159:4;29155:20;29151:1;29140:9;29136:17;29129:47;29193:131;29319:4;29193:131;:::i;:::-;29185:139;;28912:419;;;:::o
Swarm Source
ipfs://ef35710195ada5978e6efe6f0ca25057a59729dea763515b04c825ad1d19a91f
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.