ETH Price: $2,907.71 (+2.98%)
 
Transaction Hash
Method
Block
From
To
Free211251162024-11-06 0:45:592 days ago1730853959IN
Sky: Governance Contract
0 ETH0.0015242915.97262452
Lift211148032024-11-04 14:12:233 days ago1730729543IN
Sky: Governance Contract
0 ETH0.000346449.95964082
Vote211076042024-11-03 14:06:354 days ago1730642795IN
Sky: Governance Contract
0 ETH0.000589610.947741
Lock210885742024-10-31 22:20:477 days ago1730413247IN
Sky: Governance Contract
0 ETH0.0019999714.93376089
Lock210846342024-10-31 9:11:237 days ago1730365883IN
Sky: Governance Contract
0 ETH0.000901687.50751094
Free210561362024-10-27 9:41:3511 days ago1730022095IN
Sky: Governance Contract
0 ETH0.000616946.80989509
Vote210422802024-10-25 11:17:4713 days ago1729855067IN
Sky: Governance Contract
0 ETH0.000329125.18858308
Free210406322024-10-25 5:47:2314 days ago1729835243IN
Sky: Governance Contract
0 ETH0.000398774.56520456
Vote210100032024-10-20 23:14:2318 days ago1729466063IN
Sky: Governance Contract
0 ETH0.0006794310.71113975
Lift210001272024-10-19 14:11:1119 days ago1729347071IN
Sky: Governance Contract
0 ETH0.0006938819.94782383
Vote209656982024-10-14 18:49:1124 days ago1728931751IN
Sky: Governance Contract
0 ETH0.0019931331.42114016
Lift209075272024-10-06 15:52:4732 days ago1728229967IN
Sky: Governance Contract
0 ETH0.000730521.00058881
Free208520502024-09-28 22:14:4740 days ago1727561687IN
Sky: Governance Contract
0 ETH0.000437225.58258346
Vote208519902024-09-28 22:02:4740 days ago1727560967IN
Sky: Governance Contract
0 ETH0.000329225.19010281
Lift208514262024-09-28 20:08:5940 days ago1727554139IN
Sky: Governance Contract
0 ETH0.000188895.43048822
Vote208420872024-09-27 12:53:3541 days ago1727441615IN
Sky: Governance Contract
0 ETH0.0007728315.7580208
Vote208420672024-09-27 12:49:3541 days ago1727441375IN
Sky: Governance Contract
0 ETH0.0018128315.06517158
Vote208420222024-09-27 12:40:3541 days ago1727440835IN
Sky: Governance Contract
0 ETH0.0009177714.59429922
Lock208420002024-09-27 12:36:1141 days ago1727440571IN
Sky: Governance Contract
0 ETH0.0018157914.06255831
Vote208294432024-09-25 18:35:2343 days ago1727289323IN
Sky: Governance Contract
0 ETH0.0019030326.26214292
Lock208294332024-09-25 18:33:2343 days ago1727289203IN
Sky: Governance Contract
0 ETH0.003098323.9972076
Free207936342024-09-20 18:36:4748 days ago1726857407IN
Sky: Governance Contract
0 ETH0.0019962220.92036911
Free207778652024-09-18 13:46:2350 days ago1726667183IN
Sky: Governance Contract
0 ETH0.00086469.0599136
Vote207696472024-09-17 10:11:3551 days ago1726567895IN
Sky: Governance Contract
0 ETH0.000164963.06300872
Vote207587372024-09-15 21:33:5953 days ago1726436039IN
Sky: Governance Contract
0 ETH0.00010321.91637124
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
211370952024-11-07 16:54:5916 hrs ago1730998499
0x0a3f6849...20274dDC0
0 ETH
211370952024-11-07 16:54:5916 hrs ago1730998499
0x0a3f6849...20274dDC0
0 ETH
211370952024-11-07 16:54:5916 hrs ago1730998499
0x0a3f6849...20274dDC0
0 ETH
211367492024-11-07 15:44:2317 hrs ago1730994263
0x0a3f6849...20274dDC0
0 ETH
211338502024-11-07 6:01:2327 hrs ago1730959283
0x0a3f6849...20274dDC0
0 ETH
211338502024-11-07 6:01:2327 hrs ago1730959283
0x0a3f6849...20274dDC0
0 ETH
211338502024-11-07 6:01:2327 hrs ago1730959283
0x0a3f6849...20274dDC0
0 ETH
211321822024-11-07 0:26:2332 hrs ago1730939183
0x0a3f6849...20274dDC0
0 ETH
211321822024-11-07 0:26:2332 hrs ago1730939183
0x0a3f6849...20274dDC0
0 ETH
211321822024-11-07 0:26:2332 hrs ago1730939183
0x0a3f6849...20274dDC0
0 ETH
211297732024-11-06 16:22:3540 hrs ago1730910155
0x0a3f6849...20274dDC0
0 ETH
211251162024-11-06 0:45:592 days ago1730853959
0x0a3f6849...20274dDC0
0 ETH
211251162024-11-06 0:45:592 days ago1730853959
0x0a3f6849...20274dDC0
0 ETH
211237852024-11-05 20:18:232 days ago1730837903
0x0a3f6849...20274dDC0
0 ETH
211237852024-11-05 20:18:232 days ago1730837903
0x0a3f6849...20274dDC0
0 ETH
211237852024-11-05 20:18:232 days ago1730837903
0x0a3f6849...20274dDC0
0 ETH
211237032024-11-05 20:01:472 days ago1730836907
0x0a3f6849...20274dDC0
0 ETH
211237032024-11-05 20:01:472 days ago1730836907
0x0a3f6849...20274dDC0
0 ETH
211237032024-11-05 20:01:472 days ago1730836907
0x0a3f6849...20274dDC0
0 ETH
211236182024-11-05 19:44:472 days ago1730835887
0x0a3f6849...20274dDC0
0 ETH
211236182024-11-05 19:44:472 days ago1730835887
0x0a3f6849...20274dDC0
0 ETH
211236182024-11-05 19:44:472 days ago1730835887
0x0a3f6849...20274dDC0
0 ETH
211235932024-11-05 19:39:472 days ago1730835587
0x0a3f6849...20274dDC0
0 ETH
211235932024-11-05 19:39:472 days ago1730835587
0x0a3f6849...20274dDC0
0 ETH
211235932024-11-05 19:39:472 days ago1730835587
0x0a3f6849...20274dDC0
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DSChief

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-25
*/

