Source Code
Latest 25 from a total of 13,550 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Exit Pool Disgra... | 20745567 | 426 days ago | IN | 0 ETH | 0.00007872 | ||||
| Exit Pool Disgra... | 20745567 | 426 days ago | IN | 0 ETH | 0.00008241 | ||||
| Withdraw | 20745565 | 426 days ago | IN | 0 ETH | 0.000244 | ||||
| Withdraw | 20745562 | 426 days ago | IN | 0 ETH | 0.00028784 | ||||
| Deposit | 18041042 | 805 days ago | IN | 0 ETH | 0.00228559 | ||||
| Deposit | 16205557 | 1063 days ago | IN | 0 ETH | 0.00227462 | ||||
| Deposit | 15753621 | 1126 days ago | IN | 0 ETH | 0.0017785 | ||||
| Deposit | 15753619 | 1126 days ago | IN | 0 ETH | 0.00174581 | ||||
| Deposit | 15545398 | 1155 days ago | IN | 0 ETH | 0.00095278 | ||||
| Deposit | 15140206 | 1219 days ago | IN | 0 ETH | 0.0014692 | ||||
| Withdraw | 15031016 | 1236 days ago | IN | 0 ETH | 0.00545094 | ||||
| Deposit | 14862068 | 1266 days ago | IN | 0 ETH | 0.00260051 | ||||
| Deposit | 14785821 | 1278 days ago | IN | 0 ETH | 0.00220526 | ||||
| Deposit | 14780437 | 1279 days ago | IN | 0 ETH | 0.00332239 | ||||
| Deposit | 14731721 | 1287 days ago | IN | 0 ETH | 0.00319542 | ||||
| Deposit | 14551373 | 1315 days ago | IN | 0 ETH | 0.00421278 | ||||
| Withdraw | 14371557 | 1343 days ago | IN | 0 ETH | 0.00162705 | ||||
| Withdraw | 14371557 | 1343 days ago | IN | 0 ETH | 0.00162337 | ||||
| Withdraw | 14361779 | 1344 days ago | IN | 0 ETH | 0.00279188 | ||||
| Withdraw | 14352829 | 1346 days ago | IN | 0 ETH | 0.00293201 | ||||
| Withdraw | 14352824 | 1346 days ago | IN | 0 ETH | 0.00272826 | ||||
| Deposit | 14344703 | 1347 days ago | IN | 0 ETH | 0.00286756 | ||||
| Withdraw | 14325815 | 1350 days ago | IN | 0 ETH | 0.00245441 | ||||
| Withdraw | 14325811 | 1350 days ago | IN | 0 ETH | 0.0029249 | ||||
| Withdraw | 14325811 | 1350 days ago | IN | 0 ETH | 0.00252304 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SiloControl
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-10-06
*/
/**
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKkkKWMMMMMMWKkkKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl''dNMMMMMMNo''oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxoOWMMMMMMWkoxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKONMMMMMMXkKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0kXMMMMMMXk0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0O0XMMMMX0O0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOkXNNXk0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk:;::;c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOxOKkdc,....,ldk0Ox0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMWOc,',,,;coddddoc;,,,',lOWMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMXd,.';oOXWMMMMMMWXOo;'.,dXMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMNd,'l0WMMMWNXXNWMMMW0c',dNMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMWX0x,'lXMMMNkdxdollkNMMMKc';dOXMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMNo,'.;OMMMNd,cOOd:.'dNMMWk,'',dWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMXl'..;OMMMXl.',,''.'lXMMMO;..'oNMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMWOdc',xWMMWOc,...',c0WMMNd''cdOWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMWKl';kWMMMN0kxxk0NMMMNx;'cKWWMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMXd;.,o0NMMMMMMMMMMN0l,.,oXMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMXd;'.',cdk0KKKK0kdc,'..,dXMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMW0l,:l:,',,,,,,,,:oc,c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;dNN0o;'..';dKNWk;xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;oNMWNOc''c0NMMMk;xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKl:dKWMKc..cKMMXkccOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXx:lXMXo;;oXMNd;oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOlcdkOkkOOklcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0c'',,;,,':OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNKkxxxxxxxxOXNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWNNNNNNNNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
*/
pragma solidity ^0.6.6;
abstract contract Context {
function _msgSender() internal virtual view returns (address payable) {
return msg.sender;
}
function _msgData() internal virtual view returns (bytes memory) {
this;
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
function mint(address _to, uint256 _amount) external;
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) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
interface SiloControlMigrator {
function migrate(IERC20 token) external returns (IERC20);
}
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
// solhint-disable-next-line no-inline-assembly
assembly {
size := extcodesize(account)
}
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(
address target,
bytes memory data,
uint256 weiValue,
string memory errorMessage
) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{value: weiValue}(
data
);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
// solhint-disable-next-line no-inline-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
library SafeERC20 {
using SafeMath for uint256;
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(
token,
abi.encodeWithSelector(token.transfer.selector, to, value)
);
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(
token,
abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
);
}
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(
token,
abi.encodeWithSelector(token.approve.selector, spender, value)
);
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender).add(
value
);
_callOptionalReturn(
token,
abi.encodeWithSelector(
token.approve.selector,
spender,
newAllowance
)
);
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender).sub(
value,
"SafeERC20: decreased allowance below zero"
);
_callOptionalReturn(
token,
abi.encodeWithSelector(
token.approve.selector,
spender,
newAllowance
)
);
}
function _callOptionalReturn(IERC20 token, bytes memory data) private {
bytes memory returndata = address(token).functionCall(
data,
"SafeERC20: low-level call failed"
);
if (returndata.length > 0) {
// solhint-disable-next-line max-line-length
require(
abi.decode(returndata, (bool)),
"SafeERC20: ERC20 operation did not succeed"
);
}
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
contract TokenRecover is Ownable {
function recoverERC20(address tokenAddress, uint256 tokenAmount) public onlyOwner {
IERC20(tokenAddress).transfer(owner(), tokenAmount);
}
}
contract SiloControl is Ownable, TokenRecover {
using SafeMath for uint256;
using SafeERC20 for IERC20;
struct Depositor {
uint256 amount;
uint256 mintDebt;
}
struct SiloData {
IERC20 Token;
uint256 weight;
uint256 lastMintBlock;
uint256 mintedTokenPerShare;
}
IERC20 public mintedToken;
address public teller;
uint256 public mintPerBlock;
SiloControlMigrator public migrator;
SiloData[] public siloData;
mapping(address => bool) public TokenExistsInSilo;
mapping(uint256 => mapping(address => Depositor)) public depositor;
uint256 public totalWeight = 0;
uint256 public startBlock;
uint256 public halvePeriod = 357120;
uint256 public minimumMintPerBlock = 43568156563424200;
uint256 public lastHalveBlock;
event Deposit(address indexed user, uint256 indexed siloid, uint256 amount);
event Withdraw(address indexed user, uint256 indexed siloid, uint256 amount);
event ExitPoolDisgracefully(address indexed user, uint256 indexed siloid, uint256 amount);
event Halve(uint256 newMintPerBlock, uint256 nextHalveBlockNumber);
constructor( IERC20 _mintedToken, address _teller, uint256 _startBlock) public {
mintedToken = _mintedToken;
teller = _teller;
mintPerBlock = 181834391801075000;
startBlock = _startBlock;
lastHalveBlock = _startBlock;
}
function doHalvingCheck(bool _withUpdate) public {
if (mintPerBlock <= minimumMintPerBlock) {
return;
}
bool doHalve = block.number > lastHalveBlock + halvePeriod;
if (!doHalve) {
return;
}
uint256 newMintPerBlock = mintPerBlock.mul(96).div(100);
if (newMintPerBlock >= minimumMintPerBlock) {
mintPerBlock = newMintPerBlock;
lastHalveBlock = block.number;
emit Halve(newMintPerBlock, block.number + halvePeriod);
if (_withUpdate) {
massUpdateSilos();
}
}
}
function siloDepth() external view returns (uint256) {
return siloData.length;
}
function add(uint256 _weight, IERC20 _Token, bool _withUpdate) public onlyOwner {
require(!TokenExistsInSilo[address(_Token)], "Token Address already exists in silo");
if (_withUpdate) {
massUpdateSilos();
}
uint256 lastMintBlock = block.number > startBlock ? block.number : startBlock;
totalWeight = totalWeight.add(_weight);
siloData.push(
SiloData({
Token: _Token,
weight: _weight,
lastMintBlock: lastMintBlock,
mintedTokenPerShare: 0
})
);
TokenExistsInSilo[address(_Token)] = true;
}
function updateTokenExists(address _TokenAddr, bool _isExists) external onlyOwner {
TokenExistsInSilo[_TokenAddr] = _isExists;
}
function set(uint256 _siloid, uint256 _weight, bool _withUpdate) public onlyOwner {
if (_withUpdate) {
massUpdateSilos();
}
totalWeight = totalWeight.sub(siloData[_siloid].weight).add( _weight);
siloData[_siloid].weight = _weight;
}
function setMigrator(SiloControlMigrator _migrator) public onlyOwner {
migrator = _migrator;
}
function migrate(uint256 _siloid) public onlyOwner {
require(address(migrator) != address(0), "Address of migrator is null");
SiloData storage silo = siloData[_siloid];
IERC20 Token = silo.Token;
uint256 bal = Token.balanceOf(address(this));
Token.safeApprove(address(migrator), bal);
IERC20 newToken = migrator.migrate(Token);
require(!TokenExistsInSilo[address(newToken)], "New Token Address already exists in silo");
require(bal == newToken.balanceOf(address(this)), "New Token balance incorrect");
silo.Token = newToken;
TokenExistsInSilo[address(newToken)] = true;
}
function pendingMint(uint256 _siloid, address _user) external view returns (uint256) {
SiloData storage silo = siloData[_siloid];
Depositor storage user = depositor[_siloid][_user];
uint256 mintedTokenPerShare = silo.mintedTokenPerShare;
uint256 siloedTokenSupply = silo.Token.balanceOf(address(this));
if (block.number > silo.lastMintBlock && siloedTokenSupply != 0) {
uint256 blockPassed = block.number.sub(silo.lastMintBlock);
uint256 tokenMint = blockPassed
.mul(mintPerBlock)
.mul(silo.weight)
.div(totalWeight);
mintedTokenPerShare = mintedTokenPerShare.add(
tokenMint.mul(1e12).div(siloedTokenSupply)
);
}
return
user.amount.mul(mintedTokenPerShare).div(1e12).sub(user.mintDebt);
}
function massUpdateSilos() public {
uint256 length = siloData.length;
for (uint256 siloid = 0; siloid < length; ++siloid) {
updateSilo(siloid);
}
}
function updateSilo(uint256 _siloid) public {
doHalvingCheck(false);
SiloData storage silo = siloData[_siloid];
if (block.number <= silo.lastMintBlock) {
return;
}
uint256 siloedTokenSupply = silo.Token.balanceOf(address(this));
if (siloedTokenSupply == 0) {
silo.lastMintBlock = block.number;
return;
}
uint256 blockPassed = block.number.sub(silo.lastMintBlock);
uint256 tokenMint = blockPassed
.mul(mintPerBlock)
.mul(silo.weight)
.div(totalWeight);
mintedToken.mint(teller, tokenMint.div(10));
mintedToken.mint(address(this), tokenMint);
silo.mintedTokenPerShare = silo.mintedTokenPerShare.add(
tokenMint.mul(1e12).div(siloedTokenSupply)
);
silo.lastMintBlock = block.number;
}
function deposit(uint256 _siloid, uint256 _amount) public {
SiloData storage silo = siloData[_siloid];
Depositor storage user = depositor[_siloid][msg.sender];
updateSilo(_siloid);
if (user.amount > 0) {
uint256 pending = user
.amount
.mul(silo.mintedTokenPerShare)
.div(1e12)
.sub(user.mintDebt);
safeMintedTransfer(msg.sender, pending);
}
silo.Token.safeTransferFrom(address(msg.sender), address(this), _amount);
user.amount = user.amount.add(_amount);
user.mintDebt = user.amount.mul(silo.mintedTokenPerShare).div(1e12);
emit Deposit(msg.sender, _siloid, _amount);
}
function withdraw(uint256 _siloid, uint256 _amount) public {
SiloData storage silo = siloData[_siloid];
Depositor storage user = depositor[_siloid][msg.sender];
require(user.amount >= _amount, "Insufficient Amount to withdraw");
updateSilo(_siloid);
uint256 pending = user.amount.mul(silo.mintedTokenPerShare).div(1e12).sub(user.mintDebt);
safeMintedTransfer(msg.sender, pending);
user.amount = user.amount.sub(_amount);
user.mintDebt = user.amount.mul(silo.mintedTokenPerShare).div(1e12);
silo.Token.safeTransfer(address(msg.sender), _amount);
emit Withdraw(msg.sender, _siloid, _amount);
}
function exitPoolDisgracefully(uint256 _siloid) public {
SiloData storage silo = siloData[_siloid];
Depositor storage user = depositor[_siloid][msg.sender];
silo.Token.safeTransfer(address(msg.sender), user.amount);
emit ExitPoolDisgracefully(msg.sender, _siloid, user.amount);
user.amount = 0;
user.mintDebt = 0;
}
function safeMintedTransfer(address _to, uint256 _amount) internal {
uint256 mintBalance = mintedToken.balanceOf(address(this));
if (_amount > mintBalance) {
mintedToken.transfer(_to, mintBalance);
} else {
mintedToken.transfer(_to, _amount);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IERC20","name":"_mintedToken","type":"address"},{"internalType":"address","name":"_teller","type":"address"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"siloid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"siloid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ExitPoolDisgracefully","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMintPerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextHalveBlockNumber","type":"uint256"}],"name":"Halve","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":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"siloid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"TokenExistsInSilo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_weight","type":"uint256"},{"internalType":"contract IERC20","name":"_Token","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"depositor","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"mintDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"doHalvingCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"}],"name":"exitPoolDisgracefully","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"halvePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastHalveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdateSilos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrator","outputs":[{"internalType":"contract SiloControlMigrator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumMintPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintedToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"},{"internalType":"uint256","name":"_weight","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract SiloControlMigrator","name":"_migrator","type":"address"}],"name":"setMigrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"siloData","outputs":[{"internalType":"contract IERC20","name":"Token","type":"address"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"lastMintBlock","type":"uint256"},{"internalType":"uint256","name":"mintedTokenPerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"siloDepth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"}],"name":"updateSilo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TokenAddr","type":"address"},{"internalType":"bool","name":"_isExists","type":"bool"}],"name":"updateTokenExists","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_siloid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052600060085562057300600a55669ac901ef7b43c8600b553480156200002857600080fd5b50604051620037bb380380620037bb833981810160405260608110156200004e57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050600062000085620001cb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670286016a7b4095386003819055508060098190555080600c81905550505050620001d3565b600033905090565b6135d880620001e36000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063938d44f3116100a2578063db32964a11610071578063db32964a14610777578063e2bbb158146107e0578063ec43277214610818578063f2fde38b14610836576101cf565b8063938d44f3146106ef57806396c82e571461070d578063a7e03dcb1461072b578063d760c23714610749576101cf565b80638542925a116100de5780638542925a146105df5780638680eae5146106295780638980f11f146106575780638da5cb5b146106a5576101cf565b8063715018a61461053b578063746c652a146105455780637cd07e4714610595576101cf565b806340d3dc871161017157806348cd4cb11161014b57806348cd4cb1146104335780635458236f1461045157806357edab4e146104ad57806364482f79146104f7576101cf565b806340d3dc871461039d578063441a3e70146103cd578063454b060814610405576101cf565b806323cf3118116101ad57806323cf3118146102cf57806336951cc31461031357806336ef07561461031d5780633e71b21d1461037f576101cf565b8063029bf821146101d457806315837e7d146101f25780631eaaa04514610275575b600080fd5b6101dc61087a565b6040518082815260200191505060405180910390f35b61021e6004803603602081101561020857600080fd5b8101908080359060200190929190505050610880565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b6102cd6004803603606081101561028b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506108dd565b005b610311600480360360208110156102e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb2565b005b61031b610cbf565b005b6103696004803603604081101561033357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cef565b6040518082815260200191505060405180910390f35b610387610f54565b6040518082815260200191505060405180910390f35b6103cb600480360360208110156103b357600080fd5b81019080803515159060200190929190505050610f61565b005b610403600480360360408110156103e357600080fd5b810190808035906020019092919080359060200190929190505050611026565b005b6104316004803603602081101561041b57600080fd5b8101908080359060200190929190505050611270565b005b61043b6118a0565b6040518082815260200191505060405180910390f35b6104936004803603602081101561046757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118a6565b604051808215151515815260200191505060405180910390f35b6104b56118c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105396004803603606081101561050d57600080fd5b8101908080359060200190929190803590602001909291908035151590602001909291905050506118ec565b005b610543611a37565b005b6105936004803603604081101561055b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bbf565b005b61059d611ce3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e7611d09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106556004803603602081101561063f57600080fd5b8101908080359060200190929190505050611d2f565b005b6106a36004803603604081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120d0565b005b6106ad612267565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106f7612290565b6040518082815260200191505060405180910390f35b610715612296565b6040518082815260200191505060405180910390f35b61073361229c565b6040518082815260200191505060405180910390f35b6107756004803603602081101561075f57600080fd5b81019080803590602001909291905050506122a2565b005b6107c36004803603604081101561078d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123d4565b604051808381526020018281526020019250505060405180910390f35b610816600480360360408110156107f657600080fd5b810190808035906020019092919080359060200190929190505050612405565b005b6108206125e5565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125eb565b005b600b5481565b6005818154811061088d57fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b6108e56127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134d66024913960400191505060405180910390fd5b8015610a5857610a57610cbf565b5b60006009544311610a6b57600954610a6d565b435b9050610a848460085461280090919063ffffffff16565b600881905550600560405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018381526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015550506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b610bba6127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600580549050905060008090505b81811015610ceb57610ce081611d2f565b806001019050610ccf565b5050565b60008060058481548110610cff57fe5b9060005260206000209060040201905060006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008260030154905060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e0f57600080fd5b505afa158015610e23573d6000803e3d6000fd5b505050506040513d6020811015610e3957600080fd5b81019080805190602001909291905050509050836002015443118015610e60575060008114155b15610f04576000610e7e85600201544361288890919063ffffffff16565b90506000610ec1600854610eb38860010154610ea5600354876128d290919063ffffffff16565b6128d290919063ffffffff16565b61295890919063ffffffff16565b9050610eff610ef084610ee264e8d4a51000856128d290919063ffffffff16565b61295890919063ffffffff16565b8561280090919063ffffffff16565b935050505b610f488360010154610f3a64e8d4a51000610f2c8688600001546128d290919063ffffffff16565b61295890919063ffffffff16565b61288890919063ffffffff16565b94505050505092915050565b6000600580549050905090565b600b5460035411610f7157611023565b6000600a54600c54014311905080610f895750611023565b6000610fb46064610fa660606003546128d290919063ffffffff16565b61295890919063ffffffff16565b9050600b548110611020578060038190555043600c819055507f757a5d62748298563ed8cef6be1d0fdd42752f59a03f5be31295b83a696baf3381600a544301604051808381526020018281526020019250505060405180910390a1821561101f5761101e610cbf565b5b5b50505b50565b60006005838154811061103557fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e73756666696369656e7420416d6f756e7420746f2077697468647261770081525060200191505060405180910390fd5b61111c84611d2f565b6000611166826001015461115864e8d4a5100061114a876003015487600001546128d290919063ffffffff16565b61295890919063ffffffff16565b61288890919063ffffffff16565b905061117233826129a2565b61118984836000015461288890919063ffffffff16565b82600001819055506111c364e8d4a510006111b5856003015485600001546128d290919063ffffffff16565b61295890919063ffffffff16565b826001018190555061121a33858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c5d9092919063ffffffff16565b843373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568866040518082815260200191505060405180910390a35050505050565b6112786127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f41646472657373206f66206d69677261746f72206973206e756c6c000000000081525060200191505060405180910390fd5b60006005828154811061140d57fe5b9060005260206000209060040201905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114c557600080fd5b505afa1580156114d9573d6000803e3d6000fd5b505050506040513d60208110156114ef57600080fd5b8101908080519060200190929190505050905061154f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d159092919063ffffffff16565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5494bb846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050506040513d602081101561161c57600080fd5b81019080805190602001909291905050509050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806134fa6028913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561174f57600080fd5b505afa158015611763573d6000803e3d6000fd5b505050506040513d602081101561177957600080fd5b810190808051906020019092919050505082146117fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e657720546f6b656e2062616c616e636520696e636f7272656374000000000081525060200191505060405180910390fd5b808460000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050565b60095481565b60066020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118f46127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80156119c4576119c3610cbf565b5b611a09826119fb600586815481106119d857fe5b90600052602060002090600402016001015460085461288890919063ffffffff16565b61280090919063ffffffff16565b6008819055508160058481548110611a1d57fe5b906000526020600020906004020160010181905550505050565b611a3f6127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611bc76127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d396000610f61565b600060058281548110611d4857fe5b9060005260206000209060040201905080600201544311611d6957506120cd565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e0c57600080fd5b505afa158015611e20573d6000803e3d6000fd5b505050506040513d6020811015611e3657600080fd5b810190808051906020019092919050505090506000811415611e625743826002018190555050506120cd565b6000611e7b83600201544361288890919063ffffffff16565b90506000611ebe600854611eb08660010154611ea2600354876128d290919063ffffffff16565b6128d290919063ffffffff16565b61295890919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f35600a8561295890919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611f9e57600080fd5b505af1158015611fb2573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561205f57600080fd5b505af1158015612073573d6000803e3d6000fd5b505050506120b76120a48461209664e8d4a51000856128d290919063ffffffff16565b61295890919063ffffffff16565b856003015461280090919063ffffffff16565b8460030181905550438460020181905550505050505b50565b6120d86127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6121bd612267565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561222757600080fd5b505af115801561223b573d6000803e3d6000fd5b505050506040513d602081101561225157600080fd5b8101908080519060200190929190505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60085481565b60035481565b6000600582815481106122b157fe5b9060005260206000209060040201905060006007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506123683382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c5d9092919063ffffffff16565b823373ffffffffffffffffffffffffffffffffffffffff167fd0cf62f93a95adfc3c2596c535ebb28f7eb248410ca1df6e338fa0eba8199a8483600001546040518082815260200191505060405180910390a36000816000018190555060008160010181905550505050565b6007602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60006005838154811061241457fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061248184611d2f565b6000816000015411156124e65760006124d882600101546124ca64e8d4a510006124bc876003015487600001546128d290919063ffffffff16565b61295890919063ffffffff16565b61288890919063ffffffff16565b90506124e433826129a2565b505b6125373330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1c909392919063ffffffff16565b61254e83826000015461280090919063ffffffff16565b816000018190555061258864e8d4a5100061257a846003015484600001546128d290919063ffffffff16565b61295890919063ffffffff16565b8160010181905550833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040518082815260200191505060405180910390a350505050565b600a5481565b6125f36127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561273a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806134b06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60008082840190508381101561287e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006128ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613009565b905092915050565b6000808314156128e55760009050612952565b60008284029050828482816128f657fe5b041461294d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135226021913960400191505060405180910390fd5b809150505b92915050565b600061299a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130c9565b905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a4357600080fd5b505afa158015612a57573d6000803e3d6000fd5b505050506040513d6020811015612a6d57600080fd5b8101908080519060200190929190505050905080821115612b7257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3157600080fd5b505af1158015612b45573d6000803e3d6000fd5b505050506040513d6020811015612b5b57600080fd5b810190808051906020019092919050505050612c58565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612c1b57600080fd5b505af1158015612c2f573d6000803e3d6000fd5b505050506040513d6020811015612c4557600080fd5b8101908080519060200190929190505050505b505050565b612d108363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061318f565b505050565b6000811480612e0f575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dd257600080fd5b505afa158015612de6573d6000803e3d6000fd5b505050506040513d6020811015612dfc57600080fd5b8101908080519060200190929190505050145b612e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061356d6036913960400191505060405180910390fd5b612f178363095ea7b360e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061318f565b505050565b613003846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061318f565b50505050565b60008383111582906130b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561307b578082015181840152602081019050613060565b50505050905090810190601f1680156130a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613175576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561313a57808201518184015260208101905061311f565b50505050905090810190601f1680156131675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161318157fe5b049050809150509392505050565b60606131f1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661327e9092919063ffffffff16565b90506000815111156132795780806020019051602081101561321257600080fd5b8101908080519060200190929190505050613278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613543602a913960400191505060405180910390fd5b5b505050565b606061328d8484600085613296565b90509392505050565b60606132a18561349c565b613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106133635780518252602082019150602081019050602083039250613340565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146133c5576040519150601f19603f3d011682016040523d82523d6000602084013e6133ca565b606091505b509150915081156133df578092505050613494565b6000815111156133f25780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561345957808201518184015260208101905061343e565b50505050905090810190601f1680156134865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b600080823b90506000811191505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373546f6b656e204164647265737320616c72656164792065786973747320696e2073696c6f4e657720546f6b656e204164647265737320616c72656164792065786973747320696e2073696c6f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220215a9d5c239d708d1ab9e86b722276615bf99fb204df2a578248af92cd22436464736f6c634300060600330000000000000000000000008b6dd24bcb2d0aea92c3abd4eb11103a5db6d7140000000000000000000000000bfaf138e171d89205133573e65b2fee95da9e990000000000000000000000000000000000000000000000000000000000a7e860
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063938d44f3116100a2578063db32964a11610071578063db32964a14610777578063e2bbb158146107e0578063ec43277214610818578063f2fde38b14610836576101cf565b8063938d44f3146106ef57806396c82e571461070d578063a7e03dcb1461072b578063d760c23714610749576101cf565b80638542925a116100de5780638542925a146105df5780638680eae5146106295780638980f11f146106575780638da5cb5b146106a5576101cf565b8063715018a61461053b578063746c652a146105455780637cd07e4714610595576101cf565b806340d3dc871161017157806348cd4cb11161014b57806348cd4cb1146104335780635458236f1461045157806357edab4e146104ad57806364482f79146104f7576101cf565b806340d3dc871461039d578063441a3e70146103cd578063454b060814610405576101cf565b806323cf3118116101ad57806323cf3118146102cf57806336951cc31461031357806336ef07561461031d5780633e71b21d1461037f576101cf565b8063029bf821146101d457806315837e7d146101f25780631eaaa04514610275575b600080fd5b6101dc61087a565b6040518082815260200191505060405180910390f35b61021e6004803603602081101561020857600080fd5b8101908080359060200190929190505050610880565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b6102cd6004803603606081101561028b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506108dd565b005b610311600480360360208110156102e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb2565b005b61031b610cbf565b005b6103696004803603604081101561033357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cef565b6040518082815260200191505060405180910390f35b610387610f54565b6040518082815260200191505060405180910390f35b6103cb600480360360208110156103b357600080fd5b81019080803515159060200190929190505050610f61565b005b610403600480360360408110156103e357600080fd5b810190808035906020019092919080359060200190929190505050611026565b005b6104316004803603602081101561041b57600080fd5b8101908080359060200190929190505050611270565b005b61043b6118a0565b6040518082815260200191505060405180910390f35b6104936004803603602081101561046757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118a6565b604051808215151515815260200191505060405180910390f35b6104b56118c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105396004803603606081101561050d57600080fd5b8101908080359060200190929190803590602001909291908035151590602001909291905050506118ec565b005b610543611a37565b005b6105936004803603604081101561055b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bbf565b005b61059d611ce3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e7611d09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106556004803603602081101561063f57600080fd5b8101908080359060200190929190505050611d2f565b005b6106a36004803603604081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120d0565b005b6106ad612267565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106f7612290565b6040518082815260200191505060405180910390f35b610715612296565b6040518082815260200191505060405180910390f35b61073361229c565b6040518082815260200191505060405180910390f35b6107756004803603602081101561075f57600080fd5b81019080803590602001909291905050506122a2565b005b6107c36004803603604081101561078d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123d4565b604051808381526020018281526020019250505060405180910390f35b610816600480360360408110156107f657600080fd5b810190808035906020019092919080359060200190929190505050612405565b005b6108206125e5565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125eb565b005b600b5481565b6005818154811061088d57fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b6108e56127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134d66024913960400191505060405180910390fd5b8015610a5857610a57610cbf565b5b60006009544311610a6b57600954610a6d565b435b9050610a848460085461280090919063ffffffff16565b600881905550600560405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018381526020016000815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015550506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b610bba6127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600580549050905060008090505b81811015610ceb57610ce081611d2f565b806001019050610ccf565b5050565b60008060058481548110610cff57fe5b9060005260206000209060040201905060006007600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008260030154905060008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e0f57600080fd5b505afa158015610e23573d6000803e3d6000fd5b505050506040513d6020811015610e3957600080fd5b81019080805190602001909291905050509050836002015443118015610e60575060008114155b15610f04576000610e7e85600201544361288890919063ffffffff16565b90506000610ec1600854610eb38860010154610ea5600354876128d290919063ffffffff16565b6128d290919063ffffffff16565b61295890919063ffffffff16565b9050610eff610ef084610ee264e8d4a51000856128d290919063ffffffff16565b61295890919063ffffffff16565b8561280090919063ffffffff16565b935050505b610f488360010154610f3a64e8d4a51000610f2c8688600001546128d290919063ffffffff16565b61295890919063ffffffff16565b61288890919063ffffffff16565b94505050505092915050565b6000600580549050905090565b600b5460035411610f7157611023565b6000600a54600c54014311905080610f895750611023565b6000610fb46064610fa660606003546128d290919063ffffffff16565b61295890919063ffffffff16565b9050600b548110611020578060038190555043600c819055507f757a5d62748298563ed8cef6be1d0fdd42752f59a03f5be31295b83a696baf3381600a544301604051808381526020018281526020019250505060405180910390a1821561101f5761101e610cbf565b5b5b50505b50565b60006005838154811061103557fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e73756666696369656e7420416d6f756e7420746f2077697468647261770081525060200191505060405180910390fd5b61111c84611d2f565b6000611166826001015461115864e8d4a5100061114a876003015487600001546128d290919063ffffffff16565b61295890919063ffffffff16565b61288890919063ffffffff16565b905061117233826129a2565b61118984836000015461288890919063ffffffff16565b82600001819055506111c364e8d4a510006111b5856003015485600001546128d290919063ffffffff16565b61295890919063ffffffff16565b826001018190555061121a33858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c5d9092919063ffffffff16565b843373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568866040518082815260200191505060405180910390a35050505050565b6112786127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f41646472657373206f66206d69677261746f72206973206e756c6c000000000081525060200191505060405180910390fd5b60006005828154811061140d57fe5b9060005260206000209060040201905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114c557600080fd5b505afa1580156114d9573d6000803e3d6000fd5b505050506040513d60208110156114ef57600080fd5b8101908080519060200190929190505050905061154f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d159092919063ffffffff16565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5494bb846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050506040513d602081101561161c57600080fd5b81019080805190602001909291905050509050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806134fa6028913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561174f57600080fd5b505afa158015611763573d6000803e3d6000fd5b505050506040513d602081101561177957600080fd5b810190808051906020019092919050505082146117fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e657720546f6b656e2062616c616e636520696e636f7272656374000000000081525060200191505060405180910390fd5b808460000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050565b60095481565b60066020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118f46127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80156119c4576119c3610cbf565b5b611a09826119fb600586815481106119d857fe5b90600052602060002090600402016001015460085461288890919063ffffffff16565b61280090919063ffffffff16565b6008819055508160058481548110611a1d57fe5b906000526020600020906004020160010181905550505050565b611a3f6127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611bc76127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d396000610f61565b600060058281548110611d4857fe5b9060005260206000209060040201905080600201544311611d6957506120cd565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e0c57600080fd5b505afa158015611e20573d6000803e3d6000fd5b505050506040513d6020811015611e3657600080fd5b810190808051906020019092919050505090506000811415611e625743826002018190555050506120cd565b6000611e7b83600201544361288890919063ffffffff16565b90506000611ebe600854611eb08660010154611ea2600354876128d290919063ffffffff16565b6128d290919063ffffffff16565b61295890919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f35600a8561295890919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611f9e57600080fd5b505af1158015611fb2573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561205f57600080fd5b505af1158015612073573d6000803e3d6000fd5b505050506120b76120a48461209664e8d4a51000856128d290919063ffffffff16565b61295890919063ffffffff16565b856003015461280090919063ffffffff16565b8460030181905550438460020181905550505050505b50565b6120d86127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6121bd612267565b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561222757600080fd5b505af115801561223b573d6000803e3d6000fd5b505050506040513d602081101561225157600080fd5b8101908080519060200190929190505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60085481565b60035481565b6000600582815481106122b157fe5b9060005260206000209060040201905060006007600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506123683382600001548460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c5d9092919063ffffffff16565b823373ffffffffffffffffffffffffffffffffffffffff167fd0cf62f93a95adfc3c2596c535ebb28f7eb248410ca1df6e338fa0eba8199a8483600001546040518082815260200191505060405180910390a36000816000018190555060008160010181905550505050565b6007602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60006005838154811061241457fe5b9060005260206000209060040201905060006007600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061248184611d2f565b6000816000015411156124e65760006124d882600101546124ca64e8d4a510006124bc876003015487600001546128d290919063ffffffff16565b61295890919063ffffffff16565b61288890919063ffffffff16565b90506124e433826129a2565b505b6125373330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1c909392919063ffffffff16565b61254e83826000015461280090919063ffffffff16565b816000018190555061258864e8d4a5100061257a846003015484600001546128d290919063ffffffff16565b61295890919063ffffffff16565b8160010181905550833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040518082815260200191505060405180910390a350505050565b600a5481565b6125f36127f8565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561273a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806134b06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60008082840190508381101561287e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006128ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613009565b905092915050565b6000808314156128e55760009050612952565b60008284029050828482816128f657fe5b041461294d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135226021913960400191505060405180910390fd5b809150505b92915050565b600061299a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130c9565b905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a4357600080fd5b505afa158015612a57573d6000803e3d6000fd5b505050506040513d6020811015612a6d57600080fd5b8101908080519060200190929190505050905080821115612b7257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3157600080fd5b505af1158015612b45573d6000803e3d6000fd5b505050506040513d6020811015612b5b57600080fd5b810190808051906020019092919050505050612c58565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612c1b57600080fd5b505af1158015612c2f573d6000803e3d6000fd5b505050506040513d6020811015612c4557600080fd5b8101908080519060200190929190505050505b505050565b612d108363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061318f565b505050565b6000811480612e0f575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612dd257600080fd5b505afa158015612de6573d6000803e3d6000fd5b505050506040513d6020811015612dfc57600080fd5b8101908080519060200190929190505050145b612e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061356d6036913960400191505060405180910390fd5b612f178363095ea7b360e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061318f565b505050565b613003846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061318f565b50505050565b60008383111582906130b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561307b578082015181840152602081019050613060565b50505050905090810190601f1680156130a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613175576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561313a57808201518184015260208101905061311f565b50505050905090810190601f1680156131675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161318157fe5b049050809150509392505050565b60606131f1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661327e9092919063ffffffff16565b90506000815111156132795780806020019051602081101561321257600080fd5b8101908080519060200190929190505050613278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613543602a913960400191505060405180910390fd5b5b505050565b606061328d8484600085613296565b90509392505050565b60606132a18561349c565b613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106133635780518252602082019150602081019050602083039250613340565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146133c5576040519150601f19603f3d011682016040523d82523d6000602084013e6133ca565b606091505b509150915081156133df578092505050613494565b6000815111156133f25780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561345957808201518184015260208101905061343e565b50505050905090810190601f1680156134865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b600080823b90506000811191505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373546f6b656e204164647265737320616c72656164792065786973747320696e2073696c6f4e657720546f6b656e204164647265737320616c72656164792065786973747320696e2073696c6f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220215a9d5c239d708d1ab9e86b722276615bf99fb204df2a578248af92cd22436464736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008b6dd24bcb2d0aea92c3abd4eb11103a5db6d7140000000000000000000000000bfaf138e171d89205133573e65b2fee95da9e990000000000000000000000000000000000000000000000000000000000a7e860
-----Decoded View---------------
Arg [0] : _mintedToken (address): 0x8b6DD24Bcb2D0aeA92c3AbD4eB11103A5DB6D714
Arg [1] : _teller (address): 0x0Bfaf138e171d89205133573E65b2fee95dA9e99
Arg [2] : _startBlock (uint256): 11004000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008b6dd24bcb2d0aea92c3abd4eb11103a5db6d714
Arg [1] : 0000000000000000000000000bfaf138e171d89205133573e65b2fee95da9e99
Arg [2] : 0000000000000000000000000000000000000000000000000000000000a7e860
Deployed Bytecode Sourcemap
12737:8334:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12737:8334:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;13522:54:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13239:26;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13239:26:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14987:676;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14987:676:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16115:108;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16115:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17808:192;;;:::i;:::-;;16913:887;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16913:887:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14885:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14234:643;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14234:643:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19679:686;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19679:686:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16231:674;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16231:674:0;;;;;;;;;;;;;;;;;:::i;:::-;;13446:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13274:49;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13274:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13127:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15821:286;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15821:286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12094:148;;;:::i;:::-;;15671:142;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15671:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13193:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13093:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18008:906;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18008:906:0;;;;;;;;;;;;;;;;;:::i;:::-;;12578:152;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12578:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11880:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13583:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13407:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13157:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20373:374;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20373:374:0;;;;;;;;;;;;;;;;;:::i;:::-;;13332:66;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13332:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;18922:749;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18922:749:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13480:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12250:281;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12250:281:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13522:54;;;;:::o;13239:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14987:676::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15087:17:::1;:34;15113:6;15087:34;;;;;;;;;;;;;;;;;;;;;;;;;15086:35;15078:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15179:11;15175:61;;;15207:17;:15;:17::i;:::-;15175:61;15248:21;15287:10;;15272:12;:25;:53;;15315:10;;15272:53;;;15300:12;15272:53;15248:77;;15350:24;15366:7;15350:11;;:15;;:24;;;;:::i;:::-;15336:11;:38;;;;15385:8;15413:179;;;;;;;;15448:6;15413:179;;;;;;15481:7;15413:179;;;;15522:13;15413:179;;;;15575:1;15413:179;;::::0;15385:218:::1;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15385:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15651:4;15614:17;:34;15640:6;15614:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12077:1;14987:676:::0;;;:::o;16115:108::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16206:9:::1;16195:8;;:20;;;;;;;;;;;;;;;;;;16115:108:::0;:::o;17808:192::-;17853:14;17870:8;:15;;;;17853:32;;17901:14;17918:1;17901:18;;17896:97;17930:6;17921;:15;17896:97;;;17963:18;17974:6;17963:10;:18::i;:::-;17938:8;;;;;17896:97;;;;17808:192;:::o;16913:887::-;16989:7;17009:21;17033:8;17042:7;17033:17;;;;;;;;;;;;;;;;;;17009:41;;17061:22;17086:9;:18;17096:7;17086:18;;;;;;;;;;;:25;17105:5;17086:25;;;;;;;;;;;;;;;17061:50;;17122:27;17152:4;:24;;;17122:54;;17187:25;17215:4;:10;;;;;;;;;;;;:20;;;17244:4;17215:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17215:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17215:35:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17215:35:0;;;;;;;;;;;;;;;;17187:63;;17280:4;:18;;;17265:12;:33;:59;;;;;17323:1;17302:17;:22;;17265:59;17261:438;;;17341:19;17363:36;17380:4;:18;;;17363:12;:16;;:36;;;;:::i;:::-;17341:58;;17414:17;17434:117;17539:11;;17434:82;17504:4;:11;;;17434:47;17468:12;;17434:11;:33;;:47;;;;:::i;:::-;:69;;:82;;;;:::i;:::-;:104;;:117;;;;:::i;:::-;17414:137;;17588:99;17630:42;17654:17;17630:19;17644:4;17630:9;:13;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;17588:19;:23;;:99;;;;:::i;:::-;17566:121;;17261:438;;;17727:65;17778:4;:13;;;17727:46;17768:4;17727:36;17743:19;17727:4;:11;;;:15;;:36;;;;:::i;:::-;:40;;:46;;;;:::i;:::-;:50;;:65;;;;:::i;:::-;17709:83;;;;;;16913:887;;;;:::o;14885:94::-;14929:7;14956:8;:15;;;;14949:22;;14885:94;:::o;14234:643::-;14314:19;;14298:12;;:35;14294:74;;14350:7;;14294:74;14378:12;14425:11;;14408:14;;:28;14393:12;:43;14378:58;;14452:7;14447:47;;14476:7;;;14447:47;14504:23;14530:29;14555:3;14530:20;14547:2;14530:12;;:16;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14504:55;;14593:19;;14574:15;:38;14570:300;;14644:15;14629:12;:30;;;;14691:12;14674:14;:29;;;;14723:50;14729:15;14761:11;;14746:12;:26;14723:50;;;;;;;;;;;;;;;;;;;;;;;;14794:11;14790:69;;;14826:17;:15;:17::i;:::-;14790:69;14570:300;14234:643;;;;:::o;19679:686::-;19749:21;19773:8;19782:7;19773:17;;;;;;;;;;;;;;;;;;19749:41;;19801:22;19826:9;:18;19836:7;19826:18;;;;;;;;;;;:30;19845:10;19826:30;;;;;;;;;;;;;;;19801:55;;19890:7;19875:4;:11;;;:22;;19867:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19944:19;19955:7;19944:10;:19::i;:::-;19974:15;19992:70;20048:4;:13;;;19992:51;20038:4;19992:41;20008:4;:24;;;19992:4;:11;;;:15;;:41;;;;:::i;:::-;:45;;:51;;;;:::i;:::-;:55;;:70;;;;:::i;:::-;19974:88;;20073:39;20092:10;20104:7;20073:18;:39::i;:::-;20137:24;20153:7;20137:4;:11;;;:15;;:24;;;;:::i;:::-;20123:4;:11;;:38;;;;20188:51;20234:4;20188:41;20204:4;:24;;;20188:4;:11;;;:15;;:41;;;;:::i;:::-;:45;;:51;;;;:::i;:::-;20172:4;:13;;:67;;;;20250:53;20282:10;20295:7;20250:4;:10;;;;;;;;;;;;:23;;;;:53;;;;;:::i;:::-;20340:7;20328:10;20319:38;;;20349:7;20319:38;;;;;;;;;;;;;;;;;;19679:686;;;;;:::o;16231:674::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16330:1:::1;16301:31;;16309:8;;;;;;;;;;;16301:31;;;;16293:71;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16377:21;16401:8;16410:7;16401:17;;;;;;;;;;;;;;;;;;16377:41;;16429:12;16444:4;:10;;;;;;;;;;;;16429:25;;16465:11;16479:5;:15;;;16503:4;16479:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16479:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16479:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;16479:30:0;;;;;;;;;;;;;;;;16465:44;;16520:41;16546:8;;;;;;;;;;;16557:3;16520:5;:17;;;;:41;;;;;:::i;:::-;16572:15;16590:8;;;;;;;;;;;:16;;;16607:5;16590:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16590:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16590:23:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;16590:23:0;;;;;;;;;;;;;;;;16572:41;;16635:17;:36;16661:8;16635:36;;;;;;;;;;;;;;;;;;;;;;;;;16634:37;16626:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16742:8;:18;;;16769:4;16742:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;16742:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16742:33:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;16742:33:0;;;;;;;;;;;;;;;;16735:3;:40;16727:80;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16833:8;16820:4;:10;;;:21;;;;;;;;;;;;;;;;;;16893:4;16854:17;:36;16880:8;16854:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12077:1;;;;16231:674:::0;:::o;13446:25::-;;;;:::o;13274:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;13127:21::-;;;;;;;;;;;;;:::o;15821:286::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15918:11:::1;15914:61;;;15946:17;:15;:17::i;:::-;15914:61;15999:55;16046:7;15999:41;16015:8;16024:7;16015:17;;;;;;;;;;;;;;;;;;:24;;;15999:11;;:15;;:41;;;;:::i;:::-;:45;;:55;;;;:::i;:::-;15985:11;:69;;;;16092:7;16065:8;16074:7;16065:17;;;;;;;;;;;;;;;;;;:24;;:34;;;;15821:286:::0;;;:::o;12094:148::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12201:1:::1;12164:40;;12185:6;::::0;::::1;;;;;;;;;12164:40;;;;;;;;;;;;12232:1;12215:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;12094:148::o:0;15671:142::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15796:9:::1;15764:17;:29;15782:10;15764:29;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;15671:142:::0;;:::o;13193:35::-;;;;;;;;;;;;;:::o;13093:25::-;;;;;;;;;;;;;:::o;18008:906::-;18063:21;18078:5;18063:14;:21::i;:::-;18095;18119:8;18128:7;18119:17;;;;;;;;;;;;;;;;;;18095:41;;18167:4;:18;;;18151:12;:34;18147:73;;18202:7;;;18147:73;18232:25;18260:4;:10;;;;;;;;;;;;:20;;;18289:4;18260:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18260:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18260:35:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18260:35:0;;;;;;;;;;;;;;;;18232:63;;18331:1;18310:17;:22;18306:109;;;18370:12;18349:4;:18;;:33;;;;18397:7;;;;18306:109;18425:19;18447:36;18464:4;:18;;;18447:12;:16;;:36;;;;:::i;:::-;18425:58;;18494:17;18514:105;18607:11;;18514:74;18576:4;:11;;;18514:43;18544:12;;18514:11;:29;;:43;;;;:::i;:::-;:61;;:74;;;;:::i;:::-;:92;;:105;;;;:::i;:::-;18494:125;;18632:11;;;;;;;;;;;:16;;;18649:6;;;;;;;;;;;18657:17;18671:2;18657:9;:13;;:17;;;;:::i;:::-;18632:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18632:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18632:43:0;;;;18686:11;;;;;;;;;;;:16;;;18711:4;18718:9;18686:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18686:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18686:42:0;;;;18766:96;18809:42;18833:17;18809:19;18823:4;18809:9;:13;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;18766:4;:24;;;:28;;:96;;;;:::i;:::-;18739:4;:24;;:123;;;;18894:12;18873:4;:18;;:33;;;;18008:906;;;;;;:::o;12578:152::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12678:12:::1;12671:29;;;12701:7;:5;:7::i;:::-;12710:11;12671:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12671:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12671:51:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;12671:51:0;;;;;;;;;;;;;;;;;12578:152:::0;;:::o;11880:79::-;11918:7;11945:6;;;;;;;;;;;11938:13;;11880:79;:::o;13583:29::-;;;;:::o;13407:30::-;;;;:::o;13157:27::-;;;;:::o;20373:374::-;20439:21;20463:8;20472:7;20463:17;;;;;;;;;;;;;;;;;;20439:41;;20491:22;20516:9;:18;20526:7;20516:18;;;;;;;;;;;:30;20535:10;20516:30;;;;;;;;;;;;;;;20491:55;;20557:57;20589:10;20602:4;:11;;;20557:4;:10;;;;;;;;;;;;:23;;;;:57;;;;;:::i;:::-;20664:7;20652:10;20630:55;;;20673:4;:11;;;20630:55;;;;;;;;;;;;;;;;;;20710:1;20696:4;:11;;:15;;;;20738:1;20722:4;:13;;:17;;;;20373:374;;;:::o;13332:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18922:749::-;18991:21;19015:8;19024:7;19015:17;;;;;;;;;;;;;;;;;;18991:41;;19043:22;19068:9;:18;19078:7;19068:18;;;;;;;;;;;:30;19087:10;19068:30;;;;;;;;;;;;;;;19043:55;;19109:19;19120:7;19109:10;:19::i;:::-;19157:1;19143:4;:11;;;:15;19139:262;;;19175:15;19193:142;19321:4;:13;;;19193:105;19293:4;19193:77;19245:4;:24;;;19193:4;:29;;;:51;;:77;;;;:::i;:::-;:99;;:105;;;;:::i;:::-;:127;;:142;;;;:::i;:::-;19175:160;;19350:39;19369:10;19381:7;19350:18;:39::i;:::-;19139:262;;19411:72;19447:10;19468:4;19475:7;19411:4;:10;;;;;;;;;;;;:27;;;;:72;;;;;;:::i;:::-;19508:24;19524:7;19508:4;:11;;;:15;;:24;;;;:::i;:::-;19494:4;:11;;:38;;;;19559:51;19605:4;19559:41;19575:4;:24;;;19559:4;:11;;;:15;;:41;;;;:::i;:::-;:45;;:51;;;;:::i;:::-;19543:4;:13;;:67;;;;19646:7;19634:10;19626:37;;;19655:7;19626:37;;;;;;;;;;;;;;;;;;18922:749;;;;:::o;13480:35::-;;;;:::o;12250:281::-;12017:12;:10;:12::i;:::-;12007:22;;:6;;;;;;;;;;;:22;;;11999:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12373:1:::1;12353:22;;:8;:22;;;;12331:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12486:8;12457:38;;12478:6;::::0;::::1;;;;;;;;;12457:38;;;;;;;;;;;;12515:8;12506:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;12250:281:::0;:::o;3355:106::-;3408:15;3443:10;3436:17;;3355:106;:::o;4483:181::-;4541:7;4561:9;4577:1;4573;:5;4561:17;;4602:1;4597;:6;;4589:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4655:1;4648:8;;;4483:181;;;;:::o;4672:136::-;4730:7;4757:43;4761:1;4764;4757:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4750:50;;4672:136;;;;:::o;5050:250::-;5108:7;5137:1;5132;:6;5128:47;;;5162:1;5155:8;;;;5128:47;5187:9;5203:1;5199;:5;5187:17;;5232:1;5227;5223;:5;;;;;;:10;5215:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5291:1;5284:8;;;5050:250;;;;;:::o;5308:132::-;5366:7;5393:39;5397:1;5400;5393:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5386:46;;5308:132;;;;:::o;20755:313::-;20833:19;20855:11;;;;;;;;;;;:21;;;20885:4;20855:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20855:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20855:36:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20855:36:0;;;;;;;;;;;;;;;;20833:58;;20916:11;20906:7;:21;20902:159;;;20944:11;;;;;;;;;;;:20;;;20965:3;20970:11;20944:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20944:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20944:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20944:38:0;;;;;;;;;;;;;;;;;20902:159;;;21015:11;;;;;;;;;;;:20;;;21036:3;21041:7;21015:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21015:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21015:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21015:34:0;;;;;;;;;;;;;;;;;20902:159;20755:313;;;:::o;9083:248::-;9200:123;9234:5;9277:23;;;9302:2;9306:5;9254:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9254:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;9254:58:0;9200:19;:123::i;:::-;9083:248;;;:::o;9632:433::-;9785:1;9776:5;:10;9775:62;;;;9835:1;9792:5;:15;;;9816:4;9823:7;9792:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9792:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9792:39:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9792:39:0;;;;;;;;;;;;;;;;:44;9775:62;9753:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9930:127;9964:5;10007:22;;;10031:7;10040:5;9984:62;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9984:62:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;9984:62:0;9930:19;:127::i;:::-;9632:433;;;:::o;9339:285::-;9483:133;9517:5;9560:27;;;9589:4;9595:2;9599:5;9537:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9537:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;9537:68:0;9483:19;:133::i;:::-;9339:285;;;;:::o;4816:226::-;4936:7;4969:1;4964;:6;;4972:12;4956:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4956:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4996:9;5012:1;5008;:5;4996:17;;5033:1;5026:8;;;4816:226;;;;;:::o;5448:223::-;5568:7;5600:1;5596;:5;5603:12;5588:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5588:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5627:9;5643:1;5639;:5;;;;;;5627:17;;5662:1;5655:8;;;5448:223;;;;;:::o;11043:477::-;11124:23;11150:106;11192:4;11150:106;;;;;;;;;;;;;;;;;11158:5;11150:27;;;;:106;;;;;:::i;:::-;11124:132;;11291:1;11271:10;:17;:21;11267:246;;;11404:10;11393:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11393:30:0;;;;;;;;;;;;;;;;11367:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11267:246;11043:477;;;:::o;7096:230::-;7233:12;7265:53;7288:6;7296:4;7302:1;7305:12;7265:22;:53::i;:::-;7258:60;;7096:230;;;;;:::o;8102:882::-;8275:12;8308:18;8319:6;8308:10;:18::i;:::-;8300:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8434:12;8448:23;8475:6;:11;;8494:8;8518:4;8475:58;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8475:58:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;8433:100:0;;;;8548:7;8544:433;;;8579:10;8572:17;;;;;;8544:433;8646:1;8626:10;:17;:21;8622:344;;;8794:10;8788:17;8855:15;8842:10;8838:2;8834:19;8827:44;8742:148;8937:12;8930:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8930:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8102:882;;;;;;;:::o;6150:255::-;6210:4;6229:12;6353:7;6341:20;6333:28;;6396:1;6389:4;:8;6382:15;;;6150:255;;;:::o
Swarm Source
ipfs://215a9d5c239d708d1ab9e86b722276615bf99fb204df2a578248af92cd224364
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.