ETH Price: $2,364.49 (+0.68%)

Contract

0x75ACe7a086eA0FB1a79e43Cc6331Ad053d8C67cB
 

Overview

ETH Balance

6.586266859311926002 ETH

Eth Value

$15,573.16 (@ $2,364.49/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw205420692024-08-16 15:24:2327 days ago1723821863IN
Gluon Network
0 ETH0.000223682.22279719
Withdraw198140622024-05-06 22:36:23129 days ago1715034983IN
Gluon Network
0 ETH0.000622054.67261243
Withdraw198140602024-05-06 22:35:59129 days ago1715034959IN
Gluon Network
0 ETH0.000449684.46445278
Withdraw198140572024-05-06 22:35:23129 days ago1715034923IN
Gluon Network
0 ETH0.000594354.73535839
Withdraw198140542024-05-06 22:34:47129 days ago1715034887IN
Gluon Network
0 ETH0.000487764.29331486
Withdraw197057712024-04-21 19:08:59144 days ago1713726539IN
Gluon Network
0 ETH0.000831646.47890783
Withdraw194427702024-03-15 20:37:11181 days ago1710535031IN
Gluon Network
0 ETH0.0103955532.42522096
Withdraw191783092024-02-07 19:10:11218 days ago1707333011IN
Gluon Network
0 ETH0.0078307558.50876636
Withdraw188399692023-12-22 7:42:23266 days ago1703230943IN
Gluon Network
0 ETH0.0052334752.01695466
Deposit Ether188355092023-12-21 16:43:47266 days ago1703177027IN
Gluon Network
0.04 ETH0.005364566.93002415
Withdraw187693152023-12-12 9:48:59276 days ago1702374539IN
Gluon Network
0 ETH0.0026471723.543393
Withdraw187686832023-12-12 7:41:23276 days ago1702366883IN
Gluon Network
0 ETH0.0035521230.52391893
Withdraw180546602023-09-03 8:04:23376 days ago1693728263IN
Gluon Network
0 ETH0.0019281419.15864295
Deposit Token178741202023-08-09 1:38:35401 days ago1691545115IN
Gluon Network
0 ETH0.0009148127.70389752
Deposit Token178741172023-08-09 1:37:59401 days ago1691545079IN
Gluon Network
0 ETH0.0029670327.70389752
Withdraw178117152023-07-31 8:11:47410 days ago1690791107IN
Gluon Network
0 ETH0.0028342124.29656328
Deposit Token178115652023-07-31 7:41:47410 days ago1690789307IN
Gluon Network
0 ETH0.0023405321.85659825
Withdraw177029132023-07-16 2:31:11425 days ago1689474671IN
Gluon Network
0 ETH0.0022583922.42936903
Deposit Ether177026752023-07-16 1:42:47425 days ago1689471767IN
Gluon Network
0.003 ETH0.0010182412.70402339
Deposit Ether176369642023-07-06 19:45:47434 days ago1688672747IN
Gluon Network
0.75 ETH0.002109226.31545095
Withdraw175332032023-06-22 5:51:35449 days ago1687413095IN
Gluon Network
0 ETH0.0024339320.87043139
Transfer175321892023-06-22 2:26:47449 days ago1687400807IN
Gluon Network
0 ETH0.0034644622.35788719
Deposit Token175314102023-06-21 23:49:23449 days ago1687391363IN
Gluon Network
0 ETH0.0021644920.5647274
Withdraw175313902023-06-21 23:45:23449 days ago1687391123IN
Gluon Network
0 ETH0.0021610221.47429477
Deposit Ether175304322023-06-21 20:31:35449 days ago1687379495IN
Gluon Network
0.7 ETH0.0018736323.37629377
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205420692024-08-16 15:24:2327 days ago1723821863
Gluon Network
0.0199 ETH
198140602024-05-06 22:35:59129 days ago1715034959
Gluon Network
0.0177 ETH
188399692023-12-22 7:42:23266 days ago1703230943
Gluon Network
0.04 ETH
180546602023-09-03 8:04:23376 days ago1693728263
Gluon Network
0.01 ETH
177029132023-07-16 2:31:11425 days ago1689474671
Gluon Network
0.001 ETH
175313902023-06-21 23:45:23449 days ago1687391123
Gluon Network
0.7 ETH
161826182022-12-14 11:24:47639 days ago1671017087
Gluon Network
0.01 ETH
154472672022-08-31 15:02:40743 days ago1661958160
Gluon Network
0.09 ETH
153189552022-08-11 5:45:48764 days ago1660196748
Gluon Network
0.02 ETH
147776732022-05-15 3:41:00852 days ago1652586060
Gluon Network
0.0492 ETH
143471212022-03-08 16:04:15919 days ago1646755455
Gluon Network
0.05 ETH
142794812022-02-26 4:10:41930 days ago1645848641
Gluon Network
0.0968 ETH
128055202021-07-11 10:36:471160 days ago1625999807
Gluon Network
0.02 ETH
127305142021-06-29 18:22:321171 days ago1624990952
Gluon Network
0.243 ETH
127237462021-06-28 17:08:391172 days ago1624900119
Gluon Network
0.01 ETH
126986172021-06-24 19:08:571176 days ago1624561737
Gluon Network
0.01 ETH
125756192021-06-05 16:52:171195 days ago1622911937
Gluon Network
0.0742 ETH
124429272021-05-16 2:51:031216 days ago1621133463
Gluon Network
1.0254 ETH
123586642021-05-03 2:55:541229 days ago1620010554
Gluon Network
0.058 ETH
123565352021-05-02 19:09:141229 days ago1619982554
Gluon Network
0.1451 ETH
123482972021-05-01 12:29:331230 days ago1619872173
Gluon Network
0.025 ETH
123284912021-04-28 10:44:301234 days ago1619606670
Gluon Network
356.5252 ETH
122994632021-04-23 23:33:021238 days ago1619220782
Gluon Network
5.85 ETH
122991172021-04-23 22:08:511238 days ago1619215731
Gluon Network
0.08 ETH
122967992021-04-23 13:51:001238 days ago1619185860
Gluon Network
4.145 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Gluon

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-11-14
*/

/**
 *Submitted for verification at Etherscan.io on 2019-11-13
*/

// File: contracts/common/Validating.sol

pragma solidity 0.5.12;


interface Validating {
  modifier notZero(uint number) { require(number > 0, "invalid 0 value"); _; }
  modifier notEmpty(string memory text) { require(bytes(text).length > 0, "invalid empty string"); _; }
  modifier validAddress(address value) { require(value != address(0x0), "invalid address"); _; }
}

// File: contracts/common/Versioned.sol

pragma solidity 0.5.12;


contract Versioned {

  string public version;

  constructor(string memory version_) public { version = version_; }

}

// File: contracts/external/SafeMath.sol

pragma solidity 0.5.12;


/**
 * @title Math provides arithmetic functions for uint type pairs.
 * You can safely `plus`, `minus`, `times`, and `divide` uint numbers without fear of integer overflow.
 * You can also find the `min` and `max` of two numbers.
 */
library SafeMath {

  function min(uint x, uint y) internal pure returns (uint) { return x <= y ? x : y; }
  function max(uint x, uint y) internal pure returns (uint) { return x >= y ? x : y; }


  /** @dev adds two numbers, reverts on overflow */
  function plus(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, "bad addition"); }

  /** @dev subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend) */
  function minus(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, "bad subtraction"); }


  /** @dev multiplies two numbers, reverts on overflow */
  function times(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, "bad multiplication"); }

  /** @dev divides two numbers and returns the remainder (unsigned integer modulo), reverts when dividing by zero */
  function mod(uint x, uint y) internal pure returns (uint z) {
    require(y != 0, "bad modulo; using 0 as divisor");
    z = x % y;
  }

  /** @dev Integer division of two numbers truncating the quotient, reverts on division by zero */
  function div(uint a, uint b) internal pure returns (uint c) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
  }

}

// File: contracts/external/Token.sol

pragma solidity 0.5.12;


/*
 * Abstract contract for the full ERC 20 Token standard
 * https://github.com/ethereum/EIPs/issues/20
 */
contract Token {
  /** This is a slight change to the ERC20 base standard.
  function totalSupply() view returns (uint supply);
  is replaced map:
  uint public totalSupply;
  This automatically creates a getter function for the totalSupply.
  This is moved to the base contract since public getter functions are not
  currently recognised as an implementation of the matching abstract
  function by the compiler.
  */
  /// total amount of tokens
  uint public totalSupply;

  /// @param _owner The address from which the balance will be retrieved
  /// @return The balance
  function balanceOf(address _owner) public view returns (uint balance);

  /// @notice send `_value` token to `_to` from `msg.sender`
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transfer(address _to, uint _value) public returns (bool success);

  /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
  /// @param _from The address of the sender
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transferFrom(address _from, address _to, uint _value) public returns (bool success);

  /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @param _value The amount of tokens to be approved for transfer
  /// @return Whether the approval was successful or not
  function approve(address _spender, uint _value) public returns (bool success);

  /// @param _owner The address of the account owning tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @return Amount of remaining tokens allowed to spent
  function allowance(address _owner, address _spender) public view returns (uint remaining);

  event Transfer(address indexed _from, address indexed _to, uint _value);
  event Approval(address indexed _owner, address indexed _spender, uint _value);
}

// File: contracts/gluon/AppGovernance.sol

pragma solidity 0.5.12;


interface AppGovernance {
  function approve(uint32 id) external;
  function disapprove(uint32 id) external;
  function activate(uint32 id) external;
}

// File: contracts/gluon/AppLogic.sol

pragma solidity 0.5.12;


interface AppLogic {
  function upgrade() external;
  function credit(address account, address asset, uint quantity) external;
  function debit(address account, bytes calldata parameters) external returns (address asset, uint quantity);
}

// File: contracts/gluon/GluonView.sol

pragma solidity 0.5.12;


interface GluonView {
  function app(uint32 id) external view returns (address current, address proposal, uint activationBlock);
  function current(uint32 id) external view returns (address);
  function history(uint32 id) external view returns (address[] memory);
  function getBalance(uint32 id, address asset) external view returns (uint);
  function isAnyLogic(uint32 id, address logic) external view returns (bool);
  function isAppOwner(uint32 id, address appOwner) external view returns (bool);
  function proposals(address logic) external view returns (bool);
  function totalAppsCount() external view returns(uint32);
}

// File: contracts/gluon/GluonWallet.sol

pragma solidity 0.5.12;


interface GluonWallet {
  function depositEther(uint32 id) external payable;
  function depositToken(uint32 id, address token, uint quantity) external;
  function withdraw(uint32 id, bytes calldata parameters) external;
  function transfer(uint32 from, uint32 to, bytes calldata parameters) external;
}

// File: contracts/gluon/Governing.sol

pragma solidity 0.5.12;


interface Governing {
  function deleteVoteTally(address proposal) external;
  function activationInterval() external view returns (uint);
}

// File: contracts/common/HasOwners.sol

pragma solidity 0.5.12;



contract HasOwners is Validating {

  address[] public owners;
  mapping(address => bool) public isOwner;

  event OwnerAdded(address indexed owner);
  event OwnerRemoved(address indexed owner);

  constructor(address[] memory owners_) public {
    for (uint i = 0; i < owners_.length; i++) addOwner_(owners_[i]);
  }

  modifier onlyOwner { require(isOwner[msg.sender], "invalid sender; must be owner"); _; }

  function getOwners() public view returns (address[] memory) { return owners; }

  function addOwner(address owner) external onlyOwner { addOwner_(owner); }

  function addOwner_(address owner) private validAddress(owner) {
    if (!isOwner[owner]) {
      isOwner[owner] = true;
      owners.push(owner);
      emit OwnerAdded(owner);
    }
  }

  function removeOwner(address owner) external onlyOwner {
    require(isOwner[owner], 'only owners can be removed');
    require(owners.length > 1, 'can not remove last owner');
    isOwner[owner] = false;
    for (uint i = 0; i < owners.length; i++) {
      if (owners[i] == owner) {
        owners[i] = owners[owners.length - 1];
        owners.pop();
        emit OwnerRemoved(owner);
        break;
      }
    }
  }

}

// File: contracts/gluon/HasAppOwners.sol

pragma solidity 0.5.12;