// chief.sol - select an authority by consensus

// Copyright (C) 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

pragma solidity >=0.4.23;

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, "ds-math-add-overflow");
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, "ds-math-sub-underflow");
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
    }

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

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    //rounds to zero if x*y < WAD / 2
    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    //rounds to zero if x*y < WAD / 2
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    //rounds to zero if x*y < WAD / 2
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    //rounds to zero if x*y < RAY / 2
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

interface DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) external view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(address(authority));
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig), "ds-auth-unauthorized");
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, address(this), sig);
        }
    }
}

contract DSToken is DSMath, DSAuth {
    bool                                              public  stopped;
    uint256                                           public  totalSupply;
    mapping (address => uint256)                      public  balanceOf;
    mapping (address => mapping (address => uint256)) public  allowance;
    bytes32                                           public  symbol;
    uint256                                           public  decimals = 18; // standard token precision. override to customize
    bytes32                                           public  name = "";     // Optional token name

    constructor(bytes32 symbol_) public {
        symbol = symbol_;
    }

    event Approval(address indexed src, address indexed guy, uint wad);
    event Transfer(address indexed src, address indexed dst, uint wad);
    event Mint(address indexed guy, uint wad);
    event Burn(address indexed guy, uint wad);
    event Stop();
    event Start();

    modifier stoppable {
        require(!stopped, "ds-stop-is-stopped");
        _;
    }

    function approve(address guy) external returns (bool) {
        return approve(guy, uint(-1));
    }

    function approve(address guy, uint wad) public stoppable returns (bool) {
        allowance[msg.sender][guy] = wad;

        emit Approval(msg.sender, guy, wad);

        return true;
    }

    function transfer(address dst, uint wad) external returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        stoppable
        returns (bool)
    {
        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
            require(allowance[src][msg.sender] >= wad, "ds-token-insufficient-approval");
            allowance[src][msg.sender] = sub(allowance[src][msg.sender], wad);
        }

        require(balanceOf[src] >= wad, "ds-token-insufficient-balance");
        balanceOf[src] = sub(balanceOf[src], wad);
        balanceOf[dst] = add(balanceOf[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function push(address dst, uint wad) external {
        transferFrom(msg.sender, dst, wad);
    }

    function pull(address src, uint wad) external {
        transferFrom(src, msg.sender, wad);
    }

    function move(address src, address dst, uint wad) external {
        transferFrom(src, dst, wad);
    }


    function mint(uint wad) external {
        mint(msg.sender, wad);
    }

    function burn(uint wad) external {
        burn(msg.sender, wad);
    }

    function mint(address guy, uint wad) public auth stoppable {
        balanceOf[guy] = add(balanceOf[guy], wad);
        totalSupply = add(totalSupply, wad);
        emit Mint(guy, wad);
    }

    function burn(address guy, uint wad) public auth stoppable {
        if (guy != msg.sender && allowance[guy][msg.sender] != uint(-1)) {
            require(allowance[guy][msg.sender] >= wad, "ds-token-insufficient-approval");
            allowance[guy][msg.sender] = sub(allowance[guy][msg.sender], wad);
        }

        require(balanceOf[guy] >= wad, "ds-token-insufficient-balance");
        balanceOf[guy] = sub(balanceOf[guy], wad);
        totalSupply = sub(totalSupply, wad);
        emit Burn(guy, wad);
    }

    function stop() public auth {
        stopped = true;
        emit Stop();
    }

    function start() public auth {
        stopped = false;
        emit Start();
    }

    function setName(bytes32 name_) external auth {
        name = name_;
    }
}

contract DSRoles is DSAuth, DSAuthority
{
    mapping(address=>bool) _root_users;
    mapping(address=>bytes32) _user_roles;
    mapping(address=>mapping(bytes4=>bytes32)) _capability_roles;
    mapping(address=>mapping(bytes4=>bool)) _public_capabilities;

    function getUserRoles(address who)
        public
        view
        returns (bytes32)
    {
        return _user_roles[who];
    }

    function getCapabilityRoles(address code, bytes4 sig)
        public
        view
        returns (bytes32)
    {
        return _capability_roles[code][sig];
    }

    function isUserRoot(address who)
        public
        view
        returns (bool)
    {
        return _root_users[who];
    }

    function isCapabilityPublic(address code, bytes4 sig)
        public
        view
        returns (bool)
    {
        return _public_capabilities[code][sig];
    }

    function hasUserRole(address who, uint8 role)
        public
        view
        returns (bool)
    {
        bytes32 roles = getUserRoles(who);
        bytes32 shifted = bytes32(uint256(uint256(2) ** uint256(role)));
        return bytes32(0) != roles & shifted;
    }

    function canCall(address caller, address code, bytes4 sig)
        public
        view
        returns (bool)
    {
        if( isUserRoot(caller) || isCapabilityPublic(code, sig) ) {
            return true;
        } else {
            bytes32 has_roles = getUserRoles(caller);
            bytes32 needs_one_of = getCapabilityRoles(code, sig);
            return bytes32(0) != has_roles & needs_one_of;
        }
    }

    function BITNOT(bytes32 input) internal pure returns (bytes32 output) {
        return (input ^ bytes32(uint(-1)));
    }

    function setRootUser(address who, bool enabled)
        public
        auth
    {
        _root_users[who] = enabled;
    }

    function setUserRole(address who, uint8 role, bool enabled)
        public
        auth
    {
        bytes32 last_roles = _user_roles[who];
        bytes32 shifted = bytes32(uint256(uint256(2) ** uint256(role)));
        if( enabled ) {
            _user_roles[who] = last_roles | shifted;
        } else {
            _user_roles[who] = last_roles & BITNOT(shifted);
        }
    }

    function setPublicCapability(address code, bytes4 sig, bool enabled)
        public
        auth
    {
        _public_capabilities[code][sig] = enabled;
    }

    function setRoleCapability(uint8 role, address code, bytes4 sig, bool enabled)
        public
        auth
    {
        bytes32 last_roles = _capability_roles[code][sig];
        bytes32 shifted = bytes32(uint256(uint256(2) ** uint256(role)));
        if( enabled ) {
            _capability_roles[code][sig] = last_roles | shifted;
        } else {
            _capability_roles[code][sig] = last_roles & BITNOT(shifted);
        }

    }

}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint256           wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;
        uint256 wad;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
            wad := callvalue()
        }

        _;

        emit LogNote(msg.sig, msg.sender, foo, bar, wad, msg.data);
    }
}

