ETH Price: $2,464.68 (+3.78%)

Contract

0xaf1f5F5a203Aaf08237013A7280B03F35147b9D2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040127877492021-07-08 16:23:141169 days ago1625761394IN
 Create: TinlakeManager
0 ETH0.158654737

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TinlakeManager

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-08
*/

/**
 *Submitted for verification at Etherscan.io on 2021-07-05
*/

// Verified using https://dapp.tools

// hevm: flattened sources of src/fabs/mgr.sol

pragma solidity =0.5.12;

////// src/mgr.sol
/// tinlake_manager.sol -- Tinlake dss adapter

// 2020 Lucas Vogelsang <[email protected]>,
// 2020 Martin Lundfall <[email protected]>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

/* pragma solidity =0.5.12; */

interface GemLike_3 {
    function decimals() external view returns (uint256);
    function transfer(address,uint256) external returns (bool);
    function transferFrom(address,address,uint256) external returns (bool);
    function approve(address,uint256) external returns (bool);
    function totalSupply() external returns (uint256);
    function balanceOf(address) external returns (uint256);
}

interface JoinLike {
    function join(address,uint256) external;
    function exit(address,uint256) external;
}

interface EndLike {
    function debt() external returns (uint256);
}

interface RedeemLike {
    function redeemOrder(uint256) external;
    function disburse(uint256) external returns (uint256,uint256,uint256,uint256);
}

interface VatLike_5 {
    function urns(bytes32,address) external returns (uint256,uint256);
    function ilks(bytes32) external returns (uint256,uint256,uint256,uint256,uint256);
    function live() external returns(uint);
}

interface GemJoinLike {
    function gem() external returns (address);
    function ilk() external returns (bytes32);
}

interface MIP21UrnLike {
    function lock(uint256 wad) external;
    function free(uint256 wad) external;
    // n.b. DAI can only go to the output conduit
    function draw(uint256 wad) external;
    // n.b. anyone can wipe
    function wipe(uint256 wad) external;
    function quit() external;
    function gemJoin() external returns (address);
}

interface MIP21LiquidationLike {
    function ilks(bytes32 ilk) external returns (string memory, address, uint48, uint48);
}

