More Info
Private Name Tags
ContractCreator:
TokenTracker
Latest 25 from a total of 6,889 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Approve | 78225390 | 2 days ago | IN | 0 FTM | 0.0048574 | ||||
Approve | 78134217 | 3 days ago | IN | 0 FTM | 0.00171479 | ||||
Approve | 78097785 | 4 days ago | IN | 0 FTM | 0.00118007 | ||||
Approve | 77437765 | 12 days ago | IN | 0 FTM | 0.00439265 | ||||
Approve | 77341752 | 13 days ago | IN | 0 FTM | 0.00099907 | ||||
Approve | 77212391 | 15 days ago | IN | 0 FTM | 0.00466098 | ||||
Transfer | 77210940 | 15 days ago | IN | 0 FTM | 0.00593961 | ||||
Approve | 76881996 | 21 days ago | IN | 0 FTM | 0.00285476 | ||||
Approve | 76711368 | 24 days ago | IN | 0 FTM | 0.01178146 | ||||
Approve | 76467238 | 28 days ago | IN | 0 FTM | 0.00368447 | ||||
Approve | 76314294 | 31 days ago | IN | 0 FTM | 0.00467396 | ||||
Approve | 76237028 | 32 days ago | IN | 0 FTM | 0.00269863 | ||||
Transfer | 75921528 | 38 days ago | IN | 0 FTM | 0.00458327 | ||||
Transfer | 75816051 | 40 days ago | IN | 0 FTM | 0.00281714 | ||||
Transfer | 75806805 | 40 days ago | IN | 0 FTM | 0.00466229 | ||||
Transfer | 75787082 | 41 days ago | IN | 0 FTM | 0.00459944 | ||||
Transfer | 75706867 | 42 days ago | IN | 0 FTM | 0.00570687 | ||||
Transfer | 75700758 | 42 days ago | IN | 0 FTM | 0.00123258 | ||||
Transfer | 75700352 | 42 days ago | IN | 0 FTM | 0.00374283 | ||||
Transfer | 75700303 | 42 days ago | IN | 0 FTM | 0.00376373 | ||||
Transfer | 75455669 | 46 days ago | IN | 0 FTM | 0.00090102 | ||||
Increase Allowan... | 75257723 | 50 days ago | IN | 0 FTM | 0.00126996 | ||||
Transfer | 75233286 | 50 days ago | IN | 0 FTM | 0.001645 | ||||
Transfer | 75200473 | 51 days ago | IN | 0 FTM | 0.00147747 | ||||
Transfer | 75106544 | 52 days ago | IN | 0 FTM | 0.00103158 |
Latest 25 internal transactions (View All)
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
53450874 | 444 days ago | 8.42946096 FTM | ||||
53450874 | 444 days ago | 16.85892192 FTM | ||||
53450874 | 444 days ago | 10.11535315 FTM | ||||
53450874 | 444 days ago | 37.08962823 FTM | ||||
53450105 | 444 days ago | 5.7880678 FTM | ||||
53450105 | 444 days ago | 11.5761356 FTM | ||||
53450105 | 444 days ago | 6.94568136 FTM | ||||
53450105 | 444 days ago | 25.46749832 FTM | ||||
53448704 | 444 days ago | 9.7493208 FTM | ||||
53448704 | 444 days ago | 19.4986416 FTM | ||||
53448704 | 444 days ago | 11.69918496 FTM | ||||
53448704 | 444 days ago | 42.89701153 FTM | ||||
53448606 | 444 days ago | 11.62033395 FTM | ||||
53448606 | 444 days ago | 23.24066791 FTM | ||||
53448606 | 444 days ago | 13.94440074 FTM | ||||
53448606 | 444 days ago | 51.1294694 FTM | ||||
53437915 | 444 days ago | 9.11507578 FTM | ||||
53437915 | 444 days ago | 18.23015156 FTM | ||||
53437915 | 444 days ago | 10.93809093 FTM | ||||
53437915 | 444 days ago | 40.10633343 FTM | ||||
53428310 | 445 days ago | 6.11565533 FTM | ||||
53428310 | 445 days ago | 12.23131066 FTM | ||||
53428310 | 445 days ago | 7.33878639 FTM | ||||
53428310 | 445 days ago | 26.90888345 FTM | ||||
53427861 | 445 days ago | 24.50842411 FTM |
Loading...
Loading
Contract Name:
Pallas
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2022-01-06 */ // /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$ // | $$__ $$ /$$__ $$| $$ | $$ /$$__ $$ /$$__ $$ // | $$ \ $$| $$ \ $$| $$ | $$ | $$ \ $$| $$ \__/ // | $$$$$$$/| $$$$$$$$| $$ | $$ | $$$$$$$$| $$$$$$ // | $$____/ | $$__ $$| $$ | $$ | $$__ $$ \____ $$ // | $$ | $$ | $$| $$ | $$ | $$ | $$ /$$ \ $$ // | $$ | $$ | $$| $$$$$$$$| $$$$$$$$| $$ | $$| $$$$$$/ // |__/ |__/ |__/|________/|________/|__/ |__/ \______/ // Next-gen Autostaking Mechanism - https://pallas.finance pragma solidity 0.7.6; library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface InterfaceLP { function sync() external; } library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev Give an account access to this role. */ function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } /** * @dev Remove an account's access to this role. */ function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } /** * @dev Check if an account has this role. * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract MinterRole { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); Roles.Role private _minters; constructor () { _addMinter(msg.sender); } modifier onlyMinter() { require(isMinter(msg.sender), "MinterRole: caller does not have the Minter role"); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function renounceMinter() public { _removeMinter(msg.sender); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } } abstract contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor( string memory name, string memory symbol, uint8 decimals ) { _name = name; _symbol = symbol; _decimals = decimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract Ownable { address private _owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = msg.sender; } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner()); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(_owner); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Pallas is ERC20Detailed, Ownable, MinterRole { using SafeMath for uint256; using SafeMathInt for int256; event LogRebase(uint256 indexed epoch, uint256 totalSupply); InterfaceLP public pairContract; bool public initialDistributionFinished; mapping(address => bool) allowTransfer; mapping(address => bool) _isFeeExempt; modifier initialDistributionLock() { require(initialDistributionFinished || isOwner() || allowTransfer[msg.sender]); _; } modifier validRecipient(address to) { require(to != address(0x0)); _; } uint256 private constant DECIMALS = 18; uint256 private constant MAX_UINT256 = ~uint256(0); uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 4 * 10**9 * 10**DECIMALS; uint256 public liquidityFee = 5; uint256 public treasuryFee = 3; uint256 public riskFreeValueFee = 5; uint256 public sellFee = 5; uint256 public totalFee = liquidityFee.add(treasuryFee).add(riskFreeValueFee); uint256 public feeDenominator = 100; uint256 public rewardYield = 4189063; uint256 public rewardYieldDenominator = 10000000000; uint256 public rebaseFrequency = 1800; uint256 public nextRebase = block.timestamp + rebaseFrequency; bool public autoRebase = true; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address public autoLiquidityReceiver; address public treasuryReceiver; address public riskFreeValueReceiver; uint256 targetLiquidity = 50; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; bool public swapEnabled = true; uint256 private gonSwapThreshold = (TOTAL_GONS * 10) / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY); uint256 private constant MAX_SUPPLY = ~uint128(0); uint256 private _totalSupply; uint256 private _gonsPerFragment; mapping(address => uint256) private _gonBalances; mapping(address => mapping(address => uint256)) private _allowedFragments; mapping(address => bool) public blacklist; constructor( address _router, address _autoLiquidityReceiver, address _treasuryReceiver, address _riskFreeValueReceiver ) ERC20Detailed("Pallas", "PALLAS", uint8(DECIMALS)) { router = IDEXRouter(_router); pair = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); autoLiquidityReceiver = _autoLiquidityReceiver; treasuryReceiver = _treasuryReceiver; riskFreeValueReceiver = _riskFreeValueReceiver; _allowedFragments[address(this)][address(router)] = uint256(-1); pairContract = InterfaceLP(pair); _totalSupply = INITIAL_FRAGMENTS_SUPPLY; _gonBalances[treasuryReceiver] = TOTAL_GONS; _gonsPerFragment = TOTAL_GONS.div(_totalSupply); initialDistributionFinished = false; _isFeeExempt[treasuryReceiver] = true; _isFeeExempt[address(this)] = true; _transferOwnership(treasuryReceiver); emit Transfer(address(0x0), treasuryReceiver, _totalSupply); } function updateBlacklist(address _user, bool _flag) public onlyOwner{ blacklist[_user] = _flag; } function setNextRebase(uint256 _nextRebase) external onlyOwner { nextRebase = _nextRebase; } function setRewardYield(uint256 _rewardYield, uint256 _rewardYieldDenominator) external onlyOwner { rewardYield = _rewardYield; rewardYieldDenominator = _rewardYieldDenominator; } function setAutoRebase(bool _autoRebase) external onlyOwner { autoRebase = _autoRebase; } function setRebaseFrequency(uint256 _rebaseFrequency) external onlyOwner { rebaseFrequency = _rebaseFrequency; } function shouldRebase() public view returns (bool) { return nextRebase <= block.timestamp; } function swipe(address _receiver) external onlyOwner { uint256 balance = address(this).balance; payable(_receiver).transfer(balance); } function coreRebase(uint256 epoch, int256 supplyDelta) private returns (uint256) { if (supplyDelta == 0) { emit LogRebase(epoch, _totalSupply); return _totalSupply; } if (supplyDelta < 0) { _totalSupply = _totalSupply.sub(uint256(-supplyDelta)); } else { _totalSupply = _totalSupply.add(uint256(supplyDelta)); } if (_totalSupply > MAX_SUPPLY) { _totalSupply = MAX_SUPPLY; } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); pairContract.sync(); emit LogRebase(epoch, _totalSupply); return _totalSupply; } function _rebase() private { if(!inSwap) { uint256 epoch = block.timestamp; uint256 circulatingSupply = getCirculatingSupply(); int256 supplyDelta = int256(circulatingSupply.mul(rewardYield).div(rewardYieldDenominator)); coreRebase(epoch, supplyDelta); nextRebase = epoch + rebaseFrequency; } } function rebase(uint256 epoch, int256 supplyDelta) external onlyOwner returns (uint256) { require(!inSwap, "Try again"); return coreRebase(epoch, supplyDelta); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function transfer(address to, uint256 value) external override validRecipient(to) initialDistributionLock returns (bool) { _transferFrom(msg.sender, to, value); return true; } function setLP(address _address) external onlyOwner { pairContract = InterfaceLP(_address); _isFeeExempt[_address]; } function allowance(address owner_, address spender) external view override returns (uint256) { return _allowedFragments[owner_][spender]; } function balanceOf(address who) external view override returns (uint256) { return _gonBalances[who].div(_gonsPerFragment); } function _basicTransfer( address from, address to, uint256 amount ) internal returns (bool) { uint256 gonAmount = amount.mul(_gonsPerFragment); _gonBalances[from] = _gonBalances[from].sub(gonAmount); _gonBalances[to] = _gonBalances[to].add(gonAmount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(!blacklist[sender] && !blacklist[recipient], 'in_blacklist'); if (inSwap) { return _basicTransfer(sender, recipient, amount); } uint256 gonAmount = amount.mul(_gonsPerFragment); if (shouldSwapBack()) { swapBack(); } _gonBalances[sender] = _gonBalances[sender].sub(gonAmount); uint256 gonAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, gonAmount) : gonAmount; _gonBalances[recipient] = _gonBalances[recipient].add( gonAmountReceived ); emit Transfer( sender, recipient, gonAmountReceived.div(_gonsPerFragment) ); if(shouldRebase() && autoRebase) { _rebase(); } return true; } function transferFrom( address from, address to, uint256 value ) external override validRecipient(to) returns (bool) { if (_allowedFragments[from][msg.sender] != uint256(-1)) { _allowedFragments[from][msg.sender] = _allowedFragments[from][ msg.sender ].sub(value, "Insufficient Allowance"); } _transferFrom(from, to, value); return true; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified( targetLiquidity, targetLiquidityDenominator ) ? 0 : liquidityFee; uint256 contractTokenBalance = _gonBalances[address(this)].div( _gonsPerFragment ); uint256 amountToLiquify = contractTokenBalance .mul(dynamicLiquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH .mul(dynamicLiquidityFee) .div(totalETHFee) .div(2); uint256 amountETHRiskFreeValue = amountETH.mul(riskFreeValueFee).div(totalETHFee); uint256 amountETHTreasury = amountETH.mul(treasuryFee).div( totalETHFee ); (bool success, ) = payable(treasuryReceiver).call{ value: amountETHTreasury, gas: 30000 }(""); (success, ) = payable(riskFreeValueReceiver).call{ value: amountETHRiskFreeValue, gas: 30000 }(""); success = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); } } function takeFee(address sender, address recipient, uint256 gonAmount) internal returns (uint256) { uint256 _totalFee = totalFee; if(recipient == pair) _totalFee = _totalFee.add(sellFee); uint256 feeAmount = gonAmount.mul(_totalFee).div(feeDenominator); _gonBalances[address(this)] = _gonBalances[address(this)].add( feeAmount ); emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment)); return gonAmount.sub(feeAmount); } function decreaseAllowance(address spender, uint256 subtractedValue) external initialDistributionLock returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub( subtractedValue ); } emit Approval( msg.sender, spender, _allowedFragments[msg.sender][spender] ); return true; } function increaseAllowance(address spender, uint256 addedValue) external initialDistributionLock returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][ spender ].add(addedValue); emit Approval( msg.sender, spender, _allowedFragments[msg.sender][spender] ); return true; } function approve(address spender, uint256 value) external override initialDistributionLock returns (bool) { _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function checkFeeExempt(address _addr) external view returns (bool) { return _isFeeExempt[_addr]; } function setInitialDistributionFinished() external onlyOwner { initialDistributionFinished = true; } function enableTransfer(address _addr) external onlyOwner { allowTransfer[_addr] = true; } function setFeeExempt(address _addr) external onlyOwner { _isFeeExempt[_addr] = true; } function shouldTakeFee(address from, address to) internal view returns (bool) { return (pair == from || pair == to) && (!_isFeeExempt[from]); } function mint(address recipient, uint256 amount) external onlyMinter { _totalSupply = _totalSupply.add(uint256(amount)); if (_totalSupply > MAX_SUPPLY) { _totalSupply = MAX_SUPPLY; } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); pairContract.sync(); _gonBalances[recipient] = _gonBalances[recipient].add(amount); } function setSwapBackSettings( bool _enabled, uint256 _num, uint256 _denom ) external onlyOwner { swapEnabled = _enabled; gonSwapThreshold = TOTAL_GONS.div(_denom).mul(_num); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _gonBalances[address(this)] >= gonSwapThreshold; } function getCirculatingSupply() public view returns (uint256) { return (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div( _gonsPerFragment ); } function setTargetLiquidity(uint256 target, uint256 accuracy) external onlyOwner { targetLiquidity = target; targetLiquidityDenominator = accuracy; } function addMinter(address account) public onlyOwner { _addMinter(account); } function removeMinter(address account) public onlyOwner { _removeMinter(account); } function isNotInSwap() external view returns (bool) { return !inSwap; } function checkSwapThreshold() external view returns (uint256) { return gonSwapThreshold.div(_gonsPerFragment); } function manualSync() external { InterfaceLP(pair).sync(); } function setFeeReceivers( address _autoLiquidityReceiver, address _treasuryReceiver, address _riskFreeValueReceiver ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; treasuryReceiver = _treasuryReceiver; riskFreeValueReceiver = _riskFreeValueReceiver; } function setFees( uint256 _liquidityFee, uint256 _riskFreeValueFee, uint256 _treasuryFee, uint256 _sellFee, uint256 _feeDenominator ) external onlyOwner { liquidityFee = _liquidityFee; riskFreeValueFee = _riskFreeValueFee; treasuryFee = _treasuryFee; sellFee = _sellFee; totalFee = liquidityFee.add(treasuryFee).add(riskFreeValueFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 4); } function clearStuckBalance(uint256 amountPercentage, address addr) external onlyOwner { uint256 amountETH = address(this).balance; payable(addr).transfer( (amountETH * amountPercentage) / 100 ); } function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { return ERC20Detailed(tokenAddress).transfer(msg.sender, tokens); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment); return accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_riskFreeValueReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"enableTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialDistributionFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebase","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardYieldDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskFreeValueFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskFreeValueReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_autoRebase","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_riskFreeValueReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_riskFreeValueFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nextRebase","type":"uint256"}],"name":"setNextRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rebaseFrequency","type":"uint256"}],"name":"setRebaseFrequency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardYield","type":"uint256"},{"internalType":"uint256","name":"_rewardYieldDenominator","type":"uint256"}],"name":"setRewardYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_num","type":"uint256"},{"internalType":"uint256","name":"_denom","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"swipe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"updateBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526005600755600360085560056009556005600a55620000516009546200003d600854600754620004c460201b62001bde1790919060201c565b620004c460201b62001bde1790919060201c565b600b556064600c819055623feb87600d556402540be400600e55610708600f819055420160105560118054600160ff1990911617610100600160a81b03191662dead00179055601280546001600160a01b0319169055603260165560175560198054600160a01b60ff60a01b199091161790557e068db8bac710cb295e9e1b089a027525460aa64c2f0c0aa63ae238dca2339c601a55348015620000f457600080fd5b506040516200337938038062003379833981810160405260808110156200011a57600080fd5b5080516020808301516040808501516060909501518151808301835260068082526550616c6c617360d01b82870190815284518086019095529084526550414c4c415360d01b95840195909552805195969395939491939092916012916200018591600091620007d1565b5081516200019b906001906020850190620007d1565b5060028054336101008102610100600160a81b031960ff90951660ff199093169290921793909316179055620001d49250905062000526565b601880546001600160a01b0319166001600160a01b0386811691909117918290556040805163c45a015560e01b81529051929091169163c45a015591600480820192602092909190829003018186803b1580156200023157600080fd5b505afa15801562000246573d6000803e3d6000fd5b505050506040513d60208110156200025d57600080fd5b5051601854604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b158015620002ac57600080fd5b505afa158015620002c1573d6000803e3d6000fd5b505050506040513d6020811015620002d857600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200032857600080fd5b505af11580156200033d573d6000803e3d6000fd5b505050506040513d60208110156200035457600080fd5b5051601980546001600160a01b03199081166001600160a01b03938416178255601380548216878516179055601480548216868516178155601580548316868616179055306000908152601f60209081526040808320601854881684528252808320600019905594546004805491881691909516179093556b0cecb8f27f4200f3a0000000601c90815591549094168452601e8252919092206b01d290004395eb7bbfffffff19908190559054620004159262000578811b62001c3817901c565b601d556004805460ff60a01b19169055601480546001600160a01b03908116600090815260066020526040808220805460ff19908116600190811790925530845291909220805490911690911790559054620004729116620005c2565b601454601c5460408051918252516001600160a01b03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a3505050506200087d565b6000828201838110156200051f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620005418160036200063d60201b62001c7a1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006200051f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006c160201b60201c565b6001600160a01b038116620005d657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b62000649828262000768565b156200069c576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008183620007515760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000715578181015183820152602001620006fb565b50505050905090810190601f168015620007435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200075e57fe5b0495945050505050565b60006001600160a01b038216620007b15760405162461bcd60e51b8152600401808060200182810382526022815260200180620033576022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000809576000855562000854565b82601f106200082457805160ff191683800117855562000854565b8280016001018555821562000854579182015b828111156200085457825182559160200191906001019062000837565b506200086292915062000866565b5090565b5b8082111562000862576000815560010162000867565b612aca806200088d6000396000f3fe6080604052600436106103d25760003560e01c80637a43e23f116101fd578063aa271e1a11610118578063d51ed1c8116100ab578063dd62ed3e1161007a578063dd62ed3e14610d22578063e15beb8014610d5d578063f2fde38b14610d89578063f887ea4014610dbc578063f9f92be414610dd1576103d9565b8063d51ed1c814610c6b578063d5938aac14610c95578063d7832b1114610cc8578063d7c0103214610cdd576103d9565b8063cce7db58116100e7578063cce7db5814610bb8578063d088935814610beb578063d1fce26414610c23578063d439979014610c38576103d9565b8063aa271e1a14610b46578063bc7e68a314610b79578063ca33e64c14610b8e578063cc32d17614610ba3576103d9565b806395d89b41116101905780639ae7372d1161015f5780639ae7372d14610a95578063a457c2d714610abf578063a8aa1b3114610af8578063a9059cbb14610b0d576103d9565b806395d89b4114610a2357806398118cb414610a38578063983b2d5614610a4d5780639865027514610a80576103d9565b80638da5cb5b116101cc5780638da5cb5b146109a95780638f32d59b146109be5780639079f932146109d35780639155e083146109e8576103d9565b80637a43e23f1461093a5780637d4b50171461096a57806383b4ac681461097f57806389375abf14610994576103d9565b80633092afd5116102ed5780635d9280af1161028057806370a082311161024f57806370a08231146108aa578063715018a6146108dd578063749796a5146108f2578063753d02a114610925576103d9565b80635d9280af1461085657806363eab10a1461086b5780636d351d1a146108805780636ddd171314610895576103d9565b806340c10f19116102bc57806340c10f19146107a55780634cd9ddf2146107de5780634d709adf1461080857806356a227f21461081d576103d9565b80633092afd5146106d5578063313ce5671461070857806333f3d62814610733578063395093511461076c576103d9565b806318160ddd116103655780632b112e49116103345780632b112e49146106635780632b14ca56146106785780632be6937d1461068d5780632f34d282146106a2576103d9565b806318160ddd146105c65780631df4ccfc146105db578063201e7991146105f057806323b872dd14610620576103d9565b8063095ea7b3116103a1578063095ea7b31461050d5780630af083141461055a5780631161ae3914610581578063180b0d7e146105b1576103d9565b806301b16827146103de57806304a66b481461041057806306fdde031461045257806308b1fd8f146104dc576103d9565b366103d957005b600080fd5b3480156103ea57600080fd5b5061040e6004803603604081101561040157600080fd5b5080359060200135610e04565b005b34801561041c57600080fd5b5061040e600480360360a081101561043357600080fd5b5080359060208101359060408101359060608101359060800135610e20565b34801561045e57600080fd5b50610467610e79565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104a1578181015183820152602001610489565b50505050905090810190601f1680156104ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e857600080fd5b506104f1610f0f565b604080516001600160a01b039092168252519081900360200190f35b34801561051957600080fd5b506105466004803603604081101561053057600080fd5b506001600160a01b038135169060200135610f1e565b604080519115158252519081900360200190f35b34801561056657600080fd5b5061056f610fc7565b60408051918252519081900360200190f35b34801561058d57600080fd5b50610546600480360360408110156105a457600080fd5b5080359060200135610fcd565b3480156105bd57600080fd5b5061056f610fe1565b3480156105d257600080fd5b5061056f610fe7565b3480156105e757600080fd5b5061056f610fed565b3480156105fc57600080fd5b5061040e6004803603604081101561061357600080fd5b5080359060200135610ff3565b34801561062c57600080fd5b506105466004803603606081101561064357600080fd5b506001600160a01b0381358116916020810135909116906040013561100f565b34801561066f57600080fd5b5061056f6110e9565b34801561068457600080fd5b5061056f611150565b34801561069957600080fd5b5061040e611156565b3480156106ae57600080fd5b5061040e600480360360208110156106c557600080fd5b50356001600160a01b031661117c565b3480156106e157600080fd5b5061040e600480360360208110156106f857600080fd5b50356001600160a01b03166111b6565b34801561071457600080fd5b5061071d6111d3565b6040805160ff9092168252519081900360200190f35b34801561073f57600080fd5b506105466004803603604081101561075657600080fd5b506001600160a01b0381351690602001356111dc565b34801561077857600080fd5b506105466004803603604081101561078f57600080fd5b506001600160a01b038135169060200135611271565b3480156107b157600080fd5b5061040e600480360360408110156107c857600080fd5b506001600160a01b038135169060200135611345565b3480156107ea57600080fd5b5061040e6004803603602081101561080157600080fd5b5035611479565b34801561081457600080fd5b506104f161148f565b34801561082957600080fd5b5061040e6004803603604081101561084057600080fd5b50803590602001356001600160a01b031661149e565b34801561086257600080fd5b5061056f6114f1565b34801561087757600080fd5b506105466114f7565b34801561088c57600080fd5b5061056f611500565b3480156108a157600080fd5b50610546611519565b3480156108b657600080fd5b5061056f600480360360208110156108cd57600080fd5b50356001600160a01b0316611529565b3480156108e957600080fd5b5061040e611551565b3480156108fe57600080fd5b5061040e6004803603602081101561091557600080fd5b50356001600160a01b03166115b1565b34801561093157600080fd5b5061040e6115e6565b34801561094657600080fd5b5061056f6004803603604081101561095d57600080fd5b508035906020013561164a565b34801561097657600080fd5b506104f16116b2565b34801561098b57600080fd5b506105466116c1565b3480156109a057600080fd5b5061056f6116cb565b3480156109b557600080fd5b506104f16116d1565b3480156109ca57600080fd5b506105466116e5565b3480156109df57600080fd5b506105466116fb565b3480156109f457600080fd5b5061040e60048036036040811015610a0b57600080fd5b506001600160a01b0381351690602001351515611704565b348015610a2f57600080fd5b5061046761173f565b348015610a4457600080fd5b5061056f61179f565b348015610a5957600080fd5b5061040e60048036036020811015610a7057600080fd5b50356001600160a01b03166117a5565b348015610a8c57600080fd5b5061040e6117bf565b348015610aa157600080fd5b5061040e60048036036020811015610ab857600080fd5b50356117ca565b348015610acb57600080fd5b5061054660048036036040811015610ae257600080fd5b506001600160a01b0381351690602001356117e0565b348015610b0457600080fd5b506104f161190a565b348015610b1957600080fd5b5061054660048036036040811015610b3057600080fd5b506001600160a01b038135169060200135611919565b348015610b5257600080fd5b5061054660048036036020811015610b6957600080fd5b50356001600160a01b0316611983565b348015610b8557600080fd5b5061056f611990565b348015610b9a57600080fd5b506104f1611996565b348015610baf57600080fd5b5061056f6119a5565b348015610bc457600080fd5b5061040e60048036036020811015610bdb57600080fd5b50356001600160a01b03166119ab565b348015610bf757600080fd5b5061040e60048036036060811015610c0e57600080fd5b508035151590602081013590604001356119f9565b348015610c2f57600080fd5b50610546611a4c565b348015610c4457600080fd5b5061054660048036036020811015610c5b57600080fd5b50356001600160a01b0316611a5c565b348015610c7757600080fd5b5061056f60048036036020811015610c8e57600080fd5b5035611a7a565b348015610ca157600080fd5b5061040e60048036036020811015610cb857600080fd5b50356001600160a01b0316611ac7565b348015610cd457600080fd5b5061056f611afc565b348015610ce957600080fd5b5061040e60048036036060811015610d0057600080fd5b506001600160a01b038135811691602081013582169160409091013516611b02565b348015610d2e57600080fd5b5061056f60048036036040811015610d4557600080fd5b506001600160a01b0381358116916020013516611b52565b348015610d6957600080fd5b5061040e60048036036020811015610d8057600080fd5b50351515611b7d565b348015610d9557600080fd5b5061040e60048036036020811015610dac57600080fd5b50356001600160a01b0316611ba1565b348015610dc857600080fd5b506104f1611bbb565b348015610ddd57600080fd5b5061054660048036036020811015610df457600080fd5b50356001600160a01b0316611bca565b610e0c6116e5565b610e1557600080fd5b600d91909155600e55565b610e286116e5565b610e3157600080fd5b600785905560098490556008839055600a829055610e5984610e538786611bde565b90611bde565b600b55600c81905560048104600b5410610e7257600080fd5b5050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f055780601f10610eda57610100808354040283529160200191610f05565b820191906000526020600020905b815481529060010190602001808311610ee857829003601f168201915b5050505050905090565b6014546001600160a01b031681565b600454600090600160a01b900460ff1680610f3c5750610f3c6116e5565b80610f5657503360009081526005602052604090205460ff165b610f5f57600080fd5b336000818152601f602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b600082610fd983611a7a565b119392505050565b600c5481565b601c5490565b600b5481565b610ffb6116e5565b61100457600080fd5b601691909155601755565b6000826001600160a01b03811661102557600080fd5b6001600160a01b0385166000908152601f60209081526040808320338452909152902054600019146110d2576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601f825283812033825290915291909120546110ad918590611cfb565b6001600160a01b0386166000908152601f602090815260408083203384529091529020555b6110dd858585611d92565b50600195945050505050565b601d546012546001600160a01b039081166000908152601e60205260408082205460115461010090049093168252812054909261114b929091611145919061113f906b01d290004395eb7bbfffffff1990611f66565b90611f66565b90611c38565b905090565b600a5481565b61115e6116e5565b61116757600080fd5b6004805460ff60a01b1916600160a01b179055565b6111846116e5565b61118d57600080fd5b600480546001600160a01b039092166001600160a01b0319909216821790556000526006602052565b6111be6116e5565b6111c757600080fd5b6111d081611fa8565b50565b60025460ff1690565b60006111e66116e5565b6111ef57600080fd5b6040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b15801561123e57600080fd5b505af1158015611252573d6000803e3d6000fd5b505050506040513d602081101561126857600080fd5b50519392505050565b600454600090600160a01b900460ff168061128f575061128f6116e5565b806112a957503360009081526005602052604090205460ff165b6112b257600080fd5b336000908152601f602090815260408083206001600160a01b03871684529091529020546112e09083611bde565b336000818152601f602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b61134e33611983565b6113895760405162461bcd60e51b8152600401808060200182810382526030815260200180612a016030913960400191505060405180910390fd5b601c546113969082611bde565b601c8190556001600160801b0310156113b5576001600160801b03601c555b601c546113d5906b0cecb8f27f4200f3a00000006000195b061990611c38565b601d55600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b15801561141e57600080fd5b505af1158015611432573d6000803e3d6000fd5b5050506001600160a01b0383166000908152601e6020526040902054611459915082611bde565b6001600160a01b039092166000908152601e602052604090209190915550565b6114816116e5565b61148a57600080fd5b600f55565b6004546001600160a01b031681565b6114a66116e5565b6114af57600080fd5b60405147906001600160a01b0383169060648584020480156108fc02916000818181858888f193505050501580156114eb573d6000803e3d6000fd5b50505050565b60095481565b60105442101590565b600061114b601d54601a54611c3890919063ffffffff16565b601954600160a01b900460ff1681565b601d546001600160a01b0382166000908152601e60205260408120549091610fc19190611c38565b6115596116e5565b61156257600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b6115b96116e5565b6115c257600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b601960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561163657600080fd5b505af11580156114eb573d6000803e3d6000fd5b60006116546116e5565b61165d57600080fd5b601b5460ff16156116a1576040805162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b604482015290519081900360640190fd5b6116ab8383611fea565b9392505050565b6015546001600160a01b031681565b601b5460ff161590565b600f5481565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60115460ff1681565b61170c6116e5565b61171557600080fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f055780601f10610eda57610100808354040283529160200191610f05565b60075481565b6117ad6116e5565b6117b657600080fd5b6111d081612141565b6117c833611fa8565b565b6117d26116e5565b6117db57600080fd5b601055565b600454600090600160a01b900460ff16806117fe57506117fe6116e5565b8061181857503360009081526005602052604090205460ff165b61182157600080fd5b336000908152601f602090815260408083206001600160a01b038716845290915290205480831061187557336000908152601f602090815260408083206001600160a01b03881684529091528120556118a4565b61187f8184611f66565b336000908152601f602090815260408083206001600160a01b03891684529091529020555b336000818152601f602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6019546001600160a01b031681565b6000826001600160a01b03811661192f57600080fd5b600454600160a01b900460ff168061194a575061194a6116e5565b8061196457503360009081526005602052604090205460ff165b61196d57600080fd5b611978338585611d92565b506001949350505050565b6000610fc1600383612183565b60105481565b6013546001600160a01b031681565b60085481565b6119b36116e5565b6119bc57600080fd5b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156119f4573d6000803e3d6000fd5b505050565b611a016116e5565b611a0a57600080fd5b6019805460ff60a01b1916600160a01b85151502179055611a4482611a3e836b0cecb8f27f4200f3a00000006000196113cd565b906121ea565b601a55505050565b600454600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205460ff1690565b601d546019546001600160a01b03166000908152601e602052604081205490918291611aa591611c38565b90506116ab611ab26110e9565b611145611ac08460026121ea565b86906121ea565b611acf6116e5565b611ad857600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b600e5481565b611b0a6116e5565b611b1357600080fd5b601380546001600160a01b039485166001600160a01b031991821617909155601480549385169382169390931790925560158054919093169116179055565b6001600160a01b039182166000908152601f6020908152604080832093909416825291909152205490565b611b856116e5565b611b8e57600080fd5b6011805460ff1916911515919091179055565b611ba96116e5565b611bb257600080fd5b6111d081612243565b6018546001600160a01b031681565b602080526000908152604090205460ff1681565b6000828201838110156116ab576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bd565b611c848282612183565b15611cd6576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115611d8a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d4f578181015183820152602001611d37565b50505050905090810190601f168015611d7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038316600090815260208052604081205460ff16158015611dd257506001600160a01b038316600090815260208052604090205460ff16155b611e12576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601b5460ff1615611e2f57611e28848484612322565b90506116ab565b6000611e46601d54846121ea90919063ffffffff16565b9050611e506123b4565b15611e5d57611e5d61240a565b6001600160a01b0385166000908152601e6020526040902054611e809082611f66565b6001600160a01b0386166000908152601e6020526040812091909155611ea68686612824565b611eb05781611ebb565b611ebb868684612878565b6001600160a01b0386166000908152601e6020526040902054909150611ee19082611bde565b6001600160a01b038087166000818152601e6020526040902092909255601d54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f32908590611c38565b60408051918252519081900360200190a3611f4b6114f7565b8015611f59575060115460ff165b156110dd576110dd61294a565b60006116ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cfb565b611fb3600382612999565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60008161203257601c54604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250601c54610fc1565b600082121561205457601c5461204c906000849003611f66565b601c55612065565b601c546120619083611bde565b601c555b601c546001600160801b031015612082576001600160801b03601c555b601c5461209e906b0cecb8f27f4200f3a00000006000196113cd565b601d55600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b1580156120e757600080fd5b505af11580156120fb573d6000803e3d6000fd5b5050601c5460408051918252518693507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250601c5492915050565b61214c600382611c7a565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b0382166121ca5760405162461bcd60e51b8152600401808060200182810382526022815260200180612a736022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6000826121f957506000610fc1565b8282028284828161220657fe5b04146116ab5760405162461bcd60e51b8152600401808060200182810382526021815260200180612a526021913960400191505060405180910390fd5b6001600160a01b03811661225657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000818361230c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611d4f578181015183820152602001611d37565b50600083858161231857fe5b0495945050505050565b60008061233a601d54846121ea90919063ffffffff16565b6001600160a01b0386166000908152601e60205260409020549091506123609082611f66565b6001600160a01b038087166000908152601e6020526040808220939093559086168152205461238f9082611bde565b6001600160a01b0385166000908152601e602052604090205550600190509392505050565b6019546000906001600160a01b031633148015906123d55750601b5460ff16155b80156123ea5750601954600160a01b900460ff165b801561114b575050601a54306000908152601e6020526040902054101590565b601b805460ff1916600117905560165460175460009161242991610fcd565b61243557600754612438565b60005b601d54306000908152601e60205260408120549293509161245891611c38565b9050600061247a6002611145600b5461114587876121ea90919063ffffffff16565b905060006124888383611f66565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106124bc57fe5b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b505181518290600190811061254b57fe5b6001600160a01b0392831660209182029290920181019190915260185460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156125e55781810151838201526020016125cd565b505050509050019650505050505050600060405180830381600087803b15801561260e57600080fd5b505af1158015612622573d6000803e3d6000fd5b50505050600061263b8247611f6690919063ffffffff16565b9050600061265661264d896002611c38565b600b5490611f66565b9050600061266b60026111458481878e6121ea565b9050600061268883611145600954876121ea90919063ffffffff16565b905060006126a584611145600854886121ea90919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146126fc576040519150601f19603f3d011682016040523d82523d6000602084013e612701565b606091505b50506015546040519192506001600160a01b0316906175309085906000818181858888f193505050503d8060008114612756576040519150601f19603f3d011682016040523d82523d6000602084013e61275b565b606091505b5060009250508a15905061280c576018546013546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b1580156127de57600080fd5b505af11580156127f2573d6000803e3d6000fd5b50505050506040513d606081101561280957600080fd5b50505b5050601b805460ff1916905550505050505050505050565b6019546000906001600160a01b038481169116148061285057506019546001600160a01b038381169116145b80156116ab575050506001600160a01b031660009081526006602052604090205460ff161590565b600b54601954600091906001600160a01b03858116911614156128a657600a546128a3908290611bde565b90505b600c546000906128ba9061114586856121ea565b306000908152601e60205260409020549091506128d79082611bde565b306000818152601e6020526040902091909155601d546001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612925908590611c38565b60408051918252519081900360200190a36129408482611f66565b9695505050505050565b601b5460ff166117c85742600061295f6110e9565b9050600061297e600e54611145600d54856121ea90919063ffffffff16565b905061298a8382611fea565b5050600f549190910160105550565b6129a38282612183565b6129de5760405162461bcd60e51b8152600401808060200182810382526021815260200180612a316021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212209eb412422cd4cef90b72044b752d277489594498470066caf91e8e81e5e9b05c64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373000000000000000000000000f491e7b69e4244ad4002bc14e878a34207e38c290000000000000000000000009d4c0add260f70b2d3a363be27a1aeef76f726b800000000000000000000000032276a3a773a06b97815338dff6bcbcfd6bb4856000000000000000000000000c4867e5d3f25b47a3be0a15bd70c69d7b93b169e
Deployed Bytecode
0x6080604052600436106103d25760003560e01c80637a43e23f116101fd578063aa271e1a11610118578063d51ed1c8116100ab578063dd62ed3e1161007a578063dd62ed3e14610d22578063e15beb8014610d5d578063f2fde38b14610d89578063f887ea4014610dbc578063f9f92be414610dd1576103d9565b8063d51ed1c814610c6b578063d5938aac14610c95578063d7832b1114610cc8578063d7c0103214610cdd576103d9565b8063cce7db58116100e7578063cce7db5814610bb8578063d088935814610beb578063d1fce26414610c23578063d439979014610c38576103d9565b8063aa271e1a14610b46578063bc7e68a314610b79578063ca33e64c14610b8e578063cc32d17614610ba3576103d9565b806395d89b41116101905780639ae7372d1161015f5780639ae7372d14610a95578063a457c2d714610abf578063a8aa1b3114610af8578063a9059cbb14610b0d576103d9565b806395d89b4114610a2357806398118cb414610a38578063983b2d5614610a4d5780639865027514610a80576103d9565b80638da5cb5b116101cc5780638da5cb5b146109a95780638f32d59b146109be5780639079f932146109d35780639155e083146109e8576103d9565b80637a43e23f1461093a5780637d4b50171461096a57806383b4ac681461097f57806389375abf14610994576103d9565b80633092afd5116102ed5780635d9280af1161028057806370a082311161024f57806370a08231146108aa578063715018a6146108dd578063749796a5146108f2578063753d02a114610925576103d9565b80635d9280af1461085657806363eab10a1461086b5780636d351d1a146108805780636ddd171314610895576103d9565b806340c10f19116102bc57806340c10f19146107a55780634cd9ddf2146107de5780634d709adf1461080857806356a227f21461081d576103d9565b80633092afd5146106d5578063313ce5671461070857806333f3d62814610733578063395093511461076c576103d9565b806318160ddd116103655780632b112e49116103345780632b112e49146106635780632b14ca56146106785780632be6937d1461068d5780632f34d282146106a2576103d9565b806318160ddd146105c65780631df4ccfc146105db578063201e7991146105f057806323b872dd14610620576103d9565b8063095ea7b3116103a1578063095ea7b31461050d5780630af083141461055a5780631161ae3914610581578063180b0d7e146105b1576103d9565b806301b16827146103de57806304a66b481461041057806306fdde031461045257806308b1fd8f146104dc576103d9565b366103d957005b600080fd5b3480156103ea57600080fd5b5061040e6004803603604081101561040157600080fd5b5080359060200135610e04565b005b34801561041c57600080fd5b5061040e600480360360a081101561043357600080fd5b5080359060208101359060408101359060608101359060800135610e20565b34801561045e57600080fd5b50610467610e79565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104a1578181015183820152602001610489565b50505050905090810190601f1680156104ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e857600080fd5b506104f1610f0f565b604080516001600160a01b039092168252519081900360200190f35b34801561051957600080fd5b506105466004803603604081101561053057600080fd5b506001600160a01b038135169060200135610f1e565b604080519115158252519081900360200190f35b34801561056657600080fd5b5061056f610fc7565b60408051918252519081900360200190f35b34801561058d57600080fd5b50610546600480360360408110156105a457600080fd5b5080359060200135610fcd565b3480156105bd57600080fd5b5061056f610fe1565b3480156105d257600080fd5b5061056f610fe7565b3480156105e757600080fd5b5061056f610fed565b3480156105fc57600080fd5b5061040e6004803603604081101561061357600080fd5b5080359060200135610ff3565b34801561062c57600080fd5b506105466004803603606081101561064357600080fd5b506001600160a01b0381358116916020810135909116906040013561100f565b34801561066f57600080fd5b5061056f6110e9565b34801561068457600080fd5b5061056f611150565b34801561069957600080fd5b5061040e611156565b3480156106ae57600080fd5b5061040e600480360360208110156106c557600080fd5b50356001600160a01b031661117c565b3480156106e157600080fd5b5061040e600480360360208110156106f857600080fd5b50356001600160a01b03166111b6565b34801561071457600080fd5b5061071d6111d3565b6040805160ff9092168252519081900360200190f35b34801561073f57600080fd5b506105466004803603604081101561075657600080fd5b506001600160a01b0381351690602001356111dc565b34801561077857600080fd5b506105466004803603604081101561078f57600080fd5b506001600160a01b038135169060200135611271565b3480156107b157600080fd5b5061040e600480360360408110156107c857600080fd5b506001600160a01b038135169060200135611345565b3480156107ea57600080fd5b5061040e6004803603602081101561080157600080fd5b5035611479565b34801561081457600080fd5b506104f161148f565b34801561082957600080fd5b5061040e6004803603604081101561084057600080fd5b50803590602001356001600160a01b031661149e565b34801561086257600080fd5b5061056f6114f1565b34801561087757600080fd5b506105466114f7565b34801561088c57600080fd5b5061056f611500565b3480156108a157600080fd5b50610546611519565b3480156108b657600080fd5b5061056f600480360360208110156108cd57600080fd5b50356001600160a01b0316611529565b3480156108e957600080fd5b5061040e611551565b3480156108fe57600080fd5b5061040e6004803603602081101561091557600080fd5b50356001600160a01b03166115b1565b34801561093157600080fd5b5061040e6115e6565b34801561094657600080fd5b5061056f6004803603604081101561095d57600080fd5b508035906020013561164a565b34801561097657600080fd5b506104f16116b2565b34801561098b57600080fd5b506105466116c1565b3480156109a057600080fd5b5061056f6116cb565b3480156109b557600080fd5b506104f16116d1565b3480156109ca57600080fd5b506105466116e5565b3480156109df57600080fd5b506105466116fb565b3480156109f457600080fd5b5061040e60048036036040811015610a0b57600080fd5b506001600160a01b0381351690602001351515611704565b348015610a2f57600080fd5b5061046761173f565b348015610a4457600080fd5b5061056f61179f565b348015610a5957600080fd5b5061040e60048036036020811015610a7057600080fd5b50356001600160a01b03166117a5565b348015610a8c57600080fd5b5061040e6117bf565b348015610aa157600080fd5b5061040e60048036036020811015610ab857600080fd5b50356117ca565b348015610acb57600080fd5b5061054660048036036040811015610ae257600080fd5b506001600160a01b0381351690602001356117e0565b348015610b0457600080fd5b506104f161190a565b348015610b1957600080fd5b5061054660048036036040811015610b3057600080fd5b506001600160a01b038135169060200135611919565b348015610b5257600080fd5b5061054660048036036020811015610b6957600080fd5b50356001600160a01b0316611983565b348015610b8557600080fd5b5061056f611990565b348015610b9a57600080fd5b506104f1611996565b348015610baf57600080fd5b5061056f6119a5565b348015610bc457600080fd5b5061040e60048036036020811015610bdb57600080fd5b50356001600160a01b03166119ab565b348015610bf757600080fd5b5061040e60048036036060811015610c0e57600080fd5b508035151590602081013590604001356119f9565b348015610c2f57600080fd5b50610546611a4c565b348015610c4457600080fd5b5061054660048036036020811015610c5b57600080fd5b50356001600160a01b0316611a5c565b348015610c7757600080fd5b5061056f60048036036020811015610c8e57600080fd5b5035611a7a565b348015610ca157600080fd5b5061040e60048036036020811015610cb857600080fd5b50356001600160a01b0316611ac7565b348015610cd457600080fd5b5061056f611afc565b348015610ce957600080fd5b5061040e60048036036060811015610d0057600080fd5b506001600160a01b038135811691602081013582169160409091013516611b02565b348015610d2e57600080fd5b5061056f60048036036040811015610d4557600080fd5b506001600160a01b0381358116916020013516611b52565b348015610d6957600080fd5b5061040e60048036036020811015610d8057600080fd5b50351515611b7d565b348015610d9557600080fd5b5061040e60048036036020811015610dac57600080fd5b50356001600160a01b0316611ba1565b348015610dc857600080fd5b506104f1611bbb565b348015610ddd57600080fd5b5061054660048036036020811015610df457600080fd5b50356001600160a01b0316611bca565b610e0c6116e5565b610e1557600080fd5b600d91909155600e55565b610e286116e5565b610e3157600080fd5b600785905560098490556008839055600a829055610e5984610e538786611bde565b90611bde565b600b55600c81905560048104600b5410610e7257600080fd5b5050505050565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f055780601f10610eda57610100808354040283529160200191610f05565b820191906000526020600020905b815481529060010190602001808311610ee857829003601f168201915b5050505050905090565b6014546001600160a01b031681565b600454600090600160a01b900460ff1680610f3c5750610f3c6116e5565b80610f5657503360009081526005602052604090205460ff165b610f5f57600080fd5b336000818152601f602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b600082610fd983611a7a565b119392505050565b600c5481565b601c5490565b600b5481565b610ffb6116e5565b61100457600080fd5b601691909155601755565b6000826001600160a01b03811661102557600080fd5b6001600160a01b0385166000908152601f60209081526040808320338452909152902054600019146110d2576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601f825283812033825290915291909120546110ad918590611cfb565b6001600160a01b0386166000908152601f602090815260408083203384529091529020555b6110dd858585611d92565b50600195945050505050565b601d546012546001600160a01b039081166000908152601e60205260408082205460115461010090049093168252812054909261114b929091611145919061113f906b01d290004395eb7bbfffffff1990611f66565b90611f66565b90611c38565b905090565b600a5481565b61115e6116e5565b61116757600080fd5b6004805460ff60a01b1916600160a01b179055565b6111846116e5565b61118d57600080fd5b600480546001600160a01b039092166001600160a01b0319909216821790556000526006602052565b6111be6116e5565b6111c757600080fd5b6111d081611fa8565b50565b60025460ff1690565b60006111e66116e5565b6111ef57600080fd5b6040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b15801561123e57600080fd5b505af1158015611252573d6000803e3d6000fd5b505050506040513d602081101561126857600080fd5b50519392505050565b600454600090600160a01b900460ff168061128f575061128f6116e5565b806112a957503360009081526005602052604090205460ff165b6112b257600080fd5b336000908152601f602090815260408083206001600160a01b03871684529091529020546112e09083611bde565b336000818152601f602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b61134e33611983565b6113895760405162461bcd60e51b8152600401808060200182810382526030815260200180612a016030913960400191505060405180910390fd5b601c546113969082611bde565b601c8190556001600160801b0310156113b5576001600160801b03601c555b601c546113d5906b0cecb8f27f4200f3a00000006000195b061990611c38565b601d55600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b15801561141e57600080fd5b505af1158015611432573d6000803e3d6000fd5b5050506001600160a01b0383166000908152601e6020526040902054611459915082611bde565b6001600160a01b039092166000908152601e602052604090209190915550565b6114816116e5565b61148a57600080fd5b600f55565b6004546001600160a01b031681565b6114a66116e5565b6114af57600080fd5b60405147906001600160a01b0383169060648584020480156108fc02916000818181858888f193505050501580156114eb573d6000803e3d6000fd5b50505050565b60095481565b60105442101590565b600061114b601d54601a54611c3890919063ffffffff16565b601954600160a01b900460ff1681565b601d546001600160a01b0382166000908152601e60205260408120549091610fc19190611c38565b6115596116e5565b61156257600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b6115b96116e5565b6115c257600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b601960009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561163657600080fd5b505af11580156114eb573d6000803e3d6000fd5b60006116546116e5565b61165d57600080fd5b601b5460ff16156116a1576040805162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b604482015290519081900360640190fd5b6116ab8383611fea565b9392505050565b6015546001600160a01b031681565b601b5460ff161590565b600f5481565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60115460ff1681565b61170c6116e5565b61171557600080fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f055780601f10610eda57610100808354040283529160200191610f05565b60075481565b6117ad6116e5565b6117b657600080fd5b6111d081612141565b6117c833611fa8565b565b6117d26116e5565b6117db57600080fd5b601055565b600454600090600160a01b900460ff16806117fe57506117fe6116e5565b8061181857503360009081526005602052604090205460ff165b61182157600080fd5b336000908152601f602090815260408083206001600160a01b038716845290915290205480831061187557336000908152601f602090815260408083206001600160a01b03881684529091528120556118a4565b61187f8184611f66565b336000908152601f602090815260408083206001600160a01b03891684529091529020555b336000818152601f602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6019546001600160a01b031681565b6000826001600160a01b03811661192f57600080fd5b600454600160a01b900460ff168061194a575061194a6116e5565b8061196457503360009081526005602052604090205460ff165b61196d57600080fd5b611978338585611d92565b506001949350505050565b6000610fc1600383612183565b60105481565b6013546001600160a01b031681565b60085481565b6119b36116e5565b6119bc57600080fd5b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156119f4573d6000803e3d6000fd5b505050565b611a016116e5565b611a0a57600080fd5b6019805460ff60a01b1916600160a01b85151502179055611a4482611a3e836b0cecb8f27f4200f3a00000006000196113cd565b906121ea565b601a55505050565b600454600160a01b900460ff1681565b6001600160a01b031660009081526006602052604090205460ff1690565b601d546019546001600160a01b03166000908152601e602052604081205490918291611aa591611c38565b90506116ab611ab26110e9565b611145611ac08460026121ea565b86906121ea565b611acf6116e5565b611ad857600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b600e5481565b611b0a6116e5565b611b1357600080fd5b601380546001600160a01b039485166001600160a01b031991821617909155601480549385169382169390931790925560158054919093169116179055565b6001600160a01b039182166000908152601f6020908152604080832093909416825291909152205490565b611b856116e5565b611b8e57600080fd5b6011805460ff1916911515919091179055565b611ba96116e5565b611bb257600080fd5b6111d081612243565b6018546001600160a01b031681565b602080526000908152604090205460ff1681565b6000828201838110156116ab576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bd565b611c848282612183565b15611cd6576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008184841115611d8a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d4f578181015183820152602001611d37565b50505050905090810190601f168015611d7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038316600090815260208052604081205460ff16158015611dd257506001600160a01b038316600090815260208052604090205460ff16155b611e12576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601b5460ff1615611e2f57611e28848484612322565b90506116ab565b6000611e46601d54846121ea90919063ffffffff16565b9050611e506123b4565b15611e5d57611e5d61240a565b6001600160a01b0385166000908152601e6020526040902054611e809082611f66565b6001600160a01b0386166000908152601e6020526040812091909155611ea68686612824565b611eb05781611ebb565b611ebb868684612878565b6001600160a01b0386166000908152601e6020526040902054909150611ee19082611bde565b6001600160a01b038087166000818152601e6020526040902092909255601d54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f32908590611c38565b60408051918252519081900360200190a3611f4b6114f7565b8015611f59575060115460ff165b156110dd576110dd61294a565b60006116ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cfb565b611fb3600382612999565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60008161203257601c54604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250601c54610fc1565b600082121561205457601c5461204c906000849003611f66565b601c55612065565b601c546120619083611bde565b601c555b601c546001600160801b031015612082576001600160801b03601c555b601c5461209e906b0cecb8f27f4200f3a00000006000196113cd565b601d55600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201926000929082900301818387803b1580156120e757600080fd5b505af11580156120fb573d6000803e3d6000fd5b5050601c5460408051918252518693507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250601c5492915050565b61214c600382611c7a565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b0382166121ca5760405162461bcd60e51b8152600401808060200182810382526022815260200180612a736022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6000826121f957506000610fc1565b8282028284828161220657fe5b04146116ab5760405162461bcd60e51b8152600401808060200182810382526021815260200180612a526021913960400191505060405180910390fd5b6001600160a01b03811661225657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000818361230c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611d4f578181015183820152602001611d37565b50600083858161231857fe5b0495945050505050565b60008061233a601d54846121ea90919063ffffffff16565b6001600160a01b0386166000908152601e60205260409020549091506123609082611f66565b6001600160a01b038087166000908152601e6020526040808220939093559086168152205461238f9082611bde565b6001600160a01b0385166000908152601e602052604090205550600190509392505050565b6019546000906001600160a01b031633148015906123d55750601b5460ff16155b80156123ea5750601954600160a01b900460ff165b801561114b575050601a54306000908152601e6020526040902054101590565b601b805460ff1916600117905560165460175460009161242991610fcd565b61243557600754612438565b60005b601d54306000908152601e60205260408120549293509161245891611c38565b9050600061247a6002611145600b5461114587876121ea90919063ffffffff16565b905060006124888383611f66565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106124bc57fe5b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b505181518290600190811061254b57fe5b6001600160a01b0392831660209182029290920181019190915260185460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156125e55781810151838201526020016125cd565b505050509050019650505050505050600060405180830381600087803b15801561260e57600080fd5b505af1158015612622573d6000803e3d6000fd5b50505050600061263b8247611f6690919063ffffffff16565b9050600061265661264d896002611c38565b600b5490611f66565b9050600061266b60026111458481878e6121ea565b9050600061268883611145600954876121ea90919063ffffffff16565b905060006126a584611145600854886121ea90919063ffffffff16565b6014546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146126fc576040519150601f19603f3d011682016040523d82523d6000602084013e612701565b606091505b50506015546040519192506001600160a01b0316906175309085906000818181858888f193505050503d8060008114612756576040519150601f19603f3d011682016040523d82523d6000602084013e61275b565b606091505b5060009250508a15905061280c576018546013546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b1580156127de57600080fd5b505af11580156127f2573d6000803e3d6000fd5b50505050506040513d606081101561280957600080fd5b50505b5050601b805460ff1916905550505050505050505050565b6019546000906001600160a01b038481169116148061285057506019546001600160a01b038381169116145b80156116ab575050506001600160a01b031660009081526006602052604090205460ff161590565b600b54601954600091906001600160a01b03858116911614156128a657600a546128a3908290611bde565b90505b600c546000906128ba9061114586856121ea565b306000908152601e60205260409020549091506128d79082611bde565b306000818152601e6020526040902091909155601d546001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612925908590611c38565b60408051918252519081900360200190a36129408482611f66565b9695505050505050565b601b5460ff166117c85742600061295f6110e9565b9050600061297e600e54611145600d54856121ea90919063ffffffff16565b905061298a8382611fea565b5050600f549190910160105550565b6129a38282612183565b6129de5760405162461bcd60e51b8152600401808060200182810382526021815260200180612a316021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212209eb412422cd4cef90b72044b752d277489594498470066caf91e8e81e5e9b05c64736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f491e7b69e4244ad4002bc14e878a34207e38c290000000000000000000000009d4c0add260f70b2d3a363be27a1aeef76f726b800000000000000000000000032276a3a773a06b97815338dff6bcbcfd6bb4856000000000000000000000000c4867e5d3f25b47a3be0a15bd70c69d7b93b169e
-----Decoded View---------------
Arg [0] : _router (address): 0xF491e7B69E4244ad4002BC14e878a34207E38c29
Arg [1] : _autoLiquidityReceiver (address): 0x9d4c0ADd260F70B2D3A363be27a1aeef76f726b8
Arg [2] : _treasuryReceiver (address): 0x32276A3a773A06B97815338DfF6bcBcFD6bB4856
Arg [3] : _riskFreeValueReceiver (address): 0xc4867E5D3f25B47a3bE0A15Bd70C69d7B93b169e
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000f491e7b69e4244ad4002bc14e878a34207e38c29
Arg [1] : 0000000000000000000000009d4c0add260f70b2d3a363be27a1aeef76f726b8
Arg [2] : 00000000000000000000000032276a3a773a06b97815338dff6bcbcfd6bb4856
Arg [3] : 000000000000000000000000c4867e5d3f25b47a3be0a15bd70c69d7b93b169e
Deployed Bytecode Sourcemap
8951:16764:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12679:202;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12679:202:0;;;;;;;:::i;:::-;;24127:528;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24127:528:0;;;;;;;;;;;;;;;;;;;;;;:::i;5960:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10470:31;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;10470:31:0;;;;;;;;;;;;;;21065:286;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21065:286:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;10046:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;25525:150;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25525:150:0;;;;;;;:::i;10004:35::-;;;;;;;;;;;;;:::i;14686:102::-;;;;;;;;;;;;;:::i;9920:77::-;;;;;;;;;;;;;:::i;23088:172::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23088:172:0;;;;;;;:::i;16921:457::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16921:457:0;;;;;;;;;;;;;;;;;:::i;22865:215::-;;;;;;;;;;;;;:::i;9887:26::-;;;;;;;;;;;;;:::i;21480:114::-;;;;;;;;;;;;;:::i;15052:140::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15052:140:0;-1:-1:-1;;;;;15052:140:0;;:::i;23367:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23367:97:0;-1:-1:-1;;;;;23367:97:0;;:::i;6146:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24912:181;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24912:181:0;;;;;;;;:::i;20618:439::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20618:439:0;;;;;;;;:::i;21988:395::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21988:395:0;;;;;;;;:::i;13000:126::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13000:126:0;;:::i;9150:31::-;;;;;;;;;;;;;:::i;24663:241::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24663:241:0;;;;;;-1:-1:-1;;;;;24663:241:0;;:::i;9845:35::-;;;;;;;;;;;;;:::i;13134:106::-;;;;;;;;;;;;;:::i;23565:126::-;;;;;;;;;;;;;:::i;10696:30::-;;;;;;;;;;;;;:::i;15402:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15402:138:0;-1:-1:-1;;;;;15402:138:0;;:::i;8506:126::-;;;;;;;;;;;;;:::i;21714:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21714:101:0;-1:-1:-1;;;;;21714:101:0;;:::i;23699:74::-;;;;;;;;;;;;;:::i;14494:184::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14494:184:0;;;;;;;:::i;10508:36::-;;;;;;;;;;;;;:::i;23472:85::-;;;;;;;;;;;;;:::i;10147:37::-;;;;;;;;;;;;;:::i;8241:79::-;;;;;;;;;;;;;:::i;8406:92::-;;;;;;;;;;;;;:::i;10259:29::-;;;;;;;;;;;;;:::i;12446:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12446:111:0;;;;;;;;;;:::i;6051:87::-;;;;;;;;;;;;;:::i;9770:31::-;;;;;;;;;;;;;:::i;23268:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23268:91:0;-1:-1:-1;;;;;23268:91:0;;:::i;5270:77::-;;;;;;;;;;;;;:::i;12565:106::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12565:106:0;;:::i;19981:629::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19981:629:0;;;;;;;;:::i;10668:19::-;;;;;;;;;;;;;:::i;14796:248::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14796:248:0;;;;;;;;:::i;5153:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5153:109:0;-1:-1:-1;;;;;5153:109:0;;:::i;10191:61::-;;;;;;;;;;;;;:::i;10427:36::-;;;;;;;;;;;;;:::i;9808:30::-;;;;;;;;;;;;;:::i;13248:158::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13248:158:0;-1:-1:-1;;;;;13248:158:0;;:::i;22391:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22391:230:0;;;;;;;;;;;;;;:::i;9190:39::-;;;;;;;;;;;;;:::i;21359:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21359:113:0;-1:-1:-1;;;;;21359:113:0;;:::i;25235:278::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25235:278:0;;:::i;21602:104::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21602:104:0;-1:-1:-1;;;;;21602:104:0;;:::i;10089:51::-;;;;;;;;;;;;;:::i;23781:338::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23781:338:0;;;;;;;;;;;;;;;;;;;:::i;15200:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15200:194:0;;;;;;;;;;:::i;12889:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12889:103:0;;;;:::i;8640:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8640:109:0;-1:-1:-1;;;;;8640:109:0;;:::i;10637:24::-;;;;;;;;;;;;;:::i;11294:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11294:41:0;-1:-1:-1;;;;;11294:41:0;;:::i;12679:202::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;12788:11:::1;:26:::0;;;;12825:22:::1;:48:::0;12679:202::o;24127:528::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;24341:12:::1;:28:::0;;;24380:16:::1;:36:::0;;;24427:11:::1;:26:::0;;;24464:7:::1;:18:::0;;;24504:51:::1;24399:17:::0;24504:29:::1;24356:13:::0;24441:12;24504:16:::1;:29::i;:::-;:33:::0;::::1;:51::i;:::-;24493:8;:62:::0;24566:14:::1;:32:::0;;;24645:1:::1;24583:15:::0;24628:18:::1;24617:8;;:29;24609:38;;;::::0;::::1;;24127:528:::0;;;;;:::o;5960:83::-;6030:5;6023:12;;;;;;;;-1:-1:-1;;6023:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5997:13;;6023:12;;6030:5;;6023:12;;6030:5;6023:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5960:83;:::o;10470:31::-;;;-1:-1:-1;;;;;10470:31:0;;:::o;21065:286::-;9383:27;;21201:4;;-1:-1:-1;;;9383:27:0;;;;;:40;;;9414:9;:7;:9::i;:::-;9383:69;;;-1:-1:-1;9441:10:0;9427:25;;;;:13;:25;;;;;;;;9383:69;9375:78;;;;;;21241:10:::1;21223:29;::::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;21223:38:0;::::1;::::0;;;;;;;;;;:46;;;21285:36;;;;;;;21223:38;;21241:10;21285:36:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;21339:4:0::1;9464:1;21065:286:::0;;;;:::o;10046:36::-;;;;:::o;25525:150::-;25605:4;25661:6;25629:29;25649:8;25629:19;:29::i;:::-;:38;;25525:150;-1:-1:-1;;;25525:150:0:o;10004:35::-;;;;:::o;14686:102::-;14768:12;;14686:102;:::o;9920:77::-;;;;:::o;23088:172::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;23180:15:::1;:24:::0;;;;23215:26:::1;:37:::0;23088:172::o;16921:457::-;17064:4;17051:2;-1:-1:-1;;;;;9536:18:0;;9528:27;;;;;;-1:-1:-1;;;;;17085:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;17109:10:::1;17085:35:::0;;;;;;;;-1:-1:-1;;17085:50:0::1;17081:225;;17190:104;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;17190:104:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;17190:23:0;::::1;-1:-1:-1::0;17190:23:0;;;:17:::1;:23:::0;;;;;17232:10:::1;17190:67:::0;;;;;;;;;;:104:::1;::::0;17262:5;;17190:71:::1;:104::i;:::-;-1:-1:-1::0;;;;;17152:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;17176:10:::1;17152:35:::0;;;;;;;:142;17081:225:::1;17318:30;17332:4;17338:2;17342:5;17318:13;:30::i;:::-;-1:-1:-1::0;17366:4:0::1;::::0;16921:457;-1:-1:-1;;;;;16921:457:0:o;22865:215::-;23041:16;;23011:4;;-1:-1:-1;;;;;23011:4:0;;;22918:7;22998:18;;;:12;:18;;;;;;;22987:4;;23011;22987;;;;;22974:18;;;;;22918:7;;22958:114;;23041:16;;22959:58;;22998:18;22959:34;;-1:-1:-1;;10962:54:0;22959:14;:34::i;:::-;:38;;:58::i;:::-;22958:64;;:114::i;:::-;22938:134;;22865:215;:::o;9887:26::-;;;;:::o;21480:114::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;21552:27:::1;:34:::0;;-1:-1:-1;;;;21552:34:0::1;-1:-1:-1::0;;;21552:34:0::1;::::0;;21480:114::o;15052:140::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;15115:12:::1;:36:::0;;-1:-1:-1;;;;;15115:36:0;;::::1;-1:-1:-1::0;;;;;;15115:36:0;;::::1;::::0;::::1;::::0;;:12:::1;15162:22:::0;:12:::1;:22;::::0;15052:140::o;23367:97::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;23434:22:::1;23448:7;23434:13;:22::i;:::-;23367:97:::0;:::o;6146:83::-;6212:9;;;;6146:83;:::o;24912:181::-;24997:12;8368:9;:7;:9::i;:::-;8360:18;;;;;;25029:56:::1;::::0;;-1:-1:-1;;;25029:56:0;;25066:10:::1;25029:56;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;25029:36:0;::::1;::::0;::::1;::::0;:56;;;;;::::1;::::0;;;;;;;;-1:-1:-1;25029:36:0;:56;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;25029:56:0;;24912:181;-1:-1:-1;;;24912:181:0:o;20618:439::-;9383:27;;20751:4;;-1:-1:-1;;;9383:27:0;;;;;:40;;;9414:9;:7;:9::i;:::-;9383:69;;;-1:-1:-1;9441:10:0;9427:25;;;;:13;:25;;;;;;;;9383:69;9375:78;;;;;;20832:10:::1;20814:29;::::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;20814:62:0;::::1;::::0;;;;;;;;:78:::1;::::0;20881:10;20814:66:::1;:78::i;:::-;20791:10;20773:29;::::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;20773:38:0;::::1;::::0;;;;;;;;;;:119;;;20908;;;;;;20773:38;;20908:119:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;21045:4:0::1;20618:439:::0;;;;:::o;21988:395::-;5052:20;5061:10;5052:8;:20::i;:::-;5044:81;;;;-1:-1:-1;;;5044:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22083:12:::1;::::0;:33:::1;::::0;22108:6;22083:16:::1;:33::i;:::-;22068:12;:48:::0;;;-1:-1:-1;;;;;;22129:83:0::1;;;-1:-1:-1::0;;;;;22175:12:0::1;:25:::0;22129:83:::1;22258:12;::::0;22243:28:::1;::::0;9737:24;-1:-1:-1;;10977:38:0::1;;10962:54:::0;;22243:14:::1;:28::i;:::-;22224:16;:47:::0;22282:12:::1;::::0;;:19:::1;::::0;;-1:-1:-1;;;;;;22282:19:0;;;;-1:-1:-1;;;;;22282:12:0;;::::1;::::0;:17:::1;::::0;:19;;::::1;::::0;:12:::1;::::0;:19;;;;;;:12;;:19;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;22340:23:0;::::1;;::::0;;;:12:::1;:23;::::0;;;;;:35:::1;::::0;-1:-1:-1;22368:6:0;22340:27:::1;:35::i;:::-;-1:-1:-1::0;;;;;22314:23:0;;::::1;;::::0;;;:12:::1;:23;::::0;;;;:61;;;;-1:-1:-1;21988:395:0:o;13000:126::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;13084:15:::1;:34:::0;13000:126::o;9150:31::-;;;-1:-1:-1;;;;;9150:31:0;;:::o;24663:241::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;24812:84:::1;::::0;24780:21:::1;::::0;-1:-1:-1;;;;;24812:22:0;::::1;::::0;24882:3:::1;24850:28:::0;;::::1;24849:36;24812:84:::0;::::1;;;::::0;::::1;::::0;;;24849:36;24812:22;:84;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8389:1;24663:241:::0;;:::o;9845:35::-;;;;:::o;13134:106::-;13203:10;;13217:15;-1:-1:-1;13203:29:0;13134:106;:::o;23565:126::-;23618:7;23645:38;23666:16;;23645;;:20;;:38;;;;:::i;10696:30::-;;;-1:-1:-1;;;10696:30:0;;;;;:::o;15402:138::-;15515:16;;-1:-1:-1;;;;;15493:17:0;;15466:7;15493:17;;;:12;:17;;;;;;15466:7;;15493:39;;:17;:21;:39::i;8506:126::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;8587:6:::1;::::0;8568:26:::1;::::0;8587:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;8587:6:0::1;::::0;8568:26:::1;::::0;;;::::1;8605:6;:19:::0;;-1:-1:-1;;;;;;8605:19:0::1;::::0;;8506:126::o;21714:101::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;-1:-1:-1;;;;;21781:19:0::1;;::::0;;;:12:::1;:19;::::0;;;;:26;;-1:-1:-1;;21781:26:0::1;21803:4;21781:26;::::0;;21714:101::o;23699:74::-;23753:4;;;;;;;;;-1:-1:-1;;;;;23753:4:0;-1:-1:-1;;;;;23741:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:184;14573:7;8368:9;:7;:9::i;:::-;8360:18;;;;;;14602:6:::1;::::0;::::1;;14601:7;14593:29;;;::::0;;-1:-1:-1;;;14593:29:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;14593:29:0;;;;;;;;;;;;;::::1;;14640:30;14651:5;14658:11;14640:10;:30::i;:::-;14633:37:::0;14494:184;-1:-1:-1;;;14494:184:0:o;10508:36::-;;;-1:-1:-1;;;;;10508:36:0;;:::o;23472:85::-;23543:6;;;;23542:7;23472:85;:::o;10147:37::-;;;;:::o;8241:79::-;8306:6;;;;;-1:-1:-1;;;;;8306:6:0;;8241:79::o;8406:92::-;8484:6;;;;;-1:-1:-1;;;;;8484:6:0;8470:10;:20;;8406:92::o;10259:29::-;;;;;;:::o;12446:111::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;-1:-1:-1;;;;;12525:16:0;;;::::1;;::::0;;;:9:::1;:16:::0;;;;;:24;;-1:-1:-1;;12525:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12446:111::o;6051:87::-;6123:7;6116:14;;;;;;;;-1:-1:-1;;6116:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6090:13;;6116:14;;6123:7;;6116:14;;6123:7;6116:14;;;;;;;;;;;;;;;;;;;;;;;;9770:31;;;;:::o;23268:91::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;23332:19:::1;23343:7;23332:10;:19::i;5270:77::-:0;5314:25;5328:10;5314:13;:25::i;:::-;5270:77::o;12565:106::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;12639:10:::1;:24:::0;12565:106::o;19981:629::-;9383:27;;20119:4;;-1:-1:-1;;;9383:27:0;;;;;:40;;;9414:9;:7;:9::i;:::-;9383:69;;;-1:-1:-1;9441:10:0;9427:25;;;;:13;:25;;;;;;;;9383:69;9375:78;;;;;;20178:10:::1;20141:16;20160:29:::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;20160:38:0;::::1;::::0;;;;;;;;20213:27;;::::1;20209:237;;20275:10;20298:1;20257:29:::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;20257:38:0;::::1;::::0;;;;;;;:42;20209:237:::1;;;20373:61;:8:::0;20404:15;20373:12:::1;:61::i;:::-;20350:10;20332:29;::::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;20332:38:0;::::1;::::0;;;;;;;:102;20209:237:::1;20484:10;20531:29;::::0;;;:17:::1;:29;::::0;;;;;;;-1:-1:-1;;;;;20461:119:0;::::1;20531:38:::0;;;;;;;;;;;20461:119;;;;;;;;;20484:10;20461:119:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;20598:4:0::1;::::0;19981:629;-1:-1:-1;;;19981:629:0:o;10668:19::-;;;-1:-1:-1;;;;;10668:19:0;;:::o;14796:248::-;14956:4;14901:2;-1:-1:-1;;;;;9536:18:0;;9528:27;;;;;;9383::::1;::::0;-1:-1:-1;;;9383:27:0;::::1;;;::::0;:40:::1;;;9414:9;:7;:9::i;:::-;9383:69;;;-1:-1:-1::0;9441:10:0::1;9427:25;::::0;;;:13:::1;:25;::::0;;;;;::::1;;9383:69;9375:78;;;::::0;::::1;;14978:36:::2;14992:10;15004:2;15008:5;14978:13;:36::i;:::-;-1:-1:-1::0;15032:4:0::2;::::0;14796:248;-1:-1:-1;;;;14796:248:0:o;5153:109::-;5209:4;5233:21;:8;5246:7;5233:12;:21::i;10191:61::-;;;;:::o;10427:36::-;;;-1:-1:-1;;;;;10427:36:0;;:::o;9808:30::-;;;;:::o;13248:158::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;13362:36:::1;::::0;13330:21:::1;::::0;-1:-1:-1;;;;;13362:27:0;::::1;::::0;:36;::::1;;;::::0;13330:21;;13312:15:::1;13362:36:::0;13312:15;13362:36;13330:21;13362:27;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8389:1;13248:158:::0;:::o;22391:230::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;22529:11:::1;:22:::0;;-1:-1:-1;;;;22529:22:0::1;-1:-1:-1::0;;;22529:22:0;::::1;;;;::::0;;22581:32:::1;22608:4:::0;22581:22:::1;22596:6:::0;9737:24;-1:-1:-1;;10977:38:0::1;::::0;22581:22:::1;:26:::0;::::1;:32::i;:::-;22562:16;:51:::0;-1:-1:-1;;;22391:230:0:o;9190:39::-;;;-1:-1:-1;;;9190:39:0;;;;;:::o;21359:113::-;-1:-1:-1;;;;;21445:19:0;21421:4;21445:19;;;:12;:19;;;;;;;;;21359:113::o;25235:278::-;25405:16;;25395:4;;-1:-1:-1;;;;;25395:4:0;25330:7;25382:18;;;:12;:18;;;;;;25330:7;;;;25382:40;;:22;:40::i;:::-;25355:67;;25440:65;25482:22;:20;:22::i;:::-;25440:37;25453:23;:16;25474:1;25453:20;:23::i;:::-;25440:8;;:12;:37::i;21602:104::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;-1:-1:-1;;;;;21671:20:0::1;;::::0;;;:13:::1;:20;::::0;;;;:27;;-1:-1:-1;;21671:27:0::1;21694:4;21671:27;::::0;;21602:104::o;10089:51::-;;;;:::o;23781:338::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;23961:21:::1;:46:::0;;-1:-1:-1;;;;;23961:46:0;;::::1;-1:-1:-1::0;;;;;;23961:46:0;;::::1;;::::0;;;24018:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;24065:21:::1;:46:::0;;;;;::::1;::::0;::::1;;::::0;;23781:338::o;15200:194::-;-1:-1:-1;;;;;15352:25:0;;;15320:7;15352:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;15200:194::o;12889:103::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;12960:10:::1;:24:::0;;-1:-1:-1;;12960:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12889:103::o;8640:109::-;8368:9;:7;:9::i;:::-;8360:18;;;;;;8713:28:::1;8732:8;8713:18;:28::i;10637:24::-:0;;;-1:-1:-1;;;;;10637:24:0;;:::o;11294:41::-;;;;;;;;;;;;;;;:::o;2451:181::-;2509:7;2541:5;;;2565:6;;;;2557:46;;;;;-1:-1:-1;;;2557:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3276:132;3334:7;3361:39;3365:1;3368;3361:39;;;;;;;;;;;;;;;;;:3;:39::i;4001:178::-;4079:18;4083:4;4089:7;4079:3;:18::i;:::-;4078:19;4070:63;;;;;-1:-1:-1;;;4070:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4144:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4144:27:0;4167:4;4144:27;;;4001:178::o;2784:226::-;2904:7;2940:12;2932:6;;;;2924:29;;;;-1:-1:-1;;;2924:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2976:5:0;;;2784:226::o;15895:1018::-;-1:-1:-1;;;;;16047:17:0;;16021:4;16047:17;;;:9;:17;;;;;;;;16046:18;:43;;;;-1:-1:-1;;;;;;16069:20:0;;;;;;:9;:20;;;;;;;;16068:21;16046:43;16038:68;;;;;-1:-1:-1;;;16038:68:0;;;;;;;;;;;;-1:-1:-1;;;16038:68:0;;;;;;;;;;;;;;;16121:6;;;;16117:87;;;16151:41;16166:6;16174:9;16185:6;16151:14;:41::i;:::-;16144:48;;;;16117:87;16216:17;16236:28;16247:16;;16236:6;:10;;:28;;;;:::i;:::-;16216:48;;16281:16;:14;:16::i;:::-;16277:59;;;16314:10;:8;:10::i;:::-;-1:-1:-1;;;;;16371:20:0;;;;;;:12;:20;;;;;;:35;;16396:9;16371:24;:35::i;:::-;-1:-1:-1;;;;;16348:20:0;;;;;;:12;:20;;;;;:58;;;;16447:32;16361:6;16469:9;16447:13;:32::i;:::-;:110;;16548:9;16447:110;;;16495:37;16503:6;16511:9;16522;16495:7;:37::i;:::-;-1:-1:-1;;;;;16594:23:0;;;;;;:12;:23;;;;;;16419:138;;-1:-1:-1;16594:70:0;;16419:138;16594:27;:70::i;:::-;-1:-1:-1;;;;;16568:23:0;;;;;;;:12;:23;;;;;:96;;;;16772:16;;16682:118;;;;;;16750:39;;:17;;:21;:39::i;:::-;16682:118;;;;;;;;;;;;;;;16816:14;:12;:14::i;:::-;:28;;;;-1:-1:-1;16834:10:0;;;;16816:28;16813:69;;;16861:9;:7;:9::i;2640:136::-;2698:7;2725:43;2729:1;2732;2725:43;;;;;;;;;;;;;;;;;:3;:43::i;5485:130::-;5545:24;:8;5561:7;5545:15;:24::i;:::-;5585:22;;-1:-1:-1;;;;;5585:22:0;;;;;;;;5485:130;:::o;13414:680::-;13486:7;13510:16;13506:118;;13565:12;;13548:30;;;;;;;13558:5;;13548:30;;;;;;;;;;-1:-1:-1;13600:12:0;;13593:19;;13506:118;13654:1;13640:11;:15;13636:188;;;13687:12;;:39;;13712:12;;;;13687:16;:39::i;:::-;13672:12;:54;13636:188;;;13774:12;;:38;;13799:11;13774:16;:38::i;:::-;13759:12;:53;13636:188;13840:12;;-1:-1:-1;;;;;;13836:83:0;;;-1:-1:-1;;;;;13882:12:0;:25;13836:83;13965:12;;13950:28;;9737:24;-1:-1:-1;;10977:38:0;;13950:28;13931:16;:47;13989:12;;;:19;;;-1:-1:-1;;;;;;13989:19:0;;;;-1:-1:-1;;;;;13989:12:0;;;;:17;;:19;;;;:12;;:19;;;;;;:12;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14043:12:0;;14026:30;;;;;;;14036:5;;-1:-1:-1;14026:30:0;;-1:-1:-1;14026:30:0;;;;;;;;-1:-1:-1;14074:12:0;;13414:680;;;;:::o;5355:122::-;5412:21;:8;5425:7;5412:12;:21::i;:::-;5449:20;;-1:-1:-1;;;;;5449:20:0;;;;;;;;5355:122;:::o;4537:203::-;4609:4;-1:-1:-1;;;;;4634:21:0;;4626:68;;;;-1:-1:-1;;;4626:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4712:20:0;:11;:20;;;;;;;;;;;;;;;4537:203::o;3018:250::-;3076:7;3100:6;3096:47;;-1:-1:-1;3130:1:0;3123:8;;3096:47;3167:5;;;3171:1;3167;:5;:1;3191:5;;;;;:10;3183:56;;;;-1:-1:-1;;;3183:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8757:187;-1:-1:-1;;;;;8831:22:0;;8823:31;;;;;;8891:6;;8870:38;;-1:-1:-1;;;;;8870:38:0;;;;8891:6;;;;;8870:38;;;;;8919:6;:17;;-1:-1:-1;;;;;8919:17:0;;;;;-1:-1:-1;;;;;;8919:17:0;;;;;;;;;8757:187::o;3416:225::-;3536:7;3571:12;3564:5;3556:28;;;;-1:-1:-1;;;3556:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:9;3611:1;3607;:5;;;;;;;3416:225;-1:-1:-1;;;;;3416:225:0:o;15548:339::-;15666:4;15683:17;15703:28;15714:16;;15703:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;15763:18:0;;;;;;:12;:18;;;;;;15683:48;;-1:-1:-1;15763:33:0;;15683:48;15763:22;:33::i;:::-;-1:-1:-1;;;;;15742:18:0;;;;;;;:12;:18;;;;;;:54;;;;15826:16;;;;;;;:31;;15847:9;15826:20;:31::i;:::-;-1:-1:-1;;;;;15807:16:0;;;;;;:12;:16;;;;;:50;-1:-1:-1;15875:4:0;;-1:-1:-1;15548:339:0;;;;;:::o;22629:228::-;22729:4;;22678;;-1:-1:-1;;;;;22729:4:0;22715:10;:18;;;;:42;;-1:-1:-1;22751:6:0;;;;22750:7;22715:42;:70;;;;-1:-1:-1;22774:11:0;;-1:-1:-1;;;22774:11:0;;;;22715:70;:134;;;;-1:-1:-1;;22833:16:0;;22823:4;22802:27;;;;:12;:27;;;;;;:47;;;22629:228::o;17386:2053::-;10849:6;:13;;-1:-1:-1;;10849:13:0;10858:4;10849:13;;;17495:15:::1;::::0;17525:26:::1;::::0;10849:6;;17465:97:::1;::::0;:15:::1;:97::i;:::-;:142;;17595:12;;17465:142;;;17578:1;17465:142;17695:16;::::0;17670:4:::1;17618:28;17649:27:::0;;;:12:::1;:27;::::0;;;;;17435:172;;-1:-1:-1;17618:28:0;17649:73:::1;::::0;:31:::1;:73::i;:::-;17618:104;;17733:23;17759:108;17865:1;17759:87;17837:8;;17759:59;17798:19;17759:20;:38;;:59;;;;:::i;:108::-;17733:134:::0;-1:-1:-1;17878:20:0::1;17901:41;:20:::0;17733:134;17901:24:::1;:41::i;:::-;17979:16;::::0;;17993:1:::1;17979:16:::0;;;;;::::1;::::0;;17878:64;;-1:-1:-1;17955:21:0::1;::::0;17979:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17979:16:0::1;17955:40;;18024:4;18006;18011:1;18006:7;;;;;;;;-1:-1:-1::0;;;;;18006:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18050:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;18050:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;18006:7;;18050:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18050:13:0;18040:7;;:4;;18045:1:::1;::::0;18040:7;::::1;;;;;-1:-1:-1::0;;;;;18040:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18134:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;18134:188:0;;::::1;::::0;::::1;::::0;;;18076:21:::1;18134:188:::0;;;;;;18276:4:::1;18134:188:::0;;;;;;18296:15:::1;18134:188:::0;;;;;;;;;;;;;;;;;;;;;18100:21:::1;::::0;18134:6;;;::::1;::::0;:57:::1;::::0;18206:12;;18076:21;;18249:4;;18134:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;18076:21;18134:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18335:17;18355:40;18381:13;18355:21;:25;;:40;;;;:::i;:::-;18335:60:::0;-1:-1:-1;18408:19:0::1;18430:40;18443:26;:19:::0;18467:1:::1;18443:23;:26::i;:::-;18430:8;::::0;;:12:::1;:40::i;:::-;18408:62:::0;-1:-1:-1;18483:26:0::1;18512:100;18610:1;18512:79;18408:62:::0;18512:79;:9;18540:19;18512:27:::1;:48::i;:100::-;18483:129;;18623:30;18656:48;18692:11;18656:31;18670:16;;18656:9;:13;;:31;;;;:::i;:48::-;18623:81;;18715:25;18743:67;18788:11;18743:26;18757:11;;18743:9;:13;;:26;;;;:::i;:67::-;18850:16;::::0;18842:109:::1;::::0;18715:95;;-1:-1:-1;18824:12:0::1;::::0;-1:-1:-1;;;;;18850:16:0;;::::1;::::0;18931:5:::1;::::0;18715:95;;18824:12;18842:109;18824:12;18842:109;18715:95;18850:16;18931:5;18842:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18984:21:0::1;::::0;18976:119:::1;::::0;18823:128;;-1:-1:-1;;;;;;18984:21:0::1;::::0;19075:5:::1;::::0;19033:22;;18984:21:::1;18976:119:::0;18984:21;18976:119;19033:22;18984:21;19075:5;18976:119:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;19118:5:0::1;::::0;-1:-1:-1;;19140:19:0;;;-1:-1:-1;19136:296:0::1;;19176:6;::::0;19350:21:::1;::::0;19176:244:::1;::::0;;-1:-1:-1;;;19176:244:0;;19252:4:::1;19176:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;19350:21:0;;::::1;19176:244:::0;;;;19390:15:::1;19176:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;19206:18;;19176:244;;;;;::::1;::::0;;;;;;;;;19206:18;19176:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;19136:296:0::1;-1:-1:-1::0;;10885:6:0;:14;;-1:-1:-1;;10885:14:0;;;-1:-1:-1;;;;;;;;;;17386:2053:0:o;21823:157::-;21920:4;;21895;;-1:-1:-1;;;;;21920:12:0;;;:4;;:12;;:26;;-1:-1:-1;21936:4:0;;-1:-1:-1;;;;;21936:10:0;;;:4;;:10;21920:26;21919:53;;;;-1:-1:-1;;;;;;;;21953:18:0;;;;;:12;:18;;;;;;;;21952:19;;21823:157::o;19447:522::-;19576:8;;19611:4;;19536:7;;19576:8;-1:-1:-1;;;;;19598:17:0;;;19611:4;;19598:17;19595:56;;;19643:7;;19629:22;;:9;;:13;:22::i;:::-;19617:34;;19595:56;19713:14;;19664:17;;19684:44;;:24;:9;19698;19684:13;:24::i;:44::-;19792:4;19771:27;;;;:12;:27;;;;;;19664:64;;-1:-1:-1;19771:66:0;;19664:64;19771:31;:66::i;:::-;19762:4;19741:27;;;;:12;:27;;;;;:96;;;;19899:16;;-1:-1:-1;;;;;19853:64:0;;;;;19885:31;;:9;;:13;:31::i;:::-;19853:64;;;;;;;;;;;;;;;19937:24;:9;19951;19937:13;:24::i;:::-;19930:31;19447:522;-1:-1:-1;;;;;;19447:522:0:o;14102:384::-;14144:6;;;;14140:339;;14183:15;14167:13;14241:22;:20;:22::i;:::-;14213:50;;14278:18;14306:62;14345:22;;14306:34;14328:11;;14306:17;:21;;:34;;;;:::i;:62::-;14278:91;;14386:30;14397:5;14404:11;14386:10;:30::i;:::-;-1:-1:-1;;14452:15:0;;14444:23;;;;14431:10;:36;-1:-1:-1;14102:384:0:o;4259:183::-;4339:18;4343:4;4349:7;4339:3;:18::i;:::-;4331:64;;;;-1:-1:-1;;;4331:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4406:20:0;4429:5;4406:20;;;;;;;;;;;:28;;-1:-1:-1;;4406:28:0;;;4259:183::o
Swarm Source
ipfs://9eb412422cd4cef90b72044b752d277489594498470066caf91e8e81e5e9b05c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.