Overview
AVAX Balance
AVAX Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Swap Exact Token... | 59173596 | 24 days ago | IN | 1.48892212 AVAX | 0.00059528 | ||||
Change Epoch | 59127563 | 25 days ago | IN | 0 AVAX | 0.00007197 | ||||
Swap Exact Token... | 59078742 | 26 days ago | IN | 0.00000749 AVAX | 0.00096562 | ||||
Swap Exact Token... | 59078708 | 26 days ago | IN | 0.07498152 AVAX | 0.00086386 | ||||
Swap Exact Token... | 58844132 | 31 days ago | IN | 0.07960221 AVAX | 0.00094942 | ||||
Swap Exact Token... | 56395209 | 81 days ago | IN | 0.00603224 AVAX | 0.00051134 | ||||
Transfer | 56050973 | 88 days ago | IN | 0.1 AVAX | 0.00044653 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
59173596 | 24 days ago | 0.0147418 AVAX | ||||
59173596 | 24 days ago | 0.0147418 AVAX | ||||
59173596 | 24 days ago | 1.13363624 AVAX | ||||
59173596 | 24 days ago | 1.13363624 AVAX | ||||
59173596 | 24 days ago | 1.48892212 AVAX | ||||
59078742 | 26 days ago | 0.00000007 AVAX | ||||
59078742 | 26 days ago | 0.00000007 AVAX | ||||
59078742 | 26 days ago | 0.00000572 AVAX | ||||
59078742 | 26 days ago | 0.00000572 AVAX | ||||
59078742 | 26 days ago | 0.00000749 AVAX | ||||
59078708 | 26 days ago | 0.00074239 AVAX | ||||
59078708 | 26 days ago | 0.00074239 AVAX | ||||
59078708 | 26 days ago | 0.0572103 AVAX | ||||
59078708 | 26 days ago | 0.0572103 AVAX | ||||
59078708 | 26 days ago | 0.07498152 AVAX | ||||
58844132 | 31 days ago | 0.00039603 AVAX | ||||
58844132 | 31 days ago | 0.00039603 AVAX | ||||
58844132 | 31 days ago | 0.06059632 AVAX | ||||
58844132 | 31 days ago | 0.06059632 AVAX | ||||
58844132 | 31 days ago | 0.07960221 AVAX | ||||
56395209 | 81 days ago | 0.00099999 AVAX | ||||
56395209 | 81 days ago | 0.00099999 AVAX | ||||
56395209 | 81 days ago | 0.00442345 AVAX | ||||
56395209 | 81 days ago | 0.00442345 AVAX | ||||
56395209 | 81 days ago | 0.00603224 AVAX |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
kovinBuyer
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at snowscan.xyz on 2024-12-17 */ /** *Submitted for verification at snowscan.xyz on 2024-12-12 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 tokenId) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; } interface IERC721Receiver { function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4); } interface IERC20 { function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address from, address to, uint256 amount) external returns (bool); function balanceOf(address owner) external view returns (uint256 balance); function approve(address spender, uint256 amount) external returns (bool); function decimals() external view returns (uint8); } interface IRouter { function swapExactAVAXForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts); function swapAVAXForExactTokens(uint256 amountOut, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts); } interface IPair { function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) ; } contract kovinBuyer is Ownable, IERC721Receiver{ address public WAVAX = 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7; address public KOVIN = 0x694200a68B18232916353250955bE220e88c5cBB; address public routerPango = 0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106; address public pairPango = 0xec779d4f0755Fb9835c679fDC3827e4718B71DB7; address public routerLFJ = 0x60aE616a2155Ee3d9A68541Ba4544862310933d4; address public pairLFJ = 0x96BbDb6811d47B1199D444D507De623a905D63f3; uint64 public epoch; mapping(uint256 => mapping(address => uint256)) public dailyWagers; mapping(uint256 => mapping(address => uint256)) public weeklyWagers; mapping(uint256 => mapping(address => uint256)) public epochWagers; fallback() external payable{} event KovinBuy(address indexed user, uint256 indexed amount); receive() external payable { if(msg.sender == tx.origin){ address[] memory path = new address[](2); path[0] = WAVAX; path[1] = KOVIN; uint256 initialBalance = IERC20(KOVIN).balanceOf(address(this)); uint8 pangoShare = calculRepart(); uint256 amountToBuyPango = (msg.value*pangoShare)/100; uint256 amountToBuyJoe = msg.value-amountToBuyPango; IRouter(routerPango).swapExactAVAXForTokens{value: amountToBuyPango}(0, path, address(this), block.timestamp); IRouter(routerLFJ).swapExactAVAXForTokens{value: amountToBuyJoe}(0, path, address(this), block.timestamp); uint256 amountBought = IERC20(KOVIN).balanceOf(address(this)) - initialBalance; IERC20(KOVIN).transfer(msg.sender, amountBought); dailyWagers[returnDay(block.timestamp)][msg.sender] += amountBought; weeklyWagers[returnWeek(block.timestamp)][msg.sender] += amountBought; epochWagers[epoch][msg.sender] += amountBought; emit KovinBuy(msg.sender, amountBought); } } function swapExactTokens(uint256 amount) public payable { address[] memory path = new address[](2); path[0] = WAVAX; path[1] = KOVIN; uint256 initialBalance = IERC20(KOVIN).balanceOf(address(this)); uint256 initialValue = address(this).balance; uint8 pangoShare = calculRepart(); uint256 amountToBuyPango = (amount*pangoShare)/100; uint256 amountToBuyJoe = amount-amountToBuyPango; IRouter(routerPango).swapAVAXForExactTokens{value: address(this).balance}(amountToBuyPango, path, address(this), block.timestamp); IRouter(routerLFJ).swapAVAXForExactTokens{value: address(this).balance}(amountToBuyJoe, path, address(this), block.timestamp); uint256 amountBought = IERC20(KOVIN).balanceOf(address(this)) - initialBalance; uint256 usedValue = initialValue - address(this).balance; payable(msg.sender).transfer(msg.value-usedValue); IERC20(KOVIN).transfer(msg.sender, amountBought); dailyWagers[returnDay(block.timestamp)][msg.sender] += amountBought; weeklyWagers[returnWeek(block.timestamp)][msg.sender] += amountBought; epochWagers[epoch][msg.sender] += amountBought; emit KovinBuy(msg.sender, amountBought); } function returnDay(uint256 timestamp) public pure returns (uint256 day) { return timestamp/86400; } function returnWeek(uint256 timestamp) public pure returns (uint256 week) { return (timestamp-86400*4)/(86400*7); } function hasBoughtToday(address user) public view returns (uint256) { return dailyWagers[returnDay(block.timestamp)][user]/10**18; } function hasBoughtThisWeek(address user) public view returns (uint256) { return weeklyWagers[returnWeek(block.timestamp)][user]/10**18; } function hasBoughtThisEpoch(address user) public view returns (uint256) { return epochWagers[epoch][user]/10**18; } function calculRepart() public view returns(uint8 pangoShare) { (uint112 reserveKovinPango,,) = IPair(pairPango).getReserves(); (uint112 reserveKovinJoe,,) = IPair(pairLFJ).getReserves(); pangoShare = uint8((100*reserveKovinPango)/(reserveKovinPango+reserveKovinJoe)); } function calculAmountIn(uint256 amountOut) public view returns(uint256 amountIn) { (uint112 reserveKovinPango, uint112 reserveAVAXPango,) = IPair(pairPango).getReserves(); (uint112 reserveKovinJoe, uint112 reserveAVAXJoe,) = IPair(pairLFJ).getReserves(); uint8 pangoShare = uint8((100*reserveKovinPango)/(reserveKovinPango+reserveKovinJoe)); uint256 amountToBuyPango = (amountOut*pangoShare)/100; uint256 amountToBuyJoe = amountOut-amountToBuyPango; uint256 amountInPango = calculateAmountIn(amountToBuyPango, reserveAVAXPango, reserveKovinPango); uint256 amountInJoe = calculateAmountIn(amountToBuyJoe, reserveAVAXJoe, reserveKovinJoe); amountIn = amountInPango+amountInJoe; } function calculateAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn) { uint numerator = reserveIn*amountOut*1000; uint denominator = 997*(reserveOut-amountOut); amountIn = (numerator / denominator); } function withdrawETH() external onlyOwner() { payable(msg.sender).transfer(address(this).balance); } function withdrawToken(uint256 amount, address token) onlyOwner external { IERC20(token).transfer(msg.sender, amount); } function safeTransferBack(uint256 id, address addressNFT) onlyOwner external { IERC721(addressNFT).safeTransferFrom(address(this), msg.sender, id); } function onERC721Received(address, address, uint256, bytes memory) public virtual override returns (bytes4) { return this.onERC721Received.selector; } function changeEpoch() external onlyOwner { epoch++; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"KovinBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"KOVIN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"calculAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculRepart","outputs":[{"internalType":"uint8","name":"pangoShare","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"dailyWagers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"epochWagers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"hasBoughtThisEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"hasBoughtThisWeek","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"hasBoughtToday","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairLFJ","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairPango","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"returnDay","outputs":[{"internalType":"uint256","name":"day","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"returnWeek","outputs":[{"internalType":"uint256","name":"week","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"routerLFJ","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"routerPango","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"addressNFT","type":"address"}],"name":"safeTransferBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapExactTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"weeklyWagers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811673b31f66aa3c1e785363f0875a1b74e27b85fd66c71790915560028054821673694200a68b18232916353250955be220e88c5cbb17905560038054821673e54ca86531e17ef3616d22ca28b0d458b6c8910617905560048054821673ec779d4f0755fb9835c679fdc3827e4718b71db71790556005805482167360ae616a2155ee3d9a68541ba4544862310933d4179055600680549091167396bbdb6811d47b1199d444d507de623a905d63f31790553480156100cf575f80fd5b506100d9336100de565b61012d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119468061013a5f395ff3fe608060405260043610610172575f3560e01c806396afbc2a116100c7578063d498275811610083578063f256aedd11610060578063f256aedd146108bf578063f2fde38b146108f5578063fd89f3c614610914578063fe6f86f81461093357005b8063d498275814610856578063e086e5ec1461088c578063e6b8080b146108a057005b806396afbc2a146107a1578063af35ff05146107c0578063b0cc2de6146107df578063b515cd0714610805578063be4b177214610824578063c05c26a61461084357005b80636307b0d31161012e57806373b295c21161010b57806373b295c2146107075780638708e362146107265780638da5cb5b14610745578063900cf0cf1461076157005b80636307b0d3146106b5578063641d1b82146106d4578063715018a6146106f357005b8063150b7a02146105955780632d9978a0146105dd5780634708e189146106145780634993963b14610633578063573532b21461066057806360e89f461461069657005b3661059357323303610593576040805160028082526060820183525f92602083019080368337505060015482519293506001600160a01b0316918391505f906101bd576101bd61149c565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106101ee576101ee61149c565b6001600160a01b0392831660209182029290920101526002546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015610245573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026991906114b0565b90505f610274610947565b90505f606461028660ff8416346114db565b6102909190611506565b90505f61029d8234611519565b60035460405163a2a1623d60e01b81529192506001600160a01b03169063a2a1623d9084906102d6905f908a903090429060040161156f565b5f6040518083038185885af11580156102f1573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405261031991908101906115d4565b5060055460405163a2a1623d60e01b81526001600160a01b039091169063a2a1623d908390610352905f908a903090429060040161156f565b5f6040518083038185885af115801561036d573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405261039591908101906115d4565b506002546040516370a0823160e01b81523060048201525f9186916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040491906114b0565b61040e9190611519565b60025460405163a9059cbb60e01b8152336004820152602481018390529192506001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561045d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104819190611675565b508060075f61048f42610a56565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546104cb919061169b565b9091555081905060085f6104de42610a6a565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461051a919061169b565b9091555050600654600160a01b900467ffffffffffffffff165f9081526009602090815260408083203384529091528120805483929061055b90849061169b565b9091555050604051819033907f1946c4adbe38d281fd609ff44571b1d98ba267c4fbbcb49ad7db12a5f9645929905f90a35050505050505b005b3480156105a0575f80fd5b506105bf6105af3660046116c9565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156105e8575f80fd5b506002546105fc906001600160a01b031681565b6040516001600160a01b0390911681526020016105d4565b34801561061f575f80fd5b506004546105fc906001600160a01b031681565b34801561063e575f80fd5b5061065261064d366004611782565b610a6a565b6040519081526020016105d4565b34801561066b575f80fd5b5061065261067a366004611799565b600960209081525f928352604080842090915290825290205481565b3480156106a1575f80fd5b506106526106b0366004611782565b610a56565b3480156106c0575f80fd5b506106526106cf3660046117c3565b610a86565b3480156106df575f80fd5b506005546105fc906001600160a01b031681565b3480156106fe575f80fd5b50610593610acf565b348015610712575f80fd5b506001546105fc906001600160a01b031681565b348015610731575f80fd5b506106526107403660046117c3565b610b0c565b348015610750575f80fd5b505f546001600160a01b03166105fc565b34801561076c575f80fd5b5060065461078890600160a01b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016105d4565b3480156107ac575f80fd5b506105936107bb366004611799565b610b5b565b3480156107cb575f80fd5b506106526107da3660046117c3565b610be9565b3480156107ea575f80fd5b506107f3610947565b60405160ff90911681526020016105d4565b348015610810575f80fd5b506003546105fc906001600160a01b031681565b34801561082f575f80fd5b5061059361083e366004611799565b610bff565b610593610851366004611782565b610c9b565b348015610861575f80fd5b50610652610870366004611799565b600860209081525f928352604080842090915290825290205481565b348015610897575f80fd5b506105936110f7565b3480156108ab575f80fd5b506106526108ba366004611782565b61114c565b3480156108ca575f80fd5b506106526108d9366004611799565b600760209081525f928352604080842090915290825290205481565b348015610900575f80fd5b5061059361090f3660046117c3565b6112e8565b34801561091f575f80fd5b506006546105fc906001600160a01b031681565b34801561093e575f80fd5b5061059361137f565b6004805460408051630240bc6b60e21b815290515f9384936001600160a01b031692630902f1ac92818301926060928290030181865afa15801561098d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b191906117f2565b505090505f60065f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610a06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2a91906117f2565b505090508082610a3a919061183e565b610a45836064611865565b610a4f9190611890565b9250505090565b5f610a646201518083611506565b92915050565b5f62093a80610a7c6205460084611519565b610a649190611506565b600654600160a01b900467ffffffffffffffff165f9081526009602090815260408083206001600160a01b0385168452909152812054610a6490670de0b6b3a764000090611506565b5f546001600160a01b03163314610b015760405162461bcd60e51b8152600401610af8906118b5565b60405180910390fd5b610b0a5f6113f2565b565b5f670de0b6b3a764000060085f610b2242610a6a565b81526020019081526020015f205f846001600160a01b03166001600160a01b031681526020019081526020015f2054610a649190611506565b5f546001600160a01b03163314610b845760405162461bcd60e51b8152600401610af8906118b5565b604051632142170760e11b8152306004820152336024820152604481018390526001600160a01b038216906342842e0e906064015f604051808303815f87803b158015610bcf575f80fd5b505af1158015610be1573d5f803e3d5ffd5b505050505050565b5f670de0b6b3a764000060075f610b2242610a56565b5f546001600160a01b03163314610c285760405162461bcd60e51b8152600401610af8906118b5565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303815f875af1158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190611675565b505050565b6040805160028082526060820183525f92602083019080368337505060015482519293506001600160a01b0316918391505f90610cda57610cda61149c565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610d0b57610d0b61149c565b6001600160a01b0392831660209182029290920101526002546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015610d62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8691906114b0565b9050475f610d92610947565b90505f6064610da460ff8416886114db565b610dae9190611506565b90505f610dbb8288611519565b600354604051638a657e6760e01b81529192506001600160a01b031690638a657e67904790610df49086908b903090429060040161156f565b5f6040518083038185885af1158015610e0f573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f19168201604052610e3791908101906115d4565b50600554604051638a657e6760e01b81526001600160a01b0390911690638a657e67904790610e709085908b903090429060040161156f565b5f6040518083038185885af1158015610e8b573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f19168201604052610eb391908101906115d4565b506002546040516370a0823160e01b81523060048201525f9187916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610efe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2291906114b0565b610f2c9190611519565b90505f610f394787611519565b9050336108fc610f498334611519565b6040518115909202915f818181858888f19350505050158015610f6e573d5f803e3d5ffd5b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610fbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe19190611675565b508160075f610fef42610a56565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461102b919061169b565b9091555082905060085f61103e42610a6a565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461107a919061169b565b9091555050600654600160a01b900467ffffffffffffffff165f908152600960209081526040808320338452909152812080548492906110bb90849061169b565b9091555050604051829033907f1946c4adbe38d281fd609ff44571b1d98ba267c4fbbcb49ad7db12a5f9645929905f90a3505050505050505050565b5f546001600160a01b031633146111205760405162461bcd60e51b8152600401610af8906118b5565b60405133904780156108fc02915f818181858888f19350505050158015611149573d5f803e3d5ffd5b50565b5f805f60045f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561119f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c391906117f2565b50915091505f8060065f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906117f2565b5090925090505f61124f838661183e565b61125a866064611865565b6112649190611890565b90505f606461127660ff84168a6114db565b6112809190611506565b90505f61128d828a611519565b90505f6112ad83886001600160701b03168a6001600160701b0316611441565b90505f6112cd83876001600160701b0316896001600160701b0316611441565b90506112d9818361169b565b9b9a5050505050505050505050565b5f546001600160a01b031633146113115760405162461bcd60e51b8152600401610af8906118b5565b6001600160a01b0381166113765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af8565b611149816113f2565b5f546001600160a01b031633146113a85760405162461bcd60e51b8152600401610af8906118b5565b60068054600160a01b900467ffffffffffffffff169060146113c9836118ea565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8061144d85856114db565b611459906103e86114db565b90505f6114668685611519565b611472906103e56114db565b905061147e8183611506565b9695505050505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156114c0575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a6457610a646114c7565b634e487b7160e01b5f52601260045260245ffd5b5f82611514576115146114f2565b500490565b81810381811115610a6457610a646114c7565b5f815180845260208085019450602084015f5b838110156115645781516001600160a01b03168752958201959082019060010161153f565b509495945050505050565b848152608060208201525f611587608083018661152c565b6001600160a01b03949094166040830152506060015292915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156115cc576115cc611488565b604052919050565b5f60208083850312156115e5575f80fd5b825167ffffffffffffffff808211156115fc575f80fd5b818501915085601f83011261160f575f80fd5b81518181111561162157611621611488565b8060051b91506116328483016115a3565b818152918301840191848101908884111561164b575f80fd5b938501935b8385101561166957845182529385019390850190611650565b98975050505050505050565b5f60208284031215611685575f80fd5b81518015158114611694575f80fd5b9392505050565b80820180821115610a6457610a646114c7565b80356001600160a01b03811681146116c4575f80fd5b919050565b5f805f80608085870312156116dc575f80fd5b6116e5856116ae565b935060206116f48187016116ae565b935060408601359250606086013567ffffffffffffffff80821115611717575f80fd5b818801915088601f83011261172a575f80fd5b81358181111561173c5761173c611488565b61174e601f8201601f191685016115a3565b91508082528984828501011115611763575f80fd5b80848401858401375f8482840101525080935050505092959194509250565b5f60208284031215611792575f80fd5b5035919050565b5f80604083850312156117aa575f80fd5b823591506117ba602084016116ae565b90509250929050565b5f602082840312156117d3575f80fd5b611694826116ae565b80516001600160701b03811681146116c4575f80fd5b5f805f60608486031215611804575f80fd5b61180d846117dc565b925061181b602085016117dc565b9150604084015163ffffffff81168114611833575f80fd5b809150509250925092565b6001600160701b0381811683821601908082111561185e5761185e6114c7565b5092915050565b6001600160701b03818116838216028082169190828114611888576118886114c7565b505092915050565b5f6001600160701b03808416806118a9576118a96114f2565b92169190910492915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f67ffffffffffffffff808316818103611906576119066114c7565b600101939250505056fea2646970667358221220eb5238986051476163bbab823f87af4b0c55613e94483e3293e79079993efe7964736f6c63430008180033
Deployed Bytecode
0x608060405260043610610172575f3560e01c806396afbc2a116100c7578063d498275811610083578063f256aedd11610060578063f256aedd146108bf578063f2fde38b146108f5578063fd89f3c614610914578063fe6f86f81461093357005b8063d498275814610856578063e086e5ec1461088c578063e6b8080b146108a057005b806396afbc2a146107a1578063af35ff05146107c0578063b0cc2de6146107df578063b515cd0714610805578063be4b177214610824578063c05c26a61461084357005b80636307b0d31161012e57806373b295c21161010b57806373b295c2146107075780638708e362146107265780638da5cb5b14610745578063900cf0cf1461076157005b80636307b0d3146106b5578063641d1b82146106d4578063715018a6146106f357005b8063150b7a02146105955780632d9978a0146105dd5780634708e189146106145780634993963b14610633578063573532b21461066057806360e89f461461069657005b3661059357323303610593576040805160028082526060820183525f92602083019080368337505060015482519293506001600160a01b0316918391505f906101bd576101bd61149c565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106101ee576101ee61149c565b6001600160a01b0392831660209182029290920101526002546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015610245573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026991906114b0565b90505f610274610947565b90505f606461028660ff8416346114db565b6102909190611506565b90505f61029d8234611519565b60035460405163a2a1623d60e01b81529192506001600160a01b03169063a2a1623d9084906102d6905f908a903090429060040161156f565b5f6040518083038185885af11580156102f1573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405261031991908101906115d4565b5060055460405163a2a1623d60e01b81526001600160a01b039091169063a2a1623d908390610352905f908a903090429060040161156f565b5f6040518083038185885af115801561036d573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405261039591908101906115d4565b506002546040516370a0823160e01b81523060048201525f9186916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040491906114b0565b61040e9190611519565b60025460405163a9059cbb60e01b8152336004820152602481018390529192506001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561045d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104819190611675565b508060075f61048f42610a56565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546104cb919061169b565b9091555081905060085f6104de42610a6a565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461051a919061169b565b9091555050600654600160a01b900467ffffffffffffffff165f9081526009602090815260408083203384529091528120805483929061055b90849061169b565b9091555050604051819033907f1946c4adbe38d281fd609ff44571b1d98ba267c4fbbcb49ad7db12a5f9645929905f90a35050505050505b005b3480156105a0575f80fd5b506105bf6105af3660046116c9565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156105e8575f80fd5b506002546105fc906001600160a01b031681565b6040516001600160a01b0390911681526020016105d4565b34801561061f575f80fd5b506004546105fc906001600160a01b031681565b34801561063e575f80fd5b5061065261064d366004611782565b610a6a565b6040519081526020016105d4565b34801561066b575f80fd5b5061065261067a366004611799565b600960209081525f928352604080842090915290825290205481565b3480156106a1575f80fd5b506106526106b0366004611782565b610a56565b3480156106c0575f80fd5b506106526106cf3660046117c3565b610a86565b3480156106df575f80fd5b506005546105fc906001600160a01b031681565b3480156106fe575f80fd5b50610593610acf565b348015610712575f80fd5b506001546105fc906001600160a01b031681565b348015610731575f80fd5b506106526107403660046117c3565b610b0c565b348015610750575f80fd5b505f546001600160a01b03166105fc565b34801561076c575f80fd5b5060065461078890600160a01b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016105d4565b3480156107ac575f80fd5b506105936107bb366004611799565b610b5b565b3480156107cb575f80fd5b506106526107da3660046117c3565b610be9565b3480156107ea575f80fd5b506107f3610947565b60405160ff90911681526020016105d4565b348015610810575f80fd5b506003546105fc906001600160a01b031681565b34801561082f575f80fd5b5061059361083e366004611799565b610bff565b610593610851366004611782565b610c9b565b348015610861575f80fd5b50610652610870366004611799565b600860209081525f928352604080842090915290825290205481565b348015610897575f80fd5b506105936110f7565b3480156108ab575f80fd5b506106526108ba366004611782565b61114c565b3480156108ca575f80fd5b506106526108d9366004611799565b600760209081525f928352604080842090915290825290205481565b348015610900575f80fd5b5061059361090f3660046117c3565b6112e8565b34801561091f575f80fd5b506006546105fc906001600160a01b031681565b34801561093e575f80fd5b5061059361137f565b6004805460408051630240bc6b60e21b815290515f9384936001600160a01b031692630902f1ac92818301926060928290030181865afa15801561098d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b191906117f2565b505090505f60065f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610a06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2a91906117f2565b505090508082610a3a919061183e565b610a45836064611865565b610a4f9190611890565b9250505090565b5f610a646201518083611506565b92915050565b5f62093a80610a7c6205460084611519565b610a649190611506565b600654600160a01b900467ffffffffffffffff165f9081526009602090815260408083206001600160a01b0385168452909152812054610a6490670de0b6b3a764000090611506565b5f546001600160a01b03163314610b015760405162461bcd60e51b8152600401610af8906118b5565b60405180910390fd5b610b0a5f6113f2565b565b5f670de0b6b3a764000060085f610b2242610a6a565b81526020019081526020015f205f846001600160a01b03166001600160a01b031681526020019081526020015f2054610a649190611506565b5f546001600160a01b03163314610b845760405162461bcd60e51b8152600401610af8906118b5565b604051632142170760e11b8152306004820152336024820152604481018390526001600160a01b038216906342842e0e906064015f604051808303815f87803b158015610bcf575f80fd5b505af1158015610be1573d5f803e3d5ffd5b505050505050565b5f670de0b6b3a764000060075f610b2242610a56565b5f546001600160a01b03163314610c285760405162461bcd60e51b8152600401610af8906118b5565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303815f875af1158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190611675565b505050565b6040805160028082526060820183525f92602083019080368337505060015482519293506001600160a01b0316918391505f90610cda57610cda61149c565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610d0b57610d0b61149c565b6001600160a01b0392831660209182029290920101526002546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015610d62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8691906114b0565b9050475f610d92610947565b90505f6064610da460ff8416886114db565b610dae9190611506565b90505f610dbb8288611519565b600354604051638a657e6760e01b81529192506001600160a01b031690638a657e67904790610df49086908b903090429060040161156f565b5f6040518083038185885af1158015610e0f573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f19168201604052610e3791908101906115d4565b50600554604051638a657e6760e01b81526001600160a01b0390911690638a657e67904790610e709085908b903090429060040161156f565b5f6040518083038185885af1158015610e8b573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f19168201604052610eb391908101906115d4565b506002546040516370a0823160e01b81523060048201525f9187916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610efe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2291906114b0565b610f2c9190611519565b90505f610f394787611519565b9050336108fc610f498334611519565b6040518115909202915f818181858888f19350505050158015610f6e573d5f803e3d5ffd5b5060025460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610fbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe19190611675565b508160075f610fef42610a56565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461102b919061169b565b9091555082905060085f61103e42610a6a565b81526020019081526020015f205f336001600160a01b03166001600160a01b031681526020019081526020015f205f82825461107a919061169b565b9091555050600654600160a01b900467ffffffffffffffff165f908152600960209081526040808320338452909152812080548492906110bb90849061169b565b9091555050604051829033907f1946c4adbe38d281fd609ff44571b1d98ba267c4fbbcb49ad7db12a5f9645929905f90a3505050505050505050565b5f546001600160a01b031633146111205760405162461bcd60e51b8152600401610af8906118b5565b60405133904780156108fc02915f818181858888f19350505050158015611149573d5f803e3d5ffd5b50565b5f805f60045f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561119f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c391906117f2565b50915091505f8060065f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906117f2565b5090925090505f61124f838661183e565b61125a866064611865565b6112649190611890565b90505f606461127660ff84168a6114db565b6112809190611506565b90505f61128d828a611519565b90505f6112ad83886001600160701b03168a6001600160701b0316611441565b90505f6112cd83876001600160701b0316896001600160701b0316611441565b90506112d9818361169b565b9b9a5050505050505050505050565b5f546001600160a01b031633146113115760405162461bcd60e51b8152600401610af8906118b5565b6001600160a01b0381166113765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af8565b611149816113f2565b5f546001600160a01b031633146113a85760405162461bcd60e51b8152600401610af8906118b5565b60068054600160a01b900467ffffffffffffffff169060146113c9836118ea565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8061144d85856114db565b611459906103e86114db565b90505f6114668685611519565b611472906103e56114db565b905061147e8183611506565b9695505050505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156114c0575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a6457610a646114c7565b634e487b7160e01b5f52601260045260245ffd5b5f82611514576115146114f2565b500490565b81810381811115610a6457610a646114c7565b5f815180845260208085019450602084015f5b838110156115645781516001600160a01b03168752958201959082019060010161153f565b509495945050505050565b848152608060208201525f611587608083018661152c565b6001600160a01b03949094166040830152506060015292915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156115cc576115cc611488565b604052919050565b5f60208083850312156115e5575f80fd5b825167ffffffffffffffff808211156115fc575f80fd5b818501915085601f83011261160f575f80fd5b81518181111561162157611621611488565b8060051b91506116328483016115a3565b818152918301840191848101908884111561164b575f80fd5b938501935b8385101561166957845182529385019390850190611650565b98975050505050505050565b5f60208284031215611685575f80fd5b81518015158114611694575f80fd5b9392505050565b80820180821115610a6457610a646114c7565b80356001600160a01b03811681146116c4575f80fd5b919050565b5f805f80608085870312156116dc575f80fd5b6116e5856116ae565b935060206116f48187016116ae565b935060408601359250606086013567ffffffffffffffff80821115611717575f80fd5b818801915088601f83011261172a575f80fd5b81358181111561173c5761173c611488565b61174e601f8201601f191685016115a3565b91508082528984828501011115611763575f80fd5b80848401858401375f8482840101525080935050505092959194509250565b5f60208284031215611792575f80fd5b5035919050565b5f80604083850312156117aa575f80fd5b823591506117ba602084016116ae565b90509250929050565b5f602082840312156117d3575f80fd5b611694826116ae565b80516001600160701b03811681146116c4575f80fd5b5f805f60608486031215611804575f80fd5b61180d846117dc565b925061181b602085016117dc565b9150604084015163ffffffff81168114611833575f80fd5b809150509250925092565b6001600160701b0381811683821601908082111561185e5761185e6114c7565b5092915050565b6001600160701b03818116838216028082169190828114611888576118886114c7565b505092915050565b5f6001600160701b03808416806118a9576118a96114f2565b92169190910492915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f67ffffffffffffffff808316818103611906576119066114c7565b600101939250505056fea2646970667358221220eb5238986051476163bbab823f87af4b0c55613e94483e3293e79079993efe7964736f6c63430008180033
Deployed Bytecode Sourcemap
9328:6049:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10247:9;10233:10;:23;10230:1095;;10296:16;;;10310:1;10296:16;;;;;;;;10272:21;;10296:16;;;;;;;;-1:-1:-1;;10337:5:0;;10327:7;;;;-1:-1:-1;;;;;;10337:5:0;;10327:7;;-1:-1:-1;10337:5:0;;10327:7;;;;:::i;:::-;-1:-1:-1;;;;;10327:15:0;;;:7;;;;;;;;;:15;10367:5;;10357:7;;10367:5;;;10357:4;;10367:5;;10357:7;;;;;;:::i;:::-;-1:-1:-1;;;;;10357:15:0;;;:7;;;;;;;;;:15;10419:5;;10412:38;;-1:-1:-1;;;10412:38:0;;10444:4;10412:38;;;424:51:1;10387:22:0;;10419:5;;;;;10412:23;;397:18:1;;10412:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10387:63;;10465:16;10484:14;:12;:14::i;:::-;10465:33;-1:-1:-1;10513:24:0;10563:3;10541:20;;;;:9;:20;:::i;:::-;10540:26;;;;:::i;:::-;10513:53;-1:-1:-1;10581:22:0;10606:26;10513:53;10606:9;:26;:::i;:::-;10655:11;;10647:109;;-1:-1:-1;;;10647:109:0;;10581:51;;-1:-1:-1;;;;;;10655:11:0;;10647:43;;10698:16;;10647:109;;10655:11;;10719:4;;10733;;10740:15;;10647:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10647:109:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10779:9:0;;10771:105;;-1:-1:-1;;;10771:105:0;;-1:-1:-1;;;;;10779:9:0;;;;10771:41;;10820:14;;10771:105;;10779:9;;10839:4;;10853;;10860:15;;10771:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10771:105:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10921:5:0;;10914:38;;-1:-1:-1;;;10914:38:0;;10946:4;10914:38;;;424:51:1;10891:20:0;;10955:14;;-1:-1:-1;;;;;10921:5:0;;;;10914:23;;397:18:1;;10914:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;;;;:::i;:::-;10991:5;;10984:48;;-1:-1:-1;;;10984:48:0;;11007:10;10984:48;;;3750:51:1;3817:18;;;3810:34;;;10891:78:0;;-1:-1:-1;;;;;;10991:5:0;;10984:22;;3723:18:1;;10984:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11102:12;11047:11;:39;11059:26;11069:15;11059:9;:26::i;:::-;11047:39;;;;;;;;;;;:51;11087:10;-1:-1:-1;;;;;11047:51:0;-1:-1:-1;;;;;11047:51:0;;;;;;;;;;;;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;11186:12:0;;-1:-1:-1;11129:12:0;:41;11142:27;11153:15;11142:10;:27::i;:::-;11129:41;;;;;;;;;;;:53;11171:10;-1:-1:-1;;;;;11129:53:0;-1:-1:-1;;;;;11129:53:0;;;;;;;;;;;;;:69;;;;;;;:::i;:::-;;;;-1:-1:-1;;11225:5:0;;-1:-1:-1;;;11225:5:0;;;;11213:18;;;;:11;:18;;;;;;;;11232:10;11213:30;;;;;;;:46;;11247:12;;11213:18;:46;;11247:12;;11213:46;:::i;:::-;;;;-1:-1:-1;;11279:34:0;;11300:12;;11288:10;;11279:34;;;;;10257:1068;;;;;;10230:1095;9328:6049;15132:164;;;;;;;;;;-1:-1:-1;15132:164:0;;;;;:::i;:::-;-1:-1:-1;;;15132:164:0;;;;;;;;;;-1:-1:-1;;;;;;5592:33:1;;;5574:52;;5562:2;5547:18;15132:164:0;;;;;;;;9456:65;;;;;;;;;;-1:-1:-1;9456:65:0;;;;-1:-1:-1;;;;;9456:65:0;;;;;;-1:-1:-1;;;;;442:32:1;;;424:51;;412:2;397:18;9456:65:0;278:203:1;9606:69:0;;;;;;;;;;-1:-1:-1;9606:69:0;;;;-1:-1:-1;;;;;9606:69:0;;;12745:129;;;;;;;;;;-1:-1:-1;12745:129:0;;;;;:::i;:::-;;:::i;:::-;;;5968:25:1;;;5956:2;5941:18;12745:129:0;5822:177:1;10007:66:0;;;;;;;;;;-1:-1:-1;10007:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;12624:113;;;;;;;;;;-1:-1:-1;12624:113:0;;;;;:::i;:::-;;:::i;13195:129::-;;;;;;;;;;-1:-1:-1;13195:129:0;;;;;:::i;:::-;;:::i;9682:69::-;;;;;;;;;;-1:-1:-1;9682:69:0;;;;-1:-1:-1;;;;;9682:69:0;;;1951:103;;;;;;;;;;;;;:::i;9384:65::-;;;;;;;;;;-1:-1:-1;9384:65:0;;;;-1:-1:-1;;;;;9384:65:0;;;13036:151;;;;;;;;;;-1:-1:-1;13036:151:0;;;;;:::i;:::-;;:::i;1300:87::-;;;;;;;;;;-1:-1:-1;1346:7:0;1373:6;-1:-1:-1;;;;;1373:6:0;1300:87;;9832:19;;;;;;;;;;-1:-1:-1;9832:19:0;;;;-1:-1:-1;;;9832:19:0;;;;;;;;;6628:18:1;6616:31;;;6598:50;;6586:2;6571:18;9832:19:0;6454:200:1;14961:163:0;;;;;;;;;;-1:-1:-1;14961:163:0;;;;;:::i;:::-;;:::i;12882:146::-;;;;;;;;;;-1:-1:-1;12882:146:0;;;;;:::i;:::-;;:::i;13332:302::-;;;;;;;;;;;;;:::i;:::-;;;6831:4:1;6819:17;;;6801:36;;6789:2;6774:18;13332:302:0;6659:184:1;9528:71:0;;;;;;;;;;-1:-1:-1;9528:71:0;;;;-1:-1:-1;;;;;9528:71:0;;;14815:134;;;;;;;;;;-1:-1:-1;14815:134:0;;;;;:::i;:::-;;:::i;11340:1276::-;;;;;;:::i;:::-;;:::i;9933:67::-;;;;;;;;;;-1:-1:-1;9933:67:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;14689:114;;;;;;;;;;;;;:::i;13642:754::-;;;;;;;;;;-1:-1:-1;13642:754:0;;;;;:::i;:::-;;:::i;9860:66::-;;;;;;;;;;-1:-1:-1;9860:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2209:201;;;;;;;;;;-1:-1:-1;2209:201:0;;;;;:::i;:::-;;:::i;9758:67::-;;;;;;;;;;-1:-1:-1;9758:67:0;;;;-1:-1:-1;;;;;9758:67:0;;;15304:68;;;;;;;;;;;;;:::i;13332:302::-;13443:9;;;13437:30;;;-1:-1:-1;;;13437:30:0;;;;13376:16;;;;-1:-1:-1;;;;;13443:9:0;;13437:28;;:30;;;;;;;;;;;13443:9;13437:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13405:62;;;;13479:23;13514:7;;;;;;;;;-1:-1:-1;;;;;13514:7:0;-1:-1:-1;;;;;13508:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13478:58;;;;13609:15;13591:17;:33;;;;:::i;:::-;13567:21;13571:17;13567:3;:21;:::i;:::-;13566:59;;;;:::i;:::-;13547:79;;13394:240;;13332:302;:::o;12624:113::-;12683:11;12714:15;12724:5;12714:9;:15;:::i;:::-;12707:22;12624:113;-1:-1:-1;;12624:113:0:o;12745:129::-;12805:12;12858:7;12838:17;12848:7;12838:9;:17;:::i;:::-;12837:29;;;;:::i;13195:129::-;13297:5;;-1:-1:-1;;;13297:5:0;;;;13258:7;13285:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13285:24:0;;;;;;;;;;:31;;13310:6;;13285:31;:::i;1951:103::-;1346:7;1373:6;-1:-1:-1;;;;;1373:6:0;754:10;1520:23;1512:68;;;;-1:-1:-1;;;1512:68:0;;;;;;;:::i;:::-;;;;;;;;;2016:30:::1;2043:1;2016:18;:30::i;:::-;1951:103::o:0;13036:151::-;13098:7;13173:6;13125:12;:41;13138:27;13149:15;13138:10;:27::i;:::-;13125:41;;;;;;;;;;;:47;13167:4;-1:-1:-1;;;;;13125:47:0;-1:-1:-1;;;;;13125:47:0;;;;;;;;;;;;;:54;;;;:::i;14961:163::-;1346:7;1373:6;-1:-1:-1;;;;;1373:6:0;754:10;1520:23;1512:68;;;;-1:-1:-1;;;1512:68:0;;;;;;;:::i;:::-;15049:67:::1;::::0;-1:-1:-1;;;15049:67:0;;15094:4:::1;15049:67;::::0;::::1;8787:34:1::0;15101:10:0::1;8837:18:1::0;;;8830:43;8889:18;;;8882:34;;;-1:-1:-1;;;;;15049:36:0;::::1;::::0;::::1;::::0;8722:18:1;;15049:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14961:163:::0;;:::o;12882:146::-;12941:7;13014:6;12968:11;:39;12980:26;12990:15;12980:9;:26::i;14815:134::-;1346:7;1373:6;-1:-1:-1;;;;;1373:6:0;754:10;1520:23;1512:68;;;;-1:-1:-1;;;1512:68:0;;;;;;;:::i;:::-;14899:42:::1;::::0;-1:-1:-1;;;14899:42:0;;14922:10:::1;14899:42;::::0;::::1;3750:51:1::0;3817:18;;;3810:34;;;-1:-1:-1;;;;;14899:22:0;::::1;::::0;::::1;::::0;3723:18:1;;14899:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14815:134:::0;;:::o;11340:1276::-;11431:16;;;11445:1;11431:16;;;;;;;;11407:21;;11431:16;;;;;;;;-1:-1:-1;;11468:5:0;;11458:7;;;;-1:-1:-1;;;;;;11468:5:0;;11458:7;;-1:-1:-1;11468:5:0;;11458:7;;;;:::i;:::-;-1:-1:-1;;;;;11458:15:0;;;:7;;;;;;;;;:15;11494:5;;11484:7;;11494:5;;;11484:4;;11494:5;;11484:7;;;;;;:::i;:::-;-1:-1:-1;;;;;11484:15:0;;;:7;;;;;;;;;:15;11542:5;;11535:38;;-1:-1:-1;;;11535:38:0;;11567:4;11535:38;;;424:51:1;11510:22:0;;11542:5;;;;;11535:23;;397:18:1;;11535:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11510:63;-1:-1:-1;11607:21:0;11584:20;11658:14;:12;:14::i;:::-;11639:33;-1:-1:-1;11683:24:0;11730:3;11711:17;;;;:6;:17;:::i;:::-;11710:23;;;;:::i;:::-;11683:50;-1:-1:-1;11744:22:0;11769:23;11683:50;11769:6;:23;:::i;:::-;11811:11;;11803:129;;-1:-1:-1;;;11803:129:0;;11744:48;;-1:-1:-1;;;;;;11811:11:0;;11803:43;;11854:21;;11803:129;;11877:16;;11895:4;;11909;;11916:15;;11803:129;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11803:129:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11951:9:0;;11943:125;;-1:-1:-1;;;11943:125:0;;-1:-1:-1;;;;;11951:9:0;;;;11943:41;;11992:21;;11943:125;;12015:14;;12031:4;;12045;;12052:15;;11943:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11943:125:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12109:5:0;;12102:38;;-1:-1:-1;;;12102:38:0;;12134:4;12102:38;;;424:51:1;12079:20:0;;12143:14;;-1:-1:-1;;;;;12109:5:0;;;;12102:23;;397:18:1;;12102:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;;;;:::i;:::-;12079:78;-1:-1:-1;12168:17:0;12188:36;12203:21;12188:12;:36;:::i;:::-;12168:56;-1:-1:-1;12243:10:0;12235:49;12264:19;12168:56;12264:9;:19;:::i;:::-;12235:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12302:5:0;;12295:48;;-1:-1:-1;;;12295:48:0;;12318:10;12295:48;;;3750:51:1;3817:18;;;3810:34;;;-1:-1:-1;;;;;12302:5:0;;;;12295:22;;3723:18:1;;12295:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12409:12;12354:11;:39;12366:26;12376:15;12366:9;:26::i;:::-;12354:39;;;;;;;;;;;:51;12394:10;-1:-1:-1;;;;;12354:51:0;-1:-1:-1;;;;;12354:51:0;;;;;;;;;;;;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;12489:12:0;;-1:-1:-1;12432:12:0;:41;12445:27;12456:15;12445:10;:27::i;:::-;12432:41;;;;;;;;;;;:53;12474:10;-1:-1:-1;;;;;12432:53:0;-1:-1:-1;;;;;12432:53:0;;;;;;;;;;;;;:69;;;;;;;:::i;:::-;;;;-1:-1:-1;;12524:5:0;;-1:-1:-1;;;12524:5:0;;;;12512:18;;;;:11;:18;;;;;;;;12531:10;12512:30;;;;;;;:46;;12546:12;;12512:18;:46;;12546:12;;12512:46;:::i;:::-;;;;-1:-1:-1;;12574:34:0;;12595:12;;12583:10;;12574:34;;;;;11396:1220;;;;;;;;11340:1276;:::o;14689:114::-;1346:7;1373:6;-1:-1:-1;;;;;1373:6:0;754:10;1520:23;1512:68;;;;-1:-1:-1;;;1512:68:0;;;;;;;:::i;:::-;14744:51:::1;::::0;14752:10:::1;::::0;14773:21:::1;14744:51:::0;::::1;;;::::0;::::1;::::0;;;14773:21;14752:10;14744:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14689:114::o:0;13642:754::-;13705:16;13735:25;13762:24;13797:9;;;;;;;;;-1:-1:-1;;;;;13797:9:0;-1:-1:-1;;;;;13791:28:0;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13734:87;;;;;13833:23;13858:22;13891:7;;;;;;;;;-1:-1:-1;;;;;13891:7:0;-1:-1:-1;;;;;13885:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13832:81:0;;-1:-1:-1;13832:81:0;-1:-1:-1;13924:16:0;13974:33;13832:81;13974:17;:33;:::i;:::-;13950:21;13954:17;13950:3;:21;:::i;:::-;13949:59;;;;:::i;:::-;13924:85;-1:-1:-1;14020:24:0;14070:3;14048:20;;;;:9;:20;:::i;:::-;14047:26;;;;:::i;:::-;14020:53;-1:-1:-1;14084:22:0;14109:26;14020:53;14109:9;:26;:::i;:::-;14084:51;;14146:21;14170:72;14188:16;14206;-1:-1:-1;;;;;14170:72:0;14224:17;-1:-1:-1;;;;;14170:72:0;:17;:72::i;:::-;14146:96;;14253:19;14275:66;14293:14;14309;-1:-1:-1;;;;;14275:66:0;14325:15;-1:-1:-1;;;;;14275:66:0;:17;:66::i;:::-;14253:88;-1:-1:-1;14363:25:0;14253:88;14363:13;:25;:::i;:::-;14352:36;13642:754;-1:-1:-1;;;;;;;;;;;13642:754:0:o;2209:201::-;1346:7;1373:6;-1:-1:-1;;;;;1373:6:0;754:10;1520:23;1512:68;;;;-1:-1:-1;;;1512:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2298:22:0;::::1;2290:73;;;::::0;-1:-1:-1;;;2290:73:0;;9636:2:1;2290:73:0::1;::::0;::::1;9618:21:1::0;9675:2;9655:18;;;9648:30;9714:34;9694:18;;;9687:62;-1:-1:-1;;;9765:18:1;;;9758:36;9811:19;;2290:73:0::1;9434:402:1::0;2290:73:0::1;2374:28;2393:8;2374:18;:28::i;15304:68::-:0;1346:7;1373:6;-1:-1:-1;;;;;1373:6:0;754:10;1520:23;1512:68;;;;-1:-1:-1;;;1512:68:0;;;;;;;:::i;:::-;15357:5:::1;:7:::0;;-1:-1:-1;;;15357:7:0;::::1;;;::::0;:5:::1;:7;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15304:68::o:0;2570:191::-;2644:16;2663:6;;-1:-1:-1;;;;;2680:17:0;;;-1:-1:-1;;;;;;2680:17:0;;;;;;2713:40;;2663:6;;;;;;;2713:40;;2644:16;2713:40;2633:128;2570:191;:::o;14404:277::-;14503:13;;14546:19;14556:9;14546;:19;:::i;:::-;:24;;14566:4;14546:24;:::i;:::-;14529:41;-1:-1:-1;14581:16:0;14605:20;14616:9;14605:10;:20;:::i;:::-;14600:26;;:3;:26;:::i;:::-;14581:45;-1:-1:-1;14649:23:0;14581:45;14649:9;:23;:::i;:::-;14637:36;14404:277;-1:-1:-1;;;;;;14404:277:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:127;207:10;202:3;198:20;195:1;188:31;238:4;235:1;228:15;262:4;259:1;252:15;486:184;556:6;609:2;597:9;588:7;584:23;580:32;577:52;;;625:1;622;615:12;577:52;-1:-1:-1;648:16:1;;486:184;-1:-1:-1;486:184:1:o;675:127::-;736:10;731:3;727:20;724:1;717:31;767:4;764:1;757:15;791:4;788:1;781:15;807:168;880:9;;;911;;928:15;;;922:22;;908:37;898:71;;949:18;;:::i;980:127::-;1041:10;1036:3;1032:20;1029:1;1022:31;1072:4;1069:1;1062:15;1096:4;1093:1;1086:15;1112:120;1152:1;1178;1168:35;;1183:18;;:::i;:::-;-1:-1:-1;1217:9:1;;1112:120::o;1237:128::-;1304:9;;;1325:11;;;1322:37;;;1339:18;;:::i;1370:465::-;1423:3;1461:5;1455:12;1488:6;1483:3;1476:19;1514:4;1543;1538:3;1534:14;1527:21;;1582:4;1575:5;1571:16;1605:1;1615:195;1629:6;1626:1;1623:13;1615:195;;;1694:13;;-1:-1:-1;;;;;1690:39:1;1678:52;;1750:12;;;;1785:15;;;;1726:1;1644:9;1615:195;;;-1:-1:-1;1826:3:1;;1370:465;-1:-1:-1;;;;;1370:465:1:o;1840:510::-;2111:6;2100:9;2093:25;2154:3;2149:2;2138:9;2134:18;2127:31;2074:4;2175:57;2227:3;2216:9;2212:19;2204:6;2175:57;:::i;:::-;-1:-1:-1;;;;;2268:32:1;;;;2263:2;2248:18;;2241:60;-1:-1:-1;2332:2:1;2317:18;2310:34;2167:65;1840:510;-1:-1:-1;;1840:510:1:o;2355:275::-;2426:2;2420:9;2491:2;2472:13;;-1:-1:-1;;2468:27:1;2456:40;;2526:18;2511:34;;2547:22;;;2508:62;2505:88;;;2573:18;;:::i;:::-;2609:2;2602:22;2355:275;;-1:-1:-1;2355:275:1:o;2635:936::-;2730:6;2761:2;2804;2792:9;2783:7;2779:23;2775:32;2772:52;;;2820:1;2817;2810:12;2772:52;2853:9;2847:16;2882:18;2923:2;2915:6;2912:14;2909:34;;;2939:1;2936;2929:12;2909:34;2977:6;2966:9;2962:22;2952:32;;3022:7;3015:4;3011:2;3007:13;3003:27;2993:55;;3044:1;3041;3034:12;2993:55;3073:2;3067:9;3095:2;3091;3088:10;3085:36;;;3101:18;;:::i;:::-;3147:2;3144:1;3140:10;3130:20;;3170:28;3194:2;3190;3186:11;3170:28;:::i;:::-;3232:15;;;3302:11;;;3298:20;;;3263:12;;;;3330:19;;;3327:39;;;3362:1;3359;3352:12;3327:39;3386:11;;;;3406:135;3422:6;3417:3;3414:15;3406:135;;;3488:10;;3476:23;;3439:12;;;;3519;;;;3406:135;;;3560:5;2635:936;-1:-1:-1;;;;;;;;2635:936:1:o;3855:277::-;3922:6;3975:2;3963:9;3954:7;3950:23;3946:32;3943:52;;;3991:1;3988;3981:12;3943:52;4023:9;4017:16;4076:5;4069:13;4062:21;4055:5;4052:32;4042:60;;4098:1;4095;4088:12;4042:60;4121:5;3855:277;-1:-1:-1;;;3855:277:1:o;4137:125::-;4202:9;;;4223:10;;;4220:36;;;4236:18;;:::i;4267:173::-;4335:20;;-1:-1:-1;;;;;4384:31:1;;4374:42;;4364:70;;4430:1;4427;4420:12;4364:70;4267:173;;;:::o;4445:980::-;4540:6;4548;4556;4564;4617:3;4605:9;4596:7;4592:23;4588:33;4585:53;;;4634:1;4631;4624:12;4585:53;4657:29;4676:9;4657:29;:::i;:::-;4647:39;;4705:2;4726:38;4760:2;4749:9;4745:18;4726:38;:::i;:::-;4716:48;;4811:2;4800:9;4796:18;4783:32;4773:42;;4866:2;4855:9;4851:18;4838:32;4889:18;4930:2;4922:6;4919:14;4916:34;;;4946:1;4943;4936:12;4916:34;4984:6;4973:9;4969:22;4959:32;;5029:7;5022:4;5018:2;5014:13;5010:27;5000:55;;5051:1;5048;5041:12;5000:55;5087:2;5074:16;5109:2;5105;5102:10;5099:36;;;5115:18;;:::i;:::-;5157:53;5200:2;5181:13;;-1:-1:-1;;5177:27:1;5173:36;;5157:53;:::i;:::-;5144:66;;5233:2;5226:5;5219:17;5273:7;5268:2;5263;5259;5255:11;5251:20;5248:33;5245:53;;;5294:1;5291;5284:12;5245:53;5349:2;5344;5340;5336:11;5331:2;5324:5;5320:14;5307:45;5393:1;5388:2;5383;5376:5;5372:14;5368:23;5361:34;;5414:5;5404:15;;;;;4445:980;;;;;;;:::o;5637:180::-;5696:6;5749:2;5737:9;5728:7;5724:23;5720:32;5717:52;;;5765:1;5762;5755:12;5717:52;-1:-1:-1;5788:23:1;;5637:180;-1:-1:-1;5637:180:1:o;6004:254::-;6072:6;6080;6133:2;6121:9;6112:7;6108:23;6104:32;6101:52;;;6149:1;6146;6139:12;6101:52;6185:9;6172:23;6162:33;;6214:38;6248:2;6237:9;6233:18;6214:38;:::i;:::-;6204:48;;6004:254;;;;;:::o;6263:186::-;6322:6;6375:2;6363:9;6354:7;6350:23;6346:32;6343:52;;;6391:1;6388;6381:12;6343:52;6414:29;6433:9;6414:29;:::i;6848:188::-;6927:13;;-1:-1:-1;;;;;6969:42:1;;6959:53;;6949:81;;7026:1;7023;7016:12;7041:450;7128:6;7136;7144;7197:2;7185:9;7176:7;7172:23;7168:32;7165:52;;;7213:1;7210;7203:12;7165:52;7236:40;7266:9;7236:40;:::i;:::-;7226:50;;7295:49;7340:2;7329:9;7325:18;7295:49;:::i;:::-;7285:59;;7387:2;7376:9;7372:18;7366:25;7431:10;7424:5;7420:22;7413:5;7410:33;7400:61;;7457:1;7454;7447:12;7400:61;7480:5;7470:15;;;7041:450;;;;;:::o;7496:193::-;-1:-1:-1;;;;;7614:10:1;;;7626;;;7610:27;;7649:11;;;7646:37;;;7663:18;;:::i;:::-;7646:37;7496:193;;;;:::o;7694:270::-;-1:-1:-1;;;;;7828:10:1;;;7840;;;7824:27;7871:20;;;;7766:30;7910:24;;;7900:58;;7938:18;;:::i;:::-;7900:58;;7694:270;;;;:::o;7969:212::-;8009:1;-1:-1:-1;;;;;8092:2:1;8089:1;8085:10;8114:3;8104:37;;8121:18;;:::i;:::-;8159:10;;8155:20;;;;;7969:212;-1:-1:-1;;7969:212:1:o;8186:356::-;8388:2;8370:21;;;8407:18;;;8400:30;8466:34;8461:2;8446:18;;8439:62;8533:2;8518:18;;8186:356::o;9841:209::-;9879:3;9907:18;9960:2;9953:5;9949:14;9987:2;9978:7;9975:15;9972:41;;9993:18;;:::i;:::-;10042:1;10029:15;;9841:209;-1:-1:-1;;;9841:209:1:o
Swarm Source
ipfs://eb5238986051476163bbab823f87af4b0c55613e94483e3293e79079993efe79
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.