Feature Tip: Add private address tag to any address under My Name Tag !
This nametag was submitted by Kleros Curate.
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 43,863 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Use Item | 17304369 | 601 days ago | IN | 0 ETH | 0.00308859 | ||||
Use Item | 17304365 | 601 days ago | IN | 0 ETH | 0.00274743 | ||||
Use Item | 17304361 | 601 days ago | IN | 0 ETH | 0.00264373 | ||||
Use Item | 17304357 | 601 days ago | IN | 0 ETH | 0.00275036 | ||||
Use Item | 17304350 | 601 days ago | IN | 0 ETH | 0.00276488 | ||||
Use Item | 17304344 | 601 days ago | IN | 0 ETH | 0.00287009 | ||||
Use Item | 17304339 | 601 days ago | IN | 0 ETH | 0.00311761 | ||||
Use Item | 17304332 | 601 days ago | IN | 0 ETH | 0.00274741 | ||||
Use Item | 17304327 | 601 days ago | IN | 0 ETH | 0.00252012 | ||||
Use Item | 17304322 | 601 days ago | IN | 0 ETH | 0.00293 | ||||
Use Item | 17304317 | 601 days ago | IN | 0 ETH | 0.00263281 | ||||
Use Item | 17304312 | 601 days ago | IN | 0 ETH | 0.00272804 | ||||
Open Chest | 17304273 | 601 days ago | IN | 0 ETH | 0.00331938 | ||||
Open Chest | 17304270 | 601 days ago | IN | 0 ETH | 0.00325194 | ||||
Open Chest | 17304265 | 601 days ago | IN | 0 ETH | 0.00284264 | ||||
Open Chest | 17304260 | 601 days ago | IN | 0 ETH | 0.00278231 | ||||
Open Chest | 17304255 | 601 days ago | IN | 0 ETH | 0.00313457 | ||||
Open Chest | 17304250 | 601 days ago | IN | 0 ETH | 0.00310259 | ||||
Open Chest | 17304246 | 601 days ago | IN | 0 ETH | 0.00327937 | ||||
Open Chest | 17304241 | 601 days ago | IN | 0 ETH | 0.00397435 | ||||
Open Chest | 17304236 | 601 days ago | IN | 0 ETH | 0.00409531 | ||||
Open Chest | 17304231 | 601 days ago | IN | 0 ETH | 0.00379154 | ||||
Open Chest | 17304226 | 601 days ago | IN | 0 ETH | 0.00302507 | ||||
Open Chest | 17304221 | 601 days ago | IN | 0 ETH | 0.00309296 | ||||
Open Chest | 17304216 | 601 days ago | IN | 0 ETH | 0.00350762 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BAPOrchestratorV3
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 // solhint-disable-next-line pragma solidity 0.8.12; import "@openzeppelin/contracts/access/Ownable.sol"; import "./reduced_interfaces/BAPGenesisInterface.sol"; import "./reduced_interfaces/BAPMethaneInterface.sol"; import "./reduced_interfaces/BAPUtilitiesInterface.sol"; import "./reduced_interfaces/BAPTeenBullsInterface.sol"; import "./reduced_interfaces/BAPOrchestratorInterfaceV2.sol"; import "./IERC721Receiver.sol"; contract BAPOrchestratorV3 is Ownable, IERC721Receiver { string public constant project = "Bulls & Apes Project"; uint256 public constant startTime = 1665291600; uint256 public timeCounter = 1 days; uint256 public powerCooldown = 14 days; uint256 private lastTokenReceived; address public treasuryWallet; address public secret; bool public claimFlag = true; bool public refundFlag = false; bool private isReviving = false; mapping(uint256 => uint256) public breedingsLeft; mapping(uint256 => uint256) public claimedMeth; mapping(uint256 => uint256) public claimedTeenMeth; mapping(uint256 => uint256) public lastChestOpen; mapping(uint256 => bool) public isGod; mapping(uint256 => bool) public prevClaimed; mapping(address => uint256) public userLastClaim; BAPGenesisInterface public bapGenesis; BAPMethaneInterface public bapMeth; BAPUtilitiesInterface public bapUtilities; BAPTeenBullsInterface public bapTeenBulls; BAPOrchestratorInterfaceV2 public bapOrchestratorV2; event CHEST_OPENED( uint256 num, uint256 godId, uint256 prize, uint256 timestamp ); event METH_CLAIMED(address user, uint256 amount, uint256 timestamp); event GOD_MINTED(address user, uint256 id, uint256 timestamp); event TEEN_RESURRECTED( address user, uint256 sacrificed, uint256 resurrected, uint256 newlyMinted ); constructor( address _bapGenesis, address _bapMethane, address _bapUtilities, address _bapTeenBulls, address _orchestratorV2 ) { bapGenesis = BAPGenesisInterface(_bapGenesis); bapMeth = BAPMethaneInterface(_bapMethane); bapUtilities = BAPUtilitiesInterface(_bapUtilities); bapTeenBulls = BAPTeenBullsInterface(_bapTeenBulls); bapOrchestratorV2 = BAPOrchestratorInterfaceV2(_orchestratorV2); } modifier noZeroAddress(address _address) { require(_address != address(0), "200:ZERO_ADDRESS"); _; } // WRITE FUNCTIONS function claimMeth( uint256[] memory bulls, uint256[] memory gods, uint256[] memory teens ) public { require(claimFlag, "Claim is disabled"); uint256 claimableMeth; for (uint256 i; i < bulls.length; i++) { claimableMeth += _claimMeth(bulls[i], 0); } for (uint256 i; i < gods.length; i++) { require(godBulls(gods[i]), "Not a god bull"); claimableMeth += _claimMeth(gods[i], 1); } for (uint256 i; i < teens.length; i++) { require(isResurrected(teens[i]), "Not a resurrected teen"); claimableMeth += _claimMeth(teens[i], 2); } bapMeth.claim(msg.sender, claimableMeth); } function generateTeenBull() public { bapMeth.pay(600, 300); bapUtilities.burn(1, 1); bapTeenBulls.generateTeenBull(); } function generateGodBull( bytes memory signature, uint256 bull1, uint256 bull2, uint256 bull3, uint256 bull4 ) public { require( _verifyHashSignature( keccak256(abi.encode(msg.sender, bull1, bull2, bull3, bull4)), signature ), "Signature is invalid" ); bapMeth.pay(4800, 2400); bapUtilities.burn(2, 1); _burnTeen(bull1); _burnTeen(bull2); _burnTeen(bull3); _burnTeen(bull4); uint256 id = bapGenesis.minted() + 1; prevClaimed[id] = true; claimedMeth[id] = getClaimableMeth(id, 1); bapGenesis.generateGodBull(); emit GOD_MINTED(msg.sender, id, block.timestamp); } function buyIncubator( bytes memory signature, uint256 bull1, uint256 bull2 ) public { require( _verifyHashSignature( keccak256(abi.encode(msg.sender, bull1, bull2)), signature ), "Signature is invalid" ); bapMeth.pay(600, 300); _breedToken(bull1); _breedToken(bull2); bapUtilities.purchaseIncubator(); } function buyMergeOrb(uint256 teen) public { bapMeth.pay(2400, 1200); _burnTeen(teen); bapUtilities.purchaseMergerOrb(); } function refund(uint256 tokenId) external noZeroAddress(treasuryWallet) { require(availableForRefund(tokenId), "Token not available for refund"); bapGenesis.refund(msg.sender, tokenId); bapGenesis.safeTransferFrom(msg.sender, treasuryWallet, tokenId); } // NEW FUNCTIONS function openChest( uint256 godId, uint256 guild, uint256 seed, bool hasPower, bytes memory signature ) external { require(seed > block.timestamp, "Seed is no longer valid"); require( _verifyHashSignature( keccak256(abi.encode(msg.sender, godId, guild, seed, hasPower)), signature ), "Signature is invalid" ); require(bapGenesis.ownerOf(godId) == msg.sender, "Not the god owner"); require(godBulls(godId), "Not a god bull"); if ( !hasPower || lastChestOpen[godId] + powerCooldown > block.timestamp ) { require( lastChestOpen[godId] + 20 minutes > block.timestamp, "Re open time elapsed" ); bapMeth.pay(1200, 1200); lastChestOpen[godId] = block.timestamp - 21 minutes; } else { bapMeth.pay(600, 600); lastChestOpen[godId] = block.timestamp; } uint256 num = random(seed) % 100; uint256 prize; if (num < 10) { prize = 20 + guild; bapUtilities.airdrop(msg.sender, 1, (prize)); // UTILITIE #20 - 23 METH MAKER - 10% } else if (num < 40) { prize = 30 + guild; bapUtilities.airdrop(msg.sender, 1, (prize)); // UTILITIE #30 - 33 RESURRECTION - 30% } else { prize = 40 + guild; bapUtilities.airdrop(msg.sender, 1, (prize)); // UTILITIE #40 - 43 BREED REPLENISH - 60% } emit CHEST_OPENED(num, godId, prize, block.timestamp); } function useItem( uint256 item, uint256 tokenId, uint256 godId, uint256 resurrected, bytes memory signature ) external { require( _verifyHashSignature( keccak256( abi.encode(msg.sender, item, tokenId, godId, resurrected) ), signature ), "Signature is invalid" ); bapUtilities.burn(item, 1); // #30 - 33 RESURRECTION, #40 - 43 BREED REPLENISH if (item >= 30 && item < 35) { require(godBulls(godId), "You need to use a good"); require( bapGenesis.ownerOf(godId) == msg.sender, "Not the god owner" ); _burnTeen(tokenId); isReviving = true; bapTeenBulls.airdrop(address(this), 1); claimedTeenMeth[lastTokenReceived] = getClaimableMeth( lastTokenReceived, 2 ); isReviving = false; bapTeenBulls.safeTransferFrom( address(this), msg.sender, lastTokenReceived ); emit TEEN_RESURRECTED( msg.sender, tokenId, resurrected, lastTokenReceived ); lastTokenReceived = 0; } else if (item >= 40 && item < 45) { require( bapGenesis.ownerOf(tokenId) == msg.sender, "Only the owner can replenish" ); require( !godBulls(tokenId), "God bulls cannot claim extra breeding" ); uint256 currentBreeds = breedings(tokenId); require(currentBreeds < 3, "Bull has all breeds available"); breedingsLeft[tokenId] = 3 - currentBreeds; } else { require(false, "Wrong item id"); } } function claimTeenMeth( uint256 amount, uint256 seed, bytes memory signature ) public { require(seed > block.timestamp, "Seed is no longer valid"); require( userLastClaim[msg.sender] + 1 days < block.timestamp, "Can claim only once a day" ); require( _verifyHashSignature( keccak256(abi.encode(amount, seed, msg.sender)), signature ), "Signature is invalid" ); userLastClaim[msg.sender] = block.timestamp; bapMeth.claim(msg.sender, amount); emit METH_CLAIMED(msg.sender, amount, block.timestamp); } // BULK FUNCTIONS function claimAllMeth( uint256[] memory bulls, uint256[] memory gods, uint256[] memory teens, uint256 amount, uint256 seed, bytes memory signature ) external { claimMeth(bulls, gods, teens); claimTeenMeth(amount, seed, signature); } function breedAndIncubate( bytes memory signature, uint256 bull1, uint256 bull2 ) external { buyIncubator(signature, bull1, bull2); generateTeenBull(); } function buyOrbAndSummon( uint256 teen, bytes memory signature, uint256 bull1, uint256 bull2, uint256 bull3, uint256 bull4 ) external { buyMergeOrb(teen); generateGodBull(signature, bull1, bull2, bull3, bull4); } // INTERNAL FUNCTIONS function _claimMeth(uint256 tokenId, uint256 _type) internal returns (uint256 amount) { amount = getClaimableMeth(tokenId, _type); if (_type == 2) { require( bapTeenBulls.ownerOf(tokenId) == msg.sender, "Only the owner can claim" ); claimedTeenMeth[tokenId] += amount; } else { require( bapGenesis.ownerOf(tokenId) == msg.sender, "Only the owner can claim" ); claimedMeth[tokenId] += amount; if (!godBulls(tokenId) && breedings(tokenId) == 0) { amount += amount / 2; } if (!prevClaimed[tokenId]) { amount += getOldClaimableMeth(tokenId, godBulls(tokenId)); prevClaimed[tokenId] = true; } } } function _breedToken(uint256 tokenId) internal { require( bapGenesis.ownerOf(tokenId) == msg.sender, "Only the owner can breed" ); uint256 currentBreeds = bapGenesis.breedings(tokenId); if (breedings(tokenId) == 1) { uint256 claimableMeth = _claimMeth(tokenId, 0); if (claimableMeth > 0) { bapMeth.claim(msg.sender, claimableMeth); } } if (currentBreeds != 0) { bapGenesis.updateBullBreedings(tokenId); } else { require(breedingsLeft[tokenId] != 0, "No more breadings left"); breedingsLeft[tokenId]--; } } function _burnTeen(uint256 tokenId) internal { require( bapTeenBulls.ownerOf(tokenId) == msg.sender, "Only the owner can burn" ); require(claimedTeenMeth[tokenId] == 0, "Can't burn resurrected teens"); bapTeenBulls.burnTeenBull(tokenId); } function random(uint256 seed) internal view returns (uint256) { return uint256( keccak256( abi.encodePacked( seed, block.timestamp, gasleft(), tx.origin ) ) ); } function _dailyRewards(uint256 _type) internal pure returns (uint256) { if (_type == 0) { return 10; } else if (_type == 1) { return 20; } else { return 5; } } function _refundPeriodAllowed() internal view returns (bool) { return block.timestamp >= bapGenesis.genesisTimestamp() + 31 days && block.timestamp <= bapGenesis.genesisTimestamp() + 180 days; } function _verifyHashSignature(bytes32 freshHash, bytes memory signature) internal view returns (bool) { bytes32 hash = keccak256( abi.encodePacked("\x19Ethereum Signed Message:\n32", freshHash) ); bytes32 r; bytes32 s; uint8 v; if (signature.length != 65) { return false; } assembly { r := mload(add(signature, 32)) s := mload(add(signature, 64)) v := byte(0, mload(add(signature, 96))) } if (v < 27) { v += 27; } address signer = address(0); if (v == 27 || v == 28) { // solium-disable-next-line arg-overflow signer = ecrecover(hash, v, r, s); } return secret == signer; } // VIEW FUNCTIONS function breedings(uint256 tokenId) public view returns (uint256) { uint256 currentBreeds = bapGenesis.breedings(tokenId); return currentBreeds + breedingsLeft[tokenId]; } function getClaimableMeth(uint256 tokenId, uint256 _type) public view returns (uint256) { uint256 claimed = 0; if (_type == 2) { claimed = claimedTeenMeth[tokenId]; } else { claimed = claimedMeth[tokenId]; } uint256 timeFromCreation = (block.timestamp - startTime) / (timeCounter); return (timeFromCreation * _dailyRewards(_type)) - claimed; } function getOldClaimableMeth(uint256 tokenId, bool isGod) public view returns (uint256 methAmount) { if (prevClaimed[tokenId]) { return 0; } uint256 mintDate = bapOrchestratorV2.bullLastClaim(tokenId); uint256 claimed = 0; uint256 dailyRewards = isGod ? 20 : 10; if (mintDate == 0) { if (isGod) { mintDate = bapOrchestratorV2.godsMintingDate(tokenId); } else { mintDate = bapGenesis.mintingDatetime(tokenId); } claimed = bapOrchestratorV2.totalClaimed(tokenId); } else if (!isGod && breedings(tokenId) == 0) { dailyRewards = 15; } if (mintDate > startTime) { return 0; } uint256 timeFromCreation = (startTime - mintDate) / (timeCounter); methAmount = dailyRewards * timeFromCreation - claimed; } function godBulls(uint256 tokenId) public view returns (bool) { return tokenId > 10010 || isGod[tokenId]; } function isResurrected(uint256 tokenId) public view returns (bool) { return claimedTeenMeth[tokenId] != 0; } function availableForRefund(uint256 tokenId) public view returns (bool) { return (_refundPeriodAllowed() || refundFlag) && bapGenesis.breedings(tokenId) == 3 && bapOrchestratorV2.totalClaimed(tokenId) == 0 && claimedMeth[tokenId] == 0 && !prevClaimed[tokenId]; } function onERC721Received( address, address, uint256 tokenId, bytes memory ) external virtual override returns (bytes4) { require( msg.sender == address(bapTeenBulls), "Only receive from BAP Teens" ); require(isReviving, "Only accept transfers while reviving"); lastTokenReceived = tokenId; return this.onERC721Received.selector; } // OWNER FUNCTIONS function initializeGodBull(uint256[] memory gods, bool godFlag) external onlyOwner { for (uint256 i; i < gods.length; i++) { isGod[gods[i]] = godFlag; } } function transferExternalOwnership(address _contract, address _newOwner) external onlyOwner noZeroAddress(_newOwner) { Ownable(_contract).transferOwnership(_newOwner); } function utilitiesAirdrop( address _to, uint256 amount, uint256 utility ) external onlyOwner noZeroAddress(_to) { bapUtilities.airdrop(_to, amount, utility); } function teenAirdrop(address _to, uint256 amount) external onlyOwner noZeroAddress(_to) { bapTeenBulls.airdrop(_to, amount); } function setGenesisContract(address _newAddress) external onlyOwner noZeroAddress(_newAddress) { bapGenesis = BAPGenesisInterface(_newAddress); } function setMethaneContract(address _newAddress) external onlyOwner noZeroAddress(_newAddress) { bapMeth = BAPMethaneInterface(_newAddress); } function setUtilitiesContract(address _newAddress) external onlyOwner noZeroAddress(_newAddress) { bapUtilities = BAPUtilitiesInterface(_newAddress); } function setTeenBullsContract(address _newAddress) external onlyOwner noZeroAddress(_newAddress) { bapTeenBulls = BAPTeenBullsInterface(_newAddress); } function setTreasuryWallet(address _newTreasuryWallet) external onlyOwner noZeroAddress(_newTreasuryWallet) { treasuryWallet = _newTreasuryWallet; } function setWhitelistedAddress(address _secret) external onlyOwner noZeroAddress(_secret) { secret = _secret; } function setTimeCounter(uint256 _timeCounter) external onlyOwner { timeCounter = _timeCounter; } function setPowerCooldown(uint256 _powerCooldown) external onlyOwner { powerCooldown = _powerCooldown; } function setRefundFlag(bool _refundFlag) external onlyOwner { refundFlag = _refundFlag; } function setClaimFlag(bool _claimFlag) external onlyOwner { claimFlag = _claimFlag; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface BAPUtilitiesInterface { function burn(uint256, uint256) external; function purchaseIncubator() external; function purchaseMergerOrb() external; function transferOwnership(address) external; function airdrop( address, uint256, uint256 ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface BAPTeenBullsInterface { function generateTeenBull() external; function generateMergerOrb() external; function ownerOf(uint256) external view returns (address); function burnTeenBull(uint256) external; function airdrop(address, uint256) external; function safeTransferFrom( address, address, uint256 ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface BAPOrchestratorInterfaceV2 { function prevClaimed(uint256) external returns (bool); function totalClaimed(uint256) external view returns (uint256); function bullLastClaim(uint256) external view returns (uint256); function godsMintingDate(uint256) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface BAPMethaneInterface { function claim(address, uint256) external; function pay(uint256, uint256) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; interface BAPGenesisInterface { function minted() external view returns (uint256); function mintingDatetime(uint256) external view returns (uint256); function updateBullBreedings(uint256) external; function ownerOf(uint256) external view returns (address); function breedings(uint256) external view returns (uint256); function maxBreedings() external view returns (uint256); function generateGodBull() external; function refund(address, uint256) external payable; function safeTransferFrom( address, address, uint256 ) external; function genesisTimestamp() external view returns (uint256); }
// SPDX-License-Identifier: MIT // ERC721A Contracts v4.0.0 pragma solidity ^0.8.4; /** * @dev ERC721 token receiver interface. */ interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "london", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_bapGenesis","type":"address"},{"internalType":"address","name":"_bapMethane","type":"address"},{"internalType":"address","name":"_bapUtilities","type":"address"},{"internalType":"address","name":"_bapTeenBulls","type":"address"},{"internalType":"address","name":"_orchestratorV2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"godId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"CHEST_OPENED","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"GOD_MINTED","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"METH_CLAIMED","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"sacrificed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resurrected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newlyMinted","type":"uint256"}],"name":"TEEN_RESURRECTED","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"availableForRefund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bapGenesis","outputs":[{"internalType":"contract BAPGenesisInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bapMeth","outputs":[{"internalType":"contract BAPMethaneInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bapOrchestratorV2","outputs":[{"internalType":"contract BAPOrchestratorInterfaceV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bapTeenBulls","outputs":[{"internalType":"contract BAPTeenBullsInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bapUtilities","outputs":[{"internalType":"contract BAPUtilitiesInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"bull1","type":"uint256"},{"internalType":"uint256","name":"bull2","type":"uint256"}],"name":"breedAndIncubate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"breedings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"breedingsLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"bull1","type":"uint256"},{"internalType":"uint256","name":"bull2","type":"uint256"}],"name":"buyIncubator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"teen","type":"uint256"}],"name":"buyMergeOrb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"teen","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"bull1","type":"uint256"},{"internalType":"uint256","name":"bull2","type":"uint256"},{"internalType":"uint256","name":"bull3","type":"uint256"},{"internalType":"uint256","name":"bull4","type":"uint256"}],"name":"buyOrbAndSummon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"bulls","type":"uint256[]"},{"internalType":"uint256[]","name":"gods","type":"uint256[]"},{"internalType":"uint256[]","name":"teens","type":"uint256[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"seed","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claimAllMeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"bulls","type":"uint256[]"},{"internalType":"uint256[]","name":"gods","type":"uint256[]"},{"internalType":"uint256[]","name":"teens","type":"uint256[]"}],"name":"claimMeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"seed","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claimTeenMeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimedMeth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimedTeenMeth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"bull1","type":"uint256"},{"internalType":"uint256","name":"bull2","type":"uint256"},{"internalType":"uint256","name":"bull3","type":"uint256"},{"internalType":"uint256","name":"bull4","type":"uint256"}],"name":"generateGodBull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"generateTeenBull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"_type","type":"uint256"}],"name":"getClaimableMeth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bool","name":"isGod","type":"bool"}],"name":"getOldClaimableMeth","outputs":[{"internalType":"uint256","name":"methAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"godBulls","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"gods","type":"uint256[]"},{"internalType":"bool","name":"godFlag","type":"bool"}],"name":"initializeGodBull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"isGod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isResurrected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastChestOpen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"godId","type":"uint256"},{"internalType":"uint256","name":"guild","type":"uint256"},{"internalType":"uint256","name":"seed","type":"uint256"},{"internalType":"bool","name":"hasPower","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"openChest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"powerCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"prevClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"project","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refundFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secret","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_claimFlag","type":"bool"}],"name":"setClaimFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setGenesisContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setMethaneContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_powerCooldown","type":"uint256"}],"name":"setPowerCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_refundFlag","type":"bool"}],"name":"setRefundFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setTeenBullsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timeCounter","type":"uint256"}],"name":"setTimeCounter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasuryWallet","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setUtilitiesContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_secret","type":"address"}],"name":"setWhitelistedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teenAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"timeCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferExternalOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"item","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"godId","type":"uint256"},{"internalType":"uint256","name":"resurrected","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"useItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userLastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"utility","type":"uint256"}],"name":"utilitiesAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405262015180600155621275006002556005805462ffffff60a01b1916600160a01b1790553480156200003457600080fd5b5060405162003c6f38038062003c6f833981016040819052620000579162000132565b6200006233620000c5565b600d80546001600160a01b03199081166001600160a01b0397881617909155600e8054821695871695909517909455600f8054851693861693909317909255601080548416918516919091179055601180549092169216919091179055620001a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200012d57600080fd5b919050565b600080600080600060a086880312156200014b57600080fd5b620001568662000115565b9450620001666020870162000115565b9350620001766040870162000115565b9250620001866060870162000115565b9150620001966080870162000115565b90509295509295909350565b613abd80620001b26000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c8063850f700e116101d3578063cf56334311610104578063e85c0185116100a2578063f2fde38b1161007c578063f2fde38b146107dd578063f3713c29146107f0578063f60ca60d14610803578063f62694f71461084357600080fd5b8063e85c018514610797578063ed4043b0146107aa578063f096b0ff146107ca57600080fd5b8063da080a33116100de578063da080a3314610755578063e0fac46614610768578063e1479fd01461077b578063e22220e41461078e57600080fd5b8063cf5633431461071b578063d013b6281461072f578063d1efd30d1461074257600080fd5b8063a8602fea11610171578063c55721341161014b578063c5572134146106cd578063c5577ff7146106e0578063c5c1b303146106e8578063cc6265ea1461070857600080fd5b8063a8602fea14610694578063b364deb2146106a7578063c37ab646146106ba57600080fd5b80638a611983116101ad5780638a6119831461064a5780638da5cb5b1461065d578063995f7eb91461066e5780639dbe5a821461068157600080fd5b8063850f700e1461061157806388909b87146106245780638a1e7e0e1461063757600080fd5b80634e933cac116102ad5780636bba294d1161024b578063715018a611610225578063715018a6146105d857806371faf935146105e057806378e97925146105f3578063831e7c64146105fe57600080fd5b80636bba294d1461059c5780636fff15aa146105a55780637137dd79146105c557600080fd5b8063535c33ef11610287578063535c33ef14610541578063555c1cd514610563578063592e9d79146105765780636b21ffc71461058957600080fd5b80634e933cac146104eb5780635058e062146104fe5780635115d1af1461052157600080fd5b80632f2ec7fe1161031a578063425a5177116102f4578063425a5177146104925780634626402b146104b257806346f6055a146104c55780634724223a146104d857600080fd5b80632f2ec7fe1461044857806336c8945c1461046c57806338783d731461047f57600080fd5b80631cf777ec116103565780631cf777ec146103d6578063214e24ea146103f757806323a3f0de14610422578063278ecde11461043557600080fd5b8063150b7a021461037d578063154a947e146103ae5780631c8c3f60146103c3575b600080fd5b61039061038b3660046132b8565b610866565b6040516001600160e01b031990911681526020015b60405180910390f35b6103c16103bc366004613323565b610940565b005b6103c16103d1366004613370565b610958565b6103e96103e436600461338d565b6109aa565b6040519081526020016103a5565b600f5461040a906001600160a01b031681565b6040516001600160a01b0390911681526020016103a5565b6103c161043036600461341a565b610a3f565b6103c161044336600461338d565b610cba565b60055461045c90600160a01b900460ff1681565b60405190151581526020016103a5565b600e5461040a906001600160a01b031681565b600d5461040a906001600160a01b031681565b6103e96104a0366004613370565b600c6020526000908152604090205481565b60045461040a906001600160a01b031681565b61045c6104d336600461338d565b610e13565b6103c16104e636600461338d565b610f58565b6103c16104f9366004613323565b610f65565b61045c61050c36600461338d565b600b6020526000908152604090205460ff1681565b6103e961052f36600461338d565b60086020526000908152604090205481565b61045c61054f36600461338d565b600090815260086020526040902054151590565b6103c16105713660046134a1565b61109b565b6103c161058436600461338d565b6110b1565b6103e961059736600461355f565b6110be565b6103e960015481565b6103e96105b336600461338d565b60066020526000908152604090205481565b6103e96105d3366004613591565b611137565b6103c16113b5565b6103c16105ee366004613370565b6113c9565b6103e9636342555081565b6103c161060c3660046135bd565b61141b565b60105461040a906001600160a01b031681565b6103c1610632366004613370565b611499565b6103c1610645366004613370565b6114eb565b6103c16106583660046135e9565b61153d565b6000546001600160a01b031661040a565b6103c161067c36600461364c565b611a8c565b6103c161068f36600461338d565b611ab2565b6103c16106a2366004613370565b611b86565b6103c16106b5366004613667565b611bd8565b61045c6106c836600461338d565b61206d565b6103c16106db3660046136b8565b612090565b6103c16120f3565b6103e96106f636600461338d565b60096020526000908152604090205481565b60115461040a906001600160a01b031681565b60055461045c90600160a81b900460ff1681565b6103c161073d3660046136ed565b612229565b60055461040a906001600160a01b031681565b6103c1610763366004613756565b61223b565b6103c16107763660046137b2565b6124e0565b6103c16107893660046137eb565b61253d565b6103e960025481565b6103c16107a536600461382f565b6125a8565b6103e96107b836600461338d565b60076020526000908152604090205481565b6103c16107d8366004613370565b612753565b6103c16107eb366004613370565b6127a5565b6103c16107fe36600461364c565b61281e565b61083660405180604001604052806014815260200173109d5b1b1cc80988105c195cc8141c9bda9958dd60621b81525081565b6040516103a59190613874565b61045c61085136600461338d565b600a6020526000908152604090205460ff1681565b6010546000906001600160a01b031633146108c85760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c7920726563656976652066726f6d20424150205465656e73000000000060448201526064015b60405180910390fd5b600554600160b01b900460ff1661092d5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920616363657074207472616e7366657273207768696c65207265766960448201526376696e6760e01b60648201526084016108bf565b505060035550630a85bd0160e11b919050565b61094b838383610f65565b6109536120f3565b505050565b610960612844565b806001600160a01b0381166109875760405162461bcd60e51b81526004016108bf906138c9565b50601080546001600160a01b0319166001600160a01b0392909216919091179055565b600d5460405163073dddfb60e21b81526004810183905260009182916001600160a01b0390911690631cf777ec90602401602060405180830381865afa1580156109f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c91906138f3565b600084815260066020526040902054909150610a389082613922565b9392505050565b600554600160a01b900460ff16610a8c5760405162461bcd60e51b815260206004820152601160248201527010db185a5b481a5cc8191a5cd8589b1959607a1b60448201526064016108bf565b6000805b8451811015610adb57610abd858281518110610aae57610aae61393a565b6020026020010151600061289e565b610ac79083613922565b915080610ad381613950565b915050610a90565b5060005b8351811015610b8957610b0a848281518110610afd57610afd61393a565b602002602001015161206d565b610b475760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184819dbd908189d5b1b60921b60448201526064016108bf565b610b6b848281518110610b5c57610b5c61393a565b6020026020010151600161289e565b610b759083613922565b915080610b8181613950565b915050610adf565b5060005b8251811015610c4e57610bc7838281518110610bab57610bab61393a565b6020026020010151600090815260086020526040902054151590565b610c0c5760405162461bcd60e51b81526020600482015260166024820152752737ba1030903932b9bab93932b1ba32b2103a32b2b760511b60448201526064016108bf565b610c30838281518110610c2157610c2161393a565b6020026020010151600261289e565b610c3a9083613922565b915080610c4681613950565b915050610b8d565b50600e54604051635569f64b60e11b8152336004820152602481018390526001600160a01b039091169063aad3ec96906044015b600060405180830381600087803b158015610c9c57600080fd5b505af1158015610cb0573d6000803e3d6000fd5b5050505050505050565b6004546001600160a01b031680610ce35760405162461bcd60e51b81526004016108bf906138c9565b610cec82610e13565b610d385760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e206e6f7420617661696c61626c6520666f7220726566756e64000060448201526064016108bf565b600d5460405163410085df60e01b8152336004820152602481018490526001600160a01b039091169063410085df90604401600060405180830381600087803b158015610d8457600080fd5b505af1158015610d98573d6000803e3d6000fd5b5050600d5460048054604051632142170760e11b815233928101929092526001600160a01b0390811660248301526044820187905290911692506342842e0e91506064015b600060405180830381600087803b158015610df757600080fd5b505af1158015610e0b573d6000803e3d6000fd5b505050505050565b6000610e1d612b05565b80610e315750600554600160a81b900460ff165b8015610ea95750600d5460405163073dddfb60e21b8152600481018490526001600160a01b0390911690631cf777ec90602401602060405180830381865afa158015610e81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea591906138f3565b6003145b8015610f1f575060115460405163eaab2c3f60e01b8152600481018490526001600160a01b039091169063eaab2c3f90602401602060405180830381865afa158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d91906138f3565b155b8015610f375750600082815260076020526040902054155b8015610f5257506000828152600b602052604090205460ff16155b92915050565b610f60612844565b600255565b610f99338383604051602001610f7d9392919061396b565b6040516020818303038152906040528051906020012084612c17565b610fb55760405162461bcd60e51b81526004016108bf9061398c565b600e546040516377a4777360e11b8152610258600482015261012c60248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b15801561100457600080fd5b505af1158015611018573d6000803e3d6000fd5b5050505061102582612d46565b61102e81612d46565b600f60009054906101000a90046001600160a01b03166001600160a01b031663677f398d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107e57600080fd5b505af1158015611092573d6000803e3d6000fd5b50505050505050565b6110a6868686610a3f565b610e0b8383836125a8565b6110b9612844565b600155565b60008060028314156110df57506000838152600860205260409020546110f0565b506000838152600760205260409020545b6001546000906111046363425550426139ba565b61110e91906139e7565b90508161111a85612fb4565b61112490836139fb565b61112e91906139ba565b95945050505050565b6000828152600b602052604081205460ff161561115657506000610f52565b601154604051635639c6f160e01b8152600481018590526000916001600160a01b031690635639c6f190602401602060405180830381865afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c491906138f3565b9050600080846111d557600a6111d8565b60145b60ff1690508261134057841561125c576011546040516332560c7760e01b8152600481018890526001600160a01b03909116906332560c7790602401602060405180830381865afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125591906138f3565b92506112cc565b600d54604051631d5fc23760e21b8152600481018890526001600160a01b039091169063757f08dc90602401602060405180830381865afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c991906138f3565b92505b60115460405163eaab2c3f60e01b8152600481018890526001600160a01b039091169063eaab2c3f90602401602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906138f3565b915061135d565b841580156113545750611352866109aa565b155b1561135d5750600f5b63634255508311156113755760009350505050610f52565b6001546000906113898563634255506139ba565b61139391906139e7565b9050826113a082846139fb565b6113aa91906139ba565b979650505050505050565b6113bd612844565b6113c76000612fe1565b565b6113d1612844565b806001600160a01b0381166113f85760405162461bcd60e51b81526004016108bf906138c9565b50600d80546001600160a01b0319166001600160a01b0392909216919091179055565b611423612844565b816001600160a01b03811661144a5760405162461bcd60e51b81526004016108bf906138c9565b6010546040516322e9330f60e21b81526001600160a01b0385811660048301526024820185905290911690638ba4cc3c906044015b600060405180830381600087803b15801561107e57600080fd5b6114a1612844565b806001600160a01b0381166114c85760405162461bcd60e51b81526004016108bf906138c9565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6114f3612844565b806001600160a01b03811661151a5760405162461bcd60e51b81526004016108bf906138c9565b50600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60408051336020820152908101869052606081018590526080810184905260a081018390526115869060c0015b6040516020818303038152906040528051906020012082612c17565b6115a25760405162461bcd60e51b81526004016108bf9061398c565b600f5460405163b390c0ab60e01b815260048101879052600160248201526001600160a01b039091169063b390c0ab90604401600060405180830381600087803b1580156115ef57600080fd5b505af1158015611603573d6000803e3d6000fd5b50505050601e85101580156116185750602385105b15611893576116268361206d565b61166b5760405162461bcd60e51b8152602060048201526016602482015275165bdd481b995959081d1bc81d5cd948184819dbdbd960521b60448201526064016108bf565b600d546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156116b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d89190613a1a565b6001600160a01b0316146117225760405162461bcd60e51b81526020600482015260116024820152702737ba103a34329033b7b21037bbb732b960791b60448201526064016108bf565b61172b84613031565b6005805460ff60b01b1916600160b01b1790556010546040516322e9330f60e21b8152306004820152600160248201526001600160a01b0390911690638ba4cc3c90604401600060405180830381600087803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b505050506117af60035460026110be565b6003805460009081526008602052604090819020929092556005805460ff60b01b1916905560105490549151632142170760e11b815230600482015233602482015260448101929092526001600160a01b0316906342842e0e90606401600060405180830381600087803b15801561182657600080fd5b505af115801561183a573d6000803e3d6000fd5b505060035460408051338152602081018990528082018790526060810192909252517f41e0fb1ca9c9e7efde2a3c0ec98ce5a71b105a51b0380bc7c30ab7a4c7e2c42e9350908190036080019150a16000600355611a85565b602885101580156118a45750602d85105b15611a4d57600d546040516331a9108f60e11b81526004810186905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156118f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119169190613a1a565b6001600160a01b03161461196c5760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920746865206f776e65722063616e207265706c656e6973680000000060448201526064016108bf565b6119758461206d565b156119d05760405162461bcd60e51b815260206004820152602560248201527f476f642062756c6c732063616e6e6f7420636c61696d206578747261206272656044820152646564696e6760d81b60648201526084016108bf565b60006119db856109aa565b905060038110611a2d5760405162461bcd60e51b815260206004820152601d60248201527f42756c6c2068617320616c6c2062726565647320617661696c61626c6500000060448201526064016108bf565b611a388160036139ba565b60008681526006602052604090205550611a85565b60405162461bcd60e51b815260206004820152600d60248201526c15dc9bdb99c81a5d195b481a59609a1b60448201526064016108bf565b5050505050565b611a94612844565b60058054911515600160a01b0260ff60a01b19909216919091179055565b600e546040516377a4777360e11b815261096060048201526104b060248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b158015611b0157600080fd5b505af1158015611b15573d6000803e3d6000fd5b50505050611b2281613031565b600f60009054906101000a90046001600160a01b03166001600160a01b0316638c93b2996040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b7257600080fd5b505af1158015611a85573d6000803e3d6000fd5b611b8e612844565b806001600160a01b038116611bb55760405162461bcd60e51b81526004016108bf906138c9565b50600480546001600160a01b0319166001600160a01b0392909216919091179055565b428311611c215760405162461bcd60e51b815260206004820152601760248201527614d95959081a5cc81b9bc81b1bdb99d95c881d985b1a59604a1b60448201526064016108bf565b60408051336020820152908101869052606081018590526080810184905282151560a0820152611c539060c00161156a565b611c6f5760405162461bcd60e51b81526004016108bf9061398c565b600d546040516331a9108f60e11b81526004810187905233916001600160a01b031690636352211e90602401602060405180830381865afa158015611cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdc9190613a1a565b6001600160a01b031614611d265760405162461bcd60e51b81526020600482015260116024820152702737ba103a34329033b7b21037bbb732b960791b60448201526064016108bf565b611d2f8561206d565b611d6c5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184819dbd908189d5b1b60921b60448201526064016108bf565b811580611d9357506002546000868152600960205260409020544291611d9191613922565b115b15611e81576000858152600960205260409020544290611db5906104b0613922565b11611df95760405162461bcd60e51b81526020600482015260146024820152731499481bdc195b881d1a5b5948195b185c1cd95960621b60448201526064016108bf565b600e546040516377a4777360e11b81526104b06004820181905260248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b158015611e4757600080fd5b505af1158015611e5b573d6000803e3d6000fd5b505050506104ec42611e6d91906139ba565b600086815260096020526040902055611ef9565b600e546040516377a4777360e11b81526102586004820181905260248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b158015611ecf57600080fd5b505af1158015611ee3573d6000803e3d6000fd5b5050506000868152600960205260409020429055505b60006064611f0685613196565b611f109190613a37565b90506000600a821015611f9557611f28866014613922565b600f5460405163e1bc296760e01b81529192506001600160a01b03169063e1bc296790611f5e903390600190869060040161396b565b600060405180830381600087803b158015611f7857600080fd5b505af1158015611f8c573d6000803e3d6000fd5b5050505061201d565b6028821015611fa957611f2886601e613922565b611fb4866028613922565b600f5460405163e1bc296760e01b81529192506001600160a01b03169063e1bc296790611fea903390600190869060040161396b565b600060405180830381600087803b15801561200457600080fd5b505af1158015612018573d6000803e3d6000fd5b505050505b60408051838152602081018990529081018290524260608201527f17939d99f56951a93fc3cbab94e5db0423d08609c9b0ef092454fc55b0da12ab9060800160405180910390a150505050505050565b600061271a821180610f525750506000908152600a602052604090205460ff1690565b612098612844565b826001600160a01b0381166120bf5760405162461bcd60e51b81526004016108bf906138c9565b600f5460405163e1bc296760e01b81526001600160a01b039091169063e1bc296790610c829087908790879060040161396b565b600e546040516377a4777360e11b8152610258600482015261012c60248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b15801561214257600080fd5b505af1158015612156573d6000803e3d6000fd5b5050600f5460405163b390c0ab60e01b815260016004820181905260248201526001600160a01b03909116925063b390c0ab9150604401600060405180830381600087803b1580156121a757600080fd5b505af11580156121bb573d6000803e3d6000fd5b50505050601060009054906101000a90046001600160a01b03166001600160a01b031663c5577ff76040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561220f57600080fd5b505af1158015612223573d6000803e3d6000fd5b50505050565b61223286611ab2565b610e0b85858585855b60408051336020820152908101859052606081018490526080810183905260a081018290526122839060c0016040516020818303038152906040528051906020012086612c17565b61229f5760405162461bcd60e51b81526004016108bf9061398c565b600e546040516377a4777360e11b81526112c0600482015261096060248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b1580156122ee57600080fd5b505af1158015612302573d6000803e3d6000fd5b5050600f5460405163b390c0ab60e01b815260026004820152600160248201526001600160a01b03909116925063b390c0ab9150604401600060405180830381600087803b15801561235357600080fd5b505af1158015612367573d6000803e3d6000fd5b5050505061237484613031565b61237d83613031565b61238682613031565b61238f81613031565b600d5460408051630278162160e51b815290516000926001600160a01b031691634f02c4209160048083019260209291908290030181865afa1580156123d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fd91906138f3565b612408906001613922565b6000818152600b60205260409020805460ff191660019081179091559091506124329082906110be565b60008281526007602052604080822092909255600d54825163fcf0885360e01b815292516001600160a01b039091169263fcf0885392600480830193919282900301818387803b15801561248557600080fd5b505af1158015612499573d6000803e3d6000fd5b505050507f7c4812af1cf641c9def58fdd1311e6aeaca8956b153442fa3bdffbc3284c585b3382426040516124d09392919061396b565b60405180910390a1505050505050565b6124e8612844565b806001600160a01b03811661250f5760405162461bcd60e51b81526004016108bf906138c9565b60405163f2fde38b60e01b81526001600160a01b03838116600483015284169063f2fde38b9060240161147f565b612545612844565b60005b82518110156109535781600a60008584815181106125685761256861393a565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806125a090613950565b915050612548565b4282116125f15760405162461bcd60e51b815260206004820152601760248201527614d95959081a5cc81b9bc81b1bdb99d95c881d985b1a59604a1b60448201526064016108bf565b336000908152600c602052604090205442906126109062015180613922565b1061265d5760405162461bcd60e51b815260206004820152601960248201527f43616e20636c61696d206f6e6c79206f6e63652061206461790000000000000060448201526064016108bf565b60408051602081018590529081018390523360608201526126809060800161156a565b61269c5760405162461bcd60e51b81526004016108bf9061398c565b336000818152600c602052604090819020429055600e549051635569f64b60e11b81526004810192909252602482018590526001600160a01b03169063aad3ec9690604401600060405180830381600087803b1580156126fb57600080fd5b505af115801561270f573d6000803e3d6000fd5b505050507f2f8ab381fbd0825c053ecbf79303331859669e3bc28daaa5b334720c093a2a0b3384426040516127469392919061396b565b60405180910390a1505050565b61275b612844565b806001600160a01b0381166127825760405162461bcd60e51b81526004016108bf906138c9565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b6127ad612844565b6001600160a01b0381166128125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bf565b61281b81612fe1565b50565b612826612844565b60058054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108bf565b60006128aa83836110be565b9050816002141561299c576010546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129229190613a1a565b6001600160a01b0316146129735760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920746865206f776e65722063616e20636c61696d60401b60448201526064016108bf565b60008381526008602052604081208054839290612991908490613922565b90915550610f529050565b600d546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156129e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a099190613a1a565b6001600160a01b031614612a5a5760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920746865206f776e65722063616e20636c61696d60401b60448201526064016108bf565b60008381526007602052604081208054839290612a78908490613922565b90915550612a8790508361206d565b158015612a9a5750612a98836109aa565b155b15612ab757612aaa6002826139e7565b612ab49082613922565b90505b6000838152600b602052604090205460ff16610f5257612ada836105d38561206d565b612ae49082613922565b6000848152600b60205260409020805460ff19166001179055905092915050565b600d546040805163cacf66ab60e01b815290516000926001600160a01b03169163cacf66ab9160048083019260209291908290030181865afa158015612b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7391906138f3565b612b80906228de80613922565b4210158015612c125750600d60009054906101000a90046001600160a01b03166001600160a01b031663cacf66ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0191906138f3565b612c0e9062ed4e00613922565b4211155b905090565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018390526000908190605c0160405160208183030381529060405280519060200120905060008060008551604114612c82576000945050505050610f52565b50505060208301516040840151606085015160001a601b811015612cae57612cab601b82613a4b565b90505b60008160ff16601b1480612cc557508160ff16601c145b15612d2a5760408051600081526020810180835287905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa158015612d1d573d6000803e3d6000fd5b5050506020604051035190505b6005546001600160a01b03918216911614979650505050505050565b600d546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db39190613a1a565b6001600160a01b031614612e095760405162461bcd60e51b815260206004820152601860248201527f4f6e6c7920746865206f776e65722063616e206272656564000000000000000060448201526064016108bf565b600d5460405163073dddfb60e21b8152600481018390526000916001600160a01b031690631cf777ec90602401602060405180830381865afa158015612e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7791906138f3565b9050612e82826109aa565b60011415612f06576000612e9783600061289e565b90508015612f0457600e54604051635569f64b60e11b8152336004820152602481018390526001600160a01b039091169063aad3ec9690604401600060405180830381600087803b158015612eeb57600080fd5b505af1158015612eff573d6000803e3d6000fd5b505050505b505b8015612f3d57600d54604051632e14af2f60e11b8152600481018490526001600160a01b0390911690635c295e5e90602401610ddd565b600082815260066020526040902054612f915760405162461bcd60e51b8152602060048201526016602482015275139bc81b5bdc9948189c9958591a5b99dcc81b19599d60521b60448201526064016108bf565b6000828152600660205260408120805491612fab83613a70565b91905055505050565b600081612fc35750600a919050565b8160011415612fd457506014919050565b506005919050565b919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa15801561307a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309e9190613a1a565b6001600160a01b0316146130f45760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920746865206f776e65722063616e206275726e00000000000000000060448201526064016108bf565b600081815260086020526040902054156131505760405162461bcd60e51b815260206004820152601c60248201527f43616e2774206275726e207265737572726563746564207465656e730000000060448201526064016108bf565b60105460405163299f537360e01b8152600481018390526001600160a01b039091169063299f537390602401600060405180830381600087803b158015611b7257600080fd5b600081425a60408051602081019490945283019190915260608083019190915232901b6bffffffffffffffffffffffff1916608082015260940160408051601f19818403018152919052805160209091012092915050565b6001600160a01b038116811461281b57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561324157613241613203565b604052919050565b600082601f83011261325a57600080fd5b81356001600160401b0381111561327357613273613203565b613286601f8201601f1916602001613219565b81815284602083860101111561329b57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156132ce57600080fd5b84356132d9816131ee565b935060208501356132e9816131ee565b92506040850135915060608501356001600160401b0381111561330b57600080fd5b61331787828801613249565b91505092959194509250565b60008060006060848603121561333857600080fd5b83356001600160401b0381111561334e57600080fd5b61335a86828701613249565b9660208601359650604090950135949350505050565b60006020828403121561338257600080fd5b8135610a38816131ee565b60006020828403121561339f57600080fd5b5035919050565b600082601f8301126133b757600080fd5b813560206001600160401b038211156133d2576133d2613203565b8160051b6133e1828201613219565b92835284810182019282810190878511156133fb57600080fd5b83870192505b848310156113aa57823582529183019190830190613401565b60008060006060848603121561342f57600080fd5b83356001600160401b038082111561344657600080fd5b613452878388016133a6565b9450602086013591508082111561346857600080fd5b613474878388016133a6565b9350604086013591508082111561348a57600080fd5b50613497868287016133a6565b9150509250925092565b60008060008060008060c087890312156134ba57600080fd5b86356001600160401b03808211156134d157600080fd5b6134dd8a838b016133a6565b975060208901359150808211156134f357600080fd5b6134ff8a838b016133a6565b9650604089013591508082111561351557600080fd5b6135218a838b016133a6565b9550606089013594506080890135935060a089013591508082111561354557600080fd5b5061355289828a01613249565b9150509295509295509295565b6000806040838503121561357257600080fd5b50508035926020909101359150565b80358015158114612fdc57600080fd5b600080604083850312156135a457600080fd5b823591506135b460208401613581565b90509250929050565b600080604083850312156135d057600080fd5b82356135db816131ee565b946020939093013593505050565b600080600080600060a0868803121561360157600080fd5b8535945060208601359350604086013592506060860135915060808601356001600160401b0381111561363357600080fd5b61363f88828901613249565b9150509295509295909350565b60006020828403121561365e57600080fd5b610a3882613581565b600080600080600060a0868803121561367f57600080fd5b85359450602086013593506040860135925061369d60608701613581565b915060808601356001600160401b0381111561363357600080fd5b6000806000606084860312156136cd57600080fd5b83356136d8816131ee565b95602085013595506040909401359392505050565b60008060008060008060c0878903121561370657600080fd5b8635955060208701356001600160401b0381111561372357600080fd5b61372f89828a01613249565b96999698505050506040850135946060810135946080820135945060a09091013592509050565b600080600080600060a0868803121561376e57600080fd5b85356001600160401b0381111561378457600080fd5b61379088828901613249565b9860208801359850604088013597606081013597506080013595509350505050565b600080604083850312156137c557600080fd5b82356137d0816131ee565b915060208301356137e0816131ee565b809150509250929050565b600080604083850312156137fe57600080fd5b82356001600160401b0381111561381457600080fd5b613820858286016133a6565b9250506135b460208401613581565b60008060006060848603121561384457600080fd5b833592506020840135915060408401356001600160401b0381111561386857600080fd5b61349786828701613249565b600060208083528351808285015260005b818110156138a157858101830151858201604001528201613885565b818111156138b3576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526010908201526f3230303a5a45524f5f4144445245535360801b604082015260600190565b60006020828403121561390557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156139355761393561390c565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156139645761396461390c565b5060010190565b6001600160a01b039390931683526020830191909152604082015260600190565b60208082526014908201527314da59db985d1d5c99481a5cc81a5b9d985b1a5960621b604082015260600190565b6000828210156139cc576139cc61390c565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826139f6576139f66139d1565b500490565b6000816000190483118215151615613a1557613a1561390c565b500290565b600060208284031215613a2c57600080fd5b8151610a38816131ee565b600082613a4657613a466139d1565b500690565b600060ff821660ff84168060ff03821115613a6857613a6861390c565b019392505050565b600081613a7f57613a7f61390c565b50600019019056fea26469706673582212205981164fe14c9ac9d65b4da893eb32f9485a1220bbd9fe4bbae11b149a4de20b64736f6c634300080c00330000000000000000000000002cf6be9aac1c7630d5a23af88c28275c70eb8819000000000000000000000000ed5464bd5c477b7f71739ce1d741b43e932b97b00000000000000000000000002923c3e5a0f10bc02d8c90287b2af45cd579dec4000000000000000000000000cf099445347f0f006c19b90f1c1933eb9413682b000000000000000000000000a4e40785f03103215ffe03e707f7c2f4d78643ba
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106103785760003560e01c8063850f700e116101d3578063cf56334311610104578063e85c0185116100a2578063f2fde38b1161007c578063f2fde38b146107dd578063f3713c29146107f0578063f60ca60d14610803578063f62694f71461084357600080fd5b8063e85c018514610797578063ed4043b0146107aa578063f096b0ff146107ca57600080fd5b8063da080a33116100de578063da080a3314610755578063e0fac46614610768578063e1479fd01461077b578063e22220e41461078e57600080fd5b8063cf5633431461071b578063d013b6281461072f578063d1efd30d1461074257600080fd5b8063a8602fea11610171578063c55721341161014b578063c5572134146106cd578063c5577ff7146106e0578063c5c1b303146106e8578063cc6265ea1461070857600080fd5b8063a8602fea14610694578063b364deb2146106a7578063c37ab646146106ba57600080fd5b80638a611983116101ad5780638a6119831461064a5780638da5cb5b1461065d578063995f7eb91461066e5780639dbe5a821461068157600080fd5b8063850f700e1461061157806388909b87146106245780638a1e7e0e1461063757600080fd5b80634e933cac116102ad5780636bba294d1161024b578063715018a611610225578063715018a6146105d857806371faf935146105e057806378e97925146105f3578063831e7c64146105fe57600080fd5b80636bba294d1461059c5780636fff15aa146105a55780637137dd79146105c557600080fd5b8063535c33ef11610287578063535c33ef14610541578063555c1cd514610563578063592e9d79146105765780636b21ffc71461058957600080fd5b80634e933cac146104eb5780635058e062146104fe5780635115d1af1461052157600080fd5b80632f2ec7fe1161031a578063425a5177116102f4578063425a5177146104925780634626402b146104b257806346f6055a146104c55780634724223a146104d857600080fd5b80632f2ec7fe1461044857806336c8945c1461046c57806338783d731461047f57600080fd5b80631cf777ec116103565780631cf777ec146103d6578063214e24ea146103f757806323a3f0de14610422578063278ecde11461043557600080fd5b8063150b7a021461037d578063154a947e146103ae5780631c8c3f60146103c3575b600080fd5b61039061038b3660046132b8565b610866565b6040516001600160e01b031990911681526020015b60405180910390f35b6103c16103bc366004613323565b610940565b005b6103c16103d1366004613370565b610958565b6103e96103e436600461338d565b6109aa565b6040519081526020016103a5565b600f5461040a906001600160a01b031681565b6040516001600160a01b0390911681526020016103a5565b6103c161043036600461341a565b610a3f565b6103c161044336600461338d565b610cba565b60055461045c90600160a01b900460ff1681565b60405190151581526020016103a5565b600e5461040a906001600160a01b031681565b600d5461040a906001600160a01b031681565b6103e96104a0366004613370565b600c6020526000908152604090205481565b60045461040a906001600160a01b031681565b61045c6104d336600461338d565b610e13565b6103c16104e636600461338d565b610f58565b6103c16104f9366004613323565b610f65565b61045c61050c36600461338d565b600b6020526000908152604090205460ff1681565b6103e961052f36600461338d565b60086020526000908152604090205481565b61045c61054f36600461338d565b600090815260086020526040902054151590565b6103c16105713660046134a1565b61109b565b6103c161058436600461338d565b6110b1565b6103e961059736600461355f565b6110be565b6103e960015481565b6103e96105b336600461338d565b60066020526000908152604090205481565b6103e96105d3366004613591565b611137565b6103c16113b5565b6103c16105ee366004613370565b6113c9565b6103e9636342555081565b6103c161060c3660046135bd565b61141b565b60105461040a906001600160a01b031681565b6103c1610632366004613370565b611499565b6103c1610645366004613370565b6114eb565b6103c16106583660046135e9565b61153d565b6000546001600160a01b031661040a565b6103c161067c36600461364c565b611a8c565b6103c161068f36600461338d565b611ab2565b6103c16106a2366004613370565b611b86565b6103c16106b5366004613667565b611bd8565b61045c6106c836600461338d565b61206d565b6103c16106db3660046136b8565b612090565b6103c16120f3565b6103e96106f636600461338d565b60096020526000908152604090205481565b60115461040a906001600160a01b031681565b60055461045c90600160a81b900460ff1681565b6103c161073d3660046136ed565b612229565b60055461040a906001600160a01b031681565b6103c1610763366004613756565b61223b565b6103c16107763660046137b2565b6124e0565b6103c16107893660046137eb565b61253d565b6103e960025481565b6103c16107a536600461382f565b6125a8565b6103e96107b836600461338d565b60076020526000908152604090205481565b6103c16107d8366004613370565b612753565b6103c16107eb366004613370565b6127a5565b6103c16107fe36600461364c565b61281e565b61083660405180604001604052806014815260200173109d5b1b1cc80988105c195cc8141c9bda9958dd60621b81525081565b6040516103a59190613874565b61045c61085136600461338d565b600a6020526000908152604090205460ff1681565b6010546000906001600160a01b031633146108c85760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c7920726563656976652066726f6d20424150205465656e73000000000060448201526064015b60405180910390fd5b600554600160b01b900460ff1661092d5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920616363657074207472616e7366657273207768696c65207265766960448201526376696e6760e01b60648201526084016108bf565b505060035550630a85bd0160e11b919050565b61094b838383610f65565b6109536120f3565b505050565b610960612844565b806001600160a01b0381166109875760405162461bcd60e51b81526004016108bf906138c9565b50601080546001600160a01b0319166001600160a01b0392909216919091179055565b600d5460405163073dddfb60e21b81526004810183905260009182916001600160a01b0390911690631cf777ec90602401602060405180830381865afa1580156109f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c91906138f3565b600084815260066020526040902054909150610a389082613922565b9392505050565b600554600160a01b900460ff16610a8c5760405162461bcd60e51b815260206004820152601160248201527010db185a5b481a5cc8191a5cd8589b1959607a1b60448201526064016108bf565b6000805b8451811015610adb57610abd858281518110610aae57610aae61393a565b6020026020010151600061289e565b610ac79083613922565b915080610ad381613950565b915050610a90565b5060005b8351811015610b8957610b0a848281518110610afd57610afd61393a565b602002602001015161206d565b610b475760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184819dbd908189d5b1b60921b60448201526064016108bf565b610b6b848281518110610b5c57610b5c61393a565b6020026020010151600161289e565b610b759083613922565b915080610b8181613950565b915050610adf565b5060005b8251811015610c4e57610bc7838281518110610bab57610bab61393a565b6020026020010151600090815260086020526040902054151590565b610c0c5760405162461bcd60e51b81526020600482015260166024820152752737ba1030903932b9bab93932b1ba32b2103a32b2b760511b60448201526064016108bf565b610c30838281518110610c2157610c2161393a565b6020026020010151600261289e565b610c3a9083613922565b915080610c4681613950565b915050610b8d565b50600e54604051635569f64b60e11b8152336004820152602481018390526001600160a01b039091169063aad3ec96906044015b600060405180830381600087803b158015610c9c57600080fd5b505af1158015610cb0573d6000803e3d6000fd5b5050505050505050565b6004546001600160a01b031680610ce35760405162461bcd60e51b81526004016108bf906138c9565b610cec82610e13565b610d385760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e206e6f7420617661696c61626c6520666f7220726566756e64000060448201526064016108bf565b600d5460405163410085df60e01b8152336004820152602481018490526001600160a01b039091169063410085df90604401600060405180830381600087803b158015610d8457600080fd5b505af1158015610d98573d6000803e3d6000fd5b5050600d5460048054604051632142170760e11b815233928101929092526001600160a01b0390811660248301526044820187905290911692506342842e0e91506064015b600060405180830381600087803b158015610df757600080fd5b505af1158015610e0b573d6000803e3d6000fd5b505050505050565b6000610e1d612b05565b80610e315750600554600160a81b900460ff165b8015610ea95750600d5460405163073dddfb60e21b8152600481018490526001600160a01b0390911690631cf777ec90602401602060405180830381865afa158015610e81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea591906138f3565b6003145b8015610f1f575060115460405163eaab2c3f60e01b8152600481018490526001600160a01b039091169063eaab2c3f90602401602060405180830381865afa158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d91906138f3565b155b8015610f375750600082815260076020526040902054155b8015610f5257506000828152600b602052604090205460ff16155b92915050565b610f60612844565b600255565b610f99338383604051602001610f7d9392919061396b565b6040516020818303038152906040528051906020012084612c17565b610fb55760405162461bcd60e51b81526004016108bf9061398c565b600e546040516377a4777360e11b8152610258600482015261012c60248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b15801561100457600080fd5b505af1158015611018573d6000803e3d6000fd5b5050505061102582612d46565b61102e81612d46565b600f60009054906101000a90046001600160a01b03166001600160a01b031663677f398d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107e57600080fd5b505af1158015611092573d6000803e3d6000fd5b50505050505050565b6110a6868686610a3f565b610e0b8383836125a8565b6110b9612844565b600155565b60008060028314156110df57506000838152600860205260409020546110f0565b506000838152600760205260409020545b6001546000906111046363425550426139ba565b61110e91906139e7565b90508161111a85612fb4565b61112490836139fb565b61112e91906139ba565b95945050505050565b6000828152600b602052604081205460ff161561115657506000610f52565b601154604051635639c6f160e01b8152600481018590526000916001600160a01b031690635639c6f190602401602060405180830381865afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c491906138f3565b9050600080846111d557600a6111d8565b60145b60ff1690508261134057841561125c576011546040516332560c7760e01b8152600481018890526001600160a01b03909116906332560c7790602401602060405180830381865afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125591906138f3565b92506112cc565b600d54604051631d5fc23760e21b8152600481018890526001600160a01b039091169063757f08dc90602401602060405180830381865afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c991906138f3565b92505b60115460405163eaab2c3f60e01b8152600481018890526001600160a01b039091169063eaab2c3f90602401602060405180830381865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906138f3565b915061135d565b841580156113545750611352866109aa565b155b1561135d5750600f5b63634255508311156113755760009350505050610f52565b6001546000906113898563634255506139ba565b61139391906139e7565b9050826113a082846139fb565b6113aa91906139ba565b979650505050505050565b6113bd612844565b6113c76000612fe1565b565b6113d1612844565b806001600160a01b0381166113f85760405162461bcd60e51b81526004016108bf906138c9565b50600d80546001600160a01b0319166001600160a01b0392909216919091179055565b611423612844565b816001600160a01b03811661144a5760405162461bcd60e51b81526004016108bf906138c9565b6010546040516322e9330f60e21b81526001600160a01b0385811660048301526024820185905290911690638ba4cc3c906044015b600060405180830381600087803b15801561107e57600080fd5b6114a1612844565b806001600160a01b0381166114c85760405162461bcd60e51b81526004016108bf906138c9565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6114f3612844565b806001600160a01b03811661151a5760405162461bcd60e51b81526004016108bf906138c9565b50600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60408051336020820152908101869052606081018590526080810184905260a081018390526115869060c0015b6040516020818303038152906040528051906020012082612c17565b6115a25760405162461bcd60e51b81526004016108bf9061398c565b600f5460405163b390c0ab60e01b815260048101879052600160248201526001600160a01b039091169063b390c0ab90604401600060405180830381600087803b1580156115ef57600080fd5b505af1158015611603573d6000803e3d6000fd5b50505050601e85101580156116185750602385105b15611893576116268361206d565b61166b5760405162461bcd60e51b8152602060048201526016602482015275165bdd481b995959081d1bc81d5cd948184819dbdbd960521b60448201526064016108bf565b600d546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156116b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d89190613a1a565b6001600160a01b0316146117225760405162461bcd60e51b81526020600482015260116024820152702737ba103a34329033b7b21037bbb732b960791b60448201526064016108bf565b61172b84613031565b6005805460ff60b01b1916600160b01b1790556010546040516322e9330f60e21b8152306004820152600160248201526001600160a01b0390911690638ba4cc3c90604401600060405180830381600087803b15801561178a57600080fd5b505af115801561179e573d6000803e3d6000fd5b505050506117af60035460026110be565b6003805460009081526008602052604090819020929092556005805460ff60b01b1916905560105490549151632142170760e11b815230600482015233602482015260448101929092526001600160a01b0316906342842e0e90606401600060405180830381600087803b15801561182657600080fd5b505af115801561183a573d6000803e3d6000fd5b505060035460408051338152602081018990528082018790526060810192909252517f41e0fb1ca9c9e7efde2a3c0ec98ce5a71b105a51b0380bc7c30ab7a4c7e2c42e9350908190036080019150a16000600355611a85565b602885101580156118a45750602d85105b15611a4d57600d546040516331a9108f60e11b81526004810186905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156118f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119169190613a1a565b6001600160a01b03161461196c5760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920746865206f776e65722063616e207265706c656e6973680000000060448201526064016108bf565b6119758461206d565b156119d05760405162461bcd60e51b815260206004820152602560248201527f476f642062756c6c732063616e6e6f7420636c61696d206578747261206272656044820152646564696e6760d81b60648201526084016108bf565b60006119db856109aa565b905060038110611a2d5760405162461bcd60e51b815260206004820152601d60248201527f42756c6c2068617320616c6c2062726565647320617661696c61626c6500000060448201526064016108bf565b611a388160036139ba565b60008681526006602052604090205550611a85565b60405162461bcd60e51b815260206004820152600d60248201526c15dc9bdb99c81a5d195b481a59609a1b60448201526064016108bf565b5050505050565b611a94612844565b60058054911515600160a01b0260ff60a01b19909216919091179055565b600e546040516377a4777360e11b815261096060048201526104b060248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b158015611b0157600080fd5b505af1158015611b15573d6000803e3d6000fd5b50505050611b2281613031565b600f60009054906101000a90046001600160a01b03166001600160a01b0316638c93b2996040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b7257600080fd5b505af1158015611a85573d6000803e3d6000fd5b611b8e612844565b806001600160a01b038116611bb55760405162461bcd60e51b81526004016108bf906138c9565b50600480546001600160a01b0319166001600160a01b0392909216919091179055565b428311611c215760405162461bcd60e51b815260206004820152601760248201527614d95959081a5cc81b9bc81b1bdb99d95c881d985b1a59604a1b60448201526064016108bf565b60408051336020820152908101869052606081018590526080810184905282151560a0820152611c539060c00161156a565b611c6f5760405162461bcd60e51b81526004016108bf9061398c565b600d546040516331a9108f60e11b81526004810187905233916001600160a01b031690636352211e90602401602060405180830381865afa158015611cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdc9190613a1a565b6001600160a01b031614611d265760405162461bcd60e51b81526020600482015260116024820152702737ba103a34329033b7b21037bbb732b960791b60448201526064016108bf565b611d2f8561206d565b611d6c5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184819dbd908189d5b1b60921b60448201526064016108bf565b811580611d9357506002546000868152600960205260409020544291611d9191613922565b115b15611e81576000858152600960205260409020544290611db5906104b0613922565b11611df95760405162461bcd60e51b81526020600482015260146024820152731499481bdc195b881d1a5b5948195b185c1cd95960621b60448201526064016108bf565b600e546040516377a4777360e11b81526104b06004820181905260248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b158015611e4757600080fd5b505af1158015611e5b573d6000803e3d6000fd5b505050506104ec42611e6d91906139ba565b600086815260096020526040902055611ef9565b600e546040516377a4777360e11b81526102586004820181905260248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b158015611ecf57600080fd5b505af1158015611ee3573d6000803e3d6000fd5b5050506000868152600960205260409020429055505b60006064611f0685613196565b611f109190613a37565b90506000600a821015611f9557611f28866014613922565b600f5460405163e1bc296760e01b81529192506001600160a01b03169063e1bc296790611f5e903390600190869060040161396b565b600060405180830381600087803b158015611f7857600080fd5b505af1158015611f8c573d6000803e3d6000fd5b5050505061201d565b6028821015611fa957611f2886601e613922565b611fb4866028613922565b600f5460405163e1bc296760e01b81529192506001600160a01b03169063e1bc296790611fea903390600190869060040161396b565b600060405180830381600087803b15801561200457600080fd5b505af1158015612018573d6000803e3d6000fd5b505050505b60408051838152602081018990529081018290524260608201527f17939d99f56951a93fc3cbab94e5db0423d08609c9b0ef092454fc55b0da12ab9060800160405180910390a150505050505050565b600061271a821180610f525750506000908152600a602052604090205460ff1690565b612098612844565b826001600160a01b0381166120bf5760405162461bcd60e51b81526004016108bf906138c9565b600f5460405163e1bc296760e01b81526001600160a01b039091169063e1bc296790610c829087908790879060040161396b565b600e546040516377a4777360e11b8152610258600482015261012c60248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b15801561214257600080fd5b505af1158015612156573d6000803e3d6000fd5b5050600f5460405163b390c0ab60e01b815260016004820181905260248201526001600160a01b03909116925063b390c0ab9150604401600060405180830381600087803b1580156121a757600080fd5b505af11580156121bb573d6000803e3d6000fd5b50505050601060009054906101000a90046001600160a01b03166001600160a01b031663c5577ff76040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561220f57600080fd5b505af1158015612223573d6000803e3d6000fd5b50505050565b61223286611ab2565b610e0b85858585855b60408051336020820152908101859052606081018490526080810183905260a081018290526122839060c0016040516020818303038152906040528051906020012086612c17565b61229f5760405162461bcd60e51b81526004016108bf9061398c565b600e546040516377a4777360e11b81526112c0600482015261096060248201526001600160a01b039091169063ef48eee690604401600060405180830381600087803b1580156122ee57600080fd5b505af1158015612302573d6000803e3d6000fd5b5050600f5460405163b390c0ab60e01b815260026004820152600160248201526001600160a01b03909116925063b390c0ab9150604401600060405180830381600087803b15801561235357600080fd5b505af1158015612367573d6000803e3d6000fd5b5050505061237484613031565b61237d83613031565b61238682613031565b61238f81613031565b600d5460408051630278162160e51b815290516000926001600160a01b031691634f02c4209160048083019260209291908290030181865afa1580156123d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fd91906138f3565b612408906001613922565b6000818152600b60205260409020805460ff191660019081179091559091506124329082906110be565b60008281526007602052604080822092909255600d54825163fcf0885360e01b815292516001600160a01b039091169263fcf0885392600480830193919282900301818387803b15801561248557600080fd5b505af1158015612499573d6000803e3d6000fd5b505050507f7c4812af1cf641c9def58fdd1311e6aeaca8956b153442fa3bdffbc3284c585b3382426040516124d09392919061396b565b60405180910390a1505050505050565b6124e8612844565b806001600160a01b03811661250f5760405162461bcd60e51b81526004016108bf906138c9565b60405163f2fde38b60e01b81526001600160a01b03838116600483015284169063f2fde38b9060240161147f565b612545612844565b60005b82518110156109535781600a60008584815181106125685761256861393a565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806125a090613950565b915050612548565b4282116125f15760405162461bcd60e51b815260206004820152601760248201527614d95959081a5cc81b9bc81b1bdb99d95c881d985b1a59604a1b60448201526064016108bf565b336000908152600c602052604090205442906126109062015180613922565b1061265d5760405162461bcd60e51b815260206004820152601960248201527f43616e20636c61696d206f6e6c79206f6e63652061206461790000000000000060448201526064016108bf565b60408051602081018590529081018390523360608201526126809060800161156a565b61269c5760405162461bcd60e51b81526004016108bf9061398c565b336000818152600c602052604090819020429055600e549051635569f64b60e11b81526004810192909252602482018590526001600160a01b03169063aad3ec9690604401600060405180830381600087803b1580156126fb57600080fd5b505af115801561270f573d6000803e3d6000fd5b505050507f2f8ab381fbd0825c053ecbf79303331859669e3bc28daaa5b334720c093a2a0b3384426040516127469392919061396b565b60405180910390a1505050565b61275b612844565b806001600160a01b0381166127825760405162461bcd60e51b81526004016108bf906138c9565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b6127ad612844565b6001600160a01b0381166128125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108bf565b61281b81612fe1565b50565b612826612844565b60058054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108bf565b60006128aa83836110be565b9050816002141561299c576010546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129229190613a1a565b6001600160a01b0316146129735760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920746865206f776e65722063616e20636c61696d60401b60448201526064016108bf565b60008381526008602052604081208054839290612991908490613922565b90915550610f529050565b600d546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa1580156129e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a099190613a1a565b6001600160a01b031614612a5a5760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920746865206f776e65722063616e20636c61696d60401b60448201526064016108bf565b60008381526007602052604081208054839290612a78908490613922565b90915550612a8790508361206d565b158015612a9a5750612a98836109aa565b155b15612ab757612aaa6002826139e7565b612ab49082613922565b90505b6000838152600b602052604090205460ff16610f5257612ada836105d38561206d565b612ae49082613922565b6000848152600b60205260409020805460ff19166001179055905092915050565b600d546040805163cacf66ab60e01b815290516000926001600160a01b03169163cacf66ab9160048083019260209291908290030181865afa158015612b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7391906138f3565b612b80906228de80613922565b4210158015612c125750600d60009054906101000a90046001600160a01b03166001600160a01b031663cacf66ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0191906138f3565b612c0e9062ed4e00613922565b4211155b905090565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018390526000908190605c0160405160208183030381529060405280519060200120905060008060008551604114612c82576000945050505050610f52565b50505060208301516040840151606085015160001a601b811015612cae57612cab601b82613a4b565b90505b60008160ff16601b1480612cc557508160ff16601c145b15612d2a5760408051600081526020810180835287905260ff841691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa158015612d1d573d6000803e3d6000fd5b5050506020604051035190505b6005546001600160a01b03918216911614979650505050505050565b600d546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db39190613a1a565b6001600160a01b031614612e095760405162461bcd60e51b815260206004820152601860248201527f4f6e6c7920746865206f776e65722063616e206272656564000000000000000060448201526064016108bf565b600d5460405163073dddfb60e21b8152600481018390526000916001600160a01b031690631cf777ec90602401602060405180830381865afa158015612e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7791906138f3565b9050612e82826109aa565b60011415612f06576000612e9783600061289e565b90508015612f0457600e54604051635569f64b60e11b8152336004820152602481018390526001600160a01b039091169063aad3ec9690604401600060405180830381600087803b158015612eeb57600080fd5b505af1158015612eff573d6000803e3d6000fd5b505050505b505b8015612f3d57600d54604051632e14af2f60e11b8152600481018490526001600160a01b0390911690635c295e5e90602401610ddd565b600082815260066020526040902054612f915760405162461bcd60e51b8152602060048201526016602482015275139bc81b5bdc9948189c9958591a5b99dcc81b19599d60521b60448201526064016108bf565b6000828152600660205260408120805491612fab83613a70565b91905055505050565b600081612fc35750600a919050565b8160011415612fd457506014919050565b506005919050565b919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa15801561307a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309e9190613a1a565b6001600160a01b0316146130f45760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920746865206f776e65722063616e206275726e00000000000000000060448201526064016108bf565b600081815260086020526040902054156131505760405162461bcd60e51b815260206004820152601c60248201527f43616e2774206275726e207265737572726563746564207465656e730000000060448201526064016108bf565b60105460405163299f537360e01b8152600481018390526001600160a01b039091169063299f537390602401600060405180830381600087803b158015611b7257600080fd5b600081425a60408051602081019490945283019190915260608083019190915232901b6bffffffffffffffffffffffff1916608082015260940160408051601f19818403018152919052805160209091012092915050565b6001600160a01b038116811461281b57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561324157613241613203565b604052919050565b600082601f83011261325a57600080fd5b81356001600160401b0381111561327357613273613203565b613286601f8201601f1916602001613219565b81815284602083860101111561329b57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156132ce57600080fd5b84356132d9816131ee565b935060208501356132e9816131ee565b92506040850135915060608501356001600160401b0381111561330b57600080fd5b61331787828801613249565b91505092959194509250565b60008060006060848603121561333857600080fd5b83356001600160401b0381111561334e57600080fd5b61335a86828701613249565b9660208601359650604090950135949350505050565b60006020828403121561338257600080fd5b8135610a38816131ee565b60006020828403121561339f57600080fd5b5035919050565b600082601f8301126133b757600080fd5b813560206001600160401b038211156133d2576133d2613203565b8160051b6133e1828201613219565b92835284810182019282810190878511156133fb57600080fd5b83870192505b848310156113aa57823582529183019190830190613401565b60008060006060848603121561342f57600080fd5b83356001600160401b038082111561344657600080fd5b613452878388016133a6565b9450602086013591508082111561346857600080fd5b613474878388016133a6565b9350604086013591508082111561348a57600080fd5b50613497868287016133a6565b9150509250925092565b60008060008060008060c087890312156134ba57600080fd5b86356001600160401b03808211156134d157600080fd5b6134dd8a838b016133a6565b975060208901359150808211156134f357600080fd5b6134ff8a838b016133a6565b9650604089013591508082111561351557600080fd5b6135218a838b016133a6565b9550606089013594506080890135935060a089013591508082111561354557600080fd5b5061355289828a01613249565b9150509295509295509295565b6000806040838503121561357257600080fd5b50508035926020909101359150565b80358015158114612fdc57600080fd5b600080604083850312156135a457600080fd5b823591506135b460208401613581565b90509250929050565b600080604083850312156135d057600080fd5b82356135db816131ee565b946020939093013593505050565b600080600080600060a0868803121561360157600080fd5b8535945060208601359350604086013592506060860135915060808601356001600160401b0381111561363357600080fd5b61363f88828901613249565b9150509295509295909350565b60006020828403121561365e57600080fd5b610a3882613581565b600080600080600060a0868803121561367f57600080fd5b85359450602086013593506040860135925061369d60608701613581565b915060808601356001600160401b0381111561363357600080fd5b6000806000606084860312156136cd57600080fd5b83356136d8816131ee565b95602085013595506040909401359392505050565b60008060008060008060c0878903121561370657600080fd5b8635955060208701356001600160401b0381111561372357600080fd5b61372f89828a01613249565b96999698505050506040850135946060810135946080820135945060a09091013592509050565b600080600080600060a0868803121561376e57600080fd5b85356001600160401b0381111561378457600080fd5b61379088828901613249565b9860208801359850604088013597606081013597506080013595509350505050565b600080604083850312156137c557600080fd5b82356137d0816131ee565b915060208301356137e0816131ee565b809150509250929050565b600080604083850312156137fe57600080fd5b82356001600160401b0381111561381457600080fd5b613820858286016133a6565b9250506135b460208401613581565b60008060006060848603121561384457600080fd5b833592506020840135915060408401356001600160401b0381111561386857600080fd5b61349786828701613249565b600060208083528351808285015260005b818110156138a157858101830151858201604001528201613885565b818111156138b3576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526010908201526f3230303a5a45524f5f4144445245535360801b604082015260600190565b60006020828403121561390557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156139355761393561390c565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156139645761396461390c565b5060010190565b6001600160a01b039390931683526020830191909152604082015260600190565b60208082526014908201527314da59db985d1d5c99481a5cc81a5b9d985b1a5960621b604082015260600190565b6000828210156139cc576139cc61390c565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826139f6576139f66139d1565b500490565b6000816000190483118215151615613a1557613a1561390c565b500290565b600060208284031215613a2c57600080fd5b8151610a38816131ee565b600082613a4657613a466139d1565b500690565b600060ff821660ff84168060ff03821115613a6857613a6861390c565b019392505050565b600081613a7f57613a7f61390c565b50600019019056fea26469706673582212205981164fe14c9ac9d65b4da893eb32f9485a1220bbd9fe4bbae11b149a4de20b64736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002cf6be9aac1c7630d5a23af88c28275c70eb8819000000000000000000000000ed5464bd5c477b7f71739ce1d741b43e932b97b00000000000000000000000002923c3e5a0f10bc02d8c90287b2af45cd579dec4000000000000000000000000cf099445347f0f006c19b90f1c1933eb9413682b000000000000000000000000a4e40785f03103215ffe03e707f7c2f4d78643ba
-----Decoded View---------------
Arg [0] : _bapGenesis (address): 0x2Cf6BE9AaC1c7630d5A23af88c28275C70eb8819
Arg [1] : _bapMethane (address): 0xED5464bd5c477b7F71739Ce1d741b43E932b97b0
Arg [2] : _bapUtilities (address): 0x2923c3e5A0F10bc02d8c90287b2Af45Cd579dEc4
Arg [3] : _bapTeenBulls (address): 0xcf099445347F0F006c19B90F1c1933eb9413682B
Arg [4] : _orchestratorV2 (address): 0xa4e40785f03103215ffe03e707f7c2f4d78643BA
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000002cf6be9aac1c7630d5a23af88c28275c70eb8819
Arg [1] : 000000000000000000000000ed5464bd5c477b7f71739ce1d741b43e932b97b0
Arg [2] : 0000000000000000000000002923c3e5a0f10bc02d8c90287b2af45cd579dec4
Arg [3] : 000000000000000000000000cf099445347f0f006c19b90f1c1933eb9413682b
Arg [4] : 000000000000000000000000a4e40785f03103215ffe03e707f7c2f4d78643ba
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.