Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,869 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 21681780 | 11 days ago | IN | 0 ETH | 0.00403855 | ||||
Withdraw | 21363294 | 56 days ago | IN | 0 ETH | 0.00308897 | ||||
Withdraw | 20919644 | 117 days ago | IN | 0 ETH | 0.00134867 | ||||
Withdraw | 20919640 | 117 days ago | IN | 0 ETH | 0.00309224 | ||||
Withdraw | 20859456 | 126 days ago | IN | 0 ETH | 0.00228317 | ||||
Withdraw | 20542069 | 170 days ago | IN | 0 ETH | 0.00022368 | ||||
Withdraw | 19814062 | 272 days ago | IN | 0 ETH | 0.00062205 | ||||
Withdraw | 19814060 | 272 days ago | IN | 0 ETH | 0.00044968 | ||||
Withdraw | 19814057 | 272 days ago | IN | 0 ETH | 0.00059435 | ||||
Withdraw | 19814054 | 272 days ago | IN | 0 ETH | 0.00048776 | ||||
Withdraw | 19705771 | 287 days ago | IN | 0 ETH | 0.00083164 | ||||
Withdraw | 19442770 | 324 days ago | IN | 0 ETH | 0.01039555 | ||||
Withdraw | 19178309 | 361 days ago | IN | 0 ETH | 0.00783075 | ||||
Withdraw | 18839969 | 409 days ago | IN | 0 ETH | 0.00523347 | ||||
Deposit Ether | 18835509 | 409 days ago | IN | 0.04 ETH | 0.0053645 | ||||
Withdraw | 18769315 | 418 days ago | IN | 0 ETH | 0.00264717 | ||||
Withdraw | 18768683 | 419 days ago | IN | 0 ETH | 0.00355212 | ||||
Withdraw | 18054660 | 519 days ago | IN | 0 ETH | 0.00192814 | ||||
Deposit Token | 17874120 | 544 days ago | IN | 0 ETH | 0.00091481 | ||||
Deposit Token | 17874117 | 544 days ago | IN | 0 ETH | 0.00296703 | ||||
Withdraw | 17811715 | 553 days ago | IN | 0 ETH | 0.00283421 | ||||
Deposit Token | 17811565 | 553 days ago | IN | 0 ETH | 0.00234053 | ||||
Withdraw | 17702913 | 568 days ago | IN | 0 ETH | 0.00225839 | ||||
Deposit Ether | 17702675 | 568 days ago | IN | 0.003 ETH | 0.00101824 | ||||
Deposit Ether | 17636964 | 577 days ago | IN | 0.75 ETH | 0.0021092 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20542069 | 170 days ago | 0.0199 ETH | ||||
19814060 | 272 days ago | 0.0177 ETH | ||||
18839969 | 409 days ago | 0.04 ETH | ||||
18054660 | 519 days ago | 0.01 ETH | ||||
17702913 | 568 days ago | 0.001 ETH | ||||
17531390 | 592 days ago | 0.7 ETH | ||||
16182618 | 781 days ago | 0.01 ETH | ||||
15447267 | 886 days ago | 0.09 ETH | ||||
15318955 | 907 days ago | 0.02 ETH | ||||
14777673 | 995 days ago | 0.0492 ETH | ||||
14347121 | 1062 days ago | 0.05 ETH | ||||
14279481 | 1073 days ago | 0.0968 ETH | ||||
12805520 | 1302 days ago | 0.02 ETH | ||||
12730514 | 1314 days ago | 0.243 ETH | ||||
12723746 | 1315 days ago | 0.01 ETH | ||||
12698617 | 1319 days ago | 0.01 ETH | ||||
12575619 | 1338 days ago | 0.0742 ETH | ||||
12442927 | 1359 days ago | 1.0254 ETH | ||||
12358664 | 1372 days ago | 0.058 ETH | ||||
12356535 | 1372 days ago | 0.1451 ETH | ||||
12348297 | 1373 days ago | 0.025 ETH | ||||
12328491 | 1376 days ago | 356.5252 ETH | ||||
12299463 | 1381 days ago | 5.85 ETH | ||||
12299117 | 1381 days ago | 0.08 ETH | ||||
12296799 | 1381 days ago | 4.145 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Gluon
Compiler Version
v0.5.12+commit.7709ece9
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.