contract HasAppOwners is HasOwners {

  mapping(uint32 => address[]) public appOwners;

  event AppOwnerAdded (uint32 appId, address appOwner);
  event AppOwnerRemoved (uint32 appId, address appOwner);

  constructor(address[] memory owners) HasOwners(owners) public { }

  modifier onlyAppOwner(uint32 appId) { require(isAppOwner(appId, msg.sender), "invalid sender; must be app owner"); _; }

  function isAppOwner(uint32 appId, address appOwner) public view returns (bool) {
    address[] memory currentOwners = appOwners[appId];
    for (uint i = 0; i < currentOwners.length; i++) {
      if (currentOwners[i] == appOwner) return true;
    }
    return false;
  }

  function getAppOwners(uint32 appId) public view returns (address[] memory) { return appOwners[appId]; }

  function addAppOwners(uint32 appId, address[] calldata toBeAdded) external onlyAppOwner(appId) {
    addAppOwners_(appId, toBeAdded);
  }

  function addAppOwners_(uint32 appId, address[] memory toBeAdded) internal {
    for (uint i = 0; i < toBeAdded.length; i++) {
      if (!isAppOwner(appId, toBeAdded[i])) {
        appOwners[appId].push(toBeAdded[i]);
        emit AppOwnerAdded(appId, toBeAdded[i]);
      }
    }
  }


  function removeAppOwners(uint32 appId, address[] calldata toBeRemoved) external onlyAppOwner(appId) {
    address[] storage currentOwners = appOwners[appId];
    require(currentOwners.length > toBeRemoved.length, "can not remove last owner");
    for (uint i = 0; i < toBeRemoved.length; i++) {
      for (uint j = 0; j < currentOwners.length; j++) {
        if (currentOwners[j] == toBeRemoved[i]) {
          currentOwners[j] = currentOwners[currentOwners.length - 1];
          currentOwners.pop();
          emit AppOwnerRemoved(appId, toBeRemoved[i]);
          break;
        }
      }
    }
  }

}

// File: contracts/gluon/Gluon.sol

pragma solidity 0.5.12;












