Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 47 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Lift | 21301325 | 46 hrs ago | IN | 0 ETH | 0.00037588 | ||||
Lift | 21301251 | 46 hrs ago | IN | 0 ETH | 0.00047186 | ||||
Lift | 21296355 | 2 days ago | IN | 0 ETH | 0.00030412 | ||||
Lock | 21258364 | 7 days ago | IN | 0 ETH | 0.00082067 | ||||
Lock | 21251128 | 8 days ago | IN | 0 ETH | 0.00221291 | ||||
Lock | 21215959 | 13 days ago | IN | 0 ETH | 0.00326976 | ||||
Free | 21215931 | 13 days ago | IN | 0 ETH | 0.00171909 | ||||
Lift | 21193982 | 16 days ago | IN | 0 ETH | 0.00096486 | ||||
Free | 21125116 | 26 days ago | IN | 0 ETH | 0.00152429 | ||||
Lift | 21114803 | 27 days ago | IN | 0 ETH | 0.00034644 | ||||
Vote | 21107604 | 28 days ago | IN | 0 ETH | 0.0005896 | ||||
Lock | 21088574 | 31 days ago | IN | 0 ETH | 0.00199997 | ||||
Lock | 21084634 | 32 days ago | IN | 0 ETH | 0.00090168 | ||||
Free | 21056136 | 36 days ago | IN | 0 ETH | 0.00061694 | ||||
Vote | 21042280 | 38 days ago | IN | 0 ETH | 0.00032912 | ||||
Free | 21040632 | 38 days ago | IN | 0 ETH | 0.00039877 | ||||
Vote | 21010003 | 42 days ago | IN | 0 ETH | 0.00067943 | ||||
Lift | 21000127 | 43 days ago | IN | 0 ETH | 0.00069388 | ||||
Vote | 20965698 | 48 days ago | IN | 0 ETH | 0.00199313 | ||||
Lift | 20907527 | 56 days ago | IN | 0 ETH | 0.0007305 | ||||
Free | 20852050 | 64 days ago | IN | 0 ETH | 0.00043722 | ||||
Vote | 20851990 | 64 days ago | IN | 0 ETH | 0.00032922 | ||||
Lift | 20851426 | 64 days ago | IN | 0 ETH | 0.00018889 | ||||
Vote | 20842087 | 66 days ago | IN | 0 ETH | 0.00077283 | ||||
Vote | 20842067 | 66 days ago | IN | 0 ETH | 0.00181283 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
11327777 | 1468 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DSChief
Compiler Version
v0.5.12+commit.7709ece9
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
OVERVIEW
Sky (formerly Maker) enables users to get rewarded for non-custodial savings.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.