Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,107 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Remove Liquidity | 12876278 | 1310 days ago | IN | 0 ETH | 0.00534689 | ||||
Add Liquidity | 12876271 | 1310 days ago | IN | 0 ETH | 0.00209347 | ||||
Set Active | 12876036 | 1310 days ago | IN | 0 ETH | 0.00029569 | ||||
Remove Liquidity | 12776301 | 1326 days ago | IN | 0 ETH | 0.00563589 | ||||
Remove Liquidity | 12248591 | 1407 days ago | IN | 0 ETH | 0.02721826 | ||||
Remove Liquidity | 12222052 | 1411 days ago | IN | 0 ETH | 0.03140811 | ||||
Remove Liquidity | 12179516 | 1418 days ago | IN | 0 ETH | 0.0389247 | ||||
Remove Liquidity | 12125875 | 1426 days ago | IN | 0 ETH | 0.03153506 | ||||
Remove Liquidity | 12029214 | 1441 days ago | IN | 0 ETH | 0.04336398 | ||||
Remove Liquidity | 12028376 | 1441 days ago | IN | 0 ETH | 0.04632039 | ||||
Remove Liquidity | 11973671 | 1450 days ago | IN | 0 ETH | 0.03547017 | ||||
Remove Liquidity | 11931099 | 1456 days ago | IN | 0 ETH | 0.05272765 | ||||
Remove Liquidity | 11851801 | 1468 days ago | IN | 0 ETH | 0.03580962 | ||||
Update Price | 11815239 | 1474 days ago | IN | 0 ETH | 0.02904036 | ||||
Remove Liquidity | 11762644 | 1482 days ago | IN | 0 ETH | 0.02960876 | ||||
Remove Liquidity | 11752984 | 1484 days ago | IN | 0 ETH | 0.02959926 | ||||
Set Sell Fee | 11737485 | 1486 days ago | IN | 0 ETH | 0.00172557 | ||||
Set Buy Fee | 11737464 | 1486 days ago | IN | 0 ETH | 0.00145172 | ||||
Remove Liquidity | 11728220 | 1487 days ago | IN | 0 ETH | 0.02221955 | ||||
Remove Liquidity | 11720250 | 1489 days ago | IN | 0 ETH | 0.01234437 | ||||
Remove Liquidity | 11711739 | 1490 days ago | IN | 0 ETH | 0.01869484 | ||||
Add Liquidity | 11707295 | 1491 days ago | IN | 1 ETH | 0.02649283 | ||||
Remove Liquidity | 11695621 | 1492 days ago | IN | 0 ETH | 0.02181698 | ||||
Remove Liquidity | 11695006 | 1493 days ago | IN | 0 ETH | 0.01596851 | ||||
Add Liquidity | 11690697 | 1493 days ago | IN | 2 ETH | 0.01592677 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12876278 | 1310 days ago | 24.26528956 ETH | ||||
12776240 | 1326 days ago | 0.00093 ETH | ||||
12776240 | 1326 days ago | 0.31 ETH | ||||
12690143 | 1339 days ago | 0.46673256 ETH | ||||
12671597 | 1342 days ago | 0.28162789 ETH | ||||
12671597 | 1342 days ago | 0.00084998 ETH | ||||
12653401 | 1345 days ago | 0.29805378 ETH | ||||
12614136 | 1351 days ago | 0.00024 ETH | ||||
12614136 | 1351 days ago | 0.08 ETH | ||||
12532050 | 1364 days ago | 0.02122689 ETH | ||||
12532050 | 1364 days ago | 0.00006406 ETH | ||||
12339645 | 1393 days ago | 0.06490925 ETH | ||||
12339645 | 1393 days ago | 0.0001959 ETH | ||||
12259763 | 1406 days ago | 2.25739202 ETH | ||||
12259763 | 1406 days ago | 0.00681305 ETH | ||||
12248591 | 1407 days ago | 4.04905359 ETH | ||||
12222052 | 1411 days ago | 0.03954188 ETH | ||||
12179516 | 1418 days ago | 0.08412012 ETH | ||||
12125875 | 1426 days ago | 0.87709633 ETH | ||||
12072792 | 1434 days ago | 0.31357671 ETH | ||||
12072792 | 1434 days ago | 0.0009464 ETH | ||||
12047598 | 1438 days ago | 0.6268517 ETH | ||||
12047598 | 1438 days ago | 0.0018919 ETH | ||||
12031159 | 1441 days ago | 0.08731892 ETH | ||||
12031159 | 1441 days ago | 0.00026353 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
vault
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity Multiple files format)
////////////////////////////////////////////////// //SYNLEV VAULT CONTRACT V 1.0.0 ////////////////////////// pragma solidity >= 0.6.6; import './ownable.sol'; import './SafeMath.sol'; import './IERC20.sol'; import './priceCalculatorInterface.sol'; import './vaultHelperInterface.sol'; import './priceAggregatorInterface.sol'; /* * @title SynLev vault contract. * @author Icarus */ contract vault is Owned { using SafeMath for uint256; constructor() public { priceAggregatorInterface(0x7196545d854D03D9c87B7588F6D9e1e42D876E95).registerVaultAggregator(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419); priceAggregator = priceAggregatorInterface(0xb658E8680c1E1f148fb09cDbB3Bd0d58F9c14c00); priceCalculator = priceCalculatorInterface(0x80D129A01879422EB102c47Ed32DC6E8B123D05f); vaultHelper = vaultHelperInterface(0x70873daAa742bEA6D0EDf03f4f85c615983C01D7); synStakingProxy = 0x0070F3e1147c03a1Bb0caF80035B7c362D312119; buyFee = 4 * 10**6; sellFee = 4 * 10**6; } ///////////////////// //EVENTS///////////// ///////////////////// event PriceUpdate( uint256 bullPrice, uint256 bearPrice, uint256 bullLiqEquity, uint256 bearLiqEquity, uint256 bullEquity, uint256 bearEquity, uint256 roundId, bool updated ); event TokenBuy( address account, address token, uint256 tokensMinted, uint256 ethin, uint256 fees, uint256 bonus ); event TokenSell( address account, address token, uint256 tokensBurned, uint256 ethout, uint256 fees, uint256 penalty ); event LiquidityAdd( address account, uint256 eth, uint256 shares, uint256 shareprice ); event LiquidityRemove( address account, uint256 eth, uint256 shares, uint256 shareprice ); modifier isActive() { require(active == true); if(active == true && !priceAggregator.roundIdCheck(address(this))) { updatePrice(); } _; } modifier updateIfActive() { if(active == true && !priceAggregator.roundIdCheck(address(this))) { updatePrice(); } _; } ///////////////////// //GLOBAL VARIBLES ///////////////////// bool private active; uint256 constant private multiplier = 3; address private bull; address private bear; uint256 private latestRoundId; mapping(address => uint256) private price; mapping(address => uint256) private equity; uint256 private buyFee; uint256 private sellFee; uint256 private totalLiqShares; uint256 private liqFees; uint256 private balanceEquity; mapping(address => uint256) private liqTokens; mapping(address => uint256) private liqEquity; mapping(address => uint256) private userShares; priceAggregatorInterface public priceAggregator; priceCalculatorInterface public priceCalculator; vaultHelperInterface public vaultHelper; address payable public synStakingProxy; //Fallback function receive() external payable {} //////////////////////////////////// //LOW LEVEL BUY AND SELL FUNCTIONS// // NO SAFETY CHECK // //SHOULD ONLY BE CALLED BY OTHER // // CONTRACTS // //////////////////////////////////// /* * @notice Buys bull or bear token and updates price before token buy. * @param token bull or bear token address * @param account Recipient of newly minted tokens * @dev Should only be called by a router contract. Checks the excess ETH in * contract by calling getDepositEquity(). Can't 0 ETH buy. Calculates * resulting tokens and fees. Sends fees and mints tokens. * */ function tokenBuy(address token, address account) public virtual isActive() { uint256 ethin = getDepositEquity(); require(ethin > 0); require(token == bull || token == bear); IERC20 itkn = IERC20(token); uint256 fees = ethin.mul(buyFee).div(10**9); uint256 buyeth = ethin.sub(fees); uint256 bonus = vaultHelper.getBonus(address(this), token, buyeth); uint256 tokensToMint = buyeth.add(bonus).mul(10**18).div(price[token]); equity[token] = equity[token].add(buyeth).add(bonus); if(bonus != 0) balanceEquity = balanceEquity.sub(bonus); payFees(fees); itkn.mint(account, tokensToMint); emit TokenBuy(account, token, tokensToMint, ethin, fees, bonus); } /* * @notice Sells bull or bear token and updates price before token sell. * @param token bull or bear token address * @param account Recipient of resulting eth from burned tokens * @dev Should only be called by a router contract that simultaneously sends * tokens using transferFrom() and calls this function. Looks at the current * balance of the contract of the selected token. Can't 0 token sell. * Calculates resulting ETH from burned tokens. Pays fees, burns tokens, and * sends ETH. */ function tokenSell(address token, address payable account) public virtual isActive() { IERC20 itkn = IERC20(token); uint256 tokensToBurn = itkn.balanceOf(address(this)); require(tokensToBurn > 0); require(token == bull || token == bear); uint256 selleth = tokensToBurn.mul(price[token]).div(10**18); uint256 penalty = vaultHelper.getPenalty(address(this), token, selleth); uint256 fees = sellFee.mul(selleth.sub(penalty)).div(10**9); uint256 ethout = selleth.sub(penalty).sub(fees); equity[token] = equity[token].sub(selleth); if(penalty != 0) balanceEquity = balanceEquity.add(penalty); payFees(fees); itkn.burn(tokensToBurn); account.transfer(ethout); emit TokenSell(account, token, tokensToBurn, ethout, fees, penalty); } /* * @notice Adds liquidty to the contract and gives LP shares. Minimum LP add * is 1 wei. Virtually mints bear/bull tokens to be held in the vault. * @param account Recipient of LP shares * @dev Can be called by router but there is benefit to doing so. All * calculations are done with respect to equity and supply. Doing by price * creates rounding error. Calls updatePrice() then calls getLiqAddTokens() * to determine how many bull/bear to create. */ function addLiquidity(address account) public payable virtual updateIfActive() { uint256 ethin = getDepositEquity(); ( uint256 bullEquity, uint256 bearEquity, uint256 bullTokens, uint256 bearTokens ) = vaultHelper.getLiqAddTokens(address(this), ethin); uint256 sharePrice = vaultHelper.getSharePrice(address(this)); uint256 resultingShares = ethin.mul(10**18).div(sharePrice); liqEquity[bull] = liqEquity[bull].add(bullEquity); liqEquity[bear] = liqEquity[bear].add(bearEquity); liqTokens[bull] = liqTokens[bull].add(bullTokens); liqTokens[bear] = liqTokens[bear].add(bearTokens); userShares[account] = userShares[account].add(resultingShares); totalLiqShares = totalLiqShares.add(resultingShares); emit LiquidityAdd(account, ethin, resultingShares, sharePrice); } /* * @notice Removes liquidty to the contract and gives LP shares. Virtually * burns bear/bull tokens to be held in the vault. Cannot be called if user * has 0 shares * @param _shares How many shares to burn * @dev Cannot be called by a router as LP shares are not currently tokenized. * Calls updatePrice() then calls getLiqRemoveTokens() to determine how many * bull/bear tokens to remove. */ function removeLiquidity(uint256 shares) public virtual updateIfActive() { require(shares <= userShares[msg.sender]); ( uint256 bullEquity, uint256 bearEquity, uint256 bullTokens, uint256 bearTokens, uint256 feesPaid ) = vaultHelper.getLiqRemoveTokens(address(this), shares); uint256 sharePrice = vaultHelper.getSharePrice(address(this)); uint256 resultingEth = bullEquity.add(bearEquity).add(feesPaid); liqEquity[bull] = liqEquity[bull].sub(bullEquity); liqEquity[bear] = liqEquity[bear].sub(bearEquity); liqTokens[bull] = liqTokens[bull].sub(bullTokens); liqTokens[bear] = liqTokens[bear].sub(bearTokens); userShares[msg.sender] = userShares[msg.sender].sub(shares); totalLiqShares = totalLiqShares.sub(shares); liqFees = liqFees.sub(feesPaid); msg.sender.transfer(resultingEth); emit LiquidityRemove(msg.sender, resultingEth, shares, sharePrice); } /* * @notice Updates price from chainlink oracles. * @param _shares How many shares to burn * @dev Calls getUpdatedPrice() function and sets new price, equity, liquidity * equity, and latestRoundId; only if there is new price data * @return bool if price was updated */ function updatePrice() public { require(active == true); ( uint256[6] memory priceArray, uint256 roundId, bool updated ) = priceCalculator.getUpdatedPrice(address(this), latestRoundId); if(updated == true) { ( price[bull], price[bear], liqEquity[bull], liqEquity[bear], equity[bull], equity[bear], latestRoundId ) = ( priceArray[0], priceArray[1], priceArray[2], priceArray[3], priceArray[4], priceArray[5], roundId ); } emit PriceUpdate( price[bull], price[bear], liqEquity[bull], liqEquity[bear], equity[bull], equity[bear], latestRoundId, updated ); } /////////////////////// //INTERNAL FUNCTIONS/// /////////////////////// /* * @notice Pays half fees to SYN stakers and half to LP * @param _amount Fees to be paid in ETH * @dev Only called by tokenBuy() and tokenSell() */ function payFees(uint256 amount) internal { synStakingProxy.transfer(amount.div(2)); liqFees += amount.sub(amount.div(2)); } /////////////////// ///VIEW FUNCTIONS// /////////////////// function getActive() public view returns(bool) {return(active);} function getMultiplier() public pure returns(uint256) {return(multiplier);} function getBullToken() public view returns(address) {return(bull);} function getBearToken() public view returns(address) {return(bear);} function getLatestRoundId() public view returns(uint256) {return(latestRoundId);} function getPrice(address token) public view returns(uint256) {return(price[token]);} function getEquity(address token) public view returns(uint256) {return(equity[token]);} function getBuyFee() public view returns(uint256) {return(buyFee);} function getSellFee() public view returns(uint256) {return(sellFee);} function getTotalLiqShares() public view returns(uint256) {return(totalLiqShares);} function getLiqFees() public view returns(uint256) {return(liqFees);} function getBalanceEquity() public view returns(uint256) {return(balanceEquity);} function getLiqTokens(address token) public view returns(uint256) {return(liqTokens[token]);} function getLiqEquity(address token) public view returns(uint256) {return(liqEquity[token]);} function getUserShares(address account) public view returns(uint256) {return(userShares[account]);} function getTotalEquity() public view returns(uint256) { return(getTokenEquity(bear).add(getTokenEquity(bull))); } function getTokenEquity(address token) public view returns(uint256) { return(equity[token].add(liqEquity[token])); } function getTokenLiqEquity(address token) public view returns(uint256) { return(liqTokens[token].mul(price[token]).div(10**18)); } function getDepositEquity() public view returns(uint256) { return(address(this).balance.sub(liqFees.add(balanceEquity).add(getTotalEquity()))); } /////////////////// //ADMIN FUNCTIONS// /////////////////// //One time use function to set token addresses. this can never be changed once set. //Cannot be included in constructor as vault must be deployed before tokens. function setTokens(address bearAddress, address bullAddress) public onlyOwner() { require(bear == address(0) || bull == address(0)); (bull, bear) = (bullAddress, bearAddress); //Set initial price to .01 eth (price[bull], price[bear]) = (10**16, 10**16); } function setActive(bool state, uint256 roundId) public onlyOwner() { if(roundId != 0) { advanceRoundId(roundId); } active = state; } function advanceRoundId(uint256 roundId) public onlyOwner() { require(active == false); require(roundId > latestRoundId); ( , uint256 lastRoundId) = priceAggregator.priceRequest(address(this), latestRoundId); latestRoundId = lastRoundId >= roundId ? roundId : lastRoundId; } //Fees in the form of 1 / 10^8 function setBuyFee(uint256 amount) public onlyOwner() { require(amount <= 10**9); buyFee = amount; } //Sell fees limited to a maximum of 1% function setSellFee(uint256 amount) public onlyOwner() { require(amount <= 10**7); sellFee = amount; } }
pragma solidity >= 0.6.4; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function mint(address account, uint256 amount) external; function burn(uint256 amount) external; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
pragma solidity ^0.6.0; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Owned is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity >= 0.6.6; interface priceAggregatorInterface { function registerVaultAggregator(address oracle) external; function priceRequest( address vault, uint256 lastUpdated ) external view returns(int256[] memory, uint256); function roundIdCheck(address vault) external view returns(bool); }
pragma solidity >= 0.6.6; interface priceCalculatorInterface { function getUpdatedPrice( address vault, uint256 latestRoundId ) external view returns( uint256[6] memory latestPrice, uint256 rRoundId, bool updated ); function getKFactor( uint256 targetEquity, uint256 bullEquity, uint256 bearEquity, uint256 totalEquity ) external view returns(uint256 kFactor); }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
pragma solidity >= 0.6.6; interface vaultHelperInterface { function getBonus(address vault, address token, uint256 eth) external view returns(uint256 bonus); function getPenalty(address vault, address token, uint256 eth) external view returns(uint256 penalty); function getSharePrice(address vault) external view returns(uint256 sharePrice); function getLiqAddTokens(address vault, uint256 eth) external view returns( uint256 bullEquity, uint256 bearEquity, uint256 bullTokens, uint256 bearTokens ); function getLiqRemoveTokens(address vault, uint256 eth) external view returns( uint256 bullEquity, uint256 bearEquity, uint256 bullTokens, uint256 bearTokens, uint256 feesPaid ); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"eth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shareprice","type":"uint256"}],"name":"LiquidityAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"eth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shareprice","type":"uint256"}],"name":"LiquidityRemove","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bullPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bearPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bullLiqEquity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bearLiqEquity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bullEquity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bearEquity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"updated","type":"bool"}],"name":"PriceUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bonus","type":"uint256"}],"name":"TokenBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethout","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"penalty","type":"uint256"}],"name":"TokenSell","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"advanceRoundId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalanceEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBearToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBullToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDepositEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestRoundId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getLiqEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiqFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTokenEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTokenLiqEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalEquity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalLiqShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUserShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceAggregator","outputs":[{"internalType":"contract priceAggregatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceCalculator","outputs":[{"internalType":"contract priceCalculatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"setActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bearAddress","type":"address"},{"internalType":"address","name":"bullAddress","type":"address"}],"name":"setTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"synStakingProxy","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"tokenBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address payable","name":"account","type":"address"}],"name":"tokenSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vaultHelper","outputs":[{"internalType":"contract vaultHelperInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5060006100246001600160e01b0361018016565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805163446bc45360e01b8152735f4ec3df9cbd43714fe2740f5e3616155c5b841960048201529051737196545d854d03d9c87b7588f6d9e1e42d876e959163446bc45391602480830192600092919082900301818387803b1580156100d457600080fd5b505af11580156100e8573d6000803e3d6000fd5b5050600e80546001600160a01b031990811673b658e8680c1e1f148fb09cdbb3bd0d58f9c14c0017909155600f805482167380d129a01879422eb102c47ed32dc6e8b123d05f1790556010805482167370873daaa742bea6d0edf03f4f85c615983c01d7179055601180549091167270f3e1147c03a1bb0caf80035b7c362d3121191790555050623d09006006819055600755610184565b3390565b61232880620001946000396000f3fe6080604052600436106102125760003560e01c806382496e6f11610118578063b5a71d14116100a0578063cbc7854e1161006f578063cbc7854e14610641578063d344d4991461067c578063daa22f7a146106af578063e3412e3d146106e1578063f2fde38b1461070757610219565b8063b5a71d1414610593578063ba0cb22b146105c6578063c4056493146105f9578063cad29e9c1461062c57610219565b80638da5cb5b116100e75780638da5cb5b146104f75780638f818b901461050c5780639c8f9f2314610521578063a4d7a6cc1461054b578063ac86ea0c1461056057610219565b806382496e6f146104795780638b4cee08146104a35780638b95e335146104cd5780638c3b990b146104e257610219565b80633ba5d96d1161019b57806356aef98c1161016a57806356aef98c146104105780635db214da14610425578063673a7e281461043a5780636c4ea9291461044f578063715018a61461046457610219565b80633ba5d96d1461037857806340490a901461038d57806341976e09146103a257806347f958a7146103d557610219565b806321172e5d116101e257806321172e5d146102e9578063289af0d8146102fe5780633078fff51461031357806333163773146103285780633b252e151461033d57610219565b80629ebb101461021e5780630cc835a31461024757806316eb3814146102735780631ee60337146102b857610219565b3661021957005b600080fd5b34801561022a57600080fd5b5061023361073a565b604080519115158252519081900360200190f35b34801561025357600080fd5b506102716004803603602081101561026a57600080fd5b503561074a565b005b34801561027f57600080fd5b506102a66004803603602081101561029657600080fd5b50356001600160a01b03166107b8565b60408051918252519081900360200190f35b3480156102c457600080fd5b506102cd6107d3565b604080516001600160a01b039092168252519081900360200190f35b3480156102f557600080fd5b506102cd6107e2565b34801561030a57600080fd5b506102a66107f1565b34801561031f57600080fd5b506102cd6107f7565b34801561033457600080fd5b506102a6610806565b34801561034957600080fd5b506102716004803603604081101561036057600080fd5b506001600160a01b038135811691602001351661080c565b34801561038457600080fd5b506102cd610c06565b34801561039957600080fd5b506102a6610c15565b3480156103ae57600080fd5b506102a6600480360360208110156103c557600080fd5b50356001600160a01b0316610c1a565b3480156103e157600080fd5b50610271600480360360408110156103f857600080fd5b506001600160a01b0381358116916020013516610c35565b34801561041c57600080fd5b506102a6610fa6565b34801561043157600080fd5b506102cd610fdc565b34801561044657600080fd5b50610271610feb565b34801561045b57600080fd5b506102a66111f8565b34801561047057600080fd5b5061027161122a565b34801561048557600080fd5b506102716004803603602081101561049c57600080fd5b50356112cc565b3480156104af57600080fd5b50610271600480360360208110156104c657600080fd5b5035611485565b3480156104d957600080fd5b506102cd6114f2565b3480156104ee57600080fd5b506102a6611501565b34801561050357600080fd5b506102cd611507565b34801561051857600080fd5b506102a6611516565b34801561052d57600080fd5b506102716004803603602081101561054457600080fd5b503561151c565b34801561055757600080fd5b506102a66118ef565b34801561056c57600080fd5b506102a66004803603602081101561058357600080fd5b50356001600160a01b03166118f5565b34801561059f57600080fd5b506102a6600480360360208110156105b657600080fd5b50356001600160a01b031661192e565b3480156105d257600080fd5b506102a6600480360360208110156105e957600080fd5b50356001600160a01b031661196f565b34801561060557600080fd5b506102a66004803603602081101561061c57600080fd5b50356001600160a01b031661198a565b34801561063857600080fd5b506102a66119a5565b34801561064d57600080fd5b506102716004803603604081101561066457600080fd5b506001600160a01b03813581169160200135166119ab565b34801561068857600080fd5b506102a66004803603602081101561069f57600080fd5b50356001600160a01b0316611a8b565b3480156106bb57600080fd5b50610271600480360360408110156106d257600080fd5b50803515159060200135611aa6565b610271600480360360208110156106f757600080fd5b50356001600160a01b0316611b2c565b34801561071357600080fd5b506102716004803603602081101561072a57600080fd5b50356001600160a01b0316611ec1565b600054600160a01b900460ff1690565b610752611fb9565b6000546001600160a01b039081169116146107a2576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b633b9aca008111156107b357600080fd5b600655565b6001600160a01b03166000908152600b602052604090205490565b6010546001600160a01b031681565b6011546001600160a01b031681565b60075490565b600e546001600160a01b031681565b60085490565b600054600160a01b900460ff16151560011461082757600080fd5b600054600160a01b900460ff16151560011480156108b95750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b15801561088b57600080fd5b505afa15801561089f573d6000803e3d6000fd5b505050506040513d60208110156108b557600080fd5b5051155b156108c6576108c6610feb565b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561091157600080fd5b505afa158015610925573d6000803e3d6000fd5b505050506040513d602081101561093b57600080fd5b505190508061094957600080fd5b6001546001600160a01b038581169116148061097257506002546001600160a01b038581169116145b61097b57600080fd5b6001600160a01b0384166000908152600460205260408120546109bf90670de0b6b3a7640000906109b390859063ffffffff611fbd16565b9063ffffffff61201d16565b60105460408051637c83ffd160e01b81523060048201526001600160a01b0389811660248301526044820185905291519394506000939190921691637c83ffd1916064808301926020929190829003018186803b158015610a1f57600080fd5b505afa158015610a33573d6000803e3d6000fd5b505050506040513d6020811015610a4957600080fd5b505190506000610a79633b9aca006109b3610a6a868663ffffffff61205f16565b6007549063ffffffff611fbd16565b90506000610a9d82610a91868663ffffffff61205f16565b9063ffffffff61205f16565b6001600160a01b038916600090815260056020526040902054909150610ac9908563ffffffff61205f16565b6001600160a01b0389166000908152600560205260409020558215610aff57600a54610afb908463ffffffff6120a116565b600a555b610b08826120fb565b856001600160a01b03166342966c68866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b4e57600080fd5b505af1158015610b62573d6000803e3d6000fd5b50506040516001600160a01b038a16925083156108fc02915083906000818181858888f19350505050158015610b9c573d6000803e3d6000fd5b50604080516001600160a01b03808a1682528a166020820152808201879052606081018390526080810184905260a0810185905290517fe540b6cc73989eeec2f777710efa155b6cc71a931d80862d5bf911c6109972c39181900360c00190a15050505050505050565b6001546001600160a01b031690565b600390565b6001600160a01b031660009081526004602052604090205490565b600054600160a01b900460ff161515600114610c5057600080fd5b600054600160a01b900460ff1615156001148015610ce25750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b158015610cb457600080fd5b505afa158015610cc8573d6000803e3d6000fd5b505050506040513d6020811015610cde57600080fd5b5051155b15610cef57610cef610feb565b6000610cf96111f8565b905060008111610d0857600080fd5b6001546001600160a01b0384811691161480610d3157506002546001600160a01b038481169116145b610d3a57600080fd5b60008390506000610d5e633b9aca006109b360065486611fbd90919063ffffffff16565b90506000610d72848363ffffffff61205f16565b6010546040805163f8956a6760e01b81523060048201526001600160a01b038a81166024830152604482018590529151939450600093919092169163f8956a67916064808301926020929190829003018186803b158015610dd257600080fd5b505afa158015610de6573d6000803e3d6000fd5b505050506040513d6020811015610dfc57600080fd5b50516001600160a01b03881660009081526004602052604081205491925090610e47906109b3670de0b6b3a7640000610e3b878763ffffffff6120a116565b9063ffffffff611fbd16565b6001600160a01b038916600090815260056020526040902054909150610e85908390610e79908663ffffffff6120a116565b9063ffffffff6120a116565b6001600160a01b0389166000908152600560205260409020558115610ebb57600a54610eb7908363ffffffff61205f16565b600a555b610ec4846120fb565b846001600160a01b03166340c10f1988836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610f2457600080fd5b505af1158015610f38573d6000803e3d6000fd5b5050604080516001600160a01b03808c1682528c166020820152808201859052606081018a90526080810188905260a0810186905290517f73cfafc06c41aefbe585fd047208a7776b2334d2329decfb3d1b1f6ec8c3c41693509081900360c0019150a15050505050505050565b600154600090610fd790610fc2906001600160a01b03166118f5565b600254610e79906001600160a01b03166118f5565b905090565b6002546001600160a01b031690565b600054600160a01b900460ff16151560011461100657600080fd5b61100e61226d565b600f546003546040805163416bd10760e11b815230600482015260248101929092525160009283926001600160a01b03909116916382d7a20e9160448082019261010092909190829003018186803b15801561106957600080fd5b505afa15801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506101008110156110a357600080fd5b5060c081015160e0820151919450925090506001811515141561113a5782516020808501516040808701516060880151608089015160a08a01516001546001600160a01b03908116600081815260048a52878120600254909316808252888220838352600c8c528983208284528a84209484526005909c528983209183529890912060038e90559390935592909155919055935555555b6001546001600160a01b0390811660008181526004602090815260408083205460025490951680845281842054858552600c8452828520548286528386205496865260058552838620549286529483902054600354845198895294880191909152868301949094526060860194909452608085019390935260a084019190915260c083015282151560e0830152517fe7d4328bcca588827789f132837dde7289420fb8512d5c0a706059194fe1dfd1918190036101000190a1505050565b6000610fd761121d611208610fa6565b600a54600954610e799163ffffffff6120a116565b479063ffffffff61205f16565b611232611fb9565b6000546001600160a01b03908116911614611282576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6112d4611fb9565b6000546001600160a01b03908116911614611324576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b600054600160a01b900460ff161561133b57600080fd5b600354811161134957600080fd5b600e5460035460408051631760164960e31b81523060048201526024810192909252516000926001600160a01b03169163bb00b2489160448083019286929190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156113da57600080fd5b81019080805160405193929190846401000000008211156113fa57600080fd5b90830190602082018581111561140f57600080fd5b825186602082028301116401000000008211171561142c57600080fd5b82525081516020918201928201910280838360005b83811015611459578181015183820152602001611441565b5050505091909101604052506020015193505050508181101561147c578061147e565b815b6003555050565b61148d611fb9565b6000546001600160a01b039081169116146114dd576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b629896808111156114ed57600080fd5b600755565b600f546001600160a01b031681565b60035490565b6000546001600160a01b031690565b60065490565b600054600160a01b900460ff16151560011480156115ae5750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b15801561158057600080fd5b505afa158015611594573d6000803e3d6000fd5b505050506040513d60208110156115aa57600080fd5b5051155b156115bb576115bb610feb565b336000908152600d60205260409020548111156115d757600080fd5b60105460408051639486909f60e01b815230600482015260248101849052905160009283928392839283926001600160a01b0390911691639486909f9160448082019260a092909190829003018186803b15801561163457600080fd5b505afa158015611648573d6000803e3d6000fd5b505050506040513d60a081101561165e57600080fd5b5080516020808301516040808501516060860151608090960151601054835163b9c7840b60e01b81523060048201529351969c50939a509098509496509394506000936001600160a01b039091169263b9c7840b92602480840193919291829003018186803b1580156116d057600080fd5b505afa1580156116e4573d6000803e3d6000fd5b505050506040513d60208110156116fa57600080fd5b50519050600061171483610e79898963ffffffff6120a116565b6001546001600160a01b03166000908152600c6020526040902054909150611742908863ffffffff61205f16565b6001546001600160a01b039081166000908152600c6020526040808220939093556002549091168152205461177d908763ffffffff61205f16565b6002546001600160a01b039081166000908152600c60209081526040808320949094556001549092168152600b90915220546117bf908663ffffffff61205f16565b6001546001600160a01b039081166000908152600b602052604080822093909355600254909116815220546117fa908563ffffffff61205f16565b6002546001600160a01b03166000908152600b6020908152604080832093909355338252600d90522054611834908963ffffffff61205f16565b336000908152600d6020526040902055600854611857908963ffffffff61205f16565b60085560095461186d908463ffffffff61205f16565b600955604051339082156108fc029083906000818181858888f1935050505015801561189d573d6000803e3d6000fd5b5060408051338152602081018390528082018a90526060810184905290517f11c75623de2058a663854f734fb8083a261970290f564abc9aa2ac01bfcbe81f9181900360800190a15050505050505050565b60095490565b6001600160a01b0381166000908152600c602090815260408083205460059092528220546119289163ffffffff6120a116565b92915050565b6001600160a01b038116600090815260046020908152604080832054600b90925282205461192891670de0b6b3a7640000916109b39163ffffffff611fbd16565b6001600160a01b03166000908152600d602052604090205490565b6001600160a01b03166000908152600c602052604090205490565b600a5490565b6119b3611fb9565b6000546001600160a01b03908116911614611a03576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b6002546001600160a01b03161580611a2457506001546001600160a01b0316155b611a2d57600080fd5b600280546001600160a01b03199081166001600160a01b03948516179182905560018054909116928416929092179182905590821660009081526004602052604080822092909316815291909120662386f26fc10000908190559055565b6001600160a01b031660009081526005602052604090205490565b611aae611fb9565b6000546001600160a01b03908116911614611afe576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b8015611b0d57611b0d816112cc565b5060008054911515600160a01b0260ff60a01b19909216919091179055565b600054600160a01b900460ff1615156001148015611bbe5750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b158015611b9057600080fd5b505afa158015611ba4573d6000803e3d6000fd5b505050506040513d6020811015611bba57600080fd5b5051155b15611bcb57611bcb610feb565b6000611bd56111f8565b60105460408051630bdc478960e01b81523060048201526024810184905290519293506000928392839283926001600160a01b0390921691630bdc478991604480820192608092909190829003018186803b158015611c3357600080fd5b505afa158015611c47573d6000803e3d6000fd5b505050506040513d6080811015611c5d57600080fd5b508051602080830151604080850151606090950151601054825163b9c7840b60e01b81523060048201529251959a509298509496509394506000936001600160a01b039091169263b9c7840b92602480840193919291829003018186803b158015611cc757600080fd5b505afa158015611cdb573d6000803e3d6000fd5b505050506040513d6020811015611cf157600080fd5b505190506000611d13826109b389670de0b6b3a764000063ffffffff611fbd16565b6001546001600160a01b03166000908152600c6020526040902054909150611d41908763ffffffff6120a116565b6001546001600160a01b039081166000908152600c60205260408082209390935560025490911681522054611d7c908663ffffffff6120a116565b6002546001600160a01b039081166000908152600c60209081526040808320949094556001549092168152600b9091522054611dbe908563ffffffff6120a116565b6001546001600160a01b039081166000908152600b60205260408082209390935560025490911681522054611df9908463ffffffff6120a116565b6002546001600160a01b039081166000908152600b6020908152604080832094909455918b168152600d9091522054611e38908263ffffffff6120a116565b6001600160a01b0389166000908152600d6020526040902055600854611e64908263ffffffff6120a116565b600855604080516001600160a01b038a168152602081018990528082018390526060810184905290517fe1d1934c742278e3794231612340f57d39d41877f0106ef92422f2f86ce07bf49181900360800190a15050505050505050565b611ec9611fb9565b6000546001600160a01b03908116911614611f19576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b6001600160a01b038116611f5e5760405162461bcd60e51b815260040180806020018281038252602681526020018061228c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082611fcc57506000611928565b82820282848281611fd957fe5b04146120165760405162461bcd60e51b81526004018080602001828103825260218152602001806122b26021913960400191505060405180910390fd5b9392505050565b600061201683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612171565b600061201683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612213565b600082820183811015612016576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6011546001600160a01b03166108fc61211b83600263ffffffff61201d16565b6040518115909202916000818181858888f19350505050158015612143573d6000803e3d6000fd5b5061216561215882600263ffffffff61201d16565b829063ffffffff61205f16565b60098054909101905550565b600081836121fd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121c25781810151838201526020016121aa565b50505050905090810190601f1680156121ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161220957fe5b0495945050505050565b600081848411156122655760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156121c25781810151838201526020016121aa565b505050900390565b6040518060c00160405280600690602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122010dd92a068998e4436d525a0067a19469ea659347f3cbebe836dcbeebadc835864736f6c63430006060033
Deployed Bytecode
0x6080604052600436106102125760003560e01c806382496e6f11610118578063b5a71d14116100a0578063cbc7854e1161006f578063cbc7854e14610641578063d344d4991461067c578063daa22f7a146106af578063e3412e3d146106e1578063f2fde38b1461070757610219565b8063b5a71d1414610593578063ba0cb22b146105c6578063c4056493146105f9578063cad29e9c1461062c57610219565b80638da5cb5b116100e75780638da5cb5b146104f75780638f818b901461050c5780639c8f9f2314610521578063a4d7a6cc1461054b578063ac86ea0c1461056057610219565b806382496e6f146104795780638b4cee08146104a35780638b95e335146104cd5780638c3b990b146104e257610219565b80633ba5d96d1161019b57806356aef98c1161016a57806356aef98c146104105780635db214da14610425578063673a7e281461043a5780636c4ea9291461044f578063715018a61461046457610219565b80633ba5d96d1461037857806340490a901461038d57806341976e09146103a257806347f958a7146103d557610219565b806321172e5d116101e257806321172e5d146102e9578063289af0d8146102fe5780633078fff51461031357806333163773146103285780633b252e151461033d57610219565b80629ebb101461021e5780630cc835a31461024757806316eb3814146102735780631ee60337146102b857610219565b3661021957005b600080fd5b34801561022a57600080fd5b5061023361073a565b604080519115158252519081900360200190f35b34801561025357600080fd5b506102716004803603602081101561026a57600080fd5b503561074a565b005b34801561027f57600080fd5b506102a66004803603602081101561029657600080fd5b50356001600160a01b03166107b8565b60408051918252519081900360200190f35b3480156102c457600080fd5b506102cd6107d3565b604080516001600160a01b039092168252519081900360200190f35b3480156102f557600080fd5b506102cd6107e2565b34801561030a57600080fd5b506102a66107f1565b34801561031f57600080fd5b506102cd6107f7565b34801561033457600080fd5b506102a6610806565b34801561034957600080fd5b506102716004803603604081101561036057600080fd5b506001600160a01b038135811691602001351661080c565b34801561038457600080fd5b506102cd610c06565b34801561039957600080fd5b506102a6610c15565b3480156103ae57600080fd5b506102a6600480360360208110156103c557600080fd5b50356001600160a01b0316610c1a565b3480156103e157600080fd5b50610271600480360360408110156103f857600080fd5b506001600160a01b0381358116916020013516610c35565b34801561041c57600080fd5b506102a6610fa6565b34801561043157600080fd5b506102cd610fdc565b34801561044657600080fd5b50610271610feb565b34801561045b57600080fd5b506102a66111f8565b34801561047057600080fd5b5061027161122a565b34801561048557600080fd5b506102716004803603602081101561049c57600080fd5b50356112cc565b3480156104af57600080fd5b50610271600480360360208110156104c657600080fd5b5035611485565b3480156104d957600080fd5b506102cd6114f2565b3480156104ee57600080fd5b506102a6611501565b34801561050357600080fd5b506102cd611507565b34801561051857600080fd5b506102a6611516565b34801561052d57600080fd5b506102716004803603602081101561054457600080fd5b503561151c565b34801561055757600080fd5b506102a66118ef565b34801561056c57600080fd5b506102a66004803603602081101561058357600080fd5b50356001600160a01b03166118f5565b34801561059f57600080fd5b506102a6600480360360208110156105b657600080fd5b50356001600160a01b031661192e565b3480156105d257600080fd5b506102a6600480360360208110156105e957600080fd5b50356001600160a01b031661196f565b34801561060557600080fd5b506102a66004803603602081101561061c57600080fd5b50356001600160a01b031661198a565b34801561063857600080fd5b506102a66119a5565b34801561064d57600080fd5b506102716004803603604081101561066457600080fd5b506001600160a01b03813581169160200135166119ab565b34801561068857600080fd5b506102a66004803603602081101561069f57600080fd5b50356001600160a01b0316611a8b565b3480156106bb57600080fd5b50610271600480360360408110156106d257600080fd5b50803515159060200135611aa6565b610271600480360360208110156106f757600080fd5b50356001600160a01b0316611b2c565b34801561071357600080fd5b506102716004803603602081101561072a57600080fd5b50356001600160a01b0316611ec1565b600054600160a01b900460ff1690565b610752611fb9565b6000546001600160a01b039081169116146107a2576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b633b9aca008111156107b357600080fd5b600655565b6001600160a01b03166000908152600b602052604090205490565b6010546001600160a01b031681565b6011546001600160a01b031681565b60075490565b600e546001600160a01b031681565b60085490565b600054600160a01b900460ff16151560011461082757600080fd5b600054600160a01b900460ff16151560011480156108b95750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b15801561088b57600080fd5b505afa15801561089f573d6000803e3d6000fd5b505050506040513d60208110156108b557600080fd5b5051155b156108c6576108c6610feb565b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561091157600080fd5b505afa158015610925573d6000803e3d6000fd5b505050506040513d602081101561093b57600080fd5b505190508061094957600080fd5b6001546001600160a01b038581169116148061097257506002546001600160a01b038581169116145b61097b57600080fd5b6001600160a01b0384166000908152600460205260408120546109bf90670de0b6b3a7640000906109b390859063ffffffff611fbd16565b9063ffffffff61201d16565b60105460408051637c83ffd160e01b81523060048201526001600160a01b0389811660248301526044820185905291519394506000939190921691637c83ffd1916064808301926020929190829003018186803b158015610a1f57600080fd5b505afa158015610a33573d6000803e3d6000fd5b505050506040513d6020811015610a4957600080fd5b505190506000610a79633b9aca006109b3610a6a868663ffffffff61205f16565b6007549063ffffffff611fbd16565b90506000610a9d82610a91868663ffffffff61205f16565b9063ffffffff61205f16565b6001600160a01b038916600090815260056020526040902054909150610ac9908563ffffffff61205f16565b6001600160a01b0389166000908152600560205260409020558215610aff57600a54610afb908463ffffffff6120a116565b600a555b610b08826120fb565b856001600160a01b03166342966c68866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b4e57600080fd5b505af1158015610b62573d6000803e3d6000fd5b50506040516001600160a01b038a16925083156108fc02915083906000818181858888f19350505050158015610b9c573d6000803e3d6000fd5b50604080516001600160a01b03808a1682528a166020820152808201879052606081018390526080810184905260a0810185905290517fe540b6cc73989eeec2f777710efa155b6cc71a931d80862d5bf911c6109972c39181900360c00190a15050505050505050565b6001546001600160a01b031690565b600390565b6001600160a01b031660009081526004602052604090205490565b600054600160a01b900460ff161515600114610c5057600080fd5b600054600160a01b900460ff1615156001148015610ce25750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b158015610cb457600080fd5b505afa158015610cc8573d6000803e3d6000fd5b505050506040513d6020811015610cde57600080fd5b5051155b15610cef57610cef610feb565b6000610cf96111f8565b905060008111610d0857600080fd5b6001546001600160a01b0384811691161480610d3157506002546001600160a01b038481169116145b610d3a57600080fd5b60008390506000610d5e633b9aca006109b360065486611fbd90919063ffffffff16565b90506000610d72848363ffffffff61205f16565b6010546040805163f8956a6760e01b81523060048201526001600160a01b038a81166024830152604482018590529151939450600093919092169163f8956a67916064808301926020929190829003018186803b158015610dd257600080fd5b505afa158015610de6573d6000803e3d6000fd5b505050506040513d6020811015610dfc57600080fd5b50516001600160a01b03881660009081526004602052604081205491925090610e47906109b3670de0b6b3a7640000610e3b878763ffffffff6120a116565b9063ffffffff611fbd16565b6001600160a01b038916600090815260056020526040902054909150610e85908390610e79908663ffffffff6120a116565b9063ffffffff6120a116565b6001600160a01b0389166000908152600560205260409020558115610ebb57600a54610eb7908363ffffffff61205f16565b600a555b610ec4846120fb565b846001600160a01b03166340c10f1988836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610f2457600080fd5b505af1158015610f38573d6000803e3d6000fd5b5050604080516001600160a01b03808c1682528c166020820152808201859052606081018a90526080810188905260a0810186905290517f73cfafc06c41aefbe585fd047208a7776b2334d2329decfb3d1b1f6ec8c3c41693509081900360c0019150a15050505050505050565b600154600090610fd790610fc2906001600160a01b03166118f5565b600254610e79906001600160a01b03166118f5565b905090565b6002546001600160a01b031690565b600054600160a01b900460ff16151560011461100657600080fd5b61100e61226d565b600f546003546040805163416bd10760e11b815230600482015260248101929092525160009283926001600160a01b03909116916382d7a20e9160448082019261010092909190829003018186803b15801561106957600080fd5b505afa15801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506101008110156110a357600080fd5b5060c081015160e0820151919450925090506001811515141561113a5782516020808501516040808701516060880151608089015160a08a01516001546001600160a01b03908116600081815260048a52878120600254909316808252888220838352600c8c528983208284528a84209484526005909c528983209183529890912060038e90559390935592909155919055935555555b6001546001600160a01b0390811660008181526004602090815260408083205460025490951680845281842054858552600c8452828520548286528386205496865260058552838620549286529483902054600354845198895294880191909152868301949094526060860194909452608085019390935260a084019190915260c083015282151560e0830152517fe7d4328bcca588827789f132837dde7289420fb8512d5c0a706059194fe1dfd1918190036101000190a1505050565b6000610fd761121d611208610fa6565b600a54600954610e799163ffffffff6120a116565b479063ffffffff61205f16565b611232611fb9565b6000546001600160a01b03908116911614611282576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6112d4611fb9565b6000546001600160a01b03908116911614611324576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b600054600160a01b900460ff161561133b57600080fd5b600354811161134957600080fd5b600e5460035460408051631760164960e31b81523060048201526024810192909252516000926001600160a01b03169163bb00b2489160448083019286929190829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156113da57600080fd5b81019080805160405193929190846401000000008211156113fa57600080fd5b90830190602082018581111561140f57600080fd5b825186602082028301116401000000008211171561142c57600080fd5b82525081516020918201928201910280838360005b83811015611459578181015183820152602001611441565b5050505091909101604052506020015193505050508181101561147c578061147e565b815b6003555050565b61148d611fb9565b6000546001600160a01b039081169116146114dd576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b629896808111156114ed57600080fd5b600755565b600f546001600160a01b031681565b60035490565b6000546001600160a01b031690565b60065490565b600054600160a01b900460ff16151560011480156115ae5750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b15801561158057600080fd5b505afa158015611594573d6000803e3d6000fd5b505050506040513d60208110156115aa57600080fd5b5051155b156115bb576115bb610feb565b336000908152600d60205260409020548111156115d757600080fd5b60105460408051639486909f60e01b815230600482015260248101849052905160009283928392839283926001600160a01b0390911691639486909f9160448082019260a092909190829003018186803b15801561163457600080fd5b505afa158015611648573d6000803e3d6000fd5b505050506040513d60a081101561165e57600080fd5b5080516020808301516040808501516060860151608090960151601054835163b9c7840b60e01b81523060048201529351969c50939a509098509496509394506000936001600160a01b039091169263b9c7840b92602480840193919291829003018186803b1580156116d057600080fd5b505afa1580156116e4573d6000803e3d6000fd5b505050506040513d60208110156116fa57600080fd5b50519050600061171483610e79898963ffffffff6120a116565b6001546001600160a01b03166000908152600c6020526040902054909150611742908863ffffffff61205f16565b6001546001600160a01b039081166000908152600c6020526040808220939093556002549091168152205461177d908763ffffffff61205f16565b6002546001600160a01b039081166000908152600c60209081526040808320949094556001549092168152600b90915220546117bf908663ffffffff61205f16565b6001546001600160a01b039081166000908152600b602052604080822093909355600254909116815220546117fa908563ffffffff61205f16565b6002546001600160a01b03166000908152600b6020908152604080832093909355338252600d90522054611834908963ffffffff61205f16565b336000908152600d6020526040902055600854611857908963ffffffff61205f16565b60085560095461186d908463ffffffff61205f16565b600955604051339082156108fc029083906000818181858888f1935050505015801561189d573d6000803e3d6000fd5b5060408051338152602081018390528082018a90526060810184905290517f11c75623de2058a663854f734fb8083a261970290f564abc9aa2ac01bfcbe81f9181900360800190a15050505050505050565b60095490565b6001600160a01b0381166000908152600c602090815260408083205460059092528220546119289163ffffffff6120a116565b92915050565b6001600160a01b038116600090815260046020908152604080832054600b90925282205461192891670de0b6b3a7640000916109b39163ffffffff611fbd16565b6001600160a01b03166000908152600d602052604090205490565b6001600160a01b03166000908152600c602052604090205490565b600a5490565b6119b3611fb9565b6000546001600160a01b03908116911614611a03576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b6002546001600160a01b03161580611a2457506001546001600160a01b0316155b611a2d57600080fd5b600280546001600160a01b03199081166001600160a01b03948516179182905560018054909116928416929092179182905590821660009081526004602052604080822092909316815291909120662386f26fc10000908190559055565b6001600160a01b031660009081526005602052604090205490565b611aae611fb9565b6000546001600160a01b03908116911614611afe576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b8015611b0d57611b0d816112cc565b5060008054911515600160a01b0260ff60a01b19909216919091179055565b600054600160a01b900460ff1615156001148015611bbe5750600e5460408051632c84088960e11b815230600482015290516001600160a01b0390921691635908111291602480820192602092909190829003018186803b158015611b9057600080fd5b505afa158015611ba4573d6000803e3d6000fd5b505050506040513d6020811015611bba57600080fd5b5051155b15611bcb57611bcb610feb565b6000611bd56111f8565b60105460408051630bdc478960e01b81523060048201526024810184905290519293506000928392839283926001600160a01b0390921691630bdc478991604480820192608092909190829003018186803b158015611c3357600080fd5b505afa158015611c47573d6000803e3d6000fd5b505050506040513d6080811015611c5d57600080fd5b508051602080830151604080850151606090950151601054825163b9c7840b60e01b81523060048201529251959a509298509496509394506000936001600160a01b039091169263b9c7840b92602480840193919291829003018186803b158015611cc757600080fd5b505afa158015611cdb573d6000803e3d6000fd5b505050506040513d6020811015611cf157600080fd5b505190506000611d13826109b389670de0b6b3a764000063ffffffff611fbd16565b6001546001600160a01b03166000908152600c6020526040902054909150611d41908763ffffffff6120a116565b6001546001600160a01b039081166000908152600c60205260408082209390935560025490911681522054611d7c908663ffffffff6120a116565b6002546001600160a01b039081166000908152600c60209081526040808320949094556001549092168152600b9091522054611dbe908563ffffffff6120a116565b6001546001600160a01b039081166000908152600b60205260408082209390935560025490911681522054611df9908463ffffffff6120a116565b6002546001600160a01b039081166000908152600b6020908152604080832094909455918b168152600d9091522054611e38908263ffffffff6120a116565b6001600160a01b0389166000908152600d6020526040902055600854611e64908263ffffffff6120a116565b600855604080516001600160a01b038a168152602081018990528082018390526060810184905290517fe1d1934c742278e3794231612340f57d39d41877f0106ef92422f2f86ce07bf49181900360800190a15050505050505050565b611ec9611fb9565b6000546001600160a01b03908116911614611f19576040805162461bcd60e51b815260206004820181905260248201526000805160206122d3833981519152604482015290519081900360640190fd5b6001600160a01b038116611f5e5760405162461bcd60e51b815260040180806020018281038252602681526020018061228c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082611fcc57506000611928565b82820282848281611fd957fe5b04146120165760405162461bcd60e51b81526004018080602001828103825260218152602001806122b26021913960400191505060405180910390fd5b9392505050565b600061201683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612171565b600061201683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612213565b600082820183811015612016576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6011546001600160a01b03166108fc61211b83600263ffffffff61201d16565b6040518115909202916000818181858888f19350505050158015612143573d6000803e3d6000fd5b5061216561215882600263ffffffff61201d16565b829063ffffffff61205f16565b60098054909101905550565b600081836121fd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121c25781810151838201526020016121aa565b50505050905090810190601f1680156121ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161220957fe5b0495945050505050565b600081848411156122655760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156121c25781810151838201526020016121aa565b505050900390565b6040518060c00160405280600690602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122010dd92a068998e4436d525a0067a19469ea659347f3cbebe836dcbeebadc835864736f6c63430006060033
Deployed Bytecode Sourcemap
388:12500:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;9858:64:5;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9858:64:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;12619:110;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12619:110:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12619:110:5;;:::i;:::-;;10791:93;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10791:93:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10791:93:5;-1:-1:-1;;;;;10791:93:5;;:::i;:::-;;;;;;;;;;;;;;;;2811:39;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2811:39:5;;;:::i;:::-;;;;-1:-1:-1;;;;;2811:39:5;;;;;;;;;;;;;;2854:38;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2854:38:5;;;:::i;10477:69::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10477:69:5;;;:::i;2708:48::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2708:48:5;;;:::i;10549:83::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10549:83:5;;;:::i;4825:791::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4825:791:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;4825:791:5;;;;;;;;;;:::i;10003:68::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10003:68:5;;;:::i;9925:75::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9925:75:5;;;:::i;10229:85::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10229:85:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10229:85:5;-1:-1:-1;;;;;10229:85:5;;:::i;3587:712::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3587:712:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;3587:712:5;;;;;;;;;;:::i;11086:120::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11086:120:5;;;:::i;10074:68::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10074:68:5;;;:::i;8617:790::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8617:790:5;;;:::i;11474:151::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11474:151:5;;;:::i;922:145:2:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;922:145:2;;;:::i;12291:292:5:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12291:292:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12291:292:5;;:::i;12773:112::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12773:112:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12773:112:5;;:::i;2760:47::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2760:47:5;;;:::i;10145:81::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10145:81:5;;;:::i;717:77:2:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;717:77:2;;;:::i;10407:67:5:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10407:67:5;;;:::i;7375:948::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7375:948:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7375:948:5;;:::i;10635:69::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10635:69:5;;;:::i;11210:122::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11210:122:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11210:122:5;-1:-1:-1;;;;;11210:122:5;;:::i;11335:136::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11335:136:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11335:136:5;-1:-1:-1;;;;;11335:136:5;;:::i;10983:99::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10983:99:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10983:99:5;-1:-1:-1;;;;;10983:99:5;;:::i;10887:93::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10887:93:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10887:93:5;-1:-1:-1;;;;;10887:93:5;;:::i;10707:81::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10707:81:5;;;:::i;11860:273::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11860:273:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;11860:273:5;;;;;;;;;;:::i;10317:87::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10317:87:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10317:87:5;-1:-1:-1;;;;;10317:87:5;;:::i;12136:152::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12136:152:5;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12136:152:5;;;;;;;;;:::i;6101:849::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6101:849:5;-1:-1:-1;;;;;6101:849:5;;:::i;1073:240:2:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1073:240:2;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1073:240:2;-1:-1:-1;;;;;1073:240:2;;:::i;9858:64:5:-;9899:4;9913:6;-1:-1:-1;;;9913:6:5;;;;;9858:64::o;12619:110::-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;12697:5:5::1;12687:6;:15;;12679:24;;12:1:-1;9::::0;2:12:::1;12679:24:5;12709:6;:15:::0;12619:110::o;10791:93::-;-1:-1:-1;;;;;10865:16:5;10848:7;10865:16;;;:9;:16;;;;;;;10791:93::o;2811:39::-;;;-1:-1:-1;;;;;2811:39:5;;:::o;2854:38::-;;;-1:-1:-1;;;;;2854:38:5;;:::o;10477:69::-;10536:7;;10477:69;:::o;2708:48::-;;;-1:-1:-1;;;;;2708:48:5;;:::o;10549:83::-;10615:14;;10549:83;:::o;4825:791::-;1832:6;;-1:-1:-1;;;1832:6:5;;;;:14;;1842:4;1832:14;1824:23;;12:1:-1;9;2:12;1824:23:5;1856:6;;-1:-1:-1;;;1856:6:5;;;;:14;;1866:4;1856:14;:62;;;;-1:-1:-1;1875:15:5;;:43;;;-1:-1:-1;;;1875:43:5;;1912:4;1875:43;;;;;;-1:-1:-1;;;;;1875:15:5;;;;:28;;:43;;;;;;;;;;;;;;;:15;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;1875:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1875:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1875:43:5;1874:44;1856:62;1853:95;;;1928:13;:11;:13::i;:::-;4980:29:::1;::::0;;-1:-1:-1;;;4980:29:5;;5003:4:::1;4980:29;::::0;::::1;::::0;;;4945:5;;4924:11:::1;::::0;-1:-1:-1;;;;;4980:14:5;::::1;::::0;::::1;::::0;:29;;;;;::::1;::::0;;;;;;;;:14;:29;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;4980:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4980:29:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;4980:29:5;;-1:-1:-1;5023:16:5;5015:25:::1;;12:1:-1;9::::0;2:12:::1;5015:25:5;5063:4;::::0;-1:-1:-1;;;;;5054:13:5;;::::1;5063:4:::0;::::1;5054:13;::::0;:30:::1;;-1:-1:-1::0;5080:4:5::1;::::0;-1:-1:-1;;;;;5071:13:5;;::::1;5080:4:::0;::::1;5071:13;5054:30;5046:39;;12:1:-1;9::::0;2:12:::1;5046:39:5;-1:-1:-1::0;;;;;5126:12:5;::::1;5091:15;5126:12:::0;;;:5:::1;:12;::::0;;;;;5109:42:::1;::::0;5144:6:::1;::::0;5109:30:::1;::::0;:12;;:30:::1;:16;:30;:::i;:::-;:34:::0;:42:::1;:34;:42;:::i;:::-;5175:11;::::0;:53:::1;::::0;;-1:-1:-1;;;5175:53:5;;5206:4:::1;5175:53;::::0;::::1;::::0;-1:-1:-1;;;;;5175:53:5;;::::1;::::0;;;;;;;;;;;;5091:60;;-1:-1:-1;5157:15:5::1;::::0;5175:11;;;::::1;::::0;:22:::1;::::0;:53;;;;;::::1;::::0;;;;;;;;:11;:53;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;5175:53:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5175:53:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;5175:53:5;;-1:-1:-1;5234:12:5::1;5249:44;5287:5;5249:33;5261:20;:7:::0;5175:53;5261:20:::1;:11;:20;:::i;:::-;5249:7;::::0;;:33:::1;:11;:33;:::i;:44::-;5234:59:::0;-1:-1:-1;5299:14:5::1;5316:30;5234:59:::0;5316:20:::1;:7:::0;5328;5316:20:::1;:11;:20;:::i;:::-;:24:::0;:30:::1;:24;:30;:::i;:::-;-1:-1:-1::0;;;;;5368:13:5;::::1;;::::0;;;:6:::1;:13;::::0;;;;;5299:47;;-1:-1:-1;5368:26:5::1;::::0;5386:7;5368:26:::1;:17;:26;:::i;:::-;-1:-1:-1::0;;;;;5352:13:5;::::1;;::::0;;;:6:::1;:13;::::0;;;;:42;5403:12;;5400:59:::1;;5433:13;::::0;:26:::1;::::0;5451:7;5433:26:::1;:17;:26;:::i;:::-;5417:13;:42:::0;5400:59:::1;5465:13;5473:4;5465:7;:13::i;:::-;5484:4;-1:-1:-1::0;;;;;5484:9:5::1;;5494:12;5484:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5484:23:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;5513:24:5::1;::::0;-1:-1:-1;;;;;5513:16:5;::::1;::::0;-1:-1:-1;5513:24:5;::::1;;;::::0;-1:-1:-1;5530:6:5;;5513:24:::1;::::0;;;5530:6;5513:16;:24;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;5549:62:5::1;::::0;;-1:-1:-1;;;;;5549:62:5;;::::1;::::0;;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;1953:1;;;;;;4825:791:::0;;:::o;10003:68::-;10064:4;;-1:-1:-1;;;;;10064:4:5;10003:68;:::o;9925:75::-;2235:1;9925:75;:::o;10229:85::-;-1:-1:-1;;;;;10299:12:5;10282:7;10299:12;;;:5;:12;;;;;;;10229:85::o;3587:712::-;1832:6;;-1:-1:-1;;;1832:6:5;;;;:14;;1842:4;1832:14;1824:23;;12:1:-1;9;2:12;1824:23:5;1856:6;;-1:-1:-1;;;1856:6:5;;;;:14;;1866:4;1856:14;:62;;;;-1:-1:-1;1875:15:5;;:43;;;-1:-1:-1;;;1875:43:5;;1912:4;1875:43;;;;;;-1:-1:-1;;;;;1875:15:5;;;;:28;;:43;;;;;;;;;;;;;;;:15;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;1875:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1875:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1875:43:5;1874:44;1856:62;1853:95;;;1928:13;:11;:13::i;:::-;3677::::1;3693:18;:16;:18::i;:::-;3677:34;;3733:1;3725:5;:9;3717:18;;12:1:-1;9::::0;2:12:::1;3717:18:5;3758:4;::::0;-1:-1:-1;;;;;3749:13:5;;::::1;3758:4:::0;::::1;3749:13;::::0;:30:::1;;-1:-1:-1::0;3775:4:5::1;::::0;-1:-1:-1;;;;;3766:13:5;;::::1;3775:4:::0;::::1;3766:13;3749:30;3741:39;;12:1:-1;9::::0;2:12:::1;3741:39:5;3786:11;3807:5;3786:27;;3819:12;3834:28;3856:5;3834:17;3844:6;;3834:5;:9;;:17;;;;:::i;:28::-;3819:43:::0;-1:-1:-1;3868:14:5::1;3885:15;:5:::0;3819:43;3885:15:::1;:9;:15;:::i;:::-;3922:11;::::0;:50:::1;::::0;;-1:-1:-1;;;3922:50:5;;3951:4:::1;3922:50;::::0;::::1;::::0;-1:-1:-1;;;;;3922:50:5;;::::1;::::0;;;;;;;;;;;;3868:32;;-1:-1:-1;3906:13:5::1;::::0;3922:11;;;::::1;::::0;:20:::1;::::0;:50;;;;;::::1;::::0;;;;;;;;:11;:50;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;3922:50:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3922:50:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3922:50:5;-1:-1:-1;;;;;4035:12:5;::::1;3978:20;4035:12:::0;;;:5:::1;3922:50;4035:12:::0;;;;;3922:50;;-1:-1:-1;3978:20:5;4001:47:::1;::::0;:29:::1;4023:6;4001:17;:6:::0;3922:50;4001:17:::1;:10;:17;:::i;:::-;:21:::0;:29:::1;:21;:29;:::i;:47::-;-1:-1:-1::0;;;;;4070:13:5;::::1;;::::0;;;:6:::1;:13;::::0;;;;;3978:70;;-1:-1:-1;4070:36:5::1;::::0;4100:5;;4070:25:::1;::::0;4088:6;4070:25:::1;:17;:25;:::i;:::-;:29:::0;:36:::1;:29;:36;:::i;:::-;-1:-1:-1::0;;;;;4054:13:5;::::1;;::::0;;;:6:::1;:13;::::0;;;;:52;4115:10;;4112:55:::1;;4143:13;::::0;:24:::1;::::0;4161:5;4143:24:::1;:17;:24;:::i;:::-;4127:13;:40:::0;4112:55:::1;4173:13;4181:4;4173:7;:13::i;:::-;4192:4;-1:-1:-1::0;;;;;4192:9:5::1;;4202:7;4211:12;4192:32;;;;;;;;;;;;;-1:-1:-1::0;;;;;4192:32:5::1;-1:-1:-1::0;;;;;4192:32:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;4192:32:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;4236:58:5::1;::::0;;-1:-1:-1;;;;;4236:58:5;;::::1;::::0;;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;-1:-1:-1;4236:58:5;;;;;;;-1:-1:-1;4236:58:5::1;1953:1;;;;;;3587:712:::0;;:::o;11086:120::-;11194:4;;11132:7;;11154:46;;11179:20;;-1:-1:-1;;;;;11194:4:5;11179:14;:20::i;:::-;11169:4;;11154:20;;-1:-1:-1;;;;;11169:4:5;11154:14;:20::i;:46::-;11147:54;;11086:120;:::o;10074:68::-;10135:4;;-1:-1:-1;;;;;10135:4:5;10074:68;:::o;8617:790::-;8665:6;;-1:-1:-1;;;8665:6:5;;;;:14;;8675:4;8665:14;8657:23;;12:1:-1;9;2:12;8657:23:5;8694:28;;:::i;:::-;8774:15;;8821:13;;8774:61;;;-1:-1:-1;;;8774:61:5;;8814:4;8774:61;;;;;;;;;;;;8730:15;;;;-1:-1:-1;;;;;8774:15:5;;;;:31;;:61;;;;;:15;;:61;;;;;;;;:15;:61;;;2:2:-1;;;;27:1;24;17:12;2:2;8774:61:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8774:61:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15:3;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;8774:61:5;;;;;;;;;;-1:-1:-1;8774:61:5;-1:-1:-1;8774:61:5;-1:-1:-1;8855:4:5;8844:15;;;;8841:374;;;9055:13;;;9078;;;;9101;;;;;9124;;;;9147;;;;9170;;;;9089:1;8885:4;-1:-1:-1;;;;;8885:4:5;;;9066:1;8879:11;;;9158:1;8879:11;;;;;9112:1;8906:4;;;;8900:11;;;;;;8921:15;;;:9;:15;;;;;8946;;;;;;8971:12;;;9181:1;8971:12;;;;;;8993;;;;;;;9135:1;8869:339;;;;;;;;;;;;;;;;;;8841:374;9250:4;;-1:-1:-1;;;;;9250:4:5;;;9244:11;;;;:5;:11;;;;;;;;;9269:4;;;;;9263:11;;;;;;;9282:15;;;:9;:15;;;;;;9305;;;;;;;9328:12;;;:6;:12;;;;;;9348;;;;;;;;9368:13;;9225:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9250:4;9225:177;;;8617:790;;;:::o;11474:151::-;11522:7;11544:75;11570:48;11601:16;:14;:16::i;:::-;11582:13;;11570:7;;:26;;;:11;:26;:::i;:48::-;11544:21;;:75;:25;:75;:::i;922:145:2:-;849:12;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;1028:1:::1;1012:6:::0;;991:40:::1;::::0;-1:-1:-1;;;;;1012:6:2;;::::1;::::0;991:40:::1;::::0;1028:1;;991:40:::1;1058:1;1041:19:::0;;-1:-1:-1;;;;;;1041:19:2::1;::::0;;922:145::o;12291:292:5:-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;12365:6:5::1;::::0;-1:-1:-1;;;12365:6:5;::::1;;;:15;12357:24;;12:1:-1;9::::0;2:12:::1;12357:24:5;12405:13;;12395:7;:23;12387:32;;12:1:-1;9::::0;2:12:::1;12387:32:5;12452:15;::::0;12496:13:::1;::::0;12452:58:::1;::::0;;-1:-1:-1;;;12452:58:5;;12489:4:::1;12452:58;::::0;::::1;::::0;;;;;;;;;12429:19:::1;::::0;-1:-1:-1;;;;;12452:15:5::1;::::0;:28:::1;::::0;:58;;;;;12429:19;;12452:58;;;;;;;:15;:58;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;12452:58:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12452:58:5;;;;;;39:16:-1;36:1;17:17;2:54;101:4;12452:58:5;80:15:-1::0;;::::1;-1:-1:::0;;76:31:::1;65:43:::0;::::1;120:4;113:20:::0;;;7:11;::::1;4:2;;;31:1;28::::0;21:12:::1;4:2;12452:58:5;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41::::0;34:12:::1;8:2;62:21:::0;;::::1;::::0;123:4:::1;114:14:::0;::::1;138:31:::0;;::::1;135:2;;;182:1;179::::0;172:12:::1;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359::::0;352:12:::1;230:2;373:25:::0;;-1:-1;12452:58:5;;421:4:-1::1;412:14:::0;;::::1;::::0;12452:58:5;::::1;::::0;::::1;::::0;412:14:-1;12452:58:5;23:1:-1::1;8:100;33:3;30:1;27:10;8:100;;;90:11:::0;;::::1;84:18:::0;71:11;;::::1;64:39:::0;52:2:::1;45:10;8:100;;;-1:-1:::0;;;;12452:58:5;;;::::1;;::::0;-1:-1:-1;12452:58:5::1;;::::0;;-1:-1:-1;;;;12532:22:5;;::::1;;:46;;12567:11;12532:46;;;12557:7;12532:46;12516:13;:62:::0;-1:-1:-1;;12291:292:5:o;12773:112::-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;12852:5:5::1;12842:6;:15;;12834:24;;12:1:-1;9::::0;2:12:::1;12834:24:5;12864:7;:16:::0;12773:112::o;2760:47::-;;;-1:-1:-1;;;;;2760:47:5;;:::o;10145:81::-;10210:13;;10145:81;:::o;717:77:2:-;755:7;781:6;-1:-1:-1;;;;;781:6:2;717:77;:::o;10407:67:5:-;10465:6;;10407:67;:::o;7375:948::-;1998:6;;-1:-1:-1;;;1998:6:5;;;;:14;;2008:4;1998:14;:62;;;;-1:-1:-1;2017:15:5;;:43;;;-1:-1:-1;;;2017:43:5;;2054:4;2017:43;;;;;;-1:-1:-1;;;;;2017:15:5;;;;:28;;:43;;;;;;;;;;;;;;;:15;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;2017:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2017:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2017:43:5;2016:44;1998:62;1995:95;;;2070:13;:11;:13::i;:::-;7491:10:::1;7480:22;::::0;;;:10:::1;:22;::::0;;;;;7470:32;::::1;;7462:41;;12:1:-1;9::::0;2:12:::1;7462:41:5;7646:11;::::0;:53:::1;::::0;;-1:-1:-1;;;7646:53:5;;7685:4:::1;7646:53;::::0;::::1;::::0;;;;;;;;;7517:18:::1;::::0;;;;;;;;;-1:-1:-1;;;;;7646:11:5;;::::1;::::0;:30:::1;::::0;:53;;;;;::::1;::::0;;;;;;;;;:11;:53;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7646:53:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7646:53:5;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29::::0;22:12:::1;4:2;-1:-1:::0;7646:53:5;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;7726:11:::1;::::0;:40;;-1:-1:-1;;;7726:40:5;;7760:4:::1;7726:40;::::0;::::1;::::0;;;7646:53;;-1:-1:-1;7646:53:5;;-1:-1:-1;7646:53:5;;-1:-1:-1;7646:53:5;;-1:-1:-1;7646:53:5;;-1:-1:-1;7705:18:5::1;::::0;-1:-1:-1;;;;;7726:11:5;;::::1;::::0;:25:::1;::::0;:40;;;;;7646:53;;7726:40;;;;;;:11;:40;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7726:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;7726:40:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;7726:40:5;;-1:-1:-1;7772:20:5::1;7795:40;7826:8:::0;7795:26:::1;:10:::0;7810;7795:26:::1;:14;:26;:::i;:40::-;7869:4;::::0;-1:-1:-1;;;;;7869:4:5::1;7859:15;::::0;;;:9:::1;:15;::::0;;;;;7772:63;;-1:-1:-1;7859:31:5::1;::::0;7879:10;7859:31:::1;:19;:31;:::i;:::-;7851:4;::::0;-1:-1:-1;;;;;7851:4:5;;::::1;7841:15;::::0;;;:9:::1;:15;::::0;;;;;:49;;;;7924:4:::1;::::0;;;::::1;7914:15:::0;;;;:31:::1;::::0;7934:10;7914:31:::1;:19;:31;:::i;:::-;7906:4;::::0;-1:-1:-1;;;;;7906:4:5;;::::1;7896:15;::::0;;;:9:::1;:15;::::0;;;;;;;:49;;;;7906:4;7979;;;::::1;7969:15:::0;;:9:::1;:15:::0;;;;;:31:::1;::::0;7989:10;7969:31:::1;:19;:31;:::i;:::-;7961:4;::::0;-1:-1:-1;;;;;7961:4:5;;::::1;7951:15;::::0;;;:9:::1;:15;::::0;;;;;:49;;;;8034:4:::1;::::0;;;::::1;8024:15:::0;;;;:31:::1;::::0;8044:10;8024:31:::1;:19;:31;:::i;:::-;8016:4;::::0;-1:-1:-1;;;;;8016:4:5::1;8006:15;::::0;;;:9:::1;:15;::::0;;;;;;;:49;;;;8097:10:::1;8086:22:::0;;:10:::1;:22:::0;;;;:34:::1;::::0;8113:6;8086:34:::1;:26;:34;:::i;:::-;8072:10;8061:22;::::0;;;:10:::1;:22;::::0;;;;:59;8143:14:::1;::::0;:26:::1;::::0;8162:6;8143:26:::1;:18;:26;:::i;:::-;8126:14;:43:::0;8185:7:::1;::::0;:21:::1;::::0;8197:8;8185:21:::1;:11;:21;:::i;:::-;8175:7;:31:::0;8212:33:::1;::::0;:10:::1;::::0;:33;::::1;;;::::0;8232:12;;8212:33:::1;::::0;;;8232:12;8212:10;:33;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;8257:61:5::1;::::0;;8273:10:::1;8257:61:::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;2095:1;;;;;;;7375:948:::0;:::o;10635:69::-;10694:7;;10635:69;:::o;11210:122::-;-1:-1:-1;;;;;11309:16:5;;11269:7;11309:16;;;:9;:16;;;;;;;;;11291:6;:13;;;;;;:35;;;:17;:35;:::i;:::-;11284:43;11210:122;-1:-1:-1;;11210:122:5:o;11335:136::-;-1:-1:-1;;;;;11440:12:5;;11397:7;11440:12;;;:5;:12;;;;;;;;;11419:9;:16;;;;;;:46;;11458:6;;11419:34;;;:20;:34;:::i;10983:99::-;-1:-1:-1;;;;;11060:19:5;11043:7;11060:19;;;:10;:19;;;;;;;10983:99::o;10887:93::-;-1:-1:-1;;;;;10961:16:5;10944:7;10961:16;;;:9;:16;;;;;;;10887:93::o;10707:81::-;10772:13;;10707:81;:::o;11860:273::-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;11954:4:5::1;::::0;-1:-1:-1;;;;;11954:4:5::1;:18:::0;;:40:::1;;-1:-1:-1::0;11976:4:5::1;::::0;-1:-1:-1;;;;;11976:4:5::1;:18:::0;11954:40:::1;11946:49;;12:1:-1;9::::0;2:12:::1;11946:49:5;12008:4;12001:41:::0;;-1:-1:-1;;;;;;12001:41:5;;::::1;-1:-1:-1::0;;;;;12001:41:5;;::::1;;::::0;;;;-1:-1:-1;12001:41:5;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;12090:4;;::::1;-1:-1:-1::0;12084:11:5;;;:5:::1;:11;::::0;;;;;12103:4;;;::::1;12097:11:::0;;;;;;12113:6:::1;12083:45:::0;;;;;;11860:273::o;10317:87::-;-1:-1:-1;;;;;10388:13:5;10371:7;10388:13;;;:6;:13;;;;;;;10317:87::o;12136:152::-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;12212:12:5;;12209:55:::1;;12234:23;12249:7;12234:14;:23::i;:::-;-1:-1:-1::0;12269:6:5::1;:14:::0;;;::::1;;-1:-1:-1::0;;;12269:14:5::1;-1:-1:-1::0;;;;12269:14:5;;::::1;::::0;;;::::1;::::0;;12136:152::o;6101:849::-;1998:6;;-1:-1:-1;;;1998:6:5;;;;:14;;2008:4;1998:14;:62;;;;-1:-1:-1;2017:15:5;;:43;;;-1:-1:-1;;;2017:43:5;;2054:4;2017:43;;;;;;-1:-1:-1;;;;;2017:15:5;;;;:28;;:43;;;;;;;;;;;;;;;:15;:43;;;2:2:-1;;;;27:1;24;17:12;2:2;2017:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2017:43:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2017:43:5;2016:44;1998:62;1995:95;;;2070:13;:11;:13::i;:::-;6196::::1;6212:18;:16;:18::i;:::-;6349:11;::::0;:49:::1;::::0;;-1:-1:-1;;;6349:49:5;;6385:4:::1;6349:49;::::0;::::1;::::0;;;;;;;;;6196:34;;-1:-1:-1;6244:18:5::1;::::0;;;;;;;-1:-1:-1;;;;;6349:11:5;;::::1;::::0;:27:::1;::::0;:49;;;;;::::1;::::0;;;;;;;;;:11;:49;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;6349:49:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;6349:49:5;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29::::0;22:12:::1;4:2;-1:-1:::0;6349:49:5;;::::1;::::0;;::::1;::::0;;;;;;;;;;;6425:11:::1;::::0;:40;;-1:-1:-1;;;6425:40:5;;6459:4:::1;6425:40;::::0;::::1;::::0;;;6349:49;;-1:-1:-1;6349:49:5;;-1:-1:-1;6349:49:5;;-1:-1:-1;6349:49:5;;-1:-1:-1;6404:18:5::1;::::0;-1:-1:-1;;;;;6425:11:5;;::::1;::::0;:25:::1;::::0;:40;;;;;6349:49;;6425:40;;;;;;:11;:40;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;6425:40:5;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;6425:40:5;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;6425:40:5;;-1:-1:-1;6471:23:5::1;6497:33;6425:40:::0;6497:17:::1;:5:::0;6507:6:::1;6497:17;:9;:17;:::i;:33::-;6564:4;::::0;-1:-1:-1;;;;;6564:4:5::1;6554:15;::::0;;;:9:::1;:15;::::0;;;;;6471:59;;-1:-1:-1;6554:31:5::1;::::0;6574:10;6554:31:::1;:19;:31;:::i;:::-;6546:4;::::0;-1:-1:-1;;;;;6546:4:5;;::::1;6536:15;::::0;;;:9:::1;:15;::::0;;;;;:49;;;;6619:4:::1;::::0;;;::::1;6609:15:::0;;;;:31:::1;::::0;6629:10;6609:31:::1;:19;:31;:::i;:::-;6601:4;::::0;-1:-1:-1;;;;;6601:4:5;;::::1;6591:15;::::0;;;:9:::1;:15;::::0;;;;;;;:49;;;;6601:4;6674;;;::::1;6664:15:::0;;:9:::1;:15:::0;;;;;:31:::1;::::0;6684:10;6664:31:::1;:19;:31;:::i;:::-;6656:4;::::0;-1:-1:-1;;;;;6656:4:5;;::::1;6646:15;::::0;;;:9:::1;:15;::::0;;;;;:49;;;;6729:4:::1;::::0;;;::::1;6719:15:::0;;;;:31:::1;::::0;6739:10;6719:31:::1;:19;:31;:::i;:::-;6711:4;::::0;-1:-1:-1;;;;;6711:4:5;;::::1;6701:15;::::0;;;:9:::1;:15;::::0;;;;;;;:49;;;;6778:19;;::::1;::::0;;:10:::1;:19:::0;;;;;:40:::1;::::0;6802:15;6778:40:::1;:23;:40;:::i;:::-;-1:-1:-1::0;;;;;6756:19:5;::::1;;::::0;;;:10:::1;:19;::::0;;;;:62;6841:14:::1;::::0;:35:::1;::::0;6860:15;6841:35:::1;:18;:35;:::i;:::-;6824:14;:52:::0;6888:57:::1;::::0;;-1:-1:-1;;;;;6888:57:5;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;2095:1;;;;;;;6101:849:::0;:::o;1073:240:2:-;849:12;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;1161:22:2;::::1;1153:73;;;;-1:-1:-1::0;;;1153:73:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1262:6;::::0;;1241:38:::1;::::0;-1:-1:-1;;;;;1241:38:2;;::::1;::::0;1262:6;::::1;::::0;1241:38:::1;::::0;::::1;1289:6;:17:::0;;-1:-1:-1;;;;;;1289:17:2::1;-1:-1:-1::0;;;;;1289:17:2;;;::::1;::::0;;;::::1;::::0;;1073:240::o;57:104::-;144:10;57:104;:::o;2180:459:1:-;2238:7;2479:6;2475:45;;-1:-1:-1;2508:1:1;2501:8;;2475:45;2542:5;;;2546:1;2542;:5;:1;2565:5;;;;;:10;2557:56;;;;-1:-1:-1;;;2557:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2631:1;2180:459;-1:-1:-1;;;2180:459:1:o;3101:130::-;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;1321:134::-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;874:176::-;932:7;963:5;;;986:6;;;;978:46;;;;;-1:-1:-1;;;978:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;9654:134:5;9702:15;;-1:-1:-1;;;;;9702:15:5;:39;9727:13;:6;9738:1;9727:13;:10;:13;:::i;:::-;9702:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;9758:25:5;9769:13;:6;9780:1;9769:13;:10;:13;:::i;:::-;9758:6;;:25;:10;:25;:::i;:::-;9747:7;:36;;;;;;;-1:-1:-1;9654:134:5:o;3713:272:1:-;3799:7;3833:12;3826:5;3818:28;;;;-1:-1:-1;;;3818:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3818:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:9;3872:1;3868;:5;;;;;;;3713:272;-1:-1:-1;;;;;3713:272:1:o;1746:187::-;1832:7;1867:12;1859:6;;;;1851:29;;;;-1:-1:-1;;;1851:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1851:29:1;-1:-1:-1;;;1902:5:1;;;1746:187::o;388:12500:5:-;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;-1:-1;388:12500:5;;;-1:-1:-1;;388:12500:5:o
Swarm Source
ipfs://10dd92a068998e4436d525a0067a19469ea659347f3cbebe836dcbeebadc8358
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.