contract Gluon is Validating, Versioned, AppGovernance, GluonView, GluonWallet, HasAppOwners {
  using SafeMath for uint;

  struct App {
    address[] history;
    address proposal;
    uint activationBlock;
    mapping(address => uint) balances;
  }

  address private constant ETH = address(0x0);
  uint32 private constant REGISTRY_INDEX = 0;
  uint32 private constant STAKE_INDEX = 1;

  mapping(uint32 => App) public apps;
  mapping(address => bool) public proposals;
  uint32 public totalAppsCount = 0;

  event AppRegistered (uint32 appId);
  event AppProvisioned(uint32 indexed appId, uint8 version, address logic);
  event ProposalAdded(uint32 indexed appId, uint8 version, address logic, uint activationBlock);
  event ProposalRemoved(uint32 indexed appId, uint8 version, address logic);
  event Activated(uint32 indexed appId, uint8 version, address logic);

  constructor(address[] memory owners, string memory version) Versioned(version) public HasAppOwners(owners) {
    registerApp_(REGISTRY_INDEX, owners);
    registerApp_(STAKE_INDEX, owners);
  }

  modifier onlyCurrentLogic(uint32 appId) { require(msg.sender == current(appId), "invalid sender; must be latest logic contract"); _; }
  modifier provisioned(uint32 appId) { require(apps[appId].history.length > 0, "App is not yet provisioned"); _; }

  function registerApp(uint32 appId, address[] calldata appOwners_) external onlyOwner { registerApp_(appId, appOwners_); }

  function registerApp_(uint32 appId, address[] memory appOwners_) private {
    require(appOwners[appId].length == 0, "App already has app owner");
    require(totalAppsCount == appId, "app ids are incremented by 1");
    totalAppsCount++;
    emit AppRegistered(appId);
    addAppOwners_(appId, appOwners_);
  }

  function provisionApp(uint32 appId, address logic) external onlyAppOwner(appId) validAddress(logic) {
    App storage app = apps[appId];
    require(app.history.length == 0, "App is already provisioned");
    app.history.push(logic);
    emit AppProvisioned(appId, uint8(app.history.length - 1), logic);
  }

  function addProposal(uint32 appId, address logic) external onlyAppOwner(appId) provisioned(appId) validAddress(logic) {
    App storage app = apps[appId];
    require(app.proposal == address(0), "Proposal already exists. remove proposal before adding new one");
    app.proposal = logic;
    app.activationBlock = block.number + Governing(current(STAKE_INDEX)).activationInterval();
    proposals[logic] = true;
    emit ProposalAdded(appId, uint8(app.history.length - 1), app.proposal, app.activationBlock);
  }

  function removeProposal(uint32 appId) external onlyAppOwner(appId) provisioned(appId) {
    App storage app = apps[appId];
    emit ProposalRemoved(appId, uint8(app.history.length - 1), app.proposal);
    deleteProposal(app);
  }

  function deleteProposal(App storage app) private {
    Governing(current(STAKE_INDEX)).deleteVoteTally(app.proposal);
    delete proposals[app.proposal];
    delete app.proposal;
    app.activationBlock = 0;
  }

  /************************************************* AppGovernance ************************************************/

  function approve(uint32 appId) external onlyCurrentLogic(STAKE_INDEX) {
    apps[appId].activationBlock = block.number;
  }

  function disapprove(uint32 appId) external onlyCurrentLogic(STAKE_INDEX) {
    App storage app = apps[appId];
    emit ProposalRemoved(appId, uint8(app.history.length - 1), app.proposal);
    deleteProposal(app);
  }

  function activate(uint32 appId) external onlyCurrentLogic(appId) provisioned(appId) {
    App storage app = apps[appId];
    require(app.activationBlock > 0, "nothing to activate");
    require(app.activationBlock < block.number, "new app can not be activated before activation block");
    app.history.push(app.proposal); // now make it the current
    deleteProposal(app);
    emit Activated(appId, uint8(app.history.length - 1), current(appId));
  }

  /**************************************************** GluonWallet ****************************************************/

  function depositEther(uint32 appId) external payable provisioned(appId) {
    App storage app = apps[appId];
    app.balances[ETH] = app.balances[ETH].plus(msg.value);
    AppLogic(current(appId)).credit(msg.sender, ETH, msg.value);
  }

  /// @notice an account must call token.approve(logic, quantity) beforehand
  function depositToken(uint32 appId, address token, uint quantity) external provisioned(appId) {
    transferTokensToGluonSecurely(appId, Token(token), quantity);
    AppLogic(current(appId)).credit(msg.sender, token, quantity);
  }

  function transferTokensToGluonSecurely(uint32 appId, Token token, uint quantity) private {
    uint balanceBefore = token.balanceOf(address(this));
    require(token.transferFrom(msg.sender, address(this), quantity), "failure to transfer quantity from token");
    uint balanceAfter = token.balanceOf(address(this));
    require(balanceAfter.minus(balanceBefore) == quantity, "bad Token; transferFrom erroneously reported of successful transfer");
    App storage app = apps[appId];
    app.balances[address(token)] = app.balances[address(token)].plus(quantity);
  }

  function withdraw(uint32 appId, bytes calldata parameters) external provisioned(appId) {
    (address asset, uint quantity) = AppLogic(current(appId)).debit(msg.sender, parameters);
    if (quantity > 0) {
      App storage app = apps[appId];
      require(app.balances[asset] >= quantity, "not enough funds to transfer");
      app.balances[asset] = apps[appId].balances[asset].minus(quantity);
      asset == ETH ?
        require(address(uint160(msg.sender)).send(quantity), "failed to transfer ether") : // explicit casting to `address payable`
        transferTokensToAccountSecurely(Token(asset), quantity, msg.sender);
    }
  }

  function transferTokensToAccountSecurely(Token token, uint quantity, address to) private {
    uint balanceBefore = token.balanceOf(to);
    require(token.transfer(to, quantity), "failure to transfer quantity from token");
    uint balanceAfter = token.balanceOf(to);
    require(balanceAfter.minus(balanceBefore) == quantity, "bad Token; transferFrom erroneously reported of successful transfer");
  }

  function transfer(uint32 from, uint32 to, bytes calldata parameters) external provisioned(from) provisioned(to) {
    (address asset, uint quantity) = AppLogic(current(from)).debit(msg.sender, parameters);
    if (quantity > 0) {
      if (from != to) {
        require(apps[from].balances[asset] >= quantity, "not enough balance in logic to transfer");
        apps[from].balances[asset] = apps[from].balances[asset].minus(quantity);
        apps[to].balances[asset] = apps[to].balances[asset].plus(quantity);
      }
      AppLogic(current(to)).credit(msg.sender, asset, quantity);
    }
  }

  /**************************************************** GluonView  ****************************************************/

  function app(uint32 appId) external view returns (address current, address proposal, uint activationBlock) {
    App memory app_ = apps[appId];
    current = app_.history[app_.history.length - 1];
    proposal = app_.proposal;
    activationBlock = app_.activationBlock;
  }

  function current(uint32 appId) public view returns (address) { return apps[appId].history[apps[appId].history.length - 1]; }

  function history(uint32 appId) external view returns (address[] memory) { return apps[appId].history; }

  function isAnyLogic(uint32 appId, address logic) public view returns (bool) {
    address[] memory history_ = apps[appId].history;
    for (uint i = history_.length; i > 0; i--) {
      if (history_[i - 1] == logic) return true;
    }
    return false;
  }

  function getBalance(uint32 appId, address asset) external view returns (uint) { return apps[appId].balances[asset]; }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"string","name":"version","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"appId","type":"uint32"},{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"},{"indexed":false,"internalType":"address","name":"logic","type":"address"}],"name":"Activated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"appId","type":"uint32"},{"indexed":false,"internalType":"address","name":"appOwner","type":"address"}],"name":"AppOwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"appId","type":"uint32"},{"indexed":false,"internalType":"address","name":"appOwner","type":"address"}],"name":"AppOwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"appId","type":"uint32"},{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"},{"indexed":false,"internalType":"address","name":"logic","type":"address"}],"name":"AppProvisioned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"appId","type":"uint32"}],"name":"AppRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"appId","type":"uint32"},{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"},{"indexed":false,"internalType":"address","name":"logic","type":"address"},{"indexed":false,"internalType":"uint256","name":"activationBlock","type":"uint256"}],"name":"ProposalAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"appId","type":"uint32"},{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"},{"indexed":false,"internalType":"address","name":"logic","type":"address"}],"name":"ProposalRemoved","type":"event"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"activate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address[]","name":"toBeAdded","type":"address[]"}],"name":"addAppOwners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address","name":"logic","type":"address"}],"name":"addProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"app","outputs":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"activationBlock","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"appOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"apps","outputs":[{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"activationBlock","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"current","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"depositEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"depositToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"disapprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"getAppOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address","name":"asset","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"history","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address","name":"logic","type":"address"}],"name":"isAnyLogic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address","name":"appOwner","type":"address"}],"name":"isAppOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"proposals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address","name":"logic","type":"address"}],"name":"provisionApp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address[]","name":"appOwners_","type":"address[]"}],"name":"registerApp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"address[]","name":"toBeRemoved","type":"address[]"}],"name":"removeAppOwners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"}],"name":"removeProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalAppsCount","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"from","type":"uint32"},{"internalType":"uint32","name":"to","type":"uint32"},{"internalType":"bytes","name":"parameters","type":"bytes"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint32","name":"appId","type":"uint32"},{"internalType":"bytes","name":"parameters","type":"bytes"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526006805463ffffffff191690553480156200001e57600080fd5b50604051620037eb380380620037eb833981810160405260408110156200004457600080fd5b81019080805160405193929190846401000000008211156200006557600080fd5b9083019060208201858111156200007b57600080fd5b82518660208202830111640100000000821117156200009957600080fd5b82525081516020918201928201910280838360005b83811015620000c8578181015183820152602001620000ae565b5050505090500160405260200180516040519392919084640100000000821115620000f257600080fd5b9083019060208201858111156200010857600080fd5b82516401000000008111828201881017156200012357600080fd5b82525081516020918201929091019080838360005b838110156200015257818101518382015260200162000138565b50505050905090810190601f168015620001805780820380516001836020036101000a031916815260200191505b506040525050508180828060009080519060200190620001a292919062000686565b50600090505b8151811015620001e057620001d7828281518110620001c357fe5b60200260200101516200021460201b60201c565b600101620001a8565b505050620001f66000836200033960201b60201c565b6200020c6001836001600160e01b036200033916565b50506200072b565b806001600160a01b0381166200028b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090205460ff1662000335576001600160a01b038216600081815260026020526040808220805460ff19166001908117909155805480820182559083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191684179055517f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a25b5050565b63ffffffff821660009081526003602052604090205415620003bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f41707020616c72656164792068617320617070206f776e657200000000000000604482015290519081900360640190fd5b60065463ffffffff8381169116146200043657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f617070206964732061726520696e6372656d656e746564206279203100000000604482015290519081900360640190fd5b6006805463ffffffff198116600163ffffffff92831601821617909155604080519184168252517fb0b9faff9396f136cbe65dd6c9bb23a764dcaacd0b87031b56c9b37888ac50ca916020908290030190a16200033582826001600160e01b036200049d16565b60005b8151811015620005b357620004d083838381518110620004bc57fe5b6020026020010151620005b860201b60201c565b620005aa5763ffffffff831660009081526003602052604090208251839083908110620004f957fe5b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905581517fd0aede363d027a6b258f61b4e6d50943b24e9db9e832960604a9d0ca021159839084908490849081106200056757fe5b6020026020010151604051808363ffffffff1663ffffffff168152602001826001600160a01b03166001600160a01b031681526020019250505060405180910390a15b600101620004a0565b505050565b63ffffffff8216600090815260036020908152604080832080548251818502810185019093528083526060938301828280156200061f57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000600575b50939450600093505050505b81518110156200067957836001600160a01b03168282815181106200064c57fe5b60200260200101516001600160a01b03161415620006705760019250505062000680565b6001016200062b565b5060009150505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006c957805160ff1916838001178555620006f9565b82800160010185558215620006f9579182015b82811115620006f9578251825591602001919060010190620006dc565b50620007079291506200070b565b5090565b6200072891905b8082111562000707576000815560010162000712565b90565b6130b0806200073b6000396000f3fe6080604052600436106101cd5760003560e01c80633f25de58116100f75780637065cb4811610095578063c2ab471f11610064578063c2ab471f14610983578063c7aa37d0146109c2578063e8b6c22e146109f8578063fe0f4ff414610a80576101cd565b80637065cb48146108cc5780639164ac43146108ff578063a0e67e2b1461092f578063b197919714610944576101cd565b80635441c2b6116100d15780635441c2b61461072157806354fd4d501461077257806356df0ee2146107fc57806364c6dcfe1461083b576101cd565b80633f25de58146106545780634e7c1d3a14610682578063525af047146106c7576101cd565b806320f49ddb1161016f5780632fe43cce1161013e5780632fe43cce146104f65780633341b445146105195780633a997c7d1461054c5780633b845232146105cc576101cd565b806320f49ddb14610410578063275c18ab146104405780632d7edc9f146104705780632f54bf6e146104af576101cd565b806314794b8e116101ab57806314794b8e146102f5578063173825d9146103255780631a93ec95146103585780631d98eb8c14610388576101cd565b8063025e7c27146101d2578063039672c41461021857806313665359146102a2575b600080fd5b3480156101de57600080fd5b506101fc600480360360208110156101f557600080fd5b5035610ab0565b604080516001600160a01b039092168252519081900360200190f35b34801561022457600080fd5b506102a06004803603604081101561023b57600080fd5b63ffffffff8235169190810190604081016020820135600160201b81111561026257600080fd5b82018360208201111561027457600080fd5b803590602001918460018302840111600160201b8311171561029557600080fd5b509092509050610ad7565b005b3480156102ae57600080fd5b506102d2600480360360208110156102c557600080fd5b503563ffffffff16610d5c565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561030157600080fd5b506102a06004803603602081101561031857600080fd5b503563ffffffff16610d84565b34801561033157600080fd5b506102a06004803603602081101561034857600080fd5b50356001600160a01b0316610e56565b34801561036457600080fd5b506102a06004803603602081101561037b57600080fd5b503563ffffffff166110ae565b34801561039457600080fd5b506102a0600480360360408110156103ab57600080fd5b63ffffffff8235169190810190604081016020820135600160201b8111156103d257600080fd5b8201836020820111156103e457600080fd5b803590602001918460208302840111600160201b8311171561040557600080fd5b5090925090506112a3565b34801561041c57600080fd5b506101fc6004803603602081101561043357600080fd5b503563ffffffff16611344565b34801561044c57600080fd5b506102a06004803603602081101561046357600080fd5b503563ffffffff16611384565b34801561047c57600080fd5b506102a06004803603604081101561049357600080fd5b50803563ffffffff1690602001356001600160a01b031661149a565b3480156104bb57600080fd5b506104e2600480360360208110156104d257600080fd5b50356001600160a01b0316611704565b604080519115158252519081900360200190f35b6102a06004803603602081101561050c57600080fd5b503563ffffffff16611719565b34801561052557600080fd5b506104e26004803603602081101561053c57600080fd5b50356001600160a01b031661182a565b34801561055857600080fd5b5061057c6004803603602081101561056f57600080fd5b503563ffffffff1661183f565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b85781810151838201526020016105a0565b505050509050019250505060405180910390f35b3480156105d857600080fd5b506102a0600480360360408110156105ef57600080fd5b63ffffffff8235169190810190604081016020820135600160201b81111561061657600080fd5b82018360208201111561062857600080fd5b803590602001918460208302840111600160201b8311171561064957600080fd5b5090925090506118b2565b34801561066057600080fd5b50610669611acb565b6040805163ffffffff9092168252519081900360200190f35b34801561068e57600080fd5b506102a0600480360360608110156106a557600080fd5b5063ffffffff813516906001600160a01b036020820135169060400135611ad7565b3480156106d357600080fd5b506106f7600480360360208110156106ea57600080fd5b503563ffffffff16611bb9565b604080516001600160a01b0394851681529290931660208301528183015290519081900360600190f35b34801561072d57600080fd5b506107606004803603604081101561074457600080fd5b50803563ffffffff1690602001356001600160a01b0316611c94565b60408051918252519081900360200190f35b34801561077e57600080fd5b50610787611cc8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107c15781810151838201526020016107a9565b50505050905090810190601f1680156107ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080857600080fd5b506104e26004803603604081101561081f57600080fd5b50803563ffffffff1690602001356001600160a01b0316611d56565b34801561084757600080fd5b506102a06004803603606081101561085e57600080fd5b63ffffffff8235811692602081013590911691810190606081016040820135600160201b81111561088e57600080fd5b8201836020820111156108a057600080fd5b803590602001918460018302840111600160201b831117156108c157600080fd5b509092509050611e1b565b3480156108d857600080fd5b506102a0600480360360208110156108ef57600080fd5b50356001600160a01b0316612153565b34801561090b57600080fd5b5061057c6004803603602081101561092257600080fd5b503563ffffffff166121c3565b34801561093b57600080fd5b5061057c612234565b34801561095057600080fd5b506104e26004803603604081101561096757600080fd5b50803563ffffffff1690602001356001600160a01b0316612296565b34801561098f57600080fd5b506102a0600480360360408110156109a657600080fd5b50803563ffffffff1690602001356001600160a01b0316612350565b3480156109ce57600080fd5b506101fc600480360360408110156109e557600080fd5b5063ffffffff81351690602001356124d0565b348015610a0457600080fd5b506102a060048036036040811015610a1b57600080fd5b63ffffffff8235169190810190604081016020820135600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460208302840111600160201b83111715610a7557600080fd5b509092509050612505565b348015610a8c57600080fd5b506102a060048036036020811015610aa357600080fd5b503563ffffffff16612588565b60018181548110610abd57fe5b6000918252602090912001546001600160a01b0316905081565b63ffffffff83166000908152600460205260409020548390610b2e576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b600080610b3a86611344565b60408051630853a73360e41b8152336004820181815260248301938452604483018990526001600160a01b03949094169363853a73309391928a928a9291606401848480828437600081840152601f19601f8201169050808301925050509450505050506040805180830381600087803b158015610bb757600080fd5b505af1158015610bcb573d6000803e3d6000fd5b505050506040513d6040811015610be157600080fd5b50805160209091015190925090508015610d545763ffffffff861660009081526004602090815260408083206001600160a01b03861684526003810190925290912054821115610c78576040805162461bcd60e51b815260206004820152601c60248201527f6e6f7420656e6f7567682066756e647320746f207472616e7366657200000000604482015290519081900360640190fd5b63ffffffff80881660009081526004602090815260408083206001600160a01b0388168452600301909152902054610cb291849061260016565b6001600160a01b038416600081815260038401602052604090209190915515610ce557610ce083833361264a565b610d52565b604051339083156108fc029084906000818181858888f19350505050610d52576040805162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207472616e736665722065746865720000000000000000604482015290519081900360640190fd5b505b505050505050565b600460205260009081526040902060018101546002909101546001600160a01b039091169082565b6001610d8f81611344565b6001600160a01b0316336001600160a01b031614610dde5760405162461bcd60e51b815260040180806020018281038252602d815260200180612f9e602d913960400191505060405180910390fd5b63ffffffff821660008181526004602090815260409182902080546001820154845160001990920160ff1682526001600160a01b03169281019290925282519093927ffddf6910a1ecd6d2f433683d973a194c4ff8c1d85a8fb6cb068ca80e02cb53df928290030190a2610e5181612865565b505050565b3360009081526002602052604090205460ff16610eba576040805162461bcd60e51b815260206004820152601d60248201527f696e76616c69642073656e6465723b206d757374206265206f776e6572000000604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff16610f27576040805162461bcd60e51b815260206004820152601a60248201527f6f6e6c79206f776e6572732063616e2062652072656d6f766564000000000000604482015290519081900360640190fd5b6001805411610f79576040805162461bcd60e51b815260206004820152601960248201527831b0b7103737ba103932b6b7bb32903630b9ba1037bbb732b960391b604482015290519081900360640190fd5b6001600160a01b0381166000908152600260205260408120805460ff191690555b6001548110156110aa57816001600160a01b031660018281548110610fbb57fe5b6000918252602090912001546001600160a01b031614156110a257600180546000198101908110610fe857fe5b600091825260209091200154600180546001600160a01b03909216918390811061100e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061104757fe5b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038416917f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91a26110aa565b600101610f9a565b5050565b806110b881611344565b6001600160a01b0316336001600160a01b0316146111075760405162461bcd60e51b815260040180806020018281038252602d815260200180612f9e602d913960400191505060405180910390fd5b63ffffffff8216600090815260046020526040902054829061115e576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff8316600090815260046020526040902060028101546111bf576040805162461bcd60e51b81526020600482015260136024820152726e6f7468696e6720746f20616374697661746560681b604482015290519081900360640190fd5b438160020154106112015760405162461bcd60e51b8152600401808060200182810382526034815260200180612f6a6034913960400191505060405180910390fd5b6001808201548254918201835560008381526020902090910180546001600160a01b0319166001600160a01b0390921691909117905561124081612865565b805463ffffffff8516907fd24b737b844b64bfa84ef4f21928ae8a3364d243efa66d76b8b3fe10eaad0d0b906000190161127987611344565b6040805160ff90931683526001600160a01b0390911660208301528051918290030190a250505050565b3360009081526002602052604090205460ff16611307576040805162461bcd60e51b815260206004820152601d60248201527f696e76616c69642073656e6465723b206d757374206265206f776e6572000000604482015290519081900360640190fd5b610e518383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061291492505050565b63ffffffff811660009081526004602052604081208054600019810190811061136957fe5b6000918252602090912001546001600160a01b031692915050565b8061138f8133612296565b6113ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b63ffffffff82166000908152600460205260409020548290611421576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff831660008181526004602090815260409182902080546001820154845160001990920160ff1682526001600160a01b03169281019290925282519093927ffddf6910a1ecd6d2f433683d973a194c4ff8c1d85a8fb6cb068ca80e02cb53df928290030190a261149481612865565b50505050565b816114a58133612296565b6114e05760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b63ffffffff83166000908152600460205260409020548390611537576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b826001600160a01b038116611585576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b63ffffffff8516600090815260046020526040902060018101546001600160a01b0316156115e45760405162461bcd60e51b815260040180806020018281038252603e815260200180612f2c603e913960400191505060405180910390fd5b600181810180546001600160a01b0319166001600160a01b03881617905561160b90611344565b6001600160a01b031663499c80ca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561164357600080fd5b505afa158015611657573d6000803e3d6000fd5b505050506040513d602081101561166d57600080fd5b50514301600282019081556001600160a01b03808716600090815260056020908152604091829020805460ff191660019081179091558554908601549454835160001990920160ff168252949093169083015281810192909252905163ffffffff8816917f69dd3b21da8dd427580e6ceafdbf997f87f5911ea3d2970aefdc88a47322ffe1919081900360600190a2505050505050565b60026020526000908152604090205460ff1681565b63ffffffff81166000908152600460205260409020548190611770576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff8083166000908152600460209081526040808320838052600381019092529091205490916117a691903490612a3716565b60008080526003830160205260409020556117c083611344565b60408051637de182c560e01b815233600482015260006024820181905234604483015291516001600160a01b039390931692637de182c59260648084019391929182900301818387803b15801561181657600080fd5b505af1158015610d52573d6000803e3d6000fd5b60056020526000908152604090205460ff1681565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156118a657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611888575b50505050509050919050565b826118bd8133612296565b6118f85760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b63ffffffff841660009081526003602052604090208054831061195e576040805162461bcd60e51b815260206004820152601960248201527831b0b7103737ba103932b6b7bb32903630b9ba1037bbb732b960391b604482015290519081900360640190fd5b60005b83811015610d545760005b8254811015611ac25785858381811061198157fe5b905060200201356001600160a01b03166001600160a01b03168382815481106119a657fe5b6000918252602090912001546001600160a01b03161415611aba578254839060001981019081106119d357fe5b9060005260206000200160009054906101000a90046001600160a01b03168382815481106119fd57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480611a3557fe5b600082815260209020810160001990810180546001600160a01b03191690550190557f512efc312e8df52a97f6abc5812c5a34ccd1ac0986ccc2c6247b452d67de333187878785818110611a8557fe5b6040805163ffffffff959095168552602091820293909301356001600160a01b031690840152508051918290030190a1611ac2565b60010161196c565b50600101611961565b60065463ffffffff1681565b63ffffffff83166000908152600460205260409020548390611b2e576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b611b39848484612a7e565b611b4284611344565b60408051637de182c560e01b81523360048201526001600160a01b0386811660248301526044820186905291519290911691637de182c59160648082019260009290919082900301818387803b158015611b9b57600080fd5b505af1158015611baf573d6000803e3d6000fd5b5050505050505050565b6000806000611bc6612ee0565b63ffffffff851660009081526004602090815260409182902082518154608093810282018401909452606081018481529093919284928491840182828015611c3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c19575b505050918352505060018201546001600160a01b0316602082015260029091015460409091015280518051919250906000198101908110611c7457fe5b602002602001015193508060200151925080604001519150509193909250565b63ffffffff821660009081526004602090815260408083206001600160a01b03851684526003019091529020545b92915050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d4e5780601f10611d2357610100808354040283529160200191611d4e565b820191906000526020600020905b815481529060010190602001808311611d3157829003601f168201915b505050505081565b63ffffffff821660009081526004602090815260408083208054825181850281018501909352808352606093830182828015611dbb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d9d575b505083519394505050505b8015611e1057836001600160a01b0316826001830381518110611de557fe5b60200260200101516001600160a01b03161415611e0757600192505050611cc2565b60001901611dc6565b506000949350505050565b63ffffffff84166000908152600460205260409020548490611e72576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff84166000908152600460205260409020548490611ec9576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b600080611ed588611344565b60408051630853a73360e41b8152336004820181815260248301938452604483018a90526001600160a01b03949094169363853a73309391928b928b9291606401848480828437600081840152601f19601f8201169050808301925050509450505050506040805180830381600087803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050506040513d6040811015611f7c57600080fd5b50805160209091015190925090508015611baf578663ffffffff168863ffffffff16146120cf5763ffffffff881660009081526004602090815260408083206001600160a01b038616845260030190915290205481111561200e5760405162461bcd60e51b81526004018080602001828103825260278152602001806130356027913960400191505060405180910390fd5b63ffffffff80891660009081526004602090815260408083206001600160a01b038716845260030190915290205461204891839061260016565b63ffffffff808a1660009081526004602081815260408084206001600160a01b03891680865260039182018452828620979097558d8616855292825280842095845294909101905291909120546120a1918390612a3716565b63ffffffff881660009081526004602090815260408083206001600160a01b03871684526003019091529020555b6120d887611344565b60408051637de182c560e01b81523360048201526001600160a01b0385811660248301526044820185905291519290911691637de182c59160648082019260009290919082900301818387803b15801561213157600080fd5b505af1158015612145573d6000803e3d6000fd5b505050505050505050505050565b3360009081526002602052604090205460ff166121b7576040805162461bcd60e51b815260206004820152601d60248201527f696e76616c69642073656e6465723b206d757374206265206f776e6572000000604482015290519081900360640190fd5b6121c081612cde565b50565b63ffffffff81166000908152600460209081526040918290208054835181840281018401909452808452606093928301828280156118a6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116118885750505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561228c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161226e575b5050505050905090565b63ffffffff8216600090815260036020908152604080832080548251818502810185019093528083526060938301828280156122fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122dd575b50939450600093505050505b8151811015611e1057836001600160a01b031682828151811061232657fe5b60200260200101516001600160a01b0316141561234857600192505050611cc2565b600101612307565b8161235b8133612296565b6123965760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b816001600160a01b0381166123e4576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b63ffffffff8416600090815260046020526040902080541561244d576040805162461bcd60e51b815260206004820152601a60248201527f41707020697320616c72656164792070726f766973696f6e6564000000000000604482015290519081900360640190fd5b8054600181018255600082815260209081902090910180546001600160a01b0319166001600160a01b03871690811790915582546040805160001990920160ff16825292810191909152815163ffffffff8816927f017bc769595aad0be6e222715334e0328919ec7353c74b70b90e038b3024dcd0928290030190a25050505050565b600360205281600052604060002081815481106124e957fe5b6000918252602090912001546001600160a01b03169150829050565b826125108133612296565b61254b5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b61149484848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612dd892505050565b600161259381611344565b6001600160a01b0316336001600160a01b0316146125e25760405162461bcd60e51b815260040180806020018281038252602d815260200180612f9e602d913960400191505060405180910390fd5b5063ffffffff16600090815260046020526040902043600290910155565b80820382811115611cc2576040805162461bcd60e51b815260206004820152600f60248201526e3130b21039bab13a3930b1ba34b7b760891b604482015290519081900360640190fd5b6000836001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156126a257600080fd5b505afa1580156126b6573d6000803e3d6000fd5b505050506040513d60208110156126cc57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820187905291519293509086169163a9059cbb916044808201926020929091908290030181600087803b15801561272457600080fd5b505af1158015612738573d6000803e3d6000fd5b505050506040513d602081101561274e57600080fd5b505161278b5760405162461bcd60e51b8152600401808060200182810382526027815260200180612fcb6027913960400191505060405180910390fd5b6000846001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156127e357600080fd5b505afa1580156127f7573d6000803e3d6000fd5b505050506040513d602081101561280d57600080fd5b5051905083612822828463ffffffff61260016565b1461285e5760405162461bcd60e51b8152600401808060200182810382526043815260200180612ff26043913960600191505060405180910390fd5b5050505050565b61286f6001611344565b600182015460408051631ce635bd60e11b81526001600160a01b039283166004820152905192909116916339cc6b7a9160248082019260009290919082900301818387803b1580156128c057600080fd5b505af11580156128d4573d6000803e3d6000fd5b505050506001810180546001600160a01b03166000908152600560205260408120805460ff1916905581546001600160a01b031916909155600290910155565b63ffffffff82166000908152600360205260409020541561297c576040805162461bcd60e51b815260206004820152601960248201527f41707020616c72656164792068617320617070206f776e657200000000000000604482015290519081900360640190fd5b60065463ffffffff8381169116146129db576040805162461bcd60e51b815260206004820152601c60248201527f617070206964732061726520696e6372656d656e746564206279203100000000604482015290519081900360640190fd5b6006805463ffffffff198116600163ffffffff92831601821617909155604080519184168252517fb0b9faff9396f136cbe65dd6c9bb23a764dcaacd0b87031b56c9b37888ac50ca916020908290030190a16110aa8282612dd8565b80820182811015611cc2576040805162461bcd60e51b815260206004820152600c60248201526b3130b21030b23234ba34b7b760a11b604482015290519081900360640190fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038516916370a0823191602480820192602092909190829003018186803b158015612ac857600080fd5b505afa158015612adc573d6000803e3d6000fd5b505050506040513d6020811015612af257600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290519192506001600160a01b038516916323b872dd916064808201926020929091908290030181600087803b158015612b4d57600080fd5b505af1158015612b61573d6000803e3d6000fd5b505050506040513d6020811015612b7757600080fd5b5051612bb45760405162461bcd60e51b8152600401808060200182810382526027815260200180612fcb6027913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038616916370a0823191602480820192602092909190829003018186803b158015612bfe57600080fd5b505afa158015612c12573d6000803e3d6000fd5b505050506040513d6020811015612c2857600080fd5b5051905082612c3d828463ffffffff61260016565b14612c795760405162461bcd60e51b8152600401808060200182810382526043815260200180612ff26043913960600191505060405180910390fd5b63ffffffff80861660009081526004602090815260408083206001600160a01b038916845260038101909252909120549091612cb891908690612a3716565b6001600160a01b0390951660009081526003909101602052604090209390935550505050565b806001600160a01b038116612d2c576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090205460ff166110aa576001600160a01b038216600081815260026020526040808220805460ff19166001908117909155805480820182559083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191684179055517f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a25050565b60005b8151811015610e5157612e0183838381518110612df457fe5b6020026020010151612296565b612ed85763ffffffff831660009081526003602052604090208251839083908110612e2857fe5b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905581517fd0aede363d027a6b258f61b4e6d50943b24e9db9e832960604a9d0ca02115983908490849084908110612e9557fe5b6020026020010151604051808363ffffffff1663ffffffff168152602001826001600160a01b03166001600160a01b031681526020019250505060405180910390a15b600101612ddb565b60405180606001604052806060815260200160006001600160a01b0316815260200160008152509056fe696e76616c69642073656e6465723b206d75737420626520617070206f776e657250726f706f73616c20616c7265616479206578697374732e2072656d6f76652070726f706f73616c206265666f726520616464696e67206e6577206f6e656e6577206170702063616e206e6f7420626520616374697661746564206265666f72652061637469766174696f6e20626c6f636b696e76616c69642073656e6465723b206d757374206265206c6174657374206c6f67696320636f6e74726163746661696c75726520746f207472616e73666572207175616e746974792066726f6d20746f6b656e62616420546f6b656e3b207472616e7366657246726f6d206572726f6e656f75736c79207265706f72746564206f66207375636365737366756c207472616e736665726e6f7420656e6f7567682062616c616e636520696e206c6f67696320746f207472616e73666572417070206973206e6f74207965742070726f766973696f6e6564000000000000a265627a7a72315820b938ada3bc32828138c90daad9eb4f4f3adb36884397a1e83f125cc02a74ccef64736f6c634300050c0032000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000004d2130d9d20428dc249a1e938a0bcea4b5b9ac1a000000000000000000000000ac01f01f51f0bdd012c1838bd5cef330e6c7ffca0000000000000000000000005ccaaae7bea14e8e04fb0fc7ed16df49d5678eb80000000000000000000000000000000000000000000000000000000000000005312e312e30000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101cd5760003560e01c80633f25de58116100f75780637065cb4811610095578063c2ab471f11610064578063c2ab471f14610983578063c7aa37d0146109c2578063e8b6c22e146109f8578063fe0f4ff414610a80576101cd565b80637065cb48146108cc5780639164ac43146108ff578063a0e67e2b1461092f578063b197919714610944576101cd565b80635441c2b6116100d15780635441c2b61461072157806354fd4d501461077257806356df0ee2146107fc57806364c6dcfe1461083b576101cd565b80633f25de58146106545780634e7c1d3a14610682578063525af047146106c7576101cd565b806320f49ddb1161016f5780632fe43cce1161013e5780632fe43cce146104f65780633341b445146105195780633a997c7d1461054c5780633b845232146105cc576101cd565b806320f49ddb14610410578063275c18ab146104405780632d7edc9f146104705780632f54bf6e146104af576101cd565b806314794b8e116101ab57806314794b8e146102f5578063173825d9146103255780631a93ec95146103585780631d98eb8c14610388576101cd565b8063025e7c27146101d2578063039672c41461021857806313665359146102a2575b600080fd5b3480156101de57600080fd5b506101fc600480360360208110156101f557600080fd5b5035610ab0565b604080516001600160a01b039092168252519081900360200190f35b34801561022457600080fd5b506102a06004803603604081101561023b57600080fd5b63ffffffff8235169190810190604081016020820135600160201b81111561026257600080fd5b82018360208201111561027457600080fd5b803590602001918460018302840111600160201b8311171561029557600080fd5b509092509050610ad7565b005b3480156102ae57600080fd5b506102d2600480360360208110156102c557600080fd5b503563ffffffff16610d5c565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561030157600080fd5b506102a06004803603602081101561031857600080fd5b503563ffffffff16610d84565b34801561033157600080fd5b506102a06004803603602081101561034857600080fd5b50356001600160a01b0316610e56565b34801561036457600080fd5b506102a06004803603602081101561037b57600080fd5b503563ffffffff166110ae565b34801561039457600080fd5b506102a0600480360360408110156103ab57600080fd5b63ffffffff8235169190810190604081016020820135600160201b8111156103d257600080fd5b8201836020820111156103e457600080fd5b803590602001918460208302840111600160201b8311171561040557600080fd5b5090925090506112a3565b34801561041c57600080fd5b506101fc6004803603602081101561043357600080fd5b503563ffffffff16611344565b34801561044c57600080fd5b506102a06004803603602081101561046357600080fd5b503563ffffffff16611384565b34801561047c57600080fd5b506102a06004803603604081101561049357600080fd5b50803563ffffffff1690602001356001600160a01b031661149a565b3480156104bb57600080fd5b506104e2600480360360208110156104d257600080fd5b50356001600160a01b0316611704565b604080519115158252519081900360200190f35b6102a06004803603602081101561050c57600080fd5b503563ffffffff16611719565b34801561052557600080fd5b506104e26004803603602081101561053c57600080fd5b50356001600160a01b031661182a565b34801561055857600080fd5b5061057c6004803603602081101561056f57600080fd5b503563ffffffff1661183f565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b85781810151838201526020016105a0565b505050509050019250505060405180910390f35b3480156105d857600080fd5b506102a0600480360360408110156105ef57600080fd5b63ffffffff8235169190810190604081016020820135600160201b81111561061657600080fd5b82018360208201111561062857600080fd5b803590602001918460208302840111600160201b8311171561064957600080fd5b5090925090506118b2565b34801561066057600080fd5b50610669611acb565b6040805163ffffffff9092168252519081900360200190f35b34801561068e57600080fd5b506102a0600480360360608110156106a557600080fd5b5063ffffffff813516906001600160a01b036020820135169060400135611ad7565b3480156106d357600080fd5b506106f7600480360360208110156106ea57600080fd5b503563ffffffff16611bb9565b604080516001600160a01b0394851681529290931660208301528183015290519081900360600190f35b34801561072d57600080fd5b506107606004803603604081101561074457600080fd5b50803563ffffffff1690602001356001600160a01b0316611c94565b60408051918252519081900360200190f35b34801561077e57600080fd5b50610787611cc8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107c15781810151838201526020016107a9565b50505050905090810190601f1680156107ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080857600080fd5b506104e26004803603604081101561081f57600080fd5b50803563ffffffff1690602001356001600160a01b0316611d56565b34801561084757600080fd5b506102a06004803603606081101561085e57600080fd5b63ffffffff8235811692602081013590911691810190606081016040820135600160201b81111561088e57600080fd5b8201836020820111156108a057600080fd5b803590602001918460018302840111600160201b831117156108c157600080fd5b509092509050611e1b565b3480156108d857600080fd5b506102a0600480360360208110156108ef57600080fd5b50356001600160a01b0316612153565b34801561090b57600080fd5b5061057c6004803603602081101561092257600080fd5b503563ffffffff166121c3565b34801561093b57600080fd5b5061057c612234565b34801561095057600080fd5b506104e26004803603604081101561096757600080fd5b50803563ffffffff1690602001356001600160a01b0316612296565b34801561098f57600080fd5b506102a0600480360360408110156109a657600080fd5b50803563ffffffff1690602001356001600160a01b0316612350565b3480156109ce57600080fd5b506101fc600480360360408110156109e557600080fd5b5063ffffffff81351690602001356124d0565b348015610a0457600080fd5b506102a060048036036040811015610a1b57600080fd5b63ffffffff8235169190810190604081016020820135600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460208302840111600160201b83111715610a7557600080fd5b509092509050612505565b348015610a8c57600080fd5b506102a060048036036020811015610aa357600080fd5b503563ffffffff16612588565b60018181548110610abd57fe5b6000918252602090912001546001600160a01b0316905081565b63ffffffff83166000908152600460205260409020548390610b2e576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b600080610b3a86611344565b60408051630853a73360e41b8152336004820181815260248301938452604483018990526001600160a01b03949094169363853a73309391928a928a9291606401848480828437600081840152601f19601f8201169050808301925050509450505050506040805180830381600087803b158015610bb757600080fd5b505af1158015610bcb573d6000803e3d6000fd5b505050506040513d6040811015610be157600080fd5b50805160209091015190925090508015610d545763ffffffff861660009081526004602090815260408083206001600160a01b03861684526003810190925290912054821115610c78576040805162461bcd60e51b815260206004820152601c60248201527f6e6f7420656e6f7567682066756e647320746f207472616e7366657200000000604482015290519081900360640190fd5b63ffffffff80881660009081526004602090815260408083206001600160a01b0388168452600301909152902054610cb291849061260016565b6001600160a01b038416600081815260038401602052604090209190915515610ce557610ce083833361264a565b610d52565b604051339083156108fc029084906000818181858888f19350505050610d52576040805162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207472616e736665722065746865720000000000000000604482015290519081900360640190fd5b505b505050505050565b600460205260009081526040902060018101546002909101546001600160a01b039091169082565b6001610d8f81611344565b6001600160a01b0316336001600160a01b031614610dde5760405162461bcd60e51b815260040180806020018281038252602d815260200180612f9e602d913960400191505060405180910390fd5b63ffffffff821660008181526004602090815260409182902080546001820154845160001990920160ff1682526001600160a01b03169281019290925282519093927ffddf6910a1ecd6d2f433683d973a194c4ff8c1d85a8fb6cb068ca80e02cb53df928290030190a2610e5181612865565b505050565b3360009081526002602052604090205460ff16610eba576040805162461bcd60e51b815260206004820152601d60248201527f696e76616c69642073656e6465723b206d757374206265206f776e6572000000604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff16610f27576040805162461bcd60e51b815260206004820152601a60248201527f6f6e6c79206f776e6572732063616e2062652072656d6f766564000000000000604482015290519081900360640190fd5b6001805411610f79576040805162461bcd60e51b815260206004820152601960248201527831b0b7103737ba103932b6b7bb32903630b9ba1037bbb732b960391b604482015290519081900360640190fd5b6001600160a01b0381166000908152600260205260408120805460ff191690555b6001548110156110aa57816001600160a01b031660018281548110610fbb57fe5b6000918252602090912001546001600160a01b031614156110a257600180546000198101908110610fe857fe5b600091825260209091200154600180546001600160a01b03909216918390811061100e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061104757fe5b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038416917f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91a26110aa565b600101610f9a565b5050565b806110b881611344565b6001600160a01b0316336001600160a01b0316146111075760405162461bcd60e51b815260040180806020018281038252602d815260200180612f9e602d913960400191505060405180910390fd5b63ffffffff8216600090815260046020526040902054829061115e576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff8316600090815260046020526040902060028101546111bf576040805162461bcd60e51b81526020600482015260136024820152726e6f7468696e6720746f20616374697661746560681b604482015290519081900360640190fd5b438160020154106112015760405162461bcd60e51b8152600401808060200182810382526034815260200180612f6a6034913960400191505060405180910390fd5b6001808201548254918201835560008381526020902090910180546001600160a01b0319166001600160a01b0390921691909117905561124081612865565b805463ffffffff8516907fd24b737b844b64bfa84ef4f21928ae8a3364d243efa66d76b8b3fe10eaad0d0b906000190161127987611344565b6040805160ff90931683526001600160a01b0390911660208301528051918290030190a250505050565b3360009081526002602052604090205460ff16611307576040805162461bcd60e51b815260206004820152601d60248201527f696e76616c69642073656e6465723b206d757374206265206f776e6572000000604482015290519081900360640190fd5b610e518383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061291492505050565b63ffffffff811660009081526004602052604081208054600019810190811061136957fe5b6000918252602090912001546001600160a01b031692915050565b8061138f8133612296565b6113ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b63ffffffff82166000908152600460205260409020548290611421576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff831660008181526004602090815260409182902080546001820154845160001990920160ff1682526001600160a01b03169281019290925282519093927ffddf6910a1ecd6d2f433683d973a194c4ff8c1d85a8fb6cb068ca80e02cb53df928290030190a261149481612865565b50505050565b816114a58133612296565b6114e05760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b63ffffffff83166000908152600460205260409020548390611537576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b826001600160a01b038116611585576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b63ffffffff8516600090815260046020526040902060018101546001600160a01b0316156115e45760405162461bcd60e51b815260040180806020018281038252603e815260200180612f2c603e913960400191505060405180910390fd5b600181810180546001600160a01b0319166001600160a01b03881617905561160b90611344565b6001600160a01b031663499c80ca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561164357600080fd5b505afa158015611657573d6000803e3d6000fd5b505050506040513d602081101561166d57600080fd5b50514301600282019081556001600160a01b03808716600090815260056020908152604091829020805460ff191660019081179091558554908601549454835160001990920160ff168252949093169083015281810192909252905163ffffffff8816917f69dd3b21da8dd427580e6ceafdbf997f87f5911ea3d2970aefdc88a47322ffe1919081900360600190a2505050505050565b60026020526000908152604090205460ff1681565b63ffffffff81166000908152600460205260409020548190611770576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff8083166000908152600460209081526040808320838052600381019092529091205490916117a691903490612a3716565b60008080526003830160205260409020556117c083611344565b60408051637de182c560e01b815233600482015260006024820181905234604483015291516001600160a01b039390931692637de182c59260648084019391929182900301818387803b15801561181657600080fd5b505af1158015610d52573d6000803e3d6000fd5b60056020526000908152604090205460ff1681565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156118a657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611888575b50505050509050919050565b826118bd8133612296565b6118f85760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b63ffffffff841660009081526003602052604090208054831061195e576040805162461bcd60e51b815260206004820152601960248201527831b0b7103737ba103932b6b7bb32903630b9ba1037bbb732b960391b604482015290519081900360640190fd5b60005b83811015610d545760005b8254811015611ac25785858381811061198157fe5b905060200201356001600160a01b03166001600160a01b03168382815481106119a657fe5b6000918252602090912001546001600160a01b03161415611aba578254839060001981019081106119d357fe5b9060005260206000200160009054906101000a90046001600160a01b03168382815481106119fd57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480611a3557fe5b600082815260209020810160001990810180546001600160a01b03191690550190557f512efc312e8df52a97f6abc5812c5a34ccd1ac0986ccc2c6247b452d67de333187878785818110611a8557fe5b6040805163ffffffff959095168552602091820293909301356001600160a01b031690840152508051918290030190a1611ac2565b60010161196c565b50600101611961565b60065463ffffffff1681565b63ffffffff83166000908152600460205260409020548390611b2e576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b611b39848484612a7e565b611b4284611344565b60408051637de182c560e01b81523360048201526001600160a01b0386811660248301526044820186905291519290911691637de182c59160648082019260009290919082900301818387803b158015611b9b57600080fd5b505af1158015611baf573d6000803e3d6000fd5b5050505050505050565b6000806000611bc6612ee0565b63ffffffff851660009081526004602090815260409182902082518154608093810282018401909452606081018481529093919284928491840182828015611c3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c19575b505050918352505060018201546001600160a01b0316602082015260029091015460409091015280518051919250906000198101908110611c7457fe5b602002602001015193508060200151925080604001519150509193909250565b63ffffffff821660009081526004602090815260408083206001600160a01b03851684526003019091529020545b92915050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d4e5780601f10611d2357610100808354040283529160200191611d4e565b820191906000526020600020905b815481529060010190602001808311611d3157829003601f168201915b505050505081565b63ffffffff821660009081526004602090815260408083208054825181850281018501909352808352606093830182828015611dbb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d9d575b505083519394505050505b8015611e1057836001600160a01b0316826001830381518110611de557fe5b60200260200101516001600160a01b03161415611e0757600192505050611cc2565b60001901611dc6565b506000949350505050565b63ffffffff84166000908152600460205260409020548490611e72576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b63ffffffff84166000908152600460205260409020548490611ec9576040805162461bcd60e51b815260206004820152601a602482015260008051602061305c833981519152604482015290519081900360640190fd5b600080611ed588611344565b60408051630853a73360e41b8152336004820181815260248301938452604483018a90526001600160a01b03949094169363853a73309391928b928b9291606401848480828437600081840152601f19601f8201169050808301925050509450505050506040805180830381600087803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050506040513d6040811015611f7c57600080fd5b50805160209091015190925090508015611baf578663ffffffff168863ffffffff16146120cf5763ffffffff881660009081526004602090815260408083206001600160a01b038616845260030190915290205481111561200e5760405162461bcd60e51b81526004018080602001828103825260278152602001806130356027913960400191505060405180910390fd5b63ffffffff80891660009081526004602090815260408083206001600160a01b038716845260030190915290205461204891839061260016565b63ffffffff808a1660009081526004602081815260408084206001600160a01b03891680865260039182018452828620979097558d8616855292825280842095845294909101905291909120546120a1918390612a3716565b63ffffffff881660009081526004602090815260408083206001600160a01b03871684526003019091529020555b6120d887611344565b60408051637de182c560e01b81523360048201526001600160a01b0385811660248301526044820185905291519290911691637de182c59160648082019260009290919082900301818387803b15801561213157600080fd5b505af1158015612145573d6000803e3d6000fd5b505050505050505050505050565b3360009081526002602052604090205460ff166121b7576040805162461bcd60e51b815260206004820152601d60248201527f696e76616c69642073656e6465723b206d757374206265206f776e6572000000604482015290519081900360640190fd5b6121c081612cde565b50565b63ffffffff81166000908152600460209081526040918290208054835181840281018401909452808452606093928301828280156118a6576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116118885750505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561228c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161226e575b5050505050905090565b63ffffffff8216600090815260036020908152604080832080548251818502810185019093528083526060938301828280156122fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122dd575b50939450600093505050505b8151811015611e1057836001600160a01b031682828151811061232657fe5b60200260200101516001600160a01b0316141561234857600192505050611cc2565b600101612307565b8161235b8133612296565b6123965760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b816001600160a01b0381166123e4576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b63ffffffff8416600090815260046020526040902080541561244d576040805162461bcd60e51b815260206004820152601a60248201527f41707020697320616c72656164792070726f766973696f6e6564000000000000604482015290519081900360640190fd5b8054600181018255600082815260209081902090910180546001600160a01b0319166001600160a01b03871690811790915582546040805160001990920160ff16825292810191909152815163ffffffff8816927f017bc769595aad0be6e222715334e0328919ec7353c74b70b90e038b3024dcd0928290030190a25050505050565b600360205281600052604060002081815481106124e957fe5b6000918252602090912001546001600160a01b03169150829050565b826125108133612296565b61254b5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0b6021913960400191505060405180910390fd5b61149484848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612dd892505050565b600161259381611344565b6001600160a01b0316336001600160a01b0316146125e25760405162461bcd60e51b815260040180806020018281038252602d815260200180612f9e602d913960400191505060405180910390fd5b5063ffffffff16600090815260046020526040902043600290910155565b80820382811115611cc2576040805162461bcd60e51b815260206004820152600f60248201526e3130b21039bab13a3930b1ba34b7b760891b604482015290519081900360640190fd5b6000836001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156126a257600080fd5b505afa1580156126b6573d6000803e3d6000fd5b505050506040513d60208110156126cc57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820187905291519293509086169163a9059cbb916044808201926020929091908290030181600087803b15801561272457600080fd5b505af1158015612738573d6000803e3d6000fd5b505050506040513d602081101561274e57600080fd5b505161278b5760405162461bcd60e51b8152600401808060200182810382526027815260200180612fcb6027913960400191505060405180910390fd5b6000846001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156127e357600080fd5b505afa1580156127f7573d6000803e3d6000fd5b505050506040513d602081101561280d57600080fd5b5051905083612822828463ffffffff61260016565b1461285e5760405162461bcd60e51b8152600401808060200182810382526043815260200180612ff26043913960600191505060405180910390fd5b5050505050565b61286f6001611344565b600182015460408051631ce635bd60e11b81526001600160a01b039283166004820152905192909116916339cc6b7a9160248082019260009290919082900301818387803b1580156128c057600080fd5b505af11580156128d4573d6000803e3d6000fd5b505050506001810180546001600160a01b03166000908152600560205260408120805460ff1916905581546001600160a01b031916909155600290910155565b63ffffffff82166000908152600360205260409020541561297c576040805162461bcd60e51b815260206004820152601960248201527f41707020616c72656164792068617320617070206f776e657200000000000000604482015290519081900360640190fd5b60065463ffffffff8381169116146129db576040805162461bcd60e51b815260206004820152601c60248201527f617070206964732061726520696e6372656d656e746564206279203100000000604482015290519081900360640190fd5b6006805463ffffffff198116600163ffffffff92831601821617909155604080519184168252517fb0b9faff9396f136cbe65dd6c9bb23a764dcaacd0b87031b56c9b37888ac50ca916020908290030190a16110aa8282612dd8565b80820182811015611cc2576040805162461bcd60e51b815260206004820152600c60248201526b3130b21030b23234ba34b7b760a11b604482015290519081900360640190fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038516916370a0823191602480820192602092909190829003018186803b158015612ac857600080fd5b505afa158015612adc573d6000803e3d6000fd5b505050506040513d6020811015612af257600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290519192506001600160a01b038516916323b872dd916064808201926020929091908290030181600087803b158015612b4d57600080fd5b505af1158015612b61573d6000803e3d6000fd5b505050506040513d6020811015612b7757600080fd5b5051612bb45760405162461bcd60e51b8152600401808060200182810382526027815260200180612fcb6027913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038616916370a0823191602480820192602092909190829003018186803b158015612bfe57600080fd5b505afa158015612c12573d6000803e3d6000fd5b505050506040513d6020811015612c2857600080fd5b5051905082612c3d828463ffffffff61260016565b14612c795760405162461bcd60e51b8152600401808060200182810382526043815260200180612ff26043913960600191505060405180910390fd5b63ffffffff80861660009081526004602090815260408083206001600160a01b038916845260038101909252909120549091612cb891908690612a3716565b6001600160a01b0390951660009081526003909101602052604090209390935550505050565b806001600160a01b038116612d2c576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090205460ff166110aa576001600160a01b038216600081815260026020526040808220805460ff19166001908117909155805480820182559083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191684179055517f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a25050565b60005b8151811015610e5157612e0183838381518110612df457fe5b6020026020010151612296565b612ed85763ffffffff831660009081526003602052604090208251839083908110612e2857fe5b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905581517fd0aede363d027a6b258f61b4e6d50943b24e9db9e832960604a9d0ca02115983908490849084908110612e9557fe5b6020026020010151604051808363ffffffff1663ffffffff168152602001826001600160a01b03166001600160a01b031681526020019250505060405180910390a15b600101612ddb565b60405180606001604052806060815260200160006001600160a01b0316815260200160008152509056fe696e76616c69642073656e6465723b206d75737420626520617070206f776e657250726f706f73616c20616c7265616479206578697374732e2072656d6f76652070726f706f73616c206265666f726520616464696e67206e6577206f6e656e6577206170702063616e206e6f7420626520616374697661746564206265666f72652061637469766174696f6e20626c6f636b696e76616c69642073656e6465723b206d757374206265206c6174657374206c6f67696320636f6e74726163746661696c75726520746f207472616e73666572207175616e746974792066726f6d20746f6b656e62616420546f6b656e3b207472616e7366657246726f6d206572726f6e656f75736c79207265706f72746564206f66207375636365737366756c207472616e736665726e6f7420656e6f7567682062616c616e636520696e206c6f67696320746f207472616e73666572417070206973206e6f74207965742070726f766973696f6e6564000000000000a265627a7a72315820b938ada3bc32828138c90daad9eb4f4f3adb36884397a1e83f125cc02a74ccef64736f6c634300050c0032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000004d2130d9d20428dc249a1e938a0bcea4b5b9ac1a000000000000000000000000ac01f01f51f0bdd012c1838bd5cef330e6c7ffca0000000000000000000000005ccaaae7bea14e8e04fb0fc7ed16df49d5678eb80000000000000000000000000000000000000000000000000000000000000005312e312e30000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : owners (address[]): 0x4D2130d9D20428Dc249a1e938A0bcEA4b5B9ac1A,0xaC01F01f51F0bdd012C1838Bd5ceF330E6c7FFCa,0x5CcAAAE7Bea14E8e04FB0FC7ED16DF49d5678Eb8
Arg [1] : version (string): 1.1.0

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 0000000000000000000000004d2130d9d20428dc249a1e938a0bcea4b5b9ac1a
Arg [4] : 000000000000000000000000ac01f01f51f0bdd012c1838bd5cef330e6c7ffca
Arg [5] : 0000000000000000000000005ccaaae7bea14e8e04fb0fc7ed16df49d5678eb8
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 312e312e30000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

9943:8029:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6728:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6728:23:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6728:23:0;;:::i;:::-;;;;-1:-1:-1;;;;;6728:23:0;;;;;;;;;;;;;;15261:645;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15261:645:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15261:645:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;15261:645:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15261:645:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;15261:645:0;;-1:-1:-1;15261:645:0;-1:-1:-1;15261:645:0;:::i;:::-;;10349:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10349:34:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10349:34:0;;;;:::i;:::-;;;;-1:-1:-1;;;;;10349:34:0;;;;;;;;;;;;;;;;;;;;;13302:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13302:220:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13302:220:0;;;;:::i;7475:431::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7475:431:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7475:431:0;-1:-1:-1;;;;;7475:431:0;;:::i;13528:459::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13528:459:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13528:459:0;;;;:::i;11297:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11297:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11297:121:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;11297:121:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11297:121:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;11297:121:0;;-1:-1:-1;11297:121:0;-1:-1:-1;11297:121:0;:::i;17343:124::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17343:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17343:124:0;;;;:::i;12590:233::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12590:233:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12590:233:0;;;;:::i;12065:519::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12065:519:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12065:519:0;;;;;;;;-1:-1:-1;;;;;12065:519:0;;:::i;6756:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6756:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6756:39:0;-1:-1:-1;;;;;6756:39:0;;:::i;:::-;;;;;;;;;;;;;;;;;;14118:240;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14118:240:0;;;;:::i;10388:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10388:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10388:41:0;-1:-1:-1;;;;;10388:41:0;;:::i;8681:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8681:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8681:103:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8681:103:0;;;;;;;;;;;;;;;;;9233:614;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9233:614:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9233:614:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;9233:614:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9233:614:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;9233:614:0;;-1:-1:-1;9233:614:0;-1:-1:-1;9233:614:0;:::i;10434:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10434:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14442:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14442:234:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14442:234:0;;;;;-1:-1:-1;;;;;14442:234:0;;;;;;;;;;:::i;17058:279::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17058:279:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17058:279:0;;;;:::i;:::-;;;;-1:-1:-1;;;;;17058:279:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17850:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17850:117:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17850:117:0;;;;;;;;-1:-1:-1;;;;;17850:117:0;;:::i;:::-;;;;;;;;;;;;;;;;554:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;554:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;554:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17582:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17582:262:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17582:262:0;;;;;;;;-1:-1:-1;;;;;17582:262:0;;:::i;16325:603::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16325:603:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16325:603:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;16325:603:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16325:603:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;16325:603:0;;-1:-1:-1;16325:603:0;-1:-1:-1;16325:603:0;:::i;7199:73::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7199:73:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7199:73:0;-1:-1:-1;;;;;7199:73:0;;:::i;17473:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17473:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17473:103:0;;;;:::i;7115:78::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7115:78:0;;;:::i;8399:276::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8399:276:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8399:276:0;;;;;;;;-1:-1:-1;;;;;8399:276:0;;:::i;11747:312::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11747:312:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11747:312:0;;;;;;;;-1:-1:-1;;;;;11747:312:0;;:::i;8033:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8033:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8033:45:0;;;;;;;;;:::i;8790:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8790:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8790:139:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;8790:139:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8790:139:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8790:139:0;;-1:-1:-1;8790:139:0;-1:-1:-1;8790:139:0;:::i;13171:125::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13171:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13171:125:0;;;;:::i;6728:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6728:23:0;;-1:-1:-1;6728:23:0;:::o;15261:645::-;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;15341:5;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;15356:13;15371;15397:14;15405:5;15397:7;:14::i;:::-;15388:54;;;-1:-1:-1;;;15388:54:0;;15419:10;15388:54;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15388:30:0;;;;;;;15419:10;;15431;;;;15388:54;;;15431:10;;;;15388:54;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15388:54:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15388:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15388:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15388:54:0;;;;;;;;;-1:-1:-1;15388:54:0;-1:-1:-1;15453:12:0;;15449:452;;15494:11;;;15476:15;15494:11;;;:4;:11;;;;;;;;-1:-1:-1;;;;;15522:19:0;;;;:12;;;:19;;;;;;;:31;-1:-1:-1;15522:31:0;15514:72;;;;;-1:-1:-1;;;15514:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15617:11;;;;;;;;:4;:11;;;;;;;;-1:-1:-1;;;;;15617:27:0;;;;:20;;:27;;;;;;:43;;15651:8;;15617:33;:43;:::i;:::-;-1:-1:-1;;;;;15595:19:0;;;;;;:12;;;:19;;;;;:65;;;;15669:12;:224;;15826:67;15864:5;15872:8;15882:10;15826:31;:67::i;:::-;15669:224;;;15701:43;;15717:10;;15701:43;;;;;15735:8;;15701:43;;;;15735:8;15717:10;15701:43;;;;;;;15693:80;;;;;-1:-1:-1;;;15693:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15449:452;;11287:1;;15261:645;;;;:::o;10349:34::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10349:34:0;;;;;:::o;13302:220::-;10341:1;11105:14;11113:5;11105:7;:14::i;:::-;-1:-1:-1;;;;;11091:28:0;:10;-1:-1:-1;;;;;11091:28:0;;11083:86;;;;-1:-1:-1;;;11083:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:11;;;13382:15;13400:11;;;:4;:11;;;;;;;;;13452:18;;13473:1;13477:12;;;13423:67;;-1:-1:-1;;13452:22:0;;;13423:67;;;;-1:-1:-1;;;;;13477:12:0;13423:67;;;;;;;;;13400:11;;;13423:67;;;;;;;;13497:19;13512:3;13497:14;:19::i;:::-;11171:1;13302:220;;:::o;7475:431::-;7058:10;7050:19;;;;:7;:19;;;;;;;;7042:61;;;;;-1:-1:-1;;;7042:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:14:0;;;;;;:7;:14;;;;;;;;7537:53;;;;;-1:-1:-1;;;7537:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7621:1;7605:13;;:17;7597:55;;;;;-1:-1:-1;;;7597:55:0;;;;;;;;;;;;-1:-1:-1;;;7597:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7659:14:0;;7676:5;7659:14;;;:7;:14;;;;;:22;;-1:-1:-1;;7659:22:0;;;7688:213;7709:6;:13;7705:17;;7688:213;;;7755:5;-1:-1:-1;;;;;7742:18:0;:6;7749:1;7742:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7742:9:0;:18;7738:156;;;7785:6;7792:13;;-1:-1:-1;;7792:17:0;;;7785:25;;;;;;;;;;;;;;;;;7773:9;;-1:-1:-1;;;;;7785:25:0;;;;7780:1;;7773:9;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;7773:37:0;;;;;-1:-1:-1;;;;;7773:37:0;;;;;;7821:6;:12;;;;;;;;;;;;;;;;-1:-1:-1;;7821:12:0;;;;;-1:-1:-1;;;;;;7821:12:0;;;;;;;;;7849:19;;-1:-1:-1;;;;;7849:19:0;;;;;;7879:5;;7738:156;7724:3;;7688:213;;;;7475:431;:::o;13528:459::-;13586:5;11105:14;11113:5;11105:7;:14::i;:::-;-1:-1:-1;;;;;11091:28:0;:10;-1:-1:-1;;;;;11091:28:0;;11083:86;;;;-1:-1:-1;;;11083:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;13605:5;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;13637:11;;;13619:15;13637:11;;;:4;:11;;;;;13663:19;;;;13655:55;;;;;-1:-1:-1;;;13655:55:0;;;;;;;;;;;;-1:-1:-1;;;13655:55:0;;;;;;;;;;;;;;;13747:12;13725:3;:19;;;:34;13717:99;;;;-1:-1:-1;;;13717:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13840:12;;;;;27:10:-1;;23:18;;;45:23;;13823:11:0;:30;;;;;;;;;;;-1:-1:-1;;;;;;13823:30:0;-1:-1:-1;;;;;13840:12:0;;;13823:30;;;;;;13887:19;13823:3;13887:14;:19::i;:::-;13941:18;;13918:63;;;;;;-1:-1:-1;;13941:22:0;13966:14;13928:5;13966:7;:14::i;:::-;13918:63;;;;;;;;;-1:-1:-1;;;;;13918:63:0;;;;;;;;;;;;;;;;11287:1;11171;13528:459;;:::o;11297:121::-;7058:10;7050:19;;;;:7;:19;;;;;;;;7042:61;;;;;-1:-1:-1;;;7042:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11384:31;11397:5;11404:10;;11384:31;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11384:12:0;;-1:-1:-1;;;11384:31:0:i;17343:124::-;17413:11;;;17395:7;17413:11;;;:4;:11;;;;;17433:26;;-1:-1:-1;;17433:30:0;;;17413:51;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17413:51:0;;17343:124;-1:-1:-1;;17343:124:0:o;12590:233::-;12650:5;8320:29;8331:5;8338:10;8320;:29::i;:::-;8312:75;;;;-1:-1:-1;;;8312:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;12669:5;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;12701:11;;;12683:15;12701:11;;;:4;:11;;;;;;;;;12753:18;;12774:1;12778:12;;;12724:67;;-1:-1:-1;;12753:22:0;;;12724:67;;;;-1:-1:-1;;;;;12778:12:0;12724:67;;;;;;;;;12701:11;;;12724:67;;;;;;;;12798:19;12813:3;12798:14;:19::i;:::-;11287:1;8389;12590:233;;:::o;12065:519::-;12137:5;8320:29;8331:5;8338:10;8320;:29::i;:::-;8312:75;;;;-1:-1:-1;;;8312:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;12156:5;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;12176:5;-1:-1:-1;;;;;402:21:0;;394:49;;;;;-1:-1:-1;;;394:49:0;;;;;;;;;;;;-1:-1:-1;;;394:49:0;;;;;;;;;;;;;;;12208:11;;;12190:15;12208:11;;;:4;:11;;;;;12234:12;;;;-1:-1:-1;;;;;12234:12:0;:26;12226:101;;;;-1:-1:-1;;;12226:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:12;;;;:20;;-1:-1:-1;;;;;;12334:20:0;-1:-1:-1;;;;;12334:20:0;;;;;12408;;:7;:20::i;:::-;-1:-1:-1;;;;;12398:50:0;;:52;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12398:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12398:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12398:52:0;12383:12;:67;12361:19;;;:89;;;-1:-1:-1;;;;;12457:16:0;;;;;;;:9;12398:52;12457:16;;;;;;;;:23;;-1:-1:-1;;12457:23:0;12476:4;12457:23;;;;;;12519:18;;12544:12;;;;12558:19;;12492:86;;-1:-1:-1;;12519:22:0;;;12457:23;12492:86;;;12544:12;;;;12492:86;;;;;;;;;;;;;;;;;;;;;;;;;;;445:1;11287;8389;12065:519;;;:::o;6756:39::-;;;;;;;;;;;;;;;:::o;14118:240::-;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;14183:5;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;14215:11;;;;14197:15;14215:11;;;:4;:11;;;;;;;;14253:17;;;:12;;;:17;;;;;;;14215:11;;14253:33;;:17;14276:9;;14253:22;:33;:::i;:::-;14233:17;;;;:12;;;:17;;;;;:53;14302:14;14310:5;14302:7;:14::i;:::-;14293:59;;;-1:-1:-1;;;14293:59:0;;14325:10;14293:59;;;;10247:3;14293:59;;;;;;14342:9;14293:59;;;;;;-1:-1:-1;;;;;14293:31:0;;;;;;;:59;;;;;10247:3;;14293:59;;;;;;10247:3;14293:31;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;14293:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;10388:41:0;;;;;;;;;;;;;;;:::o;8681:103::-;8765:16;;;;;;;:9;:16;;;;;;;;;8758:23;;;;;;;;;;;;;;;;;8738:16;;8758:23;;;8765:16;8758:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8758:23:0;;;;;;;;;;;;;;;;;;;;;;;8681:103;;;:::o;9233:614::-;9326:5;8320:29;8331:5;8338:10;8320;:29::i;:::-;8312:75;;;;-1:-1:-1;;;8312:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9374:16;;;9340:31;9374:16;;;:9;:16;;;;;9405:20;;:41;-1:-1:-1;9397:79:0;;;;;-1:-1:-1;;;9397:79:0;;;;;;;;;;;;-1:-1:-1;;;9397:79:0;;;;;;;;;;;;;;;9488:6;9483:359;9500:22;;;9483:359;;;9543:6;9538:297;9559:20;;9555:24;;9538:297;;;9621:11;;9633:1;9621:14;;;;;;;;;;;;;-1:-1:-1;;;;;9621:14:0;-1:-1:-1;;;;;9601:34:0;:13;9615:1;9601:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9601:16:0;:34;9597:229;;;9683:20;;9669:13;;-1:-1:-1;;9683:24:0;;;9669:39;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9669:39:0;9650:13;9664:1;9650:16;;;;;;;;;;;;;;;;:58;;;;;-1:-1:-1;;;;;9650:58:0;;;;;-1:-1:-1;;;;;9650:58:0;;;;;;9721:13;:19;;;;;;;;;;;;;;;;-1:-1:-1;;9721:19:0;;;;;-1:-1:-1;;;;;;9721:19:0;;;;;;9758:38;9774:5;9781:11;;9793:1;9781:14;;;;;;;9758:38;;;;;;;;;;9781:14;;;;;;;;;-1:-1:-1;;;;;9781:14:0;9758:38;;;;-1:-1:-1;9758:38:0;;;;;;;;;9809:5;;9597:229;9581:3;;9538:297;;;-1:-1:-1;9524:3:0;;9483:359;;10434:32;;;;;;:::o;14442:234::-;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;14529:5;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;14543:60;14573:5;14586;14594:8;14543:29;:60::i;:::-;14619:14;14627:5;14619:7;:14::i;:::-;14610:60;;;-1:-1:-1;;;14610:60:0;;14642:10;14610:60;;;;-1:-1:-1;;;;;14610:60:0;;;;;;;;;;;;;;;:31;;;;;;;:60;;;;;-1:-1:-1;;14610:60:0;;;;;;;;-1:-1:-1;14610:31:0;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;14610:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14610:60:0;;;;14442:234;;;;:::o;17058:279::-;17108:15;17125:16;17143:20;17172:15;;:::i;:::-;17190:11;;;;;;;:4;:11;;;;;;;;;17172:29;;;;;;;;;;;;;;;;;;;;;;;17190:11;;17172:29;;17190:11;;17172:29;;17190:11;17172:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17172:29:0;;;;;;;;;;;;;;;;-1:-1:-1;;;17172:29:0;;;-1:-1:-1;;17172:29:0;;;;-1:-1:-1;;;;;17172:29:0;;;;;;;;;;;;;;;17218:12;;17231:19;;17172:29;;-1:-1:-1;17218:12:0;-1:-1:-1;;17231:23:0;;;17218:37;;;;;;;;;;;;17208:47;;17273:4;:13;;;17262:24;;17311:4;:20;;;17293:38;;17058:279;;;;;;:::o;17850:117::-;17937:11;;;17922:4;17937:11;;;:4;:11;;;;;;;;-1:-1:-1;;;;;17937:27:0;;;;:20;;:27;;;;;;17850:117;;;;;:::o;554:21::-;;;;;;;;;;;;;;;-1:-1:-1;;554:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17582:262::-;17693:11;;;17652:4;17693:11;;;:4;:11;;;;;;;;17665:47;;;;;;;;;;;;;;;;;:25;;:47;;17693:11;17665:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17665:47:0;;;;;;;;;;;;;;;;-1:-1:-1;;17733:15:0;;17665:47;;-1:-1:-1;;;;17719:101:0;17750:5;;17719:101;;17794:5;-1:-1:-1;;;;;17775:24:0;:8;17788:1;17784;:5;17775:15;;;;;;;;;;;;;;-1:-1:-1;;;;;17775:24:0;;17771:41;;;17808:4;17801:11;;;;;;17771:41;-1:-1:-1;;17757:3:0;17719:101;;;-1:-1:-1;17833:5:0;;17582:262;-1:-1:-1;;;;17582:262:0:o;16325:603::-;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;16415:4;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;11224:11;;;11253:1;11224:11;;;:4;:11;;;;;:26;16433:2;;11216:69;;;;;-1:-1:-1;;;11216:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:69:0;;;;;;;;;;;;;;;16445:13;16460;16486;16494:4;16486:7;:13::i;:::-;16477:53;;;-1:-1:-1;;;16477:53:0;;16507:10;16477:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16477:29:0;;;;;;;16507:10;;16519;;;;16477:53;;;16519:10;;;;16477:53;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16477:53:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16477:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16477:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16477:53:0;;;;;;;;;-1:-1:-1;16477:53:0;-1:-1:-1;16541:12:0;;16537:386;;16576:2;16568:10;;:4;:10;;;16564:286;;16599:10;;;;;;;:4;:10;;;;;;;;-1:-1:-1;;;;;16599:26:0;;;;:19;;:26;;;;;;:38;-1:-1:-1;16599:38:0;16591:90;;;;-1:-1:-1;;;16591:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16721:10;;;;;;;;:4;:10;;;;;;;;-1:-1:-1;;;;;16721:26:0;;;;:19;;:26;;;;;;:42;;16754:8;;16721:32;:42;:::i;:::-;16692:10;;;;;;;;:4;:10;;;;;;;;-1:-1:-1;;;;;16692:26:0;;;;;:19;;;;:26;;;;;:71;;;;16801:8;;;;;;;;;;;:24;;;:17;;;;:24;;;;;;;:39;;16831:8;;16801:29;:39;:::i;:::-;16774:8;;;;;;;:4;:8;;;;;;;;-1:-1:-1;;;;;16774:24:0;;;;:17;;:24;;;;;:66;16564:286;16867:11;16875:2;16867:7;:11::i;:::-;16858:57;;;-1:-1:-1;;;16858:57:0;;16887:10;16858:57;;;;-1:-1:-1;;;;;16858:57:0;;;;;;;;;;;;;;;:28;;;;;;;:57;;;;;-1:-1:-1;;16858:57:0;;;;;;;;-1:-1:-1;16858:28:0;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;16858:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16858:57:0;;;;11287:1;;;16325:603;;;;;:::o;7199:73::-;7058:10;7050:19;;;;:7;:19;;;;;;;;7042:61;;;;;-1:-1:-1;;;7042:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:16;7263:5;7253:9;:16::i;:::-;7199:73;:::o;17473:103::-;17554:11;;;;;;;:4;:11;;;;;;;;;17547:26;;;;;;;;;;;;;;;;;17527:16;;17547:26;;;17554:11;17547:26;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:26:0;;;;;;;;;;;;;;;;;;;;;;17473:103;;;:::o;7115:78::-;7157:16;7184:6;7177:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7177:13:0;;;;;;;;;;;;;;;;;;;;;;;7115:78;:::o;8399:276::-;8518:16;;;8472:4;8518:16;;;:9;:16;;;;;;;;8485:49;;;;;;;;;;;;;;;;;:30;;:49;;8518:16;8485:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8485:49:0;;;;;;;;;;;;;;;;-1:-1:-1;8485:49:0;;-1:-1:-1;8546:6:0;;-1:-1:-1;;;;8541:110:0;8562:13;:20;8558:1;:24;8541:110;;;8622:8;-1:-1:-1;;;;;8602:28:0;:13;8616:1;8602:16;;;;;;;;;;;;;;-1:-1:-1;;;;;8602:28:0;;8598:45;;;8639:4;8632:11;;;;;;8598:45;8584:3;;8541:110;;11747:312;11820:5;8320:29;8331:5;8338:10;8320;:29::i;:::-;8312:75;;;;-1:-1:-1;;;8312:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11840:5;-1:-1:-1;;;;;402:21:0;;394:49;;;;;-1:-1:-1;;;394:49:0;;;;;;;;;;;;-1:-1:-1;;;394:49:0;;;;;;;;;;;;;;;11872:11;;;11854:15;11872:11;;;:4;:11;;;;;11898:18;;:23;11890:62;;;;;-1:-1:-1;;;11890:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;-1:-1;11959:23:0;;;;;;;;;;;;;-1:-1:-1;;;;;;11959:23:0;-1:-1:-1;;;;;11959:23:0;;;;;;;;12022:18;;11994:59;;;-1:-1:-1;;12022:22:0;;;11994:59;;;;;;;;;;;;;;;;;;;;;;;;;445:1;8389;11747:312;;;:::o;8033:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8033:45:0;;-1:-1:-1;8033:45:0;;-1:-1:-1;8033:45:0:o;8790:139::-;8878:5;8320:29;8331:5;8338:10;8320;:29::i;:::-;8312:75;;;;-1:-1:-1;;;8312:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8892:31;8906:5;8913:9;;8892:31;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8892:13:0;;-1:-1:-1;;;8892:31:0:i;13171:125::-;10341:1;11105:14;11113:5;11105:7;:14::i;:::-;-1:-1:-1;;;;;11091:28:0;:10;-1:-1:-1;;;;;11091:28:0;;11083:86;;;;-1:-1:-1;;;11083:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13248:11:0;;;;;;:4;:11;;;;;13278:12;13248:27;;;;:42;13171:125::o;1443:111::-;1520:5;;;1515:16;;;;1507:44;;;;;-1:-1:-1;;;1507:44:0;;;;;;;;;;;;-1:-1:-1;;;1507:44:0;;;;;;;;;;;;;;15912:407;16008:18;16029:5;-1:-1:-1;;;;;16029:15:0;;16045:2;16029:19;;;;;;;;;;;;;-1:-1:-1;;;;;16029:19:0;-1:-1:-1;;;;;16029:19:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16029:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16029:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16029:19:0;16063:28;;;-1:-1:-1;;;16063:28:0;;-1:-1:-1;;;;;16063:28:0;;;;;;;;;;;;;;;16029:19;;-1:-1:-1;16063:14:0;;;;;;:28;;;;;16029:19;;16063:28;;;;;;;;-1:-1:-1;16063:14:0;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;16063:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16063:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16063:28:0;16055:80;;;;-1:-1:-1;;;16055:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16142:17;16162:5;-1:-1:-1;;;;;16162:15:0;;16178:2;16162:19;;;;;;;;;;;;;-1:-1:-1;;;;;16162:19:0;-1:-1:-1;;;;;16162:19:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16162:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16162:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16162:19:0;;-1:-1:-1;16233:8:0;16196:33;16162:19;16215:13;16196:33;:18;:33;:::i;:::-;:45;16188:125;;;;-1:-1:-1;;;16188:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15912:407;;;;;:::o;12829:216::-;12895:20;10341:1;12895:7;:20::i;:::-;12933:12;;;;12885:61;;;-1:-1:-1;;;12885:61:0;;-1:-1:-1;;;;;12933:12:0;;;12885:61;;;;;;:47;;;;;;;:61;;;;;12933:12;;12885:61;;;;;;;;12933:12;12885:47;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;12885:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;12970:12:0;;;;;-1:-1:-1;;;;;12970:12:0;12960:23;;;;:9;:23;;;;;12953:30;;-1:-1:-1;;12953:30:0;;;12990:19;;-1:-1:-1;;;;;;12990:19:0;;;;13016;;;;:23;12829:216::o;11424:317::-;11512:16;;;;;;;:9;:16;;;;;:23;:28;11504:66;;;;;-1:-1:-1;;;11504:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11585:14;;:23;;;;:14;;:23;11577:64;;;;;-1:-1:-1;;;11577:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11648:14;:16;;-1:-1:-1;;11648:16:0;;;;;;;;;;;;;;11676:20;;;;;;;;;;;;;;;;;;;11703:32;11717:5;11724:10;11703:13;:32::i;1227:107::-;1303:5;;;1298:16;;;;1290:41;;;;;-1:-1:-1;;;1290:41:0;;;;;;;;;;;;-1:-1:-1;;;1290:41:0;;;;;;;;;;;;;;14682:573;14799:30;;;-1:-1:-1;;;14799:30:0;;14823:4;14799:30;;;;;;14778:18;;-1:-1:-1;;;;;14799:15:0;;;;;:30;;;;;;;;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;14799:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14799:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14799:30:0;14844:55;;;-1:-1:-1;;;14844:55:0;;14863:10;14844:55;;;;14883:4;14844:55;;;;;;;;;;;;14799:30;;-1:-1:-1;;;;;;14844:18:0;;;;;:55;;;;;14799:30;;14844:55;;;;;;;;-1:-1:-1;14844:18:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;14844:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14844:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14844:55:0;14836:107;;;;-1:-1:-1;;;14836:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14970:30;;;-1:-1:-1;;;14970:30:0;;14994:4;14970:30;;;;;;14950:17;;-1:-1:-1;;;;;14970:15:0;;;;;:30;;;;;;;;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;14970:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14970:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14970:30:0;;-1:-1:-1;15052:8:0;15015:33;14970:30;15034:13;15015:33;:18;:33;:::i;:::-;:45;15007:125;;;;-1:-1:-1;;;15007:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15157:11;;;;15139:15;15157:11;;;:4;:11;;;;;;;;-1:-1:-1;;;;;15206:28:0;;;;:12;;;:28;;;;;;;15157:11;;15206:43;;:28;15240:8;;15206:33;:43;:::i;:::-;-1:-1:-1;;;;;15175:28:0;;;;;;;:12;;;;:28;;;;;:74;;;;-1:-1:-1;;;;14682:573:0:o;7278:191::-;7333:5;-1:-1:-1;;;;;402:21:0;;394:49;;;;;-1:-1:-1;;;394:49:0;;;;;;;;;;;;-1:-1:-1;;;394:49:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7352:14:0;;;;;;:7;:14;;;;;;;;7347:117;;-1:-1:-1;;;;;7377:14:0;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;7377:21:0;7394:4;7377:21;;;;;;27:10:-1;;23:18;;;45:23;;7407:18:0;;;;;;;-1:-1:-1;;;;;;7407:18:0;;;;;7439:17;;;7377:14;7439:17;7278:191;;:::o;8935:290::-;9021:6;9016:204;9037:9;:16;9033:1;:20;9016:204;;;9074:31;9085:5;9092:9;9102:1;9092:12;;;;;;;;;;;;;;9074:10;:31::i;:::-;9069:144;;9118:16;;;;;;;:9;:16;;;;;9140:12;;:9;;9150:1;;9140:12;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;-1:-1;9118:35:0;;;;;;;;;;-1:-1:-1;;;;;;9118:35:0;-1:-1:-1;;;;;9118:35:0;;;;;;;;;9190:12;;9169:34;;9183:5;;9190:12;;9200:1;;9190:12;;;;;;;;;;;;9169:34;;;;;;;;;;;;;-1:-1:-1;;;;;9169:34:0;-1:-1:-1;;;;;9169:34:0;;;;;;;;;;;;;;;;9069:144;9055:3;;9016:204;;9943:8029;;;;;;;;;;;;;;;-1:-1:-1;;;;;9943:8029:0;;;;;;;;;;:::o

Swarm Source

bzzr://b938ada3bc32828138c90daad9eb4f4f3adb36884397a1e83f125cc02a74ccef

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.