contract DSThing is DSAuth, DSNote, DSMath {
    function S(string memory s) internal pure returns (bytes4) {
        return bytes4(keccak256(abi.encodePacked(s)));
    }

}

// The right way to use this contract is probably to mix it with some kind
// of `DSAuthority`, like with `ds-roles`.
//   SEE DSChief
contract DSChiefApprovals is DSThing {
    mapping(bytes32=>address[]) public slates;
    mapping(address=>bytes32) public votes;
    mapping(address=>uint256) public approvals;
    mapping(address=>uint256) public deposits;
    DSToken public GOV; // voting token that gets locked up
    DSToken public IOU; // non-voting representation of a token, for e.g. secondary voting mechanisms
    address public hat; // the chieftain's hat

    uint256 public MAX_YAYS;

    mapping(address=>uint256) public last;

    bool public live;

    uint256 constant LAUNCH_THRESHOLD = 80_000 * 10 ** 18; // 80K MKR launch threshold

    event Etch(bytes32 indexed slate);

    // IOU constructed outside this contract reduces deployment costs significantly
    // lock/free/vote are quite sensitive to token invariants. Caution is advised.
    constructor(DSToken GOV_, DSToken IOU_, uint MAX_YAYS_) public
    {
        GOV = GOV_;
        IOU = IOU_;
        MAX_YAYS = MAX_YAYS_;
    }

    function launch()
        public
        note
    {
        require(!live);
        require(hat == address(0) && approvals[address(0)] >= LAUNCH_THRESHOLD);
        live = true;
    }

    function lock(uint wad)
        public
        note
    {
        last[msg.sender] = block.number;
        GOV.pull(msg.sender, wad);
        IOU.mint(msg.sender, wad);
        deposits[msg.sender] = add(deposits[msg.sender], wad);
        addWeight(wad, votes[msg.sender]);
    }

    function free(uint wad)
        public
        note
    {
        require(block.number > last[msg.sender]);
        deposits[msg.sender] = sub(deposits[msg.sender], wad);
        subWeight(wad, votes[msg.sender]);
        IOU.burn(msg.sender, wad);
        GOV.push(msg.sender, wad);
    }

    function etch(address[] memory yays)
        public
        note
        returns (bytes32 slate)
    {
        require( yays.length <= MAX_YAYS );
        requireByteOrderedSet(yays);

        bytes32 hash = keccak256(abi.encodePacked(yays));
        slates[hash] = yays;
        emit Etch(hash);
        return hash;
    }

    function vote(address[] memory yays) public returns (bytes32)
        // note  both sub-calls note
    {
        bytes32 slate = etch(yays);
        vote(slate);
        return slate;
    }

    function vote(bytes32 slate)
        public
        note
    {
        require(slates[slate].length > 0 ||
            slate == 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470, "ds-chief-invalid-slate");
        uint weight = deposits[msg.sender];
        subWeight(weight, votes[msg.sender]);
        votes[msg.sender] = slate;
        addWeight(weight, votes[msg.sender]);
    }

    // like `drop`/`swap` except simply "elect this address if it is higher than current hat"
    function lift(address whom)
        public
        note
    {
        require(approvals[whom] > approvals[hat]);
        hat = whom;
    }

    function addWeight(uint weight, bytes32 slate)
        internal
    {
        address[] storage yays = slates[slate];
        for( uint i = 0; i < yays.length; i++) {
            approvals[yays[i]] = add(approvals[yays[i]], weight);
        }
    }

    function subWeight(uint weight, bytes32 slate)
        internal
    {
        address[] storage yays = slates[slate];
        for( uint i = 0; i < yays.length; i++) {
            approvals[yays[i]] = sub(approvals[yays[i]], weight);
        }
    }

    // Throws unless the array of addresses is a ordered set.
    function requireByteOrderedSet(address[] memory yays)
        internal
        pure
    {
        if( yays.length == 0 || yays.length == 1 ) {
            return;
        }
        for( uint i = 0; i < yays.length - 1; i++ ) {
            // strict inequality ensures both ordering and uniqueness
            require(uint(yays[i]) < uint(yays[i+1]));
        }
    }
}


