More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,181 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Claim Tokens | 20175168 | 6 days ago | IN | 0 ETH | 0.00033248 | ||||
Claim Tokens | 20158344 | 8 days ago | IN | 0 ETH | 0.00015672 | ||||
Claim Tokens | 20152157 | 9 days ago | IN | 0 ETH | 0.00025192 | ||||
Claim Tokens | 20136805 | 11 days ago | IN | 0 ETH | 0.00026792 | ||||
Claim Tokens | 20125348 | 13 days ago | IN | 0 ETH | 0.00041177 | ||||
Claim Tokens | 20109041 | 15 days ago | IN | 0 ETH | 0.00041183 | ||||
Claim Tokens | 20105336 | 16 days ago | IN | 0 ETH | 0.00058006 | ||||
Claim Tokens | 20104903 | 16 days ago | IN | 0 ETH | 0.00037493 | ||||
Claim Tokens | 20104671 | 16 days ago | IN | 0 ETH | 0.00056401 | ||||
Claim Tokens | 20104484 | 16 days ago | IN | 0 ETH | 0.0003825 | ||||
Claim Tokens | 20101807 | 16 days ago | IN | 0 ETH | 0.00023683 | ||||
Claim Tokens | 20100273 | 16 days ago | IN | 0 ETH | 0.00032828 | ||||
Claim Tokens | 20098526 | 16 days ago | IN | 0 ETH | 0.00048817 | ||||
Claim Tokens | 20079324 | 19 days ago | IN | 0 ETH | 0.0007234 | ||||
Claim Tokens | 20078729 | 19 days ago | IN | 0 ETH | 0.00092575 | ||||
Claim Tokens | 20077828 | 19 days ago | IN | 0 ETH | 0.00124008 | ||||
Claim Tokens | 20066396 | 21 days ago | IN | 0 ETH | 0.00063194 | ||||
Claim Tokens | 20063752 | 21 days ago | IN | 0 ETH | 0.00342233 | ||||
Claim Tokens | 20060313 | 22 days ago | IN | 0 ETH | 0.00048707 | ||||
Claim Tokens | 20058784 | 22 days ago | IN | 0 ETH | 0.00033209 | ||||
Claim Tokens | 20055386 | 22 days ago | IN | 0 ETH | 0.00077325 | ||||
Claim Tokens | 20055002 | 23 days ago | IN | 0 ETH | 0.00100599 | ||||
Claim Tokens | 20054351 | 23 days ago | IN | 0 ETH | 0.00064559 | ||||
Claim Tokens | 20053875 | 23 days ago | IN | 0 ETH | 0.00039632 | ||||
Claim Tokens | 20052824 | 23 days ago | IN | 0 ETH | 0.00030496 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
20002142 | 30 days ago | 0.026 ETH | ||||
20002091 | 30 days ago | 0.0053 ETH | ||||
20002065 | 30 days ago | 0.4 ETH | ||||
20002017 | 30 days ago | 0.015 ETH | ||||
20002011 | 30 days ago | 0.06 ETH | ||||
20001837 | 30 days ago | 0.035 ETH | ||||
20001641 | 30 days ago | 0.048 ETH | ||||
20001580 | 30 days ago | 0.067 ETH | ||||
20001229 | 30 days ago | 0.013 ETH | ||||
20001091 | 30 days ago | 0.031 ETH | ||||
20001009 | 30 days ago | 0.006 ETH | ||||
20000978 | 30 days ago | 0.1 ETH | ||||
20000785 | 30 days ago | 0.023 ETH | ||||
20000567 | 30 days ago | 0.9 ETH | ||||
20000544 | 30 days ago | 0.01 ETH | ||||
20000406 | 30 days ago | 0.377 ETH | ||||
20000404 | 30 days ago | 0.027 ETH | ||||
19999982 | 30 days ago | 0.058 ETH | ||||
19999925 | 30 days ago | 0.02 ETH | ||||
19999592 | 30 days ago | 0.25 ETH | ||||
19999579 | 30 days ago | 0.039 ETH | ||||
19999160 | 30 days ago | 0.04 ETH | ||||
19999127 | 30 days ago | 0.0395 ETH | ||||
19999011 | 30 days ago | 0.006 ETH | ||||
19999011 | 30 days ago | 0.0296 ETH |
Loading...
Loading
Contract Name:
Presale
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-24 */ //SPDX-License-Identifier: MIT Licensed pragma solidity ^0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external; function transfer(address to, uint256 value) external; function transferFrom( address from, address to, uint256 value ) external; event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); } interface AggregatorV3Interface { function decimals() external view returns (uint8); function description() external view returns (string memory); function version() external view returns (uint256); function getRoundData(uint80 _roundId) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); } contract Presale is Ownable { IERC20 public mainToken; IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7); AggregatorV3Interface public priceFeed; struct Phase { uint256 endTime; uint256 tokensToSell; uint256 totalSoldTokens; uint256 tokenPerUsdPrice; } mapping(uint256 => Phase) public phases; // Stats uint256 public totalStages; uint256 public currentStage; uint256 public soldToken; uint256 public amountRaised; uint256 public amountRaisedUSDT; uint256 public uniqueBuyers; address payable public fundReceiver; bool public presaleStatus; bool public isPresaleEnded; uint256 public claimStartTime; address[] public UsersAddresses; struct User { uint256 native_balance; uint256 usdt_balance; uint256 token_balance; uint256 claimed_tokens; } uint256[] public tokensToSell = [ 200000000000000, 300000000000000, 700000000000000, 1200000000000000, 1100000000000000, 500000000000000 ]; uint256[] public endTimestamps = [ 1704735960, 1704950500, 1706589347, 1712948400, 1714629600, 1714629600 ]; uint256[] public tokenPerUsdPrice = [ 3333333333, 2500000000, 2222222222, 2000000000, 1818181818, 1666666667 ]; mapping(address => User) public users; mapping(address => bool) public isExist; event BuyToken(address indexed _user, uint256 indexed _amount); event ClaimToken(address indexed _user, uint256 indexed _amount); event UpdatePrice(uint256 _oldPrice, uint256 _newPrice); constructor( IERC20 _token ) { require( tokensToSell.length == endTimestamps.length && endTimestamps.length == tokenPerUsdPrice.length, "tokens and duration length mismatch" ); mainToken = _token; fundReceiver = payable(0xE8EC5F7aF62e5Ad1284749517DC8C168225e2BF3); priceFeed = AggregatorV3Interface( 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 ); for (uint256 i = 0; i < tokensToSell.length; i++) { phases[i].endTime = endTimestamps[i]; phases[i].tokensToSell = tokensToSell[i]; phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i]; } totalStages = tokensToSell.length; currentStage = 4; phases[0].totalSoldTokens = 199409601923892; phases[1].totalSoldTokens = 299987660172650; phases[2].totalSoldTokens = 699987501162338; phases[3].totalSoldTokens = 1199925241352520; phases[4].totalSoldTokens = 136800036005301; phases[5].totalSoldTokens = 21677580537482; } // to get real time price of Eth function getLatestPrice() public view returns (uint256) { (, int256 price, , , ) = priceFeed.latestRoundData(); return uint256(price); } // to buy token during preSale time with Eth => for web3 use function buyToken() public payable { require(!isPresaleEnded, "Presale ended!"); require(presaleStatus, " Presale is Paused, check back later"); if (!isExist[msg.sender]) { isExist[msg.sender] = true; uniqueBuyers++; UsersAddresses.push(msg.sender); } fundReceiver.transfer(msg.value); // Check active phase uint256 activePhase = activePhaseInd(); if (activePhase != currentStage) { currentStage = activePhase; } uint256 numberOfTokens; numberOfTokens = nativeToToken(msg.value, activePhase); require( phases[currentStage].totalSoldTokens + numberOfTokens <= phases[currentStage].tokensToSell, "Phase Limit Reached" ); soldToken = soldToken + (numberOfTokens); amountRaised = amountRaised + (msg.value); users[msg.sender].native_balance = users[msg.sender].native_balance + (msg.value); users[msg.sender].token_balance = users[msg.sender].token_balance + (numberOfTokens); phases[currentStage].totalSoldTokens += numberOfTokens; } // to buy token during preSale time with USDT => for web3 use function buyTokenUSDT(uint256 amount) public { require(!isPresaleEnded, "Presale ended!"); require(presaleStatus, " Presale is Paused, check back later"); if (!isExist[msg.sender]) { isExist[msg.sender] = true; uniqueBuyers++; } USDT.transferFrom(msg.sender, fundReceiver, amount); // Check active phase uint256 activePhase = activePhaseInd(); if (activePhase != currentStage) { currentStage = activePhase; } uint256 numberOfTokens; numberOfTokens = usdtToToken(amount, activePhase); require( phases[currentStage].totalSoldTokens + numberOfTokens <= phases[currentStage].tokensToSell, "Phase Limit Reached" ); soldToken = soldToken + numberOfTokens; amountRaisedUSDT = amountRaisedUSDT + amount; users[msg.sender].usdt_balance += amount; users[msg.sender].token_balance = users[msg.sender].token_balance + numberOfTokens; phases[currentStage].totalSoldTokens += numberOfTokens; } function claimTokens() external { require(isPresaleEnded, "Presale has not ended yet"); require(isExist[msg.sender], "User don't exist"); User storage user = users[msg.sender]; require(user.token_balance > 0, "No tokens purchased"); uint256 claimableTokens = user.token_balance - user.claimed_tokens; require(claimableTokens > 0, "No tokens to claim"); user.claimed_tokens += claimableTokens; mainToken.transfer(msg.sender, claimableTokens); emit ClaimToken(msg.sender, claimableTokens); } function activePhaseInd() public view returns (uint256) { if (block.timestamp < phases[currentStage].endTime) { if ( phases[currentStage].totalSoldTokens < phases[currentStage].tokensToSell ) { return currentStage; } else { return currentStage + 1; } } else { return currentStage + 1; } } function changeClaimAddress(address _oldAddress, address _newWallet) public onlyOwner { require(isExist[_oldAddress], " Old User not a participant"); User storage user = users[_oldAddress]; User storage newUser = users[_newWallet]; newUser.token_balance = user.token_balance; newUser.claimed_tokens = user.claimed_tokens; user.token_balance = 0; user.claimed_tokens = 0; isExist[_oldAddress] = false; isExist[_newWallet] = true; } function getPhaseDetail(uint256 phaseInd) external view returns ( uint256 tokenToSell, uint256 soldTokens, uint256 priceUsd, uint256 duration ) { Phase memory phase = phases[phaseInd]; return ( phase.tokensToSell, phase.totalSoldTokens, phase.tokenPerUsdPrice, phase.endTime ); } function setPresaleStatus(bool _status) external onlyOwner { presaleStatus = _status; } function endPresale() external onlyOwner { isPresaleEnded = true; claimStartTime = block.timestamp; } // to check number of token for given Eth function nativeToToken(uint256 _amount, uint256 phaseId) public view returns (uint256) { uint256 ethToUsd = (_amount * (getLatestPrice())) / (1 ether); uint256 numberOfTokens = (ethToUsd * phases[phaseId].tokenPerUsdPrice) / (1e8); return numberOfTokens; } // to check number of token for given usdt function usdtToToken(uint256 _amount, uint256 phaseId) public view returns (uint256) { uint256 numberOfTokens = (_amount * phases[phaseId].tokenPerUsdPrice) / (1e6); return numberOfTokens; } function updateInfos( uint256 _sold, uint256 _raised, uint256 _raisedInUsdt ) external onlyOwner { soldToken = _sold; amountRaised = _raised; amountRaisedUSDT = _raisedInUsdt; } // change tokens function updateToken(address _token) external onlyOwner { mainToken = IERC20(_token); } function updateEndTime(uint256 _phase, uint256 _time) public onlyOwner { phases[_phase].endTime = _time; } //change tokens for buy function updateStableTokens(IERC20 _USDT) external onlyOwner { USDT = IERC20(_USDT); } // to withdraw funds for liquidity function initiateTransfer(uint256 _value) external onlyOwner { fundReceiver.transfer(_value); } function changeFundReciever(address _addr) external onlyOwner { fundReceiver = payable(_addr); } function updatePriceFeed(AggregatorV3Interface _priceFeed) external onlyOwner { priceFeed = _priceFeed; } // to withdraw out tokens function transferTokens(IERC20 token, uint256 _value) external onlyOwner { token.transfer(msg.sender, _value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BuyToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_oldPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"UpdatePrice","type":"event"},{"inputs":[],"name":"USDT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"UsersAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activePhaseInd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaisedUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oldAddress","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"}],"name":"changeClaimAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"changeFundReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"endTimestamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseInd","type":"uint256"}],"name":"getPhaseDetail","outputs":[{"internalType":"uint256","name":"tokenToSell","type":"uint256"},{"internalType":"uint256","name":"soldTokens","type":"uint256"},{"internalType":"uint256","name":"priceUsd","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"initiateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPresaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"nativeToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phases","outputs":[{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"tokensToSell","type":"uint256"},{"internalType":"uint256","name":"totalSoldTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPerUsdPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenPerUsdPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokensToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniqueBuyers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_phase","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"updateEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sold","type":"uint256"},{"internalType":"uint256","name":"_raised","type":"uint256"},{"internalType":"uint256","name":"_raisedInUsdt","type":"uint256"}],"name":"updateInfos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_USDT","type":"address"}],"name":"updateStableTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"usdtToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"native_balance","type":"uint256"},{"internalType":"uint256","name":"usdt_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"},{"internalType":"uint256","name":"claimed_tokens","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060c0016040528065b5e620f4800066ffffffffffffff168152602001660110d9316ec00066ffffffffffffff16815260200166027ca57357c00066ffffffffffffff16815260200166044364c5bb000066ffffffffffffff1681526020016603e871b540c00066ffffffffffffff1681526020016601c6bf5263400066ffffffffffffff16815250600e906006620000f792919062000624565b506040518060c0016040528063659c34d863ffffffff16815260200163659f7ae463ffffffff1681526020016365b87ca363ffffffff16815260200163661984b063ffffffff1681526020016366332be063ffffffff1681526020016366332be063ffffffff16815250600f9060066200017392919062000681565b506040518060c0016040528063c6aea15563ffffffff168152602001639502f90063ffffffff1681526020016384746b8e63ffffffff168152602001637735940063ffffffff168152602001636c5f40ba63ffffffff16815260200163635750ab63ffffffff168152506010906006620001ef92919062000681565b50348015620001fd57600080fd5b5060405162003b2538038062003b25833981810160405281019062000223919062000778565b62000243620002376200055860201b60201c565b6200056060201b60201c565b600f80549050600e80549050148015620002665750601080549050600f80549050145b620002a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029f9062000831565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e8ec5f7af62e5ad1284749517dc8c168225e2bf3600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b8419600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b600e805490508110156200046e57600f8181548110620003bb57620003ba62000853565b5b90600052602060002001546004600083815260200190815260200160002060000181905550600e8181548110620003f757620003f662000853565b5b906000526020600020015460046000838152602001908152602001600020600101819055506010818154811062000433576200043262000853565b5b9060005260206000200154600460008381526020019081526020016000206003018190555080806200046590620008bb565b91505062000396565b50600e80549050600581905550600460068190555065b55caa7ccb346004600080815260200190815260200160002060020181905550660110d651ebed6a60046000600181526020019081526020016000206002018190555066027ca28a5a9f62600460006002815260200190815260200160002060020181905550660443535dc49148600460006003815260200190815260200160002060020181905550657c6b3d8d25b56004600060048152602001908152602001600020600201819055506513b7347cce8a6004600060058152602001908152602001600020600201819055505062000908565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280548282559060005260206000209081019282156200066e579160200282015b828111156200066d578251829066ffffffffffffff1690559160200191906001019062000645565b5b5090506200067d9190620006db565b5090565b828054828255906000526020600020908101928215620006c8579160200282015b82811115620006c7578251829063ffffffff16905591602001919060010190620006a2565b5b509050620006d79190620006db565b5090565b5b80821115620006f6576000816000905550600101620006dc565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200072c82620006ff565b9050919050565b600062000740826200071f565b9050919050565b620007528162000733565b81146200075e57600080fd5b50565b600081519050620007728162000747565b92915050565b600060208284031215620007915762000790620006fa565b5b6000620007a18482850162000761565b91505092915050565b600082825260208201905092915050565b7f746f6b656e7320616e64206475726174696f6e206c656e677468206d69736d6160008201527f7463680000000000000000000000000000000000000000000000000000000000602082015250565b600062000819602383620007aa565b91506200082682620007bb565b604082019050919050565b600060208201905081810360008301526200084c816200080a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620008c882620008b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620008fd57620008fc62000882565b5b600182019050919050565b61320d80620009186000396000f3fe6080604052600436106102505760003560e01c80638da5cb5b11610139578063bec3fa17116100b6578063e00e06121161007a578063e00e061214610889578063e44542df146108c6578063e9238daf146108ef578063f2fde38b1461092c578063f86a352914610955578063fb4aa0a11461098057610250565b8063bec3fa17146107a4578063c54e44eb146107cd578063c63368be146107f8578063c8fa553b14610821578063cb33365d1461084c57610250565b8063a6a11bb1116100fd578063a6a11bb1146106ba578063a87430ba146106e5578063aa1c3aa514610725578063acfb235514610750578063b5e75e1c1461077b57610250565b80638da5cb5b1461061a5780638e15f4731461064557806395877f7814610670578063a43be57b14610699578063a4821719146106b057610250565b806361a31e00116101d25780637ad3def2116101965780637ad3def2146104f85780637b3e5e7b146105215780637decf27f1461054c57806383ced170146105775780638577d452146105b45780638895283f146105f157610250565b806361a31e0014610425578063654914f81461044e5780636769d1f91461048b578063715018a6146104b6578063741bef1a146104cd57610250565b806348c54b9d1161021957806348c54b9d1461036857806353a29ad21461037f5780635bf5d54c146103a85780635cc8ca46146103d35780635dfd59f6146103fc57610250565b806213eb4b146102555780632d2fbfd4146102925780632e37eef6146102d25780633fc15f1514610312578063405fb9441461033d575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906125a5565b6109ab565b60405161028991906125ed565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061263e565b6109cb565b6040516102c9949392919061267a565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f4919061263e565b610a3f565b604051610309949392919061267a565b60405180910390f35b34801561031e57600080fd5b50610327610a6f565b604051610334919061271e565b60405180910390f35b34801561034957600080fd5b50610352610a95565b60405161035f9190612739565b60405180910390f35b34801561037457600080fd5b5061037d610a9b565b005b34801561038b57600080fd5b506103a660048036038101906103a191906125a5565b610d4d565b005b3480156103b457600080fd5b506103bd610e0d565b6040516103ca9190612739565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612754565b610e13565b005b34801561040857600080fd5b50610423600480360381019061041e91906127a7565b610ea9565b005b34801561043157600080fd5b5061044c6004803603810190610447919061263e565b61111b565b005b34801561045a57600080fd5b506104756004803603810190610470919061263e565b611203565b6040516104829190612739565b60405180910390f35b34801561049757600080fd5b506104a0611227565b6040516104ad9190612739565b60405180910390f35b3480156104c257600080fd5b506104cb61122d565b005b3480156104d957600080fd5b506104e26112b5565b6040516104ef9190612808565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a91906125a5565b6112db565b005b34801561052d57600080fd5b5061053661139b565b6040516105439190612739565b60405180910390f35b34801561055857600080fd5b506105616113a1565b60405161056e91906125ed565b60405180910390f35b34801561058357600080fd5b5061059e6004803603810190610599919061263e565b6113b4565b6040516105ab9190612739565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061263e565b6113d8565b6040516105e89190612739565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061284f565b6113fc565b005b34801561062657600080fd5b5061062f611495565b60405161063c919061288b565b60405180910390f35b34801561065157600080fd5b5061065a6114be565b6040516106679190612739565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906128e4565b61155f565b005b3480156106a557600080fd5b506106ae61161f565b005b6106b86116bf565b005b3480156106c657600080fd5b506106cf611b18565b6040516106dc9190612739565b60405180910390f35b3480156106f157600080fd5b5061070c600480360381019061070791906125a5565b611b1e565b60405161071c949392919061267a565b60405180910390f35b34801561073157600080fd5b5061073a611b4e565b6040516107479190612739565b60405180910390f35b34801561075c57600080fd5b50610765611b54565b60405161077291906125ed565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061263e565b611b67565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061294f565b611f6d565b005b3480156107d957600080fd5b506107e261205a565b6040516107ef919061271e565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a919061298f565b612080565b005b34801561082d57600080fd5b50610836612140565b6040516108439190612739565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e91906129bc565b6121cf565b6040516108809190612739565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab919061263e565b61223a565b6040516108bd919061288b565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e891906129bc565b612279565b005b3480156108fb57600080fd5b50610916600480360381019061091191906129bc565b612314565b6040516109239190612739565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906125a5565b612353565b005b34801561096157600080fd5b5061096a61244a565b6040516109779190612739565b60405180910390f35b34801561098c57600080fd5b50610995612450565b6040516109a29190612a1d565b60405180910390f35b60126020528060005260406000206000915054906101000a900460ff1681565b600080600080600060046000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b60159054906101000a900460ff16610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190612a95565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612b01565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612b6d565b60405180910390fd5b600081600301548260020154610c169190612bbc565b905060008111610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612c3c565b60405180910390fd5b80826003016000828254610c6f9190612c5c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cd3929190612c90565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610d55612476565b73ffffffffffffffffffffffffffffffffffffffff16610d73611495565b73ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612d05565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b610e1b612476565b73ffffffffffffffffffffffffffffffffffffffff16610e39611495565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612d05565b60405180910390fd5b826007819055508160088190555080600981905550505050565b610eb1612476565b73ffffffffffffffffffffffffffffffffffffffff16610ecf611495565b73ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90612d05565b60405180910390fd5b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890612d71565b60405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050816002015481600201819055508160030154816003018190555060008260020181905550600082600301819055506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b611123612476565b73ffffffffffffffffffffffffffffffffffffffff16611141611495565b73ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e90612d05565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111ff573d6000803e3d6000fd5b5050565b600f818154811061121357600080fd5b906000526020600020016000915090505481565b60075481565b611235612476565b73ffffffffffffffffffffffffffffffffffffffff16611253611495565b73ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612d05565b60405180910390fd5b6112b3600061247e565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112e3612476565b73ffffffffffffffffffffffffffffffffffffffff16611301611495565b73ffffffffffffffffffffffffffffffffffffffff1614611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612d05565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600b60159054906101000a900460ff1681565b601081815481106113c457600080fd5b906000526020600020016000915090505481565b600e81815481106113e857600080fd5b906000526020600020016000915090505481565b611404612476565b73ffffffffffffffffffffffffffffffffffffffff16611422611495565b73ffffffffffffffffffffffffffffffffffffffff1614611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612d05565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561152e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115529190612e1e565b5050509150508091505090565b611567612476565b73ffffffffffffffffffffffffffffffffffffffff16611585611495565b73ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290612d05565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611627612476565b73ffffffffffffffffffffffffffffffffffffffff16611645611495565b73ffffffffffffffffffffffffffffffffffffffff161461169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612d05565b60405180910390fd5b6001600b60156101000a81548160ff02191690831515021790555042600c81905550565b600b60159054906101000a900460ff161561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612ee5565b60405180910390fd5b600b60149054906101000a900460ff1661175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611883576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a600081548092919061181a90612f97565b9190505550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156118eb573d6000803e3d6000fd5b5060006118f6612140565b9050600654811461190957806006819055505b600061191534836121cf565b90506004600060065481526020019081526020016000206001015481600460006006548152602001908152602001600020600201546119549190612c5c565b1115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c9061302b565b60405180910390fd5b806007546119a39190612c5c565b600781905550346008546119b79190612c5c565b60088190555034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611a0b9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611a9f9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611b0d9190612c5c565b925050819055505050565b600c5481565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600a5481565b600b60149054906101000a900460ff1681565b600b60159054906101000a900460ff1615611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612ee5565b60405180910390fd5b600b60149054906101000a900460ff16611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cc8576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6000815480929190611cc290612f97565b91905055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611d499392919061306c565b600060405180830381600087803b158015611d6357600080fd5b505af1158015611d77573d6000803e3d6000fd5b505050506000611d85612140565b90506006548114611d9857806006819055505b6000611da48383612314565b9050600460006006548152602001908152602001600020600101548160046000600654815260200190815260200160002060020154611de39190612c5c565b1115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b9061302b565b60405180910390fd5b80600754611e329190612c5c565b60078190555082600954611e469190612c5c565b60098190555082601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611e9e9190612c5c565b9250508190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611ef39190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611f619190612c5c565b92505081905550505050565b611f75612476565b73ffffffffffffffffffffffffffffffffffffffff16611f93611495565b73ffffffffffffffffffffffffffffffffffffffff1614611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090612d05565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612024929190612c90565b600060405180830381600087803b15801561203e57600080fd5b505af1158015612052573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612088612476565b73ffffffffffffffffffffffffffffffffffffffff166120a6611495565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390612d05565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460006006548152602001908152602001600020600001544210156121ba57600460006006548152602001908152602001600020600101546004600060065481526020019081526020016000206002015410156121a45760065490506121cc565b60016006546121b39190612c5c565b90506121cc565b60016006546121c99190612c5c565b90505b90565b600080670de0b6b3a76400006121e36114be565b856121ee91906130a3565b6121f89190613114565b905060006305f5e10060046000868152602001908152602001600020600301548361222391906130a3565b61222d9190613114565b9050809250505092915050565b600d818154811061224a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612281612476565b73ffffffffffffffffffffffffffffffffffffffff1661229f611495565b73ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90612d05565b60405180910390fd5b8060046000848152602001908152602001600020600001819055505050565b600080620f424060046000858152602001908152602001600020600301548561233d91906130a3565b6123479190613114565b90508091505092915050565b61235b612476565b73ffffffffffffffffffffffffffffffffffffffff16612379611495565b73ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690612d05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906131b7565b60405180910390fd5b6124478161247e565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257282612547565b9050919050565b61258281612567565b811461258d57600080fd5b50565b60008135905061259f81612579565b92915050565b6000602082840312156125bb576125ba612542565b5b60006125c984828501612590565b91505092915050565b60008115159050919050565b6125e7816125d2565b82525050565b600060208201905061260260008301846125de565b92915050565b6000819050919050565b61261b81612608565b811461262657600080fd5b50565b60008135905061263881612612565b92915050565b60006020828403121561265457612653612542565b5b600061266284828501612629565b91505092915050565b61267481612608565b82525050565b600060808201905061268f600083018761266b565b61269c602083018661266b565b6126a9604083018561266b565b6126b6606083018461266b565b95945050505050565b6000819050919050565b60006126e46126df6126da84612547565b6126bf565b612547565b9050919050565b60006126f6826126c9565b9050919050565b6000612708826126eb565b9050919050565b612718816126fd565b82525050565b6000602082019050612733600083018461270f565b92915050565b600060208201905061274e600083018461266b565b92915050565b60008060006060848603121561276d5761276c612542565b5b600061277b86828701612629565b935050602061278c86828701612629565b925050604061279d86828701612629565b9150509250925092565b600080604083850312156127be576127bd612542565b5b60006127cc85828601612590565b92505060206127dd85828601612590565b9150509250929050565b60006127f2826126eb565b9050919050565b612802816127e7565b82525050565b600060208201905061281d60008301846127f9565b92915050565b61282c816125d2565b811461283757600080fd5b50565b60008135905061284981612823565b92915050565b60006020828403121561286557612864612542565b5b60006128738482850161283a565b91505092915050565b61288581612567565b82525050565b60006020820190506128a0600083018461287c565b92915050565b60006128b182612567565b9050919050565b6128c1816128a6565b81146128cc57600080fd5b50565b6000813590506128de816128b8565b92915050565b6000602082840312156128fa576128f9612542565b5b6000612908848285016128cf565b91505092915050565b600061291c82612567565b9050919050565b61292c81612911565b811461293757600080fd5b50565b60008135905061294981612923565b92915050565b6000806040838503121561296657612965612542565b5b60006129748582860161293a565b925050602061298585828601612629565b9150509250929050565b6000602082840312156129a5576129a4612542565b5b60006129b38482850161293a565b91505092915050565b600080604083850312156129d3576129d2612542565b5b60006129e185828601612629565b92505060206129f285828601612629565b9150509250929050565b6000612a0782612547565b9050919050565b612a17816129fc565b82525050565b6000602082019050612a326000830184612a0e565b92915050565b600082825260208201905092915050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b6000612a7f601983612a38565b9150612a8a82612a49565b602082019050919050565b60006020820190508181036000830152612aae81612a72565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b6000612aeb601083612a38565b9150612af682612ab5565b602082019050919050565b60006020820190508181036000830152612b1a81612ade565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000612b57601383612a38565b9150612b6282612b21565b602082019050919050565b60006020820190508181036000830152612b8681612b4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bc782612608565b9150612bd283612608565b9250828203905081811115612bea57612be9612b8d565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000612c26601283612a38565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b6000612c6782612608565b9150612c7283612608565b9250828201905080821115612c8a57612c89612b8d565b5b92915050565b6000604082019050612ca5600083018561287c565b612cb2602083018461266b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cef602083612a38565b9150612cfa82612cb9565b602082019050919050565b60006020820190508181036000830152612d1e81612ce2565b9050919050565b7f204f6c642055736572206e6f742061207061727469636970616e740000000000600082015250565b6000612d5b601b83612a38565b9150612d6682612d25565b602082019050919050565b60006020820190508181036000830152612d8a81612d4e565b9050919050565b600069ffffffffffffffffffff82169050919050565b612db081612d91565b8114612dbb57600080fd5b50565b600081519050612dcd81612da7565b92915050565b6000819050919050565b612de681612dd3565b8114612df157600080fd5b50565b600081519050612e0381612ddd565b92915050565b600081519050612e1881612612565b92915050565b600080600080600060a08688031215612e3a57612e39612542565b5b6000612e4888828901612dbe565b9550506020612e5988828901612df4565b9450506040612e6a88828901612e09565b9350506060612e7b88828901612e09565b9250506080612e8c88828901612dbe565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000612ecf600e83612a38565b9150612eda82612e99565b602082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000612f61602483612a38565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b6000612fa282612608565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd457612fd3612b8d565b5b600182019050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000613015601383612a38565b915061302082612fdf565b602082019050919050565b6000602082019050818103600083015261304481613008565b9050919050565b6000613056826126eb565b9050919050565b6130668161304b565b82525050565b6000606082019050613081600083018661287c565b61308e602083018561305d565b61309b604083018461266b565b949350505050565b60006130ae82612608565b91506130b983612608565b92508282026130c781612608565b915082820484148315176130de576130dd612b8d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061311f82612608565b915061312a83612608565b92508261313a576131396130e5565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a38565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b905091905056fea2646970667358221220293fad663497c5ca3547b29ea049560ef1a12a65b216fde1d06d50dab0f0900d64736f6c63430008120033000000000000000000000000b2cb194701094239db774049d9d72f7838944a17
Deployed Bytecode
0x6080604052600436106102505760003560e01c80638da5cb5b11610139578063bec3fa17116100b6578063e00e06121161007a578063e00e061214610889578063e44542df146108c6578063e9238daf146108ef578063f2fde38b1461092c578063f86a352914610955578063fb4aa0a11461098057610250565b8063bec3fa17146107a4578063c54e44eb146107cd578063c63368be146107f8578063c8fa553b14610821578063cb33365d1461084c57610250565b8063a6a11bb1116100fd578063a6a11bb1146106ba578063a87430ba146106e5578063aa1c3aa514610725578063acfb235514610750578063b5e75e1c1461077b57610250565b80638da5cb5b1461061a5780638e15f4731461064557806395877f7814610670578063a43be57b14610699578063a4821719146106b057610250565b806361a31e00116101d25780637ad3def2116101965780637ad3def2146104f85780637b3e5e7b146105215780637decf27f1461054c57806383ced170146105775780638577d452146105b45780638895283f146105f157610250565b806361a31e0014610425578063654914f81461044e5780636769d1f91461048b578063715018a6146104b6578063741bef1a146104cd57610250565b806348c54b9d1161021957806348c54b9d1461036857806353a29ad21461037f5780635bf5d54c146103a85780635cc8ca46146103d35780635dfd59f6146103fc57610250565b806213eb4b146102555780632d2fbfd4146102925780632e37eef6146102d25780633fc15f1514610312578063405fb9441461033d575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906125a5565b6109ab565b60405161028991906125ed565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061263e565b6109cb565b6040516102c9949392919061267a565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f4919061263e565b610a3f565b604051610309949392919061267a565b60405180910390f35b34801561031e57600080fd5b50610327610a6f565b604051610334919061271e565b60405180910390f35b34801561034957600080fd5b50610352610a95565b60405161035f9190612739565b60405180910390f35b34801561037457600080fd5b5061037d610a9b565b005b34801561038b57600080fd5b506103a660048036038101906103a191906125a5565b610d4d565b005b3480156103b457600080fd5b506103bd610e0d565b6040516103ca9190612739565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612754565b610e13565b005b34801561040857600080fd5b50610423600480360381019061041e91906127a7565b610ea9565b005b34801561043157600080fd5b5061044c6004803603810190610447919061263e565b61111b565b005b34801561045a57600080fd5b506104756004803603810190610470919061263e565b611203565b6040516104829190612739565b60405180910390f35b34801561049757600080fd5b506104a0611227565b6040516104ad9190612739565b60405180910390f35b3480156104c257600080fd5b506104cb61122d565b005b3480156104d957600080fd5b506104e26112b5565b6040516104ef9190612808565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a91906125a5565b6112db565b005b34801561052d57600080fd5b5061053661139b565b6040516105439190612739565b60405180910390f35b34801561055857600080fd5b506105616113a1565b60405161056e91906125ed565b60405180910390f35b34801561058357600080fd5b5061059e6004803603810190610599919061263e565b6113b4565b6040516105ab9190612739565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061263e565b6113d8565b6040516105e89190612739565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061284f565b6113fc565b005b34801561062657600080fd5b5061062f611495565b60405161063c919061288b565b60405180910390f35b34801561065157600080fd5b5061065a6114be565b6040516106679190612739565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906128e4565b61155f565b005b3480156106a557600080fd5b506106ae61161f565b005b6106b86116bf565b005b3480156106c657600080fd5b506106cf611b18565b6040516106dc9190612739565b60405180910390f35b3480156106f157600080fd5b5061070c600480360381019061070791906125a5565b611b1e565b60405161071c949392919061267a565b60405180910390f35b34801561073157600080fd5b5061073a611b4e565b6040516107479190612739565b60405180910390f35b34801561075c57600080fd5b50610765611b54565b60405161077291906125ed565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061263e565b611b67565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061294f565b611f6d565b005b3480156107d957600080fd5b506107e261205a565b6040516107ef919061271e565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a919061298f565b612080565b005b34801561082d57600080fd5b50610836612140565b6040516108439190612739565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e91906129bc565b6121cf565b6040516108809190612739565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab919061263e565b61223a565b6040516108bd919061288b565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e891906129bc565b612279565b005b3480156108fb57600080fd5b50610916600480360381019061091191906129bc565b612314565b6040516109239190612739565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906125a5565b612353565b005b34801561096157600080fd5b5061096a61244a565b6040516109779190612739565b60405180910390f35b34801561098c57600080fd5b50610995612450565b6040516109a29190612a1d565b60405180910390f35b60126020528060005260406000206000915054906101000a900460ff1681565b600080600080600060046000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b60159054906101000a900460ff16610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190612a95565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612b01565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612b6d565b60405180910390fd5b600081600301548260020154610c169190612bbc565b905060008111610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612c3c565b60405180910390fd5b80826003016000828254610c6f9190612c5c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cd3929190612c90565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610d55612476565b73ffffffffffffffffffffffffffffffffffffffff16610d73611495565b73ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612d05565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b610e1b612476565b73ffffffffffffffffffffffffffffffffffffffff16610e39611495565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612d05565b60405180910390fd5b826007819055508160088190555080600981905550505050565b610eb1612476565b73ffffffffffffffffffffffffffffffffffffffff16610ecf611495565b73ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90612d05565b60405180910390fd5b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890612d71565b60405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050816002015481600201819055508160030154816003018190555060008260020181905550600082600301819055506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b611123612476565b73ffffffffffffffffffffffffffffffffffffffff16611141611495565b73ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e90612d05565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111ff573d6000803e3d6000fd5b5050565b600f818154811061121357600080fd5b906000526020600020016000915090505481565b60075481565b611235612476565b73ffffffffffffffffffffffffffffffffffffffff16611253611495565b73ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612d05565b60405180910390fd5b6112b3600061247e565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112e3612476565b73ffffffffffffffffffffffffffffffffffffffff16611301611495565b73ffffffffffffffffffffffffffffffffffffffff1614611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612d05565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600b60159054906101000a900460ff1681565b601081815481106113c457600080fd5b906000526020600020016000915090505481565b600e81815481106113e857600080fd5b906000526020600020016000915090505481565b611404612476565b73ffffffffffffffffffffffffffffffffffffffff16611422611495565b73ffffffffffffffffffffffffffffffffffffffff1614611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612d05565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561152e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115529190612e1e565b5050509150508091505090565b611567612476565b73ffffffffffffffffffffffffffffffffffffffff16611585611495565b73ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290612d05565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611627612476565b73ffffffffffffffffffffffffffffffffffffffff16611645611495565b73ffffffffffffffffffffffffffffffffffffffff161461169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612d05565b60405180910390fd5b6001600b60156101000a81548160ff02191690831515021790555042600c81905550565b600b60159054906101000a900460ff161561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612ee5565b60405180910390fd5b600b60149054906101000a900460ff1661175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611883576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a600081548092919061181a90612f97565b9190505550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156118eb573d6000803e3d6000fd5b5060006118f6612140565b9050600654811461190957806006819055505b600061191534836121cf565b90506004600060065481526020019081526020016000206001015481600460006006548152602001908152602001600020600201546119549190612c5c565b1115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c9061302b565b60405180910390fd5b806007546119a39190612c5c565b600781905550346008546119b79190612c5c565b60088190555034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611a0b9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611a9f9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611b0d9190612c5c565b925050819055505050565b600c5481565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600a5481565b600b60149054906101000a900460ff1681565b600b60159054906101000a900460ff1615611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612ee5565b60405180910390fd5b600b60149054906101000a900460ff16611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cc8576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6000815480929190611cc290612f97565b91905055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611d499392919061306c565b600060405180830381600087803b158015611d6357600080fd5b505af1158015611d77573d6000803e3d6000fd5b505050506000611d85612140565b90506006548114611d9857806006819055505b6000611da48383612314565b9050600460006006548152602001908152602001600020600101548160046000600654815260200190815260200160002060020154611de39190612c5c565b1115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b9061302b565b60405180910390fd5b80600754611e329190612c5c565b60078190555082600954611e469190612c5c565b60098190555082601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611e9e9190612c5c565b9250508190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611ef39190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611f619190612c5c565b92505081905550505050565b611f75612476565b73ffffffffffffffffffffffffffffffffffffffff16611f93611495565b73ffffffffffffffffffffffffffffffffffffffff1614611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090612d05565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612024929190612c90565b600060405180830381600087803b15801561203e57600080fd5b505af1158015612052573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612088612476565b73ffffffffffffffffffffffffffffffffffffffff166120a6611495565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390612d05565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460006006548152602001908152602001600020600001544210156121ba57600460006006548152602001908152602001600020600101546004600060065481526020019081526020016000206002015410156121a45760065490506121cc565b60016006546121b39190612c5c565b90506121cc565b60016006546121c99190612c5c565b90505b90565b600080670de0b6b3a76400006121e36114be565b856121ee91906130a3565b6121f89190613114565b905060006305f5e10060046000868152602001908152602001600020600301548361222391906130a3565b61222d9190613114565b9050809250505092915050565b600d818154811061224a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612281612476565b73ffffffffffffffffffffffffffffffffffffffff1661229f611495565b73ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90612d05565b60405180910390fd5b8060046000848152602001908152602001600020600001819055505050565b600080620f424060046000858152602001908152602001600020600301548561233d91906130a3565b6123479190613114565b90508091505092915050565b61235b612476565b73ffffffffffffffffffffffffffffffffffffffff16612379611495565b73ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690612d05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906131b7565b60405180910390fd5b6124478161247e565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257282612547565b9050919050565b61258281612567565b811461258d57600080fd5b50565b60008135905061259f81612579565b92915050565b6000602082840312156125bb576125ba612542565b5b60006125c984828501612590565b91505092915050565b60008115159050919050565b6125e7816125d2565b82525050565b600060208201905061260260008301846125de565b92915050565b6000819050919050565b61261b81612608565b811461262657600080fd5b50565b60008135905061263881612612565b92915050565b60006020828403121561265457612653612542565b5b600061266284828501612629565b91505092915050565b61267481612608565b82525050565b600060808201905061268f600083018761266b565b61269c602083018661266b565b6126a9604083018561266b565b6126b6606083018461266b565b95945050505050565b6000819050919050565b60006126e46126df6126da84612547565b6126bf565b612547565b9050919050565b60006126f6826126c9565b9050919050565b6000612708826126eb565b9050919050565b612718816126fd565b82525050565b6000602082019050612733600083018461270f565b92915050565b600060208201905061274e600083018461266b565b92915050565b60008060006060848603121561276d5761276c612542565b5b600061277b86828701612629565b935050602061278c86828701612629565b925050604061279d86828701612629565b9150509250925092565b600080604083850312156127be576127bd612542565b5b60006127cc85828601612590565b92505060206127dd85828601612590565b9150509250929050565b60006127f2826126eb565b9050919050565b612802816127e7565b82525050565b600060208201905061281d60008301846127f9565b92915050565b61282c816125d2565b811461283757600080fd5b50565b60008135905061284981612823565b92915050565b60006020828403121561286557612864612542565b5b60006128738482850161283a565b91505092915050565b61288581612567565b82525050565b60006020820190506128a0600083018461287c565b92915050565b60006128b182612567565b9050919050565b6128c1816128a6565b81146128cc57600080fd5b50565b6000813590506128de816128b8565b92915050565b6000602082840312156128fa576128f9612542565b5b6000612908848285016128cf565b91505092915050565b600061291c82612567565b9050919050565b61292c81612911565b811461293757600080fd5b50565b60008135905061294981612923565b92915050565b6000806040838503121561296657612965612542565b5b60006129748582860161293a565b925050602061298585828601612629565b9150509250929050565b6000602082840312156129a5576129a4612542565b5b60006129b38482850161293a565b91505092915050565b600080604083850312156129d3576129d2612542565b5b60006129e185828601612629565b92505060206129f285828601612629565b9150509250929050565b6000612a0782612547565b9050919050565b612a17816129fc565b82525050565b6000602082019050612a326000830184612a0e565b92915050565b600082825260208201905092915050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b6000612a7f601983612a38565b9150612a8a82612a49565b602082019050919050565b60006020820190508181036000830152612aae81612a72565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b6000612aeb601083612a38565b9150612af682612ab5565b602082019050919050565b60006020820190508181036000830152612b1a81612ade565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000612b57601383612a38565b9150612b6282612b21565b602082019050919050565b60006020820190508181036000830152612b8681612b4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bc782612608565b9150612bd283612608565b9250828203905081811115612bea57612be9612b8d565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000612c26601283612a38565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b6000612c6782612608565b9150612c7283612608565b9250828201905080821115612c8a57612c89612b8d565b5b92915050565b6000604082019050612ca5600083018561287c565b612cb2602083018461266b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cef602083612a38565b9150612cfa82612cb9565b602082019050919050565b60006020820190508181036000830152612d1e81612ce2565b9050919050565b7f204f6c642055736572206e6f742061207061727469636970616e740000000000600082015250565b6000612d5b601b83612a38565b9150612d6682612d25565b602082019050919050565b60006020820190508181036000830152612d8a81612d4e565b9050919050565b600069ffffffffffffffffffff82169050919050565b612db081612d91565b8114612dbb57600080fd5b50565b600081519050612dcd81612da7565b92915050565b6000819050919050565b612de681612dd3565b8114612df157600080fd5b50565b600081519050612e0381612ddd565b92915050565b600081519050612e1881612612565b92915050565b600080600080600060a08688031215612e3a57612e39612542565b5b6000612e4888828901612dbe565b9550506020612e5988828901612df4565b9450506040612e6a88828901612e09565b9350506060612e7b88828901612e09565b9250506080612e8c88828901612dbe565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000612ecf600e83612a38565b9150612eda82612e99565b602082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000612f61602483612a38565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b6000612fa282612608565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd457612fd3612b8d565b5b600182019050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000613015601383612a38565b915061302082612fdf565b602082019050919050565b6000602082019050818103600083015261304481613008565b9050919050565b6000613056826126eb565b9050919050565b6130668161304b565b82525050565b6000606082019050613081600083018661287c565b61308e602083018561305d565b61309b604083018461266b565b949350505050565b60006130ae82612608565b91506130b983612608565b92508282026130c781612608565b915082820484148315176130de576130dd612b8d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061311f82612608565b915061312a83612608565b92508261313a576131396130e5565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a38565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b905091905056fea2646970667358221220293fad663497c5ca3547b29ea049560ef1a12a65b216fde1d06d50dab0f0900d64736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b2cb194701094239db774049d9d72f7838944a17
-----Decoded View---------------
Arg [0] : _token (address): 0xb2cb194701094239dB774049d9d72f7838944a17
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b2cb194701094239db774049d9d72f7838944a17
Deployed Bytecode Sourcemap
3552:9924:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10839:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3897:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3587:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4091:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9248:575;;;;;;;;;;;;;:::i;:::-;;13048:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3992:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12246:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10292:539;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12931:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4715:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4026:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:103;;;;;;;;;;;;;:::i;:::-;;3697:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12517:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4057:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4241:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4888:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4511:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11303:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6524:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13166:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11412:124;;;;;;;;;;;;;:::i;:::-;;6757:1248;;;:::i;:::-;;4274:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5068:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4129:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4209:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8080:1160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13347:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3617:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9831:453;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11591:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12626:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11980:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1310:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3959:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4165:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5112:39;;;;;;;;;;;;;;;;;;;;;;:::o;10839:456::-;10945:19;10979:18;11012:16;11043;11087:18;11108:6;:16;11115:8;11108:16;;;;;;;;;;;11087:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11157:5;:18;;;11190:5;:21;;;11226:5;:22;;;11263:5;:13;;;11135:152;;;;;;;;;10839:456;;;;;:::o;3897:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3587:23::-;;;;;;;;;;;;;:::o;4091:31::-;;;;:::o;9248:575::-;9299:14;;;;;;;;;;;9291:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9362:7;:19;9370:10;9362:19;;;;;;;;;;;;;;;;;;;;;;;;;9354:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9413:17;9433:5;:17;9439:10;9433:17;;;;;;;;;;;;;;;9413:37;;9490:1;9469:4;:18;;;:22;9461:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9526:23;9573:4;:19;;;9552:4;:18;;;:40;;;;:::i;:::-;9526:66;;9629:1;9611:15;:19;9603:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9687:15;9664:4;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;9713:9;;;;;;;;;;;:18;;;9732:10;9744:15;9713:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9799:15;9787:10;9776:39;;;;;;;;;;;;9280:543;;9248:575::o;13048:110::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13144:5:::1;13121:12;;:29;;;;;;;;;;;;;;;;;;13048:110:::0;:::o;3992:27::-;;;;:::o;12246:241::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12398:5:::1;12386:9;:17;;;;12429:7;12414:12;:22;;;;12466:13;12447:16;:32;;;;12246:241:::0;;;:::o;10292:539::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:7:::1;:20;10428:11;10420:20;;;;;;;;;;;;;;;;;;;;;;;;;10412:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10483:17;10503:5;:18;10509:11;10503:18;;;;;;;;;;;;;;;10483:38;;10532:20;10555:5;:17;10561:10;10555:17;;;;;;;;;;;;;;;10532:40;;10607:4;:18;;;10583:7;:21;;:42;;;;10661:4;:19;;;10636:7;:22;;:44;;;;10712:1;10691:4;:18;;:22;;;;10746:1;10724:4;:19;;:23;;;;10781:5;10758:7;:20;10766:11;10758:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10819:4;10797:7;:19;10805:10;10797:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10401:430;;10292:539:::0;;:::o;12931:109::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13003:12:::1;;;;;;;;;;;:21;;:29;13025:6;13003:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12931:109:::0;:::o;4715:166::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4026:24::-;;;;:::o;1052:103::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:30:::1;1144:1;1117:18;:30::i;:::-;1052:103::o:0;3697:38::-;;;;;;;;;;;;;:::o;12517:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12603:6:::1;12584:9;;:26;;;;;;;;;;;;;;;;;;12517:101:::0;:::o;4057:27::-;;;;:::o;4241:26::-;;;;;;;;;;;;;:::o;4888:169::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4511:197::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11303:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11389:7:::1;11373:13;;:23;;;;;;;;;;;;;;;;;;11303:101:::0;:::o;744:87::-;790:7;817:6;;;;;;;;;;;810:13;;744:87;:::o;6524:159::-;6571:7;6594:12;6616:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6591:52;;;;;;6669:5;6654:21;;;6524:159;:::o;13166:142::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13290:10:::1;13278:9;;:22;;;;;;;;;;;;;;;;;;13166:142:::0;:::o;11412:124::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11481:4:::1;11464:14;;:21;;;;;;;;;;;;;;;;;;11513:15;11496:14;:32;;;;11412:124::o:0;6757:1248::-;6812:14;;;;;;;;;;;6811:15;6803:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6864:13;;;;;;;;;;;6856:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6934:7;:19;6942:10;6934:19;;;;;;;;;;;;;;;;;;;;;;;;;6929:154;;6992:4;6970:7;:19;6978:10;6970:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7011:12;;:14;;;;;;;;;:::i;:::-;;;;;;7040;7060:10;7040:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6929:154;7093:12;;;;;;;;;;;:21;;:32;7115:9;7093:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7167:19;7189:16;:14;:16::i;:::-;7167:38;;7235:12;;7220:11;:27;7216:86;;7279:11;7264:12;:26;;;;7216:86;7314:22;7364:37;7378:9;7389:11;7364:13;:37::i;:::-;7347:54;;7508:6;:20;7515:12;;7508:20;;;;;;;;;;;:33;;;7473:14;7434:6;:20;7441:12;;7434:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;7412:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;7624:14;7611:9;;:28;;;;:::i;:::-;7599:9;:40;;;;7681:9;7665:12;;:26;;;;:::i;:::-;7650:12;:41;;;;7801:9;7752:5;:17;7758:10;7752:17;;;;;;;;;;;;;;;:32;;;:59;;;;:::i;:::-;7704:5;:17;7710:10;7704:17;;;;;;;;;;;;;;;:32;;:107;;;;7917:14;7869:5;:17;7875:10;7869:17;;;;;;;;;;;;;;;:31;;;:63;;;;:::i;:::-;7822:5;:17;7828:10;7822:17;;;;;;;;;;;;;;;:31;;:110;;;;7983:14;7943:6;:20;7950:12;;7943:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;6792:1213;;6757:1248::o;4274:29::-;;;;:::o;5068:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4129:27::-;;;;:::o;4209:25::-;;;;;;;;;;;;;:::o;8080:1160::-;8145:14;;;;;;;;;;;8144:15;8136:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8197:13;;;;;;;;;;;8189:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8267:7;:19;8275:10;8267:19;;;;;;;;;;;;;;;;;;;;;;;;;8262:108;;8325:4;8303:7;:19;8311:10;8303:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8344:12;;:14;;;;;;;;;:::i;:::-;;;;;;8262:108;8380:4;;;;;;;;;;;:17;;;8398:10;8410:12;;;;;;;;;;;8424:6;8380:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8473:19;8495:16;:14;:16::i;:::-;8473:38;;8541:12;;8526:11;:27;8522:86;;8585:11;8570:12;:26;;;;8522:86;8620:22;8670:32;8682:6;8690:11;8670;:32::i;:::-;8653:49;;8809:6;:20;8816:12;;8809:20;;;;;;;;;;;:33;;;8774:14;8735:6;:20;8742:12;;8735:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;8713:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8924:14;8912:9;;:26;;;;:::i;:::-;8900:9;:38;;;;8987:6;8968:16;;:25;;;;:::i;:::-;8949:16;:44;;;;9040:6;9006:5;:17;9012:10;9006:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;9153:14;9106:5;:17;9112:10;9106:17;;;;;;;;;;;;;;;:31;;;:61;;;;:::i;:::-;9059:5;:17;9065:10;9059:17;;;;;;;;;;;;;;;:31;;:108;;;;9218:14;9178:6;:20;9185:12;;9178:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;8125:1115;;8080:1160;:::o;13347:126::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13431:5:::1;:14;;;13446:10;13458:6;13431:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13347:126:::0;;:::o;3617:71::-;;;;;;;;;;;;;:::o;12783:100::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12869:5:::1;12855:4;;:20;;;;;;;;;;;;;;;;;;12783:100:::0;:::o;9831:453::-;9878:7;9920:6;:20;9927:12;;9920:20;;;;;;;;;;;:28;;;9902:15;:46;9898:379;;;10043:6;:20;10050:12;;10043:20;;;;;;;;;;;:33;;;9987:6;:20;9994:12;;9987:20;;;;;;;;;;;:36;;;:89;9965:245;;;10118:12;;10111:19;;;;9965:245;10193:1;10178:12;;:16;;;;:::i;:::-;10171:23;;;;9898:379;10264:1;10249:12;;:16;;;;:::i;:::-;10242:23;;9831:453;;:::o;11591:333::-;11696:7;11721:16;11774:7;11752:16;:14;:16::i;:::-;11741:7;:28;;;;:::i;:::-;11740:42;;;;:::i;:::-;11721:61;;11793:22;11880:3;11830:6;:15;11837:7;11830:15;;;;;;;;;;;:32;;;11819:8;:43;;;;:::i;:::-;11818:66;;;;:::i;:::-;11793:91;;11902:14;11895:21;;;;11591:333;;;;:::o;4312:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12626:120::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12733:5:::1;12708:6;:14;12715:6;12708:14;;;;;;;;;;;:22;;:30;;;;12626:120:::0;;:::o;11980:258::-;12083:7;12108:22;12194:3;12144:6;:15;12151:7;12144:15;;;;;;;;;;;:32;;;12134:7;:42;;;;:::i;:::-;12133:65;;;;:::i;:::-;12108:90;;12216:14;12209:21;;;11980:258;;;;:::o;1310:238::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1433:1:::1;1413:22;;:8;:22;;::::0;1391:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1512:28;1531:8;1512:18;:28::i;:::-;1310:238:::0;:::o;3959:26::-;;;;:::o;4165:35::-;;;;;;;;;;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;1708:191::-;1782:16;1801:6;;;;;;;;;;;1782:25;;1827:8;1818:6;;:17;;;;;;;;;;;;;;;;;;1882:8;1851:40;;1872:8;1851:40;;;;;;;;;;;;1771:128;1708:191;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:77::-;1640:7;1669:5;1658:16;;1603:77;;;:::o;1686:122::-;1759:24;1777:5;1759:24;:::i;:::-;1752:5;1749:35;1739:63;;1798:1;1795;1788:12;1739:63;1686:122;:::o;1814:139::-;1860:5;1898:6;1885:20;1876:29;;1914:33;1941:5;1914:33;:::i;:::-;1814:139;;;;:::o;1959:329::-;2018:6;2067:2;2055:9;2046:7;2042:23;2038:32;2035:119;;;2073:79;;:::i;:::-;2035:119;2193:1;2218:53;2263:7;2254:6;2243:9;2239:22;2218:53;:::i;:::-;2208:63;;2164:117;1959:329;;;;:::o;2294:118::-;2381:24;2399:5;2381:24;:::i;:::-;2376:3;2369:37;2294:118;;:::o;2418:553::-;2595:4;2633:3;2622:9;2618:19;2610:27;;2647:71;2715:1;2704:9;2700:17;2691:6;2647:71;:::i;:::-;2728:72;2796:2;2785:9;2781:18;2772:6;2728:72;:::i;:::-;2810;2878:2;2867:9;2863:18;2854:6;2810:72;:::i;:::-;2892;2960:2;2949:9;2945:18;2936:6;2892:72;:::i;:::-;2418:553;;;;;;;:::o;2977:60::-;3005:3;3026:5;3019:12;;2977:60;;;:::o;3043:142::-;3093:9;3126:53;3144:34;3153:24;3171:5;3153:24;:::i;:::-;3144:34;:::i;:::-;3126:53;:::i;:::-;3113:66;;3043:142;;;:::o;3191:126::-;3241:9;3274:37;3305:5;3274:37;:::i;:::-;3261:50;;3191:126;;;:::o;3323:140::-;3387:9;3420:37;3451:5;3420:37;:::i;:::-;3407:50;;3323:140;;;:::o;3469:159::-;3570:51;3615:5;3570:51;:::i;:::-;3565:3;3558:64;3469:159;;:::o;3634:250::-;3741:4;3779:2;3768:9;3764:18;3756:26;;3792:85;3874:1;3863:9;3859:17;3850:6;3792:85;:::i;:::-;3634:250;;;;:::o;3890:222::-;3983:4;4021:2;4010:9;4006:18;3998:26;;4034:71;4102:1;4091:9;4087:17;4078:6;4034:71;:::i;:::-;3890:222;;;;:::o;4118:619::-;4195:6;4203;4211;4260:2;4248:9;4239:7;4235:23;4231:32;4228:119;;;4266:79;;:::i;:::-;4228:119;4386:1;4411:53;4456:7;4447:6;4436:9;4432:22;4411:53;:::i;:::-;4401:63;;4357:117;4513:2;4539:53;4584:7;4575:6;4564:9;4560:22;4539:53;:::i;:::-;4529:63;;4484:118;4641:2;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4612:118;4118:619;;;;;:::o;4743:474::-;4811:6;4819;4868:2;4856:9;4847:7;4843:23;4839:32;4836:119;;;4874:79;;:::i;:::-;4836:119;4994:1;5019:53;5064:7;5055:6;5044:9;5040:22;5019:53;:::i;:::-;5009:63;;4965:117;5121:2;5147:53;5192:7;5183:6;5172:9;5168:22;5147:53;:::i;:::-;5137:63;;5092:118;4743:474;;;;;:::o;5223:155::-;5302:9;5335:37;5366:5;5335:37;:::i;:::-;5322:50;;5223:155;;;:::o;5384:189::-;5500:66;5560:5;5500:66;:::i;:::-;5495:3;5488:79;5384:189;;:::o;5579:280::-;5701:4;5739:2;5728:9;5724:18;5716:26;;5752:100;5849:1;5838:9;5834:17;5825:6;5752:100;:::i;:::-;5579:280;;;;:::o;5865:116::-;5935:21;5950:5;5935:21;:::i;:::-;5928:5;5925:32;5915:60;;5971:1;5968;5961:12;5915:60;5865:116;:::o;5987:133::-;6030:5;6068:6;6055:20;6046:29;;6084:30;6108:5;6084:30;:::i;:::-;5987:133;;;;:::o;6126:323::-;6182:6;6231:2;6219:9;6210:7;6206:23;6202:32;6199:119;;;6237:79;;:::i;:::-;6199:119;6357:1;6382:50;6424:7;6415:6;6404:9;6400:22;6382:50;:::i;:::-;6372:60;;6328:114;6126:323;;;;:::o;6455:118::-;6542:24;6560:5;6542:24;:::i;:::-;6537:3;6530:37;6455:118;;:::o;6579:222::-;6672:4;6710:2;6699:9;6695:18;6687:26;;6723:71;6791:1;6780:9;6776:17;6767:6;6723:71;:::i;:::-;6579:222;;;;:::o;6807:125::-;6873:7;6902:24;6920:5;6902:24;:::i;:::-;6891:35;;6807:125;;;:::o;6938:180::-;7040:53;7087:5;7040:53;:::i;:::-;7033:5;7030:64;7020:92;;7108:1;7105;7098:12;7020:92;6938:180;:::o;7124:197::-;7199:5;7237:6;7224:20;7215:29;;7253:62;7309:5;7253:62;:::i;:::-;7124:197;;;;:::o;7327:387::-;7415:6;7464:2;7452:9;7443:7;7439:23;7435:32;7432:119;;;7470:79;;:::i;:::-;7432:119;7590:1;7615:82;7689:7;7680:6;7669:9;7665:22;7615:82;:::i;:::-;7605:92;;7561:146;7327:387;;;;:::o;7720:110::-;7771:7;7800:24;7818:5;7800:24;:::i;:::-;7789:35;;7720:110;;;:::o;7836:150::-;7923:38;7955:5;7923:38;:::i;:::-;7916:5;7913:49;7903:77;;7976:1;7973;7966:12;7903:77;7836:150;:::o;7992:167::-;8052:5;8090:6;8077:20;8068:29;;8106:47;8147:5;8106:47;:::i;:::-;7992:167;;;;:::o;8165:502::-;8247:6;8255;8304:2;8292:9;8283:7;8279:23;8275:32;8272:119;;;8310:79;;:::i;:::-;8272:119;8430:1;8455:67;8514:7;8505:6;8494:9;8490:22;8455:67;:::i;:::-;8445:77;;8401:131;8571:2;8597:53;8642:7;8633:6;8622:9;8618:22;8597:53;:::i;:::-;8587:63;;8542:118;8165:502;;;;;:::o;8673:357::-;8746:6;8795:2;8783:9;8774:7;8770:23;8766:32;8763:119;;;8801:79;;:::i;:::-;8763:119;8921:1;8946:67;9005:7;8996:6;8985:9;8981:22;8946:67;:::i;:::-;8936:77;;8892:131;8673:357;;;;:::o;9036:474::-;9104:6;9112;9161:2;9149:9;9140:7;9136:23;9132:32;9129:119;;;9167:79;;:::i;:::-;9129:119;9287:1;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;:::i;:::-;9302:63;;9258:117;9414:2;9440:53;9485:7;9476:6;9465:9;9461:22;9440:53;:::i;:::-;9430:63;;9385:118;9036:474;;;;;:::o;9516:104::-;9561:7;9590:24;9608:5;9590:24;:::i;:::-;9579:35;;9516:104;;;:::o;9626:142::-;9729:32;9755:5;9729:32;:::i;:::-;9724:3;9717:45;9626:142;;:::o;9774:254::-;9883:4;9921:2;9910:9;9906:18;9898:26;;9934:87;10018:1;10007:9;10003:17;9994:6;9934:87;:::i;:::-;9774:254;;;;:::o;10034:169::-;10118:11;10152:6;10147:3;10140:19;10192:4;10187:3;10183:14;10168:29;;10034:169;;;;:::o;10209:175::-;10349:27;10345:1;10337:6;10333:14;10326:51;10209:175;:::o;10390:366::-;10532:3;10553:67;10617:2;10612:3;10553:67;:::i;:::-;10546:74;;10629:93;10718:3;10629:93;:::i;:::-;10747:2;10742:3;10738:12;10731:19;;10390:366;;;:::o;10762:419::-;10928:4;10966:2;10955:9;10951:18;10943:26;;11015:9;11009:4;11005:20;11001:1;10990:9;10986:17;10979:47;11043:131;11169:4;11043:131;:::i;:::-;11035:139;;10762:419;;;:::o;11187:166::-;11327:18;11323:1;11315:6;11311:14;11304:42;11187:166;:::o;11359:366::-;11501:3;11522:67;11586:2;11581:3;11522:67;:::i;:::-;11515:74;;11598:93;11687:3;11598:93;:::i;:::-;11716:2;11711:3;11707:12;11700:19;;11359:366;;;:::o;11731:419::-;11897:4;11935:2;11924:9;11920:18;11912:26;;11984:9;11978:4;11974:20;11970:1;11959:9;11955:17;11948:47;12012:131;12138:4;12012:131;:::i;:::-;12004:139;;11731:419;;;:::o;12156:169::-;12296:21;12292:1;12284:6;12280:14;12273:45;12156:169;:::o;12331:366::-;12473:3;12494:67;12558:2;12553:3;12494:67;:::i;:::-;12487:74;;12570:93;12659:3;12570:93;:::i;:::-;12688:2;12683:3;12679:12;12672:19;;12331:366;;;:::o;12703:419::-;12869:4;12907:2;12896:9;12892:18;12884:26;;12956:9;12950:4;12946:20;12942:1;12931:9;12927:17;12920:47;12984:131;13110:4;12984:131;:::i;:::-;12976:139;;12703:419;;;:::o;13128:180::-;13176:77;13173:1;13166:88;13273:4;13270:1;13263:15;13297:4;13294:1;13287:15;13314:194;13354:4;13374:20;13392:1;13374:20;:::i;:::-;13369:25;;13408:20;13426:1;13408:20;:::i;:::-;13403:25;;13452:1;13449;13445:9;13437:17;;13476:1;13470:4;13467:11;13464:37;;;13481:18;;:::i;:::-;13464:37;13314:194;;;;:::o;13514:168::-;13654:20;13650:1;13642:6;13638:14;13631:44;13514:168;:::o;13688:366::-;13830:3;13851:67;13915:2;13910:3;13851:67;:::i;:::-;13844:74;;13927:93;14016:3;13927:93;:::i;:::-;14045:2;14040:3;14036:12;14029:19;;13688:366;;;:::o;14060:419::-;14226:4;14264:2;14253:9;14249:18;14241:26;;14313:9;14307:4;14303:20;14299:1;14288:9;14284:17;14277:47;14341:131;14467:4;14341:131;:::i;:::-;14333:139;;14060:419;;;:::o;14485:191::-;14525:3;14544:20;14562:1;14544:20;:::i;:::-;14539:25;;14578:20;14596:1;14578:20;:::i;:::-;14573:25;;14621:1;14618;14614:9;14607:16;;14642:3;14639:1;14636:10;14633:36;;;14649:18;;:::i;:::-;14633:36;14485:191;;;;:::o;14682:332::-;14803:4;14841:2;14830:9;14826:18;14818:26;;14854:71;14922:1;14911:9;14907:17;14898:6;14854:71;:::i;:::-;14935:72;15003:2;14992:9;14988:18;14979:6;14935:72;:::i;:::-;14682:332;;;;;:::o;15020:182::-;15160:34;15156:1;15148:6;15144:14;15137:58;15020:182;:::o;15208:366::-;15350:3;15371:67;15435:2;15430:3;15371:67;:::i;:::-;15364:74;;15447:93;15536:3;15447:93;:::i;:::-;15565:2;15560:3;15556:12;15549:19;;15208:366;;;:::o;15580:419::-;15746:4;15784:2;15773:9;15769:18;15761:26;;15833:9;15827:4;15823:20;15819:1;15808:9;15804:17;15797:47;15861:131;15987:4;15861:131;:::i;:::-;15853:139;;15580:419;;;:::o;16005:177::-;16145:29;16141:1;16133:6;16129:14;16122:53;16005:177;:::o;16188:366::-;16330:3;16351:67;16415:2;16410:3;16351:67;:::i;:::-;16344:74;;16427:93;16516:3;16427:93;:::i;:::-;16545:2;16540:3;16536:12;16529:19;;16188:366;;;:::o;16560:419::-;16726:4;16764:2;16753:9;16749:18;16741:26;;16813:9;16807:4;16803:20;16799:1;16788:9;16784:17;16777:47;16841:131;16967:4;16841:131;:::i;:::-;16833:139;;16560:419;;;:::o;16985:105::-;17021:7;17061:22;17054:5;17050:34;17039:45;;16985:105;;;:::o;17096:120::-;17168:23;17185:5;17168:23;:::i;:::-;17161:5;17158:34;17148:62;;17206:1;17203;17196:12;17148:62;17096:120;:::o;17222:141::-;17278:5;17309:6;17303:13;17294:22;;17325:32;17351:5;17325:32;:::i;:::-;17222:141;;;;:::o;17369:76::-;17405:7;17434:5;17423:16;;17369:76;;;:::o;17451:120::-;17523:23;17540:5;17523:23;:::i;:::-;17516:5;17513:34;17503:62;;17561:1;17558;17551:12;17503:62;17451:120;:::o;17577:141::-;17633:5;17664:6;17658:13;17649:22;;17680:32;17706:5;17680:32;:::i;:::-;17577:141;;;;:::o;17724:143::-;17781:5;17812:6;17806:13;17797:22;;17828:33;17855:5;17828:33;:::i;:::-;17724:143;;;;:::o;17873:971::-;17976:6;17984;17992;18000;18008;18057:3;18045:9;18036:7;18032:23;18028:33;18025:120;;;18064:79;;:::i;:::-;18025:120;18184:1;18209:63;18264:7;18255:6;18244:9;18240:22;18209:63;:::i;:::-;18199:73;;18155:127;18321:2;18347:63;18402:7;18393:6;18382:9;18378:22;18347:63;:::i;:::-;18337:73;;18292:128;18459:2;18485:64;18541:7;18532:6;18521:9;18517:22;18485:64;:::i;:::-;18475:74;;18430:129;18598:2;18624:64;18680:7;18671:6;18660:9;18656:22;18624:64;:::i;:::-;18614:74;;18569:129;18737:3;18764:63;18819:7;18810:6;18799:9;18795:22;18764:63;:::i;:::-;18754:73;;18708:129;17873:971;;;;;;;;:::o;18850:164::-;18990:16;18986:1;18978:6;18974:14;18967:40;18850:164;:::o;19020:366::-;19162:3;19183:67;19247:2;19242:3;19183:67;:::i;:::-;19176:74;;19259:93;19348:3;19259:93;:::i;:::-;19377:2;19372:3;19368:12;19361:19;;19020:366;;;:::o;19392:419::-;19558:4;19596:2;19585:9;19581:18;19573:26;;19645:9;19639:4;19635:20;19631:1;19620:9;19616:17;19609:47;19673:131;19799:4;19673:131;:::i;:::-;19665:139;;19392:419;;;:::o;19817:223::-;19957:34;19953:1;19945:6;19941:14;19934:58;20026:6;20021:2;20013:6;20009:15;20002:31;19817:223;:::o;20046:366::-;20188:3;20209:67;20273:2;20268:3;20209:67;:::i;:::-;20202:74;;20285:93;20374:3;20285:93;:::i;:::-;20403:2;20398:3;20394:12;20387:19;;20046:366;;;:::o;20418:419::-;20584:4;20622:2;20611:9;20607:18;20599:26;;20671:9;20665:4;20661:20;20657:1;20646:9;20642:17;20635:47;20699:131;20825:4;20699:131;:::i;:::-;20691:139;;20418:419;;;:::o;20843:233::-;20882:3;20905:24;20923:5;20905:24;:::i;:::-;20896:33;;20951:66;20944:5;20941:77;20938:103;;21021:18;;:::i;:::-;20938:103;21068:1;21061:5;21057:13;21050:20;;20843:233;;;:::o;21082:169::-;21222:21;21218:1;21210:6;21206:14;21199:45;21082:169;:::o;21257:366::-;21399:3;21420:67;21484:2;21479:3;21420:67;:::i;:::-;21413:74;;21496:93;21585:3;21496:93;:::i;:::-;21614:2;21609:3;21605:12;21598:19;;21257:366;;;:::o;21629:419::-;21795:4;21833:2;21822:9;21818:18;21810:26;;21882:9;21876:4;21872:20;21868:1;21857:9;21853:17;21846:47;21910:131;22036:4;21910:131;:::i;:::-;21902:139;;21629:419;;;:::o;22054:134::-;22112:9;22145:37;22176:5;22145:37;:::i;:::-;22132:50;;22054:134;;;:::o;22194:147::-;22289:45;22328:5;22289:45;:::i;:::-;22284:3;22277:58;22194:147;;:::o;22347:458::-;22504:4;22542:2;22531:9;22527:18;22519:26;;22555:71;22623:1;22612:9;22608:17;22599:6;22555:71;:::i;:::-;22636:80;22712:2;22701:9;22697:18;22688:6;22636:80;:::i;:::-;22726:72;22794:2;22783:9;22779:18;22770:6;22726:72;:::i;:::-;22347:458;;;;;;:::o;22811:410::-;22851:7;22874:20;22892:1;22874:20;:::i;:::-;22869:25;;22908:20;22926:1;22908:20;:::i;:::-;22903:25;;22963:1;22960;22956:9;22985:30;23003:11;22985:30;:::i;:::-;22974:41;;23164:1;23155:7;23151:15;23148:1;23145:22;23125:1;23118:9;23098:83;23075:139;;23194:18;;:::i;:::-;23075:139;22859:362;22811:410;;;;:::o;23227:180::-;23275:77;23272:1;23265:88;23372:4;23369:1;23362:15;23396:4;23393:1;23386:15;23413:185;23453:1;23470:20;23488:1;23470:20;:::i;:::-;23465:25;;23504:20;23522:1;23504:20;:::i;:::-;23499:25;;23543:1;23533:35;;23548:18;;:::i;:::-;23533:35;23590:1;23587;23583:9;23578:14;;23413:185;;;;:::o;23604:225::-;23744:34;23740:1;23732:6;23728:14;23721:58;23813:8;23808:2;23800:6;23796:15;23789:33;23604:225;:::o;23835:366::-;23977:3;23998:67;24062:2;24057:3;23998:67;:::i;:::-;23991:74;;24074:93;24163:3;24074:93;:::i;:::-;24192:2;24187:3;24183:12;24176:19;;23835:366;;;:::o;24207:419::-;24373:4;24411:2;24400:9;24396:18;24388:26;;24460:9;24454:4;24450:20;24446:1;24435:9;24431:17;24424:47;24488:131;24614:4;24488:131;:::i;:::-;24480:139;;24207:419;;;:::o
Swarm Source
ipfs://293fad663497c5ca3547b29ea049560ef1a12a65b216fde1d06d50dab0f0900d
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.