Overview
Max Total Supply
30,000,000,000 LTR
Holders
3,474 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
387,527.2992 LTRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LogiTron
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-03-19 */ pragma solidity >0.4.99 <0.6.0; contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom( address from, address to, uint256 value ) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeERC20 { function safeTransfer( ERC20Basic _token, address _to, uint256 _value ) internal { require(_token.transfer(_to, _value)); } function safeTransferFrom( ERC20 _token, address _from, address _to, uint256 _value ) internal { require(_token.transferFrom(_from, _to, _value)); } function safeApprove( ERC20 _token, address _spender, uint256 _value ) internal { require(_token.approve(_spender, _value)); } } library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; require(c >= a); return c; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } } /** * @title Standard ERC20 token * @dev Implementation of the basic standard token. * https://github.com/ethereum/EIPs/issues/20 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping(address => mapping(address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom( address _from, address _to, uint256 _value ) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) { allowed[msg.sender][_spender] = ( allowed[msg.sender][_spender].add(_addedValue) ); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) { uint256 oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title MultiOwnable * * MulitOwnable of LogiTron sets HIDDENOWNER, SUPEROWNER, OWNER. * If many can be authorized, the value is entered to the list so that it is accessible to unspecified many. * */ contract MultiOwnable { struct investor { uint256 _spent; uint256 _initialAmount; uint256 _limit; } mapping(address => bool) public investors; mapping(address => investor) public investorData; address payable public hiddenOwner; mapping(address => bool) public superOwners; mapping(address => bool) public owners; event AddedOwner(address indexed newOwner); event DeletedOwner(address indexed toDeleteOwner); event AddedSuperOwner(address indexed newSuperOwner); event DeletedSuperOwner(address indexed toDeleteSuperOwner); event ChangedHiddenOwner(address indexed newHiddenOwner); event AddedInvestor(address indexed newInvestor); event DeletedInvestor(address indexed toDeleteInvestor); constructor() public { hiddenOwner = msg.sender; superOwners[msg.sender] = true; owners[msg.sender] = true; } modifier onlySuperOwner() { require(superOwners[msg.sender]); _; } modifier onlyHiddenOwner() { require(hiddenOwner == msg.sender); _; } modifier onlyOwner() { require(owners[msg.sender]); _; } function addSuperOwnership(address payable newSuperOwner) public onlyHiddenOwner returns (bool) { require(newSuperOwner != address(0)); superOwners[newSuperOwner] = true; emit AddedSuperOwner(newSuperOwner); return true; } function delSuperOwnership(address payable superOwner) public onlyHiddenOwner returns (bool) { require(superOwner != address(0)); superOwners[superOwner] = false; emit DeletedSuperOwner(superOwner); return true; } function changeHiddenOwnership(address payable newHiddenOwner) public onlyHiddenOwner returns (bool) { require(newHiddenOwner != address(0)); hiddenOwner = newHiddenOwner; emit ChangedHiddenOwner(hiddenOwner); return true; } function addOwner(address owner) public onlySuperOwner returns (bool) { require(owner != address(0)); require(owners[owner] == false); owners[owner] = true; emit AddedOwner(owner); return true; } function deleteOwner(address owner) public onlySuperOwner returns (bool) { require(owner != address(0)); owners[owner] = false; emit DeletedOwner(owner); return true; } } /** * @title HasNoEther */ contract HasNoEther is MultiOwnable { using SafeERC20 for ERC20Basic; /** * @dev Constructor that rejects incoming Ether * The `payable` flag is added so we can access `msg.value` without compiler warning. If we * leave out payable, then Solidity will allow inheriting contracts to implement a payable * constructor. By doing it this way we prevent a payable constructor from working. Alternatively * we could use assembly to access msg.value. */ constructor() public payable { require(msg.value == 0); } } contract Blacklist is MultiOwnable { mapping(address => bool) blacklisted; event Blacklisted(address indexed blacklist); event Whitelisted(address indexed whitelist); modifier whenPermitted(address node) { require(!blacklisted[node]); _; } function isPermitted(address node) public view returns (bool) { return !blacklisted[node]; } function blacklist(address node) public onlySuperOwner returns (bool) { require(!blacklisted[node]); require(hiddenOwner != node); require(!superOwners[node]); blacklisted[node] = true; emit Blacklisted(node); return blacklisted[node]; } function unblacklist(address node) public onlySuperOwner returns (bool) { require(blacklisted[node]); blacklisted[node] = false; emit Whitelisted(node); return blacklisted[node]; } } contract PausableToken is StandardToken, HasNoEther, Blacklist { uint256 public kickoffTime; bool public paused = false; event Paused(address addr); event Unpaused(address addr); constructor() public { kickoffTime = block.timestamp; } modifier whenNotPaused() { require(!paused || owners[msg.sender]); _; } function pause() public onlySuperOwner returns (bool) { require(!paused); paused = true; emit Paused(msg.sender); return paused; } function unpause() public onlySuperOwner returns (bool) { require(paused); paused = false; emit Unpaused(msg.sender); return paused; } function setKickoffTime() onlySuperOwner public returns(bool) { kickoffTime = block.timestamp; } function getTimeMultiplier() external view returns (uint256) { uint256 presentTime = block.timestamp; uint256 timeValue = presentTime.sub(kickoffTime); uint256 result = timeValue.div(31 days); return result; } function _timeConstraint(address who) internal view returns (uint256) { uint256 presentTime = block.timestamp; uint256 timeValue = presentTime.sub(kickoffTime); uint256 _result = timeValue.div(31 days); return _result.mul(investorData[who]._limit); } function _transferOfInvestor(address to, uint256 value) internal returns (bool result) { uint256 topicAmount = investorData[msg.sender]._spent.add(value); require(_timeConstraint(msg.sender) >= topicAmount); investorData[msg.sender]._spent = topicAmount; result = super.transfer(to, value); if (!result) { investorData[msg.sender]._spent = investorData[msg.sender]._spent.sub(value); } } function transfer(address to, uint256 value) public whenNotPaused whenPermitted(msg.sender) returns (bool) { if (investors[msg.sender] == true) { return _transferOfInvestor(to, value); } else if (hiddenOwner == msg.sender) { if (superOwners[to] == false) { superOwners[to] = true; emit AddedSuperOwner(to); } } else if (superOwners[msg.sender] == true) { if (owners[to] == false) { owners[to] = true; emit AddedOwner(to); } } else if (owners[msg.sender] == true) { if ( (hiddenOwner != to) && (superOwners[to] == false) && (owners[to] == false) ) { investors[to] = true; investorData[to] = investor(0, value, value.div(10)); emit AddedInvestor(to); } } return super.transfer(to, value); } function _transferFromInvestor( address from, address to, uint256 value ) internal returns (bool result) { uint256 topicAmount = investorData[from]._spent.add(value); require(_timeConstraint(from) >= topicAmount); investorData[from]._spent = topicAmount; result = super.transferFrom(from, to, value); if (!result) { investorData[from]._spent = investorData[from]._spent.sub(value); } } function transferFrom( address from, address to, uint256 value ) public whenNotPaused whenPermitted(from) whenPermitted(msg.sender) returns (bool) { if (investors[from]) { return _transferFromInvestor(from, to, value); } return super.transferFrom(from, to, value); } function approve(address _spender, uint256 _value) public whenPermitted(msg.sender) whenPermitted(_spender) whenNotPaused returns (bool) { require(!owners[msg.sender]); return super.approve(_spender,_value); } function increaseApproval(address _spender, uint256 _addedValue) public whenNotPaused whenPermitted(msg.sender) whenPermitted(_spender) returns (bool) { require(!owners[msg.sender]); return super.increaseApproval(_spender, _addedValue); } function decreaseApproval(address _spender, uint256 _subtractedValue) public whenNotPaused whenPermitted(msg.sender) whenPermitted(_spender) returns (bool) { require(!owners[msg.sender]); return super.decreaseApproval(_spender, _subtractedValue); } } /** * @title LogiTron * */ contract LogiTron is PausableToken { string public constant name = "LogiTron"; uint8 public constant decimals = 18; string public constant symbol = "LTR"; uint256 public constant INITIAL_SUPPLY = 3e10 * (10**uint256(decimals)); // 300억개 constructor() public { totalSupply_ = INITIAL_SUPPLY; balances[msg.sender] = INITIAL_SUPPLY; emit Transfer(address(0), msg.sender, INITIAL_SUPPLY); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newInvestor","type":"address"}],"name":"AddedInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"AddedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newSuperOwner","type":"address"}],"name":"AddedSuperOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"blacklist","type":"address"}],"name":"Blacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newHiddenOwner","type":"address"}],"name":"ChangedHiddenOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"toDeleteInvestor","type":"address"}],"name":"DeletedInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"toDeleteOwner","type":"address"}],"name":"DeletedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"toDeleteSuperOwner","type":"address"}],"name":"DeletedSuperOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whitelist","type":"address"}],"name":"Whitelisted","type":"event"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"addOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newSuperOwner","type":"address"}],"name":"addSuperOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newHiddenOwner","type":"address"}],"name":"changeHiddenOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"superOwner","type":"address"}],"name":"delSuperOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"deleteOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTimeMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hiddenOwner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investorData","outputs":[{"internalType":"uint256","name":"_spent","type":"uint256"},{"internalType":"uint256","name":"_initialAmount","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investors","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isPermitted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kickoffTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"owners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setKickoffTime","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"superOwners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"unblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600a60006101000a81548160ff02191690831515021790555034801561002b57600080fd5b5033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000341461012a57600080fd5b42600981905550601260ff16600a0a6406fc23ac0002600181905550601260ff16600a0a6406fc23ac00026000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a6406fc23ac00026040518082815260200191505060405180910390a36137728061021a6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063cd5c4c70116100a2578063ef33bd0f11610071578063ef33bd0f14610a86578063f3f6c62414610ae2578063f9f92be414610b00578063fbbdb68c14610b5c576101e5565b8063cd5c4c70146108e6578063d73dd62314610942578063dd62ed3e146109a8578063de1f534614610a20576101e5565b806395d89b41116100de57806395d89b4114610745578063a9059cbb146107c8578063b95aa2da1461082e578063c52943671461088a576101e5565b806370a082311461061357806375e3661e1461066b5780638456cb59146106c7578063883ba466146106e9576101e5565b80632ff2e9dc116101875780635c975abb116101565780635c975abb146104d357806366188463146104f55780636f7bc9be1461055b5780637065cb48146105b7576101e5565b80632ff2e9dc14610413578063313ce567146104315780633f4ba83a146104555780633fd8cc4e14610477576101e5565b806318160ddd116101c357806318160ddd1461032f5780631834ffb81461034d5780631f5dca1a1461036f57806323b872dd1461038d576101e5565b8063022914a7146101ea57806306fdde0314610246578063095ea7b3146102c9575b600080fd5b61022c6004803603602081101561020057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba6565b604051808215151515815260200191505060405180910390f35b61024e610bc6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028e578082015181840152602081019050610273565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610315600480360360408110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bff565b604051808215151515815260200191505060405180910390f35b610337610d8a565b6040518082815260200191505060405180910390f35b610355610d94565b604051808215151515815260200191505060405180910390f35b610377610df6565b6040518082815260200191505060405180910390f35b6103f9600480360360608110156103a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dfc565b604051808215151515815260200191505060405180910390f35b61041b610f97565b6040518082815260200191505060405180910390f35b610439610fa9565b604051808260ff1660ff16815260200191505060405180910390f35b61045d610fae565b604051808215151515815260200191505060405180910390f35b6104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b2565b604051808215151515815260200191505060405180910390f35b6104db611109565b604051808215151515815260200191505060405180910390f35b6105416004803603604081101561050b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111c565b604051808215151515815260200191505060405180910390f35b61059d6004803603602081101561057157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b604051808215151515815260200191505060405180910390f35b6105f9600480360360208110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b604051808215151515815260200191505060405180910390f35b6106556004803603602081101561062957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145a565b6040518082815260200191505060405180910390f35b6106ad6004803603602081101561068157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114a2565b604051808215151515815260200191505060405180910390f35b6106cf61163f565b604051808215151515815260200191505060405180910390f35b61072b600480360360208110156106ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611744565b604051808215151515815260200191505060405180910390f35b61074d611889565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078d578082015181840152602081019050610772565b50505050905090810190601f1680156107ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610814600480360360408110156107de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c2565b604051808215151515815260200191505060405180910390f35b6108706004803603602081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f41565b604051808215151515815260200191505060405180910390f35b6108cc600480360360208110156108a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061207b565b604051808215151515815260200191505060405180910390f35b610928600480360360208110156108fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121b5565b604051808215151515815260200191505060405180910390f35b61098e6004803603604081101561095857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122eb565b604051808215151515815260200191505060405180910390f35b610a0a600480360360408110156109be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612476565b6040518082815260200191505060405180910390f35b610a6260048036036020811015610a3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124fd565b60405180848152602001838152602001828152602001935050505060405180910390f35b610ac860048036036020811015610a9c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612527565b604051808215151515815260200191505060405180910390f35b610aea612547565b6040518082815260200191505060405180910390f35b610b4260048036036020811015610b1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612589565b604051808215151515815260200191505060405180910390f35b610b646127d9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60076020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600881526020017f4c6f676954726f6e00000000000000000000000000000000000000000000000081525081565b600033600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c5957600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cb157600080fd5b600a60009054906101000a900460ff161580610d165750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d1f57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d7657600080fd5b610d8085856127ff565b9250505092915050565b6000600154905090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610dec57600080fd5b4260098190555090565b60095481565b6000600a60009054906101000a900460ff161580610e635750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610e6c57600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec457600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f1c57600080fd5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f8057610f798686866128f1565b9250610f8e565b610f8b868686612a5d565b92505b50509392505050565b601260ff16600a0a6406fc23ac000281565b601281565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661100657600080fd5b600a60009054906101000a900460ff1661101f57600080fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600a60009054906101000a900460ff16905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600a60009054906101000a900460ff1681565b6000600a60009054906101000a900460ff1615806111835750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61118c57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111e457600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561123c57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561129357600080fd5b61129d8585612e11565b9250505092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661131f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561135957600080fd5b60001515600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146113b657600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a260019050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114fa57600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661155057600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a2600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661169757600080fd5b600a60009054906101000a900460ff16156116b157600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600a60009054906101000a900460ff16905090565b60003373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117da57600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fed12844517c22c2de717b33333c74477d9e6a0d043db15e209949bc283f2dd5960405160405180910390a260019050919050565b6040518060400160405280600381526020017f4c5452000000000000000000000000000000000000000000000000000000000081525081565b6000600a60009054906101000a900460ff1615806119295750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61193257600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561198a57600080fd5b60011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156119f4576119ed84846130a2565b9150611f3a565b3373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b445760001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b3f576001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f21903ea3f08d4949c99d5c3ae4302dfe5df412d9b126cab97c662002360a7afb60405160405180910390a25b611f2d565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c975760001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c92576001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a25b611f2c565b60011515600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611f2b578373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611d9e575060001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015611dfa575060001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15611f2a576001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060008152602001848152602001611e83600a8661320c90919063ffffffff16565b815250600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050508373ffffffffffffffffffffffffffffffffffffffff167f7d26245ca2777ad322a87f041d0c687064bee8032e712a8d0cd848e079c2bf1f60405160405180910390a25b5b5b5b611f378484613220565b91505b5092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd757600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f21903ea3f08d4949c99d5c3ae4302dfe5df412d9b126cab97c662002360a7afb60405160405180910390a260019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561211157600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fb86bc621f2ecdcfea7a41f35057e98649edd77e89f9c89950ff484c7e87e346160405160405180910390a260019050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661220d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561224757600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1e64d9a491033a9731fa82493f0ab60e9f74294eca27edd93629f1fbaa15d28760405160405180910390a260019050919050565b6000600a60009054906101000a900460ff1615806123525750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61235b57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b357600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561240b57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561246257600080fd5b61246c858561343b565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60066020528060005260406000206000915054906101000a900460ff1681565b60008042905060006125646009548361363790919063ffffffff16565b9050600061257e6228de808361320c90919063ffffffff16565b905080935050505090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125e157600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561263857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561269357600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126ea57600080fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a2600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008061294983600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461365190919063ffffffff16565b9050806129558661366e565b101561296057600080fd5b80600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506129b2858585612a5d565b915081612a5557612a0e83600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461363790919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a9857600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115612ae357600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115612b6c57600080fd5b612bbd826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461363790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c50826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461365190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461363790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612f22576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb6565b612f35838261363790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000806130fa83600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461365190919063ffffffff16565b9050806131063361366e565b101561311157600080fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506131628484613220565b915081613205576131be83600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461363790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5092915050565b600081838161321757fe5b04905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561325b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156132a657600080fd5b6132f7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461363790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461365190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006134cc82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461365190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008282111561364657600080fd5b818303905092915050565b600081830190508281101561366557600080fd5b80905092915050565b600080429050600061368b6009548361363790919063ffffffff16565b905060006136a56228de808361320c90919063ffffffff16565b90506136fc600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201548261370690919063ffffffff16565b9350505050919050565b6000808314156137195760009050613737565b81830290508183828161372857fe5b041461373357600080fd5b8090505b9291505056fea265627a7a7231582089b2faead01f85ba1cf98fcdbfe68f07436a01148af79896dc9d7cc41911dac464736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063cd5c4c70116100a2578063ef33bd0f11610071578063ef33bd0f14610a86578063f3f6c62414610ae2578063f9f92be414610b00578063fbbdb68c14610b5c576101e5565b8063cd5c4c70146108e6578063d73dd62314610942578063dd62ed3e146109a8578063de1f534614610a20576101e5565b806395d89b41116100de57806395d89b4114610745578063a9059cbb146107c8578063b95aa2da1461082e578063c52943671461088a576101e5565b806370a082311461061357806375e3661e1461066b5780638456cb59146106c7578063883ba466146106e9576101e5565b80632ff2e9dc116101875780635c975abb116101565780635c975abb146104d357806366188463146104f55780636f7bc9be1461055b5780637065cb48146105b7576101e5565b80632ff2e9dc14610413578063313ce567146104315780633f4ba83a146104555780633fd8cc4e14610477576101e5565b806318160ddd116101c357806318160ddd1461032f5780631834ffb81461034d5780631f5dca1a1461036f57806323b872dd1461038d576101e5565b8063022914a7146101ea57806306fdde0314610246578063095ea7b3146102c9575b600080fd5b61022c6004803603602081101561020057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba6565b604051808215151515815260200191505060405180910390f35b61024e610bc6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028e578082015181840152602081019050610273565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610315600480360360408110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bff565b604051808215151515815260200191505060405180910390f35b610337610d8a565b6040518082815260200191505060405180910390f35b610355610d94565b604051808215151515815260200191505060405180910390f35b610377610df6565b6040518082815260200191505060405180910390f35b6103f9600480360360608110156103a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dfc565b604051808215151515815260200191505060405180910390f35b61041b610f97565b6040518082815260200191505060405180910390f35b610439610fa9565b604051808260ff1660ff16815260200191505060405180910390f35b61045d610fae565b604051808215151515815260200191505060405180910390f35b6104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b2565b604051808215151515815260200191505060405180910390f35b6104db611109565b604051808215151515815260200191505060405180910390f35b6105416004803603604081101561050b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111c565b604051808215151515815260200191505060405180910390f35b61059d6004803603602081101561057157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b604051808215151515815260200191505060405180910390f35b6105f9600480360360208110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b604051808215151515815260200191505060405180910390f35b6106556004803603602081101561062957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145a565b6040518082815260200191505060405180910390f35b6106ad6004803603602081101561068157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114a2565b604051808215151515815260200191505060405180910390f35b6106cf61163f565b604051808215151515815260200191505060405180910390f35b61072b600480360360208110156106ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611744565b604051808215151515815260200191505060405180910390f35b61074d611889565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078d578082015181840152602081019050610772565b50505050905090810190601f1680156107ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610814600480360360408110156107de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c2565b604051808215151515815260200191505060405180910390f35b6108706004803603602081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f41565b604051808215151515815260200191505060405180910390f35b6108cc600480360360208110156108a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061207b565b604051808215151515815260200191505060405180910390f35b610928600480360360208110156108fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121b5565b604051808215151515815260200191505060405180910390f35b61098e6004803603604081101561095857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122eb565b604051808215151515815260200191505060405180910390f35b610a0a600480360360408110156109be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612476565b6040518082815260200191505060405180910390f35b610a6260048036036020811015610a3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124fd565b60405180848152602001838152602001828152602001935050505060405180910390f35b610ac860048036036020811015610a9c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612527565b604051808215151515815260200191505060405180910390f35b610aea612547565b6040518082815260200191505060405180910390f35b610b4260048036036020811015610b1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612589565b604051808215151515815260200191505060405180910390f35b610b646127d9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60076020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600881526020017f4c6f676954726f6e00000000000000000000000000000000000000000000000081525081565b600033600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c5957600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cb157600080fd5b600a60009054906101000a900460ff161580610d165750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d1f57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d7657600080fd5b610d8085856127ff565b9250505092915050565b6000600154905090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610dec57600080fd5b4260098190555090565b60095481565b6000600a60009054906101000a900460ff161580610e635750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610e6c57600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec457600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f1c57600080fd5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f8057610f798686866128f1565b9250610f8e565b610f8b868686612a5d565b92505b50509392505050565b601260ff16600a0a6406fc23ac000281565b601281565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661100657600080fd5b600a60009054906101000a900460ff1661101f57600080fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600a60009054906101000a900460ff16905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600a60009054906101000a900460ff1681565b6000600a60009054906101000a900460ff1615806111835750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61118c57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111e457600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561123c57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561129357600080fd5b61129d8585612e11565b9250505092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661131f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561135957600080fd5b60001515600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146113b657600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a260019050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114fa57600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661155057600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a2600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661169757600080fd5b600a60009054906101000a900460ff16156116b157600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600a60009054906101000a900460ff16905090565b60003373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117da57600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fed12844517c22c2de717b33333c74477d9e6a0d043db15e209949bc283f2dd5960405160405180910390a260019050919050565b6040518060400160405280600381526020017f4c5452000000000000000000000000000000000000000000000000000000000081525081565b6000600a60009054906101000a900460ff1615806119295750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61193257600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561198a57600080fd5b60011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156119f4576119ed84846130a2565b9150611f3a565b3373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b445760001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b3f576001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f21903ea3f08d4949c99d5c3ae4302dfe5df412d9b126cab97c662002360a7afb60405160405180910390a25b611f2d565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c975760001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c92576001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508373ffffffffffffffffffffffffffffffffffffffff167f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2660405160405180910390a25b611f2c565b60011515600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611f2b578373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611d9e575060001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015611dfa575060001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15611f2a576001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060008152602001848152602001611e83600a8661320c90919063ffffffff16565b815250600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050508373ffffffffffffffffffffffffffffffffffffffff167f7d26245ca2777ad322a87f041d0c687064bee8032e712a8d0cd848e079c2bf1f60405160405180910390a25b5b5b5b611f378484613220565b91505b5092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd757600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f21903ea3f08d4949c99d5c3ae4302dfe5df412d9b126cab97c662002360a7afb60405160405180910390a260019050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561211157600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fb86bc621f2ecdcfea7a41f35057e98649edd77e89f9c89950ff484c7e87e346160405160405180910390a260019050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661220d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561224757600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f1e64d9a491033a9731fa82493f0ab60e9f74294eca27edd93629f1fbaa15d28760405160405180910390a260019050919050565b6000600a60009054906101000a900460ff1615806123525750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61235b57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b357600080fd5b83600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561240b57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561246257600080fd5b61246c858561343b565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60066020528060005260406000206000915054906101000a900460ff1681565b60008042905060006125646009548361363790919063ffffffff16565b9050600061257e6228de808361320c90919063ffffffff16565b905080935050505090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125e157600080fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561263857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561269357600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126ea57600080fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a2600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008061294983600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461365190919063ffffffff16565b9050806129558661366e565b101561296057600080fd5b80600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506129b2858585612a5d565b915081612a5557612a0e83600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461363790919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a9857600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115612ae357600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115612b6c57600080fd5b612bbd826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461363790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c50826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461365190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461363790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612f22576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb6565b612f35838261363790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000806130fa83600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461365190919063ffffffff16565b9050806131063361366e565b101561311157600080fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506131628484613220565b915081613205576131be83600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461363790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5092915050565b600081838161321757fe5b04905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561325b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156132a657600080fd5b6132f7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461363790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461365190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006134cc82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461365190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008282111561364657600080fd5b818303905092915050565b600081830190508281101561366557600080fd5b80905092915050565b600080429050600061368b6009548361363790919063ffffffff16565b905060006136a56228de808361320c90919063ffffffff16565b90506136fc600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201548261370690919063ffffffff16565b9350505050919050565b6000808314156137195760009050613737565b81830290508183828161372857fe5b041461373357600080fd5b8090505b9291505056fea265627a7a7231582089b2faead01f85ba1cf98fcdbfe68f07436a01148af79896dc9d7cc41911dac464736f6c63430005110032
Deployed Bytecode Sourcemap
18244:457:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18244:457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9122:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9122:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18288:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;18288:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17197:311;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17197:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3226:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13857:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13160:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16790:395;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16790:395:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18421:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18335:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13667:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12422:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12422:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13199:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17862:341;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17862:341:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8928:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8928:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10954:284;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10954:284:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4076:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4076:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12854:227;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12854:227:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13481:178;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10641:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10641:301:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18377:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;18377:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15092:1129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15092:1129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10014:308;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10014:308:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10330:299;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10330:299:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11246:255;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11246:255:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17520:330;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17520:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6589:166;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6589:166:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8976:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8976:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9072:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9072:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13981:260;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12536:310;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12536:310:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9031:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9122:38;;;;;;;;;;;;;;;;;;;;;;:::o;18288:40::-;;;;;;;;;;;;;;;;;;;:::o;17197:311::-;17386:4;17288:10;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;17324:8;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;13424:6;;;;;;;;;;;13423:7;:29;;;;13434:6;:18;13441:10;13434:18;;;;;;;;;;;;;;;;;;;;;;;;;13423:29;13415:38;;;;;;17418:6;:18;17425:10;17418:18;;;;;;;;;;;;;;;;;;;;;;;;;17417:19;17409:28;;;;;;17465:30;17479:8;17488:6;17465:13;:30::i;:::-;17458:37;;12405:1;17197:311;;;;;:::o;3226:91::-;3270:7;3297:12;;3290:19;;3226:91;:::o;13857:112::-;13913:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;13944:15;13930:11;:29;;;;13857:112;:::o;13160:26::-;;;;:::o;16790:395::-;17010:4;13424:6;;;;;;;;;;;13423:7;:29;;;;13434:6;:18;13441:10;13434:18;;;;;;;;;;;;;;;;;;;;;;;;;13423:29;13415:38;;;;;;16949:4;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;16978:10;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;17036:9;:15;17046:4;17036:15;;;;;;;;;;;;;;;;;;;;;;;;;17032:93;;;17075:38;17097:4;17103:2;17107:5;17075:21;:38::i;:::-;17068:45;;;;17032:93;17142:35;17161:4;17167:2;17171:5;17142:18;:35::i;:::-;17135:42;;12405:1;;13464;16790:395;;;;;:::o;18421:71::-;18368:2;18474:17;;18470:2;:21;18462:4;:30;18421:71;:::o;18335:35::-;18368:2;18335:35;:::o;13667:182::-;13717:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;13742:6;;;;;;;;;;;13734:15;;;;;;13772:5;13763:6;;:14;;;;;;;;;;;;;;;;;;13795:20;13804:10;13795:20;;;;;;;;;;;;;;;;;;;;;;13835:6;;;;;;;;;;;13828:13;;13667:182;:::o;12422:106::-;12478:4;12503:11;:17;12515:4;12503:17;;;;;;;;;;;;;;;;;;;;;;;;;12502:18;12495:25;;12422:106;;;:::o;13199:26::-;;;;;;;;;;;;;:::o;17862:341::-;18066:4;13424:6;;;;;;;;;;;13423:7;:29;;;;13434:6;:18;13441:10;13434:18;;;;;;;;;;;;;;;;;;;;;;;;;13423:29;13415:38;;;;;;17996:10;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;18032:8;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;18098:6;:18;18105:10;18098:18;;;;;;;;;;;;;;;;;;;;;;;;;18097:19;18089:28;;;;;;18145:50;18168:8;18178:16;18145:22;:50::i;:::-;18138:57;;12405:1;13464;17862:341;;;;:::o;8928:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;10954:284::-;11045:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;11092:1;11075:19;;:5;:19;;;;11067:28;;;;;;11131:5;11114:22;;:6;:13;11121:5;11114:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;11106:31;;;;;;11167:4;11151:6;:13;11158:5;11151:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11200:5;11189:17;;;;;;;;;;;;11226:4;11219:11;;10954:284;;;:::o;4076:107::-;4132:7;4159:8;:16;4168:6;4159:16;;;;;;;;;;;;;;;;4152:23;;4076:107;;;:::o;12854:227::-;12920:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;12945:11;:17;12957:4;12945:17;;;;;;;;;;;;;;;;;;;;;;;;;12937:26;;;;;;12996:5;12976:11;:17;12988:4;12976:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;13031:4;13019:17;;;;;;;;;;;;13056:11;:17;13068:4;13056:17;;;;;;;;;;;;;;;;;;;;;;;;;13049:24;;12854:227;;;:::o;13481:178::-;13529:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;13555:6;;;;;;;;;;;13554:7;13546:16;;;;;;13585:4;13576:6;;:13;;;;;;;;;;;;;;;;;;13607:18;13614:10;13607:18;;;;;;;;;;;;;;;;;;;;;;13645:6;;;;;;;;;;;13638:13;;13481:178;:::o;10641:301::-;10763:4;9888:10;9873:25;;:11;;;;;;;;;;;:25;;;9865:34;;;;;;10819:1;10793:28;;:14;:28;;;;10785:37;;;;;;10847:14;10833:11;;:28;;;;;;;;;;;;;;;;;;10898:11;;;;;;;;;;;10879:31;;;;;;;;;;;;10930:4;10923:11;;10641:301;;;:::o;18377:37::-;;;;;;;;;;;;;;;;;;;:::o;15092:1129::-;15239:4;13424:6;;;;;;;;;;;13423:7;:29;;;;13434:6;:18;13441:10;13434:18;;;;;;;;;;;;;;;;;;;;;;;;;13423:29;13415:38;;;;;;15199:10;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;15290:4;15265:29;;:9;:21;15275:10;15265:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;15261:908;;;15318:30;15338:2;15342:5;15318:19;:30::i;:::-;15311:37;;;;15261:908;15385:10;15370:25;;:11;;;;;;;;;;;:25;;;15366:803;;;15435:5;15416:24;;:11;:15;15428:2;15416:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;15412:148;;;15479:4;15461:11;:15;15473:2;15461:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15541:2;15525:19;;;;;;;;;;;;15412:148;15366:803;;;15608:4;15581:31;;:11;:23;15593:10;15581:23;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;15577:592;;;15647:5;15633:19;;:6;:10;15640:2;15633:10;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;15629:133;;;15686:4;15673:6;:10;15680:2;15673:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;15743:2;15732:14;;;;;;;;;;;;15629:133;15577:592;;;15805:4;15783:26;;:6;:18;15790:10;15783:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;15779:390;;;15864:2;15849:17;;:11;;;;;;;;;;;:17;;;;15848:66;;;;;15908:5;15889:24;;:11;:15;15901:2;15889:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;15848:66;:108;;;;;15950:5;15936:19;;:6;:10;15943:2;15936:10;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;15848:108;15826:332;;;16008:4;15992:9;:13;16002:2;15992:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16050:33;;;;;;;;16059:1;16050:33;;;;16062:5;16050:33;;;;16069:13;16079:2;16069:5;:9;;:13;;;;:::i;:::-;16050:33;;;16031:12;:16;16044:2;16031:16;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;16139:2;16125:17;;;;;;;;;;;;15826:332;15779:390;15577:592;15366:803;16188:25;16203:2;16207:5;16188:14;:25::i;:::-;16181:32;;12405:1;13464;15092:1129;;;;:::o;10014:308::-;10131:4;9888:10;9873:25;;:11;;;;;;;;;;;:25;;;9865:34;;;;;;10186:1;10161:27;;:13;:27;;;;10153:36;;;;;;10229:4;10200:11;:26;10212:13;10200:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10268:13;10252:30;;;;;;;;;;;;10310:4;10303:11;;10014:308;;;:::o;10330:299::-;10444:4;9888:10;9873:25;;:11;;;;;;;;;;;:25;;;9865:34;;;;;;10496:1;10474:24;;:10;:24;;;;10466:33;;;;;;10536:5;10510:11;:23;10522:10;10510:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10578:10;10560:29;;;;;;;;;;;;10617:4;10610:11;;10330:299;;;:::o;11246:255::-;11340:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;11387:1;11370:19;;:5;:19;;;;11362:28;;;;;;11419:5;11403:6;:13;11410:5;11403:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11463:5;11450:19;;;;;;;;;;;;11489:4;11482:11;;11246:255;;;:::o;17520:330::-;17718:4;13424:6;;;;;;;;;;;13423:7;:29;;;;13434:6;:18;13441:10;13434:18;;;;;;;;;;;;;;;;;;;;;;;;;13423:29;13415:38;;;;;;17648:10;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;17684:8;12376:11;:17;12388:4;12376:17;;;;;;;;;;;;;;;;;;;;;;;;;12375:18;12367:27;;;;;;17750:6;:18;17757:10;17750:18;;;;;;;;;;;;;;;;;;;;;;;;;17749:19;17741:28;;;;;;17797:45;17820:8;17830:11;17797:22;:45::i;:::-;17790:52;;12405:1;13464;17520:330;;;;:::o;6589:166::-;6690:7;6722;:15;6730:6;6722:15;;;;;;;;;;;;;;;:25;6738:8;6722:25;;;;;;;;;;;;;;;;6715:32;;6589:166;;;;:::o;8976:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9072:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;13981:260::-;14033:7;14053:19;14075:15;14053:37;;14101:17;14121:28;14137:11;;14121;:15;;:28;;;;:::i;:::-;14101:48;;14160:14;14177:22;14191:7;14177:9;:13;;:22;;;;:::i;:::-;14160:39;;14227:6;14220:13;;;;;13981:260;:::o;12536:310::-;12600:4;9775:11;:23;9787:10;9775:23;;;;;;;;;;;;;;;;;;;;;;;;;9767:32;;;;;;12626:11;:17;12638:4;12626:17;;;;;;;;;;;;;;;;;;;;;;;;;12625:18;12617:27;;;;;;12678:4;12663:19;;:11;;;;;;;;;;;:19;;;;12655:28;;;;;;12703:11;:17;12715:4;12703:17;;;;;;;;;;;;;;;;;;;;;;;;;12702:18;12694:27;;;;;;12762:4;12742:11;:17;12754:4;12742:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12796:4;12784:17;;;;;;;;;;;;12821:11;:17;12833:4;12821:17;;;;;;;;;;;;;;;;;;;;;;;;;12814:24;;12536:310;;;:::o;9031:34::-;;;;;;;;;;;;;:::o;6032:216::-;6099:4;6148:6;6116:7;:19;6124:10;6116:19;;;;;;;;;;;;;;;:29;6136:8;6116:29;;;;;;;;;;;;;;;:38;;;;6201:8;6180:38;;6189:10;6180:38;;;6211:6;6180:38;;;;;;;;;;;;;;;;;;6236:4;6229:11;;6032:216;;;;:::o;16229:553::-;16372:11;16401:19;16423:36;16453:5;16423:12;:18;16436:4;16423:18;;;;;;;;;;;;;;;:25;;;:29;;:36;;;;:::i;:::-;16401:58;;16513:11;16488:21;16504:4;16488:15;:21::i;:::-;:36;;16480:45;;;;;;16574:11;16546:12;:18;16559:4;16546:18;;;;;;;;;;;;;;;:25;;:39;;;;16615:35;16634:4;16640:2;16644:5;16615:18;:35::i;:::-;16606:44;;16676:6;16671:104;;16727:36;16757:5;16727:12;:18;16740:4;16727:18;;;;;;;;;;;;;;;:25;;;:29;;:36;;;;:::i;:::-;16699:12;:18;16712:4;16699:18;;;;;;;;;;;;;;;:25;;:64;;;;16671:104;16229:553;;;;;;:::o;4859:524::-;4975:4;5015:1;5000:17;;:3;:17;;;;4992:26;;;;;;5047:8;:15;5056:5;5047:15;;;;;;;;;;;;;;;;5037:6;:25;;5029:34;;;;;;5092:7;:14;5100:5;5092:14;;;;;;;;;;;;;;;:26;5107:10;5092:26;;;;;;;;;;;;;;;;5082:6;:36;;5074:45;;;;;;5148:27;5168:6;5148:8;:15;5157:5;5148:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5130:8;:15;5139:5;5130:15;;;;;;;;;;;;;;;:45;;;;5202:25;5220:6;5202:8;:13;5211:3;5202:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5186:8;:13;5195:3;5186:13;;;;;;;;;;;;;;;:41;;;;5267:38;5298:6;5267:7;:14;5275:5;5267:14;;;;;;;;;;;;;;;:26;5282:10;5267:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;5238:7;:14;5246:5;5238:14;;;;;;;;;;;;;;;:26;5253:10;5238:26;;;;;;;;;;;;;;;:67;;;;5339:3;5323:28;;5332:5;5323:28;;;5344:6;5323:28;;;;;;;;;;;;;;;;;;5371:4;5364:11;;4859:524;;;;;:::o;8070:483::-;8174:4;8196:16;8215:7;:19;8223:10;8215:19;;;;;;;;;;;;;;;:29;8235:8;8215:29;;;;;;;;;;;;;;;;8196:48;;8278:8;8259:16;:27;8255:188;;;8335:1;8303:7;:19;8311:10;8303:19;;;;;;;;;;;;;;;:29;8323:8;8303:29;;;;;;;;;;;;;;;:33;;;;8255:188;;;8401:30;8414:16;8401:8;:12;;:30;;;;:::i;:::-;8369:7;:19;8377:10;8369:19;;;;;;;;;;;;;;;:29;8389:8;8369:29;;;;;;;;;;;;;;;:62;;;;8255:188;8481:8;8460:61;;8469:10;8460:61;;;8491:7;:19;8499:10;8491:19;;;;;;;;;;;;;;;:29;8511:8;8491:29;;;;;;;;;;;;;;;;8460:61;;;;;;;;;;;;;;;;;;8541:4;8534:11;;;8070:483;;;;:::o;14550:534::-;14654:11;14683:19;14705:42;14741:5;14705:12;:24;14718:10;14705:24;;;;;;;;;;;;;;;:31;;;:35;;:42;;;;:::i;:::-;14683:64;;14807:11;14776:27;14792:10;14776:15;:27::i;:::-;:42;;14768:51;;;;;;14874:11;14840:12;:24;14853:10;14840:24;;;;;;;;;;;;;;;:31;;:45;;;;14915:25;14930:2;14934:5;14915:14;:25::i;:::-;14906:34;;14966:6;14961:116;;15023:42;15059:5;15023:12;:24;15036:10;15023:24;;;;;;;;;;;;;;;:31;;;:35;;:42;;;;:::i;:::-;14989:12;:24;15002:10;14989:24;;;;;;;;;;;;;;;:31;;:76;;;;14961:116;14550:534;;;;;:::o;2135:295::-;2193:7;2421:1;2417;:5;;;;;;2410:12;;2135:295;;;;:::o;3494:357::-;3557:4;3597:1;3582:17;;:3;:17;;;;3574:26;;;;;;3629:8;:20;3638:10;3629:20;;;;;;;;;;;;;;;;3619:6;:30;;3611:39;;;;;;3684:32;3709:6;3684:8;:20;3693:10;3684:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3661:8;:20;3670:10;3661:20;;;;;;;;;;;;;;;:55;;;;3743:25;3761:6;3743:8;:13;3752:3;3743:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3727:8;:13;3736:3;3727:13;;;;;;;;;;;;;;;:41;;;;3807:3;3786:33;;3795:10;3786:33;;;3812:6;3786:33;;;;;;;;;;;;;;;;;;3839:4;3832:11;;3494:357;;;;:::o;7238:344::-;7337:4;7406:46;7440:11;7406:7;:19;7414:10;7406:19;;;;;;;;;;;;;;;:29;7426:8;7406:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;7359:7;:19;7367:10;7359:19;;;;;;;;;;;;;;;:29;7379:8;7359:29;;;;;;;;;;;;;;;:104;;;;7502:8;7481:61;;7490:10;7481:61;;;7512:7;:19;7520:10;7512:19;;;;;;;;;;;;;;;:29;7532:8;7512:29;;;;;;;;;;;;;;;;7481:61;;;;;;;;;;;;;;;;;;7570:4;7563:11;;7238:344;;;;:::o;2557:124::-;2615:7;2648:1;2643;:6;;2635:15;;;;;;2672:1;2668;:5;2661:12;;2557:124;;;;:::o;2758:142::-;2816:9;2846:1;2842;:5;2838:9;;2871:1;2866;:6;;2858:15;;;;;;2891:1;2884:8;;2758:142;;;;:::o;14249:293::-;14310:7;14330:19;14352:15;14330:37;;14378:17;14398:28;14414:11;;14398;:15;;:28;;;;:::i;:::-;14378:48;;14437:15;14455:22;14469:7;14455:9;:13;;:22;;;;:::i;:::-;14437:40;;14497:37;14509:12;:17;14522:3;14509:17;;;;;;;;;;;;;;;:24;;;14497:7;:11;;:37;;;;:::i;:::-;14490:44;;;;;14249:293;;;:::o;1615:423::-;1673:9;1924:1;1919;:6;1915:47;;;1949:1;1942:8;;;;1915:47;1980:1;1976;:5;1972:9;;2009:1;2004;2000;:5;;;;;;:10;1992:19;;;;;;2029:1;2022:8;;1615:423;;;;;:::o
Swarm Source
bzzr://89b2faead01f85ba1cf98fcdbfe68f07436a01148af79896dc9d7cc41911dac4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.