// `hat` address is unique root user (has every role) and the
// unique owner of role 0 (typically 'sys' or 'internal')
contract DSChief is DSRoles, DSChiefApprovals {

    constructor(DSToken GOV, DSToken IOU, uint MAX_YAYS)
             DSChiefApprovals (GOV, IOU, MAX_YAYS)
        public
    {
        authority = this;
        owner = address(0);
    }

    function setOwner(address owner_) public {
        owner_;
        revert();
    }

    function setAuthority(DSAuthority authority_) public {
        authority_;
        revert();
    }

    function isUserRoot(address who)
        public view
        returns (bool)
    {
        return (live && who == hat);
    }
    function setRootUser(address who, bool enabled) public {
        who; enabled;
        revert();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract DSToken","name":"GOV","type":"address"},{"internalType":"contract DSToken","name":"IOU","type":"address"},{"internalType":"uint256","name":"MAX_YAYS","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"slate","type":"bytes32"}],"name":"Etch","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":true,"internalType":"bytes32","name":"foo","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"bar","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"constant":true,"inputs":[],"name":"GOV","outputs":[{"internalType":"contract DSToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IOU","outputs":[{"internalType":"contract DSToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_YAYS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"approvals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"internalType":"contract DSAuthority","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes4","name":"sig","type":"bytes4"}],"name":"canCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"yays","type":"address[]"}],"name":"etch","outputs":[{"internalType":"bytes32","name":"slate","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"free","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes4","name":"sig","type":"bytes4"}],"name":"getCapabilityRoles","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"getUserRoles","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"}],"name":"hasUserRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hat","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes4","name":"sig","type":"bytes4"}],"name":"isCapabilityPublic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"isUserRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"launch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"whom","type":"address"}],"name":"lift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract DSAuthority","name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes4","name":"sig","type":"bytes4"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setPublicCapability","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"address","name":"code","type":"address"},{"internalType":"bytes4","name":"sig","type":"bytes4"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setRoleCapability","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setRootUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setUserRole","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"slates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"slate","type":"bytes32"}],"name":"vote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"yays","type":"address[]"}],"name":"vote","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051612e44380380612e448339818101604052606081101561003357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505082828233600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a282600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d81905550505050306000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050612c45806101ff6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063957aa58c1161010f578063d381ba7c116100a2578063ed08132911610071578063ed08132914610b16578063fbf8077314610be2578063fc7e286d14610c3e578063fe95a5ce14610c96576101e5565b8063d381ba7c14610a12578063d8bff5a514610a62578063d8ccd0f314610aba578063dd46706414610ae8576101e5565b8063b7009613116100de578063b700961314610832578063bf7e214f146108d7578063c2ffc7bb14610921578063c6b0263e14610999576101e5565b8063957aa58c146107215780639a816f7d14610743578063a078f7371461079b578063a69beaba14610804576101e5565b8063362344b81161018757806367aff4841161015657806367aff484146105b05780637a9e5e4b1461060d5780637d40583d146106515780638da5cb5b146106d7576101e5565b8063362344b81461042a5780633c278bd5146104485780635123e1fa1461048c5780635d0341ba14610558576101e5565b806313af4035116101c357806313af403514610296578063180cb47f146102da57806327538e90146103245780632f47571f146103a5576101e5565b806301339c21146101ea578063046c472f146101f457806306a36aee1461023e575b600080fd5b6101f2610ce0565b005b6101fc610e84565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eaa565b6040518082815260200191505060405180910390f35b6102d8600480360360208110156102ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef3565b005b6102e2610ef8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61038f6004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f1e565b6040518082815260200191505060405180910390f35b610410600480360360408110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fb7565b604051808215151515815260200191505060405180910390f35b61043261105d565b6040518082815260200191505060405180910390f35b61048a6004803603602081101561045e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611063565b005b610542600480360360208110156104a257600080fd5b81019080803590602001906401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611210565b6040518082815260200191505060405180910390f35b61059a6004803603602081101561056e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139d565b6040518082815260200191505060405180910390f35b61060b600480360360608110156105c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035151590602001909291905050506113b5565b005b61064f6004803603602081101561062357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154e565b005b6106d56004803603608081101561066757600080fd5b81019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803515159060200190929190505050611553565b005b6106df6117da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610729611800565b604051808215151515815260200191505060405180910390f35b6107856004803603602081101561075957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611813565b6040518082815260200191505060405180910390f35b6107ea600480360360408110156107b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919050505061182b565b604051808215151515815260200191505060405180910390f35b6108306004803603602081101561081a57600080fd5b810190808035906020019092919050505061185a565b005b6108bd6004803603606081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611aee565b604051808215151515815260200191505060405180910390f35b6108df611b48565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109576004803603604081101561093757600080fd5b810190808035906020019092919080359060200190929190505050611b6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a10600480360360608110156109af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803515159060200190929190505050611bb8565b005b610a6060048036036040811015610a2857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d03565b005b610aa460048036036020811015610a7857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d08565b6040518082815260200191505060405180910390f35b610ae660048036036020811015610ad057600080fd5b8101908080359060200190929190505050611d20565b005b610b1460048036036020811015610afe57600080fd5b8101908080359060200190929190505050612082565b005b610bcc60048036036020811015610b2c57600080fd5b8101908080359060200190640100000000811115610b4957600080fd5b820183602082011115610b5b57600080fd5b80359060200191846020830284011164010000000083111715610b7d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506123dd565b6040518082815260200191505060405180910390f35b610c2460048036036020811015610bf857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123fd565b604051808215151515815260200191505060405180910390f35b610c8060048036036020811015610c5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061246f565b6040518082815260200191505060405180910390f35b610c9e612487565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600060043592506024359150349050600f60009054906101000a900460ff1615610d0c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610db357506910f0cf064dd592000000600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b610dbc57600080fd5b6001600f60006101000a81548160ff02191690831515021790555081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a4505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002054905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16905092915050565b600d5481565b60008060006004359250602435915034905060086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161112157600080fd5b83600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b60008060008060043592506024359150349050600d548551111561123357600080fd5b61123c856124ad565b60008560405160200180828051906020019060200280838360005b83811015611272578082015181840152602081019050611257565b50505050905001915050604051602081830303815290604052805190602001209050856006600083815260200190815260200160002090805190602001906112bb929190612b43565b50807f4f0892983790f53eea39a7a496f6cb40e8811b313871337b6a761efc6c67bb1f60405160405180910390a28094505081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a4505050919050565b60086020528060005260406000206000915090505481565b6113e3336000357fffffffff000000000000000000000000000000000000000000000000000000001661254d565b611455576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008360ff1660020a60001b905082156114f857808217600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611547565b611501816127a6565b8216600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050505050565b600080fd5b611581336000357fffffffff000000000000000000000000000000000000000000000000000000001661254d565b6115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002054905060008560ff1660020a60001b9050821561173457808217600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055506117d2565b61173d816127a6565b8216600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055505b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900460ff1681565b600e6020528060005260406000206000915090505481565b60008061183784610eaa565b905060008360ff1660020a60001b90508082166000801b14159250505092915050565b6000806000600435925060243591503490506000600660008681526020019081526020016000208054905011806118b357507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b84145b611925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f64732d63686965662d696e76616c69642d736c6174650000000000000000000081525060200191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506119b281600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d5565b84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a3f81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612909565b5081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b6000611af9846123fd565b80611b0a5750611b098383610fb7565b5b15611b185760019050611b41565b6000611b2385610eaa565b90506000611b318585610f1e565b90508082166000801b1415925050505b9392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528160005260406000208181548110611b8657fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be6336000357fffffffff000000000000000000000000000000000000000000000000000000001661254d565b611c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600080fd5b60076020528060005260406000206000915090505481565b600080600060043592506024359150349050600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544311611d7d57600080fd5b611dc6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a3d565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e5284600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d5565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611efb57600080fd5b505af1158015611f0f573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b753a98c33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611fbc57600080fd5b505af1158015611fd0573d6000803e3d6000fd5b5050505081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b60008060006004359250602435915034905043600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2d5d56b33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561218157600080fd5b505af1158015612195573d6000803e3d6000fd5b50505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b505050506122a3600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612ac0565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061232f84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612909565b81833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b6000806123e983611210565b90506123f48161185a565b80915050919050565b6000600f60009054906101000a900460ff1680156124685750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60096020528060005260406000206000915090505481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000815114806124be575060018151145b156124c85761254a565b60008090505b6001825103811015612548578160018201815181106124e957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1682828151811061251357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161061253b57600080fd5b80806001019150506124ce565b505b50565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258c57600190506127a0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125eb57600190506127a0565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561264a57600090506127a0565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561276257600080fd5b505afa158015612776573d6000803e3d6000fd5b505050506040513d602081101561278c57600080fd5b810190808051906020019092919050505090505b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b82189050919050565b600060066000838152602001908152602001600020905060008090505b81805490508110156129035761287d6008600084848154811061281157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a3d565b6008600084848154811061288d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506127f2565b50505050565b600060066000838152602001908152602001600020905060008090505b8180549050811015612a37576129b16008600084848154811061294557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612ac0565b600860008484815481106129c157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050612926565b50505050565b6000828284039150811115612aba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284019150811015612b3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b828054828255906000526020600020908101928215612bbc579160200282015b82811115612bbb5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612b63565b5b509050612bc99190612bcd565b5090565b612c0d91905b80821115612c0957600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612bd3565b5090565b9056fea265627a7a7231582052686cb231139f00c5c7a17779cbf18779e619650b4f98996c72c2b88ad81c1664736f6c634300050c00320000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000a618e54de493ec29432ebd2ca7f14efbf6ac17f70000000000000000000000000000000000000000000000000000000000000005

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063957aa58c1161010f578063d381ba7c116100a2578063ed08132911610071578063ed08132914610b16578063fbf8077314610be2578063fc7e286d14610c3e578063fe95a5ce14610c96576101e5565b8063d381ba7c14610a12578063d8bff5a514610a62578063d8ccd0f314610aba578063dd46706414610ae8576101e5565b8063b7009613116100de578063b700961314610832578063bf7e214f146108d7578063c2ffc7bb14610921578063c6b0263e14610999576101e5565b8063957aa58c146107215780639a816f7d14610743578063a078f7371461079b578063a69beaba14610804576101e5565b8063362344b81161018757806367aff4841161015657806367aff484146105b05780637a9e5e4b1461060d5780637d40583d146106515780638da5cb5b146106d7576101e5565b8063362344b81461042a5780633c278bd5146104485780635123e1fa1461048c5780635d0341ba14610558576101e5565b806313af4035116101c357806313af403514610296578063180cb47f146102da57806327538e90146103245780632f47571f146103a5576101e5565b806301339c21146101ea578063046c472f146101f457806306a36aee1461023e575b600080fd5b6101f2610ce0565b005b6101fc610e84565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eaa565b6040518082815260200191505060405180910390f35b6102d8600480360360208110156102ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef3565b005b6102e2610ef8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61038f6004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f1e565b6040518082815260200191505060405180910390f35b610410600480360360408110156103bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fb7565b604051808215151515815260200191505060405180910390f35b61043261105d565b6040518082815260200191505060405180910390f35b61048a6004803603602081101561045e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611063565b005b610542600480360360208110156104a257600080fd5b81019080803590602001906401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611210565b6040518082815260200191505060405180910390f35b61059a6004803603602081101561056e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139d565b6040518082815260200191505060405180910390f35b61060b600480360360608110156105c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035151590602001909291905050506113b5565b005b61064f6004803603602081101561062357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154e565b005b6106d56004803603608081101561066757600080fd5b81019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803515159060200190929190505050611553565b005b6106df6117da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610729611800565b604051808215151515815260200191505060405180910390f35b6107856004803603602081101561075957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611813565b6040518082815260200191505060405180910390f35b6107ea600480360360408110156107b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919050505061182b565b604051808215151515815260200191505060405180910390f35b6108306004803603602081101561081a57600080fd5b810190808035906020019092919050505061185a565b005b6108bd6004803603606081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611aee565b604051808215151515815260200191505060405180910390f35b6108df611b48565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109576004803603604081101561093757600080fd5b810190808035906020019092919080359060200190929190505050611b6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a10600480360360608110156109af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803515159060200190929190505050611bb8565b005b610a6060048036036040811015610a2857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d03565b005b610aa460048036036020811015610a7857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d08565b6040518082815260200191505060405180910390f35b610ae660048036036020811015610ad057600080fd5b8101908080359060200190929190505050611d20565b005b610b1460048036036020811015610afe57600080fd5b8101908080359060200190929190505050612082565b005b610bcc60048036036020811015610b2c57600080fd5b8101908080359060200190640100000000811115610b4957600080fd5b820183602082011115610b5b57600080fd5b80359060200191846020830284011164010000000083111715610b7d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506123dd565b6040518082815260200191505060405180910390f35b610c2460048036036020811015610bf857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123fd565b604051808215151515815260200191505060405180910390f35b610c8060048036036020811015610c5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061246f565b6040518082815260200191505060405180910390f35b610c9e612487565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600060043592506024359150349050600f60009054906101000a900460ff1615610d0c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610db357506910f0cf064dd592000000600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b610dbc57600080fd5b6001600f60006101000a81548160ff02191690831515021790555081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a4505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002054905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16905092915050565b600d5481565b60008060006004359250602435915034905060086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161112157600080fd5b83600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b60008060008060043592506024359150349050600d548551111561123357600080fd5b61123c856124ad565b60008560405160200180828051906020019060200280838360005b83811015611272578082015181840152602081019050611257565b50505050905001915050604051602081830303815290604052805190602001209050856006600083815260200190815260200160002090805190602001906112bb929190612b43565b50807f4f0892983790f53eea39a7a496f6cb40e8811b313871337b6a761efc6c67bb1f60405160405180910390a28094505081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a4505050919050565b60086020528060005260406000206000915090505481565b6113e3336000357fffffffff000000000000000000000000000000000000000000000000000000001661254d565b611455576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008360ff1660020a60001b905082156114f857808217600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611547565b611501816127a6565b8216600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050505050565b600080fd5b611581336000357fffffffff000000000000000000000000000000000000000000000000000000001661254d565b6115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002054905060008560ff1660020a60001b9050821561173457808217600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055506117d2565b61173d816127a6565b8216600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020819055505b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900460ff1681565b600e6020528060005260406000206000915090505481565b60008061183784610eaa565b905060008360ff1660020a60001b90508082166000801b14159250505092915050565b6000806000600435925060243591503490506000600660008681526020019081526020016000208054905011806118b357507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b84145b611925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f64732d63686965662d696e76616c69642d736c6174650000000000000000000081525060200191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506119b281600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d5565b84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a3f81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612909565b5081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b6000611af9846123fd565b80611b0a5750611b098383610fb7565b5b15611b185760019050611b41565b6000611b2385610eaa565b90506000611b318585610f1e565b90508082166000801b1415925050505b9392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528160005260406000208181548110611b8657fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be6336000357fffffffff000000000000000000000000000000000000000000000000000000001661254d565b611c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600080fd5b60076020528060005260406000206000915090505481565b600080600060043592506024359150349050600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544311611d7d57600080fd5b611dc6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a3d565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e5284600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d5565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611efb57600080fd5b505af1158015611f0f573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b753a98c33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611fbc57600080fd5b505af1158015611fd0573d6000803e3d6000fd5b5050505081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b60008060006004359250602435915034905043600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2d5d56b33866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561218157600080fd5b505af1158015612195573d6000803e3d6000fd5b50505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b505050506122a3600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612ac0565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061232f84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612909565b81833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a450505050565b6000806123e983611210565b90506123f48161185a565b80915050919050565b6000600f60009054906101000a900460ff1680156124685750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60096020528060005260406000206000915090505481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000815114806124be575060018151145b156124c85761254a565b60008090505b6001825103811015612548578160018201815181106124e957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1682828151811061251357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161061253b57600080fd5b80806001019150506124ce565b505b50565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258c57600190506127a0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125eb57600190506127a0565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561264a57600090506127a0565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561276257600080fd5b505afa158015612776573d6000803e3d6000fd5b505050506040513d602081101561278c57600080fd5b810190808051906020019092919050505090505b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b82189050919050565b600060066000838152602001908152602001600020905060008090505b81805490508110156129035761287d6008600084848154811061281157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a3d565b6008600084848154811061288d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506127f2565b50505050565b600060066000838152602001908152602001600020905060008090505b8180549050811015612a37576129b16008600084848154811061294557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612ac0565b600860008484815481106129c157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050612926565b50505050565b6000828284039150811115612aba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284019150811015612b3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b828054828255906000526020600020908101928215612bbc579160200282015b82811115612bbb5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612b63565b5b509050612bc99190612bcd565b5090565b612c0d91905b80821115612c0957600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612bd3565b5090565b9056fea265627a7a7231582052686cb231139f00c5c7a17779cbf18779e619650b4f98996c72c2b88ad81c1664736f6c634300050c0032

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