contract TinlakeManager {
    // --- Auth ---
    mapping (address => uint256) public wards;

    function rely(address usr) external auth {
        wards[usr] = 1;
        emit Rely(usr);
    }
    function deny(address usr) external auth {
        wards[usr] = 0;
        emit Deny(usr);
    }
    modifier auth {
        require(wards[msg.sender] == 1, "TinlakeMgr/not-authorized");
        _;
    }

    // Events
    event Rely(address indexed usr);
    event Deny(address indexed usr);
    event Draw(uint256 wad);
    event Wipe(uint256 wad);
    event Join(uint256 wad);
    event Exit(uint256 wad);
    event Tell(uint256 wad);
    event Unwind(uint256 payBack);
    event Cull(uint256 tab);
    event Recover(uint256 recovered, uint256 payBack);
    event Cage();
    event File(bytes32 indexed what, address indexed data);
    event Migrate(address indexed dst);

    bool public safe; // Soft liquidation not triggered
    bool public glad; // Write-off not triggered
    bool public live; // Global settlement not triggered

    uint256 public tab;  // Dai owed

    // --- Contracts ---
    // dss components
    VatLike_5 public vat;
    GemLike_3 public dai;
    EndLike public end;
    address public vow;
    JoinLike public daiJoin;

    // Tinlake components
    GemLike_3      public gem;
    RedeemLike   public pool;

    // MIP21 RWAUrn
    MIP21UrnLike public urn;
    MIP21LiquidationLike public liq;

    address public tranche;
    address public owner;

    constructor(address dai_,   address daiJoin_,
                address drop_,  address pool_,
                address tranche_, address end_,
                address vat_, address vow_
                ) public {
        dai = GemLike_3(dai_);
        daiJoin = JoinLike(daiJoin_);
        vat = VatLike_5(vat_);
        vow = vow_;
        end = EndLike(end_);
        gem = GemLike_3(drop_);

        pool = RedeemLike(pool_);

        wards[msg.sender] = 1;
        emit Rely(msg.sender);

        safe = true;
        glad = true;
        live = true;

        tranche = tranche_;
    }

    // --- Math ---
    uint256 constant RAY = 10 ** 27;
    function add(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x + y) >= x);
    }
    function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x - y) <= x);
    }
    function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y == 0 || (z = x * y) / y == x);
    }
    function divup(uint256 x, uint256 y) internal pure returns (uint256 z) {
        z = add(x, sub(y, 1)) / y;
    }
    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
        z = x > y ? y : x;
    }


    // --- Gem Operation ---
    // moves the rwaToken into the vault
    // requires that mgr contract holds the rwaToken
    function lock(uint256 wad) public auth {
        GemLike_3(GemJoinLike(urn.gemJoin()).gem()).approve(address(urn), uint256(wad));
        urn.lock(wad);
    }
    // removes the rwaToken from the vault
    function free(uint256 wad) public auth {
        urn.free(wad);
    }

    // --- DROP Operation ---
    // join & exit move the gem directly into/from the urn
    function join(uint256 wad) public auth {
        require(safe && live, "TinlakeManager/bad-state");
        require(int256(wad) >= 0, "TinlakeManager/overflow");
        gem.transferFrom(msg.sender, address(this), wad);
        emit Join(wad);
    }

    function exit(uint256 wad) public auth {
        require(safe && live, "TinlakeManager/bad-state");
        require(wad <= 2 ** 255, "TinlakeManager/overflow");
        gem.transfer(msg.sender, wad);
        emit Exit(wad);
    }

    // --- DAI Operation ---
    // draw & wipe call daiJoin.exit/join immediately
    function draw(uint256 wad) public auth {
        require(safe && live, "TinlakeManager/bad-state");
        urn.draw(wad);
        dai.transfer(msg.sender, wad);
        emit Draw(wad);
    }

    function wipe(uint256 wad) public {
        require(safe && live, "TinlakeManager/bad-state");
        dai.transferFrom(msg.sender, address(urn), wad);
        urn.wipe(wad);
        emit Wipe(wad);
    }

    // Take DAI from the urn in case there is any in the Urn
    // can be dealt with through migrate() after ES
    function quit() public auth {
        urn.quit();
    }

    // --- Administration ---
    function migrate(address dst) public auth {
        dai.approve(dst, uint256(-1));
        gem.approve(dst, uint256(-1));
        live = false;
        emit Migrate(dst);
    }

    function file(bytes32 what, address data) public auth {
        emit File(what, data);
        if (what == "urn") {
            urn = MIP21UrnLike(data);
            dai.approve(data, uint256(-1));
        }
        else if (what == "liq") {
            liq = MIP21LiquidationLike(data);
        }
        else if (what == "owner") {
            owner = data;
        }
        else if (what == "vow") {
            vow = data;
        }
        else if (what == "end") {
            end = EndLike(data);
        }
        else if (what == "pool") {
            pool = RedeemLike(data);
        }
        else if (what == "tranche") {
            tranche = data;
        }
        else revert("TinlakeMgr/file-unknown-param");
    }

    // --- Liquidation ---
    // triggers a soft liquidation of the DROP collateral
    // a redeemOrder is submitted to receive DAI back
    function tell() public {
        require(safe, "TinlakeMgr/not-safe");
        bytes32 ilk = GemJoinLike(urn.gemJoin()).ilk();

        (,,, uint48 toc) = liq.ilks(ilk);
        require(toc != 0, "TinlakeMgr/not-liquidated");

        (, uint256 art) = vat.urns(ilk, address(urn));
        (, uint256 rate, , ,) = vat.ilks(ilk);
        tab = mul(art, rate);

        uint256 ink = gem.balanceOf(address(this));
        safe = false;
        gem.approve(tranche, ink);
        pool.redeemOrder(ink);
        emit Tell(ink);
    }

    // triggers the payout of a DROP redemption
    // method can be called multiple times until all DROP is redeemed
    function unwind(uint256 endEpoch) public {
        require(!safe && glad && live, "TinlakeMgr/not-soft-liquidation");

        (uint256 redeemed, , ,) = pool.disburse(endEpoch);
        bytes32 ilk = GemJoinLike(urn.gemJoin()).ilk();

        (, uint256 art) = vat.urns(ilk, address(urn));
        (, uint256 rate, , ,) = vat.ilks(ilk);
        uint256 tab_ = mul(art, rate);

        uint256 payBack = min(redeemed, divup(tab_, RAY));
        dai.transferFrom(address(this), address(urn), payBack);
        urn.wipe(payBack);

        // Return possible remainder to the owner
        dai.transfer(owner, dai.balanceOf(address(this)));
        tab = sub(tab_, mul(payBack, RAY));
        emit Unwind(payBack);
    }

    // --- Write-off ---
    // can be called after RwaLiquidationOracle.cull()
    function cull() public {
        require(!safe && glad && live, "TinlakeMgr/bad-state");
        bytes32 ilk = GemJoinLike(urn.gemJoin()).ilk();

        (uint256 ink, uint256 art) = vat.urns(ilk, address(urn));
        require(ink == 0 && art == 0, "TinlakeMgr/not-written-off");

        (,, uint48 tau, uint48 toc) = liq.ilks(ilk);
        require(toc != 0, "TinlakeMgr/not-liquidated");
        require(block.timestamp >= add(toc, tau), "TinlakeMgr/early-cull");

        glad = false;
        emit Cull(tab);
    }

    // recovers DAI from the Tinlake pool by triggering a payout
    // method can be called multiple times until all DROP is redeemed
    function recover(uint256 endEpoch) public {
        require(!glad, "TinlakeMgr/not-written-off");

        (uint256 recovered, , ,) = pool.disburse(endEpoch);
        uint256 payBack;
        if (end.debt() == 0) {
            payBack = min(recovered, tab / RAY);
            dai.approve(address(daiJoin), payBack);
            daiJoin.join(vow, payBack);
            tab = sub(tab, mul(payBack, RAY));
        }
        dai.transfer(owner, dai.balanceOf(address(this)));
        emit Recover(recovered, payBack);
    }

    function cage() external {
        require(!glad, "TinlakeMgr/bad-state");
        require(wards[msg.sender] == 1 || vat.live() == 0, "TinlakeMgr/not-authorized");
        live = false;
        emit Cage();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"dai_","type":"address"},{"internalType":"address","name":"daiJoin_","type":"address"},{"internalType":"address","name":"drop_","type":"address"},{"internalType":"address","name":"pool_","type":"address"},{"internalType":"address","name":"tranche_","type":"address"},{"internalType":"address","name":"end_","type":"address"},{"internalType":"address","name":"vat_","type":"address"},{"internalType":"address","name":"vow_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Cage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tab","type":"uint256"}],"name":"Cull","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Draw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Exit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":true,"internalType":"address","name":"data","type":"address"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Join","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dst","type":"address"}],"name":"Migrate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"recovered","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payBack","type":"uint256"}],"name":"Recover","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Tell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"payBack","type":"uint256"}],"name":"Unwind","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Wipe","type":"event"},{"constant":false,"inputs":[],"name":"cage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dai","outputs":[{"internalType":"contract GemLike_3","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"daiJoin","outputs":[{"internalType":"contract JoinLike","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"end","outputs":[{"internalType":"contract EndLike","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"file","outputs":[],"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":[],"name":"gem","outputs":[{"internalType":"contract GemLike_3","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"glad","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"liq","outputs":[{"internalType":"contract MIP21LiquidationLike","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"internalType":"address","name":"dst","type":"address"}],"name":"migrate","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":true,"inputs":[],"name":"pool","outputs":[{"internalType":"contract RedeemLike","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"quit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"endEpoch","type":"uint256"}],"name":"recover","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"safe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tab","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"tell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tranche","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"endEpoch","type":"uint256"}],"name":"unwind","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"urn","outputs":[{"internalType":"contract MIP21UrnLike","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike_5","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vow","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"wipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405162004c0a38038062004c0a833981810160405261010081101561003657600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505087600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a260018060006101000a81548160ff02191690831515021790555060018060016101000a81548160ff02191690831515021790555060018060026101000a81548160ff02191690831515021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505061488880620003826000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063957aa58c1161010f578063d8ccd0f3116100a2578063f4b9fa7511610071578063f4b9fa75146107e5578063faba8c3b1461082f578063fad898c214610879578063fc2b8cc3146108a7576101f0565b8063d8ccd0f314610721578063db9cd8d31461074f578063dd4670641461076d578063efbe1c1c1461079b576101f0565b8063bf353dbb116100de578063bf353dbb146105ed578063c11645bc14610645578063ce5494bb1461068f578063d4e8be83146106d3576101f0565b8063957aa58c14610537578063968e7953146105595780639c52a7f11461057b578063b38a1620146105bf576101f0565b806353d700e5116101875780636ebc0af1116101565780636ebc0af11461042b5780637bd2bea7146104755780637f8661a1146104bf5780638da5cb5b146104ed576101f0565b806353d700e514610389578063626cb3c51461039357806365fae35e146103dd5780636924500914610421576101f0565b806322121f58116101c357806322121f58146102bd5780632f8080de146102c757806336569e77146103115780633b3041471461035b576101f0565b8063049878f3146101f55780630ca356821461022357806316f0115b14610251578063186f03541461029b575b600080fd5b6102216004803603602081101561020b57600080fd5b81019080803590602001909291905050506108b1565b005b61024f6004803603602081101561023957600080fd5b8101908080359060200190929190505050610bc9565b005b610259611229565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102a361124f565b604051808215151515815260200191505060405180910390f35b6102c5611262565b005b6102cf6118d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103196118fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103876004803603602081101561037157600080fd5b8101908080359060200190929190505050611923565b005b610391611c1d565b005b61039b6124b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041f600480360360208110156103f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124d6565b005b610429612614565b005b610433612842565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61047d612868565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104eb600480360360208110156104d557600080fd5b810190808035906020019092919050505061288e565b005b6104f5612b91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053f612bb7565b604051808215151515815260200191505060405180910390f35b610561612bca565b604051808215151515815260200191505060405180910390f35b6105bd6004803603602081101561059157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bdc565b005b6105eb600480360360208110156105d557600080fd5b8101908080359060200190929190505050612d1a565b005b61062f6004803603602081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fb6565b6040518082815260200191505060405180910390f35b61064d612fce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d1600480360360208110156106a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ff4565b005b61071f600480360360408110156106e957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613313565b005b61074d6004803603602081101561073757600080fd5b810190808035906020019092919050505061388a565b005b6107576139ce565b6040518082815260200191505060405180910390f35b6107996004803603602081101561078357600080fd5b81019080803590602001909291905050506139d4565b005b6107a3613d23565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107ed613d49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610837613d6f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108a56004803603602081101561088f57600080fd5b8101908080359060200190929190505050613d95565b005b6108af61467b565b005b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600160009054906101000a900460ff16801561098d5750600160029054906101000a900460ff165b6109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b6000811215610a76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54696e6c616b654d616e616765722f6f766572666c6f7700000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d6020811015610b7d57600080fd5b8101908080519060200190929190505050507f858d2e17a8121c939a8c52f6821c748d2592cc8ecd8e6afcda3fc4c84248002f816040518082815260200191505060405180910390a150565b6001809054906101000a900460ff1615610c4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f54696e6c616b654d67722f6e6f742d7772697474656e2d6f666600000000000081525060200191505060405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd77ac2c836040518263ffffffff1660e01b815260040180828152602001915050608060405180830381600087803b158015610cc257600080fd5b505af1158015610cd6573d6000803e3d6000fd5b505050506040513d6080811015610cec57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050505050509050600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dca59c16040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505050506040513d6020811015610db757600080fd5b8101908080519060200190929190505050141561100357610def826b033b2e3c9fd0803ce800000060025481610de957fe5b046147b3565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ebc57600080fd5b505af1158015610ed0573d6000803e3d6000fd5b505050506040513d6020811015610ee657600080fd5b810190808051906020019092919050505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b4da69f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b50505050610ffc600254610ff7836b033b2e3c9fd0803ce80000006147cc565b6147f8565b6002819055505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111a957600080fd5b505af11580156111bd573d6000803e3d6000fd5b505050506040513d60208110156111d357600080fd5b8101908080519060200190929190505050507f945a6f50c51e4c794dfbca655185828caa3416c52206ad59fb46940963c0c4a58282604051808381526020018281526020019250505060405180910390a1505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900460ff1681565b600160009054906101000a900460ff1615801561128a57506001809054906101000a900460ff165b80156112a25750600160029054906101000a900460ff165b611314576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54696e6c616b654d67722f6261642d737461746500000000000000000000000081525060200191505060405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561138057600080fd5b505af1158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561140257600080fd5b505af1158015611416573d6000803e3d6000fd5b505050506040513d602081101561142c57600080fd5b81019080805190602001909291905050509050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c84600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040805180830381600087803b15801561150c57600080fd5b505af1158015611520573d6000803e3d6000fd5b505050506040513d604081101561153657600080fd5b810190808051906020019092919080519060200190929190505050915091506000821480156115655750600081145b6115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f54696e6c616b654d67722f6e6f742d7772697474656e2d6f666600000000000081525060200191505060405180910390fd5b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561164f57600080fd5b505af1158015611663573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250608081101561168d57600080fd5b81019080805160405193929190846401000000008211156116ad57600080fd5b838201915060208201858111156116c357600080fd5b82518660018202830111640100000000821117156116e057600080fd5b8083526020830192505050908051906020019080838360005b838110156117145780820151818401526020810190506116f9565b50505050905090810190601f1680156117415780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291908051906020019092919050505093509350505060008165ffffffffffff1614156117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d6c6971756964617465640000000000000081525060200191505060405180910390fd5b6118088165ffffffffffff168365ffffffffffff16614812565b42101561187d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f54696e6c616b654d67722f6561726c792d63756c6c000000000000000000000081525060200191505060405180910390fd5b60006001806101000a81548160ff0219169083151502179055507ff94111cbc0e0e4fd91b7b59cc1bfb186c7fd822567ee6963fa41582df5d0c8ff6002546040518082815260200191505060405180910390a15050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600160009054906101000a900460ff1680156119ff5750600160029054906101000a900460ff165b611a71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b304147826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b8101908080519060200190929190505050507f3fd10e0b772395f38ab47fc59126002084ce1e04d2b65432f5c90bbd9e233999816040518082815260200191505060405180910390a150565b600160009054906101000a900460ff16611c9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f54696e6c616b654d67722f6e6f742d736166650000000000000000000000000081525060200191505060405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d0b57600080fd5b505af1158015611d1f573d6000803e3d6000fd5b505050506040513d6020811015611d3557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050506040513d6020811015611db757600080fd5b810190808051906020019092919050505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611e4157600080fd5b505af1158015611e55573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506080811015611e7f57600080fd5b8101908080516040519392919084640100000000821115611e9f57600080fd5b83820191506020820185811115611eb557600080fd5b8251866001820283011164010000000082111715611ed257600080fd5b8083526020830192505050908051906020019080838360005b83811015611f06578082015181840152602081019050611eeb565b50505050905090810190601f168015611f335780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190505050935050505060008165ffffffffffff161415611fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d6c6971756964617465640000000000000081525060200191505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c84600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040805180830381600087803b1580156120ab57600080fd5b505af11580156120bf573d6000803e3d6000fd5b505050506040513d60408110156120d557600080fd5b8101908080519060200190929190805190602001909291905050509150506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36856040518263ffffffff1660e01b81526004018082815260200191505060a060405180830381600087803b15801561216a57600080fd5b505af115801561217e573d6000803e3d6000fd5b505050506040513d60a081101561219457600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505050509150506121dd82826147cc565b6002819055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050506040513d60208110156122b057600080fd5b810190808051906020019092919050505090506000600160006101000a81548160ff021916908315150217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156123a957600080fd5b505af11580156123bd573d6000803e3d6000fd5b505050506040513d60208110156123d357600080fd5b810190808051906020019092919050505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a58ca0e826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561245a57600080fd5b505af115801561246e573d6000803e3d6000fd5b505050507f740179f722c3e7a82062471e1e7cc2c5bf62b0bfafb3d95ae5e97f8605876e4b816040518082815260200191505060405180910390a15050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b6001809054906101000a900460ff1615612696576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54696e6c616b654d67722f6261642d737461746500000000000000000000000081525060200191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061278757506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561274a57600080fd5b505af115801561275e573d6000803e3d6000fd5b505050506040513d602081101561277457600080fd5b8101908080519060200190929190505050145b6127f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b6000600160026101000a81548160ff0219169083151502179055507f2308ed18a14e800c39b86eb6ea43270105955ca385b603b64eca89f98ae8fbda60405160405180910390a1565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600160009054906101000a900460ff16801561296a5750600160029054906101000a900460ff165b6129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b7f8000000000000000000000000000000000000000000000000000000000000000811115612a72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54696e6c616b654d616e616765722f6f766572666c6f7700000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b1b57600080fd5b505af1158015612b2f573d6000803e3d6000fd5b505050506040513d6020811015612b4557600080fd5b8101908080519060200190929190505050507fb20101a10c7cc8d4a9b5accf3d34c34f89d53ec195fce51620af16429526c755816040518082815260200191505060405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160029054906101000a900460ff1681565b6001809054906101000a900460ff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b600160009054906101000a900460ff168015612d425750600160029054906101000a900460ff165b612db4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612eb357600080fd5b505af1158015612ec7573d6000803e3d6000fd5b505050506040513d6020811015612edd57600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b38a1620826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612f6457600080fd5b505af1158015612f78573d6000803e3d6000fd5b505050507fa73c45139e83076a25bae26e55528d4ccd00789363e6ac938f6750a608cf1285816040518082815260200191505060405180910390a150565b60006020528060005260406000206000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146130a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561317157600080fd5b505af1158015613185573d6000803e3d6000fd5b505050506040513d602081101561319b57600080fd5b810190808051906020019092919050505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561327657600080fd5b505af115801561328a573d6000803e3d6000fd5b505050506040513d60208110156132a057600080fd5b8101908080519060200190929190505050506000600160026101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd58a618a39de682696ea37dd9a6bf9c793afa426fa1438e75c3966e3b541e45a60405160405180910390a250565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16827f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba60405160405180910390a37f75726e000000000000000000000000000000000000000000000000000000000082141561357e5780600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b505050506040513d602081101561356757600080fd5b810190808051906020019092919050505050613886565b7f6c697100000000000000000000000000000000000000000000000000000000008214156135ec5780600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613885565b7f6f776e657200000000000000000000000000000000000000000000000000000082141561365a5780600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613884565b7f766f7700000000000000000000000000000000000000000000000000000000008214156136c85780600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613883565b7f656e6400000000000000000000000000000000000000000000000000000000008214156137365780600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613882565b7f706f6f6c000000000000000000000000000000000000000000000000000000008214156137a45780600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613881565b7f7472616e636865000000000000000000000000000000000000000000000000008214156138125780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613880565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f54696e6c616b654d67722f66696c652d756e6b6e6f776e2d706172616d00000081525060200191505060405180910390fd5b5b5b5b5b5b5b5050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461393e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8ccd0f3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156139b357600080fd5b505af11580156139c7573d6000803e3d6000fd5b5050505050565b60025481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613a88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613af257600080fd5b505af1158015613b06573d6000803e3d6000fd5b505050506040513d6020811015613b1c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613b7457600080fd5b505af1158015613b88573d6000803e3d6000fd5b505050506040513d6020811015613b9e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613c5757600080fd5b505af1158015613c6b573d6000803e3d6000fd5b505050506040513d6020811015613c8157600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd467064826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613d0857600080fd5b505af1158015613d1c573d6000803e3d6000fd5b5050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900460ff16158015613dbd57506001809054906101000a900460ff165b8015613dd55750600160029054906101000a900460ff165b613e47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f54696e6c616b654d67722f6e6f742d736f66742d6c69717569646174696f6e0081525060200191505060405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd77ac2c836040518263ffffffff1660e01b815260040180828152602001915050608060405180830381600087803b158015613ebe57600080fd5b505af1158015613ed2573d6000803e3d6000fd5b505050506040513d6080811015613ee857600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505050505090506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613f8857600080fd5b505af1158015613f9c573d6000803e3d6000fd5b505050506040513d6020811015613fb257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561400a57600080fd5b505af115801561401e573d6000803e3d6000fd5b505050506040513d602081101561403457600080fd5b810190808051906020019092919050505090506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c83600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040805180830381600087803b15801561411357600080fd5b505af1158015614127573d6000803e3d6000fd5b505050506040513d604081101561413d57600080fd5b8101908080519060200190929190805190602001909291905050509150506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a060405180830381600087803b1580156141d257600080fd5b505af11580156141e6573d6000803e3d6000fd5b505050506040513d60a08110156141fc57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050505050915050600061424783836147cc565b9050600061426a86614265846b033b2e3c9fd0803ce800000061482c565b6147b3565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561436b57600080fd5b505af115801561437f573d6000803e3d6000fd5b505050506040513d602081101561439557600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b38a1620826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561441c57600080fd5b505af1158015614430573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561453657600080fd5b505af115801561454a573d6000803e3d6000fd5b505050506040513d602081101561456057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b81019080805190602001909291905050505061463582614630836b033b2e3c9fd0803ce80000006147cc565b6147f8565b6002819055507fb71844fcaa5d37721eafde73962d7ab2f9857c0795b063ae0ddf2233d371b698816040518082815260200191505060405180910390a150505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461472f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc2b8cc36040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561479957600080fd5b505af11580156147ad573d6000803e3d6000fd5b50505050565b60008183116147c257826147c4565b815b905092915050565b6000808214806147e957508282838502925082816147e657fe5b04145b6147f257600080fd5b92915050565b600082828403915081111561480c57600080fd5b92915050565b600082828401915081101561482657600080fd5b92915050565b6000816148438461483e8560016147f8565b614812565b8161484a57fe5b0490509291505056fea265627a7a723158209a2a77c6eeaa3047ce4fe9e6c1c4b68d78712ec1ff002295a5b86e530300db7264736f6c634300050c00320000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000931c3ff1f5ac377137d3aafd80f601bd76ce106e000000000000000000000000deb6eeef90bbb5be6a771250eb9ba8d0804c3f5d0000000000000000000000003bce1712d1aac8c9597bc65f1c1630af32f918b0000000000000000000000000bb856d1742fd182a90239d7ae85706c2fe4e592200000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063957aa58c1161010f578063d8ccd0f3116100a2578063f4b9fa7511610071578063f4b9fa75146107e5578063faba8c3b1461082f578063fad898c214610879578063fc2b8cc3146108a7576101f0565b8063d8ccd0f314610721578063db9cd8d31461074f578063dd4670641461076d578063efbe1c1c1461079b576101f0565b8063bf353dbb116100de578063bf353dbb146105ed578063c11645bc14610645578063ce5494bb1461068f578063d4e8be83146106d3576101f0565b8063957aa58c14610537578063968e7953146105595780639c52a7f11461057b578063b38a1620146105bf576101f0565b806353d700e5116101875780636ebc0af1116101565780636ebc0af11461042b5780637bd2bea7146104755780637f8661a1146104bf5780638da5cb5b146104ed576101f0565b806353d700e514610389578063626cb3c51461039357806365fae35e146103dd5780636924500914610421576101f0565b806322121f58116101c357806322121f58146102bd5780632f8080de146102c757806336569e77146103115780633b3041471461035b576101f0565b8063049878f3146101f55780630ca356821461022357806316f0115b14610251578063186f03541461029b575b600080fd5b6102216004803603602081101561020b57600080fd5b81019080803590602001909291905050506108b1565b005b61024f6004803603602081101561023957600080fd5b8101908080359060200190929190505050610bc9565b005b610259611229565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102a361124f565b604051808215151515815260200191505060405180910390f35b6102c5611262565b005b6102cf6118d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103196118fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103876004803603602081101561037157600080fd5b8101908080359060200190929190505050611923565b005b610391611c1d565b005b61039b6124b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041f600480360360208110156103f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124d6565b005b610429612614565b005b610433612842565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61047d612868565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104eb600480360360208110156104d557600080fd5b810190808035906020019092919050505061288e565b005b6104f5612b91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053f612bb7565b604051808215151515815260200191505060405180910390f35b610561612bca565b604051808215151515815260200191505060405180910390f35b6105bd6004803603602081101561059157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bdc565b005b6105eb600480360360208110156105d557600080fd5b8101908080359060200190929190505050612d1a565b005b61062f6004803603602081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fb6565b6040518082815260200191505060405180910390f35b61064d612fce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d1600480360360208110156106a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ff4565b005b61071f600480360360408110156106e957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613313565b005b61074d6004803603602081101561073757600080fd5b810190808035906020019092919050505061388a565b005b6107576139ce565b6040518082815260200191505060405180910390f35b6107996004803603602081101561078357600080fd5b81019080803590602001909291905050506139d4565b005b6107a3613d23565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107ed613d49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610837613d6f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108a56004803603602081101561088f57600080fd5b8101908080359060200190929190505050613d95565b005b6108af61467b565b005b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600160009054906101000a900460ff16801561098d5750600160029054906101000a900460ff165b6109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b6000811215610a76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54696e6c616b654d616e616765722f6f766572666c6f7700000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d6020811015610b7d57600080fd5b8101908080519060200190929190505050507f858d2e17a8121c939a8c52f6821c748d2592cc8ecd8e6afcda3fc4c84248002f816040518082815260200191505060405180910390a150565b6001809054906101000a900460ff1615610c4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f54696e6c616b654d67722f6e6f742d7772697474656e2d6f666600000000000081525060200191505060405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd77ac2c836040518263ffffffff1660e01b815260040180828152602001915050608060405180830381600087803b158015610cc257600080fd5b505af1158015610cd6573d6000803e3d6000fd5b505050506040513d6080811015610cec57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050505050509050600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dca59c16040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505050506040513d6020811015610db757600080fd5b8101908080519060200190929190505050141561100357610def826b033b2e3c9fd0803ce800000060025481610de957fe5b046147b3565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ebc57600080fd5b505af1158015610ed0573d6000803e3d6000fd5b505050506040513d6020811015610ee657600080fd5b810190808051906020019092919050505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b4da69f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b50505050610ffc600254610ff7836b033b2e3c9fd0803ce80000006147cc565b6147f8565b6002819055505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111a957600080fd5b505af11580156111bd573d6000803e3d6000fd5b505050506040513d60208110156111d357600080fd5b8101908080519060200190929190505050507f945a6f50c51e4c794dfbca655185828caa3416c52206ad59fb46940963c0c4a58282604051808381526020018281526020019250505060405180910390a1505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900460ff1681565b600160009054906101000a900460ff1615801561128a57506001809054906101000a900460ff165b80156112a25750600160029054906101000a900460ff165b611314576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54696e6c616b654d67722f6261642d737461746500000000000000000000000081525060200191505060405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561138057600080fd5b505af1158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561140257600080fd5b505af1158015611416573d6000803e3d6000fd5b505050506040513d602081101561142c57600080fd5b81019080805190602001909291905050509050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c84600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040805180830381600087803b15801561150c57600080fd5b505af1158015611520573d6000803e3d6000fd5b505050506040513d604081101561153657600080fd5b810190808051906020019092919080519060200190929190505050915091506000821480156115655750600081145b6115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f54696e6c616b654d67722f6e6f742d7772697474656e2d6f666600000000000081525060200191505060405180910390fd5b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561164f57600080fd5b505af1158015611663573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250608081101561168d57600080fd5b81019080805160405193929190846401000000008211156116ad57600080fd5b838201915060208201858111156116c357600080fd5b82518660018202830111640100000000821117156116e057600080fd5b8083526020830192505050908051906020019080838360005b838110156117145780820151818401526020810190506116f9565b50505050905090810190601f1680156117415780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291908051906020019092919050505093509350505060008165ffffffffffff1614156117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d6c6971756964617465640000000000000081525060200191505060405180910390fd5b6118088165ffffffffffff168365ffffffffffff16614812565b42101561187d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f54696e6c616b654d67722f6561726c792d63756c6c000000000000000000000081525060200191505060405180910390fd5b60006001806101000a81548160ff0219169083151502179055507ff94111cbc0e0e4fd91b7b59cc1bfb186c7fd822567ee6963fa41582df5d0c8ff6002546040518082815260200191505060405180910390a15050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600160009054906101000a900460ff1680156119ff5750600160029054906101000a900460ff165b611a71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b304147826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b8101908080519060200190929190505050507f3fd10e0b772395f38ab47fc59126002084ce1e04d2b65432f5c90bbd9e233999816040518082815260200191505060405180910390a150565b600160009054906101000a900460ff16611c9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f54696e6c616b654d67722f6e6f742d736166650000000000000000000000000081525060200191505060405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d0b57600080fd5b505af1158015611d1f573d6000803e3d6000fd5b505050506040513d6020811015611d3557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050506040513d6020811015611db757600080fd5b810190808051906020019092919050505090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611e4157600080fd5b505af1158015611e55573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506080811015611e7f57600080fd5b8101908080516040519392919084640100000000821115611e9f57600080fd5b83820191506020820185811115611eb557600080fd5b8251866001820283011164010000000082111715611ed257600080fd5b8083526020830192505050908051906020019080838360005b83811015611f06578082015181840152602081019050611eeb565b50505050905090810190601f168015611f335780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190505050935050505060008165ffffffffffff161415611fdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d6c6971756964617465640000000000000081525060200191505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c84600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040805180830381600087803b1580156120ab57600080fd5b505af11580156120bf573d6000803e3d6000fd5b505050506040513d60408110156120d557600080fd5b8101908080519060200190929190805190602001909291905050509150506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36856040518263ffffffff1660e01b81526004018082815260200191505060a060405180830381600087803b15801561216a57600080fd5b505af115801561217e573d6000803e3d6000fd5b505050506040513d60a081101561219457600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050505050509150506121dd82826147cc565b6002819055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050506040513d60208110156122b057600080fd5b810190808051906020019092919050505090506000600160006101000a81548160ff021916908315150217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156123a957600080fd5b505af11580156123bd573d6000803e3d6000fd5b505050506040513d60208110156123d357600080fd5b810190808051906020019092919050505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a58ca0e826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561245a57600080fd5b505af115801561246e573d6000803e3d6000fd5b505050507f740179f722c3e7a82062471e1e7cc2c5bf62b0bfafb3d95ae5e97f8605876e4b816040518082815260200191505060405180910390a15050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b6001809054906101000a900460ff1615612696576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54696e6c616b654d67722f6261642d737461746500000000000000000000000081525060200191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061278757506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561274a57600080fd5b505af115801561275e573d6000803e3d6000fd5b505050506040513d602081101561277457600080fd5b8101908080519060200190929190505050145b6127f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b6000600160026101000a81548160ff0219169083151502179055507f2308ed18a14e800c39b86eb6ea43270105955ca385b603b64eca89f98ae8fbda60405160405180910390a1565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600160009054906101000a900460ff16801561296a5750600160029054906101000a900460ff165b6129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b7f8000000000000000000000000000000000000000000000000000000000000000811115612a72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54696e6c616b654d616e616765722f6f766572666c6f7700000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b1b57600080fd5b505af1158015612b2f573d6000803e3d6000fd5b505050506040513d6020811015612b4557600080fd5b8101908080519060200190929190505050507fb20101a10c7cc8d4a9b5accf3d34c34f89d53ec195fce51620af16429526c755816040518082815260200191505060405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160029054906101000a900460ff1681565b6001809054906101000a900460ff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b600160009054906101000a900460ff168015612d425750600160029054906101000a900460ff165b612db4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54696e6c616b654d616e616765722f6261642d7374617465000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612eb357600080fd5b505af1158015612ec7573d6000803e3d6000fd5b505050506040513d6020811015612edd57600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b38a1620826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612f6457600080fd5b505af1158015612f78573d6000803e3d6000fd5b505050507fa73c45139e83076a25bae26e55528d4ccd00789363e6ac938f6750a608cf1285816040518082815260200191505060405180910390a150565b60006020528060005260406000206000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146130a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561317157600080fd5b505af1158015613185573d6000803e3d6000fd5b505050506040513d602081101561319b57600080fd5b810190808051906020019092919050505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561327657600080fd5b505af115801561328a573d6000803e3d6000fd5b505050506040513d60208110156132a057600080fd5b8101908080519060200190929190505050506000600160026101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd58a618a39de682696ea37dd9a6bf9c793afa426fa1438e75c3966e3b541e45a60405160405180910390a250565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16827f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba60405160405180910390a37f75726e000000000000000000000000000000000000000000000000000000000082141561357e5780600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b505050506040513d602081101561356757600080fd5b810190808051906020019092919050505050613886565b7f6c697100000000000000000000000000000000000000000000000000000000008214156135ec5780600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613885565b7f6f776e657200000000000000000000000000000000000000000000000000000082141561365a5780600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613884565b7f766f7700000000000000000000000000000000000000000000000000000000008214156136c85780600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613883565b7f656e6400000000000000000000000000000000000000000000000000000000008214156137365780600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613882565b7f706f6f6c000000000000000000000000000000000000000000000000000000008214156137a45780600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613881565b7f7472616e636865000000000000000000000000000000000000000000000000008214156138125780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613880565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f54696e6c616b654d67722f66696c652d756e6b6e6f776e2d706172616d00000081525060200191505060405180910390fd5b5b5b5b5b5b5b5050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461393e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8ccd0f3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156139b357600080fd5b505af11580156139c7573d6000803e3d6000fd5b5050505050565b60025481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613a88576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613af257600080fd5b505af1158015613b06573d6000803e3d6000fd5b505050506040513d6020811015613b1c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613b7457600080fd5b505af1158015613b88573d6000803e3d6000fd5b505050506040513d6020811015613b9e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613c5757600080fd5b505af1158015613c6b573d6000803e3d6000fd5b505050506040513d6020811015613c8157600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd467064826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613d0857600080fd5b505af1158015613d1c573d6000803e3d6000fd5b5050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900460ff16158015613dbd57506001809054906101000a900460ff165b8015613dd55750600160029054906101000a900460ff165b613e47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f54696e6c616b654d67722f6e6f742d736f66742d6c69717569646174696f6e0081525060200191505060405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd77ac2c836040518263ffffffff1660e01b815260040180828152602001915050608060405180830381600087803b158015613ebe57600080fd5b505af1158015613ed2573d6000803e3d6000fd5b505050506040513d6080811015613ee857600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505050505090506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301664f666040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613f8857600080fd5b505af1158015613f9c573d6000803e3d6000fd5b505050506040513d6020811015613fb257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561400a57600080fd5b505af115801561401e573d6000803e3d6000fd5b505050506040513d602081101561403457600080fd5b810190808051906020019092919050505090506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c83600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040805180830381600087803b15801561411357600080fd5b505af1158015614127573d6000803e3d6000fd5b505050506040513d604081101561413d57600080fd5b8101908080519060200190929190805190602001909291905050509150506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a060405180830381600087803b1580156141d257600080fd5b505af11580156141e6573d6000803e3d6000fd5b505050506040513d60a08110156141fc57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050505050915050600061424783836147cc565b9050600061426a86614265846b033b2e3c9fd0803ce800000061482c565b6147b3565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561436b57600080fd5b505af115801561437f573d6000803e3d6000fd5b505050506040513d602081101561439557600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b38a1620826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561441c57600080fd5b505af1158015614430573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561453657600080fd5b505af115801561454a573d6000803e3d6000fd5b505050506040513d602081101561456057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156145da57600080fd5b505af11580156145ee573d6000803e3d6000fd5b505050506040513d602081101561460457600080fd5b81019080805190602001909291905050505061463582614630836b033b2e3c9fd0803ce80000006147cc565b6147f8565b6002819055507fb71844fcaa5d37721eafde73962d7ab2f9857c0795b063ae0ddf2233d371b698816040518082815260200191505060405180910390a150505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461472f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f54696e6c616b654d67722f6e6f742d617574686f72697a65640000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc2b8cc36040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561479957600080fd5b505af11580156147ad573d6000803e3d6000fd5b50505050565b60008183116147c257826147c4565b815b905092915050565b6000808214806147e957508282838502925082816147e657fe5b04145b6147f257600080fd5b92915050565b600082828403915081111561480c57600080fd5b92915050565b600082828401915081101561482657600080fd5b92915050565b6000816148438461483e8560016147f8565b614812565b8161484a57fe5b0490509291505056fea265627a7a723158209a2a77c6eeaa3047ce4fe9e6c1c4b68d78712ec1ff002295a5b86e530300db7264736f6c634300050c0032

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

0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000931c3ff1f5ac377137d3aafd80f601bd76ce106e000000000000000000000000deb6eeef90bbb5be6a771250eb9ba8d0804c3f5d0000000000000000000000003bce1712d1aac8c9597bc65f1c1630af32f918b0000000000000000000000000bb856d1742fd182a90239d7ae85706c2fe4e592200000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466

-----Decoded View---------------
Arg [0] : dai_ (address): 0x6B175474E89094C44Da98b954EedeAC495271d0F
Arg [1] : daiJoin_ (address): 0x9759A6Ac90977b93B58547b4A71c78317f391A28
Arg [2] : drop_ (address): 0x931C3Ff1F5aC377137d3AaFD80F601BD76cE106e
Arg [3] : pool_ (address): 0xDeb6eEEF90bbb5be6A771250eb9bA8d0804c3F5D
Arg [4] : tranche_ (address): 0x3bCe1712d1AaC8C9597Bc65F1c1630aF32F918B0
Arg [5] : end_ (address): 0xBB856d1742fD182a90239D7AE85706C2FE4e5922
Arg [6] : vat_ (address): 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B
Arg [7] : vow_ (address): 0xA950524441892A31ebddF91d3cEEFa04Bf454466

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [1] : 0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28
Arg [2] : 000000000000000000000000931c3ff1f5ac377137d3aafd80f601bd76ce106e
Arg [3] : 000000000000000000000000deb6eeef90bbb5be6a771250eb9ba8d0804c3f5d
Arg [4] : 0000000000000000000000003bce1712d1aac8c9597bc65f1c1630af32f918b0
Arg [5] : 000000000000000000000000bb856d1742fd182a90239d7ae85706c2fe4e5922
Arg [6] : 00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b
Arg [7] : 000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466


Deployed Bytecode Sourcemap

2692:8586:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2692:8586:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6027:254;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6027:254:0;;;;;;;;;;;;;;;;;:::i;:::-;;10518:532;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10518:532:0;;;;;;;;;;;;;;;;;:::i;:::-;;4054:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3603:16;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9841:532;;;:::i;:::-;;4108:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3859:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6616:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6616:196:0;;;;;;;;;;;;;;;;;:::i;:::-;;8344:545;;;:::i;:::-;;3938:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2794:99;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2794:99:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11058:217;;;:::i;:::-;;4178:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4022:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6289:234;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6289:234:0;;;;;;;;;;;;;;;;;:::i;:::-;;4207:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3710:16;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3660;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2899:99;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2899:99:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6820:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6820:209:0;;;;;;;;;;;;;;;;;:::i;:::-;;2744:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2744:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3963:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7248:181;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7248:181:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7437:757;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7437:757:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5857:71;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5857:71:0;;;;;;;;;;;;;;;;;:::i;:::-;;3770:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5646:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5646:161:0;;;;;;;;;;;;;;;;;:::i;:::-;;3913:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3886:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4138:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9017:734;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9017:734:0;;;;;;;;;;;;;;;;;:::i;:::-;;7152:57;;;:::i;:::-;;6027:254;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:4;;;;;;;;;;;:12;;;;;6093:4;;;;;;;;;;;6085:12;6077:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:1;6152:3;6145:16;;6137:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6200:3;;;;;;;;;;;:16;;;6217:10;6237:4;6244:3;6200:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6200:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6200:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6200:48:0;;;;;;;;;;;;;;;;;6264:9;6269:3;6264:9;;;;;;;;;;;;;;;;;;6027:254;:::o;10518:532::-;10580:4;;;;;;;;;;;10579:5;10571:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10629:17;10655:4;;;;;;;;;;;:13;;;10669:8;10655:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10655:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10655:23:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;10655:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10628:50;;;;;10689:15;10733:1;10719:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10719:10:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10719:10:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10719:10:0;;;;;;;;;;;;;;;;:15;10715:225;;;10761:25;10765:9;4898:8;10776:3;;:9;;;;;;10761:3;:25::i;:::-;10751:35;;10801:3;;;;;;;;;;;:11;;;10821:7;;;;;;;;;;;10831;10801:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10801:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10801:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10801:38:0;;;;;;;;;;;;;;;;;10854:7;;;;;;;;;;;:12;;;10867:3;;;;;;;;;;;10872:7;10854:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10854:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10854:26:0;;;;10901:27;10905:3;;10910:17;10914:7;4898:8;10910:3;:17::i;:::-;10901:3;:27::i;:::-;10895:3;:33;;;;10715:225;10950:3;;;;;;;;;;;:12;;;10963:5;;;;;;;;;;;10970:3;;;;;;;;;;;:13;;;10992:4;10970:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10970:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10970:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10970:28:0;;;;;;;;;;;;;;;;10950:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10950:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10950:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10950:49:0;;;;;;;;;;;;;;;;;11015:27;11023:9;11034:7;11015:27;;;;;;;;;;;;;;;;;;;;;;;;10518:532;;;:::o;4054:24::-;;;;;;;;;;;;;:::o;3603:16::-;;;;;;;;;;;;;:::o;9841:532::-;9884:4;;;;;;;;;;;9883:5;:13;;;;;9892:4;;;;;;;;;;;9883:13;:21;;;;;9900:4;;;;;;;;;;;9883:21;9875:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9940:11;9966:3;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9966:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9966:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9966:13:0;;;;;;;;;;;;;;;;9954:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9954:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9954:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9954:32:0;;;;;;;;;;;;;;;;9940:46;;10000:11;10013;10028:3;;;;;;;;;;;:8;;;10037:3;10050;;;;;;;;;;;10028:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10028:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10028:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10028:27:0;;;;;;;;;;;;;;;;;;;;;;;;;9999:56;;;;10081:1;10074:3;:8;:20;;;;;10093:1;10086:3;:8;10074:20;10066:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10142:10;10154;10168:3;;;;;;;;;;;:8;;;10177:3;10168:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10168:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10168:13:0;;;;;;39:16:-1;36:1;17:17;2:54;10168:13:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;10168:13:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;10168:13:0;;;;;;;;;;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;10168:13:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10138:43;;;;;;10207:1;10200:3;:8;;;;10192:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10276:13;10280:3;10276:13;;10285:3;10276:13;;:3;:13::i;:::-;10257:15;:32;;10249:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10335:5;10328:4;;:12;;;;;;;;;;;;;;;;;;10356:9;10361:3;;10356:9;;;;;;;;;;;;;;;;;;9841:532;;;;;:::o;4108:23::-;;;;;;;;;;;;;:::o;3859:20::-;;;;;;;;;;;;;:::o;6616:196::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6674:4;;;;;;;;;;;:12;;;;;6682:4;;;;;;;;;;;6674:12;6666:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6726:3;;;;;;;;;;;:8;;;6735:3;6726:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6726:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6726:13:0;;;;6750:3;;;;;;;;;;;:12;;;6763:10;6775:3;6750:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6750:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6750:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6750:29:0;;;;;;;;;;;;;;;;;6795:9;6800:3;6795:9;;;;;;;;;;;;;;;;;;6616:196;:::o;8344:545::-;8386:4;;;;;;;;;;;8378:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8425:11;8451:3;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8451:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8451:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8451:13:0;;;;;;;;;;;;;;;;8439:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8439:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8439:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8439:32:0;;;;;;;;;;;;;;;;8425:46;;8489:10;8503:3;;;;;;;;;;;:8;;;8512:3;8503:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8503:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8503:13:0;;;;;;39:16:-1;36:1;17:17;2:54;8503:13:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;8503:13:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;8503:13:0;;;;;;;;;;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;8503:13:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:32;;;;;8542:1;8535:3;:8;;;;8527:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8589:11;8604:3;;;;;;;;;;;:8;;;8613:3;8626;;;;;;;;;;;8604:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8604:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8604:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8604:27:0;;;;;;;;;;;;;;;;;;;;;;;;;8586:45;;;8645:12;8666:3;;;;;;;;;;;:8;;;8675:3;8666:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8666:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8666:13:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8666:13:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8642:37;;;;;;8696:14;8700:3;8705:4;8696:3;:14::i;:::-;8690:3;:20;;;;8723:11;8737:3;;;;;;;;;;;:13;;;8759:4;8737:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8737:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8737:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8737:28:0;;;;;;;;;;;;;;;;8723:42;;8783:5;8776:4;;:12;;;;;;;;;;;;;;;;;;8799:3;;;;;;;;;;;:11;;;8811:7;;;;;;;;;;;8820:3;8799:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8799:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8799:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8799:25:0;;;;;;;;;;;;;;;;;8835:4;;;;;;;;;;;:16;;;8852:3;8835:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8835:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8835:21:0;;;;8872:9;8877:3;8872:9;;;;;;;;;;;;;;;;;;8344:545;;;;;:::o;3938:18::-;;;;;;;;;;;;;:::o;2794:99::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2859:1;2846:5;:10;2852:3;2846:10;;;;;;;;;;;;;;;:14;;;;2881:3;2876:9;;;;;;;;;;;;2794:99;:::o;11058:217::-;11103:4;;;;;;;;;;;11102:5;11094:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11172:1;11151:5;:17;11157:10;11151:17;;;;;;;;;;;;;;;;:22;:41;;;;11191:1;11177:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11177:10:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11177:10:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11177:10:0;;;;;;;;;;;;;;;;:15;11151:41;11143:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11240:5;11233:4;;:12;;;;;;;;;;;;;;;;;;11261:6;;;;;;;;;;11058:217::o;4178:22::-;;;;;;;;;;;;;:::o;4022:25::-;;;;;;;;;;;;;:::o;6289:234::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6347:4;;;;;;;;;;;:12;;;;;6355:4;;;;;;;;;;;6347:12;6339:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6414:8;6407:3;:15;;6399:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6461:3;;;;;;;;;;;:12;;;6474:10;6486:3;6461:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6461:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6461:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6461:29:0;;;;;;;;;;;;;;;;;6506:9;6511:3;6506:9;;;;;;;;;;;;;;;;;;6289:234;:::o;4207:20::-;;;;;;;;;;;;;:::o;3710:16::-;;;;;;;;;;;;;:::o;3660:::-;;;;;;;;;;;;;:::o;2899:99::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2964:1;2951:5;:10;2957:3;2951:10;;;;;;;;;;;;;;;:14;;;;2986:3;2981:9;;;;;;;;;;;;2899:99;:::o;6820:209::-;6873:4;;;;;;;;;;;:12;;;;;6881:4;;;;;;;;;;;6873:12;6865:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:3;;;;;;;;;;;:16;;;6942:10;6962:3;;;;;;;;;;;6968;6925:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6925:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6925:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6925:47:0;;;;;;;;;;;;;;;;;6983:3;;;;;;;;;;;:8;;;6992:3;6983:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6983:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6983:13:0;;;;7012:9;7017:3;7012:9;;;;;;;;;;;;;;;;;;6820:209;:::o;2744:41::-;;;;;;;;;;;;;;;;;:::o;3963:23::-;;;;;;;;;;;;;:::o;7248:181::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7301:3;;;;;;;;;;;:11;;;7313:3;7326:2;7301:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7301:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7301:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7301:29:0;;;;;;;;;;;;;;;;;7341:3;;;;;;;;;;;:11;;;7353:3;7366:2;7341:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7341:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7341:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7341:29:0;;;;;;;;;;;;;;;;;7388:5;7381:4;;:12;;;;;;;;;;;;;;;;;;7417:3;7409:12;;;;;;;;;;;;7248:181;:::o;7437:757::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7518:4;7507:16;;7512:4;7507:16;;;;;;;;;;7538:13;:4;:13;7534:652;;;7587:4;7568:3;;:24;;;;;;;;;;;;;;;;;;7607:3;;;;;;;;;;;:11;;;7619:4;7633:2;7607:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7607:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7607:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7607:30:0;;;;;;;;;;;;;;;;;7534:652;;;7668:13;:4;:13;7664:522;;;7725:4;7698:3;;:32;;;;;;;;;;;;;;;;;;7664:522;;;7761:15;:4;:15;7757:429;;;7801:4;7793:5;;:12;;;;;;;;;;;;;;;;;;7757:429;;;7836:13;:4;:13;7832:354;;;7872:4;7866:3;;:10;;;;;;;;;;;;;;;;;;7832:354;;;7907:13;:4;:13;7903:283;;;7951:4;7937:3;;:19;;;;;;;;;;;;;;;;;;7903:283;;;7987:14;:4;:14;7983:203;;;8036:4;8018;;:23;;;;;;;;;;;;;;;;;;7983:203;;;8072:17;:4;:17;8068:118;;;8116:4;8106:7;;:14;;;;;;;;;;;;;;;;;;8068:118;;;8147:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8068:118;7983:203;7903:283;7832:354;7757:429;7664:522;7534:652;7437:757;;:::o;5857:71::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5907:3;;;;;;;;;;;:8;;;5916:3;5907:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5907:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5907:13:0;;;;5857:71;:::o;3770:18::-;;;;:::o;5646:161::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5718:3;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5718:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5718:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5718:13:0;;;;;;;;;;;;;;;;5706:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5706:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5706:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5706:32:0;;;;;;;;;;;;;;;;5696:51;;;5756:3;;;;;;;;;;;5770;5696:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5696:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5696:79:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5696:79:0;;;;;;;;;;;;;;;;;5786:3;;;;;;;;;;;:8;;;5795:3;5786:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5786:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5786:13:0;;;;5646:161;:::o;3913:18::-;;;;;;;;;;;;;:::o;3886:20::-;;;;;;;;;;;;;:::o;4138:31::-;;;;;;;;;;;;;:::o;9017:734::-;9078:4;;;;;;;;;;;9077:5;:13;;;;;9086:4;;;;;;;;;;;9077:13;:21;;;;;9094:4;;;;;;;;;;;9077:21;9069:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9148:16;9173:4;;;;;;;;;;;:13;;;9187:8;9173:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9173:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9173:23:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9173:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9147:49;;;;;9207:11;9233:3;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9233:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9233:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9233:13:0;;;;;;;;;;;;;;;;9221:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9221:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9221:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9221:32:0;;;;;;;;;;;;;;;;9207:46;;9269:11;9284:3;;;;;;;;;;;:8;;;9293:3;9306;;;;;;;;;;;9284:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9284:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9284:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9284:27:0;;;;;;;;;;;;;;;;;;;;;;;;;9266:45;;;9325:12;9346:3;;;;;;;;;;;:8;;;9355:3;9346:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9346:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9346:13:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9346:13:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:37;;;;;;9370:12;9385:14;9389:3;9394:4;9385:3;:14::i;:::-;9370:29;;9412:15;9430:31;9434:8;9444:16;9450:4;4898:8;9444:5;:16::i;:::-;9430:3;:31::i;:::-;9412:49;;9472:3;;;;;;;;;;;:16;;;9497:4;9512:3;;;;;;;;;;;9518:7;9472:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9472:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9472:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9472:54:0;;;;;;;;;;;;;;;;;9537:3;;;;;;;;;;;:8;;;9546:7;9537:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9537:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9537:17:0;;;;9618:3;;;;;;;;;;;:12;;;9631:5;;;;;;;;;;;9638:3;;;;;;;;;;;:13;;;9660:4;9638:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9638:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9638:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9638:28:0;;;;;;;;;;;;;;;;9618:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9618:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9618:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9618:49:0;;;;;;;;;;;;;;;;;9684:28;9688:4;9694:17;9698:7;4898:8;9694:3;:17::i;:::-;9684:3;:28::i;:::-;9678:3;:34;;;;9728:15;9735:7;9728:15;;;;;;;;;;;;;;;;;;9017:734;;;;;;;:::o;7152:57::-;3058:1;3037:5;:17;3043:10;3037:17;;;;;;;;;;;;;;;;:22;3029:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7191:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7191:10:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7191:10:0;;;;7152:57::o;5405:105::-;5463:9;5493:1;5489;:5;:13;;5501:1;5489:13;;;5497:1;5489:13;5485:17;;5405:105;;;;:::o;5151:127::-;5209:9;5244:1;5239;:6;:30;;;;5268:1;5263;5258;5254;:5;5250:9;;;5249:15;;;;;;:20;5239:30;5231:39;;;;;;5151:127;;;;:::o;5032:113::-;5090:9;5135:1;5129;5125;:5;5121:9;;;5120:16;;5112:25;;;;;;5032:113;;;;:::o;4913:::-;4971:9;5016:1;5010;5006;:5;5002:9;;;5001:16;;4993:25;;;;;;4913:113;;;;:::o;5284:115::-;5344:9;5390:1;5370:17;5374:1;5377:9;5381:1;5384;5377:3;:9::i;:::-;5370:3;:17::i;:::-;:21;;;;;;5366:25;;5284:115;;;;:::o

Swarm Source

bzzr://9a2a77c6eeaa3047ce4fe9e6c1c4b68d78712ec1ff002295a5b86e530300db72

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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.