Contract Overview
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
POSDuckNFT
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-09-07 */ // SPDX-License-Identifier: MIT pragma solidity >=0.8.0; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function setApprovalForAll(address operator, bool _approved) external; function getApproved(uint256 tokenId) external view returns (address operator); function isApprovedForAll(address owner, address operator) external view returns (bool); } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; uint8 private constant _ADDRESS_LENGTH = 20; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } function toHexString(address addr) internal pure returns (string memory) { return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH); } } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint256 => address) private _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: address zero is not a valid owner"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: invalid token ID"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { _requireMinted(tokenId); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not token owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { _requireMinted(tokenId); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { _setApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: caller is not token owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: caller is not token owner nor approved"); _safeTransfer(from, to, tokenId, data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { address owner = ERC721.ownerOf(tokenId); return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); _afterTokenTransfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); _afterTokenTransfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); _afterTokenTransfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _setApprovalForAll( address owner, address operator, bool approved ) internal virtual { require(owner != operator, "ERC721: approve to caller"); _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } function _requireMinted(uint256 tokenId) internal view virtual { require(_exists(tokenId), "ERC721: invalid token ID"); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } library Constants { uint256 internal constant PERCENT_PRECISION = 1e4; uint256 public constant MIN_PRICE = 5 ether; uint256 public constant FEE_PERCENT = 1000; uint256 public constant MIN_INVESTMENT_TO_GET_BOOST = 50 ether; uint256 public constant STAKES_LIMIT = 100; } library Boosts { enum BoostType{ PROFIT, TIME, TEAM } struct Boost { BoostType boostType; uint256 boostTimePercent; uint256 boostProfitPercent; } } library Models { struct Buyer { uint256[] purchases; uint256 totalSpent; address referrer; address[] referrals; uint256 bonus; uint256[10] refs; uint256[10] refsNumber; uint8 refLevel; uint256 refTurnover; uint8 leaderLevel; bool mayBecomeLeader; bool isLeader; } struct StakeType { uint256 dailyPercent; uint256 term; } struct Stake { uint8 stakeTypeIdx; uint256 startTime; uint256 tokenId; mapping(uint8 => Boosts.Boost) boosts; uint8 boostsSize; uint256 lastWithdrawalTime; bool isExpired; } } library Events { event NFTBought( address indexed buyer, address indexed referrer, uint256 amount, uint256 indexed tokenId, uint256 timestamp ); event NewBoost( address indexed buyer, Boosts.BoostType indexed boostType, uint256 indexed tokenId, string currency, uint256 amount, uint256 timePercent, uint256 profitPercent, uint256 timestamp ); event Staked( address indexed investor, uint8 indexed stakeTypeIdx, uint256 indexed stakeIdx, uint256 tokenId, uint256 amount, uint256 timestamp ); event Withdrawn( address indexed investor, uint8 indexed stakeTypeIdx, uint256 indexed stakeIdx, uint256 tokenId, uint256 reward, uint256 timestamp ); event Unstaked( address indexed investor, uint8 indexed stakeTypeIdx, uint256 indexed stakeIdx, uint256 tokenId, uint256 timestamp ); event ReferralBonusReceived( address indexed referrer, address indexed referral, uint256 indexed level, uint256 amount, uint256 timestamp ); event BoostApplied( address indexed buyer, uint256 indexed stakeIdx, uint256 indexed boostTokenId, uint256 timestamp ); event NewLeader( address indexed buyer, uint8 indexed leaderLevel, uint256 timestamp ); } interface CommonInterface { function getPrice(uint256 tokenId) external view returns(uint256); function buy(address[] calldata referrerAddrs_) external payable; function mintBoost(address receiver, Boosts.BoostType boostType, uint8 boostLevel) external; function mintLeaderBoost(address receiver, uint8 boostLevel) external; function getBoost(uint256 boostId) external view returns(Boosts.Boost memory boost); function ownerOf(uint256 tokenId) external view returns (address); function safeTransferFrom(address from, address to, uint256 tokenId) external; } contract ReferralProgram { address payable public immutable DEFAULT_REFERRER; address public immutable BOOST_NFT_CONTRACT_ADDRESS; uint256[] public REFERRAL_LEVELS_PERCENTS = [500, 700, 900, 1100, 1400, 1600, 1800, 2000]; uint256[] public REFERRAL_LEVELS_MILESTONES = [0, 10_500 ether, 35_000 ether, 105_000 ether, 175_000 ether, 350_000 ether, 1_050_000 ether, 3_500_000 ether]; uint256[] public LEADER_LEVELS_MILESTONES = [0, 5 ether, 10_500 ether, 35_000 ether, 105_000 ether, 175_000 ether, 350_000 ether, 1_050_000 ether, 3_500_000 ether, 7_000_000 ether, 17_000_000 ether]; uint256[] public LEADER_LEVELS_USERS_MILESTONES = [0, 10, 15, 25, 50, 100, 150, 300, 500, 1_000, 2_500]; uint8 constant public REFERRAL_DEPTH = 10; uint8 constant public REFERRAL_TURNOVER_DEPTH = 5; mapping (address => Models.Buyer) public buyers; mapping(address => mapping(uint8 => bool)) boostsReceived; constructor(address boostNFTContractAddress, address defaultReferrerAddress) { require(Address.isContract(boostNFTContractAddress), "01"); BOOST_NFT_CONTRACT_ADDRESS = boostNFTContractAddress; DEFAULT_REFERRER = payable(defaultReferrerAddress); } function _distributeReferralReward(address buyerAddr_, address[] memory referrerAddrs_, uint256 amount_) internal { require(referrerAddrs_.length > 0 || buyers[buyerAddr_].referrer != address(0x0), "04"); Models.Buyer storage buyer = buyers[buyerAddr_]; bool isNewUser = false; if (buyer.referrer == address(0x0)) { isNewUser = true; if (referrerAddrs_[0] == address(0x0) || referrerAddrs_[0] == buyerAddr_) { buyer.referrer = DEFAULT_REFERRER; buyers[DEFAULT_REFERRER].referrals.push(buyerAddr_); } else { buyer.referrer = referrerAddrs_[0]; buyers[referrerAddrs_[0]].referrals.push(buyerAddr_); } if (referrerAddrs_.length > 1 && buyer.referrer != DEFAULT_REFERRER) { for (uint8 i = 0; i < REFERRAL_DEPTH && i < referrerAddrs_.length - 1; i++) { if (buyers[referrerAddrs_[i]].referrer == address(0x0)) { if (referrerAddrs_[i + 1] != address(0x0) && referrerAddrs_[i + 1] != referrerAddrs_[i]) { buyers[referrerAddrs_[i]].referrer = referrerAddrs_[i + 1]; buyers[referrerAddrs_[i + 1]].referrals.push(referrerAddrs_[i]); for (uint8 j = 0; j < i; j++) { buyers[referrerAddrs_[i + 1]].refsNumber[j]++; } } else { buyers[referrerAddrs_[i]].referrer = DEFAULT_REFERRER; buyers[DEFAULT_REFERRER].referrals.push(referrerAddrs_[i]); for (uint8 j = 0; j < i; j++) { buyers[DEFAULT_REFERRER].refsNumber[j]++; } break; } } } } } bool[] memory distributedLevels = new bool[](REFERRAL_LEVELS_PERCENTS.length); address current = buyerAddr_; address upline = buyer.referrer; uint8 maxRefLevel = 0; for (uint8 i = 0; i < REFERRAL_DEPTH; i++) { uint256 refPercent = 0; if (i == 0) { refPercent = REFERRAL_LEVELS_PERCENTS[buyers[upline].refLevel]; maxRefLevel = buyers[upline].refLevel; for (uint8 j = buyers[upline].refLevel; j >= 0; j--) { distributedLevels[j] = true; if (j == 0) { break; } } } else if (buyers[upline].refLevel > maxRefLevel && !distributedLevels[buyers[upline].refLevel]) { refPercent = REFERRAL_LEVELS_PERCENTS[buyers[upline].refLevel] - REFERRAL_LEVELS_PERCENTS[maxRefLevel]; maxRefLevel = buyers[upline].refLevel; for (uint8 j = buyers[upline].refLevel; j >= 0; j--) { distributedLevels[j] = true; if (j == 0) { break; } } } uint256 amount = amount_ * refPercent / Constants.PERCENT_PRECISION; if (amount > 0) { if (buyers[upline].totalSpent > 0) { payable(upline).transfer(amount); buyers[upline].bonus+= amount; emit Events.ReferralBonusReceived(upline, buyerAddr_, i, amount, block.timestamp); } else { DEFAULT_REFERRER.transfer(amount); emit Events.ReferralBonusReceived(DEFAULT_REFERRER, buyerAddr_, i, amount, block.timestamp); } } buyers[upline].refs[i]++; if (isNewUser) { buyers[upline].refsNumber[i]++; } current = upline; upline = buyers[upline].referrer; } upline = buyerAddr_; for (uint256 i = 0; i <= REFERRAL_TURNOVER_DEPTH; i++) { if (upline == address(0)) { break; } _updateReferralLevel(upline, amount_); _updateLeaderLevel(upline); upline = buyers[upline].referrer; } } function _updateReferralLevel(address buyerAddr_, uint256 amount_) private { buyers[buyerAddr_].refTurnover+= amount_; for (uint8 level = uint8(REFERRAL_LEVELS_MILESTONES.length - 1); level > 0; level--) { if (buyers[buyerAddr_].refTurnover >= REFERRAL_LEVELS_MILESTONES[level]) { buyers[buyerAddr_].refLevel = level; break; } } } function _updateLeaderLevel(address buyerAddr_) private { if (buyerAddr_ == DEFAULT_REFERRER) { return; } uint256 totalUsersAttracted = getTotalAttractedUsers(buyerAddr_); for (uint8 level = uint8(LEADER_LEVELS_MILESTONES.length - 1); level > buyers[buyerAddr_].leaderLevel; level--) { if (buyers[buyerAddr_].refTurnover >= LEADER_LEVELS_MILESTONES[level] && totalUsersAttracted >= LEADER_LEVELS_USERS_MILESTONES[level] ) { buyers[buyerAddr_].leaderLevel = level; buyers[buyerAddr_].mayBecomeLeader = true; address upline = buyers[buyerAddr_].referrer; for (uint8 i = 0; i < 100; i++) { if (upline == DEFAULT_REFERRER) { break; } if (buyers[upline].isLeader && buyers[upline].leaderLevel >= buyers[buyerAddr_].leaderLevel) { buyers[buyerAddr_].mayBecomeLeader = false; break; } upline = buyers[upline].referrer; } break; } } } function getTotalAttractedUsers(address leaderAddr) public view returns (uint256 usersCount) { for (uint8 i = 0; i < REFERRAL_TURNOVER_DEPTH; i++) { usersCount+= buyers[leaderAddr].refsNumber[i]; } } function claimLeadership() external returns(bool) { require(buyers[msg.sender].mayBecomeLeader, "05"); address upline = buyers[msg.sender].referrer; for (uint8 i = 0; i < 100; i++) { if (upline == DEFAULT_REFERRER) { break; } if (buyers[upline].isLeader && buyers[upline].leaderLevel >= buyers[msg.sender].leaderLevel) { buyers[msg.sender].mayBecomeLeader = false; break; } upline = buyers[upline].referrer; } if (buyers[msg.sender].mayBecomeLeader) { buyers[msg.sender].mayBecomeLeader = false; buyers[msg.sender].isLeader = true; claimBoost(); emit Events.NewLeader(msg.sender, buyers[msg.sender].leaderLevel, block.timestamp); return true; } return false; } function claimBoost() public { require(buyers[msg.sender].totalSpent >= Constants.MIN_INVESTMENT_TO_GET_BOOST, "06"); if (buyers[msg.sender].isLeader) { if (!boostsReceived[msg.sender][buyers[msg.sender].leaderLevel]) { CommonInterface(BOOST_NFT_CONTRACT_ADDRESS) .mintLeaderBoost(msg.sender, buyers[msg.sender].leaderLevel - 1); boostsReceived[msg.sender][buyers[msg.sender].leaderLevel] = true; } else { revert("07"); } } else { address leader = findLeader(msg.sender); if (leader != DEFAULT_REFERRER) { if (!boostsReceived[msg.sender][buyers[leader].leaderLevel]) { CommonInterface(BOOST_NFT_CONTRACT_ADDRESS) .mintLeaderBoost(msg.sender, buyers[leader].leaderLevel - 1); boostsReceived[msg.sender][buyers[leader].leaderLevel] = true; } else { revert("07"); } } } } function findLeader(address attractedAddr) public view returns(address) { address upline = buyers[attractedAddr].referrer; for (uint8 i = 0; i < 100; i++) { if (buyers[upline].isLeader || upline == DEFAULT_REFERRER) { break; } upline = buyers[upline].referrer; } return upline; } function getBuyerReferralsStats(address buyerAddr) external view returns (address, uint256, uint256[REFERRAL_DEPTH] memory, uint256[REFERRAL_DEPTH] memory, uint256, uint256) { Models.Buyer memory buyer = buyers[buyerAddr]; return ( buyer.referrer, buyer.bonus, buyer.refs, buyer.refsNumber, buyer.refLevel, buyer.refTurnover ); } function referrals(address buyerAddr) external view returns(address[] memory) { return buyers[buyerAddr].referrals; } } contract POSDuckNFT is ReferralProgram, ERC721 { address public immutable owner; address payable public immutable FEE_RECEIVER; string private baseURI; address public mainContractAddress; uint256 public totalSpent; uint256 public nftOwnersCount; mapping(uint256 => uint256) private prices; uint256 public totalSupply; constructor( string memory name_, string memory symbol_, string memory uri_, address boostNFTContractAddress, address defaultReferrerAddress, address feeReceiverAddress ) ERC721(name_, symbol_) ReferralProgram(boostNFTContractAddress, defaultReferrerAddress) { baseURI = uri_; owner = _msgSender(); FEE_RECEIVER = payable(feeReceiverAddress); } receive() external payable { (bool sent, ) = mainContractAddress.call{value: msg.value}(""); require(sent, "03"); } function setMainContractAddress(address contractAddress) external { require(owner == _msgSender(), "00"); require(Address.isContract(contractAddress), "01"); require(mainContractAddress == address(0x0), "13"); mainContractAddress = contractAddress; } function buy(address[] calldata referrerAddrs_) public payable { require(msg.value >= Constants.MIN_PRICE, "02"); totalSpent+= msg.value; uint256 id = getID(); buyers[msg.sender].purchases.push(id); buyers[msg.sender].totalSpent+= msg.value; prices[id] = msg.value; _distributeReferralReward(msg.sender, referrerAddrs_, msg.value); totalSupply++; _mint(msg.sender, id); FEE_RECEIVER.transfer(msg.value * Constants.FEE_PERCENT / Constants.PERCENT_PRECISION); payable(mainContractAddress).transfer(address(this).balance); emit Events.NFTBought( msg.sender, referrerAddrs_.length > 0 ? referrerAddrs_[0] : address(0x0), msg.value, id, block.timestamp ); } function changeBaseURI(string calldata newURI) external { require(owner == _msgSender(), "00"); baseURI = newURI; } function _baseURI() internal view override returns (string memory) { return baseURI; } function getPrice(uint256 tokenId) external view returns(uint256) { return prices[tokenId]; } function buy() external payable { payable(msg.sender).transfer(msg.value); } function getID() private view returns(uint256) { uint256 id = block.timestamp; while (_exists(id)) { id++; } return id; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"uri_","type":"string"},{"internalType":"address","name":"boostNFTContractAddress","type":"address"},{"internalType":"address","name":"defaultReferrerAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BOOST_NFT_CONTRACT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_REFERRER","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_RECEIVER","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"LEADER_LEVELS_MILESTONES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"LEADER_LEVELS_USERS_MILESTONES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERRAL_DEPTH","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"REFERRAL_LEVELS_MILESTONES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"REFERRAL_LEVELS_PERCENTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERRAL_TURNOVER_DEPTH","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"referrerAddrs_","type":"address[]"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"buyers","outputs":[{"internalType":"uint256","name":"totalSpent","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"bonus","type":"uint256"},{"internalType":"uint8","name":"refLevel","type":"uint8"},{"internalType":"uint256","name":"refTurnover","type":"uint256"},{"internalType":"uint8","name":"leaderLevel","type":"uint8"},{"internalType":"bool","name":"mayBecomeLeader","type":"bool"},{"internalType":"bool","name":"isLeader","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"changeBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimLeadership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"attractedAddr","type":"address"}],"name":"findLeader","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyerAddr","type":"address"}],"name":"getBuyerReferralsStats","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[10]","name":"","type":"uint256[10]"},{"internalType":"uint256[10]","name":"","type":"uint256[10]"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"leaderAddr","type":"address"}],"name":"getTotalAttractedUsers","outputs":[{"internalType":"uint256","name":"usersCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftOwnersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyerAddr","type":"address"}],"name":"referrals","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setMainContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSpent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6102006040526101f46101009081526102bc610120526103846101405261044c61016052610578610180526106406101a0526107086101c0526107d06101e0526200004f90600090600862000306565b5060408051610100810182526000815269023934c5a09da190000060208201526907695a92c20d6fe000009181019190915269163c0fb846284fa00000606082015269250ec4ddca432f6000006080820152694a1d89bb94865ec0000060a082015269de589d32bd931c40000060c08201526a02e5276153cd3fb380000060e0820152620000e29060019060086200035c565b50604080516101608101825260008152674563918244f40000602082015269023934c5a09da1900000918101919091526907695a92c20d6fe00000606082015269163c0fb846284fa00000608082015269250ec4ddca432f60000060a0820152694a1d89bb94865ec0000060c082015269de589d32bd931c40000060e08201526a02e5276153cd3fb38000006101008201526a05ca4ec2a79a7f670000006101208201526a0e0fe3d8bb9bc7b1000000610140820152620001a890600290600b6200035c565b50604080516101608101825260008152600a6020820152600f918101919091526019606082015260326080820152606460a0820152609660c082015261012c60e08201526101f46101008201526103e86101208201526109c46101408201526200021790600390600b62000306565b503480156200022557600080fd5b50604051620040af380380620040af83398101604081905262000248916200049e565b858584846200026282620002f760201b62001a161760201c565b620002985760405162461bcd60e51b8152602060048201526002602482015261303160f01b604482015260640160405180910390fd5b6001600160a01b0391821660a052166080526006620002b88382620005f5565b506007620002c78282620005f5565b50600c9150620002da90508582620005f5565b503360c0526001600160a01b031660e05250620006c19350505050565b6001600160a01b03163b151590565b8280548282559060005260206000209081019282156200034a579160200282015b828111156200034a578251829061ffff1690559160200191906001019062000327565b5062000358929150620003a5565b5090565b8280548282559060005260206000209081019282156200034a579160200282015b828111156200034a57825182906001600160581b03169055916020019190600101906200037d565b5b80821115620003585760008155600101620003a6565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003e457600080fd5b81516001600160401b0380821115620004015762000401620003bc565b604051601f8301601f19908116603f011681019082821181831017156200042c576200042c620003bc565b816040528381526020925086838588010111156200044957600080fd5b600091505b838210156200046d57858201830151818301840152908201906200044e565b600093810190920192909252949350505050565b80516001600160a01b03811681146200049957600080fd5b919050565b60008060008060008060c08789031215620004b857600080fd5b86516001600160401b0380821115620004d057600080fd5b620004de8a838b01620003d2565b97506020890151915080821115620004f557600080fd5b620005038a838b01620003d2565b965060408901519150808211156200051a57600080fd5b506200052989828a01620003d2565b9450506200053a6060880162000481565b92506200054a6080880162000481565b91506200055a60a0880162000481565b90509295509295509295565b600181811c908216806200057b57607f821691505b6020821081036200059c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f057600081815260208120601f850160051c81016020861015620005cb5750805b601f850160051c820191505b81811015620005ec57828155600101620005d7565b5050505b505050565b81516001600160401b03811115620006115762000611620003bc565b620006298162000622845462000566565b84620005a2565b602080601f831160018114620006615760008415620006485750858301515b600019600386901b1c1916600185901b178555620005ec565b600085815260208120601f198616915b82811015620006925788860151825594840194600190910190840162000671565b5085821015620006b15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161393d62000772600039600081816107910152610bfd01526000818161056701528181610f75015261191f015260008181610673015281816115eb015261178701526000818161051301528181611080015281816113cd015281816116f601528181611c2f01528181611d520152818161206f015281816120fc015281816121a8015281816125a60152818161260001528181612dc10152612eff015261393d6000f3fe6080604052600436106102345760003560e01c806395d89b411161012e578063d141b7f7116100ab578063e985e9c51161006f578063e985e9c514610820578063e9a10abd14610840578063ec9da59e14610856578063eca082d814610876578063fb346eab1461088b57600080fd5b8063d141b7f71461075f578063d3e78e4d1461077f578063d89e1cd1146107b3578063da6b7356146107d3578063e7572230146107f357600080fd5b8063a22cb465116100f2578063a22cb465146106e2578063a6f2ae3a14610702578063b88d4fde1461070a578063ba92761f1461072a578063c87b56dd1461073f57600080fd5b806395d89b411461058957806397a993aa1461059e5780639b4c1b78146106615780639c16cc69146106955780639ca423b3146106b557600080fd5b80633251c307116101bc5780636352211e116101805780636352211e146104c157806370a08231146104e1578063781e65e3146105015780638c219d66146105355780638da5cb5b1461055557600080fd5b80633251c3071461042557806339a0c6f91461044c57806342842e0e1461046c578063585c309c1461048c5780635b3e8fe7146104ac57600080fd5b806310f65b3b1161020357806310f65b3b1461037c57806318160ddd146103aa57806321bcedcf146103c057806323b872dd146103d357806331e32547146103f357600080fd5b806301ffc9a7146102cd57806306fdde0314610302578063081812fc14610324578063095ea7b31461035c57600080fd5b366102c857600d546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610286576040519150601f19603f3d011682016040523d82523d6000602084013e61028b565b606091505b50509050806102c65760405162461bcd60e51b8152602060048201526002602482015261303360f01b60448201526064015b60405180910390fd5b005b600080fd5b3480156102d957600080fd5b506102ed6102e8366004613146565b6108a1565b60405190151581526020015b60405180910390f35b34801561030e57600080fd5b506103176108f3565b6040516102f991906131b3565b34801561033057600080fd5b5061034461033f3660046131c6565b610985565b6040516001600160a01b0390911681526020016102f9565b34801561036857600080fd5b506102c66103773660046131f6565b6109ac565b34801561038857600080fd5b5061039c6103973660046131c6565b610ac1565b6040519081526020016102f9565b3480156103b657600080fd5b5061039c60115481565b6102c66103ce366004613220565b610ae2565b3480156103df57600080fd5b506102c66103ee366004613295565b610d1d565b3480156103ff57600080fd5b5061041361040e3660046132d1565b610d4e565b6040516102f99695949392919061330f565b34801561043157600080fd5b5061043a600581565b60405160ff90911681526020016102f9565b34801561045857600080fd5b506102c6610467366004613358565b610f73565b34801561047857600080fd5b506102c6610487366004613295565b610fdd565b34801561049857600080fd5b5061039c6104a73660046131c6565b610ff8565b3480156104b857600080fd5b506102ed611008565b3480156104cd57600080fd5b506103446104dc3660046131c6565b611218565b3480156104ed57600080fd5b5061039c6104fc3660046132d1565b611278565b34801561050d57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b34801561054157600080fd5b5061039c6105503660046132d1565b6112fe565b34801561056157600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b34801561059557600080fd5b50610317611363565b3480156105aa57600080fd5b506106146105b93660046132d1565b600460208190526000918252604090912060018101546002820154928201546019830154601a840154601b9094015492946001600160a01b031693919260ff9182169291818116916101008104821691620100009091041688565b604080519889526001600160a01b0390971660208901529587019490945260ff928316606087015260808601919091521660a0840152151560c0830152151560e0820152610100016102f9565b34801561066d57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a157600080fd5b506103446106b03660046132d1565b611372565b3480156106c157600080fd5b506106d56106d03660046132d1565b61143f565b6040516102f991906133b8565b3480156106ee57600080fd5b506102c66106fd366004613405565b6114b8565b6102c66114c7565b34801561071657600080fd5b506102c6610725366004613457565b6114f6565b34801561073657600080fd5b506102c661152e565b34801561074b57600080fd5b5061031761075a3660046131c6565b611868565b34801561076b57600080fd5b5061039c61077a3660046131c6565b6118cf565b34801561078b57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b3480156107bf57600080fd5b5061039c6107ce3660046131c6565b6118df565b3480156107df57600080fd5b50600d54610344906001600160a01b031681565b3480156107ff57600080fd5b5061039c61080e3660046131c6565b60009081526010602052604090205490565b34801561082c57600080fd5b506102ed61083b366004613533565b6118ef565b34801561084c57600080fd5b5061039c600f5481565b34801561086257600080fd5b506102c66108713660046132d1565b61191d565b34801561088257600080fd5b5061043a600a81565b34801561089757600080fd5b5061039c600e5481565b60006001600160e01b031982166380ac58cd60e01b14806108d257506001600160e01b03198216635b5e139f60e01b145b806108ed57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606006805461090290613566565b80601f016020809104026020016040519081016040528092919081815260200182805461092e90613566565b801561097b5780601f106109505761010080835404028352916020019161097b565b820191906000526020600020905b81548152906001019060200180831161095e57829003601f168201915b5050505050905090565b600061099082611a25565b506000908152600a60205260409020546001600160a01b031690565b60006109b782611218565b9050806001600160a01b0316836001600160a01b031603610a245760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016102bd565b336001600160a01b0382161480610a405750610a4081336118ef565b610ab25760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016102bd565b610abc8383611a84565b505050565b60018181548110610ad157600080fd5b600091825260209091200154905081565b674563918244f40000341015610b1f5760405162461bcd60e51b8152602060048201526002602482015261181960f11b60448201526064016102bd565b34600e6000828254610b3191906135b0565b9091555060009050610b41611af2565b33600081815260046020908152604082208054600181810183558285529284200185905592825290910180549293503492909190610b809084906135b0565b909155505060008181526010602090815260409182902034905581518482028181018301909352848152610bd492339287918791829190850190849080828437600092019190915250349250611b2a915050565b60118054906000610be4836135c3565b9190505550610bf333826127a1565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166108fc612710610c2f6103e8346135dc565b610c399190613611565b6040518115909202916000818181858888f19350505050158015610c61573d6000803e3d6000fd5b50600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c9b573d6000803e3d6000fd5b508082610ca9576000610cd1565b83836000818110610cbc57610cbc613625565b9050602002016020810190610cd191906132d1565b604080513481524260208201526001600160a01b03929092169133917f7a0a7460f8075212b07f19a9ab30b15d4d17c0984bfc2670bcd0430a46913d87910160405180910390a4505050565b610d2733826128e3565b610d435760405162461bcd60e51b81526004016102bd9061363b565b610abc838383612942565b600080610d59613111565b610d61613111565b6001600160a01b0385166000908152600460209081526040808320815181546101a094810282018501909352610180810183815285948594929392849291849190840182828015610dd157602002820191906000526020600020905b815481526020019060010190808311610dbd575b50505050508152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160038201805480602002602001604051908101604052809291908181526020018280548015610e6c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4e575b505050918352505060048201546020820152604080516101408101825291019060058301600a8282826020028201915b815481526020019060010190808311610e9c5750505091835250506040805161014081019182905260209092019190600f840190600a9082845b815481526020019060010190808311610ed6575050509183525050601982015460ff9081166020830152601a830154604080840191909152601b90930154808216606084015261010080820483161515608080860191909152620100009092048316151560a09485015293850151908501519285015160c086015160e08701519690950151919e939d509b50929950929092169650945092505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610fd05760405162461bcd60e51b8152602060048201526002602482015261030360f41b60448201526064016102bd565b600c610abc8284836136d7565b610abc838383604051806020016040528060008152506114f6565b60038181548110610ad157600080fd5b336000908152600460205260408120601b0154610100900460ff166110545760405162461bcd60e51b8152602060048201526002602482015261303560f01b60448201526064016102bd565b336000908152600460205260408120600201546001600160a01b0316905b60648160ff161015611170577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160315611170576001600160a01b0382166000908152600460205260409020601b015462010000900460ff168015611118575033600090815260046020526040808220601b908101546001600160a01b0386168452919092209091015460ff918216911610155b1561113d57336000908152600460205260409020601b01805461ff0019169055611170565b6001600160a01b03918216600090815260046020526040902060020154909116908061116881613797565b915050611072565b50336000908152600460205260409020601b0154610100900460ff161561121057336000908152600460205260409020601b01805462ffff001916620100001790556111ba61152e565b33600081815260046020908152604091829020601b0154915142815260ff90921692917f49cbcc1409ab15d49c5033e98b4b48f01c9ad33b6652c562c6c6739603dcb394910160405180910390a3600191505090565b600091505090565b6000818152600860205260408120546001600160a01b0316806108ed5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016102bd565b60006001600160a01b0382166112e25760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016102bd565b506001600160a01b031660009081526009602052604090205490565b6000805b600560ff8216101561135d576001600160a01b0383166000908152600460205260409020600f0160ff8216600a811061133d5761133d613625565b015461134990836135b0565b91508061135581613797565b915050611302565b50919050565b60606007805461090290613566565b6001600160a01b03808216600090815260046020526040812060020154909116815b60648160ff161015611438576001600160a01b0382166000908152600460205260409020601b015462010000900460ff168061140157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611438576001600160a01b03918216600090815260046020526040902060020154909116908061143081613797565b915050611394565b5092915050565b6001600160a01b0381166000908152600460209081526040918290206003018054835181840281018401909452808452606093928301828280156114ac57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161148e575b50505050509050919050565b6114c3338383612ade565b5050565b60405133903480156108fc02916000818181858888f193505050501580156114f3573d6000803e3d6000fd5b50565b61150033836128e3565b61151c5760405162461bcd60e51b81526004016102bd9061363b565b61152884848484612bac565b50505050565b336000908152600460205260409020600101546802b5e3af16b1880000111561157e5760405162461bcd60e51b8152602060048201526002602482015261181b60f11b60448201526064016102bd565b336000908152600460205260409020601b015462010000900460ff16156116e75733600090815260056020908152604080832060048352818420601b015460ff9081168552925290912054166116ba57336000818152600460205260409020601b01546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b64bc6fb916116219060019060ff166137b6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401600060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505033600090815260056020908152604080832060048352818420601b015460ff1684529091529020805460ff19166001179055506118669050565b60405162461bcd60e51b8152602060048201526002602482015261303760f01b60448201526064016102bd565b60006116f233611372565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114f3573360009081526005602090815260408083206001600160a01b038516845260048352818420601b015460ff9081168552925290912054166116ba576001600160a01b038181166000908152600460205260409020601b01547f00000000000000000000000000000000000000000000000000000000000000009091169063b64bc6fb9033906117c19060019060ff166137b6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401600060405180830381600087803b15801561180a57600080fd5b505af115801561181e573d6000803e3d6000fd5b50503360009081526005602090815260408083206001600160a01b038716845260048352818420601b015460ff1684529091529020805460ff19166001179055506114f39050565b565b606061187382611a25565b600061187d612bdf565b9050600081511161189d57604051806020016040528060008152506118c8565b806118a784612bee565b6040516020016118b89291906137cf565b6040516020818303038152906040525b9392505050565b60008181548110610ad157600080fd5b60028181548110610ad157600080fd5b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205460ff1690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461197a5760405162461bcd60e51b8152602060048201526002602482015261030360f41b60448201526064016102bd565b6001600160a01b0381163b6119b65760405162461bcd60e51b8152602060048201526002602482015261303160f01b60448201526064016102bd565b600d546001600160a01b0316156119f45760405162461bcd60e51b8152602060048201526002602482015261313360f01b60448201526064016102bd565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03163b151590565b6000818152600860205260409020546001600160a01b03166114f35760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016102bd565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611ab982611218565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000425b6000818152600860205260409020546001600160a01b031615611b255780611b1d816135c3565b915050611af6565b919050565b600082511180611b5657506001600160a01b038381166000908152600460205260409020600201541615155b611b875760405162461bcd60e51b81526020600482015260026024820152610c0d60f21b60448201526064016102bd565b6001600160a01b038084166000908152600460205260408120600281015490921661222e576001905060006001600160a01b031684600081518110611bce57611bce613625565b60200260200101516001600160a01b03161480611c165750846001600160a01b031684600081518110611c0357611c03613625565b60200260200101516001600160a01b0316145b15611c93576002820180546001600160a01b03199081167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169182179093556000908152600460209081526040822060030180546001810182559083529120018054909116918716919091179055611d3f565b83600081518110611ca657611ca6613625565b60200260200101518260020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506004600085600081518110611ced57611ced613625565b6020908102919091018101516001600160a01b039081168352828201939093526040909101600090812060030180546001810182559082529190200180546001600160a01b0319169187169190911790555b60018451118015611d81575060028201547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116911614155b1561222e5760005b600a60ff8216108015611dab575060018551611da591906137fe565b8160ff16105b1561222c5760006001600160a01b031660046000878460ff1681518110611dd457611dd4613625565b6020908102919091018101516001600160a01b0390811683529082019290925260400160002060020154160361221a57600085611e12836001613811565b60ff1681518110611e2557611e25613625565b60200260200101516001600160a01b031614158015611e9a5750848160ff1681518110611e5457611e54613625565b60200260200101516001600160a01b031685826001611e739190613811565b60ff1681518110611e8657611e86613625565b60200260200101516001600160a01b031614155b1561206d5784611eab826001613811565b60ff1681518110611ebe57611ebe613625565b602002602001015160046000878460ff1681518110611edf57611edf613625565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506004600086836001611f409190613811565b60ff1681518110611f5357611f53613625565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600301858260ff1681518110611f9357611f93613625565b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b039092169190911790555b8160ff168160ff161015612067576004600087611fee856001613811565b60ff168151811061200157612001613625565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600f018160ff16600a811061204057612040613625565b01805490600061204f836135c3565b9190505550808061205f90613797565b915050611fd0565b5061221a565b7f000000000000000000000000000000000000000000000000000000000000000060046000878460ff16815181106120a7576120a7613625565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600460007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166001600160a01b03168152602001908152602001600020600301858260ff168151811061215357612153613625565b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b039092169190911790555b8160ff168160ff161015612214576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600460205260409020600f0160ff8216600a81106121ed576121ed613625565b0180549060006121fc836135c3565b9190505550808061220c90613797565b915050612190565b5061222c565b8061222481613797565b915050611d89565b505b6000805467ffffffffffffffff81111561224a5761224a613441565b604051908082528060200260200182016040528015612273578160200160208202803683370190505b50600284015490915086906001600160a01b03166000805b600a60ff821610156127315760008160ff1660000361234f576001600160a01b038416600090815260046020526040812060190154815460ff9091169081106122d6576122d6613625565b60009182526020808320909101546001600160a01b0387168352600490915260409091206019015460ff1693509050825b6001878260ff168151811061231e5761231e613625565b9115156020928302919091019091015260ff81161561234957806123418161382a565b915050612307565b5061248f565b6001600160a01b03841660009081526004602052604090206019015460ff80851691161180156123b657506001600160a01b0384166000908152600460205260409020601901548651879160ff169081106123ac576123ac613625565b6020026020010151155b1561248f5760008360ff16815481106123d1576123d1613625565b60009182526020808320909101546001600160a01b038716835260049091526040822060190154825491929160ff90911690811061241157612411613625565b906000526020600020015461242691906137fe565b6001600160a01b03851660009081526004602052604090206019015460ff1693509050825b6001878260ff168151811061246257612462613625565b9115156020928302919091019091015260ff81161561248d57806124858161382a565b91505061244b565b505b600061271061249e838c6135dc565b6124a89190613611565b9050801561266b576001600160a01b03851660009081526004602052604090206001015415612599576040516001600160a01b0386169082156108fc029083906000818181858888f19350505050158015612507573d6000803e3d6000fd5b506001600160a01b038516600090815260046020819052604082200180548392906125339084906135b0565b925050819055508260ff168c6001600160a01b0316866001600160a01b03167f66560e8c5f17ebc3c9739c4a89657ae3e0f9ca3c3e4b1fe920bc2735522a6a3d844260405161258c929190918252602082015260400190565b60405180910390a461266b565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083906000818181858888f193505050501580156125ef573d6000803e3d6000fd5b508260ff168c6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f66560e8c5f17ebc3c9739c4a89657ae3e0f9ca3c3e4b1fe920bc2735522a6a3d8442604051612662929190918252602082015260400190565b60405180910390a45b6001600160a01b038516600090815260046020526040902060050160ff8416600a811061269a5761269a613625565b0180549060006126a9836135c3565b919050555087156126f8576001600160a01b0385166000908152600460205260409020600f0160ff8416600a81106126e3576126e3613625565b0180549060006126f2836135c3565b91905055505b50506001600160a01b0380841660009081526004602052604090206002015493945092909216918061272981613797565b91505061228b565b5088915060005b60058111612795576001600160a01b03831615612795576127598389612cef565b61276283612dbf565b6001600160a01b03928316600090815260046020526040902060020154909216918061278d816135c3565b915050612738565b50505050505050505050565b6001600160a01b0382166127f75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016102bd565b6000818152600860205260409020546001600160a01b03161561285c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016102bd565b6001600160a01b03821660009081526009602052604081208054600192906128859084906135b0565b909155505060008181526008602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000806128ef83611218565b9050806001600160a01b0316846001600160a01b03161480612916575061291681856118ef565b8061293a5750836001600160a01b031661292f84610985565b6001600160a01b0316145b949350505050565b826001600160a01b031661295582611218565b6001600160a01b0316146129b95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016102bd565b6001600160a01b038216612a1b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016102bd565b612a26600082611a84565b6001600160a01b0383166000908152600960205260408120805460019290612a4f9084906137fe565b90915550506001600160a01b0382166000908152600960205260408120805460019290612a7d9084906135b0565b909155505060008181526008602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603612b3f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016102bd565b6001600160a01b038381166000818152600b6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612bb7848484612942565b612bc384848484613010565b6115285760405162461bcd60e51b81526004016102bd90613847565b6060600c805461090290613566565b606081600003612c155750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612c3f5780612c29816135c3565b9150612c389050600a83613611565b9150612c19565b60008167ffffffffffffffff811115612c5a57612c5a613441565b6040519080825280601f01601f191660200182016040528015612c84576020820181803683370190505b5090505b841561293a57612c996001836137fe565b9150612ca6600a86613899565b612cb19060306135b0565b60f81b818381518110612cc657612cc6613625565b60200101906001600160f81b031916908160001a905350612ce8600a86613611565b9450612c88565b6001600160a01b0382166000908152600460205260408120601a018054839290612d1a9084906135b0565b909155505060018054600091612d2f916137fe565b90505b60ff811615610abc5760018160ff1681548110612d5157612d51613625565b60009182526020808320909101546001600160a01b038616835260049091526040909120601a015410612dad576001600160a01b0383166000908152600460205260409020601901805460ff831660ff19909116179055505050565b80612db78161382a565b915050612d32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603612dfb5750565b6000612e06826112fe565b600254909150600090612e1b906001906137fe565b90505b6001600160a01b0383166000908152600460205260409020601b015460ff9081169082161115610abc5760028160ff1681548110612e5e57612e5e613625565b60009182526020808320909101546001600160a01b038616835260049091526040909120601a015410801590612eb4575060038160ff1681548110612ea557612ea5613625565b90600052602060002001548210155b15612ffe576001600160a01b038084166000908152600460205260408120601b8101805461ffff191660ff86161761010017905560020154909116905b60648160ff161015612ff7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160315612ff7576001600160a01b0382166000908152600460205260409020601b015462010000900460ff168015612f9657506001600160a01b03808616600090815260046020526040808220601b9081015493861683529120015460ff918216911610155b15612fc4576001600160a01b0385166000908152600460205260409020601b01805461ff0019169055612ff7565b6001600160a01b039182166000908152600460205260409020600201549091169080612fef81613797565b915050612ef1565b5050505050565b806130088161382a565b915050612e1e565b60006001600160a01b0384163b1561310657604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906130549033908990889088906004016138ad565b6020604051808303816000875af192505050801561308f575060408051601f3d908101601f1916820190925261308c918101906138ea565b60015b6130ec573d8080156130bd576040519150601f19603f3d011682016040523d82523d6000602084013e6130c2565b606091505b5080516000036130e45760405162461bcd60e51b81526004016102bd90613847565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061293a565b506001949350505050565b604051806101400160405280600a906020820280368337509192915050565b6001600160e01b0319811681146114f357600080fd5b60006020828403121561315857600080fd5b81356118c881613130565b60005b8381101561317e578181015183820152602001613166565b50506000910152565b6000815180845261319f816020860160208601613163565b601f01601f19169290920160200192915050565b6020815260006118c86020830184613187565b6000602082840312156131d857600080fd5b5035919050565b80356001600160a01b0381168114611b2557600080fd5b6000806040838503121561320957600080fd5b613212836131df565b946020939093013593505050565b6000806020838503121561323357600080fd5b823567ffffffffffffffff8082111561324b57600080fd5b818501915085601f83011261325f57600080fd5b81358181111561326e57600080fd5b8660208260051b850101111561328357600080fd5b60209290920196919550909350505050565b6000806000606084860312156132aa57600080fd5b6132b3846131df565b92506132c1602085016131df565b9150604084013590509250925092565b6000602082840312156132e357600080fd5b6118c8826131df565b8060005b600a8110156115285781518452602093840193909101906001016132f0565b6001600160a01b038716815260208101869052610300810161333460408301876132ec565b6133426101808301866132ec565b6102c08201939093526102e00152949350505050565b6000806020838503121561336b57600080fd5b823567ffffffffffffffff8082111561338357600080fd5b818501915085601f83011261339757600080fd5b8135818111156133a657600080fd5b86602082850101111561328357600080fd5b6020808252825182820181905260009190848201906040850190845b818110156133f95783516001600160a01b0316835292840192918401916001016133d4565b50909695505050505050565b6000806040838503121561341857600080fd5b613421836131df565b91506020830135801515811461343657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561346d57600080fd5b613476856131df565b9350613484602086016131df565b925060408501359150606085013567ffffffffffffffff808211156134a857600080fd5b818701915087601f8301126134bc57600080fd5b8135818111156134ce576134ce613441565b604051601f8201601f19908116603f011681019083821181831017156134f6576134f6613441565b816040528281528a602084870101111561350f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561354657600080fd5b61354f836131df565b915061355d602084016131df565b90509250929050565b600181811c9082168061357a57607f821691505b60208210810361135d57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156108ed576108ed61359a565b6000600182016135d5576135d561359a565b5060010190565b60008160001904831182151516156135f6576135f661359a565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613620576136206135fb565b500490565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b601f821115610abc57600081815260208120601f850160051c810160208610156136b05750805b601f850160051c820191505b818110156136cf578281556001016136bc565b505050505050565b67ffffffffffffffff8311156136ef576136ef613441565b613703836136fd8354613566565b83613689565b6000601f841160018114613737576000851561371f5750838201355b600019600387901b1c1916600186901b178355612ff7565b600083815260209020601f19861690835b828110156137685786850135825560209485019460019092019101613748565b50868210156137855760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600060ff821660ff81036137ad576137ad61359a565b60010192915050565b60ff82811682821603908111156108ed576108ed61359a565b600083516137e1818460208801613163565b8351908301906137f5818360208801613163565b01949350505050565b818103818111156108ed576108ed61359a565b60ff81811683821601908111156108ed576108ed61359a565b600060ff82168061383d5761383d61359a565b6000190192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826138a8576138a86135fb565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138e090830184613187565b9695505050505050565b6000602082840312156138fc57600080fd5b81516118c88161313056fea26469706673582212202da5c2a1a305f64fe677e7ed7c4311201b954ab22905260ad6025d6bcf51ad3864736f6c6343000810003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000001d662e6347114666e2fa3cf647ef4f741b672a30000000000000000000000005e633cae917f2c8a8e59498011b7c906478c788800000000000000000000000033dec1b9978934338b6cbdff0274682e3f60607700000000000000000000000000000000000000000000000000000000000000114475636b4e4654436f6c6c656374696f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006504f5344d0a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f00000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000001d662e6347114666e2fa3cf647ef4f741b672a30000000000000000000000005e633cae917f2c8a8e59498011b7c906478c788800000000000000000000000033dec1b9978934338b6cbdff0274682e3f60607700000000000000000000000000000000000000000000000000000000000000114475636b4e4654436f6c6c656374696f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006504f5344d0a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f00000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): DuckNFTCollection
Arg [1] : symbol_ (string): POSDС
Arg [2] : uri_ (string): /
Arg [3] : boostNFTContractAddress (address): 0x01d662e6347114666e2fa3cf647ef4f741b672a3
Arg [4] : defaultReferrerAddress (address): 0x5e633cae917f2c8a8e59498011b7c906478c7888
Arg [5] : feeReceiverAddress (address): 0x33dec1b9978934338b6cbdff0274682e3f606077
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [3] : 00000000000000000000000001d662e6347114666e2fa3cf647ef4f741b672a3
Arg [4] : 0000000000000000000000005e633cae917f2c8a8e59498011b7c906478c7888
Arg [5] : 00000000000000000000000033dec1b9978934338b6cbdff0274682e3f606077
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [7] : 4475636b4e4654436f6c6c656374696f6e000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [9] : 504f5344d0a10000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [11] : 2f00000000000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
28493:2550:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29313:19;;:46;;29298:9;;-1:-1:-1;;;;;29313:19:0;;29345:9;;29298;29313:46;29298:9;29313:46;29345:9;29313:19;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29297:62;;;29374:4;29366:19;;;;-1:-1:-1;;;29366:19:0;;426:2:1;29366:19:0;;;408:21:1;465:1;445:18;;;438:29;-1:-1:-1;;;483:18:1;;;476:32;525:18;;29366:19:0;;;;;;;;;29284:107;28493:2550;;;;8284:305;;;;;;;;;;-1:-1:-1;8284:305:0;;;;;:::i;:::-;;:::i;:::-;;;1105:14:1;;1098:22;1080:41;;1068:2;1053:18;8284:305:0;;;;;;;;9060:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10126:171::-;;;;;;;;;;-1:-1:-1;10126:171:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2237:32:1;;;2219:51;;2207:2;2192:18;10126:171:0;2073:203:1;9695:417:0;;;;;;;;;;-1:-1:-1;9695:417:0;;;;;:::i;:::-;;:::i;19335:156::-;;;;;;;;;;-1:-1:-1;19335:156:0;;;;;:::i;:::-;;:::i;:::-;;;2864:25:1;;;2852:2;2837:18;19335:156:0;2718:177:1;28819:26:0;;;;;;;;;;;;;;;;29678:767;;;;;;:::i;:::-;;:::i;10658:293::-;;;;;;;;;;-1:-1:-1;10658:293:0;;;;;:::i;:::-;;:::i;27954:399::-;;;;;;;;;;-1:-1:-1;27954:399:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;19853:49::-;;;;;;;;;;;;19901:1;19853:49;;;;;5246:4:1;5234:17;;;5216:36;;5204:2;5189:18;19853:49:0;5074:184:1;30451:130:0;;;;;;;;;;-1:-1:-1;30451:130:0;;;;;:::i;:::-;;:::i;10965:185::-;;;;;;;;;;-1:-1:-1;10965:185:0;;;;;:::i;:::-;;:::i;19699:103::-;;;;;;;;;;-1:-1:-1;19699:103:0;;;;;:::i;:::-;;:::i;25803:837::-;;;;;;;;;;;;;:::i;8824:222::-;;;;;;;;;;-1:-1:-1;8824:222:0;;;;;:::i;:::-;;:::i;8603:207::-;;;;;;;;;;-1:-1:-1;8603:207:0;;;;;:::i;:::-;;:::i;19129:49::-;;;;;;;;;;;;;;;25578:219;;;;;;;;;;-1:-1:-1;25578:219:0;;;;;:::i;:::-;;:::i;28547:30::-;;;;;;;;;;;;;;;9174:104;;;;;;;;;;;;;:::i;19909:47::-;;;;;;;;;;-1:-1:-1;19909:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19909:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6407:25:1;;;-1:-1:-1;;;;;6468:32:1;;;6463:2;6448:18;;6441:60;6517:18;;;6510:34;;;;6592:4;6580:17;;;6575:2;6560:18;;6553:45;6629:3;6614:19;;6607:35;;;;6679:17;6488:3;6658:19;;6651:46;6741:14;6734:22;6728:3;6713:19;;6706:51;6801:14;6794:22;6788:3;6773:19;;6766:51;6394:3;6379:19;19909:47:0;6084:739:1;19183:51:0;;;;;;;;;;;;;;;27612:336;;;;;;;;;;-1:-1:-1;27612:336:0;;;;;:::i;:::-;;:::i;28359:125::-;;;;;;;;;;-1:-1:-1;28359:125:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10311:155::-;;;;;;;;;;-1:-1:-1;10311:155:0;;;;;:::i;:::-;;:::i;30794:84::-;;;:::i;11164:323::-;;;;;;;;;;-1:-1:-1;11164:323:0;;;;;:::i;:::-;;:::i;26646:960::-;;;;;;;;;;;;;:::i;9292:281::-;;;;;;;;;;-1:-1:-1;9292:281:0;;;;;:::i;:::-;;:::i;19241:89::-;;;;;;;;;;-1:-1:-1;19241:89:0;;;;;:::i;:::-;;:::i;28582:45::-;;;;;;;;;;;;;;;19496:198;;;;;;;;;;-1:-1:-1;19496:198:0;;;;;:::i;:::-;;:::i;28661:34::-;;;;;;;;;;-1:-1:-1;28661:34:0;;;;-1:-1:-1;;;;;28661:34:0;;;30687:101;;;;;;;;;;-1:-1:-1;30687:101:0;;;;;:::i;:::-;30744:7;30767:15;;;:6;:15;;;;;;;30687:101;10480:164;;;;;;;;;;-1:-1:-1;10480:164:0;;;;;:::i;:::-;;:::i;28736:29::-;;;;;;;;;;;;;;;;29397:275;;;;;;;;;;-1:-1:-1;29397:275:0;;;;;:::i;:::-;;:::i;19807:41::-;;;;;;;;;;;;19846:2;19807:41;;28706:25;;;;;;;;;;;;;;;;8284:305;8386:4;-1:-1:-1;;;;;;8423:40:0;;-1:-1:-1;;;8423:40:0;;:105;;-1:-1:-1;;;;;;;8480:48:0;;-1:-1:-1;;;8480:48:0;8423:105;:158;;;-1:-1:-1;;;;;;;;;;7617:40:0;;;8545:36;8403:178;8284:305;-1:-1:-1;;8284:305:0:o;9060:100::-;9114:13;9147:5;9140:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9060:100;:::o;10126:171::-;10202:7;10222:23;10237:7;10222:14;:23::i;:::-;-1:-1:-1;10265:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10265:24:0;;10126:171::o;9695:417::-;9776:13;9792:23;9807:7;9792:14;:23::i;:::-;9776:39;;9840:5;-1:-1:-1;;;;;9834:11:0;:2;-1:-1:-1;;;;;9834:11:0;;9826:57;;;;-1:-1:-1;;;9826:57:0;;9970:2:1;9826:57:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:34;10028:18;;;10021:62;-1:-1:-1;;;10099:18:1;;;10092:31;10140:19;;9826:57:0;9768:397:1;9826:57:0;5634:10;-1:-1:-1;;;;;9918:21:0;;;;:62;;-1:-1:-1;9943:37:0;9960:5;5634:10;10480:164;:::i;9943:37::-;9896:174;;;;-1:-1:-1;;;9896:174:0;;10372:2:1;9896:174:0;;;10354:21:1;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;10521:32;10501:18;;;10494:60;10571:19;;9896:174:0;10170:426:1;9896:174:0;10083:21;10092:2;10096:7;10083:8;:21::i;:::-;9765:347;9695:417;;:::o;19335:156::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19335:156:0;:::o;29678:767::-;16068:7;29756:9;:32;;29748:47;;;;-1:-1:-1;;;29748:47:0;;10803:2:1;29748:47:0;;;10785:21:1;10842:1;10822:18;;;10815:29;-1:-1:-1;;;10860:18:1;;;10853:32;10902:18;;29748:47:0;10601:325:1;29748:47:0;29817:9;29804:10;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;29835:10:0;;-1:-1:-1;29848:7:0;:5;:7::i;:::-;29869:10;29862:18;;;;:6;:18;;;;;;;:37;;;;;;;;;;;;;;;;;;29906:18;;;:29;;;:41;;29835:20;;-1:-1:-1;29938:9:0;;29906:29;;29862:18;29906:41;;29938:9;;29906:41;:::i;:::-;;;;-1:-1:-1;;29954:10:0;;;;:6;:10;;;;;;;;;29967:9;29954:22;;29985:64;;;;;;;;;;;;;;;;;;30011:10;;30023:14;;;;;;29985:64;;;;30023:14;;29985:64;30023:14;29985:64;;;;;;;;;-1:-1:-1;30039:9:0;;-1:-1:-1;29985:25:0;;-1:-1:-1;;29985:64:0:i;:::-;30058:11;:13;;;:11;:13;;;:::i;:::-;;;;;;30078:21;30084:10;30096:2;30078:5;:21::i;:::-;-1:-1:-1;;;;;30106:12:0;:21;:86;16018:3;30128:33;16118:4;30128:9;:33;:::i;:::-;:63;;;;:::i;:::-;30106:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30209:19:0;;30201:60;;-1:-1:-1;;;;;30209:19:0;;;;30239:21;30201:60;;;;;30209:19;30201:60;30209:19;30201:60;30239:21;30209:19;30201:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30406:2:0;30319:25;:60;;30375:3;30319:60;;;30347:14;;30362:1;30347:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;30275:164;;;30388:9;12069:25:1;;30417:15:0;12125:2:1;12110:18;;12103:34;-1:-1:-1;;;;;30275:164:0;;;;;30300:10;;30275:164;;12042:18:1;30275:164:0;;;;;;;29741:704;29678:767;;:::o;10658:293::-;10810:41;5634:10;10843:7;10810:18;:41::i;:::-;10802:100;;;;-1:-1:-1;;;10802:100:0;;;;;;;:::i;:::-;10915:28;10925:4;10931:2;10935:7;10915:9;:28::i;27954:399::-;28033:7;28042;28051:30;;:::i;:::-;28083;;:::i;:::-;-1:-1:-1;;;;;28171:17:0;;28115:7;28171:17;;;:6;:17;;;;;;;;28143:45;;;;;;;;;;;;;;;;;;;;;28115:7;;;;28143:45;;28171:17;28143:45;;;28171:17;;28143:45;;;28171:17;28143:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28143:45:0;-1:-1:-1;;;;;28143:45:0;-1:-1:-1;;;;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28143:45:0;;;;;;;;;;;;;;;;-1:-1:-1;;;28143:45:0;;;-1:-1:-1;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28143:45:0;;;-1:-1:-1;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28143:45:0;;;-1:-1:-1;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28213:14;;;;28236:11;;;;28256:10;;;;28275:16;;;;28300:14;;;;28323:17;;;;;28213:14;;28236:11;;-1:-1:-1;28256:10:0;-1:-1:-1;28275:16:0;;-1:-1:-1;28197:150:0;;;;;-1:-1:-1;28323:17:0;-1:-1:-1;27954:399:0;-1:-1:-1;;;27954:399:0:o;30451:130::-;30522:5;-1:-1:-1;;;;;30522:21:0;5634:10;30522:21;30514:36;;;;-1:-1:-1;;;30514:36:0;;12765:2:1;30514:36:0;;;12747:21:1;12804:1;12784:18;;;12777:29;-1:-1:-1;;;12822:18:1;;;12815:32;12864:18;;30514:36:0;12563:325:1;30514:36:0;30559:7;:16;30569:6;;30559:7;:16;:::i;10965:185::-;11103:39;11120:4;11126:2;11130:7;11103:39;;;;;;;;;;;;:16;:39::i;19699:103::-;;;;;;;;;;;;25803:837;25881:10;25847:4;25874:18;;;:6;:18;;;;;:34;;;;;;;;25866:49;;;;-1:-1:-1;;;25866:49:0;;15153:2:1;25866:49:0;;;15135:21:1;15192:1;15172:18;;;15165:29;-1:-1:-1;;;15210:18:1;;;15203:32;15252:18;;25866:49:0;14951:325:1;25866:49:0;25948:10;25924:14;25941:18;;;:6;:18;;;;;:27;;;-1:-1:-1;;;;;25941:27:0;;25975:353;25997:3;25993:1;:7;;;25975:353;;;26030:16;-1:-1:-1;;;;;26020:26:0;:6;-1:-1:-1;;;;;26020:26:0;;26016:58;26059:5;26016:58;-1:-1:-1;;;;;26088:14:0;;;;;;:6;:14;;;;;:23;;;;;;;;:87;;;;-1:-1:-1;26152:10:0;26145:18;;;;:6;:18;;;;;;:30;;;;;-1:-1:-1;;;;;26115:14:0;;;;;;;;:26;;;;26145:30;;;;26115:26;;:60;;26088:87;26084:194;;;26195:10;26225:5;26188:18;;;:6;:18;;;;;:34;;:42;;-1:-1:-1;;26188:42:0;;;26263:5;;26084:194;-1:-1:-1;;;;;26297:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;26002:3;;;;:::i;:::-;;;;25975:353;;;-1:-1:-1;26347:10:0;26340:18;;;;:6;:18;;;;;:34;;;;;;;;26336:278;;;26392:10;26422:5;26385:18;;;:6;:18;;;;;:34;;:42;;-1:-1:-1;;26436:34:0;;;;;26479:12;:10;:12::i;:::-;26543:10;26536:18;;;;:6;:18;;;;;;;;;:30;;;26507:77;;26568:15;2864:25:1;;26536:30:0;;;;;26543:10;26507:77;;2837:18:1;26507:77:0;;;;;;;26602:4;26595:11;;;25803:837;:::o;26336:278::-;26629:5;26622:12;;;25803:837;:::o;8824:222::-;8896:7;8932:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8932:16:0;;8959:56;;;;-1:-1:-1;;;8959:56:0;;15663:2:1;8959:56:0;;;15645:21:1;15702:2;15682:18;;;15675:30;-1:-1:-1;;;15721:18:1;;;15714:54;15785:18;;8959:56:0;15461:348:1;8603:207:0;8675:7;-1:-1:-1;;;;;8703:19:0;;8695:73;;;;-1:-1:-1;;;8695:73:0;;16016:2:1;8695:73:0;;;15998:21:1;16055:2;16035:18;;;16028:30;16094:34;16074:18;;;16067:62;-1:-1:-1;;;16145:18:1;;;16138:39;16194:19;;8695:73:0;15814:405:1;8695:73:0;-1:-1:-1;;;;;;8786:16:0;;;;;:9;:16;;;;;;;8603:207::o;25578:219::-;25651:18;;25678:114;19901:1;25696:27;;;;25678:114;;;-1:-1:-1;;;;;25752:18:0;;;;;;:6;:18;;;;;:29;;:32;;;;;;;;;;:::i;:::-;;;25739:45;;;;:::i;:::-;;-1:-1:-1;25725:3:0;;;;:::i;:::-;;;;25678:114;;;;25578:219;;;:::o;9174:104::-;9230:13;9263:7;9256:14;;;;;:::i;27612:336::-;-1:-1:-1;;;;;27708:21:0;;;27675:7;27708:21;;;:6;:21;;;;;:30;;;27675:7;;27708:30;27675:7;27745:176;27767:3;27763:1;:7;;;27745:176;;;-1:-1:-1;;;;;27790:14:0;;;;;;:6;:14;;;;;:23;;;;;;;;;:53;;;27827:16;-1:-1:-1;;;;;27817:26:0;:6;-1:-1:-1;;;;;27817:26:0;;27790:53;27856:5;27786:85;-1:-1:-1;;;;;27890:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;27772:3;;;;:::i;:::-;;;;27745:176;;;-1:-1:-1;27936:6:0;27612:336;-1:-1:-1;;27612:336:0:o;28359:125::-;-1:-1:-1;;;;;28451:17:0;;;;;;:6;:17;;;;;;;;;:27;;28444:34;;;;;;;;;;;;;;;;;28419:16;;28444:34;;;28451:27;28444:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28444:34:0;;;;;;;;;;;;;;;;;;;;;;;28359:125;;;:::o;10311:155::-;10406:52;5634:10;10439:8;10449;10406:18;:52::i;:::-;10311:155;;:::o;30794:84::-;30833:39;;30841:10;;30862:9;30833:39;;;;;;;;;30862:9;30841:10;30833:39;;;;;;;;;;;;;;;;;;;;;30794:84::o;11164:323::-;11338:41;5634:10;11371:7;11338:18;:41::i;:::-;11330:100;;;;-1:-1:-1;;;11330:100:0;;;;;;;:::i;:::-;11441:38;11455:4;11461:2;11465:7;11474:4;11441:13;:38::i;:::-;11164:323;;;;:::o;26646:960::-;26703:10;26696:18;;;;:6;:18;;;;;:29;;;16188:8;-1:-1:-1;26696:70:0;26688:85;;;;-1:-1:-1;;;26688:85:0;;16426:2:1;26688:85:0;;;16408:21:1;16465:1;16445:18;;;16438:29;-1:-1:-1;;;16483:18:1;;;16476:32;16525:18;;26688:85:0;16224:325:1;26688:85:0;26793:10;26786:18;;;;:6;:18;;;;;:27;;;;;;;;26782:819;;;26845:10;26830:26;;;;:14;:26;;;;;;;;26857:6;:18;;;;;:30;;;;;;;26830:58;;;;;;;;;26825:322;;26973:10;26985:18;;;;:6;:18;;;;;:30;;;-1:-1:-1;;;;;26917:26:0;26901:71;;;;26985:34;;27018:1;;26985:30;;:34;:::i;:::-;26901:119;;-1:-1:-1;;;;;;26901:119:0;;;;;;;-1:-1:-1;;;;;16898:32:1;;;26901:119:0;;;16880:51:1;16979:4;16967:17;16947:18;;;16940:45;16853:18;;26901:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27048:10:0;27033:26;;;;:14;:26;;;;;;;;27060:6;:18;;;;;:30;;;;;27033:58;;;;;;;:65;;-1:-1:-1;;27033:65:0;27094:4;27033:65;;;-1:-1:-1;26782:819:0;;-1:-1:-1;26782:819:0;26825:322;27125:12;;-1:-1:-1;;;27125:12:0;;17198:2:1;27125:12:0;;;17180:21:1;17237:1;17217:18;;;17210:29;-1:-1:-1;;;17255:18:1;;;17248:32;17297:18;;27125:12:0;16996:325:1;26782:819:0;27170:14;27187:22;27198:10;27187;:22::i;:::-;27170:39;;27234:16;-1:-1:-1;;;;;27224:26:0;:6;-1:-1:-1;;;;;27224:26:0;;27220:374;;27283:10;27268:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;27295:14:0;;;;:6;:14;;;;;:26;;;;;;;27268:54;;;;;;;;;27263:322;;-1:-1:-1;;;;;27423:14:0;;;;;;;:6;:14;;;;;:26;;;27353;27337:73;;;;;;27411:10;;27423:30;;27452:1;;27423:26;;:30;:::i;:::-;27337:117;;-1:-1:-1;;;;;;27337:117:0;;;;;;;-1:-1:-1;;;;;16898:32:1;;;27337:117:0;;;16880:51:1;16979:4;16967:17;16947:18;;;16940:45;16853:18;;27337:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27484:10:0;27469:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;27496:14:0;;;;:6;:14;;;;;:26;;;;;27469:54;;;;;;;:61;;-1:-1:-1;;27469:61:0;27526:4;27469:61;;;-1:-1:-1;27263:322:0;;-1:-1:-1;27263:322:0;26782:819;26646:960::o;9292:281::-;9365:13;9391:23;9406:7;9391:14;:23::i;:::-;9427:21;9451:10;:8;:10::i;:::-;9427:34;;9503:1;9485:7;9479:21;:25;:86;;;;;;;;;;;;;;;;;9531:7;9540:18;:7;:16;:18::i;:::-;9514:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9479:86;9472:93;9292:281;-1:-1:-1;;;9292:281:0:o;19241:89::-;;;;;;;;;;;;19496:198;;;;;;;;;;;;10480:164;-1:-1:-1;;;;;10601:25:0;;;10577:4;10601:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;10480:164::o;29397:275::-;29478:5;-1:-1:-1;;;;;29478:21:0;5634:10;29478:21;29470:36;;;;-1:-1:-1;;;29470:36:0;;12765:2:1;29470:36:0;;;12747:21:1;12804:1;12784:18;;;12777:29;-1:-1:-1;;;12822:18:1;;;12815:32;12864:18;;29470:36:0;12563:325:1;29470:36:0;-1:-1:-1;;;;;2062:19:0;;;29513:50;;;;-1:-1:-1;;;29513:50:0;;18029:2:1;29513:50:0;;;18011:21:1;18068:1;18048:18;;;18041:29;-1:-1:-1;;;18086:18:1;;;18079:32;18128:18;;29513:50:0;17827:325:1;29513:50:0;29578:19;;-1:-1:-1;;;;;29578:19:0;:35;29570:50;;;;-1:-1:-1;;;29570:50:0;;18359:2:1;29570:50:0;;;18341:21:1;18398:1;18378:18;;;18371:29;-1:-1:-1;;;18416:18:1;;;18409:32;18458:18;;29570:50:0;18157:325:1;29570:50:0;29629:19;:37;;-1:-1:-1;;;;;;29629:37:0;-1:-1:-1;;;;;29629:37:0;;;;;;;;;;29397:275::o;1946:147::-;-1:-1:-1;;;;;2062:19:0;;:23;;;1946:147::o;14687:135::-;11893:4;11917:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11917:16:0;14761:53;;;;-1:-1:-1;;;14761:53:0;;15663:2:1;14761:53:0;;;15645:21:1;15702:2;15682:18;;;15675:30;-1:-1:-1;;;15721:18:1;;;15714:54;15785:18;;14761:53:0;15461:348:1;14170:174:0;14245:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;14245:29:0;-1:-1:-1;;;;;14245:29:0;;;;;;;;:24;;14299:23;14245:24;14299:14;:23::i;:::-;-1:-1:-1;;;;;14290:46:0;;;;;;;;;;;14170:174;;:::o;30884:154::-;30922:7;30951:15;30973:42;11893:4;11917:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11917:16:0;:30;30973:42;;31003:4;;;;:::i;:::-;;;;30973:42;;;31030:2;30884:154;-1:-1:-1;30884:154:0:o;20299:3807::-;20452:1;20428:14;:21;:25;:72;;;-1:-1:-1;;;;;;20457:18:0;;;20496:3;20457:18;;;:6;:18;;;;;:27;;;;:43;;20428:72;20420:87;;;;-1:-1:-1;;;20420:87:0;;18689:2:1;20420:87:0;;;18671:21:1;18728:1;18708:18;;;18701:29;-1:-1:-1;;;18746:18:1;;;18739:32;18788:18;;20420:87:0;18487:325:1;20420:87:0;-1:-1:-1;;;;;20545:18:0;;;20516:26;20545:18;;;:6;:18;;;;;20605:14;;;;20545:18;;20605:14;20601:1382;;20658:4;20646:16;;20704:3;-1:-1:-1;;;;;20675:33:0;:14;20690:1;20675:17;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;20675:33:0;;:68;;;;20733:10;-1:-1:-1;;;;;20712:31:0;:14;20727:1;20712:17;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;20712:31:0;;20675:68;20671:314;;;20756:14;;;:33;;-1:-1:-1;;;;;;20756:33:0;;;20773:16;-1:-1:-1;;;;;20756:33:0;;;;;;;;;-1:-1:-1;20800:24:0;;;:6;:24;;;;;;;:34;;:51;;-1:-1:-1;20800:51:0;;;;;;;;;;;;;;;;;;;;;;;;20671:314;;;20895:14;20910:1;20895:17;;;;;;;;:::i;:::-;;;;;;;20878:5;:14;;;:34;;;;;-1:-1:-1;;;;;20878:34:0;;;;;-1:-1:-1;;;;;20878:34:0;;;;;;20923:6;:25;20930:14;20945:1;20930:17;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;20923:25:0;;;;;;;;;;;;;;;;-1:-1:-1;20923:25:0;;;:35;;:52;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20923:52:0;;;;;;;;;;20671:314;21023:1;20999:14;:21;:25;:63;;;;-1:-1:-1;21028:14:0;;;;21046:16;-1:-1:-1;;;;;21028:34:0;;;:14;;:34;;20999:63;20995:981;;;21081:7;21076:891;19846:2;21094:18;;;;:51;;;;;21144:1;21120:14;:21;:25;;;;:::i;:::-;21116:1;:29;;;21094:51;21076:891;;;21215:3;-1:-1:-1;;;;;21169:50:0;:6;:25;21176:14;21191:1;21176:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;21169:25:0;;;;;;;;;;;;;;-1:-1:-1;21169:25:0;:34;;;;:50;21165:791;;21274:3;21241:14;21256:5;:1;21260;21256:5;:::i;:::-;21241:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21241:37:0;;;:83;;;;;21307:14;21322:1;21307:17;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21282:42:0;:14;21297:1;21301;21297:5;;;;:::i;:::-;21282:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21282:42:0;;;21241:83;21237:706;;;21380:14;21395:5;:1;21399;21395:5;:::i;:::-;21380:21;;;;;;;;;;:::i;:::-;;;;;;;21343:6;:25;21350:14;21365:1;21350:17;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21343:25:0;-1:-1:-1;;;;;21343:25:0;;;;;;;;;;;;:34;;;:58;;;;;-1:-1:-1;;;;;21343:58:0;;;;;-1:-1:-1;;;;;21343:58:0;;;;;;21418:6;:29;21425:14;21440:1;21444;21440:5;;;;:::i;:::-;21425:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21418:29:0;-1:-1:-1;;;;;21418:29:0;;;;;;;;;;;;:39;;21463:14;21478:1;21463:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;21418:63;;;;;;;-1:-1:-1;21418:63:0;;;;;;;;;;;-1:-1:-1;;;;;;21418:63:0;-1:-1:-1;;;;;21418:63:0;;;;;;;;;21500:112;21522:1;21518:5;;:1;:5;;;21500:112;;;21549:6;:29;21556:14;21571:5;:1;21575;21571:5;:::i;:::-;21556:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21549:29:0;-1:-1:-1;;;;;21549:29:0;;;;;;;;;;;;:40;;21590:1;21549:43;;;;;;;;;:::i;:::-;;:45;;;:43;:45;;;:::i;:::-;;;;;;21525:3;;;;;:::i;:::-;;;;21500:112;;;;21237:706;;;21687:16;21650:6;:25;21657:14;21672:1;21657:17;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21650:25:0;-1:-1:-1;;;;;21650:25:0;;;;;;;;;;;;:34;;;:53;;;;;-1:-1:-1;;;;;21650:53:0;;;;;-1:-1:-1;;;;;21650:53:0;;;;;;21720:6;:24;21727:16;-1:-1:-1;;;;;21720:24:0;-1:-1:-1;;;;;21720:24:0;;;;;;;;;;;;:34;;21760:14;21775:1;21760:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;21720:58;;;;;;;-1:-1:-1;21720:58:0;;;;;;;;;;;-1:-1:-1;;;;;;21720:58:0;-1:-1:-1;;;;;21720:58:0;;;;;;;;;21797:107;21819:1;21815:5;;:1;:5;;;21797:107;;;-1:-1:-1;;;;;21853:16:0;21846:24;;;;;:6;:24;;;;;:35;;:38;;;;;;;;;;:::i;:::-;;:40;;;:38;:40;;;:::i;:::-;;;;;;21822:3;;;;;:::i;:::-;;;;21797:107;;;;21922:5;;21237:706;21147:3;;;;:::i;:::-;;;;21076:891;;;;20995:981;21991:31;22036;;22025:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22025:43:0;-1:-1:-1;22129:14:0;;;;21991:77;;-1:-1:-1;22095:10:0;;-1:-1:-1;;;;;22129:14:0;22077:15;;22178:1627;19846:2;22196:18;;;;22178:1627;;;22232:18;22269:1;:6;;22274:1;22269:6;22265:800;;-1:-1:-1;;;;;22328:14:0;;22303:24;22328:14;;;:6;:14;;;;;:23;;;22303:49;;22328:23;;;;;22303:49;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22381:14:0;;;;:6;:14;;;;;;;:23;;;;;;-1:-1:-1;22303:49:0;-1:-1:-1;22381:23:0;22417:175;22508:4;22485:17;22503:1;22485:20;;;;;;;;;;:::i;:::-;:27;;;:20;;;;;;;;;;;:27;22533:6;;;22529:50;22558:5;22529:50;22465:3;;;;:::i;:::-;;;;22417:175;;;;22265:800;;;-1:-1:-1;;;;;22613:14:0;;;;;;:6;:14;;;;;:23;;;:37;;;;:23;;:37;:84;;;;-1:-1:-1;;;;;;22673:14:0;;;;;;:6;:14;;;;;:23;;;22655:42;;:17;;22673:23;;;22655:42;;;;;;:::i;:::-;;;;;;;22654:43;22613:84;22609:456;;;22777:24;22802:11;22777:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22750:14:0;;;;:6;:14;;;;;;:23;;;22725:49;;22777:37;;;22750:23;;;;;22725:49;;;;;;:::i;:::-;;;;;;;;;:89;;;;:::i;:::-;-1:-1:-1;;;;;22843:14:0;;;;;;:6;:14;;;;;:23;;;;;;-1:-1:-1;22712:102:0;-1:-1:-1;22843:23:0;22879:175;22970:4;22947:17;22965:1;22947:20;;;;;;;;;;:::i;:::-;:27;;;:20;;;;;;;;;;;:27;22995:6;;;22991:50;23020:5;22991:50;22927:3;;;;:::i;:::-;;;;22879:175;;;;22609:456;23077:14;16018:3;23094:20;23104:10;23094:7;:20;:::i;:::-;:50;;;;:::i;:::-;23077:67;-1:-1:-1;23159:10:0;;23155:454;;-1:-1:-1;;;;;23188:14:0;;23216:1;23188:14;;;:6;:14;;;;;:25;;;:29;23184:414;;23234:32;;-1:-1:-1;;;;;23234:24:0;;;:32;;;;;23259:6;;23234:32;;;;23259:6;23234:24;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23281:14:0;;;;;;:6;:14;;;;;;;:20;:29;;23304:6;;23281:14;:29;;23304:6;;23281:29;:::i;:::-;;;;;;;;23381:1;23332:76;;23369:10;-1:-1:-1;;;;;23332:76:0;23361:6;-1:-1:-1;;;;;23332:76:0;;23384:6;23392:15;23332:76;;;;;;12069:25:1;;;12125:2;12110:18;;12103:34;12057:2;12042:18;;11895:248;23332:76:0;;;;;;;;23184:414;;;23443:33;;-1:-1:-1;;;;;23443:16:0;:25;;:33;;;;;23469:6;;23443:33;;;;23469:6;23443:25;:33;;;;;;;;;;;;;;;;;;;;;23557:1;23498:86;;23545:10;-1:-1:-1;;;;;23498:86:0;23527:16;-1:-1:-1;;;;;23498:86:0;;23560:6;23568:15;23498:86;;;;;;12069:25:1;;;12125:2;12110:18;;12103:34;12057:2;12042:18;;11895:248;23498:86:0;;;;;;;;23184:414;-1:-1:-1;;;;;23621:14:0;;;;;;:6;:14;;;;;:19;;:22;;;;;;;;;;:::i;:::-;;:24;;;:22;:24;;;:::i;:::-;;;;;;23660:9;23656:70;;;-1:-1:-1;;;;;23684:14:0;;;;;;:6;:14;;;;;:25;;:28;;;;;;;;;;:::i;:::-;;:30;;;:28;:30;;;:::i;:::-;;;;;;23656:70;-1:-1:-1;;;;;;;23774:14:0;;;;;;;:6;:14;;;;;:23;;;23748:6;;-1:-1:-1;23774:23:0;;;;;22216:3;;;;:::i;:::-;;;;22178:1627;;;;23822:10;23813:19;;23845:9;23840:261;19901:1;23860:28;;23840:261;;-1:-1:-1;;;;;23910:20:0;;23906:56;23945:5;23906:56;23974:37;23995:6;24003:7;23974:20;:37::i;:::-;24022:26;24041:6;24022:18;:26::i;:::-;-1:-1:-1;;;;;24070:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;23890:3;;;;:::i;:::-;;;;23840:261;;;;20413:3693;;;;;;20299:3807;;;:::o;12704:439::-;-1:-1:-1;;;;;12784:16:0;;12776:61;;;;-1:-1:-1;;;12776:61:0;;19488:2:1;12776:61:0;;;19470:21:1;;;19507:18;;;19500:30;19566:34;19546:18;;;19539:62;19618:18;;12776:61:0;19286:356:1;12776:61:0;11893:4;11917:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11917:16:0;:30;12848:58;;;;-1:-1:-1;;;12848:58:0;;19849:2:1;12848:58:0;;;19831:21:1;19888:2;19868:18;;;19861:30;19927;19907:18;;;19900:58;19975:18;;12848:58:0;19647:352:1;12848:58:0;-1:-1:-1;;;;;12977:13:0;;;;;;:9;:13;;;;;:18;;12994:1;;12977:13;:18;;12994:1;;12977:18;:::i;:::-;;;;-1:-1:-1;;13006:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;13006:21:0;-1:-1:-1;;;;;13006:21:0;;;;;;;;13045:33;;13006:16;;;13045:33;;13006:16;;13045:33;10311:155;;:::o;11969:264::-;12062:4;12079:13;12095:23;12110:7;12095:14;:23::i;:::-;12079:39;;12148:5;-1:-1:-1;;;;;12137:16:0;:7;-1:-1:-1;;;;;12137:16:0;;:52;;;;12157:32;12174:5;12181:7;12157:16;:32::i;:::-;12137:87;;;;12217:7;-1:-1:-1;;;;;12193:31:0;:20;12205:7;12193:11;:20::i;:::-;-1:-1:-1;;;;;12193:31:0;;12137:87;12129:96;11969:264;-1:-1:-1;;;;11969:264:0:o;13573:583::-;13732:4;-1:-1:-1;;;;;13705:31:0;:23;13720:7;13705:14;:23::i;:::-;-1:-1:-1;;;;;13705:31:0;;13697:81;;;;-1:-1:-1;;;13697:81:0;;20206:2:1;13697:81:0;;;20188:21:1;20245:2;20225:18;;;20218:30;20284:34;20264:18;;;20257:62;-1:-1:-1;;;20335:18:1;;;20328:35;20380:19;;13697:81:0;20004:401:1;13697:81:0;-1:-1:-1;;;;;13797:16:0;;13789:65;;;;-1:-1:-1;;;13789:65:0;;20612:2:1;13789:65:0;;;20594:21:1;20651:2;20631:18;;;20624:30;20690:34;20670:18;;;20663:62;-1:-1:-1;;;20741:18:1;;;20734:34;20785:19;;13789:65:0;20410:400:1;13789:65:0;13929:29;13946:1;13950:7;13929:8;:29::i;:::-;-1:-1:-1;;;;;13971:15:0;;;;;;:9;:15;;;;;:20;;13990:1;;13971:15;:20;;13990:1;;13971:20;:::i;:::-;;;;-1:-1:-1;;;;;;;14002:13:0;;;;;;:9;:13;;;;;:18;;14019:1;;14002:13;:18;;14019:1;;14002:18;:::i;:::-;;;;-1:-1:-1;;14031:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14031:21:0;-1:-1:-1;;;;;14031:21:0;;;;;;;;;14070:27;;14031:16;;14070:27;;;;;;;9765:347;9695:417;;:::o;14358:315::-;14513:8;-1:-1:-1;;;;;14504:17:0;:5;-1:-1:-1;;;;;14504:17:0;;14496:55;;;;-1:-1:-1;;;14496:55:0;;21017:2:1;14496:55:0;;;20999:21:1;21056:2;21036:18;;;21029:30;21095:27;21075:18;;;21068:55;21140:18;;14496:55:0;20815:349:1;14496:55:0;-1:-1:-1;;;;;14562:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;14562:46:0;;;;;;;;;;14624:41;;1080::1;;;14624::0;;1053:18:1;14624:41:0;;;;;;;14358:315;;;:::o;11501:313::-;11657:28;11667:4;11673:2;11677:7;11657:9;:28::i;:::-;11704:47;11727:4;11733:2;11737:7;11746:4;11704:22;:47::i;:::-;11696:110;;;;-1:-1:-1;;;11696:110:0;;;;;;;:::i;30587:94::-;30639:13;30668:7;30661:14;;;;;:::i;5914:554::-;5970:13;6022:5;6031:1;6022:10;6018:53;;-1:-1:-1;;6049:10:0;;;;;;;;;;;;-1:-1:-1;;;6049:10:0;;;;;5914:554::o;6018:53::-;6096:5;6081:12;6137:78;6144:9;;6137:78;;6170:8;;;;:::i;:::-;;-1:-1:-1;6193:10:0;;-1:-1:-1;6201:2:0;6193:10;;:::i;:::-;;;6137:78;;;6225:19;6257:6;6247:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:17:0;;6225:39;;6275:154;6282:10;;6275:154;;6309:11;6319:1;6309:11;;:::i;:::-;;-1:-1:-1;6378:10:0;6386:2;6378:5;:10;:::i;:::-;6365:24;;:2;:24;:::i;:::-;6352:39;;6335:6;6342;6335:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;6335:56:0;;;;;;;;-1:-1:-1;6406:11:0;6415:2;6406:11;;:::i;:::-;;;6275:154;;24112:384;-1:-1:-1;;;;;24194:18:0;;;;;;:6;:18;;;;;:30;;:40;;24227:7;;24194:18;:40;;24227:7;;24194:40;:::i;:::-;;;;-1:-1:-1;;24304:1:0;24268:33;;24248:11;;24268:37;;;:::i;:::-;24248:58;;24243:248;24308:9;;;;24243:248;;24375:26;24402:5;24375:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24341:18:0;;;;:6;:18;;;;;;;:30;;;:67;24337:147;;-1:-1:-1;;;;;24421:18:0;;;;;;:6;:18;;;;;:27;;:35;;;;;-1:-1:-1;;24421:35:0;;;;;;9765:347;9695:417;;:::o;24337:147::-;24319:7;;;;:::i;:::-;;;;24243:248;;24502:1070;24591:16;-1:-1:-1;;;;;24577:30:0;:10;-1:-1:-1;;;;;24577:30:0;;24573:59;;24502:1070;:::o;24573:59::-;24638:27;24668:34;24691:10;24668:22;:34::i;:::-;24736:24;:31;24638:64;;-1:-1:-1;24716:11:0;;24736:35;;24770:1;;24736:35;:::i;:::-;24716:56;;24711:856;-1:-1:-1;;;;;24782:18:0;;;;;;:6;:18;;;;;:30;;;;;;;24774:38;;;;24711:856;;;24870:24;24895:5;24870:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24836:18:0;;;;:6;:18;;;;;;;:30;;;:65;;;;:137;;;24936:30;24967:5;24936:37;;;;;;;;;;:::i;:::-;;;;;;;;;24913:19;:60;;24836:137;24832:728;;;-1:-1:-1;;;;;24994:18:0;;;;;;;:6;:18;;;;;:30;;;:38;;-1:-1:-1;;25043:41:0;24994:38;;;25043:41;24994:38;25043:41;;;25114:27;;;;;;;25152:381;25174:3;25170:1;:7;;;25152:381;;;25211:16;-1:-1:-1;;;;;25201:26:0;:6;-1:-1:-1;;;;;25201:26:0;;25197:66;25244:5;25197:66;-1:-1:-1;;;;;25281:14:0;;;;;;:6;:14;;;;;:23;;;;;;;;:87;;;;-1:-1:-1;;;;;;25338:18:0;;;;;;;:6;:18;;;;;;:30;;;;;25308:14;;;;;;;:26;;25338:30;;;;25308:26;;:60;;25281:87;25277:198;;;-1:-1:-1;;;;;25385:18:0;;25422:5;25385:18;;;:6;:18;;;;;:34;;:42;;-1:-1:-1;;25385:42:0;;;25456:5;;25277:198;-1:-1:-1;;;;;25498:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;25179:3;;;;:::i;:::-;;;;25152:381;;;;25545:5;9765:347;9695:417;;:::o;24832:728::-;24814:7;;;;:::i;:::-;;;;24711:856;;14836:819;14990:4;-1:-1:-1;;;;;15011:13:0;;2062:19;:23;15007:641;;15047:71;;-1:-1:-1;;;15047:71:0;;-1:-1:-1;;;;;15047:36:0;;;;;:71;;5634:10;;15098:4;;15104:7;;15113:4;;15047:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15047:71:0;;;;;;;;-1:-1:-1;;15047:71:0;;;;;;;;;;;;:::i;:::-;;;15043:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15288:6;:13;15305:1;15288:18;15284:294;;15331:60;;-1:-1:-1;;;15331:60:0;;;;;;;:::i;15284:294::-;15528:6;15522:13;15513:6;15509:2;15505:15;15498:38;15043:550;-1:-1:-1;;;;;;15169:51:0;-1:-1:-1;;;15169:51:0;;-1:-1:-1;15162:58:0;;15007:641;-1:-1:-1;15632:4:0;14836:819;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;554:131:1:-;-1:-1:-1;;;;;;628:32:1;;618:43;;608:71;;675:1;672;665:12;690:245;748:6;801:2;789:9;780:7;776:23;772:32;769:52;;;817:1;814;807:12;769:52;856:9;843:23;875:30;899:5;875:30;:::i;1132:250::-;1217:1;1227:113;1241:6;1238:1;1235:13;1227:113;;;1317:11;;;1311:18;1298:11;;;1291:39;1263:2;1256:10;1227:113;;;-1:-1:-1;;1374:1:1;1356:16;;1349:27;1132:250::o;1387:271::-;1429:3;1467:5;1461:12;1494:6;1489:3;1482:19;1510:76;1579:6;1572:4;1567:3;1563:14;1556:4;1549:5;1545:16;1510:76;:::i;:::-;1640:2;1619:15;-1:-1:-1;;1615:29:1;1606:39;;;;1647:4;1602:50;;1387:271;-1:-1:-1;;1387:271:1:o;1663:220::-;1812:2;1801:9;1794:21;1775:4;1832:45;1873:2;1862:9;1858:18;1850:6;1832:45;:::i;1888:180::-;1947:6;2000:2;1988:9;1979:7;1975:23;1971:32;1968:52;;;2016:1;2013;2006:12;1968:52;-1:-1:-1;2039:23:1;;1888:180;-1:-1:-1;1888:180:1:o;2281:173::-;2349:20;;-1:-1:-1;;;;;2398:31:1;;2388:42;;2378:70;;2444:1;2441;2434:12;2459:254;2527:6;2535;2588:2;2576:9;2567:7;2563:23;2559:32;2556:52;;;2604:1;2601;2594:12;2556:52;2627:29;2646:9;2627:29;:::i;:::-;2617:39;2703:2;2688:18;;;;2675:32;;-1:-1:-1;;;2459:254:1:o;2900:615::-;2986:6;2994;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3103:9;3090:23;3132:18;3173:2;3165:6;3162:14;3159:34;;;3189:1;3186;3179:12;3159:34;3227:6;3216:9;3212:22;3202:32;;3272:7;3265:4;3261:2;3257:13;3253:27;3243:55;;3294:1;3291;3284:12;3243:55;3334:2;3321:16;3360:2;3352:6;3349:14;3346:34;;;3376:1;3373;3366:12;3346:34;3429:7;3424:2;3414:6;3411:1;3407:14;3403:2;3399:23;3395:32;3392:45;3389:65;;;3450:1;3447;3440:12;3389:65;3481:2;3473:11;;;;;3503:6;;-1:-1:-1;2900:615:1;;-1:-1:-1;;;;2900:615:1:o;3520:328::-;3597:6;3605;3613;3666:2;3654:9;3645:7;3641:23;3637:32;3634:52;;;3682:1;3679;3672:12;3634:52;3705:29;3724:9;3705:29;:::i;:::-;3695:39;;3753:38;3787:2;3776:9;3772:18;3753:38;:::i;:::-;3743:48;;3838:2;3827:9;3823:18;3810:32;3800:42;;3520:328;;;;;:::o;3853:186::-;3912:6;3965:2;3953:9;3944:7;3940:23;3936:32;3933:52;;;3981:1;3978;3971:12;3933:52;4004:29;4023:9;4004:29;:::i;4044:326::-;4137:5;4160:1;4170:194;4184:4;4181:1;4178:11;4170:194;;;4243:13;;4231:26;;4280:4;4304:12;;;;4339:15;;;;4204:1;4197:9;4170:194;;4375:694;-1:-1:-1;;;;;4776:32:1;;4758:51;;4840:2;4825:18;;4818:34;;;4745:3;4730:19;;4861:52;4909:2;4894:18;;4886:6;4861:52;:::i;:::-;4922:53;4970:3;4959:9;4955:19;4947:6;4922:53;:::i;:::-;5006:3;4991:19;;4984:35;;;;5050:3;5035:19;5028:35;4375:694;;-1:-1:-1;;;;4375:694:1:o;5263:592::-;5334:6;5342;5395:2;5383:9;5374:7;5370:23;5366:32;5363:52;;;5411:1;5408;5401:12;5363:52;5451:9;5438:23;5480:18;5521:2;5513:6;5510:14;5507:34;;;5537:1;5534;5527:12;5507:34;5575:6;5564:9;5560:22;5550:32;;5620:7;5613:4;5609:2;5605:13;5601:27;5591:55;;5642:1;5639;5632:12;5591:55;5682:2;5669:16;5708:2;5700:6;5697:14;5694:34;;;5724:1;5721;5714:12;5694:34;5769:7;5764:2;5755:6;5751:2;5747:15;5743:24;5740:37;5737:57;;;5790:1;5787;5780:12;6828:658;6999:2;7051:21;;;7121:13;;7024:18;;;7143:22;;;6970:4;;6999:2;7222:15;;;;7196:2;7181:18;;;6970:4;7265:195;7279:6;7276:1;7273:13;7265:195;;;7344:13;;-1:-1:-1;;;;;7340:39:1;7328:52;;7435:15;;;;7400:12;;;;7376:1;7294:9;7265:195;;;-1:-1:-1;7477:3:1;;6828:658;-1:-1:-1;;;;;;6828:658:1:o;7491:347::-;7556:6;7564;7617:2;7605:9;7596:7;7592:23;7588:32;7585:52;;;7633:1;7630;7623:12;7585:52;7656:29;7675:9;7656:29;:::i;:::-;7646:39;;7735:2;7724:9;7720:18;7707:32;7782:5;7775:13;7768:21;7761:5;7758:32;7748:60;;7804:1;7801;7794:12;7748:60;7827:5;7817:15;;;7491:347;;;;;:::o;7843:127::-;7904:10;7899:3;7895:20;7892:1;7885:31;7935:4;7932:1;7925:15;7959:4;7956:1;7949:15;7975:1138;8070:6;8078;8086;8094;8147:3;8135:9;8126:7;8122:23;8118:33;8115:53;;;8164:1;8161;8154:12;8115:53;8187:29;8206:9;8187:29;:::i;:::-;8177:39;;8235:38;8269:2;8258:9;8254:18;8235:38;:::i;:::-;8225:48;;8320:2;8309:9;8305:18;8292:32;8282:42;;8375:2;8364:9;8360:18;8347:32;8398:18;8439:2;8431:6;8428:14;8425:34;;;8455:1;8452;8445:12;8425:34;8493:6;8482:9;8478:22;8468:32;;8538:7;8531:4;8527:2;8523:13;8519:27;8509:55;;8560:1;8557;8550:12;8509:55;8596:2;8583:16;8618:2;8614;8611:10;8608:36;;;8624:18;;:::i;:::-;8699:2;8693:9;8667:2;8753:13;;-1:-1:-1;;8749:22:1;;;8773:2;8745:31;8741:40;8729:53;;;8797:18;;;8817:22;;;8794:46;8791:72;;;8843:18;;:::i;:::-;8883:10;8879:2;8872:22;8918:2;8910:6;8903:18;8958:7;8953:2;8948;8944;8940:11;8936:20;8933:33;8930:53;;;8979:1;8976;8969:12;8930:53;9035:2;9030;9026;9022:11;9017:2;9009:6;9005:15;8992:46;9080:1;9075:2;9070;9062:6;9058:15;9054:24;9047:35;9101:6;9091:16;;;;;;;7975:1138;;;;;;;:::o;9118:260::-;9186:6;9194;9247:2;9235:9;9226:7;9222:23;9218:32;9215:52;;;9263:1;9260;9253:12;9215:52;9286:29;9305:9;9286:29;:::i;:::-;9276:39;;9334:38;9368:2;9357:9;9353:18;9334:38;:::i;:::-;9324:48;;9118:260;;;;;:::o;9383:380::-;9462:1;9458:12;;;;9505;;;9526:61;;9580:4;9572:6;9568:17;9558:27;;9526:61;9633:2;9625:6;9622:14;9602:18;9599:38;9596:161;;9679:10;9674:3;9670:20;9667:1;9660:31;9714:4;9711:1;9704:15;9742:4;9739:1;9732:15;10931:127;10992:10;10987:3;10983:20;10980:1;10973:31;11023:4;11020:1;11013:15;11047:4;11044:1;11037:15;11063:125;11128:9;;;11149:10;;;11146:36;;;11162:18;;:::i;11193:135::-;11232:3;11253:17;;;11250:43;;11273:18;;:::i;:::-;-1:-1:-1;11320:1:1;11309:13;;11193:135::o;11333:168::-;11373:7;11439:1;11435;11431:6;11427:14;11424:1;11421:21;11416:1;11409:9;11402:17;11398:45;11395:71;;;11446:18;;:::i;:::-;-1:-1:-1;11486:9:1;;11333:168::o;11506:127::-;11567:10;11562:3;11558:20;11555:1;11548:31;11598:4;11595:1;11588:15;11622:4;11619:1;11612:15;11638:120;11678:1;11704;11694:35;;11709:18;;:::i;:::-;-1:-1:-1;11743:9:1;;11638:120::o;11763:127::-;11824:10;11819:3;11815:20;11812:1;11805:31;11855:4;11852:1;11845:15;11879:4;11876:1;11869:15;12148:410;12350:2;12332:21;;;12389:2;12369:18;;;12362:30;12428:34;12423:2;12408:18;;12401:62;-1:-1:-1;;;12494:2:1;12479:18;;12472:44;12548:3;12533:19;;12148:410::o;13019:545::-;13121:2;13116:3;13113:11;13110:448;;;13157:1;13182:5;13178:2;13171:17;13227:4;13223:2;13213:19;13297:2;13285:10;13281:19;13278:1;13274:27;13268:4;13264:38;13333:4;13321:10;13318:20;13315:47;;;-1:-1:-1;13356:4:1;13315:47;13411:2;13406:3;13402:12;13399:1;13395:20;13389:4;13385:31;13375:41;;13466:82;13484:2;13477:5;13474:13;13466:82;;;13529:17;;;13510:1;13499:13;13466:82;;;13470:3;;;13019:545;;;:::o;13740:1206::-;13864:18;13859:3;13856:27;13853:53;;;13886:18;;:::i;:::-;13915:94;14005:3;13965:38;13997:4;13991:11;13965:38;:::i;:::-;13959:4;13915:94;:::i;:::-;14035:1;14060:2;14055:3;14052:11;14077:1;14072:616;;;;14732:1;14749:3;14746:93;;;-1:-1:-1;14805:19:1;;;14792:33;14746:93;-1:-1:-1;;13697:1:1;13693:11;;;13689:24;13685:29;13675:40;13721:1;13717:11;;;13672:57;14852:78;;14045:895;;14072:616;12966:1;12959:14;;;13003:4;12990:18;;-1:-1:-1;;14108:17:1;;;14209:9;14231:229;14245:7;14242:1;14239:14;14231:229;;;14334:19;;;14321:33;14306:49;;14441:4;14426:20;;;;14394:1;14382:14;;;;14261:12;14231:229;;;14235:3;14488;14479:7;14476:16;14473:159;;;14612:1;14608:6;14602:3;14596;14593:1;14589:11;14585:21;14581:34;14577:39;14564:9;14559:3;14555:19;14542:33;14538:79;14530:6;14523:95;14473:159;;;14675:1;14669:3;14666:1;14662:11;14658:19;14652:4;14645:33;14045:895;;13740:1206;;;:::o;15281:175::-;15318:3;15362:4;15355:5;15351:16;15391:4;15382:7;15379:17;15376:43;;15399:18;;:::i;:::-;15448:1;15435:15;;15281:175;-1:-1:-1;;15281:175:1:o;16554:151::-;16644:4;16637:12;;;16623;;;16619:31;;16662:14;;16659:40;;;16679:18;;:::i;17326:496::-;17505:3;17543:6;17537:13;17559:66;17618:6;17613:3;17606:4;17598:6;17594:17;17559:66;:::i;:::-;17688:13;;17647:16;;;;17710:70;17688:13;17647:16;17757:4;17745:17;;17710:70;:::i;:::-;17796:20;;17326:496;-1:-1:-1;;;;17326:496:1:o;18817:128::-;18884:9;;;18905:11;;;18902:37;;;18919:18;;:::i;18950:148::-;19038:4;19017:12;;;19031;;;19013:31;;19056:13;;19053:39;;;19072:18;;:::i;19103:178::-;19140:3;19184:4;19177:5;19173:16;19208:7;19198:41;;19219:18;;:::i;:::-;-1:-1:-1;;19255:20:1;;19103:178;-1:-1:-1;;19103:178:1:o;21169:414::-;21371:2;21353:21;;;21410:2;21390:18;;;21383:30;21449:34;21444:2;21429:18;;21422:62;-1:-1:-1;;;21515:2:1;21500:18;;21493:48;21573:3;21558:19;;21169:414::o;21588:112::-;21620:1;21646;21636:35;;21651:18;;:::i;:::-;-1:-1:-1;21685:9:1;;21588:112::o;21705:489::-;-1:-1:-1;;;;;21974:15:1;;;21956:34;;22026:15;;22021:2;22006:18;;21999:43;22073:2;22058:18;;22051:34;;;22121:3;22116:2;22101:18;;22094:31;;;21899:4;;22142:46;;22168:19;;22160:6;22142:46;:::i;:::-;22134:54;21705:489;-1:-1:-1;;;;;;21705:489:1:o;22199:249::-;22268:6;22321:2;22309:9;22300:7;22296:23;22292:32;22289:52;;;22337:1;22334;22327:12;22289:52;22369:9;22363:16;22388:30;22412:5;22388:30;:::i
Swarm Source
ipfs://2da5c2a1a305f64fe677e7ed7c4311201b954ab22905260ad6025d6bcf51ad38
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.