0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000a618e54de493ec29432ebd2ca7f14efbf6ac17f70000000000000000000000000000000000000000000000000000000000000005

-----Decoded View---------------
Arg [0] : GOV (address): 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
Arg [1] : IOU (address): 0xA618E54de493ec29432EbD2CA7f14eFbF6Ac17F7
Arg [2] : MAX_YAYS (uint256): 5

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2
Arg [1] : 000000000000000000000000a618e54de493ec29432ebd2ca7f14efbf6ac17f7
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005


Deployed Bytecode Sourcemap

16147:698:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16147:698:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13039:190;;;:::i;:::-;;12325:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8464:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8464:139:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16400:85;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16400:85:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12264:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8611:170;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8611:170:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8931;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8931:170:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12478:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14898:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14898:144:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13840:335;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13840:335:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13840:335:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13840:335:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13840:335:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;13840:335:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12167:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12167:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10102:395;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10102:395:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16493:101;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16493:101:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10677:452;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;10677:452:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3537:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12556:16;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12510:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12510:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9109:278;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9109:278:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14386:409;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14386:409:0;;;;;;;;;;;;;;;;;:::i;:::-;;9395:432;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9395:432:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3500:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12074:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12074:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10505:164;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10505:164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16737:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16737:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12122:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12122:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13534:298;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13534:298:0;;;;;;;;;;;;;;;;;:::i;:::-;;13237:289;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13237:289:0;;;;;;;;;;;;;;;;;:::i;:::-;;14183:195;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14183:195:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14183:195:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14183:195:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14183:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;14183:195:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16602:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16602:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12216:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12216:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12428:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13039:190;11417:11;11439;11461;11529:1;11516:15;11509:22;;11565:2;11552:16;11545:23;;11589:11;11582:18;;13112:4;;;;;;;;;;;13111:5;13103:14;;;;;;13151:1;13136:17;;:3;;;;;;;;;;;:17;;;:62;;;;;12617:17;13157:9;:21;13175:1;13157:21;;;;;;;;;;;;;;;;:41;;13136:62;13128:71;;;;;;13217:4;13210;;:11;;;;;;;;;;;;;;;;;;11676:3;11671;11659:10;11642:53;;11650:7;;;;11642:53;;;11681:3;11686:8;;11642:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;11642:53:0;;;;;;;;;;;;;;;13039:190;;;:::o;12325:18::-;;;;;;;;;;;;;:::o;8464:139::-;8547:7;8579:11;:16;8591:3;8579:16;;;;;;;;;;;;;;;;8572:23;;8464:139;;;:::o;16400:85::-;16469:8;;;12264:18;;;;;;;;;;;;;:::o;8611:170::-;8713:7;8745:17;:23;8763:4;8745:23;;;;;;;;;;;;;;;:28;8769:3;8745:28;;;;;;;;;;;;;;;;;;8738:35;;8611:170;;;;:::o;8931:::-;9033:4;9062:20;:26;9083:4;9062:26;;;;;;;;;;;;;;;:31;9089:3;9062:31;;;;;;;;;;;;;;;;;;;;;;;;;;;9055:38;;8931:170;;;;:::o;12478:23::-;;;;:::o;14898:144::-;11417:11;11439;11461;11529:1;11516:15;11509:22;;11565:2;11552:16;11545:23;;11589:11;11582:18;;14998:9;:14;15008:3;;;;;;;;;;;14998:14;;;;;;;;;;;;;;;;14980:9;:15;14990:4;14980:15;;;;;;;;;;;;;;;;:32;14972:41;;;;;;15030:4;15024:3;;:10;;;;;;;;;;;;;;;;;;11676:3;11671;11659:10;11642:53;;11650:7;;;;11642:53;;;11681:3;11686:8;;11642:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;11642:53:0;;;;;;;;;;;;;;;14898:144;;;;:::o;13840:335::-;13925:13;11417:11;11439;11461;11529:1;11516:15;11509:22;;11565:2;11552:16;11545:23;;11589:11;11582:18;;13980:8;;13965:4;:11;:23;;13956:34;;;;;;14001:27;14023:4;14001:21;:27::i;:::-;14041:12;14083:4;14066:22;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14066:22:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14066:22:0;;;14056:33;;;;;;14041:48;;14115:4;14100:6;:12;14107:4;14100:12;;;;;;;;;;;:19;;;;;;;;;;;;:::i;:::-;;14140:4;14135:10;;;;;;;;;;14163:4;14156:11;;;11676:3;11671;11659:10;11642:53;;11650:7;;;;11642:53;;;11681:3;11686:8;;11642:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;11642:53:0;;;;;;;;;;;;;;;13840:335;;;;;;:::o;12167:42::-;;;;;;;;;;;;;;;;;:::o;10102:395::-;4035:33;4048:10;4060:7;;;;4035:12;:33::i;:::-;4027:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10208:18;10229:11;:16;10241:3;10229:16;;;;;;;;;;;;;;;;10208:37;;10256:15;10312:4;10304:13;;10298:1;10290:27;10274:45;;10256:63;;10334:7;10330:160;;;10391:7;10378:10;:20;10359:11;:16;10371:3;10359:16;;;;;;;;;;;;;;;:39;;;;10330:160;;;10463:15;10470:7;10463:6;:15::i;:::-;10450:10;:28;10431:11;:16;10443:3;10431:16;;;;;;;;;;;;;;;:47;;;;10330:160;4104:1;;10102:395;;;:::o;16493:101::-;16578:8;;;10677:452;4035:33;4048:10;4060:7;;;;4035:12;:33::i;:::-;4027:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10802:18;10823:17;:23;10841:4;10823:23;;;;;;;;;;;;;;;:28;10847:3;10823:28;;;;;;;;;;;;;;;;;;10802:49;;10862:15;10918:4;10910:13;;10904:1;10896:27;10880:45;;10862:63;;10940:7;10936:184;;;11009:7;10996:10;:20;10965:17;:23;10983:4;10965:23;;;;;;;;;;;;;;;:28;10989:3;10965:28;;;;;;;;;;;;;;;;;:51;;;;10936:184;;;11093:15;11100:7;11093:6;:15::i;:::-;11080:10;:28;11049:17;:23;11067:4;11049:23;;;;;;;;;;;;;;;:28;11073:3;11049:28;;;;;;;;;;;;;;;;;:59;;;;10936:184;4104:1;;10677:452;;;;:::o;3537:26::-;;;;;;;;;;;;;:::o;12556:16::-;;;;;;;;;;;;;:::o;12510:37::-;;;;;;;;;;;;;;;;;:::o;9109:278::-;9203:4;9225:13;9241:17;9254:3;9241:12;:17::i;:::-;9225:33;;9269:15;9325:4;9317:13;;9311:1;9303:27;9287:45;;9269:63;;9372:7;9364:5;:15;9358:1;9350:10;;:29;;9343:36;;;;9109:278;;;;:::o;14386:409::-;11417:11;11439;11461;11529:1;11516:15;11509:22;;11565:2;11552:16;11545:23;;11589:11;11582:18;;14492:1;14469:6;:13;14476:5;14469:13;;;;;;;;;;;:20;;;;:24;:116;;;;14519:66;14510:75;;:5;:75;14469:116;14461:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14623:11;14637:8;:20;14646:10;14637:20;;;;;;;;;;;;;;;;14623:34;;14668:36;14678:6;14686:5;:17;14692:10;14686:17;;;;;;;;;;;;;;;;14668:9;:36::i;:::-;14735:5;14715;:17;14721:10;14715:17;;;;;;;;;;;;;;;:25;;;;14751:36;14761:6;14769:5;:17;14775:10;14769:17;;;;;;;;;;;;;;;;14751:9;:36::i;:::-;11623:1;11676:3;11671;11659:10;11642:53;;11650:7;;;;11642:53;;;11681:3;11686:8;;11642:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;11642:53:0;;;;;;;;;;;;;;;14386:409;;;;:::o;9395:432::-;9502:4;9528:18;9539:6;9528:10;:18::i;:::-;:51;;;;9550:29;9569:4;9575:3;9550:18;:29::i;:::-;9528:51;9524:296;;;9604:4;9597:11;;;;9524:296;9641:17;9661:20;9674:6;9661:12;:20::i;:::-;9641:40;;9696:20;9719:29;9738:4;9744:3;9719:18;:29::i;:::-;9696:52;;9796:12;9784:9;:24;9778:1;9770:10;;:38;;9763:45;;;;9395:432;;;;;;:::o;3500:30::-;;;;;;;;;;;;;:::o;12074:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10505:164::-;4035:33;4048:10;4060:7;;;;4035:12;:33::i;:::-;4027:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10654:7;10620:20;:26;10641:4;10620:26;;;;;;;;;;;;;;;:31;10647:3;10620:31;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;10505:164;;;:::o;16737:105::-;16826:8;;;12122:38;;;;;;;;;;;;;;;;;:::o;13534:298::-;11417:11;11439;11461;11529:1;11516:15;11509:22;;11565:2;11552:16;11545:23;;11589:11;11582:18;;13627:4;:16;13632:10;13627:16;;;;;;;;;;;;;;;;13612:12;:31;13604:40;;;;;;13678:30;13682:8;:20;13691:10;13682:20;;;;;;;;;;;;;;;;13704:3;13678;:30::i;:::-;13655:8;:20;13664:10;13655:20;;;;;;;;;;;;;;;:53;;;;13719:33;13729:3;13734:5;:17;13740:10;13734:17;;;;;;;;;;;;;;;;13719:9;:33::i;:::-;13763:3;;;;;;;;;;;:8;;;13772:10;13784:3;13763:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13763:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13763:25:0;;;;13799:3;;;;;;;;;;;:8;;;13808:10;13820:3;13799:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13799:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13799:25:0;;;;11676:3;11671;11659:10;11642:53;;11650:7;;;;11642:53;;;11681:3;11686:8;;11642:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;11642:53:0;;;;;;;;;;;;;;;13534:298;;;;:::o;13237:289::-;11417:11;11439;11461;11529:1;11516:15;11509:22;;11565:2;11552:16;11545:23;;11589:11;11582:18;;13326:12;13307:4;:16;13312:10;13307:16;;;;;;;;;;;;;;;:31;;;;13349:3;;;;;;;;;;;:8;;;13358:10;13370:3;13349:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13349:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13349:25:0;;;;13385:3;;;;;;;;;;;:8;;;13394:10;13406:3;13385:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13385:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13385:25:0;;;;13444:30;13448:8;:20;13457:10;13448:20;;;;;;;;;;;;;;;;13470:3;13444;:30::i;:::-;13421:8;:20;13430:10;13421:20;;;;;;;;;;;;;;;:53;;;;13485:33;13495:3;13500:5;:17;13506:10;13500:17;;;;;;;;;;;;;;;;13485:9;:33::i;:::-;11676:3;11671;11659:10;11642:53;;11650:7;;;;11642:53;;;11681:3;11686:8;;11642:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;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;;11642:53:0;;;;;;;;;;;;;;;13237:289;;;;:::o;14183:195::-;14236:7;14299:13;14315:10;14320:4;14315;:10::i;:::-;14299:26;;14336:11;14341:5;14336:4;:11::i;:::-;14365:5;14358:12;;;14183:195;;;:::o;16602:129::-;16674:4;16704;;;;;;;;;;;:18;;;;;16719:3;;;;;;;;;;;16712:10;;:3;:10;;;16704:18;16696:27;;16602:129;;;:::o;12216:41::-;;;;;;;;;;;;;;;;;:::o;12428:18::-;;;;;;;;;;;;;:::o;15639:377::-;15760:1;15745:4;:11;:16;:36;;;;15780:1;15765:4;:11;:16;15745:36;15741:76;;;15799:7;;15741:76;15832:6;15841:1;15832:10;;15827:182;15862:1;15848:4;:11;:15;15844:1;:19;15827:182;;;15986:4;15993:1;15991;:3;15986:9;;;;;;;;;;;;;;15981:15;;15970:4;15975:1;15970:7;;;;;;;;;;;;;;15965:13;;:31;15957:40;;;;;;15865:3;;;;;;;15827:182;;;;15639:377;;:::o;4121:380::-;4191:4;4227;4212:20;;:3;:20;;;4208:286;;;4256:4;4249:11;;;;4208:286;4289:5;;;;;;;;;;;4282:12;;:3;:12;;;4278:216;;;4318:4;4311:11;;;;4278:216;4369:1;4344:27;;:9;;;;;;;;;;;:27;;;4340:154;;;4395:5;4388:12;;;;4340:154;4440:9;;;;;;;;;;;:17;;;4458:3;4471:4;4478:3;4440:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4440:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4440:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4440:42:0;;;;;;;;;;;;;;;;4433:49;;4121:380;;;;;:::o;9835:123::-;9889:14;9945:2;9932:17;;9924:5;:25;9916:34;;9835:123;;;:::o;15313:255::-;15394:22;15419:6;:13;15426:5;15419:13;;;;;;;;;;;15394:38;;15448:6;15457:1;15448:10;;15443:118;15464:4;:11;;;;15460:1;:15;15443:118;;;15518:31;15522:9;:18;15532:4;15537:1;15532:7;;;;;;;;;;;;;;;;;;;;;;;;;15522:18;;;;;;;;;;;;;;;;15542:6;15518:3;:31::i;:::-;15497:9;:18;15507:4;15512:1;15507:7;;;;;;;;;;;;;;;;;;;;;;;;;15497:18;;;;;;;;;;;;;;;:52;;;;15477:3;;;;;;;15443:118;;;;15313:255;;;:::o;15050:::-;15131:22;15156:6;:13;15163:5;15156:13;;;;;;;;;;;15131:38;;15185:6;15194:1;15185:10;;15180:118;15201:4;:11;;;;15197:1;:15;15180:118;;;15255:31;15259:9;:18;15269:4;15274:1;15269:7;;;;;;;;;;;;;;;;;;;;;;;;;15259:18;;;;;;;;;;;;;;;;15279:6;15255:3;:31::i;:::-;15234:9;:18;15244:4;15249:1;15244:7;;;;;;;;;;;;;;;;;;;;;;;;;15234:18;;;;;;;;;;;;;;;:52;;;;15214:3;;;;;;;15180:118;;;;15050:255;;;:::o;932:129::-;984:6;1026:1;1020;1016;:5;1012:9;;;1011:16;;1003:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;932:129;;;;:::o;798:128::-;850:6;892:1;886;882;:5;878:9;;;877:16;;869:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:128;;;;:::o;16147:698::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://52686cb231139f00c5c7a17779cbf18779e619650b4f98996c72c2b88ad81c16

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Sky (formerly Maker) enables users to get rewarded for non-custodial savings.

Validator Index Block Amount
View All Withdrawals

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

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